Line data Source code
1 : /* A Bison parser, made by GNU Bison 3.5.1. */
2 :
3 : /* Bison implementation for Yacc-like parsers in C
4 :
5 : Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
6 : Inc.
7 :
8 : This program is free software: you can redistribute it and/or modify
9 : it under the terms of the GNU General Public License as published by
10 : the Free Software Foundation, either version 3 of the License, or
11 : (at your option) any later version.
12 :
13 : This program is distributed in the hope that it will be useful,
14 : but WITHOUT ANY WARRANTY; without even the implied warranty of
15 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 : GNU General Public License for more details.
17 :
18 : You should have received a copy of the GNU General Public License
19 : along with this program. If not, see <http://www.gnu.org/licenses/>. */
20 :
21 : /* As a special exception, you may create a larger work that contains
22 : part or all of the Bison parser skeleton and distribute that work
23 : under terms of your choice, so long as that work isn't itself a
24 : parser generator using the skeleton or a modified version thereof
25 : as a parser skeleton. Alternatively, if you modify or redistribute
26 : the parser skeleton itself, you may (at your option) remove this
27 : special exception, which will cause the skeleton and the resulting
28 : Bison output files to be licensed under the GNU General Public
29 : License without this special exception.
30 :
31 : This special exception was added by the Free Software Foundation in
32 : version 2.2 of Bison. */
33 :
34 : /* C LALR(1) parser skeleton written by Richard Stallman, by
35 : simplifying the original so-called "semantic" parser. */
36 :
37 : /* All symbols defined below should begin with yy or YY, to avoid
38 : infringing on user name space. This should be done even for local
39 : variables, as they might otherwise be expanded by user macros.
40 : There are some unavoidable exceptions within include files to
41 : define necessary library symbols; they are noted "INFRINGES ON
42 : USER NAME SPACE" below. */
43 :
44 : /* Undocumented macros, especially those whose name start with YY_,
45 : are private implementation details. Do not rely on them. */
46 :
47 : /* Identify Bison output. */
48 : #define YYBISON 1
49 :
50 : /* Bison version. */
51 : #define YYBISON_VERSION "3.5.1"
52 :
53 : /* Skeleton name. */
54 : #define YYSKELETON_NAME "yacc.c"
55 :
56 : /* Pure parsers. */
57 : #define YYPURE 0
58 :
59 : /* Push parsers. */
60 : #define YYPUSH 0
61 :
62 : /* Pull parsers. */
63 : #define YYPULL 1
64 :
65 : /* Substitute the type names. */
66 : #define YYSTYPE OPENMP_STYPE
67 : #define YYLTYPE OPENMP_LTYPE
68 : /* Substitute the variable and function names. */
69 : #define yyparse openmp_parse
70 : #define yylex openmp_lex
71 : #define yyerror openmp_error
72 : #define yydebug openmp_debug
73 : #define yynerrs openmp_nerrs
74 : #define yylval openmp_lval
75 : #define yychar openmp_char
76 : #define yylloc openmp_lloc
77 :
78 : /* First part of user prologue. */
79 : #line 15 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
80 :
81 : /* DQ (2/10/2014): IF is conflicting with Boost template IF. */
82 : #undef IF
83 :
84 : #include <stdio.h>
85 : #include <assert.h>
86 : #include <iostream>
87 : #include "OpenMPIR.h"
88 : #include <string.h>
89 : #include <regex>
90 : #include <assert.h>
91 :
92 : /*the scanner function*/
93 : extern int openmp_lex();
94 :
95 : /*A customized initialization function for the scanner, str is the string to be scanned.*/
96 : extern void openmp_lexer_init(const char* str);
97 :
98 : /* Standalone ompparser */
99 : extern void start_lexer(const char* input);
100 : extern void end_lexer(void);
101 :
102 : //The directive/clause that are being parsed
103 : static OpenMPDirective* current_directive = NULL;
104 : static OpenMPClause* current_clause = NULL;
105 : static OpenMPDirective* current_parent_directive = NULL;
106 : static OpenMPClause* current_parent_clause = NULL;
107 : static int firstParameter = 0;
108 : static int secondParameter = 0;
109 : static int thirdParameter = 0;
110 : static OpenMPUsesAllocatorsClauseAllocator usesAllocator;
111 : static const char* firstStringParameter = "";
112 : static const char* secondStringParameter = "";
113 : static std::vector<const char*>* iterator_definition = new std::vector<const char*>();
114 : static std::vector<const char*>* depend_iterator_definition = new std::vector<const char*>();
115 : static std::vector<std::vector<const char*>* >* depend_iterators_definition_class;
116 : //std::vector<std::vector<const char*>* >* depend_iterators_definition_class;
117 : static const char* trait_score = "";
118 : /* Treat the entire expression as a string for now */
119 : extern void openmp_parse_expr();
120 : static int openmp_error(const char*);
121 : void * (*exprParse)(const char*) = NULL;
122 :
123 : bool b_within_variable_list = false; // a flag to indicate if the program is now processing a list of variables
124 :
125 : /* used for language setting and detecting*/
126 : OpenMPBaseLang user_set_lang = Lang_unknown;
127 : OpenMPBaseLang auto_lang;
128 : void setLang(OpenMPBaseLang _lang) { user_set_lang = _lang; };
129 :
130 :
131 : #line 132 "ompparser.cc"
132 :
133 : # ifndef YY_CAST
134 : # ifdef __cplusplus
135 : # define YY_CAST(Type, Val) static_cast<Type> (Val)
136 : # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
137 : # else
138 : # define YY_CAST(Type, Val) ((Type) (Val))
139 : # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
140 : # endif
141 : # endif
142 : # ifndef YY_NULLPTR
143 : # if defined __cplusplus
144 : # if 201103L <= __cplusplus
145 : # define YY_NULLPTR nullptr
146 : # else
147 : # define YY_NULLPTR 0
148 : # endif
149 : # else
150 : # define YY_NULLPTR ((void*)0)
151 : # endif
152 : # endif
153 :
154 : /* Enabling verbose error messages. */
155 : #ifdef YYERROR_VERBOSE
156 : # undef YYERROR_VERBOSE
157 : # define YYERROR_VERBOSE 1
158 : #else
159 : # define YYERROR_VERBOSE 1
160 : #endif
161 :
162 : /* Use api.header.include to #include this header
163 : instead of duplicating it here. */
164 : #ifndef YY_OPENMP_OMPPARSER_HH_INCLUDED
165 : # define YY_OPENMP_OMPPARSER_HH_INCLUDED
166 : /* Debug traces. */
167 : #ifndef OPENMP_DEBUG
168 : # if defined YYDEBUG
169 : #if YYDEBUG
170 : # define OPENMP_DEBUG 1
171 : # else
172 : # define OPENMP_DEBUG 0
173 : # endif
174 : # else /* ! defined YYDEBUG */
175 : # define OPENMP_DEBUG 0
176 : # endif /* ! defined YYDEBUG */
177 : #endif /* ! defined OPENMP_DEBUG */
178 : #if OPENMP_DEBUG
179 : extern int openmp_debug;
180 : #endif
181 :
182 : /* Token type. */
183 : #ifndef OPENMP_TOKENTYPE
184 : # define OPENMP_TOKENTYPE
185 : enum openmp_tokentype
186 : {
187 : OMP = 258,
188 : PARALLEL = 259,
189 : FOR = 260,
190 : DO = 261,
191 : DECLARE = 262,
192 : DISTRIBUTE = 263,
193 : LOOP = 264,
194 : SCAN = 265,
195 : SECTIONS = 266,
196 : SECTION = 267,
197 : SINGLE = 268,
198 : CANCEL = 269,
199 : TASKGROUP = 270,
200 : CANCELLATION = 271,
201 : POINT = 272,
202 : THREAD = 273,
203 : VARIANT = 274,
204 : THREADPRIVATE = 275,
205 : METADIRECTIVE = 276,
206 : MAPPER = 277,
207 : IF = 278,
208 : NUM_THREADS = 279,
209 : DEFAULT = 280,
210 : PRIVATE = 281,
211 : FIRSTPRIVATE = 282,
212 : SHARED = 283,
213 : COPYIN = 284,
214 : REDUCTION = 285,
215 : PROC_BIND = 286,
216 : ALLOCATE = 287,
217 : SIMD = 288,
218 : TASK = 289,
219 : LASTPRIVATE = 290,
220 : WHEN = 291,
221 : MATCH = 292,
222 : PARTIAL = 293,
223 : FULL = 294,
224 : LINEAR = 295,
225 : SCHEDULE = 296,
226 : COLLAPSE = 297,
227 : NOWAIT = 298,
228 : ORDER = 299,
229 : ORDERED = 300,
230 : MODIFIER_CONDITIONAL = 301,
231 : MODIFIER_MONOTONIC = 302,
232 : MODIFIER_NONMONOTONIC = 303,
233 : STATIC = 304,
234 : DYNAMIC = 305,
235 : GUIDED = 306,
236 : AUTO = 307,
237 : RUNTIME = 308,
238 : MODOFIER_VAL = 309,
239 : MODOFIER_REF = 310,
240 : MODOFIER_UVAL = 311,
241 : MODIFIER_SIMD = 312,
242 : SAFELEN = 313,
243 : SIMDLEN = 314,
244 : ALIGNED = 315,
245 : ALIGN = 316,
246 : NONTEMPORAL = 317,
247 : UNIFORM = 318,
248 : INBRANCH = 319,
249 : NOTINBRANCH = 320,
250 : DIST_SCHEDULE = 321,
251 : BIND = 322,
252 : INCLUSIVE = 323,
253 : EXCLUSIVE = 324,
254 : COPYPRIVATE = 325,
255 : ALLOCATOR = 326,
256 : INITIALIZER = 327,
257 : OMP_PRIV = 328,
258 : IDENTIFIER_DEFAULT = 329,
259 : WORKSHARE = 330,
260 : NONE = 331,
261 : MASTER = 332,
262 : CLOSE = 333,
263 : SPREAD = 334,
264 : MODIFIER_INSCAN = 335,
265 : MODIFIER_TASK = 336,
266 : MODIFIER_DEFAULT = 337,
267 : PLUS = 338,
268 : MINUS = 339,
269 : STAR = 340,
270 : BITAND = 341,
271 : BITOR = 342,
272 : BITXOR = 343,
273 : LOGAND = 344,
274 : LOGOR = 345,
275 : EQV = 346,
276 : NEQV = 347,
277 : MAX = 348,
278 : MIN = 349,
279 : DEFAULT_MEM_ALLOC = 350,
280 : LARGE_CAP_MEM_ALLOC = 351,
281 : CONST_MEM_ALLOC = 352,
282 : HIGH_BW_MEM_ALLOC = 353,
283 : LOW_LAT_MEM_ALLOC = 354,
284 : CGROUP_MEM_ALLOC = 355,
285 : PTEAM_MEM_ALLOC = 356,
286 : THREAD_MEM_ALLOC = 357,
287 : TEAMS = 358,
288 : NUM_TEAMS = 359,
289 : THREAD_LIMIT = 360,
290 : DOUBLE_COLON = 361,
291 : END = 362,
292 : USER = 363,
293 : CONSTRUCT = 364,
294 : DEVICE = 365,
295 : IMPLEMENTATION = 366,
296 : CONDITION = 367,
297 : SCORE = 368,
298 : VENDOR = 369,
299 : KIND = 370,
300 : HOST = 371,
301 : NOHOST = 372,
302 : ANY = 373,
303 : CPU = 374,
304 : GPU = 375,
305 : FPGA = 376,
306 : ISA = 377,
307 : ARCH = 378,
308 : EXTENSION = 379,
309 : AMD = 380,
310 : ARM = 381,
311 : BSC = 382,
312 : CRAY = 383,
313 : FUJITSU = 384,
314 : GNU = 385,
315 : IBM = 386,
316 : INTEL = 387,
317 : LLVM = 388,
318 : PGI = 389,
319 : TI = 390,
320 : UNKNOWN = 391,
321 : FINAL = 392,
322 : UNTIED = 393,
323 : MERGEABLE = 394,
324 : IN_REDUCTION = 395,
325 : DEPEND = 396,
326 : PRIORITY = 397,
327 : AFFINITY = 398,
328 : DETACH = 399,
329 : MODIFIER_ITERATOR = 400,
330 : DEPOBJ = 401,
331 : FINAL_CLAUSE = 402,
332 : IN = 403,
333 : INOUT = 404,
334 : MUTEXINOUTSET = 405,
335 : OUT = 406,
336 : TASKLOOP = 407,
337 : GRAINSIZE = 408,
338 : NUM_TASKS = 409,
339 : NOGROUP = 410,
340 : TASKYIELD = 411,
341 : REQUIRES = 412,
342 : REVERSE_OFFLOAD = 413,
343 : UNIFIED_ADDRESS = 414,
344 : UNIFIED_SHARED_MEMORY = 415,
345 : ATOMIC_DEFAULT_MEM_ORDER = 416,
346 : DYNAMIC_ALLOCATORS = 417,
347 : SEQ_CST = 418,
348 : ACQ_REL = 419,
349 : RELAXED = 420,
350 : UNROLL = 421,
351 : TILE = 422,
352 : USE_DEVICE_PTR = 423,
353 : USE_DEVICE_ADDR = 424,
354 : TARGET = 425,
355 : DATA = 426,
356 : ENTER = 427,
357 : EXIT = 428,
358 : ANCESTOR = 429,
359 : DEVICE_NUM = 430,
360 : IS_DEVICE_PTR = 431,
361 : HAS_DEVICE_ADDR = 432,
362 : SIZES = 433,
363 : DEFAULTMAP = 434,
364 : BEHAVIOR_ALLOC = 435,
365 : BEHAVIOR_TO = 436,
366 : BEHAVIOR_FROM = 437,
367 : BEHAVIOR_TOFROM = 438,
368 : BEHAVIOR_FIRSTPRIVATE = 439,
369 : BEHAVIOR_NONE = 440,
370 : BEHAVIOR_DEFAULT = 441,
371 : CATEGORY_SCALAR = 442,
372 : CATEGORY_AGGREGATE = 443,
373 : CATEGORY_POINTER = 444,
374 : CATEGORY_ALLOCATABLE = 445,
375 : UPDATE = 446,
376 : TO = 447,
377 : FROM = 448,
378 : TO_MAPPER = 449,
379 : FROM_MAPPER = 450,
380 : USES_ALLOCATORS = 451,
381 : LINK = 452,
382 : DEVICE_TYPE = 453,
383 : MAP = 454,
384 : MAP_MODIFIER_ALWAYS = 455,
385 : MAP_MODIFIER_CLOSE = 456,
386 : MAP_MODIFIER_MAPPER = 457,
387 : MAP_TYPE_TO = 458,
388 : MAP_TYPE_FROM = 459,
389 : MAP_TYPE_TOFROM = 460,
390 : MAP_TYPE_ALLOC = 461,
391 : MAP_TYPE_RELEASE = 462,
392 : MAP_TYPE_DELETE = 463,
393 : EXT_ = 464,
394 : BARRIER = 465,
395 : TASKWAIT = 466,
396 : FLUSH = 467,
397 : RELEASE = 468,
398 : ACQUIRE = 469,
399 : ATOMIC = 470,
400 : READ = 471,
401 : WRITE = 472,
402 : CAPTURE = 473,
403 : HINT = 474,
404 : CRITICAL = 475,
405 : SOURCE = 476,
406 : SINK = 477,
407 : DESTROY = 478,
408 : THREADS = 479,
409 : CONCURRENT = 480,
410 : ICONSTANT = 481,
411 : EXPRESSION = 482,
412 : ID_EXPRESSION = 483,
413 : EXPR_STRING = 484,
414 : VAR_STRING = 485,
415 : TASK_REDUCTION = 486
416 : };
417 : #endif
418 : /* Tokens. */
419 : #define OMP 258
420 : #define PARALLEL 259
421 : #define FOR 260
422 : #define DO 261
423 : #define DECLARE 262
424 : #define DISTRIBUTE 263
425 : #define LOOP 264
426 : #define SCAN 265
427 : #define SECTIONS 266
428 : #define SECTION 267
429 : #define SINGLE 268
430 : #define CANCEL 269
431 : #define TASKGROUP 270
432 : #define CANCELLATION 271
433 : #define POINT 272
434 : #define THREAD 273
435 : #define VARIANT 274
436 : #define THREADPRIVATE 275
437 : #define METADIRECTIVE 276
438 : #define MAPPER 277
439 : #define IF 278
440 : #define NUM_THREADS 279
441 : #define DEFAULT 280
442 : #define PRIVATE 281
443 : #define FIRSTPRIVATE 282
444 : #define SHARED 283
445 : #define COPYIN 284
446 : #define REDUCTION 285
447 : #define PROC_BIND 286
448 : #define ALLOCATE 287
449 : #define SIMD 288
450 : #define TASK 289
451 : #define LASTPRIVATE 290
452 : #define WHEN 291
453 : #define MATCH 292
454 : #define PARTIAL 293
455 : #define FULL 294
456 : #define LINEAR 295
457 : #define SCHEDULE 296
458 : #define COLLAPSE 297
459 : #define NOWAIT 298
460 : #define ORDER 299
461 : #define ORDERED 300
462 : #define MODIFIER_CONDITIONAL 301
463 : #define MODIFIER_MONOTONIC 302
464 : #define MODIFIER_NONMONOTONIC 303
465 : #define STATIC 304
466 : #define DYNAMIC 305
467 : #define GUIDED 306
468 : #define AUTO 307
469 : #define RUNTIME 308
470 : #define MODOFIER_VAL 309
471 : #define MODOFIER_REF 310
472 : #define MODOFIER_UVAL 311
473 : #define MODIFIER_SIMD 312
474 : #define SAFELEN 313
475 : #define SIMDLEN 314
476 : #define ALIGNED 315
477 : #define ALIGN 316
478 : #define NONTEMPORAL 317
479 : #define UNIFORM 318
480 : #define INBRANCH 319
481 : #define NOTINBRANCH 320
482 : #define DIST_SCHEDULE 321
483 : #define BIND 322
484 : #define INCLUSIVE 323
485 : #define EXCLUSIVE 324
486 : #define COPYPRIVATE 325
487 : #define ALLOCATOR 326
488 : #define INITIALIZER 327
489 : #define OMP_PRIV 328
490 : #define IDENTIFIER_DEFAULT 329
491 : #define WORKSHARE 330
492 : #define NONE 331
493 : #define MASTER 332
494 : #define CLOSE 333
495 : #define SPREAD 334
496 : #define MODIFIER_INSCAN 335
497 : #define MODIFIER_TASK 336
498 : #define MODIFIER_DEFAULT 337
499 : #define PLUS 338
500 : #define MINUS 339
501 : #define STAR 340
502 : #define BITAND 341
503 : #define BITOR 342
504 : #define BITXOR 343
505 : #define LOGAND 344
506 : #define LOGOR 345
507 : #define EQV 346
508 : #define NEQV 347
509 : #define MAX 348
510 : #define MIN 349
511 : #define DEFAULT_MEM_ALLOC 350
512 : #define LARGE_CAP_MEM_ALLOC 351
513 : #define CONST_MEM_ALLOC 352
514 : #define HIGH_BW_MEM_ALLOC 353
515 : #define LOW_LAT_MEM_ALLOC 354
516 : #define CGROUP_MEM_ALLOC 355
517 : #define PTEAM_MEM_ALLOC 356
518 : #define THREAD_MEM_ALLOC 357
519 : #define TEAMS 358
520 : #define NUM_TEAMS 359
521 : #define THREAD_LIMIT 360
522 : #define DOUBLE_COLON 361
523 : #define END 362
524 : #define USER 363
525 : #define CONSTRUCT 364
526 : #define DEVICE 365
527 : #define IMPLEMENTATION 366
528 : #define CONDITION 367
529 : #define SCORE 368
530 : #define VENDOR 369
531 : #define KIND 370
532 : #define HOST 371
533 : #define NOHOST 372
534 : #define ANY 373
535 : #define CPU 374
536 : #define GPU 375
537 : #define FPGA 376
538 : #define ISA 377
539 : #define ARCH 378
540 : #define EXTENSION 379
541 : #define AMD 380
542 : #define ARM 381
543 : #define BSC 382
544 : #define CRAY 383
545 : #define FUJITSU 384
546 : #define GNU 385
547 : #define IBM 386
548 : #define INTEL 387
549 : #define LLVM 388
550 : #define PGI 389
551 : #define TI 390
552 : #define UNKNOWN 391
553 : #define FINAL 392
554 : #define UNTIED 393
555 : #define MERGEABLE 394
556 : #define IN_REDUCTION 395
557 : #define DEPEND 396
558 : #define PRIORITY 397
559 : #define AFFINITY 398
560 : #define DETACH 399
561 : #define MODIFIER_ITERATOR 400
562 : #define DEPOBJ 401
563 : #define FINAL_CLAUSE 402
564 : #define IN 403
565 : #define INOUT 404
566 : #define MUTEXINOUTSET 405
567 : #define OUT 406
568 : #define TASKLOOP 407
569 : #define GRAINSIZE 408
570 : #define NUM_TASKS 409
571 : #define NOGROUP 410
572 : #define TASKYIELD 411
573 : #define REQUIRES 412
574 : #define REVERSE_OFFLOAD 413
575 : #define UNIFIED_ADDRESS 414
576 : #define UNIFIED_SHARED_MEMORY 415
577 : #define ATOMIC_DEFAULT_MEM_ORDER 416
578 : #define DYNAMIC_ALLOCATORS 417
579 : #define SEQ_CST 418
580 : #define ACQ_REL 419
581 : #define RELAXED 420
582 : #define UNROLL 421
583 : #define TILE 422
584 : #define USE_DEVICE_PTR 423
585 : #define USE_DEVICE_ADDR 424
586 : #define TARGET 425
587 : #define DATA 426
588 : #define ENTER 427
589 : #define EXIT 428
590 : #define ANCESTOR 429
591 : #define DEVICE_NUM 430
592 : #define IS_DEVICE_PTR 431
593 : #define HAS_DEVICE_ADDR 432
594 : #define SIZES 433
595 : #define DEFAULTMAP 434
596 : #define BEHAVIOR_ALLOC 435
597 : #define BEHAVIOR_TO 436
598 : #define BEHAVIOR_FROM 437
599 : #define BEHAVIOR_TOFROM 438
600 : #define BEHAVIOR_FIRSTPRIVATE 439
601 : #define BEHAVIOR_NONE 440
602 : #define BEHAVIOR_DEFAULT 441
603 : #define CATEGORY_SCALAR 442
604 : #define CATEGORY_AGGREGATE 443
605 : #define CATEGORY_POINTER 444
606 : #define CATEGORY_ALLOCATABLE 445
607 : #define UPDATE 446
608 : #define TO 447
609 : #define FROM 448
610 : #define TO_MAPPER 449
611 : #define FROM_MAPPER 450
612 : #define USES_ALLOCATORS 451
613 : #define LINK 452
614 : #define DEVICE_TYPE 453
615 : #define MAP 454
616 : #define MAP_MODIFIER_ALWAYS 455
617 : #define MAP_MODIFIER_CLOSE 456
618 : #define MAP_MODIFIER_MAPPER 457
619 : #define MAP_TYPE_TO 458
620 : #define MAP_TYPE_FROM 459
621 : #define MAP_TYPE_TOFROM 460
622 : #define MAP_TYPE_ALLOC 461
623 : #define MAP_TYPE_RELEASE 462
624 : #define MAP_TYPE_DELETE 463
625 : #define EXT_ 464
626 : #define BARRIER 465
627 : #define TASKWAIT 466
628 : #define FLUSH 467
629 : #define RELEASE 468
630 : #define ACQUIRE 469
631 : #define ATOMIC 470
632 : #define READ 471
633 : #define WRITE 472
634 : #define CAPTURE 473
635 : #define HINT 474
636 : #define CRITICAL 475
637 : #define SOURCE 476
638 : #define SINK 477
639 : #define DESTROY 478
640 : #define THREADS 479
641 : #define CONCURRENT 480
642 : #define ICONSTANT 481
643 : #define EXPRESSION 482
644 : #define ID_EXPRESSION 483
645 : #define EXPR_STRING 484
646 : #define VAR_STRING 485
647 : #define TASK_REDUCTION 486
648 :
649 : /* Value type. */
650 : #if ! defined OPENMP_STYPE && ! defined OPENMP_STYPE_IS_DECLARED
651 : union OPENMP_STYPE
652 : {
653 : #line 74 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
654 : int itype;
655 : double ftype;
656 : const char* stype;
657 : void* ptype; /* For expressions or variables */
658 :
659 :
660 : #line 661 "ompparser.cc"
661 :
662 : };
663 : typedef union OPENMP_STYPE OPENMP_STYPE;
664 : # define OPENMP_STYPE_IS_TRIVIAL 1
665 : # define OPENMP_STYPE_IS_DECLARED 1
666 : #endif
667 :
668 : /* Location type. */
669 : #if ! defined OPENMP_LTYPE && ! defined OPENMP_LTYPE_IS_DECLARED
670 : typedef struct OPENMP_LTYPE OPENMP_LTYPE;
671 : struct OPENMP_LTYPE
672 : {
673 : int first_line;
674 : int first_column;
675 : int last_line;
676 : int last_column;
677 : };
678 : # define OPENMP_LTYPE_IS_DECLARED 1
679 : # define OPENMP_LTYPE_IS_TRIVIAL 1
680 : #endif
681 :
682 :
683 : extern OPENMP_STYPE openmp_lval;
684 : extern OPENMP_LTYPE openmp_lloc;
685 : int openmp_parse (void);
686 :
687 : #endif /* !YY_OPENMP_OMPPARSER_HH_INCLUDED */
688 :
689 :
690 :
691 : #ifdef short
692 : # undef short
693 : #endif
694 :
695 : /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
696 : <limits.h> and (if available) <stdint.h> are included
697 : so that the code can choose integer types of a good width. */
698 :
699 : #ifndef __PTRDIFF_MAX__
700 : # include <limits.h> /* INFRINGES ON USER NAME SPACE */
701 : # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
702 : # include <stdint.h> /* INFRINGES ON USER NAME SPACE */
703 : # define YY_STDINT_H
704 : # endif
705 : #endif
706 :
707 : /* Narrow types that promote to a signed type and that can represent a
708 : signed or unsigned integer of at least N bits. In tables they can
709 : save space and decrease cache pressure. Promoting to a signed type
710 : helps avoid bugs in integer arithmetic. */
711 :
712 : #ifdef __INT_LEAST8_MAX__
713 : typedef __INT_LEAST8_TYPE__ yytype_int8;
714 : #elif defined YY_STDINT_H
715 : typedef int_least8_t yytype_int8;
716 : #else
717 : typedef signed char yytype_int8;
718 : #endif
719 :
720 : #ifdef __INT_LEAST16_MAX__
721 : typedef __INT_LEAST16_TYPE__ yytype_int16;
722 : #elif defined YY_STDINT_H
723 : typedef int_least16_t yytype_int16;
724 : #else
725 : typedef short yytype_int16;
726 : #endif
727 :
728 : #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
729 : typedef __UINT_LEAST8_TYPE__ yytype_uint8;
730 : #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
731 : && UINT_LEAST8_MAX <= INT_MAX)
732 : typedef uint_least8_t yytype_uint8;
733 : #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
734 : typedef unsigned char yytype_uint8;
735 : #else
736 : typedef short yytype_uint8;
737 : #endif
738 :
739 : #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
740 : typedef __UINT_LEAST16_TYPE__ yytype_uint16;
741 : #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
742 : && UINT_LEAST16_MAX <= INT_MAX)
743 : typedef uint_least16_t yytype_uint16;
744 : #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
745 : typedef unsigned short yytype_uint16;
746 : #else
747 : typedef int yytype_uint16;
748 : #endif
749 :
750 : #ifndef YYPTRDIFF_T
751 : # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
752 : # define YYPTRDIFF_T __PTRDIFF_TYPE__
753 : # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
754 : # elif defined PTRDIFF_MAX
755 : # ifndef ptrdiff_t
756 : # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
757 : # endif
758 : # define YYPTRDIFF_T ptrdiff_t
759 : # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
760 : # else
761 : # define YYPTRDIFF_T long
762 : # define YYPTRDIFF_MAXIMUM LONG_MAX
763 : # endif
764 : #endif
765 :
766 : #ifndef YYSIZE_T
767 : # ifdef __SIZE_TYPE__
768 : # define YYSIZE_T __SIZE_TYPE__
769 : # elif defined size_t
770 : # define YYSIZE_T size_t
771 : # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
772 : # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
773 : # define YYSIZE_T size_t
774 : # else
775 : # define YYSIZE_T unsigned
776 : # endif
777 : #endif
778 :
779 : #define YYSIZE_MAXIMUM \
780 : YY_CAST (YYPTRDIFF_T, \
781 : (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
782 : ? YYPTRDIFF_MAXIMUM \
783 : : YY_CAST (YYSIZE_T, -1)))
784 :
785 : #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
786 :
787 : /* Stored state numbers (used for stacks). */
788 : typedef yytype_int16 yy_state_t;
789 :
790 : /* State numbers in computations. */
791 : typedef int yy_state_fast_t;
792 :
793 : #ifndef YY_
794 : # if defined YYENABLE_NLS && YYENABLE_NLS
795 : # if ENABLE_NLS
796 : # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
797 : # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
798 : # endif
799 : # endif
800 : # ifndef YY_
801 : # define YY_(Msgid) Msgid
802 : # endif
803 : #endif
804 :
805 : #ifndef YY_ATTRIBUTE_PURE
806 : # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
807 : # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
808 : # else
809 : # define YY_ATTRIBUTE_PURE
810 : # endif
811 : #endif
812 :
813 : #ifndef YY_ATTRIBUTE_UNUSED
814 : # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
815 : # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
816 : # else
817 : # define YY_ATTRIBUTE_UNUSED
818 : # endif
819 : #endif
820 :
821 : /* Suppress unused-variable warnings by "using" E. */
822 : #if ! defined lint || defined __GNUC__
823 : # define YYUSE(E) ((void) (E))
824 : #else
825 : # define YYUSE(E) /* empty */
826 : #endif
827 :
828 : #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
829 : /* Suppress an incorrect diagnostic about yylval being uninitialized. */
830 : # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
831 : _Pragma ("GCC diagnostic push") \
832 : _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
833 : _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
834 : # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
835 : _Pragma ("GCC diagnostic pop")
836 : #else
837 : # define YY_INITIAL_VALUE(Value) Value
838 : #endif
839 : #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
840 : # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
841 : # define YY_IGNORE_MAYBE_UNINITIALIZED_END
842 : #endif
843 : #ifndef YY_INITIAL_VALUE
844 : # define YY_INITIAL_VALUE(Value) /* Nothing. */
845 : #endif
846 :
847 : #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
848 : # define YY_IGNORE_USELESS_CAST_BEGIN \
849 : _Pragma ("GCC diagnostic push") \
850 : _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
851 : # define YY_IGNORE_USELESS_CAST_END \
852 : _Pragma ("GCC diagnostic pop")
853 : #endif
854 : #ifndef YY_IGNORE_USELESS_CAST_BEGIN
855 : # define YY_IGNORE_USELESS_CAST_BEGIN
856 : # define YY_IGNORE_USELESS_CAST_END
857 : #endif
858 :
859 :
860 : #define YY_ASSERT(E) ((void) (0 && (E)))
861 :
862 : #if ! defined yyoverflow || YYERROR_VERBOSE
863 :
864 : /* The parser invokes alloca or malloc; define the necessary symbols. */
865 :
866 : # ifdef YYSTACK_USE_ALLOCA
867 : # if YYSTACK_USE_ALLOCA
868 : # ifdef __GNUC__
869 : # define YYSTACK_ALLOC __builtin_alloca
870 : # elif defined __BUILTIN_VA_ARG_INCR
871 : # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
872 : # elif defined _AIX
873 : # define YYSTACK_ALLOC __alloca
874 : # elif defined _MSC_VER
875 : # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
876 : # define alloca _alloca
877 : # else
878 : # define YYSTACK_ALLOC alloca
879 : # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
880 : # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
881 : /* Use EXIT_SUCCESS as a witness for stdlib.h. */
882 : # ifndef EXIT_SUCCESS
883 : # define EXIT_SUCCESS 0
884 : # endif
885 : # endif
886 : # endif
887 : # endif
888 : # endif
889 :
890 : # ifdef YYSTACK_ALLOC
891 : /* Pacify GCC's 'empty if-body' warning. */
892 : # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
893 : # ifndef YYSTACK_ALLOC_MAXIMUM
894 : /* The OS might guarantee only one guard page at the bottom of the stack,
895 : and a page size can be as small as 4096 bytes. So we cannot safely
896 : invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
897 : to allow for a few compiler-allocated temporary stack slots. */
898 : # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
899 : # endif
900 : # else
901 : # define YYSTACK_ALLOC YYMALLOC
902 : # define YYSTACK_FREE YYFREE
903 : # ifndef YYSTACK_ALLOC_MAXIMUM
904 : # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
905 : # endif
906 : # if (defined __cplusplus && ! defined EXIT_SUCCESS \
907 : && ! ((defined YYMALLOC || defined malloc) \
908 : && (defined YYFREE || defined free)))
909 : # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
910 : # ifndef EXIT_SUCCESS
911 : # define EXIT_SUCCESS 0
912 : # endif
913 : # endif
914 : # ifndef YYMALLOC
915 : # define YYMALLOC malloc
916 : # if ! defined malloc && ! defined EXIT_SUCCESS
917 : void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
918 : # endif
919 : # endif
920 : # ifndef YYFREE
921 : # define YYFREE free
922 : # if ! defined free && ! defined EXIT_SUCCESS
923 : void free (void *); /* INFRINGES ON USER NAME SPACE */
924 : # endif
925 : # endif
926 : # endif
927 : #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
928 :
929 :
930 : #if (! defined yyoverflow \
931 : && (! defined __cplusplus \
932 : || (defined OPENMP_LTYPE_IS_TRIVIAL && OPENMP_LTYPE_IS_TRIVIAL \
933 : && defined OPENMP_STYPE_IS_TRIVIAL && OPENMP_STYPE_IS_TRIVIAL)))
934 :
935 : /* A type that is properly aligned for any stack member. */
936 : union yyalloc
937 : {
938 : yy_state_t yyss_alloc;
939 : YYSTYPE yyvs_alloc;
940 : YYLTYPE yyls_alloc;
941 : };
942 :
943 : /* The size of the maximum gap between one aligned stack and the next. */
944 : # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
945 :
946 : /* The size of an array large to enough to hold all stacks, each with
947 : N elements. */
948 : # define YYSTACK_BYTES(N) \
949 : ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \
950 : + YYSIZEOF (YYLTYPE)) \
951 : + 2 * YYSTACK_GAP_MAXIMUM)
952 :
953 : # define YYCOPY_NEEDED 1
954 :
955 : /* Relocate STACK from its old location to the new one. The
956 : local variables YYSIZE and YYSTACKSIZE give the old and new number of
957 : elements in the stack, and YYPTR gives the new location of the
958 : stack. Advance YYPTR to a properly aligned location for the next
959 : stack. */
960 : # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
961 : do \
962 : { \
963 : YYPTRDIFF_T yynewbytes; \
964 : YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
965 : Stack = &yyptr->Stack_alloc; \
966 : yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
967 : yyptr += yynewbytes / YYSIZEOF (*yyptr); \
968 : } \
969 : while (0)
970 :
971 : #endif
972 :
973 : #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
974 : /* Copy COUNT objects from SRC to DST. The source and destination do
975 : not overlap. */
976 : # ifndef YYCOPY
977 : # if defined __GNUC__ && 1 < __GNUC__
978 : # define YYCOPY(Dst, Src, Count) \
979 : __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
980 : # else
981 : # define YYCOPY(Dst, Src, Count) \
982 : do \
983 : { \
984 : YYPTRDIFF_T yyi; \
985 : for (yyi = 0; yyi < (Count); yyi++) \
986 : (Dst)[yyi] = (Src)[yyi]; \
987 : } \
988 : while (0)
989 : # endif
990 : # endif
991 : #endif /* !YYCOPY_NEEDED */
992 :
993 : /* YYFINAL -- State number of the termination state. */
994 : #define YYFINAL 180
995 : /* YYLAST -- Last index in YYTABLE. */
996 : #define YYLAST 14213
997 :
998 : /* YYNTOKENS -- Number of terminals. */
999 : #define YYNTOKENS 253
1000 : /* YYNNTS -- Number of nonterminals. */
1001 : #define YYNNTS 777
1002 : /* YYNRULES -- Number of rules. */
1003 : #define YYNRULES 2350
1004 : /* YYNSTATES -- Number of states. */
1005 : #define YYNSTATES 2948
1006 :
1007 : #define YYUNDEFTOK 2
1008 : #define YYMAXUTOK 490
1009 :
1010 :
1011 : /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
1012 : as returned by yylex, with out-of-bounds checking. */
1013 : #define YYTRANSLATE(YYX) \
1014 : (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1015 :
1016 : /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
1017 : as returned by yylex. */
1018 : static const yytype_uint8 yytranslate[] =
1019 : {
1020 : 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1021 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1022 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1023 : 2, 2, 2, 2, 2, 2, 2, 242, 249, 2,
1024 : 244, 246, 240, 238, 243, 239, 2, 241, 2, 2,
1025 : 2, 2, 2, 2, 2, 2, 2, 2, 245, 2,
1026 : 232, 234, 233, 2, 2, 2, 2, 2, 2, 2,
1027 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1028 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1029 : 2, 2, 2, 2, 251, 2, 2, 2, 2, 2,
1030 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1031 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1032 : 2, 2, 2, 247, 250, 248, 2, 2, 2, 2,
1033 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1034 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1035 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1036 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1037 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1038 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1039 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1040 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1041 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1042 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1043 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1044 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1045 : 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1046 : 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1047 : 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1048 : 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1049 : 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1050 : 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1051 : 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1052 : 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1053 : 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1054 : 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1055 : 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1056 : 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1057 : 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1058 : 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1059 : 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1060 : 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1061 : 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1062 : 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1063 : 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1064 : 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1065 : 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1066 : 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1067 : 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
1068 : 225, 226, 227, 228, 229, 230, 231, 235, 236, 237,
1069 : 252
1070 : };
1071 :
1072 : #if OPENMP_DEBUG
1073 : /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
1074 : static const yytype_int16 yyrline[] =
1075 : {
1076 : 0, 115, 115, 116, 122, 123, 126, 127, 128, 129,
1077 : 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1078 : 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
1079 : 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
1080 : 160, 161, 163, 165, 166, 167, 168, 169, 170, 171,
1081 : 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
1082 : 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
1083 : 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
1084 : 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
1085 : 212, 213, 214, 217, 218, 219, 220, 221, 222, 223,
1086 : 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
1087 : 234, 235, 236, 239, 240, 241, 242, 243, 244, 245,
1088 : 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
1089 : 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
1090 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
1091 : 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
1092 : 286, 287, 288, 289, 290, 293, 293, 305, 308, 308,
1093 : 312, 313, 316, 317, 318, 321, 322, 325, 326, 329,
1094 : 325, 337, 338, 341, 342, 343, 346, 346, 346, 356,
1095 : 357, 359, 360, 363, 364, 365, 368, 369, 373, 374,
1096 : 377, 377, 380, 381, 382, 385, 388, 389, 390, 391,
1097 : 392, 393, 396, 396, 399, 399, 402, 403, 403, 404,
1098 : 405, 408, 409, 410, 411, 412, 413, 414, 415, 416,
1099 : 417, 418, 419, 422, 425, 426, 426, 429, 432, 433,
1100 : 433, 436, 436, 442, 442, 445, 446, 449, 450, 451,
1101 : 454, 457, 457, 462, 462, 468, 468, 473, 473, 478,
1102 : 478, 483, 487, 487, 492, 492, 497, 497, 502, 502,
1103 : 507, 507, 512, 512, 517, 517, 522, 522, 528, 532,
1104 : 536, 540, 540, 545, 545, 550, 550, 555, 555, 560,
1105 : 560, 565, 565, 570, 570, 575, 576, 577, 578, 580,
1106 : 582, 585, 586, 587, 589, 592, 594, 595, 596, 597,
1107 : 598, 599, 600, 603, 605, 606, 608, 609, 611, 612,
1108 : 614, 616, 618, 619, 621, 622, 624, 625, 627, 629,
1109 : 630, 631, 634, 636, 637, 639, 640, 641, 643, 644,
1110 : 646, 648, 649, 651, 652, 653, 656, 656, 661, 662,
1111 : 663, 664, 665, 666, 667, 668, 671, 672, 675, 676,
1112 : 677, 678, 679, 681, 682, 683, 684, 685, 686, 687,
1113 : 689, 690, 691, 692, 695, 696, 697, 698, 699, 702,
1114 : 702, 705, 708, 711, 714, 718, 720, 722, 724, 726,
1115 : 729, 730, 732, 733, 735, 737, 738, 741, 742, 743,
1116 : 745, 746, 747, 749, 750, 751, 753, 754, 755, 758,
1117 : 759, 760, 762, 763, 764, 766, 767, 768, 770, 771,
1118 : 772, 774, 775, 776, 778, 779, 780, 782, 783, 784,
1119 : 786, 788, 790, 791, 792, 795, 796, 797, 798, 799,
1120 : 800, 801, 802, 803, 804, 805, 806, 807, 808, 810,
1121 : 811, 812, 813, 814, 815, 816, 817, 818, 819, 820,
1122 : 821, 822, 823, 824, 825, 826, 828, 829, 830, 831,
1123 : 832, 833, 834, 835, 836, 837, 838, 839, 840, 841,
1124 : 842, 843, 844, 845, 846, 847, 848, 849, 850, 852,
1125 : 853, 854, 855, 856, 857, 859, 860, 861, 862, 863,
1126 : 865, 866, 867, 868, 869, 871, 872, 873, 874, 875,
1127 : 877, 878, 879, 880, 881, 882, 883, 884, 885, 886,
1128 : 887, 888, 889, 890, 892, 893, 895, 896, 898, 899,
1129 : 900, 901, 903, 904, 905, 907, 909, 910, 912, 914,
1130 : 915, 917, 917, 921, 925, 929, 931, 932, 935, 936,
1131 : 937, 938, 939, 940, 941, 942, 943, 944, 947, 947,
1132 : 950, 951, 953, 955, 955, 957, 958, 960, 960, 961,
1133 : 961, 963, 963, 963, 965, 966, 968, 969, 970, 971,
1134 : 972, 975, 975, 978, 980, 981, 982, 983, 985, 985,
1135 : 988, 990, 991, 991, 994, 994, 999, 1001, 1002, 1002,
1136 : 1003, 1006, 1006, 1009, 1010, 1012, 1012, 1013, 1013, 1015,
1137 : 1015, 1015, 1018, 1019, 1022, 1022, 1026, 1026, 1030, 1030,
1138 : 1034, 1038, 1042, 1046, 1050, 1052, 1053, 1054, 1056, 1060,
1139 : 1066, 1068, 1069, 1069, 1070, 1073, 1074, 1077, 1079, 1080,
1140 : 1080, 1083, 1083, 1088, 1088, 1093, 1093, 1097, 1097, 1103,
1141 : 1103, 1108, 1108, 1110, 1111, 1114, 1115, 1116, 1117, 1118,
1142 : 1119, 1120, 1122, 1123, 1124, 1125, 1127, 1127, 1128, 1129,
1143 : 1132, 1133, 1134, 1135, 1138, 1139, 1140, 1141, 1142, 1143,
1144 : 1144, 1145, 1147, 1149, 1150, 1151, 1151, 1152, 1154, 1154,
1145 : 1158, 1159, 1160, 1160, 1161, 1163, 1163, 1166, 1166, 1171,
1146 : 1173, 1174, 1175, 1178, 1178, 1180, 1181, 1181, 1182, 1184,
1147 : 1185, 1186, 1187, 1188, 1190, 1191, 1192, 1193, 1195, 1196,
1148 : 1199, 1200, 1201, 1203, 1204, 1205, 1207, 1208, 1209, 1211,
1149 : 1212, 1213, 1214, 1215, 1216, 1218, 1221, 1224, 1225, 1228,
1150 : 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1239,
1151 : 1240, 1241, 1243, 1244, 1245, 1247, 1248, 1249, 1251, 1253,
1152 : 1254, 1256, 1260, 1264, 1264, 1269, 1270, 1272, 1273, 1274,
1153 : 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285,
1154 : 1286, 1288, 1288, 1293, 1294, 1296, 1297, 1298, 1300, 1301,
1155 : 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311,
1156 : 1312, 1313, 1314, 1315, 1316, 1317, 1319, 1319, 1324, 1325,
1157 : 1327, 1328, 1329, 1331, 1332, 1333, 1334, 1335, 1336, 1337,
1158 : 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347,
1159 : 1348, 1349, 1350, 1352, 1352, 1357, 1358, 1360, 1361, 1362,
1160 : 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373,
1161 : 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383,
1162 : 1385, 1385, 1390, 1391, 1393, 1394, 1395, 1397, 1398, 1399,
1163 : 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409,
1164 : 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419,
1165 : 1420, 1422, 1422, 1427, 1428, 1430, 1431, 1432, 1434, 1435,
1166 : 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445,
1167 : 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455,
1168 : 1456, 1457, 1459, 1459, 1464, 1465, 1467, 1468, 1469, 1471,
1169 : 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481,
1170 : 1482, 1484, 1484, 1489, 1490, 1492, 1493, 1494, 1496, 1497,
1171 : 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507,
1172 : 1508, 1509, 1510, 1511, 1512, 1513, 1515, 1515, 1520, 1521,
1173 : 1523, 1524, 1525, 1527, 1528, 1529, 1530, 1531, 1532, 1533,
1174 : 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543,
1175 : 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1553, 1553,
1176 : 1558, 1559, 1561, 1562, 1563, 1565, 1566, 1567, 1568, 1569,
1177 : 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579,
1178 : 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589,
1179 : 1591, 1591, 1596, 1597, 1599, 1600, 1601, 1603, 1604, 1605,
1180 : 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615,
1181 : 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625,
1182 : 1626, 1627, 1628, 1629, 1630, 1632, 1632, 1637, 1638, 1640,
1183 : 1641, 1642, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651,
1184 : 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661,
1185 : 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671,
1186 : 1673, 1673, 1678, 1679, 1681, 1682, 1683, 1685, 1686, 1687,
1187 : 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697,
1188 : 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1708,
1189 : 1708, 1713, 1714, 1716, 1717, 1718, 1720, 1721, 1722, 1723,
1190 : 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733,
1191 : 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1742, 1742, 1747,
1192 : 1748, 1750, 1751, 1752, 1754, 1755, 1756, 1757, 1758, 1759,
1193 : 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769,
1194 : 1770, 1772, 1772, 1777, 1778, 1780, 1781, 1782, 1784, 1785,
1195 : 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795,
1196 : 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1805, 1805,
1197 : 1810, 1811, 1813, 1814, 1815, 1817, 1818, 1819, 1820, 1821,
1198 : 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831,
1199 : 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841,
1200 : 1842, 1844, 1844, 1849, 1850, 1852, 1853, 1854, 1856, 1857,
1201 : 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867,
1202 : 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1878,
1203 : 1878, 1883, 1884, 1886, 1887, 1888, 1890, 1891, 1892, 1893,
1204 : 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903,
1205 : 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913,
1206 : 1914, 1915, 1916, 1918, 1918, 1923, 1924, 1926, 1927, 1928,
1207 : 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939,
1208 : 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949,
1209 : 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1958, 1958, 1963,
1210 : 1964, 1966, 1967, 1968, 1970, 1971, 1972, 1973, 1974, 1975,
1211 : 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985,
1212 : 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
1213 : 1996, 1997, 1998, 1999, 2000, 2002, 2002, 2007, 2008, 2010,
1214 : 2011, 2012, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,
1215 : 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031,
1216 : 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041,
1217 : 2042, 2043, 2044, 2047, 2047, 2052, 2052, 2057, 2057, 2062,
1218 : 2062, 2067, 2067, 2072, 2072, 2077, 2077, 2082, 2082, 2087,
1219 : 2087, 2092, 2092, 2097, 2097, 2102, 2103, 2105, 2105, 2110,
1220 : 2110, 2115, 2115, 2120, 2120, 2125, 2125, 2130, 2130, 2135,
1221 : 2135, 2140, 2140, 2145, 2145, 2150, 2150, 2155, 2155, 2164,
1222 : 2164, 2169, 2169, 2174, 2174, 2179, 2179, 2184, 2184, 2189,
1223 : 2189, 2194, 2194, 2199, 2199, 2204, 2204, 2209, 2213, 2213,
1224 : 2218, 2218, 2223, 2231, 2231, 2236, 2236, 2246, 2246, 2256,
1225 : 2256, 2262, 2262, 2267, 2270, 2272, 2273, 2276, 2276, 2278,
1226 : 2280, 2281, 2284, 2284, 2287, 2290, 2291, 2292, 2293, 2294,
1227 : 2295, 2296, 2297, 2300, 2302, 2303, 2305, 2308, 2308, 2311,
1228 : 2314, 2315, 2318, 2319, 2322, 2343, 2346, 2349, 2352, 2353,
1229 : 2355, 2356, 2359, 2360, 2362, 2363, 2365, 2366, 2368, 2369,
1230 : 2371, 2372, 2374, 2375, 2377, 2378, 2380, 2381, 2383, 2384,
1231 : 2386, 2387, 2389, 2390, 2392, 2393, 2395, 2396, 2398, 2399,
1232 : 2401, 2402, 2404, 2405, 2407, 2408, 2410, 2411, 2413, 2414,
1233 : 2416, 2417, 2419, 2420, 2422, 2423, 2425, 2426, 2428, 2429,
1234 : 2431, 2432, 2434, 2435, 2437, 2439, 2440, 2442, 2443, 2445,
1235 : 2446, 2448, 2449, 2451, 2452, 2454, 2455, 2460, 2461, 2466,
1236 : 2467, 2469, 2470, 2471, 2476, 2477, 2479, 2480, 2482, 2483,
1237 : 2484, 2486, 2487, 2488, 2491, 2492, 2493, 2496, 2497, 2498,
1238 : 2501, 2502, 2503, 2506, 2507, 2508, 2511, 2512, 2513, 2515,
1239 : 2516, 2517, 2519, 2520, 2521, 2523, 2524, 2525, 2527, 2528,
1240 : 2529, 2531, 2532, 2533, 2535, 2536, 2537, 2539, 2540, 2541,
1241 : 2543, 2544, 2545, 2547, 2548, 2549, 2551, 2552, 2553, 2555,
1242 : 2556, 2557, 2559, 2560, 2561, 2563, 2564, 2565, 2567, 2568,
1243 : 2569, 2571, 2572, 2573, 2575, 2576, 2577, 2579, 2580, 2581,
1244 : 2583, 2584, 2585, 2587, 2588, 2589, 2591, 2592, 2593, 2595,
1245 : 2597, 2598, 2599, 2605, 2606, 2607, 2609, 2610, 2611, 2613,
1246 : 2614, 2615, 2621, 2625, 2626, 2628, 2630, 2632, 2633, 2634,
1247 : 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2643, 2644, 2645,
1248 : 2646, 2647, 2648, 2649, 2650, 2653, 2654, 2655, 2656, 2657,
1249 : 2658, 2659, 2660, 2661, 2662, 2663, 2666, 2667, 2668, 2669,
1250 : 2670, 2671, 2672, 2673, 2674, 2675, 2678, 2679, 2680, 2681,
1251 : 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2691, 2692, 2693,
1252 : 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703,
1253 : 2704, 2705, 2706, 2708, 2709, 2710, 2711, 2712, 2713, 2714,
1254 : 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2724, 2725,
1255 : 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735,
1256 : 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2746, 2747,
1257 : 2748, 2749, 2750, 2751, 2754, 2755, 2756, 2757, 2758, 2759,
1258 : 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770,
1259 : 2771, 2772, 2773, 2774, 2776, 2777, 2778, 2779, 2780, 2781,
1260 : 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791,
1261 : 2792, 2793, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802,
1262 : 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2813,
1263 : 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823,
1264 : 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833,
1265 : 2834, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844,
1266 : 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854,
1267 : 2855, 2856, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865,
1268 : 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2876,
1269 : 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886,
1270 : 2887, 2888, 2889, 2890, 2891, 2893, 2894, 2895, 2896, 2897,
1271 : 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2908,
1272 : 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918,
1273 : 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929,
1274 : 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940,
1275 : 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951,
1276 : 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2960, 2961, 2962,
1277 : 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972,
1278 : 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982,
1279 : 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993,
1280 : 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003,
1281 : 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014,
1282 : 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024,
1283 : 3025, 3026, 3027, 3028, 3029, 3030, 3032, 3033, 3034, 3035,
1284 : 3036, 3037, 3039, 3040, 3042, 3043, 3044, 3045, 3046, 3047,
1285 : 3049, 3050, 3051, 3052, 3053, 3055, 3056, 3058, 3059, 3060,
1286 : 3061, 3062, 3069, 3072, 3072, 3074, 3079, 3082, 3082, 3083,
1287 : 3088, 3091, 3091, 3092, 3097, 3100, 3100, 3101, 3106, 3109,
1288 : 3109, 3110, 3110, 3111, 3116, 3119, 3119, 3120, 3120, 3121,
1289 : 3126, 3129, 3129, 3130, 3135, 3138, 3138, 3139, 3144, 3147,
1290 : 3147, 3148, 3153, 3156, 3156, 3157, 3162, 3165, 3165, 3166,
1291 : 3166, 3167, 3172, 3174, 3174, 3175, 3180, 3182, 3182, 3183,
1292 : 3183, 3184, 3189, 3191, 3191, 3192, 3192, 3193, 3193, 3194,
1293 : 3199, 3201, 3201, 3202, 3207, 3209, 3209, 3210, 3210, 3211,
1294 : 3216, 3218, 3218, 3219, 3219, 3220, 3220, 3221, 3235, 3235,
1295 : 3239, 3239, 3243, 3243, 3248, 3248, 3250, 3250, 3255, 3258,
1296 : 3259, 3260, 3261, 3264, 3267, 3267, 3279, 3281, 3282, 3283,
1297 : 3285, 3287, 3288, 3289, 3291, 3293, 3294, 3294, 3295, 3295,
1298 : 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3308,
1299 : 3308, 3314, 3314, 3320, 3320, 3325, 3325, 3330, 3332, 3333,
1300 : 3333, 3334, 3334, 3337, 3337, 3342, 3345, 3346, 3346, 3349,
1301 : 3350, 3350, 3351, 3353, 3354, 3355, 3358, 3359, 3359, 3363,
1302 : 3364, 3364, 3367, 3369, 3371, 3373, 3373, 3377, 3377, 3381,
1303 : 3381, 3385, 3385, 3389, 3389, 3390, 3392, 3392, 3393, 3395,
1304 : 3397, 3399, 3401, 3404, 3407, 3407, 3410, 3413, 3415, 3415,
1305 : 3417, 3417, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426,
1306 : 3427, 3428, 3431, 3433, 3434, 3434, 3436, 3436, 3440, 3441,
1307 : 3445, 3446, 3449, 3450, 3453, 3454, 3455, 3457, 3458, 3459,
1308 : 3462, 3463, 3464, 3465, 3466, 3468, 3468, 3473, 3473, 3477,
1309 : 3478, 3481, 3482, 3485, 3486, 3487, 3490, 3491, 3492, 3493,
1310 : 3494, 3495, 3496, 3497, 3498, 3499, 3502, 3502, 3506, 3507,
1311 : 3510
1312 : };
1313 : #endif
1314 :
1315 : #if OPENMP_DEBUG || YYERROR_VERBOSE || 1
1316 : /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1317 : First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1318 : static const char *const yytname[] =
1319 : {
1320 : "$end", "error", "$undefined", "OMP", "PARALLEL", "FOR", "DO",
1321 : "DECLARE", "DISTRIBUTE", "LOOP", "SCAN", "SECTIONS", "SECTION", "SINGLE",
1322 : "CANCEL", "TASKGROUP", "CANCELLATION", "POINT", "THREAD", "VARIANT",
1323 : "THREADPRIVATE", "METADIRECTIVE", "MAPPER", "IF", "NUM_THREADS",
1324 : "DEFAULT", "PRIVATE", "FIRSTPRIVATE", "SHARED", "COPYIN", "REDUCTION",
1325 : "PROC_BIND", "ALLOCATE", "SIMD", "TASK", "LASTPRIVATE", "WHEN", "MATCH",
1326 : "PARTIAL", "FULL", "LINEAR", "SCHEDULE", "COLLAPSE", "NOWAIT", "ORDER",
1327 : "ORDERED", "MODIFIER_CONDITIONAL", "MODIFIER_MONOTONIC",
1328 : "MODIFIER_NONMONOTONIC", "STATIC", "DYNAMIC", "GUIDED", "AUTO",
1329 : "RUNTIME", "MODOFIER_VAL", "MODOFIER_REF", "MODOFIER_UVAL",
1330 : "MODIFIER_SIMD", "SAFELEN", "SIMDLEN", "ALIGNED", "ALIGN", "NONTEMPORAL",
1331 : "UNIFORM", "INBRANCH", "NOTINBRANCH", "DIST_SCHEDULE", "BIND",
1332 : "INCLUSIVE", "EXCLUSIVE", "COPYPRIVATE", "ALLOCATOR", "INITIALIZER",
1333 : "OMP_PRIV", "IDENTIFIER_DEFAULT", "WORKSHARE", "NONE", "MASTER", "CLOSE",
1334 : "SPREAD", "MODIFIER_INSCAN", "MODIFIER_TASK", "MODIFIER_DEFAULT", "PLUS",
1335 : "MINUS", "STAR", "BITAND", "BITOR", "BITXOR", "LOGAND", "LOGOR", "EQV",
1336 : "NEQV", "MAX", "MIN", "DEFAULT_MEM_ALLOC", "LARGE_CAP_MEM_ALLOC",
1337 : "CONST_MEM_ALLOC", "HIGH_BW_MEM_ALLOC", "LOW_LAT_MEM_ALLOC",
1338 : "CGROUP_MEM_ALLOC", "PTEAM_MEM_ALLOC", "THREAD_MEM_ALLOC", "TEAMS",
1339 : "NUM_TEAMS", "THREAD_LIMIT", "DOUBLE_COLON", "END", "USER", "CONSTRUCT",
1340 : "DEVICE", "IMPLEMENTATION", "CONDITION", "SCORE", "VENDOR", "KIND",
1341 : "HOST", "NOHOST", "ANY", "CPU", "GPU", "FPGA", "ISA", "ARCH",
1342 : "EXTENSION", "AMD", "ARM", "BSC", "CRAY", "FUJITSU", "GNU", "IBM",
1343 : "INTEL", "LLVM", "PGI", "TI", "UNKNOWN", "FINAL", "UNTIED", "MERGEABLE",
1344 : "IN_REDUCTION", "DEPEND", "PRIORITY", "AFFINITY", "DETACH",
1345 : "MODIFIER_ITERATOR", "DEPOBJ", "FINAL_CLAUSE", "IN", "INOUT",
1346 : "MUTEXINOUTSET", "OUT", "TASKLOOP", "GRAINSIZE", "NUM_TASKS", "NOGROUP",
1347 : "TASKYIELD", "REQUIRES", "REVERSE_OFFLOAD", "UNIFIED_ADDRESS",
1348 : "UNIFIED_SHARED_MEMORY", "ATOMIC_DEFAULT_MEM_ORDER",
1349 : "DYNAMIC_ALLOCATORS", "SEQ_CST", "ACQ_REL", "RELAXED", "UNROLL", "TILE",
1350 : "USE_DEVICE_PTR", "USE_DEVICE_ADDR", "TARGET", "DATA", "ENTER", "EXIT",
1351 : "ANCESTOR", "DEVICE_NUM", "IS_DEVICE_PTR", "HAS_DEVICE_ADDR", "SIZES",
1352 : "DEFAULTMAP", "BEHAVIOR_ALLOC", "BEHAVIOR_TO", "BEHAVIOR_FROM",
1353 : "BEHAVIOR_TOFROM", "BEHAVIOR_FIRSTPRIVATE", "BEHAVIOR_NONE",
1354 : "BEHAVIOR_DEFAULT", "CATEGORY_SCALAR", "CATEGORY_AGGREGATE",
1355 : "CATEGORY_POINTER", "CATEGORY_ALLOCATABLE", "UPDATE", "TO", "FROM",
1356 : "TO_MAPPER", "FROM_MAPPER", "USES_ALLOCATORS", "LINK", "DEVICE_TYPE",
1357 : "MAP", "MAP_MODIFIER_ALWAYS", "MAP_MODIFIER_CLOSE",
1358 : "MAP_MODIFIER_MAPPER", "MAP_TYPE_TO", "MAP_TYPE_FROM", "MAP_TYPE_TOFROM",
1359 : "MAP_TYPE_ALLOC", "MAP_TYPE_RELEASE", "MAP_TYPE_DELETE", "EXT_",
1360 : "BARRIER", "TASKWAIT", "FLUSH", "RELEASE", "ACQUIRE", "ATOMIC", "READ",
1361 : "WRITE", "CAPTURE", "HINT", "CRITICAL", "SOURCE", "SINK", "DESTROY",
1362 : "THREADS", "CONCURRENT", "ICONSTANT", "EXPRESSION", "ID_EXPRESSION",
1363 : "EXPR_STRING", "VAR_STRING", "TASK_REDUCTION", "'<'", "'>'", "'='",
1364 : "\"!=\"", "\"<=\"", "\">=\"", "'+'", "'-'", "'*'", "'/'", "'%'", "','",
1365 : "'('", "':'", "')'", "'{'", "'}'", "'&'", "'|'", "'^'", "\",\"",
1366 : "$accept", "expression", "variable", "var_list", "openmp_directive",
1367 : "variant_directive", "fortran_paired_directive", "end_directive", "$@1",
1368 : "end_clause_seq", "metadirective_directive", "$@2",
1369 : "metadirective_clause_optseq", "metadirective_clause_seq",
1370 : "metadirective_clause", "when_clause", "$@3", "$@4", "$@5",
1371 : "when_variant_directive", "context_selector_specification",
1372 : "trait_set_selector", "$@6", "$@7", "trait_set_selector_name",
1373 : "trait_selector_list", "trait_selector", "condition_selector", "$@8",
1374 : "device_selector", "context_kind", "context_kind_name", "context_isa",
1375 : "$@9", "context_arch", "$@10", "implementation_selector", "$@11",
1376 : "context_vendor_name", "construct_selector", "parallel_selector", "$@12",
1377 : "parallel_selector_parameter", "trait_score", "$@13",
1378 : "declare_variant_directive", "$@14", "variant_func_id", "$@15",
1379 : "declare_variant_clause_optseq", "declare_variant_clause_seq",
1380 : "declare_variant_clause", "match_clause", "$@16", "parallel_directive",
1381 : "$@17", "task_directive", "$@18", "taskloop_directive", "$@19",
1382 : "taskloop_simd_directive", "$@20", "taskyield_directive",
1383 : "requires_directive", "$@21", "target_data_directive", "$@22",
1384 : "target_enter_data_directive", "$@23", "target_exit_data_directive",
1385 : "$@24", "target_directive", "$@25", "target_update_directive", "$@26",
1386 : "declare_target_directive", "$@27", "flush_directive", "$@28",
1387 : "end_declare_target_directive", "master_directive", "barrier_directive",
1388 : "taskwait_directive", "$@29", "unroll_directive", "$@30",
1389 : "tile_directive", "$@31", "taskgroup_directive", "$@32",
1390 : "critical_directive", "$@33", "depobj_directive", "$@34",
1391 : "ordered_directive", "$@35", "critical_clause_optseq",
1392 : "depobj_clause_optseq", "depobj", "depobj_clause", "destroy_clause",
1393 : "depobj_update_clause", "update_dependence_type", "critical_name",
1394 : "task_clause_optseq", "taskloop_clause_optseq",
1395 : "taskloop_simd_clause_optseq", "requires_clause_optseq",
1396 : "target_data_clause_optseq", "target_enter_data_clause_optseq",
1397 : "target_exit_data_clause_optseq", "target_clause_optseq",
1398 : "target_update_clause_optseq", "declare_target_clause_optseq",
1399 : "extended_variable", "declare_target_extended_list",
1400 : "flush_clause_optseq", "flush_list", "flush_variable",
1401 : "flush_clause_seq", "flush_memory_order_clause", "atomic_directive",
1402 : "$@36", "atomic_clause_optseq", "atomic_clause_seq",
1403 : "memory_order_clause_seq", "memory_order_clause_seq_after",
1404 : "atomic_clause", "memory_order_clause", "hint_clause", "$@37",
1405 : "read_clause", "write_clause", "update_clause", "capture_clause",
1406 : "seq_cst_clause", "acq_rel_clause", "release_clause", "acquire_clause",
1407 : "relaxed_clause", "taskwait_clause_optseq", "unroll_clause_optseq",
1408 : "tile_clause_optseq", "taskgroup_clause_optseq", "task_clause_seq",
1409 : "taskloop_clause_seq", "taskloop_simd_clause_seq", "requires_clause_seq",
1410 : "target_data_clause_seq", "target_enter_data_clause_seq",
1411 : "target_exit_data_clause_seq", "target_clause_seq",
1412 : "target_update_clause_seq", "declare_target_seq", "taskwait_clause_seq",
1413 : "unroll_clause_seq", "tile_clause_seq", "taskgroup_clause_seq",
1414 : "task_clause", "taskloop_clause", "taskloop_simd_clause",
1415 : "requires_clause", "target_data_clause", "target_enter_data_clause",
1416 : "target_exit_data_clause", "target_clause", "target_update_clause",
1417 : "motion_clause", "target_update_other_clause", "declare_target_clause",
1418 : "taskwait_clause", "unroll_clause", "tile_clause", "taskgroup_clause",
1419 : "final_clause", "$@38", "untied_clause", "mergeable_clause",
1420 : "in_reduction_clause", "in_reduction_identifier",
1421 : "in_reduction_enum_identifier", "depend_with_modifier_clause", "$@39",
1422 : "depend_parameter", "dependence_type", "depend_modifier", "$@40",
1423 : "depend_iterators_definition", "depend_iterator_specifier", "$@41",
1424 : "$@42", "depend_range_specification", "$@43", "$@44",
1425 : "depend_range_step", "depend_enum_type", "depend_depobj_clause", "$@45",
1426 : "dependence_depobj_parameter", "dependence_depobj_type",
1427 : "depend_ordered_clause", "$@46", "dependence_ordered_parameter",
1428 : "dependence_ordered_type", "$@47", "priority_clause", "$@48",
1429 : "affinity_clause", "affinity_parameter", "$@49", "affinity_modifier",
1430 : "$@50", "iterators_definition", "iterator_specifier", "$@51", "$@52",
1431 : "range_specification", "$@53", "$@54", "range_step", "detach_clause",
1432 : "$@55", "grainsize_clause", "$@56", "num_tasks_clause", "$@57",
1433 : "nogroup_clause", "reverse_offload_clause", "unified_address_clause",
1434 : "unified_shared_memory_clause", "atomic_default_mem_order_clause",
1435 : "atomic_default_mem_order_parameter", "dynamic_allocators_clause",
1436 : "ext_implementation_defined_requirement_clause", "device_clause",
1437 : "device_parameter", "$@58", "device_modifier_parameter",
1438 : "device_without_modifier_clause", "device_without_modifier_parameter",
1439 : "$@59", "use_device_ptr_clause", "$@60", "sizes_clause", "$@61",
1440 : "use_device_addr_clause", "$@62", "is_device_ptr_clause", "$@63",
1441 : "has_device_addr_clause", "$@64", "defaultmap_clause", "$@65",
1442 : "defaultmap_parameter", "defaultmap_behavior", "defaultmap_category",
1443 : "uses_allocators_clause", "$@66", "uses_allocators_parameter",
1444 : "allocators_list", "allocators_list_parameter_enum",
1445 : "allocators_list_parameter_user", "to_clause", "to_parameter", "$@67",
1446 : "to_mapper", "$@68", "from_clause", "from_parameter", "$@69",
1447 : "from_mapper", "$@70", "link_clause", "$@71", "device_type_clause",
1448 : "device_type_parameter", "map_clause", "$@72", "map_parameter", "$@73",
1449 : "map_modifier_type", "map_modifier_parameter1",
1450 : "map_modifier_parameter2", "map_modifier1", "map_modifier2",
1451 : "map_modifier3", "map_type", "map_modifier_mapper",
1452 : "task_reduction_clause", "task_reduction_identifier",
1453 : "task_reduction_enum_identifier", "ordered_clause_optseq",
1454 : "ordered_clause_threads_simd_seq", "ordered_clause_depend_seq",
1455 : "ordered_clause_depend", "ordered_clause_threads_simd", "threads_clause",
1456 : "simd_ordered_clause", "teams_distribute_directive", "$@74",
1457 : "teams_distribute_clause_optseq", "teams_distribute_clause_seq",
1458 : "teams_distribute_clause", "teams_distribute_simd_directive", "$@75",
1459 : "teams_distribute_simd_clause_optseq",
1460 : "teams_distribute_simd_clause_seq", "teams_distribute_simd_clause",
1461 : "teams_distribute_parallel_for_directive", "$@76",
1462 : "teams_distribute_parallel_for_clause_optseq",
1463 : "teams_distribute_parallel_for_clause_seq",
1464 : "teams_distribute_parallel_for_clause",
1465 : "teams_distribute_parallel_do_directive", "$@77",
1466 : "teams_distribute_parallel_do_clause_optseq",
1467 : "teams_distribute_parallel_do_clause_seq",
1468 : "teams_distribute_parallel_do_clause",
1469 : "teams_distribute_parallel_for_simd_directive", "$@78",
1470 : "teams_distribute_parallel_for_simd_clause_optseq",
1471 : "teams_distribute_parallel_for_simd_clause_seq",
1472 : "teams_distribute_parallel_for_simd_clause",
1473 : "teams_distribute_parallel_do_simd_directive", "$@79",
1474 : "teams_distribute_parallel_do_simd_clause_optseq",
1475 : "teams_distribute_parallel_do_simd_clause_seq",
1476 : "teams_distribute_parallel_do_simd_clause", "teams_loop_directive",
1477 : "$@80", "teams_loop_clause_optseq", "teams_loop_clause_seq",
1478 : "teams_loop_clause", "target_parallel_directive", "$@81",
1479 : "target_parallel_clause_optseq", "target_parallel_clause_seq",
1480 : "target_parallel_clause", "target_parallel_for_directive", "$@82",
1481 : "target_parallel_for_clause_optseq", "target_parallel_for_clause_seq",
1482 : "target_parallel_for_clause", "target_parallel_do_directive", "$@83",
1483 : "target_parallel_do_clause_optseq", "target_parallel_do_clause_seq",
1484 : "target_parallel_do_clause", "target_parallel_for_simd_directive",
1485 : "$@84", "target_parallel_for_simd_clause_optseq",
1486 : "target_parallel_for_simd_clause_seq", "target_parallel_for_simd_clause",
1487 : "target_parallel_do_simd_directive", "$@85",
1488 : "target_parallel_do_simd_clause_optseq",
1489 : "target_parallel_do_simd_clause_seq", "target_parallel_do_simd_clause",
1490 : "target_parallel_loop_directive", "$@86",
1491 : "target_parallel_loop_clause_optseq", "target_parallel_loop_clause_seq",
1492 : "target_parallel_loop_clause", "target_simd_directive", "$@87",
1493 : "target_simd_clause_optseq", "target_simd_clause_seq",
1494 : "target_simd_clause", "target_teams_directive", "$@88",
1495 : "target_teams_clause_optseq", "target_teams_clause_seq",
1496 : "target_teams_clause", "target_teams_distribute_directive", "$@89",
1497 : "target_teams_distribute_clause_optseq",
1498 : "target_teams_distribute_clause_seq", "target_teams_distribute_clause",
1499 : "target_teams_distribute_simd_directive", "$@90",
1500 : "target_teams_distribute_simd_clause_optseq",
1501 : "target_teams_distribute_simd_clause_seq",
1502 : "target_teams_distribute_simd_clause", "target_teams_loop_directive",
1503 : "$@91", "target_teams_loop_clause_optseq",
1504 : "target_teams_loop_clause_seq", "target_teams_loop_clause",
1505 : "target_teams_distribute_parallel_for_directive", "$@92",
1506 : "target_teams_distribute_parallel_for_clause_optseq",
1507 : "target_teams_distribute_parallel_for_clause_seq",
1508 : "target_teams_distribute_parallel_for_clause",
1509 : "target_teams_distribute_parallel_do_directive", "$@93",
1510 : "target_teams_distribute_parallel_do_clause_optseq",
1511 : "target_teams_distribute_parallel_do_clause_seq",
1512 : "target_teams_distribute_parallel_do_clause",
1513 : "target_teams_distribute_parallel_for_simd_directive", "$@94",
1514 : "target_teams_distribute_parallel_for_simd_clause_optseq",
1515 : "target_teams_distribute_parallel_for_simd_clause_seq",
1516 : "target_teams_distribute_parallel_for_simd_clause",
1517 : "target_teams_distribute_parallel_do_simd_directive", "$@95",
1518 : "target_teams_distribute_parallel_do_simd_clause_optseq",
1519 : "target_teams_distribute_parallel_do_simd_clause_seq",
1520 : "target_teams_distribute_parallel_do_simd_clause", "for_directive",
1521 : "$@96", "do_directive", "$@97", "do_paired_directive", "$@98",
1522 : "simd_directive", "$@99", "for_simd_directive", "$@100",
1523 : "do_simd_directive", "$@101", "do_simd_paired_directive", "$@102",
1524 : "parallel_for_simd_directive", "$@103", "parallel_do_simd_directive",
1525 : "$@104", "declare_simd_directive", "$@105",
1526 : "declare_simd_fortran_directive", "$@106", "proc_name",
1527 : "distribute_directive", "$@107", "distribute_simd_directive", "$@108",
1528 : "distribute_parallel_for_directive", "$@109",
1529 : "distribute_parallel_do_directive", "$@110",
1530 : "distribute_parallel_for_simd_directive", "$@111",
1531 : "distribute_parallel_do_simd_directive", "$@112",
1532 : "parallel_for_directive", "$@113", "parallel_do_directive", "$@114",
1533 : "parallel_loop_directive", "$@115", "parallel_sections_directive",
1534 : "$@116", "parallel_workshare_directive", "$@117",
1535 : "parallel_master_directive", "$@118", "master_taskloop_directive",
1536 : "$@119", "master_taskloop_simd_directive", "$@120",
1537 : "parallel_master_taskloop_directive", "$@121",
1538 : "parallel_master_taskloop_simd_directive", "$@122", "loop_directive",
1539 : "$@123", "scan_directive", "$@124", "sections_directive", "$@125",
1540 : "sections_paired_directive", "$@126", "section_directive",
1541 : "single_directive", "$@127", "single_paired_directive", "$@128",
1542 : "workshare_directive", "workshare_paired_directive", "$@129",
1543 : "cancel_directive", "$@130", "cancellation_point_directive", "$@131",
1544 : "teams_directive", "$@132", "allocate_directive", "$@133",
1545 : "allocate_list", "directive_variable", "directive_varlist",
1546 : "threadprivate_directive", "$@134", "threadprivate_variable",
1547 : "threadprivate_list", "declare_reduction_directive", "$@135",
1548 : "reduction_list", "reduction_identifiers", "typername_variable",
1549 : "typername_list", "combiner", "declare_mapper_directive", "$@136",
1550 : "mapper_list", "mapper_identifier_optseq", "mapper_identifier",
1551 : "type_var", "declare_mapper_type", "declare_mapper_var",
1552 : "parallel_clause_optseq", "teams_clause_optseq", "for_clause_optseq",
1553 : "do_clause_optseq", "do_paried_clause_optseq", "simd_clause_optseq",
1554 : "for_simd_clause_optseq", "do_simd_clause_optseq",
1555 : "do_simd_paried_clause_optseq", "parallel_for_simd_clause_optseq",
1556 : "declare_simd_clause_optseq", "distribute_clause_optseq",
1557 : "distribute_simd_clause_optseq", "distribute_parallel_for_clause_optseq",
1558 : "distribute_parallel_do_clause_optseq",
1559 : "distribute_parallel_for_simd_clause_optseq",
1560 : "distribute_parallel_do_simd_clause_optseq",
1561 : "parallel_for_clause_optseq", "parallel_do_clause_optseq",
1562 : "parallel_loop_clause_optseq", "parallel_sections_clause_optseq",
1563 : "parallel_workshare_clause_optseq", "parallel_master_clause_optseq",
1564 : "master_taskloop_clause_optseq", "master_taskloop_simd_clause_optseq",
1565 : "parallel_master_taskloop_clause_optseq",
1566 : "parallel_master_taskloop_simd_clause_optseq", "loop_clause_optseq",
1567 : "scan_clause_optseq", "sections_clause_optseq",
1568 : "sections_paired_clause_optseq", "single_clause_optseq",
1569 : "single_paired_clause_optseq", "workshare_paired_clause_optseq",
1570 : "cancel_clause_optseq", "cancellation_point_clause_optseq",
1571 : "allocate_clause_optseq", "allocate_clause_seq",
1572 : "declare_reduction_clause_optseq", "declare_mapper_clause_optseq",
1573 : "declare_mapper_clause_seq", "parallel_clause_seq", "teams_clause_seq",
1574 : "for_clause_seq", "do_clause_seq", "simd_clause_seq",
1575 : "for_simd_clause_seq", "do_simd_clause_seq",
1576 : "parallel_for_simd_clause_seq", "declare_simd_clause_seq",
1577 : "distribute_clause_seq", "distribute_simd_clause_seq",
1578 : "distribute_parallel_for_clause_seq",
1579 : "distribute_parallel_do_clause_seq",
1580 : "distribute_parallel_for_simd_clause_seq",
1581 : "distribute_parallel_do_simd_clause_seq", "parallel_for_clause_seq",
1582 : "parallel_do_clause_seq", "parallel_loop_clause_seq",
1583 : "parallel_sections_clause_seq", "parallel_workshare_clause_seq",
1584 : "parallel_master_clause_seq", "master_taskloop_clause_seq",
1585 : "master_taskloop_simd_clause_seq", "parallel_master_taskloop_clause_seq",
1586 : "parallel_master_taskloop_simd_clause_seq", "loop_clause_seq",
1587 : "scan_clause_seq", "sections_clause_seq", "single_clause_seq",
1588 : "single_paired_clause_seq", "cancel_clause_seq",
1589 : "cancellation_point_clause_seq", "allocate_directive_clause",
1590 : "declare_reduction_clause_seq", "declare_mapper_clause",
1591 : "parallel_clause", "teams_clause", "for_clause", "do_clause",
1592 : "simd_clause", "for_simd_clause", "do_simd_clause",
1593 : "parallel_for_simd_clause", "declare_simd_clause", "distribute_clause",
1594 : "distribute_simd_clause", "distribute_parallel_for_clause",
1595 : "distribute_parallel_do_clause", "distribute_parallel_for_simd_clause",
1596 : "distribute_parallel_do_simd_clause", "parallel_for_clause",
1597 : "parallel_do_clause", "parallel_loop_clause", "parallel_sections_clause",
1598 : "parallel_workshare_clause", "parallel_master_clause",
1599 : "master_taskloop_clause", "master_taskloop_simd_clause",
1600 : "parallel_master_taskloop_clause",
1601 : "parallel_master_taskloop_simd_clause", "loop_clause", "scan_clause",
1602 : "sections_clause", "single_clause", "single_paired_clause",
1603 : "construct_type_clause", "if_parallel_clause", "if_parallel_parameter",
1604 : "$@137", "if_task_clause", "if_task_parameter", "$@138",
1605 : "if_taskloop_clause", "if_taskloop_parameter", "$@139",
1606 : "if_target_data_clause", "if_target_data_parameter", "$@140",
1607 : "if_target_parallel_clause", "if_target_parallel_parameter", "$@141",
1608 : "$@142", "if_target_simd_clause", "if_target_simd_parameter", "$@143",
1609 : "$@144", "if_target_enter_data_clause", "if_target_enter_data_parameter",
1610 : "$@145", "if_target_exit_data_clause", "if_target_exit_data_parameter",
1611 : "$@146", "if_target_clause", "if_target_parameter", "$@147",
1612 : "if_target_update_clause", "if_target_update_parameter", "$@148",
1613 : "if_taskloop_simd_clause", "if_taskloop_simd_parameter", "$@149",
1614 : "$@150", "if_simd_clause", "if_simd_parameter", "$@151",
1615 : "if_parallel_simd_clause", "if_parallel_simd_parameter", "$@152",
1616 : "$@153", "if_target_parallel_simd_clause",
1617 : "if_target_parallel_simd_parameter", "$@154", "$@155", "$@156",
1618 : "if_cancel_clause", "if_cancel_parameter", "$@157",
1619 : "if_parallel_taskloop_clause", "if_parallel_taskloop_parameter", "$@158",
1620 : "$@159", "if_parallel_taskloop_simd_clause",
1621 : "if_parallel_taskloop_simd_parameter", "$@160", "$@161", "$@162",
1622 : "num_threads_clause", "$@163", "num_teams_clause", "$@164",
1623 : "align_clause", "$@165", "thread_limit_clause", "$@166", "copyin_clause",
1624 : "$@167", "default_clause", "default_parameter", "default_variant_clause",
1625 : "default_variant_directive", "$@168", "proc_bind_clause",
1626 : "proc_bind_parameter", "bind_clause", "bind_parameter",
1627 : "allocate_clause", "allocate_parameter", "$@169", "$@170",
1628 : "allocator_parameter", "private_clause", "$@171", "firstprivate_clause",
1629 : "$@172", "copyprivate_clause", "$@173", "fortran_copyprivate_clause",
1630 : "$@174", "lastprivate_clause", "lastprivate_parameter", "$@175", "$@176",
1631 : "lastprivate_distribute_clause", "$@177", "lastprivate_modifier",
1632 : "linear_clause", "$@178", "linear_parameter", "$@179", "linear_modifier",
1633 : "aligned_clause", "$@180", "aligned_parameter", "$@181",
1634 : "initializer_clause", "initializer_expr", "expr", "safelen_clause",
1635 : "$@182", "simdlen_clause", "$@183", "nontemporal_clause", "$@184",
1636 : "collapse_clause", "$@185", "ordered_clause", "$@186", "partial_clause",
1637 : "$@187", "fortran_nowait_clause", "nowait_clause", "full_clause",
1638 : "order_clause", "order_parameter", "uniform_clause", "$@188",
1639 : "inbranch_clause", "notinbranch_clause", "inclusive_clause", "$@189",
1640 : "exclusive_clause", "$@190", "allocator_clause", "allocator1_parameter",
1641 : "dist_schedule_clause", "dist_schedule_parameter", "$@191",
1642 : "schedule_clause", "$@192", "schedule_parameter", "schedule_kind",
1643 : "schedule_modifier", "schedule_modifier2", "schedule_enum_modifier",
1644 : "schedule_enum_kind", "shared_clause", "$@193", "reduction_clause",
1645 : "$@194", "reduction_parameter", "reduction_identifier",
1646 : "reduction_modifier", "reduction_enum_identifier",
1647 : "reduction_default_only_clause", "$@195",
1648 : "reduction_default_only_parameter", "reduction_default_only_modifier", YY_NULLPTR
1649 : };
1650 : #endif
1651 :
1652 : # ifdef YYPRINT
1653 : /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1654 : (internal) symbol number NUM (which must be that of a token). */
1655 : static const yytype_int16 yytoknum[] =
1656 : {
1657 : 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1658 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1659 : 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1660 : 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1661 : 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1662 : 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1663 : 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1664 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1665 : 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1666 : 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1667 : 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1668 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1669 : 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1670 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1671 : 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1672 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1673 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1674 : 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1675 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1676 : 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
1677 : 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1678 : 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
1679 : 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
1680 : 485, 486, 60, 62, 61, 487, 488, 489, 43, 45,
1681 : 42, 47, 37, 44, 40, 58, 41, 123, 125, 38,
1682 : 124, 94, 490
1683 : };
1684 : # endif
1685 :
1686 : #define YYPACT_NINF (-2559)
1687 :
1688 : #define yypact_value_is_default(Yyn) \
1689 : ((Yyn) == YYPACT_NINF)
1690 :
1691 : #define YYTABLE_NINF (-2305)
1692 :
1693 : #define yytable_value_is_error(Yyn) \
1694 : 0
1695 :
1696 : /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1697 : STATE-NUM. */
1698 : static const yytype_int16 yypact[] =
1699 : {
1700 : 9209, 1071, 125, 132, 657, 200, -2559, -2559, -2559, -2559,
1701 : -2559, -2559, -2559, 180, -2559, -2559, -2559, -2559, -2559, -2559,
1702 : -2559, 101, 799, 264, -2559, 173, -2559, -2559, -2559, -2559,
1703 : 633, -2559, -2559, -2559, -2559, -2559, 342, -2559, -2559, -2559,
1704 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1705 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1706 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1707 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1708 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1709 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1710 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1711 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1712 : -2559, -2559, -2559, -2559, 339, 380, -2559, -2559, -2559, 287,
1713 : 4338, -2559, 2762, -2559, 2491, -2559, -2559, -2559, 32, -2559,
1714 : 897, -2559, 1359, 885, 830, 1561, 719, 871, 107, -2559,
1715 : 231, 712, 283, 4199, 2992, 128, 487, 333, -2559, 1550,
1716 : 363, 6056, 291, -2559, 4889, 893, 874, 367, 656, -2559,
1717 : 954, -2559, 383, 390, -2559, 2398, 502, 506, 323, 405,
1718 : -2559, -2559, 8630, -2559, 6921, 3114, 3295, 4338, 622, 4338,
1719 : 425, -2559, 433, -2559, -2559, -2559, -2559, -2559, 437, 442,
1720 : -2559, 2585, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1721 : -2559, -2559, -2559, 3933, 462, 498, -2559, -2559, -2559, 500,
1722 : 520, -2559, 1161, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1723 : -2559, -2559, -2559, -2559, -2559, 4012, -2559, 389, -2559, -2559,
1724 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, 529,
1725 : 531, 555, 751, 559, 178, 666, 780, 5378, -2559, 579,
1726 : -2559, 89, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1727 : 605, -2559, 219, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1728 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, 491,
1729 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, 197,
1730 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1731 : -2559, -2559, -2559, 77, 610, -2559, 124, -2559, -2559, -2559,
1732 : 871, 590, 618, -2559, -2559, 113, -2559, -2559, -2559, 639,
1733 : 212, 626, -2559, -2559, 628, -2559, -2559, 261, -2559, -2559,
1734 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1735 : 643, -2559, -2559, -2559, 664, -2559, -2559, 688, -2559, -2559,
1736 : 1840, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1737 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1738 : -2559, 120, 49, -2559, -2559, -2559, -2559, -2559, 5525, 975,
1739 : -2559, 1748, 3451, -2559, -2559, -2559, 146, -2559, -2559, -2559,
1740 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, 393, 901, 387,
1741 : -2559, -2559, -2559, 1009, 209, -2559, -2559, -2559, -2559, -2559,
1742 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1743 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1744 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1745 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1746 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, 710,
1747 : -2559, 5172, 697, -2559, -2559, -2559, -2559, 4868, -2559, -2559,
1748 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1749 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, 701,
1750 : -2559, 718, -2559, 1050, -2559, -2559, -2559, -2559, -2559, -2559,
1751 : -2559, 953, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1752 : -2559, -2559, -2559, 925, 958, -2559, 4077, 6289, 419, -2559,
1753 : 4618, 295, -2559, -2559, 820, 743, 749, -2559, -2559, -2559,
1754 : -2559, -2559, -2559, 2282, -2559, -2559, -2559, -2559, -2559, -2559,
1755 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1756 : 61, -2559, -2559, -2559, -2559, -2559, 772, -2559, -2559, 762,
1757 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, 806, 488, 801,
1758 : -2559, -2559, -2559, -2559, -2559, 808, -2559, 8503, -2559, 2373,
1759 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1760 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, 8503, -2559,
1761 : 2627, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1762 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, 1322,
1763 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1764 : -2559, -2559, -2559, -2559, -2559, -2559, 1003, -2559, -2559, -2559,
1765 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1766 : 1436, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1767 : -2559, -2559, -2559, 6871, -2559, 2260, -2559, -2559, -2559, -2559,
1768 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, 105, 795, 754,
1769 : 797, 818, 822, 824, 835, 892, 1573, 4338, -2559, -2559,
1770 : 670, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1771 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, 95, 139,
1772 : 845, 849, 825, 873, 2762, -2559, -2559, 1682, -2559, -2559,
1773 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1774 : -2559, -2559, -2559, -2559, 2491, -2559, 914, 1084, 56, 602,
1775 : -2559, -2559, -2559, -2559, 443, -2559, -2559, -2559, -2559, -2559,
1776 : -2559, -2559, 955, 883, -2559, 938, 961, -2559, 455, -2559,
1777 : -2559, -2559, -2559, -2559, 7334, -2559, 5322, -2559, 1454, -2559,
1778 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1779 : -2559, -2559, -2559, -2559, 956, 1150, 1359, -2559, 976, 408,
1780 : 885, -2559, 978, 980, 1561, -2559, 987, 719, -2559, 989,
1781 : 1222, -2559, 1572, 107, -2559, -2559, -2559, -2559, -2559, -2559,
1782 : 79, -2559, 1007, 712, -2559, -2559, -2559, 276, -2559, 1018,
1783 : -2559, 65, -2559, -2559, -2559, 87, 1027, 1036, 1028, 1046,
1784 : 4199, -2559, 73, 1047, 2493, 1061, 1064, 3, 1066, 2992,
1785 : -2559, 1067, 133, -2559, 1106, -2559, 5172, -2559, -2559, -2559,
1786 : -2559, -2559, -2559, -2559, -2559, -2559, 3029, -2559, -2559, -2559,
1787 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, 1281, 1288, 6189,
1788 : -2559, 1069, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1789 : -2559, -2559, -2559, -2559, -2559, 1202, -2559, -2559, -2559, -2559,
1790 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, 1078,
1791 : 1080, 1550, -2559, -2559, 1285, 1324, 1285, 469, 1285, 468,
1792 : 732, 1065, -2559, 1097, 1100, -2559, 6237, -2559, -2559, -2559,
1793 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1794 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1795 : -2559, 145, 1111, 1114, 4889, -2559, 1154, -2559, 893, -2559,
1796 : 1118, 1121, -2559, 9505, -2559, 9505, 7090, 1123, -2559, -2559,
1797 : -2559, -2559, -2559, -2559, -2559, -2559, 3320, -2559, -2559, -2559,
1798 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, 1127,
1799 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, 1857, -2559,
1800 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1801 : -2559, -2559, -2559, -2559, 1107, -2559, 6651, 5478, -2559, -2559,
1802 : -2559, -2559, -2559, -2559, -2559, -2559, 3362, -2559, -2559, -2559,
1803 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, 1128, -2559,
1804 : -2559, -2559, 267, -2559, -2559, -2559, -2559, -2559, -2559, 755,
1805 : 769, 1134, 1137, 1140, -2559, 121, -2559, -2559, -2559, -2559,
1806 : -2559, -2559, -2559, -2559, -2559, 5, 263, 1144, 1146, 1148,
1807 : 1152, 1158, 2398, -2559, 502, -2559, -2559, 526, -2559, 772,
1808 : 1159, -2559, -2559, -2559, -2559, -2559, 475, -2559, -2559, -2559,
1809 : -2559, 907, -2559, 1235, -2559, -2559, 1160, 1170, -2559, 3651,
1810 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1811 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1812 : -2559, 8630, -2559, -2559, 6921, -2559, 3114, -2559, 3295, -2559,
1813 : 4338, -2559, 4722, 1173, -2559, -2559, -2559, -2559, -2559, -2559,
1814 : -2559, -2559, 2203, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1815 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, 4338, -2559, 1129,
1816 : -2559, 1174, 1175, -2559, -2559, -2559, -2559, 1177, 1190, 1190,
1817 : 1190, 1190, 2752, -2559, -2559, -2559, 1183, -2559, -2559, -2559,
1818 : -2559, -2559, -2559, -2559, -2559, 211, 1184, 1176, -2559, 3933,
1819 : -2559, -2559, 1189, 1188, 1194, -2559, -2559, -2559, 1192, 906,
1820 : 1211, 1584, 1175, -2559, 1200, 1175, -2559, 4012, -2559, -2559,
1821 : -2559, -2559, -2559, 106, -2559, -2559, -2559, 54, 1210, -2559,
1822 : 1212, -2559, 1365, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1823 : -2559, 1226, 1230, 1239, 751, -2559, -2559, 1233, -26, 1241,
1824 : 1060, -2559, -2559, 540, 562, -2559, 8320, -2559, 2079, -2559,
1825 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1826 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, 7787, -2559,
1827 : 1585, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1828 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, 5378,
1829 : -2559, 1190, 1245, 1253, -2559, 1286, -2559, -2559, -2559, 1257,
1830 : -2559, 1190, 1190, -2559, 1190, -2559, 98, -2559, -2559, -2559,
1831 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, 1276,
1832 : -2559, -2559, 590, -2559, 1282, 3795, 997, -2559, 639, -2559,
1833 : 1278, 1667, 212, -2559, 1289, -2559, 1284, 1190, 1190, 1295,
1834 : 921, 1190, -2559, 1294, -2559, 1287, 1175, -2559, -2559, -2559,
1835 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, 1298, -2559,
1836 : 1013, 1175, -2559, 1297, 1311, 1299, 1175, -2559, 950, -2559,
1837 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1838 : 1815, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1839 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, 5525, -2559, -2559,
1840 : 6708, -2559, 6708, -2559, 5030, -2559, -2559, -2559, -2559, -2559,
1841 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1842 : -2559, -2559, -2559, -2559, 1748, -2559, 3451, -2559, 1175, 1175,
1843 : -2559, 1285, -2559, -2559, -2559, -2559, -2559, -2559, 99, -2559,
1844 : -2559, -2559, -2559, -2559, 1521, 476, 205, 129, 5172, -2559,
1845 : 1315, -2559, 1317, 1175, 1175, -2559, -2559, -2559, -2559, 1320,
1846 : -2559, 1175, 1190, 8839, -2559, -2559, -2559, -2559, -2559, -2559,
1847 : -2559, -2559, 6606, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1848 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1849 : -2559, -2559, 8839, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1850 : -2559, 7139, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1851 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1852 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, 3618,
1853 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1854 : -2559, -2559, -2559, -2559, -2559, -2559, 104, 4077, -2559, 78,
1855 : 6289, -2559, 1498, 1528, 6393, -2559, -2559, -2559, -2559, -2559,
1856 : -2559, -2559, -2559, 4496, -2559, -2559, -2559, -2559, -2559, -2559,
1857 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1858 : -2559, -2559, -2559, -2559, -2559, -2559, 3232, -2559, -2559, -2559,
1859 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1860 : -2559, -2559, 4618, -2559, 233, 1325, 1326, 295, -2559, 1328,
1861 : -2559, 661, -2559, -2559, -2559, -2559, -2559, -2559, 1329, -2559,
1862 : 747, -2559, -2559, -2559, -2559, -2559, -2559, 240, 1339, 15,
1863 : 820, -2559, 1334, -2559, 1335, -2559, -2559, 1340, 1344, 1347,
1864 : 1190, 1190, 1650, 2681, 3562, -2559, -2559, 772, -2559, 541,
1865 : 1175, 323, -2559, 490, 1089, -2559, 760, -2559, 766, 497,
1866 : 102, 8503, -2559, -2559, -2559, -2559, -2559, -2559, 1351, -2559,
1867 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, 156, -2559, -2559,
1868 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1869 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, 114, 6871,
1870 : -2559, -2559, -2559, -2559, -2559, 1352, -2559, -2559, -2559, 554,
1871 : 575, 586, 593, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1872 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, 1355, -2559, 1354,
1873 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1874 : 1373, -2559, 1190, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1875 : -2559, 1357, -2559, 1374, 1375, 1378, 1377, -2559, 1393, -2559,
1876 : 1396, 1380, 1084, -2559, 1445, 1416, 1417, 1576, 1420, 1190,
1877 : -2559, 751, -2559, 1407, 1406, 1412, 1190, -2559, -2559, -2559,
1878 : 1413, 961, -2559, -2559, -2559, 3056, -2559, -2559, -2559, -2559,
1879 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1880 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, 7334,
1881 : -2559, -2559, 3173, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1882 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1883 : -2559, -2559, -2559, -2559, -2559, 5322, -2559, -2559, 615, 1415,
1884 : -2559, -2559, -2559, 1419, 1433, -2559, 635, 649, 678, 1442,
1885 : -2559, 1432, 1190, -2559, -2559, -2559, 446, 641, -2559, -2559,
1886 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1887 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1888 : -2559, -2559, -2559, -2559, 827, -2559, -2559, -2559, 1175, -2559,
1889 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, 1444, -2559,
1890 : -2559, -2559, 682, 756, -2559, 1463, -2559, 765, -2559, -2559,
1891 : 1447, 1190, -2559, -2559, -2559, -2559, -2559, -2559, 1449, -2559,
1892 : 1453, -2559, 1452, 1455, -2559, -2559, 1190, 1456, -2559, -2559,
1893 : 1458, -2559, 5172, -2559, -2559, 7426, -2559, 2795, -2559, -2559,
1894 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1895 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, 7426,
1896 : -2559, 4102, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1897 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1898 : -2559, -2559, -2559, 6189, -2559, -2559, -2559, 1461, 1465, -2559,
1899 : -2559, 1457, 469, -2559, 1694, -2559, 1469, -2559, -2559, -2559,
1900 : -2559, -2559, 1470, 1474, -2559, 1475, -2559, -2559, -2559, 1479,
1901 : 1483, -2559, 1485, 803, 1488, -2559, -2559, -2559, -2559, -2559,
1902 : -2559, -2559, -2559, 5571, -2559, -2559, -2559, -2559, -2559, -2559,
1903 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1904 : -2559, -2559, -2559, -2559, -2559, -2559, 9505, -2559, -2559, -2559,
1905 : -2559, -2559, -2559, -2559, -2559, -2559, 5996, -2559, -2559, -2559,
1906 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1907 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, 9505,
1908 : -2559, 7090, -2559, 1489, 1490, -2559, 1491, -2559, 1494, 1500,
1909 : -2559, 1497, -2559, -2559, 7546, -2559, 7546, -2559, -2559, -2559,
1910 : -2559, -2559, -2559, -2559, -2559, 4907, -2559, -2559, -2559, -2559,
1911 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1912 : -2559, -2559, -2559, -2559, -2559, -2559, 6651, -2559, 5478, -2559,
1913 : -2559, 1565, -2559, 1501, 1190, 1190, -2559, 244, 755, -2559,
1914 : 248, 769, -2559, 1557, -2559, 1503, 1507, 1505, -2559, 1510,
1915 : 1509, 1512, -2559, -2559, -2559, -2559, -2559, 1190, 821, 841,
1916 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, 1513, 1515, -2559,
1917 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, 1526, 1534,
1918 : 1514, 1537, -2559, -2559, 1538, -2559, -2559, -2559, -2559, -2559,
1919 : -2559, 1541, 1540, 1544, 1346, -2559, -2559, -2559, -2559, 1545,
1920 : -2559, 1575, -2559, 966, -2559, 806, -2559, 806, -2559, 1575,
1921 : -2559, 1551, 1552, -2559, 1549, -2559, 118, 4722, -2559, 1553,
1922 : 1554, -2559, 1558, -2559, 1175, -2559, 1190, -2559, -2559, -2559,
1923 : -2559, 1190, 3198, 1190, 1190, 1190, 1190, 1190, -2559, 842,
1924 : -2559, 1246, 778, 1577, -2559, -2559, -2559, 997, -2559, -2559,
1925 : -2559, -36, -2559, 1707, -2559, -2559, -2559, 1571, -2559, -2559,
1926 : -2559, -2559, -2559, 215, 891, -2559, 1574, -2559, -2559, 1190,
1927 : 898, -2559, -2559, 8320, -2559, -2559, 7787, -2559, -2559, -2559,
1928 : 1587, 1190, 3198, -2559, -2559, -2559, -2559, -2559, 904, -2559,
1929 : 1814, 997, -2559, -2559, 1590, 1579, -2559, 1175, -2559, -2559,
1930 : 1190, -2559, -2559, 1175, -2559, 940, 1582, 1190, 1092, -2559,
1931 : 1599, 1190, 1601, -2559, 1603, -2559, -2559, -2559, 4411, -2559,
1932 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1933 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1934 : -2559, -2559, -2559, -2559, 6708, -2559, -2559, 5433, -2559, -2559,
1935 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1936 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1937 : -2559, -2559, -2559, 6708, -2559, -2559, -2559, -2559, 1190, -2559,
1938 : 1602, 294, -2559, -2559, -2559, 1175, -2559, -2559, -2559, -2559,
1939 : 119, 8839, -2559, -2559, 8839, -2559, -2559, -2559, -2559, -2559,
1940 : -2559, -2559, -2559, -2559, 7896, -2559, -2559, -2559, -2559, -2559,
1941 : -2559, -2559, -2559, 5255, -2559, -2559, -2559, -2559, -2559, -2559,
1942 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1943 : -2559, -2559, -2559, -2559, -2559, 7896, -2559, -2559, -2559, -2559,
1944 : -2559, -2559, -2559, -2559, 5661, -2559, -2559, -2559, -2559, -2559,
1945 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1946 : -2559, -2559, -2559, -2559, -2559, -2559, 6393, -2559, -2559, -2559,
1947 : 1604, -2559, 951, 970, 1684, -2559, 1608, -2559, 1685, -2559,
1948 : 1614, -2559, 1617, -2559, -2559, -2559, 1620, -2559, -2559, 1190,
1949 : 1175, 1190, 1601, -2559, -2559, -2559, 1254, -2559, 2681, 1640,
1950 : 1641, 1642, -2559, -2559, 1190, -2559, -2559, 3329, -2559, 2763,
1951 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1952 : -2559, 1631, 1634, 1636, -2559, 1639, -2559, -2559, -2559, -2559,
1953 : -2559, -2559, 972, -2559, 1601, 1601, 1601, 1601, 1601, 1644,
1954 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, 647, 1445, -2559,
1955 : 1809, 1420, 1657, -2559, 1659, 1190, 1601, -2559, -2559, -2559,
1956 : -2559, 1015, -2559, 1175, -2559, -2559, 3795, 1646, -2559, -2559,
1957 : 1601, 1648, -2559, -2559, 1669, 1021, -2559, 1674, 1041, -2559,
1958 : 1601, 1190, 7426, -2559, -2559, 7426, -2559, -2559, 1042, 1535,
1959 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, 1658, 1175, 1175,
1960 : -2559, 1661, 1662, 1663, -2559, 1664, -2559, -2559, 1175, 1175,
1961 : 1175, 1175, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1962 : 4052, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1963 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1964 : -2559, -2559, -2559, -2559, -2559, -2559, 7546, -2559, -2559, -2559,
1965 : -2559, -2559, -2559, -2559, -2559, -2559, 4353, -2559, -2559, -2559,
1966 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1967 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1968 : -2559, -2559, 7546, -2559, -2559, -2559, -2559, -2559, 1738, -2559,
1969 : 1741, -2559, -2559, 1190, 1689, 1190, 1601, -2559, 1601, -2559,
1970 : -2559, -2559, -2559, -2559, -2559, 1675, 1679, 1680, 1190, 1601,
1971 : -2559, -2559, -2559, -2559, 3822, -2559, 1130, -2559, -2559, 1175,
1972 : 1175, -2559, -2559, -2559, -2559, 1175, 1175, -2559, -2559, -2559,
1973 : -2559, 1686, 1681, -2559, -2559, -2559, 1683, 1601, -2559, -2559,
1974 : -2559, -2559, 536, -2559, 1701, 1058, -2559, -2559, -2559, 1697,
1975 : 1599, -2559, 1601, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1976 : 1687, 1668, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1977 : -2559, -2559, -2559, 7896, -2559, -2559, 7896, -2559, -2559, 1175,
1978 : 1690, 1691, 1175, 1601, 1692, 1601, -2559, -2559, -2559, 1601,
1979 : -2559, -2559, 1070, -2559, -2559, -2559, 1175, 1175, 1175, -2559,
1980 : -2559, 1703, -2559, -2559, 1696, 1693, 1699, 1700, 1702, 1704,
1981 : 1706, 1712, 1715, 97, -2559, -2559, -2559, -2559, -2559, -2559,
1982 : -2559, -2559, -2559, -2559, 1711, 1669, -2559, 1717, 1731, -2559,
1983 : -2559, 1175, 1175, 1175, 1175, -2559, -2559, -2559, -2559, -2559,
1984 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1985 : 1827, 1827, 1827, 1827, 1827, 1827, 1827, 536, 1713, -2559,
1986 : 1729, 1736, -2559, 1731, -2559, -2559, -2559, -2559, -2559, -2559,
1987 : 1175, 1175, 1827, 1722, 1742, 4442, 1390, 1743, 1745, 1746,
1988 : 1740, -2559, -2559, 1736, -2559, -2559, -2559, 1744, -2559, -2559,
1989 : 1747, 4338, 1758, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
1990 : -2559, -2559, -2559, -2559, -2559, -2559, 1749, -2559, -2559, -2559,
1991 : -2559, -2559, -2559, 1753, -2559, -2559, -2559, -2559, -2559, 1755,
1992 : 1759, -2559, -2559, -2559, 1757, -2559, -2559, 1760, 1761, 1763,
1993 : 1762, -2559, 1764, -2559, -2559, -2559, -2559, -2559, 1756, 1767,
1994 : 1768, 1775, -2559, -2559, 1776, -2559, -2559, -2559
1995 : };
1996 :
1997 : /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1998 : Performed when YYTABLE does not specify something else to do. Zero
1999 : means the default is an error. */
2000 : static const yytype_int16 yydefact[] =
2001 : {
2002 : 0, 253, 1413, 1415, 0, 1437, 1469, 1471, 1473, 1477,
2003 : 1478, 1485, 287, 0, 1497, 168, 1491, 1419, 255, 293,
2004 : 1482, 279, 1489, 165, 291, 257, 261, 262, 283, 285,
2005 : 270, 280, 281, 276, 346, 289, 0, 60, 7, 8,
2006 : 6, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2007 : 53, 54, 64, 55, 56, 61, 62, 91, 92, 63,
2008 : 66, 67, 68, 65, 69, 70, 71, 85, 72, 86,
2009 : 73, 74, 75, 87, 76, 88, 77, 78, 79, 80,
2010 : 81, 82, 83, 89, 84, 90, 9, 10, 11, 13,
2011 : 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2012 : 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
2013 : 34, 35, 36, 37, 38, 39, 40, 41, 42, 12,
2014 : 43, 57, 58, 59, 1449, 1451, 1453, 1455, 1457, 1459,
2015 : 1528, 1421, 1532, 1423, 1534, 241, 1517, 1502, 1431, 274,
2016 : 0, 1439, 1550, 1582, 0, 1585, 1589, 1595, 395, 1487,
2017 : 0, 170, 0, 1538, 314, 749, 1461, 763, 922, 1530,
2018 : 0, 0, 0, 259, 316, 0, 392, 0, 941, 1129,
2019 : 1157, 264, 0, 0, 272, 326, 390, 335, 358, 295,
2020 : 1, 1427, 1562, 1429, 1564, 1566, 1568, 1570, 1465, 1572,
2021 : 0, 2188, 0, 2229, 2231, 2325, 2196, 2327, 0, 0,
2022 : 254, 1529, 1611, 1707, 1708, 1713, 1709, 1715, 1716, 1710,
2023 : 1711, 1712, 1714, 1540, 0, 0, 2306, 2271, 2280, 0,
2024 : 2275, 1414, 1533, 1617, 1734, 1725, 1726, 1727, 1728, 1731,
2025 : 1732, 1733, 1735, 1730, 1729, 1542, 1416, 1535, 1620, 1744,
2026 : 1736, 1737, 1738, 1739, 1742, 1743, 1745, 1741, 1740, 0,
2027 : 0, 0, 1548, 0, 329, 1441, 1443, 1552, 2243, 0,
2028 : 1438, 1551, 1638, 1819, 1814, 1815, 1816, 1817, 1818, 2346,
2029 : 0, 1470, 1583, 1686, 2076, 2079, 2080, 2077, 2078, 2081,
2030 : 2288, 2290, 1472, 1584, 1689, 2082, 2083, 2279, 1474, 1586,
2031 : 1690, 2088, 2084, 2085, 2086, 2089, 2087, 2235, 1479, 1590,
2032 : 1693, 2093, 2090, 2091, 2092, 2094, 2097, 2099, 2100, 2098,
2033 : 2101, 1486, 1596, 1699, 0, 288, 396, 432, 539, 540,
2034 : 1597, 0, 0, 177, 169, 171, 172, 175, 176, 0,
2035 : 1599, 0, 2265, 2267, 0, 2269, 1420, 1539, 1623, 1746,
2036 : 1752, 1753, 1749, 1750, 1747, 1748, 1751, 1755, 1756, 1754,
2037 : 0, 541, 543, 544, 0, 558, 594, 0, 614, 256,
2038 : 315, 397, 436, 437, 439, 443, 444, 445, 447, 448,
2039 : 435, 438, 446, 440, 441, 442, 762, 588, 761, 758,
2040 : 294, 750, 751, 755, 752, 759, 760, 1463, 1574, 0,
2041 : 781, 765, 924, 2190, 2194, 1490, 1531, 1614, 1717, 1718,
2042 : 1719, 1724, 1720, 1721, 1722, 1723, 278, 253, 1417, 1437,
2043 : 1475, 1480, 1483, 1489, 270, 167, 166, 115, 113, 138,
2044 : 139, 140, 142, 141, 116, 163, 164, 144, 143, 146,
2045 : 145, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2046 : 156, 157, 158, 159, 160, 161, 162, 114, 120, 121,
2047 : 129, 122, 123, 124, 125, 126, 127, 128, 130, 131,
2048 : 132, 133, 134, 135, 119, 118, 136, 137, 117, 0,
2049 : 292, 318, 0, 616, 618, 620, 258, 317, 400, 460,
2050 : 462, 463, 455, 461, 457, 458, 464, 449, 456, 465,
2051 : 451, 452, 453, 459, 450, 454, 621, 622, 623, 0,
2052 : 628, 0, 263, 320, 406, 489, 490, 491, 492, 493,
2053 : 494, 2276, 2281, 284, 393, 430, 537, 536, 643, 286,
2054 : 394, 431, 538, 966, 998, 1100, 943, 1131, 1181, 1241,
2055 : 1159, 0, 266, 268, 0, 0, 0, 647, 649, 651,
2056 : 666, 703, 271, 327, 418, 515, 522, 511, 517, 518,
2057 : 519, 523, 516, 510, 512, 521, 513, 514, 520, 282,
2058 : 391, 427, 535, 386, 387, 388, 0, 277, 337, 341,
2059 : 343, 344, 345, 385, 389, 379, 347, 348, 361, 362,
2060 : 374, 375, 376, 377, 378, 0, 290, 1546, 1450, 1563,
2061 : 1656, 1912, 1913, 1918, 1914, 1920, 1921, 1915, 1916, 1922,
2062 : 1923, 1925, 1926, 1927, 1928, 1924, 1917, 1919, 1546, 1452,
2063 : 1565, 1659, 1929, 1930, 1935, 1931, 1937, 1938, 1932, 1933,
2064 : 1939, 1940, 1942, 1943, 1944, 1941, 1934, 1936, 1454, 1567,
2065 : 1662, 1945, 1946, 1951, 1947, 1953, 1957, 1954, 1948, 1949,
2066 : 1955, 1956, 1958, 1950, 1952, 1456, 1569, 1665, 1959, 1960,
2067 : 1965, 1961, 1967, 1968, 1962, 1963, 1969, 1964, 1966, 1458,
2068 : 1571, 1668, 1970, 1971, 1976, 1972, 1978, 1979, 1973, 1974,
2069 : 1975, 1977, 1467, 1578, 1460, 1573, 1671, 1980, 1981, 1986,
2070 : 1982, 1988, 1989, 1983, 1984, 1985, 1987, 0, 0, 0,
2071 : 0, 0, 0, 0, 0, 0, 0, 0, 1612, 1422,
2072 : 1541, 1626, 1757, 1770, 1762, 1763, 1764, 1760, 1761, 1758,
2073 : 1759, 1772, 1767, 1768, 1769, 1771, 1766, 1765, 0, 0,
2074 : 0, 0, 0, 0, 0, 1618, 1424, 1543, 1629, 1773,
2075 : 1785, 1778, 1779, 1780, 1776, 1777, 1774, 1775, 1787, 1783,
2076 : 1784, 1786, 1782, 1781, 0, 1621, 0, 245, 0, 0,
2077 : 2284, 2286, 2287, 1432, 1549, 1635, 1809, 1810, 1808, 1811,
2078 : 1812, 1813, 1435, 0, 697, 0, 0, 275, 331, 424,
2079 : 532, 533, 534, 1445, 1554, 1447, 1556, 1440, 1553, 1641,
2080 : 1826, 1825, 1820, 1821, 1822, 1829, 1830, 1827, 1828, 1831,
2081 : 1823, 1833, 1824, 1832, 0, 0, 0, 1639, 0, 0,
2082 : 0, 1687, 0, 0, 0, 1691, 0, 0, 1694, 0,
2083 : 0, 1700, 0, 0, 433, 1488, 1598, 1702, 1499, 1500,
2084 : 0, 2204, 0, 0, 173, 1494, 1495, 0, 2192, 0,
2085 : 1492, 1600, 1601, 1704, 1703, 0, 0, 0, 0, 0,
2086 : 0, 1624, 0, 0, 0, 0, 0, 0, 0, 0,
2087 : 398, 0, 0, 753, 0, 756, 1576, 2001, 2003, 2004,
2088 : 1996, 2002, 1998, 1999, 2005, 1462, 1575, 1674, 1990, 1997,
2089 : 2006, 1992, 1993, 1994, 2000, 1991, 1995, 806, 833, 783,
2090 : 764, 766, 767, 770, 771, 772, 777, 773, 774, 778,
2091 : 779, 780, 775, 776, 923, 925, 926, 929, 930, 931,
2092 : 937, 936, 932, 933, 940, 938, 939, 934, 935, 0,
2093 : 0, 0, 1615, 1425, 1536, 0, 1587, 1591, 1593, 763,
2094 : 941, 1157, 300, 0, 0, 260, 319, 403, 477, 479,
2095 : 480, 472, 478, 474, 475, 481, 466, 473, 482, 468,
2096 : 469, 470, 485, 486, 483, 484, 487, 476, 488, 467,
2097 : 471, 0, 0, 0, 0, 401, 0, 629, 0, 407,
2098 : 0, 0, 1030, 968, 1065, 1000, 1102, 0, 952, 958,
2099 : 949, 954, 955, 959, 953, 942, 944, 945, 948, 960,
2100 : 963, 961, 965, 957, 950, 951, 956, 962, 964, 0,
2101 : 1140, 1146, 1137, 1142, 1143, 1147, 1141, 1130, 1132, 1133,
2102 : 1136, 1145, 1138, 1139, 1153, 1150, 1151, 1148, 1149, 1152,
2103 : 1155, 1144, 1156, 1154, 0, 1208, 1183, 1243, 1168, 1174,
2104 : 1165, 1170, 1171, 1175, 1169, 1158, 1160, 1161, 1164, 1176,
2105 : 1177, 1178, 1173, 1166, 1167, 1172, 1179, 1180, 0, 641,
2106 : 645, 265, 321, 409, 496, 498, 499, 497, 495, 322,
2107 : 324, 0, 0, 0, 273, 328, 421, 524, 525, 530,
2108 : 529, 526, 527, 528, 531, 0, 0, 0, 0, 0,
2109 : 0, 0, 0, 419, 0, 428, 340, 0, 338, 0,
2110 : 0, 383, 381, 382, 384, 349, 363, 370, 371, 372,
2111 : 373, 0, 359, 0, 360, 313, 0, 0, 1428, 1547,
2112 : 1632, 1788, 1789, 1794, 1790, 1796, 1797, 1791, 1792, 1798,
2113 : 1799, 1806, 1804, 1805, 1807, 1801, 1802, 1803, 1800, 1793,
2114 : 1795, 0, 1657, 1430, 0, 1660, 0, 1663, 0, 1666,
2115 : 0, 1669, 1580, 0, 2045, 2047, 2048, 2046, 2042, 2043,
2116 : 2049, 1466, 1579, 1680, 2030, 2031, 2036, 2032, 2038, 2039,
2117 : 2033, 2034, 2040, 2044, 2041, 2035, 2037, 0, 1672, 0,
2118 : 2105, 0, 0, 2202, 2201, 2199, 2200, 0, 0, 0,
2119 : 0, 0, 0, 2207, 2208, 2209, 0, 2220, 2221, 2222,
2120 : 2223, 2224, 2225, 2226, 2227, 2215, 0, 0, 1613, 0,
2121 : 1627, 2245, 2238, 0, 0, 2253, 2254, 2255, 2249, 0,
2122 : 0, 0, 0, 2283, 0, 0, 1619, 0, 1630, 1622,
2123 : 243, 251, 242, 246, 247, 250, 1522, 1523, 0, 1519,
2124 : 0, 1520, 0, 1511, 1512, 1505, 1506, 1507, 1508, 1509,
2125 : 1510, 0, 0, 0, 0, 1636, 1436, 0, 0, 0,
2126 : 0, 332, 333, 0, 0, 425, 1558, 1442, 1555, 1644,
2127 : 1834, 1835, 1840, 1836, 1842, 1843, 1837, 1838, 1844, 1845,
2128 : 1847, 1848, 1849, 1850, 1851, 1846, 1839, 1841, 1560, 1444,
2129 : 1557, 1647, 1852, 1853, 1858, 1854, 1860, 1861, 1855, 1856,
2130 : 1862, 1863, 1865, 1866, 1867, 1868, 1864, 1857, 1859, 0,
2131 : 1642, 0, 2303, 0, 1640, 0, 2212, 2213, 2211, 0,
2132 : 1688, 0, 0, 1692, 0, 1695, 0, 1701, 745, 746,
2133 : 747, 748, 738, 739, 740, 741, 742, 743, 744, 0,
2134 : 737, 434, 0, 1498, 0, 0, 0, 174, 0, 1493,
2135 : 0, 0, 0, 1602, 0, 2155, 0, 0, 0, 2259,
2136 : 0, 0, 1625, 0, 2109, 0, 0, 554, 555, 556,
2137 : 557, 547, 548, 549, 550, 551, 552, 553, 0, 546,
2138 : 0, 0, 601, 597, 0, 0, 0, 399, 0, 754,
2139 : 757, 2018, 2020, 2021, 2013, 2019, 2015, 2016, 2022, 1464,
2140 : 1577, 1677, 2007, 2014, 2023, 2009, 2010, 2011, 2026, 2027,
2141 : 2024, 2025, 2028, 2017, 2029, 2008, 2012, 0, 1675, 860,
2142 : 808, 891, 835, 782, 784, 785, 799, 788, 789, 790,
2143 : 795, 791, 792, 796, 802, 803, 800, 801, 804, 797,
2144 : 805, 798, 793, 794, 0, 768, 0, 927, 0, 0,
2145 : 1616, 1544, 1418, 1537, 1476, 1588, 2233, 1481, 1592, 1696,
2146 : 2095, 2096, 1484, 1594, 0, 1181, 0, 0, 0, 404,
2147 : 0, 2113, 0, 0, 0, 402, 625, 626, 627, 0,
2148 : 408, 0, 0, 1032, 977, 983, 974, 979, 980, 984,
2149 : 978, 967, 969, 970, 973, 985, 988, 986, 990, 982,
2150 : 975, 976, 991, 992, 994, 995, 981, 996, 997, 993,
2151 : 987, 989, 1067, 1009, 1015, 1006, 1011, 1012, 1016, 1010,
2152 : 999, 1001, 1002, 1005, 1017, 1020, 1018, 1022, 1014, 1007,
2153 : 1008, 1023, 1024, 1026, 1027, 1013, 1028, 1029, 1025, 1019,
2154 : 1021, 1111, 1117, 1108, 1113, 1114, 1118, 1112, 1101, 1103,
2155 : 1104, 1107, 1119, 1122, 1120, 1124, 1127, 1116, 1109, 1110,
2156 : 1125, 1126, 1115, 1128, 1121, 1123, 0, 0, 946, 0,
2157 : 0, 1134, 1269, 1303, 1210, 1192, 1198, 1189, 1194, 1195,
2158 : 1199, 1193, 1182, 1184, 1185, 1188, 1200, 1201, 1202, 1197,
2159 : 1190, 1191, 1205, 1206, 1196, 1207, 1203, 1204, 1252, 1258,
2160 : 1249, 1254, 1255, 1259, 1253, 1242, 1244, 1245, 1248, 1260,
2161 : 1261, 1262, 1265, 1257, 1250, 1251, 1268, 1266, 1256, 1267,
2162 : 1263, 1264, 0, 1162, 0, 0, 0, 0, 410, 0,
2163 : 267, 323, 412, 503, 501, 502, 500, 504, 0, 269,
2164 : 325, 415, 508, 506, 507, 505, 509, 0, 0, 0,
2165 : 0, 422, 0, 2141, 0, 635, 636, 631, 0, 0,
2166 : 0, 0, 0, 0, 0, 420, 429, 0, 336, 0,
2167 : 0, 363, 356, 368, 369, 352, 0, 355, 0, 296,
2168 : 0, 0, 1633, 1658, 1661, 1664, 1667, 1670, 0, 2065,
2169 : 2067, 2068, 2066, 2062, 2063, 2069, 1468, 1581, 1683, 2050,
2170 : 2051, 2056, 2052, 2058, 2059, 2053, 2054, 2060, 2072, 2073,
2171 : 2070, 2071, 2074, 2064, 2061, 2075, 2055, 2057, 0, 0,
2172 : 1681, 1673, 2103, 2102, 2, 0, 2198, 3, 4, 0,
2173 : 0, 0, 0, 2333, 2334, 2335, 2342, 2343, 2344, 2345,
2174 : 2332, 2336, 2337, 2338, 2339, 2340, 2341, 0, 2329, 0,
2175 : 2331, 2206, 2216, 2214, 2218, 1628, 2239, 2237, 2241, 2250,
2176 : 0, 2246, 0, 2317, 2318, 2320, 2321, 2322, 2323, 2324,
2177 : 2319, 0, 2308, 0, 2313, 2310, 0, 2282, 0, 1631,
2178 : 0, 0, 0, 248, 1606, 0, 0, 1604, 0, 0,
2179 : 1637, 1548, 688, 684, 0, 0, 0, 700, 701, 702,
2180 : 0, 0, 330, 426, 1446, 1559, 1650, 1869, 1870, 1875,
2181 : 1871, 1877, 1878, 1872, 1873, 1879, 1880, 1889, 1887, 1888,
2182 : 1890, 1882, 1883, 1884, 1885, 1886, 1881, 1874, 1876, 0,
2183 : 1645, 1448, 1561, 1653, 1891, 1892, 1897, 1893, 1899, 1900,
2184 : 1894, 1895, 1901, 1902, 1910, 1908, 1909, 1911, 1904, 1905,
2185 : 1906, 1907, 1903, 1896, 1898, 0, 1648, 1643, 0, 0,
2186 : 2302, 2350, 2348, 0, 0, 2210, 0, 0, 0, 0,
2187 : 2173, 0, 0, 1501, 2203, 253, 0, 1437, 1489, 2205,
2188 : 94, 95, 93, 96, 97, 99, 100, 101, 102, 103,
2189 : 104, 105, 106, 107, 108, 109, 110, 111, 98, 112,
2190 : 189, 190, 191, 192, 0, 183, 186, 1496, 0, 2293,
2191 : 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 0, 1603,
2192 : 2153, 2152, 0, 0, 2260, 0, 2256, 0, 2107, 2106,
2193 : 0, 0, 563, 580, 576, 578, 579, 577, 0, 560,
2194 : 0, 562, 0, 0, 598, 596, 0, 0, 591, 592,
2195 : 0, 590, 0, 1678, 1676, 862, 807, 809, 810, 821,
2196 : 822, 813, 814, 823, 815, 824, 820, 816, 817, 825,
2197 : 826, 828, 829, 830, 831, 832, 827, 818, 819, 893,
2198 : 834, 836, 837, 848, 849, 840, 841, 850, 842, 851,
2199 : 847, 843, 844, 852, 853, 855, 856, 857, 858, 859,
2200 : 854, 845, 846, 0, 786, 769, 928, 0, 0, 1426,
2201 : 1545, 0, 0, 1697, 0, 581, 0, 304, 299, 302,
2202 : 303, 301, 0, 0, 2151, 0, 405, 2111, 2110, 0,
2203 : 0, 624, 0, 0, 0, 1041, 1047, 1038, 1043, 1044,
2204 : 1048, 1042, 1031, 1033, 1034, 1037, 1049, 1052, 1050, 1054,
2205 : 1046, 1039, 1040, 1055, 1056, 1063, 1061, 1062, 1064, 1058,
2206 : 1059, 1045, 1060, 1057, 1051, 1053, 0, 971, 1076, 1082,
2207 : 1073, 1078, 1079, 1083, 1077, 1066, 1068, 1069, 1072, 1084,
2208 : 1087, 1085, 1089, 1081, 1074, 1075, 1090, 1091, 1098, 1096,
2209 : 1097, 1099, 1093, 1094, 1080, 1095, 1092, 1086, 1088, 0,
2210 : 1003, 0, 1105, 0, 0, 2123, 0, 947, 0, 0,
2211 : 2129, 0, 1135, 1337, 1271, 1375, 1305, 1219, 1225, 1216,
2212 : 1221, 1222, 1226, 1220, 1209, 1211, 1212, 1215, 1227, 1228,
2213 : 1229, 1224, 1217, 1218, 1232, 1237, 1238, 1235, 1236, 1239,
2214 : 1233, 1223, 1240, 1234, 1230, 1231, 0, 1186, 0, 1246,
2215 : 1163, 0, 2117, 0, 0, 0, 411, 0, 0, 413,
2216 : 0, 0, 416, 0, 2145, 0, 638, 0, 695, 691,
2217 : 0, 0, 423, 2139, 2138, 632, 630, 0, 0, 0,
2218 : 655, 656, 657, 658, 659, 660, 661, 0, 653, 674,
2219 : 675, 676, 677, 678, 679, 680, 681, 682, 0, 668,
2220 : 670, 672, 720, 721, 0, 729, 730, 731, 732, 733,
2221 : 734, 705, 0, 0, 0, 709, 722, 339, 342, 0,
2222 : 357, 0, 364, 0, 365, 0, 354, 0, 353, 0,
2223 : 297, 0, 0, 2161, 0, 1634, 0, 0, 1684, 0,
2224 : 0, 2179, 0, 1682, 0, 2189, 0, 2230, 2232, 2326,
2225 : 2197, 0, 0, 0, 0, 0, 0, 0, 2247, 0,
2226 : 2307, 0, 0, 0, 2272, 2274, 244, 0, 249, 1706,
2227 : 1518, 1607, 1608, 1524, 1521, 1527, 1525, 0, 1503, 1605,
2228 : 1705, 1513, 1514, 0, 0, 1434, 0, 685, 683, 0,
2229 : 0, 699, 334, 0, 1651, 1646, 0, 1654, 1649, 2244,
2230 : 0, 0, 0, 2289, 2291, 2236, 2171, 2170, 0, 1431,
2231 : 0, 0, 178, 184, 0, 0, 2292, 0, 2266, 2268,
2232 : 0, 2257, 2270, 0, 542, 0, 0, 0, 0, 595,
2233 : 0, 0, 600, 615, 0, 589, 1679, 861, 863, 864,
2234 : 875, 876, 867, 868, 877, 869, 878, 874, 870, 871,
2235 : 879, 880, 889, 887, 888, 890, 882, 883, 884, 885,
2236 : 886, 881, 872, 873, 0, 811, 892, 894, 895, 906,
2237 : 907, 898, 899, 908, 900, 909, 905, 901, 902, 910,
2238 : 911, 920, 918, 919, 921, 913, 914, 915, 916, 917,
2239 : 912, 903, 904, 0, 838, 787, 2191, 2195, 0, 1698,
2240 : 0, 0, 2149, 2147, 2146, 0, 617, 619, 2277, 644,
2241 : 0, 0, 1035, 972, 0, 1070, 1004, 1106, 2121, 2119,
2242 : 2118, 2127, 2125, 2124, 1339, 1280, 1286, 1277, 1282, 1283,
2243 : 1287, 1281, 1270, 1272, 1273, 1276, 1293, 1288, 1289, 1294,
2244 : 1290, 1295, 1285, 1278, 1279, 1296, 1297, 1299, 1300, 1284,
2245 : 1301, 1302, 1298, 1291, 1292, 1377, 1314, 1320, 1311, 1316,
2246 : 1317, 1321, 1315, 1304, 1306, 1307, 1310, 1327, 1322, 1323,
2247 : 1328, 1324, 1329, 1319, 1312, 1313, 1330, 1331, 1333, 1334,
2248 : 1318, 1335, 1336, 1332, 1325, 1326, 0, 1213, 1187, 1247,
2249 : 0, 2114, 0, 0, 0, 2133, 0, 414, 0, 2137,
2250 : 0, 417, 0, 2142, 639, 637, 0, 692, 690, 0,
2251 : 0, 0, 634, 648, 650, 652, 0, 667, 0, 0,
2252 : 0, 0, 706, 704, 0, 723, 724, 0, 713, 0,
2253 : 710, 725, 380, 366, 367, 351, 350, 298, 2159, 2157,
2254 : 2156, 0, 0, 0, 2187, 0, 1685, 2175, 2177, 2174,
2255 : 2104, 5, 0, 2330, 2217, 2219, 2240, 2242, 2251, 0,
2256 : 2252, 2309, 2314, 2315, 2316, 2312, 2311, 0, 0, 1609,
2257 : 0, 0, 0, 2285, 0, 0, 687, 698, 1652, 1655,
2258 : 2305, 0, 2349, 0, 736, 185, 182, 0, 2193, 2154,
2259 : 2261, 0, 2108, 545, 0, 0, 561, 607, 0, 603,
2260 : 599, 0, 0, 865, 812, 0, 896, 839, 0, 0,
2261 : 311, 307, 309, 310, 308, 306, 312, 0, 0, 0,
2262 : 2112, 0, 0, 0, 2169, 0, 1036, 1071, 0, 0,
2263 : 0, 0, 1348, 1354, 1345, 1350, 1351, 1355, 1349, 1338,
2264 : 1340, 1341, 1344, 1361, 1356, 1357, 1362, 1358, 1363, 1353,
2265 : 1346, 1347, 1364, 1365, 1373, 1371, 1372, 1374, 1367, 1368,
2266 : 1352, 1369, 1370, 1366, 1359, 1360, 0, 1274, 1386, 1392,
2267 : 1383, 1388, 1389, 1393, 1387, 1376, 1378, 1379, 1382, 1399,
2268 : 1394, 1395, 1400, 1396, 1401, 1391, 1384, 1385, 1402, 1403,
2269 : 1411, 1409, 1410, 1412, 1405, 1406, 1390, 1407, 1408, 1404,
2270 : 1397, 1398, 0, 1308, 1214, 2115, 642, 646, 0, 2130,
2271 : 0, 2134, 2143, 0, 0, 0, 694, 2140, 633, 662,
2272 : 663, 664, 665, 654, 669, 0, 0, 0, 0, 708,
2273 : 712, 711, 726, 727, 0, 716, 0, 714, 728, 0,
2274 : 0, 2181, 2185, 2183, 2180, 0, 0, 2328, 2248, 252,
2275 : 1610, 0, 0, 1515, 1516, 1504, 0, 686, 2347, 2172,
2276 : 181, 179, 0, 2258, 569, 0, 565, 559, 605, 0,
2277 : 0, 602, 593, 866, 897, 2234, 584, 586, 587, 585,
2278 : 0, 0, 305, 2150, 2148, 2165, 2163, 2167, 2162, 2122,
2279 : 2120, 2128, 2126, 0, 1342, 1275, 0, 1380, 1309, 0,
2280 : 0, 0, 0, 640, 0, 693, 671, 673, 735, 707,
2281 : 717, 715, 0, 718, 2160, 2158, 0, 0, 0, 2176,
2282 : 2178, 0, 2262, 689, 0, 234, 0, 0, 0, 0,
2283 : 0, 0, 219, 187, 193, 196, 198, 202, 203, 204,
2284 : 199, 197, 233, 567, 0, 0, 564, 0, 0, 604,
2285 : 582, 0, 0, 0, 0, 1343, 1381, 2116, 2131, 2135,
2286 : 2144, 696, 719, 2182, 2186, 2184, 2264, 2263, 180, 235,
2287 : 238, 238, 238, 238, 238, 238, 238, 0, 0, 194,
2288 : 0, 0, 566, 0, 609, 608, 583, 2166, 2164, 2168,
2289 : 0, 0, 238, 0, 0, 0, 0, 0, 0, 0,
2290 : 0, 195, 188, 0, 571, 570, 606, 0, 2132, 2136,
2291 : 0, 1528, 0, 200, 221, 222, 223, 224, 225, 226,
2292 : 227, 228, 229, 230, 231, 232, 0, 206, 207, 208,
2293 : 209, 210, 211, 0, 212, 214, 217, 220, 568, 0,
2294 : 0, 236, 237, 239, 0, 216, 205, 0, 0, 0,
2295 : 0, 610, 0, 201, 213, 215, 218, 572, 612, 0,
2296 : 574, 0, 611, 240, 0, 573, 613, 575
2297 : };
2298 :
2299 : /* YYPGOTO[NTERM-NUM]. */
2300 : static const yytype_int16 yypgoto[] =
2301 : {
2302 : -2559, 2162, -236, 6137, -2559, -574, -2559, -2559, -2559, -2559,
2303 : 127, -2559, -2559, -2559, -257, -2559, -2559, -2559, -2559, -2559,
2304 : -233, -1864, -2559, -2559, -2559, -2559, -2558, -2559, -2559, -2559,
2305 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
2306 : -2559, -2559, -2559, -1444, -2559, 2015, -2559, -2559, -2559, -2559,
2307 : -2559, -1153, -2559, -2559, 192, -2559, 1855, -2559, 1856, -2559,
2308 : 1858, -2559, -2559, -2559, -2559, 1859, -2559, -2559, -2559, -2559,
2309 : -2559, 1860, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
2310 : 1861, -2559, -2559, -2559, 1862, -2559, 1866, -2559, 1868, -2559,
2311 : 1874, -2559, -2559, -2559, 1877, -2559, -2559, -2559, -2559, -2559,
2312 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
2313 : -2559, -2559, -2559, -2559, 262, -2559, -2559, 963, 397, -2559,
2314 : -2559, 1884, -2559, -2559, -1065, -2559, 398, -2559, -162, -177,
2315 : -2559, -2559, -2559, -2559, -2559, -2559, 1878, 1880, 1881, -2559,
2316 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
2317 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -290, -406,
2318 : -875, -426, -1011, -1562, -1555, -458, -1026, -2559, -2559, -609,
2319 : -456, -2559, -2559, -184, -71, -2559, -10, 53, 7626, -2559,
2320 : -2559, 9390, -2559, -2559, -248, -2559, -2559, -2559, -764, -2559,
2321 : -2559, -818, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
2322 : -2559, -2559, -2559, -2559, -2559, 94, -2559, -2559, -2559, -2559,
2323 : -2559, -2559, -2559, -687, -2559, -2559, -797, -2559, -2559, -2559,
2324 : -2559, -2559, -294, -2559, -241, -2559, -199, -2559, -2559, -2559,
2325 : -2559, -2559, -2559, -2559, 10539, -2559, -2559, -2559, -2559, -2559,
2326 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, 10776, -2559, -2559,
2327 : -2559, 11425, -2559, -2559, -2559, -2559, 11437, -2559, -430, -2559,
2328 : -2559, -2559, -530, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
2329 : -2559, -2559, -2559, -2559, -2559, -2559, 9037, -2559, -2559, -2559,
2330 : -2559, -437, -643, -2559, -2559, -2559, -2136, -1636, -2559, -2559,
2331 : -2559, -2559, -2559, -2559, -307, -302, -2559, -2559, 1911, -2559,
2332 : -2559, -2559, -843, 1912, -2559, -2559, -2559, -1385, -2559, -2559,
2333 : -2559, -2559, -1853, 1913, -2559, -2559, -2559, -1869, -2559, -2559,
2334 : -2559, -2559, -2223, 1914, -2559, -2559, -2559, -2250, 1916, -2559,
2335 : -2559, -2559, -847, 1917, -2559, -2559, -2559, -942, -2559, -2559,
2336 : -2559, -2559, -1447, 1918, -2559, -2559, -2559, -1478, -2559, -2559,
2337 : -2559, -2559, -1940, 1920, -2559, -2559, -2559, -1969, 1921, -2559,
2338 : -2559, -2559, -1473, 1923, -2559, -2559, -2559, -939, 1925, -2559,
2339 : -2559, -2559, -1002, 1927, -2559, -2559, -2559, -1519, 1932, -2559,
2340 : -2559, -2559, -2019, 1935, -2559, -2559, -2559, -1544, -2559, -2559,
2341 : -2559, -2559, -2314, 1937, -2559, -2559, -2559, -2346, -2559, -2559,
2342 : -2559, -2559, -2383, 1938, -2559, -2559, -2559, -2511, 2112, -2559,
2343 : -2559, -2559, -2559, -2559, 201, -2559, 2113, -2559, -2559, -2559,
2344 : -2559, -2559, -2559, -2559, 1954, -2559, 2117, -2559, -2559, -2559,
2345 : -2559, 208, -2559, 226, -2559, 2126, -2559, 1968, -2559, 2130,
2346 : -2559, 1970, -2559, -2559, -2559, 1971, -2559, 1972, -2559, -2559,
2347 : -2559, 1973, -2559, 1974, -2559, 1976, -2559, 1977, -2559, 1982,
2348 : -2559, 1986, -2559, 236, -2559, 2148, -2559, 2150, -2559, -2559,
2349 : -2559, 243, 2152, -2559, -2559, -2559, -2559, -2559, -2559, 2153,
2350 : -2559, 2154, -2559, 246, -2559, 2155, -2559, -2559, 828, -2559,
2351 : -2559, -2559, 836, -2559, -2559, -2559, -2559, -2559, -394, -2559,
2352 : -2559, -2559, -2559, -2559, -2559, -2559, 394, -2559, -2559, -730,
2353 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, 1555, 396,
2354 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
2355 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
2356 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
2357 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
2358 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
2359 : -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
2360 : -2559, -2559, -769, -2559, -2155, -64, -323, -103, -120, -273,
2361 : -634, -581, -1064, -604, -214, -715, -1215, -1229, -1713, -1732,
2362 : -511, -508, -495, -579, -578, -599, -820, -1319, -1112, -1632,
2363 : -183, -2559, -215, -185, -1402, 1844, 199, -2559, -2559, -2559,
2364 : -2559, -2559, -376, -2559, -2559, -2559, -2559, -2559, -926, -2559,
2365 : -2559, -2559, -1548, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
2366 : -2559, -2559, -521, -2559, -2559, -2559, -2559, -2559, -849, -2559,
2367 : -2559, -2559, -144, -2559, -2559, -1158, -2559, -2559, -2559, -1487,
2368 : -2559, -2559, -2559, -2559, 1358, -2559, -2559, -2559, -2559, -2559,
2369 : -2559, -2559, -2559, -2559, -2559, -2559, 9960, -2559, 1290, -2559,
2370 : -2559, -2559, 1167, -2559, 10688, -2559, 7359, -2559, -2559, -2559,
2371 : -2559, 10722, -2559, -170, -2559, 93, -2559, -2559, -2559, -2559,
2372 : -132, -2559, 1905, -2559, -2559, -2559, -2559, -2559, 4449, -2559,
2373 : -2559, -2559, -388, -2559, -2559, 5747, -2559, -2559, -2559, -2559,
2374 : 5840, -2559, -2559, -2559, -2559, -2559, -2559, 4382, -2559, 6333,
2375 : -2559, 6358, -2559, 2773, -2559, 316, -2559, -2559, -2559, -129,
2376 : 9203, -2559, 4998, -2559, -2559, -2559, -2559, -2559, -2559, -2559,
2377 : -2559, -2559, -2559, -2559, 1504, -2559, -2559, 539, -2559, -2559,
2378 : -76, -2559, -2559, -2559, -2559, 8382, -2559, 3700, -2559, -2559,
2379 : -1277, -2559, -2559, -31, -2559, -2559, -2559
2380 : };
2381 :
2382 : /* YYDEFGOTO[NTERM-NUM]. */
2383 : static const yytype_int16 yydefgoto[] =
2384 : {
2385 : -1, 1705, 1708, 1709, 36, 1859, 415, 37, 161, 416,
2386 : 1860, 151, 324, 325, 326, 327, 822, 2566, 2804, 2741,
2387 : 1884, 1885, 2294, 2858, 1886, 2813, 2814, 2815, 2924, 2816,
2388 : 2817, 2913, 2818, 2927, 2819, 2928, 2820, 2929, 2906, 2821,
2389 : 2822, 2872, 2890, 2874, 2932, 1861, 249, 747, 1760, 1212,
2390 : 1213, 1214, 1215, 1761, 1862, 130, 41, 154, 42, 164,
2391 : 43, 471, 44, 45, 165, 46, 531, 47, 1049, 48,
2392 : 1050, 49, 175, 50, 534, 51, 254, 52, 177, 53,
2393 : 54, 55, 56, 176, 57, 166, 58, 167, 59, 148,
2394 : 60, 179, 61, 162, 62, 155, 586, 470, 923, 1998,
2395 : 1999, 2000, 2597, 1096, 359, 476, 925, 502, 1041, 1610,
2396 : 1619, 542, 1054, 767, 1242, 1243, 567, 1077, 1078, 568,
2397 : 569, 63, 178, 576, 1085, 577, 1652, 1086, 1653, 1654,
2398 : 1080, 1087, 1088, 1089, 1090, 580, 581, 582, 583, 584,
2399 : 559, 513, 519, 315, 360, 477, 926, 503, 1042, 1611,
2400 : 1620, 543, 1055, 768, 560, 514, 520, 316, 361, 478,
2401 : 927, 504, 1043, 1612, 1621, 544, 1056, 1057, 1058, 769,
2402 : 561, 515, 521, 317, 362, 843, 363, 364, 365, 1358,
2403 : 1359, 366, 845, 1918, 1919, 1920, 2306, 2745, 2746, 2860,
2404 : 2824, 2885, 2919, 2940, 2945, 1921, 2001, 2380, 2760, 2761,
2405 : 379, 851, 1930, 1931, 2314, 367, 846, 368, 1364, 2311,
2406 : 1365, 1923, 2578, 2579, 2827, 2749, 2865, 2887, 2938, 2942,
2407 : 369, 848, 484, 952, 485, 953, 486, 505, 506, 507,
2408 : 508, 1459, 509, 510, 547, 1638, 2491, 1639, 1060, 2147,
2409 : 2693, 1045, 1605, 522, 961, 1046, 1606, 548, 1067, 549,
2410 : 1068, 550, 1069, 2167, 2168, 2703, 551, 1070, 2178, 2179,
2411 : 2180, 2181, 770, 1774, 2555, 1775, 2266, 1062, 2150, 2695,
2412 : 2151, 2486, 771, 1239, 772, 1780, 552, 1071, 2192, 2708,
2413 : 2193, 2508, 2715, 2194, 2509, 2716, 2195, 2511, 318, 1319,
2414 : 1320, 380, 381, 382, 383, 384, 385, 386, 64, 391,
2415 : 880, 881, 882, 65, 879, 1403, 1404, 1405, 66, 1400,
2416 : 1936, 1937, 1938, 67, 1402, 1960, 1961, 1962, 68, 1935,
2417 : 2317, 2318, 2319, 69, 1959, 2346, 2347, 2348, 70, 392,
2418 : 894, 895, 896, 71, 526, 975, 976, 977, 72, 963,
2419 : 1471, 1472, 1473, 73, 965, 1500, 1501, 1502, 74, 1463,
2420 : 2022, 2023, 2024, 75, 1492, 2055, 2056, 2057, 76, 966,
2421 : 1528, 1529, 1530, 77, 527, 997, 998, 999, 78, 530,
2422 : 1025, 1026, 1027, 79, 1016, 1562, 1563, 1564, 80, 1554,
2423 : 2104, 2105, 2106, 81, 1017, 1585, 1586, 1587, 82, 2094,
2424 : 2412, 2413, 2414, 83, 2096, 2443, 2444, 2445, 84, 2404,
2425 : 2619, 2620, 2621, 85, 2435, 2655, 2656, 2657, 1863, 132,
2426 : 87, 134, 447, 914, 1864, 153, 1865, 213, 90, 235,
2427 : 449, 1431, 91, 587, 92, 608, 1866, 252, 94, 253,
2428 : 1237, 1867, 142, 1868, 257, 1869, 774, 98, 776, 1870,
2429 : 1246, 100, 1268, 101, 182, 102, 184, 103, 185, 104,
2430 : 186, 105, 187, 106, 189, 107, 388, 108, 856, 109,
2431 : 673, 110, 1132, 1871, 143, 1872, 144, 1873, 145, 464,
2432 : 916, 1874, 1875, 146, 466, 917, 116, 467, 918, 1876,
2433 : 147, 1877, 320, 1878, 159, 1879, 152, 330, 826, 827,
2434 : 121, 150, 819, 820, 122, 251, 1231, 1232, 2262, 2263,
2435 : 2735, 123, 250, 1218, 1219, 1220, 1221, 1222, 2256, 200,
2436 : 395, 221, 236, 1432, 336, 699, 726, 1989, 1098, 753,
2437 : 260, 777, 1247, 1269, 1784, 1811, 588, 609, 628, 645,
2438 : 659, 674, 865, 1379, 1141, 1676, 271, 282, 288, 1434,
2439 : 298, 1437, 1442, 311, 815, 830, 831, 2258, 2250, 2251,
2440 : 201, 396, 222, 237, 337, 700, 727, 1099, 754, 261,
2441 : 778, 1248, 1270, 1785, 1812, 589, 610, 629, 646, 660,
2442 : 675, 866, 1380, 1142, 1677, 272, 283, 289, 299, 1438,
2443 : 312, 816, 832, 2259, 2252, 202, 397, 223, 238, 338,
2444 : 701, 728, 1100, 755, 262, 779, 1249, 1271, 1786, 1813,
2445 : 590, 611, 630, 647, 661, 676, 867, 1381, 1143, 1678,
2446 : 273, 284, 290, 300, 1439, 313, 203, 1161, 2224, 370,
2447 : 1345, 2303, 487, 1452, 2385, 1048, 2133, 2779, 978, 2086,
2448 : 2609, 2608, 1000, 2091, 2611, 2610, 1616, 2476, 2870, 1625,
2449 : 2480, 2871, 553, 1634, 2490, 1063, 2145, 2782, 936, 2005,
2450 : 2599, 2598, 339, 1336, 2297, 1101, 2214, 2720, 2719, 2025,
2451 : 2605, 2833, 2832, 2834, 811, 1851, 2563, 1144, 2222, 2725,
2452 : 2726, 1679, 2525, 2796, 2798, 2797, 204, 688, 398, 909,
2453 : 833, 1330, 399, 910, 205, 693, 206, 1167, 328, 1324,
2454 : 1325, 207, 1176, 274, 1299, 208, 1186, 2233, 2234, 1187,
2455 : 209, 690, 210, 691, 1440, 1991, 304, 806, 1109, 1193,
2456 : 2235, 2236, 266, 794, 1194, 756, 2539, 1199, 2237, 1200,
2457 : 757, 2571, 1340, 2300, 2260, 2732, 2847, 1112, 836, 758,
2458 : 837, 1114, 839, 1115, 721, 1116, 723, 516, 960, 295,
2459 : 231, 517, 1117, 1204, 759, 1233, 760, 761, 285, 802,
2460 : 286, 803, 834, 1898, 268, 1293, 1839, 1118, 720, 1751,
2461 : 1752, 1753, 2545, 1754, 1755, 211, 692, 212, 694, 1727,
2462 : 1728, 1729, 1730, 279, 798, 1843, 1844
2463 : };
2464 :
2465 : /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
2466 : positive, shift that token. If negative, reduce the rule whose
2467 : number is the opposite. If YYTABLE_NINF, syntax error. */
2468 : static const yytype_int16 yytable[] =
2469 : {
2470 : 225, 579, 240, 889, 1061, 2058, 2107, 1382, 2196, 1028,
2471 : 264, 275, 868, 292, 302, 636, 578, 305, 1842, 1984,
2472 : 2293, 340, 373, 2080, 1603, 2047, 1655, 402, 1657, 1631,
2473 : 1700, 1608, 490, 1810, 1548, 1662, 1993, 1474, 1425, 1503,
2474 : 1531, 1836, 2129, 556, 2127, 2218, 1398, 797, 1427, 2139,
2475 : 597, 1449, 618, 638, 654, 668, 2082, 683, 2510, 1551,
2476 : 1763, 1933, 1333, 1290, 841, 2142, 1190, 1129, 824, 702,
2477 : 850, 955, 2274, 912, 805, 855, 1158, 959, 1122, 853,
2478 : 2277, 704, 1131, 2392, 2345, 1073, 2467, 2395, 1787, 801,
2479 : 225, 729, 2374, 479, 862, 2583, 2549, 2586, 2683, 2647,
2480 : 809, 2805, 1125, 731, 1075, 240, 2211, 1343, 2083, 1159,
2481 : 1814, 2088, 1849, 780, 808, 193, 194, 745, 2219, 725,
2482 : 1334, 199, 2521, 2601, 258, 782, 828, 38, 405, 264,
2483 : 1216, 217, 814, 495, 1127, 2212, 829, 698, 322, 199,
2484 : 275, 1191, 218, 1211, 1051, 2777, 1208, 863, 1362, 323,
2485 : 1235, 2522, 2602, 376, 480, 259, 199, 292, 131, 1245,
2486 : -1526, 376, 2002, 541, 218, 133, 376, 302, 1772, 1436,
2487 : 305, 192, 193, 194, 195, 1632, 269, 933, 199, 1668,
2488 : 191, 192, 193, 194, 195, 196, 197, 198, 199, 864,
2489 : 377, 214, 40, 1195, 1196, 1197, 215, 149, 217, 218,
2490 : 219, 88, 355, 1773, 140, 340, 163, 2548, 95, 2806,
2491 : 2148, 2807, 2808, 920, 332, 333, 334, 481, 335, 2809,
2492 : 2810, 2811, 900, 193, 194, 224, 96, 239, 373, 199,
2493 : 934, 1052, 1363, 141, 1633, 263, 111, 2774, 291, 301,
2494 : 287, 319, 169, 114, 2149, 193, 119, 372, 2089, 269,
2495 : 393, 394, 401, 156, 214, 2859, 871, 489, 483, 887,
2496 : 902, 217, 355, 219, 402, 2836, 2220, 297, 555, 377,
2497 : 2523, 160, 935, 828, 2084, 596, -1433, 617, 637, 653,
2498 : 667, 2003, 682, 829, 331, 1217, 270, 193, 417, 2603,
2499 : 1038, 197, 854, 351, 352, 353, 214, 1450, 356, 2881,
2500 : -1524, 215, 1344, 217, 1074, 219, 703, 2090, 1332, 473,
2501 : 474, 475, 921, 763, 1053, 224, 1335, 857, 1038, 332,
2502 : 333, 334, 1322, 335, 1192, 1323, 2812, 1850, 730, 810,
2503 : 239, 2213, 2775, 2085, 1160, 2754, 2778, 389, 314, 939,
2504 : 2857, 796, 180, 2221, 378, 490, 1995, 2524, 2604, 1762,
2505 : 781, 1992, 378, 418, 263, 314, 823, 378, 2004, 2753,
2506 : 893, 908, 448, 852, 1630, 405, 390, 813, 1198, 451,
2507 : 763, 2711, 181, 2717, 1451, 764, 765, 536, 858, 1138,
2508 : 171, 591, 291, 612, 631, 648, 662, 452, 677, 911,
2509 : 2835, 915, 301, 2730, 984, 1002, 1996, 463, 1033, 125,
2510 : 928, 1092, 126, 2131, 465, 536, 479, 468, 2217, 319,
2511 : 2143, 556, 1296, 183, 2474, 193, 194, 1094, 2478, 197,
2512 : 141, 199, 766, 1014, 214, 2607, 1297, 2565, 1997, 215,
2513 : 216, 217, 1139, 219, 220, 1039, 1040, 1635, 1636, 188,
2514 : 2590, 859, 2591, 2592, 2593, 2594, 495, 2684, 230, 807,
2515 : 245, 2606, 1015, 372, 1732, 1107, -2228, 597, 2551, 636,
2516 : 2552, 929, 2132, 1039, 1040, 135, 541, 480, 128, 2144,
2517 : 129, 800, 1444, 2475, 1140, 321, 1107, 2479, 618, 2289,
2518 : 1994, 870, 861, 215, 886, 901, 573, 563, 574, 401,
2519 : 868, 2584, 1637, 889, 541, 1565, 1588, 638, 602, 1037,
2520 : 623, 390, 333, 334, 2587, 1028, 750, 751, 752, 1015,
2521 : 1607, 1298, 218, 840, 654, 2595, 2596, 193, 194, 1328,
2522 : 387, 197, 1329, 199, 930, 1061, 214, 329, 668, 713,
2523 : 481, 1382, 1460, 406, 287, 469, 564, 565, 230, 1436,
2524 : 2805, 1150, 575, 683, 2559, 518, 1474, 1370, 1455, 1666,
2525 : 1369, 740, 1667, 245, 532, 1735, 702, 2107, 1701, 1367,
2526 : 2558, 533, 1376, 1899, 938, 932, 1327, 1342, 704, 2058,
2527 : 489, 483, 862, 2006, 1837, 1503, 2477, 1934, 2791, 1986,
2528 : 2793, 1985, 1294, 729, 2469, 2526, 2481, 2223, 1430, 1303,
2529 : 2379, 2206, 225, 2208, 2275, 731, 2136, 2215, 2375, 2393,
2530 : 2130, 2396, 1134, 1531, 2152, 2087, 2278, 2468, 2397, 2248,
2531 : 1663, 2092, 240, 2316, 1645, 1377, 1664, 1300, 1646, 983,
2532 : 1001, 1206, 1305, 1032, 1209, 863, 1759, 1787, 1572, 1321,
2533 : 1770, 1665, 933, 1188, 780, 1783, 555, 168, 573, 563,
2534 : 574, 744, 1256, 355, 1278, 2290, 782, 763, 2806, 585,
2535 : 2807, 2808, 764, 765, 1814, 672, 2842, 1378, 2809, 2810,
2536 : 2811, 523, 524, 1135, 264, 525, 169, 864, 275, 687,
2537 : 563, 233, 292, 247, 141, 302, 135, 689, 305, 136,
2538 : 1106, 695, 596, 2293, 1609, 934, 696, 137, 564, 565,
2539 : 138, 1223, 1224, 331, 575, 1234, 193, 194, 1244, 773,
2540 : 197, 1106, 199, 617, 218, 214, 718, 575, 340, 575,
2541 : 215, 216, 217, 218, 219, 220, 575, 373, 1651, 564,
2542 : 565, 605, 637, 625, 1385, 900, 1136, 935, 332, 333,
2543 : 334, 1091, 335, 2201, 871, 1406, 170, 322, 524, 653,
2544 : 2209, 525, 719, 804, 722, 193, 194, 1411, 323, 887,
2545 : 566, 199, 716, 667, 763, 1880, 1881, 1882, 1883, 764,
2546 : 765, 233, 287, 902, -2273, 2812, 1149, 1137, 682, 1647,
2547 : 1618, 536, 1648, 746, 742, 748, 247, 2320, 1609, 402,
2548 : 1163, 1164, 1165, 1781, 1647, 1371, 1782, 2198, 591, 297,
2549 : 218, 215, 1618, 703, 939, 857, 1536, 2226, 218, 749,
2550 : 2227, 2349, 355, 762, 171, 172, 173, 157, 158, 612,
2551 : 333, 334, 218, 775, 750, 751, 752, 224, 2226, 818,
2552 : 730, 2228, 490, 795, 174, 2542, 2543, 139, 631, 2226,
2553 : 1166, 1480, 2229, 1509, 1538, 2544, 2226, 239, 1673, 2230,
2554 : 1225, 1226, 1227, 1051, 984, 648, 1372, 1592, 1138, 799,
2555 : 893, 1228, 1229, 1230, 812, 928, 858, 536, 2226, 662,
2556 : 541, 2279, 821, 218, 908, 536, 1002, 1255, 825, 1277,
2557 : 835, 781, 838, 2718, 677, 306, 307, 308, 2226, 536,
2558 : 405, 2283, 309, 479, 1570, 1594, 310, 842, 355, 263,
2559 : 2291, 1674, 2226, 2729, 1033, 2284, 355, 291, 280, 281,
2560 : 301, 1139, 255, 256, 2138, 602, 319, 2058, 844, 1373,
2561 : 355, 193, 511, 512, 1656, 269, 929, 2622, 2107, 859,
2562 : 214, 2226, 1189, 495, 2285, 2226, 623, 217, 2298, 219,
2563 : 1052, 1658, 847, 1675, 913, 1880, 1881, 1882, 1883, 922,
2564 : 556, 951, 372, 1140, 480, 956, 541, 957, 2658, 1384,
2565 : 1375, 1081, 270, -2278, 541, 2533, 636, 1081, 962, 870,
2566 : 861, 355, 528, 529, 573, 563, 574, 1107, 541, 1173,
2567 : 1174, 1175, 1410, 1250, 886, 1272, 1082, 1083, 1084, 930,
2568 : 877, 878, 1082, 1083, 1084, 1577, 1601, 1065, 901, 597,
2569 : 2141, 964, 618, 1066, 638, 1037, 654, 1081, 668, 2226,
2570 : 1685, 1076, 2299, 2205, 401, 2562, 1079, 481, 2226, 2207,
2571 : 1150, 2302, 763, 1053, 564, 565, 713, 919, 158, 938,
2572 : 932, 868, 1082, 1083, 1084, 683, 190, 191, 192, 193,
2573 : 194, 195, 196, 197, 198, 199, 889, 1095, 214, 1162,
2574 : 230, 1168, 1565, 740, 1093, 702, 2226, 489, 483, 2389,
2575 : 1203, 496, 497, 498, 499, 500, 1479, 704, 1508, 1537,
2576 : 245, 1669, 1169, 729, 2226, 1588, 1170, 2493, 1171, 983,
2577 : 2291, 1134, 2292, 1445, 529, 731, 124, 125, 2718, 1172,
2578 : 126, 1028, 127, 1382, 2226, 2226, 1376, 2494, 2540, 1201,
2579 : 1261, 1001, 1283, 1202, 192, 193, 194, 195, 1081, 269,
2580 : 1061, 199, 501, 862, 258, 1880, 1881, 1882, 1883, 1569,
2581 : 1593, 217, 1552, 1553, 1793, 1787, 1256, 1205, 1814, 1032,
2582 : 1474, 1211, 1670, 1082, 1083, 1084, 575, 1238, 605, 573,
2583 : 563, 574, 1135, 2622, 2226, 259, 1820, 2553, 1278, 1377,
2584 : 2515, 2226, 2516, 1210, 2557, 780, 128, 2226, 129, 625,
2585 : 2564, 1740, 1741, 1503, 933, 1531, 863, 782, 1912, 1913,
2586 : 2320, 1914, 1915, 1916, 1917, 555, 1905, 1906, 2415, 2658,
2587 : 2446, 1928, 1929, 393, 394, 1572, 1777, 1778, 1779, 564,
2588 : 565, 1378, 1240, 2226, 1236, 1671, 2573, 193, 194, 2349,
2589 : 1241, 197, 1106, 199, 2226, 1136, 214, 2686, 864, 1292,
2590 : 1291, 215, 216, 217, 218, 219, 220, 934, 496, 497,
2591 : 498, 499, 500, 2226, 596, 2226, 2687, 617, 2727, 637,
2592 : 1295, 653, 1301, 667, 1302, 1684, 1672, 192, 193, 194,
2593 : 195, 1304, 269, 1306, 199, 1149, 1137, 214, 1913, 716,
2594 : 1914, 1915, 1916, 1917, 217, 809, 219, 377, 1385, 935,
2595 : 682, 1326, 573, 563, 574, 1128, 900, 1339, 2226, 501,
2596 : 1406, 2738, 1331, 233, 2226, 871, 742, 2747, 1947, 270,
2597 : 1971, 1337, 1411, 2185, 2186, 2187, 2188, 2189, 2190, 1485,
2598 : 1338, 1514, 703, 247, 2750, 2226, 2622, 2751, 2755, 2658,
2599 : 1341, 1346, 887, 958, 902, 1745, 1746, 1747, 1748, 1749,
2600 : 730, 2825, 564, 565, 2826, 1360, 393, 394, 1361, 1371,
2601 : 1366, 1368, 1424, 1265, 1399, 1286, 939, 1456, 1457, 1458,
2602 : 591, 1401, 1428, 612, 1429, 631, 857, 648, 218, 662,
2603 : 256, 2031, 2203, 2185, 2186, 2187, 2188, 2189, 2190, 1792,
2604 : 1480, 1255, 554, 1446, 1447, 190, 191, 192, 193, 194,
2605 : 195, 196, 197, 198, 199, 1453, 677, 214, 1454, 1536,
2606 : 2064, 1819, 1461, 1277, 217, 1462, 219, 1546, 1841, 1509,
2607 : 1372, 1549, 1604, 2792, 1702, 1716, 1717, 928, 1627, 1718,
2608 : 1719, 1628, 781, 1673, 1629, 193, 194, 858, 1640, 270,
2609 : 1641, 199, 1642, 893, 258, 908, 1643, 1538, 573, 563,
2610 : 574, 217, 1644, 1650, 1704, 1138, 1659, 2875, 2876, 2877,
2611 : 2878, 2879, 2880, 724, 1660, 984, 1592, 1698, 1002, 1707,
2612 : 1703, 1734, 2112, 1706, 2320, 259, 1081, 2349, 2891, 1731,
2613 : 1733, 1570, 1736, 1373, 1737, 1739, 1674, 602, 929, 1738,
2614 : 623, 2699, 2700, 2701, 2702, 1426, 1757, 1250, 564, 565,
2615 : 859, 1082, 1083, 1084, 1594, 1742, 1764, 1765, 1139, 190,
2616 : 191, 192, 193, 194, 195, 196, 197, 198, 199, 1272,
2617 : 1033, 1766, 1767, 1384, 1375, 1768, 2202, 331, 1675, 1771,
2618 : 193, 194, 2210, 1769, 197, 1776, 199, 2415, -2304, 214,
2619 : 870, 861, 2204, 1946, 215, 1970, 217, 1410, 219, 1840,
2620 : 1140, 930, 1489, 1845, 1518, 713, 2907, 2908, 2909, 2910,
2621 : 2911, 2912, 332, 333, 334, 1720, 335, 886, 2446, 901,
2622 : 259, 1852, 1888, 740, 1721, 1722, 1723, 878, 1854, 1107,
2623 : 1901, 2093, 1577, 1909, 1900, 1724, 1725, 1726, 1904, 1908,
2624 : 1924, 938, 932, 1911, 1926, 1685, 2505, 2506, 2184, 2185,
2625 : 2186, 2187, 2188, 2189, 2190, 1601, 2030, 1925, 884, 898,
2626 : 2007, 2095, 1802, 2008, 1261, 1479, 2011, 1150, 2146, 2134,
2627 : 2135, 1037, 2137, 2140, 1126, 192, 193, 194, 195, 2153,
2628 : 269, 2154, 199, 2155, 1829, 2063, 1283, 193, 194, 2507,
2629 : 2156, 197, 2157, 199, 1508, 2216, 214, 2232, 2225, 1939,
2630 : 2231, 1963, 2238, 2240, 287, 1565, 1669, 1588, 190, 191,
2631 : 192, 193, 194, 195, 196, 197, 198, 199, 2242, 2241,
2632 : 214, 2243, 1537, 2244, 2247, 215, 216, 217, 1134, 219,
2633 : 220, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1376, 2245,
2634 : 983, 1750, 2246, 1001, 541, 2253, 2255, 2111, 2257, 2261,
2635 : 2267, 259, 2268, 1793, 393, 394, 1569, 2269, 2280, 2271,
2636 : 605, 1308, 1309, 625, 2281, 1310, 1311, 1670, 1177, 1178,
2637 : 1179, 1180, 1181, 1182, 1183, 1184, 2282, 1256, 2287, 1593,
2638 : 1820, 883, 897, 2756, 2757, 2758, 2759, 2286, 1130, 1135,
2639 : 2296, 1377, 2301, 2304, 2307, 1032, 2308, 1030, 2309, 2310,
2640 : 1553, 2378, 2313, 1278, 2315, 331, 1289, 2376, 193, 194,
2641 : 554, 2377, 197, 2381, 199, 2382, 1952, 214, 1976, 2383,
2642 : 2415, 2384, 215, 216, 217, 2386, 219, 220, 716, 2387,
2643 : 1671, 2388, 2390, 1378, 2398, 2399, 2470, 2400, 1572, 2401,
2644 : 332, 333, 334, 2403, 335, 2402, 742, 2471, 2482, 2483,
2645 : 2484, 2485, 1136, 2487, 1106, 2488, 2446, 2489, 2499, 2495,
2646 : 2496, 792, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896,
2647 : 1684, 1672, 2497, 192, 193, 194, 195, 2498, 269, 2040,
2648 : 199, 2500, 2501, 258, 2502, 1806, 2503, 1265, 1485, 2504,
2649 : 217, 2512, 1149, 1137, 575, 2520, 2518, 2519, 2527, 2528,
2650 : 1385, 1312, 1185, 2328, 2529, 1947, 2546, 1832, 2073, 1286,
2651 : 1313, 1314, 1315, -1526, 259, 2550, 2560, 1514, 2554, 255,
2652 : 1029, 1316, 1317, 1318, 2567, 2568, 2574, 2357, 2577, 1971,
2653 : 2160, 2161, 2162, 2163, 2164, 2165, 2166, 1835, 924, 1406,
2654 : 192, 193, 194, 195, 2226, 197, 2589, 199, 2581, 2685,
2655 : 214, 1411, 393, 394, 2689, 215, 2688, 217, 2690, 219,
2656 : 2691, 1371, 2692, 350, 2694, 192, 193, 194, 195, 2705,
2657 : 2706, 2707, 199, 332, 333, 334, 2721, 335, 1792, 2722,
2658 : 989, 2723, 2731, 193, 194, 2724, 2734, 197, 2736, 199,
2659 : 2728, 2031, 214, 2742, 2743, 891, 1897, 215, 2744, 217,
2660 : 218, 219, 1255, 2748, 2762, 1819, 2765, 2766, 2767, 2780,
2661 : 2768, 1536, 2781, 2831, 1480, 332, 333, 334, 2784, 335,
2662 : 2801, 2786, 1372, 1673, 2064, 2787, 2788, 2802, 1277, 2803,
2663 : 2823, 2828, 2846, 2830, 1207, 2838, 2839, 2849, 2841, 1956,
2664 : 2873, 1980, 2848, 2850, 2851, 2861, 2852, 1509, 2853, 1538,
2665 : 2854, 2863, 351, 352, 353, 354, 2855, 356, 1592, 2856,
2666 : 2864, 2882, 2423, 2883, 2454, 2884, 2892, 536, 473, 474,
2667 : 475, 2893, 2914, 2112, 2915, 2916, 1674, 351, 352, 353,
2668 : 354, 355, 356, 357, 358, 1373, 2917, 2923, 2931, 2920,
2669 : 2531, 2937, 2740, 2921, 1570, 2925, 1594, 354, 355, 2926,
2670 : 2930, 2941, 2043, 2933, 2946, 2947, 2934, 2935, 1250, 2936,
2671 : 2939, 1489, 2943, 2944, 2547, 39, 419, 420, 1675, 421,
2672 : 422, 423, 424, 425, 2513, 1384, 1375, 426, 2327, 427,
2673 : 1946, 2076, 2517, 537, 1272, 428, 539, 226, 429, 241,
2674 : 1518, 2514, 1649, 2272, 2197, 430, 1408, 265, 884, 2200,
2675 : 293, 303, 2356, 540, 1970, 570, 541, 571, 572, 374,
2676 : 2576, 2862, 898, 2829, 403, 2918, 2886, 1932, 2704, 491,
2677 : 2710, 2790, 431, 432, 433, 434, 1410, 435, 436, 437,
2678 : 557, 438, 439, 849, 440, 1685, 441, 598, 442, 619,
2679 : 639, 655, 669, 443, 684, 1577, 444, 1601, 445, 446,
2680 : 1550, 1802, 190, 191, 192, 193, 194, 195, 196, 197,
2681 : 198, 199, 86, 89, 214, 450, 2030, 93, 705, 215,
2682 : 216, 217, 218, 219, 220, 1261, 97, 226, 1829, 453,
2683 : 99, 454, 455, 456, 457, 458, 1939, 459, 460, 1479,
2684 : 732, 1793, 241, 461, 1820, 259, 1669, 462, 112, 2063,
2685 : 113, 1283, 115, 117, 118, 120, 1887, 2733, 1853, 2254,
2686 : 1963, 2922, 783, 1123, 817, 2541, 265, 2265, 1307, 1407,
2687 : 0, 883, 1508, 0, 1537, 0, 0, 0, 0, 0,
2688 : 0, 0, 0, 1567, 1590, 897, 2328, 2422, 0, 2453,
2689 : 0, 0, 0, 1030, 293, 0, 0, 0, 2111, 0,
2690 : 0, 0, 0, 0, 303, 0, 0, 1670, 0, 0,
2691 : 0, 0, 1947, 0, 0, 2357, 0, 0, 0, 1569,
2692 : 0, 1593, 0, 0, 0, 0, 1133, 191, 192, 193,
2693 : 194, 195, 196, 197, 198, 199, 0, 0, 214, 554,
2694 : 0, 1971, 0, 0, 0, 217, 218, 0, 0, 0,
2695 : 0, 2337, 0, 1952, 0, 0, 0, 0, 0, 2031,
2696 : 0, 0, 2064, 0, 0, 374, 0, 0, 0, 0,
2697 : 1671, 0, 2630, 0, 0, 2366, 0, 1976, 1264, 0,
2698 : 1285, 2423, 792, 190, 191, 192, 193, 194, 195, 196,
2699 : 197, 198, 199, 872, 0, 0, 888, 903, 0, 0,
2700 : 0, 403, 0, 2666, 0, 535, 1566, 1589, 193, 194,
2701 : 1684, 1672, 2454, 0, 199, 0, 1029, 0, 0, 0,
2702 : 0, 0, 0, 0, 1806, 218, 0, 0, 0, 0,
2703 : 0, 1809, 0, 0, 2112, 0, 0, 0, 0, 2040,
2704 : 351, 352, 353, 0, 0, 356, 0, 0, 1265, 0,
2705 : 0, 1832, 0, 0, 0, 0, 473, 474, 475, 0,
2706 : 0, 0, 1485, 0, 0, 0, 1792, 0, 0, 1819,
2707 : 0, 0, 2073, 0, 1286, 0, 940, 0, 0, 0,
2708 : 0, 0, 491, 1421, 0, 891, 0, 394, 0, 0,
2709 : 0, 0, 536, 0, 0, 1514, 190, 191, 192, 193,
2710 : 194, 195, 196, 197, 198, 199, 0, 0, 214, 0,
2711 : 2428, 2327, 2459, 215, 216, 217, 218, 219, 220, 0,
2712 : 0, 535, 354, 355, 193, 194, 0, 0, 0, 0,
2713 : 199, 985, 1003, 0, 0, 1034, 0, 1946, 0, 0,
2714 : 2356, 218, 0, 0, 0, 0, 0, 0, 557, 0,
2715 : 2328, 0, 0, 2357, 0, 1699, 0, 0, 537, 538,
2716 : 0, 539, 0, 0, 0, 0, 1970, 1488, 0, 1517,
2717 : 0, 0, 0, 0, 2341, 0, 1956, 0, 540, 0,
2718 : 0, 541, 0, 0, 2030, 0, 0, 2063, 2630, 0,
2719 : 0, 0, 1108, 0, 598, 0, 0, 2629, 2370, 0,
2720 : 1980, 0, 0, 394, 0, 0, 2422, 0, 536, 0,
2721 : 0, 0, 1157, 1108, 2423, 619, 0, 193, 194, 0,
2722 : 1575, 197, 0, 199, 2666, 1072, 214, 0, 2665, 0,
2723 : 0, 215, 216, 217, 639, 219, 220, 2453, 354, 355,
2724 : 0, 0, 0, 1939, 0, 0, 0, 0, 0, 0,
2725 : 2454, 655, 0, 0, 0, 0, 0, 0, 0, 2111,
2726 : 0, 0, 2043, 0, 0, 669, 0, 1942, 0, 1966,
2727 : 0, 1408, 1963, 0, 537, 538, 0, 539, 1151, 0,
2728 : 684, 0, 1347, 1348, 0, 1489, 1349, 1350, 0, 1802,
2729 : 0, 884, 1829, 898, 540, 2076, 0, 541, 0, 0,
2730 : 0, 0, 0, 0, 0, 705, 0, 0, 190, 191,
2731 : 192, 193, 194, 195, 196, 197, 198, 199, 1518, 0,
2732 : 0, 0, 0, 0, 0, 1121, 0, 0, 0, 226,
2733 : 0, 0, 732, 2432, 2337, 2463, 0, 0, 0, 0,
2734 : 0, 2630, 0, 0, 2666, 0, 0, 0, 0, 241,
2735 : 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
2736 : 1952, 0, 214, 2366, 0, 0, 0, 215, 216, 217,
2737 : 0, 219, 220, 0, 0, 2327, 0, 0, 2356, 1257,
2738 : 0, 1279, 0, 783, 0, 0, 0, 0, 0, 1976,
2739 : 1941, 0, 1965, 0, 1407, 0, 0, 0, 0, 0,
2740 : 0, 265, 0, 0, 0, 0, 0, 2040, 0, 293,
2741 : 2073, 0, 303, 2629, 883, 0, 897, 0, 0, 0,
2742 : 2639, 2109, 1351, 0, 0, 0, 0, 0, 0, 2428,
2743 : 1567, 1352, 1353, 1354, 0, 0, 0, 0, 0, 2422,
2744 : 0, 0, 1355, 1356, 1357, 0, 0, 0, 0, 2665,
2745 : 1805, 2675, 1264, 1590, 374, 0, 0, 0, 0, 0,
2746 : 2459, 1386, 0, 0, 0, 0, 0, 0, 0, 1030,
2747 : 0, 872, 1831, 0, 1285, 2453, 2169, 2170, 2171, 2172,
2748 : 2173, 2174, 2175, 2176, 1412, 0, 888, 0, 193, 194,
2749 : 0, 0, 197, 792, 199, 0, 0, 214, 0, 0,
2750 : 903, 0, 215, 216, 217, 218, 219, 220, 0, 0,
2751 : 0, 0, 1806, 0, 0, 1832, 403, 0, 190, 191,
2752 : 192, 193, 194, 195, 196, 197, 198, 199, 697, 0,
2753 : 214, 940, 1713, 1714, 1715, 215, 216, 217, 218, 219,
2754 : 220, 1716, 1717, 0, 2108, 1718, 1719, 0, 0, 0,
2755 : 0, 0, 0, 1566, 0, 0, 0, 2341, 0, 491,
2756 : 0, 259, 0, 0, 0, 0, 2629, 0, 1481, 2665,
2757 : 1510, 1539, 0, 0, 0, 0, 1589, 0, 0, 1124,
2758 : 0, 985, 0, 1956, 0, 0, 2370, 0, 0, 0,
2759 : 0, 0, 1029, 0, 0, 0, 0, 0, 2337, 393,
2760 : 394, 2366, 0, 1003, 1955, 229, 1979, 244, 1421, 0,
2761 : 2177, 0, 1980, 0, 0, 267, 277, 0, 0, 0,
2762 : 0, 1571, 1595, 0, 0, 0, 347, 0, 891, 0,
2763 : 2043, 1034, 0, 2076, 0, 0, 2639, 493, 0, 0,
2764 : 0, 0, 0, 2643, 0, 0, 0, 0, 0, 0,
2765 : 0, 0, 2432, 0, 0, 601, 0, 622, 641, 0,
2766 : 0, 0, 2428, 2712, 2713, 2184, 2185, 2186, 2187, 2188,
2767 : 2189, 2190, 2675, 0, 2679, 0, 1488, 557, 0, 0,
2768 : 0, 1720, 0, 2463, 0, 0, 712, 0, 0, 0,
2769 : 1721, 1722, 1723, 0, 0, 229, 0, 0, 2459, 0,
2770 : 0, 1724, 1725, 1726, 1108, 1517, 2714, 0, 739, 0,
2771 : 244, 0, 0, 0, 0, 350, 0, 192, 193, 194,
2772 : 195, 0, 0, 0, 199, 0, 598, 0, 0, 619,
2773 : 790, 639, 0, 655, 267, 669, 0, 1686, 2344, 0,
2774 : 0, 0, 0, 0, 0, 277, 0, 1151, 0, 0,
2775 : 0, 0, 472, 0, 192, 193, 194, 195, 2123, 197,
2776 : 0, 199, 684, 0, 214, 0, 0, 1575, 0, 0,
2777 : 0, 217, 0, 0, 0, 0, 0, 0, 0, 1097,
2778 : 191, 192, 193, 194, 195, 196, 197, 198, 199, 2639,
2779 : 0, 214, 2675, 0, 705, 0, 215, 216, 217, 218,
2780 : 219, 220, 2323, 0, 1942, 0, 0, 0, 0, 0,
2781 : 347, 0, 732, 0, 332, 333, 334, 0, 335, 0,
2782 : 0, 2341, 259, 0, 2370, 0, 2352, 0, 1966, 351,
2783 : 352, 353, 354, 355, 356, 357, 358, 190, 191, 192,
2784 : 193, 194, 195, 196, 197, 198, 199, 0, 0, 214,
2785 : 1408, 1794, 0, 1257, 0, 0, 217, 0, 219, 2643,
2786 : 0, 874, 0, 0, 890, 905, 351, 352, 353, 354,
2787 : 0, 356, 0, 1821, 0, 1279, 0, 0, 0, 0,
2788 : 0, 270, 473, 474, 475, 2432, 0, 0, 0, 0,
2789 : 0, 0, 0, 0, 783, 2679, 1097, 191, 192, 193,
2790 : 194, 195, 196, 197, 198, 199, 0, 0, 214, 0,
2791 : 0, 0, 0, 215, 216, 217, 0, 219, 220, 0,
2792 : 0, 2463, 0, 0, 0, 2322, 0, 1941, 0, 0,
2793 : 0, 332, 333, 334, 0, 335, 0, 0, 0, 259,
2794 : 0, 0, 0, 0, 947, 0, 0, 0, 0, 2351,
2795 : 493, 1965, 0, 0, 0, 535, 0, 192, 193, 194,
2796 : 195, 2418, 269, 2449, 199, 0, 0, 214, 0, 0,
2797 : 0, 0, 2109, 1407, 217, 218, 219, 0, 0, 0,
2798 : 0, 1397, 0, 0, 0, 1386, 0, 1716, 1717, 1805,
2799 : 0, 1718, 1719, 1567, 0, 1590, 0, 0, 0, 270,
2800 : 1010, 0, 872, 0, 0, 1948, 0, 1972, 2273, 1412,
2801 : 0, 0, 2643, 1264, 0, 2679, 1831, 0, 190, 191,
2802 : 192, 193, 194, 195, 196, 197, 198, 199, 0, 888,
2803 : 214, 903, 0, 0, 0, 0, 393, 394, 0, 1285,
2804 : 0, 0, 536, 967, 191, 192, 193, 194, 195, 196,
2805 : 197, 198, 199, 940, 0, 0, 0, 0, 0, 0,
2806 : 0, 0, 601, 218, 1756, 0, 0, 1758, 2032, 0,
2807 : 0, 0, 354, 355, 0, 0, 0, 1481, 0, 0,
2808 : 0, 0, 0, 622, 2417, 535, 2448, 192, 193, 194,
2809 : 195, 0, 269, 0, 199, 2108, 0, 2065, 0, 0,
2810 : 0, 0, 641, 0, 0, 218, 1510, 0, 537, 0,
2811 : 0, 539, 0, 0, 0, 0, 1566, 0, 1589, 0,
2812 : 0, 0, 0, 0, 0, 2276, 0, 1720, 540, 0,
2813 : 536, 541, 0, 0, 1539, 0, 1721, 1722, 1723, 2340,
2814 : 0, 1955, 0, 0, 0, 0, 1153, 1724, 1725, 1726,
2815 : 0, 0, 985, 0, 0, 1003, 0, 0, 0, 2113,
2816 : 354, 355, 0, 2369, 0, 1979, 393, 394, 1571, 0,
2817 : 0, 0, 536, 712, 0, 2128, 192, 193, 194, 195,
2818 : 0, 269, 0, 199, 0, 2323, 214, 1421, 0, 0,
2819 : 0, 1595, 0, 217, 0, 219, 537, 229, 0, 539,
2820 : 739, 0, 354, 355, 0, 0, 0, 1034, 1910, 0,
2821 : 0, 1942, 0, 0, 2352, 0, 540, 244, 270, 541,
2822 : 0, 0, 0, 1922, 0, 0, 0, 0, 1927, 2505,
2823 : 2506, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 537, 0,
2824 : 1966, 539, 0, 0, 0, 0, 0, 1260, 0, 1282,
2825 : 1488, 790, 0, 0, 0, 393, 394, 0, 540, 0,
2826 : 0, 541, 0, 1547, 0, 0, 1108, 0, 0, 267,
2827 : 0, 2625, 0, 277, 0, 0, 0, 0, 0, 0,
2828 : 2418, 0, 1686, 1517, 0, 0, 0, 0, 0, 0,
2829 : 1987, 1988, 0, 0, 0, 0, 0, 0, 2431, 0,
2830 : 2462, 0, 2661, 0, 1151, 1602, 0, 0, 2322, 2123,
2831 : 0, 2449, 0, 347, 0, 2009, 2010, 0, 0, 0,
2832 : 0, 0, 0, 2012, 0, 0, 0, 0, 0, 1393,
2833 : 1575, 0, 0, 2109, 1941, 0, 0, 2351, 0, 874,
2834 : 0, 967, 191, 192, 193, 194, 195, 196, 197, 198,
2835 : 199, 0, 1419, 214, 890, 0, 0, 0, 0, 0,
2836 : 217, 218, 219, 1965, 0, 0, 0, 0, 905, 0,
2837 : 0, 0, 0, 0, 1097, 191, 192, 193, 194, 195,
2838 : 196, 197, 198, 199, 0, 270, 214, 0, 0, 0,
2839 : 1794, 215, 216, 217, 2624, 219, 220, 0, 0, 947,
2840 : 0, 0, 0, 2417, 0, 0, 0, 0, 0, 332,
2841 : 333, 334, 0, 335, 1257, 0, 0, 1821, 0, 0,
2842 : 0, 0, 0, 0, 0, 2660, 0, 493, 536, 0,
2843 : 0, 0, 0, 0, 2448, 0, 1484, 0, 1513, 1541,
2844 : 1279, 0, 0, 0, 0, 0, 0, 0, 0, 2323,
2845 : 0, 0, 2352, 0, 0, 0, 2108, 0, 354, 355,
2846 : 0, 0, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189,
2847 : 2190, 1010, 0, 0, 0, 0, 0, 1805, 0, 0,
2848 : 1831, 0, 0, 0, 0, 0, 0, 2625, 0, 1573,
2849 : 1597, 2191, 0, 0, 537, 0, 0, 539, 0, 1855,
2850 : 2, 0, 1856, 1857, 6, 7, 8, 9, 10, 11,
2851 : 0, 13, 2199, 2418, 540, 0, 15, 541, 0, 0,
2852 : 0, 0, 2340, 2661, 0, 0, 0, 16, 17, 0,
2853 : 0, 0, 234, 0, 248, 0, 0, 1386, 0, 0,
2854 : 2329, 0, 1948, 0, 0, 296, 0, 0, 1955, 2449,
2855 : 0, 2369, 0, 349, 0, 0, 0, 0, 0, 0,
2856 : 0, 2081, 0, 0, 2358, 0, 1972, 0, 0, 0,
2857 : 0, 0, 2322, 0, 0, 2351, 0, 1979, 0, 0,
2858 : 0, 0, 607, 0, 627, 644, 658, 671, 1412, 686,
2859 : 0, 0, 0, 0, 601, 0, 0, 622, 1858, 641,
2860 : 0, 0, 0, 1661, 0, 1693, 0, 0, 2642, 0,
2861 : 2624, 0, 0, 717, 0, 1153, 0, 2431, 0, 0,
2862 : 0, 0, 234, 0, 0, 0, 0, 0, 2032, 0,
2863 : 0, 0, 0, 0, 0, 743, 2417, 248, 0, 2678,
2864 : 2625, 0, 0, 2661, 0, 0, 2660, 0, 2462, 0,
2865 : 0, 1481, 0, 0, 0, 0, 331, 793, 0, 193,
2866 : 194, 2065, 712, 197, 0, 199, 0, 0, 214, 0,
2867 : 2123, 0, 2448, 215, 216, 217, 218, 219, 220, 0,
2868 : 739, 0, 0, 0, 1510, 0, 1539, 0, 0, 296,
2869 : 0, 332, 333, 334, 0, 335, 0, 0, 0, 2424,
2870 : 0, 2455, 0, 0, 0, 0, 0, 0, 0, 0,
2871 : 2113, 0, 0, 0, 0, 0, 0, 0, 0, 1801,
2872 : 0, 1260, 2712, 2713, 2184, 2185, 2186, 2187, 2188, 2189,
2873 : 2190, 1571, 0, 1595, 0, 331, 0, 349, 193, 194,
2874 : 0, 1828, 197, 1282, 199, 0, 0, 214, 0, 0,
2875 : 2295, 0, 215, 216, 217, 0, 219, 220, 0, 0,
2876 : 0, 0, 790, 2624, 0, 0, 2660, 0, 0, 0,
2877 : 332, 333, 334, 0, 335, 2014, 191, 192, 193, 194,
2878 : 195, 196, 197, 198, 199, 0, 2340, 214, 876, 2369,
2879 : 0, 0, 215, 216, 217, 218, 219, 220, 0, 0,
2880 : 967, 191, 192, 193, 194, 195, 196, 197, 198, 199,
2881 : 332, 333, 334, 0, 335, 0, 0, 0, 259, 0,
2882 : 218, 0, 1686, 0, 2642, 190, 191, 192, 193, 194,
2883 : 195, 196, 197, 198, 199, 0, 0, 214, 0, 0,
2884 : 0, 0, 215, 216, 217, 218, 219, 220, 0, 0,
2885 : 2431, 0, 0, 1393, 0, 0, 393, 394, 0, 0,
2886 : 2678, 0, 536, 0, 0, 0, 0, 0, 259, 0,
2887 : 874, 950, 0, 1951, 0, 1975, 0, 1419, 1794, 0,
2888 : 0, 1821, 0, 0, 0, 0, 2462, 536, 0, 0,
2889 : 0, 0, 354, 355, 0, 0, 0, 890, 0, 905,
2890 : 0, 0, 0, 0, 0, 0, 393, 394, 0, 0,
2891 : 0, 0, 0, 0, 0, 0, 0, 354, 355, 0,
2892 : 0, 947, 331, 2329, 0, 193, 988, 1013, 537, 197,
2893 : 0, 539, 0, 0, 214, 0, 2039, 0, 0, 215,
2894 : 0, 217, 0, 219, 0, 1484, 0, 0, 540, 1948,
2895 : 0, 541, 2358, 537, 0, 0, 539, 332, 333, 334,
2896 : 0, 335, 0, 0, 0, 2072, 0, 0, 0, 0,
2897 : 0, 0, 0, 540, 1513, 0, 541, 2642, 1972, 0,
2898 : 2678, 0, 0, 0, 0, 0, 0, 1120, 0, 607,
2899 : 0, 0, 0, 0, 0, 2773, 2032, 0, 0, 2065,
2900 : 0, 0, 1541, 0, 0, 0, 0, 0, 1120, 2631,
2901 : 627, 0, 0, 0, 0, 0, 0, 0, 2424, 0,
2902 : 0, 0, 0, 1010, 0, 0, 0, 2120, 0, 644,
2903 : 0, 0, 0, 0, 0, 0, 1573, 0, 0, 0,
2904 : 2667, 0, 0, 0, 0, 2373, 658, 0, 0, 2455,
2905 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 1597,
2906 : 671, 190, 191, 192, 193, 194, 195, 196, 197, 198,
2907 : 199, 2113, 0, 1156, 0, 686, 2014, 191, 192, 193,
2908 : 194, 195, 196, 197, 198, 199, 2530, 0, 214, 0,
2909 : 0, 0, 0, 215, 216, 217, 218, 219, 220, 0,
2910 : 717, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2911 : 0, 332, 333, 334, 0, 335, 0, 0, 0, 259,
2912 : 0, 0, 0, 0, 234, 0, 0, 743, 0, 0,
2913 : 0, 0, 0, 0, 1097, 191, 192, 193, 194, 195,
2914 : 196, 197, 198, 199, 248, 0, 214, 0, 0, 0,
2915 : 1693, 215, 216, 217, 218, 219, 220, 393, 394, 2569,
2916 : 0, 0, 0, 536, 0, 2572, 0, 0, 0, 332,
2917 : 333, 334, 1153, 335, 1267, 0, 1288, 259, 793, 0,
2918 : 0, 0, 0, 0, 0, 0, 0, 2329, 0, 0,
2919 : 2358, 0, 0, 354, 355, 0, 0, 0, 0, 0,
2920 : 0, 0, 0, 0, 296, 0, 0, 0, 0, 0,
2921 : 0, 0, 0, 0, 0, 393, 394, 0, 0, 535,
2922 : 0, 192, 193, 194, 195, 2631, 269, 0, 199, 537,
2923 : 0, 258, 539, 0, 0, 344, 0, 0, 217, 218,
2924 : 349, 0, 0, 0, 0, 0, 0, 2600, 0, 540,
2925 : 0, 2424, 541, 0, 0, 0, 1396, 0, 1801, 0,
2926 : 0, 2667, 259, 0, 0, 0, 876, 2894, 2895, 2896,
2927 : 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 1423,
2928 : 0, 227, 1260, 242, 0, 1828, 0, 2455, 0, 0,
2929 : 0, 0, 276, 0, 294, 709, 2776, 0, 0, 0,
2930 : 393, 394, 341, 0, 0, 0, 536, 0, 1282, 0,
2931 : 0, 0, 0, 492, 0, 0, 0, 736, 0, 0,
2932 : 0, 0, 0, 0, 0, 0, 950, 0, 0, 0,
2933 : 0, 599, 0, 620, 640, 656, 354, 355, 0, 787,
2934 : 0, 535, 0, 192, 193, 194, 195, 0, 269, 0,
2935 : 199, 0, 2697, 0, 2582, 0, 0, 0, 0, 0,
2936 : 0, 218, 706, 1491, 0, 1520, 1545, 0, 0, 0,
2937 : 0, 227, 537, 0, 0, 539, 988, 0, 2631, 0,
2938 : 0, 2667, 0, 0, 733, 0, 242, 0, 0, 0,
2939 : 0, 0, 540, 0, 0, 541, 0, 0, 1013, 0,
2940 : 0, 0, 0, 0, 0, 1393, 784, 0, 2336, 0,
2941 : 1951, 0, 0, 0, 0, 0, 0, 0, 0, 344,
2942 : 0, 276, 393, 394, 0, 2739, 0, 0, 536, 0,
2943 : 0, 0, 2365, 0, 1975, 0, 0, 0, 294, 2126,
2944 : 0, 0, 0, 0, 0, 1668, 191, 192, 193, 194,
2945 : 195, 196, 197, 198, 199, 0, 1419, 214, 354, 355,
2946 : 2763, 2764, 215, 0, 217, 218, 219, 0, 0, 0,
2947 : 2769, 2770, 2771, 2772, 0, 0, 0, 0, 0, 0,
2948 : 332, 333, 334, 0, 335, 0, 341, 0, 0, 0,
2949 : 0, 0, 0, 0, 537, 0, 2039, 539, 0, 1120,
2950 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2951 : 0, 0, 0, 0, 540, 0, 0, 541, 0, 1484,
2952 : 0, 607, 0, 0, 627, 0, 644, 0, 658, 2072,
2953 : 671, 0, 1697, 0, 0, 0, 0, 873, 0, 0,
2954 : 0, 904, 1156, 0, 0, 0, 0, 0, 0, 0,
2955 : 0, 0, 1513, 944, 1541, 0, 0, 686, 0, 351,
2956 : 352, 353, 0, 0, 356, 0, 0, 2427, 0, 2458,
2957 : 0, 0, 0, 0, 0, 473, 474, 475, 2120, 0,
2958 : 0, 2794, 2795, 0, 0, 0, 0, 2799, 2800, 717,
2959 : 0, 472, 0, 192, 193, 194, 195, 0, 269, 1573,
2960 : 199, 1597, 0, 214, 0, 0, 0, 743, 0, 1007,
2961 : 217, 0, 472, 0, 192, 193, 194, 195, 0, 269,
2962 : 941, 199, 0, 0, 214, 0, 492, 0, 0, 0,
2963 : 989, 217, 192, 193, 194, 195, 0, 197, 0, 199,
2964 : 0, 2837, 214, 0, 2840, 0, 1808, 215, 1267, 217,
2965 : 218, 219, 0, 0, 0, 0, 0, 0, 2843, 2844,
2966 : 2845, 0, 0, 0, 0, 332, 333, 334, 1834, 335,
2967 : 1288, 0, 0, 259, 0, 0, 1004, 0, 0, 0,
2968 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 793,
2969 : 1693, 0, 0, 2866, 2867, 2868, 2869, 0, 0, 0,
2970 : 0, 0, 0, 0, 0, 351, 352, 353, 354, 0,
2971 : 356, 393, 394, 0, 0, 0, 0, 536, 0, 0,
2972 : 0, 473, 474, 475, 0, 0, 351, 352, 353, 354,
2973 : 0, 356, 2888, 2889, 0, 0, 0, 0, 599, 0,
2974 : 0, 0, 473, 474, 475, 0, 1801, 354, 355, 1828,
2975 : 0, 0, 0, 331, 0, 192, 193, 194, 195, 620,
2976 : 197, 0, 199, 0, 0, 214, 0, 0, 0, 0,
2977 : 215, 0, 217, 0, 219, 0, 0, 0, 640, 0,
2978 : 1396, 0, 709, 537, 0, 0, 539, 0, 332, 333,
2979 : 334, 2336, 335, 0, 0, 656, 259, 876, 0, 0,
2980 : 1958, 0, 1982, 540, 1423, 0, 541, 0, 0, 736,
2981 : 0, 954, 0, 0, 0, 0, 0, 1951, 0, 0,
2982 : 2365, 0, 1152, 0, 0, 0, 0, 0, 0, 0,
2983 : 232, 0, 246, 0, 393, 394, 0, 0, 0, 0,
2984 : 0, 278, 0, 0, 0, 0, 1975, 0, 950, 706,
2985 : 2466, 348, 0, 0, 0, 0, 0, 0, 0, 0,
2986 : 787, 0, 0, 2045, 2039, 0, 0, 2072, 0, 0,
2987 : 0, 0, 1491, 227, 0, 0, 733, 2638, 0, 0,
2988 : 604, 0, 624, 642, 0, 0, 2427, 0, 0, 0,
2989 : 0, 0, 2078, 242, 0, 924, 0, 192, 193, 194,
2990 : 195, 1520, 197, 0, 199, 0, 0, 214, 2674, 0,
2991 : 0, 715, 215, 0, 217, 0, 219, 2458, 0, 0,
2992 : 232, 0, 344, 1258, 0, 1280, 0, 784, 0, 1545,
2993 : 332, 333, 334, 741, 335, 246, 0, 0, 1390, 2120,
2994 : 0, 0, 0, 0, 0, 0, 0, 988, 0, 276,
2995 : 1013, 0, 0, 294, 2125, 791, 0, 0, 0, 0,
2996 : 0, 1416, 0, 0, 0, 0, 0, 0, 0, 0,
2997 : 278, 0, 0, 1983, 0, 0, 0, 0, 967, 191,
2998 : 192, 193, 194, 195, 196, 197, 198, 199, 0, 341,
2999 : 214, 0, 0, 0, 0, 215, 216, 217, 218, 219,
3000 : 220, 0, 0, 0, 0, 1387, 0, 0, 944, 351,
3001 : 352, 353, 354, 0, 356, 873, 0, 0, 0, 0,
3002 : 0, 259, 0, 0, 0, 473, 474, 475, 1413, 0,
3003 : 0, 0, 0, 0, 0, 348, 0, 0, 0, 0,
3004 : 0, 0, 0, 0, 904, 190, 191, 192, 193, 194,
3005 : 195, 196, 197, 198, 199, 2336, 0, 214, 2365, 393,
3006 : 394, 1120, 215, 216, 217, 536, 219, 220, 0, 0,
3007 : 0, 0, 0, 0, 0, 941, 0, 1697, 0, 0,
3008 : 1007, 0, 0, 0, 0, 0, 0, 0, 259, 0,
3009 : 906, 0, 0, 2638, 0, 354, 355, 0, 0, 1156,
3010 : 0, 331, 0, 492, 193, 194, 0, 0, 197, 0,
3011 : 199, 0, 1482, 214, 1511, 1540, 0, 0, 215, 2427,
3012 : 217, 0, 219, 0, 0, 0, 0, 0, 0, 2674,
3013 : 0, 537, 0, 0, 539, 0, 332, 333, 334, 0,
3014 : 335, 0, 0, 0, 259, 0, 0, 1004, 0, 0,
3015 : 0, 540, 0, 0, 541, 2458, 1097, 191, 192, 193,
3016 : 194, 195, 196, 197, 198, 199, 1596, 0, 214, 948,
3017 : 0, 0, 0, 215, 216, 217, 218, 219, 220, 0,
3018 : 0, 0, 0, 0, 0, 1808, 0, 0, 0, 0,
3019 : 0, 332, 333, 334, 0, 335, 0, 0, 2646, 259,
3020 : 0, 535, 0, 192, 193, 194, 195, 0, 269, 1267,
3021 : 199, 0, 1834, 214, 1690, 0, 0, 0, 0, 0,
3022 : 217, 218, 219, 0, 0, 1012, 0, 0, 0, 0,
3023 : 0, 0, 0, 0, 0, 1288, 0, 393, 394, 0,
3024 : 0, 0, 0, 0, 0, 270, 2638, 0, 472, 2674,
3025 : 192, 193, 194, 195, 0, 197, 0, 199, 0, 0,
3026 : 214, 0, 0, 0, 0, 0, 0, 217, 0, 0,
3027 : 599, 709, 0, 620, 0, 640, 0, 656, 0, 0,
3028 : 0, 1687, 393, 394, 0, 0, 0, 604, 536, 736,
3029 : 0, 1152, 0, 0, 2014, 191, 192, 193, 194, 195,
3030 : 196, 197, 198, 199, 0, 0, 214, 0, 624, 0,
3031 : 0, 215, 216, 217, 218, 219, 220, 0, 354, 355,
3032 : 0, 0, 0, 0, 0, 0, 0, 642, 1798, 332,
3033 : 333, 334, 1396, 335, 0, 2343, 0, 1958, 706, 0,
3034 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3035 : 1825, 0, 0, 0, 537, 0, 733, 539, 0, 2372,
3036 : 0, 1982, 351, 352, 353, 354, 0, 356, 0, 0,
3037 : 0, 787, 0, 0, 540, 0, 2585, 541, 473, 474,
3038 : 475, 536, 0, 1423, 967, 191, 192, 193, 194, 195,
3039 : 196, 197, 198, 199, 0, 1795, 214, 1258, 715, 0,
3040 : 0, 215, 216, 217, 218, 219, 220, 0, 0, 0,
3041 : 0, 354, 355, 0, 0, 0, 0, 1822, 0, 1280,
3042 : 0, 0, 232, 2045, 0, 741, 0, 259, 0, 0,
3043 : 0, 0, 0, 0, 0, 0, 0, 0, 784, 0,
3044 : 0, 0, 246, 0, 0, 0, 1491, 537, 0, 0,
3045 : 539, 0, 0, 0, 0, 0, 2078, 0, 0, 0,
3046 : 0, 0, 1390, 0, 0, 393, 394, 540, 0, 0,
3047 : 541, 536, 1263, 0, 1284, 0, 791, 0, 0, 1520,
3048 : 0, 1545, 0, 0, 0, 0, 1416, 0, 0, 0,
3049 : 0, 0, 0, 0, 2434, 0, 2465, 0, 278, 0,
3050 : 0, 354, 355, 0, 0, 2125, 0, 0, 0, 0,
3051 : 0, 0, 0, 0, 2391, 0, 0, 0, 0, 0,
3052 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 1387,
3053 : 944, 0, 0, 0, 0, 0, 0, 537, 348, 0,
3054 : 539, 0, 0, 0, 0, 2036, 873, 0, 0, 1949,
3055 : 0, 1973, 0, 1413, 1394, 0, 0, 540, 0, 0,
3056 : 541, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3057 : 0, 0, 0, 0, 2069, 904, 0, 1420, 0, 228,
3058 : 0, 243, 0, 0, 0, 0, 0, 0, 0, 0,
3059 : 0, 0, 0, 906, 0, 0, 0, 941, 0, 0,
3060 : 342, 0, 0, 0, 2682, 0, 0, 0, 0, 0,
3061 : 0, 0, 2033, 0, 0, 0, 0, 1697, 0, 0,
3062 : 0, 1482, 0, 0, 948, 0, 0, 0, 0, 600,
3063 : 0, 621, 1007, 0, 0, 0, 2117, 0, 0, 0,
3064 : 0, 2066, 0, 0, 0, 0, 0, 0, 0, 0,
3065 : 1511, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3066 : 707, 1487, 0, 1516, 1543, 0, 0, 0, 0, 228,
3067 : 0, 0, 0, 1808, 0, 0, 1834, 0, 1540, 0,
3068 : 0, 0, 734, 0, 243, 0, 0, 0, 0, 0,
3069 : 0, 0, 0, 343, 0, 0, 1012, 0, 0, 1004,
3070 : 0, 0, 0, 2114, 785, 0, 0, 0, 0, 0,
3071 : 0, 0, 0, 0, 0, 1599, 0, 0, 2343, 2014,
3072 : 191, 192, 193, 194, 195, 196, 197, 198, 199, 0,
3073 : 0, 214, 0, 0, 0, 1596, 215, 216, 217, 218,
3074 : 219, 220, 0, 0, 1958, 0, 0, 2372, 0, 0,
3075 : 0, 0, 0, 708, 332, 333, 334, 0, 335, 1690,
3076 : 407, 0, 408, 0, 409, 6, 0, 410, 9, 411,
3077 : 0, 12, 0, 1982, 0, 735, 0, 15, 0, 0,
3078 : 0, 0, 0, 0, 342, 0, 0, 0, 0, 17,
3079 : 18, 2045, 0, 0, 2078, 0, 0, 786, 0, 0,
3080 : 0, 19, 0, 0, 2645, 0, 536, 0, 0, 0,
3081 : 0, 0, 0, 2434, 0, 0, 0, 0, 0, 604,
3082 : 0, 0, 624, 0, 642, 0, 1687, 0, 0, 0,
3083 : 1695, 412, 0, 21, 0, 2681, 354, 355, 0, 0,
3084 : 0, 0, 0, 0, 2465, 0, 0, 0, 1152, 0,
3085 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 413,
3086 : 0, 0, 0, 0, 0, 0, 2125, 1798, 0, 0,
3087 : 0, 0, 537, 0, 0, 539, 0, 343, 0, 0,
3088 : 0, 0, 0, 0, 0, 0, 0, 715, 0, 0,
3089 : 0, 0, 540, 0, 1825, 541, 0, 0, 0, 0,
3090 : 0, 0, 0, 0, 0, 741, 0, 0, 25, 0,
3091 : 0, 0, 331, 0, 192, 193, 194, 195, 942, 197,
3092 : 0, 199, 28, 29, 214, 0, 414, 0, 0, 215,
3093 : 0, 217, 0, 219, 1795, 0, 0, 0, 0, 2394,
3094 : 0, 0, 0, 0, 1804, 0, 1263, 332, 333, 334,
3095 : 0, 335, 0, 0, 0, 259, 0, 0, 1258, 0,
3096 : 924, 1822, 192, 193, 194, 195, 1830, 197, 1284, 199,
3097 : 0, 34, 214, 0, 1005, 0, 35, 215, 0, 217,
3098 : 0, 219, 2343, 0, 1280, 2372, 0, 791, 0, 0,
3099 : 0, 0, 0, 393, 394, 332, 333, 334, 0, 335,
3100 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3101 : 0, 943, 989, 0, 1390, 193, 194, 2333, 0, 197,
3102 : 2645, 199, 0, 0, 214, 0, 0, 0, 0, 215,
3103 : 0, 217, 218, 219, 1110, 0, 600, 0, 0, 0,
3104 : 0, 2362, 0, 0, 0, 0, 2434, 332, 333, 334,
3105 : 0, 335, 0, 0, 0, 1110, 2681, 621, 0, 0,
3106 : 0, 0, 0, 0, 0, 1416, 0, 1006, 0, 0,
3107 : 0, 0, 0, 0, 351, 352, 353, 354, 1394, 356,
3108 : 0, 1387, 2465, 0, 2330, 0, 1949, 0, 0, 0,
3109 : 473, 474, 475, 0, 0, 0, 0, 0, 1954, 536,
3110 : 1978, 0, 1420, 0, 0, 2036, 0, 0, 2359, 0,
3111 : 1973, 0, 0, 0, 0, 0, 989, 0, 192, 193,
3112 : 194, 195, 0, 197, 906, 199, 0, 1111, 214, 354,
3113 : 355, 0, 1413, 215, 0, 217, 218, 219, 2069, 0,
3114 : 0, 0, 0, 0, 0, 0, 948, 707, 1111, 0,
3115 : 0, 332, 333, 334, 0, 335, 0, 0, 0, 259,
3116 : 0, 2042, 0, 0, 0, 537, 0, 0, 539, 0,
3117 : 1487, 228, 2033, 2645, 734, 0, 2681, 0, 0, 0,
3118 : 1448, 0, 0, 0, 0, 540, 345, 2117, 541, 0,
3119 : 2075, 243, 0, 0, 0, 1482, 0, 393, 394, 1516,
3120 : 0, 0, 0, 536, 0, 2066, 0, 0, 0, 0,
3121 : 0, 346, 0, 0, 0, 0, 0, 0, 0, 0,
3122 : 0, 1259, 0, 1281, 0, 785, 0, 1543, 1511, 0,
3123 : 1540, 0, 0, 354, 355, 0, 0, 0, 0, 0,
3124 : 708, 0, 0, 2425, 0, 2456, 710, 0, 1012, 0,
3125 : 0, 0, 2122, 0, 2114, 0, 0, 0, 0, 0,
3126 : 0, 0, 0, 0, 0, 0, 0, 735, 737, 537,
3127 : 0, 711, 539, 0, 0, 0, 0, 1596, 0, 0,
3128 : 0, 0, 0, 0, 1599, 0, 0, 342, 0, 540,
3129 : 788, 0, 541, 738, 0, 0, 0, 0, 0, 1690,
3130 : 0, 0, 0, 1388, 0, 0, 0, 0, 0, 0,
3131 : 0, 0, 0, 0, 0, 789, 0, 0, 786, 0,
3132 : 0, 0, 0, 0, 0, 0, 1414, 0, 0, 967,
3133 : 191, 192, 193, 194, 195, 196, 197, 198, 199, 0,
3134 : 0, 214, 0, 0, 0, 0, 215, 216, 217, 218,
3135 : 219, 220, 0, 0, 0, 1798, 0, 0, 1825, 0,
3136 : 0, 0, 0, 0, 0, 0, 1687, 0, 0, 0,
3137 : 345, 0, 259, 942, 535, 1695, 192, 193, 194, 195,
3138 : 343, 269, 0, 199, 0, 0, 258, 0, 0, 0,
3139 : 0, 0, 0, 217, 218, 346, 1389, 0, 0, 0,
3140 : 2333, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3141 : 1483, 0, 1512, 0, 0, 0, 536, 259, 0, 1415,
3142 : 0, 0, 1795, 0, 0, 1822, 0, 0, 0, 2362,
3143 : 0, 190, 191, 192, 193, 194, 195, 196, 197, 198,
3144 : 199, 0, 0, 214, 0, 1005, 354, 355, 215, 216,
3145 : 217, 218, 219, 220, 0, 393, 394, 0, 0, 0,
3146 : 0, 536, 0, 0, 0, 0, 943, 2330, 0, 0,
3147 : 0, 0, 0, 2036, 259, 0, 2069, 0, 0, 0,
3148 : 0, 0, 537, 1804, 0, 539, 2635, 0, 0, 0,
3149 : 0, 354, 355, 1949, 0, 0, 2359, 0, 0, 0,
3150 : 0, 0, 540, 0, 945, 541, 0, 1263, 0, 0,
3151 : 1830, 0, 393, 394, 0, 0, 0, 2671, 0, 0,
3152 : 0, 0, 1973, 0, 0, 0, 0, 537, 0, 946,
3153 : 539, 0, 0, 1284, 0, 0, 0, 0, 1006, 0,
3154 : 2033, 0, 0, 2066, 0, 0, 1110, 540, 2117, 2046,
3155 : 541, 0, 0, 2632, 0, 0, 0, 0, 0, 0,
3156 : 1008, 0, 2425, 0, 0, 0, 0, 0, 600, 0,
3157 : 0, 621, 0, 0, 0, 0, 0, 0, 0, 1688,
3158 : 0, 0, 0, 0, 2668, 1009, 0, 0, 0, 0,
3159 : 0, 0, 0, 2456, 1133, 191, 192, 193, 194, 195,
3160 : 196, 197, 198, 199, 0, 0, 214, 0, 0, 0,
3161 : 0, 0, 0, 217, 218, 2114, 0, 0, 0, 0,
3162 : 1113, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3163 : 1394, 0, 0, 2339, 0, 1954, 707, 0, 0, 1111,
3164 : 0, 1113, 0, 0, 190, 191, 192, 193, 194, 195,
3165 : 196, 197, 198, 199, 734, 0, 214, 2368, 0, 1978,
3166 : 0, 215, 216, 217, 2333, 219, 220, 2362, 0, 0,
3167 : 0, 0, 1689, 0, 0, 0, 0, 0, 0, 0,
3168 : 0, 1420, 0, 0, 0, 0, 0, 0, 0, 0,
3169 : 0, 0, 0, 1796, 0, 1259, 0, 0, 0, 0,
3170 : 0, 0, 2635, 0, 0, 0, 0, 0, 351, 352,
3171 : 353, 0, 0, 356, 0, 1823, 0, 1281, 0, 0,
3172 : 0, 2042, 0, 0, 473, 474, 475, 0, 0, 708,
3173 : 0, 2330, 0, 710, 2359, 0, 785, 0, 2671, 0,
3174 : 0, 0, 0, 0, 1487, 0, 0, 735, 0, 0,
3175 : 0, 0, 0, 0, 2075, 0, 0, 0, 711, 0,
3176 : 737, 0, 0, 0, 0, 0, 0, 0, 0, 2632,
3177 : 0, 0, 0, 0, 0, 0, 0, 1516, 0, 1543,
3178 : 0, 0, 0, 0, 0, 738, 1797, 0, 0, 0,
3179 : 0, 0, 2430, 0, 2461, 2425, 0, 0, 0, 0,
3180 : 0, 0, 0, 2122, 0, 2668, 0, 0, 1824, 0,
3181 : 0, 788, 0, 967, 191, 192, 193, 194, 195, 196,
3182 : 197, 198, 199, 0, 0, 214, 1599, 1388, 0, 786,
3183 : 0, 2456, 217, 218, 219, 0, 789, 0, 0, 0,
3184 : 0, 0, 0, 0, 0, 0, 0, 1950, 0, 1974,
3185 : 0, 1414, 0, 0, 0, 2635, 0, 270, 2671, 0,
3186 : 0, 0, 967, 191, 192, 193, 194, 195, 196, 197,
3187 : 198, 199, 0, 345, 214, 0, 0, 0, 0, 215,
3188 : 216, 217, 218, 219, 220, 0, 0, 0, 0, 1391,
3189 : 0, 0, 0, 0, 0, 942, 0, 0, 346, 0,
3190 : 536, 0, 0, 0, 0, 259, 0, 0, 0, 0,
3191 : 2034, 0, 1417, 0, 1392, 1695, 0, 0, 0, 1483,
3192 : 1389, 0, 2632, 0, 0, 2668, 0, 0, 0, 0,
3193 : 354, 355, 0, 0, 0, 0, 0, 1418, 0, 2067,
3194 : 0, 0, 0, 0, 1415, 0, 0, 0, 1512, 536,
3195 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 945,
3196 : 0, 0, 0, 0, 0, 0, 537, 0, 0, 539,
3197 : 0, 1804, 0, 0, 1830, 0, 0, 0, 0, 354,
3198 : 355, 0, 0, 0, 946, 0, 540, 0, 943, 541,
3199 : 0, 0, 0, 0, 0, 0, 0, 1005, 0, 0,
3200 : 0, 2115, 0, 2035, 0, 0, 1710, 1711, 1712, 0,
3201 : 0, 0, 0, 0, 0, 537, 2339, 0, 539, 0,
3202 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3203 : 0, 1008, 2068, 0, 0, 540, 0, 0, 541, 0,
3204 : 0, 0, 1954, 0, 0, 2368, 0, 0, 0, 0,
3205 : 0, 0, 0, 0, 0, 0, 1009, 190, 191, 192,
3206 : 193, 194, 195, 196, 197, 198, 199, 0, 0, 214,
3207 : 0, 1978, 0, 0, 215, 216, 217, 218, 219, 220,
3208 : 0, 0, 2079, 0, 0, 0, 0, 0, 0, 2042,
3209 : 1006, 0, 2075, 0, 2116, 0, 0, 0, 0, 0,
3210 : 259, 0, 2641, 0, 0, 0, 0, 0, 1110, 0,
3211 : 0, 2430, 0, 0, 0, 0, 0, 0, 0, 0,
3212 : 0, 0, 0, 0, 1688, 0, 0, 0, 1838, 0,
3213 : 0, 0, 1113, 2677, 0, 0, 0, 0, 1846, 1847,
3214 : 0, 1848, 2461, 0, 0, 0, 0, 0, 0, 1097,
3215 : 191, 192, 193, 194, 195, 196, 197, 198, 199, 0,
3216 : 0, 214, 0, 0, 2122, 1691, 215, 216, 217, 218,
3217 : 219, 220, 0, 0, 1902, 1903, 0, 0, 1907, 0,
3218 : 0, 0, 0, 0, 332, 333, 334, 0, 335, 0,
3219 : 1692, 0, 259, 0, 0, 0, 0, 0, 0, 0,
3220 : 0, 1111, 0, 0, 0, 0, 0, 0, 0, 0,
3221 : 0, 0, 0, 371, 0, 0, 0, 1689, 400, 0,
3222 : 0, 0, 710, 488, 0, 0, 0, 0, 0, 0,
3223 : 393, 394, 1796, 0, 0, 0, 0, 0, 0, 0,
3224 : 737, 594, 0, 615, 634, 651, 665, 711, 680, 0,
3225 : 0, 0, 0, 0, 0, 0, 1259, 0, 0, 1823,
3226 : 0, 0, 0, 0, 0, 738, 0, 0, 0, 967,
3227 : 191, 192, 193, 194, 195, 196, 197, 198, 199, 1799,
3228 : 2339, 214, 1281, 2368, 0, 0, 215, 216, 217, 218,
3229 : 219, 220, 0, 0, 0, 0, 0, 0, 0, 2013,
3230 : 0, 1826, 0, 0, 1800, 0, 0, 0, 0, 0,
3231 : 0, 0, 259, 0, 0, 0, 0, 0, 2641, 0,
3232 : 0, 0, 788, 0, 0, 1797, 1827, 0, 0, 0,
3233 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3234 : 0, 0, 0, 0, 2430, 0, 0, 789, 0, 0,
3235 : 393, 394, 1824, 0, 2677, 0, 536, 0, 0, 0,
3236 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3237 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 1388,
3238 : 2461, 0, 2331, 0, 1950, 0, 354, 355, 0, 0,
3239 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3240 : 0, 0, 0, 0, 0, 0, 2360, 0, 1974, 0,
3241 : 0, 0, 0, 1391, 0, 0, 0, 0, 0, 371,
3242 : 0, 0, 537, 0, 0, 539, 0, 0, 0, 0,
3243 : 1414, 0, 0, 0, 0, 0, 0, 1417, 1392, 0,
3244 : 0, 0, 540, 0, 0, 541, 0, 869, 0, 0,
3245 : 885, 899, 0, 0, 0, 400, 0, 0, 0, 0,
3246 : 0, 0, 1418, 0, 0, 0, 0, 0, 0, 0,
3247 : 2034, 2641, 1389, 0, 2677, 2332, 0, 2158, 2159, 0,
3248 : 0, 945, 0, 0, 0, 0, 0, 0, 0, 0,
3249 : 482, 0, 0, 1483, 0, 0, 2037, 0, 0, 2361,
3250 : 0, 545, 0, 2067, 0, 0, 946, 0, 0, 0,
3251 : 1097, 191, 192, 193, 194, 195, 196, 197, 198, 199,
3252 : 0, 2038, 214, 1415, 0, 2070, 1512, 215, 216, 217,
3253 : 937, 219, 220, 0, 0, 0, 488, 0, 0, 0,
3254 : 0, 2426, 0, 2457, 0, 332, 333, 334, 0, 335,
3255 : 2071, 0, 2115, 259, 0, 0, 0, 0, 0, 0,
3256 : 0, 0, 0, 2035, 0, 0, 0, 0, 0, 0,
3257 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2239,
3258 : 0, 0, 0, 1008, 0, 981, 0, 2118, 0, 1031,
3259 : 0, 0, 0, 0, 0, 0, 2068, 0, 0, 0,
3260 : 0, 0, 0, 0, 0, 0, 2264, 0, 1009, 0,
3261 : 0, 0, 2119, 2270, 0, 0, 0, 0, 0, 2014,
3262 : 191, 192, 193, 194, 195, 196, 197, 198, 199, 0,
3263 : 0, 214, 0, 0, 0, 0, 215, 216, 217, 218,
3264 : 219, 220, 0, 0, 0, 2116, 1104, 0, 594, 0,
3265 : 0, 0, 0, 0, 332, 333, 334, 0, 335, 0,
3266 : 0, 0, 259, 0, 1688, 0, 0, 1104, 0, 615,
3267 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3268 : 0, 0, 0, 0, 0, 0, 0, 0, 634, 2288,
3269 : 0, 0, 0, 0, 1113, 0, 0, 0, 0, 0,
3270 : 393, 394, 0, 0, 0, 651, 536, 0, 0, 0,
3271 : 1691, 0, 0, 0, 860, 0, 0, 0, 0, 665,
3272 : 1796, 0, 0, 1823, 0, 0, 0, 0, 0, 0,
3273 : 0, 0, 1147, 0, 680, 1692, 354, 355, 0, 0,
3274 : 0, 0, 0, 0, 0, 0, 0, 0, 2305, 0,
3275 : 0, 0, 0, 0, 0, 0, 0, 1689, 0, 0,
3276 : 0, 0, 0, 2312, 0, 2331, 0, 0, 0, 0,
3277 : 0, 0, 537, 0, 0, 539, 0, 0, 0, 0,
3278 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3279 : 0, 1950, 540, 0, 2360, 541, 0, 931, 0, 0,
3280 : 0, 0, 0, 482, 0, 0, 0, 0, 0, 0,
3281 : 0, 0, 0, 1797, 0, 0, 1824, 0, 1799, 0,
3282 : 1974, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3283 : 0, 0, 0, 1253, 0, 1275, 0, 0, 2034, 0,
3284 : 0, 2067, 0, 1800, 0, 1826, 0, 0, 0, 0,
3285 : 0, 2633, 968, 990, 0, 0, 1018, 0, 2332, 0,
3286 : 2426, 0, 0, 0, 0, 0, 0, 0, 0, 545,
3287 : 1827, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3288 : 0, 0, 2669, 0, 0, 0, 0, 2361, 0, 0,
3289 : 0, 2457, 0, 0, 0, 0, 0, 0, 0, 0,
3290 : 0, 0, 0, 0, 0, 0, 0, 0, 371, 0,
3291 : 0, 0, 0, 2115, 0, 1383, 0, 0, 0, 0,
3292 : 0, 0, 0, 0, 0, 869, 0, 0, 0, 0,
3293 : 0, 2035, 0, 0, 2068, 0, 0, 0, 1409, 0,
3294 : 885, 0, 0, 0, 2634, 0, 0, 0, 0, 0,
3295 : 0, 0, 0, 0, 899, 0, 0, 0, 0, 0,
3296 : 0, 0, 0, 0, 0, 1391, 0, 0, 2334, 0,
3297 : 400, 2472, 2473, 0, 0, 2670, 0, 0, 0, 0,
3298 : 0, 0, 0, 0, 0, 937, 0, 0, 0, 0,
3299 : 1392, 0, 2363, 2335, 2492, 0, 0, 0, 0, 0,
3300 : 0, 0, 0, 0, 0, 0, 2116, 0, 0, 0,
3301 : 0, 0, 0, 488, 0, 0, 1417, 2364, 0, 0,
3302 : 0, 0, 1477, 0, 1506, 1534, 0, 0, 0, 2331,
3303 : 0, 0, 2360, 0, 0, 981, 0, 0, 0, 0,
3304 : 0, 1418, 0, 1097, 191, 192, 193, 194, 195, 196,
3305 : 197, 198, 199, 0, 0, 214, 2037, 0, 0, 0,
3306 : 215, 216, 217, 218, 219, 220, 0, 2633, 2532, 0,
3307 : 2534, 2535, 2536, 2537, 2538, 1568, 1591, 0, 332, 333,
3308 : 334, 2038, 335, 0, 0, 1031, 259, 0, 0, 2070,
3309 : 0, 0, 0, 2426, 0, 0, 0, 0, 0, 0,
3310 : 0, 0, 0, 2669, 0, 0, 2556, 0, 0, 0,
3311 : 0, 0, 0, 0, 2071, 0, 0, 0, 2561, 0,
3312 : 0, 0, 2332, 0, 0, 2361, 0, 0, 0, 2457,
3313 : 0, 0, 0, 0, 0, 0, 0, 2570, 2118, 0,
3314 : 0, 0, 0, 0, 2575, 0, 0, 0, 2580, 0,
3315 : 0, 0, 0, 0, 0, 0, 0, 0, 1104, 0,
3316 : 2634, 0, 0, 2119, 0, 0, 0, 0, 0, 0,
3317 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3318 : 594, 0, 1374, 615, 0, 634, 0, 651, 0, 665,
3319 : 0, 1682, 860, 0, 0, 0, 2670, 0, 0, 0,
3320 : 0, 1147, 0, 0, 0, 0, 0, 0, 0, 0,
3321 : 0, 0, 0, 0, 0, 2588, 680, 0, 0, 0,
3322 : 2633, 0, 0, 2669, 0, 0, 1097, 191, 192, 193,
3323 : 194, 195, 196, 197, 198, 199, 375, 0, 214, 0,
3324 : 0, 404, 0, 215, 216, 217, 494, 219, 220, 0,
3325 : 1691, 0, 931, 0, 0, 0, 0, 0, 0, 0,
3326 : 0, 332, 333, 334, 606, 335, 626, 643, 657, 670,
3327 : 0, 685, 0, 0, 0, 1692, 0, 0, 0, 0,
3328 : 482, 0, 0, 0, 0, 0, 0, 0, 0, 1464,
3329 : 0, 1493, 1521, 0, 0, 0, 0, 0, 0, 0,
3330 : 0, 0, 968, 0, 0, 1790, 1799, 1253, 0, 1826,
3331 : 0, 0, 0, 2634, 0, 0, 2670, 0, 0, 0,
3332 : 0, 0, 0, 0, 990, 0, 2696, 1817, 2698, 1275,
3333 : 0, 1800, 0, 0, 1827, 0, 0, 0, 0, 0,
3334 : 0, 2709, 1555, 1578, 0, 0, 0, 0, 0, 0,
3335 : 0, 2334, 1018, 190, 191, 192, 193, 194, 195, 196,
3336 : 197, 198, 199, 0, 0, 214, 0, 0, 0, 0,
3337 : 215, 216, 217, 218, 219, 220, 2335, 0, 0, 0,
3338 : 2363, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3339 : 0, 0, 2737, 0, 0, 0, 0, 0, 545, 0,
3340 : 0, 0, 0, 0, 0, 2364, 0, 0, 0, 0,
3341 : 0, 0, 0, 0, 0, 0, 0, 0, 2752, 0,
3342 : 0, 0, 0, 0, 2037, 0, 0, 2070, 0, 0,
3343 : 0, 0, 0, 0, 0, 0, 0, 2636, 0, 1383,
3344 : 0, 0, 375, 0, 0, 0, 0, 0, 0, 2038,
3345 : 0, 0, 2071, 0, 0, 0, 869, 0, 0, 1944,
3346 : 0, 1968, 2637, 1409, 0, 0, 0, 0, 2672, 0,
3347 : 875, 0, 0, 892, 907, 0, 0, 0, 404, 0,
3348 : 0, 0, 0, 885, 0, 899, 0, 0, 0, 0,
3349 : 0, 0, 0, 2673, 0, 0, 0, 0, 0, 2118,
3350 : 0, 0, 0, 0, 0, 0, 0, 937, 0, 0,
3351 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3352 : 0, 0, 2028, 0, 2119, 0, 0, 0, 0, 0,
3353 : 2783, 1477, 2785, 0, 0, 0, 0, 0, 0, 0,
3354 : 0, 0, 0, 0, 0, 2789, 0, 0, 0, 0,
3355 : 0, 2061, 0, 949, 0, 0, 0, 0, 0, 494,
3356 : 1506, 0, 2014, 191, 192, 193, 194, 195, 196, 197,
3357 : 198, 199, 0, 0, 214, 0, 0, 0, 0, 215,
3358 : 216, 217, 218, 219, 220, 0, 0, 0, 1534, 0,
3359 : 0, 0, 0, 0, 0, 0, 0, 332, 333, 334,
3360 : 0, 335, 0, 0, 0, 0, 981, 0, 987, 0,
3361 : 0, 0, 1036, 2110, 0, 2334, 0, 0, 2363, 0,
3362 : 0, 0, 1568, 0, 0, 0, 0, 0, 0, 0,
3363 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3364 : 2335, 0, 0, 2364, 0, 1591, 0, 0, 0, 536,
3365 : 0, 0, 0, 2636, 0, 0, 0, 0, 0, 0,
3366 : 0, 1031, 0, 0, 0, 0, 0, 0, 0, 1119,
3367 : 0, 606, 0, 0, 0, 0, 0, 0, 2637, 354,
3368 : 355, 0, 0, 0, 0, 0, 0, 0, 0, 2672,
3369 : 1119, 0, 626, 0, 0, 0, 0, 0, 0, 0,
3370 : 0, 0, 0, 0, 0, 0, 1374, 0, 0, 0,
3371 : 0, 643, 0, 0, 2673, 537, 0, 0, 539, 0,
3372 : 1104, 0, 0, 860, 0, 0, 0, 0, 657, 0,
3373 : 0, 0, 0, 0, 0, 540, 1682, 0, 541, 0,
3374 : 0, 0, 670, 0, 0, 0, 0, 0, 0, 0,
3375 : 0, 0, 0, 0, 0, 1155, 0, 685, 1147, 0,
3376 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3377 : 0, 0, 0, 0, 931, 0, 0, 0, 0, 0,
3378 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2015,
3379 : 0, 0, 0, 0, 0, 0, 0, 0, 1464, 0,
3380 : 0, 0, 0, 0, 0, 0, 2636, 0, 0, 2672,
3381 : 0, 0, 0, 0, 0, 0, 0, 0, 2048, 0,
3382 : 0, 0, 0, 0, 0, 0, 0, 1493, 0, 0,
3383 : 0, 2637, 0, 0, 2673, 0, 0, 0, 0, 0,
3384 : 0, 0, 0, 0, 1790, 0, 0, 0, 0, 0,
3385 : 0, 0, 0, 0, 0, 1521, 1266, 0, 1287, 0,
3386 : 0, 0, 0, 0, 0, 0, 0, 0, 1253, 0,
3387 : 0, 1817, 0, 968, 0, 0, 990, 0, 0, 0,
3388 : 2097, 0, 0, 0, 0, 0, 0, 0, 0, 1555,
3389 : 0, 0, 0, 0, 1275, 0, 0, 0, 0, 0,
3390 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3391 : 0, 0, 1578, 1, 2, 3, 4, 5, 6, 7,
3392 : 8, 9, 10, 11, 12, 13, 0, 0, 1018, 14,
3393 : 15, 375, 0, 0, 0, 0, 0, 0, 1395, 0,
3394 : 0, 16, 17, 18, 0, 0, 0, 0, 875, 0,
3395 : 0, 0, 0, 0, 19, 0, 0, 0, 0, 0,
3396 : 0, 1422, 0, 892, 0, 0, 0, 0, 0, 0,
3397 : 0, 0, 0, 0, 0, 0, 0, 907, 0, 0,
3398 : 0, 0, 0, 0, 20, 0, 21, 0, 0, 0,
3399 : 0, 1383, 0, 404, 2325, 0, 1944, 0, 0, 0,
3400 : 0, 0, 0, 0, 0, 0, 0, 0, 949, 0,
3401 : 0, 0, 22, 0, 0, 0, 23, 0, 2354, 0,
3402 : 1968, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3403 : 0, 0, 0, 0, 0, 0, 494, 0, 0, 0,
3404 : 0, 0, 1409, 0, 0, 1490, 0, 1519, 1544, 0,
3405 : 0, 0, 0, 0, 0, 24, 0, 0, 987, 0,
3406 : 0, 25, 0, 0, 0, 26, 27, 0, 0, 0,
3407 : 0, 0, 0, 0, 0, 28, 29, 0, 558, 30,
3408 : 0, 0, 2028, 0, 0, 603, 0, 0, 0, 0,
3409 : 0, 0, 0, 0, 0, 0, 0, 0, 1576, 1600,
3410 : 0, 0, 0, 0, 0, 1477, 0, 0, 1036, 0,
3411 : 0, 0, 0, 0, 0, 2061, 714, 0, 0, 31,
3412 : 32, 33, 0, 0, 34, 0, 0, 0, 0, 35,
3413 : 0, 0, 0, 0, 0, 0, 0, 0, 1506, 0,
3414 : 1534, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3415 : 0, 0, 0, 2420, 0, 2451, 0, 0, 0, 0,
3416 : 0, 0, 0, 0, 2110, 0, 0, 0, 0, 0,
3417 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3418 : 0, 1119, 0, 0, 0, 1568, 0, 1591, 0, 0,
3419 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3420 : 0, 0, 0, 606, 0, 0, 626, 0, 643, 0,
3421 : 657, 0, 670, 0, 1696, 0, 0, 0, 0, 0,
3422 : 0, 0, 0, 0, 1155, 0, 0, 0, 967, 191,
3423 : 192, 193, 194, 195, 196, 197, 198, 199, 0, 685,
3424 : 214, 0, 0, 0, 0, 215, 216, 217, 218, 219,
3425 : 220, 0, 0, 0, 0, 0, 0, 0, 1374, 0,
3426 : 0, 0, 0, 974, 996, 546, 562, 1024, 1047, 0,
3427 : 0, 259, 0, 0, 0, 0, 1682, 0, 0, 0,
3428 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3429 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3430 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3431 : 0, 0, 0, 0, 0, 536, 0, 0, 0, 0,
3432 : 0, 0, 0, 0, 0, 0, 0, 0, 1807, 0,
3433 : 1266, 0, 1790, 0, 0, 1817, 0, 0, 0, 0,
3434 : 0, 0, 0, 0, 0, 354, 355, 0, 0, 2015,
3435 : 1833, 0, 1287, 0, 0, 0, 0, 0, 0, 0,
3436 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3437 : 0, 0, 1464, 0, 0, 0, 0, 2325, 0, 0,
3438 : 0, 537, 2048, 0, 539, 0, 0, 0, 0, 0,
3439 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3440 : 0, 540, 0, 1944, 541, 1493, 2354, 1521, 0, 0,
3441 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3442 : 2405, 0, 2436, 0, 0, 0, 0, 0, 0, 986,
3443 : 1011, 2097, 1968, 1035, 0, 0, 0, 1064, 0, 0,
3444 : 0, 0, 0, 0, 0, 0, 558, 0, 0, 0,
3445 : 2028, 0, 1555, 2061, 1578, 0, 0, 0, 0, 0,
3446 : 0, 0, 1395, 2627, 0, 0, 0, 0, 0, 0,
3447 : 0, 0, 2420, 0, 0, 0, 0, 0, 0, 875,
3448 : 0, 0, 1957, 0, 1981, 0, 1422, 0, 0, 0,
3449 : 0, 0, 603, 0, 2663, 0, 0, 0, 0, 0,
3450 : 0, 0, 0, 2451, 0, 0, 892, 0, 907, 0,
3451 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3452 : 0, 0, 0, 0, 0, 2110, 0, 0, 0, 0,
3453 : 949, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3454 : 0, 0, 0, 0, 0, 2044, 0, 0, 0, 0,
3455 : 0, 0, 0, 0, 1490, 0, 0, 0, 0, 0,
3456 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3457 : 0, 0, 0, 0, 2077, 0, 1154, 0, 0, 0,
3458 : 0, 0, 0, 1519, 0, 0, 0, 0, 0, 0,
3459 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3460 : 0, 0, 0, 714, 0, 0, 0, 0, 0, 0,
3461 : 0, 1544, 0, 0, 0, 0, 969, 991, 0, 0,
3462 : 1019, 0, 0, 0, 1059, 0, 0, 0, 0, 987,
3463 : 0, 0, 0, 546, 0, 0, 2124, 0, 0, 0,
3464 : 0, 2325, 0, 0, 2354, 1576, 0, 0, 0, 0,
3465 : 562, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3466 : 0, 0, 0, 0, 0, 0, 0, 0, 1600, 0,
3467 : 0, 0, 0, 0, 0, 0, 0, 1262, 0, 2627,
3468 : 0, 0, 0, 0, 1036, 0, 0, 0, 0, 0,
3469 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3470 : 1470, 0, 1499, 1527, 0, 2420, 0, 0, 0, 0,
3471 : 0, 0, 0, 974, 0, 2663, 0, 2015, 0, 0,
3472 : 2048, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3473 : 2612, 0, 0, 0, 0, 996, 0, 0, 0, 2405,
3474 : 0, 2451, 0, 1119, 0, 0, 0, 0, 0, 0,
3475 : 0, 0, 0, 1561, 1584, 0, 0, 0, 0, 1696,
3476 : 0, 2648, 0, 1024, 0, 0, 0, 0, 0, 0,
3477 : 2436, 0, 0, 0, 0, 0, 0, 0, 0, 1047,
3478 : 0, 1155, 0, 0, 0, 0, 1615, 1624, 0, 0,
3479 : 0, 0, 2097, 0, 0, 0, 0, 0, 0, 0,
3480 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3481 : 0, 0, 0, 0, 0, 0, 0, 1433, 0, 1435,
3482 : 1441, 1443, 0, 0, 0, 0, 0, 0, 0, 0,
3483 : 0, 0, 2627, 0, 0, 2663, 0, 0, 0, 0,
3484 : 0, 0, 592, 0, 613, 632, 649, 663, 0, 678,
3485 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3486 : 0, 0, 0, 0, 0, 0, 1486, 1807, 1515, 1542,
3487 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 986,
3488 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3489 : 0, 1266, 0, 0, 1833, 0, 0, 0, 0, 0,
3490 : 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0,
3491 : 0, 0, 0, 0, 0, 0, 0, 1287, 0, 1574,
3492 : 1598, 0, 0, 0, 0, 0, 0, 0, 0, 1035,
3493 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3494 : 0, 0, 0, 0, 0, 0, 2612, 0, 0, 0,
3495 : 0, 0, 1617, 1626, 0, 0, 0, 0, 1064, 0,
3496 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3497 : 0, 0, 2405, 0, 0, 558, 0, 0, 0, 0,
3498 : 0, 0, 2648, 0, 0, 0, 0, 0, 0, 0,
3499 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3500 : 0, 0, 0, 0, 0, 0, 0, 0, 2436, 0,
3501 : 0, 0, 0, 0, 1395, 0, 0, 2342, 0, 1957,
3502 : 0, 0, 0, 0, 603, 0, 0, 0, 0, 0,
3503 : 0, 0, 0, 0, 0, 1694, 0, 0, 0, 0,
3504 : 0, 2371, 0, 1981, 0, 1154, 0, 0, 0, 0,
3505 : 0, 0, 0, 1465, 0, 1494, 1522, 0, 0, 0,
3506 : 0, 0, 0, 0, 0, 1422, 969, 0, 0, 0,
3507 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3508 : 0, 0, 0, 0, 0, 0, 0, 0, 991, 0,
3509 : 0, 0, 714, 0, 0, 0, 0, 0, 0, 2612,
3510 : 0, 0, 2648, 0, 0, 2044, 1556, 1579, 0, 0,
3511 : 0, 0, 0, 0, 0, 0, 1019, 0, 0, 0,
3512 : 0, 0, 0, 0, 0, 0, 0, 0, 1490, 0,
3513 : 0, 0, 0, 0, 0, 0, 0, 0, 2077, 1613,
3514 : 1622, 0, 0, 0, 0, 1059, 0, 0, 0, 1803,
3515 : 0, 1262, 0, 0, 0, 0, 0, 0, 0, 0,
3516 : 0, 1519, 546, 1544, 562, 0, 0, 0, 0, 0,
3517 : 0, 0, 0, 0, 0, 0, 2433, 0, 2464, 0,
3518 : 0, 0, 0, 0, 0, 0, 979, 2124, 0, 0,
3519 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3520 : 2021, 0, 0, 0, 0, 0, 0, 0, 1576, 1470,
3521 : 1600, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3522 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2054,
3523 : 0, 0, 0, 0, 0, 0, 0, 0, 1499, 0,
3524 : 0, 0, 0, 0, 0, 0, 0, 1102, 0, 592,
3525 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3526 : 0, 0, 0, 0, 0, 0, 1527, 0, 1102, 0,
3527 : 613, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3528 : 0, 0, 0, 0, 974, 0, 0, 996, 0, 632,
3529 : 0, 2103, 0, 0, 0, 0, 0, 0, 0, 1696,
3530 : 1561, 0, 0, 1953, 0, 1977, 649, 0, 0, 0,
3531 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3532 : 663, 0, 0, 1584, 0, 0, 0, 0, 0, 0,
3533 : 0, 0, 0, 1145, 1990, 678, 0, 0, 0, 1024,
3534 : 0, 1441, 0, 0, 1047, 0, 0, 0, 1615, 0,
3535 : 0, 0, 0, 0, 0, 1807, 0, 1624, 1833, 0,
3536 : 0, 0, 0, 0, 0, 0, 2041, 0, 0, 0,
3537 : 0, 0, 0, 0, 0, 1486, 0, 0, 0, 0,
3538 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3539 : 0, 0, 0, 0, 0, 2074, 0, 0, 0, 0,
3540 : 2342, 0, 0, 0, 1515, 0, 0, 0, 0, 0,
3541 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3542 : 0, 0, 0, 0, 0, 0, 1957, 0, 0, 2371,
3543 : 0, 0, 1542, 0, 1251, 0, 1273, 0, 0, 0,
3544 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3545 : 986, 0, 0, 1011, 0, 1981, 0, 2121, 0, 0,
3546 : 0, 0, 0, 0, 0, 0, 1574, 0, 0, 0,
3547 : 0, 0, 0, 2044, 0, 0, 2077, 0, 0, 0,
3548 : 0, 0, 0, 0, 0, 0, 2644, 0, 0, 1598,
3549 : 0, 0, 0, 0, 0, 2433, 0, 0, 0, 0,
3550 : 0, 2249, 0, 0, 0, 1035, 0, 0, 0, 0,
3551 : 0, 0, 0, 0, 1617, 0, 0, 2680, 0, 0,
3552 : 0, 0, 0, 1626, 0, 0, 2464, 0, 0, 0,
3553 : 0, 0, 0, 1064, 0, 0, 0, 0, 0, 0,
3554 : 0, 0, 0, 0, 0, 0, 0, 0, 2124, 0,
3555 : 0, 0, 0, 2016, 0, 0, 0, 0, 0, 0,
3556 : 0, 0, 1465, 0, 0, 0, 0, 0, 0, 0,
3557 : 593, 0, 614, 633, 650, 664, 0, 679, 0, 0,
3558 : 1694, 0, 2049, 0, 0, 0, 0, 0, 0, 0,
3559 : 0, 1494, 0, 0, 0, 0, 0, 0, 0, 0,
3560 : 0, 0, 1154, 0, 595, 0, 616, 635, 652, 666,
3561 : 0, 681, 0, 0, 0, 0, 0, 0, 0, 1522,
3562 : 0, 0, 0, 1475, 0, 1504, 1532, 0, 0, 0,
3563 : 0, 0, 0, 0, 0, 0, 979, 969, 0, 0,
3564 : 991, 0, 0, 0, 2098, 0, 0, 0, 0, 0,
3565 : 0, 0, 0, 1556, 0, 0, 0, 0, 0, 0,
3566 : 0, 0, 0, 0, 2342, 0, 0, 2371, 0, 0,
3567 : 0, 0, 0, 0, 0, 0, 1579, 0, 0, 0,
3568 : 0, 0, 0, 0, 0, 0, 0, 0, 1803, 0,
3569 : 0, 0, 1019, 0, 0, 0, 0, 0, 0, 0,
3570 : 0, 1613, 2644, 0, 0, 0, 0, 0, 0, 0,
3571 : 1622, 0, 1262, 0, 0, 0, 0, 0, 0, 0,
3572 : 1059, 0, 0, 0, 0, 0, 0, 0, 2433, 0,
3573 : 0, 0, 0, 0, 0, 0, 0, 0, 2680, 0,
3574 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3575 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 1102,
3576 : 2021, 0, 0, 0, 2464, 970, 992, 0, 0, 1020,
3577 : 1044, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3578 : 0, 592, 0, 1470, 613, 0, 632, 0, 649, 0,
3579 : 663, 0, 1680, 2054, 0, 0, 0, 0, 0, 0,
3580 : 0, 0, 1145, 0, 0, 0, 0, 0, 0, 0,
3581 : 0, 0, 0, 0, 0, 0, 1499, 678, 1527, 0,
3582 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3583 : 0, 2411, 0, 2442, 0, 0, 0, 0, 2338, 0,
3584 : 1953, 0, 2103, 0, 0, 0, 0, 0, 0, 0,
3585 : 0, 0, 0, 0, 0, 2644, 0, 0, 2680, 0,
3586 : 0, 0, 2367, 1561, 1977, 1584, 0, 0, 0, 0,
3587 : 0, 0, 0, 0, 0, 1615, 0, 0, 1624, 0,
3588 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3589 : 0, 0, 0, 0, 0, 1441, 0, 0, 0, 0,
3590 : 0, 0, 0, 0, 0, 0, 1788, 0, 1251, 0,
3591 : 0, 0, 0, 0, 980, 0, 0, 0, 0, 0,
3592 : 0, 0, 0, 0, 0, 0, 2041, 0, 1815, 0,
3593 : 1273, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3594 : 0, 0, 0, 0, 0, 0, 0, 0, 982, 1486,
3595 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2074,
3596 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3597 : 0, 0, 0, 0, 0, 1103, 0, 593, 0, 0,
3598 : 0, 0, 1515, 0, 1542, 0, 0, 0, 2249, 0,
3599 : 0, 0, 0, 0, 0, 0, 1103, 2429, 614, 2460,
3600 : 0, 0, 971, 993, 0, 0, 1021, 0, 2121, 1105,
3601 : 0, 595, 0, 0, 0, 0, 0, 633, 0, 0,
3602 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 1574,
3603 : 1105, 1598, 616, 0, 650, 0, 0, 0, 0, 0,
3604 : 0, 1617, 0, 0, 1626, 0, 0, 0, 664, 0,
3605 : 0, 635, 0, 0, 0, 0, 0, 0, 0, 0,
3606 : 1940, 1146, 1964, 679, 0, 0, 0, 0, 652, 0,
3607 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3608 : 0, 0, 666, 0, 0, 0, 0, 0, 0, 0,
3609 : 0, 0, 0, 0, 0, 1148, 0, 681, 0, 0,
3610 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3611 : 0, 0, 0, 2016, 0, 0, 0, 0, 0, 0,
3612 : 1694, 0, 0, 2026, 0, 0, 0, 0, 2021, 0,
3613 : 0, 2054, 1475, 0, 0, 0, 1465, 0, 0, 0,
3614 : 0, 2618, 0, 0, 0, 0, 2049, 0, 0, 0,
3615 : 2411, 0, 2059, 0, 0, 0, 0, 0, 0, 0,
3616 : 0, 1504, 1252, 0, 1274, 0, 0, 0, 0, 1494,
3617 : 0, 1522, 2654, 0, 0, 0, 1803, 0, 0, 0,
3618 : 0, 2442, 0, 0, 2406, 0, 2437, 0, 0, 1532,
3619 : 0, 0, 0, 0, 0, 2098, 1254, 0, 1276, 0,
3620 : 0, 0, 1466, 2103, 1495, 1523, 0, 979, 0, 0,
3621 : 0, 0, 0, 0, 0, 970, 1556, 0, 1579, 0,
3622 : 0, 2338, 0, 0, 0, 0, 0, 0, 1613, 0,
3623 : 0, 1622, 0, 0, 0, 0, 0, 992, 0, 0,
3624 : 0, 0, 0, 0, 0, 0, 0, 1953, 0, 0,
3625 : 2367, 0, 0, 0, 0, 1557, 1580, 0, 0, 0,
3626 : 0, 0, 0, 0, 0, 1020, 0, 0, 0, 0,
3627 : 0, 0, 0, 0, 0, 0, 1977, 0, 0, 0,
3628 : 0, 1044, 0, 0, 0, 2249, 0, 0, 1614, 1623,
3629 : 0, 0, 0, 0, 2041, 0, 0, 2074, 0, 0,
3630 : 0, 0, 0, 0, 0, 0, 0, 2640, 0, 0,
3631 : 0, 0, 0, 0, 0, 0, 2429, 0, 0, 0,
3632 : 0, 1102, 0, 0, 0, 0, 0, 0, 0, 0,
3633 : 0, 0, 0, 0, 0, 0, 0, 1680, 2676, 0,
3634 : 0, 0, 0, 0, 0, 0, 0, 2460, 0, 0,
3635 : 0, 1476, 0, 1505, 1533, 0, 0, 2618, 0, 1145,
3636 : 0, 0, 0, 0, 980, 0, 0, 0, 0, 2121,
3637 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3638 : 0, 0, 0, 2411, 0, 1478, 0, 1507, 1535, 0,
3639 : 0, 0, 0, 2654, 0, 0, 0, 0, 982, 0,
3640 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3641 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2442,
3642 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3643 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 1467,
3644 : 0, 1496, 1524, 0, 0, 1788, 0, 0, 0, 0,
3645 : 0, 0, 971, 0, 0, 0, 0, 0, 0, 0,
3646 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 1251,
3647 : 0, 0, 1815, 0, 993, 0, 0, 0, 0, 0,
3648 : 0, 2016, 0, 0, 2049, 2338, 0, 1103, 2367, 0,
3649 : 0, 0, 1558, 1581, 2613, 1273, 0, 0, 0, 0,
3650 : 0, 0, 1021, 2406, 0, 0, 0, 0, 0, 593,
3651 : 2618, 0, 614, 2654, 633, 0, 650, 0, 664, 0,
3652 : 1681, 1105, 0, 2640, 0, 2649, 0, 0, 0, 0,
3653 : 1146, 0, 0, 0, 2437, 0, 0, 0, 0, 0,
3654 : 0, 0, 0, 595, 0, 679, 616, 0, 635, 2429,
3655 : 652, 0, 666, 0, 1683, 0, 2098, 0, 0, 2676,
3656 : 0, 0, 0, 0, 1148, 0, 0, 0, 0, 0,
3657 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 681,
3658 : 0, 0, 0, 0, 0, 2460, 0, 0, 0, 0,
3659 : 0, 0, 0, 0, 0, 2321, 0, 1940, 0, 0,
3660 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3661 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2350,
3662 : 0, 1964, 0, 0, 0, 0, 0, 0, 0, 0,
3663 : 0, 0, 0, 0, 1789, 0, 1252, 0, 0, 0,
3664 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3665 : 0, 972, 994, 0, 0, 1022, 1816, 0, 1274, 0,
3666 : 0, 0, 0, 973, 995, 0, 0, 1023, 1791, 0,
3667 : 1254, 0, 0, 0, 0, 0, 2640, 0, 0, 2676,
3668 : 0, 0, 0, 2026, 0, 0, 0, 0, 0, 0,
3669 : 1818, 0, 1276, 0, 0, 0, 0, 0, 0, 0,
3670 : 0, 0, 2017, 0, 0, 0, 1475, 0, 0, 0,
3671 : 2613, 1466, 0, 0, 0, 0, 2059, 0, 0, 0,
3672 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3673 : 0, 2050, 0, 0, 0, 0, 2406, 0, 0, 1504,
3674 : 1495, 1532, 0, 0, 0, 0, 2649, 0, 0, 0,
3675 : 0, 0, 0, 0, 2416, 0, 2447, 0, 0, 0,
3676 : 0, 0, 0, 0, 0, 0, 0, 0, 1523, 0,
3677 : 0, 0, 2437, 0, 0, 0, 0, 0, 0, 0,
3678 : 0, 0, 0, 0, 0, 0, 970, 0, 1943, 992,
3679 : 1967, 0, 0, 2099, 0, 0, 0, 0, 0, 0,
3680 : 0, 0, 1557, 0, 0, 0, 0, 0, 0, 0,
3681 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3682 : 0, 0, 1945, 0, 1969, 1580, 0, 0, 0, 0,
3683 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3684 : 0, 1020, 0, 0, 0, 0, 1044, 0, 0, 0,
3685 : 1614, 2027, 0, 0, 0, 0, 0, 0, 0, 1623,
3686 : 1476, 0, 0, 2613, 0, 0, 2649, 0, 0, 0,
3687 : 0, 0, 0, 0, 0, 0, 0, 1680, 0, 0,
3688 : 2060, 0, 0, 0, 0, 2029, 0, 0, 0, 1505,
3689 : 0, 0, 0, 0, 1478, 0, 0, 0, 0, 0,
3690 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3691 : 0, 0, 0, 0, 2062, 0, 0, 1533, 0, 0,
3692 : 0, 0, 0, 1507, 0, 0, 0, 0, 0, 0,
3693 : 0, 0, 0, 1788, 0, 980, 1815, 0, 0, 2018,
3694 : 0, 0, 0, 0, 0, 0, 0, 0, 1467, 0,
3695 : 0, 1535, 0, 0, 0, 0, 0, 0, 0, 0,
3696 : 0, 0, 0, 0, 0, 0, 0, 0, 2051, 982,
3697 : 0, 0, 0, 0, 0, 0, 0, 1496, 2321, 0,
3698 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3699 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3700 : 0, 0, 0, 0, 1940, 1524, 0, 2350, 0, 0,
3701 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3702 : 0, 0, 0, 971, 0, 0, 993, 0, 0, 0,
3703 : 2100, 0, 0, 1964, 0, 0, 0, 0, 0, 1558,
3704 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 1103,
3705 : 0, 2026, 0, 0, 2059, 0, 0, 0, 0, 0,
3706 : 0, 0, 1581, 0, 2623, 1681, 0, 0, 0, 0,
3707 : 0, 0, 0, 2416, 0, 0, 0, 0, 1021, 0,
3708 : 0, 0, 0, 1105, 0, 0, 0, 1146, 1468, 0,
3709 : 1497, 1525, 0, 0, 0, 2659, 0, 0, 0, 1683,
3710 : 1469, 972, 1498, 1526, 2447, 0, 0, 0, 0, 0,
3711 : 0, 0, 0, 973, 0, 0, 0, 0, 0, 0,
3712 : 0, 1148, 0, 994, 0, 0, 0, 0, 0, 0,
3713 : 0, 0, 0, 0, 0, 995, 0, 0, 0, 0,
3714 : 0, 1559, 1582, 0, 0, 0, 0, 0, 0, 0,
3715 : 0, 1022, 0, 1560, 1583, 0, 0, 0, 0, 0,
3716 : 0, 0, 0, 1023, 0, 0, 0, 0, 0, 0,
3717 : 0, 0, 0, 1789, 0, 0, 0, 0, 0, 0,
3718 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3719 : 0, 0, 0, 0, 0, 0, 0, 1252, 0, 0,
3720 : 1816, 0, 0, 0, 0, 0, 0, 1791, 0, 0,
3721 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3722 : 0, 0, 0, 1274, 0, 0, 0, 0, 0, 0,
3723 : 0, 1254, 0, 0, 1818, 0, 0, 0, 0, 0,
3724 : 0, 0, 2321, 0, 0, 2350, 0, 0, 0, 0,
3725 : 0, 0, 0, 0, 0, 0, 0, 1276, 0, 0,
3726 : 0, 0, 2017, 0, 0, 0, 0, 0, 0, 0,
3727 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3728 : 2623, 0, 0, 0, 0, 1466, 0, 0, 0, 0,
3729 : 0, 0, 0, 0, 0, 2050, 0, 0, 0, 0,
3730 : 0, 0, 0, 0, 0, 0, 2416, 0, 0, 0,
3731 : 0, 0, 0, 0, 0, 0, 2659, 0, 1495, 0,
3732 : 1523, 0, 0, 2324, 0, 1943, 0, 0, 0, 0,
3733 : 0, 0, 0, 2407, 0, 2438, 0, 0, 0, 0,
3734 : 0, 0, 2447, 0, 2099, 0, 0, 2353, 0, 1967,
3735 : 0, 0, 0, 0, 0, 0, 0, 2326, 0, 1945,
3736 : 0, 0, 0, 0, 0, 1557, 0, 1580, 0, 0,
3737 : 0, 0, 0, 0, 0, 0, 0, 1614, 0, 0,
3738 : 1623, 2355, 0, 1969, 0, 0, 0, 0, 0, 0,
3739 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3740 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3741 : 0, 2027, 0, 0, 0, 0, 0, 0, 0, 0,
3742 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3743 : 0, 0, 0, 2623, 1476, 0, 2659, 0, 0, 0,
3744 : 0, 0, 0, 0, 2060, 2029, 0, 0, 0, 0,
3745 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3746 : 0, 0, 0, 0, 0, 0, 0, 1505, 1478, 1533,
3747 : 0, 0, 0, 0, 0, 0, 0, 0, 2062, 0,
3748 : 0, 0, 2419, 0, 2450, 0, 0, 0, 0, 0,
3749 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2018,
3750 : 0, 1507, 0, 1535, 0, 0, 0, 0, 0, 0,
3751 : 0, 0, 0, 0, 0, 0, 2421, 0, 2452, 0,
3752 : 0, 0, 1467, 0, 0, 0, 0, 0, 0, 0,
3753 : 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0,
3754 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3755 : 0, 0, 0, 0, 0, 1496, 0, 1524, 0, 0,
3756 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3757 : 2408, 0, 2439, 0, 0, 0, 0, 0, 0, 0,
3758 : 0, 2100, 0, 0, 0, 0, 0, 0, 2019, 0,
3759 : 0, 0, 0, 0, 0, 0, 0, 1468, 0, 0,
3760 : 2020, 0, 1558, 0, 1581, 1681, 0, 0, 0, 1469,
3761 : 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0,
3762 : 0, 0, 0, 0, 0, 0, 1497, 0, 0, 2053,
3763 : 2017, 0, 0, 2050, 0, 0, 0, 0, 1498, 1683,
3764 : 0, 0, 0, 2614, 0, 0, 0, 0, 0, 0,
3765 : 0, 0, 2407, 0, 1525, 0, 0, 0, 0, 0,
3766 : 0, 1789, 0, 0, 1816, 0, 1526, 0, 0, 0,
3767 : 0, 0, 972, 0, 2650, 994, 0, 0, 0, 2101,
3768 : 0, 0, 0, 2438, 973, 0, 0, 995, 1559, 0,
3769 : 0, 2102, 0, 0, 0, 1791, 0, 0, 1818, 0,
3770 : 1560, 0, 0, 0, 0, 2099, 2324, 0, 0, 0,
3771 : 0, 1582, 0, 0, 0, 0, 0, 0, 0, 0,
3772 : 0, 0, 0, 1583, 0, 0, 0, 1022, 0, 0,
3773 : 0, 0, 1943, 0, 0, 2353, 0, 0, 0, 1023,
3774 : 2326, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3775 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3776 : 0, 1967, 0, 0, 0, 0, 1945, 0, 0, 2355,
3777 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2027,
3778 : 0, 0, 2060, 0, 0, 0, 0, 0, 0, 0,
3779 : 0, 0, 2626, 0, 0, 1969, 0, 0, 0, 0,
3780 : 0, 2419, 0, 0, 0, 0, 0, 0, 0, 0,
3781 : 0, 0, 0, 2029, 0, 0, 2062, 0, 0, 0,
3782 : 0, 0, 0, 2662, 0, 0, 2628, 0, 0, 0,
3783 : 0, 0, 2450, 0, 0, 2421, 0, 0, 0, 0,
3784 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3785 : 0, 0, 0, 0, 0, 0, 0, 2664, 0, 2614,
3786 : 0, 0, 0, 0, 0, 0, 2452, 2018, 0, 0,
3787 : 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3788 : 2615, 0, 0, 0, 0, 2407, 0, 0, 0, 2408,
3789 : 0, 0, 0, 0, 0, 2650, 0, 0, 0, 0,
3790 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3791 : 0, 2651, 0, 0, 0, 0, 0, 0, 0, 0,
3792 : 2439, 2438, 0, 0, 0, 0, 0, 0, 0, 0,
3793 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3794 : 0, 0, 2100, 0, 0, 0, 0, 0, 0, 0,
3795 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3796 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3797 : 2324, 0, 0, 2353, 0, 0, 0, 0, 0, 0,
3798 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3799 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3800 : 0, 0, 0, 0, 2326, 0, 0, 2355, 2626, 0,
3801 : 0, 0, 2614, 0, 0, 2650, 0, 0, 0, 0,
3802 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3803 : 0, 0, 0, 0, 2419, 0, 0, 0, 0, 0,
3804 : 0, 0, 2628, 0, 2662, 0, 0, 0, 0, 0,
3805 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3806 : 0, 0, 0, 0, 0, 0, 0, 0, 2421, 0,
3807 : 2450, 0, 0, 0, 0, 0, 0, 0, 2664, 0,
3808 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3809 : 0, 0, 0, 0, 0, 0, 2615, 0, 0, 0,
3810 : 0, 0, 0, 0, 2452, 0, 0, 0, 0, 0,
3811 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3812 : 0, 0, 2408, 0, 0, 0, 0, 0, 0, 0,
3813 : 0, 0, 2651, 0, 0, 0, 0, 0, 0, 0,
3814 : 0, 0, 0, 0, 0, 0, 0, 0, 2019, 0,
3815 : 0, 0, 0, 0, 0, 0, 0, 0, 2439, 0,
3816 : 2020, 2626, 0, 0, 2662, 0, 0, 0, 0, 0,
3817 : 0, 1468, 0, 0, 0, 0, 0, 0, 0, 0,
3818 : 0, 2052, 0, 1469, 0, 0, 0, 0, 0, 0,
3819 : 0, 0, 0, 2053, 0, 2628, 0, 0, 2664, 0,
3820 : 0, 0, 0, 0, 1497, 0, 1525, 0, 0, 0,
3821 : 0, 0, 0, 0, 0, 0, 1498, 0, 1526, 2409,
3822 : 0, 2440, 0, 0, 0, 0, 0, 0, 0, 0,
3823 : 2101, 2410, 0, 2441, 0, 0, 0, 0, 0, 0,
3824 : 0, 0, 2102, 0, 0, 0, 0, 0, 0, 2615,
3825 : 0, 1559, 2651, 1582, 0, 0, 0, 0, 0, 0,
3826 : 0, 0, 0, 1560, 0, 1583, 0, 0, 0, 0,
3827 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3828 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3829 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3830 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3831 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3832 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3833 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3834 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3835 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3836 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3837 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3838 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3839 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3840 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3841 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3842 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3843 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3844 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3845 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3846 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3847 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3848 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3849 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3850 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3851 : 0, 0, 0, 0, 0, 0, 2019, 0, 0, 2052,
3852 : 0, 0, 0, 0, 0, 0, 0, 0, 2020, 2616,
3853 : 0, 2053, 0, 0, 0, 0, 0, 0, 2409, 0,
3854 : 0, 2617, 0, 0, 0, 0, 0, 0, 0, 0,
3855 : 2410, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3856 : 2652, 0, 0, 0, 0, 0, 0, 0, 0, 2440,
3857 : 0, 0, 2653, 0, 0, 0, 0, 0, 0, 0,
3858 : 0, 2441, 0, 0, 0, 0, 0, 0, 0, 0,
3859 : 0, 2101, 0, 0, 0, 0, 0, 0, 0, 0,
3860 : 0, 0, 0, 2102, 0, 0, 0, 0, 0, 0,
3861 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3862 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3863 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3864 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3865 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3866 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3867 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3868 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3869 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3870 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3871 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3872 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3873 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3874 : 0, 0, 0, 0, 0, 2616, 0, 0, 0, 0,
3875 : 0, 0, 0, 0, 0, 0, 0, 2617, 0, 0,
3876 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3877 : 0, 2409, 0, 0, 0, 0, 0, 0, 0, 0,
3878 : 0, 2652, 0, 2410, 0, 0, 0, 0, 0, 0,
3879 : 0, 0, 0, 2653, 0, 0, 0, 0, 0, 0,
3880 : 0, 0, 0, 0, 0, 0, 0, 2440, 0, 0,
3881 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2441,
3882 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3883 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3884 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3885 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3886 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3887 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3888 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3889 : 0, 0, 0, 0, 0, 0, 0, 0, 2616, 0,
3890 : 0, 2652, 0, 0, 0, 0, 0, 0, 0, 0,
3891 : 2617, 0, 0, 2653
3892 : };
3893 :
3894 : static const yytype_int16 yycheck[] =
3895 : {
3896 : 132, 178, 134, 391, 534, 1492, 1554, 856, 1644, 530,
3897 : 142, 143, 388, 145, 146, 185, 178, 146, 1295, 1404,
3898 : 1884, 153, 154, 1501, 1026, 1472, 1091, 159, 1093, 1055,
3899 : 1142, 1042, 164, 1248, 976, 1099, 1438, 963, 881, 965,
3900 : 966, 1270, 1586, 175, 1563, 1677, 866, 261, 895, 1611,
3901 : 182, 926, 184, 185, 186, 187, 1529, 189, 2194, 998,
3902 : 1213, 1380, 831, 778, 337, 1620, 700, 646, 325, 213,
3903 : 360, 477, 1785, 396, 289, 382, 675, 503, 589, 381,
3904 : 1812, 213, 660, 2023, 1937, 543, 2105, 2056, 1246, 272,
3905 : 222, 235, 1961, 164, 388, 2318, 2251, 2347, 2444, 2413,
3906 : 23, 4, 610, 235, 560, 237, 4, 34, 4, 4,
3907 : 1268, 33, 14, 257, 299, 26, 27, 237, 4, 222,
3908 : 33, 32, 4, 4, 35, 257, 61, 0, 159, 261,
3909 : 74, 42, 316, 164, 629, 33, 71, 201, 25, 32,
3910 : 272, 46, 43, 37, 23, 2656, 727, 388, 145, 36,
3911 : 754, 33, 33, 33, 164, 66, 32, 289, 33, 768,
3912 : 106, 33, 33, 199, 43, 33, 33, 299, 194, 70,
3913 : 299, 25, 26, 27, 28, 170, 30, 471, 32, 23,
3914 : 24, 25, 26, 27, 28, 29, 30, 31, 32, 388,
3915 : 141, 35, 0, 54, 55, 56, 40, 17, 42, 43,
3916 : 44, 0, 141, 229, 4, 337, 33, 243, 0, 112,
3917 : 195, 114, 115, 4, 58, 59, 60, 164, 62, 122,
3918 : 123, 124, 392, 26, 27, 132, 0, 134, 360, 32,
3919 : 471, 110, 229, 33, 229, 142, 0, 2620, 145, 146,
3920 : 43, 148, 33, 0, 229, 26, 0, 154, 170, 30,
3921 : 104, 105, 159, 152, 35, 2813, 388, 164, 164, 391,
3922 : 392, 42, 141, 44, 396, 2776, 152, 70, 175, 141,
3923 : 152, 7, 471, 61, 170, 182, 244, 184, 185, 186,
3924 : 187, 152, 189, 71, 23, 229, 67, 26, 161, 170,
3925 : 23, 30, 243, 137, 138, 139, 35, 152, 142, 2857,
3926 : 246, 40, 229, 42, 243, 44, 213, 229, 243, 153,
3927 : 154, 155, 103, 192, 193, 222, 229, 388, 23, 58,
3928 : 59, 60, 243, 62, 229, 246, 229, 229, 235, 252,
3929 : 237, 229, 2646, 229, 229, 2585, 2682, 4, 231, 471,
3930 : 243, 252, 0, 229, 224, 477, 141, 229, 229, 243,
3931 : 257, 252, 224, 161, 261, 231, 243, 224, 229, 2582,
3932 : 391, 392, 161, 243, 243, 396, 33, 243, 229, 161,
3933 : 192, 2507, 33, 2509, 229, 197, 198, 110, 388, 673,
3934 : 171, 182, 289, 184, 185, 186, 187, 161, 189, 243,
3935 : 2773, 4, 299, 2548, 526, 527, 191, 161, 530, 6,
3936 : 471, 578, 9, 170, 161, 110, 477, 161, 252, 316,
3937 : 170, 543, 4, 33, 170, 26, 27, 579, 170, 30,
3938 : 33, 32, 244, 4, 35, 2394, 18, 2291, 223, 40,
3939 : 41, 42, 673, 44, 45, 168, 169, 174, 175, 152,
3940 : 146, 388, 148, 149, 150, 151, 477, 2466, 132, 252,
3941 : 134, 2391, 33, 360, 243, 587, 245, 589, 243, 629,
3942 : 245, 471, 229, 168, 169, 19, 199, 477, 75, 229,
3943 : 77, 252, 4, 229, 673, 244, 608, 229, 610, 33,
3944 : 4, 388, 388, 40, 391, 392, 163, 164, 165, 396,
3945 : 866, 2344, 229, 881, 199, 1016, 1017, 629, 182, 530,
3946 : 184, 33, 59, 60, 2373, 1026, 63, 64, 65, 33,
3947 : 243, 103, 43, 252, 646, 221, 222, 26, 27, 243,
3948 : 33, 30, 246, 32, 471, 1055, 35, 244, 660, 213,
3949 : 477, 1380, 958, 170, 43, 244, 213, 214, 222, 70,
3950 : 4, 673, 219, 675, 2276, 178, 1472, 854, 954, 1128,
3951 : 852, 235, 1130, 237, 171, 1189, 700, 2105, 1157, 849,
3952 : 2273, 171, 856, 1332, 471, 471, 823, 840, 700, 2056,
3953 : 477, 477, 866, 1448, 1289, 1501, 2138, 1397, 2714, 1426,
3954 : 2716, 1424, 796, 727, 2128, 2217, 2141, 1699, 911, 804,
3955 : 1992, 1656, 724, 1658, 1809, 727, 1607, 1661, 1983, 2046,
3956 : 1602, 2079, 673, 1529, 1630, 1547, 1835, 2126, 2081, 1762,
3957 : 1121, 1550, 744, 1932, 1072, 856, 1124, 800, 1074, 526,
3958 : 527, 724, 807, 530, 744, 866, 1207, 1785, 1016, 813,
3959 : 1234, 1126, 926, 697, 778, 1244, 543, 4, 163, 164,
3960 : 165, 252, 774, 141, 776, 4, 778, 192, 112, 244,
3961 : 114, 115, 197, 198, 1812, 33, 2792, 856, 122, 123,
3962 : 124, 5, 6, 673, 796, 9, 33, 866, 800, 244,
3963 : 164, 132, 804, 134, 33, 807, 19, 244, 807, 22,
3964 : 587, 244, 589, 2547, 23, 926, 244, 30, 213, 214,
3965 : 33, 89, 90, 23, 219, 252, 26, 27, 243, 33,
3966 : 30, 608, 32, 610, 43, 35, 244, 219, 840, 219,
3967 : 40, 41, 42, 43, 44, 45, 219, 849, 243, 213,
3968 : 214, 182, 629, 184, 856, 895, 673, 926, 58, 59,
3969 : 60, 243, 62, 243, 866, 879, 103, 25, 6, 646,
3970 : 243, 9, 244, 252, 244, 26, 27, 879, 36, 881,
3971 : 244, 32, 213, 660, 192, 108, 109, 110, 111, 197,
3972 : 198, 222, 43, 895, 244, 229, 673, 673, 675, 243,
3973 : 23, 110, 246, 244, 235, 244, 237, 1935, 23, 911,
3974 : 26, 27, 28, 243, 243, 856, 246, 246, 589, 70,
3975 : 43, 40, 23, 700, 926, 866, 966, 243, 43, 244,
3976 : 246, 1959, 141, 244, 171, 172, 173, 8, 9, 610,
3977 : 59, 60, 43, 33, 63, 64, 65, 724, 243, 229,
3978 : 727, 246, 954, 244, 191, 47, 48, 170, 629, 243,
3979 : 76, 963, 246, 965, 966, 57, 243, 744, 1132, 246,
3980 : 238, 239, 240, 23, 976, 646, 856, 1017, 1142, 244,
3981 : 881, 249, 250, 251, 244, 926, 866, 110, 243, 660,
3982 : 199, 246, 244, 43, 895, 110, 998, 774, 229, 776,
3983 : 244, 778, 244, 2509, 675, 4, 5, 6, 243, 110,
3984 : 911, 246, 11, 954, 1016, 1017, 15, 244, 141, 796,
3985 : 243, 1132, 243, 246, 1026, 246, 141, 804, 68, 69,
3986 : 807, 1142, 5, 6, 243, 589, 813, 2394, 244, 856,
3987 : 141, 26, 38, 39, 1091, 30, 926, 2404, 2466, 866,
3988 : 35, 243, 252, 954, 246, 243, 610, 42, 246, 44,
3989 : 110, 1093, 244, 1132, 33, 108, 109, 110, 111, 229,
3990 : 1072, 244, 849, 1142, 954, 244, 199, 229, 2435, 856,
3991 : 856, 191, 67, 0, 199, 2232, 1126, 191, 33, 866,
3992 : 866, 141, 8, 9, 163, 164, 165, 1099, 199, 77,
3993 : 78, 79, 879, 774, 881, 776, 216, 217, 218, 926,
3994 : 5, 6, 216, 217, 218, 1016, 1017, 244, 895, 1121,
3995 : 243, 33, 1124, 244, 1126, 1026, 1128, 191, 1130, 243,
3996 : 1132, 229, 246, 243, 911, 2282, 244, 954, 243, 243,
3997 : 1142, 246, 192, 193, 213, 214, 700, 8, 9, 926,
3998 : 926, 1397, 216, 217, 218, 1157, 23, 24, 25, 26,
3999 : 27, 28, 29, 30, 31, 32, 1424, 229, 35, 244,
4000 : 724, 244, 1563, 727, 243, 1189, 243, 954, 954, 246,
4001 : 225, 158, 159, 160, 161, 162, 963, 1189, 965, 966,
4002 : 744, 1132, 244, 1207, 243, 1586, 244, 246, 244, 976,
4003 : 243, 1142, 245, 8, 9, 1207, 5, 6, 2714, 244,
4004 : 9, 1602, 11, 1932, 243, 243, 1380, 246, 246, 244,
4005 : 774, 998, 776, 244, 25, 26, 27, 28, 191, 30,
4006 : 1630, 32, 209, 1397, 35, 108, 109, 110, 111, 1016,
4007 : 1017, 42, 5, 6, 1246, 2273, 1248, 244, 2276, 1026,
4008 : 2046, 37, 1132, 216, 217, 218, 219, 244, 589, 163,
4009 : 164, 165, 1142, 2620, 243, 66, 1268, 246, 1270, 1380,
4010 : 2205, 243, 2207, 229, 246, 1289, 75, 243, 77, 610,
4011 : 246, 245, 246, 2079, 1448, 2081, 1397, 1289, 145, 146,
4012 : 2318, 148, 149, 150, 151, 1072, 245, 246, 2094, 2656,
4013 : 2096, 221, 222, 104, 105, 1563, 116, 117, 118, 213,
4014 : 214, 1380, 244, 243, 229, 1132, 246, 26, 27, 2347,
4015 : 229, 30, 1099, 32, 243, 1142, 35, 246, 1397, 49,
4016 : 244, 40, 41, 42, 43, 44, 45, 1448, 158, 159,
4017 : 160, 161, 162, 243, 1121, 243, 246, 1124, 246, 1126,
4018 : 244, 1128, 244, 1130, 244, 1132, 1132, 25, 26, 27,
4019 : 28, 244, 30, 244, 32, 1142, 1142, 35, 146, 700,
4020 : 148, 149, 150, 151, 42, 23, 44, 141, 1380, 1448,
4021 : 1157, 244, 163, 164, 165, 252, 1426, 229, 243, 209,
4022 : 1404, 246, 244, 724, 243, 1397, 727, 246, 1400, 67,
4023 : 1402, 244, 1404, 203, 204, 205, 206, 207, 208, 963,
4024 : 244, 965, 1189, 744, 243, 243, 2773, 246, 246, 2776,
4025 : 244, 244, 1424, 243, 1426, 49, 50, 51, 52, 53,
4026 : 1207, 243, 213, 214, 246, 244, 104, 105, 244, 1380,
4027 : 244, 244, 243, 774, 33, 776, 1448, 163, 164, 165,
4028 : 1121, 33, 244, 1124, 244, 1126, 1397, 1128, 43, 1130,
4029 : 6, 1463, 243, 203, 204, 205, 206, 207, 208, 1246,
4030 : 1472, 1248, 175, 246, 244, 23, 24, 25, 26, 27,
4031 : 28, 29, 30, 31, 32, 244, 1157, 35, 244, 1529,
4032 : 1492, 1268, 244, 1270, 42, 244, 44, 244, 82, 1501,
4033 : 1380, 244, 244, 243, 245, 89, 90, 1448, 244, 93,
4034 : 94, 244, 1289, 1677, 244, 26, 27, 1397, 244, 67,
4035 : 244, 32, 244, 1424, 35, 1426, 244, 1529, 163, 164,
4036 : 165, 42, 244, 244, 229, 1699, 246, 2851, 2852, 2853,
4037 : 2854, 2855, 2856, 252, 244, 1547, 1586, 244, 1550, 229,
4038 : 246, 245, 1554, 246, 2582, 66, 191, 2585, 2872, 246,
4039 : 246, 1563, 243, 1380, 246, 243, 1677, 1121, 1448, 245,
4040 : 1124, 187, 188, 189, 190, 243, 246, 1248, 213, 214,
4041 : 1397, 216, 217, 218, 1586, 244, 246, 245, 1699, 23,
4042 : 24, 25, 26, 27, 28, 29, 30, 31, 32, 1270,
4043 : 1602, 106, 246, 1380, 1380, 245, 1653, 23, 1677, 246,
4044 : 26, 27, 1659, 244, 30, 244, 32, 2413, 243, 35,
4045 : 1397, 1397, 1654, 1400, 40, 1402, 42, 1404, 44, 246,
4046 : 1699, 1448, 963, 246, 965, 1189, 116, 117, 118, 119,
4047 : 120, 121, 58, 59, 60, 229, 62, 1424, 2444, 1426,
4048 : 66, 245, 244, 1207, 238, 239, 240, 6, 246, 1661,
4049 : 246, 33, 1563, 246, 245, 249, 250, 251, 243, 245,
4050 : 243, 1448, 1448, 245, 245, 1677, 200, 201, 202, 203,
4051 : 204, 205, 206, 207, 208, 1586, 1463, 246, 391, 392,
4052 : 245, 33, 1246, 246, 1248, 1472, 246, 1699, 229, 244,
4053 : 244, 1602, 244, 244, 252, 25, 26, 27, 28, 245,
4054 : 30, 246, 32, 243, 1268, 1492, 1270, 26, 27, 243,
4055 : 246, 30, 245, 32, 1501, 244, 35, 243, 246, 1400,
4056 : 245, 1402, 229, 246, 43, 2126, 1677, 2128, 23, 24,
4057 : 25, 26, 27, 28, 29, 30, 31, 32, 243, 245,
4058 : 35, 243, 1529, 246, 244, 40, 41, 42, 1699, 44,
4059 : 45, 47, 48, 49, 50, 51, 52, 53, 1932, 246,
4060 : 1547, 57, 246, 1550, 199, 229, 229, 1554, 72, 229,
4061 : 243, 66, 246, 1785, 104, 105, 1563, 245, 243, 246,
4062 : 1121, 89, 90, 1124, 245, 93, 94, 1677, 95, 96,
4063 : 97, 98, 99, 100, 101, 102, 243, 1809, 246, 1586,
4064 : 1812, 391, 392, 148, 149, 150, 151, 245, 252, 1699,
4065 : 246, 1932, 229, 246, 245, 1602, 243, 530, 246, 244,
4066 : 6, 244, 246, 1835, 246, 23, 252, 246, 26, 27,
4067 : 543, 246, 30, 244, 32, 245, 1400, 35, 1402, 245,
4068 : 2646, 246, 40, 41, 42, 246, 44, 45, 1189, 246,
4069 : 1677, 246, 244, 1932, 245, 245, 171, 246, 2126, 245,
4070 : 58, 59, 60, 246, 62, 245, 1207, 246, 191, 246,
4071 : 243, 246, 1699, 243, 1661, 246, 2682, 245, 244, 246,
4072 : 245, 257, 95, 96, 97, 98, 99, 100, 101, 102,
4073 : 1677, 1677, 246, 25, 26, 27, 28, 243, 30, 1463,
4074 : 32, 244, 244, 35, 243, 1246, 246, 1248, 1472, 245,
4075 : 42, 246, 1699, 1699, 219, 246, 245, 245, 245, 245,
4076 : 1932, 229, 229, 1935, 246, 1937, 229, 1268, 1492, 1270,
4077 : 238, 239, 240, 106, 66, 244, 229, 1501, 244, 5,
4078 : 530, 249, 250, 251, 234, 246, 244, 1959, 229, 1961,
4079 : 180, 181, 182, 183, 184, 185, 186, 252, 23, 1983,
4080 : 25, 26, 27, 28, 243, 30, 244, 32, 245, 245,
4081 : 35, 1983, 104, 105, 246, 40, 172, 42, 173, 44,
4082 : 246, 1932, 245, 23, 244, 25, 26, 27, 28, 229,
4083 : 229, 229, 32, 58, 59, 60, 245, 62, 1785, 245,
4084 : 23, 245, 73, 26, 27, 246, 229, 30, 229, 32,
4085 : 246, 2023, 35, 247, 246, 391, 229, 40, 229, 42,
4086 : 43, 44, 1809, 229, 246, 1812, 245, 245, 245, 171,
4087 : 246, 2081, 171, 245, 2046, 58, 59, 60, 229, 62,
4088 : 234, 246, 1932, 2217, 2056, 246, 246, 246, 1835, 246,
4089 : 229, 234, 229, 246, 252, 245, 245, 244, 246, 1400,
4090 : 113, 1402, 246, 244, 244, 234, 244, 2079, 244, 2081,
4091 : 244, 234, 137, 138, 139, 140, 244, 142, 2128, 244,
4092 : 229, 248, 2094, 234, 2096, 229, 244, 110, 153, 154,
4093 : 155, 229, 229, 2105, 229, 229, 2217, 137, 138, 139,
4094 : 140, 141, 142, 143, 144, 1932, 246, 229, 229, 245,
4095 : 2226, 229, 2566, 246, 2126, 246, 2128, 140, 141, 246,
4096 : 245, 245, 1463, 246, 229, 229, 246, 246, 1809, 246,
4097 : 246, 1472, 245, 245, 2247, 0, 161, 161, 2217, 161,
4098 : 161, 161, 161, 161, 2201, 1932, 1932, 161, 1935, 161,
4099 : 1937, 1492, 2209, 176, 1835, 161, 179, 132, 161, 134,
4100 : 1501, 2203, 1079, 1781, 1647, 161, 879, 142, 881, 1651,
4101 : 145, 146, 1959, 196, 1961, 177, 199, 177, 177, 154,
4102 : 2308, 2825, 895, 2750, 159, 2883, 2863, 252, 2498, 164,
4103 : 2507, 2714, 161, 161, 161, 161, 1983, 161, 161, 161,
4104 : 175, 161, 161, 243, 161, 2217, 161, 182, 161, 184,
4105 : 185, 186, 187, 161, 189, 2126, 161, 2128, 161, 161,
4106 : 243, 1785, 23, 24, 25, 26, 27, 28, 29, 30,
4107 : 31, 32, 0, 0, 35, 161, 2023, 0, 213, 40,
4108 : 41, 42, 43, 44, 45, 1809, 0, 222, 1812, 161,
4109 : 0, 161, 161, 161, 161, 161, 1937, 161, 161, 2046,
4110 : 235, 2273, 237, 161, 2276, 66, 2217, 161, 0, 2056,
4111 : 0, 1835, 0, 0, 0, 0, 1328, 2551, 1322, 1765,
4112 : 1961, 2891, 257, 608, 320, 2241, 261, 1771, 810, 879,
4113 : -1, 881, 2079, -1, 2081, -1, -1, -1, -1, -1,
4114 : -1, -1, -1, 1016, 1017, 895, 2318, 2094, -1, 2096,
4115 : -1, -1, -1, 1026, 289, -1, -1, -1, 2105, -1,
4116 : -1, -1, -1, -1, 299, -1, -1, 2217, -1, -1,
4117 : -1, -1, 2344, -1, -1, 2347, -1, -1, -1, 2126,
4118 : -1, 2128, -1, -1, -1, -1, 23, 24, 25, 26,
4119 : 27, 28, 29, 30, 31, 32, -1, -1, 35, 1072,
4120 : -1, 2373, -1, -1, -1, 42, 43, -1, -1, -1,
4121 : -1, 1935, -1, 1937, -1, -1, -1, -1, -1, 2391,
4122 : -1, -1, 2394, -1, -1, 360, -1, -1, -1, -1,
4123 : 2217, -1, 2404, -1, -1, 1959, -1, 1961, 774, -1,
4124 : 776, 2413, 778, 23, 24, 25, 26, 27, 28, 29,
4125 : 30, 31, 32, 388, -1, -1, 391, 392, -1, -1,
4126 : -1, 396, -1, 2435, -1, 23, 1016, 1017, 26, 27,
4127 : 2217, 2217, 2444, -1, 32, -1, 1026, -1, -1, -1,
4128 : -1, -1, -1, -1, 1785, 43, -1, -1, -1, -1,
4129 : -1, 252, -1, -1, 2466, -1, -1, -1, -1, 2023,
4130 : 137, 138, 139, -1, -1, 142, -1, -1, 1809, -1,
4131 : -1, 1812, -1, -1, -1, -1, 153, 154, 155, -1,
4132 : -1, -1, 2046, -1, -1, -1, 2273, -1, -1, 2276,
4133 : -1, -1, 2056, -1, 1835, -1, 471, -1, -1, -1,
4134 : -1, -1, 477, 879, -1, 881, -1, 105, -1, -1,
4135 : -1, -1, 110, -1, -1, 2079, 23, 24, 25, 26,
4136 : 27, 28, 29, 30, 31, 32, -1, -1, 35, -1,
4137 : 2094, 2318, 2096, 40, 41, 42, 43, 44, 45, -1,
4138 : -1, 23, 140, 141, 26, 27, -1, -1, -1, -1,
4139 : 32, 526, 527, -1, -1, 530, -1, 2344, -1, -1,
4140 : 2347, 43, -1, -1, -1, -1, -1, -1, 543, -1,
4141 : 2582, -1, -1, 2585, -1, 252, -1, -1, 176, 177,
4142 : -1, 179, -1, -1, -1, -1, 2373, 963, -1, 965,
4143 : -1, -1, -1, -1, 1935, -1, 1937, -1, 196, -1,
4144 : -1, 199, -1, -1, 2391, -1, -1, 2394, 2620, -1,
4145 : -1, -1, 587, -1, 589, -1, -1, 2404, 1959, -1,
4146 : 1961, -1, -1, 105, -1, -1, 2413, -1, 110, -1,
4147 : -1, -1, 252, 608, 2646, 610, -1, 26, 27, -1,
4148 : 1016, 30, -1, 32, 2656, 243, 35, -1, 2435, -1,
4149 : -1, 40, 41, 42, 629, 44, 45, 2444, 140, 141,
4150 : -1, -1, -1, 2344, -1, -1, -1, -1, -1, -1,
4151 : 2682, 646, -1, -1, -1, -1, -1, -1, -1, 2466,
4152 : -1, -1, 2023, -1, -1, 660, -1, 1400, -1, 1402,
4153 : -1, 1404, 2373, -1, 176, 177, -1, 179, 673, -1,
4154 : 675, -1, 89, 90, -1, 2046, 93, 94, -1, 2273,
4155 : -1, 1424, 2276, 1426, 196, 2056, -1, 199, -1, -1,
4156 : -1, -1, -1, -1, -1, 700, -1, -1, 23, 24,
4157 : 25, 26, 27, 28, 29, 30, 31, 32, 2079, -1,
4158 : -1, -1, -1, -1, -1, 252, -1, -1, -1, 724,
4159 : -1, -1, 727, 2094, 2318, 2096, -1, -1, -1, -1,
4160 : -1, 2773, -1, -1, 2776, -1, -1, -1, -1, 744,
4161 : 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
4162 : 2344, -1, 35, 2347, -1, -1, -1, 40, 41, 42,
4163 : -1, 44, 45, -1, -1, 2582, -1, -1, 2585, 774,
4164 : -1, 776, -1, 778, -1, -1, -1, -1, -1, 2373,
4165 : 1400, -1, 1402, -1, 1404, -1, -1, -1, -1, -1,
4166 : -1, 796, -1, -1, -1, -1, -1, 2391, -1, 804,
4167 : 2394, -1, 807, 2620, 1424, -1, 1426, -1, -1, -1,
4168 : 2404, 1554, 229, -1, -1, -1, -1, -1, -1, 2413,
4169 : 1563, 238, 239, 240, -1, -1, -1, -1, -1, 2646,
4170 : -1, -1, 249, 250, 251, -1, -1, -1, -1, 2656,
4171 : 1246, 2435, 1248, 1586, 849, -1, -1, -1, -1, -1,
4172 : 2444, 856, -1, -1, -1, -1, -1, -1, -1, 1602,
4173 : -1, 866, 1268, -1, 1270, 2682, 95, 96, 97, 98,
4174 : 99, 100, 101, 102, 879, -1, 881, -1, 26, 27,
4175 : -1, -1, 30, 1289, 32, -1, -1, 35, -1, -1,
4176 : 895, -1, 40, 41, 42, 43, 44, 45, -1, -1,
4177 : -1, -1, 2273, -1, -1, 2276, 911, -1, 23, 24,
4178 : 25, 26, 27, 28, 29, 30, 31, 32, 243, -1,
4179 : 35, 926, 80, 81, 82, 40, 41, 42, 43, 44,
4180 : 45, 89, 90, -1, 1554, 93, 94, -1, -1, -1,
4181 : -1, -1, -1, 1563, -1, -1, -1, 2318, -1, 954,
4182 : -1, 66, -1, -1, -1, -1, 2773, -1, 963, 2776,
4183 : 965, 966, -1, -1, -1, -1, 1586, -1, -1, 252,
4184 : -1, 976, -1, 2344, -1, -1, 2347, -1, -1, -1,
4185 : -1, -1, 1602, -1, -1, -1, -1, -1, 2582, 104,
4186 : 105, 2585, -1, 998, 1400, 132, 1402, 134, 1404, -1,
4187 : 229, -1, 2373, -1, -1, 142, 143, -1, -1, -1,
4188 : -1, 1016, 1017, -1, -1, -1, 153, -1, 1424, -1,
4189 : 2391, 1026, -1, 2394, -1, -1, 2620, 164, -1, -1,
4190 : -1, -1, -1, 2404, -1, -1, -1, -1, -1, -1,
4191 : -1, -1, 2413, -1, -1, 182, -1, 184, 185, -1,
4192 : -1, -1, 2646, 200, 201, 202, 203, 204, 205, 206,
4193 : 207, 208, 2656, -1, 2435, -1, 1472, 1072, -1, -1,
4194 : -1, 229, -1, 2444, -1, -1, 213, -1, -1, -1,
4195 : 238, 239, 240, -1, -1, 222, -1, -1, 2682, -1,
4196 : -1, 249, 250, 251, 1099, 1501, 243, -1, 235, -1,
4197 : 237, -1, -1, -1, -1, 23, -1, 25, 26, 27,
4198 : 28, -1, -1, -1, 32, -1, 1121, -1, -1, 1124,
4199 : 257, 1126, -1, 1128, 261, 1130, -1, 1132, 243, -1,
4200 : -1, -1, -1, -1, -1, 272, -1, 1142, -1, -1,
4201 : -1, -1, 23, -1, 25, 26, 27, 28, 1554, 30,
4202 : -1, 32, 1157, -1, 35, -1, -1, 1563, -1, -1,
4203 : -1, 42, -1, -1, -1, -1, -1, -1, -1, 23,
4204 : 24, 25, 26, 27, 28, 29, 30, 31, 32, 2773,
4205 : -1, 35, 2776, -1, 1189, -1, 40, 41, 42, 43,
4206 : 44, 45, 1935, -1, 1937, -1, -1, -1, -1, -1,
4207 : 337, -1, 1207, -1, 58, 59, 60, -1, 62, -1,
4208 : -1, 2582, 66, -1, 2585, -1, 1959, -1, 1961, 137,
4209 : 138, 139, 140, 141, 142, 143, 144, 23, 24, 25,
4210 : 26, 27, 28, 29, 30, 31, 32, -1, -1, 35,
4211 : 1983, 1246, -1, 1248, -1, -1, 42, -1, 44, 2620,
4212 : -1, 388, -1, -1, 391, 392, 137, 138, 139, 140,
4213 : -1, 142, -1, 1268, -1, 1270, -1, -1, -1, -1,
4214 : -1, 67, 153, 154, 155, 2646, -1, -1, -1, -1,
4215 : -1, -1, -1, -1, 1289, 2656, 23, 24, 25, 26,
4216 : 27, 28, 29, 30, 31, 32, -1, -1, 35, -1,
4217 : -1, -1, -1, 40, 41, 42, -1, 44, 45, -1,
4218 : -1, 2682, -1, -1, -1, 1935, -1, 1937, -1, -1,
4219 : -1, 58, 59, 60, -1, 62, -1, -1, -1, 66,
4220 : -1, -1, -1, -1, 471, -1, -1, -1, -1, 1959,
4221 : 477, 1961, -1, -1, -1, 23, -1, 25, 26, 27,
4222 : 28, 2094, 30, 2096, 32, -1, -1, 35, -1, -1,
4223 : -1, -1, 2105, 1983, 42, 43, 44, -1, -1, -1,
4224 : -1, 252, -1, -1, -1, 1380, -1, 89, 90, 1785,
4225 : -1, 93, 94, 2126, -1, 2128, -1, -1, -1, 67,
4226 : 527, -1, 1397, -1, -1, 1400, -1, 1402, 252, 1404,
4227 : -1, -1, 2773, 1809, -1, 2776, 1812, -1, 23, 24,
4228 : 25, 26, 27, 28, 29, 30, 31, 32, -1, 1424,
4229 : 35, 1426, -1, -1, -1, -1, 104, 105, -1, 1835,
4230 : -1, -1, 110, 23, 24, 25, 26, 27, 28, 29,
4231 : 30, 31, 32, 1448, -1, -1, -1, -1, -1, -1,
4232 : -1, -1, 589, 43, 1202, -1, -1, 1205, 1463, -1,
4233 : -1, -1, 140, 141, -1, -1, -1, 1472, -1, -1,
4234 : -1, -1, -1, 610, 2094, 23, 2096, 25, 26, 27,
4235 : 28, -1, 30, -1, 32, 2105, -1, 1492, -1, -1,
4236 : -1, -1, 629, -1, -1, 43, 1501, -1, 176, -1,
4237 : -1, 179, -1, -1, -1, -1, 2126, -1, 2128, -1,
4238 : -1, -1, -1, -1, -1, 252, -1, 229, 196, -1,
4239 : 110, 199, -1, -1, 1529, -1, 238, 239, 240, 1935,
4240 : -1, 1937, -1, -1, -1, -1, 673, 249, 250, 251,
4241 : -1, -1, 1547, -1, -1, 1550, -1, -1, -1, 1554,
4242 : 140, 141, -1, 1959, -1, 1961, 104, 105, 1563, -1,
4243 : -1, -1, 110, 700, -1, 243, 25, 26, 27, 28,
4244 : -1, 30, -1, 32, -1, 2318, 35, 1983, -1, -1,
4245 : -1, 1586, -1, 42, -1, 44, 176, 724, -1, 179,
4246 : 727, -1, 140, 141, -1, -1, -1, 1602, 1346, -1,
4247 : -1, 2344, -1, -1, 2347, -1, 196, 744, 67, 199,
4248 : -1, -1, -1, 1361, -1, -1, -1, -1, 1366, 200,
4249 : 201, 202, 203, 204, 205, 206, 207, 208, 176, -1,
4250 : 2373, 179, -1, -1, -1, -1, -1, 774, -1, 776,
4251 : 2046, 778, -1, -1, -1, 104, 105, -1, 196, -1,
4252 : -1, 199, -1, 243, -1, -1, 1661, -1, -1, 796,
4253 : -1, 2404, -1, 800, -1, -1, -1, -1, -1, -1,
4254 : 2413, -1, 1677, 2079, -1, -1, -1, -1, -1, -1,
4255 : 1428, 1429, -1, -1, -1, -1, -1, -1, 2094, -1,
4256 : 2096, -1, 2435, -1, 1699, 243, -1, -1, 2318, 2105,
4257 : -1, 2444, -1, 840, -1, 1453, 1454, -1, -1, -1,
4258 : -1, -1, -1, 1461, -1, -1, -1, -1, -1, 856,
4259 : 2126, -1, -1, 2466, 2344, -1, -1, 2347, -1, 866,
4260 : -1, 23, 24, 25, 26, 27, 28, 29, 30, 31,
4261 : 32, -1, 879, 35, 881, -1, -1, -1, -1, -1,
4262 : 42, 43, 44, 2373, -1, -1, -1, -1, 895, -1,
4263 : -1, -1, -1, -1, 23, 24, 25, 26, 27, 28,
4264 : 29, 30, 31, 32, -1, 67, 35, -1, -1, -1,
4265 : 1785, 40, 41, 42, 2404, 44, 45, -1, -1, 926,
4266 : -1, -1, -1, 2413, -1, -1, -1, -1, -1, 58,
4267 : 59, 60, -1, 62, 1809, -1, -1, 1812, -1, -1,
4268 : -1, -1, -1, -1, -1, 2435, -1, 954, 110, -1,
4269 : -1, -1, -1, -1, 2444, -1, 963, -1, 965, 966,
4270 : 1835, -1, -1, -1, -1, -1, -1, -1, -1, 2582,
4271 : -1, -1, 2585, -1, -1, -1, 2466, -1, 140, 141,
4272 : -1, -1, 200, 201, 202, 203, 204, 205, 206, 207,
4273 : 208, 998, -1, -1, -1, -1, -1, 2273, -1, -1,
4274 : 2276, -1, -1, -1, -1, -1, -1, 2620, -1, 1016,
4275 : 1017, 229, -1, -1, 176, -1, -1, 179, -1, 4,
4276 : 5, -1, 7, 8, 9, 10, 11, 12, 13, 14,
4277 : -1, 16, 1650, 2646, 196, -1, 21, 199, -1, -1,
4278 : -1, -1, 2318, 2656, -1, -1, -1, 32, 33, -1,
4279 : -1, -1, 132, -1, 134, -1, -1, 1932, -1, -1,
4280 : 1935, -1, 1937, -1, -1, 145, -1, -1, 2344, 2682,
4281 : -1, 2347, -1, 153, -1, -1, -1, -1, -1, -1,
4282 : -1, 243, -1, -1, 1959, -1, 1961, -1, -1, -1,
4283 : -1, -1, 2582, -1, -1, 2585, -1, 2373, -1, -1,
4284 : -1, -1, 182, -1, 184, 185, 186, 187, 1983, 189,
4285 : -1, -1, -1, -1, 1121, -1, -1, 1124, 103, 1126,
4286 : -1, -1, -1, 252, -1, 1132, -1, -1, 2404, -1,
4287 : 2620, -1, -1, 213, -1, 1142, -1, 2413, -1, -1,
4288 : -1, -1, 222, -1, -1, -1, -1, -1, 2023, -1,
4289 : -1, -1, -1, -1, -1, 235, 2646, 237, -1, 2435,
4290 : 2773, -1, -1, 2776, -1, -1, 2656, -1, 2444, -1,
4291 : -1, 2046, -1, -1, -1, -1, 23, 257, -1, 26,
4292 : 27, 2056, 1189, 30, -1, 32, -1, -1, 35, -1,
4293 : 2466, -1, 2682, 40, 41, 42, 43, 44, 45, -1,
4294 : 1207, -1, -1, -1, 2079, -1, 2081, -1, -1, 289,
4295 : -1, 58, 59, 60, -1, 62, -1, -1, -1, 2094,
4296 : -1, 2096, -1, -1, -1, -1, -1, -1, -1, -1,
4297 : 2105, -1, -1, -1, -1, -1, -1, -1, -1, 1246,
4298 : -1, 1248, 200, 201, 202, 203, 204, 205, 206, 207,
4299 : 208, 2126, -1, 2128, -1, 23, -1, 337, 26, 27,
4300 : -1, 1268, 30, 1270, 32, -1, -1, 35, -1, -1,
4301 : 1888, -1, 40, 41, 42, -1, 44, 45, -1, -1,
4302 : -1, -1, 1289, 2773, -1, -1, 2776, -1, -1, -1,
4303 : 58, 59, 60, -1, 62, 23, 24, 25, 26, 27,
4304 : 28, 29, 30, 31, 32, -1, 2582, 35, 388, 2585,
4305 : -1, -1, 40, 41, 42, 43, 44, 45, -1, -1,
4306 : 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
4307 : 58, 59, 60, -1, 62, -1, -1, -1, 66, -1,
4308 : 43, -1, 2217, -1, 2620, 23, 24, 25, 26, 27,
4309 : 28, 29, 30, 31, 32, -1, -1, 35, -1, -1,
4310 : -1, -1, 40, 41, 42, 43, 44, 45, -1, -1,
4311 : 2646, -1, -1, 1380, -1, -1, 104, 105, -1, -1,
4312 : 2656, -1, 110, -1, -1, -1, -1, -1, 66, -1,
4313 : 1397, 471, -1, 1400, -1, 1402, -1, 1404, 2273, -1,
4314 : -1, 2276, -1, -1, -1, -1, 2682, 110, -1, -1,
4315 : -1, -1, 140, 141, -1, -1, -1, 1424, -1, 1426,
4316 : -1, -1, -1, -1, -1, -1, 104, 105, -1, -1,
4317 : -1, -1, -1, -1, -1, -1, -1, 140, 141, -1,
4318 : -1, 1448, 23, 2318, -1, 26, 526, 527, 176, 30,
4319 : -1, 179, -1, -1, 35, -1, 1463, -1, -1, 40,
4320 : -1, 42, -1, 44, -1, 1472, -1, -1, 196, 2344,
4321 : -1, 199, 2347, 176, -1, -1, 179, 58, 59, 60,
4322 : -1, 62, -1, -1, -1, 1492, -1, -1, -1, -1,
4323 : -1, -1, -1, 196, 1501, -1, 199, 2773, 2373, -1,
4324 : 2776, -1, -1, -1, -1, -1, -1, 587, -1, 589,
4325 : -1, -1, -1, -1, -1, 243, 2391, -1, -1, 2394,
4326 : -1, -1, 1529, -1, -1, -1, -1, -1, 608, 2404,
4327 : 610, -1, -1, -1, -1, -1, -1, -1, 2413, -1,
4328 : -1, -1, -1, 1550, -1, -1, -1, 1554, -1, 629,
4329 : -1, -1, -1, -1, -1, -1, 1563, -1, -1, -1,
4330 : 2435, -1, -1, -1, -1, 243, 646, -1, -1, 2444,
4331 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 1586,
4332 : 660, 23, 24, 25, 26, 27, 28, 29, 30, 31,
4333 : 32, 2466, -1, 673, -1, 675, 23, 24, 25, 26,
4334 : 27, 28, 29, 30, 31, 32, 2224, -1, 35, -1,
4335 : -1, -1, -1, 40, 41, 42, 43, 44, 45, -1,
4336 : 700, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4337 : -1, 58, 59, 60, -1, 62, -1, -1, -1, 66,
4338 : -1, -1, -1, -1, 724, -1, -1, 727, -1, -1,
4339 : -1, -1, -1, -1, 23, 24, 25, 26, 27, 28,
4340 : 29, 30, 31, 32, 744, -1, 35, -1, -1, -1,
4341 : 1677, 40, 41, 42, 43, 44, 45, 104, 105, 2297,
4342 : -1, -1, -1, 110, -1, 2303, -1, -1, -1, 58,
4343 : 59, 60, 1699, 62, 774, -1, 776, 66, 778, -1,
4344 : -1, -1, -1, -1, -1, -1, -1, 2582, -1, -1,
4345 : 2585, -1, -1, 140, 141, -1, -1, -1, -1, -1,
4346 : -1, -1, -1, -1, 804, -1, -1, -1, -1, -1,
4347 : -1, -1, -1, -1, -1, 104, 105, -1, -1, 23,
4348 : -1, 25, 26, 27, 28, 2620, 30, -1, 32, 176,
4349 : -1, 35, 179, -1, -1, 153, -1, -1, 42, 43,
4350 : 840, -1, -1, -1, -1, -1, -1, 2385, -1, 196,
4351 : -1, 2646, 199, -1, -1, -1, 856, -1, 1785, -1,
4352 : -1, 2656, 66, -1, -1, -1, 866, 125, 126, 127,
4353 : 128, 129, 130, 131, 132, 133, 134, 135, 136, 879,
4354 : -1, 132, 1809, 134, -1, 1812, -1, 2682, -1, -1,
4355 : -1, -1, 143, -1, 145, 213, 243, -1, -1, -1,
4356 : 104, 105, 153, -1, -1, -1, 110, -1, 1835, -1,
4357 : -1, -1, -1, 164, -1, -1, -1, 235, -1, -1,
4358 : -1, -1, -1, -1, -1, -1, 926, -1, -1, -1,
4359 : -1, 182, -1, 184, 185, 186, 140, 141, -1, 257,
4360 : -1, 23, -1, 25, 26, 27, 28, -1, 30, -1,
4361 : 32, -1, 2490, -1, 243, -1, -1, -1, -1, -1,
4362 : -1, 43, 213, 963, -1, 965, 966, -1, -1, -1,
4363 : -1, 222, 176, -1, -1, 179, 976, -1, 2773, -1,
4364 : -1, 2776, -1, -1, 235, -1, 237, -1, -1, -1,
4365 : -1, -1, 196, -1, -1, 199, -1, -1, 998, -1,
4366 : -1, -1, -1, -1, -1, 1932, 257, -1, 1935, -1,
4367 : 1937, -1, -1, -1, -1, -1, -1, -1, -1, 337,
4368 : -1, 272, 104, 105, -1, 2563, -1, -1, 110, -1,
4369 : -1, -1, 1959, -1, 1961, -1, -1, -1, 289, 243,
4370 : -1, -1, -1, -1, -1, 23, 24, 25, 26, 27,
4371 : 28, 29, 30, 31, 32, -1, 1983, 35, 140, 141,
4372 : 2598, 2599, 40, -1, 42, 43, 44, -1, -1, -1,
4373 : 2608, 2609, 2610, 2611, -1, -1, -1, -1, -1, -1,
4374 : 58, 59, 60, -1, 62, -1, 337, -1, -1, -1,
4375 : -1, -1, -1, -1, 176, -1, 2023, 179, -1, 1099,
4376 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4377 : -1, -1, -1, -1, 196, -1, -1, 199, -1, 2046,
4378 : -1, 1121, -1, -1, 1124, -1, 1126, -1, 1128, 2056,
4379 : 1130, -1, 1132, -1, -1, -1, -1, 388, -1, -1,
4380 : -1, 392, 1142, -1, -1, -1, -1, -1, -1, -1,
4381 : -1, -1, 2079, 471, 2081, -1, -1, 1157, -1, 137,
4382 : 138, 139, -1, -1, 142, -1, -1, 2094, -1, 2096,
4383 : -1, -1, -1, -1, -1, 153, 154, 155, 2105, -1,
4384 : -1, 2719, 2720, -1, -1, -1, -1, 2725, 2726, 1189,
4385 : -1, 23, -1, 25, 26, 27, 28, -1, 30, 2126,
4386 : 32, 2128, -1, 35, -1, -1, -1, 1207, -1, 527,
4387 : 42, -1, 23, -1, 25, 26, 27, 28, -1, 30,
4388 : 471, 32, -1, -1, 35, -1, 477, -1, -1, -1,
4389 : 23, 42, 25, 26, 27, 28, -1, 30, -1, 32,
4390 : -1, 2779, 35, -1, 2782, -1, 1246, 40, 1248, 42,
4391 : 43, 44, -1, -1, -1, -1, -1, -1, 2796, 2797,
4392 : 2798, -1, -1, -1, -1, 58, 59, 60, 1268, 62,
4393 : 1270, -1, -1, 66, -1, -1, 527, -1, -1, -1,
4394 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 1289,
4395 : 2217, -1, -1, 2831, 2832, 2833, 2834, -1, -1, -1,
4396 : -1, -1, -1, -1, -1, 137, 138, 139, 140, -1,
4397 : 142, 104, 105, -1, -1, -1, -1, 110, -1, -1,
4398 : -1, 153, 154, 155, -1, -1, 137, 138, 139, 140,
4399 : -1, 142, 2870, 2871, -1, -1, -1, -1, 589, -1,
4400 : -1, -1, 153, 154, 155, -1, 2273, 140, 141, 2276,
4401 : -1, -1, -1, 23, -1, 25, 26, 27, 28, 610,
4402 : 30, -1, 32, -1, -1, 35, -1, -1, -1, -1,
4403 : 40, -1, 42, -1, 44, -1, -1, -1, 629, -1,
4404 : 1380, -1, 700, 176, -1, -1, 179, -1, 58, 59,
4405 : 60, 2318, 62, -1, -1, 646, 66, 1397, -1, -1,
4406 : 1400, -1, 1402, 196, 1404, -1, 199, -1, -1, 727,
4407 : -1, 243, -1, -1, -1, -1, -1, 2344, -1, -1,
4408 : 2347, -1, 673, -1, -1, -1, -1, -1, -1, -1,
4409 : 132, -1, 134, -1, 104, 105, -1, -1, -1, -1,
4410 : -1, 143, -1, -1, -1, -1, 2373, -1, 1448, 700,
4411 : 243, 153, -1, -1, -1, -1, -1, -1, -1, -1,
4412 : 778, -1, -1, 1463, 2391, -1, -1, 2394, -1, -1,
4413 : -1, -1, 1472, 724, -1, -1, 727, 2404, -1, -1,
4414 : 182, -1, 184, 185, -1, -1, 2413, -1, -1, -1,
4415 : -1, -1, 1492, 744, -1, 23, -1, 25, 26, 27,
4416 : 28, 1501, 30, -1, 32, -1, -1, 35, 2435, -1,
4417 : -1, 213, 40, -1, 42, -1, 44, 2444, -1, -1,
4418 : 222, -1, 840, 774, -1, 776, -1, 778, -1, 1529,
4419 : 58, 59, 60, 235, 62, 237, -1, -1, 856, 2466,
4420 : -1, -1, -1, -1, -1, -1, -1, 1547, -1, 800,
4421 : 1550, -1, -1, 804, 1554, 257, -1, -1, -1, -1,
4422 : -1, 879, -1, -1, -1, -1, -1, -1, -1, -1,
4423 : 272, -1, -1, 243, -1, -1, -1, -1, 23, 24,
4424 : 25, 26, 27, 28, 29, 30, 31, 32, -1, 840,
4425 : 35, -1, -1, -1, -1, 40, 41, 42, 43, 44,
4426 : 45, -1, -1, -1, -1, 856, -1, -1, 926, 137,
4427 : 138, 139, 140, -1, 142, 866, -1, -1, -1, -1,
4428 : -1, 66, -1, -1, -1, 153, 154, 155, 879, -1,
4429 : -1, -1, -1, -1, -1, 337, -1, -1, -1, -1,
4430 : -1, -1, -1, -1, 895, 23, 24, 25, 26, 27,
4431 : 28, 29, 30, 31, 32, 2582, -1, 35, 2585, 104,
4432 : 105, 1661, 40, 41, 42, 110, 44, 45, -1, -1,
4433 : -1, -1, -1, -1, -1, 926, -1, 1677, -1, -1,
4434 : 998, -1, -1, -1, -1, -1, -1, -1, 66, -1,
4435 : 392, -1, -1, 2620, -1, 140, 141, -1, -1, 1699,
4436 : -1, 23, -1, 954, 26, 27, -1, -1, 30, -1,
4437 : 32, -1, 963, 35, 965, 966, -1, -1, 40, 2646,
4438 : 42, -1, 44, -1, -1, -1, -1, -1, -1, 2656,
4439 : -1, 176, -1, -1, 179, -1, 58, 59, 60, -1,
4440 : 62, -1, -1, -1, 66, -1, -1, 998, -1, -1,
4441 : -1, 196, -1, -1, 199, 2682, 23, 24, 25, 26,
4442 : 27, 28, 29, 30, 31, 32, 1017, -1, 35, 471,
4443 : -1, -1, -1, 40, 41, 42, 43, 44, 45, -1,
4444 : -1, -1, -1, -1, -1, 1785, -1, -1, -1, -1,
4445 : -1, 58, 59, 60, -1, 62, -1, -1, 243, 66,
4446 : -1, 23, -1, 25, 26, 27, 28, -1, 30, 1809,
4447 : 32, -1, 1812, 35, 1132, -1, -1, -1, -1, -1,
4448 : 42, 43, 44, -1, -1, 527, -1, -1, -1, -1,
4449 : -1, -1, -1, -1, -1, 1835, -1, 104, 105, -1,
4450 : -1, -1, -1, -1, -1, 67, 2773, -1, 23, 2776,
4451 : 25, 26, 27, 28, -1, 30, -1, 32, -1, -1,
4452 : 35, -1, -1, -1, -1, -1, -1, 42, -1, -1,
4453 : 1121, 1189, -1, 1124, -1, 1126, -1, 1128, -1, -1,
4454 : -1, 1132, 104, 105, -1, -1, -1, 589, 110, 1207,
4455 : -1, 1142, -1, -1, 23, 24, 25, 26, 27, 28,
4456 : 29, 30, 31, 32, -1, -1, 35, -1, 610, -1,
4457 : -1, 40, 41, 42, 43, 44, 45, -1, 140, 141,
4458 : -1, -1, -1, -1, -1, -1, -1, 629, 1246, 58,
4459 : 59, 60, 1932, 62, -1, 1935, -1, 1937, 1189, -1,
4460 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4461 : 1268, -1, -1, -1, 176, -1, 1207, 179, -1, 1959,
4462 : -1, 1961, 137, 138, 139, 140, -1, 142, -1, -1,
4463 : -1, 1289, -1, -1, 196, -1, 243, 199, 153, 154,
4464 : 155, 110, -1, 1983, 23, 24, 25, 26, 27, 28,
4465 : 29, 30, 31, 32, -1, 1246, 35, 1248, 700, -1,
4466 : -1, 40, 41, 42, 43, 44, 45, -1, -1, -1,
4467 : -1, 140, 141, -1, -1, -1, -1, 1268, -1, 1270,
4468 : -1, -1, 724, 2023, -1, 727, -1, 66, -1, -1,
4469 : -1, -1, -1, -1, -1, -1, -1, -1, 1289, -1,
4470 : -1, -1, 744, -1, -1, -1, 2046, 176, -1, -1,
4471 : 179, -1, -1, -1, -1, -1, 2056, -1, -1, -1,
4472 : -1, -1, 1380, -1, -1, 104, 105, 196, -1, -1,
4473 : 199, 110, 774, -1, 776, -1, 778, -1, -1, 2079,
4474 : -1, 2081, -1, -1, -1, -1, 1404, -1, -1, -1,
4475 : -1, -1, -1, -1, 2094, -1, 2096, -1, 800, -1,
4476 : -1, 140, 141, -1, -1, 2105, -1, -1, -1, -1,
4477 : -1, -1, -1, -1, 243, -1, -1, -1, -1, -1,
4478 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 1380,
4479 : 1448, -1, -1, -1, -1, -1, -1, 176, 840, -1,
4480 : 179, -1, -1, -1, -1, 1463, 1397, -1, -1, 1400,
4481 : -1, 1402, -1, 1404, 856, -1, -1, 196, -1, -1,
4482 : 199, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4483 : -1, -1, -1, -1, 1492, 1426, -1, 879, -1, 132,
4484 : -1, 134, -1, -1, -1, -1, -1, -1, -1, -1,
4485 : -1, -1, -1, 895, -1, -1, -1, 1448, -1, -1,
4486 : 153, -1, -1, -1, 243, -1, -1, -1, -1, -1,
4487 : -1, -1, 1463, -1, -1, -1, -1, 2217, -1, -1,
4488 : -1, 1472, -1, -1, 926, -1, -1, -1, -1, 182,
4489 : -1, 184, 1550, -1, -1, -1, 1554, -1, -1, -1,
4490 : -1, 1492, -1, -1, -1, -1, -1, -1, -1, -1,
4491 : 1501, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4492 : 213, 963, -1, 965, 966, -1, -1, -1, -1, 222,
4493 : -1, -1, -1, 2273, -1, -1, 2276, -1, 1529, -1,
4494 : -1, -1, 235, -1, 237, -1, -1, -1, -1, -1,
4495 : -1, -1, -1, 153, -1, -1, 998, -1, -1, 1550,
4496 : -1, -1, -1, 1554, 257, -1, -1, -1, -1, -1,
4497 : -1, -1, -1, -1, -1, 1017, -1, -1, 2318, 23,
4498 : 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
4499 : -1, 35, -1, -1, -1, 1586, 40, 41, 42, 43,
4500 : 44, 45, -1, -1, 2344, -1, -1, 2347, -1, -1,
4501 : -1, -1, -1, 213, 58, 59, 60, -1, 62, 1677,
4502 : 4, -1, 6, -1, 8, 9, -1, 11, 12, 13,
4503 : -1, 15, -1, 2373, -1, 235, -1, 21, -1, -1,
4504 : -1, -1, -1, -1, 337, -1, -1, -1, -1, 33,
4505 : 34, 2391, -1, -1, 2394, -1, -1, 257, -1, -1,
4506 : -1, 45, -1, -1, 2404, -1, 110, -1, -1, -1,
4507 : -1, -1, -1, 2413, -1, -1, -1, -1, -1, 1121,
4508 : -1, -1, 1124, -1, 1126, -1, 1677, -1, -1, -1,
4509 : 1132, 75, -1, 77, -1, 2435, 140, 141, -1, -1,
4510 : -1, -1, -1, -1, 2444, -1, -1, -1, 1699, -1,
4511 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 103,
4512 : -1, -1, -1, -1, -1, -1, 2466, 1785, -1, -1,
4513 : -1, -1, 176, -1, -1, 179, -1, 337, -1, -1,
4514 : -1, -1, -1, -1, -1, -1, -1, 1189, -1, -1,
4515 : -1, -1, 196, -1, 1812, 199, -1, -1, -1, -1,
4516 : -1, -1, -1, -1, -1, 1207, -1, -1, 152, -1,
4517 : -1, -1, 23, -1, 25, 26, 27, 28, 471, 30,
4518 : -1, 32, 166, 167, 35, -1, 170, -1, -1, 40,
4519 : -1, 42, -1, 44, 1785, -1, -1, -1, -1, 243,
4520 : -1, -1, -1, -1, 1246, -1, 1248, 58, 59, 60,
4521 : -1, 62, -1, -1, -1, 66, -1, -1, 1809, -1,
4522 : 23, 1812, 25, 26, 27, 28, 1268, 30, 1270, 32,
4523 : -1, 215, 35, -1, 527, -1, 220, 40, -1, 42,
4524 : -1, 44, 2582, -1, 1835, 2585, -1, 1289, -1, -1,
4525 : -1, -1, -1, 104, 105, 58, 59, 60, -1, 62,
4526 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4527 : -1, 471, 23, -1, 1932, 26, 27, 1935, -1, 30,
4528 : 2620, 32, -1, -1, 35, -1, -1, -1, -1, 40,
4529 : -1, 42, 43, 44, 587, -1, 589, -1, -1, -1,
4530 : -1, 1959, -1, -1, -1, -1, 2646, 58, 59, 60,
4531 : -1, 62, -1, -1, -1, 608, 2656, 610, -1, -1,
4532 : -1, -1, -1, -1, -1, 1983, -1, 527, -1, -1,
4533 : -1, -1, -1, -1, 137, 138, 139, 140, 1380, 142,
4534 : -1, 1932, 2682, -1, 1935, -1, 1937, -1, -1, -1,
4535 : 153, 154, 155, -1, -1, -1, -1, -1, 1400, 110,
4536 : 1402, -1, 1404, -1, -1, 2023, -1, -1, 1959, -1,
4537 : 1961, -1, -1, -1, -1, -1, 23, -1, 25, 26,
4538 : 27, 28, -1, 30, 1426, 32, -1, 587, 35, 140,
4539 : 141, -1, 1983, 40, -1, 42, 43, 44, 2056, -1,
4540 : -1, -1, -1, -1, -1, -1, 1448, 700, 608, -1,
4541 : -1, 58, 59, 60, -1, 62, -1, -1, -1, 66,
4542 : -1, 1463, -1, -1, -1, 176, -1, -1, 179, -1,
4543 : 1472, 724, 2023, 2773, 727, -1, 2776, -1, -1, -1,
4544 : 243, -1, -1, -1, -1, 196, 153, 2105, 199, -1,
4545 : 1492, 744, -1, -1, -1, 2046, -1, 104, 105, 1501,
4546 : -1, -1, -1, 110, -1, 2056, -1, -1, -1, -1,
4547 : -1, 153, -1, -1, -1, -1, -1, -1, -1, -1,
4548 : -1, 774, -1, 776, -1, 778, -1, 1529, 2079, -1,
4549 : 2081, -1, -1, 140, 141, -1, -1, -1, -1, -1,
4550 : 700, -1, -1, 2094, -1, 2096, 213, -1, 1550, -1,
4551 : -1, -1, 1554, -1, 2105, -1, -1, -1, -1, -1,
4552 : -1, -1, -1, -1, -1, -1, -1, 727, 235, 176,
4553 : -1, 213, 179, -1, -1, -1, -1, 2128, -1, -1,
4554 : -1, -1, -1, -1, 1586, -1, -1, 840, -1, 196,
4555 : 257, -1, 199, 235, -1, -1, -1, -1, -1, 2217,
4556 : -1, -1, -1, 856, -1, -1, -1, -1, -1, -1,
4557 : -1, -1, -1, -1, -1, 257, -1, -1, 778, -1,
4558 : -1, -1, -1, -1, -1, -1, 879, -1, -1, 23,
4559 : 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
4560 : -1, 35, -1, -1, -1, -1, 40, 41, 42, 43,
4561 : 44, 45, -1, -1, -1, 2273, -1, -1, 2276, -1,
4562 : -1, -1, -1, -1, -1, -1, 2217, -1, -1, -1,
4563 : 337, -1, 66, 926, 23, 1677, 25, 26, 27, 28,
4564 : 840, 30, -1, 32, -1, -1, 35, -1, -1, -1,
4565 : -1, -1, -1, 42, 43, 337, 856, -1, -1, -1,
4566 : 2318, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4567 : 963, -1, 965, -1, -1, -1, 110, 66, -1, 879,
4568 : -1, -1, 2273, -1, -1, 2276, -1, -1, -1, 2347,
4569 : -1, 23, 24, 25, 26, 27, 28, 29, 30, 31,
4570 : 32, -1, -1, 35, -1, 998, 140, 141, 40, 41,
4571 : 42, 43, 44, 45, -1, 104, 105, -1, -1, -1,
4572 : -1, 110, -1, -1, -1, -1, 926, 2318, -1, -1,
4573 : -1, -1, -1, 2391, 66, -1, 2394, -1, -1, -1,
4574 : -1, -1, 176, 1785, -1, 179, 2404, -1, -1, -1,
4575 : -1, 140, 141, 2344, -1, -1, 2347, -1, -1, -1,
4576 : -1, -1, 196, -1, 471, 199, -1, 1809, -1, -1,
4577 : 1812, -1, 104, 105, -1, -1, -1, 2435, -1, -1,
4578 : -1, -1, 2373, -1, -1, -1, -1, 176, -1, 471,
4579 : 179, -1, -1, 1835, -1, -1, -1, -1, 998, -1,
4580 : 2391, -1, -1, 2394, -1, -1, 1099, 196, 2466, 243,
4581 : 199, -1, -1, 2404, -1, -1, -1, -1, -1, -1,
4582 : 527, -1, 2413, -1, -1, -1, -1, -1, 1121, -1,
4583 : -1, 1124, -1, -1, -1, -1, -1, -1, -1, 1132,
4584 : -1, -1, -1, -1, 2435, 527, -1, -1, -1, -1,
4585 : -1, -1, -1, 2444, 23, 24, 25, 26, 27, 28,
4586 : 29, 30, 31, 32, -1, -1, 35, -1, -1, -1,
4587 : -1, -1, -1, 42, 43, 2466, -1, -1, -1, -1,
4588 : 587, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4589 : 1932, -1, -1, 1935, -1, 1937, 1189, -1, -1, 1099,
4590 : -1, 608, -1, -1, 23, 24, 25, 26, 27, 28,
4591 : 29, 30, 31, 32, 1207, -1, 35, 1959, -1, 1961,
4592 : -1, 40, 41, 42, 2582, 44, 45, 2585, -1, -1,
4593 : -1, -1, 1132, -1, -1, -1, -1, -1, -1, -1,
4594 : -1, 1983, -1, -1, -1, -1, -1, -1, -1, -1,
4595 : -1, -1, -1, 1246, -1, 1248, -1, -1, -1, -1,
4596 : -1, -1, 2620, -1, -1, -1, -1, -1, 137, 138,
4597 : 139, -1, -1, 142, -1, 1268, -1, 1270, -1, -1,
4598 : -1, 2023, -1, -1, 153, 154, 155, -1, -1, 1189,
4599 : -1, 2582, -1, 700, 2585, -1, 1289, -1, 2656, -1,
4600 : -1, -1, -1, -1, 2046, -1, -1, 1207, -1, -1,
4601 : -1, -1, -1, -1, 2056, -1, -1, -1, 700, -1,
4602 : 727, -1, -1, -1, -1, -1, -1, -1, -1, 2620,
4603 : -1, -1, -1, -1, -1, -1, -1, 2079, -1, 2081,
4604 : -1, -1, -1, -1, -1, 727, 1246, -1, -1, -1,
4605 : -1, -1, 2094, -1, 2096, 2646, -1, -1, -1, -1,
4606 : -1, -1, -1, 2105, -1, 2656, -1, -1, 1268, -1,
4607 : -1, 778, -1, 23, 24, 25, 26, 27, 28, 29,
4608 : 30, 31, 32, -1, -1, 35, 2128, 1380, -1, 1289,
4609 : -1, 2682, 42, 43, 44, -1, 778, -1, -1, -1,
4610 : -1, -1, -1, -1, -1, -1, -1, 1400, -1, 1402,
4611 : -1, 1404, -1, -1, -1, 2773, -1, 67, 2776, -1,
4612 : -1, -1, 23, 24, 25, 26, 27, 28, 29, 30,
4613 : 31, 32, -1, 840, 35, -1, -1, -1, -1, 40,
4614 : 41, 42, 43, 44, 45, -1, -1, -1, -1, 856,
4615 : -1, -1, -1, -1, -1, 1448, -1, -1, 840, -1,
4616 : 110, -1, -1, -1, -1, 66, -1, -1, -1, -1,
4617 : 1463, -1, 879, -1, 856, 2217, -1, -1, -1, 1472,
4618 : 1380, -1, 2773, -1, -1, 2776, -1, -1, -1, -1,
4619 : 140, 141, -1, -1, -1, -1, -1, 879, -1, 1492,
4620 : -1, -1, -1, -1, 1404, -1, -1, -1, 1501, 110,
4621 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 926,
4622 : -1, -1, -1, -1, -1, -1, 176, -1, -1, 179,
4623 : -1, 2273, -1, -1, 2276, -1, -1, -1, -1, 140,
4624 : 141, -1, -1, -1, 926, -1, 196, -1, 1448, 199,
4625 : -1, -1, -1, -1, -1, -1, -1, 1550, -1, -1,
4626 : -1, 1554, -1, 1463, -1, -1, 1169, 1170, 1171, -1,
4627 : -1, -1, -1, -1, -1, 176, 2318, -1, 179, -1,
4628 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4629 : -1, 998, 1492, -1, -1, 196, -1, -1, 199, -1,
4630 : -1, -1, 2344, -1, -1, 2347, -1, -1, -1, -1,
4631 : -1, -1, -1, -1, -1, -1, 998, 23, 24, 25,
4632 : 26, 27, 28, 29, 30, 31, 32, -1, -1, 35,
4633 : -1, 2373, -1, -1, 40, 41, 42, 43, 44, 45,
4634 : -1, -1, 243, -1, -1, -1, -1, -1, -1, 2391,
4635 : 1550, -1, 2394, -1, 1554, -1, -1, -1, -1, -1,
4636 : 66, -1, 2404, -1, -1, -1, -1, -1, 1661, -1,
4637 : -1, 2413, -1, -1, -1, -1, -1, -1, -1, -1,
4638 : -1, -1, -1, -1, 1677, -1, -1, -1, 1291, -1,
4639 : -1, -1, 1099, 2435, -1, -1, -1, -1, 1301, 1302,
4640 : -1, 1304, 2444, -1, -1, -1, -1, -1, -1, 23,
4641 : 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
4642 : -1, 35, -1, -1, 2466, 1132, 40, 41, 42, 43,
4643 : 44, 45, -1, -1, 1337, 1338, -1, -1, 1341, -1,
4644 : -1, -1, -1, -1, 58, 59, 60, -1, 62, -1,
4645 : 1132, -1, 66, -1, -1, -1, -1, -1, -1, -1,
4646 : -1, 1661, -1, -1, -1, -1, -1, -1, -1, -1,
4647 : -1, -1, -1, 154, -1, -1, -1, 1677, 159, -1,
4648 : -1, -1, 1189, 164, -1, -1, -1, -1, -1, -1,
4649 : 104, 105, 1785, -1, -1, -1, -1, -1, -1, -1,
4650 : 1207, 182, -1, 184, 185, 186, 187, 1189, 189, -1,
4651 : -1, -1, -1, -1, -1, -1, 1809, -1, -1, 1812,
4652 : -1, -1, -1, -1, -1, 1207, -1, -1, -1, 23,
4653 : 24, 25, 26, 27, 28, 29, 30, 31, 32, 1246,
4654 : 2582, 35, 1835, 2585, -1, -1, 40, 41, 42, 43,
4655 : 44, 45, -1, -1, -1, -1, -1, -1, -1, 1462,
4656 : -1, 1268, -1, -1, 1246, -1, -1, -1, -1, -1,
4657 : -1, -1, 66, -1, -1, -1, -1, -1, 2620, -1,
4658 : -1, -1, 1289, -1, -1, 1785, 1268, -1, -1, -1,
4659 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4660 : -1, -1, -1, -1, 2646, -1, -1, 1289, -1, -1,
4661 : 104, 105, 1812, -1, 2656, -1, 110, -1, -1, -1,
4662 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4663 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 1932,
4664 : 2682, -1, 1935, -1, 1937, -1, 140, 141, -1, -1,
4665 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4666 : -1, -1, -1, -1, -1, -1, 1959, -1, 1961, -1,
4667 : -1, -1, -1, 1380, -1, -1, -1, -1, -1, 360,
4668 : -1, -1, 176, -1, -1, 179, -1, -1, -1, -1,
4669 : 1983, -1, -1, -1, -1, -1, -1, 1404, 1380, -1,
4670 : -1, -1, 196, -1, -1, 199, -1, 388, -1, -1,
4671 : 391, 392, -1, -1, -1, 396, -1, -1, -1, -1,
4672 : -1, -1, 1404, -1, -1, -1, -1, -1, -1, -1,
4673 : 2023, 2773, 1932, -1, 2776, 1935, -1, 1640, 1641, -1,
4674 : -1, 1448, -1, -1, -1, -1, -1, -1, -1, -1,
4675 : 164, -1, -1, 2046, -1, -1, 1463, -1, -1, 1959,
4676 : -1, 175, -1, 2056, -1, -1, 1448, -1, -1, -1,
4677 : 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
4678 : -1, 1463, 35, 1983, -1, 1492, 2079, 40, 41, 42,
4679 : 471, 44, 45, -1, -1, -1, 477, -1, -1, -1,
4680 : -1, 2094, -1, 2096, -1, 58, 59, 60, -1, 62,
4681 : 1492, -1, 2105, 66, -1, -1, -1, -1, -1, -1,
4682 : -1, -1, -1, 2023, -1, -1, -1, -1, -1, -1,
4683 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 1742,
4684 : -1, -1, -1, 1550, -1, 526, -1, 1554, -1, 530,
4685 : -1, -1, -1, -1, -1, -1, 2056, -1, -1, -1,
4686 : -1, -1, -1, -1, -1, -1, 1769, -1, 1550, -1,
4687 : -1, -1, 1554, 1776, -1, -1, -1, -1, -1, 23,
4688 : 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
4689 : -1, 35, -1, -1, -1, -1, 40, 41, 42, 43,
4690 : 44, 45, -1, -1, -1, 2105, 587, -1, 589, -1,
4691 : -1, -1, -1, -1, 58, 59, 60, -1, 62, -1,
4692 : -1, -1, 66, -1, 2217, -1, -1, 608, -1, 610,
4693 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4694 : -1, -1, -1, -1, -1, -1, -1, -1, 629, 1852,
4695 : -1, -1, -1, -1, 1661, -1, -1, -1, -1, -1,
4696 : 104, 105, -1, -1, -1, 646, 110, -1, -1, -1,
4697 : 1677, -1, -1, -1, 388, -1, -1, -1, -1, 660,
4698 : 2273, -1, -1, 2276, -1, -1, -1, -1, -1, -1,
4699 : -1, -1, 673, -1, 675, 1677, 140, 141, -1, -1,
4700 : -1, -1, -1, -1, -1, -1, -1, -1, 1911, -1,
4701 : -1, -1, -1, -1, -1, -1, -1, 2217, -1, -1,
4702 : -1, -1, -1, 1926, -1, 2318, -1, -1, -1, -1,
4703 : -1, -1, 176, -1, -1, 179, -1, -1, -1, -1,
4704 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4705 : -1, 2344, 196, -1, 2347, 199, -1, 471, -1, -1,
4706 : -1, -1, -1, 477, -1, -1, -1, -1, -1, -1,
4707 : -1, -1, -1, 2273, -1, -1, 2276, -1, 1785, -1,
4708 : 2373, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4709 : -1, -1, -1, 774, -1, 776, -1, -1, 2391, -1,
4710 : -1, 2394, -1, 1785, -1, 1812, -1, -1, -1, -1,
4711 : -1, 2404, 526, 527, -1, -1, 530, -1, 2318, -1,
4712 : 2413, -1, -1, -1, -1, -1, -1, -1, -1, 543,
4713 : 1812, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4714 : -1, -1, 2435, -1, -1, -1, -1, 2347, -1, -1,
4715 : -1, 2444, -1, -1, -1, -1, -1, -1, -1, -1,
4716 : -1, -1, -1, -1, -1, -1, -1, -1, 849, -1,
4717 : -1, -1, -1, 2466, -1, 856, -1, -1, -1, -1,
4718 : -1, -1, -1, -1, -1, 866, -1, -1, -1, -1,
4719 : -1, 2391, -1, -1, 2394, -1, -1, -1, 879, -1,
4720 : 881, -1, -1, -1, 2404, -1, -1, -1, -1, -1,
4721 : -1, -1, -1, -1, 895, -1, -1, -1, -1, -1,
4722 : -1, -1, -1, -1, -1, 1932, -1, -1, 1935, -1,
4723 : 911, 2134, 2135, -1, -1, 2435, -1, -1, -1, -1,
4724 : -1, -1, -1, -1, -1, 926, -1, -1, -1, -1,
4725 : 1932, -1, 1959, 1935, 2157, -1, -1, -1, -1, -1,
4726 : -1, -1, -1, -1, -1, -1, 2466, -1, -1, -1,
4727 : -1, -1, -1, 954, -1, -1, 1983, 1959, -1, -1,
4728 : -1, -1, 963, -1, 965, 966, -1, -1, -1, 2582,
4729 : -1, -1, 2585, -1, -1, 976, -1, -1, -1, -1,
4730 : -1, 1983, -1, 23, 24, 25, 26, 27, 28, 29,
4731 : 30, 31, 32, -1, -1, 35, 2023, -1, -1, -1,
4732 : 40, 41, 42, 43, 44, 45, -1, 2620, 2231, -1,
4733 : 2233, 2234, 2235, 2236, 2237, 1016, 1017, -1, 58, 59,
4734 : 60, 2023, 62, -1, -1, 1026, 66, -1, -1, 2056,
4735 : -1, -1, -1, 2646, -1, -1, -1, -1, -1, -1,
4736 : -1, -1, -1, 2656, -1, -1, 2269, -1, -1, -1,
4737 : -1, -1, -1, -1, 2056, -1, -1, -1, 2281, -1,
4738 : -1, -1, 2582, -1, -1, 2585, -1, -1, -1, 2682,
4739 : -1, -1, -1, -1, -1, -1, -1, 2300, 2105, -1,
4740 : -1, -1, -1, -1, 2307, -1, -1, -1, 2311, -1,
4741 : -1, -1, -1, -1, -1, -1, -1, -1, 1099, -1,
4742 : 2620, -1, -1, 2105, -1, -1, -1, -1, -1, -1,
4743 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4744 : 1121, -1, 856, 1124, -1, 1126, -1, 1128, -1, 1130,
4745 : -1, 1132, 866, -1, -1, -1, 2656, -1, -1, -1,
4746 : -1, 1142, -1, -1, -1, -1, -1, -1, -1, -1,
4747 : -1, -1, -1, -1, -1, 2378, 1157, -1, -1, -1,
4748 : 2773, -1, -1, 2776, -1, -1, 23, 24, 25, 26,
4749 : 27, 28, 29, 30, 31, 32, 154, -1, 35, -1,
4750 : -1, 159, -1, 40, 41, 42, 164, 44, 45, -1,
4751 : 2217, -1, 926, -1, -1, -1, -1, -1, -1, -1,
4752 : -1, 58, 59, 60, 182, 62, 184, 185, 186, 187,
4753 : -1, 189, -1, -1, -1, 2217, -1, -1, -1, -1,
4754 : 954, -1, -1, -1, -1, -1, -1, -1, -1, 963,
4755 : -1, 965, 966, -1, -1, -1, -1, -1, -1, -1,
4756 : -1, -1, 976, -1, -1, 1246, 2273, 1248, -1, 2276,
4757 : -1, -1, -1, 2773, -1, -1, 2776, -1, -1, -1,
4758 : -1, -1, -1, -1, 998, -1, 2489, 1268, 2491, 1270,
4759 : -1, 2273, -1, -1, 2276, -1, -1, -1, -1, -1,
4760 : -1, 2504, 1016, 1017, -1, -1, -1, -1, -1, -1,
4761 : -1, 2318, 1026, 23, 24, 25, 26, 27, 28, 29,
4762 : 30, 31, 32, -1, -1, 35, -1, -1, -1, -1,
4763 : 40, 41, 42, 43, 44, 45, 2318, -1, -1, -1,
4764 : 2347, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4765 : -1, -1, 2555, -1, -1, -1, -1, -1, 1072, -1,
4766 : -1, -1, -1, -1, -1, 2347, -1, -1, -1, -1,
4767 : -1, -1, -1, -1, -1, -1, -1, -1, 2581, -1,
4768 : -1, -1, -1, -1, 2391, -1, -1, 2394, -1, -1,
4769 : -1, -1, -1, -1, -1, -1, -1, 2404, -1, 1380,
4770 : -1, -1, 360, -1, -1, -1, -1, -1, -1, 2391,
4771 : -1, -1, 2394, -1, -1, -1, 1397, -1, -1, 1400,
4772 : -1, 1402, 2404, 1404, -1, -1, -1, -1, 2435, -1,
4773 : 388, -1, -1, 391, 392, -1, -1, -1, 396, -1,
4774 : -1, -1, -1, 1424, -1, 1426, -1, -1, -1, -1,
4775 : -1, -1, -1, 2435, -1, -1, -1, -1, -1, 2466,
4776 : -1, -1, -1, -1, -1, -1, -1, 1448, -1, -1,
4777 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4778 : -1, -1, 1463, -1, 2466, -1, -1, -1, -1, -1,
4779 : 2693, 1472, 2695, -1, -1, -1, -1, -1, -1, -1,
4780 : -1, -1, -1, -1, -1, 2708, -1, -1, -1, -1,
4781 : -1, 1492, -1, 471, -1, -1, -1, -1, -1, 477,
4782 : 1501, -1, 23, 24, 25, 26, 27, 28, 29, 30,
4783 : 31, 32, -1, -1, 35, -1, -1, -1, -1, 40,
4784 : 41, 42, 43, 44, 45, -1, -1, -1, 1529, -1,
4785 : -1, -1, -1, -1, -1, -1, -1, 58, 59, 60,
4786 : -1, 62, -1, -1, -1, -1, 1547, -1, 526, -1,
4787 : -1, -1, 530, 1554, -1, 2582, -1, -1, 2585, -1,
4788 : -1, -1, 1563, -1, -1, -1, -1, -1, -1, -1,
4789 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4790 : 2582, -1, -1, 2585, -1, 1586, -1, -1, -1, 110,
4791 : -1, -1, -1, 2620, -1, -1, -1, -1, -1, -1,
4792 : -1, 1602, -1, -1, -1, -1, -1, -1, -1, 587,
4793 : -1, 589, -1, -1, -1, -1, -1, -1, 2620, 140,
4794 : 141, -1, -1, -1, -1, -1, -1, -1, -1, 2656,
4795 : 608, -1, 610, -1, -1, -1, -1, -1, -1, -1,
4796 : -1, -1, -1, -1, -1, -1, 1380, -1, -1, -1,
4797 : -1, 629, -1, -1, 2656, 176, -1, -1, 179, -1,
4798 : 1661, -1, -1, 1397, -1, -1, -1, -1, 646, -1,
4799 : -1, -1, -1, -1, -1, 196, 1677, -1, 199, -1,
4800 : -1, -1, 660, -1, -1, -1, -1, -1, -1, -1,
4801 : -1, -1, -1, -1, -1, 673, -1, 675, 1699, -1,
4802 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4803 : -1, -1, -1, -1, 1448, -1, -1, -1, -1, -1,
4804 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 1463,
4805 : -1, -1, -1, -1, -1, -1, -1, -1, 1472, -1,
4806 : -1, -1, -1, -1, -1, -1, 2773, -1, -1, 2776,
4807 : -1, -1, -1, -1, -1, -1, -1, -1, 1492, -1,
4808 : -1, -1, -1, -1, -1, -1, -1, 1501, -1, -1,
4809 : -1, 2773, -1, -1, 2776, -1, -1, -1, -1, -1,
4810 : -1, -1, -1, -1, 1785, -1, -1, -1, -1, -1,
4811 : -1, -1, -1, -1, -1, 1529, 774, -1, 776, -1,
4812 : -1, -1, -1, -1, -1, -1, -1, -1, 1809, -1,
4813 : -1, 1812, -1, 1547, -1, -1, 1550, -1, -1, -1,
4814 : 1554, -1, -1, -1, -1, -1, -1, -1, -1, 1563,
4815 : -1, -1, -1, -1, 1835, -1, -1, -1, -1, -1,
4816 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4817 : -1, -1, 1586, 4, 5, 6, 7, 8, 9, 10,
4818 : 11, 12, 13, 14, 15, 16, -1, -1, 1602, 20,
4819 : 21, 849, -1, -1, -1, -1, -1, -1, 856, -1,
4820 : -1, 32, 33, 34, -1, -1, -1, -1, 866, -1,
4821 : -1, -1, -1, -1, 45, -1, -1, -1, -1, -1,
4822 : -1, 879, -1, 881, -1, -1, -1, -1, -1, -1,
4823 : -1, -1, -1, -1, -1, -1, -1, 895, -1, -1,
4824 : -1, -1, -1, -1, 75, -1, 77, -1, -1, -1,
4825 : -1, 1932, -1, 911, 1935, -1, 1937, -1, -1, -1,
4826 : -1, -1, -1, -1, -1, -1, -1, -1, 926, -1,
4827 : -1, -1, 103, -1, -1, -1, 107, -1, 1959, -1,
4828 : 1961, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4829 : -1, -1, -1, -1, -1, -1, 954, -1, -1, -1,
4830 : -1, -1, 1983, -1, -1, 963, -1, 965, 966, -1,
4831 : -1, -1, -1, -1, -1, 146, -1, -1, 976, -1,
4832 : -1, 152, -1, -1, -1, 156, 157, -1, -1, -1,
4833 : -1, -1, -1, -1, -1, 166, 167, -1, 175, 170,
4834 : -1, -1, 2023, -1, -1, 182, -1, -1, -1, -1,
4835 : -1, -1, -1, -1, -1, -1, -1, -1, 1016, 1017,
4836 : -1, -1, -1, -1, -1, 2046, -1, -1, 1026, -1,
4837 : -1, -1, -1, -1, -1, 2056, 213, -1, -1, 210,
4838 : 211, 212, -1, -1, 215, -1, -1, -1, -1, 220,
4839 : -1, -1, -1, -1, -1, -1, -1, -1, 2079, -1,
4840 : 2081, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4841 : -1, -1, -1, 2094, -1, 2096, -1, -1, -1, -1,
4842 : -1, -1, -1, -1, 2105, -1, -1, -1, -1, -1,
4843 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4844 : -1, 1099, -1, -1, -1, 2126, -1, 2128, -1, -1,
4845 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4846 : -1, -1, -1, 1121, -1, -1, 1124, -1, 1126, -1,
4847 : 1128, -1, 1130, -1, 1132, -1, -1, -1, -1, -1,
4848 : -1, -1, -1, -1, 1142, -1, -1, -1, 23, 24,
4849 : 25, 26, 27, 28, 29, 30, 31, 32, -1, 1157,
4850 : 35, -1, -1, -1, -1, 40, 41, 42, 43, 44,
4851 : 45, -1, -1, -1, -1, -1, -1, -1, 1932, -1,
4852 : -1, -1, -1, 526, 527, 175, 176, 530, 531, -1,
4853 : -1, 66, -1, -1, -1, -1, 2217, -1, -1, -1,
4854 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4855 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4856 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4857 : -1, -1, -1, -1, -1, 110, -1, -1, -1, -1,
4858 : -1, -1, -1, -1, -1, -1, -1, -1, 1246, -1,
4859 : 1248, -1, 2273, -1, -1, 2276, -1, -1, -1, -1,
4860 : -1, -1, -1, -1, -1, 140, 141, -1, -1, 2023,
4861 : 1268, -1, 1270, -1, -1, -1, -1, -1, -1, -1,
4862 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4863 : -1, -1, 2046, -1, -1, -1, -1, 2318, -1, -1,
4864 : -1, 176, 2056, -1, 179, -1, -1, -1, -1, -1,
4865 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4866 : -1, 196, -1, 2344, 199, 2079, 2347, 2081, -1, -1,
4867 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4868 : 2094, -1, 2096, -1, -1, -1, -1, -1, -1, 526,
4869 : 527, 2105, 2373, 530, -1, -1, -1, 534, -1, -1,
4870 : -1, -1, -1, -1, -1, -1, 543, -1, -1, -1,
4871 : 2391, -1, 2126, 2394, 2128, -1, -1, -1, -1, -1,
4872 : -1, -1, 1380, 2404, -1, -1, -1, -1, -1, -1,
4873 : -1, -1, 2413, -1, -1, -1, -1, -1, -1, 1397,
4874 : -1, -1, 1400, -1, 1402, -1, 1404, -1, -1, -1,
4875 : -1, -1, 589, -1, 2435, -1, -1, -1, -1, -1,
4876 : -1, -1, -1, 2444, -1, -1, 1424, -1, 1426, -1,
4877 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4878 : -1, -1, -1, -1, -1, 2466, -1, -1, -1, -1,
4879 : 1448, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4880 : -1, -1, -1, -1, -1, 1463, -1, -1, -1, -1,
4881 : -1, -1, -1, -1, 1472, -1, -1, -1, -1, -1,
4882 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4883 : -1, -1, -1, -1, 1492, -1, 673, -1, -1, -1,
4884 : -1, -1, -1, 1501, -1, -1, -1, -1, -1, -1,
4885 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4886 : -1, -1, -1, 700, -1, -1, -1, -1, -1, -1,
4887 : -1, 1529, -1, -1, -1, -1, 526, 527, -1, -1,
4888 : 530, -1, -1, -1, 534, -1, -1, -1, -1, 1547,
4889 : -1, -1, -1, 543, -1, -1, 1554, -1, -1, -1,
4890 : -1, 2582, -1, -1, 2585, 1563, -1, -1, -1, -1,
4891 : 560, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4892 : -1, -1, -1, -1, -1, -1, -1, -1, 1586, -1,
4893 : -1, -1, -1, -1, -1, -1, -1, 774, -1, 2620,
4894 : -1, -1, -1, -1, 1602, -1, -1, -1, -1, -1,
4895 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4896 : 963, -1, 965, 966, -1, 2646, -1, -1, -1, -1,
4897 : -1, -1, -1, 976, -1, 2656, -1, 2391, -1, -1,
4898 : 2394, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4899 : 2404, -1, -1, -1, -1, 998, -1, -1, -1, 2413,
4900 : -1, 2682, -1, 1661, -1, -1, -1, -1, -1, -1,
4901 : -1, -1, -1, 1016, 1017, -1, -1, -1, -1, 1677,
4902 : -1, 2435, -1, 1026, -1, -1, -1, -1, -1, -1,
4903 : 2444, -1, -1, -1, -1, -1, -1, -1, -1, 1042,
4904 : -1, 1699, -1, -1, -1, -1, 1049, 1050, -1, -1,
4905 : -1, -1, 2466, -1, -1, -1, -1, -1, -1, -1,
4906 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4907 : -1, -1, -1, -1, -1, -1, -1, 914, -1, 916,
4908 : 917, 918, -1, -1, -1, -1, -1, -1, -1, -1,
4909 : -1, -1, 2773, -1, -1, 2776, -1, -1, -1, -1,
4910 : -1, -1, 182, -1, 184, 185, 186, 187, -1, 189,
4911 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4912 : -1, -1, -1, -1, -1, -1, 963, 1785, 965, 966,
4913 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 976,
4914 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4915 : -1, 1809, -1, -1, 1812, -1, -1, -1, -1, -1,
4916 : -1, 998, -1, -1, -1, -1, -1, -1, -1, -1,
4917 : -1, -1, -1, -1, -1, -1, -1, 1835, -1, 1016,
4918 : 1017, -1, -1, -1, -1, -1, -1, -1, -1, 1026,
4919 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4920 : -1, -1, -1, -1, -1, -1, 2620, -1, -1, -1,
4921 : -1, -1, 1049, 1050, -1, -1, -1, -1, 1055, -1,
4922 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4923 : -1, -1, 2646, -1, -1, 1072, -1, -1, -1, -1,
4924 : -1, -1, 2656, -1, -1, -1, -1, -1, -1, -1,
4925 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4926 : -1, -1, -1, -1, -1, -1, -1, -1, 2682, -1,
4927 : -1, -1, -1, -1, 1932, -1, -1, 1935, -1, 1937,
4928 : -1, -1, -1, -1, 1121, -1, -1, -1, -1, -1,
4929 : -1, -1, -1, -1, -1, 1132, -1, -1, -1, -1,
4930 : -1, 1959, -1, 1961, -1, 1142, -1, -1, -1, -1,
4931 : -1, -1, -1, 963, -1, 965, 966, -1, -1, -1,
4932 : -1, -1, -1, -1, -1, 1983, 976, -1, -1, -1,
4933 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4934 : -1, -1, -1, -1, -1, -1, -1, -1, 998, -1,
4935 : -1, -1, 1189, -1, -1, -1, -1, -1, -1, 2773,
4936 : -1, -1, 2776, -1, -1, 2023, 1016, 1017, -1, -1,
4937 : -1, -1, -1, -1, -1, -1, 1026, -1, -1, -1,
4938 : -1, -1, -1, -1, -1, -1, -1, -1, 2046, -1,
4939 : -1, -1, -1, -1, -1, -1, -1, -1, 2056, 1049,
4940 : 1050, -1, -1, -1, -1, 1055, -1, -1, -1, 1246,
4941 : -1, 1248, -1, -1, -1, -1, -1, -1, -1, -1,
4942 : -1, 2079, 1072, 2081, 1074, -1, -1, -1, -1, -1,
4943 : -1, -1, -1, -1, -1, -1, 2094, -1, 2096, -1,
4944 : -1, -1, -1, -1, -1, -1, 526, 2105, -1, -1,
4945 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4946 : 1463, -1, -1, -1, -1, -1, -1, -1, 2126, 1472,
4947 : 2128, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4948 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 1492,
4949 : -1, -1, -1, -1, -1, -1, -1, -1, 1501, -1,
4950 : -1, -1, -1, -1, -1, -1, -1, 587, -1, 589,
4951 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4952 : -1, -1, -1, -1, -1, -1, 1529, -1, 608, -1,
4953 : 610, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4954 : -1, -1, -1, -1, 1547, -1, -1, 1550, -1, 629,
4955 : -1, 1554, -1, -1, -1, -1, -1, -1, -1, 2217,
4956 : 1563, -1, -1, 1400, -1, 1402, 646, -1, -1, -1,
4957 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4958 : 660, -1, -1, 1586, -1, -1, -1, -1, -1, -1,
4959 : -1, -1, -1, 673, 1431, 675, -1, -1, -1, 1602,
4960 : -1, 1438, -1, -1, 1607, -1, -1, -1, 1611, -1,
4961 : -1, -1, -1, -1, -1, 2273, -1, 1620, 2276, -1,
4962 : -1, -1, -1, -1, -1, -1, 1463, -1, -1, -1,
4963 : -1, -1, -1, -1, -1, 1472, -1, -1, -1, -1,
4964 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4965 : -1, -1, -1, -1, -1, 1492, -1, -1, -1, -1,
4966 : 2318, -1, -1, -1, 1501, -1, -1, -1, -1, -1,
4967 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4968 : -1, -1, -1, -1, -1, -1, 2344, -1, -1, 2347,
4969 : -1, -1, 1529, -1, 774, -1, 776, -1, -1, -1,
4970 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4971 : 1547, -1, -1, 1550, -1, 2373, -1, 1554, -1, -1,
4972 : -1, -1, -1, -1, -1, -1, 1563, -1, -1, -1,
4973 : -1, -1, -1, 2391, -1, -1, 2394, -1, -1, -1,
4974 : -1, -1, -1, -1, -1, -1, 2404, -1, -1, 1586,
4975 : -1, -1, -1, -1, -1, 2413, -1, -1, -1, -1,
4976 : -1, 1764, -1, -1, -1, 1602, -1, -1, -1, -1,
4977 : -1, -1, -1, -1, 1611, -1, -1, 2435, -1, -1,
4978 : -1, -1, -1, 1620, -1, -1, 2444, -1, -1, -1,
4979 : -1, -1, -1, 1630, -1, -1, -1, -1, -1, -1,
4980 : -1, -1, -1, -1, -1, -1, -1, -1, 2466, -1,
4981 : -1, -1, -1, 1463, -1, -1, -1, -1, -1, -1,
4982 : -1, -1, 1472, -1, -1, -1, -1, -1, -1, -1,
4983 : 182, -1, 184, 185, 186, 187, -1, 189, -1, -1,
4984 : 1677, -1, 1492, -1, -1, -1, -1, -1, -1, -1,
4985 : -1, 1501, -1, -1, -1, -1, -1, -1, -1, -1,
4986 : -1, -1, 1699, -1, 182, -1, 184, 185, 186, 187,
4987 : -1, 189, -1, -1, -1, -1, -1, -1, -1, 1529,
4988 : -1, -1, -1, 963, -1, 965, 966, -1, -1, -1,
4989 : -1, -1, -1, -1, -1, -1, 976, 1547, -1, -1,
4990 : 1550, -1, -1, -1, 1554, -1, -1, -1, -1, -1,
4991 : -1, -1, -1, 1563, -1, -1, -1, -1, -1, -1,
4992 : -1, -1, -1, -1, 2582, -1, -1, 2585, -1, -1,
4993 : -1, -1, -1, -1, -1, -1, 1586, -1, -1, -1,
4994 : -1, -1, -1, -1, -1, -1, -1, -1, 1785, -1,
4995 : -1, -1, 1602, -1, -1, -1, -1, -1, -1, -1,
4996 : -1, 1611, 2620, -1, -1, -1, -1, -1, -1, -1,
4997 : 1620, -1, 1809, -1, -1, -1, -1, -1, -1, -1,
4998 : 1630, -1, -1, -1, -1, -1, -1, -1, 2646, -1,
4999 : -1, -1, -1, -1, -1, -1, -1, -1, 2656, -1,
5000 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5001 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 1099,
5002 : 2023, -1, -1, -1, 2682, 526, 527, -1, -1, 530,
5003 : 531, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5004 : -1, 1121, -1, 2046, 1124, -1, 1126, -1, 1128, -1,
5005 : 1130, -1, 1132, 2056, -1, -1, -1, -1, -1, -1,
5006 : -1, -1, 1142, -1, -1, -1, -1, -1, -1, -1,
5007 : -1, -1, -1, -1, -1, -1, 2079, 1157, 2081, -1,
5008 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5009 : -1, 2094, -1, 2096, -1, -1, -1, -1, 1935, -1,
5010 : 1937, -1, 2105, -1, -1, -1, -1, -1, -1, -1,
5011 : -1, -1, -1, -1, -1, 2773, -1, -1, 2776, -1,
5012 : -1, -1, 1959, 2126, 1961, 2128, -1, -1, -1, -1,
5013 : -1, -1, -1, -1, -1, 2138, -1, -1, 2141, -1,
5014 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5015 : -1, -1, -1, -1, -1, 1992, -1, -1, -1, -1,
5016 : -1, -1, -1, -1, -1, -1, 1246, -1, 1248, -1,
5017 : -1, -1, -1, -1, 526, -1, -1, -1, -1, -1,
5018 : -1, -1, -1, -1, -1, -1, 2023, -1, 1268, -1,
5019 : 1270, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5020 : -1, -1, -1, -1, -1, -1, -1, -1, 526, 2046,
5021 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 2056,
5022 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5023 : -1, -1, -1, -1, -1, 587, -1, 589, -1, -1,
5024 : -1, -1, 2079, -1, 2081, -1, -1, -1, 2251, -1,
5025 : -1, -1, -1, -1, -1, -1, 608, 2094, 610, 2096,
5026 : -1, -1, 526, 527, -1, -1, 530, -1, 2105, 587,
5027 : -1, 589, -1, -1, -1, -1, -1, 629, -1, -1,
5028 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 2126,
5029 : 608, 2128, 610, -1, 646, -1, -1, -1, -1, -1,
5030 : -1, 2138, -1, -1, 2141, -1, -1, -1, 660, -1,
5031 : -1, 629, -1, -1, -1, -1, -1, -1, -1, -1,
5032 : 1400, 673, 1402, 675, -1, -1, -1, -1, 646, -1,
5033 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5034 : -1, -1, 660, -1, -1, -1, -1, -1, -1, -1,
5035 : -1, -1, -1, -1, -1, 673, -1, 675, -1, -1,
5036 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5037 : -1, -1, -1, 2023, -1, -1, -1, -1, -1, -1,
5038 : 2217, -1, -1, 1463, -1, -1, -1, -1, 2391, -1,
5039 : -1, 2394, 1472, -1, -1, -1, 2046, -1, -1, -1,
5040 : -1, 2404, -1, -1, -1, -1, 2056, -1, -1, -1,
5041 : 2413, -1, 1492, -1, -1, -1, -1, -1, -1, -1,
5042 : -1, 1501, 774, -1, 776, -1, -1, -1, -1, 2079,
5043 : -1, 2081, 2435, -1, -1, -1, 2273, -1, -1, -1,
5044 : -1, 2444, -1, -1, 2094, -1, 2096, -1, -1, 1529,
5045 : -1, -1, -1, -1, -1, 2105, 774, -1, 776, -1,
5046 : -1, -1, 963, 2466, 965, 966, -1, 1547, -1, -1,
5047 : -1, -1, -1, -1, -1, 976, 2126, -1, 2128, -1,
5048 : -1, 2318, -1, -1, -1, -1, -1, -1, 2138, -1,
5049 : -1, 2141, -1, -1, -1, -1, -1, 998, -1, -1,
5050 : -1, -1, -1, -1, -1, -1, -1, 2344, -1, -1,
5051 : 2347, -1, -1, -1, -1, 1016, 1017, -1, -1, -1,
5052 : -1, -1, -1, -1, -1, 1026, -1, -1, -1, -1,
5053 : -1, -1, -1, -1, -1, -1, 2373, -1, -1, -1,
5054 : -1, 1042, -1, -1, -1, 2548, -1, -1, 1049, 1050,
5055 : -1, -1, -1, -1, 2391, -1, -1, 2394, -1, -1,
5056 : -1, -1, -1, -1, -1, -1, -1, 2404, -1, -1,
5057 : -1, -1, -1, -1, -1, -1, 2413, -1, -1, -1,
5058 : -1, 1661, -1, -1, -1, -1, -1, -1, -1, -1,
5059 : -1, -1, -1, -1, -1, -1, -1, 1677, 2435, -1,
5060 : -1, -1, -1, -1, -1, -1, -1, 2444, -1, -1,
5061 : -1, 963, -1, 965, 966, -1, -1, 2620, -1, 1699,
5062 : -1, -1, -1, -1, 976, -1, -1, -1, -1, 2466,
5063 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5064 : -1, -1, -1, 2646, -1, 963, -1, 965, 966, -1,
5065 : -1, -1, -1, 2656, -1, -1, -1, -1, 976, -1,
5066 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5067 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 2682,
5068 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5069 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 963,
5070 : -1, 965, 966, -1, -1, 1785, -1, -1, -1, -1,
5071 : -1, -1, 976, -1, -1, -1, -1, -1, -1, -1,
5072 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 1809,
5073 : -1, -1, 1812, -1, 998, -1, -1, -1, -1, -1,
5074 : -1, 2391, -1, -1, 2394, 2582, -1, 1099, 2585, -1,
5075 : -1, -1, 1016, 1017, 2404, 1835, -1, -1, -1, -1,
5076 : -1, -1, 1026, 2413, -1, -1, -1, -1, -1, 1121,
5077 : 2773, -1, 1124, 2776, 1126, -1, 1128, -1, 1130, -1,
5078 : 1132, 1099, -1, 2620, -1, 2435, -1, -1, -1, -1,
5079 : 1142, -1, -1, -1, 2444, -1, -1, -1, -1, -1,
5080 : -1, -1, -1, 1121, -1, 1157, 1124, -1, 1126, 2646,
5081 : 1128, -1, 1130, -1, 1132, -1, 2466, -1, -1, 2656,
5082 : -1, -1, -1, -1, 1142, -1, -1, -1, -1, -1,
5083 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 1157,
5084 : -1, -1, -1, -1, -1, 2682, -1, -1, -1, -1,
5085 : -1, -1, -1, -1, -1, 1935, -1, 1937, -1, -1,
5086 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5087 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 1959,
5088 : -1, 1961, -1, -1, -1, -1, -1, -1, -1, -1,
5089 : -1, -1, -1, -1, 1246, -1, 1248, -1, -1, -1,
5090 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5091 : -1, 526, 527, -1, -1, 530, 1268, -1, 1270, -1,
5092 : -1, -1, -1, 526, 527, -1, -1, 530, 1246, -1,
5093 : 1248, -1, -1, -1, -1, -1, 2773, -1, -1, 2776,
5094 : -1, -1, -1, 2023, -1, -1, -1, -1, -1, -1,
5095 : 1268, -1, 1270, -1, -1, -1, -1, -1, -1, -1,
5096 : -1, -1, 1463, -1, -1, -1, 2046, -1, -1, -1,
5097 : 2620, 1472, -1, -1, -1, -1, 2056, -1, -1, -1,
5098 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5099 : -1, 1492, -1, -1, -1, -1, 2646, -1, -1, 2079,
5100 : 1501, 2081, -1, -1, -1, -1, 2656, -1, -1, -1,
5101 : -1, -1, -1, -1, 2094, -1, 2096, -1, -1, -1,
5102 : -1, -1, -1, -1, -1, -1, -1, -1, 1529, -1,
5103 : -1, -1, 2682, -1, -1, -1, -1, -1, -1, -1,
5104 : -1, -1, -1, -1, -1, -1, 1547, -1, 1400, 1550,
5105 : 1402, -1, -1, 1554, -1, -1, -1, -1, -1, -1,
5106 : -1, -1, 1563, -1, -1, -1, -1, -1, -1, -1,
5107 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5108 : -1, -1, 1400, -1, 1402, 1586, -1, -1, -1, -1,
5109 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5110 : -1, 1602, -1, -1, -1, -1, 1607, -1, -1, -1,
5111 : 1611, 1463, -1, -1, -1, -1, -1, -1, -1, 1620,
5112 : 1472, -1, -1, 2773, -1, -1, 2776, -1, -1, -1,
5113 : -1, -1, -1, -1, -1, -1, -1, 2217, -1, -1,
5114 : 1492, -1, -1, -1, -1, 1463, -1, -1, -1, 1501,
5115 : -1, -1, -1, -1, 1472, -1, -1, -1, -1, -1,
5116 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5117 : -1, -1, -1, -1, 1492, -1, -1, 1529, -1, -1,
5118 : -1, -1, -1, 1501, -1, -1, -1, -1, -1, -1,
5119 : -1, -1, -1, 2273, -1, 1547, 2276, -1, -1, 1463,
5120 : -1, -1, -1, -1, -1, -1, -1, -1, 1472, -1,
5121 : -1, 1529, -1, -1, -1, -1, -1, -1, -1, -1,
5122 : -1, -1, -1, -1, -1, -1, -1, -1, 1492, 1547,
5123 : -1, -1, -1, -1, -1, -1, -1, 1501, 2318, -1,
5124 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5125 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5126 : -1, -1, -1, -1, 2344, 1529, -1, 2347, -1, -1,
5127 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5128 : -1, -1, -1, 1547, -1, -1, 1550, -1, -1, -1,
5129 : 1554, -1, -1, 2373, -1, -1, -1, -1, -1, 1563,
5130 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 1661,
5131 : -1, 2391, -1, -1, 2394, -1, -1, -1, -1, -1,
5132 : -1, -1, 1586, -1, 2404, 1677, -1, -1, -1, -1,
5133 : -1, -1, -1, 2413, -1, -1, -1, -1, 1602, -1,
5134 : -1, -1, -1, 1661, -1, -1, -1, 1699, 963, -1,
5135 : 965, 966, -1, -1, -1, 2435, -1, -1, -1, 1677,
5136 : 963, 976, 965, 966, 2444, -1, -1, -1, -1, -1,
5137 : -1, -1, -1, 976, -1, -1, -1, -1, -1, -1,
5138 : -1, 1699, -1, 998, -1, -1, -1, -1, -1, -1,
5139 : -1, -1, -1, -1, -1, 998, -1, -1, -1, -1,
5140 : -1, 1016, 1017, -1, -1, -1, -1, -1, -1, -1,
5141 : -1, 1026, -1, 1016, 1017, -1, -1, -1, -1, -1,
5142 : -1, -1, -1, 1026, -1, -1, -1, -1, -1, -1,
5143 : -1, -1, -1, 1785, -1, -1, -1, -1, -1, -1,
5144 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5145 : -1, -1, -1, -1, -1, -1, -1, 1809, -1, -1,
5146 : 1812, -1, -1, -1, -1, -1, -1, 1785, -1, -1,
5147 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5148 : -1, -1, -1, 1835, -1, -1, -1, -1, -1, -1,
5149 : -1, 1809, -1, -1, 1812, -1, -1, -1, -1, -1,
5150 : -1, -1, 2582, -1, -1, 2585, -1, -1, -1, -1,
5151 : -1, -1, -1, -1, -1, -1, -1, 1835, -1, -1,
5152 : -1, -1, 2023, -1, -1, -1, -1, -1, -1, -1,
5153 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5154 : 2620, -1, -1, -1, -1, 2046, -1, -1, -1, -1,
5155 : -1, -1, -1, -1, -1, 2056, -1, -1, -1, -1,
5156 : -1, -1, -1, -1, -1, -1, 2646, -1, -1, -1,
5157 : -1, -1, -1, -1, -1, -1, 2656, -1, 2079, -1,
5158 : 2081, -1, -1, 1935, -1, 1937, -1, -1, -1, -1,
5159 : -1, -1, -1, 2094, -1, 2096, -1, -1, -1, -1,
5160 : -1, -1, 2682, -1, 2105, -1, -1, 1959, -1, 1961,
5161 : -1, -1, -1, -1, -1, -1, -1, 1935, -1, 1937,
5162 : -1, -1, -1, -1, -1, 2126, -1, 2128, -1, -1,
5163 : -1, -1, -1, -1, -1, -1, -1, 2138, -1, -1,
5164 : 2141, 1959, -1, 1961, -1, -1, -1, -1, -1, -1,
5165 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5166 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5167 : -1, 2023, -1, -1, -1, -1, -1, -1, -1, -1,
5168 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5169 : -1, -1, -1, 2773, 2046, -1, 2776, -1, -1, -1,
5170 : -1, -1, -1, -1, 2056, 2023, -1, -1, -1, -1,
5171 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5172 : -1, -1, -1, -1, -1, -1, -1, 2079, 2046, 2081,
5173 : -1, -1, -1, -1, -1, -1, -1, -1, 2056, -1,
5174 : -1, -1, 2094, -1, 2096, -1, -1, -1, -1, -1,
5175 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 2023,
5176 : -1, 2079, -1, 2081, -1, -1, -1, -1, -1, -1,
5177 : -1, -1, -1, -1, -1, -1, 2094, -1, 2096, -1,
5178 : -1, -1, 2046, -1, -1, -1, -1, -1, -1, -1,
5179 : -1, -1, 2056, -1, -1, -1, -1, -1, -1, -1,
5180 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5181 : -1, -1, -1, -1, -1, 2079, -1, 2081, -1, -1,
5182 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5183 : 2094, -1, 2096, -1, -1, -1, -1, -1, -1, -1,
5184 : -1, 2105, -1, -1, -1, -1, -1, -1, 1463, -1,
5185 : -1, -1, -1, -1, -1, -1, -1, 1472, -1, -1,
5186 : 1463, -1, 2126, -1, 2128, 2217, -1, -1, -1, 1472,
5187 : -1, -1, -1, -1, -1, -1, -1, 1492, -1, -1,
5188 : -1, -1, -1, -1, -1, -1, 1501, -1, -1, 1492,
5189 : 2391, -1, -1, 2394, -1, -1, -1, -1, 1501, 2217,
5190 : -1, -1, -1, 2404, -1, -1, -1, -1, -1, -1,
5191 : -1, -1, 2413, -1, 1529, -1, -1, -1, -1, -1,
5192 : -1, 2273, -1, -1, 2276, -1, 1529, -1, -1, -1,
5193 : -1, -1, 1547, -1, 2435, 1550, -1, -1, -1, 1554,
5194 : -1, -1, -1, 2444, 1547, -1, -1, 1550, 1563, -1,
5195 : -1, 1554, -1, -1, -1, 2273, -1, -1, 2276, -1,
5196 : 1563, -1, -1, -1, -1, 2466, 2318, -1, -1, -1,
5197 : -1, 1586, -1, -1, -1, -1, -1, -1, -1, -1,
5198 : -1, -1, -1, 1586, -1, -1, -1, 1602, -1, -1,
5199 : -1, -1, 2344, -1, -1, 2347, -1, -1, -1, 1602,
5200 : 2318, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5201 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5202 : -1, 2373, -1, -1, -1, -1, 2344, -1, -1, 2347,
5203 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 2391,
5204 : -1, -1, 2394, -1, -1, -1, -1, -1, -1, -1,
5205 : -1, -1, 2404, -1, -1, 2373, -1, -1, -1, -1,
5206 : -1, 2413, -1, -1, -1, -1, -1, -1, -1, -1,
5207 : -1, -1, -1, 2391, -1, -1, 2394, -1, -1, -1,
5208 : -1, -1, -1, 2435, -1, -1, 2404, -1, -1, -1,
5209 : -1, -1, 2444, -1, -1, 2413, -1, -1, -1, -1,
5210 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5211 : -1, -1, -1, -1, -1, -1, -1, 2435, -1, 2620,
5212 : -1, -1, -1, -1, -1, -1, 2444, 2391, -1, -1,
5213 : 2394, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5214 : 2404, -1, -1, -1, -1, 2646, -1, -1, -1, 2413,
5215 : -1, -1, -1, -1, -1, 2656, -1, -1, -1, -1,
5216 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5217 : -1, 2435, -1, -1, -1, -1, -1, -1, -1, -1,
5218 : 2444, 2682, -1, -1, -1, -1, -1, -1, -1, -1,
5219 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5220 : -1, -1, 2466, -1, -1, -1, -1, -1, -1, -1,
5221 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5222 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5223 : 2582, -1, -1, 2585, -1, -1, -1, -1, -1, -1,
5224 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5225 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5226 : -1, -1, -1, -1, 2582, -1, -1, 2585, 2620, -1,
5227 : -1, -1, 2773, -1, -1, 2776, -1, -1, -1, -1,
5228 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5229 : -1, -1, -1, -1, 2646, -1, -1, -1, -1, -1,
5230 : -1, -1, 2620, -1, 2656, -1, -1, -1, -1, -1,
5231 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5232 : -1, -1, -1, -1, -1, -1, -1, -1, 2646, -1,
5233 : 2682, -1, -1, -1, -1, -1, -1, -1, 2656, -1,
5234 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5235 : -1, -1, -1, -1, -1, -1, 2620, -1, -1, -1,
5236 : -1, -1, -1, -1, 2682, -1, -1, -1, -1, -1,
5237 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5238 : -1, -1, 2646, -1, -1, -1, -1, -1, -1, -1,
5239 : -1, -1, 2656, -1, -1, -1, -1, -1, -1, -1,
5240 : -1, -1, -1, -1, -1, -1, -1, -1, 2023, -1,
5241 : -1, -1, -1, -1, -1, -1, -1, -1, 2682, -1,
5242 : 2023, 2773, -1, -1, 2776, -1, -1, -1, -1, -1,
5243 : -1, 2046, -1, -1, -1, -1, -1, -1, -1, -1,
5244 : -1, 2056, -1, 2046, -1, -1, -1, -1, -1, -1,
5245 : -1, -1, -1, 2056, -1, 2773, -1, -1, 2776, -1,
5246 : -1, -1, -1, -1, 2079, -1, 2081, -1, -1, -1,
5247 : -1, -1, -1, -1, -1, -1, 2079, -1, 2081, 2094,
5248 : -1, 2096, -1, -1, -1, -1, -1, -1, -1, -1,
5249 : 2105, 2094, -1, 2096, -1, -1, -1, -1, -1, -1,
5250 : -1, -1, 2105, -1, -1, -1, -1, -1, -1, 2773,
5251 : -1, 2126, 2776, 2128, -1, -1, -1, -1, -1, -1,
5252 : -1, -1, -1, 2126, -1, 2128, -1, -1, -1, -1,
5253 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5254 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5255 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5256 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5257 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5258 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5259 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5260 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5261 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5262 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5263 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5264 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5265 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5266 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5267 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5268 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5269 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5270 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5271 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5272 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5273 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5274 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5275 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5276 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5277 : -1, -1, -1, -1, -1, -1, 2391, -1, -1, 2394,
5278 : -1, -1, -1, -1, -1, -1, -1, -1, 2391, 2404,
5279 : -1, 2394, -1, -1, -1, -1, -1, -1, 2413, -1,
5280 : -1, 2404, -1, -1, -1, -1, -1, -1, -1, -1,
5281 : 2413, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5282 : 2435, -1, -1, -1, -1, -1, -1, -1, -1, 2444,
5283 : -1, -1, 2435, -1, -1, -1, -1, -1, -1, -1,
5284 : -1, 2444, -1, -1, -1, -1, -1, -1, -1, -1,
5285 : -1, 2466, -1, -1, -1, -1, -1, -1, -1, -1,
5286 : -1, -1, -1, 2466, -1, -1, -1, -1, -1, -1,
5287 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5288 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5289 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5290 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5291 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5292 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5293 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5294 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5295 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5296 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5297 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5298 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5299 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5300 : -1, -1, -1, -1, -1, 2620, -1, -1, -1, -1,
5301 : -1, -1, -1, -1, -1, -1, -1, 2620, -1, -1,
5302 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5303 : -1, 2646, -1, -1, -1, -1, -1, -1, -1, -1,
5304 : -1, 2656, -1, 2646, -1, -1, -1, -1, -1, -1,
5305 : -1, -1, -1, 2656, -1, -1, -1, -1, -1, -1,
5306 : -1, -1, -1, -1, -1, -1, -1, 2682, -1, -1,
5307 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 2682,
5308 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5309 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5310 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5311 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5312 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5313 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5314 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5315 : -1, -1, -1, -1, -1, -1, -1, -1, 2773, -1,
5316 : -1, 2776, -1, -1, -1, -1, -1, -1, -1, -1,
5317 : 2773, -1, -1, 2776
5318 : };
5319 :
5320 : /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
5321 : symbol of state STATE-NUM. */
5322 : static const yytype_int16 yystos[] =
5323 : {
5324 : 0, 4, 5, 6, 7, 8, 9, 10, 11, 12,
5325 : 13, 14, 15, 16, 20, 21, 32, 33, 34, 45,
5326 : 75, 77, 103, 107, 146, 152, 156, 157, 166, 167,
5327 : 170, 210, 211, 212, 215, 220, 257, 260, 263, 298,
5328 : 307, 309, 311, 313, 315, 316, 318, 320, 322, 324,
5329 : 326, 328, 330, 332, 333, 334, 335, 337, 339, 341,
5330 : 343, 345, 347, 374, 551, 556, 561, 566, 571, 576,
5331 : 581, 586, 591, 596, 601, 606, 611, 616, 621, 626,
5332 : 631, 636, 641, 646, 651, 656, 661, 663, 667, 669,
5333 : 671, 675, 677, 679, 681, 684, 686, 688, 690, 692,
5334 : 694, 696, 698, 700, 702, 704, 706, 708, 710, 712,
5335 : 714, 716, 718, 720, 724, 725, 729, 732, 734, 736,
5336 : 738, 743, 747, 754, 5, 6, 9, 11, 75, 77,
5337 : 308, 33, 662, 33, 664, 19, 22, 30, 33, 170,
5338 : 4, 33, 685, 717, 719, 721, 726, 733, 342, 17,
5339 : 744, 264, 739, 668, 310, 348, 152, 8, 9, 737,
5340 : 7, 261, 346, 33, 312, 317, 338, 340, 4, 33,
5341 : 103, 171, 172, 173, 191, 325, 336, 331, 375, 344,
5342 : 0, 33, 697, 33, 699, 701, 703, 705, 152, 707,
5343 : 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
5344 : 762, 803, 838, 869, 929, 937, 939, 944, 948, 953,
5345 : 955, 1018, 1020, 670, 35, 40, 41, 42, 43, 44,
5346 : 45, 764, 805, 840, 948, 953, 955, 961, 968, 986,
5347 : 988, 993, 995, 1010, 1020, 672, 765, 806, 841, 948,
5348 : 953, 955, 961, 968, 986, 988, 995, 1010, 1020, 299,
5349 : 755, 748, 680, 682, 329, 5, 6, 687, 35, 66,
5350 : 773, 812, 847, 948, 953, 955, 965, 986, 1007, 30,
5351 : 67, 789, 828, 863, 946, 953, 961, 986, 995, 1026,
5352 : 68, 69, 790, 829, 864, 1001, 1003, 43, 791, 830,
5353 : 865, 948, 953, 955, 961, 992, 1020, 70, 793, 831,
5354 : 866, 948, 953, 955, 959, 992, 4, 5, 6, 11,
5355 : 15, 796, 833, 868, 231, 396, 410, 426, 541, 948,
5356 : 735, 244, 25, 36, 265, 266, 267, 268, 941, 244,
5357 : 740, 23, 58, 59, 60, 62, 767, 807, 842, 905,
5358 : 953, 961, 968, 973, 980, 982, 984, 986, 995, 1020,
5359 : 23, 137, 138, 139, 140, 141, 142, 143, 144, 357,
5360 : 397, 411, 427, 429, 430, 431, 434, 458, 460, 473,
5361 : 872, 939, 948, 953, 955, 1018, 33, 141, 224, 453,
5362 : 544, 545, 546, 547, 548, 549, 550, 33, 709, 4,
5363 : 33, 552, 582, 104, 105, 763, 804, 839, 931, 935,
5364 : 939, 948, 953, 955, 1018, 1026, 170, 4, 6, 8,
5365 : 11, 13, 75, 103, 170, 259, 262, 263, 307, 309,
5366 : 311, 313, 318, 324, 333, 337, 339, 341, 343, 347,
5367 : 374, 551, 556, 566, 576, 581, 586, 596, 606, 611,
5368 : 616, 621, 626, 631, 636, 646, 656, 665, 667, 673,
5369 : 677, 684, 686, 690, 694, 698, 700, 704, 706, 708,
5370 : 710, 712, 714, 716, 722, 724, 727, 730, 736, 244,
5371 : 350, 314, 23, 153, 154, 155, 358, 398, 412, 427,
5372 : 429, 430, 431, 458, 475, 477, 479, 875, 939, 948,
5373 : 953, 955, 961, 986, 1018, 1026, 158, 159, 160, 161,
5374 : 162, 209, 360, 400, 414, 480, 481, 482, 483, 485,
5375 : 486, 38, 39, 394, 408, 424, 990, 994, 178, 395,
5376 : 409, 425, 496, 5, 6, 9, 587, 617, 8, 9,
5377 : 622, 319, 171, 171, 327, 23, 110, 176, 177, 179,
5378 : 196, 199, 364, 404, 418, 431, 434, 487, 500, 502,
5379 : 504, 509, 529, 895, 935, 948, 953, 955, 993, 393,
5380 : 407, 423, 434, 164, 213, 214, 244, 369, 372, 373,
5381 : 389, 390, 391, 163, 165, 219, 376, 378, 381, 382,
5382 : 388, 389, 390, 391, 392, 244, 349, 676, 779, 818,
5383 : 853, 869, 929, 937, 939, 944, 948, 953, 955, 961,
5384 : 968, 986, 988, 993, 995, 1010, 1018, 1020, 678, 780,
5385 : 819, 854, 869, 929, 937, 939, 944, 948, 953, 955,
5386 : 961, 968, 986, 988, 995, 1010, 1018, 1020, 781, 820,
5387 : 855, 869, 929, 937, 939, 944, 946, 948, 953, 955,
5388 : 961, 986, 995, 1018, 1020, 782, 821, 856, 869, 929,
5389 : 937, 939, 944, 948, 953, 955, 961, 1018, 1020, 783,
5390 : 822, 857, 869, 929, 937, 939, 944, 948, 953, 955,
5391 : 1018, 1020, 33, 713, 784, 823, 858, 869, 929, 937,
5392 : 939, 944, 948, 953, 955, 1018, 1020, 244, 930, 244,
5393 : 954, 956, 1019, 938, 1021, 244, 244, 243, 838, 768,
5394 : 808, 843, 905, 948, 953, 955, 961, 968, 973, 980,
5395 : 982, 984, 986, 988, 993, 995, 1010, 1020, 244, 244,
5396 : 1011, 987, 244, 989, 252, 840, 769, 809, 844, 905,
5397 : 948, 953, 955, 961, 968, 973, 980, 982, 984, 986,
5398 : 988, 995, 1010, 1020, 252, 841, 244, 300, 244, 244,
5399 : 63, 64, 65, 772, 811, 846, 968, 973, 982, 997,
5400 : 999, 1000, 244, 192, 197, 198, 244, 366, 406, 422,
5401 : 515, 525, 527, 33, 689, 33, 691, 774, 813, 848,
5402 : 905, 948, 953, 955, 961, 968, 973, 980, 982, 984,
5403 : 986, 995, 1007, 1020, 966, 244, 252, 847, 1027, 244,
5404 : 252, 863, 1002, 1004, 252, 865, 960, 252, 866, 23,
5405 : 252, 917, 244, 243, 426, 797, 834, 868, 229, 745,
5406 : 746, 244, 269, 243, 267, 229, 741, 742, 61, 71,
5407 : 798, 799, 835, 933, 1005, 244, 981, 983, 244, 985,
5408 : 252, 842, 244, 428, 244, 435, 459, 244, 474, 243,
5409 : 411, 454, 243, 548, 243, 547, 711, 427, 429, 430,
5410 : 431, 458, 475, 477, 479, 785, 824, 859, 875, 939,
5411 : 948, 953, 955, 961, 986, 1018, 1020, 5, 6, 557,
5412 : 553, 554, 555, 931, 935, 939, 948, 953, 955, 965,
5413 : 986, 1007, 1018, 1026, 583, 584, 585, 931, 935, 939,
5414 : 946, 948, 953, 955, 961, 986, 995, 1018, 1026, 932,
5415 : 936, 243, 839, 33, 666, 4, 723, 728, 731, 8,
5416 : 4, 103, 229, 351, 23, 359, 399, 413, 427, 429,
5417 : 430, 431, 458, 475, 477, 479, 901, 939, 948, 953,
5418 : 955, 961, 968, 973, 980, 982, 984, 986, 995, 1018,
5419 : 1020, 244, 476, 478, 243, 412, 244, 229, 243, 414,
5420 : 991, 497, 33, 592, 33, 597, 612, 23, 431, 434,
5421 : 487, 500, 504, 509, 529, 588, 589, 590, 881, 929,
5422 : 937, 939, 944, 948, 953, 955, 993, 1018, 1020, 23,
5423 : 431, 434, 487, 500, 504, 509, 529, 618, 619, 620,
5424 : 885, 948, 953, 955, 961, 968, 973, 980, 982, 984,
5425 : 986, 993, 995, 1020, 4, 33, 627, 637, 431, 434,
5426 : 487, 500, 504, 509, 529, 623, 624, 625, 895, 931,
5427 : 935, 939, 948, 953, 955, 993, 1018, 1026, 23, 168,
5428 : 169, 361, 401, 415, 487, 494, 498, 529, 878, 321,
5429 : 323, 23, 110, 193, 365, 405, 419, 420, 421, 434,
5430 : 491, 515, 520, 898, 993, 244, 244, 501, 503, 505,
5431 : 510, 530, 243, 418, 243, 423, 229, 370, 371, 244,
5432 : 383, 191, 216, 217, 218, 377, 380, 384, 385, 386,
5433 : 387, 243, 382, 243, 381, 229, 356, 23, 771, 810,
5434 : 845, 908, 929, 937, 939, 944, 948, 953, 955, 961,
5435 : 968, 973, 980, 982, 984, 986, 988, 995, 1010, 1018,
5436 : 1020, 252, 853, 771, 252, 854, 252, 855, 252, 856,
5437 : 252, 857, 715, 23, 427, 429, 430, 458, 475, 477,
5438 : 479, 787, 826, 861, 920, 929, 937, 939, 944, 948,
5439 : 953, 955, 961, 986, 993, 1018, 1020, 252, 858, 4,
5440 : 229, 870, 244, 26, 27, 28, 76, 940, 244, 244,
5441 : 244, 244, 244, 77, 78, 79, 945, 95, 96, 97,
5442 : 98, 99, 100, 101, 102, 229, 949, 952, 838, 252,
5443 : 843, 46, 229, 962, 967, 54, 55, 56, 229, 970,
5444 : 972, 244, 244, 225, 996, 244, 840, 252, 844, 841,
5445 : 229, 37, 302, 303, 304, 305, 74, 229, 756, 757,
5446 : 758, 759, 760, 89, 90, 238, 239, 240, 249, 250,
5447 : 251, 749, 750, 998, 252, 846, 229, 683, 244, 526,
5448 : 244, 229, 367, 368, 243, 422, 693, 775, 814, 849,
5449 : 869, 929, 937, 939, 944, 948, 953, 955, 961, 968,
5450 : 986, 988, 993, 995, 1007, 1010, 1018, 1020, 695, 776,
5451 : 815, 850, 869, 929, 937, 939, 944, 948, 953, 955,
5452 : 961, 968, 986, 988, 995, 1007, 1010, 1018, 1020, 252,
5453 : 848, 244, 49, 1008, 847, 244, 4, 18, 103, 947,
5454 : 863, 244, 244, 865, 244, 866, 244, 917, 89, 90,
5455 : 93, 94, 229, 238, 239, 240, 249, 250, 251, 542,
5456 : 543, 426, 243, 246, 942, 943, 244, 267, 243, 246,
5457 : 934, 244, 243, 835, 33, 229, 906, 244, 244, 229,
5458 : 975, 244, 842, 34, 229, 873, 244, 89, 90, 93,
5459 : 94, 229, 238, 239, 240, 249, 250, 251, 432, 433,
5460 : 244, 244, 145, 229, 461, 463, 244, 411, 244, 548,
5461 : 547, 427, 429, 430, 431, 458, 475, 477, 479, 786,
5462 : 825, 860, 901, 939, 948, 953, 955, 961, 968, 973,
5463 : 980, 982, 984, 986, 995, 1018, 1020, 252, 859, 33,
5464 : 562, 33, 567, 558, 559, 560, 905, 931, 935, 939,
5465 : 948, 953, 955, 961, 968, 973, 980, 982, 984, 986,
5466 : 995, 1007, 1018, 1020, 243, 555, 243, 585, 244, 244,
5467 : 839, 674, 766, 993, 792, 993, 70, 794, 832, 867,
5468 : 957, 993, 795, 993, 4, 8, 246, 244, 243, 413,
5469 : 152, 229, 876, 244, 244, 412, 163, 164, 165, 484,
5470 : 414, 244, 244, 602, 431, 434, 487, 500, 504, 509,
5471 : 529, 593, 594, 595, 881, 929, 937, 939, 944, 948,
5472 : 953, 955, 961, 968, 986, 988, 993, 995, 1007, 1010,
5473 : 1018, 1020, 607, 431, 434, 487, 500, 504, 509, 529,
5474 : 598, 599, 600, 881, 929, 937, 939, 944, 948, 953,
5475 : 955, 961, 968, 986, 988, 993, 995, 1007, 1010, 1018,
5476 : 1020, 431, 434, 487, 500, 504, 509, 529, 613, 614,
5477 : 615, 881, 929, 937, 939, 944, 946, 948, 953, 955,
5478 : 961, 986, 993, 995, 1018, 1020, 244, 243, 590, 244,
5479 : 243, 620, 5, 6, 632, 431, 434, 487, 500, 504,
5480 : 509, 529, 628, 629, 630, 895, 931, 935, 939, 948,
5481 : 953, 955, 965, 986, 993, 1007, 1018, 1026, 431, 434,
5482 : 487, 500, 504, 509, 529, 638, 639, 640, 895, 931,
5483 : 935, 939, 946, 948, 953, 955, 961, 986, 993, 995,
5484 : 1018, 1026, 243, 625, 244, 495, 499, 243, 415, 23,
5485 : 362, 402, 416, 434, 487, 529, 889, 993, 23, 363,
5486 : 403, 417, 434, 487, 529, 892, 993, 244, 244, 244,
5487 : 243, 419, 170, 229, 896, 174, 175, 229, 488, 490,
5488 : 244, 244, 244, 244, 244, 418, 423, 243, 246, 370,
5489 : 244, 243, 379, 381, 382, 377, 382, 377, 381, 246,
5490 : 244, 252, 845, 853, 854, 855, 856, 857, 23, 427,
5491 : 429, 430, 458, 475, 477, 479, 788, 827, 862, 924,
5492 : 929, 937, 939, 944, 948, 953, 955, 961, 968, 973,
5493 : 980, 982, 984, 986, 993, 995, 1018, 1020, 244, 252,
5494 : 861, 858, 245, 246, 229, 254, 246, 229, 255, 256,
5495 : 256, 256, 256, 80, 81, 82, 89, 90, 93, 94,
5496 : 229, 238, 239, 240, 249, 250, 251, 1022, 1023, 1024,
5497 : 1025, 246, 243, 246, 245, 843, 243, 246, 245, 243,
5498 : 245, 246, 244, 47, 48, 49, 50, 51, 52, 53,
5499 : 57, 1012, 1013, 1014, 1016, 1017, 254, 246, 254, 844,
5500 : 301, 306, 243, 304, 246, 245, 106, 246, 245, 244,
5501 : 846, 246, 194, 229, 516, 518, 244, 116, 117, 118,
5502 : 528, 243, 246, 422, 777, 816, 851, 908, 929, 937,
5503 : 939, 944, 948, 953, 955, 961, 968, 973, 980, 982,
5504 : 984, 986, 988, 993, 995, 1007, 1010, 1018, 1020, 252,
5505 : 849, 778, 817, 852, 908, 929, 937, 939, 944, 948,
5506 : 953, 955, 961, 968, 973, 980, 982, 984, 986, 988,
5507 : 995, 1007, 1010, 1018, 1020, 252, 850, 848, 256, 1009,
5508 : 246, 82, 1023, 1028, 1029, 246, 256, 256, 256, 14,
5509 : 229, 918, 245, 745, 246, 4, 7, 8, 103, 258,
5510 : 263, 298, 307, 661, 667, 669, 679, 684, 686, 688,
5511 : 692, 716, 718, 720, 724, 725, 732, 734, 736, 738,
5512 : 108, 109, 110, 111, 273, 274, 277, 741, 244, 95,
5513 : 96, 97, 98, 99, 100, 101, 102, 229, 1006, 835,
5514 : 245, 246, 256, 256, 243, 245, 246, 256, 245, 246,
5515 : 254, 245, 145, 146, 148, 149, 150, 151, 436, 437,
5516 : 438, 448, 254, 464, 243, 246, 245, 254, 221, 222,
5517 : 455, 456, 252, 860, 859, 572, 563, 564, 565, 869,
5518 : 929, 931, 935, 937, 939, 944, 948, 953, 955, 961,
5519 : 968, 986, 988, 993, 995, 1007, 1010, 1018, 1020, 577,
5520 : 568, 569, 570, 869, 929, 931, 935, 937, 939, 944,
5521 : 948, 953, 955, 961, 968, 986, 988, 993, 995, 1007,
5522 : 1010, 1018, 1020, 243, 560, 555, 585, 254, 254, 770,
5523 : 993, 958, 252, 867, 4, 141, 191, 223, 352, 353,
5524 : 354, 449, 33, 152, 229, 902, 413, 245, 246, 254,
5525 : 254, 246, 254, 256, 23, 431, 434, 487, 500, 504,
5526 : 509, 529, 603, 604, 605, 912, 929, 937, 939, 944,
5527 : 948, 953, 955, 961, 968, 973, 980, 982, 984, 986,
5528 : 988, 993, 995, 1010, 1018, 1020, 243, 595, 431, 434,
5529 : 487, 500, 504, 509, 529, 608, 609, 610, 912, 929,
5530 : 937, 939, 944, 948, 953, 955, 961, 968, 973, 980,
5531 : 982, 984, 986, 988, 993, 995, 1010, 1018, 1020, 243,
5532 : 600, 243, 615, 4, 170, 229, 882, 590, 33, 170,
5533 : 229, 886, 620, 33, 642, 33, 647, 431, 434, 487,
5534 : 500, 504, 509, 529, 633, 634, 635, 885, 931, 935,
5535 : 939, 948, 953, 955, 961, 968, 973, 980, 982, 984,
5536 : 986, 993, 995, 1007, 1018, 1020, 243, 630, 243, 640,
5537 : 625, 170, 229, 879, 244, 244, 415, 244, 243, 416,
5538 : 244, 243, 417, 170, 229, 899, 229, 492, 195, 229,
5539 : 521, 523, 419, 245, 246, 243, 246, 245, 256, 256,
5540 : 180, 181, 182, 183, 184, 185, 186, 506, 507, 95,
5541 : 96, 97, 98, 99, 100, 101, 102, 229, 511, 512,
5542 : 513, 514, 200, 201, 202, 203, 204, 205, 206, 207,
5543 : 208, 229, 531, 533, 536, 539, 540, 371, 246, 254,
5544 : 379, 243, 382, 243, 381, 243, 377, 243, 377, 243,
5545 : 382, 4, 33, 229, 909, 845, 244, 252, 862, 4,
5546 : 152, 229, 921, 861, 871, 246, 243, 246, 246, 246,
5547 : 246, 245, 243, 950, 951, 963, 964, 971, 229, 256,
5548 : 246, 245, 243, 243, 246, 246, 246, 244, 304, 529,
5549 : 801, 802, 837, 229, 759, 229, 761, 72, 800, 836,
5550 : 977, 229, 751, 752, 256, 772, 519, 243, 246, 245,
5551 : 256, 246, 367, 252, 851, 849, 252, 852, 850, 246,
5552 : 243, 245, 243, 246, 246, 246, 245, 246, 256, 33,
5553 : 4, 243, 245, 274, 275, 254, 246, 907, 246, 246,
5554 : 976, 229, 246, 874, 246, 256, 439, 245, 243, 246,
5555 : 244, 462, 256, 246, 457, 246, 860, 573, 574, 575,
5556 : 908, 929, 931, 935, 937, 939, 944, 948, 953, 955,
5557 : 961, 968, 973, 980, 982, 984, 986, 988, 993, 995,
5558 : 1007, 1010, 1018, 1020, 243, 565, 578, 579, 580, 908,
5559 : 929, 931, 935, 937, 939, 944, 948, 953, 955, 961,
5560 : 968, 973, 980, 982, 984, 986, 988, 993, 995, 1007,
5561 : 1010, 1018, 1020, 243, 570, 560, 246, 246, 244, 867,
5562 : 450, 244, 245, 245, 246, 877, 246, 246, 246, 246,
5563 : 244, 243, 605, 595, 243, 610, 600, 615, 245, 245,
5564 : 246, 245, 245, 246, 652, 431, 434, 487, 500, 504,
5565 : 509, 529, 643, 644, 645, 881, 929, 931, 935, 937,
5566 : 939, 944, 948, 953, 955, 961, 968, 986, 988, 993,
5567 : 995, 1007, 1010, 1018, 1020, 657, 431, 434, 487, 500,
5568 : 504, 509, 529, 648, 649, 650, 881, 929, 931, 935,
5569 : 937, 939, 944, 948, 953, 955, 961, 968, 986, 988,
5570 : 993, 995, 1007, 1010, 1018, 1020, 243, 635, 630, 640,
5571 : 171, 246, 256, 256, 170, 229, 890, 416, 170, 229,
5572 : 893, 417, 191, 246, 243, 246, 524, 243, 246, 245,
5573 : 897, 489, 256, 246, 246, 246, 245, 246, 243, 244,
5574 : 244, 244, 243, 246, 245, 200, 201, 243, 534, 537,
5575 : 539, 540, 246, 382, 381, 377, 377, 382, 245, 245,
5576 : 246, 4, 33, 152, 229, 925, 862, 245, 245, 246,
5577 : 254, 255, 256, 1023, 256, 256, 256, 256, 256, 969,
5578 : 246, 1013, 47, 48, 57, 1015, 229, 273, 243, 837,
5579 : 244, 243, 245, 246, 244, 517, 256, 246, 851, 852,
5580 : 229, 256, 1023, 919, 246, 274, 270, 234, 246, 254,
5581 : 256, 974, 254, 246, 244, 256, 437, 229, 465, 466,
5582 : 256, 245, 243, 575, 565, 243, 580, 570, 256, 244,
5583 : 146, 148, 149, 150, 151, 221, 222, 355, 904, 903,
5584 : 254, 4, 33, 170, 229, 913, 605, 610, 884, 883,
5585 : 888, 887, 431, 434, 487, 500, 504, 509, 529, 653,
5586 : 654, 655, 912, 929, 931, 935, 937, 939, 944, 948,
5587 : 953, 955, 961, 968, 973, 980, 982, 984, 986, 988,
5588 : 993, 995, 1007, 1010, 1018, 1020, 243, 645, 431, 434,
5589 : 487, 500, 504, 509, 529, 658, 659, 660, 912, 929,
5590 : 931, 935, 937, 939, 944, 948, 953, 955, 961, 968,
5591 : 973, 980, 982, 984, 986, 988, 993, 995, 1007, 1010,
5592 : 1018, 1020, 243, 650, 635, 245, 246, 246, 172, 246,
5593 : 173, 246, 245, 493, 244, 522, 256, 254, 256, 187,
5594 : 188, 189, 190, 508, 511, 229, 229, 229, 532, 256,
5595 : 534, 539, 200, 201, 243, 535, 538, 539, 540, 911,
5596 : 910, 245, 245, 245, 246, 922, 923, 246, 246, 246,
5597 : 837, 73, 978, 751, 229, 753, 229, 256, 246, 254,
5598 : 258, 272, 247, 246, 229, 440, 441, 246, 229, 468,
5599 : 243, 246, 256, 575, 580, 246, 148, 149, 150, 151,
5600 : 451, 452, 246, 254, 254, 245, 245, 245, 246, 254,
5601 : 254, 254, 254, 243, 655, 645, 243, 660, 650, 880,
5602 : 171, 171, 900, 256, 229, 256, 246, 246, 246, 256,
5603 : 535, 539, 243, 539, 254, 254, 926, 928, 927, 254,
5604 : 254, 234, 246, 246, 271, 4, 112, 114, 115, 122,
5605 : 123, 124, 229, 278, 279, 280, 282, 283, 285, 287,
5606 : 289, 292, 293, 229, 443, 243, 246, 467, 234, 466,
5607 : 246, 245, 915, 914, 916, 655, 660, 254, 245, 245,
5608 : 254, 246, 539, 254, 254, 254, 229, 979, 246, 244,
5609 : 244, 244, 244, 244, 244, 244, 244, 243, 276, 279,
5610 : 442, 234, 441, 234, 229, 469, 254, 254, 254, 254,
5611 : 891, 894, 294, 113, 296, 296, 296, 296, 296, 296,
5612 : 296, 279, 248, 234, 229, 444, 469, 470, 254, 254,
5613 : 295, 296, 244, 229, 125, 126, 127, 128, 129, 130,
5614 : 131, 132, 133, 134, 135, 136, 291, 116, 117, 118,
5615 : 119, 120, 121, 284, 229, 229, 229, 246, 444, 445,
5616 : 245, 246, 762, 229, 281, 246, 246, 286, 288, 290,
5617 : 245, 229, 297, 246, 246, 246, 246, 229, 471, 246,
5618 : 446, 245, 472, 245, 245, 447, 229, 229
5619 : };
5620 :
5621 : /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
5622 : static const yytype_int16 yyr1[] =
5623 : {
5624 : 0, 253, 254, 255, 256, 256, 257, 257, 257, 257,
5625 : 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
5626 : 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
5627 : 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
5628 : 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
5629 : 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
5630 : 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
5631 : 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
5632 : 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
5633 : 257, 257, 257, 258, 258, 258, 258, 258, 258, 258,
5634 : 258, 258, 258, 258, 258, 258, 258, 258, 258, 258,
5635 : 258, 258, 258, 259, 259, 259, 259, 259, 259, 259,
5636 : 259, 259, 259, 259, 259, 259, 259, 259, 259, 259,
5637 : 259, 259, 259, 259, 259, 259, 259, 259, 259, 259,
5638 : 259, 259, 259, 259, 259, 259, 259, 259, 259, 259,
5639 : 259, 259, 259, 259, 259, 259, 259, 259, 259, 259,
5640 : 259, 259, 259, 259, 259, 261, 260, 262, 264, 263,
5641 : 265, 265, 266, 266, 266, 267, 267, 269, 270, 271,
5642 : 268, 272, 272, 273, 273, 273, 275, 276, 274, 277,
5643 : 277, 277, 277, 278, 278, 278, 279, 279, 279, 279,
5644 : 281, 280, 282, 282, 282, 283, 284, 284, 284, 284,
5645 : 284, 284, 286, 285, 288, 287, 289, 290, 289, 289,
5646 : 289, 291, 291, 291, 291, 291, 291, 291, 291, 291,
5647 : 291, 291, 291, 292, 293, 294, 293, 295, 296, 297,
5648 : 296, 299, 298, 301, 300, 302, 302, 303, 303, 303,
5649 : 304, 306, 305, 308, 307, 310, 309, 312, 311, 314,
5650 : 313, 315, 317, 316, 319, 318, 321, 320, 323, 322,
5651 : 325, 324, 327, 326, 329, 328, 331, 330, 332, 333,
5652 : 334, 336, 335, 338, 337, 340, 339, 342, 341, 344,
5653 : 343, 346, 345, 348, 347, 349, 349, 349, 349, 350,
5654 : 351, 352, 352, 352, 353, 354, 355, 355, 355, 355,
5655 : 355, 355, 355, 356, 357, 357, 358, 358, 359, 359,
5656 : 360, 361, 362, 362, 363, 363, 364, 364, 365, 366,
5657 : 366, 366, 367, 368, 368, 369, 369, 369, 370, 370,
5658 : 371, 372, 372, 373, 373, 373, 375, 374, 376, 376,
5659 : 376, 376, 376, 376, 376, 376, 377, 377, 378, 378,
5660 : 378, 378, 378, 379, 379, 379, 379, 379, 379, 379,
5661 : 380, 380, 380, 380, 381, 381, 381, 381, 381, 383,
5662 : 382, 384, 385, 386, 387, 388, 389, 390, 391, 392,
5663 : 393, 393, 394, 394, 395, 396, 396, 397, 397, 397,
5664 : 398, 398, 398, 399, 399, 399, 400, 400, 400, 401,
5665 : 401, 401, 402, 402, 402, 403, 403, 403, 404, 404,
5666 : 404, 405, 405, 405, 406, 406, 406, 407, 407, 407,
5667 : 408, 409, 410, 410, 410, 411, 411, 411, 411, 411,
5668 : 411, 411, 411, 411, 411, 411, 411, 411, 411, 412,
5669 : 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
5670 : 412, 412, 412, 412, 412, 412, 413, 413, 413, 413,
5671 : 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
5672 : 413, 413, 413, 413, 413, 413, 413, 413, 413, 414,
5673 : 414, 414, 414, 414, 414, 415, 415, 415, 415, 415,
5674 : 416, 416, 416, 416, 416, 417, 417, 417, 417, 417,
5675 : 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
5676 : 418, 418, 418, 418, 419, 419, 420, 420, 421, 421,
5677 : 421, 421, 422, 422, 422, 423, 424, 424, 425, 426,
5678 : 426, 428, 427, 429, 430, 431, 432, 432, 433, 433,
5679 : 433, 433, 433, 433, 433, 433, 433, 433, 435, 434,
5680 : 436, 436, 437, 439, 438, 440, 440, 442, 441, 443,
5681 : 441, 445, 446, 444, 447, 447, 448, 448, 448, 448,
5682 : 448, 450, 449, 451, 452, 452, 452, 452, 454, 453,
5683 : 455, 456, 457, 456, 459, 458, 460, 461, 462, 461,
5684 : 461, 464, 463, 465, 465, 467, 466, 468, 466, 470,
5685 : 471, 469, 472, 472, 474, 473, 476, 475, 478, 477,
5686 : 479, 480, 481, 482, 483, 484, 484, 484, 485, 486,
5687 : 487, 488, 489, 488, 488, 490, 490, 491, 492, 493,
5688 : 492, 495, 494, 497, 496, 499, 498, 501, 500, 503,
5689 : 502, 505, 504, 506, 506, 507, 507, 507, 507, 507,
5690 : 507, 507, 508, 508, 508, 508, 510, 509, 511, 511,
5691 : 512, 512, 512, 512, 513, 513, 513, 513, 513, 513,
5692 : 513, 513, 514, 515, 516, 517, 516, 516, 519, 518,
5693 : 520, 521, 522, 521, 521, 524, 523, 526, 525, 527,
5694 : 528, 528, 528, 530, 529, 531, 532, 531, 531, 533,
5695 : 533, 533, 533, 533, 534, 534, 534, 534, 535, 535,
5696 : 536, 536, 536, 537, 537, 537, 538, 538, 538, 539,
5697 : 539, 539, 539, 539, 539, 540, 541, 542, 542, 543,
5698 : 543, 543, 543, 543, 543, 543, 543, 543, 543, 544,
5699 : 544, 544, 545, 545, 545, 546, 546, 546, 547, 548,
5700 : 548, 549, 550, 552, 551, 553, 553, 554, 554, 554,
5701 : 555, 555, 555, 555, 555, 555, 555, 555, 555, 555,
5702 : 555, 557, 556, 558, 558, 559, 559, 559, 560, 560,
5703 : 560, 560, 560, 560, 560, 560, 560, 560, 560, 560,
5704 : 560, 560, 560, 560, 560, 560, 562, 561, 563, 563,
5705 : 564, 564, 564, 565, 565, 565, 565, 565, 565, 565,
5706 : 565, 565, 565, 565, 565, 565, 565, 565, 565, 565,
5707 : 565, 565, 565, 567, 566, 568, 568, 569, 569, 569,
5708 : 570, 570, 570, 570, 570, 570, 570, 570, 570, 570,
5709 : 570, 570, 570, 570, 570, 570, 570, 570, 570, 570,
5710 : 572, 571, 573, 573, 574, 574, 574, 575, 575, 575,
5711 : 575, 575, 575, 575, 575, 575, 575, 575, 575, 575,
5712 : 575, 575, 575, 575, 575, 575, 575, 575, 575, 575,
5713 : 575, 577, 576, 578, 578, 579, 579, 579, 580, 580,
5714 : 580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
5715 : 580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
5716 : 580, 580, 582, 581, 583, 583, 584, 584, 584, 585,
5717 : 585, 585, 585, 585, 585, 585, 585, 585, 585, 585,
5718 : 585, 587, 586, 588, 588, 589, 589, 589, 590, 590,
5719 : 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
5720 : 590, 590, 590, 590, 590, 590, 592, 591, 593, 593,
5721 : 594, 594, 594, 595, 595, 595, 595, 595, 595, 595,
5722 : 595, 595, 595, 595, 595, 595, 595, 595, 595, 595,
5723 : 595, 595, 595, 595, 595, 595, 595, 595, 597, 596,
5724 : 598, 598, 599, 599, 599, 600, 600, 600, 600, 600,
5725 : 600, 600, 600, 600, 600, 600, 600, 600, 600, 600,
5726 : 600, 600, 600, 600, 600, 600, 600, 600, 600, 600,
5727 : 602, 601, 603, 603, 604, 604, 604, 605, 605, 605,
5728 : 605, 605, 605, 605, 605, 605, 605, 605, 605, 605,
5729 : 605, 605, 605, 605, 605, 605, 605, 605, 605, 605,
5730 : 605, 605, 605, 605, 605, 607, 606, 608, 608, 609,
5731 : 609, 609, 610, 610, 610, 610, 610, 610, 610, 610,
5732 : 610, 610, 610, 610, 610, 610, 610, 610, 610, 610,
5733 : 610, 610, 610, 610, 610, 610, 610, 610, 610, 610,
5734 : 612, 611, 613, 613, 614, 614, 614, 615, 615, 615,
5735 : 615, 615, 615, 615, 615, 615, 615, 615, 615, 615,
5736 : 615, 615, 615, 615, 615, 615, 615, 615, 615, 617,
5737 : 616, 618, 618, 619, 619, 619, 620, 620, 620, 620,
5738 : 620, 620, 620, 620, 620, 620, 620, 620, 620, 620,
5739 : 620, 620, 620, 620, 620, 620, 620, 622, 621, 623,
5740 : 623, 624, 624, 624, 625, 625, 625, 625, 625, 625,
5741 : 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
5742 : 625, 627, 626, 628, 628, 629, 629, 629, 630, 630,
5743 : 630, 630, 630, 630, 630, 630, 630, 630, 630, 630,
5744 : 630, 630, 630, 630, 630, 630, 630, 630, 632, 631,
5745 : 633, 633, 634, 634, 634, 635, 635, 635, 635, 635,
5746 : 635, 635, 635, 635, 635, 635, 635, 635, 635, 635,
5747 : 635, 635, 635, 635, 635, 635, 635, 635, 635, 635,
5748 : 635, 637, 636, 638, 638, 639, 639, 639, 640, 640,
5749 : 640, 640, 640, 640, 640, 640, 640, 640, 640, 640,
5750 : 640, 640, 640, 640, 640, 640, 640, 640, 640, 642,
5751 : 641, 643, 643, 644, 644, 644, 645, 645, 645, 645,
5752 : 645, 645, 645, 645, 645, 645, 645, 645, 645, 645,
5753 : 645, 645, 645, 645, 645, 645, 645, 645, 645, 645,
5754 : 645, 645, 645, 647, 646, 648, 648, 649, 649, 649,
5755 : 650, 650, 650, 650, 650, 650, 650, 650, 650, 650,
5756 : 650, 650, 650, 650, 650, 650, 650, 650, 650, 650,
5757 : 650, 650, 650, 650, 650, 650, 650, 652, 651, 653,
5758 : 653, 654, 654, 654, 655, 655, 655, 655, 655, 655,
5759 : 655, 655, 655, 655, 655, 655, 655, 655, 655, 655,
5760 : 655, 655, 655, 655, 655, 655, 655, 655, 655, 655,
5761 : 655, 655, 655, 655, 655, 657, 656, 658, 658, 659,
5762 : 659, 659, 660, 660, 660, 660, 660, 660, 660, 660,
5763 : 660, 660, 660, 660, 660, 660, 660, 660, 660, 660,
5764 : 660, 660, 660, 660, 660, 660, 660, 660, 660, 660,
5765 : 660, 660, 660, 662, 661, 664, 663, 666, 665, 668,
5766 : 667, 670, 669, 672, 671, 674, 673, 676, 675, 678,
5767 : 677, 680, 679, 682, 681, 683, 683, 685, 684, 687,
5768 : 686, 689, 688, 691, 690, 693, 692, 695, 694, 697,
5769 : 696, 699, 698, 701, 700, 703, 702, 705, 704, 707,
5770 : 706, 709, 708, 711, 710, 713, 712, 715, 714, 717,
5771 : 716, 719, 718, 721, 720, 723, 722, 724, 726, 725,
5772 : 728, 727, 729, 731, 730, 733, 732, 735, 734, 737,
5773 : 736, 739, 738, 740, 741, 742, 742, 744, 743, 745,
5774 : 746, 746, 748, 747, 749, 750, 750, 750, 750, 750,
5775 : 750, 750, 750, 751, 752, 752, 753, 755, 754, 756,
5776 : 757, 757, 758, 758, 759, 759, 760, 761, 762, 762,
5777 : 763, 763, 764, 764, 765, 765, 766, 766, 767, 767,
5778 : 768, 768, 769, 769, 770, 770, 771, 771, 772, 772,
5779 : 773, 773, 774, 774, 775, 775, 776, 776, 777, 777,
5780 : 778, 778, 779, 779, 780, 780, 781, 781, 782, 782,
5781 : 783, 783, 784, 784, 785, 785, 786, 786, 787, 787,
5782 : 788, 788, 789, 789, 790, 791, 791, 792, 792, 793,
5783 : 793, 794, 794, 795, 795, 796, 796, 797, 797, 798,
5784 : 798, 799, 799, 799, 800, 800, 801, 801, 802, 802,
5785 : 802, 803, 803, 803, 804, 804, 804, 805, 805, 805,
5786 : 806, 806, 806, 807, 807, 807, 808, 808, 808, 809,
5787 : 809, 809, 810, 810, 810, 811, 811, 811, 812, 812,
5788 : 812, 813, 813, 813, 814, 814, 814, 815, 815, 815,
5789 : 816, 816, 816, 817, 817, 817, 818, 818, 818, 819,
5790 : 819, 819, 820, 820, 820, 821, 821, 821, 822, 822,
5791 : 822, 823, 823, 823, 824, 824, 824, 825, 825, 825,
5792 : 826, 826, 826, 827, 827, 827, 828, 828, 828, 829,
5793 : 830, 830, 830, 831, 831, 831, 832, 832, 832, 833,
5794 : 833, 833, 834, 835, 835, 836, 837, 838, 838, 838,
5795 : 838, 838, 838, 838, 838, 838, 838, 839, 839, 839,
5796 : 839, 839, 839, 839, 839, 840, 840, 840, 840, 840,
5797 : 840, 840, 840, 840, 840, 840, 841, 841, 841, 841,
5798 : 841, 841, 841, 841, 841, 841, 842, 842, 842, 842,
5799 : 842, 842, 842, 842, 842, 842, 842, 843, 843, 843,
5800 : 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
5801 : 843, 843, 843, 844, 844, 844, 844, 844, 844, 844,
5802 : 844, 844, 844, 844, 844, 844, 844, 844, 845, 845,
5803 : 845, 845, 845, 845, 845, 845, 845, 845, 845, 845,
5804 : 845, 845, 845, 845, 845, 845, 845, 845, 846, 846,
5805 : 846, 846, 846, 846, 847, 847, 847, 847, 847, 847,
5806 : 848, 848, 848, 848, 848, 848, 848, 848, 848, 848,
5807 : 848, 848, 848, 848, 849, 849, 849, 849, 849, 849,
5808 : 849, 849, 849, 849, 849, 849, 849, 849, 849, 849,
5809 : 849, 849, 850, 850, 850, 850, 850, 850, 850, 850,
5810 : 850, 850, 850, 850, 850, 850, 850, 850, 850, 851,
5811 : 851, 851, 851, 851, 851, 851, 851, 851, 851, 851,
5812 : 851, 851, 851, 851, 851, 851, 851, 851, 851, 851,
5813 : 851, 852, 852, 852, 852, 852, 852, 852, 852, 852,
5814 : 852, 852, 852, 852, 852, 852, 852, 852, 852, 852,
5815 : 852, 852, 853, 853, 853, 853, 853, 853, 853, 853,
5816 : 853, 853, 853, 853, 853, 853, 853, 853, 853, 854,
5817 : 854, 854, 854, 854, 854, 854, 854, 854, 854, 854,
5818 : 854, 854, 854, 854, 854, 855, 855, 855, 855, 855,
5819 : 855, 855, 855, 855, 855, 855, 855, 855, 855, 856,
5820 : 856, 856, 856, 856, 856, 856, 856, 856, 856, 856,
5821 : 857, 857, 857, 857, 857, 857, 857, 857, 857, 857,
5822 : 858, 858, 858, 858, 858, 858, 858, 858, 858, 858,
5823 : 859, 859, 859, 859, 859, 859, 859, 859, 859, 859,
5824 : 859, 859, 859, 859, 859, 859, 859, 860, 860, 860,
5825 : 860, 860, 860, 860, 860, 860, 860, 860, 860, 860,
5826 : 860, 860, 860, 860, 860, 860, 860, 860, 860, 860,
5827 : 861, 861, 861, 861, 861, 861, 861, 861, 861, 861,
5828 : 861, 861, 861, 861, 861, 861, 861, 861, 861, 861,
5829 : 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
5830 : 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
5831 : 862, 862, 862, 862, 862, 862, 863, 863, 863, 863,
5832 : 863, 863, 864, 864, 865, 865, 865, 865, 865, 865,
5833 : 866, 866, 866, 866, 866, 867, 867, 868, 868, 868,
5834 : 868, 868, 869, 871, 870, 870, 872, 874, 873, 873,
5835 : 875, 877, 876, 876, 878, 880, 879, 879, 881, 883,
5836 : 882, 884, 882, 882, 885, 887, 886, 888, 886, 886,
5837 : 889, 891, 890, 890, 892, 894, 893, 893, 895, 897,
5838 : 896, 896, 898, 900, 899, 899, 901, 903, 902, 904,
5839 : 902, 902, 905, 907, 906, 906, 908, 910, 909, 911,
5840 : 909, 909, 912, 914, 913, 915, 913, 916, 913, 913,
5841 : 917, 919, 918, 918, 920, 922, 921, 923, 921, 921,
5842 : 924, 926, 925, 927, 925, 928, 925, 925, 930, 929,
5843 : 932, 931, 934, 933, 936, 935, 938, 937, 939, 940,
5844 : 940, 940, 940, 941, 943, 942, 944, 945, 945, 945,
5845 : 946, 947, 947, 947, 948, 949, 950, 949, 951, 949,
5846 : 952, 952, 952, 952, 952, 952, 952, 952, 952, 954,
5847 : 953, 956, 955, 958, 957, 960, 959, 961, 962, 963,
5848 : 962, 964, 962, 966, 965, 967, 968, 969, 968, 970,
5849 : 971, 970, 970, 972, 972, 972, 973, 974, 973, 975,
5850 : 976, 975, 977, 978, 979, 981, 980, 983, 982, 985,
5851 : 984, 987, 986, 989, 988, 988, 991, 990, 990, 992,
5852 : 993, 994, 995, 996, 998, 997, 999, 1000, 1002, 1001,
5853 : 1004, 1003, 1005, 1006, 1006, 1006, 1006, 1006, 1006, 1006,
5854 : 1006, 1006, 1007, 1008, 1009, 1008, 1011, 1010, 1012, 1012,
5855 : 1013, 1013, 1014, 1014, 1015, 1015, 1015, 1016, 1016, 1016,
5856 : 1017, 1017, 1017, 1017, 1017, 1019, 1018, 1021, 1020, 1022,
5857 : 1022, 1023, 1023, 1024, 1024, 1024, 1025, 1025, 1025, 1025,
5858 : 1025, 1025, 1025, 1025, 1025, 1025, 1027, 1026, 1028, 1028,
5859 : 1029
5860 : };
5861 :
5862 : /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
5863 : static const yytype_int8 yyr2[] =
5864 : {
5865 : 0, 2, 1, 1, 1, 3, 1, 1, 1, 1,
5866 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5867 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5868 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5869 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5870 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5871 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5872 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5873 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5874 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5875 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5876 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5877 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5878 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5879 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5880 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5881 : 1, 1, 1, 1, 1, 0, 3, 1, 0, 3,
5882 : 0, 1, 1, 2, 3, 1, 1, 0, 0, 0,
5883 : 9, 1, 0, 1, 2, 3, 0, 0, 7, 1,
5884 : 1, 1, 1, 1, 2, 3, 1, 1, 1, 1,
5885 : 0, 6, 1, 1, 1, 5, 1, 1, 1, 1,
5886 : 1, 1, 0, 6, 0, 6, 5, 0, 6, 1,
5887 : 4, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5888 : 1, 1, 1, 1, 1, 0, 5, 2, 0, 0,
5889 : 6, 0, 5, 0, 4, 0, 1, 1, 2, 3,
5890 : 1, 0, 5, 0, 3, 0, 3, 0, 3, 0,
5891 : 4, 1, 0, 3, 0, 4, 0, 5, 0, 5,
5892 : 0, 3, 0, 4, 0, 4, 0, 3, 3, 1,
5893 : 1, 0, 3, 0, 3, 0, 3, 0, 3, 0,
5894 : 3, 0, 3, 0, 3, 0, 3, 4, 5, 4,
5895 : 1, 1, 1, 1, 1, 4, 1, 1, 1, 1,
5896 : 1, 1, 1, 1, 0, 1, 0, 1, 0, 1,
5897 : 1, 1, 0, 1, 0, 1, 0, 1, 1, 0,
5898 : 3, 1, 1, 1, 3, 0, 3, 1, 1, 3,
5899 : 1, 1, 4, 1, 1, 1, 0, 3, 1, 2,
5900 : 5, 5, 3, 4, 4, 3, 2, 3, 0, 2,
5901 : 2, 1, 1, 0, 2, 2, 3, 3, 1, 1,
5902 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
5903 : 5, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5904 : 0, 1, 0, 1, 1, 0, 1, 1, 2, 3,
5905 : 1, 2, 3, 1, 2, 3, 1, 2, 3, 1,
5906 : 2, 3, 1, 2, 3, 1, 2, 3, 1, 2,
5907 : 3, 1, 2, 3, 1, 2, 3, 1, 2, 3,
5908 : 1, 1, 1, 2, 3, 1, 1, 1, 1, 1,
5909 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5910 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5911 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5912 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5913 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5914 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5915 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5916 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5917 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5918 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5919 : 1, 0, 5, 1, 1, 6, 1, 1, 1, 1,
5920 : 1, 1, 1, 1, 1, 1, 1, 1, 0, 7,
5921 : 1, 3, 1, 0, 5, 1, 3, 0, 5, 0,
5922 : 4, 0, 0, 6, 0, 2, 1, 1, 1, 1,
5923 : 1, 0, 5, 3, 1, 1, 1, 1, 0, 5,
5924 : 1, 1, 0, 4, 0, 5, 4, 1, 0, 4,
5925 : 3, 0, 5, 1, 3, 0, 5, 0, 4, 0,
5926 : 0, 6, 0, 2, 0, 5, 0, 5, 0, 5,
5927 : 1, 1, 1, 1, 4, 1, 1, 1, 1, 2,
5928 : 4, 1, 0, 4, 3, 1, 1, 4, 1, 0,
5929 : 4, 0, 5, 0, 5, 0, 5, 0, 5, 0,
5930 : 5, 0, 5, 1, 3, 1, 1, 1, 1, 1,
5931 : 1, 1, 1, 1, 1, 1, 0, 5, 1, 3,
5932 : 1, 4, 1, 4, 1, 1, 1, 1, 1, 1,
5933 : 1, 1, 1, 4, 1, 0, 4, 3, 0, 5,
5934 : 4, 1, 0, 4, 3, 0, 5, 0, 5, 4,
5935 : 1, 1, 1, 0, 5, 1, 0, 4, 3, 1,
5936 : 2, 3, 3, 2, 2, 3, 2, 3, 2, 3,
5937 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5938 : 1, 1, 1, 1, 1, 4, 6, 1, 1, 1,
5939 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
5940 : 1, 1, 1, 2, 3, 1, 2, 3, 1, 1,
5941 : 1, 1, 1, 0, 4, 0, 1, 1, 2, 3,
5942 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5943 : 1, 0, 5, 0, 1, 1, 2, 3, 1, 1,
5944 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5945 : 1, 1, 1, 1, 1, 1, 0, 6, 0, 1,
5946 : 1, 2, 3, 1, 1, 1, 1, 1, 1, 1,
5947 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5948 : 1, 1, 1, 0, 6, 0, 1, 1, 2, 3,
5949 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5950 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5951 : 0, 7, 0, 1, 1, 2, 3, 1, 1, 1,
5952 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5953 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5954 : 1, 0, 7, 0, 1, 1, 2, 3, 1, 1,
5955 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5956 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5957 : 1, 1, 0, 4, 0, 1, 1, 2, 3, 1,
5958 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5959 : 1, 0, 4, 0, 1, 1, 2, 3, 1, 1,
5960 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5961 : 1, 1, 1, 1, 1, 1, 0, 5, 0, 1,
5962 : 1, 2, 3, 1, 1, 1, 1, 1, 1, 1,
5963 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5964 : 1, 1, 1, 1, 1, 1, 1, 1, 0, 5,
5965 : 0, 1, 1, 2, 3, 1, 1, 1, 1, 1,
5966 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5967 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5968 : 0, 6, 0, 1, 1, 2, 3, 1, 1, 1,
5969 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5970 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5971 : 1, 1, 1, 1, 1, 0, 6, 0, 1, 1,
5972 : 2, 3, 1, 1, 1, 1, 1, 1, 1, 1,
5973 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5974 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5975 : 0, 5, 0, 1, 1, 2, 3, 1, 1, 1,
5976 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5977 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
5978 : 4, 0, 1, 1, 2, 3, 1, 1, 1, 1,
5979 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5980 : 1, 1, 1, 1, 1, 1, 1, 0, 4, 0,
5981 : 1, 1, 2, 3, 1, 1, 1, 1, 1, 1,
5982 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5983 : 1, 0, 5, 0, 1, 1, 2, 3, 1, 1,
5984 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5985 : 1, 1, 1, 1, 1, 1, 1, 1, 0, 6,
5986 : 0, 1, 1, 2, 3, 1, 1, 1, 1, 1,
5987 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5988 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5989 : 1, 0, 5, 0, 1, 1, 2, 3, 1, 1,
5990 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5991 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
5992 : 7, 0, 1, 1, 2, 3, 1, 1, 1, 1,
5993 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5994 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5995 : 1, 1, 1, 0, 7, 0, 1, 1, 2, 3,
5996 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5997 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5998 : 1, 1, 1, 1, 1, 1, 1, 0, 8, 0,
5999 : 1, 1, 2, 3, 1, 1, 1, 1, 1, 1,
6000 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6001 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6002 : 1, 1, 1, 1, 1, 0, 8, 0, 1, 1,
6003 : 2, 3, 1, 1, 1, 1, 1, 1, 1, 1,
6004 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6005 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6006 : 1, 1, 1, 0, 3, 0, 3, 0, 3, 0,
6007 : 3, 0, 4, 0, 4, 0, 4, 0, 5, 0,
6008 : 5, 0, 4, 0, 7, 0, 1, 0, 3, 0,
6009 : 4, 0, 5, 0, 5, 0, 6, 0, 6, 0,
6010 : 4, 0, 4, 0, 4, 0, 4, 0, 4, 0,
6011 : 4, 0, 4, 0, 5, 0, 5, 0, 6, 0,
6012 : 3, 0, 3, 0, 3, 0, 3, 1, 0, 3,
6013 : 0, 3, 1, 0, 3, 0, 3, 0, 4, 0,
6014 : 3, 0, 4, 3, 1, 1, 3, 0, 5, 1,
6015 : 1, 3, 0, 7, 5, 1, 1, 1, 1, 1,
6016 : 1, 1, 1, 1, 1, 3, 1, 0, 7, 1,
6017 : 1, 3, 1, 1, 1, 3, 1, 1, 0, 1,
6018 : 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
6019 : 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
6020 : 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
6021 : 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
6022 : 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
6023 : 0, 1, 0, 1, 1, 0, 1, 0, 1, 0,
6024 : 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
6025 : 1, 1, 2, 3, 0, 1, 0, 1, 1, 2,
6026 : 3, 1, 2, 3, 1, 2, 3, 1, 2, 3,
6027 : 1, 2, 3, 1, 2, 3, 1, 2, 3, 1,
6028 : 2, 3, 1, 2, 3, 1, 2, 3, 1, 2,
6029 : 3, 1, 2, 3, 1, 2, 3, 1, 2, 3,
6030 : 1, 2, 3, 1, 2, 3, 1, 2, 3, 1,
6031 : 2, 3, 1, 2, 3, 1, 2, 3, 1, 2,
6032 : 3, 1, 2, 3, 1, 2, 3, 1, 2, 3,
6033 : 1, 2, 3, 1, 2, 3, 1, 2, 3, 1,
6034 : 1, 2, 3, 1, 2, 3, 1, 2, 3, 1,
6035 : 2, 3, 1, 1, 1, 1, 1, 1, 1, 1,
6036 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6037 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6038 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6039 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6040 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6041 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6042 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6043 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6044 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6045 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6046 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6047 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6048 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6049 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6050 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6051 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6052 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6053 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6054 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6055 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6056 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6057 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6058 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6059 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6060 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6061 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6062 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6063 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6064 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6065 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6066 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6067 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6068 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6069 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6070 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6071 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6072 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6073 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6074 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6075 : 1, 1, 4, 0, 4, 1, 4, 0, 4, 1,
6076 : 4, 0, 4, 1, 4, 0, 5, 1, 4, 0,
6077 : 4, 0, 4, 1, 4, 0, 4, 0, 4, 1,
6078 : 4, 0, 6, 1, 4, 0, 6, 1, 4, 0,
6079 : 4, 1, 4, 0, 5, 1, 4, 0, 4, 0,
6080 : 4, 1, 4, 0, 4, 1, 4, 0, 4, 0,
6081 : 4, 1, 4, 0, 4, 0, 4, 0, 4, 1,
6082 : 4, 0, 4, 1, 4, 0, 4, 0, 4, 1,
6083 : 4, 0, 4, 0, 4, 0, 4, 1, 0, 5,
6084 : 0, 5, 0, 5, 0, 5, 0, 5, 4, 1,
6085 : 1, 1, 1, 4, 0, 2, 4, 1, 1, 1,
6086 : 4, 1, 1, 1, 4, 1, 0, 4, 0, 4,
6087 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
6088 : 5, 0, 5, 0, 5, 0, 5, 4, 1, 0,
6089 : 4, 0, 4, 0, 5, 1, 4, 0, 7, 1,
6090 : 0, 4, 4, 1, 1, 1, 4, 0, 7, 1,
6091 : 0, 4, 4, 3, 1, 0, 5, 0, 5, 0,
6092 : 5, 0, 5, 0, 5, 1, 0, 5, 1, 1,
6093 : 1, 1, 4, 1, 0, 5, 1, 1, 0, 5,
6094 : 0, 5, 4, 1, 1, 1, 1, 1, 1, 1,
6095 : 1, 1, 4, 1, 0, 4, 0, 5, 1, 3,
6096 : 1, 3, 3, 1, 1, 1, 1, 1, 1, 1,
6097 : 1, 1, 1, 1, 1, 0, 5, 0, 7, 1,
6098 : 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6099 : 1, 1, 1, 1, 1, 1, 0, 7, 1, 3,
6100 : 1
6101 : };
6102 :
6103 :
6104 : #define yyerrok (yyerrstatus = 0)
6105 : #define yyclearin (yychar = YYEMPTY)
6106 : #define YYEMPTY (-2)
6107 : #define YYEOF 0
6108 :
6109 : #define YYACCEPT goto yyacceptlab
6110 : #define YYABORT goto yyabortlab
6111 : #define YYERROR goto yyerrorlab
6112 :
6113 :
6114 : #define YYRECOVERING() (!!yyerrstatus)
6115 :
6116 : #define YYBACKUP(Token, Value) \
6117 : do \
6118 : if (yychar == YYEMPTY) \
6119 : { \
6120 : yychar = (Token); \
6121 : yylval = (Value); \
6122 : YYPOPSTACK (yylen); \
6123 : yystate = *yyssp; \
6124 : goto yybackup; \
6125 : } \
6126 : else \
6127 : { \
6128 : yyerror (YY_("syntax error: cannot back up")); \
6129 : YYERROR; \
6130 : } \
6131 : while (0)
6132 :
6133 : /* Error token number */
6134 : #define YYTERROR 1
6135 : #define YYERRCODE 256
6136 :
6137 :
6138 : /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
6139 : If N is 0, then set CURRENT to the empty location which ends
6140 : the previous symbol: RHS[0] (always defined). */
6141 :
6142 : #ifndef YYLLOC_DEFAULT
6143 : # define YYLLOC_DEFAULT(Current, Rhs, N) \
6144 : do \
6145 : if (N) \
6146 : { \
6147 : (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
6148 : (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
6149 : (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
6150 : (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
6151 : } \
6152 : else \
6153 : { \
6154 : (Current).first_line = (Current).last_line = \
6155 : YYRHSLOC (Rhs, 0).last_line; \
6156 : (Current).first_column = (Current).last_column = \
6157 : YYRHSLOC (Rhs, 0).last_column; \
6158 : } \
6159 : while (0)
6160 : #endif
6161 :
6162 : #define YYRHSLOC(Rhs, K) ((Rhs)[K])
6163 :
6164 :
6165 : /* Enable debugging if requested. */
6166 : #if OPENMP_DEBUG
6167 :
6168 : # ifndef YYFPRINTF
6169 : # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
6170 : # define YYFPRINTF fprintf
6171 : # endif
6172 :
6173 : # define YYDPRINTF(Args) \
6174 : do { \
6175 : if (yydebug) \
6176 : YYFPRINTF Args; \
6177 : } while (0)
6178 :
6179 :
6180 : /* YY_LOCATION_PRINT -- Print the location on the stream.
6181 : This macro was not mandated originally: define only if we know
6182 : we won't break user code: when these are the locations we know. */
6183 :
6184 : #ifndef YY_LOCATION_PRINT
6185 : # if defined OPENMP_LTYPE_IS_TRIVIAL && OPENMP_LTYPE_IS_TRIVIAL
6186 :
6187 : /* Print *YYLOCP on YYO. Private, do not rely on its existence. */
6188 :
6189 : YY_ATTRIBUTE_UNUSED
6190 : static int
6191 : yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
6192 : {
6193 : int res = 0;
6194 : int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
6195 : if (0 <= yylocp->first_line)
6196 : {
6197 : res += YYFPRINTF (yyo, "%d", yylocp->first_line);
6198 : if (0 <= yylocp->first_column)
6199 : res += YYFPRINTF (yyo, ".%d", yylocp->first_column);
6200 : }
6201 : if (0 <= yylocp->last_line)
6202 : {
6203 : if (yylocp->first_line < yylocp->last_line)
6204 : {
6205 : res += YYFPRINTF (yyo, "-%d", yylocp->last_line);
6206 : if (0 <= end_col)
6207 : res += YYFPRINTF (yyo, ".%d", end_col);
6208 : }
6209 : else if (0 <= end_col && yylocp->first_column < end_col)
6210 : res += YYFPRINTF (yyo, "-%d", end_col);
6211 : }
6212 : return res;
6213 : }
6214 :
6215 : # define YY_LOCATION_PRINT(File, Loc) \
6216 : yy_location_print_ (File, &(Loc))
6217 :
6218 : # else
6219 : # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
6220 : # endif
6221 : #endif
6222 :
6223 :
6224 : # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
6225 : do { \
6226 : if (yydebug) \
6227 : { \
6228 : YYFPRINTF (stderr, "%s ", Title); \
6229 : yy_symbol_print (stderr, \
6230 : Type, Value, Location); \
6231 : YYFPRINTF (stderr, "\n"); \
6232 : } \
6233 : } while (0)
6234 :
6235 :
6236 : /*-----------------------------------.
6237 : | Print this symbol's value on YYO. |
6238 : `-----------------------------------*/
6239 :
6240 : static void
6241 : yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
6242 : {
6243 : FILE *yyoutput = yyo;
6244 : YYUSE (yyoutput);
6245 : YYUSE (yylocationp);
6246 : if (!yyvaluep)
6247 : return;
6248 : # ifdef YYPRINT
6249 : if (yytype < YYNTOKENS)
6250 : YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
6251 : # endif
6252 : YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6253 : YYUSE (yytype);
6254 : YY_IGNORE_MAYBE_UNINITIALIZED_END
6255 : }
6256 :
6257 :
6258 : /*---------------------------.
6259 : | Print this symbol on YYO. |
6260 : `---------------------------*/
6261 :
6262 : static void
6263 : yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
6264 : {
6265 : YYFPRINTF (yyo, "%s %s (",
6266 : yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
6267 :
6268 : YY_LOCATION_PRINT (yyo, *yylocationp);
6269 : YYFPRINTF (yyo, ": ");
6270 : yy_symbol_value_print (yyo, yytype, yyvaluep, yylocationp);
6271 : YYFPRINTF (yyo, ")");
6272 : }
6273 :
6274 : /*------------------------------------------------------------------.
6275 : | yy_stack_print -- Print the state stack from its BOTTOM up to its |
6276 : | TOP (included). |
6277 : `------------------------------------------------------------------*/
6278 :
6279 : static void
6280 : yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
6281 : {
6282 : YYFPRINTF (stderr, "Stack now");
6283 : for (; yybottom <= yytop; yybottom++)
6284 : {
6285 : int yybot = *yybottom;
6286 : YYFPRINTF (stderr, " %d", yybot);
6287 : }
6288 : YYFPRINTF (stderr, "\n");
6289 : }
6290 :
6291 : # define YY_STACK_PRINT(Bottom, Top) \
6292 : do { \
6293 : if (yydebug) \
6294 : yy_stack_print ((Bottom), (Top)); \
6295 : } while (0)
6296 :
6297 :
6298 : /*------------------------------------------------.
6299 : | Report that the YYRULE is going to be reduced. |
6300 : `------------------------------------------------*/
6301 :
6302 : static void
6303 : yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule)
6304 : {
6305 : int yylno = yyrline[yyrule];
6306 : int yynrhs = yyr2[yyrule];
6307 : int yyi;
6308 : YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
6309 : yyrule - 1, yylno);
6310 : /* The symbols being reduced. */
6311 : for (yyi = 0; yyi < yynrhs; yyi++)
6312 : {
6313 : YYFPRINTF (stderr, " $%d = ", yyi + 1);
6314 : yy_symbol_print (stderr,
6315 : yystos[+yyssp[yyi + 1 - yynrhs]],
6316 : &yyvsp[(yyi + 1) - (yynrhs)]
6317 : , &(yylsp[(yyi + 1) - (yynrhs)]) );
6318 : YYFPRINTF (stderr, "\n");
6319 : }
6320 : }
6321 :
6322 : # define YY_REDUCE_PRINT(Rule) \
6323 : do { \
6324 : if (yydebug) \
6325 : yy_reduce_print (yyssp, yyvsp, yylsp, Rule); \
6326 : } while (0)
6327 :
6328 : /* Nonzero means print parse trace. It is left uninitialized so that
6329 : multiple parsers can coexist. */
6330 : int yydebug;
6331 : #else /* !OPENMP_DEBUG */
6332 : # define YYDPRINTF(Args)
6333 : # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
6334 : # define YY_STACK_PRINT(Bottom, Top)
6335 : # define YY_REDUCE_PRINT(Rule)
6336 : #endif /* !OPENMP_DEBUG */
6337 :
6338 :
6339 : /* YYINITDEPTH -- initial size of the parser's stacks. */
6340 : #ifndef YYINITDEPTH
6341 : # define YYINITDEPTH 200
6342 : #endif
6343 :
6344 : /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
6345 : if the built-in stack extension method is used).
6346 :
6347 : Do not make this value too large; the results are undefined if
6348 : YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
6349 : evaluated with infinite-precision integer arithmetic. */
6350 :
6351 : #ifndef YYMAXDEPTH
6352 : # define YYMAXDEPTH 10000
6353 : #endif
6354 :
6355 :
6356 : #if YYERROR_VERBOSE
6357 :
6358 : # ifndef yystrlen
6359 : # if defined __GLIBC__ && defined _STRING_H
6360 : # define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
6361 : # else
6362 : /* Return the length of YYSTR. */
6363 : static YYPTRDIFF_T
6364 : yystrlen (const char *yystr)
6365 : {
6366 : YYPTRDIFF_T yylen;
6367 : for (yylen = 0; yystr[yylen]; yylen++)
6368 : continue;
6369 : return yylen;
6370 : }
6371 : # endif
6372 : # endif
6373 :
6374 : # ifndef yystpcpy
6375 : # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
6376 : # define yystpcpy stpcpy
6377 : # else
6378 : /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
6379 : YYDEST. */
6380 : static char *
6381 : yystpcpy (char *yydest, const char *yysrc)
6382 : {
6383 : char *yyd = yydest;
6384 : const char *yys = yysrc;
6385 :
6386 : while ((*yyd++ = *yys++) != '\0')
6387 : continue;
6388 :
6389 : return yyd - 1;
6390 : }
6391 : # endif
6392 : # endif
6393 :
6394 : # ifndef yytnamerr
6395 : /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
6396 : quotes and backslashes, so that it's suitable for yyerror. The
6397 : heuristic is that double-quoting is unnecessary unless the string
6398 : contains an apostrophe, a comma, or backslash (other than
6399 : backslash-backslash). YYSTR is taken from yytname. If YYRES is
6400 : null, do not copy; instead, return the length of what the result
6401 : would have been. */
6402 : static YYPTRDIFF_T
6403 0 : yytnamerr (char *yyres, const char *yystr)
6404 : {
6405 0 : if (*yystr == '"')
6406 : {
6407 : YYPTRDIFF_T yyn = 0;
6408 : char const *yyp = yystr;
6409 :
6410 0 : for (;;)
6411 0 : switch (*++yyp)
6412 : {
6413 0 : case '\'':
6414 0 : case ',':
6415 0 : goto do_not_strip_quotes;
6416 :
6417 0 : case '\\':
6418 0 : if (*++yyp != '\\')
6419 0 : goto do_not_strip_quotes;
6420 : else
6421 0 : goto append;
6422 :
6423 0 : append:
6424 0 : default:
6425 0 : if (yyres)
6426 0 : yyres[yyn] = *yyp;
6427 0 : yyn++;
6428 0 : break;
6429 :
6430 0 : case '"':
6431 0 : if (yyres)
6432 0 : yyres[yyn] = '\0';
6433 0 : return yyn;
6434 : }
6435 0 : do_not_strip_quotes: ;
6436 : }
6437 :
6438 0 : if (yyres)
6439 0 : return yystpcpy (yyres, yystr) - yyres;
6440 : else
6441 0 : return yystrlen (yystr);
6442 : }
6443 : # endif
6444 :
6445 : /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
6446 : about the unexpected token YYTOKEN for the state stack whose top is
6447 : YYSSP.
6448 :
6449 : Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
6450 : not large enough to hold the message. In that case, also set
6451 : *YYMSG_ALLOC to the required number of bytes. Return 2 if the
6452 : required number of bytes is too large to store. */
6453 : static int
6454 0 : yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
6455 : yy_state_t *yyssp, int yytoken)
6456 : {
6457 0 : enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
6458 : /* Internationalized format string. */
6459 0 : const char *yyformat = YY_NULLPTR;
6460 : /* Arguments of yyformat: reported tokens (one for the "unexpected",
6461 : one per "expected"). */
6462 0 : char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
6463 : /* Actual size of YYARG. */
6464 0 : int yycount = 0;
6465 : /* Cumulated lengths of YYARG. */
6466 0 : YYPTRDIFF_T yysize = 0;
6467 :
6468 : /* There are many possibilities here to consider:
6469 : - If this state is a consistent state with a default action, then
6470 : the only way this function was invoked is if the default action
6471 : is an error action. In that case, don't check for expected
6472 : tokens because there are none.
6473 : - The only way there can be no lookahead present (in yychar) is if
6474 : this state is a consistent state with a default action. Thus,
6475 : detecting the absence of a lookahead is sufficient to determine
6476 : that there is no unexpected or expected token to report. In that
6477 : case, just report a simple "syntax error".
6478 : - Don't assume there isn't a lookahead just because this state is a
6479 : consistent state with a default action. There might have been a
6480 : previous inconsistent state, consistent state with a non-default
6481 : action, or user semantic action that manipulated yychar.
6482 : - Of course, the expected token list depends on states to have
6483 : correct lookahead information, and it depends on the parser not
6484 : to perform extra reductions after fetching a lookahead from the
6485 : scanner and before detecting a syntax error. Thus, state merging
6486 : (from LALR or IELR) and default reductions corrupt the expected
6487 : token list. However, the list is correct for canonical LR with
6488 : one exception: it will still contain any token that will not be
6489 : accepted due to an error action in a later state.
6490 : */
6491 0 : if (yytoken != YYEMPTY)
6492 : {
6493 0 : int yyn = yypact[+*yyssp];
6494 0 : YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
6495 0 : yysize = yysize0;
6496 0 : yyarg[yycount++] = yytname[yytoken];
6497 0 : if (!yypact_value_is_default (yyn))
6498 : {
6499 : /* Start YYX at -YYN if negative to avoid negative indexes in
6500 : YYCHECK. In other words, skip the first -YYN actions for
6501 : this state because they are default actions. */
6502 0 : int yyxbegin = yyn < 0 ? -yyn : 0;
6503 : /* Stay within bounds of both yycheck and yytname. */
6504 0 : int yychecklim = YYLAST - yyn + 1;
6505 0 : int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
6506 0 : int yyx;
6507 :
6508 0 : for (yyx = yyxbegin; yyx < yyxend; ++yyx)
6509 0 : if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
6510 : && !yytable_value_is_error (yytable[yyx + yyn]))
6511 : {
6512 0 : if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
6513 : {
6514 : yycount = 1;
6515 : yysize = yysize0;
6516 : break;
6517 : }
6518 0 : yyarg[yycount++] = yytname[yyx];
6519 0 : {
6520 0 : YYPTRDIFF_T yysize1
6521 0 : = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
6522 0 : if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
6523 : yysize = yysize1;
6524 : else
6525 : return 2;
6526 : }
6527 : }
6528 : }
6529 : }
6530 :
6531 0 : switch (yycount)
6532 : {
6533 : # define YYCASE_(N, S) \
6534 : case N: \
6535 : yyformat = S; \
6536 : break
6537 : default: /* Avoid compiler warnings. */
6538 : YYCASE_(0, YY_("syntax error"));
6539 : YYCASE_(1, YY_("syntax error, unexpected %s"));
6540 0 : YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
6541 0 : YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
6542 0 : YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
6543 0 : YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
6544 : # undef YYCASE_
6545 : }
6546 :
6547 0 : {
6548 : /* Don't count the "%s"s in the final size, but reserve room for
6549 : the terminator. */
6550 0 : YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1;
6551 0 : if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
6552 0 : yysize = yysize1;
6553 : else
6554 : return 2;
6555 : }
6556 :
6557 0 : if (*yymsg_alloc < yysize)
6558 : {
6559 0 : *yymsg_alloc = 2 * yysize;
6560 0 : if (! (yysize <= *yymsg_alloc
6561 : && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
6562 0 : *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
6563 0 : return 1;
6564 : }
6565 :
6566 : /* Avoid sprintf, as that infringes on the user's name space.
6567 : Don't have undefined behavior even if the translation
6568 : produced a string with the wrong number of "%s"s. */
6569 0 : {
6570 0 : char *yyp = *yymsg;
6571 0 : int yyi = 0;
6572 0 : while ((*yyp = *yyformat) != '\0')
6573 0 : if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
6574 : {
6575 0 : yyp += yytnamerr (yyp, yyarg[yyi++]);
6576 0 : yyformat += 2;
6577 : }
6578 : else
6579 : {
6580 0 : ++yyp;
6581 0 : ++yyformat;
6582 : }
6583 : }
6584 : return 0;
6585 : }
6586 : #endif /* YYERROR_VERBOSE */
6587 :
6588 : /*-----------------------------------------------.
6589 : | Release the memory associated to this symbol. |
6590 : `-----------------------------------------------*/
6591 :
6592 : static void
6593 0 : yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
6594 : {
6595 0 : YYUSE (yyvaluep);
6596 0 : YYUSE (yylocationp);
6597 0 : if (!yymsg)
6598 955 : yymsg = "Deleting";
6599 0 : YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
6600 :
6601 0 : YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6602 0 : YYUSE (yytype);
6603 0 : YY_IGNORE_MAYBE_UNINITIALIZED_END
6604 : }
6605 :
6606 :
6607 :
6608 :
6609 : /* The lookahead symbol. */
6610 : int yychar;
6611 :
6612 : /* The semantic value of the lookahead symbol. */
6613 : YYSTYPE yylval;
6614 : /* Location data for the lookahead symbol. */
6615 : YYLTYPE yylloc
6616 : # if defined OPENMP_LTYPE_IS_TRIVIAL && OPENMP_LTYPE_IS_TRIVIAL
6617 : = { 1, 1, 1, 1 }
6618 : # endif
6619 : ;
6620 : /* Number of syntax errors so far. */
6621 : int yynerrs;
6622 :
6623 :
6624 : /*----------.
6625 : | yyparse. |
6626 : `----------*/
6627 :
6628 : int
6629 955 : yyparse (void)
6630 : {
6631 955 : yy_state_fast_t yystate;
6632 : /* Number of tokens to shift before error messages enabled. */
6633 955 : int yyerrstatus;
6634 :
6635 : /* The stacks and their tools:
6636 : 'yyss': related to states.
6637 : 'yyvs': related to semantic values.
6638 : 'yyls': related to locations.
6639 :
6640 : Refer to the stacks through separate pointers, to allow yyoverflow
6641 : to reallocate them elsewhere. */
6642 :
6643 : /* The state stack. */
6644 955 : yy_state_t yyssa[YYINITDEPTH];
6645 955 : yy_state_t *yyss;
6646 955 : yy_state_t *yyssp;
6647 :
6648 : /* The semantic value stack. */
6649 955 : YYSTYPE yyvsa[YYINITDEPTH];
6650 955 : YYSTYPE *yyvs;
6651 955 : YYSTYPE *yyvsp;
6652 :
6653 : /* The location stack. */
6654 955 : YYLTYPE yylsa[YYINITDEPTH];
6655 955 : YYLTYPE *yyls;
6656 955 : YYLTYPE *yylsp;
6657 :
6658 : /* The locations where the error started and ended. */
6659 955 : YYLTYPE yyerror_range[3];
6660 :
6661 955 : YYPTRDIFF_T yystacksize;
6662 :
6663 955 : int yyn;
6664 955 : int yyresult;
6665 : /* Lookahead token as an internal (translated) token number. */
6666 955 : int yytoken = 0;
6667 : /* The variables used to return semantic value and location from the
6668 : action routines. */
6669 955 : YYSTYPE yyval;
6670 955 : YYLTYPE yyloc;
6671 :
6672 : #if YYERROR_VERBOSE
6673 : /* Buffer for error messages, and its allocated size. */
6674 955 : char yymsgbuf[128];
6675 955 : char *yymsg = yymsgbuf;
6676 955 : YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
6677 : #endif
6678 :
6679 : #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
6680 :
6681 : /* The number of symbols on the RHS of the reduced rule.
6682 : Keep to zero when no symbol should be popped. */
6683 955 : int yylen = 0;
6684 :
6685 955 : yyssp = yyss = yyssa;
6686 955 : yyvsp = yyvs = yyvsa;
6687 955 : yylsp = yyls = yylsa;
6688 955 : yystacksize = YYINITDEPTH;
6689 :
6690 955 : YYDPRINTF ((stderr, "Starting parse\n"));
6691 :
6692 955 : yystate = 0;
6693 955 : yyerrstatus = 0;
6694 955 : yynerrs = 0;
6695 955 : yychar = YYEMPTY; /* Cause a token to be read. */
6696 955 : yylsp[0] = yylloc;
6697 955 : goto yysetstate;
6698 :
6699 :
6700 : /*------------------------------------------------------------.
6701 : | yynewstate -- push a new state, which is found in yystate. |
6702 : `------------------------------------------------------------*/
6703 15079 : yynewstate:
6704 : /* In all cases, when you get here, the value and location stacks
6705 : have just been pushed. So pushing a state here evens the stacks. */
6706 15079 : yyssp++;
6707 :
6708 :
6709 : /*--------------------------------------------------------------------.
6710 : | yysetstate -- set current state (the top of the stack) to yystate. |
6711 : `--------------------------------------------------------------------*/
6712 16034 : yysetstate:
6713 16034 : YYDPRINTF ((stderr, "Entering state %d\n", yystate));
6714 16034 : YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
6715 16034 : YY_IGNORE_USELESS_CAST_BEGIN
6716 16034 : *yyssp = YY_CAST (yy_state_t, yystate);
6717 16034 : YY_IGNORE_USELESS_CAST_END
6718 :
6719 16034 : if (yyss + yystacksize - 1 <= yyssp)
6720 : #if !defined yyoverflow && !defined YYSTACK_RELOCATE
6721 : goto yyexhaustedlab;
6722 : #else
6723 : {
6724 : /* Get the current used size of the three stacks, in elements. */
6725 0 : YYPTRDIFF_T yysize = yyssp - yyss + 1;
6726 :
6727 : # if defined yyoverflow
6728 : {
6729 : /* Give user a chance to reallocate the stack. Use copies of
6730 : these so that the &'s don't force the real ones into
6731 : memory. */
6732 : yy_state_t *yyss1 = yyss;
6733 : YYSTYPE *yyvs1 = yyvs;
6734 : YYLTYPE *yyls1 = yyls;
6735 :
6736 : /* Each stack pointer address is followed by the size of the
6737 : data in use in that stack, in bytes. This used to be a
6738 : conditional around just the two extra args, but that might
6739 : be undefined if yyoverflow is a macro. */
6740 : yyoverflow (YY_("memory exhausted"),
6741 : &yyss1, yysize * YYSIZEOF (*yyssp),
6742 : &yyvs1, yysize * YYSIZEOF (*yyvsp),
6743 : &yyls1, yysize * YYSIZEOF (*yylsp),
6744 : &yystacksize);
6745 : yyss = yyss1;
6746 : yyvs = yyvs1;
6747 : yyls = yyls1;
6748 : }
6749 : # else /* defined YYSTACK_RELOCATE */
6750 : /* Extend the stack our own way. */
6751 0 : if (YYMAXDEPTH <= yystacksize)
6752 0 : goto yyexhaustedlab;
6753 0 : yystacksize *= 2;
6754 0 : if (YYMAXDEPTH < yystacksize)
6755 : yystacksize = YYMAXDEPTH;
6756 :
6757 0 : {
6758 0 : yy_state_t *yyss1 = yyss;
6759 0 : union yyalloc *yyptr =
6760 0 : YY_CAST (union yyalloc *,
6761 : YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
6762 0 : if (! yyptr)
6763 0 : goto yyexhaustedlab;
6764 0 : YYSTACK_RELOCATE (yyss_alloc, yyss);
6765 0 : YYSTACK_RELOCATE (yyvs_alloc, yyvs);
6766 0 : YYSTACK_RELOCATE (yyls_alloc, yyls);
6767 : # undef YYSTACK_RELOCATE
6768 0 : if (yyss1 != yyssa)
6769 0 : YYSTACK_FREE (yyss1);
6770 : }
6771 : # endif
6772 :
6773 0 : yyssp = yyss + yysize - 1;
6774 0 : yyvsp = yyvs + yysize - 1;
6775 0 : yylsp = yyls + yysize - 1;
6776 :
6777 0 : YY_IGNORE_USELESS_CAST_BEGIN
6778 : YYDPRINTF ((stderr, "Stack size increased to %ld\n",
6779 0 : YY_CAST (long, yystacksize)));
6780 0 : YY_IGNORE_USELESS_CAST_END
6781 :
6782 0 : if (yyss + yystacksize - 1 <= yyssp)
6783 0 : YYABORT;
6784 : }
6785 : #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
6786 :
6787 16034 : if (yystate == YYFINAL)
6788 955 : YYACCEPT;
6789 :
6790 15079 : goto yybackup;
6791 :
6792 :
6793 : /*-----------.
6794 : | yybackup. |
6795 : `-----------*/
6796 15079 : yybackup:
6797 : /* Do appropriate processing given the current state. Read a
6798 : lookahead token if we need one and don't already have one. */
6799 :
6800 : /* First try to decide what to do without reference to lookahead token. */
6801 15079 : yyn = yypact[yystate];
6802 15079 : if (yypact_value_is_default (yyn))
6803 7372 : goto yydefault;
6804 :
6805 : /* Not known => get a lookahead token if don't already have one. */
6806 :
6807 : /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
6808 7707 : if (yychar == YYEMPTY)
6809 : {
6810 6079 : YYDPRINTF ((stderr, "Reading a token: "));
6811 6079 : yychar = yylex ();
6812 : }
6813 :
6814 7707 : if (yychar <= YYEOF)
6815 : {
6816 2069 : yychar = yytoken = YYEOF;
6817 2069 : YYDPRINTF ((stderr, "Now at end of input.\n"));
6818 : }
6819 : else
6820 : {
6821 5638 : yytoken = YYTRANSLATE (yychar);
6822 7707 : YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
6823 : }
6824 :
6825 : /* If the proper action on seeing token YYTOKEN is to reduce or to
6826 : detect an error, take that action. */
6827 7707 : yyn += yytoken;
6828 7707 : if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
6829 1619 : goto yydefault;
6830 6088 : yyn = yytable[yyn];
6831 6088 : if (yyn <= 0)
6832 : {
6833 9 : if (yytable_value_is_error (yyn))
6834 : goto yyerrlab;
6835 9 : yyn = -yyn;
6836 9 : goto yyreduce;
6837 : }
6838 :
6839 : /* Count tokens shifted since error; after three, turn off error
6840 : status. */
6841 6079 : if (yyerrstatus)
6842 0 : yyerrstatus--;
6843 :
6844 : /* Shift the lookahead token. */
6845 6079 : YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
6846 6079 : yystate = yyn;
6847 6079 : YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6848 6079 : *++yyvsp = yylval;
6849 6079 : YY_IGNORE_MAYBE_UNINITIALIZED_END
6850 6079 : *++yylsp = yylloc;
6851 :
6852 : /* Discard the shifted token. */
6853 6079 : yychar = YYEMPTY;
6854 6079 : goto yynewstate;
6855 :
6856 :
6857 : /*-----------------------------------------------------------.
6858 : | yydefault -- do the default action for the current state. |
6859 : `-----------------------------------------------------------*/
6860 8991 : yydefault:
6861 8991 : yyn = yydefact[yystate];
6862 8991 : if (yyn == 0)
6863 0 : goto yyerrlab;
6864 8991 : goto yyreduce;
6865 :
6866 :
6867 : /*-----------------------------.
6868 : | yyreduce -- do a reduction. |
6869 : `-----------------------------*/
6870 9000 : yyreduce:
6871 : /* yyn is the number of a rule to reduce with. */
6872 9000 : yylen = yyr2[yyn];
6873 :
6874 : /* If YYLEN is nonzero, implement the default value of the action:
6875 : '$$ = $1'.
6876 :
6877 : Otherwise, the following line sets YYVAL to garbage.
6878 : This behavior is undocumented and Bison
6879 : users should not rely upon it. Assigning to YYVAL
6880 : unconditionally makes the parser a bit smaller, and it avoids a
6881 : GCC warning that YYVAL may be used uninitialized. */
6882 9000 : yyval = yyvsp[1-yylen];
6883 :
6884 : /* Default location. */
6885 9000 : YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
6886 9000 : yyerror_range[1] = yyloc;
6887 9000 : YY_REDUCE_PRINT (yyn);
6888 9000 : switch (yyn)
6889 : {
6890 57 : case 2:
6891 : #line 115 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
6892 : { current_clause->addLangExpr((yyvsp[0].stype)); /*void * astnode = exprParse)($1);*/ }
6893 : #line 6894 "ompparser.cc"
6894 : break;
6895 :
6896 683 : case 3:
6897 : #line 116 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
6898 : { current_clause->addLangExpr((yyvsp[0].stype)); }
6899 : #line 6900 "ompparser.cc"
6900 : break;
6901 :
6902 50 : case 165:
6903 : #line 293 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
6904 : { current_directive = new OpenMPEndDirective();
6905 : current_parent_directive = current_directive;
6906 : current_parent_clause = current_clause;
6907 : }
6908 : #line 6909 "ompparser.cc"
6909 50 : break;
6910 :
6911 50 : case 166:
6912 : #line 296 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
6913 : {
6914 : ((OpenMPEndDirective*)current_parent_directive)->setPairedDirective(current_directive);
6915 : current_directive = current_parent_directive;
6916 : current_clause = current_parent_clause;
6917 : current_parent_directive = NULL;
6918 : current_parent_clause = NULL;
6919 : }
6920 : #line 6921 "ompparser.cc"
6921 50 : break;
6922 :
6923 0 : case 168:
6924 : #line 308 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
6925 : { current_directive = new OpenMPDirective(OMPD_metadirective); }
6926 : #line 6927 "ompparser.cc"
6927 0 : break;
6928 :
6929 0 : case 177:
6930 : #line 325 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
6931 : { current_clause = current_directive->addOpenMPClause(OMPC_when); }
6932 : #line 6933 "ompparser.cc"
6933 0 : break;
6934 :
6935 0 : case 178:
6936 : #line 326 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
6937 : {
6938 : current_parent_directive = current_directive;
6939 : current_parent_clause = current_clause;
6940 : }
6941 : #line 6942 "ompparser.cc"
6942 0 : break;
6943 :
6944 0 : case 179:
6945 : #line 329 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
6946 : {
6947 : current_directive = current_parent_directive;
6948 : current_clause = current_parent_clause;
6949 : current_parent_directive = NULL;
6950 : current_parent_clause = NULL;
6951 : }
6952 : #line 6953 "ompparser.cc"
6953 0 : break;
6954 :
6955 0 : case 181:
6956 : #line 337 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
6957 : {((OpenMPWhenClause*)current_parent_clause)->setVariantDirective(current_directive); }
6958 : #line 6959 "ompparser.cc"
6959 : break;
6960 :
6961 : case 182:
6962 : #line 338 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
6963 : { ; }
6964 : #line 6965 "ompparser.cc"
6965 : break;
6966 :
6967 : case 186:
6968 : #line 346 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
6969 : { }
6970 : #line 6971 "ompparser.cc"
6971 : break;
6972 :
6973 0 : case 187:
6974 : #line 346 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
6975 : {
6976 : if (current_parent_clause) {
6977 : current_directive = current_parent_directive;
6978 : current_clause = current_parent_clause;
6979 : current_parent_directive = NULL;
6980 : current_parent_clause = NULL;
6981 : };
6982 : }
6983 : #line 6984 "ompparser.cc"
6984 : break;
6985 :
6986 : case 189:
6987 : #line 356 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
6988 : { }
6989 : #line 6990 "ompparser.cc"
6990 : break;
6991 :
6992 0 : case 190:
6993 : #line 357 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
6994 : { current_parent_directive = current_directive;
6995 : current_parent_clause = current_clause; }
6996 : #line 6997 "ompparser.cc"
6997 0 : break;
6998 :
6999 : case 191:
7000 : #line 359 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7001 : { }
7002 : #line 7003 "ompparser.cc"
7003 : break;
7004 :
7005 : case 192:
7006 : #line 360 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7007 : { }
7008 : #line 7009 "ompparser.cc"
7009 : break;
7010 :
7011 0 : case 193:
7012 : #line 363 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7013 : { trait_score = ""; }
7014 : #line 7015 "ompparser.cc"
7015 0 : break;
7016 :
7017 0 : case 194:
7018 : #line 364 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7019 : { trait_score = ""; }
7020 : #line 7021 "ompparser.cc"
7021 0 : break;
7022 :
7023 0 : case 195:
7024 : #line 365 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7025 : { trait_score = ""; }
7026 : #line 7027 "ompparser.cc"
7027 0 : break;
7028 :
7029 0 : case 197:
7030 : #line 369 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7031 : {
7032 : ((OpenMPVariantClause*)current_parent_clause)->addConstructDirective(trait_score, current_directive);
7033 : std::cout << "A construct directive has been added to WHEN clause.\n";
7034 : }
7035 : #line 7036 "ompparser.cc"
7036 : break;
7037 :
7038 0 : case 200:
7039 : #line 377 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7040 : { ((OpenMPVariantClause*)current_clause)->setUserCondition(trait_score, (yyvsp[0].stype)); }
7041 : #line 7042 "ompparser.cc"
7042 : break;
7043 :
7044 0 : case 206:
7045 : #line 388 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7046 : { ((OpenMPVariantClause*)current_clause)->setContextKind(trait_score, OMPC_CONTEXT_KIND_host); }
7047 : #line 7048 "ompparser.cc"
7048 : break;
7049 :
7050 0 : case 207:
7051 : #line 389 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7052 : { ((OpenMPVariantClause*)current_clause)->setContextKind(trait_score, OMPC_CONTEXT_KIND_nohost); }
7053 : #line 7054 "ompparser.cc"
7054 : break;
7055 :
7056 0 : case 208:
7057 : #line 390 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7058 : { ((OpenMPVariantClause*)current_clause)->setContextKind(trait_score, OMPC_CONTEXT_KIND_any); }
7059 : #line 7060 "ompparser.cc"
7060 : break;
7061 :
7062 0 : case 209:
7063 : #line 391 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7064 : { ((OpenMPVariantClause*)current_clause)->setContextKind(trait_score, OMPC_CONTEXT_KIND_cpu); }
7065 : #line 7066 "ompparser.cc"
7066 : break;
7067 :
7068 0 : case 210:
7069 : #line 392 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7070 : { ((OpenMPVariantClause*)current_clause)->setContextKind(trait_score, OMPC_CONTEXT_KIND_gpu); }
7071 : #line 7072 "ompparser.cc"
7072 : break;
7073 :
7074 0 : case 211:
7075 : #line 393 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7076 : { ((OpenMPVariantClause*)current_clause)->setContextKind(trait_score, OMPC_CONTEXT_KIND_fpga); }
7077 : #line 7078 "ompparser.cc"
7078 : break;
7079 :
7080 0 : case 212:
7081 : #line 396 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7082 : { ((OpenMPVariantClause*)current_clause)->setIsaExpression(trait_score, (yyvsp[0].stype)); }
7083 : #line 7084 "ompparser.cc"
7084 : break;
7085 :
7086 0 : case 214:
7087 : #line 399 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7088 : { ((OpenMPVariantClause*)current_clause)->setArchExpression(trait_score, (yyvsp[0].stype)); }
7089 : #line 7090 "ompparser.cc"
7090 : break;
7091 :
7092 0 : case 217:
7093 : #line 403 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7094 : { ((OpenMPVariantClause*)current_clause)->setExtensionExpression(trait_score, (yyvsp[0].stype)); }
7095 : #line 7096 "ompparser.cc"
7096 : break;
7097 :
7098 0 : case 219:
7099 : #line 404 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7100 : { ((OpenMPVariantClause*)current_clause)->setImplementationExpression(trait_score, (yyvsp[0].stype)); }
7101 : #line 7102 "ompparser.cc"
7102 : break;
7103 :
7104 0 : case 220:
7105 : #line 405 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7106 : { ((OpenMPVariantClause*)current_clause)->setImplementationExpression(trait_score, (yyvsp[-3].stype)); }
7107 : #line 7108 "ompparser.cc"
7108 : break;
7109 :
7110 0 : case 221:
7111 : #line 408 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7112 : { ((OpenMPVariantClause*)current_clause)->setImplementationKind(trait_score, OMPC_CONTEXT_VENDOR_amd); }
7113 : #line 7114 "ompparser.cc"
7114 : break;
7115 :
7116 0 : case 222:
7117 : #line 409 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7118 : { ((OpenMPVariantClause*)current_clause)->setImplementationKind(trait_score, OMPC_CONTEXT_VENDOR_arm); }
7119 : #line 7120 "ompparser.cc"
7120 : break;
7121 :
7122 0 : case 223:
7123 : #line 410 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7124 : { ((OpenMPVariantClause*)current_clause)->setImplementationKind(trait_score, OMPC_CONTEXT_VENDOR_bsc); }
7125 : #line 7126 "ompparser.cc"
7126 : break;
7127 :
7128 0 : case 224:
7129 : #line 411 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7130 : { ((OpenMPVariantClause*)current_clause)->setImplementationKind(trait_score, OMPC_CONTEXT_VENDOR_cray); }
7131 : #line 7132 "ompparser.cc"
7132 : break;
7133 :
7134 0 : case 225:
7135 : #line 412 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7136 : { ((OpenMPVariantClause*)current_clause)->setImplementationKind(trait_score, OMPC_CONTEXT_VENDOR_fujitsu); }
7137 : #line 7138 "ompparser.cc"
7138 : break;
7139 :
7140 0 : case 226:
7141 : #line 413 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7142 : { ((OpenMPVariantClause*)current_clause)->setImplementationKind(trait_score, OMPC_CONTEXT_VENDOR_gnu); }
7143 : #line 7144 "ompparser.cc"
7144 : break;
7145 :
7146 0 : case 227:
7147 : #line 414 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7148 : { ((OpenMPVariantClause*)current_clause)->setImplementationKind(trait_score, OMPC_CONTEXT_VENDOR_ibm); }
7149 : #line 7150 "ompparser.cc"
7150 : break;
7151 :
7152 0 : case 228:
7153 : #line 415 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7154 : { ((OpenMPVariantClause*)current_clause)->setImplementationKind(trait_score, OMPC_CONTEXT_VENDOR_intel); }
7155 : #line 7156 "ompparser.cc"
7156 : break;
7157 :
7158 0 : case 229:
7159 : #line 416 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7160 : { ((OpenMPVariantClause*)current_clause)->setImplementationKind(trait_score, OMPC_CONTEXT_VENDOR_llvm); }
7161 : #line 7162 "ompparser.cc"
7162 : break;
7163 :
7164 0 : case 230:
7165 : #line 417 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7166 : { ((OpenMPVariantClause*)current_clause)->setImplementationKind(trait_score, OMPC_CONTEXT_VENDOR_pgi); }
7167 : #line 7168 "ompparser.cc"
7168 : break;
7169 :
7170 0 : case 231:
7171 : #line 418 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7172 : { ((OpenMPVariantClause*)current_clause)->setImplementationKind(trait_score, OMPC_CONTEXT_VENDOR_ti); }
7173 : #line 7174 "ompparser.cc"
7174 : break;
7175 :
7176 0 : case 232:
7177 : #line 419 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7178 : { ((OpenMPVariantClause*)current_clause)->setImplementationKind(trait_score, OMPC_CONTEXT_VENDOR_unknown); }
7179 : #line 7180 "ompparser.cc"
7180 : break;
7181 :
7182 0 : case 234:
7183 : #line 425 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7184 : { current_directive = new OpenMPDirective(OMPD_parallel); }
7185 : #line 7186 "ompparser.cc"
7186 0 : break;
7187 :
7188 0 : case 235:
7189 : #line 426 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7190 : { current_directive = new OpenMPDirective(OMPD_parallel); }
7191 : #line 7192 "ompparser.cc"
7192 0 : break;
7193 :
7194 0 : case 239:
7195 : #line 433 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7196 : { trait_score = (yyvsp[0].stype); }
7197 : #line 7198 "ompparser.cc"
7198 0 : break;
7199 :
7200 0 : case 241:
7201 : #line 436 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7202 : {
7203 : current_directive = new OpenMPDeclareVariantDirective();
7204 : }
7205 : #line 7206 "ompparser.cc"
7206 0 : break;
7207 :
7208 0 : case 243:
7209 : #line 442 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7210 : { ((OpenMPDeclareVariantDirective*)current_directive)->setVariantFuncID((yyvsp[0].stype)); }
7211 : #line 7212 "ompparser.cc"
7212 : break;
7213 :
7214 0 : case 251:
7215 : #line 457 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7216 : { current_clause = current_directive->addOpenMPClause(OMPC_match); }
7217 : #line 7218 "ompparser.cc"
7218 0 : break;
7219 :
7220 : case 252:
7221 : #line 458 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7222 : { }
7223 : #line 7224 "ompparser.cc"
7224 : break;
7225 :
7226 281 : case 253:
7227 : #line 462 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7228 : {
7229 : current_directive = new OpenMPDirective(OMPD_parallel);
7230 : }
7231 : #line 7232 "ompparser.cc"
7232 281 : break;
7233 :
7234 78 : case 255:
7235 : #line 468 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7236 : {
7237 : current_directive = new OpenMPDirective(OMPD_task);
7238 : }
7239 : #line 7240 "ompparser.cc"
7240 78 : break;
7241 :
7242 2 : case 257:
7243 : #line 473 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7244 : {
7245 : current_directive = new OpenMPDirective(OMPD_taskloop);
7246 : }
7247 : #line 7248 "ompparser.cc"
7248 2 : break;
7249 :
7250 1 : case 259:
7251 : #line 478 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7252 : {
7253 : current_directive = new OpenMPDirective(OMPD_taskloop_simd);
7254 : }
7255 : #line 7256 "ompparser.cc"
7256 1 : break;
7257 :
7258 1 : case 261:
7259 : #line 483 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7260 : {
7261 : current_directive = new OpenMPDirective(OMPD_taskyield);
7262 : }
7263 : #line 7264 "ompparser.cc"
7264 1 : break;
7265 :
7266 7 : case 262:
7267 : #line 487 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7268 : {
7269 : current_directive = new OpenMPRequiresDirective();
7270 : }
7271 : #line 7272 "ompparser.cc"
7272 7 : break;
7273 :
7274 7 : case 264:
7275 : #line 492 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7276 : {
7277 : current_directive = new OpenMPDirective(OMPD_target_data);
7278 : }
7279 : #line 7280 "ompparser.cc"
7280 7 : break;
7281 :
7282 0 : case 266:
7283 : #line 497 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7284 : {
7285 : current_directive = new OpenMPDirective(OMPD_target_enter_data);
7286 : }
7287 : #line 7288 "ompparser.cc"
7288 0 : break;
7289 :
7290 0 : case 268:
7291 : #line 502 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7292 : {
7293 : current_directive = new OpenMPDirective(OMPD_target_exit_data);
7294 : }
7295 : #line 7296 "ompparser.cc"
7296 0 : break;
7297 :
7298 24 : case 270:
7299 : #line 507 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7300 : {
7301 : current_directive = new OpenMPDirective(OMPD_target);
7302 : }
7303 : #line 7304 "ompparser.cc"
7304 24 : break;
7305 :
7306 5 : case 272:
7307 : #line 512 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7308 : {
7309 : current_directive = new OpenMPDirective(OMPD_target_update);
7310 : }
7311 : #line 7312 "ompparser.cc"
7312 5 : break;
7313 :
7314 0 : case 274:
7315 : #line 517 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7316 : {
7317 : current_directive = new OpenMPDeclareTargetDirective ();
7318 : }
7319 : #line 7320 "ompparser.cc"
7320 0 : break;
7321 :
7322 9 : case 276:
7323 : #line 522 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7324 : {
7325 : current_directive = new OpenMPFlushDirective ();
7326 : }
7327 : #line 7328 "ompparser.cc"
7328 9 : break;
7329 :
7330 0 : case 278:
7331 : #line 528 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7332 : {
7333 : current_directive = new OpenMPDirective(OMPD_end_declare_target);
7334 : }
7335 : #line 7336 "ompparser.cc"
7336 0 : break;
7337 :
7338 15 : case 279:
7339 : #line 532 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7340 : {
7341 : current_directive = new OpenMPDirective(OMPD_master);
7342 : }
7343 : #line 7344 "ompparser.cc"
7344 15 : break;
7345 :
7346 17 : case 280:
7347 : #line 536 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7348 : {
7349 : current_directive = new OpenMPDirective(OMPD_barrier);
7350 : }
7351 : #line 7352 "ompparser.cc"
7352 17 : break;
7353 :
7354 28 : case 281:
7355 : #line 540 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7356 : {
7357 : current_directive = new OpenMPDirective(OMPD_taskwait);
7358 : }
7359 : #line 7360 "ompparser.cc"
7360 28 : break;
7361 :
7362 0 : case 283:
7363 : #line 545 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7364 : {
7365 : current_directive = new OpenMPDirective(OMPD_unroll);
7366 : }
7367 : #line 7368 "ompparser.cc"
7368 0 : break;
7369 :
7370 0 : case 285:
7371 : #line 550 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7372 : {
7373 : current_directive = new OpenMPDirective(OMPD_tile);
7374 : }
7375 : #line 7376 "ompparser.cc"
7376 0 : break;
7377 :
7378 2 : case 287:
7379 : #line 555 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7380 : {
7381 : current_directive = new OpenMPDirective(OMPD_taskgroup);
7382 : }
7383 : #line 7384 "ompparser.cc"
7384 2 : break;
7385 :
7386 63 : case 289:
7387 : #line 560 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7388 : {
7389 : current_directive = new OpenMPCriticalDirective();
7390 : }
7391 : #line 7392 "ompparser.cc"
7392 63 : break;
7393 :
7394 3 : case 291:
7395 : #line 565 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7396 : {
7397 : current_directive = new OpenMPDepobjDirective ();
7398 : }
7399 : #line 7400 "ompparser.cc"
7400 3 : break;
7401 :
7402 6 : case 293:
7403 : #line 570 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7404 : {
7405 : current_directive = new OpenMPOrderedDirective ();
7406 : }
7407 : #line 7408 "ompparser.cc"
7408 6 : break;
7409 :
7410 3 : case 300:
7411 : #line 582 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7412 : { ((OpenMPDepobjDirective*)current_directive)->addDepobj((yyvsp[0].stype)); }
7413 : #line 7414 "ompparser.cc"
7414 : break;
7415 :
7416 1 : case 304:
7417 : #line 589 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7418 : {current_clause = current_directive->addOpenMPClause(OMPC_destroy); }
7419 : #line 7420 "ompparser.cc"
7420 1 : break;
7421 :
7422 0 : case 306:
7423 : #line 594 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7424 : { current_clause = current_directive->addOpenMPClause(OMPC_depobj_update, OMPC_DEPOBJ_UPDATE_DEPENDENCE_TYPE_source); }
7425 : #line 7426 "ompparser.cc"
7426 0 : break;
7427 :
7428 1 : case 307:
7429 : #line 595 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7430 : { current_clause = current_directive->addOpenMPClause(OMPC_depobj_update, OMPC_DEPOBJ_UPDATE_DEPENDENCE_TYPE_in); }
7431 : #line 7432 "ompparser.cc"
7432 1 : break;
7433 :
7434 0 : case 308:
7435 : #line 596 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7436 : { current_clause = current_directive->addOpenMPClause(OMPC_depobj_update, OMPC_DEPOBJ_UPDATE_DEPENDENCE_TYPE_out); }
7437 : #line 7438 "ompparser.cc"
7438 0 : break;
7439 :
7440 0 : case 309:
7441 : #line 597 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7442 : { current_clause = current_directive->addOpenMPClause(OMPC_depobj_update, OMPC_DEPOBJ_UPDATE_DEPENDENCE_TYPE_inout); }
7443 : #line 7444 "ompparser.cc"
7444 0 : break;
7445 :
7446 0 : case 310:
7447 : #line 598 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7448 : { current_clause = current_directive->addOpenMPClause(OMPC_depobj_update,OMPC_DEPOBJ_UPDATE_DEPENDENCE_TYPE_mutexinoutset); }
7449 : #line 7450 "ompparser.cc"
7450 0 : break;
7451 :
7452 0 : case 311:
7453 : #line 599 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7454 : { current_clause = current_directive->addOpenMPClause(OMPC_depobj_update, OMPC_DEPOBJ_UPDATE_DEPENDENCE_TYPE_depobj); }
7455 : #line 7456 "ompparser.cc"
7456 0 : break;
7457 :
7458 0 : case 312:
7459 : #line 600 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7460 : { current_clause = current_directive->addOpenMPClause(OMPC_depobj_update, OMPC_DEPOBJ_UPDATE_DEPENDENCE_TYPE_sink); }
7461 : #line 7462 "ompparser.cc"
7462 0 : break;
7463 :
7464 6 : case 313:
7465 : #line 603 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7466 : { ((OpenMPCriticalDirective*)current_directive)->setCriticalName((yyvsp[0].stype)); }
7467 : #line 7468 "ompparser.cc"
7468 : break;
7469 :
7470 0 : case 332:
7471 : #line 634 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7472 : { ((OpenMPDeclareTargetDirective*)current_directive)->addExtendedList((yyvsp[0].stype)); }
7473 : #line 7474 "ompparser.cc"
7474 : break;
7475 :
7476 13 : case 340:
7477 : #line 646 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7478 : { ((OpenMPFlushDirective*)current_directive)->addFlushList((yyvsp[0].stype)); }
7479 : #line 7480 "ompparser.cc"
7480 : break;
7481 :
7482 8 : case 346:
7483 : #line 656 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7484 : {
7485 : current_directive = new OpenMPAtomicDirective ();
7486 : }
7487 : #line 7488 "ompparser.cc"
7488 8 : break;
7489 :
7490 3 : case 379:
7491 : #line 702 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7492 : { current_clause = current_directive->addOpenMPClause(OMPC_hint);
7493 : }
7494 : #line 7495 "ompparser.cc"
7495 3 : break;
7496 :
7497 2 : case 381:
7498 : #line 705 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7499 : { current_clause = current_directive->addOpenMPClause(OMPC_read);
7500 : }
7501 : #line 7502 "ompparser.cc"
7502 2 : break;
7503 :
7504 1 : case 382:
7505 : #line 708 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7506 : { current_clause = current_directive->addOpenMPClause(OMPC_write);
7507 : }
7508 : #line 7509 "ompparser.cc"
7509 1 : break;
7510 :
7511 1 : case 383:
7512 : #line 711 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7513 : { current_clause = current_directive->addOpenMPClause(OMPC_update);
7514 : }
7515 : #line 7516 "ompparser.cc"
7516 1 : break;
7517 :
7518 1 : case 384:
7519 : #line 714 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7520 : { current_clause = current_directive->addOpenMPClause(OMPC_capture);
7521 : }
7522 : #line 7523 "ompparser.cc"
7523 1 : break;
7524 :
7525 0 : case 385:
7526 : #line 718 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7527 : { current_clause = current_directive->addOpenMPClause(OMPC_seq_cst); }
7528 : #line 7529 "ompparser.cc"
7529 0 : break;
7530 :
7531 1 : case 386:
7532 : #line 720 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7533 : { current_clause = current_directive->addOpenMPClause(OMPC_acq_rel); }
7534 : #line 7535 "ompparser.cc"
7535 1 : break;
7536 :
7537 1 : case 387:
7538 : #line 722 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7539 : { current_clause = current_directive->addOpenMPClause(OMPC_release); }
7540 : #line 7541 "ompparser.cc"
7541 1 : break;
7542 :
7543 0 : case 388:
7544 : #line 724 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7545 : { current_clause = current_directive->addOpenMPClause(OMPC_acquire); }
7546 : #line 7547 "ompparser.cc"
7547 0 : break;
7548 :
7549 0 : case 389:
7550 : #line 726 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7551 : { current_clause = current_directive->addOpenMPClause(OMPC_relaxed); }
7552 : #line 7553 "ompparser.cc"
7553 0 : break;
7554 :
7555 3 : case 541:
7556 : #line 917 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7557 : {
7558 : current_clause = current_directive->addOpenMPClause(OMPC_final);
7559 : }
7560 : #line 7561 "ompparser.cc"
7561 3 : break;
7562 :
7563 5 : case 543:
7564 : #line 921 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7565 : {
7566 : current_clause = current_directive->addOpenMPClause(OMPC_untied);
7567 : }
7568 : #line 7569 "ompparser.cc"
7569 5 : break;
7570 :
7571 4 : case 544:
7572 : #line 925 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7573 : {
7574 : current_clause = current_directive->addOpenMPClause(OMPC_mergeable);
7575 : }
7576 : #line 7577 "ompparser.cc"
7577 4 : break;
7578 :
7579 : case 545:
7580 : #line 929 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7581 : { }
7582 : #line 7583 "ompparser.cc"
7583 : break;
7584 :
7585 0 : case 547:
7586 : #line 932 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7587 : { current_clause = current_directive->addOpenMPClause(OMPC_in_reduction,OMPC_IN_REDUCTION_IDENTIFIER_user, (yyvsp[0].stype)); }
7588 : #line 7589 "ompparser.cc"
7589 0 : break;
7590 :
7591 6 : case 548:
7592 : #line 935 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7593 : { current_clause = current_directive->addOpenMPClause(OMPC_in_reduction,OMPC_IN_REDUCTION_IDENTIFIER_plus); }
7594 : #line 7595 "ompparser.cc"
7595 6 : break;
7596 :
7597 0 : case 549:
7598 : #line 936 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7599 : { current_clause = current_directive->addOpenMPClause(OMPC_in_reduction,OMPC_IN_REDUCTION_IDENTIFIER_minus); }
7600 : #line 7601 "ompparser.cc"
7601 0 : break;
7602 :
7603 0 : case 550:
7604 : #line 937 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7605 : { current_clause = current_directive->addOpenMPClause(OMPC_in_reduction,OMPC_IN_REDUCTION_IDENTIFIER_mul); }
7606 : #line 7607 "ompparser.cc"
7607 0 : break;
7608 :
7609 0 : case 551:
7610 : #line 938 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7611 : { current_clause = current_directive->addOpenMPClause(OMPC_in_reduction,OMPC_IN_REDUCTION_IDENTIFIER_bitand); }
7612 : #line 7613 "ompparser.cc"
7613 0 : break;
7614 :
7615 0 : case 552:
7616 : #line 939 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7617 : { current_clause = current_directive->addOpenMPClause(OMPC_in_reduction,OMPC_IN_REDUCTION_IDENTIFIER_bitor); }
7618 : #line 7619 "ompparser.cc"
7619 0 : break;
7620 :
7621 0 : case 553:
7622 : #line 940 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7623 : { current_clause = current_directive->addOpenMPClause(OMPC_in_reduction,OMPC_IN_REDUCTION_IDENTIFIER_bitxor); }
7624 : #line 7625 "ompparser.cc"
7625 0 : break;
7626 :
7627 0 : case 554:
7628 : #line 941 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7629 : { current_clause = current_directive->addOpenMPClause(OMPC_in_reduction,OMPC_IN_REDUCTION_IDENTIFIER_logand); }
7630 : #line 7631 "ompparser.cc"
7631 0 : break;
7632 :
7633 0 : case 555:
7634 : #line 942 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7635 : { current_clause = current_directive->addOpenMPClause(OMPC_in_reduction,OMPC_IN_REDUCTION_IDENTIFIER_logor); }
7636 : #line 7637 "ompparser.cc"
7637 0 : break;
7638 :
7639 0 : case 556:
7640 : #line 943 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7641 : { current_clause = current_directive->addOpenMPClause(OMPC_in_reduction,OMPC_IN_REDUCTION_IDENTIFIER_max); }
7642 : #line 7643 "ompparser.cc"
7643 0 : break;
7644 :
7645 0 : case 557:
7646 : #line 944 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7647 : { current_clause = current_directive->addOpenMPClause(OMPC_in_reduction,OMPC_IN_REDUCTION_IDENTIFIER_min); }
7648 : #line 7649 "ompparser.cc"
7649 0 : break;
7650 :
7651 16 : case 558:
7652 : #line 947 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7653 : { firstParameter = OMPC_DEPEND_MODIFIER_unspecified; }
7654 : #line 7655 "ompparser.cc"
7655 16 : break;
7656 :
7657 16 : case 559:
7658 : #line 947 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7659 : { ((OpenMPDependClause*)current_clause)->mergeDepend(current_directive, current_clause); }
7660 : #line 7661 "ompparser.cc"
7661 : break;
7662 :
7663 2 : case 561:
7664 : #line 951 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7665 : { ((OpenMPDependClause*)current_clause)->setDependIteratorsDefinitionClass(depend_iterators_definition_class); depend_iterators_definition_class->clear(); }
7666 : #line 7667 "ompparser.cc"
7667 : break;
7668 :
7669 2 : case 563:
7670 : #line 955 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7671 : { depend_iterators_definition_class = new std::vector<std::vector<const char *> *>(); firstParameter = OMPC_DEPEND_MODIFIER_iterator; }
7672 : #line 7673 "ompparser.cc"
7673 2 : break;
7674 :
7675 2 : case 567:
7676 : #line 960 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7677 : { depend_iterator_definition->push_back((yyvsp[-1].stype)); depend_iterator_definition->push_back((yyvsp[0].stype)); }
7678 : #line 7679 "ompparser.cc"
7679 : break;
7680 :
7681 2 : case 569:
7682 : #line 961 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7683 : { depend_iterator_definition->push_back(""); depend_iterator_definition->push_back((yyvsp[0].stype)); }
7684 : #line 7685 "ompparser.cc"
7685 : break;
7686 :
7687 4 : case 571:
7688 : #line 963 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7689 : { depend_iterator_definition->push_back((yyvsp[0].stype)); }
7690 : #line 7691 "ompparser.cc"
7691 : break;
7692 :
7693 4 : case 572:
7694 : #line 963 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7695 : { depend_iterator_definition->push_back((yyvsp[0].stype)); }
7696 : #line 7697 "ompparser.cc"
7697 : break;
7698 :
7699 4 : case 573:
7700 : #line 963 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7701 : { depend_iterator_definition = new std::vector<const char*>(); }
7702 : #line 7703 "ompparser.cc"
7703 4 : break;
7704 :
7705 2 : case 574:
7706 : #line 965 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7707 : { depend_iterator_definition->push_back(""); depend_iterators_definition_class->push_back(depend_iterator_definition); }
7708 : #line 7709 "ompparser.cc"
7709 : break;
7710 :
7711 2 : case 575:
7712 : #line 966 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7713 : { depend_iterator_definition->push_back((yyvsp[0].stype));depend_iterators_definition_class->push_back(depend_iterator_definition); }
7714 : #line 7715 "ompparser.cc"
7715 : break;
7716 :
7717 8 : case 576:
7718 : #line 968 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7719 : { current_clause = current_directive->addOpenMPClause(OMPC_depend, firstParameter, OMPC_DEPENDENCE_TYPE_in); }
7720 : #line 7721 "ompparser.cc"
7721 8 : break;
7722 :
7723 5 : case 577:
7724 : #line 969 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7725 : { current_clause = current_directive->addOpenMPClause(OMPC_depend, firstParameter, OMPC_DEPENDENCE_TYPE_out); }
7726 : #line 7727 "ompparser.cc"
7727 5 : break;
7728 :
7729 2 : case 578:
7730 : #line 970 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7731 : { current_clause = current_directive->addOpenMPClause(OMPC_depend, firstParameter, OMPC_DEPENDENCE_TYPE_inout); }
7732 : #line 7733 "ompparser.cc"
7733 2 : break;
7734 :
7735 0 : case 579:
7736 : #line 971 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7737 : { current_clause = current_directive->addOpenMPClause(OMPC_depend, firstParameter, OMPC_DEPENDENCE_TYPE_mutexinoutset); }
7738 : #line 7739 "ompparser.cc"
7739 0 : break;
7740 :
7741 1 : case 580:
7742 : #line 972 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7743 : { current_clause = current_directive->addOpenMPClause(OMPC_depend, firstParameter, OMPC_DEPENDENCE_TYPE_depobj); }
7744 : #line 7745 "ompparser.cc"
7745 1 : break;
7746 :
7747 1 : case 581:
7748 : #line 975 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7749 : { firstParameter = OMPC_DEPEND_MODIFIER_unspecified; }
7750 : #line 7751 "ompparser.cc"
7751 1 : break;
7752 :
7753 : case 582:
7754 : #line 975 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7755 : {
7756 : }
7757 : #line 7758 "ompparser.cc"
7758 : break;
7759 :
7760 0 : case 584:
7761 : #line 980 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7762 : { current_clause = current_directive->addOpenMPClause(OMPC_depend, firstParameter, OMPC_DEPENDENCE_TYPE_in, depend_iterators_definition_class); }
7763 : #line 7764 "ompparser.cc"
7764 0 : break;
7765 :
7766 0 : case 585:
7767 : #line 981 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7768 : { current_clause = current_directive->addOpenMPClause(OMPC_depend, firstParameter, OMPC_DEPENDENCE_TYPE_out, depend_iterators_definition_class); }
7769 : #line 7770 "ompparser.cc"
7770 0 : break;
7771 :
7772 1 : case 586:
7773 : #line 982 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7774 : { current_clause = current_directive->addOpenMPClause(OMPC_depend, firstParameter, OMPC_DEPENDENCE_TYPE_inout, depend_iterators_definition_class); }
7775 : #line 7776 "ompparser.cc"
7776 1 : break;
7777 :
7778 0 : case 587:
7779 : #line 983 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7780 : { current_clause = current_directive->addOpenMPClause(OMPC_depend, firstParameter, OMPC_DEPENDENCE_TYPE_mutexinoutset); }
7781 : #line 7782 "ompparser.cc"
7782 0 : break;
7783 :
7784 2 : case 588:
7785 : #line 985 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7786 : { firstParameter = OMPC_DEPEND_MODIFIER_unspecified; }
7787 : #line 7788 "ompparser.cc"
7788 2 : break;
7789 :
7790 : case 589:
7791 : #line 985 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7792 : {
7793 : }
7794 : #line 7795 "ompparser.cc"
7795 : break;
7796 :
7797 1 : case 591:
7798 : #line 990 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7799 : { current_clause = current_directive->addOpenMPClause(OMPC_depend, firstParameter, OMPC_DEPENDENCE_TYPE_source, depend_iterators_definition_class); }
7800 : #line 7801 "ompparser.cc"
7801 1 : break;
7802 :
7803 1 : case 592:
7804 : #line 991 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7805 : { current_clause = current_directive->addOpenMPClause(OMPC_depend, firstParameter, OMPC_DEPENDENCE_TYPE_sink, depend_iterators_definition_class); }
7806 : #line 7807 "ompparser.cc"
7807 1 : break;
7808 :
7809 1 : case 594:
7810 : #line 994 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7811 : {
7812 : current_clause = current_directive->addOpenMPClause(OMPC_priority);
7813 : }
7814 : #line 7815 "ompparser.cc"
7815 1 : break;
7816 :
7817 3 : case 597:
7818 : #line 1001 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7819 : { current_clause = current_directive->addOpenMPClause(OMPC_affinity, OMPC_AFFINITY_MODIFIER_unspecified); current_clause->addLangExpr((yyvsp[0].stype)); }
7820 : #line 7821 "ompparser.cc"
7821 : break;
7822 :
7823 0 : case 598:
7824 : #line 1002 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7825 : { current_clause = current_directive->addOpenMPClause(OMPC_affinity, OMPC_AFFINITY_MODIFIER_unspecified); current_clause->addLangExpr((yyvsp[-1].stype)); }
7826 : #line 7827 "ompparser.cc"
7827 : break;
7828 :
7829 1 : case 601:
7830 : #line 1006 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7831 : { current_clause = current_directive->addOpenMPClause(OMPC_affinity, OMPC_AFFINITY_MODIFIER_iterator);
7832 : }
7833 : #line 7834 "ompparser.cc"
7834 1 : break;
7835 :
7836 : case 602:
7837 : #line 1007 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7838 : {}
7839 : #line 7840 "ompparser.cc"
7840 : break;
7841 :
7842 1 : case 605:
7843 : #line 1012 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7844 : { iterator_definition->push_back((yyvsp[-1].stype)); iterator_definition->push_back((yyvsp[0].stype)); }
7845 : #line 7846 "ompparser.cc"
7846 : break;
7847 :
7848 0 : case 607:
7849 : #line 1013 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7850 : {iterator_definition->push_back(""); iterator_definition->push_back((yyvsp[0].stype)); }
7851 : #line 7852 "ompparser.cc"
7852 : break;
7853 :
7854 1 : case 609:
7855 : #line 1015 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7856 : { iterator_definition->push_back((yyvsp[0].stype)); }
7857 : #line 7858 "ompparser.cc"
7858 : break;
7859 :
7860 1 : case 610:
7861 : #line 1015 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7862 : { iterator_definition->push_back((yyvsp[0].stype)); }
7863 : #line 7864 "ompparser.cc"
7864 : break;
7865 :
7866 1 : case 611:
7867 : #line 1015 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7868 : { iterator_definition = new std::vector<const char*>(); }
7869 : #line 7870 "ompparser.cc"
7870 1 : break;
7871 :
7872 0 : case 612:
7873 : #line 1018 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7874 : { iterator_definition->push_back(""); ((OpenMPAffinityClause*)current_clause)->addIteratorsDefinitionClass(iterator_definition); }
7875 : #line 7876 "ompparser.cc"
7876 : break;
7877 :
7878 1 : case 613:
7879 : #line 1019 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7880 : { iterator_definition->push_back((yyvsp[0].stype)); ((OpenMPAffinityClause*)current_clause)->addIteratorsDefinitionClass(iterator_definition); }
7881 : #line 7882 "ompparser.cc"
7882 : break;
7883 :
7884 0 : case 614:
7885 : #line 1022 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7886 : {
7887 : current_clause = current_directive->addOpenMPClause(OMPC_detach);
7888 : }
7889 : #line 7890 "ompparser.cc"
7890 0 : break;
7891 :
7892 0 : case 616:
7893 : #line 1026 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7894 : {
7895 : current_clause = current_directive->addOpenMPClause(OMPC_grainsize);
7896 : }
7897 : #line 7898 "ompparser.cc"
7898 0 : break;
7899 :
7900 0 : case 618:
7901 : #line 1030 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7902 : {
7903 : current_clause = current_directive->addOpenMPClause(OMPC_num_tasks);
7904 : }
7905 : #line 7906 "ompparser.cc"
7906 0 : break;
7907 :
7908 1 : case 620:
7909 : #line 1034 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7910 : {
7911 : current_clause = current_directive->addOpenMPClause(OMPC_nogroup);
7912 : }
7913 : #line 7914 "ompparser.cc"
7914 1 : break;
7915 :
7916 2 : case 621:
7917 : #line 1038 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7918 : {
7919 : current_clause = current_directive->addOpenMPClause(OMPC_reverse_offload);
7920 : }
7921 : #line 7922 "ompparser.cc"
7922 2 : break;
7923 :
7924 1 : case 622:
7925 : #line 1042 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7926 : {
7927 : current_clause = current_directive->addOpenMPClause(OMPC_unified_address);
7928 : }
7929 : #line 7930 "ompparser.cc"
7930 1 : break;
7931 :
7932 1 : case 623:
7933 : #line 1046 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7934 : {
7935 : current_clause = current_directive->addOpenMPClause(OMPC_unified_shared_memory);
7936 : }
7937 : #line 7938 "ompparser.cc"
7938 1 : break;
7939 :
7940 : case 624:
7941 : #line 1050 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7942 : { }
7943 : #line 7944 "ompparser.cc"
7944 : break;
7945 :
7946 1 : case 625:
7947 : #line 1052 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7948 : { current_clause = current_directive->addOpenMPClause(OMPC_atomic_default_mem_order, OMPC_ATOMIC_DEFAULT_MEM_ORDER_seq_cst); }
7949 : #line 7950 "ompparser.cc"
7950 1 : break;
7951 :
7952 0 : case 626:
7953 : #line 1053 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7954 : { current_clause = current_directive->addOpenMPClause(OMPC_atomic_default_mem_order, OMPC_ATOMIC_DEFAULT_MEM_ORDER_acq_rel); }
7955 : #line 7956 "ompparser.cc"
7956 0 : break;
7957 :
7958 0 : case 627:
7959 : #line 1054 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7960 : { current_clause = current_directive->addOpenMPClause(OMPC_atomic_default_mem_order, OMPC_ATOMIC_DEFAULT_MEM_ORDER_relaxed); }
7961 : #line 7962 "ompparser.cc"
7962 0 : break;
7963 :
7964 1 : case 628:
7965 : #line 1056 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7966 : {
7967 : current_clause = current_directive->addOpenMPClause(OMPC_dynamic_allocators);
7968 : }
7969 : #line 7970 "ompparser.cc"
7970 1 : break;
7971 :
7972 2 : case 629:
7973 : #line 1060 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7974 : {
7975 : current_clause = current_directive->addOpenMPClause(OMPC_ext_implementation_defined_requirement);
7976 : ((OpenMPExtImplementationDefinedRequirementClause*)current_clause)->setImplementationDefinedRequirement((yyvsp[0].stype));
7977 : ((OpenMPExtImplementationDefinedRequirementClause*)current_clause)->mergeExtImplementationDefinedRequirement(current_directive, current_clause);
7978 : }
7979 : #line 7980 "ompparser.cc"
7980 : break;
7981 :
7982 8 : case 631:
7983 : #line 1068 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7984 : { current_clause = current_directive->addOpenMPClause(OMPC_device, OMPC_DEVICE_MODIFIER_unspecified); current_clause->addLangExpr((yyvsp[0].stype)); }
7985 : #line 7986 "ompparser.cc"
7986 : break;
7987 :
7988 0 : case 632:
7989 : #line 1069 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7990 : { current_clause = current_directive->addOpenMPClause(OMPC_device); current_clause->addLangExpr((yyvsp[-1].stype)); }
7991 : #line 7992 "ompparser.cc"
7992 : break;
7993 :
7994 0 : case 635:
7995 : #line 1073 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
7996 : { current_clause = current_directive->addOpenMPClause(OMPC_device, OMPC_DEVICE_MODIFIER_ancestor); }
7997 : #line 7998 "ompparser.cc"
7998 0 : break;
7999 :
8000 0 : case 636:
8001 : #line 1074 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8002 : { current_clause = current_directive->addOpenMPClause(OMPC_device, OMPC_DEVICE_MODIFIER_device_num); }
8003 : #line 8004 "ompparser.cc"
8004 0 : break;
8005 :
8006 1 : case 638:
8007 : #line 1079 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8008 : { current_clause = current_directive->addOpenMPClause(OMPC_device, OMPC_DEVICE_MODIFIER_unspecified); current_clause->addLangExpr((yyvsp[0].stype)); }
8009 : #line 8010 "ompparser.cc"
8010 : break;
8011 :
8012 0 : case 639:
8013 : #line 1080 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8014 : { current_clause = current_directive->addOpenMPClause(OMPC_device); current_clause->addLangExpr((yyvsp[-1].stype)); }
8015 : #line 8016 "ompparser.cc"
8016 : break;
8017 :
8018 0 : case 641:
8019 : #line 1083 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8020 : {
8021 : current_clause = current_directive->addOpenMPClause(OMPC_use_device_ptr);
8022 : }
8023 : #line 8024 "ompparser.cc"
8024 0 : break;
8025 :
8026 0 : case 643:
8027 : #line 1088 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8028 : {
8029 : current_clause = current_directive->addOpenMPClause(OMPC_sizes);
8030 : }
8031 : #line 8032 "ompparser.cc"
8032 0 : break;
8033 :
8034 0 : case 645:
8035 : #line 1093 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8036 : {
8037 : current_clause = current_directive->addOpenMPClause(OMPC_use_device_addr);
8038 : }
8039 : #line 8040 "ompparser.cc"
8040 0 : break;
8041 :
8042 0 : case 647:
8043 : #line 1097 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8044 : {
8045 : current_clause = current_directive->addOpenMPClause(OMPC_is_device_ptr);
8046 : }
8047 : #line 8048 "ompparser.cc"
8048 0 : break;
8049 :
8050 : case 648:
8051 : #line 1099 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8052 : {
8053 : }
8054 : #line 8055 "ompparser.cc"
8055 : break;
8056 :
8057 0 : case 649:
8058 : #line 1103 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8059 : {
8060 : current_clause = current_directive->addOpenMPClause(OMPC_has_device_addr);
8061 : }
8062 : #line 8063 "ompparser.cc"
8063 0 : break;
8064 :
8065 : case 650:
8066 : #line 1105 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8067 : {
8068 : }
8069 : #line 8070 "ompparser.cc"
8070 : break;
8071 :
8072 1 : case 651:
8073 : #line 1108 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8074 : { firstParameter = OMPC_DEFAULTMAP_BEHAVIOR_unspecified; }
8075 : #line 8076 "ompparser.cc"
8076 1 : break;
8077 :
8078 0 : case 653:
8079 : #line 1110 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8080 : { current_clause = current_directive->addOpenMPClause(OMPC_defaultmap, firstParameter,OMPC_DEFAULTMAP_CATEGORY_unspecified); }
8081 : #line 8082 "ompparser.cc"
8082 0 : break;
8083 :
8084 0 : case 655:
8085 : #line 1114 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8086 : { firstParameter=OMPC_DEFAULTMAP_BEHAVIOR_alloc; }
8087 : #line 8088 "ompparser.cc"
8088 0 : break;
8089 :
8090 0 : case 656:
8091 : #line 1115 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8092 : { firstParameter=OMPC_DEFAULTMAP_BEHAVIOR_to; }
8093 : #line 8094 "ompparser.cc"
8094 0 : break;
8095 :
8096 0 : case 657:
8097 : #line 1116 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8098 : { firstParameter=OMPC_DEFAULTMAP_BEHAVIOR_from; }
8099 : #line 8100 "ompparser.cc"
8100 0 : break;
8101 :
8102 1 : case 658:
8103 : #line 1117 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8104 : {firstParameter=OMPC_DEFAULTMAP_BEHAVIOR_tofrom; }
8105 : #line 8106 "ompparser.cc"
8106 1 : break;
8107 :
8108 0 : case 659:
8109 : #line 1118 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8110 : { firstParameter=OMPC_DEFAULTMAP_BEHAVIOR_firstprivate; }
8111 : #line 8112 "ompparser.cc"
8112 0 : break;
8113 :
8114 0 : case 660:
8115 : #line 1119 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8116 : { firstParameter=OMPC_DEFAULTMAP_BEHAVIOR_none; }
8117 : #line 8118 "ompparser.cc"
8118 0 : break;
8119 :
8120 0 : case 661:
8121 : #line 1120 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8122 : { firstParameter=OMPC_DEFAULTMAP_BEHAVIOR_default; }
8123 : #line 8124 "ompparser.cc"
8124 0 : break;
8125 :
8126 1 : case 662:
8127 : #line 1122 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8128 : { current_clause = current_directive->addOpenMPClause(OMPC_defaultmap, firstParameter,OMPC_DEFAULTMAP_CATEGORY_scalar); }
8129 : #line 8130 "ompparser.cc"
8130 1 : break;
8131 :
8132 0 : case 663:
8133 : #line 1123 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8134 : { current_clause = current_directive->addOpenMPClause(OMPC_defaultmap, firstParameter,OMPC_DEFAULTMAP_CATEGORY_aggregate); }
8135 : #line 8136 "ompparser.cc"
8136 0 : break;
8137 :
8138 0 : case 664:
8139 : #line 1124 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8140 : { current_clause = current_directive->addOpenMPClause(OMPC_defaultmap,firstParameter,OMPC_DEFAULTMAP_CATEGORY_pointer); }
8141 : #line 8142 "ompparser.cc"
8142 0 : break;
8143 :
8144 0 : case 665:
8145 : #line 1125 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8146 : { if (user_set_lang == Lang_Fortran || auto_lang == Lang_Fortran) {current_clause = current_directive->addOpenMPClause(OMPC_defaultmap,firstParameter,OMPC_DEFAULTMAP_CATEGORY_allocatable);} else { yyerror("Defaultmap clause does not support allocatable in C/C++."); YYABORT;} }
8147 : #line 8148 "ompparser.cc"
8148 0 : break;
8149 :
8150 1 : case 666:
8151 : #line 1127 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8152 : { current_clause = current_directive->addOpenMPClause(OMPC_uses_allocators); firstParameter = OMPC_USESALLOCATORS_ALLOCATOR_unspecified; firstStringParameter = ""; secondStringParameter = ""; }
8153 : #line 8154 "ompparser.cc"
8154 1 : break;
8155 :
8156 0 : case 670:
8157 : #line 1132 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8158 : { firstStringParameter = NULL; ((OpenMPUsesAllocatorsClause*)current_clause)->addUsesAllocatorsAllocatorSequence(usesAllocator, firstStringParameter, secondStringParameter); }
8159 : #line 8160 "ompparser.cc"
8160 0 : break;
8161 :
8162 2 : case 671:
8163 : #line 1133 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8164 : { firstStringParameter = (yyvsp[-1].stype); ((OpenMPUsesAllocatorsClause*)current_clause)->addUsesAllocatorsAllocatorSequence(usesAllocator, firstStringParameter, secondStringParameter); }
8165 : #line 8166 "ompparser.cc"
8166 2 : break;
8167 :
8168 0 : case 672:
8169 : #line 1134 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8170 : { usesAllocator = OMPC_USESALLOCATORS_ALLOCATOR_user; firstStringParameter = NULL; ((OpenMPUsesAllocatorsClause*)current_clause)->addUsesAllocatorsAllocatorSequence(usesAllocator, firstStringParameter, secondStringParameter); }
8171 : #line 8172 "ompparser.cc"
8172 0 : break;
8173 :
8174 0 : case 673:
8175 : #line 1135 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8176 : { usesAllocator = OMPC_USESALLOCATORS_ALLOCATOR_user; firstStringParameter = (yyvsp[-1].stype); ((OpenMPUsesAllocatorsClause*)current_clause)->addUsesAllocatorsAllocatorSequence(usesAllocator, firstStringParameter, secondStringParameter); }
8177 : #line 8178 "ompparser.cc"
8178 0 : break;
8179 :
8180 1 : case 674:
8181 : #line 1138 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8182 : { usesAllocator = OMPC_USESALLOCATORS_ALLOCATOR_default; }
8183 : #line 8184 "ompparser.cc"
8184 1 : break;
8185 :
8186 0 : case 675:
8187 : #line 1139 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8188 : { usesAllocator = OMPC_USESALLOCATORS_ALLOCATOR_large_cap; }
8189 : #line 8190 "ompparser.cc"
8190 0 : break;
8191 :
8192 1 : case 676:
8193 : #line 1140 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8194 : { usesAllocator = OMPC_USESALLOCATORS_ALLOCATOR_cons_mem; }
8195 : #line 8196 "ompparser.cc"
8196 1 : break;
8197 :
8198 0 : case 677:
8199 : #line 1141 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8200 : { usesAllocator = OMPC_USESALLOCATORS_ALLOCATOR_high_bw; }
8201 : #line 8202 "ompparser.cc"
8202 0 : break;
8203 :
8204 0 : case 678:
8205 : #line 1142 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8206 : { usesAllocator = OMPC_USESALLOCATORS_ALLOCATOR_low_lat;}
8207 : #line 8208 "ompparser.cc"
8208 0 : break;
8209 :
8210 0 : case 679:
8211 : #line 1143 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8212 : { usesAllocator = OMPC_USESALLOCATORS_ALLOCATOR_cgroup; }
8213 : #line 8214 "ompparser.cc"
8214 0 : break;
8215 :
8216 0 : case 680:
8217 : #line 1144 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8218 : { usesAllocator = OMPC_USESALLOCATORS_ALLOCATOR_pteam; }
8219 : #line 8220 "ompparser.cc"
8220 0 : break;
8221 :
8222 0 : case 681:
8223 : #line 1145 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8224 : { usesAllocator = OMPC_USESALLOCATORS_ALLOCATOR_thread; }
8225 : #line 8226 "ompparser.cc"
8226 0 : break;
8227 :
8228 0 : case 682:
8229 : #line 1147 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8230 : { usesAllocator = OMPC_USESALLOCATORS_ALLOCATOR_unspecified; secondStringParameter = (yyvsp[0].stype); }
8231 : #line 8232 "ompparser.cc"
8232 0 : break;
8233 :
8234 0 : case 684:
8235 : #line 1150 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8236 : { current_clause = current_directive->addOpenMPClause(OMPC_to, OMPC_TO_unspecified); current_clause->addLangExpr((yyvsp[0].stype)); }
8237 : #line 8238 "ompparser.cc"
8238 : break;
8239 :
8240 1 : case 685:
8241 : #line 1151 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8242 : { current_clause = current_directive->addOpenMPClause(OMPC_to, OMPC_TO_unspecified); current_clause->addLangExpr((yyvsp[-1].stype)); }
8243 : #line 8244 "ompparser.cc"
8244 : break;
8245 :
8246 1 : case 688:
8247 : #line 1154 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8248 : { current_clause = current_directive->addOpenMPClause(OMPC_to, OMPC_TO_mapper);
8249 : }
8250 : #line 8251 "ompparser.cc"
8251 1 : break;
8252 :
8253 1 : case 689:
8254 : #line 1155 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8255 : { ((OpenMPToClause*)current_clause)->setMapperIdentifier((yyvsp[-1].stype)); }
8256 : #line 8257 "ompparser.cc"
8257 : break;
8258 :
8259 0 : case 691:
8260 : #line 1159 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8261 : { current_clause = current_directive->addOpenMPClause(OMPC_from, OMPC_FROM_unspecified); current_clause->addLangExpr((yyvsp[0].stype)); }
8262 : #line 8263 "ompparser.cc"
8263 : break;
8264 :
8265 0 : case 692:
8266 : #line 1160 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8267 : { current_clause = current_directive->addOpenMPClause(OMPC_from, OMPC_FROM_unspecified); current_clause->addLangExpr((yyvsp[-1].stype)); }
8268 : #line 8269 "ompparser.cc"
8269 : break;
8270 :
8271 1 : case 695:
8272 : #line 1163 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8273 : { current_clause = current_directive->addOpenMPClause(OMPC_from, OMPC_FROM_mapper);
8274 : }
8275 : #line 8276 "ompparser.cc"
8276 1 : break;
8277 :
8278 1 : case 696:
8279 : #line 1164 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8280 : { ((OpenMPFromClause*)current_clause)->setMapperIdentifier((yyvsp[-1].stype)); }
8281 : #line 8282 "ompparser.cc"
8282 : break;
8283 :
8284 0 : case 697:
8285 : #line 1166 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8286 : {
8287 : current_clause = current_directive->addOpenMPClause(OMPC_link);
8288 : }
8289 : #line 8290 "ompparser.cc"
8290 0 : break;
8291 :
8292 : case 698:
8293 : #line 1168 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8294 : {
8295 : }
8296 : #line 8297 "ompparser.cc"
8297 : break;
8298 :
8299 : case 699:
8300 : #line 1171 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8301 : { }
8302 : #line 8303 "ompparser.cc"
8303 : break;
8304 :
8305 0 : case 700:
8306 : #line 1173 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8307 : { current_clause = current_directive->addOpenMPClause(OMPC_device_type, OMPC_DEVICE_TYPE_host); }
8308 : #line 8309 "ompparser.cc"
8309 0 : break;
8310 :
8311 0 : case 701:
8312 : #line 1174 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8313 : { current_clause = current_directive->addOpenMPClause(OMPC_device_type, OMPC_DEVICE_TYPE_nohost); }
8314 : #line 8315 "ompparser.cc"
8315 0 : break;
8316 :
8317 0 : case 702:
8318 : #line 1175 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8319 : { current_clause = current_directive->addOpenMPClause(OMPC_device_type, OMPC_DEVICE_TYPE_any); }
8320 : #line 8321 "ompparser.cc"
8321 0 : break;
8322 :
8323 43 : case 703:
8324 : #line 1178 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8325 : { firstParameter = OMPC_MAP_MODIFIER_unspecified; secondParameter = OMPC_MAP_MODIFIER_unspecified; thirdParameter = OMPC_MAP_MODIFIER_unspecified; }
8326 : #line 8327 "ompparser.cc"
8327 43 : break;
8328 :
8329 0 : case 705:
8330 : #line 1180 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8331 : { current_clause = current_directive->addOpenMPClause(OMPC_map, firstParameter, secondParameter,thirdParameter, OMPC_MAP_TYPE_unspecified, firstStringParameter); current_clause->addLangExpr((yyvsp[0].stype)); }
8332 : #line 8333 "ompparser.cc"
8333 : break;
8334 :
8335 0 : case 706:
8336 : #line 1181 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8337 : { current_clause = current_directive->addOpenMPClause(OMPC_map, firstParameter, secondParameter,thirdParameter, OMPC_MAP_TYPE_unspecified, firstStringParameter); current_clause->addLangExpr((yyvsp[-1].stype)); }
8338 : #line 8339 "ompparser.cc"
8339 : break;
8340 :
8341 0 : case 720:
8342 : #line 1199 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8343 : { firstParameter = OMPC_MAP_MODIFIER_always; }
8344 : #line 8345 "ompparser.cc"
8345 0 : break;
8346 :
8347 0 : case 721:
8348 : #line 1200 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8349 : { firstParameter = OMPC_MAP_MODIFIER_close; }
8350 : #line 8351 "ompparser.cc"
8351 0 : break;
8352 :
8353 0 : case 722:
8354 : #line 1201 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8355 : { firstParameter = OMPC_MAP_MODIFIER_mapper; }
8356 : #line 8357 "ompparser.cc"
8357 0 : break;
8358 :
8359 0 : case 723:
8360 : #line 1203 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8361 : { if (firstParameter == OMPC_MAP_MODIFIER_always) { yyerror("ALWAYS modifier can appear in the map clause only once\n"); YYABORT; } else { secondParameter = OMPC_MAP_MODIFIER_always; }}
8362 : #line 8363 "ompparser.cc"
8363 0 : break;
8364 :
8365 0 : case 724:
8366 : #line 1204 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8367 : { if (firstParameter == OMPC_MAP_MODIFIER_close) { yyerror("CLOSE modifier can appear in the map clause only once\n"); YYABORT;} else { secondParameter = OMPC_MAP_MODIFIER_close; }}
8368 : #line 8369 "ompparser.cc"
8369 0 : break;
8370 :
8371 0 : case 725:
8372 : #line 1205 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8373 : { if (firstParameter == OMPC_MAP_MODIFIER_mapper) { yyerror("MAPPER modifier can appear in the map clause only once\n"); YYABORT; } else { secondParameter = OMPC_MAP_MODIFIER_mapper; }}
8374 : #line 8375 "ompparser.cc"
8375 0 : break;
8376 :
8377 0 : case 726:
8378 : #line 1207 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8379 : { if (firstParameter == OMPC_MAP_MODIFIER_always || secondParameter==OMPC_MAP_MODIFIER_always) { yyerror("ALWAYS modifier can appear in the map clause only once\n"); YYABORT; } else { thirdParameter = OMPC_MAP_MODIFIER_always; }}
8380 : #line 8381 "ompparser.cc"
8381 0 : break;
8382 :
8383 0 : case 727:
8384 : #line 1208 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8385 : { if (firstParameter == OMPC_MAP_MODIFIER_close || secondParameter==OMPC_MAP_MODIFIER_close) { yyerror("CLOSE modifier can appear in the map clause only once\n"); YYABORT; } else { thirdParameter = OMPC_MAP_MODIFIER_close; }}
8386 : #line 8387 "ompparser.cc"
8387 0 : break;
8388 :
8389 0 : case 728:
8390 : #line 1209 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8391 : { if (firstParameter == OMPC_MAP_MODIFIER_mapper || secondParameter==OMPC_MAP_MODIFIER_mapper) { yyerror("MAPPER modifier can appear in the map clause only once\n"); YYABORT; } else { thirdParameter = OMPC_MAP_MODIFIER_mapper; }}
8392 : #line 8393 "ompparser.cc"
8393 0 : break;
8394 :
8395 21 : case 729:
8396 : #line 1211 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8397 : { current_clause = current_directive->addOpenMPClause(OMPC_map, firstParameter, secondParameter,thirdParameter, OMPC_MAP_TYPE_to, firstStringParameter); }
8398 : #line 8399 "ompparser.cc"
8399 21 : break;
8400 :
8401 12 : case 730:
8402 : #line 1212 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8403 : { current_clause = current_directive->addOpenMPClause(OMPC_map, firstParameter, secondParameter, thirdParameter, OMPC_MAP_TYPE_from, firstStringParameter); }
8404 : #line 8405 "ompparser.cc"
8405 12 : break;
8406 :
8407 8 : case 731:
8408 : #line 1213 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8409 : { current_clause = current_directive->addOpenMPClause(OMPC_map, firstParameter, secondParameter, thirdParameter, OMPC_MAP_TYPE_tofrom, firstStringParameter); }
8410 : #line 8411 "ompparser.cc"
8411 8 : break;
8412 :
8413 2 : case 732:
8414 : #line 1214 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8415 : { current_clause = current_directive->addOpenMPClause(OMPC_map, firstParameter, secondParameter, thirdParameter, OMPC_MAP_TYPE_alloc, firstStringParameter); }
8416 : #line 8417 "ompparser.cc"
8417 2 : break;
8418 :
8419 0 : case 733:
8420 : #line 1215 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8421 : { current_clause = current_directive->addOpenMPClause(OMPC_map, firstParameter, secondParameter, thirdParameter, OMPC_MAP_TYPE_release, firstStringParameter); }
8422 : #line 8423 "ompparser.cc"
8423 0 : break;
8424 :
8425 0 : case 734:
8426 : #line 1216 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8427 : { current_clause = current_directive->addOpenMPClause(OMPC_map, firstParameter, secondParameter, thirdParameter, OMPC_MAP_TYPE_delete, firstStringParameter); }
8428 : #line 8429 "ompparser.cc"
8429 0 : break;
8430 :
8431 0 : case 735:
8432 : #line 1218 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8433 : { firstStringParameter = (yyvsp[-1].stype); }
8434 : #line 8435 "ompparser.cc"
8435 0 : break;
8436 :
8437 : case 736:
8438 : #line 1221 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8439 : {
8440 : }
8441 : #line 8442 "ompparser.cc"
8442 : break;
8443 :
8444 0 : case 738:
8445 : #line 1225 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8446 : { current_clause = current_directive->addOpenMPClause(OMPC_task_reduction,OMPC_TASK_REDUCTION_IDENTIFIER_user, (yyvsp[0].stype)); }
8447 : #line 8448 "ompparser.cc"
8448 0 : break;
8449 :
8450 0 : case 739:
8451 : #line 1228 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8452 : { current_clause = current_directive->addOpenMPClause(OMPC_task_reduction,OMPC_TASK_REDUCTION_IDENTIFIER_plus); }
8453 : #line 8454 "ompparser.cc"
8454 0 : break;
8455 :
8456 0 : case 740:
8457 : #line 1229 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8458 : { current_clause = current_directive->addOpenMPClause(OMPC_task_reduction,OMPC_TASK_REDUCTION_IDENTIFIER_minus); }
8459 : #line 8460 "ompparser.cc"
8460 0 : break;
8461 :
8462 0 : case 741:
8463 : #line 1230 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8464 : { current_clause = current_directive->addOpenMPClause(OMPC_task_reduction,OMPC_TASK_REDUCTION_IDENTIFIER_mul); }
8465 : #line 8466 "ompparser.cc"
8466 0 : break;
8467 :
8468 0 : case 742:
8469 : #line 1231 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8470 : { current_clause = current_directive->addOpenMPClause(OMPC_task_reduction,OMPC_TASK_REDUCTION_IDENTIFIER_bitand); }
8471 : #line 8472 "ompparser.cc"
8472 0 : break;
8473 :
8474 0 : case 743:
8475 : #line 1232 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8476 : { current_clause = current_directive->addOpenMPClause(OMPC_task_reduction,OMPC_TASK_REDUCTION_IDENTIFIER_bitor); }
8477 : #line 8478 "ompparser.cc"
8478 0 : break;
8479 :
8480 0 : case 744:
8481 : #line 1233 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8482 : { current_clause = current_directive->addOpenMPClause(OMPC_task_reduction,OMPC_TASK_REDUCTION_IDENTIFIER_bitxor); }
8483 : #line 8484 "ompparser.cc"
8484 0 : break;
8485 :
8486 0 : case 745:
8487 : #line 1234 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8488 : { current_clause = current_directive->addOpenMPClause(OMPC_task_reduction,OMPC_TASK_REDUCTION_IDENTIFIER_logand); }
8489 : #line 8490 "ompparser.cc"
8490 0 : break;
8491 :
8492 0 : case 746:
8493 : #line 1235 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8494 : { current_clause = current_directive->addOpenMPClause(OMPC_task_reduction,OMPC_TASK_REDUCTION_IDENTIFIER_logor); }
8495 : #line 8496 "ompparser.cc"
8496 0 : break;
8497 :
8498 0 : case 747:
8499 : #line 1236 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8500 : { current_clause = current_directive->addOpenMPClause(OMPC_task_reduction,OMPC_TASK_REDUCTION_IDENTIFIER_max); }
8501 : #line 8502 "ompparser.cc"
8502 0 : break;
8503 :
8504 0 : case 748:
8505 : #line 1237 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8506 : { current_clause = current_directive->addOpenMPClause(OMPC_task_reduction,OMPC_TASK_REDUCTION_IDENTIFIER_min); }
8507 : #line 8508 "ompparser.cc"
8508 0 : break;
8509 :
8510 0 : case 761:
8511 : #line 1256 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8512 : {
8513 : current_clause = current_directive->addOpenMPClause(OMPC_threads);
8514 : }
8515 : #line 8516 "ompparser.cc"
8516 0 : break;
8517 :
8518 0 : case 762:
8519 : #line 1260 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8520 : {
8521 : current_clause = current_directive->addOpenMPClause(OMPC_simd);
8522 : }
8523 : #line 8524 "ompparser.cc"
8524 0 : break;
8525 :
8526 1 : case 763:
8527 : #line 1264 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8528 : {
8529 : current_directive = new OpenMPDirective(OMPD_teams_distribute);
8530 : }
8531 : #line 8532 "ompparser.cc"
8532 1 : break;
8533 :
8534 1 : case 781:
8535 : #line 1288 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8536 : {
8537 : current_directive = new OpenMPDirective(OMPD_teams_distribute_simd);
8538 : }
8539 : #line 8540 "ompparser.cc"
8540 1 : break;
8541 :
8542 1 : case 806:
8543 : #line 1319 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8544 : {
8545 : current_directive = new OpenMPDirective(OMPD_teams_distribute_parallel_for);
8546 : }
8547 : #line 8548 "ompparser.cc"
8548 1 : break;
8549 :
8550 0 : case 833:
8551 : #line 1352 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8552 : {
8553 : current_directive = new OpenMPDirective(OMPD_teams_distribute_parallel_do);
8554 : }
8555 : #line 8556 "ompparser.cc"
8556 0 : break;
8557 :
8558 1 : case 860:
8559 : #line 1385 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8560 : {
8561 : current_directive = new OpenMPDirective(OMPD_teams_distribute_parallel_for_simd);
8562 : }
8563 : #line 8564 "ompparser.cc"
8564 1 : break;
8565 :
8566 0 : case 891:
8567 : #line 1422 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8568 : {
8569 : current_directive = new OpenMPDirective(OMPD_teams_distribute_parallel_do_simd);
8570 : }
8571 : #line 8572 "ompparser.cc"
8572 0 : break;
8573 :
8574 1 : case 922:
8575 : #line 1459 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8576 : {
8577 : current_directive = new OpenMPDirective(OMPD_teams_loop);
8578 : }
8579 : #line 8580 "ompparser.cc"
8580 1 : break;
8581 :
8582 1 : case 941:
8583 : #line 1484 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8584 : {
8585 : current_directive = new OpenMPDirective(OMPD_target_parallel);
8586 : }
8587 : #line 8588 "ompparser.cc"
8588 1 : break;
8589 :
8590 0 : case 966:
8591 : #line 1515 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8592 : {
8593 : current_directive = new OpenMPDirective(OMPD_target_parallel_for);
8594 : }
8595 : #line 8596 "ompparser.cc"
8596 0 : break;
8597 :
8598 0 : case 998:
8599 : #line 1553 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8600 : {
8601 : current_directive = new OpenMPDirective(OMPD_target_parallel_do);
8602 : }
8603 : #line 8604 "ompparser.cc"
8604 0 : break;
8605 :
8606 1 : case 1030:
8607 : #line 1591 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8608 : {
8609 : current_directive = new OpenMPDirective(OMPD_target_parallel_for_simd);
8610 : }
8611 : #line 8612 "ompparser.cc"
8612 1 : break;
8613 :
8614 0 : case 1065:
8615 : #line 1632 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8616 : {
8617 : current_directive = new OpenMPDirective(OMPD_target_parallel_do_simd);
8618 : }
8619 : #line 8620 "ompparser.cc"
8620 0 : break;
8621 :
8622 1 : case 1100:
8623 : #line 1673 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8624 : {
8625 : current_directive = new OpenMPDirective(OMPD_target_parallel_loop);
8626 : }
8627 : #line 8628 "ompparser.cc"
8628 1 : break;
8629 :
8630 1 : case 1129:
8631 : #line 1708 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8632 : {
8633 : current_directive = new OpenMPDirective(OMPD_target_simd);
8634 : }
8635 : #line 8636 "ompparser.cc"
8636 1 : break;
8637 :
8638 4 : case 1157:
8639 : #line 1742 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8640 : {
8641 : current_directive = new OpenMPDirective(OMPD_target_teams);
8642 : }
8643 : #line 8644 "ompparser.cc"
8644 4 : break;
8645 :
8646 1 : case 1181:
8647 : #line 1772 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8648 : {
8649 : current_directive = new OpenMPDirective(OMPD_target_teams_distribute);
8650 : }
8651 : #line 8652 "ompparser.cc"
8652 1 : break;
8653 :
8654 1 : case 1208:
8655 : #line 1805 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8656 : {
8657 : current_directive = new OpenMPDirective(OMPD_target_teams_distribute_simd);
8658 : }
8659 : #line 8660 "ompparser.cc"
8660 1 : break;
8661 :
8662 1 : case 1241:
8663 : #line 1844 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8664 : {
8665 : current_directive = new OpenMPDirective(OMPD_target_teams_loop);
8666 : }
8667 : #line 8668 "ompparser.cc"
8668 1 : break;
8669 :
8670 1 : case 1269:
8671 : #line 1878 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8672 : {
8673 : current_directive = new OpenMPDirective(OMPD_target_teams_distribute_parallel_for);
8674 : }
8675 : #line 8676 "ompparser.cc"
8676 1 : break;
8677 :
8678 0 : case 1303:
8679 : #line 1918 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8680 : {
8681 : current_directive = new OpenMPDirective(OMPD_target_teams_distribute_parallel_do);
8682 : }
8683 : #line 8684 "ompparser.cc"
8684 0 : break;
8685 :
8686 1 : case 1337:
8687 : #line 1958 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8688 : {
8689 : current_directive = new OpenMPDirective(OMPD_target_teams_distribute_parallel_for_simd);
8690 : }
8691 : #line 8692 "ompparser.cc"
8692 1 : break;
8693 :
8694 0 : case 1375:
8695 : #line 2002 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8696 : {
8697 : current_directive = new OpenMPDirective(OMPD_target_teams_distribute_parallel_do_simd);
8698 : }
8699 : #line 8700 "ompparser.cc"
8700 0 : break;
8701 :
8702 90 : case 1413:
8703 : #line 2047 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8704 : {
8705 : current_directive = new OpenMPDirective(OMPD_for);
8706 : }
8707 : #line 8708 "ompparser.cc"
8708 90 : break;
8709 :
8710 3 : case 1415:
8711 : #line 2052 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8712 : {
8713 : current_directive = new OpenMPDirective(OMPD_do);
8714 : }
8715 : #line 8716 "ompparser.cc"
8716 3 : break;
8717 :
8718 2 : case 1417:
8719 : #line 2057 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8720 : {
8721 : current_directive = new OpenMPDirective(OMPD_do);
8722 : }
8723 : #line 8724 "ompparser.cc"
8724 2 : break;
8725 :
8726 14 : case 1419:
8727 : #line 2062 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8728 : {
8729 : current_directive = new OpenMPDirective(OMPD_simd);
8730 : }
8731 : #line 8732 "ompparser.cc"
8732 14 : break;
8733 :
8734 1 : case 1421:
8735 : #line 2067 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8736 : {
8737 : current_directive = new OpenMPDirective(OMPD_for_simd);
8738 : }
8739 : #line 8740 "ompparser.cc"
8740 1 : break;
8741 :
8742 0 : case 1423:
8743 : #line 2072 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8744 : {
8745 : current_directive = new OpenMPDirective(OMPD_do_simd);
8746 : }
8747 : #line 8748 "ompparser.cc"
8748 0 : break;
8749 :
8750 0 : case 1425:
8751 : #line 2077 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8752 : {
8753 : current_directive = new OpenMPDirective(OMPD_do_simd);
8754 : }
8755 : #line 8756 "ompparser.cc"
8756 0 : break;
8757 :
8758 0 : case 1427:
8759 : #line 2082 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8760 : {
8761 : current_directive = new OpenMPDirective(OMPD_parallel_for_simd);
8762 : }
8763 : #line 8764 "ompparser.cc"
8764 0 : break;
8765 :
8766 0 : case 1429:
8767 : #line 2087 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8768 : {
8769 : current_directive = new OpenMPDirective(OMPD_parallel_do_simd);
8770 : }
8771 : #line 8772 "ompparser.cc"
8772 0 : break;
8773 :
8774 3 : case 1431:
8775 : #line 2092 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8776 : {
8777 : current_directive = new OpenMPDeclareSimdDirective;
8778 : }
8779 : #line 8780 "ompparser.cc"
8780 3 : break;
8781 :
8782 0 : case 1433:
8783 : #line 2097 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8784 : {
8785 : current_directive = new OpenMPDeclareSimdDirective();
8786 : }
8787 : #line 8788 "ompparser.cc"
8788 0 : break;
8789 :
8790 0 : case 1436:
8791 : #line 2103 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8792 : { ((OpenMPDeclareSimdDirective*)current_directive)->addProcName((yyvsp[0].stype)); }
8793 : #line 8794 "ompparser.cc"
8794 0 : break;
8795 :
8796 2 : case 1437:
8797 : #line 2105 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8798 : {
8799 : current_directive = new OpenMPDirective(OMPD_distribute);
8800 : }
8801 : #line 8802 "ompparser.cc"
8802 2 : break;
8803 :
8804 1 : case 1439:
8805 : #line 2110 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8806 : {
8807 : current_directive = new OpenMPDirective(OMPD_distribute_simd);
8808 : }
8809 : #line 8810 "ompparser.cc"
8810 1 : break;
8811 :
8812 1 : case 1441:
8813 : #line 2115 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8814 : {
8815 : current_directive = new OpenMPDirective(OMPD_distribute_parallel_for);
8816 : }
8817 : #line 8818 "ompparser.cc"
8818 1 : break;
8819 :
8820 0 : case 1443:
8821 : #line 2120 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8822 : {
8823 : current_directive = new OpenMPDirective(OMPD_distribute_parallel_do);
8824 : }
8825 : #line 8826 "ompparser.cc"
8826 0 : break;
8827 :
8828 1 : case 1445:
8829 : #line 2125 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8830 : {
8831 : current_directive = new OpenMPDirective(OMPD_distribute_parallel_for_simd);
8832 : }
8833 : #line 8834 "ompparser.cc"
8834 1 : break;
8835 :
8836 0 : case 1447:
8837 : #line 2130 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8838 : {
8839 : current_directive = new OpenMPDirective(OMPD_distribute_parallel_do_simd);
8840 : }
8841 : #line 8842 "ompparser.cc"
8842 0 : break;
8843 :
8844 95 : case 1449:
8845 : #line 2135 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8846 : {
8847 : current_directive = new OpenMPDirective(OMPD_parallel_for);
8848 : }
8849 : #line 8850 "ompparser.cc"
8850 95 : break;
8851 :
8852 10 : case 1451:
8853 : #line 2140 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8854 : {
8855 : current_directive = new OpenMPDirective(OMPD_parallel_do);
8856 : }
8857 : #line 8858 "ompparser.cc"
8858 10 : break;
8859 :
8860 1 : case 1453:
8861 : #line 2145 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8862 : {
8863 : current_directive = new OpenMPDirective(OMPD_parallel_loop);
8864 : }
8865 : #line 8866 "ompparser.cc"
8866 1 : break;
8867 :
8868 1 : case 1455:
8869 : #line 2150 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8870 : {
8871 : current_directive = new OpenMPDirective(OMPD_parallel_sections);
8872 : }
8873 : #line 8874 "ompparser.cc"
8874 1 : break;
8875 :
8876 0 : case 1457:
8877 : #line 2155 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8878 : {
8879 : if (user_set_lang == Lang_Fortran || auto_lang == Lang_Fortran) {
8880 : current_directive = new OpenMPDirective(OMPD_parallel_workshare); } else {
8881 : yyerror("parallel workshare is only supported in Fortran");
8882 : YYABORT;
8883 : }
8884 : }
8885 : #line 8886 "ompparser.cc"
8886 0 : break;
8887 :
8888 3 : case 1459:
8889 : #line 2164 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8890 : {
8891 : current_directive = new OpenMPDirective(OMPD_parallel_master);
8892 : }
8893 : #line 8894 "ompparser.cc"
8894 3 : break;
8895 :
8896 2 : case 1461:
8897 : #line 2169 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8898 : {
8899 : current_directive = new OpenMPDirective(OMPD_master_taskloop);
8900 : }
8901 : #line 8902 "ompparser.cc"
8902 2 : break;
8903 :
8904 2 : case 1463:
8905 : #line 2174 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8906 : {
8907 : current_directive = new OpenMPDirective(OMPD_master_taskloop_simd);
8908 : }
8909 : #line 8910 "ompparser.cc"
8910 2 : break;
8911 :
8912 1 : case 1465:
8913 : #line 2179 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8914 : {
8915 : current_directive = new OpenMPDirective(OMPD_parallel_master_taskloop);
8916 : }
8917 : #line 8918 "ompparser.cc"
8918 1 : break;
8919 :
8920 1 : case 1467:
8921 : #line 2184 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8922 : {
8923 : current_directive = new OpenMPDirective(OMPD_parallel_master_taskloop_simd);
8924 : }
8925 : #line 8926 "ompparser.cc"
8926 1 : break;
8927 :
8928 1 : case 1469:
8929 : #line 2189 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8930 : {
8931 : current_directive = new OpenMPDirective(OMPD_loop);
8932 : }
8933 : #line 8934 "ompparser.cc"
8934 1 : break;
8935 :
8936 1 : case 1471:
8937 : #line 2194 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8938 : {
8939 : current_directive = new OpenMPDirective(OMPD_scan);
8940 : }
8941 : #line 8942 "ompparser.cc"
8942 1 : break;
8943 :
8944 10 : case 1473:
8945 : #line 2199 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8946 : {
8947 : current_directive = new OpenMPDirective(OMPD_sections);
8948 : }
8949 : #line 8950 "ompparser.cc"
8950 10 : break;
8951 :
8952 1 : case 1475:
8953 : #line 2204 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8954 : {
8955 : current_directive = new OpenMPDirective(OMPD_sections);
8956 : }
8957 : #line 8958 "ompparser.cc"
8958 1 : break;
8959 :
8960 29 : case 1477:
8961 : #line 2209 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8962 : {
8963 : current_directive = new OpenMPDirective(OMPD_section);
8964 : }
8965 : #line 8966 "ompparser.cc"
8966 29 : break;
8967 :
8968 84 : case 1478:
8969 : #line 2213 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8970 : {
8971 : current_directive = new OpenMPDirective(OMPD_single);
8972 : }
8973 : #line 8974 "ompparser.cc"
8974 84 : break;
8975 :
8976 7 : case 1480:
8977 : #line 2218 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8978 : {
8979 : current_directive = new OpenMPDirective(OMPD_single);
8980 : }
8981 : #line 8982 "ompparser.cc"
8982 7 : break;
8983 :
8984 0 : case 1482:
8985 : #line 2223 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8986 : {
8987 : if (user_set_lang == Lang_Fortran || auto_lang == Lang_Fortran) {
8988 : current_directive = new OpenMPDirective(OMPD_workshare); } else {
8989 : yyerror("workshare is only supported in Fortran");
8990 : YYABORT;
8991 : }
8992 : }
8993 : #line 8994 "ompparser.cc"
8994 0 : break;
8995 :
8996 0 : case 1483:
8997 : #line 2231 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
8998 : {
8999 : current_directive = new OpenMPDirective(OMPD_workshare);
9000 : }
9001 : #line 9002 "ompparser.cc"
9002 0 : break;
9003 :
9004 1 : case 1485:
9005 : #line 2236 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9006 : {
9007 : current_directive = new OpenMPDirective(OMPD_cancel);
9008 : }
9009 : #line 9010 "ompparser.cc"
9010 1 : break;
9011 :
9012 1 : case 1487:
9013 : #line 2246 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9014 : {
9015 : current_directive = new OpenMPDirective(OMPD_cancellation_point);
9016 : }
9017 : #line 9018 "ompparser.cc"
9018 1 : break;
9019 :
9020 3 : case 1489:
9021 : #line 2256 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9022 : {
9023 : current_directive = new OpenMPDirective(OMPD_teams);
9024 : }
9025 : #line 9026 "ompparser.cc"
9026 3 : break;
9027 :
9028 1 : case 1491:
9029 : #line 2262 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9030 : {
9031 : current_directive = new OpenMPAllocateDirective();
9032 : }
9033 : #line 9034 "ompparser.cc"
9034 1 : break;
9035 :
9036 1 : case 1494:
9037 : #line 2270 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9038 : { ((OpenMPAllocateDirective*)current_directive)->addAllocateList((yyvsp[0].stype)); }
9039 : #line 9040 "ompparser.cc"
9040 : break;
9041 :
9042 7 : case 1497:
9043 : #line 2276 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9044 : { current_directive = new OpenMPThreadprivateDirective(); }
9045 : #line 9046 "ompparser.cc"
9046 7 : break;
9047 :
9048 10 : case 1499:
9049 : #line 2278 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9050 : { ((OpenMPThreadprivateDirective*)current_directive)->addThreadprivateList((yyvsp[0].stype)); }
9051 : #line 9052 "ompparser.cc"
9052 : break;
9053 :
9054 0 : case 1502:
9055 : #line 2284 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9056 : { current_directive = new OpenMPDeclareReductionDirective(); }
9057 : #line 9058 "ompparser.cc"
9058 0 : break;
9059 :
9060 0 : case 1505:
9061 : #line 2290 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9062 : { ((OpenMPDeclareReductionDirective*)current_directive)->setIdentifier("+"); }
9063 : #line 9064 "ompparser.cc"
9064 0 : break;
9065 :
9066 0 : case 1506:
9067 : #line 2291 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9068 : { ((OpenMPDeclareReductionDirective*)current_directive)->setIdentifier("-"); }
9069 : #line 9070 "ompparser.cc"
9070 0 : break;
9071 :
9072 0 : case 1507:
9073 : #line 2292 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9074 : { ((OpenMPDeclareReductionDirective*)current_directive)->setIdentifier("*"); }
9075 : #line 9076 "ompparser.cc"
9076 0 : break;
9077 :
9078 0 : case 1508:
9079 : #line 2293 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9080 : { ((OpenMPDeclareReductionDirective*)current_directive)->setIdentifier("&"); }
9081 : #line 9082 "ompparser.cc"
9082 0 : break;
9083 :
9084 0 : case 1509:
9085 : #line 2294 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9086 : { ((OpenMPDeclareReductionDirective*)current_directive)->setIdentifier("|"); }
9087 : #line 9088 "ompparser.cc"
9088 0 : break;
9089 :
9090 0 : case 1510:
9091 : #line 2295 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9092 : { ((OpenMPDeclareReductionDirective*)current_directive)->setIdentifier("^"); }
9093 : #line 9094 "ompparser.cc"
9094 0 : break;
9095 :
9096 0 : case 1511:
9097 : #line 2296 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9098 : { ((OpenMPDeclareReductionDirective*)current_directive)->setIdentifier("&&"); }
9099 : #line 9100 "ompparser.cc"
9100 0 : break;
9101 :
9102 0 : case 1512:
9103 : #line 2297 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9104 : { ((OpenMPDeclareReductionDirective*)current_directive)->setIdentifier("||"); }
9105 : #line 9106 "ompparser.cc"
9106 0 : break;
9107 :
9108 0 : case 1513:
9109 : #line 2300 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9110 : { ((OpenMPDeclareReductionDirective*)current_directive)->addTypenameList((yyvsp[0].stype)); }
9111 : #line 9112 "ompparser.cc"
9112 : break;
9113 :
9114 0 : case 1516:
9115 : #line 2305 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9116 : { ((OpenMPDeclareReductionDirective*)current_directive)->setCombiner((yyvsp[0].stype)); }
9117 : #line 9118 "ompparser.cc"
9118 : break;
9119 :
9120 0 : case 1517:
9121 : #line 2308 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9122 : { current_directive = new OpenMPDeclareMapperDirective(OMPD_DECLARE_MAPPER_IDENTIFIER_unspecified); }
9123 : #line 9124 "ompparser.cc"
9124 0 : break;
9125 :
9126 0 : case 1522:
9127 : #line 2318 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9128 : { ((OpenMPDeclareMapperDirective*)current_directive)->setIdentifier(OMPD_DECLARE_MAPPER_IDENTIFIER_default); }
9129 : #line 9130 "ompparser.cc"
9130 : break;
9131 :
9132 0 : case 1523:
9133 : #line 2319 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9134 : { ((OpenMPDeclareMapperDirective*)current_directive)->setIdentifier(OMPD_DECLARE_MAPPER_IDENTIFIER_user); ((OpenMPDeclareMapperDirective*)current_directive)->setUserDefinedIdentifier((yyvsp[0].stype)); }
9135 : #line 9136 "ompparser.cc"
9136 0 : break;
9137 :
9138 0 : case 1524:
9139 : #line 2322 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9140 : {
9141 : if (user_set_lang == Lang_C || auto_lang == Lang_C) {
9142 : const char * _type_var = (yyvsp[0].stype);
9143 : std::string type_var = std::string(_type_var);
9144 : int length = type_var.length() - 1;
9145 : for (int i = length; i >= 0; i--) {
9146 : if (type_var[i] == ' ' || type_var[i] == '*') {
9147 : std::string _type = type_var.substr(0, i + 1);
9148 : std::string _var = type_var.substr(i + 1, length - i);
9149 : const char* type = _type.c_str();
9150 : const char* var = _var.c_str();
9151 : ((OpenMPDeclareMapperDirective*)current_directive)->setDeclareMapperType(type);
9152 : ((OpenMPDeclareMapperDirective*)current_directive)->setDeclareMapperVar(var);
9153 : break;
9154 : }
9155 : }
9156 : } else {
9157 : yyerror("The syntax should be \"type :: var\" in Fortran");
9158 : YYABORT;
9159 : }
9160 : }
9161 : #line 9162 "ompparser.cc"
9162 0 : break;
9163 :
9164 0 : case 1525:
9165 : #line 2343 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9166 : { if (user_set_lang == Lang_C || auto_lang == Lang_C) yyerror("The syntax should be \"type var\" in C"); YYABORT; }
9167 : #line 9168 "ompparser.cc"
9168 0 : break;
9169 :
9170 0 : case 1526:
9171 : #line 2346 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9172 : { ((OpenMPDeclareMapperDirective*)current_directive)->setDeclareMapperType((yyvsp[0].stype)); }
9173 : #line 9174 "ompparser.cc"
9174 : break;
9175 :
9176 0 : case 1527:
9177 : #line 2349 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9178 : { ((OpenMPDeclareMapperDirective*)current_directive)->setDeclareMapperVar((yyvsp[0].stype)); }
9179 : #line 9180 "ompparser.cc"
9180 : break;
9181 :
9182 2 : case 2097:
9183 : #line 3058 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9184 : { current_clause = current_directive->addOpenMPClause(OMPC_parallel); }
9185 : #line 9186 "ompparser.cc"
9186 2 : break;
9187 :
9188 0 : case 2098:
9189 : #line 3059 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9190 : { current_clause = current_directive->addOpenMPClause(OMPC_sections); }
9191 : #line 9192 "ompparser.cc"
9192 0 : break;
9193 :
9194 0 : case 2099:
9195 : #line 3060 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9196 : { if (user_set_lang != Lang_Fortran || auto_lang != Lang_Fortran) {current_clause = current_directive->addOpenMPClause(OMPC_for);} else {yyerror("cancel or cancellation direcitve does not support for clause in Fortran"); YYABORT; } }
9197 : #line 9198 "ompparser.cc"
9198 0 : break;
9199 :
9200 0 : case 2100:
9201 : #line 3061 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9202 : { if (user_set_lang == Lang_Fortran || auto_lang == Lang_Fortran) {current_clause = current_directive->addOpenMPClause(OMPC_do);} else {yyerror("cancel or cancellation direcitve does not support DO clause in C"); YYABORT; } }
9203 : #line 9204 "ompparser.cc"
9204 0 : break;
9205 :
9206 0 : case 2101:
9207 : #line 3062 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9208 : { current_clause = current_directive->addOpenMPClause(OMPC_taskgroup); }
9209 : #line 9210 "ompparser.cc"
9210 0 : break;
9211 :
9212 : case 2102:
9213 : #line 3069 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9214 : { ; }
9215 : #line 9216 "ompparser.cc"
9216 : break;
9217 :
9218 1 : case 2103:
9219 : #line 3072 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9220 : { current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_parallel); }
9221 : #line 9222 "ompparser.cc"
9222 1 : break;
9223 :
9224 : case 2104:
9225 : #line 3073 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9226 : { ; }
9227 : #line 9228 "ompparser.cc"
9228 : break;
9229 :
9230 14 : case 2105:
9231 : #line 3074 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9232 : {
9233 : current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_unspecified);
9234 : current_clause->addLangExpr((yyvsp[0].stype));
9235 : }
9236 : #line 9237 "ompparser.cc"
9237 : break;
9238 :
9239 : case 2106:
9240 : #line 3079 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9241 : { ; }
9242 : #line 9243 "ompparser.cc"
9243 : break;
9244 :
9245 0 : case 2107:
9246 : #line 3082 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9247 : { current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_task); }
9248 : #line 9249 "ompparser.cc"
9249 0 : break;
9250 :
9251 : case 2108:
9252 : #line 3082 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9253 : { ; }
9254 : #line 9255 "ompparser.cc"
9255 : break;
9256 :
9257 13 : case 2109:
9258 : #line 3083 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9259 : {
9260 : current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_unspecified);
9261 : current_clause->addLangExpr((yyvsp[0].stype));
9262 : }
9263 : #line 9264 "ompparser.cc"
9264 : break;
9265 :
9266 : case 2110:
9267 : #line 3088 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9268 : { ; }
9269 : #line 9270 "ompparser.cc"
9270 : break;
9271 :
9272 0 : case 2111:
9273 : #line 3091 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9274 : { current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_taskloop); }
9275 : #line 9276 "ompparser.cc"
9276 0 : break;
9277 :
9278 : case 2112:
9279 : #line 3091 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9280 : { ; }
9281 : #line 9282 "ompparser.cc"
9282 : break;
9283 :
9284 1 : case 2113:
9285 : #line 3092 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9286 : {
9287 : current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_unspecified);
9288 : current_clause->addLangExpr((yyvsp[0].stype));
9289 : }
9290 : #line 9291 "ompparser.cc"
9291 : break;
9292 :
9293 : case 2114:
9294 : #line 3097 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9295 : { ; }
9296 : #line 9297 "ompparser.cc"
9297 : break;
9298 :
9299 0 : case 2115:
9300 : #line 3100 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9301 : { current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_target_data); }
9302 : #line 9303 "ompparser.cc"
9303 0 : break;
9304 :
9305 : case 2116:
9306 : #line 3100 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9307 : { ; }
9308 : #line 9309 "ompparser.cc"
9309 : break;
9310 :
9311 0 : case 2117:
9312 : #line 3101 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9313 : {
9314 : current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_unspecified);
9315 : current_clause->addLangExpr((yyvsp[0].stype));
9316 : }
9317 : #line 9318 "ompparser.cc"
9318 : break;
9319 :
9320 : case 2118:
9321 : #line 3106 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9322 : { ; }
9323 : #line 9324 "ompparser.cc"
9324 : break;
9325 :
9326 0 : case 2119:
9327 : #line 3109 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9328 : { current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_target); }
9329 : #line 9330 "ompparser.cc"
9330 0 : break;
9331 :
9332 : case 2120:
9333 : #line 3109 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9334 : { ; }
9335 : #line 9336 "ompparser.cc"
9336 : break;
9337 :
9338 0 : case 2121:
9339 : #line 3110 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9340 : { current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_parallel); }
9341 : #line 9342 "ompparser.cc"
9342 0 : break;
9343 :
9344 : case 2122:
9345 : #line 3110 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9346 : { ; }
9347 : #line 9348 "ompparser.cc"
9348 : break;
9349 :
9350 0 : case 2123:
9351 : #line 3111 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9352 : {
9353 : current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_unspecified);
9354 : current_clause->addLangExpr((yyvsp[0].stype));
9355 : }
9356 : #line 9357 "ompparser.cc"
9357 : break;
9358 :
9359 : case 2124:
9360 : #line 3116 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9361 : { ; }
9362 : #line 9363 "ompparser.cc"
9363 : break;
9364 :
9365 0 : case 2125:
9366 : #line 3119 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9367 : { current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_target); }
9368 : #line 9369 "ompparser.cc"
9369 0 : break;
9370 :
9371 : case 2126:
9372 : #line 3119 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9373 : { ; }
9374 : #line 9375 "ompparser.cc"
9375 : break;
9376 :
9377 0 : case 2127:
9378 : #line 3120 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9379 : { current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_simd); }
9380 : #line 9381 "ompparser.cc"
9381 0 : break;
9382 :
9383 : case 2128:
9384 : #line 3120 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9385 : { ; }
9386 : #line 9387 "ompparser.cc"
9387 : break;
9388 :
9389 0 : case 2129:
9390 : #line 3121 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9391 : {
9392 : current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_unspecified);
9393 : current_clause->addLangExpr((yyvsp[0].stype));
9394 : }
9395 : #line 9396 "ompparser.cc"
9396 : break;
9397 :
9398 : case 2130:
9399 : #line 3126 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9400 : { ; }
9401 : #line 9402 "ompparser.cc"
9402 : break;
9403 :
9404 0 : case 2131:
9405 : #line 3129 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9406 : { current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_target_enter_data); }
9407 : #line 9408 "ompparser.cc"
9408 0 : break;
9409 :
9410 : case 2132:
9411 : #line 3129 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9412 : { ; }
9413 : #line 9414 "ompparser.cc"
9414 : break;
9415 :
9416 0 : case 2133:
9417 : #line 3130 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9418 : {
9419 : current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_unspecified);
9420 : current_clause->addLangExpr((yyvsp[0].stype));
9421 : }
9422 : #line 9423 "ompparser.cc"
9423 : break;
9424 :
9425 : case 2134:
9426 : #line 3135 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9427 : { ; }
9428 : #line 9429 "ompparser.cc"
9429 : break;
9430 :
9431 0 : case 2135:
9432 : #line 3138 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9433 : { current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_target_exit_data); }
9434 : #line 9435 "ompparser.cc"
9435 0 : break;
9436 :
9437 : case 2136:
9438 : #line 3138 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9439 : { ; }
9440 : #line 9441 "ompparser.cc"
9441 : break;
9442 :
9443 0 : case 2137:
9444 : #line 3139 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9445 : {
9446 : current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_unspecified);
9447 : current_clause->addLangExpr((yyvsp[0].stype));
9448 : }
9449 : #line 9450 "ompparser.cc"
9450 : break;
9451 :
9452 : case 2138:
9453 : #line 3144 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9454 : { ; }
9455 : #line 9456 "ompparser.cc"
9456 : break;
9457 :
9458 1 : case 2139:
9459 : #line 3147 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9460 : { current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_target); }
9461 : #line 9462 "ompparser.cc"
9462 1 : break;
9463 :
9464 : case 2140:
9465 : #line 3147 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9466 : { ; }
9467 : #line 9468 "ompparser.cc"
9468 : break;
9469 :
9470 0 : case 2141:
9471 : #line 3148 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9472 : {
9473 : current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_unspecified);
9474 : current_clause->addLangExpr((yyvsp[0].stype));
9475 : }
9476 : #line 9477 "ompparser.cc"
9477 : break;
9478 :
9479 : case 2142:
9480 : #line 3153 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9481 : { ; }
9482 : #line 9483 "ompparser.cc"
9483 : break;
9484 :
9485 3 : case 2143:
9486 : #line 3156 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9487 : { current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_target_update); }
9488 : #line 9489 "ompparser.cc"
9489 3 : break;
9490 :
9491 : case 2144:
9492 : #line 3156 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9493 : { ; }
9494 : #line 9495 "ompparser.cc"
9495 : break;
9496 :
9497 0 : case 2145:
9498 : #line 3157 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9499 : {
9500 : current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_unspecified);
9501 : current_clause->addLangExpr((yyvsp[0].stype));
9502 : }
9503 : #line 9504 "ompparser.cc"
9504 : break;
9505 :
9506 : case 2146:
9507 : #line 3162 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9508 : { ; }
9509 : #line 9510 "ompparser.cc"
9510 : break;
9511 :
9512 0 : case 2147:
9513 : #line 3165 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9514 : { current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_taskloop); }
9515 : #line 9516 "ompparser.cc"
9516 0 : break;
9517 :
9518 : case 2148:
9519 : #line 3165 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9520 : { ; }
9521 : #line 9522 "ompparser.cc"
9522 : break;
9523 :
9524 0 : case 2149:
9525 : #line 3166 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9526 : { current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_simd); }
9527 : #line 9528 "ompparser.cc"
9528 0 : break;
9529 :
9530 : case 2150:
9531 : #line 3166 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9532 : { ; }
9533 : #line 9534 "ompparser.cc"
9534 : break;
9535 :
9536 1 : case 2151:
9537 : #line 3167 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9538 : {
9539 : current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_unspecified);
9540 : current_clause->addLangExpr((yyvsp[0].stype));
9541 : }
9542 : #line 9543 "ompparser.cc"
9543 : break;
9544 :
9545 : case 2152:
9546 : #line 3172 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9547 : { ; }
9548 : #line 9549 "ompparser.cc"
9549 : break;
9550 :
9551 1 : case 2153:
9552 : #line 3174 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9553 : {current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_simd);}
9554 : #line 9555 "ompparser.cc"
9555 1 : break;
9556 :
9557 : case 2154:
9558 : #line 3174 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9559 : { ; }
9560 : #line 9561 "ompparser.cc"
9561 : break;
9562 :
9563 0 : case 2155:
9564 : #line 3175 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9565 : {
9566 : current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_unspecified);
9567 : current_clause->addLangExpr((yyvsp[0].stype));
9568 : }
9569 : #line 9570 "ompparser.cc"
9570 : break;
9571 :
9572 : case 2156:
9573 : #line 3180 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9574 : { ; }
9575 : #line 9576 "ompparser.cc"
9576 : break;
9577 :
9578 0 : case 2157:
9579 : #line 3182 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9580 : {current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_simd);}
9581 : #line 9582 "ompparser.cc"
9582 0 : break;
9583 :
9584 : case 2158:
9585 : #line 3182 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9586 : { ; }
9587 : #line 9588 "ompparser.cc"
9588 : break;
9589 :
9590 0 : case 2159:
9591 : #line 3183 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9592 : { current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_parallel); }
9593 : #line 9594 "ompparser.cc"
9594 0 : break;
9595 :
9596 : case 2160:
9597 : #line 3183 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9598 : { ; }
9599 : #line 9600 "ompparser.cc"
9600 : break;
9601 :
9602 0 : case 2161:
9603 : #line 3184 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9604 : {
9605 : current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_unspecified);
9606 : current_clause->addLangExpr((yyvsp[0].stype));
9607 : }
9608 : #line 9609 "ompparser.cc"
9609 : break;
9610 :
9611 : case 2162:
9612 : #line 3189 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9613 : { ; }
9614 : #line 9615 "ompparser.cc"
9615 : break;
9616 :
9617 0 : case 2163:
9618 : #line 3191 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9619 : {current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_simd);}
9620 : #line 9621 "ompparser.cc"
9621 0 : break;
9622 :
9623 : case 2164:
9624 : #line 3191 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9625 : { ; }
9626 : #line 9627 "ompparser.cc"
9627 : break;
9628 :
9629 0 : case 2165:
9630 : #line 3192 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9631 : { current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_parallel); }
9632 : #line 9633 "ompparser.cc"
9633 0 : break;
9634 :
9635 : case 2166:
9636 : #line 3192 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9637 : { ; }
9638 : #line 9639 "ompparser.cc"
9639 : break;
9640 :
9641 0 : case 2167:
9642 : #line 3193 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9643 : { current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_target); }
9644 : #line 9645 "ompparser.cc"
9645 0 : break;
9646 :
9647 : case 2168:
9648 : #line 3193 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9649 : { ; }
9650 : #line 9651 "ompparser.cc"
9651 : break;
9652 :
9653 0 : case 2169:
9654 : #line 3194 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9655 : {
9656 : current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_unspecified);
9657 : current_clause->addLangExpr((yyvsp[0].stype));
9658 : }
9659 : #line 9660 "ompparser.cc"
9660 : break;
9661 :
9662 : case 2170:
9663 : #line 3199 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9664 : { ; }
9665 : #line 9666 "ompparser.cc"
9666 : break;
9667 :
9668 0 : case 2171:
9669 : #line 3201 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9670 : {current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_cancel);}
9671 : #line 9672 "ompparser.cc"
9672 0 : break;
9673 :
9674 : case 2172:
9675 : #line 3201 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9676 : { ; }
9677 : #line 9678 "ompparser.cc"
9678 : break;
9679 :
9680 0 : case 2173:
9681 : #line 3202 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9682 : {
9683 : current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_unspecified);
9684 : current_clause->addLangExpr((yyvsp[0].stype));
9685 : }
9686 : #line 9687 "ompparser.cc"
9687 : break;
9688 :
9689 : case 2174:
9690 : #line 3207 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9691 : { ; }
9692 : #line 9693 "ompparser.cc"
9693 : break;
9694 :
9695 0 : case 2175:
9696 : #line 3209 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9697 : { current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_parallel); }
9698 : #line 9699 "ompparser.cc"
9699 0 : break;
9700 :
9701 : case 2176:
9702 : #line 3209 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9703 : { ; }
9704 : #line 9705 "ompparser.cc"
9705 : break;
9706 :
9707 0 : case 2177:
9708 : #line 3210 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9709 : { current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_taskloop); }
9710 : #line 9711 "ompparser.cc"
9711 0 : break;
9712 :
9713 : case 2178:
9714 : #line 3210 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9715 : { ; }
9716 : #line 9717 "ompparser.cc"
9717 : break;
9718 :
9719 1 : case 2179:
9720 : #line 3211 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9721 : {
9722 : current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_unspecified);
9723 : current_clause->addLangExpr((yyvsp[0].stype));
9724 : }
9725 : #line 9726 "ompparser.cc"
9726 : break;
9727 :
9728 : case 2180:
9729 : #line 3216 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9730 : { ; }
9731 : #line 9732 "ompparser.cc"
9732 : break;
9733 :
9734 0 : case 2181:
9735 : #line 3218 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9736 : { current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_parallel); }
9737 : #line 9738 "ompparser.cc"
9738 0 : break;
9739 :
9740 : case 2182:
9741 : #line 3218 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9742 : { ; }
9743 : #line 9744 "ompparser.cc"
9744 : break;
9745 :
9746 0 : case 2183:
9747 : #line 3219 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9748 : { current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_taskloop); }
9749 : #line 9750 "ompparser.cc"
9750 0 : break;
9751 :
9752 : case 2184:
9753 : #line 3219 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9754 : { ; }
9755 : #line 9756 "ompparser.cc"
9756 : break;
9757 :
9758 0 : case 2185:
9759 : #line 3220 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9760 : {current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_simd);}
9761 : #line 9762 "ompparser.cc"
9762 0 : break;
9763 :
9764 : case 2186:
9765 : #line 3220 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9766 : { ; }
9767 : #line 9768 "ompparser.cc"
9768 : break;
9769 :
9770 1 : case 2187:
9771 : #line 3221 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9772 : {
9773 : current_clause = current_directive->addOpenMPClause(OMPC_if, OMPC_IF_MODIFIER_unspecified);
9774 : current_clause->addLangExpr((yyvsp[0].stype));
9775 : }
9776 : #line 9777 "ompparser.cc"
9777 : break;
9778 :
9779 18 : case 2188:
9780 : #line 3235 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9781 : {
9782 : current_clause = current_directive->addOpenMPClause(OMPC_num_threads);
9783 : }
9784 : #line 9785 "ompparser.cc"
9785 18 : break;
9786 :
9787 8 : case 2190:
9788 : #line 3239 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9789 : {
9790 : current_clause = current_directive->addOpenMPClause(OMPC_num_teams);
9791 : }
9792 : #line 9793 "ompparser.cc"
9793 8 : break;
9794 :
9795 0 : case 2192:
9796 : #line 3243 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9797 : {
9798 : current_clause = current_directive->addOpenMPClause(OMPC_align);
9799 : }
9800 : #line 9801 "ompparser.cc"
9801 0 : break;
9802 :
9803 2 : case 2194:
9804 : #line 3248 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9805 : { current_clause = current_directive->addOpenMPClause(OMPC_thread_limit); }
9806 : #line 9807 "ompparser.cc"
9807 2 : break;
9808 :
9809 1 : case 2196:
9810 : #line 3250 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9811 : {
9812 : current_clause = current_directive->addOpenMPClause(OMPC_copyin);
9813 : }
9814 : #line 9815 "ompparser.cc"
9815 1 : break;
9816 :
9817 : case 2198:
9818 : #line 3255 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9819 : { }
9820 : #line 9821 "ompparser.cc"
9821 : break;
9822 :
9823 3 : case 2199:
9824 : #line 3258 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9825 : { current_clause = current_directive->addOpenMPClause(OMPC_default, OMPC_DEFAULT_shared); }
9826 : #line 9827 "ompparser.cc"
9827 3 : break;
9828 :
9829 2 : case 2200:
9830 : #line 3259 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9831 : { current_clause = current_directive->addOpenMPClause(OMPC_default, OMPC_DEFAULT_none); }
9832 : #line 9833 "ompparser.cc"
9833 2 : break;
9834 :
9835 0 : case 2201:
9836 : #line 3260 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9837 : { current_clause = current_directive->addOpenMPClause(OMPC_default, OMPC_DEFAULT_firstprivate); }
9838 : #line 9839 "ompparser.cc"
9839 0 : break;
9840 :
9841 0 : case 2202:
9842 : #line 3261 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9843 : { current_clause = current_directive->addOpenMPClause(OMPC_default, OMPC_DEFAULT_private); }
9844 : #line 9845 "ompparser.cc"
9845 0 : break;
9846 :
9847 : case 2203:
9848 : #line 3264 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9849 : { }
9850 : #line 9851 "ompparser.cc"
9851 : break;
9852 :
9853 0 : case 2204:
9854 : #line 3267 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9855 : { current_clause = current_directive->addOpenMPClause(OMPC_default, OMPC_DEFAULT_variant);
9856 : current_parent_directive = current_directive;
9857 : current_parent_clause = current_clause; }
9858 : #line 9859 "ompparser.cc"
9859 0 : break;
9860 :
9861 0 : case 2205:
9862 : #line 3269 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9863 : {
9864 : ((OpenMPDefaultClause*)current_parent_clause)->setVariantDirective(current_directive);
9865 : current_directive = current_parent_directive;
9866 : current_clause = current_parent_clause;
9867 : current_parent_directive = NULL;
9868 : current_parent_clause = NULL;
9869 : std::cout << "A construct directive has been added to DEFAULT clause.\n";
9870 : }
9871 : #line 9872 "ompparser.cc"
9872 : break;
9873 :
9874 : case 2206:
9875 : #line 3279 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9876 : { }
9877 : #line 9878 "ompparser.cc"
9878 : break;
9879 :
9880 1 : case 2207:
9881 : #line 3281 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9882 : { current_clause = current_directive->addOpenMPClause(OMPC_proc_bind, OMPC_PROC_BIND_master); }
9883 : #line 9884 "ompparser.cc"
9884 1 : break;
9885 :
9886 1 : case 2208:
9887 : #line 3282 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9888 : { current_clause = current_directive->addOpenMPClause(OMPC_proc_bind, OMPC_PROC_BIND_close); }
9889 : #line 9890 "ompparser.cc"
9890 1 : break;
9891 :
9892 1 : case 2209:
9893 : #line 3283 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9894 : { current_clause = current_directive->addOpenMPClause(OMPC_proc_bind, OMPC_PROC_BIND_spread); }
9895 : #line 9896 "ompparser.cc"
9896 1 : break;
9897 :
9898 : case 2210:
9899 : #line 3285 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9900 : { }
9901 : #line 9902 "ompparser.cc"
9902 : break;
9903 :
9904 0 : case 2211:
9905 : #line 3287 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9906 : { current_clause = current_directive->addOpenMPClause(OMPC_bind, OMPC_BIND_teams); }
9907 : #line 9908 "ompparser.cc"
9908 0 : break;
9909 :
9910 1 : case 2212:
9911 : #line 3288 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9912 : { current_clause = current_directive->addOpenMPClause(OMPC_bind, OMPC_BIND_parallel); }
9913 : #line 9914 "ompparser.cc"
9914 1 : break;
9915 :
9916 0 : case 2213:
9917 : #line 3289 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9918 : { current_clause = current_directive->addOpenMPClause(OMPC_bind, OMPC_BIND_thread); }
9919 : #line 9920 "ompparser.cc"
9920 0 : break;
9921 :
9922 4 : case 2215:
9923 : #line 3293 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9924 : { current_clause = current_directive->addOpenMPClause(OMPC_allocate, OMPC_ALLOCATE_ALLOCATOR_unspecified); current_clause->addLangExpr((yyvsp[0].stype)); }
9925 : #line 9926 "ompparser.cc"
9926 : break;
9927 :
9928 12 : case 2216:
9929 : #line 3294 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9930 : { current_clause = current_directive->addOpenMPClause(OMPC_allocate, OMPC_ALLOCATE_ALLOCATOR_unspecified); current_clause->addLangExpr((yyvsp[-1].stype)); }
9931 : #line 9932 "ompparser.cc"
9932 : break;
9933 :
9934 : case 2218:
9935 : #line 3295 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9936 : { ; }
9937 : #line 9938 "ompparser.cc"
9938 : break;
9939 :
9940 2 : case 2220:
9941 : #line 3297 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9942 : { current_clause = current_directive->addOpenMPClause(OMPC_allocate, OMPC_ALLOCATE_ALLOCATOR_default); }
9943 : #line 9944 "ompparser.cc"
9944 2 : break;
9945 :
9946 2 : case 2221:
9947 : #line 3298 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9948 : { current_clause = current_directive->addOpenMPClause(OMPC_allocate, OMPC_ALLOCATE_ALLOCATOR_large_cap); }
9949 : #line 9950 "ompparser.cc"
9950 2 : break;
9951 :
9952 2 : case 2222:
9953 : #line 3299 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9954 : { current_clause = current_directive->addOpenMPClause(OMPC_allocate, OMPC_ALLOCATE_ALLOCATOR_cons_mem); }
9955 : #line 9956 "ompparser.cc"
9956 2 : break;
9957 :
9958 2 : case 2223:
9959 : #line 3300 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9960 : { current_clause = current_directive->addOpenMPClause(OMPC_allocate, OMPC_ALLOCATE_ALLOCATOR_high_bw); }
9961 : #line 9962 "ompparser.cc"
9962 2 : break;
9963 :
9964 2 : case 2224:
9965 : #line 3301 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9966 : { current_clause = current_directive->addOpenMPClause(OMPC_allocate, OMPC_ALLOCATE_ALLOCATOR_low_lat); }
9967 : #line 9968 "ompparser.cc"
9968 2 : break;
9969 :
9970 2 : case 2225:
9971 : #line 3302 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9972 : { current_clause = current_directive->addOpenMPClause(OMPC_allocate, OMPC_ALLOCATE_ALLOCATOR_cgroup); }
9973 : #line 9974 "ompparser.cc"
9974 2 : break;
9975 :
9976 2 : case 2226:
9977 : #line 3303 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9978 : { current_clause = current_directive->addOpenMPClause(OMPC_allocate, OMPC_ALLOCATE_ALLOCATOR_pteam); }
9979 : #line 9980 "ompparser.cc"
9980 2 : break;
9981 :
9982 2 : case 2227:
9983 : #line 3304 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9984 : { current_clause = current_directive->addOpenMPClause(OMPC_allocate, OMPC_ALLOCATE_ALLOCATOR_thread); }
9985 : #line 9986 "ompparser.cc"
9986 2 : break;
9987 :
9988 4 : case 2228:
9989 : #line 3305 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9990 : { current_clause = current_directive->addOpenMPClause(OMPC_allocate, OMPC_ALLOCATE_ALLOCATOR_user, (yyvsp[0].stype)); }
9991 : #line 9992 "ompparser.cc"
9992 4 : break;
9993 :
9994 106 : case 2229:
9995 : #line 3308 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
9996 : {
9997 : current_clause = current_directive->addOpenMPClause(OMPC_private);
9998 : }
9999 : #line 10000 "ompparser.cc"
10000 106 : break;
10001 :
10002 : case 2230:
10003 : #line 3310 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10004 : {
10005 : }
10006 : #line 10007 "ompparser.cc"
10007 : break;
10008 :
10009 37 : case 2231:
10010 : #line 3314 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10011 : {
10012 : current_clause = current_directive->addOpenMPClause(OMPC_firstprivate);
10013 : }
10014 : #line 10015 "ompparser.cc"
10015 37 : break;
10016 :
10017 : case 2232:
10018 : #line 3316 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10019 : {
10020 : }
10021 : #line 10022 "ompparser.cc"
10022 : break;
10023 :
10024 1 : case 2233:
10025 : #line 3320 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10026 : {
10027 : current_clause = current_directive->addOpenMPClause(OMPC_copyprivate);
10028 : }
10029 : #line 10030 "ompparser.cc"
10030 1 : break;
10031 :
10032 : case 2234:
10033 : #line 3322 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10034 : {
10035 : }
10036 : #line 10037 "ompparser.cc"
10037 : break;
10038 :
10039 5 : case 2235:
10040 : #line 3325 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10041 : {
10042 : if (user_set_lang == Lang_C || auto_lang == Lang_C) {current_clause = current_directive->addOpenMPClause(OMPC_copyprivate);} else {yyerror("Single does not support copyprivate_clause in Fortran."); YYABORT;}
10043 : }
10044 : #line 10045 "ompparser.cc"
10045 5 : break;
10046 :
10047 : case 2236:
10048 : #line 3327 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10049 : {
10050 : }
10051 : #line 10052 "ompparser.cc"
10052 : break;
10053 :
10054 13 : case 2238:
10055 : #line 3332 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10056 : { current_clause = current_directive->addOpenMPClause(OMPC_lastprivate, OMPC_LASTPRIVATE_MODIFIER_unspecified); current_clause->addLangExpr((yyvsp[0].stype)); }
10057 : #line 10058 "ompparser.cc"
10058 : break;
10059 :
10060 0 : case 2239:
10061 : #line 3333 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10062 : { current_clause = current_directive->addOpenMPClause(OMPC_lastprivate, OMPC_LASTPRIVATE_MODIFIER_unspecified); current_clause->addLangExpr((yyvsp[-1].stype)); }
10063 : #line 10064 "ompparser.cc"
10064 : break;
10065 :
10066 : case 2241:
10067 : #line 3334 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10068 : {;}
10069 : #line 10070 "ompparser.cc"
10070 : break;
10071 :
10072 0 : case 2243:
10073 : #line 3337 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10074 : {
10075 : current_clause = current_directive->addOpenMPClause(OMPC_lastprivate);
10076 : }
10077 : #line 10078 "ompparser.cc"
10078 0 : break;
10079 :
10080 : case 2244:
10081 : #line 3339 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10082 : {
10083 : }
10084 : #line 10085 "ompparser.cc"
10085 : break;
10086 :
10087 1 : case 2245:
10088 : #line 3342 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10089 : { current_clause = current_directive->addOpenMPClause(OMPC_lastprivate,OMPC_LASTPRIVATE_MODIFIER_conditional); }
10090 : #line 10091 "ompparser.cc"
10091 1 : break;
10092 :
10093 4 : case 2247:
10094 : #line 3346 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10095 : { ((OpenMPLinearClause*)current_clause)->setUserDefinedStep((yyvsp[0].stype)); ((OpenMPLinearClause*)current_clause)->mergeLinear(current_directive, current_clause); }
10096 : #line 10097 "ompparser.cc"
10097 : break;
10098 :
10099 1 : case 2249:
10100 : #line 3349 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10101 : { current_clause = current_directive->addOpenMPClause(OMPC_linear, OMPC_LINEAR_MODIFIER_unspecified); current_clause->addLangExpr((yyvsp[0].stype)); }
10102 : #line 10103 "ompparser.cc"
10103 : break;
10104 :
10105 4 : case 2250:
10106 : #line 3350 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10107 : { current_clause = current_directive->addOpenMPClause(OMPC_linear, OMPC_LINEAR_MODIFIER_unspecified); current_clause->addLangExpr((yyvsp[-1].stype)); }
10108 : #line 10109 "ompparser.cc"
10109 : break;
10110 :
10111 1 : case 2253:
10112 : #line 3353 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10113 : { current_clause = current_directive->addOpenMPClause(OMPC_linear,OMPC_LINEAR_MODIFIER_val); }
10114 : #line 10115 "ompparser.cc"
10115 1 : break;
10116 :
10117 0 : case 2254:
10118 : #line 3354 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10119 : { if (user_set_lang == Lang_unknown && auto_lang == Lang_C){ auto_lang = Lang_Cplusplus; } if (user_set_lang == Lang_C) {yyerror("REF modifier is not supportted in C."); YYABORT; } else { current_clause = current_directive->addOpenMPClause(OMPC_linear, OMPC_LINEAR_MODIFIER_ref); } }
10120 : #line 10121 "ompparser.cc"
10121 0 : break;
10122 :
10123 0 : case 2255:
10124 : #line 3355 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10125 : { if (user_set_lang == Lang_unknown && auto_lang == Lang_C){ auto_lang = Lang_Cplusplus; } if (user_set_lang == Lang_C) {yyerror("UVAL modifier is not supportted in C."); YYABORT;} else { current_clause = current_directive->addOpenMPClause(OMPC_linear, OMPC_LINEAR_MODIFIER_uval); } }
10126 : #line 10127 "ompparser.cc"
10127 0 : break;
10128 :
10129 1 : case 2257:
10130 : #line 3359 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10131 : { ((OpenMPAlignedClause*)current_clause)->setUserDefinedAlignment((yyvsp[0].stype));}
10132 : #line 10133 "ompparser.cc"
10133 : break;
10134 :
10135 0 : case 2259:
10136 : #line 3363 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10137 : { current_clause = current_directive->addOpenMPClause(OMPC_aligned); current_clause->addLangExpr((yyvsp[0].stype)); }
10138 : #line 10139 "ompparser.cc"
10139 : break;
10140 :
10141 2 : case 2260:
10142 : #line 3364 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10143 : {current_clause = current_directive->addOpenMPClause(OMPC_aligned); current_clause->addLangExpr((yyvsp[-1].stype)); }
10144 : #line 10145 "ompparser.cc"
10145 : break;
10146 :
10147 0 : case 2264:
10148 : #line 3371 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10149 : { current_clause = current_directive->addOpenMPClause(OMPC_initializer, OMPC_INITIALIZER_PRIV_user, (yyvsp[0].stype)); }
10150 : #line 10151 "ompparser.cc"
10151 0 : break;
10152 :
10153 2 : case 2265:
10154 : #line 3373 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10155 : { current_clause = current_directive->addOpenMPClause(OMPC_safelen); }
10156 : #line 10157 "ompparser.cc"
10157 2 : break;
10158 :
10159 : case 2266:
10160 : #line 3373 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10161 : {
10162 : }
10163 : #line 10164 "ompparser.cc"
10164 : break;
10165 :
10166 2 : case 2267:
10167 : #line 3377 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10168 : { current_clause = current_directive->addOpenMPClause(OMPC_simdlen); }
10169 : #line 10170 "ompparser.cc"
10170 2 : break;
10171 :
10172 : case 2268:
10173 : #line 3377 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10174 : {
10175 : }
10176 : #line 10177 "ompparser.cc"
10177 : break;
10178 :
10179 0 : case 2269:
10180 : #line 3381 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10181 : { current_clause = current_directive->addOpenMPClause(OMPC_nontemporal); }
10182 : #line 10183 "ompparser.cc"
10183 0 : break;
10184 :
10185 : case 2270:
10186 : #line 3381 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10187 : {
10188 : }
10189 : #line 10190 "ompparser.cc"
10190 : break;
10191 :
10192 11 : case 2271:
10193 : #line 3385 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10194 : { current_clause = current_directive->addOpenMPClause(OMPC_collapse); }
10195 : #line 10196 "ompparser.cc"
10196 11 : break;
10197 :
10198 : case 2272:
10199 : #line 3385 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10200 : {
10201 : }
10202 : #line 10203 "ompparser.cc"
10203 : break;
10204 :
10205 4 : case 2273:
10206 : #line 3389 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10207 : { current_clause = current_directive->addOpenMPClause(OMPC_ordered); }
10208 : #line 10209 "ompparser.cc"
10209 4 : break;
10210 :
10211 9 : case 2275:
10212 : #line 3390 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10213 : { current_clause = current_directive->addOpenMPClause(OMPC_ordered); }
10214 : #line 10215 "ompparser.cc"
10215 9 : break;
10216 :
10217 0 : case 2276:
10218 : #line 3392 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10219 : { current_clause = current_directive->addOpenMPClause(OMPC_partial); }
10220 : #line 10221 "ompparser.cc"
10221 0 : break;
10222 :
10223 0 : case 2278:
10224 : #line 3393 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10225 : { current_clause = current_directive->addOpenMPClause(OMPC_partial); }
10226 : #line 10227 "ompparser.cc"
10227 0 : break;
10228 :
10229 5 : case 2279:
10230 : #line 3395 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10231 : { if (user_set_lang == Lang_C || auto_lang == Lang_C) {current_clause = current_directive->addOpenMPClause(OMPC_nowait);} else {yyerror("Sections does not support nowait clause in Fortran."); YYABORT;} }
10232 : #line 10233 "ompparser.cc"
10233 5 : break;
10234 :
10235 20 : case 2280:
10236 : #line 3397 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10237 : { current_clause = current_directive->addOpenMPClause(OMPC_nowait); }
10238 : #line 10239 "ompparser.cc"
10239 20 : break;
10240 :
10241 0 : case 2281:
10242 : #line 3399 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10243 : { current_clause = current_directive->addOpenMPClause(OMPC_full); }
10244 : #line 10245 "ompparser.cc"
10245 0 : break;
10246 :
10247 : case 2282:
10248 : #line 3401 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10249 : { }
10250 : #line 10251 "ompparser.cc"
10251 : break;
10252 :
10253 1 : case 2283:
10254 : #line 3404 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10255 : { current_clause = current_directive->addOpenMPClause(OMPC_order, OMPC_ORDER_concurrent); }
10256 : #line 10257 "ompparser.cc"
10257 1 : break;
10258 :
10259 3 : case 2284:
10260 : #line 3407 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10261 : { current_clause = current_directive->addOpenMPClause(OMPC_uniform); }
10262 : #line 10263 "ompparser.cc"
10263 3 : break;
10264 :
10265 0 : case 2286:
10266 : #line 3410 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10267 : { current_clause = current_directive->addOpenMPClause(OMPC_inbranch); }
10268 : #line 10269 "ompparser.cc"
10269 0 : break;
10270 :
10271 0 : case 2287:
10272 : #line 3413 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10273 : { current_clause = current_directive->addOpenMPClause(OMPC_notinbranch); }
10274 : #line 10275 "ompparser.cc"
10275 0 : break;
10276 :
10277 0 : case 2288:
10278 : #line 3415 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10279 : { current_clause = current_directive->addOpenMPClause(OMPC_inclusive); }
10280 : #line 10281 "ompparser.cc"
10281 0 : break;
10282 :
10283 1 : case 2290:
10284 : #line 3417 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10285 : { current_clause = current_directive->addOpenMPClause(OMPC_exclusive); }
10286 : #line 10287 "ompparser.cc"
10287 1 : break;
10288 :
10289 0 : case 2293:
10290 : #line 3420 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10291 : { current_clause = current_directive->addOpenMPClause(OMPC_allocator, OMPC_ALLOCATOR_ALLOCATOR_default); }
10292 : #line 10293 "ompparser.cc"
10293 0 : break;
10294 :
10295 0 : case 2294:
10296 : #line 3421 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10297 : { current_clause = current_directive->addOpenMPClause(OMPC_allocator, OMPC_ALLOCATOR_ALLOCATOR_large_cap); }
10298 : #line 10299 "ompparser.cc"
10299 0 : break;
10300 :
10301 0 : case 2295:
10302 : #line 3422 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10303 : { current_clause = current_directive->addOpenMPClause(OMPC_allocator, OMPC_ALLOCATOR_ALLOCATOR_cons_mem); }
10304 : #line 10305 "ompparser.cc"
10305 0 : break;
10306 :
10307 0 : case 2296:
10308 : #line 3423 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10309 : { current_clause = current_directive->addOpenMPClause(OMPC_allocator, OMPC_ALLOCATOR_ALLOCATOR_high_bw); }
10310 : #line 10311 "ompparser.cc"
10311 0 : break;
10312 :
10313 0 : case 2297:
10314 : #line 3424 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10315 : { current_clause = current_directive->addOpenMPClause(OMPC_allocator, OMPC_ALLOCATOR_ALLOCATOR_low_lat); }
10316 : #line 10317 "ompparser.cc"
10317 0 : break;
10318 :
10319 0 : case 2298:
10320 : #line 3425 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10321 : { current_clause = current_directive->addOpenMPClause(OMPC_allocator, OMPC_ALLOCATOR_ALLOCATOR_cgroup); }
10322 : #line 10323 "ompparser.cc"
10323 0 : break;
10324 :
10325 0 : case 2299:
10326 : #line 3426 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10327 : { current_clause = current_directive->addOpenMPClause(OMPC_allocator, OMPC_ALLOCATOR_ALLOCATOR_pteam); }
10328 : #line 10329 "ompparser.cc"
10329 0 : break;
10330 :
10331 0 : case 2300:
10332 : #line 3427 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10333 : { current_clause = current_directive->addOpenMPClause(OMPC_allocator, OMPC_ALLOCATOR_ALLOCATOR_thread); }
10334 : #line 10335 "ompparser.cc"
10335 0 : break;
10336 :
10337 1 : case 2301:
10338 : #line 3428 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10339 : { current_clause = current_directive->addOpenMPClause(OMPC_allocator, OMPC_ALLOCATOR_ALLOCATOR_user, (yyvsp[0].stype)); }
10340 : #line 10341 "ompparser.cc"
10341 1 : break;
10342 :
10343 : case 2302:
10344 : #line 3431 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10345 : {}
10346 : #line 10347 "ompparser.cc"
10347 : break;
10348 :
10349 0 : case 2303:
10350 : #line 3433 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10351 : { current_clause = current_directive->addOpenMPClause(OMPC_dist_schedule,OMPC_DIST_SCHEDULE_KIND_static); }
10352 : #line 10353 "ompparser.cc"
10353 0 : break;
10354 :
10355 1 : case 2304:
10356 : #line 3434 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10357 : { current_clause = current_directive->addOpenMPClause(OMPC_dist_schedule,OMPC_DIST_SCHEDULE_KIND_static); }
10358 : #line 10359 "ompparser.cc"
10359 1 : break;
10360 :
10361 1 : case 2305:
10362 : #line 3434 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10363 : { ((OpenMPDistScheduleClause*)current_clause)->setChunkSize((yyvsp[0].stype)); }
10364 : #line 10365 "ompparser.cc"
10365 : break;
10366 :
10367 95 : case 2306:
10368 : #line 3436 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10369 : { firstParameter = OMPC_SCHEDULE_MODIFIER_unspecified; secondParameter = OMPC_SCHEDULE_MODIFIER_unspecified; }
10370 : #line 10371 "ompparser.cc"
10371 95 : break;
10372 :
10373 : case 2307:
10374 : #line 3436 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10375 : {
10376 : }
10377 : #line 10378 "ompparser.cc"
10378 : break;
10379 :
10380 : case 2308:
10381 : #line 3440 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10382 : {}
10383 : #line 10384 "ompparser.cc"
10384 : break;
10385 :
10386 : case 2310:
10387 : #line 3445 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10388 : { }
10389 : #line 10390 "ompparser.cc"
10390 : break;
10391 :
10392 80 : case 2311:
10393 : #line 3446 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10394 : { ((OpenMPScheduleClause*)current_clause)->setChunkSize((yyvsp[0].stype)); }
10395 : #line 10396 "ompparser.cc"
10396 : break;
10397 :
10398 0 : case 2314:
10399 : #line 3453 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10400 : { if (firstParameter == OMPC_SCHEDULE_MODIFIER_simd) {secondParameter = OMPC_SCHEDULE_MODIFIER_monotonic;} else{yyerror("Two modifiers are incorrect"); YYABORT; } }
10401 : #line 10402 "ompparser.cc"
10402 0 : break;
10403 :
10404 0 : case 2315:
10405 : #line 3454 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10406 : { if (firstParameter == OMPC_SCHEDULE_MODIFIER_simd){secondParameter = OMPC_SCHEDULE_MODIFIER_nonmonotonic;}else{yyerror("Two modifiers are incorrect"); YYABORT; } }
10407 : #line 10408 "ompparser.cc"
10408 0 : break;
10409 :
10410 0 : case 2316:
10411 : #line 3455 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10412 : { if (firstParameter == OMPC_SCHEDULE_MODIFIER_simd){yyerror("Two modifiers are incorrect"); YYABORT; } else{secondParameter = OMPC_SCHEDULE_MODIFIER_simd;} }
10413 : #line 10414 "ompparser.cc"
10414 0 : break;
10415 :
10416 1 : case 2317:
10417 : #line 3457 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10418 : { firstParameter = OMPC_SCHEDULE_MODIFIER_monotonic; }
10419 : #line 10420 "ompparser.cc"
10420 1 : break;
10421 :
10422 0 : case 2318:
10423 : #line 3458 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10424 : { firstParameter = OMPC_SCHEDULE_MODIFIER_nonmonotonic; }
10425 : #line 10426 "ompparser.cc"
10426 0 : break;
10427 :
10428 0 : case 2319:
10429 : #line 3459 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10430 : { firstParameter = OMPC_SCHEDULE_MODIFIER_simd; }
10431 : #line 10432 "ompparser.cc"
10432 0 : break;
10433 :
10434 21 : case 2320:
10435 : #line 3462 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10436 : { if (current_directive!= NULL)current_clause = current_directive->addOpenMPClause(OMPC_schedule, firstParameter, secondParameter, OMPC_SCHEDULE_KIND_static); }
10437 : #line 10438 "ompparser.cc"
10438 : break;
10439 :
10440 69 : case 2321:
10441 : #line 3463 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10442 : { if (current_directive!= NULL)current_clause = current_directive->addOpenMPClause(OMPC_schedule, firstParameter, secondParameter, OMPC_SCHEDULE_KIND_dynamic); }
10443 : #line 10444 "ompparser.cc"
10444 : break;
10445 :
10446 2 : case 2322:
10447 : #line 3464 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10448 : { if (current_directive!= NULL)current_clause = current_directive->addOpenMPClause(OMPC_schedule, firstParameter, secondParameter, OMPC_SCHEDULE_KIND_guided); }
10449 : #line 10450 "ompparser.cc"
10450 : break;
10451 :
10452 1 : case 2323:
10453 : #line 3465 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10454 : { if (current_directive!= NULL)current_clause = current_directive->addOpenMPClause(OMPC_schedule, firstParameter, secondParameter, OMPC_SCHEDULE_KIND_auto); }
10455 : #line 10456 "ompparser.cc"
10456 : break;
10457 :
10458 2 : case 2324:
10459 : #line 3466 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10460 : { if (current_directive!= NULL)current_clause = current_directive->addOpenMPClause(OMPC_schedule, firstParameter, secondParameter, OMPC_SCHEDULE_KIND_runtime); }
10461 : #line 10462 "ompparser.cc"
10462 : break;
10463 :
10464 51 : case 2325:
10465 : #line 3468 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10466 : {
10467 : current_clause = current_directive->addOpenMPClause(OMPC_shared);
10468 : }
10469 : #line 10470 "ompparser.cc"
10470 51 : break;
10471 :
10472 86 : case 2327:
10473 : #line 3473 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10474 : { firstParameter = OMPC_REDUCTION_MODIFIER_unspecified; }
10475 : #line 10476 "ompparser.cc"
10476 86 : break;
10477 :
10478 : case 2328:
10479 : #line 3473 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10480 : {
10481 : }
10482 : #line 10483 "ompparser.cc"
10483 : break;
10484 :
10485 : case 2329:
10486 : #line 3477 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10487 : {}
10488 : #line 10489 "ompparser.cc"
10489 : break;
10490 :
10491 : case 2331:
10492 : #line 3481 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10493 : {}
10494 : #line 10495 "ompparser.cc"
10495 : break;
10496 :
10497 4 : case 2332:
10498 : #line 3482 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10499 : { current_clause = current_directive->addOpenMPClause(OMPC_reduction, firstParameter, OMPC_REDUCTION_IDENTIFIER_user, (yyvsp[0].stype)); }
10500 : #line 10501 "ompparser.cc"
10501 4 : break;
10502 :
10503 4 : case 2333:
10504 : #line 3485 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10505 : { firstParameter = OMPC_REDUCTION_MODIFIER_inscan; }
10506 : #line 10507 "ompparser.cc"
10507 4 : break;
10508 :
10509 4 : case 2334:
10510 : #line 3486 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10511 : { firstParameter = OMPC_REDUCTION_MODIFIER_task; }
10512 : #line 10513 "ompparser.cc"
10513 4 : break;
10514 :
10515 1 : case 2335:
10516 : #line 3487 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10517 : { firstParameter = OMPC_REDUCTION_MODIFIER_default; }
10518 : #line 10519 "ompparser.cc"
10519 1 : break;
10520 :
10521 55 : case 2336:
10522 : #line 3490 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10523 : { current_clause = current_directive->addOpenMPClause(OMPC_reduction, firstParameter, OMPC_REDUCTION_IDENTIFIER_plus); }
10524 : #line 10525 "ompparser.cc"
10525 55 : break;
10526 :
10527 7 : case 2337:
10528 : #line 3491 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10529 : { current_clause = current_directive->addOpenMPClause(OMPC_reduction, firstParameter, OMPC_REDUCTION_IDENTIFIER_minus); }
10530 : #line 10531 "ompparser.cc"
10531 7 : break;
10532 :
10533 3 : case 2338:
10534 : #line 3492 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10535 : { current_clause = current_directive->addOpenMPClause(OMPC_reduction, firstParameter, OMPC_REDUCTION_IDENTIFIER_mul); }
10536 : #line 10537 "ompparser.cc"
10537 3 : break;
10538 :
10539 4 : case 2339:
10540 : #line 3493 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10541 : { current_clause = current_directive->addOpenMPClause(OMPC_reduction, firstParameter, OMPC_REDUCTION_IDENTIFIER_bitand); }
10542 : #line 10543 "ompparser.cc"
10543 4 : break;
10544 :
10545 4 : case 2340:
10546 : #line 3494 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10547 : { current_clause = current_directive->addOpenMPClause(OMPC_reduction, firstParameter, OMPC_REDUCTION_IDENTIFIER_bitor); }
10548 : #line 10549 "ompparser.cc"
10549 4 : break;
10550 :
10551 4 : case 2341:
10552 : #line 3495 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10553 : { current_clause = current_directive->addOpenMPClause(OMPC_reduction, firstParameter, OMPC_REDUCTION_IDENTIFIER_bitxor); }
10554 : #line 10555 "ompparser.cc"
10555 4 : break;
10556 :
10557 4 : case 2342:
10558 : #line 3496 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10559 : { current_clause = current_directive->addOpenMPClause(OMPC_reduction, firstParameter, OMPC_REDUCTION_IDENTIFIER_logand); }
10560 : #line 10561 "ompparser.cc"
10561 4 : break;
10562 :
10563 4 : case 2343:
10564 : #line 3497 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10565 : { current_clause = current_directive->addOpenMPClause(OMPC_reduction, firstParameter, OMPC_REDUCTION_IDENTIFIER_logor); }
10566 : #line 10567 "ompparser.cc"
10567 4 : break;
10568 :
10569 1 : case 2344:
10570 : #line 3498 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10571 : { current_clause = current_directive->addOpenMPClause(OMPC_reduction, firstParameter, OMPC_REDUCTION_IDENTIFIER_max); }
10572 : #line 10573 "ompparser.cc"
10573 1 : break;
10574 :
10575 1 : case 2345:
10576 : #line 3499 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10577 : { current_clause = current_directive->addOpenMPClause(OMPC_reduction, firstParameter, OMPC_REDUCTION_IDENTIFIER_min); }
10578 : #line 10579 "ompparser.cc"
10579 1 : break;
10580 :
10581 5 : case 2346:
10582 : #line 3502 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10583 : { firstParameter = OMPC_REDUCTION_MODIFIER_unspecified; }
10584 : #line 10585 "ompparser.cc"
10585 5 : break;
10586 :
10587 : case 2347:
10588 : #line 3502 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10589 : {
10590 : }
10591 : #line 10592 "ompparser.cc"
10592 : break;
10593 :
10594 : case 2348:
10595 : #line 3506 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10596 : {}
10597 : #line 10598 "ompparser.cc"
10598 : break;
10599 :
10600 0 : case 2350:
10601 : #line 3510 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10602 : { firstParameter = OMPC_REDUCTION_MODIFIER_default; }
10603 : #line 10604 "ompparser.cc"
10604 0 : break;
10605 :
10606 :
10607 : #line 10608 "ompparser.cc"
10608 :
10609 : default: break;
10610 : }
10611 : /* User semantic actions sometimes alter yychar, and that requires
10612 : that yytoken be updated with the new translation. We take the
10613 : approach of translating immediately before every use of yytoken.
10614 : One alternative is translating here after every semantic action,
10615 : but that translation would be missed if the semantic action invokes
10616 : YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
10617 : if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
10618 : incorrect destructor might then be invoked immediately. In the
10619 : case of YYERROR or YYBACKUP, subsequent parser actions might lead
10620 : to an incorrect destructor call or verbose syntax error message
10621 : before the lookahead is translated. */
10622 9000 : YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
10623 :
10624 9000 : YYPOPSTACK (yylen);
10625 9000 : yylen = 0;
10626 9000 : YY_STACK_PRINT (yyss, yyssp);
10627 :
10628 9000 : *++yyvsp = yyval;
10629 9000 : *++yylsp = yyloc;
10630 :
10631 : /* Now 'shift' the result of the reduction. Determine what state
10632 : that goes to, based on the state we popped back to and the rule
10633 : number reduced by. */
10634 9000 : {
10635 9000 : const int yylhs = yyr1[yyn] - YYNTOKENS;
10636 9000 : const int yyi = yypgoto[yylhs] + *yyssp;
10637 3447 : yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
10638 11009 : ? yytable[yyi]
10639 6991 : : yydefgoto[yylhs]);
10640 : }
10641 :
10642 9000 : goto yynewstate;
10643 :
10644 :
10645 : /*--------------------------------------.
10646 : | yyerrlab -- here on detecting error. |
10647 : `--------------------------------------*/
10648 0 : yyerrlab:
10649 : /* Make sure we have latest lookahead translation. See comments at
10650 : user semantic actions for why this is necessary. */
10651 0 : yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
10652 :
10653 : /* If not already recovering from an error, report this error. */
10654 0 : if (!yyerrstatus)
10655 : {
10656 0 : ++yynerrs;
10657 : #if ! YYERROR_VERBOSE
10658 : yyerror (YY_("syntax error"));
10659 : #else
10660 : # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
10661 : yyssp, yytoken)
10662 0 : {
10663 0 : char const *yymsgp = YY_("syntax error");
10664 0 : int yysyntax_error_status;
10665 0 : yysyntax_error_status = YYSYNTAX_ERROR;
10666 0 : if (yysyntax_error_status == 0)
10667 0 : yymsgp = yymsg;
10668 0 : else if (yysyntax_error_status == 1)
10669 : {
10670 0 : if (yymsg != yymsgbuf)
10671 0 : YYSTACK_FREE (yymsg);
10672 0 : yymsg = YY_CAST (char *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
10673 0 : if (!yymsg)
10674 : {
10675 0 : yymsg = yymsgbuf;
10676 0 : yymsg_alloc = sizeof yymsgbuf;
10677 0 : yysyntax_error_status = 2;
10678 : }
10679 : else
10680 : {
10681 0 : yysyntax_error_status = YYSYNTAX_ERROR;
10682 0 : yymsgp = yymsg;
10683 : }
10684 : }
10685 0 : yyerror (yymsgp);
10686 0 : if (yysyntax_error_status == 2)
10687 0 : goto yyexhaustedlab;
10688 : }
10689 : # undef YYSYNTAX_ERROR
10690 : #endif
10691 : }
10692 :
10693 0 : yyerror_range[1] = yylloc;
10694 :
10695 0 : if (yyerrstatus == 3)
10696 : {
10697 : /* If just tried and failed to reuse lookahead token after an
10698 : error, discard it. */
10699 :
10700 0 : if (yychar <= YYEOF)
10701 : {
10702 : /* Return failure if at end of input. */
10703 0 : if (yychar == YYEOF)
10704 0 : YYABORT;
10705 : }
10706 : else
10707 : {
10708 0 : yydestruct ("Error: discarding",
10709 : yytoken, &yylval, &yylloc);
10710 0 : yychar = YYEMPTY;
10711 : }
10712 : }
10713 :
10714 : /* Else will try to reuse lookahead token after shifting the error
10715 : token. */
10716 0 : goto yyerrlab1;
10717 :
10718 :
10719 : /*---------------------------------------------------.
10720 : | yyerrorlab -- error raised explicitly by YYERROR. |
10721 : `---------------------------------------------------*/
10722 : yyerrorlab:
10723 : /* Pacify compilers when the user code never invokes YYERROR and the
10724 : label yyerrorlab therefore never appears in user code. */
10725 : if (0)
10726 : YYERROR;
10727 :
10728 : /* Do not reclaim the symbols of the rule whose action triggered
10729 : this YYERROR. */
10730 : YYPOPSTACK (yylen);
10731 : yylen = 0;
10732 : YY_STACK_PRINT (yyss, yyssp);
10733 : yystate = *yyssp;
10734 : goto yyerrlab1;
10735 :
10736 :
10737 : /*-------------------------------------------------------------.
10738 : | yyerrlab1 -- common code for both syntax error and YYERROR. |
10739 : `-------------------------------------------------------------*/
10740 0 : yyerrlab1:
10741 0 : yyerrstatus = 3; /* Each real token shifted decrements this. */
10742 :
10743 0 : for (;;)
10744 : {
10745 0 : yyn = yypact[yystate];
10746 0 : if (!yypact_value_is_default (yyn))
10747 : {
10748 0 : yyn += YYTERROR;
10749 0 : if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
10750 : {
10751 0 : yyn = yytable[yyn];
10752 0 : if (0 < yyn)
10753 : break;
10754 : }
10755 : }
10756 :
10757 : /* Pop the current state because it cannot handle the error token. */
10758 0 : if (yyssp == yyss)
10759 0 : YYABORT;
10760 :
10761 0 : yyerror_range[1] = *yylsp;
10762 0 : yydestruct ("Error: popping",
10763 0 : yystos[yystate], yyvsp, yylsp);
10764 0 : YYPOPSTACK (1);
10765 0 : yystate = *yyssp;
10766 0 : YY_STACK_PRINT (yyss, yyssp);
10767 : }
10768 :
10769 0 : YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
10770 0 : *++yyvsp = yylval;
10771 0 : YY_IGNORE_MAYBE_UNINITIALIZED_END
10772 :
10773 0 : yyerror_range[2] = yylloc;
10774 : /* Using YYLLOC is tempting, but would change the location of
10775 : the lookahead. YYLOC is available though. */
10776 0 : YYLLOC_DEFAULT (yyloc, yyerror_range, 2);
10777 0 : *++yylsp = yyloc;
10778 :
10779 : /* Shift the error token. */
10780 0 : YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
10781 :
10782 0 : yystate = yyn;
10783 0 : goto yynewstate;
10784 :
10785 :
10786 : /*-------------------------------------.
10787 : | yyacceptlab -- YYACCEPT comes here. |
10788 : `-------------------------------------*/
10789 955 : yyacceptlab:
10790 955 : yyresult = 0;
10791 955 : goto yyreturn;
10792 :
10793 :
10794 : /*-----------------------------------.
10795 : | yyabortlab -- YYABORT comes here. |
10796 : `-----------------------------------*/
10797 0 : yyabortlab:
10798 0 : yyresult = 1;
10799 0 : goto yyreturn;
10800 :
10801 :
10802 : #if !defined yyoverflow || YYERROR_VERBOSE
10803 : /*-------------------------------------------------.
10804 : | yyexhaustedlab -- memory exhaustion comes here. |
10805 : `-------------------------------------------------*/
10806 0 : yyexhaustedlab:
10807 0 : yyerror (YY_("memory exhausted"));
10808 0 : yyresult = 2;
10809 : /* Fall through. */
10810 : #endif
10811 :
10812 :
10813 : /*-----------------------------------------------------.
10814 : | yyreturn -- parsing is finished, return the result. |
10815 : `-----------------------------------------------------*/
10816 955 : yyreturn:
10817 955 : if (yychar != YYEMPTY)
10818 : {
10819 : /* Make sure we have latest lookahead translation. See comments at
10820 : user semantic actions for why this is necessary. */
10821 955 : yytoken = YYTRANSLATE (yychar);
10822 : yydestruct ("Cleanup: discarding lookahead",
10823 : yytoken, &yylval, &yylloc);
10824 : }
10825 : /* Do not reclaim the symbols of the rule whose action triggered
10826 : this YYABORT or YYACCEPT. */
10827 955 : YYPOPSTACK (yylen);
10828 955 : YY_STACK_PRINT (yyss, yyssp);
10829 955 : while (yyssp != yyss)
10830 : {
10831 : yydestruct ("Cleanup: popping",
10832 : yystos[+*yyssp], yyvsp, yylsp);
10833 : YYPOPSTACK (1);
10834 : }
10835 : #ifndef yyoverflow
10836 955 : if (yyss != yyssa)
10837 0 : YYSTACK_FREE (yyss);
10838 : #endif
10839 : #if YYERROR_VERBOSE
10840 955 : if (yymsg != yymsgbuf)
10841 0 : YYSTACK_FREE (yymsg);
10842 : #endif
10843 955 : return yyresult;
10844 : }
10845 : #line 3513 "../../../../../rexompiler/src/frontend/SageIII/ompparser/src/ompparser.yy"
10846 :
10847 :
10848 : int yyerror(const char *s) {
10849 : // printf(" %s!\n", s);
10850 : fprintf(stderr,"error: %s\n",s);
10851 : current_directive = NULL;
10852 : return 0;
10853 : }
10854 :
10855 : int yywrap()
10856 : {
10857 : return 1;
10858 : }
10859 :
10860 : // Standalone ompparser
10861 : OpenMPDirective* parseOpenMP(const char* _input, void * _exprParse(const char*)) {
10862 : OpenMPBaseLang base_lang = Lang_C;
10863 : current_directive = NULL;
10864 : std::string input_string;
10865 : const char *input = _input;
10866 : std::regex fortran_regex ("[!c*][$][Oo][Mm][Pp]");
10867 : input_string = std::string(input, 5);
10868 : if (user_set_lang == Lang_unknown){
10869 : auto_lang = Lang_C;
10870 : exprParse = _exprParse;
10871 : if (std::regex_match(input_string, fortran_regex)) {
10872 : base_lang = Lang_Fortran;
10873 : auto_lang = Lang_Fortran;
10874 : input_string = std::string(input);
10875 : std::transform(input_string.begin(), input_string.end(), input_string.begin(), ::tolower);
10876 : input = input_string.c_str();
10877 : };
10878 : } else {
10879 : base_lang = user_set_lang;
10880 : exprParse = _exprParse;
10881 : if (std::regex_match(input_string, fortran_regex)) {
10882 : if (user_set_lang != Lang_Fortran){
10883 : yyerror("The language is set to C/C++, but the input is Fortran.");
10884 : return NULL;
10885 : }
10886 : } else {
10887 : if (user_set_lang == Lang_Fortran){
10888 : yyerror("The language is set to Fortran, but the input is C/C++.");
10889 : return NULL;
10890 : }
10891 : };
10892 : }
10893 : start_lexer(input);
10894 : yyparse();
10895 : end_lexer();
10896 : if (current_directive) {
10897 : current_directive->setBaseLang(base_lang);
10898 : };
10899 : return current_directive;
10900 : }
|