LCOV - code coverage report
Current view: top level - src/frontend/SageIII/ompparser - ompparser.cc (source / functions) Hit Total Coverage
Test: ROSE Lines: 509 1122 45.4 %
Date: 2022-12-08 13:48:47 Functions: 1 3 33.3 %
Legend: Lines: hit not hit

          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             : }

Generated by: LCOV version 1.14