1 #include "config.h" 2 #include "util/configyyrename.h" 3 4 #line 2 "<stdout>" 5 6 #define YY_INT_ALIGNED short int 7 8 /* A lexical scanner generated by flex */ 9 10 #define FLEX_SCANNER 11 #define YY_FLEX_MAJOR_VERSION 2 12 #define YY_FLEX_MINOR_VERSION 6 13 #define YY_FLEX_SUBMINOR_VERSION 4 14 #if YY_FLEX_SUBMINOR_VERSION > 0 15 #define FLEX_BETA 16 #endif 17 18 /* First, we deal with platform-specific or compiler-specific issues. */ 19 20 /* begin standard C headers. */ 21 #include <stdio.h> 22 #include <string.h> 23 #include <errno.h> 24 #include <stdlib.h> 25 26 /* end standard C headers. */ 27 28 /* flex integer type definitions */ 29 30 #ifndef FLEXINT_H 31 #define FLEXINT_H 32 33 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ 34 35 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 36 37 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, 38 * if you want the limit (max/min) macros for int types. 39 */ 40 #ifndef __STDC_LIMIT_MACROS 41 #define __STDC_LIMIT_MACROS 1 42 #endif 43 44 #include <inttypes.h> 45 typedef int8_t flex_int8_t; 46 typedef uint8_t flex_uint8_t; 47 typedef int16_t flex_int16_t; 48 typedef uint16_t flex_uint16_t; 49 typedef int32_t flex_int32_t; 50 typedef uint32_t flex_uint32_t; 51 #else 52 typedef signed char flex_int8_t; 53 typedef short int flex_int16_t; 54 typedef int flex_int32_t; 55 typedef unsigned char flex_uint8_t; 56 typedef unsigned short int flex_uint16_t; 57 typedef unsigned int flex_uint32_t; 58 59 /* Limits of integral types. */ 60 #ifndef INT8_MIN 61 #define INT8_MIN (-128) 62 #endif 63 #ifndef INT16_MIN 64 #define INT16_MIN (-32767-1) 65 #endif 66 #ifndef INT32_MIN 67 #define INT32_MIN (-2147483647-1) 68 #endif 69 #ifndef INT8_MAX 70 #define INT8_MAX (127) 71 #endif 72 #ifndef INT16_MAX 73 #define INT16_MAX (32767) 74 #endif 75 #ifndef INT32_MAX 76 #define INT32_MAX (2147483647) 77 #endif 78 #ifndef UINT8_MAX 79 #define UINT8_MAX (255U) 80 #endif 81 #ifndef UINT16_MAX 82 #define UINT16_MAX (65535U) 83 #endif 84 #ifndef UINT32_MAX 85 #define UINT32_MAX (4294967295U) 86 #endif 87 88 #ifndef SIZE_MAX 89 #define SIZE_MAX (~(size_t)0) 90 #endif 91 92 #endif /* ! C99 */ 93 94 #endif /* ! FLEXINT_H */ 95 96 /* begin standard C++ headers. */ 97 98 /* TODO: this is always defined, so inline it */ 99 #define yyconst const 100 101 #if defined(__GNUC__) && __GNUC__ >= 3 102 #define yynoreturn __attribute__((__noreturn__)) 103 #else 104 #define yynoreturn 105 #endif 106 107 /* Returned upon end-of-file. */ 108 #define YY_NULL 0 109 110 /* Promotes a possibly negative, possibly signed char to an 111 * integer in range [0..255] for use as an array index. 112 */ 113 #define YY_SC_TO_UI(c) ((YY_CHAR) (c)) 114 115 /* Enter a start condition. This macro really ought to take a parameter, 116 * but we do it the disgusting crufty way forced on us by the ()-less 117 * definition of BEGIN. 118 */ 119 #define BEGIN (yy_start) = 1 + 2 * 120 /* Translate the current start state into a value that can be later handed 121 * to BEGIN to return to the state. The YYSTATE alias is for lex 122 * compatibility. 123 */ 124 #define YY_START (((yy_start) - 1) / 2) 125 #define YYSTATE YY_START 126 /* Action number for EOF rule of a given start state. */ 127 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) 128 /* Special action meaning "start processing a new file". */ 129 #define YY_NEW_FILE yyrestart( yyin ) 130 #define YY_END_OF_BUFFER_CHAR 0 131 132 /* Size of default input buffer. */ 133 #ifndef YY_BUF_SIZE 134 #ifdef __ia64__ 135 /* On IA-64, the buffer size is 16k, not 8k. 136 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. 137 * Ditto for the __ia64__ case accordingly. 138 */ 139 #define YY_BUF_SIZE 32768 140 #else 141 #define YY_BUF_SIZE 16384 142 #endif /* __ia64__ */ 143 #endif 144 145 /* The state buf must be large enough to hold one state per character in the main buffer. 146 */ 147 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) 148 149 #ifndef YY_TYPEDEF_YY_BUFFER_STATE 150 #define YY_TYPEDEF_YY_BUFFER_STATE 151 typedef struct yy_buffer_state *YY_BUFFER_STATE; 152 #endif 153 154 #ifndef YY_TYPEDEF_YY_SIZE_T 155 #define YY_TYPEDEF_YY_SIZE_T 156 typedef size_t yy_size_t; 157 #endif 158 159 extern int yyleng; 160 161 extern FILE *yyin, *yyout; 162 163 #define EOB_ACT_CONTINUE_SCAN 0 164 #define EOB_ACT_END_OF_FILE 1 165 #define EOB_ACT_LAST_MATCH 2 166 167 #define YY_LESS_LINENO(n) 168 #define YY_LINENO_REWIND_TO(ptr) 169 170 /* Return all but the first "n" matched characters back to the input stream. */ 171 #define yyless(n) \ 172 do \ 173 { \ 174 /* Undo effects of setting up yytext. */ \ 175 int yyless_macro_arg = (n); \ 176 YY_LESS_LINENO(yyless_macro_arg);\ 177 *yy_cp = (yy_hold_char); \ 178 YY_RESTORE_YY_MORE_OFFSET \ 179 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ 180 YY_DO_BEFORE_ACTION; /* set up yytext again */ \ 181 } \ 182 while ( 0 ) 183 #define unput(c) yyunput( c, (yytext_ptr) ) 184 185 #ifndef YY_STRUCT_YY_BUFFER_STATE 186 #define YY_STRUCT_YY_BUFFER_STATE 187 struct yy_buffer_state 188 { 189 FILE *yy_input_file; 190 191 char *yy_ch_buf; /* input buffer */ 192 char *yy_buf_pos; /* current position in input buffer */ 193 194 /* Size of input buffer in bytes, not including room for EOB 195 * characters. 196 */ 197 int yy_buf_size; 198 199 /* Number of characters read into yy_ch_buf, not including EOB 200 * characters. 201 */ 202 int yy_n_chars; 203 204 /* Whether we "own" the buffer - i.e., we know we created it, 205 * and can realloc() it to grow it, and should free() it to 206 * delete it. 207 */ 208 int yy_is_our_buffer; 209 210 /* Whether this is an "interactive" input source; if so, and 211 * if we're using stdio for input, then we want to use getc() 212 * instead of fread(), to make sure we stop fetching input after 213 * each newline. 214 */ 215 int yy_is_interactive; 216 217 /* Whether we're considered to be at the beginning of a line. 218 * If so, '^' rules will be active on the next match, otherwise 219 * not. 220 */ 221 int yy_at_bol; 222 223 int yy_bs_lineno; /**< The line count. */ 224 int yy_bs_column; /**< The column count. */ 225 226 /* Whether to try to fill the input buffer when we reach the 227 * end of it. 228 */ 229 int yy_fill_buffer; 230 231 int yy_buffer_status; 232 233 #define YY_BUFFER_NEW 0 234 #define YY_BUFFER_NORMAL 1 235 /* When an EOF's been seen but there's still some text to process 236 * then we mark the buffer as YY_EOF_PENDING, to indicate that we 237 * shouldn't try reading from the input source any more. We might 238 * still have a bunch of tokens to match, though, because of 239 * possible backing-up. 240 * 241 * When we actually see the EOF, we change the status to "new" 242 * (via yyrestart()), so that the user can continue scanning by 243 * just pointing yyin at a new input file. 244 */ 245 #define YY_BUFFER_EOF_PENDING 2 246 247 }; 248 #endif /* !YY_STRUCT_YY_BUFFER_STATE */ 249 250 /* Stack of input buffers. */ 251 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ 252 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ 253 static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ 254 255 /* We provide macros for accessing buffer states in case in the 256 * future we want to put the buffer states in a more general 257 * "scanner state". 258 * 259 * Returns the top of the stack, or NULL. 260 */ 261 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ 262 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ 263 : NULL) 264 /* Same as previous macro, but useful when we know that the buffer stack is not 265 * NULL or when we need an lvalue. For internal use only. 266 */ 267 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] 268 269 /* yy_hold_char holds the character lost when yytext is formed. */ 270 static char yy_hold_char; 271 static int yy_n_chars; /* number of characters read into yy_ch_buf */ 272 int yyleng; 273 274 /* Points to current character in buffer. */ 275 static char *yy_c_buf_p = NULL; 276 static int yy_init = 0; /* whether we need to initialize */ 277 static int yy_start = 0; /* start state number */ 278 279 /* Flag which is used to allow yywrap()'s to do buffer switches 280 * instead of setting up a fresh yyin. A bit of a hack ... 281 */ 282 static int yy_did_buffer_switch_on_eof; 283 284 void yyrestart ( FILE *input_file ); 285 void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); 286 YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); 287 void yy_delete_buffer ( YY_BUFFER_STATE b ); 288 void yy_flush_buffer ( YY_BUFFER_STATE b ); 289 void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); 290 void yypop_buffer_state ( void ); 291 292 static void yyensure_buffer_stack ( void ); 293 static void yy_load_buffer_state ( void ); 294 static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); 295 #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) 296 297 YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); 298 YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); 299 YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); 300 301 void *yyalloc ( yy_size_t ); 302 void *yyrealloc ( void *, yy_size_t ); 303 void yyfree ( void * ); 304 305 #define yy_new_buffer yy_create_buffer 306 #define yy_set_interactive(is_interactive) \ 307 { \ 308 if ( ! YY_CURRENT_BUFFER ){ \ 309 yyensure_buffer_stack (); \ 310 YY_CURRENT_BUFFER_LVALUE = \ 311 yy_create_buffer( yyin, YY_BUF_SIZE ); \ 312 } \ 313 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ 314 } 315 #define yy_set_bol(at_bol) \ 316 { \ 317 if ( ! YY_CURRENT_BUFFER ){\ 318 yyensure_buffer_stack (); \ 319 YY_CURRENT_BUFFER_LVALUE = \ 320 yy_create_buffer( yyin, YY_BUF_SIZE ); \ 321 } \ 322 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ 323 } 324 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) 325 326 /* Begin user sect3 */ 327 typedef flex_uint8_t YY_CHAR; 328 329 FILE *yyin = NULL, *yyout = NULL; 330 331 typedef int yy_state_type; 332 333 extern int yylineno; 334 int yylineno = 1; 335 336 extern char *yytext; 337 #ifdef yytext_ptr 338 #undef yytext_ptr 339 #endif 340 #define yytext_ptr yytext 341 342 static yy_state_type yy_get_previous_state ( void ); 343 static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); 344 static int yy_get_next_buffer ( void ); 345 static void yynoreturn yy_fatal_error ( const char* msg ); 346 347 /* Done after the current pattern has been matched and before the 348 * corresponding action - sets up yytext. 349 */ 350 #define YY_DO_BEFORE_ACTION \ 351 (yytext_ptr) = yy_bp; \ 352 (yytext_ptr) -= (yy_more_len); \ 353 yyleng = (int) (yy_cp - (yytext_ptr)); \ 354 (yy_hold_char) = *yy_cp; \ 355 *yy_cp = '\0'; \ 356 (yy_c_buf_p) = yy_cp; 357 #define YY_NUM_RULES 343 358 #define YY_END_OF_BUFFER 344 359 /* This struct is not used in this scanner, 360 but its presence is necessary. */ 361 struct yy_trans_info 362 { 363 flex_int32_t yy_verify; 364 flex_int32_t yy_nxt; 365 }; 366 static const flex_int16_t yy_accept[3354] = 367 { 0, 368 1, 1, 317, 317, 321, 321, 325, 325, 329, 329, 369 1, 1, 333, 333, 337, 337, 344, 341, 1, 315, 370 315, 342, 2, 341, 341, 341, 341, 341, 341, 341, 371 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 372 341, 341, 341, 341, 341, 342, 317, 318, 318, 319, 373 342, 321, 322, 322, 323, 342, 328, 325, 326, 326, 374 327, 342, 329, 330, 330, 331, 342, 340, 316, 2, 375 320, 340, 342, 336, 333, 334, 334, 335, 342, 337, 376 338, 338, 339, 342, 341, 0, 1, 2, 2, 2, 377 2, 341, 341, 341, 341, 341, 341, 341, 341, 341, 378 379 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 380 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 381 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 382 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 383 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 384 341, 341, 341, 341, 341, 341, 341, 341, 341, 317, 385 0, 321, 0, 328, 0, 325, 329, 0, 340, 0, 386 2, 2, 340, 336, 0, 333, 337, 0, 341, 341, 387 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 388 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 389 390 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 391 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 392 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 393 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 394 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 395 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 396 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 397 341, 340, 341, 341, 341, 341, 341, 341, 341, 341, 398 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 399 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 400 401 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 402 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 403 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 404 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 405 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 406 341, 341, 341, 341, 341, 341, 341, 341, 125, 341, 407 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 408 341, 341, 341, 341, 341, 341, 341, 341, 341, 134, 409 341, 341, 341, 341, 341, 341, 341, 340, 341, 341, 410 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 411 412 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 413 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 414 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 415 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 416 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 417 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 418 341, 341, 341, 341, 341, 341, 109, 341, 314, 341, 419 341, 341, 341, 341, 341, 341, 8, 341, 341, 341, 420 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 421 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 422 423 341, 341, 341, 341, 341, 341, 126, 341, 341, 341, 424 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 425 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 426 341, 341, 341, 341, 341, 341, 341, 139, 341, 340, 427 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 428 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 429 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 430 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 431 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 432 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 433 434 341, 341, 341, 341, 341, 341, 341, 307, 341, 341, 435 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 436 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 437 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 438 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 439 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 440 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 441 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 442 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 443 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 444 445 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 446 341, 341, 340, 341, 341, 341, 341, 341, 341, 341, 447 341, 341, 341, 341, 341, 64, 341, 341, 341, 341, 448 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 449 239, 341, 14, 15, 341, 19, 18, 341, 341, 223, 450 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 451 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 452 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 453 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 454 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 455 456 341, 132, 341, 341, 341, 341, 341, 341, 341, 341, 457 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 458 341, 341, 341, 341, 341, 221, 341, 341, 341, 341, 459 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 460 341, 341, 341, 341, 341, 3, 341, 341, 341, 341, 461 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 462 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 463 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 464 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 465 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 466 467 340, 341, 341, 341, 341, 341, 341, 341, 301, 341, 468 341, 300, 341, 341, 341, 341, 341, 341, 341, 341, 469 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 470 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 471 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 472 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 473 341, 341, 341, 341, 341, 341, 341, 341, 341, 324, 474 341, 341, 341, 341, 341, 341, 341, 341, 63, 341, 475 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 476 341, 341, 341, 341, 341, 67, 341, 270, 341, 341, 477 478 341, 341, 341, 341, 341, 341, 308, 309, 341, 341, 479 341, 341, 341, 341, 341, 68, 341, 341, 133, 341, 480 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 481 341, 341, 341, 129, 341, 341, 341, 341, 341, 341, 482 341, 341, 341, 210, 341, 341, 341, 341, 341, 341, 483 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 484 341, 341, 341, 341, 21, 341, 341, 341, 341, 341, 485 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 486 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 487 341, 341, 341, 341, 158, 341, 341, 340, 324, 341, 488 489 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 490 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 491 107, 341, 341, 341, 341, 341, 341, 341, 278, 341, 492 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 493 341, 341, 341, 341, 341, 341, 182, 341, 341, 341, 494 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 495 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 496 341, 341, 341, 341, 341, 341, 157, 341, 341, 341, 497 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 498 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 499 500 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 501 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 502 341, 106, 341, 341, 341, 341, 341, 341, 341, 341, 503 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 504 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 505 32, 341, 341, 341, 341, 341, 341, 341, 341, 341, 506 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 507 33, 341, 341, 341, 341, 341, 341, 341, 341, 341, 508 341, 341, 341, 341, 341, 341, 65, 341, 341, 341, 509 341, 341, 341, 341, 341, 341, 131, 340, 341, 341, 510 511 341, 341, 341, 124, 341, 341, 341, 341, 341, 341, 512 341, 341, 341, 341, 341, 341, 341, 341, 341, 66, 513 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 514 341, 341, 243, 341, 341, 341, 341, 341, 341, 341, 515 341, 341, 341, 341, 341, 341, 183, 341, 341, 341, 516 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 517 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 518 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 519 341, 341, 341, 341, 54, 341, 341, 341, 341, 341, 520 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 521 522 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 523 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 524 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 525 341, 341, 341, 341, 341, 341, 341, 261, 341, 341, 526 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 527 341, 341, 341, 341, 341, 341, 341, 58, 341, 59, 528 341, 341, 341, 341, 341, 110, 341, 111, 341, 341, 529 341, 341, 108, 341, 341, 341, 341, 341, 341, 341, 530 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 531 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 532 533 341, 341, 7, 341, 340, 341, 341, 341, 341, 341, 534 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 535 341, 341, 341, 232, 341, 341, 341, 341, 160, 341, 536 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 537 341, 341, 341, 341, 341, 244, 341, 341, 341, 341, 538 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 539 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 540 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 541 341, 341, 45, 341, 341, 341, 341, 341, 341, 341, 542 341, 341, 55, 341, 341, 341, 341, 341, 341, 341, 543 544 341, 341, 341, 341, 341, 341, 341, 202, 341, 201, 545 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 546 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 547 341, 341, 341, 341, 341, 341, 341, 341, 16, 17, 548 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 549 341, 341, 341, 69, 341, 341, 341, 341, 341, 341, 550 341, 341, 341, 341, 341, 341, 209, 341, 341, 341, 551 341, 341, 341, 113, 341, 112, 341, 341, 341, 341, 552 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 553 341, 341, 341, 341, 341, 341, 341, 341, 193, 341, 554 555 341, 341, 341, 341, 341, 341, 341, 140, 340, 341, 556 341, 341, 341, 341, 341, 341, 341, 341, 341, 101, 557 341, 341, 341, 341, 341, 341, 341, 341, 341, 89, 558 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 559 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 560 341, 341, 341, 341, 341, 222, 341, 341, 341, 341, 561 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 562 341, 341, 341, 341, 94, 341, 341, 341, 341, 341, 563 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 564 341, 341, 341, 341, 341, 341, 62, 341, 341, 341, 565 566 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 567 341, 341, 341, 341, 341, 196, 197, 341, 341, 341, 568 272, 341, 341, 341, 341, 341, 341, 341, 341, 341, 569 341, 341, 341, 6, 341, 341, 341, 341, 341, 341, 570 291, 341, 341, 341, 341, 341, 341, 341, 341, 341, 571 341, 341, 341, 341, 341, 341, 341, 341, 276, 341, 572 341, 341, 341, 341, 341, 302, 341, 341, 341, 341, 573 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 574 341, 341, 341, 341, 341, 341, 341, 42, 341, 341, 575 341, 341, 44, 341, 341, 341, 90, 341, 341, 341, 576 577 341, 341, 52, 341, 341, 341, 341, 341, 341, 341, 578 340, 341, 189, 341, 341, 341, 135, 341, 341, 341, 579 341, 341, 341, 341, 341, 341, 341, 214, 341, 190, 580 341, 341, 341, 229, 341, 341, 341, 341, 341, 341, 581 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 582 341, 341, 341, 341, 53, 341, 341, 341, 341, 341, 583 341, 341, 341, 341, 341, 137, 118, 341, 119, 341, 584 341, 341, 117, 341, 341, 341, 341, 341, 341, 341, 585 341, 155, 341, 341, 50, 341, 341, 341, 341, 341, 586 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 587 588 341, 260, 341, 341, 341, 341, 341, 341, 341, 341, 589 341, 191, 341, 341, 341, 341, 341, 194, 341, 200, 590 341, 341, 341, 341, 341, 228, 341, 341, 341, 341, 591 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 592 341, 341, 105, 341, 341, 341, 341, 341, 341, 341, 593 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 594 341, 130, 341, 341, 341, 341, 341, 341, 341, 60, 595 341, 341, 341, 26, 341, 341, 341, 341, 341, 341, 596 341, 341, 341, 20, 341, 341, 341, 341, 341, 341, 597 27, 36, 341, 165, 341, 341, 341, 341, 341, 341, 598 599 341, 341, 341, 341, 341, 341, 341, 340, 341, 341, 600 341, 341, 341, 341, 77, 79, 341, 341, 341, 341, 601 341, 341, 341, 341, 341, 341, 341, 341, 341, 280, 602 341, 341, 341, 341, 240, 341, 341, 341, 341, 341, 603 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 604 341, 341, 341, 341, 341, 341, 341, 120, 341, 341, 605 341, 341, 341, 341, 341, 341, 341, 154, 341, 46, 606 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 607 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 608 341, 295, 341, 341, 341, 341, 341, 341, 341, 341, 609 610 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 611 159, 341, 341, 341, 341, 341, 341, 341, 341, 341, 612 341, 341, 341, 289, 341, 341, 341, 220, 341, 341, 613 341, 341, 341, 341, 341, 341, 341, 305, 341, 341, 614 341, 341, 341, 341, 341, 341, 341, 341, 341, 176, 615 341, 341, 341, 341, 341, 341, 341, 341, 341, 114, 616 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 617 341, 341, 341, 341, 341, 341, 341, 341, 341, 171, 618 341, 184, 341, 341, 341, 341, 340, 341, 143, 341, 619 341, 341, 341, 341, 100, 341, 341, 341, 341, 212, 620 621 341, 341, 341, 341, 341, 341, 230, 341, 341, 341, 622 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 623 341, 341, 341, 252, 341, 341, 341, 341, 341, 341, 624 341, 341, 341, 341, 136, 341, 341, 341, 341, 341, 625 341, 341, 341, 341, 341, 341, 341, 341, 341, 175, 626 341, 341, 341, 341, 341, 341, 80, 341, 81, 341, 627 341, 341, 341, 341, 61, 298, 341, 341, 341, 341, 628 341, 88, 185, 341, 203, 341, 233, 341, 341, 195, 629 273, 341, 341, 341, 341, 341, 73, 341, 187, 341, 630 341, 341, 341, 341, 9, 341, 341, 341, 341, 341, 631 632 104, 341, 341, 341, 341, 265, 341, 341, 341, 341, 633 211, 341, 341, 341, 341, 341, 341, 341, 341, 341, 634 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 635 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 636 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 637 341, 341, 341, 341, 341, 341, 341, 340, 341, 341, 638 341, 341, 174, 341, 341, 341, 341, 341, 341, 341, 639 341, 341, 341, 161, 341, 279, 341, 341, 341, 341, 640 341, 251, 341, 341, 341, 341, 341, 341, 341, 341, 641 341, 341, 341, 224, 341, 341, 341, 341, 341, 271, 642 643 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 644 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 645 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 646 299, 341, 186, 341, 341, 341, 341, 341, 341, 341, 647 72, 74, 341, 341, 341, 341, 341, 341, 341, 341, 648 341, 103, 341, 341, 341, 341, 263, 341, 341, 341, 649 341, 275, 341, 341, 341, 341, 341, 341, 341, 341, 650 341, 341, 341, 341, 216, 34, 28, 30, 341, 341, 651 341, 341, 341, 341, 341, 341, 341, 35, 341, 29, 652 31, 341, 341, 341, 341, 341, 341, 341, 341, 99, 653 654 341, 341, 341, 341, 341, 341, 340, 341, 341, 341, 655 341, 341, 341, 341, 341, 341, 341, 341, 218, 215, 656 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 657 341, 341, 341, 341, 341, 341, 341, 341, 71, 341, 658 341, 341, 138, 341, 121, 341, 341, 341, 341, 341, 659 341, 341, 341, 156, 47, 341, 341, 341, 332, 13, 660 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 661 293, 341, 296, 341, 341, 341, 341, 341, 341, 341, 662 341, 341, 341, 12, 341, 341, 22, 341, 341, 341, 663 341, 341, 269, 341, 341, 341, 341, 277, 341, 341, 664 665 341, 75, 341, 226, 341, 341, 341, 341, 341, 217, 666 341, 341, 70, 341, 341, 341, 341, 23, 341, 43, 667 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 668 341, 341, 170, 169, 332, 341, 341, 341, 341, 341, 669 341, 341, 341, 341, 219, 213, 341, 231, 341, 341, 670 281, 341, 341, 341, 341, 341, 341, 341, 341, 341, 671 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 672 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 673 341, 341, 341, 82, 341, 341, 341, 341, 264, 341, 674 341, 341, 341, 199, 341, 341, 341, 341, 225, 341, 675 676 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 677 303, 304, 167, 341, 341, 76, 341, 341, 341, 341, 678 177, 341, 341, 341, 115, 116, 341, 341, 341, 341, 679 162, 341, 164, 341, 204, 341, 341, 341, 341, 168, 680 341, 341, 234, 341, 341, 341, 341, 341, 341, 341, 681 145, 341, 341, 341, 341, 341, 341, 341, 341, 341, 682 341, 341, 341, 242, 341, 341, 341, 341, 341, 341, 683 341, 312, 341, 24, 341, 274, 341, 341, 341, 341, 684 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 685 86, 205, 341, 341, 262, 341, 297, 341, 198, 341, 686 687 341, 341, 341, 56, 341, 341, 341, 341, 341, 341, 688 4, 341, 341, 341, 341, 128, 144, 341, 341, 341, 689 181, 341, 341, 341, 341, 341, 341, 341, 341, 341, 690 341, 341, 341, 341, 341, 341, 237, 37, 38, 341, 691 341, 341, 341, 341, 341, 341, 282, 341, 341, 341, 692 341, 341, 341, 341, 250, 341, 341, 341, 341, 341, 693 341, 341, 341, 208, 341, 341, 341, 341, 341, 341, 694 341, 341, 341, 341, 341, 341, 85, 341, 57, 268, 695 341, 238, 341, 341, 341, 341, 11, 341, 341, 341, 696 341, 341, 341, 341, 341, 127, 341, 341, 341, 341, 697 698 206, 91, 341, 40, 341, 341, 341, 341, 341, 341, 699 341, 341, 173, 341, 341, 341, 341, 341, 147, 341, 700 341, 341, 341, 241, 341, 341, 341, 341, 341, 249, 701 341, 341, 341, 341, 141, 341, 341, 341, 122, 123, 702 341, 341, 341, 93, 97, 92, 341, 341, 341, 341, 703 83, 341, 341, 341, 341, 341, 10, 341, 341, 341, 704 341, 341, 266, 306, 341, 341, 341, 341, 311, 39, 705 341, 341, 341, 341, 341, 172, 341, 341, 341, 341, 706 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 707 341, 341, 341, 341, 341, 341, 341, 341, 341, 98, 708 709 96, 341, 51, 341, 341, 84, 294, 341, 341, 341, 710 341, 341, 341, 341, 341, 341, 192, 341, 341, 341, 711 341, 341, 207, 341, 341, 341, 341, 341, 341, 341, 712 341, 163, 78, 341, 341, 341, 341, 341, 283, 341, 713 341, 341, 341, 341, 341, 341, 246, 341, 341, 245, 714 142, 341, 341, 95, 48, 341, 148, 149, 152, 153, 715 150, 151, 87, 292, 341, 341, 267, 341, 341, 341, 716 341, 166, 341, 341, 341, 341, 341, 236, 341, 341, 717 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 718 341, 341, 341, 341, 341, 341, 341, 341, 179, 178, 719 720 41, 341, 341, 341, 341, 341, 341, 341, 341, 341, 721 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 722 341, 341, 341, 290, 341, 341, 341, 341, 102, 341, 723 235, 341, 259, 287, 341, 341, 341, 341, 341, 341, 724 341, 341, 341, 341, 341, 313, 341, 49, 5, 341, 725 341, 227, 341, 341, 288, 341, 341, 341, 341, 341, 726 341, 341, 341, 341, 247, 25, 341, 341, 341, 341, 727 341, 341, 341, 341, 341, 341, 341, 341, 248, 341, 728 341, 341, 146, 341, 341, 341, 341, 341, 341, 341, 729 341, 180, 341, 188, 341, 341, 341, 341, 341, 341, 730 731 341, 341, 341, 284, 341, 341, 341, 341, 341, 341, 732 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 733 341, 310, 341, 341, 255, 341, 341, 341, 341, 341, 734 285, 341, 341, 341, 341, 341, 341, 286, 341, 341, 735 341, 253, 341, 256, 257, 341, 341, 341, 341, 341, 736 254, 258, 0 737 } ; 738 739 static const YY_CHAR yy_ec[256] = 740 { 0, 741 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 742 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 743 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 744 1, 2, 1, 5, 6, 1, 1, 1, 7, 1, 745 1, 1, 1, 1, 8, 1, 1, 1, 9, 1, 746 10, 11, 1, 12, 1, 1, 1, 13, 1, 1, 747 1, 1, 1, 1, 14, 15, 16, 17, 18, 19, 748 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 749 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 750 1, 40, 1, 1, 1, 1, 41, 42, 43, 44, 751 752 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 753 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 754 65, 66, 1, 1, 1, 1, 1, 1, 1, 1, 755 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 756 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 757 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 758 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 759 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 760 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 761 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 762 763 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 764 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 765 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 766 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 767 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 768 1, 1, 1, 1, 1 769 } ; 770 771 static const YY_CHAR yy_meta[67] = 772 { 0, 773 1, 2, 3, 4, 5, 1, 6, 1, 1, 1, 774 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 775 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 776 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 777 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 778 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 779 1, 1, 1, 1, 1, 1 780 } ; 781 782 static const flex_int16_t yy_base[3372] = 783 { 0, 784 0, 0, 64, 67, 70, 72, 78, 84, 89, 92, 785 131, 137, 112, 118, 123, 142, 429, 383, 96, 9568, 786 9568, 9568, 160, 185, 116, 183, 229, 132, 175, 173, 787 232, 50, 66, 120, 263, 275, 151, 323, 134, 375, 788 416, 286, 308, 283, 126, 237, 374, 9568, 9568, 9568, 789 95, 372, 9568, 9568, 9568, 186, 361, 373, 9568, 9568, 790 9568, 258, 309, 9568, 9568, 9568, 104, 293, 9568, 266, 791 9568, 167, 351, 281, 311, 9568, 9568, 9568, 369, 268, 792 9568, 9568, 9568, 146, 252, 378, 177, 0, 392, 0, 793 0, 303, 270, 235, 317, 362, 344, 384, 178, 177, 794 795 226, 420, 377, 330, 379, 402, 414, 419, 410, 453, 796 319, 367, 440, 429, 447, 454, 463, 459, 458, 489, 797 495, 484, 474, 493, 499, 460, 500, 504, 510, 492, 798 524, 520, 532, 525, 537, 529, 412, 533, 558, 539, 799 531, 548, 565, 559, 250, 505, 587, 575, 574, 584, 800 570, 580, 610, 601, 595, 604, 607, 614, 615, 208, 801 294, 205, 236, 194, 670, 225, 180, 326, 158, 674, 802 678, 0, 623, 152, 682, 176, 130, 653, 650, 680, 803 661, 609, 675, 670, 676, 666, 671, 682, 672, 691, 804 720, 697, 696, 703, 256, 726, 770, 731, 723, 714, 805 806 734, 737, 724, 718, 745, 740, 749, 759, 766, 728, 807 773, 760, 772, 787, 819, 789, 762, 797, 339, 802, 808 827, 378, 808, 443, 832, 805, 699, 829, 725, 838, 809 836, 844, 843, 835, 852, 847, 866, 860, 849, 864, 810 875, 874, 871, 865, 868, 911, 885, 878, 893, 892, 811 894, 907, 908, 902, 913, 781, 909, 920, 921, 935, 812 912, 937, 930, 919, 943, 950, 948, 956, 957, 938, 813 958, 955, 953, 960, 954, 973, 969, 984, 994, 986, 814 993, 1002, 989, 995, 988, 996, 999, 987, 1013, 1014, 815 1022, 1026, 144, 1020, 1029, 1031, 1019, 1028, 1039, 1041, 816 817 1051, 1052, 1053, 1036, 1057, 1062, 1072, 1069, 1070, 1076, 818 1079, 1088, 1055, 1067, 1065, 1082, 1092, 1098, 1087, 1100, 819 1091, 1103, 1115, 1106, 1120, 1099, 1134, 1132, 1127, 1159, 820 1136, 1128, 1148, 1180, 1154, 1147, 1170, 1162, 1193, 1187, 821 1169, 1191, 1198, 1204, 1206, 1207, 1199, 1197, 1218, 1226, 822 1217, 1225, 1224, 1220, 1235, 1241, 1242, 1264, 9568, 1250, 823 1253, 1246, 1266, 1273, 1269, 1261, 1301, 1280, 1259, 1286, 824 1223, 1303, 1306, 1354, 1294, 1331, 1297, 1311, 1296, 9568, 825 1337, 1318, 1403, 1336, 1353, 1365, 1360, 1347, 1367, 1361, 826 1363, 1382, 1323, 1381, 1394, 1371, 1416, 1430, 1404, 1409, 827 828 1410, 1364, 1412, 1421, 1437, 1439, 1428, 1436, 1431, 1443, 829 1263, 1455, 1473, 1449, 1458, 1462, 1461, 1477, 1488, 1480, 830 1493, 1482, 1494, 1499, 1476, 1498, 1509, 1522, 1567, 1466, 831 1518, 1524, 1526, 1519, 1537, 1538, 1541, 1548, 1560, 1556, 832 1546, 1569, 1549, 1533, 1573, 1564, 1591, 1587, 1594, 1586, 833 1582, 1590, 1597, 1614, 1604, 1600, 1608, 1621, 1607, 1628, 834 1624, 1637, 1634, 1619, 1643, 1627, 9568, 1651, 9568, 1635, 835 1650, 1648, 1647, 1664, 1653, 1660, 9568, 1670, 1671, 1666, 836 1667, 1687, 1683, 1706, 1697, 1691, 1696, 1700, 1695, 1710, 837 1711, 1701, 1717, 1731, 1726, 1730, 1719, 1718, 1738, 1745, 838 839 1728, 1746, 1744, 1737, 1748, 1788, 9568, 1754, 1764, 1755, 840 1765, 1782, 1786, 1813, 1770, 1800, 1817, 1801, 1825, 1811, 841 1823, 1816, 1824, 1828, 1841, 1829, 1857, 1844, 1849, 1850, 842 1843, 1845, 1868, 1855, 1860, 1863, 1874, 9568, 1884, 1892, 843 1768, 1871, 1882, 1885, 1888, 1898, 1881, 1910, 1890, 1916, 844 1908, 1919, 1921, 1933, 1922, 1938, 1924, 1939, 1930, 1935, 845 1947, 1953, 1959, 1954, 1958, 1960, 1955, 1964, 1972, 1976, 846 1984, 1977, 1993, 1969, 1980, 1986, 1996, 1979, 2000, 1991, 847 2004, 1987, 2003, 2011, 2017, 2020, 2014, 2021, 2019, 2028, 848 2025, 2018, 2038, 2034, 2037, 2059, 2053, 2048, 2060, 2051, 849 850 2073, 2061, 2065, 2077, 2078, 2080, 2076, 9568, 2098, 2088, 851 2099, 2107, 2108, 2109, 2114, 2100, 2104, 2110, 2115, 2118, 852 2127, 2130, 2139, 2132, 2136, 2144, 2146, 2137, 2150, 2159, 853 2169, 2167, 2160, 2154, 2168, 2171, 2142, 2189, 2185, 2196, 854 2197, 2177, 2188, 2206, 2192, 2194, 2217, 2213, 2199, 2216, 855 2223, 2211, 2229, 2232, 2243, 2215, 2235, 2260, 2253, 2240, 856 2244, 2249, 2258, 2252, 2264, 2266, 2268, 2270, 2263, 2299, 857 2294, 2291, 2288, 2290, 2296, 2293, 2295, 2304, 2306, 2310, 858 2316, 2317, 2321, 2325, 2320, 2326, 2327, 2331, 2341, 2330, 859 2347, 2358, 2362, 2356, 2352, 2353, 2367, 2368, 2374, 2365, 860 861 2369, 2392, 2397, 2396, 2400, 2401, 2386, 2407, 2409, 2398, 862 2411, 2410, 2416, 2432, 2436, 2428, 2437, 2429, 2438, 2430, 863 2272, 2449, 2453, 2455, 2445, 9568, 2447, 2380, 2441, 2471, 864 2472, 2464, 2465, 2383, 2478, 2463, 2476, 2479, 2480, 2530, 865 9568, 2481, 9568, 9568, 2492, 9568, 9568, 2511, 2495, 9568, 866 2518, 2517, 2498, 2529, 2536, 2545, 2543, 2516, 2541, 2538, 867 2553, 2585, 2566, 2557, 2556, 2563, 2564, 2591, 2594, 2581, 868 2602, 2582, 2593, 2633, 2618, 2609, 2620, 2627, 2638, 2636, 869 2637, 2643, 2575, 2644, 2630, 2631, 2645, 2654, 2634, 2670, 870 2655, 2664, 2671, 2683, 2668, 2675, 2666, 2694, 2691, 2690, 871 872 2699, 9568, 2695, 2697, 2708, 2702, 2709, 2713, 2714, 2711, 873 2725, 2728, 2722, 2715, 2726, 2732, 2727, 2721, 2742, 2744, 874 2741, 2743, 2756, 2767, 2746, 9568, 2754, 2766, 2752, 2769, 875 2771, 2779, 2781, 2770, 2760, 2790, 2778, 2800, 2788, 2795, 876 2801, 2805, 2797, 2807, 2827, 9568, 2802, 2819, 2812, 2818, 877 2815, 2824, 2829, 2813, 2839, 2834, 2841, 2851, 2840, 2850, 878 2877, 2865, 2861, 2856, 2866, 2878, 2867, 2882, 2879, 2870, 879 2886, 2883, 2891, 2892, 2893, 2897, 2901, 2928, 2930, 2913, 880 2934, 2917, 2918, 2937, 2939, 2929, 2922, 2947, 2945, 2925, 881 2935, 2942, 2948, 2952, 2958, 2981, 2960, 2982, 2965, 2979, 882 883 2993, 2974, 2986, 2994, 2969, 2985, 2997, 2996, 9568, 2976, 884 3011, 9568, 3001, 2999, 3009, 3055, 3034, 3036, 3028, 3004, 885 3020, 3046, 3038, 3042, 3054, 3061, 3079, 3069, 3070, 3085, 886 3077, 3094, 3083, 3102, 3086, 3087, 3103, 3106, 3112, 3119, 887 3125, 3128, 3131, 381, 3130, 3110, 3121, 3120, 3167, 3137, 888 3145, 3129, 3151, 3152, 3156, 3174, 3157, 3170, 3172, 3169, 889 3165, 3198, 3192, 3188, 3194, 3199, 3205, 3207, 3202, 9568, 890 3212, 3220, 3208, 3219, 3215, 3241, 3235, 3226, 9568, 3234, 891 3239, 3236, 3246, 3247, 3238, 3253, 3244, 3255, 3261, 3265, 892 3251, 3267, 3280, 3272, 3295, 9568, 3282, 9568, 3279, 3285, 893 894 3283, 3287, 3297, 3296, 3312, 3313, 9568, 9568, 3314, 3321, 895 3299, 3326, 3322, 3320, 3323, 9568, 3327, 3356, 9568, 3333, 896 3349, 3341, 3339, 3351, 3347, 3358, 3354, 3377, 3353, 3380, 897 3372, 3379, 3374, 9568, 3386, 3370, 3385, 3397, 3392, 3394, 898 3400, 3404, 3383, 9568, 3414, 3407, 3419, 3431, 3428, 3424, 899 3421, 3434, 3441, 3422, 3426, 3436, 3435, 3430, 3449, 3459, 900 3466, 3468, 3469, 3464, 9568, 3457, 3458, 3482, 3476, 3479, 901 3480, 3483, 3470, 3485, 3484, 3491, 3502, 3512, 3505, 3508, 902 3503, 3529, 3530, 3511, 3528, 3527, 3515, 3531, 3524, 91, 903 3519, 3532, 3543, 3540, 9568, 3547, 3548, 3549, 128, 3557, 904 905 3558, 3567, 3572, 3574, 3578, 3560, 3586, 3587, 3575, 3585, 906 3593, 3592, 3589, 3594, 3604, 3596, 3606, 3619, 3600, 3610, 907 9568, 3628, 3618, 3616, 3624, 3635, 3620, 3644, 9568, 3646, 908 3647, 3652, 3654, 3662, 3651, 3661, 3653, 3668, 3673, 3678, 909 3674, 3685, 3689, 3684, 3691, 3687, 9568, 3703, 3699, 3710, 910 3707, 3712, 3718, 3714, 3713, 3720, 3719, 3724, 3733, 3725, 911 3731, 3734, 3745, 3746, 3750, 3742, 3747, 3751, 3759, 3761, 912 3760, 3769, 3763, 3772, 3774, 3765, 9568, 3805, 3787, 3790, 913 3799, 3791, 3794, 3808, 3803, 3825, 3800, 3809, 3820, 3821, 914 3860, 3826, 3835, 3848, 3827, 3840, 3849, 3862, 3854, 3872, 915 916 3863, 3853, 3881, 3900, 3887, 3866, 3885, 3893, 3892, 3888, 917 3898, 3922, 3923, 3921, 3924, 3947, 3930, 3917, 3932, 3939, 918 3941, 9568, 3942, 3836, 3927, 3955, 3975, 3962, 3954, 3972, 919 3966, 3969, 3968, 3981, 3970, 3990, 3985, 3993, 3992, 4004, 920 3996, 4007, 4008, 4003, 3997, 4013, 4025, 4011, 4029, 4030, 921 9568, 4036, 4041, 4028, 4035, 4050, 4031, 4054, 4059, 4056, 922 4043, 4048, 4065, 4052, 4073, 4062, 4075, 4058, 4088, 4066, 923 9568, 4092, 4083, 4096, 4091, 4099, 4089, 4103, 4109, 4115, 924 4113, 4116, 4111, 4100, 4127, 4124, 9568, 4118, 4149, 4141, 925 4154, 4143, 4131, 4142, 4155, 4139, 9568, 4145, 4147, 4148, 926 927 4162, 4168, 4172, 9568, 4170, 4176, 4164, 4165, 4181, 4174, 928 4182, 4201, 4186, 4189, 4192, 4199, 4207, 4195, 4216, 9568, 929 4205, 4230, 4217, 4227, 4231, 4226, 4223, 4234, 4251, 4233, 930 4244, 4241, 9568, 4269, 4243, 4261, 4280, 4258, 4263, 4266, 931 4276, 4282, 4273, 4274, 4290, 4278, 9568, 4283, 4288, 4301, 932 4311, 4309, 4302, 4304, 4307, 4314, 4308, 4316, 4317, 4322, 933 4329, 4340, 4335, 4346, 4334, 4349, 4354, 4350, 4357, 4343, 934 4359, 4373, 4376, 4369, 4374, 4382, 4364, 4368, 4392, 4399, 935 4403, 4404, 4401, 4405, 9568, 4408, 4407, 4409, 4394, 4410, 936 4400, 4398, 4416, 4419, 4424, 4434, 4443, 4438, 4435, 4458, 937 938 4460, 4436, 4463, 4440, 4447, 4467, 4468, 4453, 4457, 4470, 939 4462, 4487, 4475, 4483, 4479, 4490, 4510, 4489, 4493, 4494, 940 4499, 4495, 4503, 4514, 4506, 4528, 4519, 4523, 4520, 4527, 941 4543, 4539, 4545, 4535, 4551, 4540, 4555, 9568, 4546, 4558, 942 4562, 4559, 4565, 4568, 4578, 4598, 4582, 4586, 4589, 4592, 943 4603, 4591, 4602, 4605, 4595, 4608, 4600, 9568, 4610, 9568, 944 4612, 4626, 4616, 4641, 4625, 9568, 4640, 9568, 4643, 4648, 945 4634, 4635, 9568, 4653, 4637, 4654, 4658, 4661, 4644, 4647, 946 4664, 4668, 4678, 4680, 4681, 4683, 4675, 4667, 4696, 4690, 947 4693, 4707, 4686, 4715, 4714, 4702, 4720, 4708, 4725, 4728, 948 949 4724, 4735, 9568, 4719, 4717, 4738, 4723, 4734, 4744, 4741, 950 4768, 4767, 4755, 4757, 4773, 4765, 4771, 4759, 4785, 4783, 951 4794, 4770, 4796, 9568, 4791, 4807, 4789, 4803, 9568, 4806, 952 4795, 4812, 4823, 4814, 4802, 4810, 4839, 4826, 4830, 4831, 953 4829, 4856, 4836, 4840, 4841, 9568, 4852, 4868, 4853, 4879, 954 4864, 4870, 4886, 4872, 4883, 4889, 4897, 4880, 4881, 4875, 955 4895, 4876, 4912, 4903, 4923, 4920, 4924, 4904, 4921, 4928, 956 4929, 4917, 4913, 4916, 4918, 4943, 4944, 4919, 4940, 4945, 957 4964, 4950, 9568, 4956, 4961, 4962, 4979, 4960, 4970, 4974, 958 4976, 4977, 9568, 4978, 4988, 5004, 4987, 5010, 4997, 5002, 959 960 4995, 5000, 5014, 5005, 5021, 5040, 5017, 9568, 5036, 9568, 961 5032, 5031, 5042, 5053, 5050, 5046, 5063, 5054, 5055, 5067, 962 5060, 5069, 5078, 5072, 5076, 5079, 5095, 5091, 5045, 5075, 963 5089, 5101, 5090, 5096, 5103, 5126, 5106, 5117, 9568, 9568, 964 5115, 5121, 5131, 5127, 5136, 5142, 5149, 5148, 5146, 5134, 965 5141, 5153, 5186, 9568, 5168, 5170, 5161, 5187, 5195, 5175, 966 5194, 5201, 5198, 5190, 5205, 5200, 9568, 5188, 5197, 5210, 967 5213, 5220, 5212, 9568, 5228, 9568, 5215, 5222, 5235, 5237, 968 5231, 5232, 5238, 5240, 5248, 5256, 5262, 5247, 5266, 5257, 969 5258, 5259, 5280, 5275, 5287, 5268, 5281, 5273, 9568, 5292, 970 971 5274, 5295, 5293, 5301, 5304, 5302, 5289, 9568, 5315, 5308, 972 5310, 5313, 5318, 5322, 5334, 5329, 5337, 5335, 5336, 9568, 973 5333, 5326, 5356, 5353, 5340, 5349, 5366, 5369, 5377, 9568, 974 5373, 5375, 5374, 5381, 5376, 5385, 5383, 5370, 5367, 5380, 975 5391, 5401, 5414, 5411, 5410, 5408, 5416, 5417, 5404, 5440, 976 5427, 5415, 5429, 5400, 5413, 9568, 5436, 5441, 5442, 5444, 977 5463, 5459, 5461, 5470, 5474, 5456, 5477, 5479, 5457, 5472, 978 5481, 5490, 5500, 5495, 9568, 5501, 5491, 5515, 5486, 5513, 979 5512, 5499, 5518, 5514, 5517, 5503, 5526, 5528, 5530, 5520, 980 5551, 5534, 5542, 5546, 5553, 5547, 9568, 5576, 5558, 5562, 981 982 5573, 5541, 5568, 5587, 5579, 5578, 5580, 5584, 5582, 5585, 983 5596, 5595, 5618, 5620, 5604, 9568, 9568, 5621, 5602, 5623, 984 9568, 5625, 5609, 5631, 5633, 5628, 5626, 5635, 5629, 5613, 985 5636, 5644, 5651, 9568, 5668, 5677, 5654, 5672, 5680, 5681, 986 9568, 5663, 5685, 5684, 5686, 5678, 5669, 5696, 5690, 5695, 987 5701, 5694, 5723, 5708, 5731, 5707, 5717, 5729, 9568, 5710, 988 5714, 5734, 5738, 5721, 5728, 9568, 5726, 5748, 5761, 5758, 989 5759, 5769, 5767, 5766, 5773, 5753, 5770, 5780, 5776, 5763, 990 5785, 5792, 5787, 5801, 5813, 5814, 5812, 9568, 5808, 5807, 991 5800, 5821, 9568, 5822, 5830, 5797, 9568, 5836, 5811, 5841, 992 993 5839, 5857, 9568, 5842, 5849, 5843, 5831, 5864, 5838, 5866, 994 5862, 5859, 9568, 5863, 5858, 5869, 9568, 5876, 5887, 5872, 995 5892, 5880, 5902, 5889, 5903, 5899, 5901, 9568, 5904, 9568, 996 5914, 5906, 5911, 9568, 5913, 5922, 5915, 5921, 5937, 5938, 997 5945, 5948, 5953, 5935, 5947, 5936, 5939, 5963, 5952, 5964, 998 5942, 5959, 5970, 5962, 9568, 5992, 5978, 5989, 5979, 6000, 999 6002, 5995, 5987, 6005, 6017, 9568, 9568, 6009, 9568, 6015, 1000 5997, 6023, 9568, 6006, 6027, 6022, 6026, 6045, 6049, 6047, 1001 6044, 9568, 6055, 6057, 9568, 6033, 6053, 6066, 6060, 6042, 1002 6061, 6062, 6068, 6071, 6084, 6085, 6086, 6087, 6076, 6090, 1003 1004 6103, 9568, 6080, 6083, 6104, 6115, 6107, 6117, 6118, 6130, 1005 6119, 9568, 6133, 6145, 6123, 6146, 6148, 9568, 6131, 9568, 1006 6136, 6144, 6149, 6157, 6150, 9568, 6168, 6165, 6156, 6163, 1007 6180, 6191, 6182, 6194, 6183, 6178, 6196, 6195, 6190, 6192, 1008 6213, 6207, 9568, 6205, 6219, 6202, 6210, 6220, 6216, 6244, 1009 6240, 6239, 6230, 6242, 6249, 6243, 6251, 6253, 6247, 6259, 1010 6266, 9568, 6278, 6271, 6267, 6297, 6277, 6286, 6291, 9568, 1011 6294, 6296, 6302, 9568, 6299, 6300, 6310, 6308, 6313, 6314, 1012 6309, 6324, 6327, 9568, 6333, 6336, 6323, 6339, 6350, 6340, 1013 9568, 9568, 6362, 9568, 6347, 6334, 6358, 6360, 6361, 6370, 1014 1015 6356, 6382, 6390, 6374, 6388, 6389, 6383, 6376, 6404, 6407, 1016 6412, 6408, 6406, 6402, 9568, 9568, 6424, 6427, 6421, 6432, 1017 6435, 6425, 6429, 6417, 6438, 6439, 6445, 6441, 6431, 9568, 1018 6456, 6451, 6457, 6455, 9568, 6452, 6476, 6462, 6478, 6486, 1019 6472, 6479, 6474, 6487, 6488, 6496, 6503, 6482, 6506, 6499, 1020 6509, 6504, 6513, 6523, 6522, 6521, 6529, 9568, 6533, 6526, 1021 6538, 6519, 6520, 6548, 6537, 6549, 6552, 9568, 6536, 9568, 1022 6564, 6556, 6568, 6578, 6581, 6582, 6583, 6576, 6579, 6585, 1023 6591, 6590, 6594, 6599, 6600, 6609, 6601, 6621, 6611, 6624, 1024 6626, 9568, 6627, 6614, 6617, 6623, 6639, 6640, 6628, 6643, 1025 1026 6638, 6645, 6648, 6641, 6652, 6669, 6657, 6667, 6664, 6658, 1027 9568, 6675, 6681, 6668, 6682, 6670, 6683, 6690, 6685, 6692, 1028 6699, 6696, 6698, 9568, 6706, 6703, 6724, 9568, 6709, 6708, 1029 6717, 6730, 6737, 6720, 6735, 6726, 6727, 9568, 6743, 6745, 1030 6748, 6736, 6753, 6756, 6752, 6759, 6764, 6779, 6791, 9568, 1031 6757, 6776, 6780, 6790, 6772, 6783, 6792, 6799, 6763, 9568, 1032 6815, 6822, 6787, 6798, 6807, 6835, 6832, 6834, 6808, 6830, 1033 6838, 6836, 6842, 6844, 6847, 6859, 6849, 6855, 6848, 9568, 1034 6857, 9568, 6858, 6880, 6863, 6886, 6883, 6869, 9568, 6876, 1035 6882, 6893, 6884, 6896, 9568, 6885, 6890, 6912, 6909, 9568, 1036 1037 6925, 6924, 6910, 6919, 6934, 6937, 9568, 6935, 6939, 6936, 1038 6945, 6948, 6940, 6944, 6933, 6952, 6958, 6959, 6962, 6976, 1039 6955, 6964, 6979, 9568, 6983, 6985, 6990, 6989, 6986, 6992, 1040 6982, 7003, 6993, 7005, 9568, 7019, 7006, 7011, 7009, 7021, 1041 7015, 7022, 7042, 7033, 7029, 7036, 7038, 7054, 7040, 9568, 1042 7052, 7056, 7063, 7046, 7062, 7069, 9568, 7066, 9568, 7073, 1043 7076, 7082, 7079, 7091, 9568, 9568, 7090, 7049, 7089, 7080, 1044 7099, 9568, 9568, 7110, 9568, 7093, 9568, 7109, 7097, 9568, 1045 9568, 7117, 7103, 7120, 7126, 7115, 9568, 7127, 9568, 7138, 1046 7133, 7130, 7121, 7136, 9568, 7132, 7142, 7150, 7152, 7139, 1047 1048 9568, 7158, 7160, 7153, 7159, 9568, 7175, 7173, 7163, 7165, 1049 9568, 7180, 7184, 7188, 7177, 7187, 7192, 7203, 7185, 7202, 1050 7194, 7208, 7198, 7207, 7212, 7228, 7231, 7236, 7237, 7226, 1051 7223, 7242, 7245, 7248, 7239, 7240, 7250, 7244, 7256, 7261, 1052 7257, 7259, 7271, 7269, 7278, 7277, 7272, 7286, 7273, 7274, 1053 7290, 7297, 7276, 7295, 7298, 7299, 7300, 7316, 7309, 7321, 1054 7317, 7319, 9568, 7313, 7325, 7312, 7342, 7337, 7344, 7348, 1055 7354, 7356, 7359, 9568, 7362, 9568, 7364, 7350, 7355, 7369, 1056 7352, 9568, 7377, 7380, 7378, 7379, 7375, 7381, 7383, 7389, 1057 7395, 7396, 7402, 9568, 7417, 7404, 7410, 7411, 7419, 9568, 1058 1059 7412, 7433, 7416, 7424, 7428, 7437, 7431, 7436, 7440, 7438, 1060 7450, 7453, 7446, 7460, 7462, 7470, 7471, 7477, 7464, 7459, 1061 7469, 7476, 7480, 7472, 7486, 7489, 7473, 7508, 7509, 7510, 1062 9568, 7495, 9568, 7515, 7499, 7513, 7500, 7523, 7512, 7527, 1063 9568, 9568, 7529, 7531, 7530, 7533, 7526, 7543, 7551, 7550, 1064 7559, 9568, 7552, 7560, 7566, 7555, 9568, 7554, 7577, 7578, 1065 7572, 9568, 7573, 7574, 7576, 7584, 7587, 7588, 7603, 7593, 1066 7600, 7601, 7599, 7609, 9568, 9568, 9568, 9568, 7617, 7610, 1067 7621, 7625, 7626, 7614, 7622, 7634, 7627, 9568, 7647, 9568, 1068 9568, 7646, 7650, 7643, 7658, 7648, 7641, 7653, 7659, 9568, 1069 1070 7649, 7666, 7674, 7673, 7672, 7681, 7692, 7689, 7690, 7684, 1071 7685, 7709, 7700, 7706, 7682, 7708, 7710, 7714, 9568, 9568, 1072 7712, 7718, 7717, 7726, 7723, 7733, 7729, 7736, 7742, 7744, 1073 7739, 7747, 7750, 7730, 7759, 7764, 7756, 7755, 9568, 7765, 1074 7763, 7776, 9568, 7769, 9568, 7775, 7782, 7766, 7785, 7788, 1075 7791, 7803, 7792, 9568, 9568, 7795, 7810, 7811, 9568, 9568, 1076 7802, 7796, 7807, 7820, 7825, 7814, 7827, 7824, 7835, 7823, 1077 9568, 7830, 9568, 7829, 7851, 7846, 7840, 7863, 7866, 7869, 1078 7868, 7862, 7872, 9568, 7871, 7861, 9568, 7876, 7878, 7875, 1079 7873, 7894, 9568, 7883, 7867, 7886, 7891, 9568, 7915, 7912, 1080 1081 7914, 9568, 7917, 9568, 7900, 7918, 7910, 7929, 7913, 9568, 1082 7906, 7927, 9568, 7930, 7931, 7932, 7921, 9568, 7933, 9568, 1083 7943, 7938, 7965, 7964, 7952, 7968, 7956, 7953, 7958, 7978, 1084 7974, 7973, 9568, 9568, 73, 7981, 7959, 7983, 7986, 7991, 1085 7980, 7962, 7984, 8002, 9568, 9568, 8007, 9568, 8008, 8014, 1086 9568, 7994, 8020, 8021, 8009, 8032, 8013, 8005, 8024, 8028, 1087 8042, 8057, 8047, 8043, 8055, 8071, 8072, 8054, 8075, 8076, 1088 8078, 8084, 8090, 8070, 8087, 8074, 8081, 8088, 8097, 8104, 1089 8101, 8102, 8103, 9568, 8125, 8126, 8124, 8114, 9568, 8133, 1090 8128, 8138, 8134, 9568, 8140, 8136, 8137, 8147, 9568, 8130, 1091 1092 8142, 8154, 8159, 8151, 8160, 8161, 8182, 8166, 8175, 8185, 1093 9568, 9568, 9568, 8186, 8180, 9568, 8190, 8178, 8169, 8181, 1094 9568, 8200, 8195, 8198, 9568, 9568, 8203, 8205, 8209, 8206, 1095 9568, 8208, 9568, 8213, 9568, 8218, 8219, 8237, 8230, 9568, 1096 8243, 8258, 9568, 8215, 8244, 8249, 8245, 8233, 8250, 8247, 1097 9568, 8263, 8268, 8277, 8267, 8260, 8271, 8270, 8279, 8274, 1098 8293, 8287, 8299, 9568, 8298, 8303, 8310, 8306, 8294, 8301, 1099 8309, 9568, 8311, 9568, 8317, 9568, 8314, 8319, 8318, 8338, 1100 8334, 8329, 8344, 8355, 8356, 8353, 8345, 8340, 8364, 8349, 1101 9568, 9568, 8369, 8370, 9568, 8365, 9568, 8373, 9568, 8372, 1102 1103 8378, 8382, 8376, 9568, 8385, 8384, 8392, 8328, 8379, 8391, 1104 9568, 8406, 8400, 8397, 8417, 9568, 9568, 8403, 8425, 8421, 1105 9568, 8413, 8422, 8432, 8418, 8436, 8431, 8430, 8427, 8451, 1106 8437, 8448, 8441, 8467, 8468, 8469, 9568, 9568, 9568, 8464, 1107 8452, 8478, 8477, 8481, 8485, 8474, 9568, 8488, 8486, 8495, 1108 8483, 8490, 8489, 8509, 9568, 8511, 8503, 8499, 8501, 8518, 1109 8512, 8516, 8526, 9568, 8525, 8537, 8539, 8528, 8541, 8540, 1110 8547, 8549, 8543, 8534, 8559, 8552, 9568, 8563, 9568, 9568, 1111 8553, 9568, 8555, 8566, 8567, 8564, 9568, 8575, 8569, 8578, 1112 8571, 8580, 8592, 8581, 8603, 9568, 8583, 8586, 8590, 8613, 1113 1114 9568, 9568, 8611, 9568, 8614, 8615, 8607, 8628, 8617, 8623, 1115 8625, 8627, 9568, 8619, 8633, 8630, 8637, 8645, 9568, 8655, 1116 8642, 8647, 8648, 9568, 8652, 8657, 8669, 8644, 8672, 9568, 1117 8676, 8671, 8688, 8680, 9568, 8682, 8690, 8692, 9568, 9568, 1118 8689, 8701, 8706, 9568, 9568, 9568, 8711, 8716, 8703, 8723, 1119 9568, 8724, 4983, 8727, 8736, 8735, 9568, 8726, 8732, 8740, 1120 8728, 8730, 9568, 9568, 8725, 8749, 8751, 8747, 9568, 9568, 1121 8750, 8753, 8757, 8755, 8766, 9568, 8752, 8776, 8788, 8765, 1122 8786, 8779, 8790, 8792, 8805, 8803, 8782, 8784, 8793, 8813, 1123 8819, 8806, 8810, 8828, 8821, 8829, 8835, 8823, 8831, 9568, 1124 1125 9568, 8839, 9568, 8842, 8834, 9568, 9568, 8844, 8847, 8849, 1126 8853, 8857, 8859, 8860, 8864, 8841, 9568, 8863, 8873, 8866, 1127 8865, 8858, 9568, 8862, 8879, 8868, 8869, 8876, 8896, 8886, 1128 8898, 9568, 9568, 8889, 8908, 8891, 8913, 8894, 9568, 8916, 1129 8925, 8915, 8921, 8903, 8909, 8931, 9568, 8939, 8923, 9568, 1130 9568, 8933, 8936, 9568, 9568, 8935, 9568, 9568, 9568, 9568, 1131 9568, 9568, 9568, 9568, 8950, 8954, 9568, 8952, 8967, 8968, 1132 8969, 9568, 8948, 8964, 8966, 8956, 8972, 9568, 8962, 8979, 1133 8975, 8999, 8989, 9007, 8992, 8991, 8993, 8998, 8996, 9000, 1134 9013, 8997, 9024, 9012, 9025, 9043, 9026, 9039, 9568, 9568, 1135 1136 9568, 9031, 9027, 9050, 9052, 9055, 9058, 9062, 9063, 9048, 1137 9049, 9065, 9073, 9075, 9056, 9072, 9070, 9077, 9086, 9079, 1138 9093, 9083, 9101, 9568, 9109, 9097, 9096, 9116, 9568, 9102, 1139 9568, 9104, 9568, 9568, 9119, 9120, 9118, 9108, 9137, 9138, 1140 9136, 9128, 9132, 9129, 9140, 9568, 9152, 9568, 9568, 9139, 1141 9142, 9568, 9143, 9154, 9568, 9153, 9166, 9155, 9159, 9163, 1142 9156, 9183, 9186, 9192, 9568, 9568, 9177, 9178, 9187, 9194, 1143 9190, 9212, 9207, 9204, 9211, 9215, 9210, 9217, 9568, 9225, 1144 9221, 9227, 9568, 9224, 9213, 9223, 9222, 9239, 9250, 9242, 1145 9233, 9568, 9262, 9568, 9264, 9266, 9260, 9252, 9253, 9254, 1146 1147 9269, 9277, 9273, 9568, 9257, 9294, 9284, 9300, 9305, 9302, 1148 9308, 9293, 9314, 9311, 9317, 9318, 9324, 9329, 9321, 9320, 1149 9330, 9568, 9323, 9334, 9568, 9332, 9350, 9335, 9341, 9364, 1150 9568, 9366, 9351, 9352, 9368, 9372, 9367, 9568, 9373, 9375, 1151 9376, 9568, 9379, 9568, 9568, 9380, 9386, 9389, 9388, 9390, 1152 9568, 9568, 9568, 9448, 9455, 9462, 9469, 9476, 9483, 9490, 1153 102, 9497, 9504, 9511, 9518, 9525, 9532, 9539, 9546, 9553, 1154 9560 1155 } ; 1156 1157 static const flex_int16_t yy_def[3372] = 1158 { 0, 1159 3353, 1, 3354, 3354, 3355, 3355, 3356, 3356, 3357, 3357, 1160 3358, 3358, 3359, 3359, 3360, 3360, 3353, 3361, 3353, 3353, 1161 3353, 3353, 3362, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1162 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1163 3361, 3361, 3361, 3361, 3361, 3361, 3363, 3353, 3353, 3353, 1164 3363, 3364, 3353, 3353, 3353, 3364, 3365, 3353, 3353, 3353, 1165 3353, 3365, 3366, 3353, 3353, 3353, 3366, 3367, 3353, 3368, 1166 3353, 3367, 3367, 3369, 3353, 3353, 3353, 3353, 3369, 3370, 1167 3353, 3353, 3353, 3370, 3361, 3361, 3353, 3371, 3362, 3371, 1168 3362, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1169 1170 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1171 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1172 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1173 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1174 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1175 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3363, 1176 3363, 3364, 3364, 3365, 3365, 3353, 3366, 3366, 3367, 3367, 1177 3368, 3368, 3367, 3369, 3369, 3353, 3370, 3370, 3361, 3361, 1178 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1179 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1180 1181 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1182 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1183 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1184 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1185 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1186 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1187 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1188 3361, 3367, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1189 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1190 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1191 1192 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1193 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1194 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1195 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1196 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1197 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 1198 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1199 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 1200 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3367, 3361, 3361, 1201 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1202 1203 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1204 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1205 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1206 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1207 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1208 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1209 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3361, 1210 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 1211 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1212 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1213 1214 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 1215 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1216 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1217 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3367, 1218 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1219 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1220 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1221 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1222 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1223 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1224 1225 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 1226 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1227 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1228 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1229 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1230 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1231 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1232 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1233 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1234 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1235 1236 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1237 3361, 3361, 3367, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1238 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 1239 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1240 3353, 3361, 3353, 3353, 3361, 3353, 3353, 3361, 3361, 3353, 1241 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1242 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1243 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1244 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1245 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1246 1247 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1248 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1249 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 1250 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1251 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 1252 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1253 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1254 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1255 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1256 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1257 1258 3367, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 1259 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1260 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1261 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1262 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1263 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1264 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 1265 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 1266 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1267 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3361, 3361, 1268 1269 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 1270 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3353, 3361, 1271 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1272 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 1273 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 1274 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1275 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 1276 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1277 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1278 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3367, 3367, 3361, 1279 1280 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1281 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1282 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 1283 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1284 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 1285 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1286 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1287 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 1288 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1289 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1290 1291 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1292 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1293 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1294 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1295 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1296 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1297 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1298 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1299 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 1300 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3367, 3361, 3361, 1301 1302 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 1303 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 1304 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1305 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1306 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 1307 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1308 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1309 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1310 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 1311 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1312 1313 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1314 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1315 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1316 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 1317 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1318 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 1319 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3361, 3361, 1320 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1321 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1322 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1323 1324 3361, 3361, 3353, 3361, 3367, 3361, 3361, 3361, 3361, 3361, 1325 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1326 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, 1327 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1328 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 1329 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1330 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1331 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1332 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1333 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1334 1335 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 1336 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1337 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1338 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3353, 1339 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1340 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 1341 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 1342 3361, 3361, 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 1343 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1344 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 1345 1346 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3367, 3361, 1347 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 1348 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 1349 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1350 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1351 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 1352 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1353 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 1354 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1355 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 1356 1357 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1358 3361, 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, 1359 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1360 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 1361 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1362 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 1363 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 1364 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1365 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 1366 3361, 3361, 3353, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 1367 1368 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1369 3367, 3361, 3353, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 1370 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 1371 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 1372 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1373 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 1374 3361, 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3353, 3361, 1375 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1376 3361, 3353, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 1377 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1378 1379 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1380 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 1381 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 1382 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1383 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1384 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1385 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 1386 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 1387 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 1388 3353, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 1389 1390 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3367, 3361, 3361, 1391 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, 3361, 1392 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 1393 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 1394 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1395 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 1396 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 1397 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1398 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1399 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1400 1401 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1402 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1403 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3353, 3361, 3361, 1404 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 1405 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 1406 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 1407 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1408 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 1409 3361, 3353, 3361, 3361, 3361, 3361, 3367, 3361, 3353, 3361, 1410 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 1411 1412 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 1413 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1414 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 1415 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 1416 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 1417 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3361, 1418 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, 3361, 1419 3361, 3353, 3353, 3361, 3353, 3361, 3353, 3361, 3361, 3353, 1420 3353, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3361, 1421 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 1422 1423 3353, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 1424 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1425 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1426 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1427 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1428 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3367, 3361, 3361, 1429 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1430 3361, 3361, 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 1431 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1432 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3353, 1433 1434 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1435 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1436 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1437 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1438 3353, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1439 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 1440 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1441 3361, 3361, 3361, 3361, 3353, 3353, 3353, 3353, 3361, 3361, 1442 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 1443 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 1444 1445 3361, 3361, 3361, 3361, 3361, 3361, 3367, 3361, 3361, 3361, 1446 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3353, 1447 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1448 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 1449 3361, 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 1450 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, 3353, 3353, 1451 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1452 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1453 3361, 3361, 3361, 3353, 3361, 3361, 3353, 3361, 3361, 3361, 1454 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 1455 1456 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3353, 1457 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 1458 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1459 3361, 3361, 3353, 3353, 3367, 3361, 3361, 3361, 3361, 3361, 1460 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3353, 3361, 3361, 1461 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1462 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1463 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1464 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, 1465 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, 1466 1467 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1468 3353, 3353, 3353, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 1469 3353, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, 3361, 1470 3353, 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 1471 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1472 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1473 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 1474 3361, 3353, 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 1475 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1476 3353, 3353, 3361, 3361, 3353, 3361, 3353, 3361, 3353, 3361, 1477 1478 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 1479 3353, 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, 1480 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1481 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3353, 3353, 3361, 1482 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 1483 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 1484 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 1485 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3353, 1486 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 1487 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 1488 1489 3353, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 1490 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 1491 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3353, 1492 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3353, 3353, 1493 3361, 3361, 3361, 3353, 3353, 3353, 3361, 3361, 3361, 3361, 1494 3353, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 1495 3361, 3361, 3353, 3353, 3361, 3361, 3361, 3361, 3353, 3353, 1496 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 1497 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1498 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 1499 1500 3353, 3361, 3353, 3361, 3361, 3353, 3353, 3361, 3361, 3361, 1501 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 1502 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1503 3361, 3353, 3353, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 1504 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3353, 1505 3353, 3361, 3361, 3353, 3353, 3361, 3353, 3353, 3353, 3353, 1506 3353, 3353, 3353, 3353, 3361, 3361, 3353, 3361, 3361, 3361, 1507 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 1508 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1509 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3353, 1510 1511 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1512 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1513 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, 1514 3353, 3361, 3353, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 1515 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3353, 3361, 1516 3361, 3353, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 1517 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, 3361, 1518 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 1519 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1520 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 1521 1522 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 1523 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 1524 3361, 3353, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 1525 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 1526 3361, 3353, 3361, 3353, 3353, 3361, 3361, 3361, 3361, 3361, 1527 3353, 3353, 0, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 1528 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 1529 3353 1530 } ; 1531 1532 static const flex_int16_t yy_nxt[9635] = 1533 { 0, 1534 18, 19, 20, 21, 22, 23, 22, 18, 18, 18, 1535 18, 18, 22, 24, 25, 26, 27, 28, 29, 18, 1536 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 1537 40, 41, 42, 43, 44, 18, 18, 18, 45, 46, 1538 24, 25, 26, 27, 28, 29, 18, 30, 31, 32, 1539 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 1540 43, 44, 18, 18, 18, 45, 48, 49, 50, 48, 1541 49, 50, 53, 54, 53, 54, 55, 119, 55, 58, 1542 59, 60, 61, 120, 22, 58, 59, 60, 61, 86, 1543 22, 64, 65, 66, 64, 65, 66, 87, 160, 160, 1544 1545 1291, 88, 85, 51, 119, 86, 51, 167, 167, 56, 1546 120, 56, 170, 75, 76, 77, 78, 62, 22, 75, 1547 76, 77, 78, 62, 22, 81, 82, 83, 67, 97, 1548 86, 67, 19, 20, 21, 69, 70, 71, 19, 20, 1549 21, 69, 70, 71, 81, 82, 83, 121, 108, 177, 1550 177, 79, 72, 159, 409, 86, 97, 79, 72, 86, 1551 137, 90, 84, 90, 90, 86, 90, 170, 109, 178, 1552 73, 86, 90, 86, 121, 108, 73, 176, 87, 72, 1553 159, 84, 88, 86, 130, 72, 112, 137, 110, 162, 1554 86, 175, 162, 173, 113, 109, 98, 170, 188, 91, 1555 1556 92, 93, 111, 99, 94, 114, 170, 100, 187, 95, 1557 101, 130, 86, 112, 86, 110, 86, 86, 96, 168, 1558 173, 113, 86, 98, 86, 188, 166, 92, 93, 111, 1559 99, 94, 114, 165, 100, 187, 95, 101, 85, 162, 1560 85, 85, 162, 85, 163, 96, 102, 161, 115, 85, 1561 103, 116, 189, 104, 181, 105, 106, 252, 117, 164, 1562 118, 164, 164, 292, 164, 86, 107, 90, 86, 90, 1563 90, 86, 90, 102, 86, 115, 122, 103, 116, 189, 1564 104, 181, 105, 106, 123, 117, 180, 118, 126, 86, 1565 124, 86, 127, 107, 125, 86, 156, 160, 160, 148, 1566 1567 157, 149, 86, 122, 158, 172, 128, 178, 129, 86, 1568 150, 123, 176, 180, 86, 126, 151, 124, 179, 127, 1569 175, 125, 86, 156, 152, 86, 148, 157, 149, 167, 1570 167, 158, 170, 128, 153, 129, 131, 150, 154, 155, 1571 132, 182, 86, 151, 133, 179, 328, 86, 168, 205, 1572 134, 152, 169, 135, 169, 169, 86, 169, 86, 184, 1573 136, 153, 86, 131, 195, 154, 155, 132, 182, 86, 1574 174, 133, 174, 174, 166, 174, 205, 134, 86, 85, 1575 135, 85, 85, 86, 85, 332, 184, 136, 138, 1148, 1576 85, 195, 139, 90, 183, 90, 90, 206, 90, 185, 1577 1578 165, 86, 140, 141, 90, 142, 86, 193, 194, 197, 1579 196, 163, 186, 161, 86, 138, 86, 86, 86, 139, 1580 86, 183, 86, 86, 206, 240, 185, 198, 3353, 140, 1581 141, 91, 142, 143, 193, 194, 144, 196, 190, 186, 1582 199, 86, 201, 145, 191, 200, 192, 146, 147, 86, 1583 334, 86, 240, 86, 198, 86, 207, 3353, 86, 86, 1584 143, 208, 3353, 144, 209, 190, 215, 199, 86, 201, 1585 145, 191, 200, 192, 146, 147, 202, 203, 211, 86, 1586 210, 212, 86, 207, 204, 228, 86, 3353, 208, 217, 1587 216, 209, 86, 86, 213, 214, 3353, 86, 86, 86, 1588 1589 225, 3353, 86, 202, 203, 211, 218, 210, 212, 226, 1590 220, 204, 228, 86, 221, 223, 217, 216, 227, 229, 1591 224, 213, 214, 86, 232, 230, 219, 225, 86, 253, 1592 222, 86, 86, 218, 86, 231, 226, 220, 86, 86, 1593 233, 221, 223, 86, 86, 227, 229, 224, 235, 86, 1594 234, 232, 230, 219, 237, 236, 253, 222, 238, 86, 1595 3353, 239, 231, 86, 86, 241, 245, 233, 86, 246, 1596 86, 86, 86, 3353, 242, 235, 86, 234, 86, 247, 1597 248, 237, 236, 243, 251, 238, 3353, 86, 239, 244, 1598 3353, 249, 241, 245, 257, 250, 246, 86, 86, 3353, 1599 1600 254, 242, 259, 261, 86, 258, 247, 248, 262, 86, 1601 243, 251, 267, 86, 86, 260, 244, 255, 249, 86, 1602 256, 257, 250, 86, 263, 266, 86, 254, 268, 259, 1603 261, 270, 258, 264, 86, 262, 277, 269, 272, 267, 1604 86, 271, 260, 86, 255, 265, 86, 256, 86, 86, 1605 3353, 263, 266, 86, 86, 268, 177, 177, 270, 3353, 1606 264, 3353, 170, 277, 269, 272, 3353, 273, 271, 3353, 1607 3353, 164, 265, 164, 164, 169, 164, 169, 169, 90, 1608 169, 90, 90, 174, 90, 174, 174, 274, 174, 86, 1609 3353, 276, 3353, 280, 273, 278, 281, 282, 283, 284, 1610 1611 86, 275, 279, 3353, 285, 86, 338, 3353, 3353, 86, 1612 86, 86, 286, 290, 86, 86, 291, 172, 276, 86, 1613 280, 86, 278, 281, 282, 283, 284, 287, 275, 279, 1614 86, 285, 340, 288, 289, 86, 86, 293, 86, 286, 1615 290, 294, 86, 291, 301, 303, 3353, 302, 306, 3353, 1616 307, 304, 308, 86, 305, 314, 310, 86, 295, 86, 1617 288, 289, 86, 86, 86, 86, 311, 86, 294, 3353, 1618 86, 301, 303, 86, 302, 306, 86, 307, 304, 86, 1619 309, 305, 314, 310, 86, 295, 296, 312, 86, 318, 1620 317, 297, 313, 311, 326, 370, 298, 315, 86, 86, 1621 1622 316, 86, 299, 300, 319, 86, 325, 309, 3353, 86, 1623 3353, 86, 86, 296, 312, 329, 318, 317, 297, 313, 1624 86, 326, 370, 298, 315, 327, 86, 316, 86, 299, 1625 300, 319, 320, 325, 330, 321, 86, 322, 337, 335, 1626 333, 86, 329, 342, 86, 331, 339, 86, 3353, 323, 1627 344, 324, 327, 336, 341, 3353, 3353, 3353, 86, 320, 1628 345, 3353, 321, 343, 322, 337, 86, 333, 86, 351, 1629 346, 86, 331, 339, 86, 86, 323, 86, 324, 347, 1630 336, 341, 86, 86, 348, 349, 86, 345, 86, 352, 1631 343, 86, 353, 356, 350, 354, 351, 346, 355, 86, 1632 1633 357, 364, 360, 86, 86, 86, 347, 86, 361, 362, 1634 86, 348, 349, 86, 86, 367, 352, 86, 358, 353, 1635 356, 350, 354, 359, 86, 355, 363, 357, 373, 360, 1636 369, 86, 86, 86, 368, 361, 362, 365, 366, 372, 1637 371, 86, 374, 375, 376, 378, 86, 86, 86, 3353, 1638 86, 86, 86, 363, 377, 381, 379, 369, 86, 86, 1639 86, 368, 380, 383, 365, 366, 372, 371, 3353, 86, 1640 375, 384, 378, 386, 86, 387, 86, 86, 382, 388, 1641 390, 377, 86, 379, 389, 3353, 391, 86, 385, 86, 1642 392, 394, 86, 86, 170, 86, 86, 86, 384, 86, 1643 1644 386, 395, 387, 396, 393, 382, 388, 390, 86, 398, 1645 397, 389, 86, 391, 3353, 385, 399, 392, 401, 403, 1646 405, 400, 402, 86, 404, 86, 86, 86, 86, 406, 1647 396, 393, 86, 86, 86, 86, 407, 397, 86, 408, 1648 3353, 86, 411, 399, 412, 401, 403, 413, 400, 402, 1649 410, 404, 86, 86, 415, 414, 406, 416, 86, 86, 1650 419, 86, 420, 407, 421, 86, 408, 86, 86, 411, 1651 86, 412, 417, 418, 413, 86, 422, 410, 86, 423, 1652 86, 415, 414, 426, 416, 424, 428, 431, 3353, 420, 1653 86, 86, 86, 427, 86, 429, 86, 432, 433, 417, 1654 1655 418, 86, 425, 422, 86, 435, 86, 434, 86, 86, 1656 426, 86, 424, 436, 431, 86, 438, 437, 86, 430, 1657 427, 86, 439, 445, 432, 433, 86, 86, 441, 425, 1658 86, 86, 435, 440, 434, 443, 442, 86, 86, 86, 1659 436, 446, 86, 438, 437, 86, 430, 447, 3353, 439, 1660 445, 448, 444, 3353, 86, 441, 3353, 455, 456, 86, 1661 440, 3353, 443, 442, 3353, 457, 86, 86, 3353, 461, 1662 3353, 86, 462, 86, 447, 86, 464, 465, 448, 444, 1663 449, 469, 3353, 450, 455, 456, 86, 86, 451, 452, 1664 453, 454, 457, 86, 463, 458, 461, 459, 86, 462, 1665 1666 466, 86, 468, 464, 465, 467, 3353, 449, 86, 86, 1667 450, 477, 3353, 460, 478, 451, 452, 453, 454, 86, 1668 470, 463, 458, 471, 459, 472, 86, 475, 476, 468, 1669 86, 479, 86, 473, 474, 507, 86, 86, 86, 480, 1670 460, 478, 482, 86, 481, 86, 86, 470, 483, 487, 1671 471, 484, 472, 493, 475, 476, 86, 86, 479, 86, 1672 473, 474, 86, 86, 86, 86, 480, 485, 486, 482, 1673 492, 481, 505, 3353, 86, 483, 3353, 488, 484, 489, 1674 86, 86, 491, 494, 497, 86, 498, 499, 490, 86, 1675 495, 565, 86, 506, 485, 486, 496, 492, 86, 505, 1676 1677 86, 504, 86, 86, 488, 86, 489, 3353, 86, 491, 1678 494, 497, 86, 498, 499, 490, 500, 495, 565, 86, 1679 508, 509, 524, 496, 522, 86, 519, 510, 504, 501, 1680 545, 511, 502, 86, 503, 86, 86, 3353, 523, 512, 1681 86, 3353, 86, 500, 527, 86, 520, 508, 509, 524, 1682 86, 522, 525, 519, 510, 3353, 501, 86, 511, 502, 1683 3353, 503, 86, 535, 521, 523, 512, 513, 526, 514, 1684 86, 527, 537, 520, 536, 86, 86, 538, 539, 525, 1685 540, 556, 515, 3353, 543, 516, 170, 517, 542, 518, 1686 535, 521, 86, 86, 513, 526, 514, 548, 541, 86, 1687 1688 86, 536, 86, 86, 86, 539, 86, 540, 556, 515, 1689 86, 543, 516, 544, 517, 542, 518, 528, 529, 546, 1690 86, 86, 3353, 549, 548, 541, 547, 530, 558, 531, 1691 532, 533, 550, 86, 534, 3353, 553, 555, 563, 557, 1692 544, 554, 86, 86, 528, 529, 546, 551, 86, 86, 1693 559, 86, 561, 547, 530, 86, 531, 532, 533, 550, 1694 86, 534, 562, 553, 555, 552, 557, 86, 554, 86, 1695 86, 560, 566, 594, 551, 86, 86, 559, 86, 561, 1696 564, 569, 86, 567, 568, 3353, 570, 572, 86, 562, 1697 571, 573, 552, 3353, 86, 580, 577, 86, 560, 566, 1698 1699 86, 86, 574, 575, 583, 86, 3353, 564, 569, 578, 1700 3353, 3353, 86, 570, 572, 86, 86, 571, 573, 86, 1701 576, 86, 580, 577, 579, 581, 582, 86, 584, 574, 1702 575, 583, 86, 86, 3353, 585, 578, 86, 86, 595, 1703 598, 596, 597, 586, 599, 608, 3353, 576, 86, 3353, 1704 3353, 579, 581, 582, 587, 584, 588, 86, 86, 601, 1705 3353, 86, 585, 86, 602, 86, 595, 598, 596, 597, 1706 586, 600, 86, 604, 607, 603, 86, 86, 605, 3353, 1707 86, 587, 606, 588, 589, 86, 601, 86, 86, 610, 1708 609, 602, 590, 591, 612, 86, 592, 593, 600, 86, 1709 1710 604, 607, 603, 86, 611, 605, 86, 616, 86, 606, 1711 613, 589, 86, 614, 617, 615, 610, 609, 3353, 590, 1712 591, 86, 624, 592, 593, 86, 86, 618, 620, 86, 1713 86, 611, 621, 86, 616, 619, 86, 613, 622, 86, 1714 614, 617, 615, 86, 625, 623, 86, 86, 626, 624, 1715 627, 628, 629, 86, 618, 620, 630, 3353, 86, 621, 1716 86, 631, 619, 86, 632, 622, 86, 86, 633, 635, 1717 634, 625, 623, 86, 86, 626, 86, 627, 628, 629, 1718 636, 637, 86, 630, 639, 638, 86, 86, 631, 86, 1719 86, 632, 86, 644, 645, 633, 635, 634, 643, 86, 1720 1721 640, 642, 641, 86, 646, 86, 86, 636, 637, 86, 1722 86, 639, 638, 647, 648, 652, 650, 649, 655, 651, 1723 644, 653, 86, 3353, 3353, 643, 86, 640, 642, 641, 1724 86, 646, 657, 656, 86, 86, 86, 654, 658, 86, 1725 86, 648, 652, 650, 649, 86, 651, 661, 653, 86, 1726 86, 663, 660, 662, 664, 666, 86, 86, 86, 657, 1727 656, 659, 665, 667, 654, 86, 3353, 86, 669, 86, 1728 86, 681, 668, 670, 661, 714, 86, 86, 663, 660, 1729 662, 664, 666, 86, 86, 86, 679, 86, 659, 665, 1730 667, 680, 3353, 86, 86, 669, 682, 687, 681, 668, 1731 1732 670, 671, 684, 86, 86, 3353, 672, 86, 673, 86, 1733 683, 3353, 3353, 679, 674, 3353, 675, 688, 680, 676, 1734 677, 86, 691, 682, 687, 86, 678, 86, 671, 684, 1735 685, 696, 692, 672, 686, 673, 3353, 683, 694, 86, 1736 86, 674, 693, 675, 688, 689, 676, 677, 690, 691, 1737 86, 695, 86, 678, 699, 86, 86, 685, 696, 697, 1738 698, 686, 86, 86, 86, 694, 700, 86, 86, 693, 1739 701, 702, 689, 703, 705, 690, 708, 704, 695, 706, 1740 86, 699, 86, 86, 86, 707, 697, 698, 86, 86, 1741 710, 709, 711, 700, 86, 715, 86, 701, 702, 86, 1742 1743 703, 705, 86, 708, 704, 712, 706, 86, 713, 716, 1744 86, 720, 707, 86, 718, 722, 717, 710, 709, 711, 1745 86, 86, 715, 86, 86, 719, 721, 86, 3353, 86, 1746 723, 170, 712, 726, 3353, 713, 716, 86, 720, 725, 1747 727, 718, 722, 717, 724, 729, 728, 86, 730, 86, 1748 3353, 3353, 719, 721, 731, 86, 732, 723, 86, 3353, 1749 86, 86, 733, 86, 734, 740, 725, 743, 735, 86, 1750 741, 724, 86, 728, 86, 730, 744, 86, 86, 745, 1751 736, 731, 739, 732, 748, 742, 86, 737, 746, 733, 1752 738, 734, 86, 86, 86, 735, 747, 86, 86, 86, 1753 1754 749, 753, 751, 86, 752, 750, 757, 736, 86, 739, 1755 755, 86, 742, 754, 737, 86, 86, 738, 86, 86, 1756 756, 758, 759, 86, 762, 86, 86, 761, 753, 751, 1757 86, 752, 86, 757, 760, 86, 763, 755, 765, 86, 1758 754, 767, 86, 86, 764, 766, 3353, 756, 758, 759, 1759 86, 769, 768, 86, 761, 770, 86, 86, 86, 86, 1760 86, 760, 771, 763, 86, 765, 773, 86, 767, 772, 1761 774, 764, 766, 86, 775, 776, 86, 86, 769, 768, 1762 777, 780, 770, 778, 779, 3353, 781, 86, 3353, 771, 1763 86, 782, 86, 783, 784, 785, 772, 774, 86, 86, 1764 1765 86, 775, 776, 787, 86, 788, 786, 777, 780, 789, 1766 778, 779, 86, 781, 790, 86, 86, 86, 782, 86, 1767 783, 784, 785, 791, 794, 793, 3353, 86, 796, 798, 1768 787, 795, 3353, 786, 797, 800, 789, 86, 86, 86, 1769 799, 790, 802, 86, 808, 792, 86, 86, 86, 86, 1770 791, 794, 793, 86, 86, 796, 798, 86, 795, 801, 1771 803, 797, 800, 804, 805, 806, 86, 799, 809, 86, 1772 807, 86, 792, 818, 810, 86, 86, 814, 86, 811, 1773 812, 86, 813, 86, 815, 86, 801, 803, 817, 86, 1774 804, 805, 806, 86, 816, 809, 819, 807, 86, 86, 1775 1776 818, 810, 820, 821, 814, 824, 86, 86, 86, 813, 1777 86, 815, 822, 825, 823, 817, 86, 827, 826, 828, 1778 832, 816, 841, 3353, 86, 3353, 3353, 86, 86, 820, 1779 833, 86, 824, 86, 829, 86, 86, 834, 86, 822, 1780 835, 823, 837, 836, 827, 86, 828, 3353, 830, 831, 1781 86, 838, 86, 847, 86, 86, 86, 833, 839, 842, 1782 845, 829, 86, 849, 834, 846, 851, 835, 86, 837, 1783 836, 86, 3353, 840, 86, 830, 831, 843, 838, 86, 1784 847, 848, 86, 86, 909, 839, 842, 844, 86, 850, 1785 849, 86, 86, 851, 852, 856, 853, 86, 854, 86, 1786 1787 840, 855, 86, 86, 843, 86, 857, 86, 848, 86, 1788 858, 86, 859, 866, 844, 860, 850, 861, 3353, 864, 1789 3353, 852, 856, 853, 863, 854, 862, 86, 855, 86, 1790 86, 865, 86, 86, 86, 86, 867, 858, 86, 859, 1791 868, 871, 860, 86, 861, 86, 864, 878, 869, 86, 1792 872, 863, 870, 862, 873, 86, 86, 874, 865, 86, 1793 86, 875, 876, 867, 86, 86, 86, 868, 871, 86, 1794 86, 880, 877, 879, 878, 869, 884, 872, 881, 870, 1795 86, 873, 882, 883, 874, 886, 86, 916, 875, 876, 1796 922, 86, 86, 885, 889, 86, 888, 86, 880, 877, 1797 1798 879, 86, 887, 884, 86, 881, 86, 86, 86, 882, 1799 883, 890, 886, 86, 891, 892, 895, 893, 894, 86, 1800 885, 889, 86, 888, 898, 86, 896, 3353, 3353, 887, 1801 897, 86, 899, 901, 900, 86, 86, 86, 890, 86, 1802 86, 891, 892, 895, 893, 894, 86, 902, 86, 86, 1803 86, 898, 903, 896, 904, 170, 906, 897, 905, 899, 1804 901, 900, 910, 908, 907, 912, 914, 86, 86, 86, 1805 911, 86, 913, 917, 902, 86, 86, 86, 915, 903, 1806 86, 904, 924, 906, 86, 905, 86, 918, 86, 910, 1807 908, 907, 86, 914, 86, 921, 919, 911, 923, 913, 1808 1809 917, 920, 86, 86, 86, 915, 925, 3353, 935, 924, 1810 86, 86, 927, 938, 918, 86, 926, 86, 86, 86, 1811 86, 936, 921, 919, 3353, 923, 941, 3353, 920, 3353, 1812 3353, 86, 937, 925, 86, 935, 939, 86, 940, 927, 1813 938, 3353, 3353, 926, 928, 942, 946, 929, 936, 943, 1814 86, 930, 3353, 941, 931, 86, 86, 86, 944, 937, 1815 949, 932, 933, 939, 934, 940, 945, 947, 86, 86, 1816 948, 928, 942, 946, 929, 86, 943, 86, 930, 960, 1817 86, 931, 86, 957, 86, 944, 959, 979, 932, 933, 1818 958, 934, 86, 945, 947, 86, 86, 948, 950, 951, 1819 1820 961, 952, 86, 86, 953, 86, 960, 962, 968, 954, 1821 957, 964, 965, 959, 86, 955, 956, 958, 3353, 967, 1822 86, 86, 972, 963, 86, 950, 951, 961, 952, 966, 1823 86, 953, 86, 86, 962, 968, 954, 971, 964, 965, 1824 969, 86, 955, 956, 974, 970, 967, 973, 86, 972, 1825 963, 975, 977, 976, 981, 3353, 966, 86, 980, 86, 1826 978, 983, 982, 3353, 971, 985, 86, 3353, 987, 86, 1827 86, 974, 86, 86, 973, 86, 86, 86, 975, 977, 1828 976, 981, 86, 86, 86, 980, 984, 978, 983, 982, 1829 986, 988, 985, 86, 86, 987, 990, 989, 991, 992, 1830 1831 993, 994, 996, 86, 1000, 86, 997, 86, 995, 86, 1832 86, 998, 999, 984, 86, 1001, 1003, 986, 988, 1002, 1833 3353, 3353, 86, 990, 989, 991, 992, 993, 1004, 86, 1834 86, 1006, 1005, 86, 86, 995, 86, 1007, 86, 999, 1835 1008, 86, 1009, 1011, 3353, 1010, 1002, 86, 86, 1014, 1836 86, 1012, 86, 86, 86, 1004, 1016, 1013, 1006, 1005, 1837 86, 86, 1017, 1018, 86, 86, 86, 86, 1019, 1009, 1838 1011, 86, 1010, 1015, 1020, 1022, 1014, 1021, 1012, 3353, 1839 86, 86, 86, 86, 1013, 86, 1025, 1023, 1024, 1017, 1840 1018, 86, 1026, 86, 1027, 86, 1029, 1030, 1028, 86, 1841 1842 1015, 1035, 1022, 1032, 1021, 86, 86, 1033, 86, 86, 1843 86, 1031, 1034, 1025, 1023, 1024, 1043, 86, 86, 1026, 1844 86, 1027, 1036, 1029, 1030, 1028, 1038, 86, 1035, 86, 1845 1032, 1044, 1037, 1039, 86, 1046, 86, 1040, 1031, 86, 1846 86, 86, 1041, 1043, 86, 1045, 86, 1050, 1047, 1036, 1847 1042, 86, 86, 1038, 86, 1052, 1048, 86, 86, 1037, 1848 1039, 1049, 1046, 86, 1040, 3353, 86, 1054, 86, 1041, 1849 1055, 1051, 1045, 86, 1050, 1047, 1053, 1042, 86, 86, 1850 86, 1056, 1052, 1048, 1057, 1059, 1058, 1060, 1049, 86, 1851 86, 1065, 1061, 1063, 1054, 86, 1062, 1055, 1051, 1064, 1852 1853 86, 3353, 1066, 1053, 86, 86, 86, 1067, 1056, 86, 1854 3353, 1069, 1059, 1058, 1060, 1068, 86, 86, 86, 1061, 1855 1063, 86, 86, 1062, 1070, 86, 1064, 1071, 1072, 1066, 1856 86, 86, 86, 1073, 1067, 1074, 86, 1075, 1069, 1076, 1857 86, 1077, 1068, 1078, 1080, 1082, 1081, 3353, 1088, 1089, 1858 1079, 1070, 86, 1083, 1071, 1072, 86, 86, 1087, 3353, 1859 1073, 86, 1086, 1090, 86, 3353, 1076, 86, 86, 86, 1860 1078, 1084, 1082, 86, 86, 1088, 86, 1079, 86, 1085, 1861 1083, 86, 1091, 1092, 86, 1087, 86, 86, 1093, 1086, 1862 1090, 86, 1094, 3353, 1095, 1096, 1097, 86, 1084, 86, 1863 1864 1098, 1100, 1101, 1103, 86, 1099, 1085, 1102, 86, 1091, 1865 1092, 3353, 1107, 86, 1105, 86, 1121, 1104, 86, 1094, 1866 86, 86, 1096, 1097, 86, 86, 1109, 1106, 1100, 1101, 1867 1103, 1110, 170, 86, 1102, 86, 86, 1108, 86, 1107, 1868 86, 1105, 1111, 86, 1104, 3353, 3353, 1118, 86, 3353, 1869 86, 3353, 1119, 1109, 1106, 1120, 3353, 1122, 1110, 86, 1870 3353, 3353, 1123, 3353, 1108, 1124, 3353, 86, 1125, 1111, 1871 1112, 1126, 1113, 86, 1118, 86, 1114, 86, 1115, 1119, 1872 3353, 86, 1120, 1116, 1122, 86, 1128, 1127, 1117, 1123, 1873 1130, 1129, 1124, 86, 86, 1125, 1131, 1112, 1126, 1113, 1874 1875 86, 1132, 3353, 1114, 1134, 1115, 3353, 1137, 86, 86, 1876 1116, 1135, 1139, 1133, 1127, 1117, 86, 1130, 86, 1138, 1877 1140, 1136, 86, 1131, 86, 86, 86, 1142, 1132, 1141, 1878 1143, 1134, 1145, 86, 1137, 1146, 1144, 1149, 1135, 1139, 1879 1133, 86, 86, 1147, 1150, 86, 1138, 1140, 1136, 86, 1880 1152, 86, 1151, 3353, 1142, 1162, 1141, 1143, 86, 86, 1881 86, 1160, 1161, 1144, 86, 1164, 3353, 86, 86, 86, 1882 86, 1150, 1171, 1165, 3353, 1163, 86, 1152, 3353, 1151, 1883 1153, 3353, 1162, 1167, 86, 1154, 3353, 1155, 1160, 1161, 1884 86, 86, 1164, 1156, 1166, 86, 86, 1170, 1157, 1158, 1885 1886 1165, 1168, 1163, 1169, 86, 1159, 86, 1153, 86, 86, 1887 1167, 86, 1154, 86, 1155, 1172, 1173, 1177, 1174, 1180, 1888 1156, 1166, 1175, 1178, 1170, 1157, 1158, 86, 1168, 1176, 1889 1169, 86, 1159, 86, 1179, 1181, 1183, 86, 86, 1182, 1890 1184, 86, 1172, 1173, 86, 1174, 86, 86, 1185, 1175, 1891 1178, 86, 1186, 1191, 86, 1188, 1176, 1187, 86, 86, 1892 1189, 1179, 1181, 1183, 1190, 86, 1182, 1184, 1192, 1193, 1893 1194, 3353, 1199, 86, 86, 86, 1195, 86, 86, 1186, 1894 86, 1196, 1188, 86, 1187, 86, 86, 1189, 1200, 1198, 1895 86, 1190, 86, 1197, 86, 1192, 1193, 1194, 1201, 1199, 1896 1897 86, 1202, 1203, 1195, 86, 1205, 86, 3353, 1196, 3353, 1898 1204, 86, 1215, 1208, 1207, 1200, 1198, 1206, 86, 86, 1899 1197, 86, 86, 1210, 86, 1201, 86, 1209, 1202, 1211, 1900 1212, 1213, 1205, 1216, 86, 86, 86, 1204, 86, 1215, 1901 1208, 1207, 1214, 1217, 1206, 3353, 1223, 1218, 1219, 1224, 1902 1210, 86, 86, 86, 1209, 1220, 1211, 1212, 1213, 86, 1903 86, 86, 86, 1221, 1225, 86, 86, 1226, 1222, 1214, 1904 1217, 1227, 86, 1223, 1218, 1219, 1224, 1229, 86, 1228, 1905 86, 1231, 1220, 1230, 1232, 1233, 86, 1234, 86, 3353, 1906 86, 1225, 86, 86, 1226, 86, 1236, 86, 1227, 1235, 1907 1908 1237, 1238, 1240, 1239, 1229, 3353, 1228, 1246, 1231, 86, 1909 1230, 86, 1233, 86, 1241, 1243, 86, 1244, 86, 86, 1910 1242, 1245, 86, 1236, 86, 86, 1235, 1237, 1238, 1240, 1911 1239, 86, 1247, 86, 1246, 1248, 86, 1249, 1250, 86, 1912 1251, 1241, 1243, 86, 1244, 1252, 86, 1242, 1245, 1254, 1913 1259, 1253, 1256, 86, 1255, 1260, 1261, 1257, 86, 1247, 1914 86, 86, 1248, 86, 1249, 86, 1262, 86, 1258, 86, 1915 86, 1266, 1252, 86, 86, 86, 1254, 1259, 1253, 1256, 1916 86, 1255, 1260, 1263, 1257, 1264, 1265, 1267, 86, 1269, 1917 1268, 1271, 3353, 1270, 3353, 1258, 86, 86, 86, 1276, 1918 1919 1274, 1272, 3353, 86, 1273, 86, 1277, 86, 86, 86, 1920 1263, 3353, 1264, 1265, 1267, 86, 1275, 1268, 86, 86, 1921 1270, 86, 86, 86, 86, 1278, 1276, 1274, 1272, 1279, 1922 86, 1273, 1281, 1277, 1282, 1280, 1283, 1284, 1285, 1287, 1923 3353, 86, 86, 1275, 86, 1286, 1288, 86, 1290, 1292, 1924 86, 86, 1278, 1293, 86, 3353, 1279, 1289, 86, 1281, 1925 1297, 1282, 1280, 86, 3353, 1285, 86, 86, 86, 86, 1926 86, 86, 1286, 1288, 1294, 1290, 1292, 1295, 1296, 86, 1927 1293, 1298, 86, 1299, 1289, 1300, 86, 86, 170, 1302, 1928 1304, 1301, 1305, 1306, 1307, 1303, 86, 86, 3353, 86, 1929 1930 3353, 1294, 1309, 1308, 1295, 1296, 86, 1310, 1298, 1311, 1931 1299, 86, 1300, 86, 86, 1312, 1302, 86, 1301, 1305, 1932 1313, 1314, 1303, 1315, 86, 86, 86, 1318, 86, 1309, 1933 1308, 86, 86, 86, 1310, 86, 1311, 1316, 1317, 86, 1934 1320, 1319, 1312, 86, 1321, 86, 1322, 1313, 1314, 86, 1935 1315, 1323, 1325, 1324, 1318, 86, 3353, 86, 86, 86, 1936 1331, 1326, 1330, 86, 1316, 1317, 1333, 86, 1319, 1332, 1937 1327, 1321, 1328, 1322, 86, 1329, 1336, 1335, 1323, 1325, 1938 1324, 1334, 3353, 86, 1337, 86, 86, 1331, 1326, 1330, 1939 86, 86, 86, 86, 1339, 1340, 1332, 1327, 1338, 1328, 1940 1941 86, 86, 1329, 1336, 1335, 1341, 1343, 86, 1334, 1342, 1942 1344, 1337, 86, 86, 1345, 1347, 1348, 86, 1346, 3353, 1943 3353, 1339, 1340, 86, 86, 1338, 86, 1349, 86, 1351, 1944 86, 3353, 1341, 1343, 1352, 1353, 1342, 1344, 86, 1350, 1945 1354, 1345, 86, 1348, 1359, 1346, 86, 1355, 1357, 86, 1946 1356, 86, 86, 86, 1349, 1360, 1351, 86, 86, 86, 1947 1358, 1352, 1353, 86, 86, 1361, 1350, 1354, 1364, 1365, 1948 86, 1359, 86, 86, 1355, 1357, 1363, 1356, 1362, 1366, 1949 1368, 86, 1360, 1367, 86, 86, 86, 1358, 1369, 86, 1950 86, 1370, 1361, 1371, 1372, 1364, 1365, 1375, 86, 86, 1951 1952 86, 1374, 86, 1363, 86, 1362, 1366, 1368, 86, 1373, 1953 1367, 86, 1376, 86, 1377, 1369, 1378, 3353, 1370, 1379, 1954 1371, 1372, 1381, 1380, 1375, 1382, 86, 1383, 1374, 86, 1955 86, 1386, 1384, 86, 1389, 1387, 1373, 1385, 86, 86, 1956 1400, 1377, 86, 1378, 86, 1388, 1379, 86, 86, 1381, 1957 1380, 1397, 1382, 3353, 1383, 1399, 1398, 1401, 1386, 86, 1958 86, 1389, 1387, 1434, 86, 86, 86, 1400, 3353, 1403, 1959 1402, 1404, 1388, 1390, 86, 86, 1406, 1391, 1397, 86, 1960 1392, 1393, 3353, 1398, 1401, 1394, 1407, 86, 86, 1405, 1961 1434, 1395, 86, 86, 1408, 1396, 1412, 1402, 1404, 86, 1962 1963 1390, 86, 86, 1406, 1391, 86, 1413, 1392, 1393, 1415, 1964 3353, 86, 1394, 1407, 1416, 1409, 1405, 1410, 1395, 1411, 1965 86, 1408, 1396, 1412, 86, 1414, 86, 86, 1417, 1418, 1966 1419, 86, 86, 1413, 3353, 3353, 1415, 86, 1420, 86, 1967 1421, 1416, 1409, 1428, 1410, 1429, 1411, 1427, 3353, 1430, 1968 1431, 3353, 1414, 3353, 3353, 1417, 86, 1435, 1433, 3353, 1969 86, 86, 86, 86, 1432, 1420, 86, 1421, 1422, 86, 1970 1428, 86, 1429, 1423, 1427, 1424, 1436, 1425, 86, 1426, 1971 86, 86, 1437, 1439, 1435, 1433, 86, 1438, 1440, 1441, 1972 1443, 1432, 1442, 86, 86, 1422, 1446, 1447, 1448, 1444, 1973 1974 1423, 86, 1424, 1436, 1425, 86, 1426, 86, 86, 86, 1975 1439, 86, 1445, 1449, 86, 1440, 1441, 1443, 1450, 1442, 1976 86, 1451, 1452, 1446, 86, 1448, 1444, 1454, 1453, 86, 1977 1457, 86, 86, 1455, 1456, 86, 86, 1458, 1459, 1445, 1978 1449, 1460, 86, 86, 1461, 1450, 86, 86, 1451, 1452, 1979 86, 1462, 86, 3353, 1454, 1453, 1465, 1457, 1463, 1464, 1980 1455, 1456, 1466, 1467, 86, 1459, 1468, 86, 86, 86, 1981 86, 1461, 1469, 1470, 86, 86, 1471, 1473, 1462, 1478, 1982 86, 1472, 86, 1465, 1474, 1463, 1464, 86, 1475, 86, 1983 1467, 86, 1477, 86, 1476, 86, 1480, 86, 86, 1469, 1984 1985 1470, 86, 1479, 1471, 86, 86, 1478, 1481, 1472, 1486, 1986 1482, 1474, 86, 1483, 86, 1475, 1485, 1484, 1493, 1477, 1987 1487, 1476, 86, 1480, 1488, 1496, 1490, 86, 86, 1479, 1988 86, 86, 1489, 1491, 1481, 86, 1486, 1482, 86, 86, 1989 1483, 1492, 86, 1485, 1484, 1493, 1494, 1487, 86, 1495, 1990 86, 1488, 86, 1490, 86, 86, 1497, 86, 1498, 1489, 1991 1491, 1499, 1501, 86, 1500, 1502, 86, 1503, 1492, 1508, 1992 86, 1504, 1505, 1494, 3353, 1509, 1495, 1511, 86, 1506, 1993 86, 86, 86, 1507, 170, 1498, 86, 86, 86, 1501, 1994 1510, 1500, 1502, 86, 86, 3353, 1514, 1515, 1504, 1505, 1995 1996 1517, 86, 1512, 86, 86, 1516, 1506, 86, 1513, 86, 1997 1507, 86, 1518, 86, 1519, 86, 1523, 1510, 1520, 1524, 1998 86, 86, 1522, 1514, 1515, 86, 1521, 1517, 86, 1512, 1999 1525, 86, 1516, 1526, 86, 1513, 1527, 1528, 86, 1518, 2000 86, 1519, 1529, 1523, 86, 1520, 86, 1530, 1531, 1522, 2001 1534, 1532, 1533, 1521, 1539, 86, 86, 1525, 1540, 1543, 2002 1526, 1535, 86, 1527, 1536, 86, 86, 1541, 1537, 86, 2003 86, 1538, 86, 86, 1530, 1531, 1542, 1534, 1532, 1533, 2004 86, 1539, 86, 86, 1544, 1540, 1543, 1545, 1535, 1547, 2005 86, 1536, 1546, 1550, 1541, 1537, 1549, 86, 1538, 1551, 2006 2007 86, 1548, 86, 1552, 3353, 86, 1553, 1554, 86, 1556, 2008 1555, 1544, 86, 86, 1563, 86, 1547, 86, 1557, 86, 2009 1550, 86, 86, 1549, 1559, 1560, 1551, 86, 1548, 86, 2010 1552, 1558, 1561, 1553, 1554, 1562, 1556, 1555, 1564, 1565, 2011 86, 86, 1566, 86, 1567, 1557, 86, 86, 86, 1568, 2012 86, 1559, 1560, 86, 1571, 86, 86, 1570, 1558, 1561, 2013 1569, 86, 1562, 1572, 1573, 1564, 1565, 1575, 86, 1566, 2014 1574, 1567, 1579, 86, 86, 1578, 1568, 1576, 1577, 86, 2015 1580, 1571, 86, 1581, 1570, 86, 1583, 1569, 86, 86, 2016 1572, 1573, 1585, 86, 1575, 1582, 86, 1574, 86, 1579, 2017 2018 1584, 1586, 1578, 86, 1576, 1577, 1588, 86, 86, 1587, 2019 1589, 1590, 86, 86, 1591, 86, 3353, 3353, 1592, 1585, 2020 1593, 86, 1582, 1594, 1596, 1599, 1598, 1584, 1586, 3353, 2021 1595, 86, 1601, 86, 1597, 1600, 1587, 86, 86, 86, 2022 86, 1591, 86, 86, 86, 1592, 86, 86, 86, 86, 2023 1594, 1596, 1599, 1598, 1603, 86, 1602, 1595, 86, 1601, 2024 1604, 1597, 1600, 86, 1605, 1607, 1606, 1609, 1611, 1620, 2025 1608, 1613, 1610, 86, 86, 86, 1612, 86, 1614, 86, 2026 3353, 1603, 86, 1602, 1617, 1616, 86, 1604, 1615, 1618, 2027 1623, 1605, 86, 1606, 3353, 1611, 86, 86, 1613, 86, 2028 2029 1619, 86, 86, 1612, 1621, 1614, 86, 86, 1625, 86, 2030 1624, 1617, 1616, 1622, 86, 1615, 1618, 1626, 86, 1634, 2031 1627, 1631, 86, 3353, 1628, 1629, 86, 1619, 86, 86, 2032 1630, 1621, 86, 86, 86, 1625, 1632, 1624, 86, 1639, 2033 1622, 1633, 86, 1635, 1638, 86, 1634, 1627, 1631, 86, 2034 1636, 1628, 1629, 86, 1637, 1640, 1641, 1630, 86, 86, 2035 1643, 1642, 86, 1632, 3353, 1645, 86, 86, 1633, 1646, 2036 1635, 1638, 1644, 1647, 86, 1650, 1649, 1636, 86, 86, 2037 1654, 1637, 86, 1641, 86, 86, 1648, 1643, 1642, 1651, 2038 86, 1652, 1645, 1653, 86, 1655, 1646, 86, 86, 1644, 2039 2040 1647, 86, 1650, 1649, 86, 1656, 1659, 86, 1660, 1657, 2041 3353, 1658, 1667, 1648, 3353, 1666, 1651, 86, 1652, 1661, 2042 1653, 86, 1655, 1662, 3353, 86, 1664, 1665, 86, 1671, 2043 86, 86, 1663, 1659, 86, 1660, 1657, 86, 1658, 86, 2044 1668, 86, 86, 1670, 86, 1669, 1661, 86, 1672, 86, 2045 1662, 86, 1674, 1664, 1665, 86, 1671, 1673, 1675, 1663, 2046 1676, 3353, 1677, 1678, 86, 86, 3353, 1668, 1679, 1680, 2047 1670, 1682, 1669, 86, 86, 1681, 86, 1684, 1685, 86, 2048 86, 1686, 86, 86, 1673, 1675, 86, 86, 1683, 1677, 2049 1678, 1688, 86, 86, 1687, 1679, 1680, 86, 1682, 1693, 2050 2051 86, 1689, 1681, 86, 1684, 1685, 86, 86, 1686, 1694, 2052 1691, 1690, 1692, 1698, 86, 1683, 1695, 86, 1688, 86, 2053 86, 1687, 86, 1696, 1697, 86, 1693, 1699, 1689, 86, 2054 1700, 1708, 86, 1702, 1701, 86, 1694, 1691, 1690, 1692, 2055 1698, 86, 1703, 1695, 1705, 1709, 86, 86, 1704, 1711, 2056 1696, 1697, 1707, 86, 86, 1706, 170, 1700, 86, 86, 2057 1702, 1701, 86, 86, 86, 1712, 1713, 86, 1710, 1703, 2058 1714, 1705, 1709, 86, 86, 1704, 1711, 86, 1715, 1707, 2059 86, 1716, 1706, 86, 1717, 1720, 1721, 1718, 1722, 1719, 2060 3353, 1723, 1712, 1713, 86, 1710, 86, 1714, 86, 1724, 2061 2062 1725, 1726, 1727, 1728, 86, 1715, 86, 86, 1716, 86, 2063 86, 1717, 86, 1721, 1718, 1722, 1719, 1729, 1723, 1730, 2064 1731, 1732, 86, 1733, 86, 1735, 1724, 1725, 86, 1727, 2065 86, 1734, 1738, 86, 86, 86, 1736, 1739, 3353, 1741, 2066 1737, 86, 86, 1748, 1729, 86, 86, 1731, 1732, 86, 2067 1733, 86, 1735, 86, 1740, 1743, 1750, 1749, 1734, 1738, 2068 1742, 1744, 86, 1736, 1739, 86, 1741, 1737, 86, 86, 2069 86, 1745, 1751, 1752, 1746, 86, 1756, 1757, 86, 86, 2070 86, 1740, 1743, 1750, 1749, 1753, 1747, 1742, 1744, 1759, 2071 1754, 86, 86, 1758, 1755, 86, 1760, 1763, 1745, 1751, 2072 2073 1752, 1746, 1761, 86, 1762, 1765, 1764, 86, 1767, 86, 2074 1769, 86, 1753, 1747, 86, 86, 1759, 1754, 86, 86, 2075 86, 1755, 86, 1760, 1763, 86, 1766, 1768, 86, 1761, 2076 1770, 1772, 1765, 1764, 86, 1767, 86, 1771, 1774, 1773, 2077 1775, 3353, 86, 86, 1780, 1778, 1776, 1777, 1779, 1783, 2078 3353, 86, 86, 1766, 1768, 86, 86, 86, 86, 86, 2079 86, 1785, 86, 86, 1771, 1774, 1773, 86, 86, 1781, 2080 1782, 1780, 1778, 1776, 1777, 1779, 1783, 1784, 1786, 86, 2081 1788, 1787, 86, 86, 86, 1789, 1791, 1790, 1785, 86, 2082 1797, 3353, 1792, 3108, 3109, 86, 1781, 1782, 1793, 86, 2083 2084 86, 86, 1795, 86, 1784, 1786, 1794, 1788, 1787, 86, 2085 1796, 1800, 1789, 86, 1790, 86, 86, 86, 86, 1792, 2086 1798, 1799, 86, 1801, 1802, 1793, 86, 86, 1803, 1795, 2087 1805, 1804, 1807, 1794, 86, 1806, 86, 1796, 1800, 86, 2088 1808, 86, 3353, 86, 86, 1811, 1815, 1798, 1799, 86, 2089 1801, 1802, 1833, 86, 1816, 1803, 86, 1805, 1804, 1807, 2090 86, 1809, 1806, 1812, 1810, 1817, 1821, 1808, 1813, 1814, 2091 86, 86, 1811, 1815, 1818, 86, 1819, 1824, 1820, 86, 2092 1822, 86, 3353, 3353, 86, 86, 1825, 1834, 1809, 86, 2093 1812, 1810, 86, 86, 86, 1813, 1814, 1828, 1823, 86, 2094 2095 1827, 1818, 86, 1819, 1824, 1820, 86, 1822, 86, 1826, 2096 1829, 86, 1832, 1825, 86, 86, 1830, 86, 86, 1831, 2097 1837, 1835, 1838, 1842, 1828, 1823, 1836, 1827, 86, 86, 2098 86, 1839, 3353, 1840, 86, 86, 1826, 1829, 1841, 1832, 2099 86, 1843, 86, 1830, 1846, 86, 1831, 1837, 1835, 1838, 2100 1842, 1845, 1844, 1836, 86, 1847, 86, 1848, 1839, 1849, 2101 86, 3353, 1850, 1854, 1855, 86, 86, 3353, 1843, 1852, 2102 86, 1846, 1853, 86, 1856, 86, 1851, 3353, 1845, 1844, 2103 86, 86, 1847, 1857, 1848, 86, 1849, 86, 86, 1850, 2104 1854, 1855, 86, 1858, 1860, 1862, 1852, 1861, 1859, 1853, 2105 2106 86, 1856, 1864, 1851, 1863, 1865, 1866, 86, 1867, 86, 2107 1857, 3353, 1870, 3353, 86, 1868, 1869, 1874, 1871, 1878, 2108 1872, 1860, 1862, 1873, 1861, 86, 86, 86, 3353, 86, 2109 3353, 1863, 1865, 86, 86, 1876, 86, 86, 1875, 86, 2110 86, 1877, 1868, 1869, 86, 1871, 1880, 1872, 1879, 86, 2111 1873, 86, 86, 1881, 86, 1882, 1884, 1885, 1883, 86, 2112 1888, 86, 1876, 1890, 1886, 1875, 1887, 86, 1877, 1891, 2113 86, 86, 1892, 1880, 86, 1879, 86, 86, 1893, 86, 2114 1881, 1889, 1882, 1884, 1885, 1883, 86, 86, 1895, 1894, 2115 1896, 1886, 1897, 1887, 1899, 86, 86, 86, 86, 1892, 2116 2117 1898, 86, 1900, 1902, 1903, 86, 1904, 86, 1889, 1901, 2118 1906, 1905, 86, 86, 86, 1895, 1894, 1896, 1907, 86, 2119 86, 1908, 1913, 1909, 1910, 3353, 86, 1898, 86, 1900, 2120 1902, 86, 86, 1904, 86, 1912, 1901, 1906, 1905, 1911, 2121 86, 86, 1915, 86, 1914, 1907, 1917, 86, 1908, 86, 2122 1909, 1910, 86, 1916, 170, 1918, 1919, 86, 1923, 1920, 2123 1921, 86, 1912, 1924, 1922, 86, 1911, 1927, 86, 1915, 2124 1926, 1914, 86, 86, 86, 86, 86, 1925, 1928, 86, 2125 1916, 1933, 1918, 1919, 1929, 1923, 1920, 1921, 86, 1930, 2126 1931, 1922, 86, 1934, 1927, 86, 1932, 1926, 1937, 1936, 2127 2128 1935, 1939, 1938, 3353, 1925, 86, 86, 1956, 86, 86, 2129 1940, 1929, 86, 86, 86, 86, 86, 1931, 1942, 86, 2130 86, 1941, 86, 1932, 86, 1937, 1936, 1935, 1939, 1938, 2131 86, 1943, 1944, 1947, 1945, 1946, 1950, 1940, 1948, 86, 2132 86, 1955, 1954, 86, 1953, 1942, 1957, 86, 1941, 86, 2133 86, 1949, 86, 86, 86, 86, 86, 1951, 1943, 1944, 2134 1947, 1945, 1946, 1950, 1952, 1948, 86, 1958, 86, 1954, 2135 1960, 1953, 1959, 1957, 1965, 86, 1961, 1962, 1949, 86, 2136 86, 86, 1966, 86, 1951, 1963, 1967, 1964, 1968, 1969, 2137 1971, 1952, 1970, 1973, 1958, 86, 86, 1960, 86, 1959, 2138 2139 86, 1965, 86, 1961, 1962, 1972, 1974, 1975, 1977, 86, 2140 1976, 86, 1963, 86, 1964, 1968, 86, 1971, 86, 1970, 2141 86, 1978, 1979, 1980, 1982, 86, 1985, 1991, 1981, 86, 2142 86, 1983, 1972, 1974, 86, 1984, 1987, 1976, 86, 86, 2143 86, 1989, 86, 1988, 1986, 3353, 3353, 1990, 1978, 3353, 2144 1980, 86, 86, 86, 86, 1981, 86, 86, 1983, 86, 2145 1999, 3353, 1984, 1987, 2006, 86, 1996, 86, 1989, 86, 2146 1988, 1986, 1997, 86, 1990, 1992, 1993, 1994, 1998, 2000, 2147 86, 86, 1995, 2001, 2003, 86, 86, 2005, 2002, 2004, 2148 86, 2006, 86, 1996, 2008, 2007, 2012, 86, 2014, 1997, 2149 2150 2009, 86, 1992, 1993, 1994, 1998, 2000, 86, 3353, 1995, 2151 2010, 2003, 86, 2011, 2005, 86, 2004, 86, 86, 86, 2152 2013, 86, 2007, 86, 86, 2014, 86, 2009, 2015, 2016, 2153 3353, 2017, 2018, 2020, 86, 86, 2019, 2010, 2025, 2021, 2154 2011, 86, 2024, 86, 2022, 2026, 2023, 2013, 86, 2032, 2155 2030, 2031, 86, 2028, 2029, 2015, 2016, 86, 2017, 86, 2156 86, 2027, 86, 2019, 86, 86, 2021, 86, 86, 2024, 2157 86, 2022, 86, 2023, 86, 86, 2032, 2030, 2031, 2034, 2158 2028, 2029, 2033, 86, 2036, 2035, 2037, 2039, 2027, 3353, 2159 86, 2038, 2042, 86, 2041, 2040, 2043, 3353, 3353, 2045, 2160 2161 3353, 2046, 86, 2044, 3353, 3353, 2034, 86, 86, 2033, 2162 2049, 86, 2035, 2037, 2048, 2053, 86, 86, 2038, 86, 2163 86, 2041, 2040, 86, 86, 86, 2045, 2047, 2046, 86, 2164 2044, 2050, 2051, 86, 86, 86, 2052, 2049, 2054, 2055, 2165 86, 2048, 2059, 3353, 2056, 2057, 86, 86, 2060, 86, 2166 2062, 2061, 2063, 86, 2047, 2064, 86, 2065, 2050, 2051, 2167 86, 2058, 86, 2052, 2066, 86, 2055, 86, 86, 2059, 2168 86, 2056, 2057, 86, 2067, 2060, 2068, 86, 2061, 2063, 2169 2069, 2070, 2064, 2071, 2065, 2074, 2075, 86, 2058, 2072, 2170 3353, 2066, 86, 2078, 2073, 2079, 2076, 86, 86, 2081, 2171 2172 86, 2067, 86, 2068, 2095, 86, 86, 2069, 86, 86, 2173 2071, 2077, 86, 2075, 2082, 86, 2072, 2080, 2083, 86, 2174 2078, 2073, 2079, 2076, 86, 2084, 86, 2085, 2086, 2087, 2175 2088, 86, 2090, 2091, 2092, 2089, 86, 2093, 2077, 86, 2176 86, 2082, 2094, 2096, 2080, 2083, 86, 86, 3353, 2097, 2177 86, 86, 86, 86, 2085, 2086, 2087, 2088, 2098, 2090, 2178 86, 86, 2089, 2099, 2100, 2102, 2101, 2103, 2104, 86, 2179 86, 2105, 2106, 2107, 3353, 86, 2097, 86, 86, 2108, 2180 86, 86, 86, 2109, 2115, 2098, 2112, 2110, 86, 2111, 2181 2099, 2113, 2102, 2101, 2103, 2104, 86, 86, 86, 2106, 2182 2183 2114, 170, 86, 86, 2116, 86, 2108, 2119, 86, 2118, 2184 2109, 86, 2117, 2112, 2110, 86, 2111, 2121, 2113, 86, 2185 2120, 2123, 2122, 3353, 2126, 3353, 86, 2114, 86, 2124, 2186 2125, 86, 2129, 2130, 2119, 3353, 3353, 2127, 86, 2117, 2187 86, 86, 86, 86, 2121, 86, 2128, 2120, 2123, 2122, 2188 86, 2126, 86, 86, 86, 2132, 2124, 2125, 2131, 2129, 2189 86, 86, 2133, 2134, 2127, 2135, 2138, 2136, 2137, 2141, 2190 2139, 2142, 2143, 2128, 86, 86, 86, 86, 86, 2140, 2191 2144, 86, 2132, 3353, 86, 2131, 86, 86, 2146, 2133, 2192 2134, 86, 86, 2138, 2136, 2137, 2141, 2139, 86, 2143, 2193 2194 2145, 86, 86, 86, 3353, 2147, 2140, 2144, 2149, 86, 2195 2150, 2151, 3353, 2152, 3353, 2146, 2148, 86, 86, 2154, 2196 2155, 2158, 2156, 2153, 3353, 2160, 86, 2145, 86, 2164, 2197 2159, 86, 2147, 2162, 86, 2149, 86, 2150, 2151, 86, 2198 2152, 86, 2157, 2148, 86, 86, 2154, 2155, 86, 2156, 2199 2153, 2161, 2160, 2163, 86, 2165, 86, 2159, 2166, 2168, 2200 2162, 86, 86, 2167, 2169, 86, 86, 2170, 2172, 2157, 2201 2171, 2173, 86, 2174, 3353, 2178, 2176, 3353, 2161, 2175, 2202 2163, 86, 2165, 86, 86, 2166, 86, 3353, 86, 2179, 2203 2167, 2169, 86, 2177, 86, 2172, 86, 2171, 2173, 86, 2204 2205 86, 86, 2178, 2176, 2180, 86, 2175, 86, 2181, 2182, 2206 86, 2184, 2189, 2183, 2185, 86, 2179, 2186, 2190, 86, 2207 2177, 2187, 86, 86, 86, 86, 86, 2192, 2191, 86, 2208 3353, 2180, 3353, 2195, 2188, 2181, 2182, 2193, 2184, 2189, 2209 2183, 2185, 86, 86, 2186, 2190, 86, 2196, 2187, 2194, 2210 2198, 2197, 2203, 2200, 86, 2191, 86, 86, 86, 2199, 2211 2195, 2188, 86, 2201, 2193, 2205, 2204, 2202, 2211, 86, 2212 86, 2207, 86, 2206, 2196, 86, 2194, 2198, 2197, 2203, 2213 2200, 2208, 2209, 86, 86, 86, 2199, 86, 86, 86, 2214 2201, 2210, 2205, 2204, 2202, 86, 86, 2213, 2207, 2215, 2215 2216 2206, 2212, 86, 2219, 86, 2214, 3353, 86, 2208, 2209, 2217 2218, 2216, 2220, 2217, 2228, 2221, 2222, 86, 2210, 86, 2218 2223, 86, 86, 2229, 2213, 2224, 2215, 2225, 2212, 86, 2219 86, 86, 2214, 86, 86, 86, 2226, 2218, 2216, 2220, 2220 2217, 86, 2221, 2222, 86, 2227, 86, 2230, 2231, 86, 2221 2229, 2232, 86, 2234, 2225, 86, 3353, 2233, 86, 86, 2222 2235, 2238, 2236, 2226, 2240, 3353, 2241, 2239, 2242, 86, 2223 2237, 3353, 2227, 3353, 2230, 2231, 2243, 3353, 86, 86, 2224 2234, 86, 86, 86, 2233, 2247, 86, 2235, 86, 2236, 2225 86, 2240, 86, 2241, 2239, 2242, 2244, 2237, 86, 2245, 2226 2227 2248, 2251, 2246, 2243, 2249, 86, 86, 2252, 3353, 2250, 2228 86, 3353, 2247, 2255, 3353, 2253, 86, 86, 2254, 2256, 2229 2260, 3353, 3353, 2244, 2257, 86, 2245, 2248, 2251, 2246, 2230 86, 2259, 2258, 86, 2252, 86, 86, 2263, 86, 86, 2231 2255, 86, 2253, 2261, 2262, 2254, 2256, 86, 86, 86, 2232 2264, 2257, 86, 86, 2265, 2268, 2269, 2266, 2259, 2258, 2233 2267, 2271, 86, 86, 2263, 2274, 86, 2270, 2280, 2275, 2234 2261, 2262, 86, 86, 3353, 86, 3353, 2264, 86, 86, 2235 2272, 2265, 2268, 2269, 2266, 2276, 86, 2267, 2271, 86, 2236 2277, 2279, 2274, 2273, 2270, 86, 2275, 86, 2278, 86, 2237 2238 86, 86, 2282, 2281, 2284, 2283, 2285, 2272, 2286, 86, 2239 2287, 2288, 2276, 86, 2290, 170, 2289, 2277, 2279, 2291, 2240 2273, 86, 86, 2292, 2304, 2278, 2293, 86, 86, 86, 2241 2281, 2284, 2283, 2285, 2294, 2286, 2295, 2287, 2309, 3353, 2242 2296, 86, 2299, 86, 2300, 86, 86, 86, 2301, 2302, 2243 2292, 86, 2306, 2293, 2297, 2305, 86, 2307, 2308, 2303, 2244 86, 2294, 3353, 86, 86, 2298, 86, 2296, 86, 2299, 2245 86, 86, 2310, 2312, 86, 2301, 2302, 86, 86, 2306, 2246 86, 2297, 2305, 2311, 86, 2308, 2303, 2313, 3353, 2314, 2247 86, 86, 2298, 2315, 86, 86, 86, 2316, 3353, 2310, 2248 2249 2312, 86, 2319, 2318, 2322, 2317, 2321, 2320, 2324, 2326, 2250 2311, 86, 3353, 86, 2313, 86, 2314, 86, 86, 2325, 2251 2315, 86, 2323, 2327, 2316, 86, 86, 86, 2330, 2319, 2252 2318, 2322, 2317, 2321, 2320, 86, 2326, 2328, 86, 2329, 2253 2332, 2335, 86, 86, 2331, 86, 2325, 2333, 86, 2323, 2254 2327, 2334, 86, 2336, 2339, 2330, 2340, 2337, 86, 86, 2255 86, 86, 86, 2345, 2328, 86, 2329, 2332, 86, 2338, 2256 2342, 2331, 86, 2343, 2333, 86, 86, 86, 2334, 2341, 2257 2336, 2339, 2347, 2340, 2337, 2344, 2348, 86, 86, 2346, 2258 2345, 86, 2349, 2350, 3353, 86, 2338, 2342, 2352, 2351, 2259 2260 2343, 2353, 2357, 86, 2356, 2354, 2341, 86, 2358, 2347, 2261 2355, 2359, 2344, 2348, 2362, 86, 2346, 86, 86, 2349, 2262 86, 86, 86, 2365, 86, 2352, 2351, 2360, 2353, 86, 2263 86, 2356, 2354, 86, 2361, 2358, 2366, 2355, 86, 86, 2264 86, 2362, 2363, 2367, 2368, 2364, 2369, 2371, 86, 2370, 2265 86, 2372, 2373, 86, 2360, 2375, 86, 2377, 2379, 2374, 2266 86, 2361, 86, 86, 2380, 86, 86, 86, 2376, 2363, 2267 2367, 2368, 2364, 2369, 2371, 2378, 2370, 86, 86, 86, 2268 86, 2381, 86, 2382, 86, 2379, 2374, 86, 2383, 2385, 2269 2384, 86, 2386, 2387, 2389, 2376, 86, 86, 2393, 2388, 2270 2271 2390, 2391, 2378, 86, 2395, 2392, 86, 86, 86, 86, 2272 2382, 3353, 2398, 2394, 86, 2383, 2385, 2384, 3353, 2386, 2273 86, 86, 86, 2397, 86, 2393, 2388, 2390, 2391, 86, 2274 2396, 86, 2392, 2399, 2400, 86, 2401, 86, 86, 2398, 2275 2394, 2402, 86, 2403, 2404, 86, 2405, 86, 86, 2406, 2276 2397, 2407, 2408, 2409, 2410, 2411, 86, 2396, 3353, 86, 2277 2399, 2400, 2414, 86, 2424, 86, 86, 2413, 2402, 86, 2278 2403, 2404, 2418, 2405, 86, 86, 86, 2412, 2407, 2408, 2279 2409, 2410, 86, 2415, 86, 2419, 2416, 86, 3353, 2414, 2280 2417, 86, 86, 2420, 2413, 86, 86, 2426, 86, 2418, 2281 2282 2425, 2432, 86, 86, 2412, 2436, 2421, 2427, 2429, 2428, 2283 2415, 86, 2419, 2416, 2435, 86, 2431, 2417, 86, 86, 2284 2420, 2422, 86, 2423, 2426, 2430, 86, 2425, 2432, 86, 2285 86, 86, 2433, 2421, 2427, 2429, 2428, 86, 86, 2434, 2286 2437, 2435, 2438, 2431, 3353, 2441, 86, 86, 2422, 2439, 2287 2423, 2440, 2430, 2443, 86, 2442, 2449, 2444, 3353, 2433, 2288 3353, 86, 2450, 2445, 2451, 2446, 2434, 2437, 2447, 86, 2289 2455, 86, 2441, 86, 86, 86, 2439, 86, 2440, 2453, 2290 2443, 86, 2442, 86, 2444, 2448, 86, 86, 86, 2452, 2291 2445, 2451, 2446, 2454, 86, 2447, 86, 86, 86, 2456, 2292 2293 2458, 2459, 86, 2460, 2461, 2463, 2453, 2457, 86, 2466, 2294 2462, 2464, 2448, 3353, 3353, 86, 2452, 2465, 2467, 86, 2295 2454, 86, 170, 86, 86, 86, 2456, 2458, 2459, 86, 2296 2460, 2461, 86, 2469, 2457, 86, 2466, 2462, 2464, 2468, 2297 2470, 2471, 2472, 2473, 2465, 2467, 2474, 2476, 86, 86, 2298 2475, 86, 2479, 2478, 2477, 2480, 2482, 3353, 86, 2483, 2299 2469, 2481, 2489, 86, 86, 2484, 2468, 2470, 2471, 2472, 2300 2473, 3353, 86, 86, 86, 86, 86, 2475, 86, 86, 2301 2478, 2477, 2485, 86, 86, 2486, 2483, 86, 2481, 2488, 2302 2490, 86, 2484, 2487, 86, 3353, 2491, 86, 86, 2492, 2303 2304 2493, 86, 2494, 86, 3353, 2500, 2495, 2496, 3353, 2485, 2305 3353, 3353, 2486, 2497, 2498, 86, 2488, 2490, 86, 2499, 2306 2487, 86, 86, 2491, 86, 86, 2492, 2493, 86, 86, 2307 2501, 86, 86, 2495, 2496, 2505, 2502, 2506, 2503, 2508, 2308 2497, 2498, 86, 2504, 86, 86, 2499, 2507, 86, 2509, 2309 86, 2510, 3353, 2519, 86, 3353, 2529, 2501, 86, 2511, 2310 86, 86, 2505, 2502, 2506, 2503, 2508, 2512, 86, 2513, 2311 2504, 2514, 86, 2515, 2507, 86, 2516, 86, 2510, 86, 2312 2518, 86, 2520, 2521, 2517, 86, 2511, 2522, 86, 2524, 2313 3353, 86, 2531, 86, 2512, 86, 2513, 2525, 2514, 2523, 2314 2315 2515, 86, 86, 2516, 2527, 86, 2528, 2518, 86, 2520, 2316 2521, 2517, 86, 2530, 2522, 86, 2524, 2526, 86, 86, 2317 2532, 86, 2533, 2534, 2525, 2536, 2523, 2541, 86, 86, 2318 86, 2527, 86, 2528, 2537, 2535, 86, 2539, 86, 2542, 2319 2530, 2538, 86, 2540, 2526, 2543, 2544, 2532, 86, 86, 2320 2534, 2552, 2536, 2547, 86, 2546, 86, 2549, 2545, 86, 2321 86, 2537, 2535, 2548, 2539, 86, 86, 2554, 2538, 86, 2322 2540, 86, 86, 2544, 2550, 86, 2551, 86, 86, 2553, 2323 2547, 86, 2546, 2555, 2549, 2545, 2556, 2557, 2558, 86, 2324 2548, 86, 86, 2561, 2559, 2560, 2562, 86, 86, 86, 2325 2326 3353, 2550, 86, 2551, 86, 2563, 2553, 2564, 2565, 2566, 2327 2555, 2568, 86, 2556, 86, 2558, 86, 2567, 2570, 86, 2328 2561, 2559, 2560, 86, 86, 2571, 86, 86, 2569, 2574, 2329 2572, 86, 2563, 86, 2564, 2565, 2566, 86, 2568, 2573, 2330 2575, 86, 86, 2576, 2567, 2570, 86, 86, 2577, 2578, 2331 2579, 86, 2571, 2580, 3353, 2569, 2574, 2572, 2582, 2581, 2332 3353, 2583, 86, 2584, 2585, 86, 2573, 86, 2588, 2590, 2333 86, 2591, 2587, 3353, 3353, 86, 86, 2579, 86, 86, 2334 2580, 86, 2586, 86, 86, 2582, 2581, 86, 2583, 86, 2335 2584, 2585, 2589, 2593, 2592, 86, 86, 2594, 86, 2587, 2336 2337 86, 2595, 2600, 2597, 2596, 2598, 2599, 3353, 86, 2586, 2338 86, 86, 86, 86, 2602, 86, 86, 86, 2601, 2589, 2339 2593, 2592, 2608, 2604, 2594, 86, 2606, 2603, 2595, 86, 2340 2597, 2596, 2598, 2599, 86, 2605, 86, 86, 86, 86, 2341 2607, 2602, 2609, 2612, 2610, 2601, 2611, 2614, 86, 2608, 2342 2604, 86, 86, 2606, 2603, 170, 86, 2615, 86, 2613, 2343 86, 2617, 2605, 2616, 86, 2618, 2619, 2607, 2620, 2609, 2344 2612, 2610, 2621, 2611, 2614, 2622, 86, 2623, 2625, 2627, 2345 2624, 86, 3353, 86, 2615, 3353, 2613, 86, 2617, 86, 2346 2616, 86, 2618, 86, 86, 86, 2632, 2634, 86, 2621, 2347 2348 2626, 86, 2622, 86, 2623, 2625, 2627, 2624, 86, 2628, 2349 2629, 2631, 2630, 2633, 86, 2638, 86, 86, 86, 86, 2350 86, 2635, 86, 2632, 2634, 2636, 2637, 2626, 86, 2639, 2351 2640, 2643, 2642, 2644, 86, 86, 2628, 2629, 2631, 2630, 2352 2633, 86, 2638, 86, 2641, 2645, 2646, 2648, 2635, 86, 2353 86, 86, 2636, 2637, 2647, 86, 86, 2640, 86, 2642, 2354 2644, 2650, 2654, 86, 2649, 2655, 2651, 86, 2652, 2653, 2355 86, 2641, 86, 2646, 2648, 86, 86, 86, 2656, 86, 2356 2658, 2647, 2659, 2660, 2661, 86, 2663, 2670, 2650, 86, 2357 2657, 2649, 86, 2651, 2662, 2652, 2653, 2666, 86, 86, 2358 2359 2664, 86, 2665, 86, 2667, 2656, 2669, 2658, 86, 86, 2360 86, 86, 86, 2663, 2670, 86, 86, 2657, 2668, 86, 2361 2671, 2662, 2673, 2672, 2666, 86, 2674, 2664, 86, 2665, 2362 2676, 2667, 2678, 2669, 86, 3353, 2675, 2677, 86, 86, 2363 2679, 3353, 2684, 3353, 2680, 2668, 2683, 86, 86, 86, 2364 2672, 86, 86, 2674, 86, 2687, 2686, 2676, 2681, 2678, 2365 2685, 2682, 86, 2675, 2677, 86, 86, 2679, 86, 86, 2366 86, 2680, 86, 2683, 2688, 2690, 2692, 2689, 2693, 2691, 2367 2694, 2695, 86, 2686, 2698, 2681, 3353, 2685, 2682, 86, 2368 86, 86, 2701, 86, 86, 2700, 2702, 2699, 86, 86, 2369 2370 2704, 2688, 2690, 2692, 2689, 86, 2691, 2694, 2695, 2696, 2371 2697, 86, 86, 86, 2706, 86, 86, 86, 2703, 2701, 2372 2705, 2710, 2700, 86, 2699, 2708, 86, 86, 2707, 3353, 2373 2711, 2709, 86, 2713, 3353, 2716, 2696, 2697, 86, 86, 2374 86, 2706, 86, 2717, 2712, 2703, 2718, 2705, 86, 86, 2375 2714, 2715, 2708, 86, 2719, 2707, 86, 2711, 2709, 2720, 2376 86, 86, 2716, 2721, 86, 86, 86, 2722, 2725, 2723, 2377 2717, 2712, 2726, 86, 2727, 2724, 2729, 2714, 2715, 2728, 2378 86, 2719, 86, 2730, 2733, 86, 86, 86, 86, 86, 2379 2721, 2731, 86, 2734, 2722, 2725, 2723, 86, 86, 2726, 2380 2381 2732, 2727, 2724, 2729, 2735, 86, 2728, 2737, 2736, 2743, 2382 2730, 86, 86, 86, 2738, 2739, 2740, 2741, 2731, 2742, 2383 86, 86, 2745, 86, 86, 2744, 2746, 2732, 86, 86, 2384 2748, 170, 2749, 2750, 2737, 2736, 2743, 2747, 2751, 86, 2385 2752, 2738, 2739, 2755, 2741, 86, 2742, 86, 86, 86, 2386 2753, 86, 2744, 86, 3353, 2754, 86, 86, 2756, 2749, 2387 2758, 2757, 86, 2761, 2747, 86, 2762, 2752, 86, 86, 2388 2760, 2763, 86, 2764, 2759, 86, 3353, 2753, 86, 2765, 2389 2767, 86, 2754, 86, 2766, 2756, 86, 2758, 2757, 86, 2390 2761, 2768, 2770, 2769, 86, 86, 2772, 2760, 86, 2771, 2391 2392 2764, 2759, 86, 86, 86, 86, 2765, 2767, 86, 2774, 2393 2773, 2766, 2775, 2777, 86, 86, 2776, 2779, 2768, 2770, 2394 2769, 86, 3353, 2772, 86, 2778, 2771, 86, 2782, 2780, 2395 86, 86, 2784, 2781, 86, 86, 2774, 2773, 2783, 2775, 2396 2777, 86, 86, 2776, 2785, 2786, 86, 2789, 2787, 86, 2397 86, 2788, 2778, 86, 2790, 2782, 2780, 2791, 2794, 86, 2398 2781, 2792, 86, 86, 86, 2783, 86, 2793, 86, 86, 2399 2796, 2785, 2786, 2797, 86, 2787, 2798, 2795, 2788, 86, 2400 2799, 2790, 2800, 2804, 2791, 86, 2803, 3353, 2792, 2801, 2401 86, 2806, 2802, 2805, 2793, 3353, 2809, 2810, 2811, 2807, 2402 2403 86, 86, 86, 2812, 2795, 86, 86, 86, 86, 2800, 2404 86, 86, 86, 2803, 86, 86, 2801, 86, 2806, 2802, 2405 2805, 2808, 86, 2809, 2810, 86, 2807, 2813, 2814, 2816, 2406 86, 2815, 2817, 86, 2819, 2818, 2820, 2822, 2823, 86, 2407 2824, 2821, 2825, 2826, 3353, 86, 2828, 2827, 2808, 86, 2408 2831, 86, 86, 86, 86, 2814, 86, 86, 2815, 2817, 2409 86, 2819, 2818, 2829, 2822, 2823, 86, 2824, 86, 86, 2410 86, 86, 86, 2828, 2827, 2830, 2833, 86, 2832, 2834, 2411 2835, 2836, 86, 2837, 2838, 2839, 2840, 2848, 2842, 2841, 2412 2829, 86, 86, 2843, 2844, 86, 3353, 86, 86, 2849, 2413 2414 2850, 86, 2830, 86, 86, 2832, 2834, 86, 2836, 2847, 2415 2837, 2838, 86, 86, 2851, 2845, 2841, 86, 2846, 86, 2416 86, 2844, 86, 86, 2852, 86, 2849, 2850, 2853, 2854, 2417 86, 2855, 3353, 86, 2857, 2856, 2847, 2862, 2858, 2859, 2418 2864, 86, 2845, 2861, 86, 2846, 86, 86, 86, 2860, 2419 2863, 2852, 86, 86, 3353, 2853, 2854, 3353, 2855, 86, 2420 86, 2857, 2856, 86, 2862, 2858, 2859, 86, 2865, 3353, 2421 2861, 86, 2866, 2868, 2869, 2870, 2860, 2863, 2871, 2873, 2422 2867, 86, 86, 2872, 2874, 2875, 86, 2876, 3353, 2877, 2423 3353, 2878, 3353, 86, 86, 2865, 86, 2879, 2881, 2866, 2424 2425 2868, 2869, 2870, 2880, 2882, 2885, 2883, 2867, 3353, 86, 2426 86, 86, 2875, 86, 86, 86, 2877, 86, 2878, 2884, 2427 86, 2887, 2888, 86, 2879, 2881, 86, 86, 2886, 86, 2428 2880, 2882, 2885, 2883, 2889, 2890, 86, 2891, 2892, 2893, 2429 86, 86, 86, 86, 2894, 2895, 2884, 2896, 2887, 2888, 2430 2897, 2898, 2899, 86, 2904, 2886, 3353, 2900, 2901, 3353, 2431 2903, 2889, 2890, 86, 86, 86, 2893, 86, 2902, 86, 2432 2905, 2894, 86, 86, 2896, 86, 86, 86, 2898, 86, 2433 2906, 86, 2907, 2908, 2900, 2901, 86, 2903, 2909, 2910, 2434 86, 2912, 2916, 86, 2911, 2902, 2913, 2905, 86, 86, 2435 2436 86, 2914, 2917, 2915, 2918, 86, 2919, 2906, 86, 2907, 2437 2908, 2920, 2921, 2927, 86, 2909, 2922, 86, 2912, 86, 2438 86, 86, 2923, 2913, 86, 86, 2925, 2937, 2914, 86, 2439 2915, 2918, 2928, 2919, 86, 2930, 2931, 86, 2920, 86, 2440 2924, 2926, 86, 2922, 86, 86, 2929, 86, 86, 2923, 2441 2932, 2933, 86, 2925, 86, 3353, 2938, 86, 86, 2928, 2442 2934, 2939, 2930, 2931, 2943, 2941, 2940, 2924, 2926, 86, 2443 2944, 2935, 86, 2929, 2936, 3353, 86, 2932, 2933, 2947, 2444 3353, 2942, 86, 86, 86, 2945, 86, 2934, 86, 86, 2445 2948, 2943, 2941, 2940, 2946, 2949, 2951, 86, 2935, 86, 2446 2447 2953, 2936, 86, 2950, 2952, 3353, 86, 86, 2942, 86, 2448 86, 2955, 2945, 86, 2956, 3353, 86, 2948, 86, 2959, 2449 2957, 2946, 2949, 2951, 2954, 2960, 86, 2958, 2961, 2964, 2450 2950, 2952, 86, 86, 2967, 2990, 2962, 86, 86, 2965, 2451 86, 2956, 86, 2963, 2966, 86, 2959, 2957, 86, 86, 2452 86, 2954, 2960, 86, 2958, 2961, 86, 86, 86, 2968, 2453 2970, 2967, 2969, 2962, 2971, 3353, 2965, 86, 86, 2973, 2454 2963, 2966, 2972, 86, 2974, 2975, 2977, 86, 2976, 86, 2455 2978, 2979, 2980, 86, 86, 2982, 2968, 2970, 86, 2969, 2456 3353, 2971, 86, 2986, 86, 86, 2973, 2987, 2981, 2972, 2457 2458 2983, 2974, 2975, 86, 86, 2976, 2984, 2978, 86, 86, 2459 2985, 86, 86, 2989, 2991, 86, 2988, 86, 86, 2993, 2460 2986, 86, 2992, 86, 86, 2981, 2994, 2983, 2995, 2996, 2461 86, 86, 2998, 2984, 3001, 2997, 86, 2985, 2999, 86, 2462 2989, 2991, 86, 2988, 3002, 86, 2993, 3000, 3004, 2992, 2463 3003, 3007, 86, 2994, 3006, 2995, 86, 86, 3009, 3008, 2464 86, 86, 2997, 3353, 86, 2999, 86, 3005, 3010, 86, 2465 86, 86, 3011, 3012, 3000, 86, 86, 3003, 3007, 3013, 2466 86, 3006, 3015, 3014, 3017, 3018, 3008, 86, 3016, 3019, 2467 86, 86, 3021, 3353, 3005, 3010, 3020, 3027, 3024, 3011, 2468 2469 3012, 3353, 3353, 86, 3022, 3023, 86, 86, 86, 3015, 2470 3014, 3017, 3025, 86, 3026, 3016, 86, 86, 3028, 3029, 2471 86, 3030, 86, 3020, 86, 86, 3034, 86, 86, 86, 2472 3035, 3022, 3023, 3032, 86, 3031, 3033, 3039, 86, 3025, 2473 86, 3026, 86, 3036, 3037, 3028, 3029, 3038, 86, 3040, 2474 86, 86, 3044, 3034, 3042, 86, 3041, 86, 3043, 3045, 2475 3032, 3046, 3031, 3033, 86, 86, 3049, 86, 3047, 3050, 2476 3036, 3037, 3048, 86, 3038, 3051, 86, 3056, 86, 86, 2477 86, 3042, 86, 3041, 3052, 3043, 86, 3057, 86, 3053, 2478 3065, 86, 86, 3063, 86, 3047, 3050, 3060, 86, 3048, 2479 2480 3054, 3055, 86, 86, 3056, 86, 86, 3058, 86, 3059, 2481 86, 3052, 3061, 3062, 86, 3064, 3053, 86, 3066, 86, 2482 86, 3067, 86, 3069, 3060, 86, 3070, 3054, 3055, 86, 2483 3068, 86, 3071, 3072, 3058, 3073, 3059, 3076, 3353, 3061, 2484 3062, 3074, 86, 3075, 3077, 3066, 86, 3080, 3067, 3353, 2485 86, 3078, 86, 86, 86, 3353, 86, 3068, 86, 3071, 2486 3072, 3081, 86, 3082, 86, 3079, 86, 86, 3074, 86, 2487 3075, 3077, 86, 3084, 3080, 3083, 86, 3091, 3078, 3085, 2488 3086, 86, 3087, 86, 86, 3088, 86, 86, 3081, 3092, 2489 3082, 86, 3079, 3093, 86, 3095, 86, 3096, 3089, 3090, 2490 2491 3084, 3100, 3083, 3094, 3091, 3098, 3085, 3086, 86, 3087, 2492 86, 86, 3088, 3101, 3097, 86, 3092, 3099, 3353, 86, 2493 3093, 86, 3102, 3103, 3096, 3089, 3090, 86, 86, 86, 2494 3094, 86, 3098, 3104, 3105, 3106, 3107, 3110, 3111, 3353, 2495 86, 3097, 86, 3115, 3099, 86, 3112, 3113, 3353, 3102, 2496 86, 3114, 3117, 3116, 3353, 86, 3119, 3120, 3118, 3123, 2497 3104, 3105, 86, 86, 86, 86, 86, 86, 3122, 86, 2498 3115, 86, 3125, 3126, 86, 86, 3127, 3132, 3114, 86, 2499 3116, 3121, 3129, 3119, 3120, 3118, 86, 3124, 86, 86, 2500 86, 86, 86, 3128, 86, 3122, 86, 3130, 3133, 3125, 2501 2502 3126, 3131, 3353, 3127, 86, 86, 3134, 3135, 3121, 3129, 2503 3140, 3142, 3138, 3136, 3124, 86, 3137, 3139, 86, 3141, 2504 3128, 86, 3147, 86, 3130, 86, 3143, 86, 3131, 86, 2505 3144, 86, 86, 3134, 3135, 3148, 3145, 3146, 3142, 3149, 2506 3136, 3150, 86, 3137, 86, 86, 3141, 3151, 3153, 86, 2507 3152, 3154, 86, 3143, 3155, 3156, 3157, 3144, 86, 3158, 2508 86, 3159, 86, 3145, 3146, 3160, 3149, 86, 86, 3161, 2509 86, 3162, 3163, 86, 86, 3153, 3164, 3152, 86, 3165, 2510 86, 86, 3156, 86, 3166, 3167, 86, 3168, 86, 3169, 2511 3170, 3172, 86, 3171, 3174, 3173, 86, 86, 86, 86, 2512 2513 3175, 86, 86, 86, 86, 86, 3165, 86, 86, 3176, 2514 3178, 3166, 86, 3177, 3168, 86, 3169, 3170, 86, 3179, 2515 3171, 3174, 3173, 3180, 3183, 86, 3182, 3175, 86, 3181, 2516 86, 3184, 3185, 86, 3188, 86, 3176, 86, 3187, 3189, 2517 3177, 3186, 86, 3353, 3192, 3353, 3179, 86, 86, 3193, 2518 3180, 3183, 86, 3182, 86, 86, 3181, 3191, 3184, 3190, 2519 86, 3188, 86, 3194, 86, 3187, 3189, 3196, 3186, 3197, 2520 86, 3192, 86, 3195, 86, 86, 3193, 3198, 86, 3199, 2521 3200, 3201, 3204, 3202, 3191, 3203, 3190, 86, 3205, 86, 2522 3194, 86, 3209, 86, 3196, 86, 3197, 3207, 3206, 3353, 2523 2524 3195, 86, 3208, 86, 3198, 86, 86, 86, 86, 3204, 2525 3202, 86, 3203, 3210, 86, 3205, 3211, 3213, 86, 3209, 2526 3212, 3220, 3214, 3215, 3207, 3206, 3216, 3218, 86, 3208, 2527 86, 86, 86, 3217, 3219, 86, 86, 86, 86, 86, 2528 3210, 3221, 3223, 3211, 3213, 3222, 86, 3212, 3220, 3214, 2529 3215, 86, 86, 3216, 3218, 3224, 3226, 3227, 3225, 3228, 2530 3217, 3219, 3229, 86, 86, 86, 86, 3231, 3221, 3223, 2531 86, 3232, 3222, 3230, 3233, 3234, 3353, 3242, 86, 3235, 2532 3237, 3236, 86, 3226, 3227, 3225, 3228, 86, 86, 86, 2533 3238, 86, 3239, 3240, 86, 86, 3245, 86, 3232, 3241, 2534 2535 3230, 86, 86, 3243, 86, 3246, 3235, 3237, 3236, 86, 2536 3244, 86, 86, 3248, 86, 3247, 86, 3238, 86, 3239, 2537 3240, 3249, 86, 3245, 3250, 86, 3241, 3251, 3252, 3253, 2538 3243, 3255, 86, 3256, 3254, 86, 86, 3244, 3257, 3258, 2539 86, 86, 3247, 86, 3259, 3260, 3264, 86, 86, 3353, 2540 3353, 3250, 3265, 3262, 3251, 86, 3253, 86, 86, 86, 2541 3256, 3254, 3261, 3263, 3266, 3257, 3258, 86, 86, 3269, 2542 3270, 86, 3267, 3264, 3268, 86, 86, 86, 86, 86, 2543 3262, 86, 86, 3272, 3274, 3271, 3273, 3276, 3275, 3261, 2544 3263, 86, 86, 86, 86, 86, 3269, 3270, 86, 3267, 2545 2546 3277, 3268, 86, 3278, 3279, 86, 3283, 3284, 3281, 3280, 2547 3272, 3274, 3271, 3273, 3276, 3275, 86, 86, 3282, 3285, 2548 3286, 3287, 86, 3353, 3291, 86, 86, 3277, 3288, 86, 2549 3278, 86, 3289, 86, 3284, 3281, 3280, 3292, 3293, 3294, 2550 3295, 3290, 3297, 86, 3296, 3282, 86, 3286, 3287, 86, 2551 86, 86, 86, 3298, 86, 3288, 86, 3300, 3302, 3289, 2552 86, 86, 86, 86, 86, 3293, 86, 3295, 3290, 3297, 2553 3299, 3296, 86, 3301, 3353, 3303, 3304, 3307, 86, 3310, 2554 3298, 86, 3311, 3308, 3309, 3302, 3353, 3305, 3353, 86, 2555 3306, 86, 86, 86, 3312, 3314, 86, 3299, 3313, 86, 2556 2557 3301, 86, 3303, 86, 3307, 86, 3310, 3315, 86, 3311, 2558 3308, 3309, 86, 3317, 3305, 3316, 86, 3306, 3318, 3319, 2559 3353, 3312, 3314, 86, 3321, 3313, 3322, 3320, 3323, 3353, 2560 3325, 3324, 86, 86, 3315, 3331, 3353, 3329, 3353, 86, 2561 3317, 86, 3316, 3326, 86, 3318, 3319, 86, 3327, 3333, 2562 86, 3321, 3328, 86, 3320, 3323, 86, 86, 3324, 86, 2563 86, 3330, 86, 86, 3329, 3332, 3335, 3334, 86, 86, 2564 3326, 86, 3336, 86, 86, 3327, 3333, 3337, 3338, 3328, 2565 86, 3341, 3339, 3340, 3342, 3344, 3343, 3345, 3330, 86, 2566 86, 86, 3332, 3335, 3334, 3346, 3347, 3348, 3353, 3336, 2567 2568 3351, 3353, 3352, 86, 3337, 86, 86, 86, 3341, 3339, 2569 3340, 86, 86, 3343, 86, 86, 3353, 3349, 86, 86, 2570 3350, 3353, 3346, 3347, 3348, 86, 3353, 86, 86, 86, 2571 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 2572 3353, 3353, 3353, 3353, 3349, 3353, 3353, 3350, 47, 47, 2573 47, 47, 47, 47, 47, 52, 52, 52, 52, 52, 2574 52, 52, 57, 57, 57, 57, 57, 57, 57, 63, 2575 63, 63, 63, 63, 63, 63, 68, 68, 68, 68, 2576 68, 68, 68, 74, 74, 74, 74, 74, 74, 74, 2577 80, 80, 80, 80, 80, 80, 80, 89, 89, 3353, 2578 2579 89, 89, 89, 89, 160, 160, 3353, 3353, 3353, 160, 2580 160, 162, 162, 3353, 3353, 162, 3353, 162, 164, 3353, 2581 3353, 3353, 3353, 3353, 164, 167, 167, 3353, 3353, 3353, 2582 167, 167, 169, 3353, 3353, 3353, 3353, 3353, 169, 171, 2583 171, 3353, 171, 171, 171, 171, 174, 3353, 3353, 3353, 2584 3353, 3353, 174, 177, 177, 3353, 3353, 3353, 177, 177, 2585 90, 90, 3353, 90, 90, 90, 90, 17, 3353, 3353, 2586 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 2587 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 2588 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 2589 2590 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 2591 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 2592 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 2593 3353, 3353, 3353, 3353 2594 } ; 2595 2596 static const flex_int16_t yy_chk[9635] = 2597 { 0, 2598 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2599 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2600 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2601 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2602 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2603 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2604 1, 1, 1, 1, 1, 1, 3, 3, 3, 4, 2605 4, 4, 5, 5, 6, 6, 5, 32, 6, 7, 2606 7, 7, 7, 33, 7, 8, 8, 8, 8, 32, 2607 8, 9, 9, 9, 10, 10, 10, 19, 51, 51, 2608 2609 1090, 19, 3361, 3, 32, 33, 4, 67, 67, 5, 2610 33, 6, 2735, 13, 13, 13, 13, 7, 13, 14, 2611 14, 14, 14, 8, 14, 15, 15, 15, 9, 25, 2612 1090, 10, 11, 11, 11, 11, 11, 11, 12, 12, 2613 12, 12, 12, 12, 16, 16, 16, 34, 28, 84, 2614 84, 13, 11, 45, 293, 25, 25, 14, 12, 34, 2615 39, 23, 15, 23, 23, 45, 23, 1099, 28, 177, 2616 11, 28, 23, 39, 34, 28, 12, 176, 87, 11, 2617 45, 16, 87, 293, 37, 12, 30, 39, 29, 56, 2618 37, 174, 56, 72, 30, 28, 26, 169, 100, 23, 2619 2620 24, 24, 29, 26, 24, 30, 72, 26, 99, 24, 2621 26, 37, 30, 30, 29, 29, 100, 99, 24, 167, 2622 72, 30, 26, 26, 24, 100, 166, 24, 24, 29, 2623 26, 24, 30, 164, 26, 99, 24, 26, 46, 163, 2624 46, 46, 163, 46, 162, 24, 27, 160, 31, 46, 2625 27, 31, 101, 27, 94, 27, 27, 145, 31, 62, 2626 31, 62, 62, 195, 62, 101, 27, 70, 27, 70, 2627 70, 31, 70, 27, 94, 31, 35, 27, 31, 101, 2628 27, 94, 27, 27, 35, 31, 93, 31, 36, 145, 2629 35, 85, 36, 27, 35, 195, 44, 161, 161, 42, 2630 2631 44, 42, 35, 35, 44, 70, 36, 80, 36, 93, 2632 42, 35, 75, 93, 36, 36, 42, 35, 92, 36, 2633 74, 35, 44, 44, 43, 42, 42, 44, 42, 168, 2634 168, 44, 68, 36, 43, 36, 38, 42, 43, 43, 2635 38, 95, 92, 42, 38, 92, 219, 43, 63, 111, 2636 38, 43, 73, 38, 73, 73, 95, 73, 111, 97, 2637 38, 43, 38, 38, 104, 43, 43, 38, 95, 104, 2638 79, 38, 79, 79, 58, 79, 111, 38, 219, 86, 2639 38, 86, 86, 97, 86, 222, 97, 38, 40, 944, 2640 86, 104, 40, 89, 96, 89, 89, 112, 89, 98, 2641 2642 57, 96, 40, 40, 89, 40, 112, 103, 103, 106, 2643 105, 52, 98, 47, 40, 40, 103, 222, 105, 40, 2644 944, 96, 18, 98, 112, 137, 98, 106, 17, 40, 2645 40, 89, 40, 41, 103, 103, 41, 105, 102, 98, 2646 107, 106, 109, 41, 102, 108, 102, 41, 41, 109, 2647 224, 137, 137, 107, 106, 41, 113, 0, 108, 102, 2648 41, 114, 0, 41, 115, 102, 118, 107, 114, 109, 2649 41, 102, 108, 102, 41, 41, 110, 110, 117, 113, 2650 116, 117, 224, 113, 110, 126, 115, 0, 114, 119, 2651 118, 115, 110, 116, 117, 117, 0, 119, 118, 126, 2652 2653 123, 0, 117, 110, 110, 117, 120, 116, 117, 124, 2654 121, 110, 126, 123, 121, 122, 119, 118, 125, 127, 2655 122, 117, 117, 122, 130, 128, 120, 123, 120, 146, 2656 121, 130, 124, 120, 121, 129, 124, 121, 125, 127, 2657 131, 121, 122, 128, 146, 125, 127, 122, 133, 129, 2658 132, 130, 128, 120, 135, 134, 146, 121, 135, 132, 2659 0, 136, 129, 131, 134, 138, 140, 131, 136, 141, 2660 141, 133, 138, 0, 139, 133, 135, 132, 140, 142, 2661 143, 135, 134, 139, 144, 135, 0, 142, 136, 139, 2662 0, 143, 138, 140, 148, 143, 141, 139, 144, 0, 2663 2664 147, 139, 149, 151, 143, 148, 142, 143, 152, 151, 2665 139, 144, 155, 149, 148, 150, 139, 147, 143, 152, 2666 147, 148, 143, 150, 153, 154, 147, 147, 156, 149, 2667 151, 158, 148, 153, 155, 152, 182, 157, 173, 155, 2668 154, 159, 150, 156, 147, 153, 157, 147, 182, 153, 2669 0, 153, 154, 158, 159, 156, 178, 178, 158, 0, 2670 153, 0, 173, 182, 157, 173, 0, 179, 159, 0, 2671 0, 165, 153, 165, 165, 170, 165, 170, 170, 171, 2672 170, 171, 171, 175, 171, 175, 175, 180, 175, 179, 2673 0, 181, 0, 184, 179, 183, 185, 186, 187, 188, 2674 2675 181, 180, 183, 0, 189, 186, 227, 0, 0, 184, 2676 187, 189, 190, 193, 183, 185, 194, 171, 181, 180, 2677 184, 188, 183, 185, 186, 187, 188, 191, 180, 183, 2678 190, 189, 229, 191, 192, 193, 192, 196, 227, 190, 2679 193, 196, 194, 194, 198, 200, 0, 199, 203, 0, 2680 204, 201, 205, 200, 202, 210, 206, 204, 196, 191, 2681 191, 192, 199, 203, 229, 196, 207, 210, 196, 0, 2682 198, 198, 200, 201, 199, 203, 202, 204, 201, 206, 2683 205, 202, 210, 206, 205, 196, 197, 208, 207, 213, 2684 212, 197, 209, 207, 217, 256, 197, 211, 208, 212, 2685 2686 211, 217, 197, 197, 214, 209, 216, 205, 0, 197, 2687 0, 213, 211, 197, 208, 220, 213, 212, 197, 209, 2688 256, 217, 256, 197, 211, 218, 214, 211, 216, 197, 2689 197, 214, 215, 216, 221, 215, 218, 215, 226, 225, 2690 223, 220, 220, 231, 226, 221, 228, 223, 0, 215, 2691 233, 215, 218, 225, 230, 0, 0, 0, 215, 215, 2692 234, 0, 215, 232, 215, 226, 221, 223, 228, 239, 2693 235, 225, 221, 228, 234, 231, 215, 230, 215, 236, 2694 225, 230, 233, 232, 237, 238, 236, 234, 239, 240, 2695 232, 235, 241, 244, 238, 242, 239, 235, 243, 238, 2696 2697 245, 251, 247, 240, 244, 237, 236, 245, 248, 249, 2698 243, 237, 238, 242, 241, 253, 240, 248, 246, 241, 2699 244, 238, 242, 246, 247, 243, 250, 245, 259, 247, 2700 255, 250, 249, 251, 254, 248, 249, 252, 252, 258, 2701 257, 254, 260, 261, 262, 264, 252, 253, 257, 0, 2702 246, 261, 255, 250, 263, 267, 265, 255, 264, 258, 2703 259, 254, 266, 268, 252, 252, 258, 257, 0, 263, 2704 261, 269, 264, 270, 260, 271, 262, 270, 267, 272, 2705 274, 263, 265, 265, 273, 0, 275, 267, 269, 266, 2706 276, 278, 273, 275, 272, 268, 269, 271, 269, 274, 2707 2708 270, 279, 271, 280, 277, 267, 272, 274, 277, 282, 2709 281, 273, 276, 275, 0, 269, 283, 276, 285, 287, 2710 289, 284, 286, 278, 288, 280, 288, 285, 283, 290, 2711 280, 277, 281, 279, 284, 286, 291, 281, 287, 292, 2712 0, 282, 295, 283, 296, 285, 287, 297, 284, 286, 2713 294, 288, 289, 290, 299, 298, 290, 300, 297, 294, 2714 303, 291, 304, 291, 305, 292, 292, 298, 295, 295, 2715 296, 296, 301, 302, 297, 304, 306, 294, 299, 307, 2716 300, 299, 298, 309, 300, 308, 311, 313, 0, 304, 2717 301, 302, 303, 310, 313, 312, 305, 314, 315, 301, 2718 2719 302, 306, 308, 306, 315, 317, 314, 316, 308, 309, 2720 309, 307, 308, 318, 313, 310, 320, 319, 311, 312, 2721 310, 316, 321, 326, 314, 315, 319, 312, 323, 308, 2722 321, 317, 317, 322, 316, 325, 324, 318, 326, 320, 2723 318, 327, 322, 320, 319, 324, 312, 328, 0, 321, 2724 326, 329, 325, 0, 323, 323, 0, 331, 332, 325, 2725 322, 0, 325, 324, 0, 333, 329, 332, 0, 335, 2726 0, 328, 336, 327, 328, 331, 338, 338, 329, 325, 2727 330, 341, 0, 330, 331, 332, 336, 333, 330, 330, 2728 330, 330, 333, 335, 337, 334, 335, 334, 330, 336, 2729 2730 339, 338, 340, 338, 338, 339, 0, 330, 341, 337, 2731 330, 347, 0, 334, 348, 330, 330, 330, 330, 334, 2732 342, 337, 334, 342, 334, 343, 340, 345, 346, 340, 2733 342, 349, 339, 344, 344, 371, 348, 343, 347, 350, 2734 334, 348, 352, 344, 351, 345, 346, 342, 353, 357, 2735 342, 354, 343, 362, 345, 346, 351, 349, 349, 354, 2736 344, 344, 371, 353, 352, 350, 350, 355, 356, 352, 2737 361, 351, 369, 0, 355, 353, 0, 358, 354, 358, 2738 356, 357, 360, 363, 365, 362, 365, 366, 358, 360, 2739 364, 411, 361, 370, 355, 356, 364, 361, 369, 369, 2740 2741 366, 368, 411, 358, 358, 363, 358, 0, 365, 360, 2742 363, 365, 364, 365, 366, 358, 367, 364, 411, 368, 2743 372, 373, 379, 364, 377, 370, 375, 373, 368, 367, 2744 393, 373, 367, 375, 367, 379, 377, 0, 378, 373, 2745 367, 0, 372, 367, 382, 373, 376, 372, 373, 379, 2746 378, 377, 381, 375, 373, 0, 367, 382, 373, 367, 2747 0, 367, 393, 384, 376, 378, 373, 374, 381, 374, 2748 376, 382, 386, 376, 385, 384, 381, 386, 387, 381, 2749 388, 402, 374, 0, 391, 374, 388, 374, 390, 374, 2750 384, 376, 385, 374, 374, 381, 374, 396, 389, 387, 2751 2752 390, 385, 391, 402, 386, 387, 389, 388, 402, 374, 2753 396, 391, 374, 392, 374, 390, 374, 383, 383, 394, 2754 394, 392, 0, 397, 396, 389, 395, 383, 404, 383, 2755 383, 383, 397, 395, 383, 0, 399, 401, 409, 403, 2756 392, 400, 383, 399, 383, 383, 394, 398, 400, 401, 2757 405, 403, 407, 395, 383, 397, 383, 383, 383, 397, 2758 404, 383, 408, 399, 401, 398, 403, 407, 400, 398, 2759 409, 406, 412, 430, 398, 408, 405, 405, 406, 407, 2760 410, 414, 410, 413, 413, 0, 415, 417, 414, 408, 2761 416, 418, 398, 0, 412, 422, 420, 415, 406, 412, 2762 2763 417, 416, 419, 419, 425, 430, 0, 410, 414, 421, 2764 0, 0, 413, 415, 417, 425, 418, 416, 418, 420, 2765 419, 422, 422, 420, 421, 423, 424, 419, 426, 419, 2766 419, 425, 421, 423, 0, 427, 421, 426, 424, 431, 2767 434, 432, 433, 428, 435, 444, 0, 419, 427, 0, 2768 0, 421, 423, 424, 428, 426, 428, 431, 434, 437, 2769 0, 428, 427, 432, 438, 433, 431, 434, 432, 433, 2770 428, 436, 444, 440, 443, 439, 435, 436, 441, 0, 2771 437, 428, 442, 428, 429, 441, 437, 438, 443, 446, 2772 445, 438, 429, 429, 448, 440, 429, 429, 436, 439, 2773 2774 440, 443, 439, 446, 447, 441, 429, 452, 442, 442, 2775 449, 429, 445, 450, 453, 451, 446, 445, 0, 429, 2776 429, 451, 459, 429, 429, 450, 448, 454, 455, 452, 2777 447, 447, 456, 449, 452, 454, 453, 449, 457, 456, 2778 450, 453, 451, 455, 460, 458, 459, 457, 461, 459, 2779 462, 463, 464, 454, 454, 455, 465, 0, 464, 456, 2780 458, 466, 454, 461, 468, 457, 466, 460, 470, 472, 2781 471, 460, 458, 463, 470, 461, 462, 462, 463, 464, 2782 473, 474, 465, 465, 476, 475, 473, 472, 466, 471, 2783 468, 468, 475, 481, 482, 470, 472, 471, 480, 476, 2784 2785 478, 479, 478, 474, 483, 480, 481, 473, 474, 478, 2786 479, 476, 475, 484, 485, 488, 487, 486, 491, 487, 2787 481, 489, 483, 0, 0, 480, 482, 478, 479, 478, 2788 486, 483, 493, 492, 489, 487, 485, 490, 494, 488, 2789 492, 485, 488, 487, 486, 484, 487, 496, 489, 490, 2790 491, 498, 495, 497, 499, 501, 493, 498, 497, 493, 2791 492, 494, 500, 502, 490, 495, 0, 501, 504, 496, 2792 494, 510, 503, 505, 496, 541, 504, 499, 498, 495, 2793 497, 499, 501, 503, 500, 502, 508, 505, 494, 500, 2794 502, 509, 0, 508, 510, 504, 511, 515, 510, 503, 2795 2796 505, 506, 513, 509, 511, 0, 506, 541, 506, 515, 2797 512, 0, 0, 508, 506, 0, 506, 516, 509, 506, 2798 506, 512, 518, 511, 515, 513, 506, 506, 506, 513, 2799 514, 522, 519, 506, 514, 506, 0, 512, 520, 516, 2800 518, 506, 519, 506, 516, 517, 506, 506, 517, 518, 2801 520, 521, 514, 506, 525, 522, 517, 514, 522, 523, 2802 524, 514, 521, 523, 519, 520, 526, 524, 526, 519, 2803 527, 528, 517, 529, 531, 517, 534, 530, 521, 532, 2804 525, 525, 531, 528, 532, 533, 523, 524, 529, 530, 2805 536, 535, 537, 526, 534, 542, 527, 527, 528, 535, 2806 2807 529, 531, 536, 534, 530, 539, 532, 533, 540, 543, 2808 542, 547, 533, 537, 545, 549, 544, 536, 535, 537, 2809 547, 543, 542, 539, 544, 546, 548, 545, 0, 549, 2810 550, 540, 539, 553, 0, 540, 543, 546, 547, 552, 2811 554, 545, 549, 544, 551, 556, 555, 551, 557, 548, 2812 0, 0, 546, 548, 558, 550, 559, 550, 552, 0, 2813 553, 555, 560, 557, 561, 565, 552, 567, 562, 559, 2814 565, 551, 554, 555, 560, 557, 568, 556, 558, 569, 2815 563, 558, 564, 559, 572, 566, 561, 563, 570, 560, 2816 563, 561, 562, 564, 567, 562, 571, 565, 563, 566, 2817 2818 573, 576, 574, 568, 575, 573, 580, 563, 574, 564, 2819 578, 569, 566, 577, 563, 570, 572, 563, 578, 575, 2820 579, 581, 582, 571, 585, 576, 582, 584, 576, 574, 2821 580, 575, 573, 580, 583, 577, 586, 578, 588, 579, 2822 577, 590, 583, 581, 587, 589, 0, 579, 581, 582, 2823 584, 592, 591, 587, 584, 593, 585, 592, 589, 586, 2824 588, 583, 594, 586, 591, 588, 596, 590, 590, 595, 2825 597, 587, 589, 594, 598, 599, 595, 593, 592, 591, 2826 599, 600, 593, 599, 599, 0, 601, 598, 0, 594, 2827 600, 602, 597, 603, 604, 605, 595, 597, 596, 599, 2828 2829 602, 598, 599, 607, 603, 609, 606, 599, 600, 610, 2830 599, 599, 601, 601, 611, 607, 604, 605, 602, 606, 2831 603, 604, 605, 612, 614, 613, 0, 610, 616, 618, 2832 607, 615, 0, 606, 617, 620, 610, 609, 611, 616, 2833 619, 611, 622, 617, 628, 612, 612, 613, 614, 618, 2834 612, 614, 613, 615, 619, 616, 618, 620, 615, 621, 2835 623, 617, 620, 624, 625, 626, 621, 619, 629, 622, 2836 627, 624, 612, 637, 630, 625, 628, 633, 623, 631, 2837 631, 637, 632, 626, 634, 627, 621, 623, 636, 629, 2838 624, 625, 626, 634, 635, 629, 638, 627, 630, 633, 2839 2840 637, 630, 639, 640, 633, 643, 632, 635, 631, 632, 2841 636, 634, 641, 644, 642, 636, 642, 645, 644, 646, 2842 648, 635, 656, 0, 639, 0, 0, 643, 638, 639, 2843 649, 645, 643, 646, 647, 640, 641, 650, 649, 641, 2844 651, 642, 653, 652, 645, 644, 646, 0, 647, 647, 2845 652, 654, 648, 660, 656, 650, 647, 649, 655, 657, 2846 659, 647, 651, 662, 650, 659, 664, 651, 653, 653, 2847 652, 654, 0, 655, 657, 647, 647, 658, 654, 660, 2848 660, 661, 655, 661, 721, 655, 657, 658, 662, 663, 2849 662, 664, 659, 664, 665, 669, 666, 663, 667, 658, 2850 2851 655, 668, 669, 665, 658, 666, 670, 667, 661, 668, 2852 671, 721, 672, 679, 658, 673, 663, 674, 0, 677, 2853 0, 665, 669, 666, 676, 667, 675, 673, 668, 674, 2854 672, 678, 676, 671, 677, 675, 680, 671, 670, 672, 2855 681, 684, 673, 678, 674, 679, 677, 690, 682, 680, 2856 685, 676, 683, 675, 686, 681, 682, 687, 678, 685, 2857 683, 688, 688, 680, 684, 686, 687, 681, 684, 690, 2858 688, 692, 689, 691, 690, 682, 696, 685, 693, 683, 2859 689, 686, 694, 695, 687, 698, 691, 728, 688, 688, 2860 734, 695, 696, 697, 701, 694, 700, 692, 692, 689, 2861 2862 691, 693, 699, 696, 700, 693, 697, 698, 701, 694, 2863 695, 702, 698, 699, 703, 704, 707, 705, 706, 728, 2864 697, 701, 734, 700, 710, 707, 708, 0, 0, 699, 2865 709, 702, 711, 713, 712, 704, 703, 710, 702, 705, 2866 706, 703, 704, 707, 705, 706, 708, 714, 709, 712, 2867 711, 710, 715, 708, 716, 713, 718, 709, 717, 711, 2868 713, 712, 722, 720, 719, 723, 725, 716, 718, 720, 2869 722, 714, 724, 729, 714, 715, 717, 719, 727, 715, 2870 729, 716, 736, 718, 725, 717, 727, 730, 722, 722, 2871 720, 719, 723, 725, 724, 733, 731, 722, 735, 724, 2872 2873 729, 732, 736, 732, 733, 727, 737, 0, 742, 736, 2874 730, 731, 739, 749, 730, 737, 738, 735, 738, 739, 2875 742, 745, 733, 731, 0, 735, 753, 0, 732, 0, 2876 0, 745, 748, 737, 749, 742, 751, 753, 752, 739, 2877 749, 0, 0, 738, 740, 754, 758, 740, 745, 755, 2878 748, 740, 0, 753, 740, 758, 752, 751, 756, 748, 2879 761, 740, 740, 751, 740, 752, 757, 759, 754, 740, 2880 760, 740, 754, 758, 740, 755, 755, 760, 740, 766, 2881 759, 740, 757, 763, 756, 756, 765, 783, 740, 740, 2882 764, 740, 761, 757, 759, 765, 764, 760, 762, 762, 2883 2884 767, 762, 766, 767, 762, 763, 766, 768, 773, 762, 2885 763, 769, 770, 765, 783, 762, 762, 764, 0, 772, 2886 770, 772, 776, 768, 762, 762, 762, 767, 762, 771, 2887 768, 762, 773, 769, 768, 773, 762, 775, 769, 770, 2888 774, 771, 762, 762, 778, 774, 772, 777, 776, 776, 2889 768, 779, 781, 780, 785, 0, 771, 775, 784, 777, 2890 782, 787, 786, 0, 775, 789, 778, 0, 791, 785, 2891 786, 778, 774, 789, 777, 780, 781, 779, 779, 781, 2892 780, 785, 782, 784, 787, 784, 788, 782, 787, 786, 2893 790, 792, 789, 788, 791, 791, 794, 793, 795, 796, 2894 2895 797, 798, 800, 792, 804, 797, 801, 795, 799, 790, 2896 793, 801, 803, 788, 796, 805, 807, 790, 792, 806, 2897 0, 0, 794, 794, 793, 795, 796, 797, 808, 800, 2898 799, 810, 809, 798, 803, 799, 804, 811, 801, 803, 2899 812, 806, 813, 815, 0, 814, 806, 805, 807, 818, 2900 810, 816, 808, 809, 814, 808, 820, 817, 810, 809, 2901 818, 813, 821, 822, 811, 815, 817, 812, 823, 813, 2902 815, 816, 814, 819, 824, 827, 818, 825, 816, 0, 2903 821, 819, 822, 820, 817, 825, 830, 828, 829, 821, 2904 822, 829, 831, 827, 832, 823, 834, 835, 833, 835, 2905 2906 819, 839, 827, 837, 825, 828, 824, 838, 830, 834, 2907 831, 836, 838, 830, 828, 829, 847, 837, 832, 831, 2908 833, 832, 840, 834, 835, 833, 842, 839, 839, 836, 2909 837, 848, 841, 843, 840, 850, 843, 844, 836, 838, 2910 841, 847, 845, 847, 842, 849, 844, 854, 851, 840, 2911 845, 849, 854, 842, 851, 856, 852, 850, 848, 841, 2912 843, 853, 850, 852, 844, 0, 845, 858, 853, 845, 2913 859, 855, 849, 856, 854, 851, 857, 845, 855, 859, 2914 857, 860, 856, 852, 861, 863, 862, 864, 853, 860, 2915 858, 869, 865, 867, 858, 864, 866, 859, 855, 868, 2916 2917 863, 0, 870, 857, 862, 865, 867, 871, 860, 870, 2918 0, 873, 863, 862, 864, 872, 861, 866, 869, 865, 2919 867, 868, 872, 866, 874, 871, 868, 875, 876, 870, 2920 873, 874, 875, 877, 871, 878, 876, 879, 873, 880, 2921 877, 881, 872, 882, 884, 886, 885, 0, 891, 892, 2922 883, 874, 880, 887, 875, 876, 882, 883, 890, 0, 2923 877, 887, 889, 893, 890, 0, 880, 878, 886, 879, 2924 882, 888, 886, 881, 891, 891, 884, 883, 885, 888, 2925 887, 892, 894, 895, 889, 890, 888, 893, 896, 889, 2926 893, 894, 897, 0, 898, 899, 900, 895, 888, 897, 2927 2928 901, 902, 903, 905, 899, 901, 888, 904, 905, 894, 2929 895, 0, 910, 902, 907, 910, 920, 906, 900, 897, 2930 896, 898, 899, 900, 906, 903, 913, 908, 902, 903, 2931 905, 914, 901, 904, 904, 908, 907, 911, 914, 910, 2932 913, 907, 915, 920, 906, 0, 0, 917, 915, 0, 2933 911, 0, 918, 913, 908, 919, 0, 921, 914, 921, 2934 0, 0, 922, 0, 911, 923, 0, 919, 924, 915, 2935 916, 925, 916, 917, 917, 918, 916, 923, 916, 918, 2936 0, 924, 919, 916, 921, 922, 927, 926, 916, 922, 2937 928, 927, 923, 925, 916, 924, 929, 916, 925, 916, 2938 2939 926, 930, 0, 916, 931, 916, 0, 933, 928, 929, 2940 916, 932, 935, 930, 926, 916, 931, 928, 927, 934, 2941 936, 932, 933, 929, 930, 935, 936, 938, 930, 937, 2942 939, 931, 941, 932, 933, 942, 940, 945, 932, 935, 2943 930, 934, 937, 943, 946, 938, 934, 936, 932, 946, 2944 948, 939, 947, 0, 938, 952, 937, 939, 940, 948, 2945 947, 950, 951, 940, 941, 954, 0, 942, 952, 945, 2946 943, 946, 961, 955, 0, 953, 950, 948, 0, 947, 2947 949, 0, 952, 957, 951, 949, 0, 949, 950, 951, 2948 953, 954, 954, 949, 956, 955, 957, 960, 949, 949, 2949 2950 955, 958, 953, 959, 961, 949, 949, 949, 960, 958, 2951 957, 959, 949, 956, 949, 962, 963, 967, 964, 971, 2952 949, 956, 965, 968, 960, 949, 949, 964, 958, 966, 2953 959, 963, 949, 965, 969, 972, 974, 962, 966, 973, 2954 975, 969, 962, 963, 967, 964, 968, 973, 976, 965, 2955 968, 971, 977, 983, 975, 980, 966, 978, 974, 972, 2956 981, 969, 972, 974, 982, 978, 973, 975, 984, 985, 2957 986, 0, 991, 980, 977, 982, 987, 985, 981, 977, 2958 976, 988, 980, 987, 978, 983, 984, 981, 992, 990, 2959 991, 982, 986, 989, 988, 984, 985, 986, 993, 991, 2960 2961 989, 994, 995, 987, 990, 999, 992, 0, 988, 0, 2962 997, 994, 1011, 1002, 1001, 992, 990, 1000, 999, 993, 2963 989, 997, 1001, 1004, 1000, 993, 1002, 1003, 994, 1005, 2964 1006, 1009, 999, 1012, 995, 1004, 1003, 997, 1011, 1011, 2965 1002, 1001, 1010, 1013, 1000, 0, 1020, 1014, 1015, 1020, 2966 1004, 1005, 1006, 1009, 1003, 1017, 1005, 1006, 1009, 1014, 2967 1010, 1013, 1015, 1018, 1021, 1012, 1017, 1022, 1018, 1010, 2968 1013, 1023, 1020, 1020, 1014, 1015, 1020, 1025, 1023, 1024, 2969 1022, 1027, 1017, 1026, 1028, 1029, 1025, 1030, 1021, 0, 2970 1024, 1021, 1029, 1027, 1022, 1018, 1032, 1026, 1023, 1031, 2971 2972 1033, 1035, 1037, 1036, 1025, 0, 1024, 1043, 1027, 1036, 2973 1026, 1031, 1029, 1033, 1038, 1040, 1028, 1041, 1032, 1030, 2974 1039, 1042, 1043, 1032, 1037, 1035, 1031, 1033, 1035, 1037, 2975 1036, 1039, 1045, 1040, 1043, 1046, 1038, 1047, 1048, 1041, 2976 1049, 1038, 1040, 1042, 1041, 1050, 1046, 1039, 1042, 1052, 2977 1057, 1051, 1054, 1045, 1053, 1058, 1059, 1055, 1047, 1045, 2978 1051, 1054, 1046, 1050, 1047, 1055, 1060, 1049, 1056, 1058, 2979 1048, 1064, 1050, 1052, 1057, 1056, 1052, 1057, 1051, 1054, 2980 1053, 1053, 1058, 1061, 1055, 1062, 1063, 1066, 1059, 1068, 2981 1067, 1070, 0, 1069, 0, 1056, 1066, 1067, 1060, 1075, 2982 2983 1073, 1071, 0, 1064, 1072, 1061, 1076, 1062, 1063, 1073, 2984 1061, 0, 1062, 1063, 1066, 1069, 1074, 1067, 1070, 1071, 2985 1069, 1068, 1072, 1075, 1074, 1077, 1075, 1073, 1071, 1078, 2986 1076, 1072, 1080, 1076, 1081, 1079, 1082, 1083, 1084, 1086, 2987 0, 1077, 1081, 1074, 1079, 1085, 1087, 1080, 1089, 1091, 2988 1084, 1078, 1077, 1092, 1087, 0, 1078, 1088, 1091, 1080, 2989 1097, 1081, 1079, 1089, 0, 1084, 1086, 1085, 1082, 1083, 2990 1088, 1092, 1085, 1087, 1093, 1089, 1091, 1094, 1096, 1094, 2991 1092, 1098, 1093, 1100, 1088, 1101, 1096, 1097, 1098, 1103, 2992 1105, 1102, 1106, 1107, 1108, 1104, 1100, 1101, 0, 1106, 2993 2994 0, 1093, 1110, 1109, 1094, 1096, 1102, 1111, 1098, 1112, 2995 1100, 1103, 1101, 1104, 1109, 1113, 1103, 1105, 1102, 1106, 2996 1114, 1115, 1104, 1116, 1110, 1107, 1108, 1119, 1113, 1110, 2997 1109, 1112, 1111, 1114, 1111, 1116, 1112, 1117, 1118, 1119, 2998 1122, 1120, 1113, 1115, 1123, 1117, 1124, 1114, 1115, 1120, 2999 1116, 1125, 1127, 1126, 1119, 1124, 0, 1123, 1118, 1127, 3000 1131, 1128, 1130, 1125, 1117, 1118, 1133, 1122, 1120, 1132, 3001 1128, 1123, 1128, 1124, 1126, 1128, 1136, 1135, 1125, 1127, 3002 1126, 1134, 0, 1128, 1137, 1130, 1131, 1131, 1128, 1130, 3003 1135, 1132, 1137, 1133, 1139, 1140, 1132, 1128, 1138, 1128, 3004 3005 1136, 1134, 1128, 1136, 1135, 1141, 1143, 1138, 1134, 1142, 3006 1144, 1137, 1139, 1141, 1145, 1148, 1149, 1140, 1146, 0, 3007 0, 1139, 1140, 1144, 1142, 1138, 1146, 1150, 1143, 1152, 3008 1145, 0, 1141, 1143, 1153, 1154, 1142, 1144, 1149, 1151, 3009 1155, 1145, 1148, 1149, 1160, 1146, 1151, 1156, 1158, 1150, 3010 1157, 1152, 1155, 1154, 1150, 1161, 1152, 1153, 1157, 1156, 3011 1159, 1153, 1154, 1158, 1160, 1162, 1151, 1155, 1165, 1166, 3012 1161, 1160, 1159, 1162, 1156, 1158, 1164, 1157, 1163, 1167, 3013 1169, 1166, 1161, 1168, 1163, 1164, 1167, 1159, 1170, 1165, 3014 1168, 1171, 1162, 1172, 1173, 1165, 1166, 1176, 1169, 1171, 3015 3016 1170, 1175, 1173, 1164, 1176, 1163, 1167, 1169, 1172, 1174, 3017 1168, 1174, 1178, 1175, 1179, 1170, 1180, 0, 1171, 1181, 3018 1172, 1173, 1183, 1182, 1176, 1184, 1179, 1185, 1175, 1180, 3019 1182, 1187, 1186, 1183, 1190, 1188, 1174, 1186, 1181, 1187, 3020 1195, 1179, 1185, 1180, 1178, 1189, 1181, 1184, 1188, 1183, 3021 1182, 1192, 1184, 0, 1185, 1194, 1193, 1196, 1187, 1189, 3022 1190, 1190, 1188, 1224, 1186, 1192, 1195, 1195, 0, 1198, 3023 1197, 1199, 1189, 1191, 1193, 1224, 1201, 1191, 1192, 1196, 3024 1191, 1191, 0, 1193, 1196, 1191, 1202, 1194, 1197, 1200, 3025 1224, 1191, 1202, 1199, 1203, 1191, 1206, 1197, 1199, 1191, 3026 3027 1191, 1198, 1201, 1201, 1191, 1206, 1207, 1191, 1191, 1209, 3028 0, 1200, 1191, 1202, 1210, 1204, 1200, 1204, 1191, 1205, 3029 1203, 1203, 1191, 1206, 1207, 1208, 1205, 1210, 1211, 1212, 3030 1213, 1209, 1208, 1207, 0, 0, 1209, 1211, 1214, 1204, 3031 1215, 1210, 1204, 1218, 1204, 1219, 1205, 1217, 0, 1220, 3032 1220, 0, 1208, 0, 0, 1211, 1218, 1225, 1223, 0, 3033 1214, 1212, 1213, 1215, 1221, 1214, 1225, 1215, 1216, 1217, 3034 1218, 1219, 1219, 1216, 1217, 1216, 1226, 1216, 1220, 1216, 3035 1221, 1223, 1227, 1228, 1225, 1223, 1216, 1227, 1229, 1230, 3036 1232, 1221, 1231, 1229, 1226, 1216, 1235, 1236, 1237, 1233, 3037 3038 1216, 1228, 1216, 1226, 1216, 1231, 1216, 1233, 1232, 1235, 3039 1228, 1230, 1234, 1238, 1227, 1229, 1230, 1232, 1239, 1231, 3040 1234, 1240, 1241, 1235, 1237, 1237, 1233, 1243, 1242, 1236, 3041 1246, 1239, 1238, 1244, 1245, 1241, 1245, 1247, 1248, 1234, 3042 1238, 1249, 1244, 1240, 1250, 1239, 1242, 1243, 1240, 1241, 3043 1248, 1252, 1246, 0, 1243, 1242, 1255, 1246, 1253, 1254, 3044 1244, 1245, 1256, 1257, 1247, 1248, 1258, 1254, 1249, 1250, 3045 1257, 1250, 1259, 1260, 1255, 1252, 1261, 1263, 1252, 1268, 3046 1253, 1262, 1261, 1255, 1264, 1253, 1254, 1262, 1265, 1256, 3047 1257, 1264, 1267, 1258, 1266, 1260, 1270, 1268, 1259, 1259, 3048 3049 1260, 1266, 1269, 1261, 1263, 1270, 1268, 1272, 1262, 1277, 3050 1273, 1264, 1265, 1274, 1267, 1265, 1276, 1275, 1284, 1267, 3051 1278, 1266, 1273, 1270, 1279, 1288, 1281, 1269, 1277, 1269, 3052 1275, 1272, 1280, 1282, 1272, 1274, 1277, 1273, 1276, 1284, 3053 1274, 1283, 1278, 1276, 1275, 1284, 1285, 1278, 1279, 1286, 3054 1283, 1279, 1281, 1281, 1280, 1282, 1289, 1288, 1290, 1280, 3055 1282, 1291, 1293, 1286, 1292, 1294, 1285, 1295, 1283, 1301, 3056 1293, 1296, 1298, 1285, 0, 1302, 1286, 1305, 1296, 1299, 3057 1290, 1294, 1292, 1300, 1298, 1290, 1299, 1300, 1289, 1293, 3058 1303, 1292, 1294, 1291, 1295, 0, 1307, 1308, 1296, 1298, 3059 3060 1310, 1301, 1306, 1307, 1308, 1309, 1299, 1302, 1306, 1305, 3061 1300, 1303, 1311, 1310, 1312, 1306, 1316, 1303, 1313, 1317, 3062 1309, 1311, 1315, 1307, 1308, 1313, 1314, 1310, 1314, 1306, 3063 1318, 1315, 1309, 1319, 1318, 1306, 1321, 1322, 1316, 1311, 3064 1312, 1312, 1322, 1316, 1321, 1313, 1317, 1323, 1324, 1315, 3065 1327, 1325, 1326, 1314, 1330, 1319, 1323, 1318, 1331, 1335, 3066 1319, 1328, 1327, 1321, 1328, 1326, 1324, 1332, 1329, 1322, 3067 1325, 1329, 1330, 1328, 1323, 1324, 1334, 1327, 1325, 1326, 3068 1332, 1330, 1335, 1331, 1336, 1331, 1335, 1337, 1328, 1338, 3069 1329, 1328, 1337, 1341, 1332, 1329, 1340, 1338, 1329, 1342, 3070 3071 1336, 1339, 1339, 1343, 0, 1340, 1344, 1345, 1334, 1348, 3072 1346, 1336, 1343, 1344, 1355, 1341, 1338, 1346, 1349, 1337, 3073 1341, 1342, 1348, 1340, 1351, 1352, 1342, 1349, 1339, 1345, 3074 1343, 1350, 1353, 1344, 1345, 1354, 1348, 1346, 1356, 1357, 3075 1350, 1353, 1358, 1354, 1359, 1349, 1355, 1357, 1352, 1360, 3076 1351, 1351, 1352, 1356, 1363, 1358, 1359, 1362, 1350, 1353, 3077 1361, 1360, 1354, 1364, 1365, 1356, 1357, 1367, 1361, 1358, 3078 1366, 1359, 1371, 1365, 1363, 1370, 1360, 1368, 1369, 1362, 3079 1372, 1363, 1370, 1373, 1362, 1364, 1375, 1361, 1366, 1368, 3080 1364, 1365, 1377, 1367, 1367, 1374, 1369, 1366, 1371, 1371, 3081 3082 1376, 1378, 1370, 1377, 1368, 1369, 1380, 1378, 1374, 1379, 3083 1381, 1382, 1372, 1375, 1383, 1373, 0, 0, 1384, 1377, 3084 1386, 1376, 1374, 1387, 1389, 1392, 1391, 1376, 1378, 0, 3085 1388, 1379, 1394, 1389, 1390, 1393, 1379, 1392, 1380, 1391, 3086 1383, 1383, 1381, 1382, 1384, 1384, 1387, 1386, 1388, 1390, 3087 1387, 1389, 1392, 1391, 1396, 1393, 1395, 1388, 1394, 1394, 3088 1397, 1390, 1393, 1395, 1398, 1400, 1399, 1401, 1402, 1411, 3089 1400, 1404, 1401, 1396, 1399, 1402, 1403, 1398, 1405, 1404, 3090 0, 1396, 1397, 1395, 1408, 1407, 1405, 1397, 1406, 1409, 3091 1414, 1398, 1408, 1399, 0, 1402, 1409, 1400, 1404, 1401, 3092 3093 1410, 1411, 1403, 1403, 1412, 1405, 1406, 1407, 1416, 1410, 3094 1415, 1408, 1407, 1413, 1413, 1406, 1409, 1417, 1415, 1425, 3095 1418, 1422, 1414, 0, 1419, 1420, 1412, 1410, 1418, 1416, 3096 1421, 1412, 1419, 1420, 1422, 1416, 1423, 1415, 1421, 1430, 3097 1413, 1424, 1423, 1426, 1429, 1425, 1425, 1418, 1422, 1417, 3098 1427, 1419, 1420, 1424, 1428, 1431, 1432, 1421, 1427, 1429, 3099 1434, 1433, 1428, 1423, 0, 1436, 1430, 1426, 1424, 1437, 3100 1426, 1429, 1435, 1437, 1434, 1440, 1439, 1427, 1432, 1436, 3101 1444, 1428, 1431, 1432, 1433, 1439, 1437, 1434, 1433, 1441, 3102 1435, 1442, 1436, 1443, 1437, 1445, 1437, 1440, 1442, 1435, 3103 3104 1437, 1441, 1440, 1439, 1443, 1446, 1449, 1444, 1450, 1447, 3105 0, 1448, 1457, 1437, 0, 1456, 1441, 1445, 1442, 1451, 3106 1443, 1447, 1445, 1452, 0, 1448, 1454, 1455, 1449, 1463, 3107 1452, 1450, 1453, 1449, 1455, 1450, 1447, 1446, 1448, 1457, 3108 1459, 1453, 1451, 1462, 1454, 1461, 1451, 1456, 1464, 1459, 3109 1452, 1461, 1467, 1454, 1455, 1463, 1463, 1465, 1469, 1453, 3110 1470, 0, 1471, 1472, 1465, 1462, 0, 1459, 1474, 1475, 3111 1462, 1477, 1461, 1471, 1472, 1476, 1475, 1479, 1480, 1467, 3112 1464, 1481, 1469, 1479, 1465, 1469, 1480, 1470, 1478, 1471, 3113 1472, 1483, 1474, 1476, 1482, 1474, 1475, 1477, 1477, 1488, 3114 3115 1478, 1484, 1476, 1481, 1479, 1480, 1488, 1482, 1481, 1489, 3116 1486, 1485, 1487, 1493, 1487, 1478, 1490, 1483, 1483, 1484, 3117 1485, 1482, 1486, 1491, 1492, 1493, 1488, 1494, 1484, 1490, 3118 1495, 1504, 1491, 1497, 1496, 1489, 1489, 1486, 1485, 1487, 3119 1493, 1496, 1498, 1490, 1500, 1505, 1492, 1498, 1499, 1507, 3120 1491, 1492, 1502, 1495, 1494, 1501, 1505, 1495, 1504, 1497, 3121 1497, 1496, 1507, 1501, 1499, 1508, 1508, 1500, 1506, 1498, 3122 1509, 1500, 1505, 1508, 1502, 1499, 1507, 1506, 1510, 1502, 3123 1510, 1511, 1501, 1509, 1512, 1515, 1516, 1513, 1517, 1514, 3124 0, 1518, 1508, 1508, 1513, 1506, 1514, 1509, 1518, 1519, 3125 3126 1520, 1521, 1522, 1523, 1516, 1510, 1512, 1511, 1511, 1522, 3127 1517, 1512, 1515, 1516, 1513, 1517, 1514, 1525, 1518, 1526, 3128 1527, 1528, 1520, 1530, 1519, 1532, 1519, 1520, 1527, 1522, 3129 1525, 1531, 1535, 1521, 1531, 1523, 1533, 1536, 0, 1538, 3130 1534, 1535, 1528, 1543, 1525, 1530, 1526, 1527, 1528, 1536, 3131 1530, 1532, 1532, 1534, 1537, 1540, 1545, 1544, 1531, 1535, 3132 1539, 1541, 1533, 1533, 1536, 1538, 1538, 1534, 1541, 1539, 3133 1540, 1542, 1545, 1547, 1542, 1543, 1551, 1552, 1537, 1544, 3134 1545, 1537, 1540, 1545, 1544, 1548, 1542, 1539, 1541, 1554, 3135 1549, 1547, 1549, 1553, 1550, 1542, 1555, 1558, 1542, 1545, 3136 3137 1547, 1542, 1556, 1551, 1557, 1560, 1559, 1548, 1562, 1552, 3138 1564, 1554, 1548, 1542, 1560, 1562, 1554, 1549, 1550, 1558, 3139 1559, 1550, 1555, 1555, 1558, 1553, 1561, 1563, 1556, 1556, 3140 1565, 1567, 1560, 1559, 1561, 1562, 1557, 1566, 1569, 1568, 3141 1570, 0, 1564, 1568, 1575, 1573, 1571, 1572, 1574, 1578, 3142 0, 1563, 1573, 1561, 1563, 1574, 1572, 1575, 1578, 1566, 3143 1569, 1580, 1565, 1567, 1566, 1569, 1568, 1570, 1571, 1576, 3144 1577, 1575, 1573, 1571, 1572, 1574, 1578, 1579, 1581, 1579, 3145 1584, 1582, 1576, 1577, 1580, 1585, 1587, 1586, 1580, 1582, 3146 1594, 0, 1588, 3053, 3053, 1584, 1576, 1577, 1589, 1588, 3147 3148 1585, 1586, 1591, 1581, 1579, 1581, 1590, 1584, 1582, 1589, 3149 1592, 1597, 1585, 1590, 1586, 1591, 1592, 1594, 1587, 1588, 3150 1595, 1596, 3053, 1598, 1599, 1589, 1597, 1595, 1600, 1591, 3151 1602, 1601, 1604, 1590, 1601, 1603, 1599, 1592, 1597, 1602, 3152 1605, 1600, 0, 1596, 1604, 1607, 1612, 1595, 1596, 1598, 3153 1598, 1599, 1629, 1603, 1613, 1600, 1607, 1602, 1601, 1604, 3154 1605, 1606, 1603, 1609, 1606, 1614, 1618, 1605, 1609, 1611, 3155 1612, 1611, 1607, 1612, 1615, 1609, 1616, 1621, 1617, 1606, 3156 1619, 1613, 0, 0, 1629, 1616, 1622, 1630, 1606, 1615, 3157 1609, 1606, 1614, 1618, 1619, 1609, 1611, 1625, 1620, 1621, 3158 3159 1624, 1615, 1617, 1616, 1621, 1617, 1620, 1619, 1622, 1623, 3160 1626, 1624, 1628, 1622, 1630, 1625, 1627, 1623, 1626, 1627, 3161 1633, 1631, 1634, 1637, 1625, 1620, 1632, 1624, 1631, 1633, 3162 1628, 1635, 0, 1636, 1627, 1634, 1623, 1626, 1636, 1628, 3163 1632, 1638, 1635, 1627, 1643, 1637, 1627, 1633, 1631, 1634, 3164 1637, 1642, 1641, 1632, 1641, 1644, 1638, 1645, 1635, 1646, 3165 1642, 0, 1647, 1649, 1650, 1636, 1644, 0, 1638, 1648, 3166 1643, 1643, 1648, 1650, 1651, 1645, 1647, 0, 1642, 1641, 3167 1651, 1646, 1644, 1652, 1645, 1649, 1646, 1648, 1647, 1647, 3168 1649, 1650, 1652, 1653, 1655, 1657, 1648, 1656, 1653, 1648, 3169 3170 1657, 1651, 1659, 1647, 1658, 1660, 1661, 1655, 1662, 1656, 3171 1652, 0, 1665, 0, 1660, 1663, 1664, 1670, 1666, 1673, 3172 1668, 1655, 1657, 1669, 1656, 1653, 1658, 1668, 0, 1664, 3173 0, 1658, 1660, 1661, 1659, 1672, 1669, 1663, 1671, 1666, 3174 1662, 1672, 1663, 1664, 1665, 1666, 1677, 1668, 1675, 1670, 3175 1669, 1673, 1671, 1678, 1677, 1679, 1681, 1682, 1680, 1672, 3176 1685, 1678, 1672, 1686, 1683, 1671, 1684, 1675, 1672, 1687, 3177 1681, 1682, 1688, 1677, 1679, 1675, 1680, 1683, 1689, 1684, 3178 1678, 1685, 1679, 1681, 1682, 1680, 1688, 1685, 1691, 1690, 3179 1692, 1683, 1693, 1684, 1695, 1686, 1690, 1691, 1692, 1688, 3180 3181 1694, 1687, 1696, 1698, 1700, 1689, 1701, 1696, 1685, 1697, 3182 1703, 1702, 1698, 1701, 1694, 1691, 1690, 1692, 1704, 1693, 3183 1697, 1705, 1711, 1706, 1707, 0, 1695, 1694, 1707, 1696, 3184 1698, 1700, 1703, 1701, 1702, 1710, 1697, 1703, 1702, 1709, 3185 1704, 1706, 1713, 1705, 1712, 1704, 1715, 1710, 1705, 1711, 3186 1706, 1707, 1712, 1714, 1709, 1716, 1717, 1713, 1722, 1718, 3187 1719, 1714, 1710, 1723, 1721, 1722, 1709, 1726, 1716, 1713, 3188 1725, 1712, 1721, 1715, 1718, 1719, 1717, 1724, 1727, 1725, 3189 1714, 1733, 1716, 1717, 1728, 1722, 1718, 1719, 1726, 1729, 3190 1731, 1721, 1724, 1734, 1726, 1723, 1732, 1725, 1737, 1736, 3191 3192 1735, 1739, 1738, 0, 1724, 1727, 1739, 1754, 1728, 1738, 3193 1740, 1728, 1731, 1733, 1732, 1735, 1729, 1731, 1742, 1740, 3194 1734, 1741, 1737, 1732, 1736, 1737, 1736, 1735, 1739, 1738, 3195 1741, 1743, 1744, 1747, 1745, 1746, 1749, 1740, 1748, 1754, 3196 1742, 1753, 1752, 1749, 1751, 1742, 1755, 1746, 1741, 1745, 3197 1744, 1748, 1755, 1743, 1752, 1747, 1748, 1750, 1743, 1744, 3198 1747, 1745, 1746, 1749, 1750, 1748, 1751, 1757, 1753, 1752, 3199 1759, 1751, 1758, 1755, 1763, 1757, 1760, 1761, 1748, 1750, 3200 1758, 1759, 1764, 1760, 1750, 1762, 1765, 1762, 1766, 1767, 3201 1769, 1750, 1768, 1771, 1757, 1766, 1769, 1759, 1762, 1758, 3202 3203 1763, 1763, 1761, 1760, 1761, 1770, 1772, 1773, 1776, 1764, 3204 1774, 1770, 1762, 1765, 1762, 1766, 1767, 1769, 1768, 1768, 3205 1771, 1777, 1778, 1779, 1781, 1779, 1784, 1790, 1780, 1772, 3206 1777, 1782, 1770, 1772, 1774, 1783, 1786, 1774, 1782, 1773, 3207 1776, 1788, 1786, 1787, 1785, 0, 0, 1789, 1777, 0, 3208 1779, 1781, 1780, 1784, 1778, 1780, 1785, 1783, 1782, 1790, 3209 1795, 0, 1783, 1786, 1802, 1787, 1792, 1788, 1788, 1789, 3210 1787, 1785, 1793, 1792, 1789, 1791, 1791, 1791, 1794, 1796, 3211 1802, 1793, 1791, 1798, 1799, 1794, 1796, 1801, 1798, 1800, 3212 1791, 1802, 1795, 1792, 1804, 1803, 1808, 1799, 1810, 1793, 3213 3214 1805, 1800, 1791, 1791, 1791, 1794, 1796, 1803, 0, 1791, 3215 1806, 1799, 1801, 1807, 1801, 1798, 1800, 1806, 1805, 1807, 3216 1809, 1809, 1803, 1808, 1810, 1810, 1804, 1805, 1811, 1812, 3217 0, 1813, 1814, 1818, 1812, 1811, 1815, 1806, 1824, 1819, 3218 1807, 1819, 1823, 1815, 1820, 1825, 1822, 1809, 1823, 1831, 3219 1829, 1830, 1830, 1827, 1828, 1811, 1812, 1813, 1813, 1814, 3220 1818, 1826, 1820, 1815, 1822, 1827, 1819, 1826, 1829, 1823, 3221 1824, 1820, 1825, 1822, 1828, 1831, 1831, 1829, 1830, 1833, 3222 1827, 1828, 1832, 1832, 1836, 1835, 1837, 1839, 1826, 0, 3223 1833, 1838, 1843, 1837, 1842, 1840, 1844, 0, 0, 1846, 3224 3225 0, 1847, 1842, 1845, 0, 0, 1833, 1835, 1847, 1832, 3226 1850, 1838, 1835, 1837, 1849, 1854, 1836, 1846, 1838, 1839, 3227 1840, 1842, 1840, 1844, 1843, 1845, 1846, 1848, 1847, 1849, 3228 1845, 1851, 1852, 1852, 1850, 1848, 1853, 1850, 1855, 1856, 3229 1851, 1849, 1860, 0, 1857, 1858, 1856, 1854, 1861, 1860, 3230 1863, 1862, 1864, 1861, 1848, 1865, 1857, 1867, 1851, 1852, 3231 1864, 1858, 1853, 1853, 1868, 1867, 1856, 1865, 1858, 1860, 3232 1855, 1857, 1858, 1862, 1869, 1861, 1870, 1863, 1862, 1864, 3233 1871, 1872, 1865, 1873, 1867, 1875, 1876, 1868, 1858, 1874, 3234 0, 1868, 1876, 1879, 1874, 1880, 1877, 1870, 1871, 1882, 3235 3236 1869, 1869, 1880, 1870, 1896, 1874, 1873, 1871, 1872, 1877, 3237 1873, 1878, 1875, 1876, 1883, 1879, 1874, 1881, 1884, 1878, 3238 1879, 1874, 1880, 1877, 1881, 1885, 1883, 1886, 1887, 1889, 3239 1890, 1882, 1891, 1892, 1894, 1890, 1896, 1895, 1878, 1891, 3240 1884, 1883, 1895, 1898, 1881, 1884, 1890, 1889, 0, 1899, 3241 1899, 1887, 1885, 1886, 1886, 1887, 1889, 1890, 1900, 1891, 3242 1892, 1894, 1890, 1901, 1902, 1905, 1904, 1906, 1907, 1895, 3243 1907, 1908, 1909, 1910, 0, 1898, 1899, 1909, 1901, 1911, 3244 1900, 1904, 1906, 1912, 1920, 1900, 1916, 1914, 1905, 1915, 3245 1901, 1918, 1905, 1904, 1906, 1907, 1902, 1915, 1912, 1909, 3246 3247 1919, 1911, 1914, 1908, 1921, 1910, 1911, 1924, 1916, 1923, 3248 1912, 1920, 1922, 1916, 1914, 1918, 1915, 1926, 1918, 1922, 3249 1925, 1929, 1927, 0, 1933, 0, 1919, 1919, 1924, 1931, 3250 1932, 1921, 1937, 1938, 1924, 0, 0, 1935, 1926, 1922, 3251 1927, 1923, 1925, 1929, 1926, 1932, 1936, 1925, 1929, 1927, 3252 1933, 1933, 1935, 1931, 1937, 1940, 1931, 1932, 1939, 1937, 3253 1938, 1936, 1941, 1942, 1935, 1943, 1946, 1944, 1945, 1949, 3254 1947, 1950, 1951, 1936, 1944, 1946, 1939, 1940, 1947, 1948, 3255 1952, 1951, 1940, 0, 1941, 1939, 1945, 1942, 1954, 1941, 3256 1942, 1949, 1943, 1946, 1944, 1945, 1949, 1947, 1952, 1951, 3257 3258 1953, 1954, 1948, 1950, 0, 1956, 1948, 1952, 1957, 1953, 3259 1958, 1959, 0, 1960, 0, 1954, 1956, 1957, 1959, 1962, 3260 1963, 1968, 1964, 1961, 0, 1971, 1963, 1953, 1958, 1976, 3261 1970, 1956, 1956, 1974, 1962, 1957, 1971, 1958, 1959, 1960, 3262 1960, 1961, 1965, 1956, 1964, 1974, 1962, 1963, 1968, 1964, 3263 1961, 1972, 1971, 1975, 1970, 1977, 1965, 1970, 1978, 1980, 3264 1974, 1976, 1972, 1979, 1981, 1977, 1975, 1983, 1986, 1965, 3265 1984, 1987, 1986, 1988, 0, 1992, 1990, 0, 1972, 1989, 3266 1975, 1990, 1977, 1981, 1978, 1978, 1980, 0, 1979, 1993, 3267 1979, 1981, 1987, 1991, 1983, 1986, 1984, 1984, 1987, 1989, 3268 3269 1991, 1992, 1992, 1990, 1994, 1988, 1989, 1993, 1995, 1996, 3270 1994, 1998, 2003, 1997, 1999, 1999, 1993, 2000, 2004, 2003, 3271 1991, 2001, 2004, 1995, 1996, 1997, 1998, 2006, 2005, 2000, 3272 0, 1994, 0, 2009, 2001, 1995, 1996, 2007, 1998, 2003, 3273 1997, 1999, 2001, 2005, 2000, 2004, 2007, 2010, 2001, 2008, 3274 2013, 2011, 2019, 2015, 2006, 2005, 2008, 2009, 2011, 2014, 3275 2009, 2001, 2015, 2016, 2007, 2022, 2021, 2017, 2029, 2010, 3276 2019, 2024, 2013, 2023, 2010, 2021, 2008, 2013, 2011, 2019, 3277 2015, 2025, 2027, 2022, 2014, 2016, 2014, 2017, 2023, 2025, 3278 2016, 2028, 2022, 2021, 2017, 2029, 2024, 2031, 2024, 2033, 3279 3280 2023, 2030, 2030, 2037, 2028, 2032, 0, 2027, 2025, 2027, 3281 2036, 2034, 2038, 2035, 2046, 2039, 2040, 2036, 2028, 2031, 3282 2041, 2033, 2035, 2047, 2031, 2041, 2033, 2042, 2030, 2039, 3283 2032, 2040, 2032, 2034, 2038, 2037, 2044, 2036, 2034, 2038, 3284 2035, 2046, 2039, 2040, 2044, 2045, 2042, 2048, 2049, 2047, 3285 2047, 2050, 2041, 2052, 2042, 2049, 0, 2051, 2045, 2048, 3286 2053, 2055, 2054, 2044, 2057, 0, 2058, 2056, 2059, 2053, 3287 2054, 0, 2045, 0, 2048, 2049, 2060, 0, 2052, 2051, 3288 2052, 2054, 2056, 2050, 2051, 2064, 2059, 2053, 2055, 2054, 3289 2057, 2057, 2058, 2058, 2056, 2059, 2061, 2054, 2060, 2063, 3290 3291 2065, 2067, 2063, 2060, 2066, 2061, 2065, 2068, 0, 2066, 3292 2064, 0, 2064, 2072, 0, 2069, 2067, 2063, 2071, 2073, 3293 2078, 0, 0, 2061, 2075, 2068, 2063, 2065, 2067, 2063, 3294 2069, 2077, 2076, 2071, 2068, 2072, 2066, 2081, 2075, 2076, 3295 2072, 2073, 2069, 2079, 2080, 2071, 2073, 2078, 2081, 2077, 3296 2082, 2075, 2079, 2080, 2083, 2087, 2088, 2085, 2077, 2076, 3297 2086, 2090, 2087, 2082, 2081, 2095, 2083, 2089, 2101, 2096, 3298 2079, 2080, 2085, 2096, 0, 2086, 0, 2082, 2088, 2090, 3299 2093, 2083, 2087, 2088, 2085, 2097, 2095, 2086, 2090, 2089, 3300 2098, 2100, 2095, 2093, 2089, 2101, 2096, 2097, 2099, 2098, 3301 3302 2099, 2093, 2103, 2102, 2105, 2104, 2106, 2093, 2107, 2100, 3303 2108, 2109, 2097, 2104, 2110, 2108, 2109, 2098, 2100, 2111, 3304 2093, 2102, 2107, 2112, 2124, 2099, 2113, 2105, 2106, 2103, 3305 2102, 2105, 2104, 2106, 2114, 2107, 2117, 2108, 2129, 0, 3306 2118, 2114, 2119, 2109, 2120, 2113, 2110, 2112, 2121, 2122, 3307 2112, 2111, 2126, 2113, 2118, 2125, 2124, 2127, 2128, 2123, 3308 2119, 2114, 0, 2117, 2122, 2118, 2118, 2118, 2123, 2119, 3309 2129, 2120, 2131, 2133, 2121, 2121, 2122, 2125, 2126, 2126, 3310 2128, 2118, 2125, 2132, 2127, 2128, 2123, 2134, 0, 2136, 3311 2132, 2136, 2118, 2137, 2134, 2131, 2133, 2138, 0, 2131, 3312 3313 2133, 2138, 2141, 2140, 2144, 2139, 2143, 2142, 2146, 2148, 3314 2132, 2141, 0, 2143, 2134, 2137, 2136, 2139, 2142, 2147, 3315 2137, 2148, 2145, 2149, 2138, 2140, 2144, 2145, 2152, 2141, 3316 2140, 2144, 2139, 2143, 2142, 2146, 2148, 2150, 2150, 2151, 3317 2154, 2157, 2147, 2152, 2153, 2149, 2147, 2155, 2151, 2145, 3318 2149, 2156, 2153, 2159, 2162, 2152, 2163, 2160, 2162, 2163, 3319 2156, 2155, 2154, 2169, 2150, 2160, 2151, 2154, 2157, 2161, 3320 2165, 2153, 2159, 2166, 2155, 2169, 2165, 2161, 2156, 2164, 3321 2159, 2162, 2172, 2163, 2160, 2167, 2173, 2164, 2166, 2171, 3322 2169, 2167, 2174, 2175, 0, 2172, 2161, 2165, 2177, 2176, 3323 3324 2166, 2178, 2182, 2171, 2181, 2179, 2164, 2173, 2183, 2172, 3325 2180, 2184, 2167, 2173, 2187, 2178, 2171, 2174, 2179, 2174, 3326 2175, 2176, 2177, 2189, 2180, 2177, 2176, 2185, 2178, 2182, 3327 2181, 2181, 2179, 2183, 2186, 2183, 2190, 2180, 2184, 2185, 3328 2187, 2187, 2188, 2191, 2193, 2188, 2194, 2196, 2186, 2195, 3329 2189, 2197, 2198, 2194, 2185, 2200, 2195, 2202, 2204, 2199, 3330 2188, 2186, 2196, 2190, 2205, 2191, 2193, 2199, 2201, 2188, 3331 2191, 2193, 2188, 2194, 2196, 2203, 2195, 2201, 2197, 2198, 3332 2204, 2206, 2200, 2207, 2202, 2204, 2199, 2203, 2208, 2210, 3333 2209, 2205, 2212, 2213, 2215, 2201, 2207, 2210, 2219, 2214, 3334 3335 2216, 2217, 2203, 2209, 2220, 2218, 2208, 2214, 2206, 2216, 3336 2207, 0, 2223, 2219, 2212, 2208, 2210, 2209, 0, 2212, 3337 2213, 2215, 2217, 2222, 2219, 2219, 2214, 2216, 2217, 2218, 3338 2221, 2220, 2218, 2225, 2226, 2222, 2227, 2223, 2221, 2223, 3339 2219, 2229, 2226, 2230, 2231, 2225, 2232, 2230, 2229, 2233, 3340 2222, 2234, 2235, 2236, 2237, 2239, 2231, 2221, 0, 2234, 3341 2225, 2226, 2242, 2227, 2251, 2236, 2237, 2241, 2229, 2232, 3342 2230, 2231, 2246, 2232, 2235, 2242, 2233, 2240, 2234, 2235, 3343 2236, 2237, 2239, 2243, 2240, 2247, 2244, 2241, 0, 2242, 3344 2245, 2245, 2243, 2248, 2241, 2244, 2251, 2253, 2246, 2246, 3345 3346 2252, 2259, 2259, 2247, 2240, 2264, 2249, 2254, 2256, 2255, 3347 2243, 2255, 2247, 2244, 2263, 2252, 2258, 2245, 2248, 2253, 3348 2248, 2249, 2256, 2249, 2253, 2257, 2263, 2252, 2259, 2254, 3349 2249, 2257, 2261, 2249, 2254, 2256, 2255, 2264, 2258, 2262, 3350 2265, 2263, 2266, 2258, 0, 2269, 2265, 2269, 2249, 2267, 3351 2249, 2268, 2257, 2271, 2261, 2270, 2277, 2272, 0, 2261, 3352 0, 2262, 2278, 2273, 2279, 2274, 2262, 2265, 2275, 2270, 3353 2285, 2267, 2269, 2268, 2266, 2272, 2267, 2271, 2268, 2283, 3354 2271, 2273, 2270, 2274, 2272, 2276, 2275, 2279, 2277, 2281, 3355 2273, 2279, 2274, 2284, 2278, 2275, 2281, 2283, 2276, 2286, 3356 3357 2287, 2288, 2285, 2288, 2290, 2292, 2283, 2286, 2288, 2296, 3358 2291, 2293, 2276, 0, 0, 2290, 2281, 2294, 2297, 2284, 3359 2284, 2291, 2287, 2293, 2296, 2286, 2286, 2287, 2288, 2297, 3360 2288, 2290, 2292, 2299, 2286, 2294, 2296, 2291, 2293, 2298, 3361 2301, 2302, 2303, 2304, 2294, 2297, 2305, 2308, 2299, 2303, 3362 2306, 2298, 2311, 2310, 2309, 2312, 2314, 0, 2304, 2315, 3363 2299, 2313, 2321, 2302, 2301, 2316, 2298, 2301, 2302, 2303, 3364 2304, 0, 2315, 2305, 2308, 2310, 2306, 2306, 2309, 2313, 3365 2310, 2309, 2317, 2314, 2311, 2318, 2315, 2312, 2313, 2320, 3366 2322, 2316, 2316, 2319, 2321, 0, 2323, 2317, 2318, 2325, 3367 3368 2326, 2319, 2327, 2322, 0, 2333, 2328, 2329, 0, 2317, 3369 0, 0, 2318, 2330, 2331, 2320, 2320, 2322, 2323, 2332, 3370 2319, 2331, 2325, 2323, 2326, 2329, 2325, 2326, 2328, 2327, 3371 2334, 2330, 2333, 2328, 2329, 2339, 2336, 2340, 2337, 2342, 3372 2330, 2331, 2332, 2338, 2334, 2337, 2332, 2341, 2339, 2343, 3373 2338, 2344, 0, 2354, 2341, 0, 2368, 2334, 2336, 2345, 3374 2340, 2342, 2339, 2336, 2340, 2337, 2342, 2346, 2345, 2347, 3375 2338, 2348, 2344, 2349, 2341, 2346, 2351, 2347, 2344, 2349, 3376 2353, 2343, 2355, 2356, 2352, 2354, 2345, 2358, 2368, 2361, 3377 0, 2351, 2370, 2348, 2346, 2352, 2347, 2362, 2348, 2360, 3378 3379 2349, 2355, 2353, 2351, 2364, 2358, 2367, 2353, 2356, 2355, 3380 2356, 2352, 2360, 2369, 2358, 2361, 2361, 2363, 2363, 2370, 3381 2371, 2362, 2374, 2376, 2362, 2379, 2360, 2386, 2369, 2367, 3382 2364, 2364, 2376, 2367, 2382, 2378, 2379, 2384, 2371, 2388, 3383 2369, 2383, 2383, 2385, 2363, 2390, 2391, 2371, 2378, 2374, 3384 2376, 2400, 2379, 2394, 2386, 2393, 2382, 2397, 2392, 2384, 3385 2393, 2382, 2378, 2396, 2384, 2385, 2388, 2403, 2383, 2392, 3386 2385, 2396, 2391, 2391, 2398, 2394, 2399, 2390, 2400, 2402, 3387 2394, 2397, 2393, 2404, 2397, 2392, 2405, 2407, 2408, 2398, 3388 2396, 2399, 2404, 2412, 2409, 2410, 2413, 2402, 2405, 2403, 3389 3390 0, 2398, 2409, 2399, 2410, 2414, 2402, 2415, 2416, 2417, 3391 2404, 2419, 2408, 2405, 2407, 2408, 2415, 2418, 2421, 2412, 3392 2412, 2409, 2410, 2413, 2419, 2422, 2416, 2414, 2420, 2425, 3393 2423, 2417, 2414, 2421, 2415, 2416, 2417, 2423, 2419, 2424, 3394 2426, 2420, 2418, 2427, 2418, 2421, 2424, 2422, 2428, 2429, 3395 2430, 2425, 2422, 2431, 0, 2420, 2425, 2423, 2433, 2432, 3396 0, 2434, 2431, 2435, 2436, 2430, 2424, 2426, 2439, 2441, 3397 2427, 2442, 2438, 0, 0, 2428, 2429, 2430, 2435, 2436, 3398 2431, 2432, 2437, 2438, 2433, 2433, 2432, 2434, 2434, 2437, 3399 2435, 2436, 2440, 2444, 2443, 2439, 2441, 2445, 2442, 2438, 3400 3401 2440, 2446, 2451, 2448, 2447, 2449, 2450, 0, 2444, 2437, 3402 2443, 2447, 2449, 2450, 2453, 2453, 2446, 2445, 2452, 2440, 3403 2444, 2443, 2459, 2455, 2445, 2448, 2457, 2454, 2446, 2451, 3404 2448, 2447, 2449, 2450, 2454, 2456, 2452, 2455, 2456, 2457, 3405 2458, 2453, 2460, 2464, 2461, 2452, 2462, 2466, 2459, 2459, 3406 2455, 2466, 2464, 2457, 2454, 2458, 2461, 2467, 2462, 2465, 3407 2460, 2469, 2456, 2468, 2465, 2470, 2471, 2458, 2472, 2460, 3408 2464, 2461, 2473, 2462, 2466, 2475, 2468, 2477, 2479, 2481, 3409 2478, 2467, 0, 2469, 2467, 0, 2465, 2470, 2469, 2478, 3410 2468, 2481, 2470, 2471, 2479, 2472, 2487, 2489, 2473, 2473, 3411 3412 2480, 2475, 2475, 2477, 2477, 2479, 2481, 2478, 2480, 2483, 3413 2484, 2486, 2485, 2488, 2487, 2493, 2483, 2485, 2486, 2484, 3414 2488, 2490, 2489, 2487, 2489, 2491, 2492, 2480, 2490, 2495, 3415 2496, 2499, 2498, 2501, 2491, 2492, 2483, 2484, 2486, 2485, 3416 2488, 2493, 2493, 2496, 2497, 2502, 2503, 2505, 2490, 2497, 3417 2498, 2501, 2491, 2492, 2504, 2503, 2495, 2496, 2499, 2498, 3418 2501, 2507, 2511, 2504, 2506, 2512, 2508, 2505, 2509, 2510, 3419 2507, 2497, 2502, 2503, 2505, 2508, 2506, 2510, 2513, 2509, 3420 2515, 2504, 2516, 2517, 2518, 2513, 2520, 2527, 2507, 2511, 3421 2514, 2506, 2512, 2508, 2519, 2509, 2510, 2523, 2520, 2514, 3422 3423 2521, 2515, 2522, 2519, 2524, 2513, 2526, 2515, 2521, 2516, 3424 2517, 2524, 2527, 2520, 2527, 2522, 2518, 2514, 2525, 2523, 3425 2528, 2519, 2530, 2529, 2523, 2525, 2532, 2521, 2526, 2522, 3426 2535, 2524, 2537, 2526, 2532, 0, 2534, 2536, 2535, 2537, 3427 2538, 0, 2545, 0, 2539, 2525, 2544, 2528, 2529, 2530, 3428 2529, 2539, 2536, 2532, 2534, 2548, 2547, 2535, 2540, 2537, 3429 2546, 2543, 2538, 2534, 2536, 2547, 2540, 2538, 2543, 2545, 3430 2544, 2539, 2546, 2544, 2549, 2551, 2554, 2550, 2555, 2553, 3431 2556, 2558, 2548, 2547, 2561, 2540, 0, 2546, 2543, 2550, 3432 2549, 2553, 2565, 2558, 2556, 2564, 2566, 2563, 2551, 2554, 3433 3434 2568, 2549, 2551, 2554, 2550, 2555, 2553, 2556, 2558, 2559, 3435 2560, 2561, 2563, 2564, 2570, 2565, 2559, 2560, 2567, 2565, 3436 2569, 2574, 2564, 2566, 2563, 2572, 2567, 2568, 2571, 0, 3437 2579, 2573, 2570, 2581, 0, 2584, 2559, 2560, 2573, 2571, 3438 2572, 2570, 2569, 2585, 2580, 2567, 2586, 2569, 2574, 2580, 3439 2582, 2583, 2572, 2584, 2587, 2571, 2579, 2579, 2573, 2589, 3440 2581, 2585, 2584, 2592, 2582, 2583, 2587, 2593, 2596, 2594, 3441 2585, 2580, 2597, 2586, 2598, 2595, 2601, 2582, 2583, 2599, 3442 2597, 2587, 2594, 2602, 2605, 2592, 2589, 2596, 2601, 2593, 3443 2592, 2603, 2598, 2606, 2593, 2596, 2594, 2595, 2599, 2597, 3444 3445 2604, 2598, 2595, 2601, 2607, 2602, 2599, 2609, 2608, 2615, 3446 2602, 2605, 2604, 2603, 2610, 2611, 2612, 2613, 2603, 2614, 3447 2606, 2615, 2617, 2610, 2611, 2616, 2618, 2604, 2608, 2609, 3448 2622, 2607, 2623, 2624, 2609, 2608, 2615, 2621, 2624, 2613, 3449 2625, 2610, 2611, 2628, 2613, 2614, 2614, 2616, 2612, 2617, 3450 2626, 2621, 2616, 2618, 0, 2627, 2623, 2622, 2629, 2623, 3451 2631, 2630, 2625, 2634, 2621, 2624, 2635, 2625, 2627, 2634, 3452 2633, 2636, 2626, 2637, 2632, 2628, 0, 2626, 2631, 2638, 3453 2641, 2629, 2627, 2630, 2640, 2629, 2632, 2631, 2630, 2633, 3454 2634, 2642, 2646, 2644, 2638, 2637, 2648, 2633, 2635, 2647, 3455 3456 2637, 2632, 2641, 2636, 2640, 2648, 2638, 2641, 2644, 2650, 3457 2649, 2640, 2651, 2653, 2646, 2642, 2652, 2657, 2642, 2646, 3458 2644, 2647, 0, 2648, 2649, 2656, 2647, 2650, 2662, 2658, 3459 2651, 2653, 2664, 2661, 2656, 2662, 2650, 2649, 2663, 2651, 3460 2653, 2661, 2652, 2652, 2665, 2666, 2663, 2669, 2667, 2657, 3461 2658, 2668, 2656, 2666, 2670, 2662, 2658, 2672, 2676, 2664, 3462 2661, 2674, 2670, 2668, 2665, 2663, 2667, 2675, 2674, 2672, 3463 2678, 2665, 2666, 2679, 2669, 2667, 2680, 2677, 2668, 2677, 3464 2681, 2670, 2682, 2688, 2672, 2676, 2686, 0, 2674, 2683, 3465 2675, 2690, 2685, 2689, 2675, 0, 2694, 2695, 2696, 2691, 3466 3467 2686, 2682, 2678, 2697, 2677, 2679, 2695, 2681, 2680, 2682, 3468 2685, 2683, 2691, 2686, 2690, 2688, 2683, 2689, 2690, 2685, 3469 2689, 2692, 2694, 2694, 2695, 2696, 2691, 2699, 2700, 2703, 3470 2697, 2701, 2705, 2692, 2707, 2706, 2708, 2709, 2711, 2705, 3471 2712, 2708, 2714, 2715, 0, 2711, 2717, 2716, 2692, 2707, 3472 2722, 2700, 2709, 2701, 2699, 2700, 2703, 2706, 2701, 2705, 3473 2717, 2707, 2706, 2719, 2709, 2711, 2712, 2712, 2708, 2714, 3474 2715, 2716, 2719, 2717, 2716, 2721, 2724, 2722, 2723, 2725, 3475 2726, 2727, 2721, 2728, 2729, 2730, 2731, 2741, 2736, 2732, 3476 2719, 2725, 2728, 2736, 2737, 2727, 0, 2729, 2737, 2742, 3477 3478 2743, 2742, 2721, 2724, 2723, 2723, 2725, 2726, 2727, 2740, 3479 2728, 2729, 2732, 2731, 2744, 2738, 2732, 2730, 2739, 2741, 3480 2736, 2737, 2738, 2743, 2747, 2739, 2742, 2743, 2749, 2750, 3481 2740, 2752, 0, 2752, 2754, 2753, 2740, 2758, 2755, 2755, 3482 2760, 2744, 2738, 2757, 2758, 2739, 2747, 2749, 2755, 2756, 3483 2759, 2747, 2757, 2750, 0, 2749, 2750, 0, 2752, 2753, 3484 2754, 2754, 2753, 2759, 2758, 2755, 2755, 2760, 2761, 0, 3485 2757, 2756, 2762, 2763, 2764, 2765, 2756, 2759, 2766, 2767, 3486 2762, 2761, 2764, 2766, 2767, 2768, 2763, 2769, 0, 2770, 3487 0, 2771, 0, 2768, 2765, 2761, 2762, 2772, 2774, 2762, 3488 3489 2763, 2764, 2765, 2773, 2775, 2778, 2776, 2762, 0, 2774, 3490 2766, 2767, 2768, 2776, 2769, 2770, 2770, 2771, 2771, 2777, 3491 2777, 2780, 2781, 2772, 2772, 2774, 2775, 2778, 2779, 2773, 3492 2773, 2775, 2778, 2776, 2782, 2783, 2779, 2785, 2786, 2787, 3493 2781, 2782, 2783, 2780, 2788, 2790, 2777, 2791, 2780, 2781, 3494 2792, 2793, 2795, 2788, 2801, 2779, 0, 2796, 2797, 0, 3495 2800, 2782, 2783, 2787, 2785, 2786, 2787, 2791, 2798, 2800, 3496 2802, 2788, 2790, 2793, 2791, 2796, 2797, 2792, 2793, 2795, 3497 2803, 2801, 2804, 2805, 2796, 2797, 2798, 2800, 2806, 2807, 3498 2804, 2808, 2815, 2802, 2807, 2798, 2809, 2802, 2803, 2805, 3499 3500 2806, 2810, 2817, 2814, 2818, 2808, 2819, 2803, 2819, 2804, 3501 2805, 2820, 2822, 2830, 2809, 2806, 2823, 2818, 2808, 2815, 3502 2820, 2807, 2824, 2809, 2810, 2814, 2828, 2844, 2810, 2817, 3503 2814, 2818, 2832, 2819, 2823, 2836, 2837, 2824, 2820, 2822, 3504 2827, 2829, 2827, 2823, 2828, 2830, 2834, 2832, 2829, 2824, 3505 2838, 2839, 2834, 2828, 2844, 0, 2845, 2836, 2837, 2832, 3506 2841, 2846, 2836, 2837, 2850, 2848, 2847, 2827, 2829, 2839, 3507 2852, 2842, 2848, 2834, 2842, 0, 2838, 2838, 2839, 2855, 3508 0, 2849, 2841, 2845, 2847, 2853, 2850, 2841, 2846, 2849, 3509 2856, 2850, 2848, 2847, 2854, 2857, 2859, 2842, 2842, 2856, 3510 3511 2861, 2842, 2852, 2858, 2860, 0, 2855, 2853, 2849, 2858, 3512 2857, 2863, 2853, 2860, 2865, 0, 2854, 2856, 2859, 2868, 3513 2866, 2854, 2857, 2859, 2862, 2869, 2862, 2867, 2870, 2875, 3514 2858, 2860, 2861, 2869, 2879, 2908, 2871, 2865, 2863, 2877, 3515 2870, 2865, 2866, 2873, 2878, 2868, 2868, 2866, 2871, 2867, 3516 2873, 2862, 2869, 2877, 2867, 2870, 2875, 2879, 2878, 2880, 3517 2882, 2879, 2881, 2871, 2883, 0, 2877, 2908, 2882, 2885, 3518 2873, 2878, 2884, 2881, 2886, 2887, 2889, 2880, 2888, 2888, 3519 2890, 2893, 2894, 2883, 2887, 2898, 2880, 2882, 2890, 2881, 3520 0, 2883, 2886, 2903, 2884, 2885, 2885, 2905, 2896, 2884, 3521 3522 2900, 2886, 2887, 2889, 2896, 2888, 2901, 2890, 2893, 2894, 3523 2902, 2900, 2898, 2907, 2909, 2903, 2906, 2901, 2909, 2912, 3524 2903, 2902, 2910, 2906, 2905, 2896, 2913, 2900, 2914, 2915, 3525 2910, 2907, 2919, 2901, 2923, 2918, 2914, 2902, 2920, 2913, 3526 2907, 2909, 2918, 2906, 2924, 2912, 2912, 2922, 2926, 2910, 3527 2925, 2928, 2922, 2913, 2927, 2914, 2915, 2925, 2930, 2929, 3528 2920, 2923, 2918, 0, 2919, 2920, 2929, 2926, 2931, 2928, 3529 2927, 2924, 2932, 2933, 2922, 2926, 2931, 2925, 2928, 2934, 3530 2933, 2927, 2936, 2935, 2941, 2942, 2929, 2932, 2940, 2943, 3531 2930, 2941, 2945, 0, 2926, 2931, 2944, 2952, 2949, 2932, 3532 3533 2933, 0, 0, 2940, 2946, 2948, 2934, 2935, 2936, 2936, 3534 2935, 2941, 2950, 2946, 2951, 2940, 2943, 2942, 2953, 2953, 3535 2944, 2954, 2951, 2944, 2945, 2949, 2959, 2948, 2953, 2952, 3536 2960, 2946, 2948, 2957, 2950, 2956, 2958, 2965, 2958, 2950, 3537 2959, 2951, 2957, 2961, 2962, 2953, 2953, 2963, 2954, 2966, 3538 2956, 2961, 2970, 2959, 2968, 2962, 2967, 2960, 2969, 2971, 3539 2957, 2972, 2956, 2958, 2965, 2963, 2975, 2968, 2973, 2976, 3540 2961, 2962, 2974, 2974, 2963, 2978, 2966, 2986, 2967, 2970, 3541 2969, 2968, 2973, 2967, 2981, 2969, 2971, 2988, 2972, 2983, 3542 2997, 2976, 2981, 2994, 2983, 2973, 2976, 2991, 2975, 2974, 3543 3544 2984, 2985, 2978, 2986, 2986, 2984, 2985, 2989, 2989, 2990, 3545 2991, 2981, 2992, 2993, 2988, 2995, 2983, 2990, 2998, 2992, 3546 2994, 2999, 2997, 3003, 2991, 2998, 3005, 2984, 2985, 2999, 3547 3000, 2993, 3006, 3007, 2989, 3008, 2990, 3011, 0, 2992, 3548 2993, 3009, 2995, 3010, 3012, 2998, 3007, 3016, 2999, 0, 3549 3003, 3014, 3000, 3005, 3006, 0, 3009, 3000, 3014, 3006, 3550 3007, 3017, 3010, 3018, 3011, 3015, 3012, 3008, 3009, 3016, 3551 3010, 3012, 3015, 3021, 3016, 3020, 3017, 3028, 3014, 3022, 3552 3023, 3021, 3025, 3028, 3018, 3026, 3022, 3023, 3017, 3029, 3553 3018, 3025, 3015, 3031, 3020, 3033, 3026, 3034, 3027, 3027, 3554 3555 3021, 3041, 3020, 3032, 3028, 3037, 3022, 3023, 3027, 3025, 3556 3032, 3029, 3026, 3042, 3036, 3031, 3029, 3038, 0, 3034, 3557 3031, 3036, 3043, 3047, 3034, 3027, 3027, 3033, 3041, 3037, 3558 3032, 3038, 3037, 3048, 3049, 3050, 3052, 3054, 3054, 0, 3559 3042, 3036, 3049, 3058, 3038, 3043, 3055, 3055, 0, 3043, 3560 3047, 3056, 3060, 3059, 0, 3048, 3062, 3065, 3061, 3068, 3561 3048, 3049, 3050, 3052, 3065, 3058, 3054, 3061, 3067, 3062, 3562 3058, 3059, 3072, 3073, 3056, 3055, 3074, 3080, 3056, 3060, 3563 3059, 3066, 3077, 3062, 3065, 3061, 3068, 3071, 3066, 3071, 3564 3067, 3077, 3072, 3075, 3074, 3067, 3073, 3078, 3081, 3072, 3565 3566 3073, 3079, 0, 3074, 3080, 3075, 3082, 3083, 3066, 3077, 3567 3086, 3088, 3085, 3084, 3071, 3078, 3084, 3085, 3082, 3087, 3568 3075, 3087, 3093, 3088, 3078, 3081, 3089, 3079, 3079, 3083, 3569 3090, 3084, 3089, 3082, 3083, 3094, 3091, 3092, 3088, 3095, 3570 3084, 3096, 3086, 3084, 3085, 3092, 3087, 3097, 3099, 3093, 3571 3098, 3102, 3090, 3089, 3104, 3105, 3108, 3090, 3091, 3109, 3572 3095, 3110, 3098, 3091, 3092, 3111, 3095, 3094, 3096, 3112, 3573 3099, 3113, 3114, 3105, 3097, 3099, 3115, 3098, 3102, 3116, 3574 3116, 3104, 3105, 3108, 3118, 3119, 3109, 3120, 3110, 3121, 3575 3122, 3125, 3111, 3124, 3127, 3126, 3112, 3122, 3113, 3114, 3576 3577 3128, 3124, 3118, 3115, 3121, 3120, 3116, 3126, 3127, 3129, 3578 3131, 3118, 3119, 3130, 3120, 3128, 3121, 3122, 3125, 3134, 3579 3124, 3127, 3126, 3135, 3138, 3130, 3137, 3128, 3134, 3136, 3580 3136, 3140, 3141, 3138, 3144, 3129, 3129, 3131, 3143, 3145, 3581 3130, 3142, 3144, 0, 3149, 0, 3134, 3135, 3145, 3152, 3582 3135, 3138, 3137, 3137, 3142, 3140, 3136, 3148, 3140, 3146, 3583 3143, 3144, 3149, 3153, 3141, 3143, 3145, 3165, 3142, 3166, 3584 3146, 3149, 3152, 3156, 3156, 3153, 3152, 3168, 3148, 3169, 3585 3170, 3171, 3175, 3173, 3148, 3174, 3146, 3173, 3176, 3165, 3586 3153, 3168, 3181, 3166, 3165, 3176, 3166, 3179, 3177, 0, 3587 3588 3156, 3179, 3180, 3174, 3168, 3175, 3169, 3170, 3171, 3175, 3589 3173, 3177, 3174, 3182, 3181, 3176, 3183, 3185, 3180, 3181, 3590 3184, 3192, 3186, 3187, 3179, 3177, 3188, 3190, 3183, 3180, 3591 3186, 3185, 3187, 3189, 3191, 3189, 3192, 3188, 3182, 3190, 3592 3182, 3193, 3195, 3183, 3185, 3194, 3184, 3184, 3192, 3186, 3593 3187, 3194, 3191, 3188, 3190, 3196, 3198, 3202, 3197, 3203, 3594 3189, 3191, 3204, 3193, 3195, 3197, 3203, 3206, 3193, 3195, 3595 3202, 3207, 3194, 3205, 3208, 3209, 0, 3217, 3198, 3210, 3596 3212, 3211, 3196, 3198, 3202, 3197, 3203, 3210, 3211, 3204, 3597 3213, 3205, 3214, 3215, 3206, 3215, 3220, 3207, 3207, 3216, 3598 3599 3205, 3208, 3209, 3218, 3212, 3221, 3210, 3212, 3211, 3217, 3600 3219, 3216, 3213, 3223, 3214, 3222, 3218, 3213, 3220, 3214, 3601 3215, 3225, 3222, 3220, 3226, 3219, 3216, 3227, 3228, 3230, 3602 3218, 3235, 3221, 3236, 3232, 3227, 3226, 3219, 3237, 3238, 3603 3223, 3230, 3222, 3232, 3239, 3240, 3244, 3238, 3225, 0, 3604 0, 3226, 3245, 3242, 3227, 3228, 3230, 3237, 3235, 3236, 3605 3236, 3232, 3241, 3243, 3247, 3237, 3238, 3242, 3244, 3253, 3606 3254, 3243, 3250, 3244, 3251, 3241, 3239, 3240, 3250, 3245, 3607 3242, 3251, 3253, 3257, 3259, 3256, 3258, 3261, 3260, 3241, 3608 3243, 3247, 3256, 3254, 3258, 3261, 3253, 3254, 3259, 3250, 3609 3610 3262, 3251, 3260, 3263, 3264, 3257, 3270, 3271, 3268, 3267, 3611 3257, 3259, 3256, 3258, 3261, 3260, 3267, 3268, 3269, 3272, 3612 3273, 3274, 3262, 0, 3278, 3263, 3269, 3262, 3275, 3271, 3613 3263, 3264, 3276, 3270, 3271, 3268, 3267, 3280, 3281, 3282, 3614 3284, 3277, 3286, 3274, 3285, 3269, 3273, 3273, 3274, 3277, 3615 3275, 3272, 3285, 3287, 3276, 3275, 3278, 3289, 3291, 3276, 3616 3281, 3287, 3286, 3284, 3280, 3281, 3282, 3284, 3277, 3286, 3617 3288, 3285, 3291, 3290, 0, 3293, 3295, 3297, 3288, 3300, 3618 3287, 3290, 3301, 3298, 3299, 3291, 0, 3296, 0, 3289, 3619 3296, 3298, 3299, 3300, 3302, 3305, 3305, 3288, 3303, 3297, 3620 3621 3290, 3293, 3293, 3295, 3297, 3296, 3300, 3306, 3301, 3301, 3622 3298, 3299, 3303, 3308, 3296, 3307, 3302, 3296, 3309, 3310, 3623 0, 3302, 3305, 3307, 3312, 3303, 3313, 3311, 3314, 0, 3624 3316, 3315, 3312, 3306, 3306, 3323, 0, 3320, 0, 3308, 3625 3308, 3310, 3307, 3317, 3309, 3309, 3310, 3311, 3318, 3326, 3626 3314, 3312, 3319, 3313, 3311, 3314, 3315, 3316, 3315, 3320, 3627 3319, 3321, 3323, 3317, 3320, 3324, 3328, 3327, 3318, 3321, 3628 3317, 3326, 3329, 3324, 3328, 3318, 3326, 3330, 3332, 3319, 3629 3329, 3335, 3333, 3334, 3336, 3339, 3337, 3340, 3321, 3327, 3630 3333, 3334, 3324, 3328, 3327, 3341, 3343, 3346, 0, 3329, 3631 3632 3349, 0, 3350, 3330, 3330, 3332, 3337, 3335, 3335, 3333, 3633 3334, 3336, 3339, 3337, 3340, 3341, 0, 3347, 3343, 3346, 3634 3348, 0, 3341, 3343, 3346, 3347, 0, 3349, 3348, 3350, 3635 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3636 0, 0, 0, 0, 3347, 0, 0, 3348, 3354, 3354, 3637 3354, 3354, 3354, 3354, 3354, 3355, 3355, 3355, 3355, 3355, 3638 3355, 3355, 3356, 3356, 3356, 3356, 3356, 3356, 3356, 3357, 3639 3357, 3357, 3357, 3357, 3357, 3357, 3358, 3358, 3358, 3358, 3640 3358, 3358, 3358, 3359, 3359, 3359, 3359, 3359, 3359, 3359, 3641 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3362, 3362, 0, 3642 3643 3362, 3362, 3362, 3362, 3363, 3363, 0, 0, 0, 3363, 3644 3363, 3364, 3364, 0, 0, 3364, 0, 3364, 3365, 0, 3645 0, 0, 0, 0, 3365, 3366, 3366, 0, 0, 0, 3646 3366, 3366, 3367, 0, 0, 0, 0, 0, 3367, 3368, 3647 3368, 0, 3368, 3368, 3368, 3368, 3369, 0, 0, 0, 3648 0, 0, 3369, 3370, 3370, 0, 0, 0, 3370, 3370, 3649 3371, 3371, 0, 3371, 3371, 3371, 3371, 3353, 3353, 3353, 3650 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3651 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3652 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3653 3654 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3655 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3656 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3657 3353, 3353, 3353, 3353 3658 } ; 3659 3660 static yy_state_type yy_last_accepting_state; 3661 static char *yy_last_accepting_cpos; 3662 3663 extern int yy_flex_debug; 3664 int yy_flex_debug = 0; 3665 3666 /* The intent behind this definition is that it'll catch 3667 * any uses of REJECT which flex missed. 3668 */ 3669 #define REJECT reject_used_but_not_detected 3670 static int yy_more_flag = 0; 3671 static int yy_more_len = 0; 3672 #define yymore() ((yy_more_flag) = 1) 3673 #define YY_MORE_ADJ (yy_more_len) 3674 #define YY_RESTORE_YY_MORE_OFFSET 3675 char *yytext; 3676 #line 1 "util/configlexer.lex" 3677 #line 2 "util/configlexer.lex" 3678 /* 3679 * configlexer.lex - lexical analyzer for unbound config file 3680 * 3681 * Copyright (c) 2001-2006, NLnet Labs. All rights reserved 3682 * 3683 * See LICENSE for the license. 3684 * 3685 */ 3686 3687 /* because flex keeps having sign-unsigned compare problems that are unfixed*/ 3688 #if defined(__clang__)||(defined(__GNUC__)&&((__GNUC__ >4)||(defined(__GNUC_MINOR__)&&(__GNUC__ ==4)&&(__GNUC_MINOR__ >=2)))) 3689 #pragma GCC diagnostic ignored "-Wsign-compare" 3690 #endif 3691 3692 #include <ctype.h> 3693 #include <strings.h> 3694 #ifdef HAVE_GLOB_H 3695 # include <glob.h> 3696 #endif 3697 3698 #include "util/config_file.h" 3699 #include "util/configparser.h" 3700 void ub_c_error(const char *message); 3701 3702 #if 0 3703 #define LEXOUT(s) printf s /* used ONLY when debugging */ 3704 #else 3705 #define LEXOUT(s) 3706 #endif 3707 3708 /** avoid warning in about fwrite return value */ 3709 #define ECHO ub_c_error_msg("syntax error at text: %s", yytext) 3710 3711 /** A parser variable, this is a statement in the config file which is 3712 * of the form variable: value1 value2 ... nargs is the number of values. */ 3713 #define YDVAR(nargs, var) \ 3714 num_args=(nargs); \ 3715 LEXOUT(("v(%s%d) ", yytext, num_args)); \ 3716 if(num_args > 0) { BEGIN(val); } \ 3717 return (var); 3718 3719 struct inc_state { 3720 char* filename; 3721 int line; 3722 YY_BUFFER_STATE buffer; 3723 struct inc_state* next; 3724 int inc_toplevel; 3725 }; 3726 static struct inc_state* config_include_stack = NULL; 3727 static int inc_depth = 0; 3728 static int inc_prev = 0; 3729 static int num_args = 0; 3730 static int inc_toplevel = 0; 3731 3732 void init_cfg_parse(void) 3733 { 3734 config_include_stack = NULL; 3735 inc_depth = 0; 3736 inc_prev = 0; 3737 num_args = 0; 3738 inc_toplevel = 0; 3739 } 3740 3741 static void config_start_include(const char* filename, int toplevel) 3742 { 3743 FILE *input; 3744 struct inc_state* s; 3745 char* nm; 3746 if(inc_depth+1 > 100000) { 3747 ub_c_error_msg("too many include files"); 3748 return; 3749 } 3750 if(*filename == '\0') { 3751 ub_c_error_msg("empty include file name"); 3752 return; 3753 } 3754 s = (struct inc_state*)malloc(sizeof(*s)); 3755 if(!s) { 3756 ub_c_error_msg("include %s: malloc failure", filename); 3757 return; 3758 } 3759 if(cfg_parser->chroot && strncmp(filename, cfg_parser->chroot, 3760 strlen(cfg_parser->chroot)) == 0) { 3761 filename += strlen(cfg_parser->chroot); 3762 } 3763 nm = strdup(filename); 3764 if(!nm) { 3765 ub_c_error_msg("include %s: strdup failure", filename); 3766 free(s); 3767 return; 3768 } 3769 input = fopen(filename, "r"); 3770 if(!input) { 3771 ub_c_error_msg("cannot open include file '%s': %s", 3772 filename, strerror(errno)); 3773 free(s); 3774 free(nm); 3775 return; 3776 } 3777 LEXOUT(("switch_to_include_file(%s)\n", filename)); 3778 inc_depth++; 3779 s->filename = cfg_parser->filename; 3780 s->line = cfg_parser->line; 3781 s->buffer = YY_CURRENT_BUFFER; 3782 s->inc_toplevel = inc_toplevel; 3783 s->next = config_include_stack; 3784 config_include_stack = s; 3785 cfg_parser->filename = nm; 3786 cfg_parser->line = 1; 3787 inc_toplevel = toplevel; 3788 yy_switch_to_buffer(yy_create_buffer(input, YY_BUF_SIZE)); 3789 } 3790 3791 static void config_start_include_glob(const char* filename, int toplevel) 3792 { 3793 3794 /* check for wildcards */ 3795 #ifdef HAVE_GLOB 3796 glob_t g; 3797 int i, r, flags; 3798 if(!(!strchr(filename, '*') && !strchr(filename, '?') && !strchr(filename, '[') && 3799 !strchr(filename, '{') && !strchr(filename, '~'))) { 3800 flags = 0 3801 #ifdef GLOB_ERR 3802 | GLOB_ERR 3803 #endif 3804 /* do not set GLOB_NOSORT so the results are sorted 3805 and in a predictable order. */ 3806 #ifdef GLOB_BRACE 3807 | GLOB_BRACE 3808 #endif 3809 #ifdef GLOB_TILDE 3810 | GLOB_TILDE 3811 #endif 3812 ; 3813 memset(&g, 0, sizeof(g)); 3814 if(cfg_parser->chroot && strncmp(filename, cfg_parser->chroot, 3815 strlen(cfg_parser->chroot)) == 0) { 3816 filename += strlen(cfg_parser->chroot); 3817 } 3818 r = glob(filename, flags, NULL, &g); 3819 if(r) { 3820 /* some error */ 3821 globfree(&g); 3822 if(r == GLOB_NOMATCH) 3823 return; /* no matches for pattern */ 3824 config_start_include(filename, toplevel); /* let original deal with it */ 3825 return; 3826 } 3827 /* process files found, if any */ 3828 for(i=(int)g.gl_pathc-1; i>=0; i--) { 3829 config_start_include(g.gl_pathv[i], toplevel); 3830 } 3831 globfree(&g); 3832 return; 3833 } 3834 #endif /* HAVE_GLOB */ 3835 3836 config_start_include(filename, toplevel); 3837 } 3838 3839 static void config_end_include(void) 3840 { 3841 struct inc_state* s = config_include_stack; 3842 --inc_depth; 3843 if(!s) return; 3844 free(cfg_parser->filename); 3845 cfg_parser->filename = s->filename; 3846 cfg_parser->line = s->line; 3847 yy_delete_buffer(YY_CURRENT_BUFFER); 3848 yy_switch_to_buffer(s->buffer); 3849 config_include_stack = s->next; 3850 inc_toplevel = s->inc_toplevel; 3851 free(s); 3852 } 3853 3854 #ifndef yy_set_bol /* compat definition, for flex 2.4.6 */ 3855 #define yy_set_bol(at_bol) \ 3856 { \ 3857 if ( ! yy_current_buffer ) \ 3858 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ 3859 yy_current_buffer->yy_ch_buf[0] = ((at_bol)?'\n':' '); \ 3860 } 3861 #endif 3862 3863 #line 3861 "<stdout>" 3864 #define YY_NO_INPUT 1 3865 #line 191 "util/configlexer.lex" 3866 #ifndef YY_NO_UNPUT 3867 #define YY_NO_UNPUT 1 3868 #endif 3869 #ifndef YY_NO_INPUT 3870 #define YY_NO_INPUT 1 3871 #endif 3872 #line 3870 "<stdout>" 3873 3874 #line 3872 "<stdout>" 3875 3876 #define INITIAL 0 3877 #define quotedstring 1 3878 #define singlequotedstr 2 3879 #define include 3 3880 #define include_quoted 4 3881 #define val 5 3882 #define include_toplevel 6 3883 #define include_toplevel_quoted 7 3884 3885 #ifndef YY_NO_UNISTD_H 3886 /* Special case for "unistd.h", since it is non-ANSI. We include it way 3887 * down here because we want the user's section 1 to have been scanned first. 3888 * The user has a chance to override it with an option. 3889 */ 3890 #include <unistd.h> 3891 #endif 3892 3893 #ifndef YY_EXTRA_TYPE 3894 #define YY_EXTRA_TYPE void * 3895 #endif 3896 3897 static int yy_init_globals ( void ); 3898 3899 /* Accessor methods to globals. 3900 These are made visible to non-reentrant scanners for convenience. */ 3901 3902 int yylex_destroy ( void ); 3903 3904 int yyget_debug ( void ); 3905 3906 void yyset_debug ( int debug_flag ); 3907 3908 YY_EXTRA_TYPE yyget_extra ( void ); 3909 3910 void yyset_extra ( YY_EXTRA_TYPE user_defined ); 3911 3912 FILE *yyget_in ( void ); 3913 3914 void yyset_in ( FILE * _in_str ); 3915 3916 FILE *yyget_out ( void ); 3917 3918 void yyset_out ( FILE * _out_str ); 3919 3920 int yyget_leng ( void ); 3921 3922 char *yyget_text ( void ); 3923 3924 int yyget_lineno ( void ); 3925 3926 void yyset_lineno ( int _line_number ); 3927 3928 /* Macros after this point can all be overridden by user definitions in 3929 * section 1. 3930 */ 3931 3932 #ifndef YY_SKIP_YYWRAP 3933 #ifdef __cplusplus 3934 extern "C" int yywrap ( void ); 3935 #else 3936 extern int yywrap ( void ); 3937 #endif 3938 #endif 3939 3940 #ifndef YY_NO_UNPUT 3941 3942 #endif 3943 3944 #ifndef yytext_ptr 3945 static void yy_flex_strncpy ( char *, const char *, int ); 3946 #endif 3947 3948 #ifdef YY_NEED_STRLEN 3949 static int yy_flex_strlen ( const char * ); 3950 #endif 3951 3952 #ifndef YY_NO_INPUT 3953 #ifdef __cplusplus 3954 static int yyinput ( void ); 3955 #else 3956 static int input ( void ); 3957 #endif 3958 3959 #endif 3960 3961 /* Amount of stuff to slurp up with each read. */ 3962 #ifndef YY_READ_BUF_SIZE 3963 #ifdef __ia64__ 3964 /* On IA-64, the buffer size is 16k, not 8k */ 3965 #define YY_READ_BUF_SIZE 16384 3966 #else 3967 #define YY_READ_BUF_SIZE 8192 3968 #endif /* __ia64__ */ 3969 #endif 3970 3971 /* Copy whatever the last rule matched to the standard output. */ 3972 #ifndef ECHO 3973 /* This used to be an fputs(), but since the string might contain NUL's, 3974 * we now use fwrite(). 3975 */ 3976 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) 3977 #endif 3978 3979 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, 3980 * is returned in "result". 3981 */ 3982 #ifndef YY_INPUT 3983 #define YY_INPUT(buf,result,max_size) \ 3984 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ 3985 { \ 3986 int c = '*'; \ 3987 int n; \ 3988 for ( n = 0; n < max_size && \ 3989 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ 3990 buf[n] = (char) c; \ 3991 if ( c == '\n' ) \ 3992 buf[n++] = (char) c; \ 3993 if ( c == EOF && ferror( yyin ) ) \ 3994 YY_FATAL_ERROR( "input in flex scanner failed" ); \ 3995 result = n; \ 3996 } \ 3997 else \ 3998 { \ 3999 errno=0; \ 4000 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ 4001 { \ 4002 if( errno != EINTR) \ 4003 { \ 4004 YY_FATAL_ERROR( "input in flex scanner failed" ); \ 4005 break; \ 4006 } \ 4007 errno=0; \ 4008 clearerr(yyin); \ 4009 } \ 4010 }\ 4011 \ 4012 4013 #endif 4014 4015 /* No semi-colon after return; correct usage is to write "yyterminate();" - 4016 * we don't want an extra ';' after the "return" because that will cause 4017 * some compilers to complain about unreachable statements. 4018 */ 4019 #ifndef yyterminate 4020 #define yyterminate() return YY_NULL 4021 #endif 4022 4023 /* Number of entries by which start-condition stack grows. */ 4024 #ifndef YY_START_STACK_INCR 4025 #define YY_START_STACK_INCR 25 4026 #endif 4027 4028 /* Report a fatal error. */ 4029 #ifndef YY_FATAL_ERROR 4030 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) 4031 #endif 4032 4033 /* end tables serialization structures and prototypes */ 4034 4035 /* Default declaration of generated scanner - a define so the user can 4036 * easily add parameters. 4037 */ 4038 #ifndef YY_DECL 4039 #define YY_DECL_IS_OURS 1 4040 4041 extern int yylex (void); 4042 4043 #define YY_DECL int yylex (void) 4044 #endif /* !YY_DECL */ 4045 4046 /* Code executed at the beginning of each rule, after yytext and yyleng 4047 * have been set up. 4048 */ 4049 #ifndef YY_USER_ACTION 4050 #define YY_USER_ACTION 4051 #endif 4052 4053 /* Code executed at the end of each rule. */ 4054 #ifndef YY_BREAK 4055 #define YY_BREAK /*LINTED*/break; 4056 #endif 4057 4058 #define YY_RULE_SETUP \ 4059 YY_USER_ACTION 4060 4061 /** The main scanner function which does all the work. 4062 */ 4063 YY_DECL 4064 { 4065 yy_state_type yy_current_state; 4066 char *yy_cp, *yy_bp; 4067 int yy_act; 4068 4069 if ( !(yy_init) ) 4070 { 4071 (yy_init) = 1; 4072 4073 #ifdef YY_USER_INIT 4074 YY_USER_INIT; 4075 #endif 4076 4077 if ( ! (yy_start) ) 4078 (yy_start) = 1; /* first start state */ 4079 4080 if ( ! yyin ) 4081 yyin = stdin; 4082 4083 if ( ! yyout ) 4084 yyout = stdout; 4085 4086 if ( ! YY_CURRENT_BUFFER ) { 4087 yyensure_buffer_stack (); 4088 YY_CURRENT_BUFFER_LVALUE = 4089 yy_create_buffer( yyin, YY_BUF_SIZE ); 4090 } 4091 4092 yy_load_buffer_state( ); 4093 } 4094 4095 { 4096 #line 211 "util/configlexer.lex" 4097 4098 #line 4096 "<stdout>" 4099 4100 while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ 4101 { 4102 (yy_more_len) = 0; 4103 if ( (yy_more_flag) ) 4104 { 4105 (yy_more_len) = (int) ((yy_c_buf_p) - (yytext_ptr)); 4106 (yy_more_flag) = 0; 4107 } 4108 yy_cp = (yy_c_buf_p); 4109 4110 /* Support of yytext. */ 4111 *yy_cp = (yy_hold_char); 4112 4113 /* yy_bp points to the position in yy_ch_buf of the start of 4114 * the current run. 4115 */ 4116 yy_bp = yy_cp; 4117 4118 yy_current_state = (yy_start); 4119 yy_match: 4120 do 4121 { 4122 YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; 4123 if ( yy_accept[yy_current_state] ) 4124 { 4125 (yy_last_accepting_state) = yy_current_state; 4126 (yy_last_accepting_cpos) = yy_cp; 4127 } 4128 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 4129 { 4130 yy_current_state = (int) yy_def[yy_current_state]; 4131 if ( yy_current_state >= 3354 ) 4132 yy_c = yy_meta[yy_c]; 4133 } 4134 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; 4135 ++yy_cp; 4136 } 4137 while ( yy_base[yy_current_state] != 9568 ); 4138 4139 yy_find_action: 4140 yy_act = yy_accept[yy_current_state]; 4141 if ( yy_act == 0 ) 4142 { /* have to back up */ 4143 yy_cp = (yy_last_accepting_cpos); 4144 yy_current_state = (yy_last_accepting_state); 4145 yy_act = yy_accept[yy_current_state]; 4146 } 4147 4148 YY_DO_BEFORE_ACTION; 4149 4150 do_action: /* This label is used only to access EOF actions. */ 4151 4152 switch ( yy_act ) 4153 { /* beginning of action switch */ 4154 case 0: /* must back up */ 4155 /* undo the effects of YY_DO_BEFORE_ACTION */ 4156 *yy_cp = (yy_hold_char); 4157 yy_cp = (yy_last_accepting_cpos); 4158 yy_current_state = (yy_last_accepting_state); 4159 goto yy_find_action; 4160 4161 case 1: 4162 YY_RULE_SETUP 4163 #line 212 "util/configlexer.lex" 4164 { 4165 LEXOUT(("SP ")); /* ignore */ } 4166 YY_BREAK 4167 case 2: 4168 YY_RULE_SETUP 4169 #line 214 "util/configlexer.lex" 4170 { 4171 /* note that flex makes the longest match and '.' is any but not nl */ 4172 LEXOUT(("comment(%s) ", yytext)); /* ignore */ } 4173 YY_BREAK 4174 case 3: 4175 YY_RULE_SETUP 4176 #line 217 "util/configlexer.lex" 4177 { YDVAR(0, VAR_SERVER) } 4178 YY_BREAK 4179 case 4: 4180 YY_RULE_SETUP 4181 #line 218 "util/configlexer.lex" 4182 { YDVAR(1, VAR_QNAME_MINIMISATION) } 4183 YY_BREAK 4184 case 5: 4185 YY_RULE_SETUP 4186 #line 219 "util/configlexer.lex" 4187 { YDVAR(1, VAR_QNAME_MINIMISATION_STRICT) } 4188 YY_BREAK 4189 case 6: 4190 YY_RULE_SETUP 4191 #line 220 "util/configlexer.lex" 4192 { YDVAR(1, VAR_NUM_THREADS) } 4193 YY_BREAK 4194 case 7: 4195 YY_RULE_SETUP 4196 #line 221 "util/configlexer.lex" 4197 { YDVAR(1, VAR_VERBOSITY) } 4198 YY_BREAK 4199 case 8: 4200 YY_RULE_SETUP 4201 #line 222 "util/configlexer.lex" 4202 { YDVAR(1, VAR_PORT) } 4203 YY_BREAK 4204 case 9: 4205 YY_RULE_SETUP 4206 #line 223 "util/configlexer.lex" 4207 { YDVAR(1, VAR_OUTGOING_RANGE) } 4208 YY_BREAK 4209 case 10: 4210 YY_RULE_SETUP 4211 #line 224 "util/configlexer.lex" 4212 { YDVAR(1, VAR_OUTGOING_PORT_PERMIT) } 4213 YY_BREAK 4214 case 11: 4215 YY_RULE_SETUP 4216 #line 225 "util/configlexer.lex" 4217 { YDVAR(1, VAR_OUTGOING_PORT_AVOID) } 4218 YY_BREAK 4219 case 12: 4220 YY_RULE_SETUP 4221 #line 226 "util/configlexer.lex" 4222 { YDVAR(1, VAR_OUTGOING_NUM_TCP) } 4223 YY_BREAK 4224 case 13: 4225 YY_RULE_SETUP 4226 #line 227 "util/configlexer.lex" 4227 { YDVAR(1, VAR_INCOMING_NUM_TCP) } 4228 YY_BREAK 4229 case 14: 4230 YY_RULE_SETUP 4231 #line 228 "util/configlexer.lex" 4232 { YDVAR(1, VAR_DO_IP4) } 4233 YY_BREAK 4234 case 15: 4235 YY_RULE_SETUP 4236 #line 229 "util/configlexer.lex" 4237 { YDVAR(1, VAR_DO_IP6) } 4238 YY_BREAK 4239 case 16: 4240 YY_RULE_SETUP 4241 #line 230 "util/configlexer.lex" 4242 { YDVAR(1, VAR_PREFER_IP4) } 4243 YY_BREAK 4244 case 17: 4245 YY_RULE_SETUP 4246 #line 231 "util/configlexer.lex" 4247 { YDVAR(1, VAR_PREFER_IP6) } 4248 YY_BREAK 4249 case 18: 4250 YY_RULE_SETUP 4251 #line 232 "util/configlexer.lex" 4252 { YDVAR(1, VAR_DO_UDP) } 4253 YY_BREAK 4254 case 19: 4255 YY_RULE_SETUP 4256 #line 233 "util/configlexer.lex" 4257 { YDVAR(1, VAR_DO_TCP) } 4258 YY_BREAK 4259 case 20: 4260 YY_RULE_SETUP 4261 #line 234 "util/configlexer.lex" 4262 { YDVAR(1, VAR_TCP_UPSTREAM) } 4263 YY_BREAK 4264 case 21: 4265 YY_RULE_SETUP 4266 #line 235 "util/configlexer.lex" 4267 { YDVAR(1, VAR_TCP_MSS) } 4268 YY_BREAK 4269 case 22: 4270 YY_RULE_SETUP 4271 #line 236 "util/configlexer.lex" 4272 { YDVAR(1, VAR_OUTGOING_TCP_MSS) } 4273 YY_BREAK 4274 case 23: 4275 YY_RULE_SETUP 4276 #line 237 "util/configlexer.lex" 4277 { YDVAR(1, VAR_TCP_IDLE_TIMEOUT) } 4278 YY_BREAK 4279 case 24: 4280 YY_RULE_SETUP 4281 #line 238 "util/configlexer.lex" 4282 { YDVAR(1, VAR_EDNS_TCP_KEEPALIVE) } 4283 YY_BREAK 4284 case 25: 4285 YY_RULE_SETUP 4286 #line 239 "util/configlexer.lex" 4287 { YDVAR(1, VAR_EDNS_TCP_KEEPALIVE_TIMEOUT) } 4288 YY_BREAK 4289 case 26: 4290 YY_RULE_SETUP 4291 #line 240 "util/configlexer.lex" 4292 { YDVAR(1, VAR_SSL_UPSTREAM) } 4293 YY_BREAK 4294 case 27: 4295 YY_RULE_SETUP 4296 #line 241 "util/configlexer.lex" 4297 { YDVAR(1, VAR_SSL_UPSTREAM) } 4298 YY_BREAK 4299 case 28: 4300 YY_RULE_SETUP 4301 #line 242 "util/configlexer.lex" 4302 { YDVAR(1, VAR_SSL_SERVICE_KEY) } 4303 YY_BREAK 4304 case 29: 4305 YY_RULE_SETUP 4306 #line 243 "util/configlexer.lex" 4307 { YDVAR(1, VAR_SSL_SERVICE_KEY) } 4308 YY_BREAK 4309 case 30: 4310 YY_RULE_SETUP 4311 #line 244 "util/configlexer.lex" 4312 { YDVAR(1, VAR_SSL_SERVICE_PEM) } 4313 YY_BREAK 4314 case 31: 4315 YY_RULE_SETUP 4316 #line 245 "util/configlexer.lex" 4317 { YDVAR(1, VAR_SSL_SERVICE_PEM) } 4318 YY_BREAK 4319 case 32: 4320 YY_RULE_SETUP 4321 #line 246 "util/configlexer.lex" 4322 { YDVAR(1, VAR_SSL_PORT) } 4323 YY_BREAK 4324 case 33: 4325 YY_RULE_SETUP 4326 #line 247 "util/configlexer.lex" 4327 { YDVAR(1, VAR_SSL_PORT) } 4328 YY_BREAK 4329 case 34: 4330 YY_RULE_SETUP 4331 #line 248 "util/configlexer.lex" 4332 { YDVAR(1, VAR_TLS_CERT_BUNDLE) } 4333 YY_BREAK 4334 case 35: 4335 YY_RULE_SETUP 4336 #line 249 "util/configlexer.lex" 4337 { YDVAR(1, VAR_TLS_CERT_BUNDLE) } 4338 YY_BREAK 4339 case 36: 4340 YY_RULE_SETUP 4341 #line 250 "util/configlexer.lex" 4342 { YDVAR(1, VAR_TLS_WIN_CERT) } 4343 YY_BREAK 4344 case 37: 4345 YY_RULE_SETUP 4346 #line 251 "util/configlexer.lex" 4347 { YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } 4348 YY_BREAK 4349 case 38: 4350 YY_RULE_SETUP 4351 #line 252 "util/configlexer.lex" 4352 { YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } 4353 YY_BREAK 4354 case 39: 4355 YY_RULE_SETUP 4356 #line 253 "util/configlexer.lex" 4357 { YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } 4358 YY_BREAK 4359 case 40: 4360 YY_RULE_SETUP 4361 #line 254 "util/configlexer.lex" 4362 { YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } 4363 YY_BREAK 4364 case 41: 4365 YY_RULE_SETUP 4366 #line 255 "util/configlexer.lex" 4367 { YDVAR(1, VAR_TLS_SESSION_TICKET_KEYS) } 4368 YY_BREAK 4369 case 42: 4370 YY_RULE_SETUP 4371 #line 256 "util/configlexer.lex" 4372 { YDVAR(1, VAR_TLS_CIPHERS) } 4373 YY_BREAK 4374 case 43: 4375 YY_RULE_SETUP 4376 #line 257 "util/configlexer.lex" 4377 { YDVAR(1, VAR_TLS_CIPHERSUITES) } 4378 YY_BREAK 4379 case 44: 4380 YY_RULE_SETUP 4381 #line 258 "util/configlexer.lex" 4382 { YDVAR(1, VAR_TLS_USE_SNI) } 4383 YY_BREAK 4384 case 45: 4385 YY_RULE_SETUP 4386 #line 259 "util/configlexer.lex" 4387 { YDVAR(1, VAR_HTTPS_PORT) } 4388 YY_BREAK 4389 case 46: 4390 YY_RULE_SETUP 4391 #line 260 "util/configlexer.lex" 4392 { YDVAR(1, VAR_HTTP_ENDPOINT) } 4393 YY_BREAK 4394 case 47: 4395 YY_RULE_SETUP 4396 #line 261 "util/configlexer.lex" 4397 { YDVAR(1, VAR_HTTP_MAX_STREAMS) } 4398 YY_BREAK 4399 case 48: 4400 YY_RULE_SETUP 4401 #line 262 "util/configlexer.lex" 4402 { YDVAR(1, VAR_HTTP_QUERY_BUFFER_SIZE) } 4403 YY_BREAK 4404 case 49: 4405 YY_RULE_SETUP 4406 #line 263 "util/configlexer.lex" 4407 { YDVAR(1, VAR_HTTP_RESPONSE_BUFFER_SIZE) } 4408 YY_BREAK 4409 case 50: 4410 YY_RULE_SETUP 4411 #line 264 "util/configlexer.lex" 4412 { YDVAR(1, VAR_HTTP_NODELAY) } 4413 YY_BREAK 4414 case 51: 4415 YY_RULE_SETUP 4416 #line 265 "util/configlexer.lex" 4417 { YDVAR(1, VAR_HTTP_NOTLS_DOWNSTREAM) } 4418 YY_BREAK 4419 case 52: 4420 YY_RULE_SETUP 4421 #line 266 "util/configlexer.lex" 4422 { YDVAR(1, VAR_USE_SYSTEMD) } 4423 YY_BREAK 4424 case 53: 4425 YY_RULE_SETUP 4426 #line 267 "util/configlexer.lex" 4427 { YDVAR(1, VAR_DO_DAEMONIZE) } 4428 YY_BREAK 4429 case 54: 4430 YY_RULE_SETUP 4431 #line 268 "util/configlexer.lex" 4432 { YDVAR(1, VAR_INTERFACE) } 4433 YY_BREAK 4434 case 55: 4435 YY_RULE_SETUP 4436 #line 269 "util/configlexer.lex" 4437 { YDVAR(1, VAR_INTERFACE) } 4438 YY_BREAK 4439 case 56: 4440 YY_RULE_SETUP 4441 #line 270 "util/configlexer.lex" 4442 { YDVAR(1, VAR_OUTGOING_INTERFACE) } 4443 YY_BREAK 4444 case 57: 4445 YY_RULE_SETUP 4446 #line 271 "util/configlexer.lex" 4447 { YDVAR(1, VAR_INTERFACE_AUTOMATIC) } 4448 YY_BREAK 4449 case 58: 4450 YY_RULE_SETUP 4451 #line 272 "util/configlexer.lex" 4452 { YDVAR(1, VAR_SO_RCVBUF) } 4453 YY_BREAK 4454 case 59: 4455 YY_RULE_SETUP 4456 #line 273 "util/configlexer.lex" 4457 { YDVAR(1, VAR_SO_SNDBUF) } 4458 YY_BREAK 4459 case 60: 4460 YY_RULE_SETUP 4461 #line 274 "util/configlexer.lex" 4462 { YDVAR(1, VAR_SO_REUSEPORT) } 4463 YY_BREAK 4464 case 61: 4465 YY_RULE_SETUP 4466 #line 275 "util/configlexer.lex" 4467 { YDVAR(1, VAR_IP_TRANSPARENT) } 4468 YY_BREAK 4469 case 62: 4470 YY_RULE_SETUP 4471 #line 276 "util/configlexer.lex" 4472 { YDVAR(1, VAR_IP_FREEBIND) } 4473 YY_BREAK 4474 case 63: 4475 YY_RULE_SETUP 4476 #line 277 "util/configlexer.lex" 4477 { YDVAR(1, VAR_IP_DSCP) } 4478 YY_BREAK 4479 case 64: 4480 YY_RULE_SETUP 4481 #line 278 "util/configlexer.lex" 4482 { YDVAR(1, VAR_CHROOT) } 4483 YY_BREAK 4484 case 65: 4485 YY_RULE_SETUP 4486 #line 279 "util/configlexer.lex" 4487 { YDVAR(1, VAR_USERNAME) } 4488 YY_BREAK 4489 case 66: 4490 YY_RULE_SETUP 4491 #line 280 "util/configlexer.lex" 4492 { YDVAR(1, VAR_DIRECTORY) } 4493 YY_BREAK 4494 case 67: 4495 YY_RULE_SETUP 4496 #line 281 "util/configlexer.lex" 4497 { YDVAR(1, VAR_LOGFILE) } 4498 YY_BREAK 4499 case 68: 4500 YY_RULE_SETUP 4501 #line 282 "util/configlexer.lex" 4502 { YDVAR(1, VAR_PIDFILE) } 4503 YY_BREAK 4504 case 69: 4505 YY_RULE_SETUP 4506 #line 283 "util/configlexer.lex" 4507 { YDVAR(1, VAR_ROOT_HINTS) } 4508 YY_BREAK 4509 case 70: 4510 YY_RULE_SETUP 4511 #line 284 "util/configlexer.lex" 4512 { YDVAR(1, VAR_STREAM_WAIT_SIZE) } 4513 YY_BREAK 4514 case 71: 4515 YY_RULE_SETUP 4516 #line 285 "util/configlexer.lex" 4517 { YDVAR(1, VAR_EDNS_BUFFER_SIZE) } 4518 YY_BREAK 4519 case 72: 4520 YY_RULE_SETUP 4521 #line 286 "util/configlexer.lex" 4522 { YDVAR(1, VAR_MSG_BUFFER_SIZE) } 4523 YY_BREAK 4524 case 73: 4525 YY_RULE_SETUP 4526 #line 287 "util/configlexer.lex" 4527 { YDVAR(1, VAR_MSG_CACHE_SIZE) } 4528 YY_BREAK 4529 case 74: 4530 YY_RULE_SETUP 4531 #line 288 "util/configlexer.lex" 4532 { YDVAR(1, VAR_MSG_CACHE_SLABS) } 4533 YY_BREAK 4534 case 75: 4535 YY_RULE_SETUP 4536 #line 289 "util/configlexer.lex" 4537 { YDVAR(1, VAR_RRSET_CACHE_SIZE) } 4538 YY_BREAK 4539 case 76: 4540 YY_RULE_SETUP 4541 #line 290 "util/configlexer.lex" 4542 { YDVAR(1, VAR_RRSET_CACHE_SLABS) } 4543 YY_BREAK 4544 case 77: 4545 YY_RULE_SETUP 4546 #line 291 "util/configlexer.lex" 4547 { YDVAR(1, VAR_CACHE_MAX_TTL) } 4548 YY_BREAK 4549 case 78: 4550 YY_RULE_SETUP 4551 #line 292 "util/configlexer.lex" 4552 { YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) } 4553 YY_BREAK 4554 case 79: 4555 YY_RULE_SETUP 4556 #line 293 "util/configlexer.lex" 4557 { YDVAR(1, VAR_CACHE_MIN_TTL) } 4558 YY_BREAK 4559 case 80: 4560 YY_RULE_SETUP 4561 #line 294 "util/configlexer.lex" 4562 { YDVAR(1, VAR_INFRA_HOST_TTL) } 4563 YY_BREAK 4564 case 81: 4565 YY_RULE_SETUP 4566 #line 295 "util/configlexer.lex" 4567 { YDVAR(1, VAR_INFRA_LAME_TTL) } 4568 YY_BREAK 4569 case 82: 4570 YY_RULE_SETUP 4571 #line 296 "util/configlexer.lex" 4572 { YDVAR(1, VAR_INFRA_CACHE_SLABS) } 4573 YY_BREAK 4574 case 83: 4575 YY_RULE_SETUP 4576 #line 297 "util/configlexer.lex" 4577 { YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } 4578 YY_BREAK 4579 case 84: 4580 YY_RULE_SETUP 4581 #line 298 "util/configlexer.lex" 4582 { YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } 4583 YY_BREAK 4584 case 85: 4585 YY_RULE_SETUP 4586 #line 299 "util/configlexer.lex" 4587 { YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) } 4588 YY_BREAK 4589 case 86: 4590 YY_RULE_SETUP 4591 #line 300 "util/configlexer.lex" 4592 { YDVAR(1, VAR_INFRA_KEEP_PROBING) } 4593 YY_BREAK 4594 case 87: 4595 YY_RULE_SETUP 4596 #line 301 "util/configlexer.lex" 4597 { YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } 4598 YY_BREAK 4599 case 88: 4600 YY_RULE_SETUP 4601 #line 302 "util/configlexer.lex" 4602 { YDVAR(1, VAR_JOSTLE_TIMEOUT) } 4603 YY_BREAK 4604 case 89: 4605 YY_RULE_SETUP 4606 #line 303 "util/configlexer.lex" 4607 { YDVAR(1, VAR_DELAY_CLOSE) } 4608 YY_BREAK 4609 case 90: 4610 YY_RULE_SETUP 4611 #line 304 "util/configlexer.lex" 4612 { YDVAR(1, VAR_UDP_CONNECT) } 4613 YY_BREAK 4614 case 91: 4615 YY_RULE_SETUP 4616 #line 305 "util/configlexer.lex" 4617 { YDVAR(1, VAR_TARGET_FETCH_POLICY) } 4618 YY_BREAK 4619 case 92: 4620 YY_RULE_SETUP 4621 #line 306 "util/configlexer.lex" 4622 { YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } 4623 YY_BREAK 4624 case 93: 4625 YY_RULE_SETUP 4626 #line 307 "util/configlexer.lex" 4627 { YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } 4628 YY_BREAK 4629 case 94: 4630 YY_RULE_SETUP 4631 #line 308 "util/configlexer.lex" 4632 { YDVAR(1, VAR_HARDEN_GLUE) } 4633 YY_BREAK 4634 case 95: 4635 YY_RULE_SETUP 4636 #line 309 "util/configlexer.lex" 4637 { YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) } 4638 YY_BREAK 4639 case 96: 4640 YY_RULE_SETUP 4641 #line 310 "util/configlexer.lex" 4642 { YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) } 4643 YY_BREAK 4644 case 97: 4645 YY_RULE_SETUP 4646 #line 311 "util/configlexer.lex" 4647 { YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } 4648 YY_BREAK 4649 case 98: 4650 YY_RULE_SETUP 4651 #line 312 "util/configlexer.lex" 4652 { YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) } 4653 YY_BREAK 4654 case 99: 4655 YY_RULE_SETUP 4656 #line 313 "util/configlexer.lex" 4657 { YDVAR(1, VAR_USE_CAPS_FOR_ID) } 4658 YY_BREAK 4659 case 100: 4660 YY_RULE_SETUP 4661 #line 314 "util/configlexer.lex" 4662 { YDVAR(1, VAR_CAPS_WHITELIST) } 4663 YY_BREAK 4664 case 101: 4665 YY_RULE_SETUP 4666 #line 315 "util/configlexer.lex" 4667 { YDVAR(1, VAR_CAPS_WHITELIST) } 4668 YY_BREAK 4669 case 102: 4670 YY_RULE_SETUP 4671 #line 316 "util/configlexer.lex" 4672 { YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } 4673 YY_BREAK 4674 case 103: 4675 YY_RULE_SETUP 4676 #line 317 "util/configlexer.lex" 4677 { YDVAR(1, VAR_PRIVATE_ADDRESS) } 4678 YY_BREAK 4679 case 104: 4680 YY_RULE_SETUP 4681 #line 318 "util/configlexer.lex" 4682 { YDVAR(1, VAR_PRIVATE_DOMAIN) } 4683 YY_BREAK 4684 case 105: 4685 YY_RULE_SETUP 4686 #line 319 "util/configlexer.lex" 4687 { YDVAR(1, VAR_PREFETCH_KEY) } 4688 YY_BREAK 4689 case 106: 4690 YY_RULE_SETUP 4691 #line 320 "util/configlexer.lex" 4692 { YDVAR(1, VAR_PREFETCH) } 4693 YY_BREAK 4694 case 107: 4695 YY_RULE_SETUP 4696 #line 321 "util/configlexer.lex" 4697 { YDVAR(1, VAR_DENY_ANY) } 4698 YY_BREAK 4699 case 108: 4700 YY_RULE_SETUP 4701 #line 322 "util/configlexer.lex" 4702 { YDVAR(0, VAR_STUB_ZONE) } 4703 YY_BREAK 4704 case 109: 4705 YY_RULE_SETUP 4706 #line 323 "util/configlexer.lex" 4707 { YDVAR(1, VAR_NAME) } 4708 YY_BREAK 4709 case 110: 4710 YY_RULE_SETUP 4711 #line 324 "util/configlexer.lex" 4712 { YDVAR(1, VAR_STUB_ADDR) } 4713 YY_BREAK 4714 case 111: 4715 YY_RULE_SETUP 4716 #line 325 "util/configlexer.lex" 4717 { YDVAR(1, VAR_STUB_HOST) } 4718 YY_BREAK 4719 case 112: 4720 YY_RULE_SETUP 4721 #line 326 "util/configlexer.lex" 4722 { YDVAR(1, VAR_STUB_PRIME) } 4723 YY_BREAK 4724 case 113: 4725 YY_RULE_SETUP 4726 #line 327 "util/configlexer.lex" 4727 { YDVAR(1, VAR_STUB_FIRST) } 4728 YY_BREAK 4729 case 114: 4730 YY_RULE_SETUP 4731 #line 328 "util/configlexer.lex" 4732 { YDVAR(1, VAR_STUB_NO_CACHE) } 4733 YY_BREAK 4734 case 115: 4735 YY_RULE_SETUP 4736 #line 329 "util/configlexer.lex" 4737 { YDVAR(1, VAR_STUB_SSL_UPSTREAM) } 4738 YY_BREAK 4739 case 116: 4740 YY_RULE_SETUP 4741 #line 330 "util/configlexer.lex" 4742 { YDVAR(1, VAR_STUB_SSL_UPSTREAM) } 4743 YY_BREAK 4744 case 117: 4745 YY_RULE_SETUP 4746 #line 331 "util/configlexer.lex" 4747 { YDVAR(0, VAR_FORWARD_ZONE) } 4748 YY_BREAK 4749 case 118: 4750 YY_RULE_SETUP 4751 #line 332 "util/configlexer.lex" 4752 { YDVAR(1, VAR_FORWARD_ADDR) } 4753 YY_BREAK 4754 case 119: 4755 YY_RULE_SETUP 4756 #line 333 "util/configlexer.lex" 4757 { YDVAR(1, VAR_FORWARD_HOST) } 4758 YY_BREAK 4759 case 120: 4760 YY_RULE_SETUP 4761 #line 334 "util/configlexer.lex" 4762 { YDVAR(1, VAR_FORWARD_FIRST) } 4763 YY_BREAK 4764 case 121: 4765 YY_RULE_SETUP 4766 #line 335 "util/configlexer.lex" 4767 { YDVAR(1, VAR_FORWARD_NO_CACHE) } 4768 YY_BREAK 4769 case 122: 4770 YY_RULE_SETUP 4771 #line 336 "util/configlexer.lex" 4772 { YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } 4773 YY_BREAK 4774 case 123: 4775 YY_RULE_SETUP 4776 #line 337 "util/configlexer.lex" 4777 { YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } 4778 YY_BREAK 4779 case 124: 4780 YY_RULE_SETUP 4781 #line 338 "util/configlexer.lex" 4782 { YDVAR(0, VAR_AUTH_ZONE) } 4783 YY_BREAK 4784 case 125: 4785 YY_RULE_SETUP 4786 #line 339 "util/configlexer.lex" 4787 { YDVAR(0, VAR_RPZ) } 4788 YY_BREAK 4789 case 126: 4790 YY_RULE_SETUP 4791 #line 340 "util/configlexer.lex" 4792 { YDVAR(1, VAR_TAGS) } 4793 YY_BREAK 4794 case 127: 4795 YY_RULE_SETUP 4796 #line 341 "util/configlexer.lex" 4797 { YDVAR(1, VAR_RPZ_ACTION_OVERRIDE) } 4798 YY_BREAK 4799 case 128: 4800 YY_RULE_SETUP 4801 #line 342 "util/configlexer.lex" 4802 { YDVAR(1, VAR_RPZ_CNAME_OVERRIDE) } 4803 YY_BREAK 4804 case 129: 4805 YY_RULE_SETUP 4806 #line 343 "util/configlexer.lex" 4807 { YDVAR(1, VAR_RPZ_LOG) } 4808 YY_BREAK 4809 case 130: 4810 YY_RULE_SETUP 4811 #line 344 "util/configlexer.lex" 4812 { YDVAR(1, VAR_RPZ_LOG_NAME) } 4813 YY_BREAK 4814 case 131: 4815 YY_RULE_SETUP 4816 #line 345 "util/configlexer.lex" 4817 { YDVAR(1, VAR_ZONEFILE) } 4818 YY_BREAK 4819 case 132: 4820 YY_RULE_SETUP 4821 #line 346 "util/configlexer.lex" 4822 { YDVAR(1, VAR_MASTER) } 4823 YY_BREAK 4824 case 133: 4825 YY_RULE_SETUP 4826 #line 347 "util/configlexer.lex" 4827 { YDVAR(1, VAR_MASTER) } 4828 YY_BREAK 4829 case 134: 4830 YY_RULE_SETUP 4831 #line 348 "util/configlexer.lex" 4832 { YDVAR(1, VAR_URL) } 4833 YY_BREAK 4834 case 135: 4835 YY_RULE_SETUP 4836 #line 349 "util/configlexer.lex" 4837 { YDVAR(1, VAR_ALLOW_NOTIFY) } 4838 YY_BREAK 4839 case 136: 4840 YY_RULE_SETUP 4841 #line 350 "util/configlexer.lex" 4842 { YDVAR(1, VAR_FOR_DOWNSTREAM) } 4843 YY_BREAK 4844 case 137: 4845 YY_RULE_SETUP 4846 #line 351 "util/configlexer.lex" 4847 { YDVAR(1, VAR_FOR_UPSTREAM) } 4848 YY_BREAK 4849 case 138: 4850 YY_RULE_SETUP 4851 #line 352 "util/configlexer.lex" 4852 { YDVAR(1, VAR_FALLBACK_ENABLED) } 4853 YY_BREAK 4854 case 139: 4855 YY_RULE_SETUP 4856 #line 353 "util/configlexer.lex" 4857 { YDVAR(0, VAR_VIEW) } 4858 YY_BREAK 4859 case 140: 4860 YY_RULE_SETUP 4861 #line 354 "util/configlexer.lex" 4862 { YDVAR(1, VAR_VIEW_FIRST) } 4863 YY_BREAK 4864 case 141: 4865 YY_RULE_SETUP 4866 #line 355 "util/configlexer.lex" 4867 { YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } 4868 YY_BREAK 4869 case 142: 4870 YY_RULE_SETUP 4871 #line 356 "util/configlexer.lex" 4872 { YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } 4873 YY_BREAK 4874 case 143: 4875 YY_RULE_SETUP 4876 #line 357 "util/configlexer.lex" 4877 { YDVAR(2, VAR_ACCESS_CONTROL) } 4878 YY_BREAK 4879 case 144: 4880 YY_RULE_SETUP 4881 #line 358 "util/configlexer.lex" 4882 { YDVAR(1, VAR_SEND_CLIENT_SUBNET) } 4883 YY_BREAK 4884 case 145: 4885 YY_RULE_SETUP 4886 #line 359 "util/configlexer.lex" 4887 { YDVAR(1, VAR_CLIENT_SUBNET_ZONE) } 4888 YY_BREAK 4889 case 146: 4890 YY_RULE_SETUP 4891 #line 360 "util/configlexer.lex" 4892 { YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) } 4893 YY_BREAK 4894 case 147: 4895 YY_RULE_SETUP 4896 #line 361 "util/configlexer.lex" 4897 { YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) } 4898 YY_BREAK 4899 case 148: 4900 YY_RULE_SETUP 4901 #line 362 "util/configlexer.lex" 4902 { YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) } 4903 YY_BREAK 4904 case 149: 4905 YY_RULE_SETUP 4906 #line 363 "util/configlexer.lex" 4907 { YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) } 4908 YY_BREAK 4909 case 150: 4910 YY_RULE_SETUP 4911 #line 364 "util/configlexer.lex" 4912 { YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV4) } 4913 YY_BREAK 4914 case 151: 4915 YY_RULE_SETUP 4916 #line 365 "util/configlexer.lex" 4917 { YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV6) } 4918 YY_BREAK 4919 case 152: 4920 YY_RULE_SETUP 4921 #line 366 "util/configlexer.lex" 4922 { YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV4) } 4923 YY_BREAK 4924 case 153: 4925 YY_RULE_SETUP 4926 #line 367 "util/configlexer.lex" 4927 { YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV6) } 4928 YY_BREAK 4929 case 154: 4930 YY_RULE_SETUP 4931 #line 368 "util/configlexer.lex" 4932 { YDVAR(1, VAR_HIDE_IDENTITY) } 4933 YY_BREAK 4934 case 155: 4935 YY_RULE_SETUP 4936 #line 369 "util/configlexer.lex" 4937 { YDVAR(1, VAR_HIDE_VERSION) } 4938 YY_BREAK 4939 case 156: 4940 YY_RULE_SETUP 4941 #line 370 "util/configlexer.lex" 4942 { YDVAR(1, VAR_HIDE_TRUSTANCHOR) } 4943 YY_BREAK 4944 case 157: 4945 YY_RULE_SETUP 4946 #line 371 "util/configlexer.lex" 4947 { YDVAR(1, VAR_IDENTITY) } 4948 YY_BREAK 4949 case 158: 4950 YY_RULE_SETUP 4951 #line 372 "util/configlexer.lex" 4952 { YDVAR(1, VAR_VERSION) } 4953 YY_BREAK 4954 case 159: 4955 YY_RULE_SETUP 4956 #line 373 "util/configlexer.lex" 4957 { YDVAR(1, VAR_MODULE_CONF) } 4958 YY_BREAK 4959 case 160: 4960 YY_RULE_SETUP 4961 #line 374 "util/configlexer.lex" 4962 { YDVAR(1, VAR_DLV_ANCHOR) } 4963 YY_BREAK 4964 case 161: 4965 YY_RULE_SETUP 4966 #line 375 "util/configlexer.lex" 4967 { YDVAR(1, VAR_DLV_ANCHOR_FILE) } 4968 YY_BREAK 4969 case 162: 4970 YY_RULE_SETUP 4971 #line 376 "util/configlexer.lex" 4972 { YDVAR(1, VAR_TRUST_ANCHOR_FILE) } 4973 YY_BREAK 4974 case 163: 4975 YY_RULE_SETUP 4976 #line 377 "util/configlexer.lex" 4977 { YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } 4978 YY_BREAK 4979 case 164: 4980 YY_RULE_SETUP 4981 #line 378 "util/configlexer.lex" 4982 { YDVAR(1, VAR_TRUSTED_KEYS_FILE) } 4983 YY_BREAK 4984 case 165: 4985 YY_RULE_SETUP 4986 #line 379 "util/configlexer.lex" 4987 { YDVAR(1, VAR_TRUST_ANCHOR) } 4988 YY_BREAK 4989 case 166: 4990 YY_RULE_SETUP 4991 #line 380 "util/configlexer.lex" 4992 { YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) } 4993 YY_BREAK 4994 case 167: 4995 YY_RULE_SETUP 4996 #line 381 "util/configlexer.lex" 4997 { YDVAR(1, VAR_ROOT_KEY_SENTINEL) } 4998 YY_BREAK 4999 case 168: 5000 YY_RULE_SETUP 5001 #line 382 "util/configlexer.lex" 5002 { YDVAR(1, VAR_VAL_OVERRIDE_DATE) } 5003 YY_BREAK 5004 case 169: 5005 YY_RULE_SETUP 5006 #line 383 "util/configlexer.lex" 5007 { YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } 5008 YY_BREAK 5009 case 170: 5010 YY_RULE_SETUP 5011 #line 384 "util/configlexer.lex" 5012 { YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } 5013 YY_BREAK 5014 case 171: 5015 YY_RULE_SETUP 5016 #line 385 "util/configlexer.lex" 5017 { YDVAR(1, VAR_BOGUS_TTL) } 5018 YY_BREAK 5019 case 172: 5020 YY_RULE_SETUP 5021 #line 386 "util/configlexer.lex" 5022 { YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } 5023 YY_BREAK 5024 case 173: 5025 YY_RULE_SETUP 5026 #line 387 "util/configlexer.lex" 5027 { YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } 5028 YY_BREAK 5029 case 174: 5030 YY_RULE_SETUP 5031 #line 388 "util/configlexer.lex" 5032 { YDVAR(1, VAR_AGGRESSIVE_NSEC) } 5033 YY_BREAK 5034 case 175: 5035 YY_RULE_SETUP 5036 #line 389 "util/configlexer.lex" 5037 { YDVAR(1, VAR_IGNORE_CD_FLAG) } 5038 YY_BREAK 5039 case 176: 5040 YY_RULE_SETUP 5041 #line 390 "util/configlexer.lex" 5042 { YDVAR(1, VAR_SERVE_EXPIRED) } 5043 YY_BREAK 5044 case 177: 5045 YY_RULE_SETUP 5046 #line 391 "util/configlexer.lex" 5047 { YDVAR(1, VAR_SERVE_EXPIRED_TTL) } 5048 YY_BREAK 5049 case 178: 5050 YY_RULE_SETUP 5051 #line 392 "util/configlexer.lex" 5052 { YDVAR(1, VAR_SERVE_EXPIRED_TTL_RESET) } 5053 YY_BREAK 5054 case 179: 5055 YY_RULE_SETUP 5056 #line 393 "util/configlexer.lex" 5057 { YDVAR(1, VAR_SERVE_EXPIRED_REPLY_TTL) } 5058 YY_BREAK 5059 case 180: 5060 YY_RULE_SETUP 5061 #line 394 "util/configlexer.lex" 5062 { YDVAR(1, VAR_SERVE_EXPIRED_CLIENT_TIMEOUT) } 5063 YY_BREAK 5064 case 181: 5065 YY_RULE_SETUP 5066 #line 395 "util/configlexer.lex" 5067 { YDVAR(1, VAR_SERVE_ORIGINAL_TTL) } 5068 YY_BREAK 5069 case 182: 5070 YY_RULE_SETUP 5071 #line 396 "util/configlexer.lex" 5072 { YDVAR(1, VAR_FAKE_DSA) } 5073 YY_BREAK 5074 case 183: 5075 YY_RULE_SETUP 5076 #line 397 "util/configlexer.lex" 5077 { YDVAR(1, VAR_FAKE_SHA1) } 5078 YY_BREAK 5079 case 184: 5080 YY_RULE_SETUP 5081 #line 398 "util/configlexer.lex" 5082 { YDVAR(1, VAR_VAL_LOG_LEVEL) } 5083 YY_BREAK 5084 case 185: 5085 YY_RULE_SETUP 5086 #line 399 "util/configlexer.lex" 5087 { YDVAR(1, VAR_KEY_CACHE_SIZE) } 5088 YY_BREAK 5089 case 186: 5090 YY_RULE_SETUP 5091 #line 400 "util/configlexer.lex" 5092 { YDVAR(1, VAR_KEY_CACHE_SLABS) } 5093 YY_BREAK 5094 case 187: 5095 YY_RULE_SETUP 5096 #line 401 "util/configlexer.lex" 5097 { YDVAR(1, VAR_NEG_CACHE_SIZE) } 5098 YY_BREAK 5099 case 188: 5100 YY_RULE_SETUP 5101 #line 402 "util/configlexer.lex" 5102 { 5103 YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } 5104 YY_BREAK 5105 case 189: 5106 YY_RULE_SETUP 5107 #line 404 "util/configlexer.lex" 5108 { YDVAR(1, VAR_ADD_HOLDDOWN) } 5109 YY_BREAK 5110 case 190: 5111 YY_RULE_SETUP 5112 #line 405 "util/configlexer.lex" 5113 { YDVAR(1, VAR_DEL_HOLDDOWN) } 5114 YY_BREAK 5115 case 191: 5116 YY_RULE_SETUP 5117 #line 406 "util/configlexer.lex" 5118 { YDVAR(1, VAR_KEEP_MISSING) } 5119 YY_BREAK 5120 case 192: 5121 YY_RULE_SETUP 5122 #line 407 "util/configlexer.lex" 5123 { YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } 5124 YY_BREAK 5125 case 193: 5126 YY_RULE_SETUP 5127 #line 408 "util/configlexer.lex" 5128 { YDVAR(1, VAR_USE_SYSLOG) } 5129 YY_BREAK 5130 case 194: 5131 YY_RULE_SETUP 5132 #line 409 "util/configlexer.lex" 5133 { YDVAR(1, VAR_LOG_IDENTITY) } 5134 YY_BREAK 5135 case 195: 5136 YY_RULE_SETUP 5137 #line 410 "util/configlexer.lex" 5138 { YDVAR(1, VAR_LOG_TIME_ASCII) } 5139 YY_BREAK 5140 case 196: 5141 YY_RULE_SETUP 5142 #line 411 "util/configlexer.lex" 5143 { YDVAR(1, VAR_LOG_QUERIES) } 5144 YY_BREAK 5145 case 197: 5146 YY_RULE_SETUP 5147 #line 412 "util/configlexer.lex" 5148 { YDVAR(1, VAR_LOG_REPLIES) } 5149 YY_BREAK 5150 case 198: 5151 YY_RULE_SETUP 5152 #line 413 "util/configlexer.lex" 5153 { YDVAR(1, VAR_LOG_TAG_QUERYREPLY) } 5154 YY_BREAK 5155 case 199: 5156 YY_RULE_SETUP 5157 #line 414 "util/configlexer.lex" 5158 { YDVAR(1, VAR_LOG_LOCAL_ACTIONS) } 5159 YY_BREAK 5160 case 200: 5161 YY_RULE_SETUP 5162 #line 415 "util/configlexer.lex" 5163 { YDVAR(1, VAR_LOG_SERVFAIL) } 5164 YY_BREAK 5165 case 201: 5166 YY_RULE_SETUP 5167 #line 416 "util/configlexer.lex" 5168 { YDVAR(2, VAR_LOCAL_ZONE) } 5169 YY_BREAK 5170 case 202: 5171 YY_RULE_SETUP 5172 #line 417 "util/configlexer.lex" 5173 { YDVAR(1, VAR_LOCAL_DATA) } 5174 YY_BREAK 5175 case 203: 5176 YY_RULE_SETUP 5177 #line 418 "util/configlexer.lex" 5178 { YDVAR(1, VAR_LOCAL_DATA_PTR) } 5179 YY_BREAK 5180 case 204: 5181 YY_RULE_SETUP 5182 #line 419 "util/configlexer.lex" 5183 { YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } 5184 YY_BREAK 5185 case 205: 5186 YY_RULE_SETUP 5187 #line 420 "util/configlexer.lex" 5188 { YDVAR(1, VAR_INSECURE_LAN_ZONES) } 5189 YY_BREAK 5190 case 206: 5191 YY_RULE_SETUP 5192 #line 421 "util/configlexer.lex" 5193 { YDVAR(1, VAR_STATISTICS_INTERVAL) } 5194 YY_BREAK 5195 case 207: 5196 YY_RULE_SETUP 5197 #line 422 "util/configlexer.lex" 5198 { YDVAR(1, VAR_STATISTICS_CUMULATIVE) } 5199 YY_BREAK 5200 case 208: 5201 YY_RULE_SETUP 5202 #line 423 "util/configlexer.lex" 5203 { YDVAR(1, VAR_EXTENDED_STATISTICS) } 5204 YY_BREAK 5205 case 209: 5206 YY_RULE_SETUP 5207 #line 424 "util/configlexer.lex" 5208 { YDVAR(1, VAR_SHM_ENABLE) } 5209 YY_BREAK 5210 case 210: 5211 YY_RULE_SETUP 5212 #line 425 "util/configlexer.lex" 5213 { YDVAR(1, VAR_SHM_KEY) } 5214 YY_BREAK 5215 case 211: 5216 YY_RULE_SETUP 5217 #line 426 "util/configlexer.lex" 5218 { YDVAR(0, VAR_REMOTE_CONTROL) } 5219 YY_BREAK 5220 case 212: 5221 YY_RULE_SETUP 5222 #line 427 "util/configlexer.lex" 5223 { YDVAR(1, VAR_CONTROL_ENABLE) } 5224 YY_BREAK 5225 case 213: 5226 YY_RULE_SETUP 5227 #line 428 "util/configlexer.lex" 5228 { YDVAR(1, VAR_CONTROL_INTERFACE) } 5229 YY_BREAK 5230 case 214: 5231 YY_RULE_SETUP 5232 #line 429 "util/configlexer.lex" 5233 { YDVAR(1, VAR_CONTROL_PORT) } 5234 YY_BREAK 5235 case 215: 5236 YY_RULE_SETUP 5237 #line 430 "util/configlexer.lex" 5238 { YDVAR(1, VAR_CONTROL_USE_CERT) } 5239 YY_BREAK 5240 case 216: 5241 YY_RULE_SETUP 5242 #line 431 "util/configlexer.lex" 5243 { YDVAR(1, VAR_SERVER_KEY_FILE) } 5244 YY_BREAK 5245 case 217: 5246 YY_RULE_SETUP 5247 #line 432 "util/configlexer.lex" 5248 { YDVAR(1, VAR_SERVER_CERT_FILE) } 5249 YY_BREAK 5250 case 218: 5251 YY_RULE_SETUP 5252 #line 433 "util/configlexer.lex" 5253 { YDVAR(1, VAR_CONTROL_KEY_FILE) } 5254 YY_BREAK 5255 case 219: 5256 YY_RULE_SETUP 5257 #line 434 "util/configlexer.lex" 5258 { YDVAR(1, VAR_CONTROL_CERT_FILE) } 5259 YY_BREAK 5260 case 220: 5261 YY_RULE_SETUP 5262 #line 435 "util/configlexer.lex" 5263 { YDVAR(1, VAR_PYTHON_SCRIPT) } 5264 YY_BREAK 5265 case 221: 5266 YY_RULE_SETUP 5267 #line 436 "util/configlexer.lex" 5268 { YDVAR(0, VAR_PYTHON) } 5269 YY_BREAK 5270 case 222: 5271 YY_RULE_SETUP 5272 #line 437 "util/configlexer.lex" 5273 { YDVAR(1, VAR_DYNLIB_FILE) } 5274 YY_BREAK 5275 case 223: 5276 YY_RULE_SETUP 5277 #line 438 "util/configlexer.lex" 5278 { YDVAR(0, VAR_DYNLIB) } 5279 YY_BREAK 5280 case 224: 5281 YY_RULE_SETUP 5282 #line 439 "util/configlexer.lex" 5283 { YDVAR(1, VAR_DOMAIN_INSECURE) } 5284 YY_BREAK 5285 case 225: 5286 YY_RULE_SETUP 5287 #line 440 "util/configlexer.lex" 5288 { YDVAR(1, VAR_MINIMAL_RESPONSES) } 5289 YY_BREAK 5290 case 226: 5291 YY_RULE_SETUP 5292 #line 441 "util/configlexer.lex" 5293 { YDVAR(1, VAR_RRSET_ROUNDROBIN) } 5294 YY_BREAK 5295 case 227: 5296 YY_RULE_SETUP 5297 #line 442 "util/configlexer.lex" 5298 { YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) } 5299 YY_BREAK 5300 case 228: 5301 YY_RULE_SETUP 5302 #line 443 "util/configlexer.lex" 5303 { YDVAR(1, VAR_MAX_UDP_SIZE) } 5304 YY_BREAK 5305 case 229: 5306 YY_RULE_SETUP 5307 #line 444 "util/configlexer.lex" 5308 { YDVAR(1, VAR_DNS64_PREFIX) } 5309 YY_BREAK 5310 case 230: 5311 YY_RULE_SETUP 5312 #line 445 "util/configlexer.lex" 5313 { YDVAR(1, VAR_DNS64_SYNTHALL) } 5314 YY_BREAK 5315 case 231: 5316 YY_RULE_SETUP 5317 #line 446 "util/configlexer.lex" 5318 { YDVAR(1, VAR_DNS64_IGNORE_AAAA) } 5319 YY_BREAK 5320 case 232: 5321 YY_RULE_SETUP 5322 #line 447 "util/configlexer.lex" 5323 { YDVAR(1, VAR_DEFINE_TAG) } 5324 YY_BREAK 5325 case 233: 5326 YY_RULE_SETUP 5327 #line 448 "util/configlexer.lex" 5328 { YDVAR(2, VAR_LOCAL_ZONE_TAG) } 5329 YY_BREAK 5330 case 234: 5331 YY_RULE_SETUP 5332 #line 449 "util/configlexer.lex" 5333 { YDVAR(2, VAR_ACCESS_CONTROL_TAG) } 5334 YY_BREAK 5335 case 235: 5336 YY_RULE_SETUP 5337 #line 450 "util/configlexer.lex" 5338 { YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } 5339 YY_BREAK 5340 case 236: 5341 YY_RULE_SETUP 5342 #line 451 "util/configlexer.lex" 5343 { YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } 5344 YY_BREAK 5345 case 237: 5346 YY_RULE_SETUP 5347 #line 452 "util/configlexer.lex" 5348 { YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } 5349 YY_BREAK 5350 case 238: 5351 YY_RULE_SETUP 5352 #line 453 "util/configlexer.lex" 5353 { YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } 5354 YY_BREAK 5355 case 239: 5356 YY_RULE_SETUP 5357 #line 454 "util/configlexer.lex" 5358 { YDVAR(0, VAR_DNSTAP) } 5359 YY_BREAK 5360 case 240: 5361 YY_RULE_SETUP 5362 #line 455 "util/configlexer.lex" 5363 { YDVAR(1, VAR_DNSTAP_ENABLE) } 5364 YY_BREAK 5365 case 241: 5366 YY_RULE_SETUP 5367 #line 456 "util/configlexer.lex" 5368 { YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) } 5369 YY_BREAK 5370 case 242: 5371 YY_RULE_SETUP 5372 #line 457 "util/configlexer.lex" 5373 { YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } 5374 YY_BREAK 5375 case 243: 5376 YY_RULE_SETUP 5377 #line 458 "util/configlexer.lex" 5378 { YDVAR(1, VAR_DNSTAP_IP) } 5379 YY_BREAK 5380 case 244: 5381 YY_RULE_SETUP 5382 #line 459 "util/configlexer.lex" 5383 { YDVAR(1, VAR_DNSTAP_TLS) } 5384 YY_BREAK 5385 case 245: 5386 YY_RULE_SETUP 5387 #line 460 "util/configlexer.lex" 5388 { YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) } 5389 YY_BREAK 5390 case 246: 5391 YY_RULE_SETUP 5392 #line 461 "util/configlexer.lex" 5393 { YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) } 5394 YY_BREAK 5395 case 247: 5396 YY_RULE_SETUP 5397 #line 462 "util/configlexer.lex" 5398 { 5399 YDVAR(1, VAR_DNSTAP_TLS_CLIENT_KEY_FILE) } 5400 YY_BREAK 5401 case 248: 5402 YY_RULE_SETUP 5403 #line 464 "util/configlexer.lex" 5404 { 5405 YDVAR(1, VAR_DNSTAP_TLS_CLIENT_CERT_FILE) } 5406 YY_BREAK 5407 case 249: 5408 YY_RULE_SETUP 5409 #line 466 "util/configlexer.lex" 5410 { YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } 5411 YY_BREAK 5412 case 250: 5413 YY_RULE_SETUP 5414 #line 467 "util/configlexer.lex" 5415 { YDVAR(1, VAR_DNSTAP_SEND_VERSION) } 5416 YY_BREAK 5417 case 251: 5418 YY_RULE_SETUP 5419 #line 468 "util/configlexer.lex" 5420 { YDVAR(1, VAR_DNSTAP_IDENTITY) } 5421 YY_BREAK 5422 case 252: 5423 YY_RULE_SETUP 5424 #line 469 "util/configlexer.lex" 5425 { YDVAR(1, VAR_DNSTAP_VERSION) } 5426 YY_BREAK 5427 case 253: 5428 YY_RULE_SETUP 5429 #line 470 "util/configlexer.lex" 5430 { 5431 YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } 5432 YY_BREAK 5433 case 254: 5434 YY_RULE_SETUP 5435 #line 472 "util/configlexer.lex" 5436 { 5437 YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } 5438 YY_BREAK 5439 case 255: 5440 YY_RULE_SETUP 5441 #line 474 "util/configlexer.lex" 5442 { 5443 YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } 5444 YY_BREAK 5445 case 256: 5446 YY_RULE_SETUP 5447 #line 476 "util/configlexer.lex" 5448 { 5449 YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } 5450 YY_BREAK 5451 case 257: 5452 YY_RULE_SETUP 5453 #line 478 "util/configlexer.lex" 5454 { 5455 YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } 5456 YY_BREAK 5457 case 258: 5458 YY_RULE_SETUP 5459 #line 480 "util/configlexer.lex" 5460 { 5461 YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } 5462 YY_BREAK 5463 case 259: 5464 YY_RULE_SETUP 5465 #line 482 "util/configlexer.lex" 5466 { YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } 5467 YY_BREAK 5468 case 260: 5469 YY_RULE_SETUP 5470 #line 483 "util/configlexer.lex" 5471 { YDVAR(1, VAR_IP_RATELIMIT) } 5472 YY_BREAK 5473 case 261: 5474 YY_RULE_SETUP 5475 #line 484 "util/configlexer.lex" 5476 { YDVAR(1, VAR_RATELIMIT) } 5477 YY_BREAK 5478 case 262: 5479 YY_RULE_SETUP 5480 #line 485 "util/configlexer.lex" 5481 { YDVAR(1, VAR_IP_RATELIMIT_SLABS) } 5482 YY_BREAK 5483 case 263: 5484 YY_RULE_SETUP 5485 #line 486 "util/configlexer.lex" 5486 { YDVAR(1, VAR_RATELIMIT_SLABS) } 5487 YY_BREAK 5488 case 264: 5489 YY_RULE_SETUP 5490 #line 487 "util/configlexer.lex" 5491 { YDVAR(1, VAR_IP_RATELIMIT_SIZE) } 5492 YY_BREAK 5493 case 265: 5494 YY_RULE_SETUP 5495 #line 488 "util/configlexer.lex" 5496 { YDVAR(1, VAR_RATELIMIT_SIZE) } 5497 YY_BREAK 5498 case 266: 5499 YY_RULE_SETUP 5500 #line 489 "util/configlexer.lex" 5501 { YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } 5502 YY_BREAK 5503 case 267: 5504 YY_RULE_SETUP 5505 #line 490 "util/configlexer.lex" 5506 { YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } 5507 YY_BREAK 5508 case 268: 5509 YY_RULE_SETUP 5510 #line 491 "util/configlexer.lex" 5511 { YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } 5512 YY_BREAK 5513 case 269: 5514 YY_RULE_SETUP 5515 #line 492 "util/configlexer.lex" 5516 { YDVAR(1, VAR_RATELIMIT_FACTOR) } 5517 YY_BREAK 5518 case 270: 5519 YY_RULE_SETUP 5520 #line 493 "util/configlexer.lex" 5521 { YDVAR(1, VAR_LOW_RTT) } 5522 YY_BREAK 5523 case 271: 5524 YY_RULE_SETUP 5525 #line 494 "util/configlexer.lex" 5526 { YDVAR(1, VAR_FAST_SERVER_NUM) } 5527 YY_BREAK 5528 case 272: 5529 YY_RULE_SETUP 5530 #line 495 "util/configlexer.lex" 5531 { YDVAR(1, VAR_FAST_SERVER_PERMIL) } 5532 YY_BREAK 5533 case 273: 5534 YY_RULE_SETUP 5535 #line 496 "util/configlexer.lex" 5536 { YDVAR(1, VAR_FAST_SERVER_PERMIL) } 5537 YY_BREAK 5538 case 274: 5539 YY_RULE_SETUP 5540 #line 497 "util/configlexer.lex" 5541 { YDVAR(1, VAR_FAST_SERVER_PERMIL) } 5542 YY_BREAK 5543 case 275: 5544 YY_RULE_SETUP 5545 #line 498 "util/configlexer.lex" 5546 { YDVAR(2, VAR_RESPONSE_IP_TAG) } 5547 YY_BREAK 5548 case 276: 5549 YY_RULE_SETUP 5550 #line 499 "util/configlexer.lex" 5551 { YDVAR(2, VAR_RESPONSE_IP) } 5552 YY_BREAK 5553 case 277: 5554 YY_RULE_SETUP 5555 #line 500 "util/configlexer.lex" 5556 { YDVAR(2, VAR_RESPONSE_IP_DATA) } 5557 YY_BREAK 5558 case 278: 5559 YY_RULE_SETUP 5560 #line 501 "util/configlexer.lex" 5561 { YDVAR(0, VAR_DNSCRYPT) } 5562 YY_BREAK 5563 case 279: 5564 YY_RULE_SETUP 5565 #line 502 "util/configlexer.lex" 5566 { YDVAR(1, VAR_DNSCRYPT_ENABLE) } 5567 YY_BREAK 5568 case 280: 5569 YY_RULE_SETUP 5570 #line 503 "util/configlexer.lex" 5571 { YDVAR(1, VAR_DNSCRYPT_PORT) } 5572 YY_BREAK 5573 case 281: 5574 YY_RULE_SETUP 5575 #line 504 "util/configlexer.lex" 5576 { YDVAR(1, VAR_DNSCRYPT_PROVIDER) } 5577 YY_BREAK 5578 case 282: 5579 YY_RULE_SETUP 5580 #line 505 "util/configlexer.lex" 5581 { YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } 5582 YY_BREAK 5583 case 283: 5584 YY_RULE_SETUP 5585 #line 506 "util/configlexer.lex" 5586 { YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } 5587 YY_BREAK 5588 case 284: 5589 YY_RULE_SETUP 5590 #line 507 "util/configlexer.lex" 5591 { YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } 5592 YY_BREAK 5593 case 285: 5594 YY_RULE_SETUP 5595 #line 508 "util/configlexer.lex" 5596 { 5597 YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } 5598 YY_BREAK 5599 case 286: 5600 YY_RULE_SETUP 5601 #line 510 "util/configlexer.lex" 5602 { 5603 YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } 5604 YY_BREAK 5605 case 287: 5606 YY_RULE_SETUP 5607 #line 512 "util/configlexer.lex" 5608 { YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } 5609 YY_BREAK 5610 case 288: 5611 YY_RULE_SETUP 5612 #line 513 "util/configlexer.lex" 5613 { YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } 5614 YY_BREAK 5615 case 289: 5616 YY_RULE_SETUP 5617 #line 514 "util/configlexer.lex" 5618 { YDVAR(1, VAR_PAD_RESPONSES) } 5619 YY_BREAK 5620 case 290: 5621 YY_RULE_SETUP 5622 #line 515 "util/configlexer.lex" 5623 { YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) } 5624 YY_BREAK 5625 case 291: 5626 YY_RULE_SETUP 5627 #line 516 "util/configlexer.lex" 5628 { YDVAR(1, VAR_PAD_QUERIES) } 5629 YY_BREAK 5630 case 292: 5631 YY_RULE_SETUP 5632 #line 517 "util/configlexer.lex" 5633 { YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) } 5634 YY_BREAK 5635 case 293: 5636 YY_RULE_SETUP 5637 #line 518 "util/configlexer.lex" 5638 { YDVAR(1, VAR_IPSECMOD_ENABLED) } 5639 YY_BREAK 5640 case 294: 5641 YY_RULE_SETUP 5642 #line 519 "util/configlexer.lex" 5643 { YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } 5644 YY_BREAK 5645 case 295: 5646 YY_RULE_SETUP 5647 #line 520 "util/configlexer.lex" 5648 { YDVAR(1, VAR_IPSECMOD_HOOK) } 5649 YY_BREAK 5650 case 296: 5651 YY_RULE_SETUP 5652 #line 521 "util/configlexer.lex" 5653 { YDVAR(1, VAR_IPSECMOD_MAX_TTL) } 5654 YY_BREAK 5655 case 297: 5656 YY_RULE_SETUP 5657 #line 522 "util/configlexer.lex" 5658 { YDVAR(1, VAR_IPSECMOD_WHITELIST) } 5659 YY_BREAK 5660 case 298: 5661 YY_RULE_SETUP 5662 #line 523 "util/configlexer.lex" 5663 { YDVAR(1, VAR_IPSECMOD_WHITELIST) } 5664 YY_BREAK 5665 case 299: 5666 YY_RULE_SETUP 5667 #line 524 "util/configlexer.lex" 5668 { YDVAR(1, VAR_IPSECMOD_STRICT) } 5669 YY_BREAK 5670 case 300: 5671 YY_RULE_SETUP 5672 #line 525 "util/configlexer.lex" 5673 { YDVAR(0, VAR_CACHEDB) } 5674 YY_BREAK 5675 case 301: 5676 YY_RULE_SETUP 5677 #line 526 "util/configlexer.lex" 5678 { YDVAR(1, VAR_CACHEDB_BACKEND) } 5679 YY_BREAK 5680 case 302: 5681 YY_RULE_SETUP 5682 #line 527 "util/configlexer.lex" 5683 { YDVAR(1, VAR_CACHEDB_SECRETSEED) } 5684 YY_BREAK 5685 case 303: 5686 YY_RULE_SETUP 5687 #line 528 "util/configlexer.lex" 5688 { YDVAR(1, VAR_CACHEDB_REDISHOST) } 5689 YY_BREAK 5690 case 304: 5691 YY_RULE_SETUP 5692 #line 529 "util/configlexer.lex" 5693 { YDVAR(1, VAR_CACHEDB_REDISPORT) } 5694 YY_BREAK 5695 case 305: 5696 YY_RULE_SETUP 5697 #line 530 "util/configlexer.lex" 5698 { YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } 5699 YY_BREAK 5700 case 306: 5701 YY_RULE_SETUP 5702 #line 531 "util/configlexer.lex" 5703 { YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) } 5704 YY_BREAK 5705 case 307: 5706 YY_RULE_SETUP 5707 #line 532 "util/configlexer.lex" 5708 { YDVAR(0, VAR_IPSET) } 5709 YY_BREAK 5710 case 308: 5711 YY_RULE_SETUP 5712 #line 533 "util/configlexer.lex" 5713 { YDVAR(1, VAR_IPSET_NAME_V4) } 5714 YY_BREAK 5715 case 309: 5716 YY_RULE_SETUP 5717 #line 534 "util/configlexer.lex" 5718 { YDVAR(1, VAR_IPSET_NAME_V6) } 5719 YY_BREAK 5720 case 310: 5721 YY_RULE_SETUP 5722 #line 535 "util/configlexer.lex" 5723 { YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } 5724 YY_BREAK 5725 case 311: 5726 YY_RULE_SETUP 5727 #line 536 "util/configlexer.lex" 5728 { YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } 5729 YY_BREAK 5730 case 312: 5731 YY_RULE_SETUP 5732 #line 537 "util/configlexer.lex" 5733 { YDVAR(2, VAR_EDNS_CLIENT_STRING) } 5734 YY_BREAK 5735 case 313: 5736 YY_RULE_SETUP 5737 #line 538 "util/configlexer.lex" 5738 { YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) } 5739 YY_BREAK 5740 case 314: 5741 YY_RULE_SETUP 5742 #line 539 "util/configlexer.lex" 5743 { YDVAR(1, VAR_NSID ) } 5744 YY_BREAK 5745 case 315: 5746 /* rule 315 can match eol */ 5747 YY_RULE_SETUP 5748 #line 540 "util/configlexer.lex" 5749 { LEXOUT(("NL\n")); cfg_parser->line++; } 5750 YY_BREAK 5751 /* Quoted strings. Strip leading and ending quotes */ 5752 case 316: 5753 YY_RULE_SETUP 5754 #line 543 "util/configlexer.lex" 5755 { BEGIN(quotedstring); LEXOUT(("QS ")); } 5756 YY_BREAK 5757 case YY_STATE_EOF(quotedstring): 5758 #line 544 "util/configlexer.lex" 5759 { 5760 yyerror("EOF inside quoted string"); 5761 if(--num_args == 0) { BEGIN(INITIAL); } 5762 else { BEGIN(val); } 5763 } 5764 YY_BREAK 5765 case 317: 5766 YY_RULE_SETUP 5767 #line 549 "util/configlexer.lex" 5768 { LEXOUT(("STR(%s) ", yytext)); yymore(); } 5769 YY_BREAK 5770 case 318: 5771 /* rule 318 can match eol */ 5772 YY_RULE_SETUP 5773 #line 550 "util/configlexer.lex" 5774 { yyerror("newline inside quoted string, no end \""); 5775 cfg_parser->line++; BEGIN(INITIAL); } 5776 YY_BREAK 5777 case 319: 5778 YY_RULE_SETUP 5779 #line 552 "util/configlexer.lex" 5780 { 5781 LEXOUT(("QE ")); 5782 if(--num_args == 0) { BEGIN(INITIAL); } 5783 else { BEGIN(val); } 5784 yytext[yyleng - 1] = '\0'; 5785 yylval.str = strdup(yytext); 5786 if(!yylval.str) 5787 yyerror("out of memory"); 5788 return STRING_ARG; 5789 } 5790 YY_BREAK 5791 /* Single Quoted strings. Strip leading and ending quotes */ 5792 case 320: 5793 YY_RULE_SETUP 5794 #line 564 "util/configlexer.lex" 5795 { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } 5796 YY_BREAK 5797 case YY_STATE_EOF(singlequotedstr): 5798 #line 565 "util/configlexer.lex" 5799 { 5800 yyerror("EOF inside quoted string"); 5801 if(--num_args == 0) { BEGIN(INITIAL); } 5802 else { BEGIN(val); } 5803 } 5804 YY_BREAK 5805 case 321: 5806 YY_RULE_SETUP 5807 #line 570 "util/configlexer.lex" 5808 { LEXOUT(("STR(%s) ", yytext)); yymore(); } 5809 YY_BREAK 5810 case 322: 5811 /* rule 322 can match eol */ 5812 YY_RULE_SETUP 5813 #line 571 "util/configlexer.lex" 5814 { yyerror("newline inside quoted string, no end '"); 5815 cfg_parser->line++; BEGIN(INITIAL); } 5816 YY_BREAK 5817 case 323: 5818 YY_RULE_SETUP 5819 #line 573 "util/configlexer.lex" 5820 { 5821 LEXOUT(("SQE ")); 5822 if(--num_args == 0) { BEGIN(INITIAL); } 5823 else { BEGIN(val); } 5824 yytext[yyleng - 1] = '\0'; 5825 yylval.str = strdup(yytext); 5826 if(!yylval.str) 5827 yyerror("out of memory"); 5828 return STRING_ARG; 5829 } 5830 YY_BREAK 5831 /* include: directive */ 5832 case 324: 5833 YY_RULE_SETUP 5834 #line 585 "util/configlexer.lex" 5835 { 5836 LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } 5837 YY_BREAK 5838 case YY_STATE_EOF(include): 5839 #line 587 "util/configlexer.lex" 5840 { 5841 yyerror("EOF inside include directive"); 5842 BEGIN(inc_prev); 5843 } 5844 YY_BREAK 5845 case 325: 5846 YY_RULE_SETUP 5847 #line 591 "util/configlexer.lex" 5848 { LEXOUT(("ISP ")); /* ignore */ } 5849 YY_BREAK 5850 case 326: 5851 /* rule 326 can match eol */ 5852 YY_RULE_SETUP 5853 #line 592 "util/configlexer.lex" 5854 { LEXOUT(("NL\n")); cfg_parser->line++;} 5855 YY_BREAK 5856 case 327: 5857 YY_RULE_SETUP 5858 #line 593 "util/configlexer.lex" 5859 { LEXOUT(("IQS ")); BEGIN(include_quoted); } 5860 YY_BREAK 5861 case 328: 5862 YY_RULE_SETUP 5863 #line 594 "util/configlexer.lex" 5864 { 5865 LEXOUT(("Iunquotedstr(%s) ", yytext)); 5866 config_start_include_glob(yytext, 0); 5867 BEGIN(inc_prev); 5868 } 5869 YY_BREAK 5870 case YY_STATE_EOF(include_quoted): 5871 #line 599 "util/configlexer.lex" 5872 { 5873 yyerror("EOF inside quoted string"); 5874 BEGIN(inc_prev); 5875 } 5876 YY_BREAK 5877 case 329: 5878 YY_RULE_SETUP 5879 #line 603 "util/configlexer.lex" 5880 { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } 5881 YY_BREAK 5882 case 330: 5883 /* rule 330 can match eol */ 5884 YY_RULE_SETUP 5885 #line 604 "util/configlexer.lex" 5886 { yyerror("newline before \" in include name"); 5887 cfg_parser->line++; BEGIN(inc_prev); } 5888 YY_BREAK 5889 case 331: 5890 YY_RULE_SETUP 5891 #line 606 "util/configlexer.lex" 5892 { 5893 LEXOUT(("IQE ")); 5894 yytext[yyleng - 1] = '\0'; 5895 config_start_include_glob(yytext, 0); 5896 BEGIN(inc_prev); 5897 } 5898 YY_BREAK 5899 case YY_STATE_EOF(INITIAL): 5900 case YY_STATE_EOF(val): 5901 #line 612 "util/configlexer.lex" 5902 { 5903 LEXOUT(("LEXEOF ")); 5904 yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ 5905 if (!config_include_stack) { 5906 yyterminate(); 5907 } else { 5908 int prev_toplevel = inc_toplevel; 5909 fclose(yyin); 5910 config_end_include(); 5911 if(prev_toplevel) return (VAR_FORCE_TOPLEVEL); 5912 } 5913 } 5914 YY_BREAK 5915 /* include-toplevel: directive */ 5916 case 332: 5917 YY_RULE_SETUP 5918 #line 626 "util/configlexer.lex" 5919 { 5920 LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include_toplevel); 5921 } 5922 YY_BREAK 5923 case YY_STATE_EOF(include_toplevel): 5924 #line 629 "util/configlexer.lex" 5925 { 5926 yyerror("EOF inside include_toplevel directive"); 5927 BEGIN(inc_prev); 5928 } 5929 YY_BREAK 5930 case 333: 5931 YY_RULE_SETUP 5932 #line 633 "util/configlexer.lex" 5933 { LEXOUT(("ITSP ")); /* ignore */ } 5934 YY_BREAK 5935 case 334: 5936 /* rule 334 can match eol */ 5937 YY_RULE_SETUP 5938 #line 634 "util/configlexer.lex" 5939 { LEXOUT(("NL\n")); cfg_parser->line++; } 5940 YY_BREAK 5941 case 335: 5942 YY_RULE_SETUP 5943 #line 635 "util/configlexer.lex" 5944 { LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); } 5945 YY_BREAK 5946 case 336: 5947 YY_RULE_SETUP 5948 #line 636 "util/configlexer.lex" 5949 { 5950 LEXOUT(("ITunquotedstr(%s) ", yytext)); 5951 config_start_include_glob(yytext, 1); 5952 BEGIN(inc_prev); 5953 return (VAR_FORCE_TOPLEVEL); 5954 } 5955 YY_BREAK 5956 case YY_STATE_EOF(include_toplevel_quoted): 5957 #line 642 "util/configlexer.lex" 5958 { 5959 yyerror("EOF inside quoted string"); 5960 BEGIN(inc_prev); 5961 } 5962 YY_BREAK 5963 case 337: 5964 YY_RULE_SETUP 5965 #line 646 "util/configlexer.lex" 5966 { LEXOUT(("ITSTR(%s) ", yytext)); yymore(); } 5967 YY_BREAK 5968 case 338: 5969 /* rule 338 can match eol */ 5970 YY_RULE_SETUP 5971 #line 647 "util/configlexer.lex" 5972 { 5973 yyerror("newline before \" in include name"); 5974 cfg_parser->line++; BEGIN(inc_prev); 5975 } 5976 YY_BREAK 5977 case 339: 5978 YY_RULE_SETUP 5979 #line 651 "util/configlexer.lex" 5980 { 5981 LEXOUT(("ITQE ")); 5982 yytext[yyleng - 1] = '\0'; 5983 config_start_include_glob(yytext, 1); 5984 BEGIN(inc_prev); 5985 return (VAR_FORCE_TOPLEVEL); 5986 } 5987 YY_BREAK 5988 case 340: 5989 YY_RULE_SETUP 5990 #line 659 "util/configlexer.lex" 5991 { LEXOUT(("unquotedstr(%s) ", yytext)); 5992 if(--num_args == 0) { BEGIN(INITIAL); } 5993 yylval.str = strdup(yytext); return STRING_ARG; } 5994 YY_BREAK 5995 case 341: 5996 YY_RULE_SETUP 5997 #line 663 "util/configlexer.lex" 5998 { 5999 ub_c_error_msg("unknown keyword '%s'", yytext); 6000 } 6001 YY_BREAK 6002 case 342: 6003 YY_RULE_SETUP 6004 #line 667 "util/configlexer.lex" 6005 { 6006 ub_c_error_msg("stray '%s'", yytext); 6007 } 6008 YY_BREAK 6009 case 343: 6010 YY_RULE_SETUP 6011 #line 671 "util/configlexer.lex" 6012 ECHO; 6013 YY_BREAK 6014 #line 6012 "<stdout>" 6015 6016 case YY_END_OF_BUFFER: 6017 { 6018 /* Amount of text matched not including the EOB char. */ 6019 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; 6020 6021 /* Undo the effects of YY_DO_BEFORE_ACTION. */ 6022 *yy_cp = (yy_hold_char); 6023 YY_RESTORE_YY_MORE_OFFSET 6024 6025 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) 6026 { 6027 /* We're scanning a new file or input source. It's 6028 * possible that this happened because the user 6029 * just pointed yyin at a new source and called 6030 * yylex(). If so, then we have to assure 6031 * consistency between YY_CURRENT_BUFFER and our 6032 * globals. Here is the right place to do so, because 6033 * this is the first action (other than possibly a 6034 * back-up) that will match for the new input source. 6035 */ 6036 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 6037 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; 6038 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; 6039 } 6040 6041 /* Note that here we test for yy_c_buf_p "<=" to the position 6042 * of the first EOB in the buffer, since yy_c_buf_p will 6043 * already have been incremented past the NUL character 6044 * (since all states make transitions on EOB to the 6045 * end-of-buffer state). Contrast this with the test 6046 * in input(). 6047 */ 6048 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) 6049 { /* This was really a NUL. */ 6050 yy_state_type yy_next_state; 6051 6052 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; 6053 6054 yy_current_state = yy_get_previous_state( ); 6055 6056 /* Okay, we're now positioned to make the NUL 6057 * transition. We couldn't have 6058 * yy_get_previous_state() go ahead and do it 6059 * for us because it doesn't know how to deal 6060 * with the possibility of jamming (and we don't 6061 * want to build jamming into it because then it 6062 * will run more slowly). 6063 */ 6064 6065 yy_next_state = yy_try_NUL_trans( yy_current_state ); 6066 6067 yy_bp = (yytext_ptr) + YY_MORE_ADJ; 6068 6069 if ( yy_next_state ) 6070 { 6071 /* Consume the NUL. */ 6072 yy_cp = ++(yy_c_buf_p); 6073 yy_current_state = yy_next_state; 6074 goto yy_match; 6075 } 6076 6077 else 6078 { 6079 yy_cp = (yy_c_buf_p); 6080 goto yy_find_action; 6081 } 6082 } 6083 6084 else switch ( yy_get_next_buffer( ) ) 6085 { 6086 case EOB_ACT_END_OF_FILE: 6087 { 6088 (yy_did_buffer_switch_on_eof) = 0; 6089 6090 if ( yywrap( ) ) 6091 { 6092 /* Note: because we've taken care in 6093 * yy_get_next_buffer() to have set up 6094 * yytext, we can now set up 6095 * yy_c_buf_p so that if some total 6096 * hoser (like flex itself) wants to 6097 * call the scanner after we return the 6098 * YY_NULL, it'll still work - another 6099 * YY_NULL will get returned. 6100 */ 6101 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; 6102 6103 yy_act = YY_STATE_EOF(YY_START); 6104 goto do_action; 6105 } 6106 6107 else 6108 { 6109 if ( ! (yy_did_buffer_switch_on_eof) ) 6110 YY_NEW_FILE; 6111 } 6112 break; 6113 } 6114 6115 case EOB_ACT_CONTINUE_SCAN: 6116 (yy_c_buf_p) = 6117 (yytext_ptr) + yy_amount_of_matched_text; 6118 6119 yy_current_state = yy_get_previous_state( ); 6120 6121 yy_cp = (yy_c_buf_p); 6122 yy_bp = (yytext_ptr) + YY_MORE_ADJ; 6123 goto yy_match; 6124 6125 case EOB_ACT_LAST_MATCH: 6126 (yy_c_buf_p) = 6127 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; 6128 6129 yy_current_state = yy_get_previous_state( ); 6130 6131 yy_cp = (yy_c_buf_p); 6132 yy_bp = (yytext_ptr) + YY_MORE_ADJ; 6133 goto yy_find_action; 6134 } 6135 break; 6136 } 6137 6138 default: 6139 YY_FATAL_ERROR( 6140 "fatal flex scanner internal error--no action found" ); 6141 } /* end of action switch */ 6142 } /* end of scanning one token */ 6143 } /* end of user's declarations */ 6144 } /* end of yylex */ 6145 6146 /* yy_get_next_buffer - try to read in a new buffer 6147 * 6148 * Returns a code representing an action: 6149 * EOB_ACT_LAST_MATCH - 6150 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position 6151 * EOB_ACT_END_OF_FILE - end of file 6152 */ 6153 static int yy_get_next_buffer (void) 6154 { 6155 char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; 6156 char *source = (yytext_ptr); 6157 int number_to_move, i; 6158 int ret_val; 6159 6160 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) 6161 YY_FATAL_ERROR( 6162 "fatal flex scanner internal error--end of buffer missed" ); 6163 6164 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) 6165 { /* Don't try to fill the buffer, so this is an EOF. */ 6166 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) 6167 { 6168 /* We matched a single character, the EOB, so 6169 * treat this as a final EOF. 6170 */ 6171 return EOB_ACT_END_OF_FILE; 6172 } 6173 6174 else 6175 { 6176 /* We matched some text prior to the EOB, first 6177 * process it. 6178 */ 6179 return EOB_ACT_LAST_MATCH; 6180 } 6181 } 6182 6183 /* Try to read more data. */ 6184 6185 /* First move last chars to start of buffer. */ 6186 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); 6187 6188 for ( i = 0; i < number_to_move; ++i ) 6189 *(dest++) = *(source++); 6190 6191 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) 6192 /* don't do the read, it's not guaranteed to return an EOF, 6193 * just force an EOF 6194 */ 6195 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; 6196 6197 else 6198 { 6199 int num_to_read = 6200 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; 6201 6202 while ( num_to_read <= 0 ) 6203 { /* Not enough room in the buffer - grow it. */ 6204 6205 /* just a shorter name for the current buffer */ 6206 YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; 6207 6208 int yy_c_buf_p_offset = 6209 (int) ((yy_c_buf_p) - b->yy_ch_buf); 6210 6211 if ( b->yy_is_our_buffer ) 6212 { 6213 int new_size = b->yy_buf_size * 2; 6214 6215 if ( new_size <= 0 ) 6216 b->yy_buf_size += b->yy_buf_size / 8; 6217 else 6218 b->yy_buf_size *= 2; 6219 6220 b->yy_ch_buf = (char *) 6221 /* Include room in for 2 EOB chars. */ 6222 yyrealloc( (void *) b->yy_ch_buf, 6223 (yy_size_t) (b->yy_buf_size + 2) ); 6224 } 6225 else 6226 /* Can't grow it, we don't own it. */ 6227 b->yy_ch_buf = NULL; 6228 6229 if ( ! b->yy_ch_buf ) 6230 YY_FATAL_ERROR( 6231 "fatal error - scanner input buffer overflow" ); 6232 6233 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; 6234 6235 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - 6236 number_to_move - 1; 6237 6238 } 6239 6240 if ( num_to_read > YY_READ_BUF_SIZE ) 6241 num_to_read = YY_READ_BUF_SIZE; 6242 6243 /* Read in more data. */ 6244 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), 6245 (yy_n_chars), num_to_read ); 6246 6247 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 6248 } 6249 6250 if ( (yy_n_chars) == 0 ) 6251 { 6252 if ( number_to_move == YY_MORE_ADJ ) 6253 { 6254 ret_val = EOB_ACT_END_OF_FILE; 6255 yyrestart( yyin ); 6256 } 6257 6258 else 6259 { 6260 ret_val = EOB_ACT_LAST_MATCH; 6261 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = 6262 YY_BUFFER_EOF_PENDING; 6263 } 6264 } 6265 6266 else 6267 ret_val = EOB_ACT_CONTINUE_SCAN; 6268 6269 if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { 6270 /* Extend the array by 50%, plus the number we really need. */ 6271 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); 6272 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( 6273 (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); 6274 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) 6275 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); 6276 /* "- 2" to take care of EOB's */ 6277 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); 6278 } 6279 6280 (yy_n_chars) += number_to_move; 6281 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; 6282 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; 6283 6284 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; 6285 6286 return ret_val; 6287 } 6288 6289 /* yy_get_previous_state - get the state just before the EOB char was reached */ 6290 6291 static yy_state_type yy_get_previous_state (void) 6292 { 6293 yy_state_type yy_current_state; 6294 char *yy_cp; 6295 6296 yy_current_state = (yy_start); 6297 6298 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) 6299 { 6300 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); 6301 if ( yy_accept[yy_current_state] ) 6302 { 6303 (yy_last_accepting_state) = yy_current_state; 6304 (yy_last_accepting_cpos) = yy_cp; 6305 } 6306 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 6307 { 6308 yy_current_state = (int) yy_def[yy_current_state]; 6309 if ( yy_current_state >= 3354 ) 6310 yy_c = yy_meta[yy_c]; 6311 } 6312 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; 6313 } 6314 6315 return yy_current_state; 6316 } 6317 6318 /* yy_try_NUL_trans - try to make a transition on the NUL character 6319 * 6320 * synopsis 6321 * next_state = yy_try_NUL_trans( current_state ); 6322 */ 6323 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) 6324 { 6325 int yy_is_jam; 6326 char *yy_cp = (yy_c_buf_p); 6327 6328 YY_CHAR yy_c = 1; 6329 if ( yy_accept[yy_current_state] ) 6330 { 6331 (yy_last_accepting_state) = yy_current_state; 6332 (yy_last_accepting_cpos) = yy_cp; 6333 } 6334 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 6335 { 6336 yy_current_state = (int) yy_def[yy_current_state]; 6337 if ( yy_current_state >= 3354 ) 6338 yy_c = yy_meta[yy_c]; 6339 } 6340 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; 6341 yy_is_jam = (yy_current_state == 3353); 6342 6343 return yy_is_jam ? 0 : yy_current_state; 6344 } 6345 6346 #ifndef YY_NO_UNPUT 6347 6348 #endif 6349 6350 #ifndef YY_NO_INPUT 6351 #ifdef __cplusplus 6352 static int yyinput (void) 6353 #else 6354 static int input (void) 6355 #endif 6356 6357 { 6358 int c; 6359 6360 *(yy_c_buf_p) = (yy_hold_char); 6361 6362 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) 6363 { 6364 /* yy_c_buf_p now points to the character we want to return. 6365 * If this occurs *before* the EOB characters, then it's a 6366 * valid NUL; if not, then we've hit the end of the buffer. 6367 */ 6368 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) 6369 /* This was really a NUL. */ 6370 *(yy_c_buf_p) = '\0'; 6371 6372 else 6373 { /* need more input */ 6374 int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); 6375 ++(yy_c_buf_p); 6376 6377 switch ( yy_get_next_buffer( ) ) 6378 { 6379 case EOB_ACT_LAST_MATCH: 6380 /* This happens because yy_g_n_b() 6381 * sees that we've accumulated a 6382 * token and flags that we need to 6383 * try matching the token before 6384 * proceeding. But for input(), 6385 * there's no matching to consider. 6386 * So convert the EOB_ACT_LAST_MATCH 6387 * to EOB_ACT_END_OF_FILE. 6388 */ 6389 6390 /* Reset buffer status. */ 6391 yyrestart( yyin ); 6392 6393 /*FALLTHROUGH*/ 6394 6395 case EOB_ACT_END_OF_FILE: 6396 { 6397 if ( yywrap( ) ) 6398 return 0; 6399 6400 if ( ! (yy_did_buffer_switch_on_eof) ) 6401 YY_NEW_FILE; 6402 #ifdef __cplusplus 6403 return yyinput(); 6404 #else 6405 return input(); 6406 #endif 6407 } 6408 6409 case EOB_ACT_CONTINUE_SCAN: 6410 (yy_c_buf_p) = (yytext_ptr) + offset; 6411 break; 6412 } 6413 } 6414 } 6415 6416 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ 6417 *(yy_c_buf_p) = '\0'; /* preserve yytext */ 6418 (yy_hold_char) = *++(yy_c_buf_p); 6419 6420 return c; 6421 } 6422 #endif /* ifndef YY_NO_INPUT */ 6423 6424 /** Immediately switch to a different input stream. 6425 * @param input_file A readable stream. 6426 * 6427 * @note This function does not reset the start condition to @c INITIAL . 6428 */ 6429 void yyrestart (FILE * input_file ) 6430 { 6431 6432 if ( ! YY_CURRENT_BUFFER ){ 6433 yyensure_buffer_stack (); 6434 YY_CURRENT_BUFFER_LVALUE = 6435 yy_create_buffer( yyin, YY_BUF_SIZE ); 6436 } 6437 6438 yy_init_buffer( YY_CURRENT_BUFFER, input_file ); 6439 yy_load_buffer_state( ); 6440 } 6441 6442 /** Switch to a different input buffer. 6443 * @param new_buffer The new input buffer. 6444 * 6445 */ 6446 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) 6447 { 6448 6449 /* TODO. We should be able to replace this entire function body 6450 * with 6451 * yypop_buffer_state(); 6452 * yypush_buffer_state(new_buffer); 6453 */ 6454 yyensure_buffer_stack (); 6455 if ( YY_CURRENT_BUFFER == new_buffer ) 6456 return; 6457 6458 if ( YY_CURRENT_BUFFER ) 6459 { 6460 /* Flush out information for old buffer. */ 6461 *(yy_c_buf_p) = (yy_hold_char); 6462 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); 6463 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 6464 } 6465 6466 YY_CURRENT_BUFFER_LVALUE = new_buffer; 6467 yy_load_buffer_state( ); 6468 6469 /* We don't actually know whether we did this switch during 6470 * EOF (yywrap()) processing, but the only time this flag 6471 * is looked at is after yywrap() is called, so it's safe 6472 * to go ahead and always set it. 6473 */ 6474 (yy_did_buffer_switch_on_eof) = 1; 6475 } 6476 6477 static void yy_load_buffer_state (void) 6478 { 6479 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 6480 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; 6481 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; 6482 (yy_hold_char) = *(yy_c_buf_p); 6483 } 6484 6485 /** Allocate and initialize an input buffer state. 6486 * @param file A readable stream. 6487 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. 6488 * 6489 * @return the allocated buffer state. 6490 */ 6491 YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) 6492 { 6493 YY_BUFFER_STATE b; 6494 6495 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); 6496 if ( ! b ) 6497 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); 6498 6499 b->yy_buf_size = size; 6500 6501 /* yy_ch_buf has to be 2 characters longer than the size given because 6502 * we need to put in 2 end-of-buffer characters. 6503 */ 6504 b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); 6505 if ( ! b->yy_ch_buf ) 6506 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); 6507 6508 b->yy_is_our_buffer = 1; 6509 6510 yy_init_buffer( b, file ); 6511 6512 return b; 6513 } 6514 6515 /** Destroy the buffer. 6516 * @param b a buffer created with yy_create_buffer() 6517 * 6518 */ 6519 void yy_delete_buffer (YY_BUFFER_STATE b ) 6520 { 6521 6522 if ( ! b ) 6523 return; 6524 6525 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ 6526 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; 6527 6528 if ( b->yy_is_our_buffer ) 6529 yyfree( (void *) b->yy_ch_buf ); 6530 6531 yyfree( (void *) b ); 6532 } 6533 6534 /* Initializes or reinitializes a buffer. 6535 * This function is sometimes called more than once on the same buffer, 6536 * such as during a yyrestart() or at EOF. 6537 */ 6538 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) 6539 6540 { 6541 int oerrno = errno; 6542 6543 yy_flush_buffer( b ); 6544 6545 b->yy_input_file = file; 6546 b->yy_fill_buffer = 1; 6547 6548 /* If b is the current buffer, then yy_init_buffer was _probably_ 6549 * called from yyrestart() or through yy_get_next_buffer. 6550 * In that case, we don't want to reset the lineno or column. 6551 */ 6552 if (b != YY_CURRENT_BUFFER){ 6553 b->yy_bs_lineno = 1; 6554 b->yy_bs_column = 0; 6555 } 6556 6557 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; 6558 6559 errno = oerrno; 6560 } 6561 6562 /** Discard all buffered characters. On the next scan, YY_INPUT will be called. 6563 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. 6564 * 6565 */ 6566 void yy_flush_buffer (YY_BUFFER_STATE b ) 6567 { 6568 if ( ! b ) 6569 return; 6570 6571 b->yy_n_chars = 0; 6572 6573 /* We always need two end-of-buffer characters. The first causes 6574 * a transition to the end-of-buffer state. The second causes 6575 * a jam in that state. 6576 */ 6577 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; 6578 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; 6579 6580 b->yy_buf_pos = &b->yy_ch_buf[0]; 6581 6582 b->yy_at_bol = 1; 6583 b->yy_buffer_status = YY_BUFFER_NEW; 6584 6585 if ( b == YY_CURRENT_BUFFER ) 6586 yy_load_buffer_state( ); 6587 } 6588 6589 /** Pushes the new state onto the stack. The new state becomes 6590 * the current state. This function will allocate the stack 6591 * if necessary. 6592 * @param new_buffer The new state. 6593 * 6594 */ 6595 void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) 6596 { 6597 if (new_buffer == NULL) 6598 return; 6599 6600 yyensure_buffer_stack(); 6601 6602 /* This block is copied from yy_switch_to_buffer. */ 6603 if ( YY_CURRENT_BUFFER ) 6604 { 6605 /* Flush out information for old buffer. */ 6606 *(yy_c_buf_p) = (yy_hold_char); 6607 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); 6608 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 6609 } 6610 6611 /* Only push if top exists. Otherwise, replace top. */ 6612 if (YY_CURRENT_BUFFER) 6613 (yy_buffer_stack_top)++; 6614 YY_CURRENT_BUFFER_LVALUE = new_buffer; 6615 6616 /* copied from yy_switch_to_buffer. */ 6617 yy_load_buffer_state( ); 6618 (yy_did_buffer_switch_on_eof) = 1; 6619 } 6620 6621 /** Removes and deletes the top of the stack, if present. 6622 * The next element becomes the new top. 6623 * 6624 */ 6625 void yypop_buffer_state (void) 6626 { 6627 if (!YY_CURRENT_BUFFER) 6628 return; 6629 6630 yy_delete_buffer(YY_CURRENT_BUFFER ); 6631 YY_CURRENT_BUFFER_LVALUE = NULL; 6632 if ((yy_buffer_stack_top) > 0) 6633 --(yy_buffer_stack_top); 6634 6635 if (YY_CURRENT_BUFFER) { 6636 yy_load_buffer_state( ); 6637 (yy_did_buffer_switch_on_eof) = 1; 6638 } 6639 } 6640 6641 /* Allocates the stack if it does not exist. 6642 * Guarantees space for at least one push. 6643 */ 6644 static void yyensure_buffer_stack (void) 6645 { 6646 yy_size_t num_to_alloc; 6647 6648 if (!(yy_buffer_stack)) { 6649 6650 /* First allocation is just for 2 elements, since we don't know if this 6651 * scanner will even need a stack. We use 2 instead of 1 to avoid an 6652 * immediate realloc on the next call. 6653 */ 6654 num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ 6655 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc 6656 (num_to_alloc * sizeof(struct yy_buffer_state*) 6657 ); 6658 if ( ! (yy_buffer_stack) ) 6659 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); 6660 6661 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); 6662 6663 (yy_buffer_stack_max) = num_to_alloc; 6664 (yy_buffer_stack_top) = 0; 6665 return; 6666 } 6667 6668 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ 6669 6670 /* Increase the buffer to prepare for a possible push. */ 6671 yy_size_t grow_size = 8 /* arbitrary grow size */; 6672 6673 num_to_alloc = (yy_buffer_stack_max) + grow_size; 6674 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc 6675 ((yy_buffer_stack), 6676 num_to_alloc * sizeof(struct yy_buffer_state*) 6677 ); 6678 if ( ! (yy_buffer_stack) ) 6679 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); 6680 6681 /* zero only the new slots.*/ 6682 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); 6683 (yy_buffer_stack_max) = num_to_alloc; 6684 } 6685 } 6686 6687 /** Setup the input buffer state to scan directly from a user-specified character buffer. 6688 * @param base the character buffer 6689 * @param size the size in bytes of the character buffer 6690 * 6691 * @return the newly allocated buffer state object. 6692 */ 6693 YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) 6694 { 6695 YY_BUFFER_STATE b; 6696 6697 if ( size < 2 || 6698 base[size-2] != YY_END_OF_BUFFER_CHAR || 6699 base[size-1] != YY_END_OF_BUFFER_CHAR ) 6700 /* They forgot to leave room for the EOB's. */ 6701 return NULL; 6702 6703 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); 6704 if ( ! b ) 6705 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); 6706 6707 b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ 6708 b->yy_buf_pos = b->yy_ch_buf = base; 6709 b->yy_is_our_buffer = 0; 6710 b->yy_input_file = NULL; 6711 b->yy_n_chars = b->yy_buf_size; 6712 b->yy_is_interactive = 0; 6713 b->yy_at_bol = 1; 6714 b->yy_fill_buffer = 0; 6715 b->yy_buffer_status = YY_BUFFER_NEW; 6716 6717 yy_switch_to_buffer( b ); 6718 6719 return b; 6720 } 6721 6722 /** Setup the input buffer state to scan a string. The next call to yylex() will 6723 * scan from a @e copy of @a str. 6724 * @param yystr a NUL-terminated string to scan 6725 * 6726 * @return the newly allocated buffer state object. 6727 * @note If you want to scan bytes that may contain NUL values, then use 6728 * yy_scan_bytes() instead. 6729 */ 6730 YY_BUFFER_STATE yy_scan_string (const char * yystr ) 6731 { 6732 6733 return yy_scan_bytes( yystr, (int) strlen(yystr) ); 6734 } 6735 6736 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will 6737 * scan from a @e copy of @a bytes. 6738 * @param yybytes the byte buffer to scan 6739 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. 6740 * 6741 * @return the newly allocated buffer state object. 6742 */ 6743 YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) 6744 { 6745 YY_BUFFER_STATE b; 6746 char *buf; 6747 yy_size_t n; 6748 int i; 6749 6750 /* Get memory for full buffer, including space for trailing EOB's. */ 6751 n = (yy_size_t) (_yybytes_len + 2); 6752 buf = (char *) yyalloc( n ); 6753 if ( ! buf ) 6754 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); 6755 6756 for ( i = 0; i < _yybytes_len; ++i ) 6757 buf[i] = yybytes[i]; 6758 6759 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; 6760 6761 b = yy_scan_buffer( buf, n ); 6762 if ( ! b ) 6763 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); 6764 6765 /* It's okay to grow etc. this buffer, and we should throw it 6766 * away when we're done. 6767 */ 6768 b->yy_is_our_buffer = 1; 6769 6770 return b; 6771 } 6772 6773 #ifndef YY_EXIT_FAILURE 6774 #define YY_EXIT_FAILURE 2 6775 #endif 6776 6777 static void yynoreturn yy_fatal_error (const char* msg ) 6778 { 6779 fprintf( stderr, "%s\n", msg ); 6780 exit( YY_EXIT_FAILURE ); 6781 } 6782 6783 /* Redefine yyless() so it works in section 3 code. */ 6784 6785 #undef yyless 6786 #define yyless(n) \ 6787 do \ 6788 { \ 6789 /* Undo effects of setting up yytext. */ \ 6790 int yyless_macro_arg = (n); \ 6791 YY_LESS_LINENO(yyless_macro_arg);\ 6792 yytext[yyleng] = (yy_hold_char); \ 6793 (yy_c_buf_p) = yytext + yyless_macro_arg; \ 6794 (yy_hold_char) = *(yy_c_buf_p); \ 6795 *(yy_c_buf_p) = '\0'; \ 6796 yyleng = yyless_macro_arg; \ 6797 } \ 6798 while ( 0 ) 6799 6800 /* Accessor methods (get/set functions) to struct members. */ 6801 6802 /** Get the current line number. 6803 * 6804 */ 6805 int yyget_lineno (void) 6806 { 6807 6808 return yylineno; 6809 } 6810 6811 /** Get the input stream. 6812 * 6813 */ 6814 FILE *yyget_in (void) 6815 { 6816 return yyin; 6817 } 6818 6819 /** Get the output stream. 6820 * 6821 */ 6822 FILE *yyget_out (void) 6823 { 6824 return yyout; 6825 } 6826 6827 /** Get the length of the current token. 6828 * 6829 */ 6830 int yyget_leng (void) 6831 { 6832 return yyleng; 6833 } 6834 6835 /** Get the current token. 6836 * 6837 */ 6838 6839 char *yyget_text (void) 6840 { 6841 return yytext; 6842 } 6843 6844 /** Set the current line number. 6845 * @param _line_number line number 6846 * 6847 */ 6848 void yyset_lineno (int _line_number ) 6849 { 6850 6851 yylineno = _line_number; 6852 } 6853 6854 /** Set the input stream. This does not discard the current 6855 * input buffer. 6856 * @param _in_str A readable stream. 6857 * 6858 * @see yy_switch_to_buffer 6859 */ 6860 void yyset_in (FILE * _in_str ) 6861 { 6862 yyin = _in_str ; 6863 } 6864 6865 void yyset_out (FILE * _out_str ) 6866 { 6867 yyout = _out_str ; 6868 } 6869 6870 int yyget_debug (void) 6871 { 6872 return yy_flex_debug; 6873 } 6874 6875 void yyset_debug (int _bdebug ) 6876 { 6877 yy_flex_debug = _bdebug ; 6878 } 6879 6880 static int yy_init_globals (void) 6881 { 6882 /* Initialization is the same as for the non-reentrant scanner. 6883 * This function is called from yylex_destroy(), so don't allocate here. 6884 */ 6885 6886 (yy_buffer_stack) = NULL; 6887 (yy_buffer_stack_top) = 0; 6888 (yy_buffer_stack_max) = 0; 6889 (yy_c_buf_p) = NULL; 6890 (yy_init) = 0; 6891 (yy_start) = 0; 6892 6893 /* Defined in main.c */ 6894 #ifdef YY_STDINIT 6895 yyin = stdin; 6896 yyout = stdout; 6897 #else 6898 yyin = NULL; 6899 yyout = NULL; 6900 #endif 6901 6902 /* For future reference: Set errno on error, since we are called by 6903 * yylex_init() 6904 */ 6905 return 0; 6906 } 6907 6908 /* yylex_destroy is for both reentrant and non-reentrant scanners. */ 6909 int yylex_destroy (void) 6910 { 6911 6912 /* Pop the buffer stack, destroying each element. */ 6913 while(YY_CURRENT_BUFFER){ 6914 yy_delete_buffer( YY_CURRENT_BUFFER ); 6915 YY_CURRENT_BUFFER_LVALUE = NULL; 6916 yypop_buffer_state(); 6917 } 6918 6919 /* Destroy the stack itself. */ 6920 yyfree((yy_buffer_stack) ); 6921 (yy_buffer_stack) = NULL; 6922 6923 /* Reset the globals. This is important in a non-reentrant scanner so the next time 6924 * yylex() is called, initialization will occur. */ 6925 yy_init_globals( ); 6926 6927 return 0; 6928 } 6929 6930 /* 6931 * Internal utility routines. 6932 */ 6933 6934 #ifndef yytext_ptr 6935 static void yy_flex_strncpy (char* s1, const char * s2, int n ) 6936 { 6937 6938 int i; 6939 for ( i = 0; i < n; ++i ) 6940 s1[i] = s2[i]; 6941 } 6942 #endif 6943 6944 #ifdef YY_NEED_STRLEN 6945 static int yy_flex_strlen (const char * s ) 6946 { 6947 int n; 6948 for ( n = 0; s[n]; ++n ) 6949 ; 6950 6951 return n; 6952 } 6953 #endif 6954 6955 void *yyalloc (yy_size_t size ) 6956 { 6957 return malloc(size); 6958 } 6959 6960 void *yyrealloc (void * ptr, yy_size_t size ) 6961 { 6962 6963 /* The cast to (char *) in the following accommodates both 6964 * implementations that use char* generic pointers, and those 6965 * that use void* generic pointers. It works with the latter 6966 * because both ANSI C and C++ allow castless assignment from 6967 * any pointer type to void*, and deal with argument conversions 6968 * as though doing an assignment. 6969 */ 6970 return realloc(ptr, size); 6971 } 6972 6973 void yyfree (void * ptr ) 6974 { 6975 free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ 6976 } 6977 6978 #define YYTABLES_NAME "yytables" 6979 6980 #line 671 "util/configlexer.lex" 6981 6982 6983