diff options
Diffstat (limited to 'src/wkt2_generated_parser.c')
| -rw-r--r-- | src/wkt2_generated_parser.c | 3140 |
1 files changed, 3140 insertions, 0 deletions
diff --git a/src/wkt2_generated_parser.c b/src/wkt2_generated_parser.c new file mode 100644 index 00000000..6d816135 --- /dev/null +++ b/src/wkt2_generated_parser.c @@ -0,0 +1,3140 @@ +/* A Bison parser, made by GNU Bison 3.0.4. */ + +/* Bison implementation for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* C LALR(1) parser skeleton written by Richard Stallman, by + simplifying the original so-called "semantic" parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Bison version. */ +#define YYBISON_VERSION "3.0.4" + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 1 + +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + + +/* Substitute the variable and function names. */ +#define yyparse pj_wkt2_parse +#define yylex pj_wkt2_lex +#define yyerror pj_wkt2_error +#define yydebug pj_wkt2_debug +#define yynerrs pj_wkt2_nerrs + + +/* Copy the first part of user declarations. */ + + +/****************************************************************************** + * Project: PROJ + * Purpose: WKT2 parser grammar + * Author: Even Rouault, <even.rouault at spatialys.com> + * + ****************************************************************************** + * Copyright (c) 2018 Even Rouault, <even.rouault at spatialys.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#include "wkt2_parser.h" + + + + +# ifndef YY_NULLPTR +# if defined __cplusplus && 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 1 +#endif + +/* In a future release of Bison, this section will be replaced + by #include "wkt2_generated_parser.h". */ +#ifndef YY_PJ_WKT2_SRC_WKT2_GENERATED_PARSER_H_INCLUDED +# define YY_PJ_WKT2_SRC_WKT2_GENERATED_PARSER_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int pj_wkt2_debug; +#endif + +/* Token type. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + enum yytokentype + { + END = 0, + T_PROJECTION = 258, + T_DATUM = 259, + T_SPHEROID = 260, + T_PRIMEM = 261, + T_UNIT = 262, + T_AXIS = 263, + T_PARAMETER = 264, + T_GEODCRS = 265, + T_LENGTHUNIT = 266, + T_ANGLEUNIT = 267, + T_SCALEUNIT = 268, + T_TIMEUNIT = 269, + T_ELLIPSOID = 270, + T_CS = 271, + T_ID = 272, + T_PROJCRS = 273, + T_BASEGEODCRS = 274, + T_MERIDIAN = 275, + T_BEARING = 276, + T_ORDER = 277, + T_ANCHOR = 278, + T_CONVERSION = 279, + T_METHOD = 280, + T_REMARK = 281, + T_GEOGCRS = 282, + T_BASEGEOGCRS = 283, + T_SCOPE = 284, + T_AREA = 285, + T_BBOX = 286, + T_CITATION = 287, + T_URI = 288, + T_VERTCRS = 289, + T_VDATUM = 290, + T_GEOIDMODEL = 291, + T_COMPOUNDCRS = 292, + T_PARAMETERFILE = 293, + T_COORDINATEOPERATION = 294, + T_SOURCECRS = 295, + T_TARGETCRS = 296, + T_INTERPOLATIONCRS = 297, + T_OPERATIONACCURACY = 298, + T_CONCATENATEDOPERATION = 299, + T_STEP = 300, + T_BOUNDCRS = 301, + T_ABRIDGEDTRANSFORMATION = 302, + T_DERIVINGCONVERSION = 303, + T_TDATUM = 304, + T_CALENDAR = 305, + T_TIMEORIGIN = 306, + T_TIMECRS = 307, + T_VERTICALEXTENT = 308, + T_TIMEEXTENT = 309, + T_USAGE = 310, + T_DYNAMIC = 311, + T_FRAMEEPOCH = 312, + T_MODEL = 313, + T_VELOCITYGRID = 314, + T_ENSEMBLE = 315, + T_MEMBER = 316, + T_ENSEMBLEACCURACY = 317, + T_DERIVEDPROJCRS = 318, + T_BASEPROJCRS = 319, + T_EDATUM = 320, + T_ENGCRS = 321, + T_PDATUM = 322, + T_PARAMETRICCRS = 323, + T_PARAMETRICUNIT = 324, + T_BASEVERTCRS = 325, + T_BASEENGCRS = 326, + T_BASEPARAMCRS = 327, + T_BASETIMECRS = 328, + T_EPOCH = 329, + T_COORDEPOCH = 330, + T_COORDINATEMETADATA = 331, + T_POINTMOTIONOPERATION = 332, + T_GEODETICCRS = 333, + T_GEODETICDATUM = 334, + T_PROJECTEDCRS = 335, + T_PRIMEMERIDIAN = 336, + T_GEOGRAPHICCRS = 337, + T_TRF = 338, + T_VERTICALCRS = 339, + T_VERTICALDATUM = 340, + T_VRF = 341, + T_TIMEDATUM = 342, + T_TEMPORALQUANTITY = 343, + T_ENGINEERINGDATUM = 344, + T_ENGINEERINGCRS = 345, + T_PARAMETRICDATUM = 346, + T_AFFINE = 347, + T_CARTESIAN = 348, + T_CYLINDRICAL = 349, + T_ELLIPSOIDAL = 350, + T_LINEAR = 351, + T_PARAMETRIC = 352, + T_POLAR = 353, + T_SPHERICAL = 354, + T_VERTICAL = 355, + T_TEMPORAL = 356, + T_TEMPORALCOUNT = 357, + T_TEMPORALMEASURE = 358, + T_ORDINAL = 359, + T_TEMPORALDATETIME = 360, + T_NORTH = 361, + T_NORTHNORTHEAST = 362, + T_NORTHEAST = 363, + T_EASTNORTHEAST = 364, + T_EAST = 365, + T_EASTSOUTHEAST = 366, + T_SOUTHEAST = 367, + T_SOUTHSOUTHEAST = 368, + T_SOUTH = 369, + T_SOUTHSOUTHWEST = 370, + T_SOUTHWEST = 371, + T_WESTSOUTHWEST = 372, + T_WEST = 373, + T_WESTNORTHWEST = 374, + T_NORTHWEST = 375, + T_NORTHNORTHWEST = 376, + T_UP = 377, + T_DOWN = 378, + T_GEOCENTRICX = 379, + T_GEOCENTRICY = 380, + T_GEOCENTRICZ = 381, + T_COLUMNPOSITIVE = 382, + T_COLUMNNEGATIVE = 383, + T_ROWPOSITIVE = 384, + T_ROWNEGATIVE = 385, + T_DISPLAYRIGHT = 386, + T_DISPLAYLEFT = 387, + T_DISPLAYUP = 388, + T_DISPLAYDOWN = 389, + T_FORWARD = 390, + T_AFT = 391, + T_PORT = 392, + T_STARBOARD = 393, + T_CLOCKWISE = 394, + T_COUNTERCLOCKWISE = 395, + T_TOWARDS = 396, + T_AWAYFROM = 397, + T_FUTURE = 398, + T_PAST = 399, + T_UNSPECIFIED = 400, + T_STRING = 401, + T_UNSIGNED_INTEGER_DIFFERENT_ONE_TWO_THREE = 402 + }; +#endif + +/* Value type. */ +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef int YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 +#endif + + + +int pj_wkt2_parse (pj_wkt2_parse_context *context); + +#endif /* !YY_PJ_WKT2_SRC_WKT2_GENERATED_PARSER_H_INCLUDED */ + +/* Copy the second part of user declarations. */ + + + +#ifdef short +# undef short +#endif + +#ifdef YYTYPE_UINT8 +typedef YYTYPE_UINT8 yytype_uint8; +#else +typedef unsigned char yytype_uint8; +#endif + +#ifdef YYTYPE_INT8 +typedef YYTYPE_INT8 yytype_int8; +#else +typedef signed char yytype_int8; +#endif + +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short int yytype_uint16; +#endif + +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; +#else +typedef short int yytype_int16; +#endif + +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif ! defined YYSIZE_T +# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# else +# define YYSIZE_T unsigned int +# endif +#endif + +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) + +#ifndef YY_ +# if defined YYENABLE_NLS && YYENABLE_NLS +# if ENABLE_NLS +# include <libintl.h> /* INFRINGES ON USER NAME SPACE */ +# define YY_(Msgid) dgettext ("bison-runtime", Msgid) +# endif +# endif +# ifndef YY_ +# define YY_(Msgid) Msgid +# endif +#endif + +#ifndef YY_ATTRIBUTE +# if (defined __GNUC__ \ + && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ + || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C +# define YY_ATTRIBUTE(Spec) __attribute__(Spec) +# else +# define YY_ATTRIBUTE(Spec) /* empty */ +# endif +#endif + +#ifndef YY_ATTRIBUTE_PURE +# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +#endif + +#ifndef YY_ATTRIBUTE_UNUSED +# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +#endif + +#if !defined _Noreturn \ + && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) +# if defined _MSC_VER && 1200 <= _MSC_VER +# define _Noreturn __declspec (noreturn) +# else +# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) +# endif +#endif + +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(E) ((void) (E)) +#else +# define YYUSE(E) /* empty */ +#endif + +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") +#else +# define YY_INITIAL_VALUE(Value) Value +#endif +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif + + +#if ! defined yyoverflow || YYERROR_VERBOSE + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include <alloca.h> /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include <malloc.h> /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca +# else +# define YYSTACK_ALLOC alloca +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS +# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ + /* Use EXIT_SUCCESS as a witness for stdlib.h. */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's 'empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ +# endif +# else +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM +# endif +# if (defined __cplusplus && ! defined EXIT_SUCCESS \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined EXIT_SUCCESS +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined EXIT_SUCCESS +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# endif +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ + + +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + yytype_int16 yyss_alloc; + YYSTYPE yyvs_alloc; +}; + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +# define YYCOPY_NEEDED 1 + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (0) + +#endif + +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED +/* Copy COUNT objects from SRC to DST. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(Dst, Src, Count) \ + __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) +# else +# define YYCOPY(Dst, Src, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (Dst)[yyi] = (Src)[yyi]; \ + } \ + while (0) +# endif +# endif +#endif /* !YYCOPY_NEEDED */ + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 99 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 3313 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 163 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 324 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 651 +/* YYNSTATES -- Number of states. */ +#define YYNSTATES 1343 + +/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned + by yylex, with out-of-bounds checking. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 402 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, without out-of-bounds checking. */ +static const yytype_uint8 yytranslate[] = +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 159, 161, 2, 153, 162, 154, 148, 2, 2, 150, + 151, 152, 2, 2, 2, 2, 2, 2, 155, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 149, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 156, 2, 2, 2, 2, 2, + 157, 158, 2, 160, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147 +}; + +#if YYDEBUG + /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ +static const yytype_uint16 yyrline[] = +{ + 0, 206, 206, 206, 206, 206, 206, 206, 207, 207, + 207, 208, 211, 211, 212, 212, 212, 213, 216, 216, + 216, 216, 217, 217, 217, 217, 218, 218, 218, 219, + 219, 219, 223, 227, 227, 229, 231, 233, 233, 235, + 235, 237, 239, 241, 243, 245, 245, 247, 247, 249, + 249, 249, 249, 251, 251, 255, 257, 261, 262, 263, + 265, 265, 267, 269, 271, 273, 277, 278, 281, 282, + 284, 286, 288, 291, 292, 293, 295, 297, 299, 299, + 301, 304, 305, 307, 307, 312, 312, 314, 314, 316, + 318, 320, 324, 325, 328, 329, 330, 332, 332, 333, + 336, 337, 341, 342, 343, 347, 348, 349, 350, 352, + 356, 358, 361, 363, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 401, 403, 405, 409, 414, 416, + 418, 420, 422, 426, 431, 432, 434, 436, 438, 442, + 446, 448, 448, 450, 450, 455, 460, 461, 462, 463, + 464, 465, 466, 468, 470, 472, 472, 474, 474, 476, + 478, 480, 482, 484, 486, 490, 492, 496, 496, 499, + 502, 507, 507, 507, 507, 507, 510, 515, 515, 515, + 515, 518, 522, 523, 525, 541, 545, 546, 548, 548, + 550, 550, 556, 556, 558, 560, 567, 567, 567, 569, + 576, 577, 578, 579, 581, 588, 595, 596, 597, 599, + 601, 601, 601, 601, 601, 601, 601, 601, 601, 604, + 604, 604, 606, 606, 608, 608, 608, 610, 615, 621, + 626, 629, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 643, 644, 645, 646, 647, 648, 649, 650, 653, + 654, 655, 656, 657, 658, 659, 660, 663, 664, 667, + 668, 669, 670, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 686, 687, 688, 689, 692, 693, 694, 695, + 698, 699, 702, 703, 708, 709, 712, 713, 714, 715, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, + 748, 749, 750, 751, 752, 753, 755, 758, 760, 762, + 764, 766, 768, 784, 784, 786, 794, 795, 797, 798, + 800, 808, 809, 811, 813, 815, 820, 821, 823, 825, + 827, 829, 831, 833, 835, 840, 844, 846, 849, 852, + 853, 854, 856, 857, 859, 864, 865, 867, 867, 869, + 873, 873, 873, 873, 875, 883, 891, 900, 910, 911, + 913, 915, 915, 917, 917, 920, 921, 925, 931, 932, + 933, 935, 935, 937, 939, 941, 945, 950, 950, 952, + 955, 956, 960, 965, 965, 965, 967, 969, 970, 971, + 972, 974, 977, 979, 983, 989, 989, 993, 993, 995, + 1000, 1001, 1002, 1003, 1005, 1011, 1011, 1013, 1015, 1019, + 1027, 1028, 1030, 1032, 1034, 1038, 1038, 1040, 1042, 1047, + 1048, 1050, 1052, 1054, 1056, 1060, 1060, 1062, 1068, 1075, + 1075, 1078, 1085, 1086, 1087, 1088, 1089, 1091, 1095, 1097, + 1099, 1099, 1103, 1108, 1108, 1108, 1112, 1117, 1117, 1119, + 1123, 1123, 1127, 1132, 1134, 1138, 1138, 1142, 1147, 1149, + 1153, 1154, 1155, 1156, 1157, 1159, 1159, 1161, 1164, 1166, + 1166, 1168, 1170, 1172, 1176, 1183, 1183, 1185, 1186, 1187, + 1188, 1190, 1192, 1196, 1201, 1203, 1206, 1211, 1215, 1221, + 1221, 1221, 1221, 1221, 1221, 1225, 1230, 1232, 1238, 1245, + 1255, 1261, 1263, 1265, 1270, 1275, 1281, 1281, 1283, 1286, + 1290, 1295, 1301, 1304, 1309, 1315, 1318, 1323, 1329, 1332, + 1337, 1343, 1344, 1345, 1346, 1347, 1349, 1351, 1353, 1353, + 1353, 1355, 1355, 1360, 1363, 1363, 1366, 1367, 1368, 1370, + 1374, 1375, 1377, 1379, 1379, 1380, 1380, 1381, 1381, 1381, + 1382, 1382, 1383, 1383, 1384, 1384, 1385, 1385, 1387, 1387, + 1388, 1388, 1389, 1389, 1390, 1390, 1394, 1401, 1402, 1403, + 1404, 1405, 1406, 1407, 1409, 1411, 1413, 1415, 1417, 1419, + 1421, 1423, 1425, 1427, 1432, 1439, 1440, 1441, 1442, 1443, + 1445, 1450, 1458, 1458, 1458, 1460, 1461, 1462, 1463, 1465, + 1467, 1472, 1478, 1480, 1487, 1487, 1489, 1490, 1491, 1492, + 1494, 1496 +}; +#endif + +#if YYDEBUG || YYERROR_VERBOSE || 1 +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "\"end of string\"", "error", "$undefined", "\"PROJECTION\"", + "\"DATUM\"", "\"SPHEROID\"", "\"PRIMEM\"", "\"UNIT\"", "\"AXIS\"", + "\"PARAMETER\"", "\"GEODCRS\"", "\"LENGTHUNIT\"", "\"ANGLEUNIT\"", + "\"SCALEUNIT\"", "\"TIMEUNIT\"", "\"ELLIPSOID\"", "\"CS\"", "\"ID\"", + "\"PROJCRS\"", "\"BASEGEODCRS\"", "\"MERIDIAN\"", "\"BEARING\"", + "\"ORDER\"", "\"ANCHOR\"", "\"CONVERSION\"", "\"METHOD\"", "\"REMARK\"", + "\"GEOGCRS\"", "\"BASEGEOGCRS\"", "\"SCOPE\"", "\"AREA\"", "\"BBOX\"", + "\"CITATION\"", "\"URI\"", "\"VERTCRS\"", "\"VDATUM\"", "\"GEOIDMODEL\"", + "\"COMPOUNDCRS\"", "\"PARAMETERFILE\"", "\"COORDINATEOPERATION\"", + "\"SOURCECRS\"", "\"TARGETCRS\"", "\"INTERPOLATIONCRS\"", + "\"OPERATIONACCURACY\"", "\"CONCATENATEDOPERATION\"", "\"STEP\"", + "\"BOUNDCRS\"", "\"ABRIDGEDTRANSFORMATION\"", "\"DERIVINGCONVERSION\"", + "\"TDATUM\"", "\"CALENDAR\"", "\"TIMEORIGIN\"", "\"TIMECRS\"", + "\"VERTICALEXTENT\"", "\"TIMEEXTENT\"", "\"USAGE\"", "\"DYNAMIC\"", + "\"FRAMEEPOCH\"", "\"MODEL\"", "\"VELOCITYGRID\"", "\"ENSEMBLE\"", + "\"MEMBER\"", "\"ENSEMBLEACCURACY\"", "\"DERIVEDPROJCRS\"", + "\"BASEPROJCRS\"", "\"EDATUM\"", "\"ENGCRS\"", "\"PDATUM\"", + "\"PARAMETRICCRS\"", "\"PARAMETRICUNIT\"", "\"BASEVERTCRS\"", + "\"BASEENGCRS\"", "\"BASEPARAMCRS\"", "\"BASETIMECRS\"", "\"EPOCH\"", + "\"COORDEPOCH\"", "\"COORDINATEMETADATA\"", "\"POINTMOTIONOPERATION\"", + "\"GEODETICCRS\"", "\"GEODETICDATUM\"", "\"PROJECTEDCRS\"", + "\"PRIMEMERIDIAN\"", "\"GEOGRAPHICCRS\"", "\"TRF\"", "\"VERTICALCRS\"", + "\"VERTICALDATUM\"", "\"VRF\"", "\"TIMEDATUM\"", "\"TEMPORALQUANTITY\"", + "\"ENGINEERINGDATUM\"", "\"ENGINEERINGCRS\"", "\"PARAMETRICDATUM\"", + "\"affine\"", "\"Cartesian\"", "\"cylindrical\"", "\"ellipsoidal\"", + "\"linear\"", "\"parametric\"", "\"polar\"", "\"spherical\"", + "\"vertical\"", "\"temporal\"", "\"temporalCount\"", + "\"temporalMeasure\"", "\"ordinal\"", "\"temporalDateTime\"", + "\"north\"", "\"northNorthEast\"", "\"northEast\"", "\"eastNorthEast\"", + "\"east\"", "\"eastSouthEast\"", "\"southEast\"", "\"southSouthEast\"", + "\"south\"", "\"southSouthWest\"", "\"southWest\"", "\"westSouthWest\"", + "\"west\"", "\"westNorthWest\"", "\"northWest\"", "\"northNorthWest\"", + "\"up\"", "\"down\"", "\"geocentricX\"", "\"geocentricY\"", + "\"geocentricZ\"", "\"columnPositive\"", "\"columnNegative\"", + "\"rowPositive\"", "\"rowNegative\"", "\"displayRight\"", + "\"displayLeft\"", "\"displayUp\"", "\"displayDown\"", "\"forward\"", + "\"aft\"", "\"port\"", "\"starboard\"", "\"clockwise\"", + "\"counterClockwise\"", "\"towards\"", "\"awayFrom\"", "\"future\"", + "\"part\"", "\"unspecified\"", "\"string\"", "\"unsigned integer\"", + "'.'", "'E'", "'1'", "'2'", "'3'", "'+'", "'-'", "':'", "'T'", "'Z'", + "'['", "'('", "']'", "')'", "','", "$accept", "input", "datum", "crs", + "period", "number", "signed_numeric_literal_with_sign", + "signed_numeric_literal", "unsigned_numeric_literal", "opt_sign", + "approximate_numeric_literal", "mantissa", "exponent", "signed_integer", + "exact_numeric_literal", "opt_period_unsigned_integer", + "unsigned_integer", "sign", "colon", "hyphen", "datetime", + "opt_24_hour_clock", "year", "month", "day", "_24_hour_clock", + "opt_colon_minute_colon_second_time_zone_designator", + "opt_colon_second_time_zone_designator", "time_designator", "hour", + "minute", "second_time_zone_designator", "seconds_integer", + "seconds_fraction", "time_zone_designator", "utc_designator", + "local_time_zone_designator", "opt_colon_minute", "left_delimiter", + "right_delimiter", "wkt_separator", "quoted_latin_text", + "quoted_unicode_text", "opt_separator_scope_extent_identifier_remark", + "no_opt_separator_scope_extent_identifier_remark", + "opt_identifier_list_remark", + "scope_extent_opt_identifier_list_opt_remark", + "scope_extent_opt_identifier_list_remark", + "usage_list_opt_identifier_list_remark", "usage", "usage_keyword", + "scope", "scope_keyword", "scope_text_description", "extent", + "extent_opt_identifier_list_remark", "area_description", + "area_description_keyword", "area_text_description", + "geographic_bounding_box", "geographic_bounding_box_keyword", + "lower_left_latitude", "lower_left_longitude", "upper_right_latitude", + "upper_right_longitude", "vertical_extent", "opt_separator_length_unit", + "vertical_extent_keyword", "vertical_extent_minimum_height", + "vertical_extent_maximum_height", "temporal_extent", + "temporal_extent_keyword", "temporal_extent_start", + "temporal_extent_end", "identifier", + "opt_version_authority_citation_uri", "identifier_keyword", + "authority_name", "authority_unique_identifier", "version", + "authority_citation", "citation_keyword", "citation", "id_uri", + "uri_keyword", "uri", "remark", "remark_keyword", "unit", "spatial_unit", + "angle_or_length_or_parametric_or_scale_unit", + "angle_or_length_or_parametric_or_scale_unit_keyword", + "angle_or_length_or_scale_unit", "angle_or_length_or_scale_unit_keyword", + "angle_unit", "opt_separator_identifier_list", "length_unit", + "time_unit", "opt_separator_conversion_factor_identifier_list", + "angle_unit_keyword", "length_unit_keyword", "time_unit_keyword", + "unit_name", "conversion_factor", + "coordinate_system_scope_extent_identifier_remark", + "spatial_cs_scope_extent_identifier_remark", + "opt_separator_spatial_axis_list_opt_separator_cs_unit_scope_extent_identifier_remark", + "temporalcountmeasure_cs_scope_extent_identifier_remark", + "ordinaldatetime_cs_scope_extent_identifier_remark", + "opt_separator_ordinaldatetime_axis_list_scope_extent_identifier_remark", + "cs_keyword", "spatial_cs_type", "temporalcountmeasure_cs_type", + "ordinaldatetime_cs_type", "dimension", "spatial_axis", + "temporalcountmeasure_axis", "ordinaldatetime_axis", "axis_keyword", + "axis_name_abbrev", + "axis_direction_opt_axis_order_spatial_unit_identifier_list", + "north_south_options_spatial_unit", + "clockwise_counter_clockwise_options_spatial_unit", + "axis_direction_except_n_s_cw_ccw_opt_axis_spatial_unit_identifier_list", + "axis_direction_except_n_s_cw_ccw_opt_axis_spatial_unit_identifier_list_options", + "axis_direction_opt_axis_order_identifier_list", "north_south_options", + "clockwise_counter_clockwise_options", + "axis_direction_except_n_s_cw_ccw_opt_axis_identifier_list", + "axis_direction_except_n_s_cw_ccw_opt_axis_identifier_list_options", + "opt_separator_axis_time_unit_identifier_list", + "axis_direction_except_n_s_cw_ccw_opt_axis_time_unit_identifier_list_options", + "axis_direction_except_n_s_cw_ccw", "meridian", "meridian_keyword", + "bearing", "bearing_keyword", "axis_order", "axis_order_keyword", + "cs_unit", "datum_ensemble", "geodetic_datum_ensemble_without_pm", + "datum_ensemble_member_list_ellipsoid_accuracy_identifier_list", + "opt_separator_datum_ensemble_identifier_list", + "vertical_datum_ensemble", + "datum_ensemble_member_list_accuracy_identifier_list", + "datum_ensemble_keyword", "datum_ensemble_name", "datum_ensemble_member", + "opt_datum_ensemble_member_identifier_list", + "datum_ensemble_member_keyword", "datum_ensemble_member_name", + "datum_ensemble_member_identifier", "datum_ensemble_accuracy", + "datum_ensemble_accuracy_keyword", "accuracy", + "datum_ensemble_identifier", "dynamic_crs", "dynamic_crs_keyword", + "frame_reference_epoch", "frame_reference_epoch_keyword", + "reference_epoch", "opt_separator_deformation_model_id", + "deformation_model_id", "opt_separator_identifier", + "deformation_model_id_keyword", "deformation_model_name", "geodetic_crs", + "static_geodetic_crs", "static_geographic_crs", "dynamic_geodetic_crs", + "dynamic_geographic_crs", + "opt_prime_meridian_coordinate_system_scope_extent_identifier_remark", + "crs_name", "geodetic_crs_keyword", "geographic_crs_keyword", + "geodetic_reference_frame_or_geodetic_datum_ensemble_without_pm", + "ellipsoid", "opt_separator_length_unit_identifier_list", + "ellipsoid_keyword", "ellipsoid_name", "semi_major_axis", + "inverse_flattening", "prime_meridian", "prime_meridian_keyword", + "prime_meridian_name", "irm_longitude_opt_separator_identifier_list", + "geodetic_reference_frame_without_pm", + "geodetic_reference_frame_keyword", "datum_name", + "opt_separator_datum_anchor_identifier_list", "datum_anchor", + "datum_anchor_keyword", "datum_anchor_description", "projected_crs", + "projected_crs_keyword", "base_geodetic_crs", "base_static_geodetic_crs", + "opt_separator_pm_ellipsoidal_cs_unit", "base_dynamic_geodetic_crs", + "base_geodetic_crs_keyword", "base_crs_name", "ellipsoidal_cs_unit", + "map_projection", "parameter_list_identifier_list", + "map_projection_keyword", "map_projection_name", "map_projection_method", + "map_projection_method_keyword", "map_projection_method_name", + "map_projection_parameter", "opt_separator_param_unit_identifier_list", + "parameter_keyword", "parameter_name", "parameter_value", + "map_projection_parameter_unit", "vertical_crs", "static_vertical_crs", + "dynamic_vertical_crs", + "vertical_reference_frame_or_vertical_datum_ensemble", + "vertical_cs_opt_geoid_model_id_scope_extent_identifier_remark", + "opt_separator_cs_unit_opt_geoid_model_id_scope_extent_identifier_remark", + "geoid_model_id", "geoid_model_keyword", "geoid_model_name", + "vertical_crs_keyword", "vertical_reference_frame", + "vertical_reference_frame_keyword", "engineering_crs", + "engineering_crs_keyword", "engineering_datum", + "engineering_datum_keyword", "parametric_crs", "parametric_crs_keyword", + "parametric_datum", "parametric_datum_keyword", "temporal_crs", + "temporal_crs_keyword", "temporal_datum", + "opt_separator_temporal_datum_end", "temporal_datum_keyword", + "temporal_origin", "temporal_origin_keyword", + "temporal_origin_description", "calendar", "calendar_keyword", + "calendar_identifier", "deriving_conversion", + "parameter_or_parameter_file", "opt_separator_deriving_conversion_end", + "deriving_conversion_keyword", "deriving_conversion_name", + "operation_method", "operation_method_keyword", "operation_method_name", + "operation_parameter", "parameter_unit", + "length_or_angle_or_scale_or_time_or_parametric_unit", + "length_or_angle_or_scale_or_time_or_parametric_unit_keyword", + "operation_parameter_file", "parameter_file_keyword", + "parameter_file_name", "derived_geodetic_crs", "derived_geographic_crs", + "derived_projected_crs", "derived_projected_crs_keyword", + "derived_crs_name", "base_projected_crs", "base_projected_crs_keyword", + "derived_vertical_crs", "base_vertical_crs", "base_static_vertical_crs", + "base_dynamic_vertical_crs", "base_vertical_crs_keyword", + "derived_engineering_crs", "base_engineering_crs", + "base_engineering_crs_keyword", "derived_parametric_crs", + "base_parametric_crs", "base_parametric_crs_keyword", + "derived_temporal_crs", "base_temporal_crs", "base_temporal_crs_keyword", + "compound_crs", "compound_crs_other_components", "compound_crs_keyword", + "compound_crs_name", "horizontal_crs", "geographic2D_crs", + "metadata_coordinate_epoch", "coordinate_epoch_keyword", + "coordinate_epoch", "coordinate_metadata", "coordinate_metadata_crs", + "coordinate_metadata_keyword", "static_crs", + "dynamic_crs_coordinate_metadata", "coordinate_operation", + "opt_coordinate_operation_end", "operation_keyword", "operation_name", + "source_crs", "source_crs_keyword", "target_crs", "target_crs_keyword", + "interpolation_crs", "interpolation_crs_keyword", "operation_accuracy", + "operation_accuracy_keyword", "point_motion_operation", + "opt_point_motion_operation_end", "point_motion_keyword", + "concatenated_operation", "step", "opt_concatenated_operation_end", + "concatenated_operation_keyword", "step_keyword", "bound_crs", + "bound_crs_keyword", "abridged_coordinate_transformation", + "abridged_parameter_or_parameter_file", + "opt_end_abridged_coordinate_transformation", + "abridged_transformation_keyword", "abridged_transformation_parameter", YY_NULLPTR +}; +#endif + +# ifdef YYPRINT +/* YYTOKNUM[NUM] -- (External) token number corresponding to the + (internal) symbol number NUM (which must be that of a token). */ +static const yytype_uint16 yytoknum[] = +{ + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 46, 69, + 49, 50, 51, 43, 45, 58, 84, 90, 91, 40, + 93, 41, 44 +}; +# endif + +#define YYPACT_NINF -1109 + +#define yypact_value_is_default(Yystate) \ + (!!((Yystate) == (-1109))) + +#define YYTABLE_NINF -606 + +#define yytable_value_is_error(Yytable_value) \ + 0 + + /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +static const yytype_int16 yypact[] = +{ + 782, -1109, -1109, -1109, -1109, -1109, -1109, -1109, -1109, -1109, + -1109, -1109, -1109, -1109, -1109, -1109, -1109, -1109, -1109, -1109, + -1109, -1109, -1109, -1109, -1109, -1109, -1109, -1109, -1109, -1109, + -1109, -1109, -1109, -1109, -1109, -1109, -1109, 77, -1109, -1109, + -1109, 367, -1109, -1109, -1109, 367, -1109, -1109, -1109, -1109, + -1109, 367, 367, -1109, 367, -1109, 367, -1109, 367, -1109, + 367, -1109, -1109, -1109, 367, -1109, 367, -1109, 367, -1109, + 367, -1109, 367, -1109, 367, -1109, 367, -1109, 367, -1109, + -1109, -1109, 367, -1109, -1109, -1109, -1109, -1109, 367, -1109, + 367, -1109, 367, -1109, 367, -1109, 367, -1109, 367, -1109, + -1109, -1109, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + 681, -44, -44, -44, 239, -1109, -1109, 175, -1109, 175, + -1109, 175, 175, -1109, 175, -1109, 175, 175, -1109, 175, + 175, 175, 175, 175, 175, 175, 175, 175, -1109, 175, + -1109, 175, -1109, -1109, -1109, -1109, 190, -1109, -1109, -1109, + -1109, -1109, 207, 218, 223, 249, -1109, -1109, -1109, -1109, + 409, -1109, 175, -1109, 175, 175, 175, -1109, 175, 367, + -1109, 933, 234, 467, 467, 788, 269, 209, 132, 654, + 295, 409, 56, 409, 391, 409, 299, 312, 409, 354, + 324, -1109, -1109, -1109, 509, 239, 239, 239, 406, 681, + -1109, -1109, -1109, -1109, -1109, -1109, -1109, 644, -1109, -1109, + -1109, -1109, 274, 283, 279, 788, -1109, 175, -1109, 175, + 367, -1109, -1109, -1109, -1109, 367, 175, 367, 175, -1109, + 175, -1109, -1109, 367, 175, 175, 175, -1109, 175, 175, + 175, -1109, -1109, 175, 367, -1109, -1109, 367, 175, 175, + -1109, 175, -1109, -1109, 367, -1109, 175, 175, 367, -1109, + -1109, 175, 175, 367, -1109, -1109, 175, 175, 367, -1109, + -1109, 175, 175, 367, -1109, -1109, 175, 175, 367, 175, + 367, -1109, -1109, 175, 367, -1109, -1109, 367, -1109, -1109, + 367, 175, -1109, -1109, -1109, -1109, 367, 175, 175, 175, + -1109, 175, 367, 409, -1109, 444, 644, -1109, -1109, 298, + 409, 155, 409, 409, -44, -44, 119, 400, 102, 414, + -44, 119, 102, 414, 788, 409, 452, 483, -44, -44, + 99, 497, 414, -44, 499, -1109, 499, -44, 497, 414, + -44, 497, 414, -44, 497, 414, -44, -1109, -1109, 591, + 129, -1109, -44, 414, -44, -44, -44, 289, 644, 406, + 505, 406, 493, 681, -1109, 644, -1109, -1109, -1109, -1109, + -1109, -1109, -1109, -1109, 175, 175, 367, -1109, 367, -1109, + -1109, 175, 175, 367, 175, -1109, -1109, -1109, 175, 175, + 175, -1109, 175, 367, -1109, -1109, -1109, -1109, -1109, -1109, + -1109, 367, 409, 175, 367, -1109, 175, 367, -1109, 175, + 175, 409, 175, -1109, 175, -1109, 175, -1109, 409, 175, + 367, -1109, 175, 175, 175, 367, 409, 175, 175, 175, + 175, -1109, 409, 409, 175, 175, 409, 175, 175, 409, + 175, 175, -1109, -1109, 331, -1109, 409, 175, -1109, 409, + 175, 175, 175, 175, 175, 367, 175, 367, 175, 367, + 409, 279, 409, 175, -1109, 175, 367, 175, -1109, 175, + 367, 409, -1109, 515, 527, -44, -44, -1109, -1109, 499, + -1109, 1202, 526, 499, 409, 234, 102, 587, 409, 644, + 1171, -1109, 497, -44, 497, -44, 222, 102, -1109, 497, + 448, 409, 497, -1109, 225, -1109, -44, 409, 234, 497, + 1364, -1109, 497, 323, -1109, -1109, -1109, -1109, 497, 275, + -1109, 497, 345, -1109, 497, 95, -1109, -1109, 644, -1109, + -1109, 644, -1109, -1109, -1109, 497, 209, 83, 275, 960, + -1109, -44, 960, -1109, -44, 826, -1109, -44, -1109, 644, + -1109, 505, 91, -44, 520, 409, -44, -1109, 175, -1109, + -1109, 409, -1109, 409, -1109, 175, -1109, 409, 175, -1109, + 175, -1109, 175, 409, -1109, -1109, -1109, 367, -1109, 279, + 409, -1109, -1109, -1109, -1109, -1109, -1109, -1109, -1109, -1109, + -1109, -1109, -1109, -1109, -1109, 175, 175, 175, -1109, -1109, + 175, 409, -1109, 175, 175, 175, 409, 409, -1109, -1109, + 175, 175, 367, -1109, 409, -1109, -1109, 175, -1109, 175, + 409, 175, 409, 175, 409, 409, 409, 409, 409, 409, + 409, 402, 439, -1109, 958, 409, 175, -1109, -1109, -1109, + -1109, -1109, -1109, -1109, -1109, -1109, -1109, -1109, 175, 367, + 175, 367, -1109, 175, 367, 175, 367, 175, 367, 175, + 367, 175, -1109, 367, 175, 175, 175, 175, 175, -1109, + 175, -1109, 367, 175, -1109, -1109, 367, -1109, 175, -1109, + 367, -1109, 175, 527, -1109, -1109, -1109, -1109, -1109, -1109, + 278, -1109, -44, 644, -1109, 386, 386, 386, 444, -1109, + 505, 70, 126, 409, -1109, -1109, -1109, -1109, -44, -1109, + 444, 605, -1109, 386, -1109, 213, -1109, -1109, -1109, -1109, + -1109, -1109, -1109, -1109, 644, -1109, -1109, 644, 644, -1109, + 449, -1109, -1109, -1109, -1109, 452, 93, 597, 453, -1109, + -44, 549, -1109, -44, 300, -1109, 1202, 377, -1109, 1202, + 390, -1109, 591, -1109, 471, -1109, 382, -1109, 345, 95, + 91, -44, 888, 409, -44, 499, 409, 92, 505, -1109, + 175, -1109, 175, -1109, -1109, -1109, -1109, 175, 175, 175, + 175, 788, 409, 175, 175, -1109, -1109, -1109, 367, 175, + -1109, -1109, -1109, 175, -1109, 175, 175, 175, 409, -1109, + 464, 449, -1109, 958, 644, -1109, 409, -1109, 175, -1109, + 175, -1109, 175, -1109, -1109, 409, 175, 175, 175, -1109, + 409, 175, 175, -1109, 175, 175, -1109, 175, -1109, -1109, + 175, -1109, 409, 175, 175, -1109, -1109, 175, 175, 175, + 367, -1109, 175, -1109, -1109, -1109, -1109, -1109, 409, 175, + 409, 409, 409, 409, 135, -1109, -1109, -1109, 91, 409, + -44, 229, 788, 621, 409, 409, -1109, -1109, -1109, 644, + -1109, -1109, -1109, -1109, -1109, 443, -1109, -1109, 300, -1109, + 377, -1109, -1109, -1109, 377, -1109, -1109, 1202, -1109, 1202, + 591, -1109, 869, 409, 444, -1109, -1109, -1109, 1202, -44, + 175, 91, -1109, 175, 175, 175, 175, 175, -1109, 175, + -1109, -1109, 175, -1109, -1109, -1109, -1109, -1109, 367, 175, + -1109, 175, -1109, -1109, 1154, 409, 175, 175, 175, -1109, + 175, 175, 175, 175, -1109, 175, -1109, 175, -1109, -1109, + 409, -1109, -1109, 175, 175, 175, 367, 175, -1109, 175, + 409, -1109, 175, 520, 367, -1109, 175, -1109, 632, 632, + 632, -1109, 327, 409, 788, 409, -44, -1109, 632, 627, + -1109, -1109, 261, 619, 602, 377, -1109, -1109, -1109, -1109, + 1202, 348, 409, -1109, -1109, -1109, 1035, -1109, 681, -1109, + 550, -1109, 409, 367, -44, 920, 409, -1109, 175, 367, + 175, 367, 175, 367, 175, 175, 175, -1109, 175, -1109, + 175, 175, 503, 627, -1109, 175, 175, -1109, 175, -1109, + -1109, 175, -1109, 175, -1109, -1109, 175, 409, -1109, -1109, + -1109, -1109, -1109, -1109, 175, -1109, 367, -1109, 92, 175, + -1109, 175, 175, -1109, 560, -1109, -44, -1109, -44, 675, + -1109, -44, -1109, -1109, -1109, 409, 788, 624, -1109, -1109, + 619, 602, 602, -1109, 1202, -1109, -1109, 409, -44, 409, + 444, -1109, -1109, -1109, -1109, -1109, -1109, -1109, -1109, -1109, + -1109, -1109, -1109, -1109, 367, -1109, 367, 175, 175, -1109, + 175, 175, -1109, 175, 175, -1109, 175, -1109, -1109, 175, + 175, 367, 175, -1109, -1109, -1109, -1109, 409, -1109, 175, + 175, 175, -44, -44, -1109, -1109, 1117, 1310, -1109, 1271, + 409, 1065, -1109, -1109, -44, 602, -1109, 788, 409, 784, + 409, 409, 175, 175, 175, -1109, -1109, -1109, -1109, -1109, + -1109, -1109, 175, -1109, -1109, -1109, -1109, -1109, -1109, -1109, + -1109, -1109, -1109, -1109, -1109, -1109, -1109, -1109, -1109, -1109, + -1109, -1109, -1109, -1109, -1109, -1109, -1109, 175, 175, -1109, + -1109, -1109, -1109, -1109, 409, -1109, 175, 175, 175, 175, + 175, 175, 409, -1109, 175, -1109, 175, -1109, 175, -1109, + 175, -1109, -1109, 175, 367, -1109, -1109, 788, 409, 408, + 408, 507, 507, -1109, 371, 141, 409, 565, 408, 500, + 500, -1109, 353, -1109, 409, -1109, -1109, 92, 175, -1109, + -1109, -1109, 175, 175, -1109, 175, 367, 175, 367, -1109, + -1109, 175, 175, -1109, 175, 367, 175, -1109, 175, 175, + -1109, 175, 175, 175, -1109, 175, -1109, 175, -1109, 175, + 175, -1109, 175, -1109, 175, 175, -1109, 175, -1109, 175, + -1109, 409, 409, -1109, -1109, 371, -1109, 1202, 588, -1109, + 644, -1109, -1109, 371, -1109, 1202, 588, -1109, -1109, -1109, + 588, -1109, -1109, -1109, 103, -1109, -1109, 353, -1109, -1109, + -1109, 353, -1109, -1109, -1109, -1109, 175, -1109, 175, 175, + 175, 175, 409, 175, 175, 409, 175, 175, 175, 175, + 175, -1109, -1109, 588, -1109, 229, -1109, -1109, -1109, 588, + -1109, -1109, -1109, -1109, -1109, -1109, -1109, 175, 409, 175, + -1109, -1109, -1109 +}; + + /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero + means the default is an error. */ +static const yytype_uint16 yydefact[] = +{ + 0, 423, 412, 401, 411, 173, 435, 452, 403, 480, + 483, 566, 614, 639, 642, 505, 498, 363, 541, 490, + 487, 495, 493, 582, 630, 402, 425, 436, 404, 424, + 481, 485, 484, 506, 491, 488, 496, 0, 4, 5, + 2, 0, 13, 353, 354, 0, 18, 390, 391, 392, + 393, 0, 0, 3, 0, 12, 0, 19, 0, 11, + 0, 20, 465, 466, 0, 14, 0, 21, 0, 15, + 0, 22, 0, 16, 0, 23, 0, 17, 0, 24, + 25, 26, 0, 27, 28, 29, 30, 31, 0, 7, + 0, 8, 0, 9, 0, 10, 0, 6, 0, 1, + 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 90, 174, 0, 364, 0, + 400, 0, 0, 413, 0, 426, 0, 0, 453, 0, + 0, 427, 0, 427, 0, 427, 0, 500, 542, 0, + 567, 0, 583, 584, 598, 599, 585, 586, 601, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 0, 580, 0, 615, 0, 0, 0, 617, 0, 0, + 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 87, 88, 579, 0, 0, 0, 0, 0, 0, + 52, 32, 49, 50, 51, 53, 54, 0, 175, 33, + 34, 38, 0, 37, 47, 0, 176, 166, 368, 0, + 0, 445, 446, 376, 406, 0, 0, 0, 0, 405, + 0, 437, 438, 0, 0, 0, 0, 414, 0, 427, + 0, 456, 455, 0, 0, 550, 470, 0, 0, 0, + 469, 0, 546, 547, 0, 432, 202, 428, 0, 482, + 553, 0, 0, 0, 489, 556, 0, 0, 0, 494, + 559, 0, 0, 0, 512, 508, 202, 202, 0, 202, + 0, 499, 544, 0, 0, 571, 572, 0, 569, 570, + 0, 0, 568, 574, 575, 581, 0, 0, 0, 0, + 619, 0, 0, 0, 46, 39, 0, 45, 35, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 429, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 504, 503, 0, + 0, 501, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 616, 0, 41, 43, 40, 48, + 180, 183, 177, 178, 167, 170, 0, 172, 0, 165, + 372, 0, 358, 0, 0, 355, 360, 369, 366, 0, + 0, 378, 382, 0, 417, 229, 418, 399, 216, 217, + 218, 0, 0, 0, 0, 521, 0, 0, 447, 0, + 0, 0, 0, 415, 408, 422, 0, 461, 0, 202, + 0, 457, 202, 0, 0, 0, 0, 0, 0, 202, + 202, 433, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 62, 509, 60, 510, 0, 202, 513, 0, + 0, 0, 0, 0, 92, 0, 92, 0, 92, 0, + 0, 576, 0, 0, 524, 0, 0, 0, 650, 92, + 0, 0, 44, 0, 0, 0, 0, 357, 362, 0, + 361, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 394, 0, 0, 0, 0, 0, 0, 395, 0, + 0, 0, 0, 449, 0, 450, 0, 0, 0, 0, + 0, 467, 0, 0, 203, 430, 431, 486, 0, 0, + 492, 0, 0, 497, 0, 0, 56, 70, 0, 57, + 61, 0, 507, 502, 511, 0, 0, 0, 0, 0, + 561, 0, 0, 562, 0, 0, 563, 0, 560, 577, + 573, 0, 0, 0, 0, 0, 0, 618, 168, 171, + 181, 0, 184, 0, 374, 358, 373, 0, 358, 370, + 366, 365, 0, 0, 387, 388, 383, 0, 375, 379, + 0, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 0, 0, 0, 398, 419, + 0, 0, 522, 0, 0, 440, 0, 0, 211, 210, + 202, 202, 0, 407, 0, 451, 462, 0, 454, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 60, 0, 71, 0, 0, 0, 186, 112, 145, + 148, 156, 160, 110, 93, 94, 100, 101, 105, 0, + 97, 0, 104, 97, 0, 97, 0, 97, 0, 97, + 0, 97, 96, 0, 92, 0, 92, 0, 0, 578, + 0, 536, 0, 625, 515, 516, 0, 525, 385, 640, + 0, 641, 0, 0, 179, 182, 359, 371, 356, 367, + 0, 396, 0, 380, 377, 0, 0, 0, 39, 538, + 0, 0, 0, 0, 397, 539, 410, 409, 0, 434, + 39, 0, 468, 0, 545, 0, 548, 551, 552, 554, + 555, 557, 558, 58, 0, 55, 80, 0, 0, 65, + 83, 67, 78, 79, 540, 0, 0, 0, 0, 103, + 0, 0, 129, 0, 0, 130, 0, 0, 131, 0, + 0, 132, 0, 95, 0, 564, 0, 565, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 169, + 0, 389, 385, 381, 244, 245, 246, 202, 202, 202, + 202, 0, 0, 0, 440, 209, 208, 448, 0, 441, + 443, 439, 214, 0, 463, 459, 0, 202, 0, 64, + 60, 83, 72, 0, 0, 82, 0, 108, 97, 106, + 0, 102, 97, 99, 113, 0, 97, 97, 97, 146, + 0, 97, 97, 149, 0, 97, 157, 0, 161, 162, + 0, 91, 0, 607, 0, 623, 629, 625, 625, 92, + 0, 624, 0, 386, 523, 634, 632, 633, 0, 0, + 0, 0, 0, 0, 0, 421, 36, 416, 0, 0, + 0, 0, 0, 0, 0, 0, 549, 59, 81, 0, + 66, 69, 84, 543, 107, 0, 98, 111, 0, 133, + 0, 134, 135, 144, 0, 136, 137, 0, 138, 0, + 0, 185, 0, 0, 39, 626, 627, 628, 0, 0, + 0, 0, 384, 0, 0, 0, 202, 517, 444, 0, + 442, 215, 202, 200, 198, 197, 199, 464, 0, 202, + 458, 0, 76, 68, 0, 0, 114, 115, 116, 117, + 97, 97, 97, 97, 150, 0, 158, 154, 163, 164, + 0, 621, 613, 607, 607, 92, 0, 92, 606, 0, + 0, 537, 385, 0, 0, 645, 646, 644, 0, 0, + 0, 420, 0, 0, 0, 0, 0, 460, 0, 0, + 75, 109, 0, 0, 0, 0, 139, 140, 141, 142, + 0, 0, 0, 159, 608, 609, 0, 610, 0, 612, + 0, 622, 0, 0, 0, 0, 0, 250, 220, 0, + 92, 0, 226, 0, 385, 517, 517, 514, 202, 204, + 0, 472, 77, 0, 73, 118, 119, 120, 121, 122, + 123, 97, 151, 0, 155, 153, 92, 0, 534, 529, + 530, 531, 532, 533, 385, 527, 0, 535, 0, 0, + 649, 646, 646, 643, 0, 219, 0, 224, 0, 0, + 225, 0, 520, 518, 519, 0, 0, 0, 471, 74, + 0, 0, 0, 143, 0, 611, 620, 0, 0, 0, + 39, 648, 647, 195, 192, 191, 194, 212, 193, 213, + 223, 352, 187, 189, 0, 188, 0, 220, 92, 251, + 0, 0, 228, 226, 0, 201, 202, 478, 476, 92, + 92, 0, 124, 125, 126, 127, 152, 0, 526, 206, + 635, 202, 0, 0, 222, 221, 0, 0, 227, 0, + 0, 0, 473, 475, 0, 0, 147, 0, 0, 0, + 0, 0, 0, 206, 253, 310, 311, 312, 313, 314, + 315, 316, 255, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 257, 259, 341, + 342, 343, 344, 345, 0, 252, 277, 304, 284, 286, + 288, 290, 0, 283, 300, 196, 92, 479, 385, 128, + 202, 528, 638, 92, 0, 631, 651, 0, 0, 0, + 0, 0, 0, 247, 0, 0, 0, 0, 0, 0, + 0, 249, 0, 474, 0, 207, 637, 0, 202, 205, + 347, 351, 202, 202, 254, 202, 0, 202, 0, 256, + 349, 202, 202, 258, 202, 0, 202, 260, 202, 202, + 278, 202, 202, 202, 305, 202, 248, 202, 285, 202, + 202, 287, 202, 289, 202, 202, 291, 202, 301, 202, + 477, 0, 0, 261, 268, 0, 265, 0, 0, 267, + 0, 269, 276, 0, 273, 0, 0, 275, 279, 282, + 0, 280, 306, 309, 0, 307, 292, 0, 294, 295, + 296, 0, 298, 299, 302, 303, 635, 190, 202, 202, + 0, 202, 0, 202, 202, 0, 202, 202, 202, 202, + 202, 636, 264, 0, 262, 0, 266, 350, 272, 0, + 270, 348, 274, 281, 308, 293, 297, 202, 0, 202, + 263, 346, 271 +}; + + /* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -1109, -1109, -1109, -205, -212, -178, -1109, -57, -184, 344, + -1109, -1109, -1109, -1109, -1109, -1109, -203, -310, -558, 28, + -673, -542, -1109, -1109, -1109, -1109, -1109, -1109, -1109, -493, + -153, -1109, -1109, -1109, -757, -1109, -1109, -136, -43, 1622, + 897, 2179, -1109, -414, -678, -541, -1109, -1109, -59, -1109, + -1109, -53, -1109, -1109, -1109, -58, -187, -1109, -1109, -707, + -1109, -1109, -1109, -1109, -1109, -679, -1109, -1109, -1109, -1109, + -675, -1109, -1109, -1109, 0, -1109, -1109, -1109, -1109, -1109, + 217, -1109, -1109, -421, -1109, -1109, -282, -1109, -1109, -962, + -1109, -1109, -1109, -1109, -844, 1726, -289, -1090, -436, -1109, + -1109, -1109, -790, -905, 140, -1109, -388, -1109, -1109, -392, + -280, 196, -1109, -1109, -208, -880, -1109, -339, -854, -838, + -1109, -709, -489, -1109, -1109, -1109, -1109, -488, -1109, -1109, + -1109, -1109, -847, -490, -1109, -494, -1109, -1108, -1109, -333, + -1109, 736, -351, -253, 745, -363, 7, -188, -287, 170, + -1109, -1109, -1109, 264, -1109, -150, -1109, -157, -1109, -1109, + -1109, -1109, -1109, -1109, -744, -1109, -1109, -1109, 647, -36, + 649, -29, -231, -46, -1109, 583, -93, 57, -1109, -1109, + -1109, -1109, -1109, 73, -1109, -1109, -1109, 6, -1109, 651, + -48, -1109, -1109, -1109, -27, -1109, -141, -1109, -6, -1109, + -1109, 189, -73, -306, 294, -1109, -1109, -1109, -1109, -1109, + -1109, -1109, -319, -693, -819, -1109, 451, 691, 704, 485, + 311, -1109, -299, -1109, -1109, 466, 10, -1109, -24, 635, + 19, -1109, -78, 469, 22, -1109, -96, -296, 16, -1109, + -1109, 480, -1109, -1109, -1109, -1109, -1109, 655, -687, -263, + -1109, -1109, -511, -1109, -1109, -714, -1109, -1109, -1109, -699, + -1109, -1109, 721, 724, 726, -1109, -1109, -1109, -1109, 731, + -1109, -1109, -1109, -1109, 733, -1109, -1109, 734, -1109, -1109, + 743, -1109, -1109, 750, -1109, -1109, -1109, -1109, -1109, -1109, + -1109, -1109, -1109, -1109, -1109, -1109, -1109, 874, -151, -1109, + -86, 475, -1109, 133, -1109, -1109, -1109, -842, -1109, -1109, + -25, 875, -1109, -981, -430, -1109, -875, -1109, -1109, -1109, + -1109, -247, -1109, -128 +}; + + /* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = +{ + -1, 37, 38, 39, 217, 576, 219, 804, 220, 791, + 221, 222, 376, 377, 223, 317, 224, 225, 814, 538, + 453, 539, 454, 642, 810, 540, 739, 880, 541, 740, + 813, 933, 934, 1023, 741, 742, 743, 815, 102, 203, + 344, 130, 842, 550, 654, 749, 655, 656, 657, 658, + 659, 660, 661, 825, 935, 662, 663, 664, 830, 665, + 666, 834, 945, 1033, 1117, 667, 992, 668, 837, 947, + 669, 670, 840, 950, 439, 320, 41, 127, 227, 384, + 385, 386, 571, 387, 388, 573, 672, 673, 1091, 1233, + 1093, 1094, 927, 928, 797, 345, 621, 1095, 1138, 798, + 622, 1096, 803, 922, 407, 408, 1055, 409, 410, 1060, + 411, 605, 606, 607, 787, 1008, 1010, 1012, 1009, 1100, + 1184, 1234, 1243, 1185, 1250, 1192, 1258, 1263, 1193, 1268, + 1216, 1254, 1186, 1235, 1236, 1244, 1245, 1237, 1238, 1098, + 42, 234, 322, 490, 256, 323, 235, 129, 229, 494, + 230, 398, 580, 392, 393, 577, 575, 244, 237, 402, + 403, 590, 498, 586, 776, 587, 782, 46, 47, 48, + 49, 50, 412, 131, 51, 52, 245, 394, 511, 54, + 134, 248, 424, 413, 414, 610, 792, 239, 56, 136, + 191, 267, 268, 442, 57, 58, 240, 241, 713, 242, + 243, 419, 800, 59, 428, 60, 139, 253, 254, 432, + 429, 874, 682, 627, 805, 929, 61, 62, 63, 259, + 436, 1068, 1110, 1111, 1198, 64, 260, 66, 67, 68, + 271, 70, 71, 72, 276, 74, 75, 76, 281, 198, + 78, 287, 288, 456, 289, 290, 459, 855, 683, 973, + 417, 613, 475, 476, 688, 684, 1044, 1045, 1046, 685, + 686, 962, 79, 80, 81, 82, 149, 293, 294, 83, + 261, 262, 263, 264, 84, 272, 273, 85, 277, 278, + 86, 282, 283, 87, 470, 88, 151, 301, 302, 305, + 306, 472, 89, 170, 90, 171, 172, 856, 903, 92, + 174, 178, 179, 311, 312, 955, 956, 849, 850, 93, + 773, 857, 95, 858, 1140, 96, 690, 97, 98, 479, + 966, 1006, 480, 967 +}; + + /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ +static const yytype_int16 yytable[] = +{ + 40, 247, 103, 218, 313, 378, 55, 45, 104, 105, + 65, 106, 316, 107, 314, 108, 77, 109, 430, 69, + 916, 110, 73, 111, 161, 112, 236, 113, 488, 114, + 426, 115, 258, 116, 391, 117, 175, 176, 860, 118, + 487, 318, 160, 246, 826, 119, 250, 120, 644, 121, + 680, 122, 553, 123, 556, 124, 881, 53, 847, 132, + 957, 435, 137, 569, 140, 565, 142, 1079, 144, 1018, + 146, 469, 827, 848, 1, 831, 828, 99, 844, 832, + 919, 852, 835, 843, 153, 959, 738, 1, 1003, 838, + 238, 155, 1092, 156, 846, 193, 159, 195, 1021, 733, + 427, 421, 125, 1246, 1246, 1092, 1251, 1255, 404, 1260, + 5, 1265, 1265, 379, 1269, 1011, 1013, 1087, 405, 647, + 5, 19, 752, 1, 755, 1253, 758, 270, 761, 681, + 763, 12, 404, 795, 10, 251, 209, 399, 796, 233, + 415, 382, 795, 17, 15, 34, 5, 796, 653, 26, + 423, 433, 5, 29, 1036, 1087, 452, 252, 5, 17, + 2, 1106, 26, 1231, 295, 471, 29, 1309, 481, 24, + 4, 296, 482, 298, 1097, 1314, 299, 980, 937, 17, + 285, 917, 33, 406, 31, 32, 1020, 324, 953, 1319, + 266, 1089, 325, 1320, 327, 430, 257, 286, 26, 793, + 330, 335, 29, 954, 1318, 1013, 938, 406, 582, 940, + 939, 338, 965, 941, 339, 942, 228, 390, 1002, 943, + 1101, 343, 1024, 1104, 952, 347, 1, 948, 231, 1089, + 350, 629, 1200, 400, 427, 353, 795, 232, 420, 435, + 356, 796, 5, 249, 811, 359, 1271, 362, 10, 1242, + 1242, 364, 1249, 469, 365, 879, 469, 366, 1015, 559, + 765, 1121, 767, 368, 1204, 583, 1069, 859, 877, 373, + 1062, 468, 779, 1016, 2, 1025, 616, 884, 233, 177, + 1187, 886, 1194, 2, 4, 889, 891, 892, 1119, 466, + 895, 896, 650, 4, 898, 228, 589, 1203, 31, 32, + 1077, 26, 1228, 1026, 1028, 29, 1051, 1027, 1029, 1030, + 1031, 1049, 5, 1308, 651, 652, 1311, 5, 265, 462, + 463, 1313, 696, 9, 1316, 698, 647, 1050, 1317, 5, + 380, 381, 1142, 1143, 737, 641, 427, 180, 643, 228, + 19, 16, 6, 485, 5, 486, 440, 257, 15, 614, + 491, 8, -600, 651, 652, 618, 679, 22, 10, 619, + 499, 1337, 284, 285, 34, 681, 633, 1339, 500, -602, + 5, 503, 280, 30, 505, 1231, 1090, 703, 1083, 233, + -603, 1102, 1084, 1085, 1086, -604, 33, 516, 5, 1108, + 20, 1112, 520, 1231, 5, 1113, 1114, 1115, 378, 986, + 987, 988, 989, 647, 27, 646, 28, 5, 31, 32, + 378, -605, 21, 780, 35, 1083, 647, 10, 292, 1084, + 1085, 1086, 551, 315, 554, 5, 557, 211, 1230, 487, + 1231, 652, -42, 563, 806, 907, 36, 566, 233, 816, + 1088, 643, 17, 488, 125, 210, 211, 310, 212, 213, + 214, 215, 216, 674, 1224, 618, 676, 401, 21, 619, + 1199, 1202, 415, 275, 819, 5, 823, 31, 32, 823, + 5, 1, 823, 649, 650, 823, 7, 1088, 823, 647, + 692, 1338, 36, 649, 650, 536, 231, 537, 443, 574, + 1073, 446, 427, 579, 449, 232, 651, 652, 788, 789, + 783, 1239, 473, 737, 477, 675, 651, 652, 677, 1261, + 620, 678, 615, 405, 1083, 807, 5, 5, 1084, 1085, + 1086, 1240, 1231, 233, 5, 100, 101, 17, 1240, 1231, + 474, 809, 438, 634, 643, 812, 784, 785, 786, 445, + 478, 997, 448, 999, 702, 451, 26, 380, 636, 671, + 29, 640, 671, 461, 638, 671, -63, 1038, 537, 452, + 381, 1039, 1040, 1041, 1042, 689, 5, 1083, 1007, 201, + 202, 1084, 1085, 1086, 1087, 647, 1088, 5, 833, 718, + 650, 836, 5, 303, 304, 1230, 647, 1231, 390, 648, + 649, 650, 964, 536, 378, 1083, 1057, 215, 216, 1084, + 1085, 1086, 651, 652, 735, 5, 823, 866, 823, 258, + 643, 812, 823, 651, 652, 653, 747, 841, 750, 1043, + 537, 753, 1075, 756, 737, 759, 648, 762, 923, 1088, + 764, 1083, 924, 925, 926, 1084, 1085, 1086, 1087, 771, + 1007, 5, 608, 774, 611, 584, 585, 777, 1089, 617, + 647, 790, 624, 648, 649, 650, 652, 1088, -71, 375, + 1107, 882, 632, -71, -71, -71, 228, 390, 635, 737, + 734, 637, 651, 652, 639, 878, 932, 651, 652, 653, + 307, 308, 309, 1007, 1125, 645, 964, 817, 921, 10, + 821, 3, 5, 1088, 820, 1132, 1133, 452, 936, 6, + 568, 647, 1034, 823, 648, 649, 650, 1208, 8, 1124, + 233, 1128, 1089, 737, 17, 9, 631, 794, 11, 944, + 1103, 946, 979, 1247, 255, 1264, 1264, 1259, 651, 652, + 653, 643, 1266, 16, 1109, 808, 43, 125, 210, 31, + 32, 212, 213, 214, 18, 44, 818, 20, 822, 22, + 699, 822, 1063, 1064, 822, 870, 578, 822, 960, 25, + 822, 27, 141, 28, 143, 30, 145, 152, 147, 154, + 378, 35, 671, 257, 210, 853, 1022, 212, 213, 214, + 215, 216, 1223, 297, 736, 799, 1, 2, 869, 1226, + 921, 210, 3, 1037, 212, 213, 214, 4, 920, 5, + 6, 5, 994, 995, 1081, 1082, 7, 908, 625, 8, + 647, 157, 1032, 648, 649, 650, 9, 10, 464, 11, + 643, 12, 905, 906, 158, 434, 13, 845, 14, 689, + 630, 15, 1196, 465, 16, 300, 467, 651, 652, 653, + 457, 162, 17, 5, 163, 18, 164, 19, 20, 21, + 22, 165, 647, 166, 167, 648, 649, 650, 23, 24, + 25, 26, 27, 168, 28, 29, 30, 31, 32, 33, + 169, 34, 35, 36, 91, 94, 1321, 1052, 427, 651, + 652, 653, 921, 0, 0, 976, 5, 0, 822, 0, + 822, 0, 0, 0, 822, 647, 1116, 427, 648, 649, + 650, 0, 671, 0, 0, 5, 0, 681, 0, 0, + 0, 951, 845, 998, 647, 0, 0, 648, 649, 650, + 0, 1004, 651, 652, 653, 0, 681, 0, 0, 427, + 0, 845, 0, 0, 0, 210, 211, 5, 212, 213, + 214, 651, 652, 653, 0, 0, 647, 0, 0, 648, + 649, 650, 0, 921, 0, 0, 0, 0, 681, 0, + 1048, 0, 0, 0, 0, 0, 1056, 0, 1058, 0, + 1061, 0, 1014, 651, 652, 653, 0, 5, 0, 0, + 0, 0, 0, 0, 416, 822, 647, 0, 422, 648, + 649, 650, 0, 0, 0, 0, 671, 437, 0, 0, + 0, 0, 0, 1078, 444, 671, 0, 447, 0, 0, + 450, 0, 16, 651, 652, 653, 0, 0, 460, 0, + 0, 0, 0, 921, 181, 0, 182, 0, 183, 184, + 0, 185, 0, 186, 187, 0, 188, 189, 190, 192, + 190, 194, 190, 196, 197, 0, 199, 0, 200, 0, + 0, 1122, 5, 1123, 671, 0, 0, 0, 0, 671, + 0, 647, 0, 0, 648, 649, 650, 671, 1134, 204, + 0, 205, 206, 207, 0, 208, 0, 1312, 845, 125, + 210, 211, 5, 212, 213, 214, 215, 216, 651, 652, + 653, 647, 0, 0, 648, 649, 650, 0, 0, 1310, + 0, 1107, 0, 0, 0, 210, 0, 1315, 212, 213, + 214, 215, 216, 735, 0, 736, 0, 0, 651, 652, + 653, 0, 0, 0, 319, 0, 321, 0, 0, 0, + 0, 671, 0, 326, 0, 328, 0, 329, 0, 671, + 0, 331, 332, 333, 0, 334, 190, 336, 0, 0, + 337, 0, 0, 0, 0, 340, 341, 0, 342, 0, + 0, 1227, 0, 0, 346, 0, 0, 0, 348, 349, + 0, 0, 0, 351, 352, 0, 0, 0, 354, 355, + 0, 0, 0, 0, 0, 0, 360, 0, 0, 0, + 363, 0, 0, 1277, 0, 1280, 0, 0, 367, 0, + 0, 0, 1285, 0, 369, 370, 371, 0, 372, 1232, + 1232, 1241, 1241, 0, 1248, 1252, 0, 1257, 1232, 1262, + 1262, 0, 1267, 1144, 1145, 1146, 1147, 1148, 1149, 1150, + 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, + 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, + 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, + 1181, 1182, 1183, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 0, 0, 0, + 0, 483, 484, 0, 0, 0, 0, 0, 321, 489, + 0, 492, 0, 0, 0, 493, 495, 496, 0, 497, + 0, 210, 211, 0, 212, 213, 214, 215, 216, 0, + 502, 736, 0, 504, 0, 0, 506, 507, 0, 509, + 0, 510, 0, 512, 0, 0, 514, 0, 0, 0, + 518, 519, 0, 0, 522, 523, 0, 0, 0, 0, + 0, 528, 529, 0, 531, 532, 0, 534, 535, 210, + 211, 0, 212, 213, 214, 215, 216, 545, 546, 547, + 548, 549, 0, 552, 0, 555, 0, 0, 0, 0, + 561, 0, 562, 0, 564, 0, 555, 1188, 1145, 1146, + 1147, 1148, 1149, 1150, 1151, 1189, 1153, 1154, 1155, 1156, + 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, + 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, + 1190, 1191, 1179, 1180, 1181, 1182, 1183, 1145, 1146, 1147, + 1148, 1149, 1150, 1151, 0, 1153, 1154, 1155, 1156, 1157, + 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, + 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 0, + 0, 1179, 1180, 1181, 1182, 1183, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 693, 0, 0, 0, 0, + 0, 0, 489, 0, 0, 489, 0, 493, 0, 700, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 705, 706, 707, 0, 0, 708, 0, 0, + 710, 711, 712, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 720, 0, 721, 0, 723, 0, + 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 745, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 746, 0, 748, 0, 0, + 751, 0, 754, 0, 757, 0, 760, 0, 760, 0, + 0, 555, 766, 555, 768, 769, 0, 770, 0, 0, + 772, 0, 0, 0, 0, 775, 0, 0, 0, 778, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 700, 0, 775, + 0, 0, 0, 0, 0, 0, 0, 864, 0, 0, + 868, 712, 0, 0, 0, 0, 871, 0, 0, 0, + 872, 0, 873, 721, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 760, 0, 885, 0, 760, + 0, 0, 0, 888, 890, 760, 0, 0, 894, 760, + 0, 897, 760, 0, 899, 0, 0, 900, 0, 0, + 902, 904, 0, 0, 772, 772, 555, 0, 0, 909, + 0, 0, 0, 0, 0, 0, 911, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 963, 0, 0, + 968, 969, 970, 269, 972, 274, 974, 279, 0, 0, + 291, 0, 0, 0, 0, 0, 0, 0, 978, 0, + 0, 0, 0, 982, 983, 984, 0, 985, 760, 760, + 760, 0, 990, 0, 991, 0, 0, 0, 0, 0, + 902, 902, 996, 0, 555, 0, 1000, 0, 0, 775, + 0, 0, 0, 1005, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1054, 0, 555, 0, 1059, + 0, 775, 972, 972, 0, 0, 0, 1066, 1067, 0, + 0, 0, 1070, 1071, 0, 1072, 0, 0, 760, 0, + 1074, 0, 0, 555, 0, 374, 0, 0, 0, 0, + 0, 775, 389, 0, 395, 396, 1080, 0, 1005, 1005, + 0, 0, 0, 0, 0, 0, 0, 425, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1054, 555, 0, 1126, 1127, 0, + 1059, 1129, 0, 0, 0, 0, 1131, 555, 0, 1135, + 0, 0, 357, 358, 0, 361, 1137, 1139, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 501, 0, 0, 0, 0, 1207, + 1137, 1209, 0, 508, 0, 0, 0, 0, 0, 1210, + 513, 0, 0, 0, 0, 0, 0, 0, 521, 0, + 0, 0, 0, 0, 526, 527, 0, 0, 530, 0, + 0, 533, 0, 0, 1211, 1212, 0, 0, 542, 0, + 0, 544, 0, 1214, 1215, 1217, 1218, 1219, 1220, 0, + 0, 1222, 558, 555, 560, 775, 0, 0, 0, 0, + 555, 0, 0, 567, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 581, 0, 0, 0, + 588, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1275, 623, 1278, 0, 0, 0, 0, 628, + 0, 1283, 0, 1286, 0, 0, 0, 0, 1290, 0, + 0, 0, 1294, 0, 0, 515, 1297, 0, 517, 0, + 0, 1301, 0, 0, 0, 524, 525, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 543, 0, 0, 0, 691, 0, 0, + 0, 0, 0, 694, 0, 695, 0, 0, 0, 697, + 0, 0, 0, 1139, 0, 701, 1323, 1325, 0, 0, + 0, 1329, 704, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 709, 0, 0, 0, 0, 714, 715, + 0, 0, 0, 0, 0, 0, 719, 0, 0, 0, + 0, 0, 722, 0, 724, 0, 726, 727, 728, 729, + 730, 731, 732, 0, 0, 0, 0, 744, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 126, 128, 0, 0, 133, 135, 0, 138, 0, + 135, 0, 135, 0, 135, 0, 135, 148, 150, 0, + 173, 173, 173, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 801, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 716, 717, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 851, 0, 0, 854, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 867, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 876, 0, 0, 0, 0, 0, 0, 0, 883, 0, + 0, 0, 0, 0, 0, 0, 0, 887, 0, 0, + 0, 0, 893, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 901, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 910, 0, 912, 913, 914, 915, 0, 0, 0, 0, + 0, 918, 0, 0, 0, 0, 930, 931, 383, 0, + 0, 0, 0, 397, 128, 0, 0, 0, 0, 418, + 0, 0, 0, 861, 862, 863, 865, 431, 128, 0, + 0, 0, 418, 0, 0, 958, 441, 0, 0, 418, + 0, 0, 418, 875, 0, 418, 0, 0, 455, 0, + 0, 458, 0, 418, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 981, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 993, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1001, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1017, 0, 1019, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1035, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1047, 0, 0, 0, 1053, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 971, 0, 0, 0, 0, 0, 975, 0, + 0, 0, 0, 0, 0, 977, 0, 0, 0, 1076, + 0, 0, 0, 0, 570, 572, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 609, 0, 612, 0, 0, 1105, 0, 0, + 0, 0, 0, 0, 0, 626, 0, 0, 0, 1118, + 0, 1120, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1136, + 0, 0, 687, 0, 1065, 173, 0, 0, 0, 0, + 0, 0, 1195, 0, 0, 0, 0, 0, 0, 0, + 1201, 0, 1205, 1206, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1213, 0, 0, 0, + 0, 0, 0, 0, 1221, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1229, 0, 1130, 0, 0, 0, 0, 0, 1256, 0, + 0, 0, 0, 0, 0, 0, 1270, 1141, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 781, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1306, 1307, 0, 0, 802, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1225, 0, 0, 824, + 0, 0, 829, 0, 1327, 0, 0, 1331, 0, 0, + 0, 839, 0, 0, 0, 0, 0, 0, 0, 0, + 626, 0, 0, 626, 1272, 0, 0, 0, 1273, 1274, + 1341, 1276, 0, 1279, 0, 0, 0, 1281, 1282, 0, + 1284, 0, 1287, 0, 1288, 1289, 0, 1291, 1292, 1293, + 0, 1295, 0, 1296, 0, 1298, 1299, 0, 1300, 0, + 1302, 1303, 0, 1304, 0, 1305, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1322, 1324, 0, 1326, 0, 1328, + 1330, 0, 1332, 1333, 1334, 1335, 1336, 0, 0, 802, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1340, 0, 1342, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 949, + 0, 0, 0, 0, 0, 0, 0, 0, 961, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 802, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 626, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1099, 0, 1099, 0, 0, + 1099, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 802, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 802, 802, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1197 +}; + +static const yytype_int16 yycheck[] = +{ + 0, 185, 45, 181, 209, 315, 0, 0, 51, 52, + 0, 54, 224, 56, 217, 58, 0, 60, 337, 0, + 864, 64, 0, 66, 120, 68, 183, 70, 391, 72, + 336, 74, 189, 76, 321, 78, 122, 123, 782, 82, + 391, 225, 120, 184, 751, 88, 187, 90, 541, 92, + 561, 94, 466, 96, 468, 98, 813, 0, 772, 105, + 902, 341, 108, 484, 110, 479, 112, 1048, 114, 974, + 116, 367, 751, 772, 4, 754, 751, 0, 771, 754, + 870, 774, 757, 770, 120, 904, 644, 4, 963, 762, + 183, 120, 1054, 120, 772, 143, 120, 145, 978, 641, + 9, 332, 146, 1211, 1212, 1067, 1214, 1215, 6, 1217, + 17, 1219, 1220, 316, 1222, 969, 970, 14, 16, 26, + 17, 65, 663, 4, 665, 1215, 667, 71, 669, 38, + 671, 39, 6, 7, 35, 3, 179, 325, 12, 56, + 48, 319, 7, 60, 49, 89, 17, 12, 55, 79, + 334, 339, 17, 83, 996, 14, 359, 25, 17, 60, + 5, 1066, 79, 22, 200, 368, 83, 1275, 373, 77, + 15, 200, 375, 200, 1054, 1283, 200, 934, 885, 60, + 51, 868, 87, 81, 85, 86, 976, 230, 902, 1297, + 190, 88, 235, 1301, 237, 514, 189, 197, 79, 710, + 243, 249, 83, 902, 1294, 1059, 885, 81, 495, 888, + 885, 254, 911, 888, 257, 890, 61, 62, 962, 894, + 1058, 264, 979, 1061, 902, 268, 4, 900, 19, 88, + 273, 518, 1137, 326, 9, 278, 7, 28, 331, 519, + 283, 12, 17, 186, 737, 288, 1227, 290, 35, 1211, + 1212, 294, 1214, 549, 297, 813, 552, 300, 972, 471, + 674, 1080, 676, 306, 1139, 496, 1023, 778, 810, 312, + 1014, 367, 693, 972, 5, 982, 507, 818, 56, 40, + 1127, 822, 1129, 5, 15, 826, 827, 828, 1078, 367, + 831, 832, 31, 15, 835, 61, 499, 1139, 85, 86, + 1044, 79, 1207, 982, 983, 83, 1005, 982, 983, 984, + 985, 1004, 17, 1275, 53, 54, 1278, 17, 23, 365, + 366, 1283, 575, 34, 1286, 578, 26, 1005, 1290, 17, + 32, 33, 1122, 1123, 644, 538, 9, 162, 541, 61, + 65, 52, 18, 386, 17, 388, 346, 340, 49, 506, + 393, 27, 162, 53, 54, 7, 559, 68, 35, 11, + 403, 1323, 50, 51, 89, 38, 523, 1329, 411, 162, + 17, 414, 73, 84, 417, 22, 1054, 589, 7, 56, + 162, 1059, 11, 12, 13, 162, 87, 430, 17, 1067, + 66, 1070, 435, 22, 17, 1070, 1071, 1072, 708, 940, + 941, 942, 943, 26, 80, 546, 82, 17, 85, 86, + 720, 162, 67, 700, 90, 7, 26, 35, 64, 11, + 12, 13, 465, 149, 467, 17, 469, 148, 20, 780, + 22, 54, 149, 476, 721, 849, 91, 480, 56, 745, + 69, 644, 60, 806, 146, 147, 148, 41, 150, 151, + 152, 153, 154, 549, 1198, 7, 552, 57, 67, 11, + 1135, 1139, 48, 72, 746, 17, 748, 85, 86, 751, + 17, 4, 754, 30, 31, 757, 24, 69, 760, 26, + 566, 1325, 91, 30, 31, 154, 19, 156, 348, 489, + 1031, 351, 9, 493, 354, 28, 53, 54, 706, 707, + 703, 1210, 369, 813, 371, 551, 53, 54, 554, 1218, + 510, 557, 506, 16, 7, 723, 17, 17, 11, 12, + 13, 21, 22, 56, 17, 158, 159, 60, 21, 22, + 25, 734, 343, 523, 737, 738, 150, 151, 152, 350, + 47, 955, 353, 957, 587, 356, 79, 32, 529, 549, + 83, 535, 552, 364, 532, 555, 154, 7, 156, 762, + 33, 11, 12, 13, 14, 45, 17, 7, 8, 160, + 161, 11, 12, 13, 14, 26, 69, 17, 756, 622, + 31, 759, 17, 74, 75, 20, 26, 22, 62, 29, + 30, 31, 911, 154, 904, 7, 1010, 153, 154, 11, + 12, 13, 53, 54, 155, 17, 888, 791, 890, 766, + 813, 814, 894, 53, 54, 55, 659, 146, 661, 69, + 156, 664, 1036, 666, 934, 668, 29, 670, 7, 69, + 673, 7, 11, 12, 13, 11, 12, 13, 14, 682, + 8, 17, 502, 686, 504, 58, 59, 690, 88, 509, + 26, 708, 512, 29, 30, 31, 54, 69, 155, 315, + 36, 814, 522, 160, 161, 162, 61, 62, 528, 979, + 642, 531, 53, 54, 534, 811, 879, 53, 54, 55, + 205, 206, 207, 8, 1098, 545, 1005, 746, 872, 35, + 748, 10, 17, 69, 747, 1109, 1110, 900, 885, 18, + 483, 26, 991, 985, 29, 30, 31, 1143, 27, 1097, + 56, 1103, 88, 1023, 60, 34, 520, 711, 37, 897, + 1059, 899, 934, 1212, 70, 1219, 1220, 1217, 53, 54, + 55, 934, 1220, 52, 1067, 725, 0, 146, 147, 85, + 86, 150, 151, 152, 63, 0, 746, 66, 748, 68, + 580, 751, 1015, 1016, 754, 798, 492, 757, 908, 78, + 760, 80, 111, 82, 113, 84, 115, 120, 117, 120, + 1080, 90, 772, 766, 147, 775, 979, 150, 151, 152, + 153, 154, 1196, 200, 157, 712, 4, 5, 794, 1203, + 974, 147, 10, 998, 150, 151, 152, 15, 871, 17, + 18, 17, 953, 954, 1051, 1052, 24, 850, 514, 27, + 26, 120, 990, 29, 30, 31, 34, 35, 367, 37, + 1023, 39, 847, 848, 120, 340, 44, 43, 46, 45, + 519, 49, 1131, 367, 52, 200, 367, 53, 54, 55, + 360, 120, 60, 17, 120, 63, 120, 65, 66, 67, + 68, 120, 26, 120, 120, 29, 30, 31, 76, 77, + 78, 79, 80, 120, 82, 83, 84, 85, 86, 87, + 120, 89, 90, 91, 0, 0, 1306, 1005, 9, 53, + 54, 55, 1066, -1, -1, 928, 17, -1, 888, -1, + 890, -1, -1, -1, 894, 26, 1074, 9, 29, 30, + 31, -1, 902, -1, -1, 17, -1, 38, -1, -1, + -1, 42, 43, 956, 26, -1, -1, 29, 30, 31, + -1, 964, 53, 54, 55, -1, 38, -1, -1, 9, + -1, 43, -1, -1, -1, 147, 148, 17, 150, 151, + 152, 53, 54, 55, -1, -1, 26, -1, -1, 29, + 30, 31, -1, 1137, -1, -1, -1, -1, 38, -1, + 1003, -1, -1, -1, -1, -1, 1009, -1, 1011, -1, + 1013, -1, 972, 53, 54, 55, -1, 17, -1, -1, + -1, -1, -1, -1, 329, 985, 26, -1, 333, 29, + 30, 31, -1, -1, -1, -1, 996, 342, -1, -1, + -1, -1, -1, 1046, 349, 1005, -1, 352, -1, -1, + 355, -1, 52, 53, 54, 55, -1, -1, 363, -1, + -1, -1, -1, 1207, 127, -1, 129, -1, 131, 132, + -1, 134, -1, 136, 137, -1, 139, 140, 141, 142, + 143, 144, 145, 146, 147, -1, 149, -1, 151, -1, + -1, 1094, 17, 1096, 1054, -1, -1, -1, -1, 1059, + -1, 26, -1, -1, 29, 30, 31, 1067, 1111, 172, + -1, 174, 175, 176, -1, 178, -1, 1280, 43, 146, + 147, 148, 17, 150, 151, 152, 153, 154, 53, 54, + 55, 26, -1, -1, 29, 30, 31, -1, -1, 1277, + -1, 36, -1, -1, -1, 147, -1, 1285, 150, 151, + 152, 153, 154, 155, -1, 157, -1, -1, 53, 54, + 55, -1, -1, -1, 227, -1, 229, -1, -1, -1, + -1, 1131, -1, 236, -1, 238, -1, 240, -1, 1139, + -1, 244, 245, 246, -1, 248, 249, 250, -1, -1, + 253, -1, -1, -1, -1, 258, 259, -1, 261, -1, + -1, 1204, -1, -1, 267, -1, -1, -1, 271, 272, + -1, -1, -1, 276, 277, -1, -1, -1, 281, 282, + -1, -1, -1, -1, -1, -1, 289, -1, -1, -1, + 293, -1, -1, 1236, -1, 1238, -1, -1, 301, -1, + -1, -1, 1245, -1, 307, 308, 309, -1, 311, 1209, + 1210, 1211, 1212, -1, 1214, 1215, -1, 1217, 1218, 1219, + 1220, -1, 1222, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, -1, -1, -1, + -1, 384, 385, -1, -1, -1, -1, -1, 391, 392, + -1, 394, -1, -1, -1, 398, 399, 400, -1, 402, + -1, 147, 148, -1, 150, 151, 152, 153, 154, -1, + 413, 157, -1, 416, -1, -1, 419, 420, -1, 422, + -1, 424, -1, 426, -1, -1, 429, -1, -1, -1, + 433, 434, -1, -1, 437, 438, -1, -1, -1, -1, + -1, 444, 445, -1, 447, 448, -1, 450, 451, 147, + 148, -1, 150, 151, 152, 153, 154, 460, 461, 462, + 463, 464, -1, 466, -1, 468, -1, -1, -1, -1, + 473, -1, 475, -1, 477, -1, 479, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 107, 108, 109, + 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, + -1, 141, 142, 143, 144, 145, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 568, -1, -1, -1, -1, + -1, -1, 575, -1, -1, 578, -1, 580, -1, 582, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 605, 606, 607, -1, -1, 610, -1, -1, + 613, 614, 615, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 627, -1, 629, -1, 631, -1, + 633, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 646, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 658, -1, 660, -1, -1, + 663, -1, 665, -1, 667, -1, 669, -1, 671, -1, + -1, 674, 675, 676, 677, 678, -1, 680, -1, -1, + 683, -1, -1, -1, -1, 688, -1, -1, -1, 692, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 780, -1, 782, + -1, -1, -1, -1, -1, -1, -1, 790, -1, -1, + 793, 794, -1, -1, -1, -1, 799, -1, -1, -1, + 803, -1, 805, 806, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 818, -1, 820, -1, 822, + -1, -1, -1, 826, 827, 828, -1, -1, 831, 832, + -1, 834, 835, -1, 837, -1, -1, 840, -1, -1, + 843, 844, -1, -1, 847, 848, 849, -1, -1, 852, + -1, -1, -1, -1, -1, -1, 859, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 910, -1, -1, + 913, 914, 915, 191, 917, 193, 919, 195, -1, -1, + 198, -1, -1, -1, -1, -1, -1, -1, 931, -1, + -1, -1, -1, 936, 937, 938, -1, 940, 941, 942, + 943, -1, 945, -1, 947, -1, -1, -1, -1, -1, + 953, 954, 955, -1, 957, -1, 959, -1, -1, 962, + -1, -1, -1, 966, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1008, -1, 1010, -1, 1012, + -1, 1014, 1015, 1016, -1, -1, -1, 1020, 1021, -1, + -1, -1, 1025, 1026, -1, 1028, -1, -1, 1031, -1, + 1033, -1, -1, 1036, -1, 313, -1, -1, -1, -1, + -1, 1044, 320, -1, 322, 323, 1049, -1, 1051, 1052, + -1, -1, -1, -1, -1, -1, -1, 335, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1097, 1098, -1, 1100, 1101, -1, + 1103, 1104, -1, -1, -1, -1, 1109, 1110, -1, 1112, + -1, -1, 286, 287, -1, 289, 1119, 1120, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 412, -1, -1, -1, -1, 1142, + 1143, 1144, -1, 421, -1, -1, -1, -1, -1, 1152, + 428, -1, -1, -1, -1, -1, -1, -1, 436, -1, + -1, -1, -1, -1, 442, 443, -1, -1, 446, -1, + -1, 449, -1, -1, 1177, 1178, -1, -1, 456, -1, + -1, 459, -1, 1186, 1187, 1188, 1189, 1190, 1191, -1, + -1, 1194, 470, 1196, 472, 1198, -1, -1, -1, -1, + 1203, -1, -1, 481, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 494, -1, -1, -1, + 498, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1235, 511, 1237, -1, -1, -1, -1, 517, + -1, 1244, -1, 1246, -1, -1, -1, -1, 1251, -1, + -1, -1, 1255, -1, -1, 429, 1259, -1, 432, -1, + -1, 1264, -1, -1, -1, 439, 440, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 457, -1, -1, -1, 565, -1, -1, + -1, -1, -1, 571, -1, 573, -1, -1, -1, 577, + -1, -1, -1, 1306, -1, 583, 1309, 1310, -1, -1, + -1, 1314, 590, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 611, -1, -1, -1, -1, 616, 617, + -1, -1, -1, -1, -1, -1, 624, -1, -1, -1, + -1, -1, 630, -1, 632, -1, 634, 635, 636, 637, + 638, 639, 640, -1, -1, -1, -1, 645, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 102, 103, -1, -1, 106, 107, -1, 109, -1, + 111, -1, 113, -1, 115, -1, 117, 118, 119, -1, + 121, 122, 123, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 713, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 620, 621, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 181, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 773, -1, -1, 776, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 792, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 808, -1, -1, -1, -1, -1, -1, -1, 816, -1, + -1, -1, -1, -1, -1, -1, -1, 825, -1, -1, + -1, -1, 830, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 842, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 858, -1, 860, 861, 862, 863, -1, -1, -1, -1, + -1, 869, -1, -1, -1, -1, 874, 875, 319, -1, + -1, -1, -1, 324, 325, -1, -1, -1, -1, 330, + -1, -1, -1, 787, 788, 789, 790, 338, 339, -1, + -1, -1, 343, -1, -1, 903, 347, -1, -1, 350, + -1, -1, 353, 807, -1, 356, -1, -1, 359, -1, + -1, 362, -1, 364, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 935, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 950, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 960, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 973, -1, 975, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 992, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1002, -1, -1, -1, 1006, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 916, -1, -1, -1, -1, -1, 922, -1, + -1, -1, -1, -1, -1, 929, -1, -1, -1, 1037, + -1, -1, -1, -1, 485, 486, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 503, -1, 505, -1, -1, 1065, -1, -1, + -1, -1, -1, -1, -1, 516, -1, -1, -1, 1077, + -1, 1079, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1117, + -1, -1, 563, -1, 1018, 566, -1, -1, -1, -1, + -1, -1, 1130, -1, -1, -1, -1, -1, -1, -1, + 1138, -1, 1140, 1141, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1184, -1, -1, -1, + -1, -1, -1, -1, 1192, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1208, -1, 1106, -1, -1, -1, -1, -1, 1216, -1, + -1, -1, -1, -1, -1, -1, 1224, 1121, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 702, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1271, 1272, -1, -1, 718, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1200, -1, -1, 750, + -1, -1, 753, -1, 1312, -1, -1, 1315, -1, -1, + -1, 762, -1, -1, -1, -1, -1, -1, -1, -1, + 771, -1, -1, 774, 1228, -1, -1, -1, 1232, 1233, + 1338, 1235, -1, 1237, -1, -1, -1, 1241, 1242, -1, + 1244, -1, 1246, -1, 1248, 1249, -1, 1251, 1252, 1253, + -1, 1255, -1, 1257, -1, 1259, 1260, -1, 1262, -1, + 1264, 1265, -1, 1267, -1, 1269, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1308, 1309, -1, 1311, -1, 1313, + 1314, -1, 1316, 1317, 1318, 1319, 1320, -1, -1, 870, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1337, -1, 1339, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 900, + -1, -1, -1, -1, -1, -1, -1, -1, 909, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 976, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1004, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1056, -1, 1058, -1, -1, + 1061, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1078, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1122, 1123, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1134 +}; + + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_uint16 yystos[] = +{ + 0, 4, 5, 10, 15, 17, 18, 24, 27, 34, + 35, 37, 39, 44, 46, 49, 52, 60, 63, 65, + 66, 67, 68, 76, 77, 78, 79, 80, 82, 83, + 84, 85, 86, 87, 89, 90, 91, 164, 165, 166, + 237, 239, 303, 304, 307, 309, 330, 331, 332, 333, + 334, 337, 338, 340, 342, 350, 351, 357, 358, 366, + 368, 379, 380, 381, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 403, 425, + 426, 427, 428, 432, 437, 440, 443, 446, 448, 455, + 457, 460, 462, 472, 474, 475, 478, 480, 481, 0, + 158, 159, 201, 201, 201, 201, 201, 201, 201, 201, + 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, + 201, 201, 201, 201, 201, 146, 204, 240, 204, 310, + 204, 336, 336, 204, 343, 204, 352, 336, 204, 369, + 336, 352, 336, 352, 336, 352, 336, 352, 204, 429, + 204, 449, 331, 332, 333, 334, 357, 380, 381, 391, + 395, 399, 425, 426, 427, 432, 437, 440, 443, 446, + 456, 458, 459, 204, 463, 463, 463, 40, 464, 465, + 162, 203, 203, 203, 203, 203, 203, 203, 203, 203, + 203, 353, 203, 353, 203, 353, 203, 203, 402, 203, + 203, 160, 161, 202, 203, 203, 203, 203, 203, 201, + 147, 148, 150, 151, 152, 153, 154, 167, 168, 169, + 171, 173, 174, 177, 179, 180, 204, 241, 61, 311, + 313, 19, 28, 56, 304, 309, 320, 321, 339, 350, + 359, 360, 362, 363, 320, 339, 359, 171, 344, 340, + 359, 3, 25, 370, 371, 70, 307, 309, 320, 382, + 389, 433, 434, 435, 436, 23, 237, 354, 355, 202, + 71, 393, 438, 439, 202, 72, 397, 441, 442, 202, + 73, 401, 444, 445, 50, 51, 237, 404, 405, 407, + 408, 202, 64, 430, 431, 332, 334, 338, 357, 391, + 392, 450, 451, 74, 75, 452, 453, 464, 464, 464, + 41, 466, 467, 166, 179, 149, 167, 178, 171, 203, + 238, 203, 305, 308, 201, 201, 203, 201, 203, 203, + 201, 203, 203, 203, 203, 353, 203, 203, 201, 201, + 203, 203, 203, 201, 203, 258, 203, 201, 203, 203, + 201, 203, 203, 201, 203, 203, 201, 258, 258, 201, + 203, 258, 201, 203, 201, 201, 201, 203, 201, 203, + 203, 203, 203, 201, 202, 172, 175, 176, 180, 179, + 32, 33, 168, 204, 242, 243, 244, 246, 247, 202, + 62, 311, 316, 317, 340, 202, 202, 204, 314, 310, + 339, 57, 322, 323, 6, 16, 81, 267, 268, 270, + 271, 273, 335, 346, 347, 48, 410, 413, 204, 364, + 339, 335, 410, 171, 345, 202, 366, 9, 367, 373, + 375, 204, 372, 310, 382, 273, 383, 410, 364, 237, + 237, 204, 356, 267, 410, 364, 267, 410, 364, 267, + 410, 364, 179, 183, 185, 204, 406, 404, 204, 409, + 410, 364, 336, 336, 379, 388, 395, 396, 399, 400, + 447, 179, 454, 466, 25, 415, 416, 466, 47, 482, + 485, 166, 179, 203, 203, 201, 201, 305, 308, 203, + 306, 201, 203, 203, 312, 203, 203, 203, 325, 201, + 201, 202, 203, 201, 203, 201, 203, 203, 202, 203, + 203, 341, 203, 202, 203, 258, 201, 258, 203, 203, + 201, 202, 203, 203, 258, 258, 202, 202, 203, 203, + 202, 203, 203, 202, 203, 203, 154, 156, 182, 184, + 188, 191, 202, 258, 202, 203, 203, 203, 203, 203, + 206, 201, 203, 206, 201, 203, 206, 201, 202, 167, + 202, 203, 203, 201, 203, 206, 201, 202, 243, 246, + 204, 245, 204, 248, 237, 319, 168, 318, 316, 237, + 315, 202, 311, 335, 58, 59, 326, 328, 202, 179, + 324, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 274, 275, 276, 267, 204, + 348, 267, 204, 414, 320, 350, 335, 267, 7, 11, + 237, 259, 263, 202, 267, 367, 204, 376, 202, 311, + 383, 274, 267, 320, 389, 267, 393, 267, 397, 267, + 401, 179, 186, 179, 192, 267, 359, 26, 29, 30, + 31, 53, 54, 55, 207, 209, 210, 211, 212, 213, + 214, 215, 218, 219, 220, 222, 223, 228, 230, 233, + 234, 237, 249, 250, 399, 336, 399, 336, 336, 179, + 415, 38, 375, 411, 418, 422, 423, 204, 417, 45, + 479, 202, 463, 203, 202, 202, 306, 202, 306, 312, + 203, 202, 201, 167, 202, 203, 203, 203, 203, 202, + 203, 203, 203, 361, 202, 202, 258, 258, 201, 202, + 203, 203, 202, 203, 202, 203, 202, 202, 202, 202, + 202, 202, 202, 184, 182, 155, 157, 180, 181, 189, + 192, 197, 198, 199, 202, 203, 203, 201, 203, 208, + 201, 203, 208, 201, 203, 208, 201, 203, 208, 201, + 203, 208, 201, 208, 201, 206, 203, 206, 203, 203, + 203, 201, 203, 473, 201, 203, 327, 201, 203, 246, + 311, 204, 329, 179, 150, 151, 152, 277, 277, 277, + 170, 172, 349, 415, 350, 7, 12, 257, 262, 346, + 365, 202, 204, 265, 170, 377, 311, 277, 389, 179, + 187, 192, 179, 193, 181, 200, 366, 211, 237, 249, + 214, 218, 237, 249, 204, 216, 222, 228, 233, 204, + 221, 228, 233, 168, 224, 233, 168, 231, 183, 204, + 235, 146, 205, 411, 376, 43, 207, 418, 422, 470, + 471, 202, 376, 237, 202, 410, 460, 474, 476, 415, + 327, 258, 258, 258, 203, 258, 171, 202, 203, 361, + 201, 203, 203, 203, 374, 258, 202, 184, 200, 181, + 190, 197, 193, 202, 208, 203, 208, 202, 203, 208, + 203, 208, 208, 202, 203, 208, 208, 203, 208, 203, + 203, 202, 203, 461, 203, 473, 473, 206, 201, 203, + 202, 203, 202, 202, 202, 202, 257, 411, 202, 265, + 365, 171, 266, 7, 11, 12, 13, 255, 256, 378, + 202, 202, 179, 194, 195, 217, 219, 222, 228, 233, + 228, 233, 233, 233, 168, 225, 168, 232, 183, 204, + 236, 42, 207, 418, 422, 468, 469, 470, 202, 377, + 318, 204, 424, 203, 375, 422, 483, 486, 203, 203, + 203, 258, 203, 412, 203, 258, 201, 258, 203, 167, + 197, 202, 203, 203, 203, 203, 208, 208, 208, 208, + 203, 203, 229, 202, 461, 461, 203, 206, 201, 206, + 203, 202, 327, 479, 201, 203, 484, 8, 278, 281, + 279, 281, 280, 281, 237, 418, 422, 202, 266, 202, + 265, 278, 179, 196, 197, 222, 228, 233, 228, 233, + 233, 233, 168, 226, 259, 202, 470, 166, 7, 11, + 12, 13, 14, 69, 419, 420, 421, 202, 201, 376, + 207, 422, 486, 202, 203, 269, 201, 206, 201, 203, + 272, 201, 327, 412, 412, 258, 203, 203, 384, 197, + 203, 203, 203, 208, 203, 206, 202, 327, 201, 476, + 203, 484, 484, 7, 11, 12, 13, 14, 69, 88, + 207, 251, 252, 253, 254, 260, 264, 278, 302, 204, + 282, 282, 207, 280, 282, 202, 266, 36, 207, 302, + 385, 386, 228, 233, 233, 233, 168, 227, 202, 265, + 202, 377, 201, 201, 269, 206, 203, 203, 272, 203, + 258, 203, 206, 206, 201, 203, 202, 203, 261, 203, + 477, 258, 265, 265, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 283, 286, 295, 295, 106, 114, + 139, 140, 288, 291, 295, 202, 385, 204, 387, 233, + 266, 202, 207, 470, 479, 202, 202, 203, 261, 203, + 203, 203, 203, 202, 203, 203, 293, 203, 203, 203, + 203, 202, 203, 206, 327, 258, 206, 201, 266, 202, + 20, 22, 237, 252, 284, 296, 297, 300, 301, 284, + 21, 237, 252, 285, 298, 299, 300, 285, 237, 252, + 287, 300, 237, 260, 294, 300, 202, 237, 289, 296, + 300, 284, 237, 290, 298, 300, 290, 237, 292, 300, + 202, 476, 258, 258, 258, 203, 258, 201, 203, 258, + 201, 258, 258, 203, 258, 201, 203, 258, 258, 258, + 203, 258, 258, 258, 203, 258, 258, 203, 258, 258, + 258, 203, 258, 258, 258, 258, 202, 202, 252, 300, + 168, 252, 179, 252, 300, 168, 252, 252, 260, 300, + 300, 477, 258, 203, 258, 203, 258, 202, 258, 203, + 258, 202, 258, 258, 258, 258, 258, 252, 257, 252, + 258, 202, 258 +}; + + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint16 yyr1[] = +{ + 0, 163, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 165, 165, 165, 165, 165, 165, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 167, 168, 168, 169, 170, 171, 171, 172, + 172, 173, 174, 175, 176, 177, 177, 178, 178, 179, + 179, 179, 179, 180, 180, 181, 182, 183, 183, 183, + 184, 184, 185, 186, 187, 188, 189, 189, 190, 190, + 191, 192, 193, 194, 194, 194, 195, 196, 197, 197, + 198, 199, 199, 200, 200, 201, 201, 202, 202, 203, + 204, 205, 206, 206, 207, 207, 207, 208, 208, 208, + 209, 209, 210, 210, 210, 211, 211, 211, 211, 212, + 213, 214, 215, 216, 217, 217, 217, 217, 217, 217, + 217, 217, 217, 217, 217, 217, 217, 217, 217, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, + 218, 218, 218, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 229, 230, 231, 232, 233, + 234, 235, 235, 236, 236, 237, 238, 238, 238, 238, + 238, 238, 238, 239, 240, 241, 241, 242, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 251, 252, + 253, 254, 254, 254, 254, 254, 255, 256, 256, 256, + 256, 257, 258, 258, 259, 260, 261, 261, 262, 262, + 263, 263, 264, 264, 265, 266, 267, 267, 267, 268, + 269, 269, 269, 269, 270, 271, 272, 272, 272, 273, + 274, 274, 274, 274, 274, 274, 274, 274, 274, 275, + 275, 275, 276, 276, 277, 277, 277, 278, 279, 280, + 281, 282, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 284, 284, 284, 284, 284, 284, 284, 284, 285, + 285, 285, 285, 285, 285, 285, 285, 286, 286, 287, + 287, 287, 287, 288, 288, 288, 288, 288, 288, 288, + 288, 288, 289, 289, 289, 289, 290, 290, 290, 290, + 291, 291, 292, 292, 293, 293, 294, 294, 294, 294, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 303, 304, 305, 305, 306, 306, + 307, 308, 308, 309, 310, 311, 312, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 324, 324, 325, 325, 326, 327, 327, 328, 328, 329, + 330, 330, 330, 330, 331, 332, 333, 334, 335, 335, + 336, 337, 337, 338, 338, 339, 339, 340, 341, 341, + 341, 342, 342, 343, 344, 345, 346, 347, 347, 348, + 349, 349, 350, 351, 351, 351, 352, 353, 353, 353, + 353, 354, 355, 356, 357, 358, 358, 359, 359, 360, + 361, 361, 361, 361, 362, 363, 363, 364, 365, 366, + 367, 367, 368, 369, 370, 371, 371, 372, 373, 374, + 374, 375, 376, 377, 378, 379, 379, 380, 381, 382, + 382, 383, 384, 384, 384, 384, 384, 385, 386, 387, + 388, 388, 389, 390, 390, 390, 391, 392, 392, 393, + 394, 394, 395, 396, 397, 398, 398, 399, 400, 401, + 402, 402, 402, 402, 402, 403, 403, 404, 405, 406, + 406, 407, 408, 409, 410, 411, 411, 412, 412, 412, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 421, 421, 421, 421, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 447, 447, 447, 447, 448, 449, 450, 450, + 450, 451, 451, 452, 453, 453, 454, 454, 454, 455, + 456, 456, 457, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 459, 459, + 459, 459, 459, 459, 459, 459, 460, 461, 461, 461, + 461, 461, 461, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 473, 473, 473, 473, + 474, 475, 476, 476, 476, 477, 477, 477, 477, 478, + 479, 480, 481, 482, 483, 483, 484, 484, 484, 484, + 485, 486 +}; + + /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 1, 1, 0, + 1, 3, 1, 1, 2, 2, 2, 0, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 4, 6, + 0, 1, 1, 1, 1, 3, 3, 1, 2, 1, + 1, 1, 1, 3, 4, 2, 1, 1, 1, 1, + 1, 3, 2, 0, 2, 1, 1, 1, 1, 1, + 1, 1, 0, 2, 1, 2, 1, 0, 3, 2, + 1, 1, 3, 2, 1, 1, 3, 4, 3, 6, + 1, 4, 1, 1, 1, 1, 1, 1, 3, 3, + 3, 3, 3, 3, 5, 5, 5, 5, 7, 2, + 2, 2, 2, 4, 4, 4, 4, 4, 4, 6, + 6, 6, 6, 8, 4, 1, 1, 10, 1, 1, + 1, 1, 1, 7, 0, 2, 1, 1, 1, 6, + 1, 1, 1, 1, 1, 7, 0, 2, 4, 6, + 2, 4, 2, 1, 1, 1, 1, 1, 1, 4, + 1, 1, 4, 1, 1, 4, 1, 1, 1, 1, + 7, 1, 1, 1, 1, 1, 7, 1, 1, 1, + 1, 7, 0, 3, 7, 5, 0, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 10, + 0, 3, 3, 2, 10, 10, 0, 3, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 6, 7, 6, + 1, 1, 1, 1, 3, 1, 3, 1, 3, 1, + 3, 2, 4, 6, 4, 2, 4, 2, 2, 2, + 4, 6, 4, 2, 4, 2, 2, 1, 3, 2, + 2, 4, 2, 1, 1, 3, 1, 3, 1, 3, + 1, 3, 2, 4, 2, 2, 2, 4, 2, 2, + 1, 3, 2, 2, 0, 2, 2, 2, 4, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 6, 1, 4, 1, + 4, 1, 1, 1, 1, 7, 5, 3, 0, 3, + 7, 3, 3, 1, 1, 5, 0, 3, 1, 1, + 1, 4, 1, 1, 1, 5, 1, 4, 1, 1, + 2, 3, 0, 2, 5, 0, 2, 1, 1, 1, + 1, 1, 1, 1, 8, 8, 10, 10, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 9, 0, 3, + 3, 1, 1, 1, 1, 1, 6, 1, 1, 1, + 4, 2, 7, 1, 1, 1, 1, 0, 2, 3, + 5, 4, 1, 1, 10, 1, 1, 1, 1, 7, + 0, 2, 4, 2, 9, 1, 1, 1, 1, 8, + 2, 3, 1, 1, 5, 1, 1, 1, 7, 0, + 3, 1, 1, 1, 1, 1, 1, 8, 10, 1, + 1, 10, 0, 3, 5, 3, 2, 5, 1, 1, + 1, 1, 5, 1, 1, 1, 8, 1, 1, 5, + 1, 1, 8, 1, 5, 1, 1, 8, 1, 5, + 0, 3, 5, 3, 3, 1, 1, 4, 1, 1, + 1, 4, 1, 1, 9, 1, 1, 0, 3, 3, + 3, 1, 1, 5, 1, 1, 9, 1, 5, 1, + 1, 1, 1, 1, 1, 7, 1, 1, 10, 10, + 10, 1, 1, 8, 1, 10, 1, 1, 6, 8, + 1, 10, 6, 1, 10, 6, 1, 10, 6, 1, + 8, 2, 2, 2, 4, 4, 1, 1, 1, 1, + 1, 1, 1, 4, 1, 1, 1, 2, 3, 4, + 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 13, 0, 3, 3, + 3, 5, 3, 2, 1, 1, 4, 1, 4, 1, + 4, 1, 4, 1, 11, 0, 3, 3, 3, 2, + 1, 19, 1, 1, 1, 0, 6, 3, 2, 1, + 1, 9, 1, 9, 1, 1, 0, 3, 3, 2, + 1, 7 +}; + + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + +#define YYRECOVERING() (!!yyerrstatus) + +#define YYBACKUP(Token, Value) \ +do \ + if (yychar == YYEMPTY) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (yylen); \ + yystate = *yyssp; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (context, YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ +while (0) + +/* Error token number */ +#define YYTERROR 1 +#define YYERRCODE 256 + + + +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include <stdio.h> /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) + +/* This macro is provided for backward compatibility. */ +#ifndef YY_LOCATION_PRINT +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +#endif + + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value, context); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + + +/*----------------------------------------. +| Print this symbol's value on YYOUTPUT. | +`----------------------------------------*/ + +static void +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, pj_wkt2_parse_context *context) +{ + FILE *yyo = yyoutput; + YYUSE (yyo); + YYUSE (context); + if (!yyvaluep) + return; +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# endif + YYUSE (yytype); +} + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +static void +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, pj_wkt2_parse_context *context) +{ + YYFPRINTF (yyoutput, "%s %s (", + yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); + + yy_symbol_value_print (yyoutput, yytype, yyvaluep, context); + YYFPRINTF (yyoutput, ")"); +} + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +static void +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +{ + YYFPRINTF (stderr, "Stack now"); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +static void +yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, pj_wkt2_parse_context *context) +{ + unsigned long int yylno = yyrline[yyrule]; + int yynrhs = yyr2[yyrule]; + int yyi; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + YYFPRINTF (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, + yystos[yyssp[yyi + 1 - yynrhs]], + &(yyvsp[(yyi + 1) - (yynrhs)]) + , context); + YYFPRINTF (stderr, "\n"); + } +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyssp, yyvsp, Rule, context); \ +} while (0) + +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !YYDEBUG */ + + +/* YYINITDEPTH -- initial size of the parser's stacks. */ +#ifndef YYINITDEPTH +# define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). + + Do not make this value too large; the results are undefined if + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ + +#ifndef YYMAXDEPTH +# define YYMAXDEPTH 10000 +#endif + + +#if YYERROR_VERBOSE + +# ifndef yystrlen +# if defined __GLIBC__ && defined _STRING_H +# define yystrlen strlen +# else +/* Return the length of YYSTR. */ +static YYSIZE_T +yystrlen (const char *yystr) +{ + YYSIZE_T yylen; + for (yylen = 0; yystr && yystr[yylen]; yylen++) + continue; + return yylen; +} +# endif +# endif + +# ifndef yystpcpy +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +static char * +yystpcpy (char *yydest, const char *yysrc) +{ + char *yyd = yydest; + const char *yys = yysrc; + + while ((*yyd++ = *yys++) != '\0') + continue; + + return yyd - 1; +} +# endif +# endif + +# ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYSIZE_T +yytnamerr (char *yyres, const char *yystr) +{ + if (*yystr == '"') + { + YYSIZE_T yyn = 0; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } + + if (! yyres) + return yystrlen (yystr); + + return yystpcpy (yyres, yystr) - yyres; +} +# endif + +/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message + about the unexpected token YYTOKEN for the state stack whose top is + YYSSP. + + Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is + not large enough to hold the message. In that case, also set + *YYMSG_ALLOC to the required number of bytes. Return 2 if the + required number of bytes is too large to store. */ +static int +yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, + yytype_int16 *yyssp, int yytoken) +{ + YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); + YYSIZE_T yysize = yysize0; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + /* Internationalized format string. */ + const char *yyformat = YY_NULLPTR; + /* Arguments of yyformat. */ + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + /* Number of reported tokens (one for the "unexpected", one per + "expected"). */ + int yycount = 0; + + /* There are many possibilities here to consider: + - If this state is a consistent state with a default action, then + the only way this function was invoked is if the default action + is an error action. In that case, don't check for expected + tokens because there are none. + - The only way there can be no lookahead present (in yychar) is if + this state is a consistent state with a default action. Thus, + detecting the absence of a lookahead is sufficient to determine + that there is no unexpected or expected token to report. In that + case, just report a simple "syntax error". + - Don't assume there isn't a lookahead just because this state is a + consistent state with a default action. There might have been a + previous inconsistent state, consistent state with a non-default + action, or user semantic action that manipulated yychar. + - Of course, the expected token list depends on states to have + correct lookahead information, and it depends on the parser not + to perform extra reductions after fetching a lookahead from the + scanner and before detecting a syntax error. Thus, state merging + (from LALR or IELR) and default reductions corrupt the expected + token list. However, the list is correct for canonical LR with + one exception: it will still contain any token that will not be + accepted due to an error action in a later state. + */ + if (yytoken != YYEMPTY) + { + int yyn = yypact[*yyssp]; + yyarg[yycount++] = yytname[yytoken]; + if (!yypact_value_is_default (yyn)) + { + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. In other words, skip the first -YYN actions for + this state because they are default actions. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yyx; + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR + && !yytable_value_is_error (yytable[yyx + yyn])) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + break; + } + yyarg[yycount++] = yytname[yyx]; + { + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); + if (! (yysize <= yysize1 + && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } + } + } + } + + switch (yycount) + { +# define YYCASE_(N, S) \ + case N: \ + yyformat = S; \ + break + YYCASE_(0, YY_("syntax error")); + YYCASE_(1, YY_("syntax error, unexpected %s")); + YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); + YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); + YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); + YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); +# undef YYCASE_ + } + + { + YYSIZE_T yysize1 = yysize + yystrlen (yyformat); + if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } + + if (*yymsg_alloc < yysize) + { + *yymsg_alloc = 2 * yysize; + if (! (yysize <= *yymsg_alloc + && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) + *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; + return 1; + } + + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + { + char *yyp = *yymsg; + int yyi = 0; + while ((*yyp = *yyformat) != '\0') + if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyformat += 2; + } + else + { + yyp++; + yyformat++; + } + } + return 0; +} +#endif /* YYERROR_VERBOSE */ + +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, pj_wkt2_parse_context *context) +{ + YYUSE (yyvaluep); + YYUSE (context); + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_END +} + + + + +/*----------. +| yyparse. | +`----------*/ + +int +yyparse (pj_wkt2_parse_context *context) +{ +/* The lookahead symbol. */ +int yychar; + + +/* The semantic value of the lookahead symbol. */ +/* Default value used for initialization, for pacifying older GCCs + or non-GCC compilers. */ +YY_INITIAL_VALUE (static YYSTYPE yyval_default;) +YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); + + /* Number of syntax errors so far. */ + int yynerrs; + + int yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + + /* The stacks and their tools: + 'yyss': related to states. + 'yyvs': related to semantic values. + + Refer to the stacks through separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; + + YYSIZE_T yystacksize; + + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ + int yytoken = 0; + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + + /* The number of symbols on the RHS of the reduced rule. + Keep to zero when no symbol should be popped. */ + int yylen = 0; + + yyssp = yyss = yyssa; + yyvsp = yyvs = yyvsa; + yystacksize = YYINITDEPTH; + + YYDPRINTF ((stderr, "Starting parse\n")); + + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + goto yysetstate; + +/*------------------------------------------------------------. +| yynewstate -- Push a new state, which is found in yystate. | +`------------------------------------------------------------*/ + yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. So pushing a state here evens the stacks. */ + yyssp++; + + yysetstate: + *yyssp = (yytype_int16)yystate; + + if (yyss + yystacksize - 1 <= yyssp) + { + /* Get the current used size of the three stacks, in elements. */ + YYSIZE_T yysize = yyssp - yyss + 1; + +#ifdef yyoverflow + { + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); + + yyss = yyss1; + yyvs = yyvs1; + } +#else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyexhaustedlab; +# else + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) + goto yyexhaustedlab; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) + yystacksize = YYMAXDEPTH; + + { + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif +#endif /* no yyoverflow */ + + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); + + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; + } + + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + + if (yystate == YYFINAL) + YYACCEPT; + + goto yybackup; + +/*-----------. +| yybackup. | +`-----------*/ +yybackup: + + /* Do appropriate processing given the current state. Read a + lookahead token if we need one and don't already have one. */ + + /* First try to decide what to do without reference to lookahead token. */ + yyn = yypact[yystate]; + if (yypact_value_is_default (yyn)) + goto yydefault; + + /* Not known => get a lookahead token if don't already have one. */ + + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + if (yychar == YYEMPTY) + { + YYDPRINTF ((stderr, "Reading a token: ")); + yychar = yylex (&yylval, context); + } + + if (yychar <= YYEOF) + { + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); + } + else + { + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + } + + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) + goto yydefault; + yyn = yytable[yyn]; + if (yyn <= 0) + { + if (yytable_value_is_error (yyn)) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; + + /* Shift the lookahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + + /* Discard the shifted token. */ + yychar = YYEMPTY; + + yystate = yyn; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + + goto yynewstate; + + +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + goto yyreduce; + + +/*-----------------------------. +| yyreduce -- Do a reduction. | +`-----------------------------*/ +yyreduce: + /* yyn is the number of a rule to reduce with. */ + yylen = yyr2[yyn]; + + /* If YYLEN is nonzero, implement the default value of the action: + '$$ = $1'. + + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; + + + YY_REDUCE_PRINT (yyn); + switch (yyn) + { + + + default: break; + } + /* User semantic actions sometimes alter yychar, and that requires + that yytoken be updated with the new translation. We take the + approach of translating immediately before every use of yytoken. + One alternative is translating here after every semantic action, + but that translation would be missed if the semantic action invokes + YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or + if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an + incorrect destructor might then be invoked immediately. In the + case of YYERROR or YYBACKUP, subsequent parser actions might lead + to an incorrect destructor call or verbose syntax error message + before the lookahead is translated. */ + YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + + *++yyvsp = yyval; + + /* Now 'shift' the result of the reduction. Determine what state + that goes to, based on the state we popped back to and the rule + number reduced by. */ + + yyn = yyr1[yyn]; + + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTOKENS]; + + goto yynewstate; + + +/*--------------------------------------. +| yyerrlab -- here on detecting error. | +`--------------------------------------*/ +yyerrlab: + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); + + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) + { + ++yynerrs; +#if ! YYERROR_VERBOSE + yyerror (context, YY_("syntax error")); +#else +# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ + yyssp, yytoken) + { + char const *yymsgp = YY_("syntax error"); + int yysyntax_error_status; + yysyntax_error_status = YYSYNTAX_ERROR; + if (yysyntax_error_status == 0) + yymsgp = yymsg; + else if (yysyntax_error_status == 1) + { + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); + if (!yymsg) + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + yysyntax_error_status = 2; + } + else + { + yysyntax_error_status = YYSYNTAX_ERROR; + yymsgp = yymsg; + } + } + yyerror (context, yymsgp); + if (yysyntax_error_status == 2) + goto yyexhaustedlab; + } +# undef YYSYNTAX_ERROR +#endif + } + + + + if (yyerrstatus == 3) + { + /* If just tried and failed to reuse lookahead token after an + error, discard it. */ + + if (yychar <= YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", + yytoken, &yylval, context); + yychar = YYEMPTY; + } + } + + /* Else will try to reuse lookahead token after shifting the error + token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +#if 0 +yyerrorlab: + + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (/*CONSTCOND*/ 0) + goto yyerrorlab; + + /* Do not reclaim the symbols of the rule whose action triggered + this YYERROR. */ + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +#endif +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ + + for (;;) + { + yyn = yypact[yystate]; + if (!yypact_value_is_default (yyn)) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; + + + yydestruct ("Error: popping", + yystos[yystate], yyvsp, context); + YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } + + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + + yystate = yyn; + goto yynewstate; + + +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturn; + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturn; + +#if !defined yyoverflow || YYERROR_VERBOSE +/*-------------------------------------------------. +| yyexhaustedlab -- memory exhaustion comes here. | +`-------------------------------------------------*/ +yyexhaustedlab: + yyerror (context, YY_("memory exhausted")); + yyresult = 2; + /* Fall through. */ +#endif + +yyreturn: + if (yychar != YYEMPTY) + { + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = YYTRANSLATE (yychar); + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval, context); + } + /* Do not reclaim the symbols of the rule whose action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); + while (yyssp != yyss) + { + yydestruct ("Cleanup: popping", + yystos[*yyssp], yyvsp, context); + YYPOPSTACK (1); + } +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif +#if YYERROR_VERBOSE + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); +#endif + return yyresult; +} |
