/* A Bison parser, made by GNU Bison 3.3.2. */ /* Bison implementation for Yacc-like parsers in C Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 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 . */ /* 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. */ /* Undocumented macros, especially those whose name start with YY_, are private implementation details. Do not rely on them. */ /* Identify Bison output. */ #define YYBISON 1 /* Bison version. */ #define YYBISON_VERSION "3.3.2" /* 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 base_yyparse #define yylex base_yylex #define yyerror base_yyerror #define yydebug base_yydebug #define yynerrs base_yynerrs /* First part of user prologue. */ #line 1 "gram.y" /* yacc.c:337 */ /*#define YYDEBUG 1*/ /*------------------------------------------------------------------------- * * gram.y * POSTGRESQL BISON rules/actions * * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * * IDENTIFICATION * src/backend/parser/gram.y * * HISTORY * AUTHOR DATE MAJOR EVENT * Andrew Yu Sept, 1994 POSTQUEL to SQL conversion * Andrew Yu Oct, 1994 lispy code conversion * * NOTES * CAPITALS are used to represent terminal symbols. * non-capitals are used to represent non-terminals. * * In general, nothing in this file should initiate database accesses * nor depend on changeable state (such as SET variables). If you do * database accesses, your code will fail when we have aborted the * current transaction and are just parsing commands to find the next * ROLLBACK or COMMIT. If you make use of SET variables, then you * will do the wrong thing in multi-query strings like this: * SET constraint_exclusion TO off; SELECT * FROM foo; * because the entire string is parsed by gram.y before the SET gets * executed. Anything that depends on the database or changeable state * should be handled during parse analysis so that it happens at the * right time not the wrong time. * * WARNINGS * If you use a list, make sure the datum is a node so that the printing * routines work. * * Sometimes we assign constants to makeStrings. Make sure we don't free * those. * *------------------------------------------------------------------------- */ #include "postgres.h" #include #include #include "catalog/index.h" #include "catalog/namespace.h" #include "catalog/pg_am.h" #include "catalog/pg_trigger.h" #include "commands/defrem.h" #include "commands/trigger.h" #include "nodes/makefuncs.h" #include "nodes/nodeFuncs.h" #include "parser/gramparse.h" #include "parser/parser.h" #include "parser/parse_expr.h" #include "storage/lmgr.h" #include "utils/date.h" #include "utils/datetime.h" #include "utils/numeric.h" #include "utils/xml.h" /* * Location tracking support --- simpler than bison's default, since we only * want to track the start position not the end position of each nonterminal. */ #define YYLLOC_DEFAULT(Current, Rhs, N) \ do { \ if ((N) > 0) \ (Current) = (Rhs)[1]; \ else \ (Current) = (-1); \ } while (0) /* * The above macro assigns -1 (unknown) as the parse location of any * nonterminal that was reduced from an empty rule, or whose leftmost * component was reduced from an empty rule. This is problematic * for nonterminals defined like * OptFooList: / * EMPTY * / { ... } | OptFooList Foo { ... } ; * because we'll set -1 as the location during the first reduction and then * copy it during each subsequent reduction, leaving us with -1 for the * location even when the list is not empty. To fix that, do this in the * action for the nonempty rule(s): * if (@$ < 0) @$ = @2; * (Although we have many nonterminals that follow this pattern, we only * bother with fixing @$ like this when the nonterminal's parse location * is actually referenced in some rule.) * * A cleaner answer would be to make YYLLOC_DEFAULT scan all the Rhs * locations until it's found one that's not -1. Then we'd get a correct * location for any nonterminal that isn't entirely empty. But this way * would add overhead to every rule reduction, and so far there's not been * a compelling reason to pay that overhead. */ /* * Bison doesn't allocate anything that needs to live across parser calls, * so we can easily have it use palloc instead of malloc. This prevents * memory leaks if we error out during parsing. Note this only works with * bison >= 2.0. However, in bison 1.875 the default is to use alloca() * if possible, so there's not really much problem anyhow, at least if * you're building with gcc. */ #define YYMALLOC palloc #define YYFREE pfree /* Private struct for the result of privilege_target production */ typedef struct PrivTarget { GrantTargetType targtype; ObjectType objtype; List *objs; } PrivTarget; /* Private struct for the result of import_qualification production */ typedef struct ImportQual { ImportForeignSchemaType type; List *table_names; } ImportQual; /* ConstraintAttributeSpec yields an integer bitmask of these flags: */ #define CAS_NOT_DEFERRABLE 0x01 #define CAS_DEFERRABLE 0x02 #define CAS_INITIALLY_IMMEDIATE 0x04 #define CAS_INITIALLY_DEFERRED 0x08 #define CAS_NOT_VALID 0x10 #define CAS_NO_INHERIT 0x20 #define parser_yyerror(msg) scanner_yyerror(msg, yyscanner) #define parser_errposition(pos) scanner_errposition(pos, yyscanner) static void base_yyerror(YYLTYPE *yylloc, core_yyscan_t yyscanner, const char *msg); static RawStmt *makeRawStmt(Node *stmt, int stmt_location); static void updateRawStmtEnd(RawStmt *rs, int end_location); static Node *makeColumnRef(char *colname, List *indirection, int location, core_yyscan_t yyscanner); static Node *makeTypeCast(Node *arg, TypeName *typename, int location); static Node *makeStringConst(char *str, int location); static Node *makeStringConstCast(char *str, int location, TypeName *typename); static Node *makeIntConst(int val, int location); static Node *makeFloatConst(char *str, int location); static Node *makeBitStringConst(char *str, int location); static Node *makeNullAConst(int location); static Node *makeAConst(Value *v, int location); static Node *makeBoolAConst(bool state, int location); static RoleSpec *makeRoleSpec(RoleSpecType type, int location); static void check_qualified_name(List *names, core_yyscan_t yyscanner); static List *check_func_name(List *names, core_yyscan_t yyscanner); static List *check_indirection(List *indirection, core_yyscan_t yyscanner); static List *extractArgTypes(List *parameters); static List *extractAggrArgTypes(List *aggrargs); static List *makeOrderedSetArgs(List *directargs, List *orderedargs, core_yyscan_t yyscanner); static void insertSelectOptions(SelectStmt *stmt, List *sortClause, List *lockingClause, Node *limitOffset, Node *limitCount, WithClause *withClause, core_yyscan_t yyscanner); static Node *makeSetOp(SetOperation op, bool all, Node *larg, Node *rarg); static Node *doNegate(Node *n, int location); static void doNegateFloat(Value *v); static Node *makeAndExpr(Node *lexpr, Node *rexpr, int location); static Node *makeOrExpr(Node *lexpr, Node *rexpr, int location); static Node *makeNotExpr(Node *expr, int location); static Node *makeAArrayExpr(List *elements, int location); static Node *makeSQLValueFunction(SQLValueFunctionOp op, int32 typmod, int location); static Node *makeXmlExpr(XmlExprOp op, char *name, List *named_args, List *args, int location); static List *mergeTableFuncParameters(List *func_args, List *columns); static TypeName *TableFuncTypeName(List *columns); static RangeVar *makeRangeVarFromAnyName(List *names, int position, core_yyscan_t yyscanner); static void SplitColQualList(List *qualList, List **constraintList, CollateClause **collClause, core_yyscan_t yyscanner); static void processCASbits(int cas_bits, int location, const char *constrType, bool *deferrable, bool *initdeferred, bool *not_valid, bool *no_inherit, core_yyscan_t yyscanner); static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); #line 268 "gram.c" /* yacc.c:337 */ # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus # define YY_NULLPTR nullptr # else # define YY_NULLPTR 0 # endif # else # define YY_NULLPTR ((void*)0) # endif # endif /* Enabling verbose error messages. */ #ifdef YYERROR_VERBOSE # undef YYERROR_VERBOSE # define YYERROR_VERBOSE 1 #else # define YYERROR_VERBOSE 0 #endif /* In a future release of Bison, this section will be replaced by #include "gram.h". */ #ifndef YY_BASE_YY_GRAM_H_INCLUDED # define YY_BASE_YY_GRAM_H_INCLUDED /* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #endif #if YYDEBUG extern int base_yydebug; #endif /* Token type. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { IDENT = 258, FCONST = 259, SCONST = 260, BCONST = 261, XCONST = 262, Op = 263, ICONST = 264, PARAM = 265, TYPECAST = 266, DOT_DOT = 267, COLON_EQUALS = 268, EQUALS_GREATER = 269, LESS_EQUALS = 270, GREATER_EQUALS = 271, NOT_EQUALS = 272, ABORT_P = 273, ABSOLUTE_P = 274, ACCESS = 275, ACTION = 276, ADD_P = 277, ADMIN = 278, AFTER = 279, AGGREGATE = 280, ALL = 281, ALSO = 282, ALTER = 283, ALWAYS = 284, ANALYSE = 285, ANALYZE = 286, AND = 287, ANY = 288, ARRAY = 289, AS = 290, ASC = 291, ASSERTION = 292, ASSIGNMENT = 293, ASYMMETRIC = 294, AT = 295, ATTACH = 296, ATTRIBUTE = 297, AUTHORIZATION = 298, BACKWARD = 299, BEFORE = 300, BEGIN_P = 301, BETWEEN = 302, BIGINT = 303, BINARY = 304, BIT = 305, BOOLEAN_P = 306, BOTH = 307, BY = 308, CACHE = 309, CALL = 310, CALLED = 311, CASCADE = 312, CASCADED = 313, CASE = 314, CAST = 315, CATALOG_P = 316, CHAIN = 317, CHAR_P = 318, CHARACTER = 319, CHARACTERISTICS = 320, CHECK = 321, CHECKPOINT = 322, CLASS = 323, CLOSE = 324, CLUSTER = 325, COALESCE = 326, COLLATE = 327, COLLATION = 328, COLUMN = 329, COLUMNS = 330, COMMENT = 331, COMMENTS = 332, COMMIT = 333, COMMITTED = 334, CONCURRENTLY = 335, CONFIGURATION = 336, CONFLICT = 337, CONNECTION = 338, CONSTRAINT = 339, CONSTRAINTS = 340, CONTENT_P = 341, CONTINUE_P = 342, CONVERSION_P = 343, COPY = 344, COST = 345, CREATE = 346, CROSS = 347, CSV = 348, CUBE = 349, CURRENT_P = 350, CURRENT_CATALOG = 351, CURRENT_DATE = 352, CURRENT_ROLE = 353, CURRENT_SCHEMA = 354, CURRENT_TIME = 355, CURRENT_TIMESTAMP = 356, CURRENT_USER = 357, CURSOR = 358, CYCLE = 359, DATA_P = 360, DATABASE = 361, DAY_P = 362, DEALLOCATE = 363, DEC = 364, DECIMAL_P = 365, DECLARE = 366, DEFAULT = 367, DEFAULTS = 368, DEFERRABLE = 369, DEFERRED = 370, DEFINER = 371, DELETE_P = 372, DELIMITER = 373, DELIMITERS = 374, DEPENDS = 375, DESC = 376, DETACH = 377, DICTIONARY = 378, DISABLE_P = 379, DISCARD = 380, DISTINCT = 381, DO = 382, DOCUMENT_P = 383, DOMAIN_P = 384, DOUBLE_P = 385, DROP = 386, EACH = 387, ELSE = 388, ENABLE_P = 389, ENCODING = 390, ENCRYPTED = 391, END_P = 392, ENUM_P = 393, ESCAPE = 394, EVENT = 395, EXCEPT = 396, EXCLUDE = 397, EXCLUDING = 398, EXCLUSIVE = 399, EXECUTE = 400, EXISTS = 401, EXPLAIN = 402, EXTENSION = 403, EXTERNAL = 404, EXTRACT = 405, FALSE_P = 406, FAMILY = 407, FETCH = 408, FILTER = 409, FIRST_P = 410, FLOAT_P = 411, FOLLOWING = 412, FOR = 413, FORCE = 414, FOREIGN = 415, FORWARD = 416, FREEZE = 417, FROM = 418, FULL = 419, FUNCTION = 420, FUNCTIONS = 421, GENERATED = 422, GLOBAL = 423, GRANT = 424, GRANTED = 425, GREATEST = 426, GROUP_P = 427, GROUPING = 428, GROUPS = 429, HANDLER = 430, HAVING = 431, HEADER_P = 432, HOLD = 433, HOUR_P = 434, IDENTITY_P = 435, IF_P = 436, ILIKE = 437, IMMEDIATE = 438, IMMUTABLE = 439, IMPLICIT_P = 440, IMPORT_P = 441, IN_P = 442, INCLUDE = 443, INCLUDING = 444, INCREMENT = 445, INDEX = 446, INDEXES = 447, INHERIT = 448, INHERITS = 449, INITIALLY = 450, INLINE_P = 451, INNER_P = 452, INOUT = 453, INPUT_P = 454, INSENSITIVE = 455, INSERT = 456, INSTEAD = 457, INT_P = 458, INTEGER = 459, INTERSECT = 460, INTERVAL = 461, INTO = 462, INVOKER = 463, IS = 464, ISNULL = 465, ISOLATION = 466, JOIN = 467, KEY = 468, LABEL = 469, LANGUAGE = 470, LARGE_P = 471, LAST_P = 472, LATERAL_P = 473, LEADING = 474, LEAKPROOF = 475, LEAST = 476, LEFT = 477, LEVEL = 478, LIKE = 479, LIMIT = 480, LISTEN = 481, LOAD = 482, LOCAL = 483, LOCALTIME = 484, LOCALTIMESTAMP = 485, LOCATION = 486, LOCK_P = 487, LOCKED = 488, LOGGED = 489, MAPPING = 490, MATCH = 491, MATERIALIZED = 492, MAXVALUE = 493, METHOD = 494, MINUTE_P = 495, MINVALUE = 496, MODE = 497, MONTH_P = 498, MOVE = 499, NAME_P = 500, NAMES = 501, NATIONAL = 502, NATURAL = 503, NCHAR = 504, NEW = 505, NEXT = 506, NO = 507, NONE = 508, NOT = 509, NOTHING = 510, NOTIFY = 511, NOTNULL = 512, NOWAIT = 513, NULL_P = 514, NULLIF = 515, NULLS_P = 516, NUMERIC = 517, OBJECT_P = 518, OF = 519, OFF = 520, OFFSET = 521, OIDS = 522, OLD = 523, ON = 524, ONLY = 525, OPERATOR = 526, OPTION = 527, OPTIONS = 528, OR = 529, ORDER = 530, ORDINALITY = 531, OTHERS = 532, OUT_P = 533, OUTER_P = 534, OVER = 535, OVERLAPS = 536, OVERLAY = 537, OVERRIDING = 538, OWNED = 539, OWNER = 540, PARALLEL = 541, PARSER = 542, PARTIAL = 543, PARTITION = 544, PASSING = 545, PASSWORD = 546, PLACING = 547, PLANS = 548, POLICY = 549, POSITION = 550, PRECEDING = 551, PRECISION = 552, PRESERVE = 553, PREPARE = 554, PREPARED = 555, PRIMARY = 556, PRIOR = 557, PRIVILEGES = 558, PROCEDURAL = 559, PROCEDURE = 560, PROCEDURES = 561, PROGRAM = 562, PUBLICATION = 563, QUOTE = 564, RANGE = 565, READ = 566, REAL = 567, REASSIGN = 568, RECHECK = 569, RECURSIVE = 570, REF = 571, REFERENCES = 572, REFERENCING = 573, REFRESH = 574, REINDEX = 575, RELATIVE_P = 576, RELEASE = 577, RENAME = 578, REPEATABLE = 579, REPLACE = 580, REPLICA = 581, RESET = 582, RESTART = 583, RESTRICT = 584, RETURNING = 585, RETURNS = 586, REVOKE = 587, RIGHT = 588, ROLE = 589, ROLLBACK = 590, ROLLUP = 591, ROUTINE = 592, ROUTINES = 593, ROW = 594, ROWS = 595, RULE = 596, SAVEPOINT = 597, SCHEMA = 598, SCHEMAS = 599, SCROLL = 600, SEARCH = 601, SECOND_P = 602, SECURITY = 603, SELECT = 604, SEQUENCE = 605, SEQUENCES = 606, SERIALIZABLE = 607, SERVER = 608, SESSION = 609, SESSION_USER = 610, SET = 611, SETS = 612, SETOF = 613, SHARE = 614, SHOW = 615, SIMILAR = 616, SIMPLE = 617, SKIP = 618, SMALLINT = 619, SNAPSHOT = 620, SOME = 621, SQL_P = 622, STABLE = 623, STANDALONE_P = 624, START = 625, STATEMENT = 626, STATISTICS = 627, STDIN = 628, STDOUT = 629, STORAGE = 630, STRICT_P = 631, STRIP_P = 632, SUBSCRIPTION = 633, SUBSTRING = 634, SYMMETRIC = 635, SYSID = 636, SYSTEM_P = 637, TABLE = 638, TABLES = 639, TABLESAMPLE = 640, TABLESPACE = 641, TEMP = 642, TEMPLATE = 643, TEMPORARY = 644, TEXT_P = 645, THEN = 646, TIES = 647, TIME = 648, TIMESTAMP = 649, TO = 650, TRAILING = 651, TRANSACTION = 652, TRANSFORM = 653, TREAT = 654, TRIGGER = 655, TRIM = 656, TRUE_P = 657, TRUNCATE = 658, TRUSTED = 659, TYPE_P = 660, TYPES_P = 661, UNBOUNDED = 662, UNCOMMITTED = 663, UNENCRYPTED = 664, UNION = 665, UNIQUE = 666, UNKNOWN = 667, UNLISTEN = 668, UNLOGGED = 669, UNTIL = 670, UPDATE = 671, USER = 672, USING = 673, VACUUM = 674, VALID = 675, VALIDATE = 676, VALIDATOR = 677, VALUE_P = 678, VALUES = 679, VARCHAR = 680, VARIADIC = 681, VARYING = 682, VERBOSE = 683, VERSION_P = 684, VIEW = 685, VIEWS = 686, VOLATILE = 687, WHEN = 688, WHERE = 689, WHITESPACE_P = 690, WINDOW = 691, WITH = 692, WITHIN = 693, WITHOUT = 694, WORK = 695, WRAPPER = 696, WRITE = 697, XML_P = 698, XMLATTRIBUTES = 699, XMLCONCAT = 700, XMLELEMENT = 701, XMLEXISTS = 702, XMLFOREST = 703, XMLNAMESPACES = 704, XMLPARSE = 705, XMLPI = 706, XMLROOT = 707, XMLSERIALIZE = 708, XMLTABLE = 709, YEAR_P = 710, YES_P = 711, ZONE = 712, NOT_LA = 713, NULLS_LA = 714, WITH_LA = 715, POSTFIXOP = 716, UMINUS = 717 }; #endif /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { #line 202 "gram.y" /* yacc.c:352 */ core_YYSTYPE core_yystype; /* these fields must match core_YYSTYPE: */ int ival; char *str; const char *keyword; char chr; bool boolean; JoinType jtype; DropBehavior dbehavior; OnCommitAction oncommit; List *list; Node *node; Value *value; ObjectType objtype; TypeName *typnam; FunctionParameter *fun_param; FunctionParameterMode fun_param_mode; ObjectWithArgs *objwithargs; DefElem *defelt; SortBy *sortby; WindowDef *windef; JoinExpr *jexpr; IndexElem *ielem; Alias *alias; RangeVar *range; IntoClause *into; WithClause *with; InferClause *infer; OnConflictClause *onconflict; A_Indices *aind; ResTarget *target; struct PrivTarget *privtarget; AccessPriv *accesspriv; struct ImportQual *importqual; InsertStmt *istmt; VariableSetStmt *vsetstmt; PartitionElem *partelem; PartitionSpec *partspec; PartitionBoundSpec *partboundspec; RoleSpec *rolespec; #line 818 "gram.c" /* yacc.c:352 */ }; typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 #endif /* Location type. */ #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED typedef struct YYLTYPE YYLTYPE; struct YYLTYPE { int first_line; int first_column; int last_line; int last_column; }; # define YYLTYPE_IS_DECLARED 1 # define YYLTYPE_IS_TRIVIAL 1 #endif int base_yyparse (core_yyscan_t yyscanner); #endif /* !YY_BASE_YY_GRAM_H_INCLUDED */ #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 yytype_uint16; #endif #ifdef YYTYPE_INT16 typedef YYTYPE_INT16 yytype_int16; #else typedef short 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 /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else # define YYSIZE_T unsigned # endif #endif #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* 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 /* 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__ && ! defined __ICC && 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 /* INFRINGES ON USER NAME SPACE */ # elif defined _AIX # define YYSTACK_ALLOC __alloca # elif defined _MSC_VER # include /* INFRINGES ON USER NAME SPACE */ # define alloca _alloca # else # define YYSTACK_ALLOC alloca # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include /* 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 /* 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 YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \ && 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; YYLTYPE yyls_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) + sizeof (YYLTYPE)) \ + 2 * 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 828 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 102007 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 480 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 668 /* YYNRULES -- Number of rules. */ #define YYNRULES 2728 /* YYNSTATES -- Number of states. */ #define YYNSTATES 5477 #define YYUNDEFTOK 2 #define YYMAXUTOK 717 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ #define YYTRANSLATE(YYX) \ ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ static const yytype_uint16 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, 469, 2, 2, 474, 475, 467, 465, 478, 466, 476, 468, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 479, 477, 461, 463, 462, 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, 472, 2, 473, 470, 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, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 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, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 464, 471 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { 0, 784, 784, 800, 812, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 947, 956, 971, 982, 983, 984, 993, 994, 998, 999, 1003, 1008, 1012, 1022, 1030, 1034, 1038, 1043, 1047, 1095, 1097, 1101, 1105, 1109, 1113, 1127, 1145, 1153, 1164, 1165, 1169, 1177, 1185, 1193, 1214, 1221, 1228, 1235, 1242, 1249, 1266, 1284, 1295, 1296, 1307, 1317, 1327, 1342, 1360, 1361, 1365, 1372, 1380, 1381, 1382, 1383, 1384, 1385, 1399, 1405, 1411, 1420, 1428, 1436, 1440, 1448, 1456, 1463, 1473, 1474, 1482, 1493, 1501, 1509, 1520, 1528, 1536, 1543, 1552, 1562, 1563, 1567, 1568, 1571, 1573, 1577, 1578, 1579, 1580, 1584, 1585, 1586, 1592, 1604, 1608, 1612, 1627, 1634, 1635, 1636, 1640, 1641, 1642, 1646, 1647, 1651, 1655, 1656, 1663, 1670, 1680, 1687, 1697, 1698, 1703, 1704, 1709, 1715, 1721, 1727, 1733, 1743, 1753, 1754, 1758, 1759, 1767, 1782, 1788, 1794, 1800, 1806, 1825, 1834, 1843, 1852, 1861, 1872, 1883, 1892, 1901, 1910, 1921, 1932, 1941, 1950, 1959, 1968, 1977, 1986, 1997, 2011, 2012, 2017, 2030, 2046, 2062, 2071, 2080, 2089, 2098, 2107, 2115, 2123, 2132, 2148, 2157, 2166, 2175, 2192, 2201, 2210, 2219, 2229, 2242, 2257, 2266, 2274, 2289, 2297, 2307, 2317, 2324, 2331, 2339, 2347, 2354, 2361, 2369, 2377, 2385, 2392, 2399, 2407, 2414, 2421, 2429, 2437, 2445, 2453, 2461, 2469, 2479, 2486, 2494, 2502, 2510, 2518, 2526, 2533, 2540, 2547, 2553, 2563, 2564, 2568, 2569, 2570, 2574, 2582, 2586, 2587, 2591, 2598, 2605, 2612, 2622, 2625, 2626, 2630, 2631, 2636, 2640, 2644, 2649, 2656, 2658, 2663, 2667, 2671, 2682, 2690, 2743, 2756, 2770, 2782, 2789, 2793, 2800, 2801, 2802, 2803, 2804, 2808, 2809, 2814, 2815, 2820, 2830, 2840, 2860, 2873, 2874, 2879, 2888, 2898, 2908, 2934, 2940, 2973, 3002, 3024, 3025, 3029, 3030, 3039, 3040, 3041, 3044, 3045, 3050, 3051, 3055, 3059, 3063, 3067, 3071, 3075, 3079, 3083, 3087, 3091, 3095, 3099, 3103, 3107, 3116, 3120, 3124, 3128, 3132, 3136, 3140, 3141, 3146, 3150, 3157, 3164, 3165, 3166, 3167, 3168, 3172, 3176, 3184, 3195, 3212, 3230, 3249, 3268, 3287, 3319, 3320, 3321, 3322, 3323, 3330, 3337, 3338, 3342, 3343, 3347, 3348, 3352, 3356, 3363, 3367, 3374, 3375, 3376, 3380, 3381, 3384, 3405, 3423, 3444, 3445, 3449, 3456, 3457, 3458, 3489, 3496, 3503, 3514, 3525, 3537, 3546, 3555, 3573, 3574, 3593, 3600, 3607, 3614, 3625, 3636, 3637, 3638, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3658, 3665, 3669, 3682, 3698, 3713, 3729, 3744, 3763, 3784, 3785, 3789, 3790, 3794, 3795, 3798, 3804, 3805, 3808, 3812, 3820, 3825, 3831, 3832, 3836, 3841, 3848, 3849, 3859, 3861, 3863, 3865, 3868, 3871, 3874, 3878, 3879, 3880, 3881, 3882, 3885, 3886, 3890, 3891, 3894, 3906, 3907, 3910, 3911, 3914, 3925, 3936, 3950, 3951, 3952, 3953, 3956, 3957, 3958, 3959, 3962, 3963, 3966, 3967, 3970, 3988, 4000, 4025, 4038, 4054, 4068, 4069, 4070, 4082, 4095, 4111, 4124, 4125, 4137, 4157, 4167, 4180, 4188, 4199, 4200, 4203, 4204, 4207, 4208, 4211, 4215, 4219, 4223, 4227, 4231, 4235, 4239, 4243, 4247, 4251, 4256, 4260, 4264, 4270, 4271, 4275, 4276, 4277, 4282, 4285, 4286, 4298, 4310, 4325, 4326, 4334, 4335, 4339, 4340, 4344, 4345, 4349, 4350, 4354, 4364, 4377, 4378, 4388, 4399, 4400, 4413, 4420, 4437, 4445, 4456, 4459, 4463, 4467, 4471, 4475, 4487, 4497, 4500, 4504, 4517, 4526, 4535, 4544, 4553, 4562, 4571, 4580, 4589, 4598, 4607, 4616, 4625, 4634, 4643, 4652, 4661, 4670, 4679, 4688, 4697, 4706, 4715, 4724, 4733, 4742, 4751, 4760, 4778, 4789, 4790, 4791, 4792, 4796, 4797, 4801, 4802, 4812, 4820, 4832, 4833, 4837, 4841, 4849, 4853, 4857, 4864, 4868, 4873, 4878, 4885, 4892, 4897, 4907, 4919, 4934, 4935, 4940, 4941, 4945, 4946, 4956, 4965, 4973, 4990, 5010, 5030, 5051, 5082, 5091, 5112, 5127, 5128, 5132, 5140, 5155, 5164, 5176, 5177, 5189, 5197, 5214, 5238, 5255, 5269, 5270, 5274, 5275, 5279, 5280, 5284, 5285, 5289, 5303, 5307, 5308, 5312, 5313, 5314, 5315, 5316, 5326, 5344, 5365, 5391, 5392, 5393, 5397, 5399, 5421, 5423, 5425, 5427, 5429, 5434, 5435, 5439, 5440, 5444, 5455, 5456, 5460, 5469, 5473, 5477, 5482, 5492, 5493, 5497, 5498, 5502, 5503, 5507, 5508, 5512, 5513, 5514, 5518, 5522, 5523, 5524, 5528, 5529, 5534, 5535, 5562, 5563, 5564, 5565, 5566, 5567, 5580, 5590, 5604, 5606, 5611, 5616, 5618, 5623, 5633, 5634, 5635, 5636, 5648, 5668, 5690, 5700, 5711, 5721, 5731, 5742, 5751, 5758, 5765, 5774, 5783, 5792, 5801, 5810, 5820, 5829, 5841, 5844, 5845, 5848, 5852, 5859, 5860, 5861, 5862, 5863, 5864, 5867, 5870, 5871, 5879, 5886, 5887, 5890, 5892, 5903, 5914, 5925, 5936, 5949, 5950, 5966, 5981, 5982, 5986, 5998, 6008, 6016, 6025, 6034, 6035, 6038, 6039, 6042, 6043, 6044, 6047, 6061, 6066, 6076, 6085, 6097, 6098, 6102, 6110, 6122, 6132, 6145, 6155, 6177, 6187, 6205, 6215, 6225, 6235, 6245, 6255, 6265, 6275, 6285, 6295, 6305, 6315, 6329, 6330, 6331, 6332, 6333, 6334, 6335, 6336, 6337, 6338, 6339, 6340, 6341, 6346, 6347, 6348, 6349, 6350, 6351, 6352, 6357, 6358, 6359, 6363, 6364, 6367, 6368, 6371, 6373, 6378, 6379, 6390, 6401, 6402, 6403, 6437, 6445, 6453, 6461, 6469, 6477, 6485, 6493, 6501, 6514, 6522, 6530, 6538, 6546, 6554, 6562, 6570, 6578, 6586, 6598, 6599, 6600, 6601, 6602, 6603, 6604, 6605, 6606, 6607, 6608, 6609, 6610, 6611, 6616, 6617, 6618, 6619, 6620, 6621, 6622, 6623, 6624, 6625, 6626, 6627, 6631, 6632, 6646, 6656, 6666, 6676, 6686, 6696, 6706, 6716, 6726, 6738, 6739, 6744, 6745, 6746, 6747, 6748, 6749, 6754, 6755, 6756, 6757, 6758, 6759, 6760, 6761, 6764, 6765, 6775, 6781, 6789, 6797, 6805, 6813, 6821, 6829, 6837, 6845, 6853, 6861, 6869, 6877, 6885, 6893, 6901, 6909, 6919, 6920, 6923, 6924, 6934, 6950, 6964, 6990, 6992, 6994, 6996, 7003, 7012, 7013, 7016, 7023, 7030, 7037, 7051, 7059, 7067, 7075, 7083, 7091, 7099, 7107, 7115, 7123, 7131, 7139, 7147, 7155, 7163, 7171, 7179, 7187, 7195, 7203, 7215, 7216, 7220, 7221, 7226, 7227, 7237, 7250, 7260, 7272, 7273, 7276, 7277, 7287, 7297, 7298, 7302, 7306, 7310, 7321, 7334, 7348, 7365, 7366, 7367, 7368, 7369, 7370, 7382, 7410, 7441, 7442, 7446, 7447, 7451, 7452, 7456, 7457, 7460, 7461, 7469, 7480, 7491, 7504, 7505, 7508, 7509, 7512, 7513, 7516, 7517, 7520, 7521, 7522, 7525, 7526, 7527, 7543, 7555, 7568, 7580, 7595, 7596, 7599, 7600, 7604, 7605, 7609, 7610, 7615, 7627, 7634, 7641, 7656, 7657, 7661, 7662, 7677, 7686, 7695, 7704, 7713, 7725, 7726, 7727, 7728, 7729, 7735, 7739, 7754, 7755, 7761, 7771, 7775, 7780, 7788, 7829, 7833, 7837, 7841, 7849, 7850, 7854, 7864, 7865, 7871, 7872, 7879, 7883, 7887, 7891, 7895, 7899, 7903, 7907, 7911, 7915, 7919, 7923, 7927, 7931, 7935, 7940, 7947, 7951, 7955, 7959, 7963, 7969, 7970, 7977, 7978, 7982, 7983, 7986, 7998, 8002, 8017, 8025, 8033, 8045, 8046, 8051, 8052, 8069, 8079, 8089, 8099, 8109, 8119, 8132, 8142, 8155, 8165, 8178, 8186, 8188, 8190, 8195, 8197, 8202, 8203, 8208, 8226, 8235, 8236, 8240, 8244, 8256, 8267, 8278, 8291, 8292, 8293, 8297, 8309, 8310, 8320, 8332, 8336, 8340, 8344, 8351, 8371, 8380, 8389, 8398, 8409, 8410, 8413, 8414, 8415, 8418, 8419, 8422, 8432, 8441, 8458, 8467, 8476, 8485, 8494, 8503, 8512, 8521, 8530, 8539, 8548, 8557, 8566, 8576, 8586, 8595, 8604, 8613, 8622, 8631, 8640, 8650, 8660, 8670, 8680, 8690, 8700, 8710, 8720, 8730, 8740, 8750, 8760, 8771, 8782, 8793, 8804, 8814, 8824, 8835, 8846, 8856, 8866, 8874, 8883, 8892, 8901, 8910, 8919, 8928, 8937, 8946, 8955, 8969, 8970, 8973, 8974, 8984, 8992, 9000, 9008, 9017, 9025, 9042, 9051, 9060, 9069, 9078, 9087, 9096, 9105, 9114, 9123, 9132, 9141, 9150, 9159, 9168, 9177, 9186, 9195, 9204, 9213, 9222, 9231, 9240, 9249, 9258, 9267, 9276, 9294, 9303, 9304, 9307, 9309, 9315, 9316, 9317, 9318, 9319, 9328, 9336, 9344, 9352, 9360, 9368, 9376, 9384, 9392, 9400, 9408, 9416, 9424, 9432, 9440, 9448, 9456, 9464, 9472, 9480, 9488, 9496, 9504, 9512, 9530, 9549, 9550, 9554, 9558, 9578, 9585, 9593, 9601, 9618, 9631, 9635, 9642, 9651, 9660, 9669, 9678, 9688, 9698, 9716, 9724, 9740, 9757, 9758, 9759, 9764, 9770, 9779, 9780, 9781, 9782, 9783, 9787, 9788, 9791, 9792, 9793, 9794, 9798, 9799, 9800, 9812, 9822, 9823, 9826, 9835, 9841, 9860, 9867, 9874, 9881, 9888, 9895, 9902, 9909, 9916, 9923, 9930, 9937, 9944, 9951, 9960, 9961, 9962, 9966, 9969, 9972, 9975, 9978, 9985, 9987, 9989, 9994, 9996, 10008, 10021, 10034, 10052, 10073, 10074, 10075, 10076, 10086, 10102, 10112, 10113, 10117, 10118, 10122, 10126, 10130, 10148, 10149, 10150, 10151, 10152, 10153, 10154, 10161, 10162, 10173, 10180, 10187, 10198, 10215, 10222, 10238, 10255, 10261, 10277, 10290, 10299, 10307, 10315, 10324, 10335, 10346, 10356, 10357, 10368, 10378, 10389, 10400, 10411, 10422, 10431, 10443, 10444, 10458, 10481, 10489, 10498, 10509, 10510, 10522, 10537, 10547, 10548, 10552, 10553, 10554, 10555, 10556, 10568, 10577, 10587, 10588, 10592, 10596, 10597, 10601, 10602, 10606, 10607, 10610, 10611, 10614, 10615, 10619, 10620, 10624, 10631, 10633, 10638, 10639, 10652, 10659, 10669, 10676, 10686, 10687, 10688, 10689, 10690, 10691, 10692, 10693, 10694, 10698, 10702, 10709, 10716, 10717, 10721, 10722, 10723, 10733, 10743, 10744, 10748, 10749, 10750, 10751, 10761, 10768, 10785, 10804, 10805, 10815, 10821, 10827, 10833, 10849, 10867, 10871, 10879, 10885, 10892, 10898, 10905, 10914, 10915, 10919, 10921, 10926, 10937, 10947, 10957, 10963, 10972, 10981, 10987, 10988, 10999, 11013, 11014, 11025, 11036, 11037, 11040, 11041, 11042, 11043, 11044, 11045, 11046, 11047, 11050, 11051, 11055, 11056, 11057, 11068, 11086, 11087, 11091, 11096, 11120, 11131, 11132, 11142, 11153, 11156, 11157, 11158, 11159, 11160, 11163, 11164, 11165, 11213, 11214, 11218, 11219, 11234, 11235, 11242, 11250, 11258, 11266, 11274, 11282, 11293, 11294, 11321, 11335, 11350, 11351, 11370, 11374, 11378, 11395, 11402, 11409, 11419, 11420, 11423, 11435, 11436, 11440, 11452, 11460, 11465, 11470, 11475, 11480, 11488, 11496, 11501, 11506, 11513, 11514, 11518, 11519, 11520, 11527, 11528, 11532, 11533, 11537, 11538, 11542, 11546, 11547, 11550, 11559, 11572, 11573, 11574, 11575, 11579, 11580, 11584, 11586, 11602, 11604, 11609, 11612, 11617, 11618, 11626, 11646, 11647, 11649, 11654, 11655, 11659, 11660, 11663, 11664, 11689, 11690, 11694, 11695, 11699, 11700, 11701, 11702, 11703, 11707, 11720, 11727, 11734, 11741, 11742, 11746, 11747, 11751, 11752, 11756, 11757, 11761, 11772, 11773, 11774, 11775, 11779, 11780, 11790, 11796, 11814, 11815, 11819, 11820, 11826, 11831, 11839, 11846, 11854, 11860, 11867, 11902, 11927, 11931, 11957, 11961, 11973, 11986, 12000, 12011, 12026, 12032, 12037, 12043, 12050, 12051, 12059, 12063, 12067, 12073, 12080, 12085, 12086, 12087, 12088, 12092, 12093, 12105, 12106, 12111, 12118, 12125, 12132, 12143, 12144, 12157, 12161, 12168, 12181, 12194, 12195, 12210, 12220, 12232, 12237, 12238, 12241, 12242, 12245, 12246, 12251, 12252, 12257, 12258, 12266, 12271, 12272, 12276, 12280, 12286, 12310, 12320, 12333, 12334, 12338, 12352, 12409, 12423, 12425, 12430, 12432, 12434, 12436, 12441, 12443, 12448, 12456, 12476, 12481, 12488, 12493, 12499, 12504, 12513, 12515, 12518, 12522, 12523, 12524, 12525, 12526, 12527, 12532, 12552, 12553, 12554, 12555, 12566, 12572, 12580, 12581, 12587, 12592, 12597, 12602, 12607, 12612, 12617, 12622, 12628, 12634, 12640, 12647, 12669, 12678, 12682, 12690, 12694, 12702, 12714, 12735, 12739, 12745, 12749, 12762, 12770, 12780, 12782, 12784, 12786, 12788, 12790, 12795, 12796, 12803, 12812, 12820, 12829, 12840, 12848, 12849, 12850, 12854, 12856, 12858, 12860, 12862, 12864, 12866, 12871, 12876, 12882, 12890, 12895, 12902, 12909, 12913, 12917, 12953, 12954, 12956, 12964, 12979, 12981, 12983, 12985, 12987, 12989, 12991, 12993, 12995, 12997, 12999, 13001, 13003, 13005, 13008, 13010, 13012, 13015, 13017, 13019, 13021, 13024, 13029, 13037, 13042, 13050, 13055, 13063, 13068, 13077, 13085, 13093, 13101, 13119, 13127, 13135, 13143, 13151, 13167, 13175, 13183, 13191, 13199, 13207, 13215, 13219, 13223, 13227, 13231, 13239, 13247, 13255, 13263, 13283, 13305, 13316, 13323, 13339, 13344, 13350, 13375, 13377, 13379, 13381, 13383, 13385, 13387, 13389, 13391, 13393, 13395, 13397, 13399, 13401, 13403, 13405, 13407, 13409, 13411, 13413, 13417, 13421, 13425, 13429, 13434, 13450, 13451, 13452, 13467, 13501, 13503, 13505, 13516, 13540, 13551, 13562, 13569, 13579, 13589, 13598, 13602, 13608, 13615, 13622, 13632, 13639, 13667, 13702, 13713, 13714, 13721, 13727, 13731, 13735, 13739, 13743, 13747, 13751, 13755, 13759, 13763, 13767, 13771, 13775, 13779, 13783, 13787, 13789, 13793, 13802, 13807, 13814, 13829, 13836, 13840, 13844, 13848, 13852, 13859, 13867, 13875, 13879, 13883, 13887, 13891, 13895, 13901, 13905, 13914, 13918, 13922, 13927, 13941, 13943, 13947, 13949, 13951, 13954, 13957, 13960, 13961, 13964, 13972, 13982, 13983, 13986, 13987, 13988, 13993, 13997, 14001, 14005, 14016, 14017, 14021, 14022, 14030, 14031, 14035, 14036, 14041, 14049, 14051, 14065, 14068, 14095, 14096, 14099, 14100, 14108, 14115, 14122, 14130, 14139, 14156, 14201, 14209, 14217, 14225, 14233, 14244, 14245, 14246, 14247, 14248, 14262, 14263, 14264, 14267, 14268, 14271, 14274, 14275, 14276, 14279, 14280, 14283, 14284, 14285, 14286, 14287, 14288, 14289, 14290, 14291, 14292, 14293, 14294, 14297, 14299, 14304, 14306, 14311, 14313, 14315, 14317, 14319, 14321, 14333, 14337, 14344, 14348, 14354, 14358, 14367, 14378, 14379, 14382, 14386, 14390, 14396, 14397, 14402, 14406, 14413, 14414, 14415, 14416, 14417, 14418, 14419, 14420, 14430, 14434, 14441, 14448, 14449, 14465, 14469, 14474, 14478, 14493, 14498, 14502, 14505, 14508, 14509, 14510, 14513, 14520, 14530, 14544, 14545, 14549, 14560, 14561, 14564, 14565, 14568, 14572, 14579, 14583, 14587, 14595, 14606, 14607, 14611, 14612, 14616, 14617, 14620, 14621, 14631, 14632, 14636, 14637, 14640, 14656, 14664, 14672, 14694, 14695, 14706, 14710, 14737, 14739, 14744, 14747, 14750, 14752, 14754, 14756, 14766, 14768, 14779, 14783, 14787, 14791, 14795, 14804, 14811, 14843, 14847, 14853, 14860, 14864, 14868, 14874, 14875, 14877, 14878, 14879, 14883, 14916, 14943, 14947, 14953, 14955, 14972, 14973, 14974, 14979, 14980, 14981, 14986, 14987, 14988, 14989, 14995, 14996, 14997, 14998, 14999, 15019, 15020, 15021, 15022, 15023, 15024, 15025, 15026, 15027, 15028, 15029, 15030, 15031, 15032, 15033, 15034, 15035, 15036, 15037, 15038, 15039, 15040, 15041, 15042, 15043, 15044, 15045, 15046, 15047, 15048, 15049, 15050, 15051, 15052, 15053, 15054, 15055, 15056, 15057, 15058, 15059, 15060, 15061, 15062, 15063, 15064, 15065, 15066, 15067, 15068, 15069, 15070, 15071, 15072, 15073, 15074, 15075, 15076, 15077, 15078, 15079, 15080, 15081, 15082, 15083, 15084, 15085, 15086, 15087, 15088, 15089, 15090, 15091, 15092, 15093, 15094, 15095, 15096, 15097, 15098, 15099, 15100, 15101, 15102, 15103, 15104, 15105, 15106, 15107, 15108, 15109, 15110, 15111, 15112, 15113, 15114, 15115, 15116, 15117, 15118, 15119, 15120, 15121, 15122, 15123, 15124, 15125, 15126, 15127, 15128, 15129, 15130, 15131, 15132, 15133, 15134, 15135, 15136, 15137, 15138, 15139, 15140, 15141, 15142, 15143, 15144, 15145, 15146, 15147, 15148, 15149, 15150, 15151, 15152, 15153, 15154, 15155, 15156, 15157, 15158, 15159, 15160, 15161, 15162, 15163, 15164, 15165, 15166, 15167, 15168, 15169, 15170, 15171, 15172, 15173, 15174, 15175, 15176, 15177, 15178, 15179, 15180, 15181, 15182, 15183, 15184, 15185, 15186, 15187, 15188, 15189, 15190, 15191, 15192, 15193, 15194, 15195, 15196, 15197, 15198, 15199, 15200, 15201, 15202, 15203, 15204, 15205, 15206, 15207, 15208, 15209, 15210, 15211, 15212, 15213, 15214, 15215, 15216, 15217, 15218, 15219, 15220, 15221, 15222, 15223, 15224, 15225, 15226, 15227, 15228, 15229, 15230, 15231, 15232, 15233, 15234, 15235, 15236, 15237, 15238, 15239, 15240, 15241, 15242, 15243, 15244, 15245, 15246, 15247, 15248, 15249, 15250, 15251, 15252, 15253, 15254, 15255, 15256, 15257, 15258, 15259, 15260, 15261, 15262, 15263, 15264, 15265, 15266, 15267, 15268, 15269, 15270, 15271, 15272, 15273, 15274, 15275, 15276, 15277, 15278, 15279, 15280, 15281, 15282, 15283, 15284, 15285, 15286, 15287, 15288, 15289, 15290, 15291, 15292, 15293, 15294, 15295, 15296, 15297, 15298, 15299, 15300, 15301, 15302, 15303, 15304, 15305, 15306, 15307, 15308, 15322, 15323, 15324, 15325, 15326, 15327, 15328, 15329, 15330, 15331, 15332, 15333, 15334, 15335, 15336, 15337, 15338, 15339, 15340, 15341, 15342, 15343, 15344, 15345, 15346, 15347, 15348, 15349, 15350, 15351, 15352, 15353, 15354, 15355, 15356, 15357, 15358, 15359, 15360, 15361, 15362, 15363, 15364, 15365, 15366, 15367, 15368, 15369, 15370, 15371, 15385, 15386, 15387, 15388, 15389, 15390, 15391, 15392, 15393, 15394, 15395, 15396, 15397, 15398, 15399, 15400, 15401, 15402, 15403, 15404, 15405, 15406, 15407, 15417, 15418, 15419, 15420, 15421, 15422, 15423, 15424, 15425, 15426, 15427, 15428, 15429, 15430, 15431, 15432, 15433, 15434, 15435, 15436, 15437, 15438, 15439, 15440, 15441, 15442, 15443, 15444, 15445, 15446, 15447, 15448, 15449, 15450, 15451, 15452, 15453, 15454, 15455, 15456, 15457, 15458, 15459, 15460, 15461, 15462, 15463, 15464, 15465, 15466, 15467, 15468, 15469, 15470, 15471, 15472, 15473, 15474, 15475, 15476, 15477, 15478, 15479, 15480, 15481, 15482, 15483, 15484, 15485, 15486, 15487, 15488, 15489, 15490, 15491, 15492, 15493 }; #endif #if YYDEBUG || YYERROR_VERBOSE || 0 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { "$end", "error", "$undefined", "IDENT", "FCONST", "SCONST", "BCONST", "XCONST", "Op", "ICONST", "PARAM", "TYPECAST", "DOT_DOT", "COLON_EQUALS", "EQUALS_GREATER", "LESS_EQUALS", "GREATER_EQUALS", "NOT_EQUALS", "ABORT_P", "ABSOLUTE_P", "ACCESS", "ACTION", "ADD_P", "ADMIN", "AFTER", "AGGREGATE", "ALL", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", "AND", "ANY", "ARRAY", "AS", "ASC", "ASSERTION", "ASSIGNMENT", "ASYMMETRIC", "AT", "ATTACH", "ATTRIBUTE", "AUTHORIZATION", "BACKWARD", "BEFORE", "BEGIN_P", "BETWEEN", "BIGINT", "BINARY", "BIT", "BOOLEAN_P", "BOTH", "BY", "CACHE", "CALL", "CALLED", "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG_P", "CHAIN", "CHAR_P", "CHARACTER", "CHARACTERISTICS", "CHECK", "CHECKPOINT", "CLASS", "CLOSE", "CLUSTER", "COALESCE", "COLLATE", "COLLATION", "COLUMN", "COLUMNS", "COMMENT", "COMMENTS", "COMMIT", "COMMITTED", "CONCURRENTLY", "CONFIGURATION", "CONFLICT", "CONNECTION", "CONSTRAINT", "CONSTRAINTS", "CONTENT_P", "CONTINUE_P", "CONVERSION_P", "COPY", "COST", "CREATE", "CROSS", "CSV", "CUBE", "CURRENT_P", "CURRENT_CATALOG", "CURRENT_DATE", "CURRENT_ROLE", "CURRENT_SCHEMA", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", "CURSOR", "CYCLE", "DATA_P", "DATABASE", "DAY_P", "DEALLOCATE", "DEC", "DECIMAL_P", "DECLARE", "DEFAULT", "DEFAULTS", "DEFERRABLE", "DEFERRED", "DEFINER", "DELETE_P", "DELIMITER", "DELIMITERS", "DEPENDS", "DESC", "DETACH", "DICTIONARY", "DISABLE_P", "DISCARD", "DISTINCT", "DO", "DOCUMENT_P", "DOMAIN_P", "DOUBLE_P", "DROP", "EACH", "ELSE", "ENABLE_P", "ENCODING", "ENCRYPTED", "END_P", "ENUM_P", "ESCAPE", "EVENT", "EXCEPT", "EXCLUDE", "EXCLUDING", "EXCLUSIVE", "EXECUTE", "EXISTS", "EXPLAIN", "EXTENSION", "EXTERNAL", "EXTRACT", "FALSE_P", "FAMILY", "FETCH", "FILTER", "FIRST_P", "FLOAT_P", "FOLLOWING", "FOR", "FORCE", "FOREIGN", "FORWARD", "FREEZE", "FROM", "FULL", "FUNCTION", "FUNCTIONS", "GENERATED", "GLOBAL", "GRANT", "GRANTED", "GREATEST", "GROUP_P", "GROUPING", "GROUPS", "HANDLER", "HAVING", "HEADER_P", "HOLD", "HOUR_P", "IDENTITY_P", "IF_P", "ILIKE", "IMMEDIATE", "IMMUTABLE", "IMPLICIT_P", "IMPORT_P", "IN_P", "INCLUDE", "INCLUDING", "INCREMENT", "INDEX", "INDEXES", "INHERIT", "INHERITS", "INITIALLY", "INLINE_P", "INNER_P", "INOUT", "INPUT_P", "INSENSITIVE", "INSERT", "INSTEAD", "INT_P", "INTEGER", "INTERSECT", "INTERVAL", "INTO", "INVOKER", "IS", "ISNULL", "ISOLATION", "JOIN", "KEY", "LABEL", "LANGUAGE", "LARGE_P", "LAST_P", "LATERAL_P", "LEADING", "LEAKPROOF", "LEAST", "LEFT", "LEVEL", "LIKE", "LIMIT", "LISTEN", "LOAD", "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", "LOCATION", "LOCK_P", "LOCKED", "LOGGED", "MAPPING", "MATCH", "MATERIALIZED", "MAXVALUE", "METHOD", "MINUTE_P", "MINVALUE", "MODE", "MONTH_P", "MOVE", "NAME_P", "NAMES", "NATIONAL", "NATURAL", "NCHAR", "NEW", "NEXT", "NO", "NONE", "NOT", "NOTHING", "NOTIFY", "NOTNULL", "NOWAIT", "NULL_P", "NULLIF", "NULLS_P", "NUMERIC", "OBJECT_P", "OF", "OFF", "OFFSET", "OIDS", "OLD", "ON", "ONLY", "OPERATOR", "OPTION", "OPTIONS", "OR", "ORDER", "ORDINALITY", "OTHERS", "OUT_P", "OUTER_P", "OVER", "OVERLAPS", "OVERLAY", "OVERRIDING", "OWNED", "OWNER", "PARALLEL", "PARSER", "PARTIAL", "PARTITION", "PASSING", "PASSWORD", "PLACING", "PLANS", "POLICY", "POSITION", "PRECEDING", "PRECISION", "PRESERVE", "PREPARE", "PREPARED", "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", "PROCEDURES", "PROGRAM", "PUBLICATION", "QUOTE", "RANGE", "READ", "REAL", "REASSIGN", "RECHECK", "RECURSIVE", "REF", "REFERENCES", "REFERENCING", "REFRESH", "REINDEX", "RELATIVE_P", "RELEASE", "RENAME", "REPEATABLE", "REPLACE", "REPLICA", "RESET", "RESTART", "RESTRICT", "RETURNING", "RETURNS", "REVOKE", "RIGHT", "ROLE", "ROLLBACK", "ROLLUP", "ROUTINE", "ROUTINES", "ROW", "ROWS", "RULE", "SAVEPOINT", "SCHEMA", "SCHEMAS", "SCROLL", "SEARCH", "SECOND_P", "SECURITY", "SELECT", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER", "SESSION", "SESSION_USER", "SET", "SETS", "SETOF", "SHARE", "SHOW", "SIMILAR", "SIMPLE", "SKIP", "SMALLINT", "SNAPSHOT", "SOME", "SQL_P", "STABLE", "STANDALONE_P", "START", "STATEMENT", "STATISTICS", "STDIN", "STDOUT", "STORAGE", "STRICT_P", "STRIP_P", "SUBSCRIPTION", "SUBSTRING", "SYMMETRIC", "SYSID", "SYSTEM_P", "TABLE", "TABLES", "TABLESAMPLE", "TABLESPACE", "TEMP", "TEMPLATE", "TEMPORARY", "TEXT_P", "THEN", "TIES", "TIME", "TIMESTAMP", "TO", "TRAILING", "TRANSACTION", "TRANSFORM", "TREAT", "TRIGGER", "TRIM", "TRUE_P", "TRUNCATE", "TRUSTED", "TYPE_P", "TYPES_P", "UNBOUNDED", "UNCOMMITTED", "UNENCRYPTED", "UNION", "UNIQUE", "UNKNOWN", "UNLISTEN", "UNLOGGED", "UNTIL", "UPDATE", "USER", "USING", "VACUUM", "VALID", "VALIDATE", "VALIDATOR", "VALUE_P", "VALUES", "VARCHAR", "VARIADIC", "VARYING", "VERBOSE", "VERSION_P", "VIEW", "VIEWS", "VOLATILE", "WHEN", "WHERE", "WHITESPACE_P", "WINDOW", "WITH", "WITHIN", "WITHOUT", "WORK", "WRAPPER", "WRITE", "XML_P", "XMLATTRIBUTES", "XMLCONCAT", "XMLELEMENT", "XMLEXISTS", "XMLFOREST", "XMLNAMESPACES", "XMLPARSE", "XMLPI", "XMLROOT", "XMLSERIALIZE", "XMLTABLE", "YEAR_P", "YES_P", "ZONE", "NOT_LA", "NULLS_LA", "WITH_LA", "'<'", "'>'", "'='", "POSTFIXOP", "'+'", "'-'", "'*'", "'/'", "'%'", "'^'", "UMINUS", "'['", "']'", "'('", "')'", "'.'", "';'", "','", "':'", "$accept", "stmtblock", "stmtmulti", "stmt", "CallStmt", "CreateRoleStmt", "opt_with", "OptRoleList", "AlterOptRoleList", "AlterOptRoleElem", "CreateOptRoleElem", "CreateUserStmt", "AlterRoleStmt", "opt_in_database", "AlterRoleSetStmt", "DropRoleStmt", "CreateGroupStmt", "AlterGroupStmt", "add_drop", "CreateSchemaStmt", "OptSchemaName", "OptSchemaEltList", "schema_stmt", "VariableSetStmt", "set_rest", "generic_set", "set_rest_more", "var_name", "var_list", "var_value", "iso_level", "opt_boolean_or_string", "zone_value", "opt_encoding", "NonReservedWord_or_Sconst", "VariableResetStmt", "reset_rest", "generic_reset", "SetResetClause", "FunctionSetResetClause", "VariableShowStmt", "ConstraintsSetStmt", "constraints_set_list", "constraints_set_mode", "CheckPointStmt", "DiscardStmt", "AlterTableStmt", "alter_table_cmds", "partition_cmd", "index_partition_cmd", "alter_table_cmd", "alter_column_default", "opt_drop_behavior", "opt_collate_clause", "alter_using", "replica_identity", "reloptions", "opt_reloptions", "reloption_list", "reloption_elem", "alter_identity_column_option_list", "alter_identity_column_option", "PartitionBoundSpec", "hash_partbound_elem", "hash_partbound", "partbound_datum", "partbound_datum_list", "range_datum_list", "PartitionRangeDatum", "AlterCompositeTypeStmt", "alter_type_cmds", "alter_type_cmd", "ClosePortalStmt", "CopyStmt", "copy_from", "opt_program", "copy_file_name", "copy_options", "copy_opt_list", "copy_opt_item", "opt_binary", "opt_oids", "copy_delimiter", "opt_using", "copy_generic_opt_list", "copy_generic_opt_elem", "copy_generic_opt_arg", "copy_generic_opt_arg_list", "copy_generic_opt_arg_list_item", "CreateStmt", "OptTemp", "OptTableElementList", "OptTypedTableElementList", "TableElementList", "TypedTableElementList", "TableElement", "TypedTableElement", "columnDef", "columnOptions", "ColQualList", "ColConstraint", "ColConstraintElem", "generated_when", "ConstraintAttr", "TableLikeClause", "TableLikeOptionList", "TableLikeOption", "TableConstraint", "ConstraintElem", "opt_no_inherit", "opt_column_list", "columnList", "columnElem", "opt_c_include", "key_match", "ExclusionConstraintList", "ExclusionConstraintElem", "ExclusionWhereClause", "key_actions", "key_update", "key_delete", "key_action", "OptInherit", "OptPartitionSpec", "PartitionSpec", "part_strategy", "part_params", "part_elem", "OptWith", "OnCommitOption", "OptTableSpace", "OptConsTableSpace", "ExistingIndex", "CreateStatsStmt", "CreateAsStmt", "create_as_target", "opt_with_data", "CreateMatViewStmt", "create_mv_target", "OptNoLog", "RefreshMatViewStmt", "CreateSeqStmt", "AlterSeqStmt", "OptSeqOptList", "OptParenthesizedSeqOptList", "SeqOptList", "SeqOptElem", "opt_by", "NumericOnly", "NumericOnly_list", "CreatePLangStmt", "opt_trusted", "handler_name", "opt_inline_handler", "validator_clause", "opt_validator", "DropPLangStmt", "opt_procedural", "CreateTableSpaceStmt", "OptTableSpaceOwner", "DropTableSpaceStmt", "CreateExtensionStmt", "create_extension_opt_list", "create_extension_opt_item", "AlterExtensionStmt", "alter_extension_opt_list", "alter_extension_opt_item", "AlterExtensionContentsStmt", "CreateFdwStmt", "fdw_option", "fdw_options", "opt_fdw_options", "AlterFdwStmt", "create_generic_options", "generic_option_list", "alter_generic_options", "alter_generic_option_list", "alter_generic_option_elem", "generic_option_elem", "generic_option_name", "generic_option_arg", "CreateForeignServerStmt", "opt_type", "foreign_server_version", "opt_foreign_server_version", "AlterForeignServerStmt", "CreateForeignTableStmt", "AlterForeignTableStmt", "ImportForeignSchemaStmt", "import_qualification_type", "import_qualification", "CreateUserMappingStmt", "auth_ident", "DropUserMappingStmt", "AlterUserMappingStmt", "CreatePolicyStmt", "AlterPolicyStmt", "RowSecurityOptionalExpr", "RowSecurityOptionalWithCheck", "RowSecurityDefaultToRole", "RowSecurityOptionalToRole", "RowSecurityDefaultPermissive", "RowSecurityDefaultForCmd", "row_security_cmd", "CreateAmStmt", "CreateTrigStmt", "TriggerActionTime", "TriggerEvents", "TriggerOneEvent", "TriggerReferencing", "TriggerTransitions", "TriggerTransition", "TransitionOldOrNew", "TransitionRowOrTable", "TransitionRelName", "TriggerForSpec", "TriggerForOptEach", "TriggerForType", "TriggerWhen", "FUNCTION_or_PROCEDURE", "TriggerFuncArgs", "TriggerFuncArg", "OptConstrFromTable", "ConstraintAttributeSpec", "ConstraintAttributeElem", "CreateEventTrigStmt", "event_trigger_when_list", "event_trigger_when_item", "event_trigger_value_list", "AlterEventTrigStmt", "enable_trigger", "CreateAssertStmt", "DropAssertStmt", "DefineStmt", "definition", "def_list", "def_elem", "def_arg", "old_aggr_definition", "old_aggr_list", "old_aggr_elem", "opt_enum_val_list", "enum_val_list", "AlterEnumStmt", "opt_if_not_exists", "CreateOpClassStmt", "opclass_item_list", "opclass_item", "opt_default", "opt_opfamily", "opclass_purpose", "opt_recheck", "CreateOpFamilyStmt", "AlterOpFamilyStmt", "opclass_drop_list", "opclass_drop", "DropOpClassStmt", "DropOpFamilyStmt", "DropOwnedStmt", "ReassignOwnedStmt", "DropStmt", "drop_type_any_name", "drop_type_name", "drop_type_name_on_any_name", "any_name_list", "any_name", "attrs", "type_name_list", "TruncateStmt", "opt_restart_seqs", "CommentStmt", "comment_type_any_name", "comment_type_name", "comment_text", "SecLabelStmt", "opt_provider", "security_label_type_any_name", "security_label_type_name", "security_label", "FetchStmt", "fetch_args", "from_in", "opt_from_in", "GrantStmt", "RevokeStmt", "privileges", "privilege_list", "privilege", "privilege_target", "grantee_list", "grantee", "opt_grant_grant_option", "GrantRoleStmt", "RevokeRoleStmt", "opt_grant_admin_option", "opt_granted_by", "AlterDefaultPrivilegesStmt", "DefACLOptionList", "DefACLOption", "DefACLAction", "defacl_privilege_target", "IndexStmt", "opt_unique", "opt_concurrently", "opt_index_name", "access_method_clause", "index_params", "index_elem", "opt_include", "index_including_params", "opt_collate", "opt_class", "opt_asc_desc", "opt_nulls_order", "CreateFunctionStmt", "opt_or_replace", "func_args", "func_args_list", "function_with_argtypes_list", "function_with_argtypes", "func_args_with_defaults", "func_args_with_defaults_list", "func_arg", "arg_class", "param_name", "func_return", "func_type", "func_arg_with_default", "aggr_arg", "aggr_args", "aggr_args_list", "aggregate_with_argtypes", "aggregate_with_argtypes_list", "createfunc_opt_list", "common_func_opt_item", "createfunc_opt_item", "func_as", "transform_type_list", "opt_definition", "table_func_column", "table_func_column_list", "AlterFunctionStmt", "alterfunc_opt_list", "opt_restrict", "RemoveFuncStmt", "RemoveAggrStmt", "RemoveOperStmt", "oper_argtypes", "any_operator", "operator_with_argtypes_list", "operator_with_argtypes", "DoStmt", "dostmt_opt_list", "dostmt_opt_item", "CreateCastStmt", "cast_context", "DropCastStmt", "opt_if_exists", "CreateTransformStmt", "transform_element_list", "DropTransformStmt", "ReindexStmt", "reindex_target_type", "reindex_target_multitable", "reindex_option_list", "reindex_option_elem", "AlterTblSpcStmt", "RenameStmt", "opt_column", "opt_set_data", "AlterObjectDependsStmt", "AlterObjectSchemaStmt", "AlterOperatorStmt", "operator_def_list", "operator_def_elem", "operator_def_arg", "AlterOwnerStmt", "CreatePublicationStmt", "opt_publication_for_tables", "publication_for_tables", "AlterPublicationStmt", "CreateSubscriptionStmt", "publication_name_list", "publication_name_item", "AlterSubscriptionStmt", "DropSubscriptionStmt", "RuleStmt", "RuleActionList", "RuleActionMulti", "RuleActionStmt", "RuleActionStmtOrEmpty", "event", "opt_instead", "NotifyStmt", "notify_payload", "ListenStmt", "UnlistenStmt", "TransactionStmt", "opt_transaction", "transaction_mode_item", "transaction_mode_list", "transaction_mode_list_or_empty", "ViewStmt", "opt_check_option", "LoadStmt", "CreatedbStmt", "createdb_opt_list", "createdb_opt_items", "createdb_opt_item", "createdb_opt_name", "opt_equal", "AlterDatabaseStmt", "AlterDatabaseSetStmt", "DropdbStmt", "AlterCollationStmt", "AlterSystemStmt", "CreateDomainStmt", "AlterDomainStmt", "opt_as", "AlterTSDictionaryStmt", "AlterTSConfigurationStmt", "any_with", "CreateConversionStmt", "ClusterStmt", "cluster_index_specification", "VacuumStmt", "vacuum_option_list", "vacuum_option_elem", "AnalyzeStmt", "analyze_option_list", "analyze_option_elem", "analyze_keyword", "opt_analyze", "opt_verbose", "opt_full", "opt_freeze", "opt_name_list", "vacuum_relation", "vacuum_relation_list", "opt_vacuum_relation_list", "ExplainStmt", "ExplainableStmt", "explain_option_list", "explain_option_elem", "explain_option_name", "explain_option_arg", "PrepareStmt", "prep_type_clause", "PreparableStmt", "ExecuteStmt", "execute_param_clause", "DeallocateStmt", "InsertStmt", "insert_target", "insert_rest", "override_kind", "insert_column_list", "insert_column_item", "opt_on_conflict", "opt_conf_expr", "returning_clause", "DeleteStmt", "using_clause", "LockStmt", "opt_lock", "lock_type", "opt_nowait", "opt_nowait_or_skip", "UpdateStmt", "set_clause_list", "set_clause", "set_target", "set_target_list", "DeclareCursorStmt", "cursor_name", "cursor_options", "opt_hold", "SelectStmt", "select_with_parens", "select_no_parens", "select_clause", "simple_select", "with_clause", "cte_list", "common_table_expr", "opt_with_clause", "into_clause", "OptTempTableName", "opt_table", "all_or_distinct", "distinct_clause", "opt_all_clause", "opt_sort_clause", "sort_clause", "sortby_list", "sortby", "select_limit", "opt_select_limit", "limit_clause", "offset_clause", "select_limit_value", "select_offset_value", "select_fetch_first_value", "I_or_F_const", "row_or_rows", "first_or_next", "group_clause", "group_by_list", "group_by_item", "empty_grouping_set", "rollup_clause", "cube_clause", "grouping_sets_clause", "having_clause", "for_locking_clause", "opt_for_locking_clause", "for_locking_items", "for_locking_item", "for_locking_strength", "locked_rels_list", "values_clause", "from_clause", "from_list", "table_ref", "joined_table", "alias_clause", "opt_alias_clause", "func_alias_clause", "join_type", "join_outer", "join_qual", "relation_expr", "relation_expr_list", "relation_expr_opt_alias", "tablesample_clause", "opt_repeatable_clause", "func_table", "rowsfrom_item", "rowsfrom_list", "opt_col_def_list", "opt_ordinality", "where_clause", "where_or_current_clause", "OptTableFuncElementList", "TableFuncElementList", "TableFuncElement", "xmltable", "xmltable_column_list", "xmltable_column_el", "xmltable_column_option_list", "xmltable_column_option_el", "xml_namespace_list", "xml_namespace_el", "Typename", "opt_array_bounds", "SimpleTypename", "ConstTypename", "GenericType", "opt_type_modifiers", "Numeric", "opt_float", "Bit", "ConstBit", "BitWithLength", "BitWithoutLength", "Character", "ConstCharacter", "CharacterWithLength", "CharacterWithoutLength", "character", "opt_varying", "ConstDatetime", "ConstInterval", "opt_timezone", "opt_interval", "interval_second", "a_expr", "b_expr", "c_expr", "func_application", "func_expr", "func_expr_windowless", "func_expr_common_subexpr", "xml_root_version", "opt_xml_root_standalone", "xml_attributes", "xml_attribute_list", "xml_attribute_el", "document_or_content", "xml_whitespace_option", "xmlexists_argument", "within_group_clause", "filter_clause", "window_clause", "window_definition_list", "window_definition", "over_clause", "window_specification", "opt_existing_window_name", "opt_partition_clause", "opt_frame_clause", "frame_extent", "frame_bound", "opt_window_exclusion_clause", "row", "explicit_row", "implicit_row", "sub_type", "all_Op", "MathOp", "qual_Op", "qual_all_Op", "subquery_Op", "expr_list", "func_arg_list", "func_arg_expr", "type_list", "array_expr", "array_expr_list", "extract_list", "extract_arg", "overlay_list", "overlay_placing", "position_list", "substr_list", "substr_from", "substr_for", "trim_list", "in_expr", "case_expr", "when_clause_list", "when_clause", "case_default", "case_arg", "columnref", "indirection_el", "opt_slice_bound", "indirection", "opt_indirection", "opt_asymmetric", "opt_target_list", "target_list", "target_el", "qualified_name_list", "qualified_name", "name_list", "name", "database_name", "access_method", "attr_name", "index_name", "file_name", "func_name", "AexprConst", "Iconst", "Sconst", "SignedIconst", "RoleId", "RoleSpec", "role_list", "ColId", "type_function_name", "NonReservedWord", "ColLabel", "unreserved_keyword", "col_name_keyword", "type_func_name_keyword", "reserved_keyword", 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, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 60, 62, 61, 716, 43, 45, 42, 47, 37, 94, 717, 91, 93, 40, 41, 46, 59, 44, 58 }; # endif #define YYPACT_NINF -4885 #define yypact_value_is_default(Yystate) \ (!!((Yystate) == (-4885))) #define YYTABLE_NINF -2635 #define yytable_value_is_error(Yytable_value) \ (!!((Yytable_value) == (-2635))) /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const int yypact[] = { 10715, 31, 16573, -4885, -4885, 31, 61209, -4885, 68944, 27, 650, 1124, 189, 14282, 69399, 76679, 598, 358, 15474, 31, 76679, 1111, 52564, 66214, 809, 76679, 1044, 682, 52564, 76679, 77134, 841, 1027, 767, 77589, 69854, 64849, 1402, 76679, 1098, 954, 78044, 70309, 1035, 70764, 682, 48952, 411, 1019, 78499, 76679, 2081, 1351, 1132, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 913, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 1964, -4885, 1060, 2047, 1767, 929, 1030, -4885, -4885, -4885, 61209, 76679, 76679, 76679, 1364, 76679, 1315, 76679, 220, 61209, 57114, 71219, 1525, 1409, 45306, 78954, -4885, 61209, 76679, 55294, 61209, 76679, 76679, 79409, 76679, 76679, 76679, 111, 67579, 76679, 1534, 76679, 76679, 55749, 79864, 1677, 1305, 248, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 1426, 1735, -4885, 267, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 76679, 15858, 1044, -4885, -4885, 2081, 76679, 1713, 61209, 76679, 1521, 80319, 1673, 76679, -4885, 76679, 1715, 80774, 868, 1766, 57114, 2083, 45762, 1740, 76679, 76679, 57114, 81229, 81684, 82139, 76679, 76679, -4885, -4885, 1791, 76679, 76679, -4885, 1881, 57569, 1453, 1946, 2105, 2008, 1379, -4885, 71674, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 60299, 358, -4885, -4885, 1982, 61664, 76679, 2036, -4885, -4885, 82594, 98904, 1836, -4885, 877, 62119, 58024, 2160, 1814, 46218, 2220, -4885, 62574, -4885, 58479, 63029, -4885, -4885, -4885, -4885, -4885, 83049, -4885, 83504, 1905, 2036, -4885, 99345, 58934, -4885, 2069, 83959, 84414, 84869, -4885, 1813, 1321, 1338, 41178, -4885, -4885, -4885, 27, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 326, 1698, 234, 226, 247, -4885, -4885, 227, 249, 252, 326, 2268, 2268, -4885, 76679, -4885, -4885, 1698, 752, 1820, 1820, 1820, 2034, 7, -4885, 1820, 1981, -4885, -4885, -4885, -4885, 70764, -4885, 1829, 1044, 1856, 2282, 1920, -4885, -4885, -4885, -4885, -4885, 1938, 76679, 76679, 76679, -4885, -4885, 2328, 1932, 2200, 1960, -4885, -4885, -4885, 2182, 2223, 2214, 149, 1044, 2143, -4885, 2271, -4885, 2231, 28123, 28123, 1044, 72129, 85324, 254, 60299, 1044, 72584, 2090, 1200, 2270, -4885, -4885, -4885, 652, -4885, 2515, 2123, 2401, 1960, 1305, 42551, -4885, 2127, 1735, 70764, -4885, -4885, -4885, 415, 2441, 30011, 76679, 2156, -4885, 2201, 2156, 2165, 2184, 1767, -4885, 10715, 2263, 76679, 1237, 1237, 2637, 1237, 240, 1680, -4885, 2527, -4885, 2535, 2499, 70764, 2233, 1556, 2240, 1496, 2242, 1737, 2961, -4885, -4885, 766, 76679, 222, 2284, 73039, 9016, 2252, 1735, 2269, -4885, -4885, -4885, 2419, 1356, -4885, -4885, -4885, -4885, 2562, 2617, 5799, 314, 73494, -4885, -4885, -4885, -4885, 76679, 76679, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 2309, 1262, -4885, -4885, 2308, 2622, 2520, 9064, 285, 2607, 2483, 861, 9122, 2530, 910, 2685, 14717, 1431, 1800, 2248, 73949, 76679, 2651, 2706, 4615, 1721, 832, 2584, 1281, 2607, 2704, 2549, 861, 2730, 6632, 76679, -4885, 2659, 2775, 109, -4885, 344, -4885, 23016, 30011, 48497, -4885, 1735, 2472, 2625, 1156, 2663, 61209, 2424, -4885, -4885, 76679, -4885, -4885, 99786, 2518, -4885, 977, 61209, -4885, 2657, 2496, 46674, 76679, 61209, -4885, -4885, 61209, 76679, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 2588, 2783, 76679, 99786, -4885, 2731, 76679, 76679, -4885, 2481, -4885, -4885, -4885, -4885, 1820, 76679, 2488, 2891, 99786, 2709, 406, 76679, 1649, 2933, 76679, 2727, 1649, 2544, 85779, -4885, -4885, 1649, -4885, -4885, -4885, 76679, 76679, 2531, 1445, 2723, 2846, 1649, 2753, 2966, 2969, 2759, 2612, 2767, 2201, 2939, 2738, 937, 350, 201, 1876, 1649, 2595, 86234, 86689, 76679, 2596, 76679, 2950, 61209, 61209, 76679, 2880, -4885, 2736, -4885, -4885, 1185, -4885, -4885, -4885, -4885, -4885, 2895, -4885, 184, 272, 2896, 2569, 2899, -4885, -4885, -4885, 2619, -4885, 2619, 2619, 2573, 2573, 2751, 2579, 2908, -4885, -4885, -4885, 1733, 2619, 2573, -4885,100668, -4885, 1732, 1816, -4885, 194, -4885, 3023, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 2585, -4885, 853, 1787, -4885, -4885, 2621, -4885, 2914, 323, -4885, 2917, -4885, 2586, 87144, -4885, 87599, 88054, 2920, 331, -4885, 57114, 2921, 323, 2922, 2586, 2923, 323, 2925, 272, 2927, -4885, 989, 2929, 2932, 194, 2944, 2000, 2586, 60754, 2946, 368, -4885, 2948, 437, -4885, 2949, 2816, 30011, -4885, 2714, -4885, 1019, -4885, 1772, -4885, 51654, -4885, 1338, 1698, -4885, 76679, 1698, 76679, 1698, 76679, 1698, 76679, 1698, 76679, 76679, 76679, 1698, -4885, -4885, -4885, 76679, 2633, 76679, 76679, -4885, -4885, -4885, 66669, 57114, 67124, -4885, 76679, -4885, 133, 1044, -4885, -4885, 99786, 3073, 57114, 2950, -4885, 1845, -4885, -4885, -4885, -4885, -4885, -4885, 2886, 76679, 2952, 2953, 66669, 57114, -4885, 88509, 60299, 2845, 2641, -4885, -4885, -4885, -4885, -4885, 1924, 3111, 262, 3112, 30011, 2645, 262, 262, 2646, 2963, -4885, -4885, -4885, 271, 2648, 2650, -4885, 265, 265, -4885, 2652, 2654, -4885, 269, 2661, 2666, 3126, 3136, 273, 2668, 2670, 2671, 1733, 262, 30011, -4885, 2672, 265, 2673, 2675, 2677, 3150, 2679, -4885, 3152, 2686, 245, 289, 2687, 2688, -4885, 2652, -4885, 291, 2689, 2692, 2693, 2694, 2695, 2698, 2702, 2715, 30011, 30011, 30011, -4885, 26707, 1735, 1044, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 293, 5211, -4885, 2745, -4885, -4885, 2905, -4885, -4885, 30011, -4885, -4885, 119, -4885, 295, -4885, -4885, -4885, 1735, 2984, 2719, -4885, -4885, 1302, 2720, -4885, 394, -4885, -4885, -4885, -4885, -4885, -4885, 59389, 3158, -4885, 310, 1044, 344, 367, 3104, 50744, 51199, -4885, -4885, 2977, -4885, 76679, -4885, -4885, 1735, 202, -4885, -4885, -4885, -4885, 1870, -4885, -4885, -4885, 27, 12966, 1874, 2156, 76679, 76679, 3168, -4885, -4885, -4885, -4885, 1895, -4885, -4885, 2726, -4885, 2201, -4885, -4885, 1767, 1767, 30011, 1767, 253, 1719, 28595, 30483, 3050, 2945, 1140, 1584, 3052, -4885, 2954, 240, 1680, 70764, 76679, 88964, 2856, 30011, 2822, 2828, 2881, 49862, -4885, 2833, 2803, 2842, 2897, 53474, 2763, 2847, 2848, 2904, -4885, 3028, -4885, -4885, 2859, 2864, 89419, -4885, -4885, 996, -4885, -4885, -4885, 996, -4885, 2800, 1679, 978, 340, 2869, 499, 218, 3181, -4885, 1367, -4885, -4885, 2924, -4885, 5900, 76679, 3120, 6756, 3000, 314, 3003, 2926, -4885, -4885, 3055, 2883, 76679, 2884, 3021, 314, 290, 89874, -4885, -4885, -4885, -4885, -4885, -4885, 4099, 25824, -4885, 1809, 2887, 2866, 2906, 76679, 63939, 1810, 2992, 3016, 3024, 1463, 2005, 545, 2955, 76679, 1103, 3032, 76679, 2823, 2911, 2912, 3121, 2844, 1343, 3236, 2851, -4885, -4885, -4885, -4885, 439, 2019, 3047, -4885, 3146, 3188, 5467, 2918, 2919, 97581, -4885, 2943, 83, 47130, 76679, 76679, 3070, 2951, 2956, 90329, 4099, 2967, 2972, 2962, 2964, 13, 3252, 1520, 2976, -4885, -4885, -4885, 1520, 3095, 2979, 2982, 90784, 4099, 76679, 2983, 2986, 76679,100668, 314, -4885, 3326, 314, 314, 1854, 3329, 2989, 382, 3141, 1049, 1649, 2851, 2820, -4885, 2993, 2997, 939, -4885, 3127, 3004, 3006, 3063, 1044, -4885, -4885, 3014, 3087, 3017, 59, -4885, -4885, 1118, 3027, 70764, 3125, 3131, 441, 2225, 2851, -4885, 3029, 3030, 2844, 2844, 76679, 76679, 76679, 76679, 76679, 298, 3374, 3381, 3036, 259, 3084, 2968, -4885, 1520, 56204, 3039, -4885, 1520, 76679, 3044, 2501, 2851, 1122, 1181, -4885, -4885, -4885, 1305, -4885, 30011, 30011, 30011, 2965, -4885, 2301, 12966, 86, -4885, 297, 5802, 2970, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 76679, -4885, 76679, -4885, 3232, 99786, 3173, 3235, -4885, 3010, -4885, 3238, 314, -4885, 76679, 76679, 3244, 3176, 3245, 3247, 3189, 1013, 99786, 3190, 3251, -4885, 3253, 3257, 3066, 3040, 3059, 50303, -4885, 2531, 3020, 3443, 3344, 76679, 53474, -4885, 3467, 996, -4885, 99786, 3226, 3351, -4885, 76679, 3246, 62, -4885, 3386, 3081, -4885, -4885, 66, 76679, 305, 3064, -4885, -4885, 3357, 57114, 328, 3358, 1044, 3079, 3365, 3248, 1044, 57114, 3282, 76679, 76679, 76679, 76679, -4885, -4885, 3250, 1015, 168, -4885, 56204, 3261, -4885, 76679, 3262, 2820, 3265, 3485, 948, 1820, 91239, 3364, -4885, 91694, 3051, 3051, 3492, 99786, 3313, -4885, 1998, -4885, 3184, -4885, 61209, -4885, -4885, 61209, -4885, -4885, -4885, 99786, 76679, -4885, 3056, -4885, -4885, 30011, -4885, -4885, -4885, 2268, -4885, 99786, 2619, 2619, -4885, -4885, 3497, 3140, 3144, 2268, -4885, 2268, -4885, 99786, -4885, 3062, 3067, 2268, 3143, 3147, 3149, -4885, 3069, 3153, 2268, -4885, -4885, 2088, -4885, -4885, 61209, 61209, -4885, 57114, 57114, 3403, 368, 3404, 3135, 3417, 3155, 47130, 47130, -4885, 457, 61209, -4885, 57114, 61209, -4885, 76679, -4885, 76679, -4885, -4885, -4885, -4885, 99786, 99786, -4885, 57114, 56204, 3424, 3425, 272, 76679, 76679, -4885, 76679, 76679, -4885, 76679, 76679, 1901, 92149, 1338, 59844, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 76679, -4885, 76679, -4885, 76679, -4885, 76679, -4885, 76679, -4885, -4885, -4885, 76679, -4885, 76679, 1902, -4885, -4885, 1906, 1489, 76679, 76679, 866, 61209, 76679, 3311, 61209, 61209, 76679, 76679, 76679, 76679, 76679, 3180, 2720, 1665, -4885, 847, 870, 70764, 3319, -4885, -4885, 1910, 2081, 583, 76679, 1217, 1938, -4885, -4885, 67124, 66214, 3415, 352, 76679, -4885, -4885, 5560, 30011, 1735, 27651, -4885, -4885, 12966, 3160, 30011, 30011, 3128, 2268, 2268, -4885, 427, 30011, 30011, 30011, 2268, 2268, 12893, 30011, 47130, 30011, 35203, 23962, 30011, 30011, 27179, -4885, 30011, 3341, 36607, 30011, 367, 3349, 30011, 367, 12893, 3590, 3590, 1943, 4712, 3129, 1735, -4885, 2268, 268, -4885, 336, 99786, 30011, 30011, 30011, 30011, 53474, 3210, 238, 76679, 30011, 3137, 2046, -4885, 30011, -4885, 3145, 30011, 3214, 887, 30011, 30011, 30011, 30011, 30011, 30011, 30011, 30011, 30011, -4885, 37978, 467, 3449, 3473, 33, 618, 74404, 28123, 3465, 23016, -4885, 261, 3465, -4885, -4885, -4885, 76679, 3158, -4885, -4885, 3243, -4885, -4885, -4885, -4885, -4885, 299, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 3151, -4885, -4885, -4885, -4885, 3151, -4885, 3163, 3453, 3455, 272, 76679, 415, 2393, -4885, 30011, -4885, 1922, 3169, 76679, 2263, 76679, -4885, 3437, -4885, 3167, -4885, 11095, 3437, -4885, -4885, 35669, 3290, 3445, 3400, -4885, -4885, -4885, 3193, 12966, 30955, 30955, -4885, 2102, 12966, 2169, -4885, -4885, -4885, -4885, -4885, -4885, 1301, -4885, 76679, 129, 3050, 1584, 3254, 1383, 3638, 76679, -4885, 43008, 1930, 57114, 76679, 76679, 3396, -4885, 3622, -4885,100668, -4885, 3202, -4885,100227, 96244, -4885, -4885, 968, -4885, 1002, 57114, -4885, 76679, 76679, -4885, 53474, 57114, 76679, 76679, -4885, 57114, 76679, 76679, -4885, -4885, -4885, -4885, -4885, 52109, 775, 66214, 3335, 65304, -4885, -4885, 3207, 76679, 3264, 3472, 3475, 1352, -4885, -4885, 92604, -4885, 3427, 57114, 76679, 76679, 30011, 3430, 76679, 76679, -4885, 881, 3295, 3296, -4885, 76679, 3298, 3456, 61209, 3222, 76679, 76679, 99786, 3300, 990, 61209, 3267, 47586, 61209, 61209, 76679, 76679, 76679, 76679, 3352, 3543, 99786, 76679, 3498, 1368, 70764, 214, 2600, 2851, 3457, -4885, 3566, 859, -4885, 57114, -4885, 76679, 3446, -4885, -4885, -4885, 74859, 3675, 3354, -4885, -4885, 93059, -4885, -4885, -4885, 1934, -4885, 57114, 57114, 76679, 8042, 93514, 1502, 3469, -4885, -4885, 99786, -4885, 76679, 75314, 76679, 76679, 3573, 3501, 76679, 68034, 93969, 94424, 1387, 1435, 3502, 76679, 68489, 3505, -4885, 3391, 76679, -4885, -4885, 53929, 57114, 76679, 869, 53474, -4885, -4885, 76679, -4885, 3464, 280, -4885, 76679, 8759, -4885, -4885, 3339, 3346, 76679, 3466, 235, 2713, 2851, 76679, 76679, 3259, 1935, 57114, 76679, 53474, -4885, 3474, 979, 3593, 57114, 76679, 74859, -4885, 70764, 70764, 57114, 76679, 70764, -4885, 76679, 85324, -4885, 57114, 930, -4885, 3594, 57114, 76679, 74859, -4885, 3421, 57114, 76679, 15305, -4885, -4885, -4885, 314, -4885, -4885, -4885, -4885, -4885, 76679, 76679, 314, 76679, 76679, 314, 1290, -4885, 57114, 76679, -4885, -4885, -4885, 57114, 76679, 76679, -4885, 57114, 3064, 76679, 53474, -4885, 76679, 7039, 76679, 76679, 76679, 76679, 76679, 76679, 57114, 76679, -4885, -4885, 1326, 1355, 1263, 1292, 806, 76679, 3557, 76679, 94879, 57114, 76679, 76679, 1044, 76679, 1406, -4885, -4885, 3392, -4885, 57114, 930, -4885, 8255, 76679, 76679, 3366, 3373, 243, 3435, -4885, -4885, -4885, 667, 667, 3495, -4885, 30011, 30011, 29067, 3272, -4885, -4885, 30011, -4885, -4885, -4885, 946, 3736, 95334, 946, -4885, 946, 3565, 3355, 3359, 946, 76679, 946, 946, 76679, -4885, -4885, -4885, -4885, 3560, 76679, 946, 946, 946, 3471, 3509, 164, 3588, 3317, 1942, -4885, -4885, 30011, 99786, 76679, -4885, 1947, -4885, 3318, 1015, -4885, -4885, 53474, 76679, 761, 734, 3636, 3519, 64394, 1255, 3627, 76679, 3362, 76679, 3752, 3409, 70764, 2531, -4885, 1255, 76679, -4885, 1878, 66214, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 76679, -4885, -4885, 3628, 76679, 30011, 3487, -4885, 1044, 2531, 2531, 2531, 2531, -4885, -4885, -4885, -4885, 3532, 1839, -4885, 3323, 2531, 76679, 3448, 3662, 1255, 3336, 3663, -4885, 2820, 3665, 1214, 76679, 3548, 64394, 2159, 3377, 3561, 3782, 1820, 1044, 3569, 3549, -4885, 26265, 3035, 6424, 3550, 3609, 60299, 3647, 3648, 3669, -4885, 184, -4885, 3793, -4885, 30011, 1953, 3356, 194, -4885, -4885, 3363, 3067, 3379, 3383, 3368, 3372, -4885, 2268, 223, 3375, 852, 154, 3494, 2268, 3605, 3376, -4885, 323, -4885, 2586, -4885, 76679, -4885, 76679, 76679, 76679, 76679, 331, -4885, -4885, 323, 2586, 323, 272, -4885, 3634, 194, 2586, 3504, 3696, 60299, -4885, 368, -4885, 437, -4885, 3586, 272, -4885, 3604, 1820, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 1968, -4885, 76679, -4885, 3673, 3676, 3677, 3678, 3679, 3384, 3389, 3429, 76679, 3393, 3384, 314, 3393, 3393, 3384, 2720, 2720, 3384, 3389, 56659, 3849, 3703, -4885, 3490, 3412, 3724, 195, -4885, 221, 759, 3649, -4885, -4885, -4885, -4885, 99786, -4885, 57114, 3452, 76679, 76679, -4885, 379, 3621, 3414, 56659, 3842, 272, -4885, 61209, -4885, -4885, 99786, 3496, 3514, 61209, 3637, 3476, 61209, -4885, -4885, 61209, -4885, -4885, -4885, -4885, -4885, 99786, -4885, 3684, 76679, 76679, 1978, -4885, -4885, 1661, -4885, 1688, 30011, 454, -4885, 11328, 1987, 30011, 3428, 3433, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 3434, 3739, -4885, 1988, 2002, 2003, 3436, 3438, 3198, 3440, 11956, 3441, 3431, 35203, 35203, 26707, 2352, -4885, 35203, 3442, 3623, 2007, 11155, 3432, 3444, 12022, 29539, 30011, 29539, 29539, 12284, 3432, 3450, 2009, 53474, 3630, 12425, 2013, -4885, 30011, 53474, 4663, 30011, -4885, 30011, 3454, -4885, -4885, 2566, 2566, 2566, 12893, -4885, 3477, -4885, 35203, 35203, -4885, 1227, 26707, -4885, -4885, 3749, -4885, -4885, 1499, -4885, 3447, -4885, -4885, 2439, 47130, 3805, 30011, 256, 30011, 3137, 30011, 3529, 2566, 2566, 2566, 359, 359, 231, 231, 231, 416, 618, -4885, -4885, -4885, 3458, 3462, 3463, 3650, 3468, 30011, -4885, 2221, 2292, 76679, 2960, 3564, 4093, -4885, -4885, -4885, 38893, 3506, 86, 3506, -4885, 1305, 2268, 268, 51654, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 76679, 12966, -4885, 2081, -4885, -4885, -4885, 30011, -4885, -4885, 3413, 3479, 82, 3658, 2186, 2186, 2102, 3661, -4885, -4885, 3523, -4885, 30011, 2185, -4885, 2191, -4885, -4885, -4885, -4885, 2720, -4885, 3708, -4885, -4885, -4885, 38893, 3510, 3521, 60, 42093, 3674, -4885, 76679, -4885, 76679, 380, -4885, 3483, -4885, -4885, -4885, -4885, -4885, -4885, 96244, 1787, -4885, 100227, -4885,100227, -4885, 1787, 3895, -4885, 96244, 1769, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 57114, 57114, 3680, 76679, 3681, 3682, 30011, 424, 76679, 3478, 3481, 1598, 3759, 76679, -4885, 3811, 272, -4885, -4885, 3570, -4885, 12966, -4885, -4885, -4885, -4885, -4885, 57114, 76679, -4885, 60299, -4885, 76679, -4885, 99786, -4885, -4885, -4885, 76679, 3518, 76679, -4885, 76679, 76679, 76679, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 1108, 99786, -4885, -4885, 76679, 76679, 771, 3571, 3574, 76679, -4885, 1392, 3127, 8333, 76679, 76679, 76679, 3765, 76679, -4885, -4885, -4885, -4885, 3709, -4885, -4885, 96244, -4885, 2586, 1126, 3577, 2851, 3719, -4885, 3829, 3704, -4885, 3624, 1034, -4885, -4885, 76679, 3635, -4885, -4885, -4885, -4885, 3836, 272, 3838, 272, 76679, 76679, 76679, 76679, 3640, -4885, -4885, -4885, -4885, 3641, 3763, -4885, 53474, 53474, 53474, 2015, -4885, -4885, 1044, -4885, -4885, -4885, -4885, -4885, -4885, 3800, -4885, 2021, -4885, -22, -4885, -4885, -4885, -4885, -4885, -4885, 57114, 76679, 8741, 3845, 76679, 76679, 76679, 1803, -4885, 1113, 99786, -4885, 98022, -4885, -4885, 2035, -4885, 3531, 76679, 3600, 57114, 3579, 76679, -4885, -4885, -4885, 3524, 3524, -4885, -4885, 3524, -4885, -4885, -4885, 3774, 3713, -4885, 986, 3714, 57114, 3591, -4885, 76679, -4885, -4885, -4885, 3614, -4885, -4885, 3615, 2757, 2851, 2820, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 1692, -4885, -4885, 1180, 445, 2930, 2851, -4885, 1361, -4885, 3616, -4885, 3617, -4885, -4885, -4885, 3778, 3781, 3783, 3625, 3626, 3683, 3629, 3632, 3685, -4885, 3639, 3687, 3643, 3688, 3748, 3651, 272, 99786, 3768, 1044, 3667, 3873, 272, -4885, 3654, -4885, 3655, -4885, 3983, -4885, 76679, -4885, 3656, 3183, 2851, -4885, -4885, 57114, 76679, -4885, -4885, -4885, 30011, 3558, 3567, 3568, 12966, 12966, 30011, -4885, -4885, 12966, 3559, -4885, -4885, -4885, 99786, 76679, 3826, -4885, -4885, 946, 76679, 76679, -4885, 3835, -4885, -4885, 3843, 76679, 3844, -4885, -4885, -4885, -4885, 260, -4885, -4885, -4885, 3471, 3881, 44382, -4885, 4054, 5535, 3583, 453, -4885, 53474, 44382, 1984, 2355, 814, 1649, -4885, 60299, 76679, 60299, -4885, 734, 3704, 76679, 76679, 76679, 3585, 3587, -4885, -4885, -4885, -4885, 57114, 955, 57114, 2268, -4885, -4885, 3664, -4885, 76679, 1820, 4060, 3908, -4885, 3524, -4885, 4027, 2969, 328, 3746, 1700, 2612, 3969, 2201, 399, 53474, 3377, -4885, -4885, -4885, -4885, 76679, 76679, 1015, 1044, -4885, 3602, 3597, -4885, 76679, 3925, 76679, 76679, 76679, 76679, 3452, 3610, 76679, 3620, 99786, 61, 3818, 3820, 2844, 4061, 3951, 2081, 3377, 3705, 3955, 70764, -4885, 2057, 193, -4885, 1044, 60299, 97140, 3946, -4885, 6424, -4885, -4885, 6424, 933, 76679, 3930, -4885, -4885, 2081, -4885, 99786, 2062, -4885, -4885, -4885, 2268, -4885, -4885, 1439, 1439, 3633, -4885, 3642, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 3644, -4885, -4885, -4885, 368, 3689, 272, 3691, 272, -4885, -4885, -4885, -4885, 76679, -4885, 76679, 56204, 272, -4885, -4885, 76679, -4885, 3964, -4885, -4885, 3769, 3770, 3771, 3773, 3775, 76679, 3384, -4885, 3653, 57114, 1701, -4885, -4885, 3839, -4885, -4885, 70764, 3764, -4885, -4885, -4885, -4885, 3976, 3977, -4885, -4885, -4885, 825, -4885, -4885, -4885, 57114, 66669, 483, 57114, -4885, 3913, 3917, -4885, -4885, 3919, 314, -4885, 3920, 3923, 3924, -4885, 3927, 3929, -4885, -4885, -4885, 3668, 12557, 30011, -4885, 4004, 99786, -4885, 6460, -4885, -4885, -4885, 30011, -4885, -4885, -4885, -4885, -4885, 30011, -4885, 30011, 3980, -4885, 24435, 4133, 4133, 3672, 99786, 35203, 35203, 35203, 35203, 1702, 2673, 35203, 35203, 35203, 35203, 35203, 35203, 35203, 35203, 35203, 36141, 498, -4885, 3864, 30011, 30011, 3988, 3980, -4885, 99786, 3690, 3432, 3692, 3693, 30011, -4885, -4885, 2074, 37064, 3695, 53474, -4885, 30011, 11622, 2085, 3718, 12693, 1735, 7195, 1044, 30011, 2504, 2614, 30011, 2091, 30011, 3989, -4885, -4885, -4885, 3686, -4885, -4885, 99786, 30011, 3697, 3148, 35203, 35203, 3821, -4885, 4153, 30011, 26707, -4885, 3495, 3717, 43465, -4885, 24908, 3698, 682, 682, 682, 682, -4885, 76679, 76679, 76679, 39350, 3990, 3699, 38435, 75769, 3701, 1729, -4885, 75769, 76224, 75769, -4885, 3702, -4885, 1735, 30011, 3984, 3700, 3984, 344, 3710, -4885, -4885, -4885, 3711, -4885, 3706, -4885, 3479, 1441, -4885, -4885, -4885, 3888, -4885, -4885, -4885, -4885, 3701, 31427, 3841, -4885, -4885, -4885, 3751, 2097, -4885, -4885, 4077, 3841, -4885, -4885, 2098, 43008, 3510, 30011, 1735, 2111, 1835, -4885, -4885, 96244, -4885, 3785, 2586, 2586, 1558, 3384, 4025, 1558, 7214, -4885, -4885, 39807, 76679, 76679, -4885, 76679, 2112, 1760, 76679, -4885, 76679, -4885, -4885, -4885, -4885, 4152, -4885, 76679, -4885, -4885, 3776, 3779, 76679, 76679, 76679, 76679, 3986, -4885, -4885, 2242, -4885, -4885, 57114, 76679, -4885, -4885, -4885, 250, 3209, 2851, -4885, 3796, -4885, -4885, -4885, 3999, -4885, 4146, 3816, 76679, 4057, 76679, 3730, -4885, 1760, 3833, 4039, 1360, 2844, 382, 4862, -4885, 1378, -4885, -4885, 3802, -4885, -4885, 76679, -4885, 76679, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 3862, -4885, -4885, -4885, -4885, 53929, -4885, -4885, 76679, -4885, 53474, 44382, 53474, -4885, 1195, 337, 3255, 2851, 76679, -4885, 3817, -4885, 3822, 3823, 3870, 1115, 239, 3825, 3831, 3872, 3741, 3753, 3754, -4885, 53474, 44850, 3898, 76679, 2586, 3750, 3790, -4885, 326, 1044, -4885, -4885, 1044, 2586, 1044, -4885, 76679, 76679, 76679, 53474, -4885, 4177, 3846, 76679, 76679, 76679, 76679, -4885, 3812, -4885, 76679, 76679, 4079, 985, 2027, 57114, 76679, 76679, 57114, 76679, 76679, 76679, 76679, 76679, 76679, 4087, 76679, -4885, 4166, 4094, 1986, 4134, 3837, 76679, -4885, 76679, 1044, 3127, 76679, 76679, -4885, -4885, -4885, -4885, -4885, 3495, -4885, 3766, 4034, 946, -4885, 4035, 4038, 946, 946, 4040, 946, -4885, -4885, 1649, -4885, 260, 76679, -4885, 3706, 439, 2019, -4885, -4885, -4885, -4885, -4885, -4885, 3317, -4885, -4885, 2299, 76679, -4885, -4885, -4885, 76679, 3780, 76679, 76679, 35203, -4885, 1690, 1369, 278, -4885, 4037, 76679, 3064, -4885, -4885, -4885, 219, 76679, -4885, -4885, -4885, -4885, -4885, 67, 3610, -4885, 4059, 64394, 2586, 57114, 57114, 2586, -4885, 99786, 3786, 3377, -4885, 232, 3860, 57114, 328, 1272, 95789, 3079, 3840, 3992, 38893, 1692, -4885, 3798, 3941, -4885, 3789, 3804, -4885, -4885, 76679, 3704, 56204, 2113, 2820, 4243, 1149, 1813, -4885, 65759, 3995, 3610, 4059, -4885, -4885, -4885, 4207, 3907, -4885, 2081, 76679, 3452, 3907, 1044, 76679, 3264, -4885, 96244, 30011, 30011, -4885, 3819, -4885, 3832, 6424, -4885, 3889, 3827, -4885, -4885, -4885, -4885, -4885, 3901, 3834, 76679, -4885, 3824, -4885, 3830, -4885, -4885, -4885, -4885, -4885, -4885, 76679, -4885, 76679, -4885, 272, -4885, 3947, -4885, 272, 76679, 76679, 76679, 76679, 76679, 76679, 3384, 314, -4885, 4138, 56659, -4885, -4885, 2117, 76679, -4885, -4885, -4885, 4204, 352, 4147, -4885, -4885, 1070, 1070, 1070, 4102, 1070, 1070, 1070, 1070, 1070, -4885, 30011, 12966, -4885, 3847, -4885, 12966, 7353, 12966, 3988, -4885, 2157, 30011, -4885, 3297, 3297, 3297, 3287, 4149, -4885, 1639, 3850, 3297, 3297, 3297, 398, 398, 246, 246, 246, 4133, 498, 12966, 12966, -4885, -4885, 3848, -4885, -4885, -4885, 3432, -4885, 31899, 3997, 4261, -4885, -4885, -4885, 3880, 3882, 3851, -4885, 30011, 32371, 3853,100668, 4046, -4885, 390, 30011, 30011, 1925, -4885, 13328, 30011, 99786, 2158, 1925, 479, 30011, 2712, 3122, 30011, 30011, 4361, 7720, 3854, 30011, 96685, -4885, -4885, -4885, 2166, 30011, 76679, 76679, 76679, 76679, -4885, -4885, -4885, 75769, 76224, 75769, 3858, 37521, 25366, 1729, 3859, 76679, -4885, -4885, 3863, 38893, 4104, 4042, -4885, 38893, 4042, 1869, 4042, 4116, 3948, 43922, -4885, -4885, 3865, -4885, 4062, -4885, 1809, 12966, 4283, 4167, 1044, 4167, 1044, -4885, 47130, -4885, -4885, -4885, -4885, 4080, 12966, 28123, -4885, 2081, 2119, 76679, 1735, 74, -4885, 3883, 76679, -4885, 3841, 12966, -4885, 3940, 2167, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 3953, 66214, 4186, -4885, 30011, 2172, -4885, 3914, 4278, 377, 2173, 2174, 1760, -4885, 4164, -4885, 1547, 4161, 472, -4885, 272, -4885, 99786, -4885, 76679, 76679, -4885, -4885, -4885, -4885, 76679, 2763, -4885, -4885, 76679, 76679, 76679, 76679, -4885, 57114, 76679, -4885, 76679, -4885, 53474, 2355, 326, 1690, 4174, 4098, -4885, 314, -4885, 1690, 4101, 326, 76679, -4885, -4885, 2589, -4885, 99786, 272, 272, -4885, -4885, -4885, -4885, -4885, 3900, 4305, 3975, 76679, 76679, 76679, -4885, 76679, 57114, 76679, 76679, 2268, 2268, 99786, 3886, -4885, 2268, 2268, 3887, -4885, 57114, 76679, 76679, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 3971, -4885, 30011, 4301, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 57114, 76679, 3978, -4885, 3979, -4885, 145, -4885, -4885, 76679, 76679, 76679, 76679, 4229, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 76679, -4885, 76679, -4885, -4885, 1044, 1044, 99786, 272, 272, -4885, -4885, -4885, -4885, 3904, 4171, 946, -4885, 946, 946, -4885, -4885, 946, -4885, 3902, 481, -4885, 1760, 1481, 4216, -4885, 4219, 30011, -4885, 1597, 3287, -4885, 4271, 4352, -4885, -4885, -4885, -4885, 3064, 1820, 3970, -4885, -4885, 61209, 346, -4885, 4202, 761, 4126, 64394, 1361, 292, 3921, 4043, -4885, 2586, 2586, 3973, 76679, 4358, -4885, -4885, -4885, -4885, -4885, -4885, 57114, 3579, -4885, 4143, 1152, 4242, 76679, 30011, 3701, -4885, 1640, 4245, -4885, 1044, -4885, -4885, 4051, 3377, -4885, 1704, 76679, 4142, 64394, 3452, 2179, -4885, -4885, -4885, 3981, 4354, 2159, -4885, 1361, 3995, 251, 76679, -4885, 3982, 4375, -4885, -4885, 4249, 4144, 3943, -4885, 12966, 12966, 1044,101109, 6424, 99786, 4256, 76679, 173, 4225, 272, -4885, 272, 272, -4885, 76679, -4885, 3384, 3384, 3384, 3384, 3384, -4885, 4150, -4885, -4885, 4208, -4885, 272, 56659, -4885, -4885, -4885, -4885, -4885, 1070, -4885, -4885, -4885, -4885, -4885, 12966, -4885, -4885, -4885, -4885, 8016, 35203, 4262, -4885, 3957, 99786, -4885, 3958, 2180, 2192, 36607, 4111, -4885, -4885, -4885, 8036, 4006, 12966, 4065, 3960, 3961, 1925, 1925, 13328, 2196, -4885, 1925, 30011, 30011, 1925, 1925, 30011, -4885, -4885, 8099, 4151, -4885, -4885, 8664, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 54384, 3967, 3630, 75769, 3968, 76679, 1729, 38893, -4885, -4885, 984, -4885, 38893, 4226, -4885, 38893, 61209, -4885, 76679, 3972, 76679, -4885, 32843, 30011, 4007, -4885, 4007, -4885, 3974, 76679, 2719, -4885, 60, -4885, -4885, 4366, 39807, 4318, 30011, -4885, -4885, -4885, -4885, 56659, 4183, 56659, 1760, 8763, 4164, 39807, 48042, 76679, 76679, 76679, 4136, 4164, 3994, 3064, -4885, -4885, -4885, -4885, -4885, -4885, 3985, -4885, -4885, -4885, -4885, 4063, -4885, -4885, 813, 3319, -4885, 2198, -4885, -4885, 4419, 4311, -4885, -4885, -4885, -4885, -4885, -4885, 4166, -4885, -4885, 44382, 57114, 76679, -4885, 4067, -4885, -4885, -4885, -4885, -4885, 41636, 47130, -4885, 1115, 3996, 3998, 239, -4885, -4885, -4885, 76679, 9410, 4000, 826, 3319, 76679, 76679, 4005, 4010, 4011, 1684, 39, 1777, 3384, 4306, -4885, -4885, -4885, -4885, 4166, -4885, -4885, -4885, 946, -4885, -4885, -4885, -4885, 53474, -4885, 3109, -4885, 1649, 4344, 61209, 4431, 4431, 76679, -4885, 9781, 4210, -4885, -4885, 4291, 3970, 4237, 4287, -4885, 4013, 76679, 219, 4014, 76679, 4016, 4127, 1031, 1031, 76679, 76679, 76679, 2211, 2081, 2586, 3790, 328, 4335, 64394, 4384, 3704, 429, -4885, -4885, 1640, -4885, 81, 4360, 4064, -4885, 76679, 4459, 76679, 3452, 3610, 76679, 4021, -4885, -4885, 65759, 4232, 2355,101550, 3820, 3995, 2159, 4158, -4885, 4159, -4885, 1047, -4885, 2081, 76679, 70764, 39807, -4885,100227, -4885, 2217, -4885, -4885, 4097, 3506, 4139, 4140, 4036, 76679, 106, -4885, -4885, -4885, -4885, -4885, 76679, -4885, 483, -4885, -4885, 3337, 35203, 99786, 2230, 30011, -4885, 30011, -4885, 4456, -4885, -4885, -4885, 107, -4885, -4885, -4885, 1925, 1925, 1925, -4885, 4457, 3495, -4885, -4885, 2237, 4480, 34259, 4443, -4885, 76679, 2241, -4885, 30011, 4048, -4885, -4885, 38893, 984, 4052, 2255, 76679, 2256, 99786, 4058, 28, 4066, 23489, 4047, -4885, -4885, -4885, -4885, -4885, 12966, 12966, 76679, -4885, -4885, -4885, -4885, 4105, 76679, 2262, -4885, 105, 12966, 1701, 1558, 483, 4278, 3064, -4885, 4068, -4885, -4885, -4885, 917, 917, 76679, 3064, 76679, 3970, -4885, 76679, 4148, -4885, -4885, 53474, 4340, -4885, 4115, -4885, 945, 3319, 76679, 99786, -4885, 128, 4378, -4885, 99786, 99786, -4885, -4885, -4885, 30011, 4155, -4885, -4885, -4885, 312, 329, 63484, -4885, -4885, 76679, 76679, 76679, 76679, 76679, 272, -4885, 2276, -4885, 40721, -4885, -4885, 2933, 1044, 2933, 1422, -4885, -4885, 2933, -4885, 2933, -4885, 3902, 1044, 4431, 936, -4885, -4885, -4885, 2017, 4292, 4072, -4885, 895, 4286, 4170, 4083, -4885, 61209, 4542, 3610, 4059, 76679, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 2287, 3704, 4407, 3377, 3982, -4885, 76679, 4119, -4885, 38893, -4885, -4885, -4885, 2933, -4885, 1440, 4089, 4421, 3704, 2081, 1813, -4885, 3995, 3610, 4059, -4885, -4885, -4885, 4090, -4885, 3907, 2159, 3820, -4885, -4885, 4501, 4303, 4507, 3452, -4885, 3264, 2289, -4885, 6424,101109, 99786, 4449, 4156, 4157, -4885, -4885, 4162, 76679, -4885, -4885, 3704, -4885, 3337, 2294, -4885, 2295, 2302, 4267, 4154, -4885, 30011, 944, 3702, 54384, 4112, -4885, 35203, 2303, -4885, 3241, 76679, 2320, -4885, 12966, 76679, -4885, -4885, 30011, -4885, 2326, -4885, 30011, 4113, 30011, -4885, 32843, 4110, -4885, 4554, 2081, -4885, 3506, 39807, -4885, 4234, -4885, 4429, -4885, 76679, 3970, 47130, 3479, 3479, 1820, 3970, 2333, -4885, -4885, 76679, -4885, 4072, 30011, -4885, 4211, -4885, -4885, 2350, 1275, 4282, 4282, 2357, 2361, 9884, 76679, -4885, -4885, -4885, -4885, -4885, -4885, 2367, -4885, -4885, -4885, -4885, 2368, -4885, 2372, 2268, 3389, 1777, 3389, -4885, 3384, -4885, -4885, 53474, -4885, 54839, -4885, -4885, -4885, 1044, -4885, 1044, 4343, 76679, 49407, 1044, 1044, -4885, -4885, -4885, -4885, -4885, 4472, 4412, -4885, 2820, -4885, -4885, -4885, -4885, 487, -4885, 4338, 4339, 76679, -4885, 4135, -4885, 2373, 1361, 4257, 3704, -4885, -4885, 76679, 4577, 4578, -4885, 1268, 76679, 3701, 76679, -4885, -4885, -4885, 30011, 219, -4885, 3982, 3452, 2159, 1361, 3995, 2355, 40264, -4885, 3820, 3907, 4342, -4885, 4345, -4885, 4160, 4428, 6424, -4885, -4885, 330, 4460, 4461, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 3432, 33315, 33315, 33315, 4173, -4885, -4885, 76679, 3287, 4163, 34259, 53474, 2379, -4885, 98463, -4885, 2383, 2392, -4885, 2413, 32843, 2425, -4885, 76679, 4165, -4885, -4885, -4885, 43008, 56659, 917, 4190, 4175, -4885, -4885, 4237, -4885, -4885, 1760, 3319, -4885, 12966, 76679, 61209, 4575, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 3319, 4235, 312, -4885, 329, -4885, 63484, -4885, 76679, -4885, -4885, 2436, -4885, -4885, -4885, 76679, 3798, -4885, 3798, -4885, -4885, 4290, -4885, 987, 874, 874, 4514, -4885, 4217, -4885, -4885, 4176, -4885, 4630, 4289, 76679, -4885, -4885, 1115, 2081, 64394, 3704, -4885, -4885, 9963, 61209, -4885, -4885, 3820, 3995, 2159, 30011, 2438, -4885, 4278, 377, 3907, -4885, -4885, -4885, 39807, 4172, 3377, -4885, -4885, 2978, 61209, 61209, 34731, 4297, 1010, 11808, 4503, -4885, 4503, 4503, -4885, 2444, 36607, -4885, -4885, -4885, 76679, 4373, 1134, -4885, 4329, -4885, 2453, -4885, -4885, -4885, 1391, 483, 3479, 4180, -4885, -4885, 4286, 1760, -4885, 3319, -4885, 76679, -4885, 4184, -4885, -4885, -4885, -4885, -4885, 54839, 3798, 4064, -4885, -4885, 4636, -4885, 1138, -4885, -4885, -4885, -4885, 76679, 3704, 3886, 3982, -4885, -4885, 4187, 3907, 2159, 3820, 10457, -4885, 40264, 76679, 76679, -4885, 2457, 39807, 3907, -4885, 2628, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 4182, 4185, 4632, -4885, -4885, -4885, -4885, -4885, 1123, -4885, -4885, -4885, -4885, 3630, -4885, -4885, 35203, 35203, 4409, -4885, 1134, -4885, 4196, -4885, -4885, -4885, -4885, -4885, 30011, 1760, -4885, -4885, -4885, 312, -4885, 4527, -4885, -4885, -4885, 3704, -4885, -4885, 53019, -4885, 3820, 3907, 4278, -4885, -4885, -4885, 4428, -4885, 2458, 3506, 2142, -4885, -4885, 2335, 2184, 4288, 4510, 33787, 4347, -4885, 4400, -4885, 4606, 3287, 3287, -4885, -4885, 30011, 10550, 1760, 2470, 219, -4885, -4885, 2475, -4885, -4885, -4885, -4885, 3907, -4885, 76679, 3377, -4885, 39807, -4885, -4885, 2628, 4315, 4317, -4885, -4885, -4885, 76679, 10920, -4885, -4885, 61209, -4885, 53019, -4885, -4885, 3907, -4885, -4885, 4251, 4252, 2476, -4885, 4220, -4885, 3506, 4525, 4526, -4885, 53019, -4885, 61209, 61209, 2477, -4885, -4885, -4885 }; /* 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[] = { 1672, 1447, 632, 1533, 1532, 1447, 0, 255, 0, 1537, 0, 1447, 426, 1125, 0, 0, 0, 0, 632, 1447, 0, 1672, 0, 0, 0, 0, 0, 1685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1447, 0, 0, 1692, 0, 0, 0, 0, 1685, 0, 1539, 0, 0, 0, 0, 0, 2, 4, 37, 72, 73, 31, 30, 92, 55, 18, 63, 126, 125, 127, 42, 38, 80, 26, 28, 39, 43, 65, 67, 45, 56, 104, 64, 24, 62, 87, 68, 90, 50, 12, 13, 51, 14, 52, 15, 53, 16, 100, 74, 93, 35, 61, 23, 44, 70, 71, 5, 46, 82, 78, 11, 57, 58, 60, 84, 85, 86, 109, 88, 121, 41, 118, 97, 98, 115, 99, 116, 9, 101, 54, 17, 112, 111, 113, 81, 47, 83, 69, 91, 110, 27, 114, 19, 20, 22, 21, 59, 29, 66, 32, 89, 117, 107, 103, 122, 120, 128, 105, 75, 7, 8, 94, 6, 25, 49, 10, 34, 33, 48, 40, 124, 36, 1537, 96, 108, 95, 76, 102, 79, 106, 123, 77, 119, 1645, 1644, 1694, 1648, 1671, 0, 1660, 1446, 1445, 1431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1457, 2274, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2629, 2305, 2306, 2307, 2579, 2580, 2630, 2581, 2582, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2583, 2584, 2316, 2317, 2318, 2319, 2320, 2585, 2631, 2321, 2322, 2323, 2324, 2325, 2632, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2633, 2335, 2336, 2337, 2634, 2338, 2339, 2340, 2341, 2342, 2343, 2586, 2587, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2588, 2371, 2372, 2373, 2589, 2374, 2375, 2376, 2590, 2377, 2378, 2379, 2635, 2636, 2380, 2381, 2382, 2383, 2384, 2591, 2592, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2637, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2638, 2593, 2404, 2405, 2406, 2407, 2594, 2595, 2596, 2408, 2639, 2640, 2409, 2641, 2410, 2411, 2412, 2413, 2414, 2415, 2597, 2642, 2416, 2643, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2598, 2644, 2599, 2436, 2437, 2438, 2600, 2439, 2440, 2645, 2441, 2601, 2442, 2602, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2603, 2646, 2453, 2647, 2604, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2605, 2465, 2606, 2468, 2466, 2467, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2607, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2648, 2497, 2498, 2499, 2500, 2501, 2608, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2609, 2518, 2519, 2649, 2520, 2521, 2610, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2611, 2535, 2536, 2537, 2650, 2538, 2539, 2540, 2541, 2542, 2543, 2612, 2613, 2544, 2545, 2614, 2546, 2615, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2616, 2617, 2564, 2651, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2576, 2577, 2578, 130, 0, 0, 2248, 2275, 2276, 2279, 2274, 397, 396, 1635, 2242, 2275, 1536, 1514, 632, 0, 1434, 425, 1672, 0, 0, 0, 0, 0, 0, 0, 0, 864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 451, 450, 0, 0, 0, 1093, 456, 0, 0, 0, 0, 0, 620, 1584, 2466, 1582, 1636, 256, 259, 260, 257, 258, 2264, 0, 1226, 1227, 1229, 0, 0, 0, 1239, 904, 905, 0, 0, 0, 913, 0, 0, 0, 902, 0, 0, 0, 918, 0, 915, 0, 0, 919, 916, 899, 917, 906, 0, 898, 0, 0, 1239, 920, 0, 0, 900, 0, 0, 0, 0, 1435, 1581, 457, 1672, 0, 1558, 1559, 1560, 1537, 1549, 1561, 1554, 1556, 1555, 1557, 1553, 2263, 2290, 1028, 1028, 1028, 1028, 1025, 1026, 1028, 1028, 1028, 2486, 0, 0, 1007, 0, 1009, 2265, 1028, 1033, 518, 518, 518, 0, 1032, 1037, 518, 0, 1428, 1466, 2247, 1684, 0, 1008, 1427, 2544, 1572, 0, 0, 1254, 1250, 1252, 1253, 1251, 0, 0, 0, 2504, 1439, 240, 2515, 2612, 2544, 239, 234, 235, 208, 2294, 0, 0, 1032, 0, 1436, 1437, 990, 1691, 1689, 0, 2229, 2314, 2329, 2419, 231, 2497, 2505, 2515, 2612, 2544, 2575, 187, 197, 192, 0, 249, 2515, 2612, 2544, 245, 1457, 0, 1661, 1793, 2238, 0, 1430, 1429, 1538, 0, 1541, 0, 2481, 1665, 1668, 1543, 1666, 1657, 0, 0, 1, 1672, 0, 1548, 1688, 1688, 0, 1688, 0, 1649, 1657, 1652, 1656, 0, 0, 0, 0, 0, 0, 0, 923, 0, 1469, 2243, 1078, 0, 0, 0, 0, 0, 0, 0, 1134, 1133, 2280, 2270, 2271, 0, 2268, 2269, 2281, 2282, 2283, 0, 2391, 0, 0, 0, 2140, 2151, 2152, 2153, 2318, 2374, 2148, 2149, 2150, 2142, 2143, 2144, 2145, 2146, 2147, 0, 0, 1221, 2141, 0, 2391, 0, 0, 0, 157, 0, 134, 0, 0, 0, 2391, 0, 0, 0, 0, 0, 0, 0, 2391, 0, 0, 0, 0, 0, 157, 2424, 0, 134, 2391, 0, 0, 1451, 0, 0, 0, 1453, 1456, 1432, 0, 2221, 0, 2222, 2249, 1517, 0, 2238, 0, 0, 0, 959, 952, 0, 960, 967, 0, 0, 969, 0, 0, 953, 0, 0, 0, 0, 0, 972, 973, 0, 0, 974, 954, 975, 955, 976, 956, 977, 0, 0, 0, 0, 957, 0, 0, 0, 1443, 0, 1574, 1576, 1575, 1573, 518, 0, 0, 0, 0, 2391, 0, 0, 134, 1502, 0, 2391, 134, 0, 0, 455, 454, 134, 2268, 453, 452, 2318, 2374, 0, 1124, 0, 1386, 134, 2391, 0, 180, 2391, 706, 2391, 1543, 0, 635, 0, 0, 819, 2424, 134, 0, 0, 0, 0, 0, 0, 1096, 0, 0, 0, 0, 619, 632, 1585, 1583, 0, 1230, 233, 232, 1228, 911, 2391, 1166, 346, 346, 0, 0, 2391, 1488, 2277, 1868, 1897, 1875, 1897, 1897, 1864, 1864, 2358, 1877, 2391, 1865, 1866, 1902, 0, 1897, 1864, 1869, 0, 1867, 1905, 1905, 1892, 346, 927, 1849, 1850, 1851, 1852, 1878, 1879, 1853, 1884, 1885, 1889, 1854, 1919, 1864, 2278, 912, 0, 903, 2391, 346, 1130, 2391, 2272, 167, 0, 901, 2318, 2374, 2391, 346, 1223, 0, 2391, 346, 2391, 163, 2391, 346, 2391, 346, 2391, 636, 0, 0, 2391, 346, 2391, 2424, 165, 0, 2391, 346, 921, 2391, 346, 2240, 2391, 0, 0, 1577, 0, 1551, 2616, 1566, 0, 1562, 1569, 1565, 1672, 1028, 1027, 0, 1028, 0, 1028, 0, 1028, 0, 1028, 0, 0, 0, 1028, 2266, 2267, 1010, 0, 1034, 0, 0, 1041, 1040, 1039, 0, 0, 0, 1042, 0, 1797, 1612, 0, 1425, 1442, 0, 0, 0, 1096, 1257, 0, 1255, 1246, 1247, 1438, 238, 236, 0, 0, 0, 0, 0, 0, 1444, 0, 0, 0, 0, 2251, 2253, 2254, 2154, 2224, 0, 2580, 2581, 2582, 2213, 0, 2583, 2584, 2585, 2631, 2050, 2037, 2046, 2051, 2038, 2040, 2047, 2586, 2587, 1985, 2588, 2589, 2261, 2590, 2591, 2592, 2594, 2595, 2596, 2597, 2042, 2044, 2598, 2599, 0, 2262, 2601, 2602, 2448, 2604, 2605, 2607, 2608, 2048, 2610, 2611, 2612, 2613, 2614, 2615, 2260, 0, 2049, 2617, 2619, 2620, 2621, 2622, 2624, 2625, 2626, 2627, 0, 0, 0, 2235, 0, 2017, 0, 1857, 1858, 1880, 1881, 1859, 1886, 1887, 1860, 0, 2234, 1922, 2099, 2016, 2033, 0, 2022, 2023, 0, 2015, 2011, 1674, 2230, 0, 2012, 2250, 2252, 2214, 1674, 2228, 200, 251, 0, 252, 2236, 2515, 188, 230, 202, 229, 203, 201, 0, 2316, 189, 0, 0, 190, 0, 0, 0, 0, 248, 246, 0, 1433, 0, 1795, 1794, 2239, 932, 1526, 1524, 1525, 1523, 0, 1520, 1522, 1540, 1537, 2164, 0, 1667, 0, 0, 0, 1647, 1646, 3, 1531, 0, 1529, 1545, 1547, 1527, 1543, 1686, 1687, 0, 0, 0, 0, 0, 0, 0, 0, 1742, 1702, 1703, 1705, 1739, 1743, 1751, 0, 1653, 0, 0, 1799, 0, 0, 0, 0, 0, 0, 1165, 0, 0, 0, 0, 0, 924, 0, 0, 0, 1475, 0, 1477, 1478, 1479, 0, 0, 1480, 1481, 1469, 242, 1487, 1485, 1468, 1470, 1483, 0, 0, 0, 0, 0, 0, 0, 1494, 0, 171, 172, 0, 648, 632, 0, 2391, 0, 0, 0, 0, 0, 1173, 1180, 0, 0, 0, 0, 0, 0, 0, 0, 1174, 1172, 1175, 244, 1184, 1203, 1206, 0, 1132, 1135, 0, 0, 0, 0, 0, 1314, 0, 0, 0, 0, 1314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 267, 269, 280, 341, 611, 0, 0, 0, 614, 0, 2391, 0, 0, 0, 0, 1225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1206, 0, 0, 0, 0, 0, 0, 0, 0, 132, 133, 138, 0, 0, 0, 0, 0, 1206, 0, 0, 0, 0, 0, 0, 597, 610, 0, 0, 0, 0, 0, 607, 0, 0, 134, 272, 587, 593, 0, 0, 0, 713, 712, 0, 0, 0, 0, 1402, 1401, 0, 0, 0, 0, 1492, 1491, 0, 0, 0, 0, 0, 1314, 0, 261, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 389, 390, 0, 0, 0, 138, 0, 0, 0, 0, 274, 0, 0, 1452, 1449, 1450, 0, 1455, 0, 0, 0, 0, 2025, 0, 2168, 1694, 2166, 1150, 2220, 0, 2284, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2217, 2216, 2245, 2285, 2286, 2287, 2288, 2223, 0, 1513, 0, 966, 0, 0, 0, 0, 968, 0, 961, 0, 0, 958, 2318, 2374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 0, 0, 0, 428, 0, 0, 816, 0, 0, 0, 0, 0, 0, 827, 0, 1469, 1501, 0, 0, 0, 641, 0, 2391, 0, 136, 865, 0, 817, 456, 0, 0, 0, 1196, 1385, 136, 0, 0, 174, 0, 0, 710, 0, 0, 0, 0, 0, 0, 0, 0, 0, 755, 754, 0, 0, 0, 818, 0, 0, 136, 0, 2391, 590, 2391, 0, 518, 518, 0, 0, 1095, 1098, 0, 0, 0, 0, 0, 1639, 1641, 1640, 0, 1638, 0, 344, 345, 0, 1213, 814, 1238, 0, 0, 1896, 1883, 1891, 1890, 0, 1873, 1872, 1871, 0, 1870, 0, 1897, 1897, 1895, 1874, 1849, 0, 0, 0, 1901, 0, 1899, 0, 894, 1845, 1841, 0, 1908, 1909, 1910, 1907, 1920, 1906, 0, 1855, 1911, 1864, 1861, 914, 0, 0, 1207, 0, 0, 2391, 346, 2391, 0, 2391, 0, 0, 0, 1215, 346, 0, 1209, 0, 0, 1211, 0, 1403, 0, 910, 908, 907, 909, 0, 0, 892, 0, 0, 0, 2391, 346, 0, 0, 887, 0, 0, 889, 0, 0, 0, 0, 1672, 0, 219, 220, 218, 1567, 221, 1568, 1564, 1550, 0, 1018, 0, 1022, 0, 1013, 0, 1019, 0, 1014, 1011, 1012, 0, 1017, 0, 0, 519, 521, 0, 0, 2341, 2357, 0, 2380, 2412, 2413, 2472, 2500, 2505, 2511, 0, 2538, 2549, 0, 1043, 1073, 1038, 724, 0, 0, 1622, 1426, 2171, 0, 1672, 0, 0, 0, 0, 237, 209, 0, 0, 0, 1075, 2504, 1441, 989, 632, 0, 2013, 0, 2020, 2021, 2212, 0, 0, 0, 0, 0, 0, 2019, 2179, 0, 0, 0, 0, 0, 1945, 0, 0, 0, 2192, 0, 2198, 0, 0, 1982, 0, 0, 0, 0, 0, 0, 0, 0, 1946, 1926, 1927, 2017, 2164, 0, 2018, 2257, 0, 1919, 2233, 2154, 0, 2151, 2152, 2153, 0, 0, 0, 2227, 0, 2162, 0, 0, 1960, 2160, 1962, 0, 0, 0, 0, 2148, 2149, 2150, 2142, 2143, 2144, 2145, 2146, 2147, 2158, 1942, 0, 0, 2101, 0, 1941, 0, 0, 1755, 0, 2255, 2215, 1755, 253, 254, 250, 0, 0, 205, 204, 0, 223, 227, 228, 199, 226, 0, 222, 207, 2090, 2089, 206, 198, 195, 193, 210, 212, 213, 196, 194, 247, 0, 0, 0, 346, 1548, 0, 1535, 1752, 0, 1669, 0, 0, 1548, 0, 0, 1544, 1664, 1663, 1695, 1696, 1116, 1662, 1722, 1723, 0, 0, 0, 0, 1748, 1746, 1713, 1706, 1712, 0, 0, 1710, 0, 1714, 1922, 1741, 1651, 1700, 1701, 1704, 1650, 0, 1744, 0, 1625, 1742, 1705, 1609, 0, 1587, 0, 1800, 0, 0, 0, 0, 0, 1145, 1147, 0, 1146, 0, 1149, 0, 1158, 0, 0, 1144, 1163, 0, 1152, 1150, 0, 1490, 0, 0, 925, 0, 0, 0, 0, 1476, 0, 0, 2538, 241, 1479, 1484, 1471, 1482, 0, 0, 0, 0, 0, 1077, 1076, 0, 0, 1100, 0, 0, 0, 1497, 507, 0, 343, 0, 0, 0, 0, 0, 0, 0, 0, 812, 809, 0, 0, 808, 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 1314, 0, 718, 0, 1182, 0, 0, 1181, 0, 1185, 0, 0, 1183, 1178, 1179, 2505, 2515, 2544, 243, 1205, 0, 1204, 1200, 1127, 0, 1128, 0, 0, 0, 0, 0, 2367, 2391, 285, 305, 0, 1313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 328, 0, 0, 331, 330, 0, 0, 0, 0, 0, 335, 314, 0, 315, 0, 0, 334, 0, 0, 612, 613, 0, 0, 0, 0, 1314, 0, 276, 0, 0, 0, 0, 0, 0, 0, 1222, 0, 741, 0, 0, 0, 2505, 1201, 0, 0, 0, 0, 0, 1389, 0, 0, 160, 0, 155, 159, 0, 0, 0, 2505, 1202, 0, 0, 0, 0, 595, 596, 609, 0, 600, 601, 598, 602, 603, 0, 0, 0, 0, 0, 0, 0, 594, 0, 0, 708, 707, 711, 0, 0, 0, 1398, 0, 1196, 0, 0, 1397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1259, 1258, 0, 0, 0, 0, 0, 0, 855, 0, 0, 0, 0, 0, 0, 0, 0, 162, 728, 0, 727, 0, 156, 161, 0, 0, 0, 0, 0, 0, 0, 217, 1448, 1454, 1694, 1694, 1694, 2031, 0, 0, 0, 0, 1693, 2218, 2221, 1516, 2246, 1515, 0, 0, 0, 0, 970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 962, 963, 964, 965, 0, 0, 0, 0, 0, 403, 0, 0, 0, 2277, 0, 843, 815, 0, 0, 0, 829, 0, 832, 835, 0, 1467, 475, 0, 0, 638, 686, 0, 0, 459, 169, 0, 0, 0, 0, 743, 0, 0, 0, 1384, 131, 178, 180, 457, 0, 179, 181, 183, 184, 185, 182, 186, 0, 705, 709, 0, 0, 0, 0, 634, 0, 0, 0, 0, 0, 756, 760, 759, 763, 761, 0, 757, 0, 0, 1820, 0, 0, 154, 0, 0, 585, 589, 0, 0, 0, 0, 459, 561, 357, 2391, 0, 518, 0, 2391, 0, 1097, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1637, 346, 1167, 0, 1489, 0, 0, 0, 346, 1894, 1893, 1846, 1842, 0, 0, 0, 0, 928, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1862, 346, 1131, 168, 2273, 0, 896, 0, 0, 0, 0, 346, 1224, 884, 346, 164, 346, 346, 637, 0, 346, 166, 0, 0, 0, 629, 346, 922, 346, 2241, 0, 346, 1580, 2391, 518, 1552, 1563, 1015, 1024, 1023, 1021, 1020, 1016, 0, 1035, 0, 517, 0, 0, 0, 0, 0, 1051, 1052, 0, 0, 1048, 1053, 0, 1049, 1050, 1055, 1045, 1044, 1056, 1057, 0, 0, 1075, 722, 0, 0, 0, 0, 1619, 0, 1617, 0, 1798, 1621, 1610, 1571, 0, 1570, 0, 578, 0, 0, 1256, 0, 0, 1032, 0, 0, 346, 1440, 0, 991, 997, 0, 0, 0, 0, 0, 0, 0, 1000, 1001, 0, 1002, 993, 1003, 994, 1004, 0, 995, 0, 0, 0, 0, 2225, 2175, 0, 2176, 0, 0, 2211, 2207, 0, 0, 0, 0, 0, 2180, 2183, 2184, 2185, 2182, 2186, 2181, 0, 0, 2187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2608, 0, 0, 0, 0, 1986, 0, 0, 2135, 0, 2164, 2197, 0, 0, 0, 0, 0, 0, 2164, 2203, 0, 0, 0, 0, 2088, 0, 2085, 0, 0, 0, 0, 2224, 0, 0, 2258, 1923, 1937, 1938, 1939, 1943, 2232, 0, 2226, 0, 0, 1924, 1951, 0, 2204, 1978, 0, 1983, 1966, 0, 1959, 0, 1964, 1968, 1947, 0, 1944, 0, 2227, 2163, 0, 2161, 0, 1934, 1935, 1936, 1928, 1929, 1930, 1931, 1932, 1933, 1940, 2139, 2137, 2138, 0, 0, 0, 2109, 0, 0, 1963, 2383, 2419, 0, 1685, 1685, 1685, 1673, 1683, 2231, 0, 1815, 1694, 1815, 2237, 0, 0, 1919, 0, 1796, 930, 931, 929, 1519, 1521, 1534, 1548, 2165, 1542, 1672, 1528, 1530, 1546, 0, 1114, 1115, 0, 1119, 2608, 2502, 0, 0, 0, 0, 1715, 1749, 0, 1740, 0, 2251, 1716, 2250, 1717, 1720, 1721, 1711, 1750, 1623, 0, 1745, 1655, 1654, 0, 1818, 0, 0, 0, 1601, 1589, 0, 1801, 0, 1755, 1627, 0, 2224, 1753, 1360, 1260, 1323, 1148, 0, 1864, 1159, 0, 1143, 0, 1142, 1864, 0, 1160, 0, 1864, 1361, 1261, 1324, 926, 1362, 1262, 1325, 1363, 1263, 1486, 1474, 1473, 1472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 793, 2391, 346, 1495, 1364, 0, 1264, 342, 1496, 1326, 1500, 811, 810, 0, 0, 1327, 0, 647, 0, 651, 0, 653, 654, 655, 0, 0, 0, 656, 0, 2318, 2374, 658, 661, 662, 663, 670, 675, 665, 0, 0, 677, 671, 0, 0, 0, 0, 0, 0, 683, 688, 0, 0, 0, 0, 0, 0, 0, 1176, 1177, 1365, 1267, 0, 1328, 1126, 0, 1268, 170, 0, 0, 268, 2391, 287, 0, 690, 793, 0, 1316, 284, 312, 0, 0, 327, 322, 323, 321, 2391, 346, 2391, 346, 0, 0, 0, 0, 0, 324, 319, 320, 316, 0, 0, 329, 2293, 2359, 2516, 0, 694, 696, 0, 701, 332, 1288, 353, 352, 351, 0, 336, 0, 358, 361, 333, 310, 313, 311, 307, 281, 0, 0, 0, 0, 0, 0, 0, 0, 2244, 0, 0, 1217, 0, 1368, 1329, 0, 1351, 0, 0, 0, 0, 735, 0, 1371, 1274, 1332, 1390, 1392, 1382, 1275, 1391, 158, 1303, 147, 0, 0, 143, 0, 0, 0, 0, 137, 0, 1372, 1276, 1333, 0, 1373, 1277, 0, 0, 273, 588, 599, 604, 1282, 608, 605, 1341, 606, 1380, 1278, 1376, 1306, 1336, 1383, 1399, 1279, 1196, 1394, 1396, 0, 1314, 0, 262, 264, 0, 283, 0, 1280, 0, 1334, 1375, 1305, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1503, 0, 0, 0, 0, 0, 0, 346, 0, 0, 0, 1316, 2391, 346, 1374, 0, 1311, 0, 1349, 0, 391, 0, 1304, 0, 0, 275, 1284, 1343, 0, 0, 215, 214, 216, 0, 0, 0, 0, 2169, 2170, 0, 2167, 2026, 2220, 0, 979, 937, 978, 0, 2357, 0, 936, 938, 0, 0, 0, 939, 0, 943, 944, 0, 0, 0, 935, 933, 934, 402, 0, 427, 400, 401, 403, 0, 0, 842, 0, 0, 0, 0, 831, 0, 0, 0, 1493, 0, 134, 645, 0, 0, 0, 640, 685, 690, 0, 0, 0, 0, 458, 462, 466, 467, 468, 0, 0, 0, 0, 148, 135, 0, 873, 0, 518, 0, 745, 1388, 1387, 1195, 0, 180, 173, 0, 0, 706, 0, 1543, 0, 0, 357, 826, 824, 823, 825, 0, 0, 0, 847, 822, 0, 1819, 1821, 0, 0, 0, 0, 0, 0, 578, 461, 0, 0, 521, 0, 0, 565, 0, 0, 0, 0, 357, 0, 0, 0, 1137, 0, 1155, 1138, 0, 0, 0, 0, 1189, 1122, 1190, 1168, 1123, 0, 0, 617, 1642, 1643, 0, 1214, 0, 0, 1863, 1876, 895, 0, 1904, 1903, 1905, 1905, 0, 1847, 0, 1888, 1913, 1914, 1915, 1916, 1917, 1918, 0, 1912, 1856, 1208, 346, 0, 346, 0, 346, 1216, 1210, 1212, 1404, 0, 893, 0, 0, 346, 886, 888, 0, 890, 0, 1036, 520, 0, 0, 0, 0, 0, 0, 1047, 615, 1054, 0, 1068, 1063, 1065, 0, 1069, 721, 0, 0, 1620, 1613, 1615, 1614, 0, 0, 1611, 2172, 885, 0, 584, 1248, 1249, 0, 0, 346, 0, 1070, 0, 0, 998, 992, 0, 0, 996, 0, 0, 0, 999, 0, 0, 1690, 2173, 2174, 0, 0, 0, 2208, 0, 0, 2063, 0, 2039, 2041, 2053, 0, 2064, 2024, 2065, 2043, 2045, 0, 2155, 0, 0, 2054, 0, 1988, 1989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2004, 2003, 2055, 2134, 0, 0, 2195, 2196, 2056, 0, 0, 2202, 0, 0, 0, 2061, 2066, 0, 0, 0, 0, 2072, 0, 2093, 0, 0, 0, 2014, 2165, 0, 0, 0, 0, 0, 0, 0, 0, 1984, 1967, 1961, 0, 1965, 1969, 0, 0, 0, 1955, 0, 0, 1953, 1979, 1949, 0, 0, 1980, 0, 0, 0, 2032, 0, 0, 1685, 1685, 1685, 1685, 1682, 0, 0, 0, 0, 2502, 2628, 0, 1779, 1754, 1756, 1766, 1779, 1784, 1779, 2034, 1813, 2035, 2238, 0, 1725, 0, 1725, 191, 0, 224, 211, 1518, 0, 1697, 0, 2156, 1119, 0, 1699, 1719, 1718, 0, 1709, 1747, 1707, 1624, 1608, 0, 1606, 1593, 1595, 1594, 0, 0, 1596, 2224, 0, 1606, 1588, 1632, 0, 0, 1818, 0, 1631, 0, 1864, 1140, 1141, 0, 1164, 0, 1080, 1081, 0, 1079, 0, 0, 0, 506, 1099, 0, 0, 0, 793, 0, 0, 510, 0, 1498, 0, 1381, 1302, 649, 650, 0, 664, 0, 673, 672, 0, 0, 0, 0, 0, 0, 0, 657, 679, 621, 680, 682, 0, 0, 681, 684, 687, 1314, 0, 719, 1290, 0, 1347, 1170, 1317, 0, 1129, 0, 0, 0, 0, 0, 0, 475, 306, 0, 0, 0, 0, 366, 0, 289, 298, 364, 304, 0, 1322, 338, 0, 309, 0, 302, 325, 317, 326, 318, 337, 339, 0, 698, 699, 697, 693, 0, 700, 702, 0, 355, 0, 0, 0, 1367, 0, 1314, 0, 277, 0, 1286, 0, 1345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1350, 0, 0, 0, 0, 740, 0, 737, 1318, 0, 0, 140, 139, 0, 146, 0, 1319, 0, 0, 0, 0, 1400, 0, 0, 0, 0, 0, 0, 373, 0, 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 392, 348, 0, 850, 0, 0, 0, 394, 0, 0, 0, 0, 0, 1366, 1269, 2029, 2030, 2027, 1694, 2219, 0, 0, 0, 950, 0, 0, 0, 0, 0, 0, 405, 406, 134, 404, 0, 0, 841, 2448, 2142, 2143, 839, 845, 836, 838, 840, 837, 0, 844, 793, 0, 0, 828, 833, 834, 0, 0, 0, 0, 0, 490, 0, 0, 0, 481, 0, 0, 1196, 474, 477, 478, 0, 0, 641, 644, 642, 643, 678, 0, 461, 497, 547, 0, 150, 0, 0, 151, 149, 0, 0, 357, 742, 0, 739, 0, 176, 457, 0, 710, 0, 0, 0, 1196, 633, 762, 765, 758, 0, 846, 848, 820, 0, 690, 0, 0, 590, 0, 518, 1581, 573, 0, 549, 461, 547, 559, 558, 560, 0, 567, 356, 0, 0, 578, 567, 0, 0, 1100, 1136, 0, 0, 0, 1186, 1191, 1187, 0, 0, 1151, 0, 1188, 1169, 1420, 1421, 1418, 1419, 0, 0, 0, 1634, 0, 1882, 0, 1900, 1898, 1843, 1848, 1921, 897, 0, 880, 0, 882, 346, 729, 0, 630, 346, 0, 0, 0, 0, 0, 0, 1046, 0, 1066, 0, 0, 1029, 1072, 0, 0, 1618, 1616, 576, 0, 1075, 0, 1030, 1074, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2177, 0, 2210, 2206, 0, 2036, 2178, 0, 2190, 2189, 2135, 0, 0, 1987, 1999, 2000, 2001, 2191, 0, 2009, 0, 0, 1996, 1997, 1998, 1990, 1991, 1992, 1993, 1994, 1995, 2002, 2200, 2199, 2193, 2194, 0, 2058, 2059, 2060, 2201, 2067, 0, 2308, 2094, 2071, 2087, 2086, 0, 0, 0, 2074, 0, 0, 2083, 0, 2136, 2259, 1925, 0, 0, 1952, 2205, 1970, 0, 0, 0, 1948, 2155, 0, 0, 0, 0, 0, 1957, 0, 0, 0, 2112, 2107, 2108, 2132, 0, 0, 0, 0, 0, 0, 1676, 1675, 1681, 1779, 1784, 1779, 0, 0, 1657, 0, 1766, 0, 1778, 1764, 1777, 0, 0, 1790, 1788, 0, 1790, 0, 1790, 0, 1758, 0, 1780, 1760, 1777, 1762, 0, 1805, 2239, 1814, 0, 1738, 2026, 1738, 0, 1670, 0, 1698, 1117, 1118, 1708, 2337, 1816, 0, 1607, 0, 0, 0, 1598, 1604, 1586, 0, 0, 1628, 1606, 1629, 1161, 0, 0, 1153, 1086, 1087, 1090, 1088, 1085, 1089, 0, 0, 0, 793, 0, 0, 528, 0, 1111, 1111, 0, 0, 512, 570, 523, 796, 0, 0, 0, 794, 346, 1265, 0, 674, 0, 0, 669, 667, 666, 668, 0, 622, 1379, 1266, 0, 0, 0, 0, 1171, 0, 0, 1289, 0, 286, 0, 471, 0, 0, 299, 0, 295, 0, 1315, 0, 0, 0, 0, 294, 368, 0, 365, 0, 346, 346, 340, 695, 354, 359, 360, 363, 0, 0, 0, 0, 0, 1321, 0, 0, 0, 0, 0, 0, 0, 874, 857, 0, 0, 875, 876, 0, 0, 0, 1219, 1220, 1218, 1352, 1353, 1358, 1355, 1354, 1357, 1359, 1356, 0, 1272, 0, 0, 733, 144, 141, 142, 145, 1300, 1283, 1342, 1395, 0, 0, 0, 1281, 0, 1335, 0, 1296, 1292, 0, 0, 0, 0, 0, 1378, 1310, 1340, 1377, 1308, 1338, 1307, 1337, 1309, 1339, 0, 1301, 0, 1823, 854, 0, 0, 0, 346, 346, 853, 731, 1285, 1344, 0, 0, 0, 940, 0, 0, 942, 945, 0, 947, 410, 430, 751, 813, 0, 0, 830, 792, 0, 479, 0, 485, 488, 0, 0, 492, 493, 491, 480, 1196, 518, 569, 782, 783, 0, 0, 803, 0, 639, 0, 459, 0, 494, 0, 0, 463, 153, 152, 0, 0, 0, 746, 750, 748, 747, 749, 744, 0, 735, 180, 2391, 0, 0, 0, 0, 571, 1393, 0, 775, 821, 0, 1822, 725, 0, 357, 586, 0, 0, 0, 459, 578, 0, 464, 469, 470, 475, 0, 561, 548, 0, 549, 0, 0, 575, 1465, 0, 579, 581, 0, 0, 0, 1139, 1156, 1157, 0, 0, 1120, 0, 0, 0, 0, 624, 346, 1844, 346, 346, 1245, 0, 891, 1060, 1061, 1062, 1059, 1058, 616, 0, 1064, 723, 0, 577, 346, 0, 1006, 984, 1005, 983, 985, 0, 987, 988, 982, 980, 981, 2209, 2052, 2062, 2188, 2134, 2165, 0, 0, 2010, 0, 0, 2057, 2618, 0, 0, 0, 0, 2091, 2092, 2073, 0, 2438, 2078, 0, 0, 0, 1976, 1974, 1971, 0, 1972, 1956, 0, 0, 1954, 1950, 0, 1981, 2098, 0, 2114, 2111, 2131, 2165, 1680, 1679, 1678, 1677, 1765, 1761, 1763, 0, 2623, 0, 1768, 1775, 0, 1757, 0, 1789, 1785, 0, 1786, 0, 0, 1787, 0, 0, 1759, 0, 1775, 0, 1812, 0, 0, 2103, 2256, 2103, 225, 0, 0, 1605, 1590, 0, 1591, 1597, 0, 0, 0, 0, 1633, 1626, 1154, 1162, 0, 0, 0, 508, 0, 523, 0, 0, 0, 1113, 1113, 0, 523, 0, 1196, 798, 797, 800, 795, 799, 1499, 0, 659, 660, 676, 1291, 0, 1348, 1298, 0, 1622, 288, 0, 691, 293, 0, 0, 290, 367, 369, 291, 292, 296, 348, 308, 301, 0, 0, 0, 1287, 0, 1346, 1294, 1369, 1270, 1330, 0, 0, 863, 0, 0, 0, 0, 1370, 1271, 1331, 0, 0, 0, 0, 1622, 0, 0, 0, 0, 0, 0, 0, 0, 1508, 0, 1320, 347, 852, 851, 348, 393, 1312, 2028, 0, 941, 948, 949, 946, 0, 399, 407, 431, 134, 0, 0, 1236, 1236, 0, 793, 0, 0, 476, 489, 0, 569, 527, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 738, 737, 175, 0, 459, 0, 690, 0, 769, 770, 764, 766, 0, 777, 781, 849, 0, 0, 0, 578, 461, 0, 0, 1578, 460, 0, 0, 472, 0, 565, 549, 561, 0, 562, 0, 566, 0, 1458, 0, 0, 0, 0, 1192, 0, 1198, 0, 1150, 1193, 0, 1815, 0, 0, 0, 0, 628, 1237, 881, 883, 730, 1067, 0, 1071, 346, 986, 2136, 2005, 0, 0, 0, 0, 2068, 0, 2069, 2096, 2095, 2075, 2079, 0, 2076, 2077, 1973, 1977, 1975, 1958, 2100, 0, 1694, 2133, 1808, 0, 1811, 0, 0, 1767, 0, 0, 1769, 0, 0, 1771, 1773, 0, 0, 0, 0, 0, 0, 2242, 2336, 2592, 2499, 0, 1724, 1726, 1729, 1731, 1730, 1732, 1728, 1737, 0, 1659, 1658, 2157, 1817, 0, 0, 0, 1101, 0, 1630, 1068, 0, 346, 1111, 1196, 529, 2448, 530, 1110, 1112, 1116, 1116, 0, 1196, 0, 569, 652, 0, 0, 270, 689, 0, 0, 300, 350, 362, 0, 1622, 0, 0, 861, 870, 870, 858, 0, 0, 877, 1273, 734, 0, 0, 265, 1297, 1293, 0, 0, 0, 1510, 1511, 0, 0, 0, 0, 0, 346, 951, 0, 433, 440, 411, 416, 1502, 0, 1502, 0, 413, 417, 1502, 412, 1502, 409, 410, 0, 1236, 0, 1233, 1232, 791, 0, 516, 592, 483, 0, 538, 0, 0, 804, 0, 0, 461, 547, 0, 505, 498, 499, 500, 501, 502, 503, 504, 496, 495, 0, 690, 867, 357, 1465, 732, 0, 0, 703, 0, 767, 772, 771, 1502, 776, 0, 0, 0, 690, 0, 1581, 574, 549, 461, 547, 465, 475, 551, 0, 552, 567, 561, 565, 563, 564, 0, 0, 0, 578, 1512, 1100, 0, 1197, 0, 0, 0, 0, 0, 0, 1240, 623, 0, 0, 627, 618, 690, 1031, 2006, 0, 2007, 0, 0, 0, 2081, 2080, 0, 2118, 1813, 0, 0, 1807, 0, 0, 1837, 0, 0, 0, 1776, 1792, 0, 1772, 1770, 0, 1781, 0, 1783, 0, 0, 0, 1733, 0, 2102, 2104, 0, 0, 1603, 1815, 0, 1600, 0, 1082, 0, 1083, 1113, 569, 0, 1119, 1119, 518, 569, 0, 793, 1299, 0, 692, 592, 0, 303, 0, 278, 1295, 0, 0, 872, 872, 0, 0, 0, 0, 380, 387, 386, 381, 379, 388, 0, 384, 378, 377, 382, 0, 375, 0, 0, 1504, 0, 1505, 1506, 1509, 395, 408, 0, 438, 0, 436, 435, 437, 0, 424, 0, 0, 0, 0, 0, 0, 398, 429, 1231, 1235, 1234, 0, 0, 484, 0, 486, 524, 525, 526, 0, 487, 534, 535, 0, 801, 0, 806, 0, 0, 0, 690, 546, 714, 0, 0, 0, 1459, 0, 0, 572, 0, 778, 779, 774, 0, 0, 726, 1465, 578, 561, 0, 549, 473, 0, 446, 565, 567, 0, 1462, 0, 580, 0, 1107, 1121, 1199, 1194, 1424, 0, 0, 626, 625, 720, 2008, 2084, 2070, 2097, 2082, 2113, 0, 0, 0, 0, 1806, 1809, 0, 1840, 0, 0, 0, 0, 1826, 0, 1774, 0, 0, 1782, 0, 0, 0, 1727, 0, 0, 1592, 1602, 1102, 0, 0, 1116, 533, 0, 1104, 1103, 527, 793, 522, 509, 1622, 297, 349, 0, 0, 0, 868, 871, 859, 860, 879, 878, 736, 1622, 0, 0, 371, 0, 370, 0, 374, 0, 434, 443, 0, 441, 414, 419, 0, 423, 421, 420, 415, 418, 0, 515, 0, 0, 0, 0, 536, 0, 537, 568, 0, 805, 0, 0, 0, 716, 866, 0, 0, 459, 690, 768, 773, 0, 0, 1460, 1579, 565, 549, 561, 0, 0, 553, 1111, 1111, 567, 444, 1463, 1464, 0, 0, 357, 1423, 1422, 1672, 0, 0, 2579, 2337, 2551, 0, 2130, 2119, 2130, 2130, 2110, 0, 0, 1838, 1839, 1824, 0, 0, 1828, 1791, 1804, 1735, 0, 1734, 2105, 2106, 1815, 346, 1119, 0, 793, 531, 538, 511, 271, 1622, 862, 0, 266, 0, 385, 383, 376, 1507, 439, 0, 422, 781, 591, 543, 0, 542, 0, 540, 539, 802, 807, 0, 690, 856, 1465, 704, 780, 0, 567, 561, 565, 0, 550, 0, 1113, 1113, 448, 0, 0, 567, 1406, 1672, 1405, 1407, 1415, 1412, 1414, 1413, 1411, 1243, 1244, 0, 2123, 2122, 2121, 2125, 2124, 0, 2117, 2115, 2116, 1810, 0, 1827, 1830, 0, 0, 0, 1836, 1829, 1831, 0, 1802, 1736, 1599, 1084, 1105, 0, 513, 793, 279, 869, 0, 442, 0, 541, 545, 544, 690, 715, 1461, 786, 447, 565, 567, 1111, 554, 556, 555, 1107, 1108, 0, 1815, 0, 1416, 1410, 1657, 1644, 0, 0, 0, 0, 2127, 0, 2128, 0, 1833, 1834, 1835, 1832, 0, 0, 514, 0, 0, 717, 788, 0, 784, 787, 789, 790, 567, 445, 1113, 357, 1106, 0, 1091, 1408, 1672, 0, 0, 2120, 2126, 2129, 0, 0, 532, 372, 0, 752, 0, 449, 557, 567, 1109, 1409, 0, 0, 0, 1803, 0, 785, 1815, 0, 0, 1825, 786, 1092, 0, 0, 0, 1241, 1242, 753 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { -4885, -4885, -4885, 3867, -4885, -4885, -897, -4, 3105, -996, -4885, -4885, -4885, 1424, -4885, -4885, -4885, -4885, 3852, -4885, 2193, -2428, -4885, -4885, 141, 3792, -1286, 123, 3367, 1847, -4885, -1141, -4885, -4885, -558, 112, -4885, 3791, 541, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -632, 2314, -4885, 2394, 1674, 6665, -3529, -4885, -4885, -1374, -3202, -4885, 991, -4885, 1011, -4177, -496, -4885, -4586, -4885, -668, -485, -4885, -4885, 2305, -4885, -4885, -4885, 1473, 891, -156, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -337, -4885, -4885, -580, 169, 44, -2447, -3719, -4885, -4885, 856, 29, -1416, -4885, -3567, -4885, 400, -2226, -4885, -4885, -4885, 64, -1384, 1785, -4885, -699, -1111, 2099, -4111, -442, -4885, 198, -4885, -552, -344, -341, -473, -3759, -4242, -4885, -4885, -4885, -581, -4249, -4493, -3802, -3644, 1802, -4885, 174, -3107, -3231, 176, 833, -4885, 178, 179, -4885, 848, -268, -903, -1535, -4885, -740, -4885, -4885, -4885, -2907, -4885, -4885, -4885, -4885, 77, -4885, -4885, -4885, -4885, 894, -4885, -4885, -4885, -4885, -4885, -4885, -2706, 2272, 2273, -4885, -3143, -4885, -881, -4885, 1043, -2948, 1708, -4885, -4885, 1467, 3868, 876, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -1720, -4885, -4885, -4885, -4885, 397, 91, -4885, -4885, -4885, -4885, -4885, -4885, 190, -4885, 2285, 1465, -4885, -4885, 87, -4885, -4885, -4885, -4885, -4885, -4885, -533, -4478, -691, -673, -4885, -2954, -4885, -4885, -4885, 116, -4885, -4885, -4885, -4885, -4885, -4885, -922, -4885, 1529, -3135, -4885, -4885, 1538, -4885, -4885, -4885, -4885, -4885, -450, 180, 3034, -4885, -53, -244, -4885, -4885, -4885, 181, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -1074, 11814, -815, -571, -4885, -4885, -4885, -4885, -4885, -2314, -4885, -4885, -4885, -4885, -3652, -4885, 4766, 2048, -255, 191, -4885, -23, 56, 3619, -1126, -2622, 817, -12, -4885, -4885, -4885, -2561, -4885, -4885, -4885, -4885, -3497, 192, -4885, 3611, -4885, -3777, -4504, -3561, -601, -4885, -4040, -4418, -4509, -3500, -4885, -4885, -4885, -4885, -541, -155, 2998, -4885, -1408, 2639, -856, -4885, -2068, 871, 1877, 3828, -2704, -137, 2994, -2505, -634, -3261, -4885, -4885, -2315, -149, -4885, -4885, 1395, -1070, -4885, -4885, -4885, -4885, -622, 2937, -202, -4885, -4885, 4179, -4885, -4315, -4885, 4114, -4885, -4885, -4885, -4885, 2849, 2850, -4885, 2852, -4885, -4885, -1364, 1627, -4885, -4885, -4885, -4885, 1066, -4885, -4885, -4885, -4885, -4885, -4885, -4885, 1519, 1054, -4885, -4885, -4885, -4885, -4885, -443, -619, -4885, -4885, 197, -4885, -4885, -4885, -4885, 2243, -898, -727, 4015, 199, -4633, -4885, -4885, -1123, -4885, 3407, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -2645, -4885, -4885, -4273, -4885, -4885, -4885, -4885, -4885, 2728, -4885, -4885, 2729, 79, -4885, -38, -4885, -4885, -960, 2732, -4885, -1923, -4885, -584, -4885, 2928, -4885, -4885, -4885, -4885, -1826, 208, -3784, -4885, 12, -4885, -4885, 296, -4885, 692, -4885, -4885, -3390, 15, -4885, -4885, -4885, -4885, -4375, -4885, 21, -339, 1221, -2787, -4885, 211, -1, -4885, -4885, 10, 1647, -42, -37, -25, 3, 118, 3488, -4885, 3535, -4885, 24, 1991, -4885, -4885, -793, -162, -4885, 1975, -665, 2705, 3480, 3484, -4885, 1962, 2733, -1954, -1928, -4885, 1270, -310, -141, -4885, -4885, -4885, -4885, 736, -615, 2724, -4885, 3486, -4885, -4885, -4885, -1925, -2821, -3451, 1298, -3432, -3334, 777, 768, -1228, 96, -43, -747, 3499, -4885, -4885, 1308, -102, -4885, -4885, -98, -2788, 1264, -4885, -4294, -2294, 1319, -564, -396, -4885, -484, -4885, -266, 2415, 3054, -1050, -4885, -4885, -1001, 14492, -4885, -4885, -4885, 15013, 15365, -4885, -4885, 15864, 16250, -4885, -842, 17121, 13619, -1005, -1856, -447, 13228, -1741, -492, 84, -4885, -3453, -2652, -4885, -4885, -4885, 146, 1376, 952, -4885, -4359, -4885, -4885, 363, -4885, -272, -4885, -270, -4885, -4885, -4885, -2522, -4884, -2608, 2853, -4885, -4885, -4885, -148, -4885, 17585, -2739, -4885, -419, -1316, -1524, -3423, -1865, -4885, -4885, -4885, -4885, -4885, -4885, -4885, -1656, -3283, -424, 2089, -4885, -4885, 2178, -4885, -4885, -4885, -916, 2460, -761, -2614, 2093, -4885, -780, 2854, -772, 9080, -648, 9535, -534, -2235, -1233, -1640, -4885, 4649, -4885, 5356, 6198, 17, -105, 3767, -536, -6, 13463, -644, -854, 4372, 11677, 11514, -3129 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 52, 53, 54, 55, 56, 1521, 2496, 2348, 3279, 3280, 57, 58, 1517, 59, 60, 61, 62, 1433, 63, 1015, 1768, 2511, 64, 2181, 800, 801, 802, 2085, 2086, 2432, 2087, 2075, 1318, 1910, 1454, 774, 775, 1415, 1455, 66, 67, 1312, 2066, 68, 69, 70, 1485, 1573, 1486, 1487, 1427, 1815, 4302, 5028, 3071, 2311, 3328, 3072, 3073, 3697, 3698, 3776, 5052, 5053, 5045, 5051, 5046, 5047, 71, 1589, 1590, 72, 73, 3244, 3240, 3826, 4645, 4646, 4879, 611, 2473, 4648, 4649, 4865, 4866, 5066, 5210, 5211, 2512, 1760, 3322, 3914, 3270, 4394, 3271, 4395, 3272, 4396, 3256, 3861, 3862, 4337, 3863, 3273, 4355, 4909, 3274, 2200, 5083, 2553, 1932, 1930, 4564, 4892, 4164, 4165, 5295, 5090, 5091, 5092, 5318, 4357, 4400, 4401, 4939, 5251, 5252, 3326, 3921, 4406, 4663, 2956, 75, 709, 1794, 3428, 710, 2556, 646, 711, 2513, 80, 2546, 5085, 2547, 1547, 2362, 5048, 3408, 81, 1040, 3663, 4732, 4964, 4965, 82, 225, 83, 1776, 84, 85, 2491, 3263, 86, 2217, 2973, 87, 88, 3004, 3005, 3006, 89, 3688, 4582, 1488, 3060, 3061, 3062, 3063, 3719, 90, 1771, 2520, 2521, 91, 92, 93, 94, 2669, 2670, 95, 2419, 96, 97, 98, 99, 3753, 4266, 4371, 3102, 3286, 3886, 4369, 100, 2514, 1784, 2536, 2537, 4381, 4688, 4689, 4690, 4924, 5241, 4692, 4926, 5113, 4928, 4347, 5428, 5429, 4654, 3642, 4178, 102, 4348, 4349, 5097, 103, 2215, 104, 105, 106, 1744, 2483, 2484, 3835, 1737, 2476, 2477, 3900, 3901, 107, 3184, 108, 4242, 4243, 647, 5104, 5034, 5194, 109, 110, 4246, 4247, 111, 112, 113, 114, 115, 701, 702, 703, 1132, 1133, 2928, 1080, 116, 2095, 117, 978, 979, 3219, 118, 1205, 2715, 2716, 4446, 119, 734, 1151, 1152, 2515, 121, 743, 2689, 745, 1947, 3410, 3411, 3980, 122, 123, 2666, 2692, 124, 1420, 2191, 2192, 4159, 2516, 648, 1800, 2560, 2951, 4805, 4806, 5261, 5402, 4559, 4819, 2873, 3593, 126, 649, 1459, 2266, 1100, 1101, 2563, 3336, 2160, 2161, 2162, 3938, 2163, 3338, 2164, 1394, 2165, 1050, 1051, 3344, 3345, 3346, 3934, 3941, 2505, 4722, 4723, 127, 1457, 2264, 128, 129, 130, 1500, 891, 1110, 1111, 131, 661, 662, 132, 4884, 133, 1054, 134, 4730, 135, 136, 765, 766, 1189, 1190, 137, 138, 2280, 3700, 139, 140, 141, 3096, 3097, 4258, 142, 143, 1763, 1764, 144, 145, 3149, 3150, 146, 147, 148, 5343, 5404, 5405, 5406, 3947, 5264, 5345, 1182, 150, 151, 152, 189, 931, 932, 933, 2517, 4715, 154, 155, 1416, 1417, 1418, 1419, 2186, 156, 157, 158, 159, 160, 161, 162, 1748, 163, 164, 4858, 165, 166, 1706, 167, 1345, 1346, 168, 1360, 1361, 169, 2862, 605, 818, 1349, 1355, 1362, 1363, 1364, 170, 713, 1145, 1146, 1147, 1912, 171, 1185, 981, 714, 1140, 173, 715, 2144, 2903, 3607, 3608, 3609, 3612, 4544, 4137, 716, 2899, 176, 1954, 2675, 2678, 2895, 717, 2908, 2909, 2910, 3615, 718, 736, 1043, 2570, 719, 1279, 181, 182, 183, 827, 821, 822, 185, 2059, 2843, 752, 1368, 787, 788, 836, 2442, 2110, 2111, 2135, 2136, 1377, 1378, 2123, 2127, 2128, 2886, 2879, 2116, 4124, 4790, 4791, 4792, 4793, 4794, 4795, 4531, 2131, 2132, 1380, 1381, 1382, 2140, 186, 2847, 3568, 3569, 3570, 4101, 4102, 4116, 4112, 4516, 4777, 3571, 1180, 1388, 4524, 5373, 3572, 4766, 4767, 4981, 4120, 3579, 3603, 3310, 3311, 3312, 3573, 5159, 5160, 5370, 5371, 4983, 4984, 2166, 1845, 1082, 1280, 1083, 1857, 1281, 1829, 1085, 1282, 1283, 1284, 1088, 1285, 1286, 1287, 1091, 1821, 1288, 1289, 1839, 1854, 1855, 1350, 4985, 1291, 1292, 1293, 3575, 1294, 4055, 4480, 4469, 2775, 2776, 2082, 4051, 3513, 2054, 2833, 4799, 5002, 5003, 3552, 4080, 4496, 4764, 5151, 5271, 5272, 5359, 1295, 1296, 1297, 2830, 2050, 894, 1298, 3837, 2052, 2769, 1614, 1615, 1957, 1977, 2722, 2738, 2739, 2749, 3472, 2757, 2762, 3500, 3501, 2770, 2799, 1299, 2724, 2725, 3456, 1979, 1300, 937, 1618, 938, 1974, 2794, 1308, 1301, 1302, 1948, 811, 4773, 1136, 850, 3088, 1698, 940, 749, 1303, 1304, 1305, 1306, 1493, 865, 1103, 1104, 602, 594, 867, 3064, 603, 596, 597, 1703 }; /* 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[] = { 593, 810, 892, 184, 1546, 1009, 1909, 600, 1309, 826, 179, 2375, 174, 779, 653, 175, 1046, 746, 1313, 748, 837, 177, 1704, 754, 184, 1835, 1594, 1551, 768, 776, 746, 1865, 783, 1400, 1606, 776, 776, 2199, 812, 738, 815, 1171, 1172, 1173, 858, 738, 1383, 1177, 3269, 2275, 2267, 1339, 898, 845, 1135, 903, 893, 645, 1929, 3347, 1773, 3581, 1825, 1826, 1148, 2445, 1340, 2541, 3433, 813, 1327, 3147, 1834, 1841, 1967, 4166, 3689, 3601, 1612, 744, 3292, 2276, 1699, 3942, 994, 2436, 3942, 1758, 3912, 3090, 591, 4130, 780, 2921, 2923, 700, 3669, 1746, 3896, 1460, 712, 1751, 1044, 1786, 901, 3414, 1755, 2288, 2305, 3714, 2721, 3716, 65, 3181, 4067, 4098, 1765, 3839, 922, 3847, 3614, 4204, 3870, 1142, 4410, 3839, 1126, 4393, 4560, 3926, 1789, 831, 2681, 3591, 1492, 4161, 1056, 3224, 2849, 3225, 4115, 1114, 4820, 3229, 1118, 3231, 3232, 839, 1116, 1046, 4770, 4707, 4413, 4354, 3236, 3237, 3238, 4403, 773, 840, 2561, 4709, 1129, 2784, 2260, 807, 2172, 3521, 824, 74, 2620, 1376, 2888, 2859, 76, 915, 77, 4670, 78, 79, 1339, 2866, 799, 4167, 593, 848, 848, 851, 4896, 848, 101, 120, 125, 860, 3576, 812, 4402, 149, 895, 153, 2891, 860, 2400, 2401, 860, 4828, 2396, 812, 172, 848, 3909, 178, 812, 3620, 4941, 4952, 848, 4035, 812, 1822, 1823, 1379, 4143, 2260, 1456, 4708, -2376, -2414, 1825, 1826, 1833, 4782, 720, 4784, -2305, 1320, 1785, 4113, 609, 4118, 2260, 1812, 2022, 720, 1429, 4850, 3576, -2379, 1834, -2437, -1905, 1812, -2469, -2277, 1841, 2754, 720, 3478, 4364, 659, 1153, -2277, -2277, 3282, 1456, 659, -2249, -1897, 5050, 1456, -1864, 2028, -2278, 1157, -1877, 1545, -2634, 2792, -1902, 1856, -2278, -2278, 5106, 1572, -2634, -2634, 5033, 1734, 2278, 2093, 2183, 2434, 2435, 1599, -1905, 2792, -1892, 3619, 659, 3670, 659, 2412, -2248, 2030, 659, 3932, 2538, 1511, 4623, 2278, 5017, 5018, 1201, 2072, 1489, 659, 1489, 659, 1489, 720, 1952, 720, 3204, 720, 2278, 856, 2057, 3242, 3917, 1812, 2207, 2502, 4624, 1489, 659, 720, 4728, 4885, 720, 3418, 2407, 4448, 4449, 4542, 4451, 4452, 4453, 4454, 4455, 4365, 3077, 2494, -1720, 1430, 4860, 4861, 4352, 5262, 4962, 4974, 5009, 834, -2140, 659, 4859, 3420, 1317, 2388, 4710, -2140, 2022, 3381, 2834, 3383, 1781, 1847, 1822, 1823, 4665, 1603, 1812, 2499, 4711, 5352, 4345, 4998, -134, 2893, 1812, 726, 726, -134, 4340, 1372, 3372, 1782, 2342, 726, 1373, 2028, 1351, 2022, 1175, 1833, 4244, 2107, 2255, 1911, 2114, 3478, 726, 2278, 726, 727, 727, 726, 1512, -2435, 1341, 2509, 4922, 727, 2073, 1704, 2201, 1812, 2328, 2022, 187, 1606, 2731, 2030, 659, 4366, 727, 4671, 727, 1322, 911, 727, 2337, 3724, 3605, 2314, 4813, 3, 4, 1848, 720, 4558, 5126, 4822, 2202, 2080, 3725, 604, 2028, 2354, 927, 2068, 4943, 5030, 2030, 5040, 4923, 1374, 4942, 912, 1154, 1156, 1158, 188, 2208, 1160, 1161, 1162, 4856, 3606, 2539, 893, 5040, 4672, 2359, 1167, 5245, 1176, 1046, 1743, 2030, 4995, 2193, 4666, 2894, 2827, 1812, 2081, 2500, 2510, 2256, 4857, 2828, 1851, 1988, 1046, 2115, -2159, 1375, 2835, 1849, 3478, 4245, 1850, -2159, 1813, 1812, 2278, 1070, 1898, 2016, 2278, 1003, 5010, 2691, 1813, 4346, 2394, 1013, 5444, 4963, 3770, 2094, 893, 5263, 1743, 2732, 2304, 2495, 4341, 2074, 1027, 1812, 4353, 3431, 2846, 1704, 1699, 2062, 3078, 4543, 4712, 5041, 1604, 1783, 5042, 3419, 928, 3474, 2329, 3670, 3243, 1046, 2209, 3894, 4975, 2440, 1913, 2195, 5078, 4729, 1742, 1513, 5043, 1893, 660, 2289, 816, 1873, 1342, 1431, 1343, 3421, 4367, 4625, 2205, 2196, 2076, 4568, 3454, 5043, 4227, 2088, 2088, 4920, 2343, 2203, 3839, 5177, 2058, 929, 941, -432, 1813, 1499, 857, 5223, 812, 2733, 593, 1514, 3008, 848, 1953, 851, 184, 848, 1851, 3844, 5306, 2793, 4261, 985, 895, 982, 2487, 654, 983, 1016, 1176, 848, 2022, 3085, 984, 5255, 3824, 3825, 848, 3541, 5244, 1432, 1949, 2389, 1515, 2540, 4485, 2370, 4193, 1971, 2373, 4368, -2435, 1959, 3205, 1813, 4513, 2413, 930, 3933, 4517, 2028, 593, 1813, 4115, 1814, 610, 851, 1968, 826, 2734, 5293, 860, 2735, 2380, 1842, 895, 1149, 1743, 860, 1384, 1046, 860, 1953, 4363, 2414, 977, 1836, 4171, 1046, 1046, 2503, 1820, 2030, 5119, 5391, 5125, 4409, 848, 3366, 1813, 2246, 732, 733, 2049, -2140, -2376, -2414, 1837, 2102, 2433, 2254, 1179, 184, -2305, 732, 733, 5044, 3635, 3493, -2435, 2141, 1838, 1902, 2408, -2277, 1852, -2379, 2197, -2437, 4459, 1836, -2469, -2435, 5044, 4231, 935, 1166, -2249, -1897, 936, 1150, 1824, 1155, -2278, 1159, 1828, 2848, -2634, 812, -1902, 1163, 1837, 1141, 1612, 1612, 1612, 5329, 5338, 1721, 4547, 4504, 812, 4506, 1193, 4385, 1840, 2070, -1892, 1813, 2018, 2142, 2060, 1179, -2248, 5014, 2852, 2736, 1490, 1491, 1490, 1491, 1490, 1491, 1307, 1307, 5207, 812, 776, 1813, 1144, 1421, 776, 839, 732, 733, 2360, 1490, 1491, 2363, 2364, 4741, 1716, 1387, 1860, 840, 812, 2244, 1723, 1709, 812, 1724, 1871, 893, 5299, 1813, 1307, 1436, 1329, 2478, 2641, 3259, 1519, 2624, 2441, 1605, 2263, 5303, 812, 2046, 2047, 2048, 2049, 1863, 4705, 184, 2829, 3767, 2198, 2395, 812, 5395, 179, 3771, 174, 1520, 1344, 175, -2159, 1895, -134, -134, 935, 177, 812, 3622, 936, 3623, 2598, 3027, 1176, 3616, 2015, 5276, 2651, 3909, 3888, 2322, 3490, 3491, 3492, 3493, 812, 5247, 2290, 2663, 759, 848, 848, 2263, 2100, 3009, 5249, 1743, 2330, 2737, 2130, 2291, 817, 2292, 2723, 4326, 2485, 2671, 655, 4569, 2263, 2206, 1914, 1347, 1422, 1916, 4647, 1918, 5433, 1920, 5224, 1922, 776, 776, 2100, 1926, 2999, 2967, 3576, 3817, 1578, 3576, 1898, 3214, 5398, 5399, 606, 4151, 5233, 4325, 2888, 3260, 5381, 3179, 1743, 1307, 1307, 3986, 5314, 1316, 3114, 2812, 1863, 1324, 593, 1352, 3586, 2932, 65, 834, 5248, 659, 2293, 3665, 5451, 860, 656, 3596, 659, 895, 2870, 860, 1579, 3086, 860, 760, 3864, 1847, 3979, 1414, 3488, 3489, 3490, 3491, 3492, 3493, 747, 2149, 2652, 848, 999, 5079, 3013, 2260, 2454, 2682, 4933, 785, 3067, 1097, 3617, 3576, 657, 3000, 658, 2667, 2580, 2581, 659, 3818, 3819, 812, 4166, 4141, 3584, 74, 1404, 5331, 848, 848, 76, 5416, 77, 5330, 78, 79, 4259, 3475, 3476, 2375, 3115, 2672, 3495, 4890, 5455, 1777, 101, 120, 125, 1532, 812, 812, 812, 149, 848, 153, 593, 593, 3369, 1848, 3068, 773, 1565, -1864, 172, 2871, 3587, 178, 1533, 4424, 4746, 2193, 2940, 841, 1330, 1516, 659, 3943, 1423, 3525, 3526, 4768, 1168, 3691, 4901, 2718, 5086, 1778, 1863, 2194, 4774, 4833, 751, 3116, 3014, 4778, 2813, 1882, 4780, 2668, 4378, 2814, 659, 4105, 3987, 4771, 1405, 786, 5394, 1714, 2044, 2045, 2046, 2047, 2048, 2049, 1424, 4167, 1534, 3370, 1849, 2462, 2981, 1850, 2554, 3422, 848, 1704, 848, 848, 4167, 3261, 4946, 4863, 1835, 4902, 2942, 761, 2815, 1883, 4947, -1864, 1331, 4903, 1805, 5148, 1580, 2195, 5080, 1425, 3117, 3069, 757, 5315, 3877, 1197, 3180, 842, 1406, 2532, 1307, 3944, 3738, 2463, 5366, 2196, 5124, 5099, 3, 4, 4285, 4904, 3207, 1704, 5118, 4106, 762, 763, 1915, 184, 1917, 3337, 1919, 3003, 1921, 3942, 1923, 1924, 1925, 4701, 1931, 1931, 3692, 1927, 5354, 812, 4827, 746, 2660, 2661, 2790, 5131, 3423, 5121, 1535, 3836, 5098, 5022, 4107, 4849, 5087, -2268, 4695, 3836, 1426, -157, 3657, 3262, 1964, 2943, 3666, 812, 1529, 4108, 1970, 2378, 1851, 1851, 832, 706, 5316, 1612, 3218, 4109, 2968, 4553, 2673, 1307, 4905, 2550, 5335, 5336, 5120, 2533, -157, 5412, 2653, 1581, 3118, 15, 4906, 1779, 1536, 1169, 1407, 1537, 2674, 5317, 3658, 4110, 1530, 1806, 2021, 826, 2551, 2022, 2374, 1307, 764, 3576, 2925, 3739, 3757, 5367, 3865, 2816, 2626, 5387, 1000, 2016, 4775, 5149, 4583, 20, 5088, 3114, 2579, 1098, 1148, 2296, 1366, 758, 833, 4167, 2028, 1307, 1307, 1307, 1539, 1307, 3939, -2635, 4948, 1884, -1864, 3275, 2197, 4239, 2182, 3945, 2306, 5150, 2575, 2650, 3070, 1807, 3878, 2655, 1863, 1307, 1372, 2659, 5413, 2297, 2662, 1519, 2030, 2464, 5029, 3100, 1583, 1863, 2920, 5355, 1478, 1852, 1584, 4286, 2098, 784, 5012, 927, 1541, 2618, 4111, 2599, 1699, 2633, 1520, 4969, 759, 5256, 1780, 2601, 1853, 4991, 4445, 812, 2108, 2109, 2612, 2113, 834, 2614, 1542, 3115, 3119, 2613, 604, 1387, 840, 840, 843, 840, 3120, 3165, 3946, 3121, 828, 3122, 2619, 3166, 893, 5435, 1544, 4546, 3318, 1715, 3693, 3694, 1367, 1307, 1374, 3527, 2892, 1307, 1307, 5122, 5178, 2747, 2982, 3101, 5414, 5183, 1885, 1429, 812, 812, 2147, 1411, 1307, 1412, 1808, 4240, 830, 5368, 2198, 3695, 3116, 2372, 5369, 2365, 3659, 2654, 5388, 3740, 2657, 2658, 2465, 4776, 4907, 776, 2577, 4908, 2427, 760, -2635, 3682, 928, 1585, 4390, -2635, 5032, 2550, 2064, 2534, 927, 5036, 5037, 2552, 1863, 607, -2246, 3122, 4443, 3193, 706, 32, 2535, 808, 4419, 1584, 2307, 3741, 1809, 4391, 2251, 624, 2551, 3276, 2926, 776, 2428, 2927, 5174, 3117, 15, 3074, -2635, 3576, 5337, 929, 3133, 3576, 3167, 812, 2277, 40, 4834, 5313, 2308, 3768, -1864, 4932, 3839, 812, 3742, 835, 848, 2202, 3774, -1864, 3098, 1824, -1864, 1399, 4229, -1864, 3174, 3683, 20, 4338, 2065, 2309, 1430, 2310, 624, 4241, 2211, 2429, 819, 44, 2900, 3660, 895, 2037, 812, 626, 2212, 4316, 776, 2755, 2430, 4319, 4320, 844, 4322, 2239, 930, 2773, 1330, 2117, 5415, 928, 5180, 5181, 3775, 776, 187, 812, 2304, 2391, 812, 4768, 5393, 2366, 3379, 1810, 2367, 4390, 2431, 3151, 48, 3769, 1585, 5403, 707, 4207, 4919, 1046, 2999, 1035, 4344, 3118, 1501, 49, 626, 5191, 4230, 4339, 2118, 2717, 4167, 2720, 4391, -583, 929, 761, 812, 2727, 40, 188, 1326, 1586, 2999, 2741, 2742, 2743, 50, 848, 848, 848, 848, 812, 2306, 2759, 2761, 4379, 1331, 3289, 2771, 1612, 708, 3175, 4001, -2635, 3277, 812, 3107, 3108, 5434, 1197, 3111, 4131, 44, 2375, 762, 763, 1307, 1307, 1307, 1587, 3301, 3302, 3303, 3304, 829, 4384, 3168, 3681, 624, 4208, 3177, 930, 3309, 1502, 3176, 3000, 5192, 3134, 4392, 2880, 3530, 4682, 3531, 935, 1414, 3137, 5454, 936, 3140, 1414, 3257, 3278, 1588, 48, 3025, 3171, 3208, 3209, 3210, 3000, 2937, 4650, 180, 3178, 3169, 3532, 49, 2213, 3001, 5465, 2645, 3836, 32, 4132, 637, 2120, 638, 4565, 3849, 3119, -685, 2901, 852, 180, 2610, 5253, 3966, 3120, 626, 50, 3121, 5071, 2573, 3172, 4651, 4257, 5072, 3170, 3214, 1036, -2635, 1759, 40, 51, 3812, 2214, 3002, 2044, 2045, 2046, 2047, 2048, 2049, 825, 2446, 4887, 812, 781, 1414, 1478, 2600, 3694, 1414, 637, 3852, 638, 3173, 5105, 848, 848, 854, 1548, 2121, 5130, 4335, 1037, 44, 893, 893, 4153, 4427, 3132, 4428, 3045, 2307, 4566, 5073, 40, 3022, 4218, 643, 848, 1372, 4015, 4016, 4017, 4018, 5239, 4336, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 1549, 812, 3288, 2308, 3533, 3155, -457, 2506, 48, 3534, 3854, 4463, 44, 4464, 1028, 5102, 2954, 848, 848, 848, 848, 49, 3047, 1038, 5401, 5111, 2309, 1395, 2310, 1039, 812, 2543, 5116, 3046, 874, 3772, 3003, 812, 3199, 5377, 2446, 2646, 1831, 1832, 50, 187, 4071, 4072, 2284, 1029, 2285, 593, 4167, 48, 593, 1374, 3112, 5112, 51, 851, 3003, 1396, 4010, 2304, 1307, 1397, 49, 4105, 4740, 5141, 4961, 3578, 2955, 2647, 4019, 1743, 4020, 838, 637, -1693, 638, 3048, 1030, 2187, -1693, 875, 2648, 1390, 188, 50, 3641, 4036, 893, 35, 2188, 4696, 1375, 4656, 1398, 860, 860, 3576, 3857, 2902, 3331, 1759, 1550, 726, 3576, 2286, 895, 895, 2189, 3576, 860, 3616, 3576, 860, 3942, 2649, 4174, -457, 2345, 5457, 1836, 1391, 917, 5253, 5025, 1031, 2278, 727, 4167, 5246, 848, 848, 4686, 3576, 926, 4106, 2279, 848, 4154, 812, 3858, 1837, 934, 3535, 4155, 4465, 3576, -1693, 4669, 184, 4687, 4156, 2676, 3536, 1392, 2635, 3859, 2636, 3407, 2637, 3511, 2638, 2950, 2639, 1931, 1046, 3518, 2640, 4107, 2598, 4809, 848, 4811, 860, 2117, 2021, 860, 860, 2022, 812, 812, 4957, 848, 4108, 4157, 2688, 4680, 4700, -1693, 812, 4572, 4573, 3918, 4109, 987, 3922, 812, 4175, 4021, 5235, 2365, 746, 746, 184, 617, 2693, 4158, 2028, 4022, 1307, 985, 1307, 982, 2118, -2635, 983, 1307, 1307, -1100, 4110, 1046, 984, 4585, 1307, 1307, 1307, 1144, 4167, 4589, 1307, 895, 1307, 1307, 1307, 1307, 1307, 1307, 990, 1307, 2030, 1307, 1307, 4172, 4640, 1307, 4641, 4642, 3406, 1574, 4643, 3860, 3350, 4304, 2190, 4176, 2296, 4177, 1028, 2954, 1307, 1307, 1307, 1307, 2687, 1401, 2315, 848, 1307, 2987, 4660, 720, 1307, 2119, 4305, 1307, 4106, 1787, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1575, 1307, 624, 2297, 1576, 2714, 1029, 812, 1307, 40, 1307, 3580, 5140, 1788, 2346, 5340, 1402, 812, 4111, 2349, 3392, 1010, 4107, 3576, 5185, -1094, 735, 2983, 3638, 993, 2988, 2989, 735, 1577, 2120, 2278, 893, 4519, 2975, 3890, -1657, 1553, 1519, 44, 3735, 2287, 812, 4109, 2366, 1403, 1307, 2367, -1657, 5326, 812, 5109, 812, -1657, 2665, 3621, 3298, -1657, 626, -2635, 3306, 1520, 1307, 4334, -2635, 3307, 2088, 996, 40, -1657, -582, 1307, 1307, 4856, -1657, 1554, 3582, 3671, 3736, 3576, 48, 2504, 1031, 4174, 2417, 812, 3450, 2121, 2423, 1023, 3978, 2100, 2906, 49, 2911, 1863, 4857, 3371, 3373, 3374, -1657, -2635, 44, 3699, 3293, 1001, 2904, 1002, 1555, 3356, 1890, 3737, 4217, 3451, 1898, 3021, 50, 2944, 3452, 2947, -1657, -1657, 3766, 1836, 2800, 851, 2801, 5081, 1347, 2861, 51, 3979, 5390, 1891, 746, 1032, 746, 4287, 4386, 3539, -1656, -1657, 3594, 48, 1837, 1033, 3897, 720, 2037, 2802, 3007, 1034, -1656, 1307, 4111, 2941, 3907, -1656, 1838, 935, 4288, -1657, 1046, 936, 4175, 593, 4856, 848, 848, 1053, -1657, 5173, 860, 1048, 895, 860, 860, 5068, 848, 5070, 848, 5298, -1657, 5074, 848, 5075, 5456, 812, 1096, 4857, 3626, -1657, 1105, 51, 3113, 1824, 1106, 2173, 5426, 1904, 226, 4824, 1905, 1123, -1656, 3848, 608, 1836, 776, 180, 3307, 2755, 2755, 1824, 704, 1399, 2755, 637, 2277, 638, 3576, 4176, 4202, 4177, -1656, 1112, 3032, 812, 1837, 720, 640, 5110, 782, 935, 3044, -2249, 1130, 936, -2635, 1139, 4412, 642, 1840, 812, 1759, 1510, 1170, 1179, 1179, 3630, 1527, 1179, 2803, 2755, 2755, 1174, 4150, 2804, 3989, 1181, 4194, 1824, 2805, 2173, 812, -1656, 2438, 2439, 3196, 3089, 3089, 4209, 1961, 4216, -1656, 1962, 1178, 4864, 1522, 3576, 1046, 3845, 1184, 1556, 812, 812, 3477, 1186, 812, 3893, 851, 776, 3504, 5379, 3506, 3507, 1591, 2096, 3505, 1595, 2097, 2099, 1187, 1612, 2100, -1657, 180, 825, 3576, 1612, 3954, 3955, 1210, 3866, 848, 3478, 4232, 848, 1188, 3479, 3480, 3481, 2104, 1194, 1557, 2105, -1657, 3674, 2630, 2642, 3528, 2100, 2643, 2644, 1558, -2635, 2643, 2679, 812, 812, 2680, 1195, 2044, 2045, 2046, 2047, 2048, 2049, 1975, 2864, 51, 2485, 1898, 3182, 4539, 3185, 3187, 2912, 3627, 3628, 2100, 3019, 3092, 1196, 3020, 3093, 3648, 935, 3554, 3247, 1356, 936, 3248, 3849, 3252, 3, 4, 3253, 5423, 3850, 3357, 1204, 40, 2100, 1307, 1307, 1307, 2568, 1197, 2569, 1307, 3851, 4913, 2889, 2890, 3398, 848, 3151, 2643, 2021, 2806, 5133, 2022, 3730, 848, 3449, 1198, 848, 2100, -1656, 2807, 2306, 1179, 848, 3458, 3464, 44, 2100, 2100, 3852, 40, 3853, 1005, 3576, 1006, 1307, 838, 848, 180, 3465, 3466, 2028, 2100, 2100, 3497, 1200, 3510, 2100, -2635, 2100, 3515, 2277, 3717, 3516, 3089, 3718, 812, 1199, 3722, 812, 5015, 3723, 1206, 3291, 44, 5375, 746, 48, 3834, 5020, -1715, -1715, 3746, 2030, 1210, 3747, 3834, 3478, 848, 1307, 49, 3479, 3480, 3481, 3854, 3337, -1719, -1719, 4169, 4170, 3836, 4397, -1718, -1718, 3930, 1559, 3182, 3931, 4060, 3952, 1203, 3482, 2100, 50, 1328, 48, 848, 3440, 3323, 1325, 3443, 4042, 3855, 3444, 4043, 3294, 5292, 51, 49, 3436, 1332, 3319, 4052, 3483, 1824, 4053, 2173, 3751, 4063, 1560, 2397, 2100, 1307, 1561, 4139, 4144, 2021, 4140, 4145, 2022, 3538, 50, 1333, -2635, -2635, -2635, 3760, 3883, 4149, 4173, 4387, 2927, 2643, 2643, 4440, 51, 1338, 1953, 3324, 848, 3325, 848, 3089, 848, 3089, 1348, 1562, 2718, 2028, 3576, 3555, 3856, 3556, 2307, 1334, 2029, 3857, 5439, 1046, 5440, 1046, 5441, 2598, -2635, 1210, 3484, 1532, 3478, -2635, 5273, 5274, 3479, 3480, 3481, 4460, 4486, 1353, 2100, 2680, 1931, 2030, 2308, 1356, 4498, 4549, 1533, 2100, 2927, 4061, 4555, 4561, 4562, 4556, 2643, 2643, 4953, 4702, 4748, 3858, 4703, 4749, 1357, 4047, 893, 2309, -2635, 2310, 5360, 5361, 4750, 832, 3982, 2100, 4758, 3859, 4829, 2680, 1354, 4830, 5470, 812, 3557, -1694, 3558, 3576, 4217, 1606, -1694, 4914, 3576, 593, 2643, 1370, 1359, 4954, 1534, 860, 4955, 1046, 860, 1385, 2304, 860, 3995, 3867, 2718, 3869, 4970, 1386, 1389, 2680, 848, 2037, 826, 4978, 3483, 1393, 4979, 4988, 1307, 1399, 1898, 1210, 4743, 1307, 3478, 3590, 1434, 1458, 3479, 3480, 3481, 4994, 4996, 833, 3904, 3904, 2306, 4327, 5007, 4328, 3876, 5008, 3879, 1461, -2279, 4488, 1307, 1307, 1307, 2031, 1463, 1307, 5061, -1694, 2032, 5062, 826, 4212, 3975, 1307, 1307, 1307, 1307, 5101, 1464, 5132, 2067, 3860, 5008, 1504, 5142, 5143, 1307, 2680, 3516, 1307, 3484, 1307, 5144, 5156, 1535, 2100, 5157, 3936, 1499, 1503, 4581, 3576, 1307, 1307, 1505, 2035, 1307, 4700, -1694, 1516, 5162, 180, 4210, 1898, 1528, -2635, 5165, 834, 895, 3904, 1307, 1518, 1307, 5184, 1307, 1356, 2643, -1645, 3485, 3486, 3487, 4121, 3488, 3489, 3490, 3491, 3492, 3493, 3483, 1369, 5190, 1371, 1536, 2680, 1307, 1537, 1531, 5196, 812, 2306, 2680, 5197, 2037, 1566, 2680, 3577, 2374, 5200, 5202, 2426, 5201, 5203, 5204, 5231, 4190, 5205, 5232, 1567, 1582, 5280, 1532, 812, 5281, 5284, 1976, 826, 1898, 1592, 1307, 3560, 3561, 3562, 5285, 184, 3074, 2100, 4228, 1593, 1539, 1533, 985, 1596, 982, 1307, 1985, 983, 4518, 1601, 4521, 29, 3484, 984, 2307, 5286, 1602, 1705, 2100, 3577, 3098, 1707, 3988, 3610, -2635, 1710, 3613, 5288, 2911, 1708, 2100, 2044, 2045, 2046, 2047, 2048, 2049, 2001, 5309, 3151, 5333, 5310, 2308, 5334, 1541, 1713, 5362, 1717, 3483, 3904, 4310, 1534, 2013, 1718, 2039, 5374, 4323, 3574, 5001, 5400, 5437, 1726, 5008, 5438, 835, 2309, 1542, 2310, 1727, 1307, 3010, 3089, 5450, 1730, 2306, 5201, 1931, 5452, 5468, 5476, 5453, 5281, 5453, 1733, 1739, 2777, 1544, -2539, 2780, 1736, 1741, 1404, 3485, 3486, 3487, 1747, 3488, 3489, 3490, 3491, 3492, 3493, 2304, 848, 40, 848, 848, 848, 1750, 3574, 3484, 3834, 1752, 2307, 2755, 2755, 2755, 2755, 2306, 1761, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 4968, 1762, 1743, 4481, 1766, 4256, 1767, 1535, 44, -177, 1769, 2308, 838, 838, 1770, 838, 4313, 4045, 1772, 1774, 1775, 2040, 1790, 1797, -2635, -2635, -2635, 1799, 2044, 2045, 2046, 2047, 2048, 2049, 2309, 1804, 2310, 206, 1811, 1817, 1818, 1405, 1819, 1820, 1824, 1827, 2755, 2755, -2539, 48, 1828, 1830, 4012, 3087, 1844, 1536, 1846, 1859, 1537, 1858, 1862, 1863, 49, 1870, 1874, 1876, 1877, 3339, 1879, 2374, 1881, 2304, 3485, 3486, 3487, 1887, 3488, 3489, 3490, 3491, 3492, 3493, 1901, 1081, 1886, 50, 4041, 1889, 1437, 1894, 812, 1897, 1900, 1406, 1903, 3590, 2307, 3765, -2539, 51, -1417, 1539, -1417, 3590, 1928, 1958, 1963, 1965, 1966, 1081, -2539, 1972, 1973, -1868, -1875, -2539, 1980, 1981, 1982, 1983, -2539, 1984, 1438, 51, 2308, 1986, -2539, 1210, -1865, -2539, 3478, 4083, 1987, -2539, 3479, 3480, 3481, 1988, -1866, 1989, 2307, 1990, 1991, 1993, 1994, 1541, 1995, 2309, 1996, 2310, 1997, 4489, -1869, 2021, -1867, 4868, 2022, 1998, 1999, 2000, 2002, 2306, -2539, 2003, 2004, 2005, 2006, 1542, 2308, 2007, 3485, 3486, 3487, 2008, 3488, 3489, 3490, 3491, 3492, 3493, 2053, 1440, -2539, 2055, 2304, 2028, 2009, 1544, 2057, 1407, 2071, 2309, -2635, 2310, 2058, 2067, 2083, 2091, 1307, 4869, 2103, 2106, 1704, 2021, 1307, 1373, 2022, 2137, 1375, 2148, 2023, 2024, 2025, 848, 2150, 2139, 1441, 2030, 3089, 3089, 2151, 2152, 2718, -2539, 4870, 2168, -2539, 2026, 2304, 2169, 5341, 29, -2539, 4437, 2170, 2028, 2173, 2171, 5155, 2174, 2175, 4871, 2029, 1408, 2176, 4872, 1210, 3340, 4676, 3478, 2177, 2178, 1442, 3479, 3480, 3481, 2179, 812, 812, 812, 2185, 2204, 2210, 2241, 2216, 4873, 2245, 2030, 4874, 2247, 3773, 2248, 2249, 5158, 812, 2250, 2252, 2253, 2281, 2268, 2269, 1409, 2282, 4875, 4070, 35, 1443, -2539, 3929, 2270, 2283, 2294, 1210, 2298, 2300, 3478, 1931, 812, 2303, 3479, 3480, 3481, 1210, 2301, 2302, 3478, 1931, 812, 812, -2635, -2635, -2635, 812, 2307, 1410, 2304, 4397, 2312, 1445, 4432, 4433, 4434, 4435, 4436, 40, 812, 2313, -2635, 3483, 2316, 2317, 2318, -2635, 2323, 2324, 2327, 2333, 3925, 4359, 4360, 751, 2308, 1210, 2334, 1411, 3478, 1412, 2338, 2335, 3479, 3480, 3481, 2339, 4537, 2340, 2344, 2341, 2755, 44, 35, 3950, 2350, 1712, 3341, 2309, 4876, 2310, -2539, 2347, -2635, 1179, 2351, 1448, 4877, 2352, 2356, 2361, 2031, 2357, 2368, 1449, 2369, 2032, 2371, 4077, 2376, 848, 1729, 2262, 2377, 3484, -2539, 2386, -2539, -2539, 1413, 2381, 1478, 2382, 48, 1451, 2304, 1740, 2383, 2033, 2034, 2385, 812, 1452, 2387, 2390, 2392, 49, 2409, 2306, 4878, 2037, 2393, 876, 2035, 2410, 2398, 2399, 812, 2415, 877, 878, 879, 2411, -2539, 3342, 2421, -2539, -2539, -2539, 50, 2425, 2437, 2448, 2450, 2306, 2451, 2458, 2416, 2453, 1307, 2444, 3483, 2452, 5342, 2457, 2459, 2036, 2460, 1307, 2461, 2467, 2468, 2471, 2469, 1307, 2474, 1307, 2470, 1453, 1307, 2037, 4588, 3343, 2038, 1307, 1307, 1307, 1307, 2472, 2480, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 2306, 2481, 2486, 1307, 1307, 2479, 2489, 3483, 2490, 619, 2498, 2493, 2504, 1307, 2507, 2518, 826, 1307, 4535, 1550, -2635, 1307, 2522, 3484, 2526, 2531, 2542, 2545, 2523, 1307, 2548, 2549, 1307, 2558, 1307, 826, 2562, 3806, 2565, 2567, 2571, 2576, 2582, 1307, 2584, 2589, 1307, 1307, 2585, 2592, 2590, 1307, 1307, 2593, 2595, 2594, 4081, -2635, 1307, 2596, 2603, 2605, 180, 4195, 2606, 812, 812, 812, 593, 3484, 2039, 3577, 4103, 4721, 2607, -2541, 4103, 4117, 4103, 3484, 2307, 2621, 2622, 1307, 2608, 2656, 2664, 3590, 2677, 2690, 4085, 4086, 4087, 4088, 3485, 3486, 3487, 2772, 3488, 3489, 3490, 3491, 3492, 3493, 2723, 2778, 2307, 1307, 2308, 4233, 1956, 3590, 2022, 2728, 2791, 4509, 180, -2635, 2782, 3484, 2811, 2911, 2797, 1307, 2044, 2045, 2046, 2047, 2048, 2049, 2809, 2309, 2831, 2310, 2308, 4470, 5417, 5418, 2832, 2846, 2854, 4168, 1931, 1931, 2856, 2446, 2857, 4626, 4627, 2855, 4629, 2851, 2307, 833, 2865, 4661, 2869, 2309, 3574, 2310, 2881, 3574, 848, 848, 848, 848, -2541, 2040, 2304, 2882, 2041, 2042, 2043, 4579, 2044, 2045, 2046, 2047, 2048, 2049, 2308, 2883, 2884, 2898, 2905, 2916, 2917, 3469, 2919, 2945, 2798, 2277, 2948, 2950, 2304, 3589, 2952, 2959, 2375, 2953, 2964, 2969, 2970, 2309, 2972, 2310, 2974, 2976, 2984, 2994, 4222, 2980, 2995, 3485, 3486, 3487, -2541, 3488, 3489, 3490, 3491, 3492, 3493, 5021, 2998, 3012, 3017, 3011, -2541, 1322, 1326, 3574, 3035, -2541, 3028, 3036, 3049, 5065, -2541, 3054, 2304, 3055, 3076, 3082, -2541, 3081, 3084, -2541, 3091, 3183, 4619, -2541, 3103, 3123, 3099, 3127, 3195, 3206, 3215, 3485, 3486, 3487, 4880, 3488, 3489, 3490, 3491, 3492, 3493, -2635, -2635, -2635, 3202, 3488, 3489, 3490, 3491, 3492, 3493, 3203, -2541, 834, 3221, 4267, 3227, 3226, 3234, 3241, 3228, 3239, 3245, 3246, 3254, 3266, 3267, 5055, 3281, 5057, 3285, 3296, -2541, 4867, 180, 3283, 3287, 4307, 3299, 3305, 3308, 3485, 3486, 3487, 3313, 3488, 3489, 3490, 3491, 3492, 3493, 3314, 3316, 3315, 3317, 3321, 2021, 3327, 3329, 2022, 3330, 3334, 3348, 2023, 2024, 2025, 3333, 3349, 3351, 3352, 3353, 3355, 2021, -2541, 3358, 2022, -2541, 4678, 3360, 3361, 2026, 848, -2541, 3362, 1851, 812, 3363, 848, 2028, 1307, 3364, 3376, 3388, 3368, 3377, 2029, 812, 3391, 3395, 3834, 3390, 3397, 4350, 3400, 2028, 1898, 3401, 3402, 3403, 3404, 1895, -2635, 2277, 3405, 1860, 3413, 2691, 882, 883, 884, 2030, 885, 886, 887, 888, 889, 890, 812, 3415, 3416, 3417, 3577, 3427, 3432, 3424, 1176, 2030, -2541, 3434, 3438, 3439, 3182, 3446, 3441, 4911, 3463, 3460, -2132, 3474, 3442, 4398, 3461, 3462, 2100, 3467, 3529, 3468, 2326, 3470, 3473, 3496, 812, 3502, 3512, 3537, 2446, 5209, 3546, 3509, 1307, 1307, -1721, 3523, 3551, 3597, 3547, 4407, 3524, 4816, 3549, 3550, 3592, 3598, 3578, 3600, 3553, 3611, 3602, 3604, 3618, 751, 3624, 3629, 3640, 3632, 3636, 3631, 3089, 3637, 3089, 3643, 4685, 3652, 4073, 5215, 5217, 812, 3678, 3645, 3667, 866, 3680, 3668, 2755, 4977, 3684, 3685, -2541, 3686, 902, 3687, 3574, 4751, 3690, 893, 3703, 3702, 3705, 4840, 3713, 2031, 3711, 3712, 923, 3721, 2032, 3731, 3748, 3750, 1307, 3752, -2541, 3755, -2541, -2541, 1953, -2635, 3756, 3759, 3761, 1307, -2635, 3763, 3764, 3777, 3778, 3779, 2033, 2034, 3780, 3792, 3781, 3800, 3782, 3783, 3796, 3798, 3785, 2407, 3784, 3786, 3787, 2035, 3789, 3791, 3813, 3809, 3788, 3816, -2541, 1307, 3790, -2541, -2541, -2541, 3810, 3811, 3820, -2635, 3793, 1307, 1307, 3802, 3803, 3805, 3821, 3823, 1307, 1307, 3829, 3840, 3843, 1307, 3874, 4835, 2036, 3884, 1307, 3875, 3885, 1307, 1307, 3881, 3887, 3889, 1307, 4497, 3892, 3904, 2037, 3903, 1307, 812, 812, 812, 812, 3906, 3913, 3919, 4103, 4117, 4103, 3920, 1307, 4103, 2037, -2556, 4511, 3916, 3923, 3924, 3577, 4721, 3927, 3928, 3577, 5311, 3940, 3949, 3956, 3960, 4526, 3962, 3969, 3981, 3970, 3971, 3972, 3957, 3973, 3983, 3974, 3958, 3984, 3985, 3992, 895, 4987, 2449, 3993, 5067, 3994, 3996, 1307, 3976, 3997, 3998, 3610, 4987, 3999, 4551, 4000, 2911, 1975, 4004, 2466, 3499, 3478, -2131, 3498, 4054, 4538, 4540, 4013, 4078, 4065, 4095, 746, 1437, 4123, 1307, 4133, 4142, 4066, 2021, 4119, 2488, 2022, 4038, 2039, 4039, 4040, 5209, 4046, 4136, 4069, 4096, 4138, 4125, 4084, 3089, 3089, 4104, 4129, 5222, -2635, 4160, -2556, 4127, 4128, 4181, 3574, 1438, 4152, 4196, 3574, 2028, 4183, 2277, 180, 4184, 4197, 4198, -2635, 4189, 4199, 4201, 4203, 4205, 4206, 4220, 4867, 4592, 4223, 5054, 4235, 4238, 5059, 4250, 4251, 4236, 4237, 2566, 4248, 4262, 4584, 1046, 4264, 2030, 4249, 4265, 4252, 4253, 4275, 4591, 4276, 2574, -2556, 4299, 4281, 4284, 4301, 4211, 4303, 4314, 4306, 4315, 4317, 1081, -2556, 4318, 1440, 4321, 4342, -2556, 2755, 4356, 4331, 4370, -2556, 2588, 1307, 4380, 4362, 4377, -2556, 2040, 4382, -2556, 2041, 2042, 2043, -2556, 2044, 2045, 2046, 2047, 2048, 2049, 2643, 2755, 4389, -2635, 848, 4376, 4383, 1441, 4399, 4404, 2044, 2045, 2046, 2047, 2048, 2049, 4074, 4405, 4420, 848, 4422, 4417, -2556, 4425, 4430, 2617, 1081, 4426, 5279, 4421, 4418, 4438, 4423, 4442, 4444, 4450, 4462, 4471, 4472, 4473, 4514, 4474, -2556, 1442, 5182, 4515, 4457, 4467, 4466, 1307, 4475, -2133, 4522, 4494, 4972, 4479, 4507, 4523, 4510, -2635, 4529, 4512, 4528, 4527, -2635, 593, 5163, 4530, 4536, 4548, 4545, 2277, 4550, 4552, 4558, 4557, 4563, 1443, 4567, 4586, 1931, 4587, 4597, -2556, 4590, 4598, -2556, 4596, 4609, 4612, 4616, 4618, -2556, 2021, 2015, 1307, 2022, 4621, 4622, 4630, 4644, -2635, 595, 4638, 4639, 4652, 4653, 4658, 848, 1445, 3323, 4659, 4662, 4667, 4668, 4675, 1004, 4677, 5179, 4673, 4674, 4681, 1004, 4697, 2013, 2028, 4683, 4691, 4694, 4841, 4699, 4706, -2635, 893, 4716, 1004, 4717, 4718, 4726, 4738, 812, 4719, 4704, 4714, 1046, 4731, 4737, -2556, 2037, 4744, 35, 4752, 2261, 4754, 1447, 4745, 4747, 2030, 4755, 4756, 4757, 2785, 4779, 1448, 4763, 4769, 4772, 4798, 2013, 4807, 4783, 1449, 3590, 4801, 4804, 4839, 4810, 4821, 4831, 2262, 1307, 4832, 4826, 893, 4825, 2798, 4837, 4881, 4862, 1307, 4883, 1451, 4823, 4341, 4843, 4889, 4844, 4891, 4848, 1452, 751, 3548, 4893, 4853, 4900, 4917, 1307, 1307, 4854, 4855, 1307, 4894, 4897, 4918, 2755, 4899, 4925, 3567, 4930, 4882, 4935, 4927, 4944, 4945, 4492, 593, 4956, -2556, 4103, 4937, 4958, 4959, 3577, 4973, 4976, 4960, 180, 3577, -2635, 4980, 3577, 593, 4986, 3182, 5026, 4785, 4990, 1307, 1307, 5001, 4993, -2556, 5005, -2556, -2556, 1453, 4997, 5027, 5024, 4802, 5033, 4168, 5432, 1307, 4999, 5039, 5016, -2635, 5082, 3567, 5084, 5096, -2635, 825, 4168, 895, 848, 848, 848, 5089, 5093, 5147, 5094, 5103, 5108, 5054, 595, 5114, 5123, -2556, 5115, 5127, -2556, -2556, -2556, 595, 868, 5129, 5164, 5128, 5136, 5146, 5166, 595, 5168, 868, 595, 5145, 5139, -2635, 5154, 5167, 5170, 5171, 5175, 3574, 5176, 5137, 5138, 868, 5193, 5189, 3574, 5432, 860, 895, 5214, 3574, 5220, 5221, 3574, 5225, 5227, 5230, 5234, -2635, 5237, 5238, 5257, 5432, 5260, 5258, 2044, 2045, 2046, 2047, 2048, 2049, 5294, 5265, 5266, 3574, 5302, 5312, 5304, 5223, 2037, 5224, 5259, 5321, 5353, 1465, 2979, 4079, 3574, 5277, 5322, 1466, 860, 5358, 5339, 812, 5275, 5365, 5296, 5320, 2996, 5372, 5378, 592, 1568, 5386, 5383, 4350, 5409, 5392, 812, 5410, 5411, 2755, 1046, 812, 5419, 3089, 5421, 2021, 5425, 5443, 2022, 4951, 2277, 5446, 2023, 2024, 2025, 5447, 5459, 5442, 5460, 1468, 5445, 4915, 5466, 5467, 5471, 5472, 3029, 812, 5469, 2026, 1358, 4398, 2090, 2422, 3290, 3585, 1563, 2028, 1564, 3156, 3696, 3080, 4219, 5307, 2029, 848, 812, 4168, 4226, 5424, 5305, 3828, 1462, 4324, 2021, 3194, -2635, 2022, 5076, 5208, 4949, 2023, 2024, 2025, 5384, 4358, 4936, 4657, 3634, 2030, 4910, 1569, 1307, 1470, 5297, 1307, 3399, 1307, 2026, 5380, 1471, 826, 5228, 1472, 5226, 5319, 2028, 5397, 4814, 3639, 4388, 4408, 5187, 2029, 4351, 4224, 3891, 1307, 3264, 3265, 3715, 4375, 4679, 1307, 4916, 3255, 3899, 3577, 1473, 4921, 1552, 4785, 5473, 5385, 5464, 4895, 3846, 1307, 2030, 5363, 3841, 5324, 5035, 4842, 2497, 5195, 5004, 4845, 753, 1950, 4439, 5011, 1960, 5436, 2564, 2922, 4414, 3574, 3625, 2572, 5134, 2609, 1474, 1124, 2684, 2685, 3799, 4254, 2686, 812, 1738, 1931, 3895, -2635, 4274, 5344, 5458, 1335, 2184, 2860, 2044, 2045, 2046, 2047, 2048, 2049, 4541, 2634, 2867, 4803, 5291, 4146, 2868, 846, 1047, 2101, 1307, 2063, 3588, 2031, 3599, 2897, 859, 2878, 2032, 4126, 848, 848, 848, 848, 859, 5287, 2134, 859, 5169, 2133, 4533, 3574, 4099, 2896, 2138, 1475, 893, 1476, 4505, 4093, 2033, 2034, 2755, 2755, 4992, 5153, 4520, 1477, 5152, 4147, 4094, 5461, 2143, 5364, 5420, 2035, 1478, 2583, 593, 5278, 4048, 4971, 2031, 3250, 4800, 1532, 5289, 2032, 1479, 5290, 3455, 3544, 3217, 3542, 0, 0, 2836, 0, 0, 812, 2845, 0, 3577, 0, 1533, 0, 0, 0, 2036, 2033, 2034, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2037, 0, 2035, 2038, 1570, 0, 5117, 1481, 1482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1534, 4211, 0, 2036, 1307, 1571, 0, 593, 2207, 0, 1307, 180, 0, 0, 5161, 0, 0, 2037, 0, 595, 2038, 1307, 0, 0, 0, 1307, 0, 1307, 0, 1307, 0, 868, 0, 0, 180, 0, 4168, 868, 3574, 0, 0, 0, 848, 0, 895, 0, 0, 0, 0, 5172, 868, 0, 0, 0, 0, 1307, 0, 0, 2039, 0, 0, 0, 0, 4212, 0, 0, 868, 0, 0, 5301, 1484, 595, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 595, 868, 0, 0, 0, 1535, 0, 595, 0, 868, 595, 0, 0, 0, 0, 0, 3574, 0, 0, 1931, 1931, 0, 1095, 868, 0, 0, 2039, 0, 0, 0, 0, 0, 0, 868, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3574, 0, 0, 3425, 0, 848, 0, 0, 1536, 0, 0, 1537, 5242, 0, 0, 0, 1307, 0, 5350, 5351, 3437, 0, 2374, 0, 4213, 5254, 0, 0, 0, 2040, 0, 0, 2041, 2042, 2043, 3445, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 0, 0, 0, 0, 0, 3519, 1307, 1307, 1307, 0, 1539, 0, 3182, 0, 0, 1307, 0, 0, 0, 0, 0, 0, 0, 595, 595, 1307, 0, 0, 5004, 868, 0, 0, 0, 2911, 2040, 0, 0, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 0, 860, 0, 0, 2781, 0, 0, 1541, 595, 0, 0, 2013, 0, 0, 0, 0, 0, 0, 848, 0, 0, 0, 0, 0, 3574, 1931, 0, 4092, 0, 1542, 4097, 2020, 0, 0, 0, 0, 2021, 0, 0, 2022, 0, 0, 0, 2023, 2024, 2025, 0, 0, 0, 1544, 2277, 4214, 0, 0, 4215, 593, 0, 0, 0, 0, 2026, 1307, 0, 2027, 0, 5325, 0, 0, 2028, 0, 4168, 0, 0, 0, 0, 2029, 860, 860, 1307, 988, 0, 0, 0, 0, 184, 0, 0, 0, 1307, 0, 0, 5349, 5161, 5346, 0, 0, 5347, 0, 0, 0, 2030, 0, 5348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 848, 0, 0, 0, 5408, 0, 0, 0, 0, 0, 595, 595, 1700, 0, 0, 0, 0, 0, 846, 595, 5474, 5475, 0, 0, 0, 0, 1095, 0, 859, 0, 595, 0, 5254, 848, 848, 859, 595, 4168, 859, 595, 2304, 0, 0, 0, 0, 0, 0, 3574, 0, 184, 0, 1095, 0, 0, 0, 0, 5349, 0, 5346, 0, 0, 5347, 0, 2420, 1307, 1307, 1095, 5348, 0, 0, 0, 0, 0, 0, 0, 0, 1307, 0, 0, 0, 0, 0, 737, 0, 0, 0, 0, 0, 737, 0, 0, 0, 0, 0, 0, 3650, 0, 2031, 0, 0, 0, 0, 2032, 0, 0, 0, 0, 0, 0, 1307, 0, 595, 595, 0, 3661, 0, 0, 0, 0, 1307, 0, 0, 3574, 0, 2033, 2034, 0, 3574, 0, 0, 0, 0, 0, 848, 0, 0, 4168, 0, 0, 2035, 0, 0, 0, 0, 0, 5161, 0, 0, 184, 593, 0, 1095, 0, 0, 0, 5349, 0, 5346, 0, 0, 5347, 0, 0, 0, 0, 0, 5348, 0, 0, 860, 860, 0, 2036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2037, 0, 868, 2038, 0, 0, 0, 1465, 0, 0, 0, 0, 0, 1466, 0, 0, 0, 0, 0, 0, 868, 0, 0, 0, 3743, 0, 3745, 0, 0, 595, 0, 0, 0, 0, 0, 0, 0, 868, 0, 0, 3574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2508, 0, 0, 1468, 0, 0, 0, 3567, 2525, 2021, 0, 0, 2022, 868, 0, 0, 2023, 2024, 2025, 0, 2420, 0, 1095, 0, 868, 0, 0, 0, 0, 0, 0, 0, 0, 2026, 0, 0, 180, 0, 2039, 868, 0, 2028, 868, 0, 0, 0, 0, 0, 2029, 0, 0, 2694, 0, 2319, 595, 0, 0, 1470, 846, 0, 0, 0, 0, 3795, 1471, 0, 0, 1472, 0, 859, 0, 0, 0, 2030, 0, 859, 0, 0, 859, 0, 0, 0, 0, 0, 595, 0, 0, 0, 0, 0, 0, 0, 1473, 0, 0, 0, 2602, 0, 0, 0, 2695, 0, 3814, 0, 0, 0, 0, 0, 0, 0, 0, 0, 595, 595, 595, 0, 595, 0, 0, 0, 0, 0, 0, 2420, 0, 0, 1474, 0, 0, 0, 0, 0, 2696, 0, 0, 2040, 595, 0, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 1801, 1802, 0, 0, 0, 2697, 0, 0, 0, 0, 868, 0, 0, 0, 0, 0, 2698, 0, 868, 868, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2031, 0, 1475, 2699, 1476, 2032, 0, 0, 2700, 0, 0, 0, 0, 0, 1477, 0, 0, 0, 0, 0, 0, 3029, 0, 1478, 0, 595, 0, 2033, 2034, 595, 595, 0, 0, 0, 3567, 1479, 0, 0, 3567, 0, 0, 0, 2035, 0, 595, 0, 0, 0, 1095, 0, 0, 0, 0, 3951, 1700, 0, 0, 0, 0, 2701, 0, 0, 0, 0, 0, 0, 0, 0, 180, 180, 0, 0, 0, 2320, 0, 2036, 1481, 1482, 0, 0, 2702, 0, 0, 0, 0, 0, 0, 0, 0, 2037, 0, 0, 2038, 2021, 0, 0, 2022, 0, 0, 0, 2023, 2024, 2025, 0, 1465, 0, 2321, 0, 0, 0, 1466, 0, 0, 1095, 0, 0, 0, 2026, 0, 0, 0, 0, 0, 1467, 0, 2028, 0, 0, 0, 0, 0, 0, 2029, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 2703, 0, 0, 2704, 1468, 0, 1095, 4005, 0, 2030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1484, 0, 0, 0, 0, 4014, 2705, 0, 2039, 2706, 0, 0, 0, 0, 0, 2707, 1095, 0, 0, 0, 0, 0, 2708, 0, 0, 0, 0, 0, 0, 2913, 4037, 1469, 2218, 0, 0, 1470, 0, 2219, 0, 0, 0, 0, 1471, 0, 0, 1472, 0, 2929, 0, 0, 2709, 0, 0, 2933, 0, 2710, 0, 2936, 2711, 0, 0, 0, 0, 0, 1956, 0, 0, 0, 0, 0, 1473, 0, 2220, 0, 0, 0, 868, 2712, 0, 0, 0, 0, 0, 2960, 0, 2221, 0, 0, 0, 0, 0, 595, 595, 595, 0, 0, 2031, 0, 0, 0, 2222, 2032, 2713, 0, 1474, 2040, 0, 0, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 0, 0, 3842, 2033, 2034, 0, 0, 0, 0, 3015, 0, 0, 0, 0, 0, 0, 0, 0, 2035, 0, 0, 2223, 0, 0, 0, 0, 0, 1004, 180, 0, 0, 0, 2224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1475, 0, 1476, 0, 0, 0, 0, 0, 2036, 2225, 0, 0, 1477, 0, 2226, 0, 0, 3065, 0, 0, 0, 1478, 2037, 0, 0, 2038, 737, 0, 737, 0, 737, 1095, 0, 1479, 0, 0, 737, 1164, 1165, 0, 0, 0, 0, 3094, 0, 0, 0, 0, 1095, 0, 3104, 0, 0, 0, 0, 0, 3109, 1095, 0, 0, 0, 0, 0, 1004, 1700, 0, 0, 3124, 0, 1095, 0, 1480, 3128, 0, 1481, 1482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2227, 0, 868, 0, 0, 0, 3141, 0, 0, 0, 868, 3143, 0, 0, 0, 3146, 0, 0, 1483, 0, 0, 0, 868, 0, 3567, 0, 2039, 0, 3163, 3567, 0, 0, 3567, 0, 2228, 0, 0, 0, 0, 1095, 0, 3188, 0, 0, 0, 0, 595, 0, 0, 595, 0, 1004, 0, 1095, 0, 0, 0, 0, 0, 595, 0, 0, 0, 0, 0, 1095, 0, 206, 2229, 0, 0, 0, 0, 0, 0, 0, 0, 1095, 663, 0, 0, 0, 0, 1484, 0, 0, 0, 750, 0, 0, 0, 0, 0, 737, 595, 595, 0, 868, 868, 0, 2230, 0, 0, 0, 0, 0, 2231, 0, 0, 595, 0, 868, 595, 2232, 0, 0, 2233, 0, 0, 0, 0, 1095, 1095, 2040, 868, 868, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 2443, 0, 868, 0, 0, 0, 0, 0, 2234, 0, 0, 0, 0, 0, 0, 2235, 0, 0, 0, 0, 0, 4361, 0, 2236, 0, 0, 0, 0, 0, 0, 2237, 0, 0, 0, 595, 0, 0, 595, 595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 2238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 595, 0, 595, 0, 0, 0, 0, 595, 595, 0, 0, 0, 0, 0, 595, 595, 595, 0, 180, 0, 595, 0, 595, 595, 595, 595, 595, 595, 0, 595, 0, 595, 595, 0, 0, 595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1095, 595, 595, 595, 595, 1700, 0, 0, 0, 595, 0, 0, 0, 595, 0, 0, 595, 0, 0, 595, 595, 595, 595, 595, 595, 595, 595, 595, 0, 595, 0, 0, 3567, 0, 0, 0, 595, 3412, 595, 0, 0, 0, 2013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3426, 0, 0, 0, 0, 0, 0, 0, 3412, 0, 3339, 846, 0, 0, 846, 0, 0, 0, 0, 2021, 0, 0, 2022, 595, 0, 0, 2023, 2024, 2025, 0, 0, 1437, 1956, 0, 0, 0, 0, 0, 0, 595, 0, 0, 0, 2026, 0, 0, 0, 0, 595, 595, 0, 2028, 0, 0, 737, 0, 0, 0, 2029, 859, 859, 0, 0, 0, 0, 1438, 0, 0, 0, 0, 0, 0, 0, 868, 859, 0, 0, 859, 0, 0, 1095, 0, 0, 2030, 1095, 1095, 0, 0, 0, 0, 0, 868, 0, 0, 0, 0, 1700, 868, 0, 0, 0, 868, 0, 0, 0, 0, 0, 0, 0, 868, 0, 0, 0, 0, 0, 0, 0, 0, 3567, 0, 0, 0, 0, 0, 1440, 0, 0, 868, 180, 0, 595, 0, 0, 0, 0, 0, 0, 859, 0, 0, 859, 859, 595, 0, 0, 0, 1095, 4571, 0, 595, 0, 0, 595, 595, 0, 0, 0, 0, 0, 1441, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 868, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4593, 0, 0, 0, 3340, 868, 868, 2031, 0, 1442, 0, 0, 2032, 0, 1095, 0, 0, 180, 0, 1465, 0, 4608, 0, 0, 0, 1466, 0, 0, 0, 0, 0, 0, 0, 0, 2033, 2034, 0, 1700, 868, 0, 0, 1700, 0, 1443, 0, 0, 737, 0, 0, 2035, 0, 737, 737, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 868, 0, 1700, 1468, 0, 0, 0, 868, 0, 0, 0, 1445, 0, 868, 0, 0, 0, 0, 2036, 0, 868, 0, 4635, 0, 868, 0, 0, 0, 0, 868, 0, 0, 2037, 0, 0, 2038, 0, 3646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 868, 0, 0, 35, 0, 868, 0, 1447, 1470, 868, 0, 0, 1700, 0, 0, 1471, 1448, 0, 1472, 0, 0, 0, 868, 0, 1449, 0, 0, 0, 0, 0, 1465, 0, 2262, 0, 0, 868, 1466, 0, 0, 0, 0, 0, 0, 1473, 1451, 868, 737, 0, 0, 0, 0, 0, 1452, 0, 0, 0, 737, 980, 0, 0, 0, 0, 595, 595, 595, 0, 0, 0, 595, 0, 0, 0, 0, 2039, 3342, 0, 0, 1474, 1468, 0, 0, 0, 0, 0, 0, 0, 0, 4725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1164, 1165, 3726, 0, 0, 595, 1095, 0, 0, 0, 1453, 0, 1045, 663, 3343, 1700, 0, 0, 0, 0, 0, 0, 846, 0, 0, 0, 0, 0, 0, 859, 0, 0, 859, 859, 1470, 1956, 0, 0, 1475, 180, 1476, 1471, 0, 737, 1472, 0, 737, 737, 0, 595, 1477, 0, 0, 0, 0, 0, 0, 0, 0, 1478, 0, 0, 0, 0, 0, 180, 0, 0, 0, 1473, 0, 1479, 2040, 0, 0, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 0, 1095, 4006, 0, 0, 0, 868, 0, 0, 0, 0, 0, 0, 0, 0, 595, 1474, 0, 0, 0, 1183, 0, 1597, 0, 0, 1481, 1482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3807, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1202, 0, 0, 0, 0, 0, 0, 0, 1310, 1598, 5407, 1319, 1045, 1321, 0, 868, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1475, 0, 1476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1477, 0, 0, 0, 0, 0, 0, 0, 0, 1478, 0, 0, 0, 0, 0, 0, 868, 0, 0, 0, 0, 1479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1095, 1484, 868, 0, 0, 0, 0, 0, 0, 1465, 868, 0, 0, 0, 595, 1466, 0, 1095, 0, 0, 595, 737, 0, 595, 0, 0, 595, 2242, 1568, 0, 1481, 1482, 1095, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 595, 0, 0, 0, 0, 595, 0, 0, 0, 0, 0, 0, 0, 0, 1468, 0, 0, 2243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 595, 595, 595, 0, 0, 595, 0, 0, 0, 0, 0, 0, 0, 595, 595, 595, 595, 0, 0, 0, 0, 1700, 0, 0, 0, 0, 595, 1700, 0, 595, 0, 595, 0, 0, 0, 2420, 0, 1956, 1569, 0, 1470, 0, 595, 595, 0, 0, 595, 1471, 0, 0, 1472, 0, 0, 3977, 1484, 0, 0, 0, 0, 0, 595, 2578, 595, 0, 595, 0, 0, 0, 0, 0, 0, 2586, 0, 2587, 0, 1473, 0, 3795, 3991, 2591, 2021, 0, 0, 2022, 595, 0, 2597, 2023, 2024, 2025, 0, 0, 0, 0, 0, 595, 0, 0, 0, 2021, 0, 0, 2022, 868, 2026, 0, 2023, 2024, 2025, 1474, 0, 0, 2028, 0, 0, 0, 0, 0, 595, 2029, 0, 0, 0, 2026, 0, 0, 0, 0, 0, 0, 1956, 2028, 0, 595, 0, 1956, 1956, 0, 2029, 0, 0, 0, 0, 0, 2030, 0, 0, 595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2030, 0, 0, 1095, 0, 1475, 1095, 1476, 1095, 0, 0, 0, 0, 1095, 0, 0, 0, 1477, 0, 0, 0, 0, 0, 0, 0, 0, 1478, 0, 868, 868, 0, 0, 0, 0, 595, 0, 0, 0, 1479, 0, 0, 0, 1045, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2729, 2730, 868, 0, 846, 868, 1045, 2744, 2745, 1095, 859, 0, 0, 859, 0, 0, 859, 0, 0, 0, 0, 0, 2021, 3153, 0, 2022, 1481, 1482, 1095, 2023, 2024, 2025, 5135, 0, 0, 2783, 0, 0, 2031, 0, 1955, 0, 0, 2032, 0, 0, 2026, 0, 0, 0, 0, 0, 0, 1095, 2028, 0, 3154, 2031, 0, 0, 0, 2029, 2032, 1045, 0, 2033, 2034, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2035, 0, 0, 0, 2033, 2034, 2030, 0, 0, 0, 1700, 1700, 1700, 0, 0, 4191, 0, 0, 0, 2035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2036, 868, 0, 0, 0, 0, 0, 0, 1484, 0, 0, 1095, 0, 1095, 2037, 0, 0, 2038, 0, 2036, 0, 868, 0, 0, 0, 0, 2017, 0, 0, 2887, 2887, 0, 0, 2037, 0, 2019, 2038, 0, 0, 0, 868, 0, 0, 592, 0, 0, 0, 0, 0, 2061, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1045, 0, 0, 2078, 2079, 0, 0, 0, 1045, 1045, 0, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 2032, 0, 737, 0, 0, 0, 0, 592, 0, 4289, 0, 0, 4292, 0, 1095, 0, 2039, 0, 0, 0, 0, 0, 2033, 2034, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 868, 2039, 5283, 2035, 0, 595, 0, 0, 0, 0, 0, 595, 0, 0, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2036, 0, 0, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 0, 0, 2037, 1700, 1095, 2038, 0, 0, 0, 0, 868, 0, 868, 0, 3031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 868, 0, 868, 0, 0, 0, 2040, 4372, 0, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 0, 0, 4057, 1700, 2040, 2420, 0, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 0, 0, 4162, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 868, 1095, 2039, 0, 0, 1816, 737, 0, 0, 0, 0, 0, 0, 0, 737, 1095, 2021, 737, 0, 2022, 0, 0, 0, 2023, 2024, 2025, 0, 0, 0, 0, 0, 0, 0, 1843, 3412, 0, 2379, 0, 0, 0, 2026, 0, 2384, 0, 0, 0, 0, 0, 2028, 0, 0, 868, 0, 1861, 0, 2029, 0, 0, 0, 0, 0, 0, 0, 1872, 0, 0, 0, 1875, 0, 868, 0, 1878, 0, 1880, 0, 0, 0, 0, 0, 1888, 2030, 0, 0, 0, 0, 1896, 0, 0, 1899, 0, 0, 868, 0, 0, 868, 0, 0, 0, 0, 2040, 0, 0, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 595, 0, 4458, 1095, 0, 0, 0, 0, 0, 595, 0, 0, 0, 0, 0, 595, 0, 595, 0, 0, 595, 0, 0, 0, 1095, 595, 595, 595, 595, 0, 0, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 0, 0, 0, 595, 595, 0, 0, 0, 1095, 0, 0, 0, 0, 595, 0, 0, 0, 595, 0, 1700, 0, 595, 0, 0, 0, 0, 0, 0, 0, 595, 0, 0, 595, 0, 595, 2031, 0, 0, 0, 0, 2032, 0, 1095, 595, 0, 0, 595, 595, 0, 0, 0, 595, 595, 0, 0, 0, 0, 0, 595, 0, 0, 0, 2033, 2034, 0, 0, 0, 0, 595, 0, 0, 595, 0, 0, 0, 0, 0, 2035, 3365, 3367, 0, 0, 0, 595, 3375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2519, 0, 0, 0, 2524, 0, 595, 0, 0, 2036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 595, 2037, 0, 0, 2038, 0, 1095, 0, 0, 0, 0, 0, 0, 4603, 0, 0, 0, 0, 595, 0, 0, 0, 737, 0, 0, 4613, 0, 0, 0, 0, 0, 0, 0, 0, 2021, 0, 0, 2022, 0, 0, 0, 2023, 2024, 2025, 0, 0, 0, 0, 0, 868, 0, 0, 0, 0, 2021, 0, 0, 2022, 2026, 0, 0, 2023, 2024, 2025, 0, 0, 2028, 0, 0, 0, 0, 0, 0, 2029, 1465, 0, 0, 0, 2026, 0, 1466, 0, 0, 0, 0, 0, 2028, 0, 0, 0, 0, 2039, 0, 2029, 0, 0, 0, 0, 2030, 0, 1700, 0, 0, 0, 0, 1700, 1095, 1700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2021, 2030, 0, 2022, 0, 1468, 0, 2023, 2024, 2025, 0, 0, 1700, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2026, 0, 0, 0, 0, 0, 0, 1700, 2028, 0, 0, 0, 0, 0, 0, 2029, 0, 0, 0, 0, 0, 0, 0, 868, 0, 0, 868, 0, 0, 0, 0, 0, 0, 0, 0, 1470, 0, 0, 0, 0, 2030, 0, 1471, 0, 0, 1472, 0, 2040, 0, 0, 2041, 2042, 2043, 2740, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 0, 0, 4493, 0, 0, 2031, 0, 0, 1473, 0, 2032, 0, 0, 0, 0, 3583, 0, 737, 3412, 592, 0, 0, 592, 0, 0, 2031, 0, 0, 0, 0, 2032, 595, 2033, 2034, 0, 0, 0, 0, 0, 3595, 3595, 0, 1474, 0, 0, 0, 0, 2035, 0, 0, 0, 0, 2033, 2034, 0, 0, 868, 868, 0, 0, 1095, 0, 0, 0, 0, 0, 868, 2035, 0, 0, 0, 0, 0, 595, 0, 0, 0, 0, 0, 0, 2036, 0, 2853, 0, 1465, 868, 0, 0, 2031, 0, 1466, 0, 592, 2032, 2037, 0, 0, 2038, 0, 0, 2036, 1475, 0, 1476, 0, 0, 0, 0, 0, 0, 1095, 595, 595, 1477, 2037, 2033, 2034, 2038, 0, 0, 0, 0, 1478, 0, 3412, 0, 3412, 0, 0, 0, 2035, 0, 1468, 0, 1479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 868, 0, 0, 0, 1465, 2036, 0, 0, 0, 0, 1466, 0, 0, 0, 3024, 0, 0, 1481, 1482, 2037, 0, 0, 2038, 595, 0, 0, 2039, 0, 1470, 0, 0, 0, 0, 1045, 595, 1471, 0, 0, 1472, 0, 0, 0, 0, 0, 0, 0, 2039, 1483, 0, 0, 0, 0, 1468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1473, 595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 595, 595, 0, 1095, 0, 0, 0, 595, 595, 0, 0, 0, 595, 1095, 0, 0, 0, 595, 0, 0, 595, 595, 0, 1474, 0, 595, 0, 0, 0, 0, 1321, 595, 1470, 0, 0, 2039, 0, 0, 1484, 1471, 0, 0, 1472, 595, 0, 0, 0, 0, 0, 2040, 0, 595, 2041, 2042, 2043, 595, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 0, 0, 4742, 1473, 0, 2040, 0, 0, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 1475, 595, 1476, 0, 4753, 0, 0, 0, 0, 0, 0, 0, 1477, 0, 0, 0, 0, 0, 0, 1474, 0, 1478, 0, 2604, 0, 0, 0, 1321, 595, 0, 0, 2611, 0, 1479, 0, 0, 592, 0, 0, 0, 0, 0, 0, 0, 1321, 0, 1095, 0, 0, 0, 2040, 2623, 0, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 868, 0, 0, 0, 4762, 1700, 0, 0, 3197, 0, 0, 1481, 1482, 0, 0, 1475, 0, 1476, 0, 0, 0, 0, 1095, 0, 0, 0, 0, 1477, 0, 0, 0, 0, 737, 0, 0, 0, 1478, 0, 868, 0, 737, 3198, 3191, 1095, 0, 0, 0, 0, 1479, 0, 868, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3880, 0, 595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3220, 868, 0, 3220, 0, 3220, 0, 0, 0, 3220, 3672, 3220, 3220, 1481, 1482, 0, 0, 0, 0, 0, 3220, 3220, 3220, 0, 0, 0, 2021, 0, 0, 2022, 1484, 0, 1095, 2023, 2024, 2025, 0, 0, 0, 0, 0, 0, 0, 3673, 0, 0, 0, 0, 0, 0, 2026, 0, 0, 0, 0, 0, 0, 595, 2028, 0, 0, 0, 0, 0, 0, 2029, 0, 0, 0, 0, 3953, 0, 0, 595, 0, 0, 0, 0, 3300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2030, 0, 0, 0, 0, 0, 868, 0, 0, 0, 0, 0, 0, 595, 0, 0, 0, 592, 1484, 0, 3332, 592, 0, 0, 2858, 0, 0, 1465, 0, 1045, 0, 0, 0, 1466, 0, 2021, 0, 0, 2022, 0, 0, 0, 2023, 2024, 2025, 1465, 0, 0, 0, 0, 0, 1466, 0, 0, 1095, 0, 1095, 0, 0, 2026, 0, 737, 0, 0, 0, 0, 0, 2028, 0, 0, 0, 0, 0, 0, 2029, 1468, 0, 0, 0, 0, 868, 0, 0, 0, 1045, 0, 0, 0, 0, 0, 0, 0, 0, 1468, 0, 0, 0, 0, 595, 2030, 0, 0, 1095, 0, 0, 0, 0, 595, 0, 0, 2031, 0, 0, 0, 0, 2032, 0, 0, 0, 0, 0, 0, 0, 0, 595, 595, 0, 0, 595, 1470, 0, 0, 0, 0, 0, 0, 1471, 2033, 2034, 1472, 0, 0, 0, 595, 0, 0, 0, 1470, 0, 0, 595, 0, 2035, 0, 1471, 595, 0, 1472, 595, 595, 0, 0, 0, 0, 1473, 595, 595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 595, 0, 595, 1473, 0, 0, 2036, 868, 0, 868, 0, 0, 0, 595, 0, 0, 0, 0, 0, 1474, 2037, 0, 0, 2038, 0, 0, 0, 0, 3412, 0, 2031, 0, 0, 0, 0, 2032, 0, 1474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1095, 868, 0, 0, 2033, 2034, 0, 0, 0, 0, 595, 0, 0, 0, 0, 0, 0, 0, 0, 2035, 0, 0, 0, 0, 0, 1475, 0, 1476, 4664, 0, 0, 0, 0, 0, 0, 0, 0, 1477, 0, 0, 0, 0, 0, 1475, 0, 1476, 1478, 0, 1700, 0, 0, 0, 2036, 0, 595, 1477, 0, 2039, 1479, 0, 0, 0, 0, 0, 1478, 0, 2037, 0, 0, 2038, 0, 0, 0, 0, 0, 0, 1479, 0, 0, 0, 0, 0, 0, 0, 1045, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3728, 0, 0, 1481, 1482, 0, 0, 0, 1437, 0, 0, 0, 0, 0, 4940, 0, 737, 0, 0, 0, 0, 1481, 1482, 0, 0, 0, 0, 595, 0, 1095, 0, 0, 0, 3729, 0, 0, 0, 0, 0, 0, 737, 0, 1438, 0, 0, 0, 0, 737, 0, 0, 0, 1483, 595, 1095, 0, 595, 1437, 595, 2040, 0, 2039, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 0, 1439, 0, 0, 4765, 0, 595, 0, 0, 0, 0, 0, 595, 0, 0, 0, 595, 0, 0, 1438, 0, 592, 1095, 0, 0, 0, 595, 1484, 592, 0, 1440, 0, 0, 592, 0, 1045, 592, 4781, 0, 0, 0, 0, 0, 1437, 0, 1484, 0, 0, 0, 1506, 0, 0, 0, 1164, 1165, 0, 0, 592, 0, 0, 0, 0, 0, 0, 0, 1441, 0, 1700, 0, 0, 592, 0, 0, 0, 0, 1095, 0, 1438, 1440, 0, 1095, 1095, 0, 0, 0, 595, 2040, 0, 0, 2041, 2042, 2043, 868, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 1442, 3354, 4812, 868, 0, 0, 1523, 0, 3359, 0, 0, 0, 1441, 0, 0, 0, 0, 0, 0, 859, 0, 0, 0, 0, 0, 3720, 0, 0, 3378, 0, 0, 0, 595, 0, 1443, 1440, 0, 0, 3384, 0, 0, 3385, 0, 3386, 3387, 873, 0, 3389, 1442, 0, 0, 0, 0, 3393, 0, 3394, 595, 907, 3396, 0, 0, 0, 0, 859, 0, 1444, 1445, 0, 925, 0, 1441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3758, 0, 1443, 0, 0, 0, 0, 0, 0, 0, 0, 1095, 1095, 0, 0, 0, 737, 0, 0, 0, 0, 0, 0, 1446, 0, 0, 1442, 35, 0, 0, 0, 1447, 595, 1507, 1445, 595, 0, 0, 595, 0, 1448, 3435, 0, 0, 0, 0, 0, 0, 1449, 595, 0, 0, 592, 595, 0, 595, 1450, 595, 0, 0, 1443, 0, 0, 0, 595, 0, 3797, 0, 1451, 0, 0, 1508, 0, 0, 0, 35, 1452, 0, 0, 1447, 0, 0, 0, 595, 0, 0, 0, 0, 1448, 0, 0, 1524, 1445, 0, 0, 0, 1449, 0, 0, 0, 0, 0, 2021, 0, 1509, 2022, 0, 0, 3220, 2023, 2024, 2025, 592, 0, 0, 0, 1451, 0, 1700, 0, 868, 0, 3827, 0, 1452, 0, 2026, 0, 3838, 1525, 0, 0, 1453, 35, 2028, 0, 3838, 1447, 0, 0, 0, 2029, 1045, 0, 1045, 0, 1448, 0, 0, 0, 0, 0, 0, 0, 1449, 0, 0, 0, 0, 0, 0, 0, 1526, 0, 0, 0, 2030, 0, 0, 0, 595, 0, 0, 0, 1451, 0, 0, 0, 0, 595, 1453, 0, 1452, 0, 0, 0, 0, 0, 0, 0, 3902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 595, 595, 595, 0, 0, 0, 0, 0, 0, 595, 1700, 0, 0, 1095, 0, 0, 0, 3935, 1045, 595, 0, 0, 0, 601, 0, 5095, 0, 0, 868, 652, 601, 0, 0, 0, 1453, 705, 0, 601, 0, 0, 0, 737, 595, 601, 0, 756, 737, 0, 0, 592, 737, 0, 0, 0, 0, 0, 0, 868, 0, 0, 0, 0, 0, 0, 823, 823, 0, 0, 0, 0, 0, 0, 2031, 0, 0, 4606, 4607, 2032, 0, 0, 4610, 4611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 595, 0, 0, 2033, 2034, 0, 595, 3644, 0, 0, 0, 0, 592, 0, 0, 595, 0, 0, 2035, 0, 0, 595, 595, 595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 595, 0, 0, 0, 0, 0, 0, 0, 592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2037, 868, 0, 2038, 939, 0, 0, 0, 0, 0, 986, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 595, 3704, 0, 3706, 0, 595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4058, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 855, 0, 0, 0, 0, 0, 595, 595, 897, 0, 0, 899, 0, 0, 904, 905, 0, 908, 595, 910, 0, 0, 916, 0, 918, 0, 0, 0, 0, 0, 0, 0, 1700, 0, 0, 0, 0, 0, 0, 2039, 592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 595, 0, 0, 0, 0, 0, 2021, 0, 0, 2022, 595, 0, 0, 2023, 2024, 2025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 595, 0, 0, 2026, 0, 0, 0, 0, 0, 0, 0, 2028, 0, 595, 0, 1700, 0, 0, 2029, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 859, 0, 1700, 0, 595, 595, 1191, 3794, 0, 0, 0, 0, 0, 3801, 2030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2040, 0, 1314, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 0, 0, 4847, 0, 0, 0, 1337, 0, 0, 2021, 5328, 0, 2022, 0, 0, 0, 2023, 2024, 2025, 0, 0, 0, 0, 0, 0, 592, 0, 0, 1365, 0, 0, 859, 859, 2026, 0, 0, 0, 0, 0, 3838, 0, 2028, 0, 0, 0, 0, 0, 0, 2029, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4260, 0, 0, 0, 0, 0, 737, 0, 4268, 1496, 2030, 4269, 0, 4270, 0, 0, 0, 2031, 0, 0, 0, 0, 2032, 0, 0, 2021, 0, 0, 2022, 0, 0, 0, 2023, 2024, 2025, 0, 0, 592, 0, 0, 0, 0, 592, 0, 2033, 2034, 0, 0, 0, 2026, 0, 0, 0, 0, 0, 4309, 0, 2028, 0, 2035, 0, 0, 0, 0, 2029, 0, 0, 0, 3220, 0, 0, 0, 3220, 3220, 0, 3220, 0, 0, 0, 0, 3827, 0, 0, 0, 0, 0, 0, 0, 0, 2030, 0, 0, 2036, 0, 0, 0, 0, 0, 3959, 0, 3961, 0, 3963, 0, 0, 0, 2037, 0, 0, 2038, 0, 3967, 0, 0, 0, 0, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 2032, 0, 0, 0, 0, 0, 0, 0, 0, 1754, 0, 0, 0, 0, 0, 0, 592, 0, 0, 0, 0, 0, 2033, 2034, 0, 0, 0, 3990, 0, 5463, 0, 0, 0, 0, 0, 0, 0, 2035, 1792, 1795, 1796, 0, 0, 0, 0, 0, 0, 0, 0, 859, 859, 0, 0, 0, 4411, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2036, 2039, 0, 0, 2031, 0, 0, 0, 989, 2032, 0, 0, 0, 0, 2037, 0, 998, 2038, 0, 0, 0, 0, 0, 1011, 1012, 0, 0, 1018, 0, 1021, 1022, 2033, 2034, 0, 1024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1042, 2035, 0, 0, 4447, 4447, 4447, 0, 4447, 4447, 4447, 4447, 4447, 0, 0, 1052, 0, 0, 0, 0, 0, 0, 0, 737, 737, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2036, 0, 0, 737, 0, 0, 1120, 0, 1122, 0, 0, 0, 0, 0, 2037, 0, 0, 2038, 1138, 2040, 0, 0, 2041, 2042, 2043, 2039, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 1314, 0, 4888, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4532, 2039, 4534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2040, 0, 0, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 823, 0, 0, 0, 5198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1428, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5206, 0, 0, 0, 0, 0, 2092, 0, 0, 0, 0, 2040, 0, 0, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 0, 0, 5327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1600, 0, 0, 0, 2021, 2145, 0, 2022, 0, 0, 0, 2023, 2024, 2025, 0, 0, 0, 0, 0, 0, 0, 1711, 0, 0, 0, 0, 0, 0, 2026, 0, 0, 0, 0, 1722, 0, 0, 2028, 0, 1725, 0, 0, 4633, 4634, 2029, 0, 0, 0, 0, 1728, 0, 0, 0, 3220, 1732, 3220, 3220, 0, 0, 3220, 0, 0, 1735, 0, 0, 0, 0, 0, 1745, 2030, 0, 1749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2295, 0, 0, 737, 2021, 737, 0, 2022, 0, 0, 0, 2023, 2024, 2025, 0, 0, 0, 0, 1803, 0, 0, 0, 0, 0, 0, 0, 0, 4693, 2026, 0, 0, 2332, 0, 0, 0, 0, 2028, 0, 0, 0, 0, 0, 0, 2029, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2355, 0, 0, 2358, 0, 0, 0, 4720, 0, 0, 0, 0, 0, 0, 2030, 0, 0, 0, 0, 0, 0, 4429, 0, 0, 0, 4431, 0, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 2032, 0, 0, 0, 4447, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2406, 0, 0, 0, 2033, 2034, 0, 0, 0, 0, 0, 0, 0, 0, 2424, 0, 0, 0, 0, 2035, 0, 0, 0, 0, 0, 601, 0, 601, 0, 601, 0, 601, 0, 601, 601, 601, 0, 0, 0, 0, 601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1951, 2036, -129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2037, 0, 0, 2038, 2031, 1, 0, 0, 0, 2032, 0, 737, 0, 0, 0, 2, 0, 3, 4, 0, 5430, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2033, 2034, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 2035, 0, 0, 0, 0, 0, 0, 0, 7, 0, 8, 9, 0, 2447, 0, 0, 0, 10, 0, 11, 3838, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 13, 2036, 0, 5430, 0, 0, 0, 0, 0, 0, 0, 0, 2039, 0, 0, 2037, 0, 14, 2038, 5430, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3220, 0, 0, 16, 2501, 17, 0, 4570, 0, 18, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 20, 0, 21, 0, 0, 0, 0, 0, 22, 0, 2544, 0, 0, 0, 0, 0, 0, 2557, 0, 0, 0, 0, 0, 0, 23, 0, 4594, 4595, 823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2039, 0, 0, 0, 2040, 0, 0, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 2021, 0, 0, 2022, 5396, 0, 0, 2023, 2024, 2025, 0, 0, 0, 25, 26, 0, 0, 0, 0, 27, 0, 0, 0, 0, 2026, 0, 0, 0, 0, 0, 0, 28, 2028, 0, 0, 0, 0, 0, 0, 2029, 0, 2240, 0, 29, 4636, 4637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2632, 0, 0, 0, 0, 0, 0, 0, 0, 2030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2040, 0, 0, 2041, 2042, 2043, 30, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 1314, 1314, 5449, 0, 0, 31, 0, 0, 0, 0, 0, 32, 33, 0, 34, 0, 2331, 2683, 0, 35, 0, 0, 0, 0, 36, 0, 0, 37, 5049, 5049, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 39, 40, 1045, 0, 0, 0, 5069, 0, 41, 0, 0, 0, 42, 0, 0, 0, 5077, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 4733, 0, 4734, 4735, 0, 0, 0, 0, 44, 0, 0, 0, 2031, 2021, 0, 0, 2022, 2032, 4739, 0, 2023, 2024, 2025, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 2026, 46, 2033, 2034, 2870, 0, 0, 47, 2028, 0, 2844, 0, 48, 0, 0, 2029, 0, 2035, 0, 0, 2850, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2021, 0, 0, 2022, 2030, 0, 0, 2023, 2024, 2025, 0, 0, 50, 1365, 2036, 0, 0, 0, 0, 0, 0, 1365, 0, 1365, 2026, 0, 51, 0, 2037, -129, 0, 2038, 2028, 0, 0, 0, 0, 0, 0, 2029, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2871, 0, 0, 1314, 0, 0, 0, 0, 0, 0, 0, 2030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1045, 0, 0, 0, 5212, 0, 5213, 0, 0, 0, 5218, 5219, 0, 0, 0, 2031, 0, 0, 0, 2039, 2032, 0, 0, 0, 0, 2492, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2033, 2034, 0, 0, 0, 0, 0, 0, 0, 3498, 0, 0, 0, 0, 3499, 2035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2021, 2031, 0, 2022, 0, 0, 2032, 2023, 2024, 2025, 0, 0, 0, 0, 0, 0, 2036, 0, 0, 0, 0, 0, 0, 0, 2026, 3033, 0, 3457, 2033, 2034, 2037, 0, 2028, 2038, 0, 0, 0, 0, 0, 2029, 0, 3056, 2040, 2035, 0, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 0, 0, 5462, 0, 0, 3083, 5049, 2030, 5049, 0, 0, 0, 4967, 0, 0, 0, 0, 0, 0, 2036, 0, 2615, 0, 2616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2037, 0, 0, 2038, 0, 0, 0, 2627, 0, 2628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 601, 0, 601, 0, 601, 0, 601, 2039, 601, 0, 0, 0, 601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3157, 3158, 0, 0, 5013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1045, 0, 2031, 0, 0, 2872, 0, 2032, 2039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5060, 0, 0, 0, 0, 0, 0, 0, 0, 2033, 2034, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2035, 2040, 0, 0, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3284, 5049, 0, 0, 0, 2036, 0, 0, 0, 0, 5431, 0, 0, 0, 0, 0, 0, 0, 0, 2037, 0, 0, 2038, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2040, 0, 0, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 0, 0, 2021, 0, 0, 2022, 0, 0, 0, 2023, 2024, 2025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5431, 0, 0, 2026, 0, 0, 0, 0, 0, 0, 0, 2028, 0, 0, 0, 0, 5431, 0, 2029, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2914, 2915, 0, 2039, 0, 0, 0, 0, 2030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2930, 2931, 0, 0, 0, 2934, 2935, 0, 861, 870, 2938, 0, 0, 0, 0, 0, 861, 0, 870, 861, 0, 0, 0, 0, 2949, 0, 0, 0, 0, 0, 0, 2958, 870, 0, 0, 2961, 2962, 0, 0, 2965, 2966, 0, 0, 0, 0, 0, 2971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3429, 0, 2990, 0, 2992, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2040, 3016, 0, 2041, 2042, 2043, 3018, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 0, 0, 0, 2031, 3023, 0, 0, 0, 2032, 0, 0, 0, 0, 3030, 0, 2021, 3034, 0, 2022, 3037, 3040, 3042, 2023, 2024, 2025, 0, 3050, 3053, 0, 0, 2033, 2034, 0, 0, 0, 0, 3066, 0, 0, 2026, 0, 3075, 0, 0, 0, 2035, 3079, 2028, 0, 0, 0, 0, 0, 0, 2029, 0, 0, 0, 0, 0, 0, 0, 3095, 0, 0, 0, 0, 0, 0, 3105, 3106, 0, 0, 0, 0, 3110, 869, 0, 2036, 2030, 0, 0, 0, 0, 0, 869, 3125, 3126, 0, 0, 0, 3129, 2037, 0, 0, 2038, 0, 0, 0, 869, 0, 0, 0, 3136, 0, 0, 3139, 0, 0, 0, 0, 3142, 0, 0, 0, 0, 3144, 3145, 3559, 4049, 0, 3148, 0, 0, 3152, 0, 0, 0, 3159, 3160, 3161, 3162, 0, 3164, 0, 0, 0, 0, 0, 0, 0, 1365, 0, 0, 0, 0, 3189, 3190, 0, 3192, 0, 0, 0, 0, 0, 0, 5376, 0, 0, 3200, 3201, 0, 0, 2021, 5356, 0, 2022, 0, 0, 0, 2023, 2024, 2025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2039, 0, 0, 0, 0, 2026, 0, 2031, 0, 0, 0, 0, 2032, 2028, 0, 0, 4050, 0, 0, 0, 2029, 0, 847, 849, 0, 0, 853, 0, 0, 0, 0, 0, 0, 0, 2033, 2034, 0, 0, 0, 0, 0, 0, 3258, 0, 0, 2030, 909, 2021, 0, 2035, 2022, 0, 0, 919, 2023, 2024, 2025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3295, 2026, 0, 0, 3503, 0, 0, 0, 0, 2028, 0, 0, 2036, 0, 0, 0, 2029, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2037, 2040, 0, 2038, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 0, 2030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2031, 870, 0, 0, 0, 2032, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 2033, 2034, 0, 0, 2039, 0, 0, 0, 0, 870, 0, 0, 0, 0, 3749, 2035, 0, 0, 0, 0, 0, 0, 0, 0, 861, 870, 0, 0, 0, 0, 0, 861, 0, 870, 861, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 2032, 0, 0, 870, 2036, 0, 0, 0, 0, 0, 0, 3430, 0, 870, 0, 0, 0, 0, 2037, 0, 0, 2038, 2033, 2034, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2035, 0, 3471, 0, 0, 3448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2040, 0, 0, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 2036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2021, 2037, 0, 2022, 2038, 0, 0, 2023, 2024, 2025, 869, 0, 0, 0, 0, 870, 869, 0, 0, 0, 0, 0, 0, 0, 2026, 2039, 0, 0, 0, 869, 0, 0, 2028, 0, 0, 0, 0, 0, 0, 2029, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 0, 0, 0, 3871, 3872, 3873, 0, 0, 0, 0, 869, 0, 0, 2030, 0, 0, 0, 0, 869, 0, 3882, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 0, 0, 2039, 0, 869, 3898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3908, 3910, 0, 0, 0, 3915, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2040, 0, 0, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 0, 992, 0, 0, 2021, 995, 0, 2022, 0, 0, 0, 2023, 2024, 2025, 0, 0, 0, 0, 3508, 1020, 0, 1702, 0, 0, 0, 0, 1025, 0, 2026, 0, 0, 3514, 0, 0, 0, 0, 2028, 2031, 0, 861, 0, 869, 2032, 2029, 0, 861, 0, 0, 861, 0, 0, 2040, 0, 0, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 2033, 2034, 0, 0, 2030, 0, 0, 0, 0, 0, 0, 0, 3647, 0, 0, 2035, 3649, 0, 0, 1314, 0, 0, 3651, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3662, 3664, 0, 0, 0, 3664, 0, 0, 2036, 0, 3675, 3676, 3677, 0, 3679, 0, 0, 0, 0, 0, 0, 0, 2037, 0, 0, 2038, 0, 0, 0, 0, 0, 0, 2021, 0, 0, 2022, 0, 3701, 0, 2023, 2024, 2025, 0, 0, 0, 0, 0, 3707, 3708, 3709, 3710, 0, 0, 0, 0, 0, 2026, 0, 0, 0, 0, 0, 0, 0, 2028, 0, 0, 0, 0, 0, 0, 2029, 0, 0, 2031, 0, 0, 0, 0, 2032, 1701, 0, 0, 0, 3727, 0, 0, 3732, 3733, 3734, 0, 0, 0, 870, 0, 0, 2030, 0, 0, 0, 0, 2033, 2034, 0, 0, 3754, 0, 4089, 4090, 4091, 0, 870, 2039, 0, 0, 0, 2035, 0, 0, 0, 0, 0, 0, 0, 0, 3762, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2036, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 1497, 1498, 2037, 0, 0, 2038, 870, 2021, 0, 0, 2022, 0, 0, 0, 2023, 2024, 2025, 0, 0, 0, 0, 870, 0, 0, 870, 0, 0, 0, 0, 0, 0, 2026, 0, 0, 4056, 0, 3804, 0, 0, 2028, 0, 0, 0, 0, 3808, 2031, 2029, 0, 2040, 0, 2032, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2030, 2033, 2034, 0, 3822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2035, 0, 0, 0, 0, 2039, 0, 0, 869, 0, 0, 1731, 0, 0, 0, 3868, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 0, 2036, 0, 0, 0, 0, 0, 0, 1756, 1757, 0, 869, 0, 0, 0, 2037, 0, 0, 2038, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 870, 870, 0, 1798, 3905, 0, 0, 0, 869, 3911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2031, 0, 0, 869, 0, 2032, 869, 0, 2040, 3948, 0, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 0, 0, 0, 2021, 2033, 2034, 2022, 0, 0, 0, 2023, 2024, 2025, 0, 0, 1702, 0, 0, 0, 2035, 2039, 0, 0, 1867, 1869, 3964, 0, 3965, 0, 0, 4330, 0, 0, 0, 0, 2028, 0, 0, 0, 0, 0, 4343, 2029, 0, 0, 0, 0, 0, 0, 0, 4002, 0, 2036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2037, 2030, 0, 2038, 0, 0, 4374, 0, 0, 0, 2021, 0, 0, 2022, 0, 0, 0, 2023, 2024, 2025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2026, 869, 0, 0, 0, 0, 2557, 0, 2028, 869, 869, 0, 0, 0, 0, 2029, 0, 2040, 0, 0, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2632, 0, 0, 0, 0, 2039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2031, 1701, 0, 0, 0, 2032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2033, 2034, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2031, 0, 2036, 2040, 0, 2032, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 2037, 4500, 4501, 4502, 4503, 0, 0, 0, 0, 0, 0, 2033, 2034, 0, 4179, 0, 4180, 0, 0, 0, 0, 0, 0, 4182, 0, 0, 2035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4200, 0, 0, 0, 2036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2037, 4221, 0, 2038, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2039, 0, 4225, 1702, 0, 0, 0, 0, 0, 0, 0, 0, 4234, 0, 0, 869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 4263, 0, 0, 0, 870, 0, 2299, 0, 0, 0, 0, 0, 0, 4271, 4272, 4273, 870, 0, 0, 0, 4277, 4278, 4279, 4280, 0, 0, 0, 4282, 4283, 0, 0, 0, 0, 4290, 4291, 0, 4293, 4294, 4295, 4296, 4297, 4298, 2039, 4300, 0, 0, 0, 0, 0, 0, 0, 2021, 4308, 0, 2022, 4311, 4312, 0, 2023, 2024, 2025, 0, 0, 0, 0, 0, 2040, 0, 0, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 3664, 0, 0, 0, 2028, 0, 0, 0, 0, 861, 861, 2029, 870, 870, 0, 0, 0, 0, 0, 0, 0, 0, 4333, 0, 861, 0, 870, 861, 2402, 2403, 2404, 2405, 0, 0, 0, 0, 2030, 0, 0, 870, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 1701, 0, 0, 0, 2040, 0, 0, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 0, 861, 869, 0, 861, 861, 0, 0, 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3664, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4727, 0, 0, 0, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 2032, 0, 0, 4441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2455, 2456, 0, 0, -2635, -2635, 869, 869, 1702, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2035, 869, 0, 0, 2482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 869, 869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 869, 0, 0, -2635, 0, 0, 0, 0, 0, 2527, 2528, 2529, 2530, 0, 0, 0, 0, 2037, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 1702, 870, 2039, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 1701, 0, 0, 0, 0, 2625, 0, 0, 0, 0, 0, 2629, 0, 0, 870, 0, 0, 0, 0, 0, 4574, 0, 0, 0, 4575, 4576, 4577, 4578, 0, 4886, 4580, 0, 0, 0, 0, 0, 861, 0, 0, 861, 861, 0, 0, 0, 4898, 0, 0, 0, 0, 1314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 4599, 4600, 4601, 0, 4602, 0, 4604, 4605, 0, 0, 0, 0, 0, 4934, 0, 0, 870, 870, 4614, 4615, 2040, 0, 0, 2041, 2042, 2043, 0, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4620, 0, 0, 1702, 870, 0, 0, 1702, 0, 0, 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 0, 4631, 0, 0, 0, 0, 0, 0, 870, 0, 1702, 2795, 869, 0, 0, 870, 0, 1701, 869, 0, 0, 870, 869, 0, 0, 0, 0, 0, 870, 0, 869, 0, 870, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 870, 0, 0, 0, 870, 0, 5019, 1702, 0, 0, 0, 0, 0, 0, 0, 0, 4684, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 869, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 4713, 0, 0, 0, 0, 869, 869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1701, 869, 0, 0, 1701, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5107, 0, 0, 0, 0, 0, 1702, 869, 0, 1701, 0, 0, 0, 0, 869, 0, 0, 0, 1290, 1290, 869, 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, 869, 0, 0, 0, 0, 869, 0, 2977, 2978, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2991, 0, 2993, 0, 0, 0, 2997, 869, 0, 0, 0, 0, 869, 0, 0, 0, 869, 0, 0, 1701, 0, 0, 0, 0, 0, 601, 0, 0, 0, 869, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4836, 1094, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4846, 0, 0, 0, 0, 4851, 4852, 0, 0, 1094, 0, 1613, 1617, 0, 0, 1701, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 3135, 0, 0, 3138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 4912, 0, 0, 0, 0, 861, 0, 0, 861, 0, 0, 861, 0, 0, 0, 0, 0, 0, 0, 0, 4929, 0, 4931, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3223, 0, 3664, 0, 0, 0, 0, 0, 3230, 4966, 0, 3233, 0, 0, 0, 0, 0, 3235, 0, 0, 0, 0, 1702, 0, 0, 0, 1093, 0, 1702, 0, 0, 3251, 0, 0, 0, 869, 0, 0, 612, 0, 0, 0, 0, 613, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3297, 0, 0, 5006, 0, 869, 615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 616, 0, 0, 0, 869, 0, 5023, 0, 0, 3320, 0, 617, 869, 870, 0, -865, 0, 5031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 618, 0, 0, 0, 0, 0, 619, 0, 0, 1616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 620, 0, 1094, 0, 0, 0, 0, 0, 3380, 0, 3382, 621, 0, 0, 0, 0, 0, 0, 0, 622, 0, 0, 0, 0, 5100, 0, 0, 1094, 0, 0, 0, 623, 0, 1978, 0, 0, 0, 0, 1701, 624, 0, 0, 1094, 625, 1701, 870, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1094, 1992, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3664, 0, 0, 0, 2010, 2011, 2012, 0, 2014, 0, 0, 0, 626, 0, 0, 0, 0, 0, 0, 0, 0, -583, 0, 0, 0, 0, 0, 0, 2056, 0, 0, 3447, 0, 869, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, 628, 0, 0, 5186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 1702, 1702, 1702, 5199, 0, 629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 630, 0, 0, 0, 1093, 870, 0, -457, 2112, 0, 0, 0, 2124, 2129, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 870, 631, 0, 0, 869, 869, 0, 0, 0, 0, 632, 0, 0, 5229, 0, 0, 0, -457, 0, 870, 633, 0, 0, 0, 0, 0, 0, 0, 5240, 0, 0, 869, 1094, 0, 869, 0, 0, 0, 0, 634, 0, 0, 0, 0, 0, 635, 0, 0, 0, 0, -457, 0, 0, 636, 637, 0, 638, 639, 0, 0, 0, 0, 0, 0, 0, 0, 0, 640, 0, 0, 0, 0, 641, 0, 0, 0, 0, 0, 642, 1093, 0, 643, 0, 0, 644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -457, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 5300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1701, 1701, 1701, 0, 0, 1465, 0, 0, 0, 0, 0, 1466, 0, 0, 0, 0, 0, 0, 1532, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 0, 0, 0, 1702, 0, 5323, 0, 1533, 0, 0, 870, 0, 870, 0, 869, 0, 0, 0, 0, 0, 0, 0, 0, 1468, 0, 870, 0, 870, 0, 0, 0, 0, 3653, 869, 3654, 3655, 3656, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1702, 0, 0, 0, 0, 0, 0, 0, 1534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1613, 1613, 1613, 0, 0, 0, 1470, 0, 0, 0, 0, 0, 0, 1471, 0, 0, 1472, 0, 0, 870, 0, 2167, 5389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1473, 0, 0, 869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 1535, 0, 0, 1474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2167, 0, 870, 0, 0, 0, 0, 0, 0, 1701, 0, 0, 0, 0, 0, 0, 869, 0, 869, 0, 0, 0, 0, 2077, 870, 0, 0, 870, 0, 0, 0, 869, 0, 869, 1536, 0, 0, 1537, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 1538, 0, 1476, 0, 0, 0, 0, 1701, 0, 0, 0, 0, 1477, 0, 0, 0, 0, 0, 0, 0, 0, 1478, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 1539, 1479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1702, 0, 0, 0, 0, 0, 0, 0, 3815, 0, 0, 0, 1540, 0, 0, 1481, 1482, 1541, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1542, 869, 0, 1616, 1616, 1616, 1543, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 869, 1544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 869, 0, 0, 869, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1484, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 1084, 1094, 1701, 0, 0, 0, 0, 0, 0, 0, 2167, 0, 0, 0, 0, 0, 0, 0, 0, 2726, 3968, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2746, 0, 2748, 0, 0, 2760, 2763, 2768, 0, 0, 0, 1702, 2774, 0, 0, 2779, 1702, 0, 1702, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2786, 2787, 2788, 2789, 0, 0, 0, 0, 2796, 0, 1702, 0, 2808, 0, 0, 2810, 1094, 0, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 0, 2826, 1702, 1094, 0, 0, 0, 0, 1290, 0, 1613, 0, 0, 0, 0, 1094, 0, 0, 870, 0, 0, 870, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1465, 2863, 1093, 0, 0, 0, 1466, 0, 0, 0, 0, 0, 0, 1532, 0, 0, 0, 869, 0, 1093, 0, 0, 1094, 1094, 0, 0, 2011, 2012, 1093, 0, 0, 0, 1533, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 1468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 870, 0, 0, 1701, 0, 0, 0, 0, 1701, 870, 1701, 0, 0, 0, 0, 0, 0, 1534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 1093, 1701, 0, 0, 0, 0, 1470, 0, 0, 0, 0, 0, 2963, 1471, 1093, 0, 1472, 0, 0, 1084, 1701, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 869, 0, 1093, 869, 0, 1473, 0, 0, 1084, 0, 0, 0, 4185, 4186, 4187, 4188, 0, 0, 0, 0, 0, 0, 0, 1084, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 870, 664, 1535, 0, 0, 1474, 665, 0, 0, 0, 0, 0, 1093, 1093, 0, 0, 0, 0, 666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, 1536, 0, 0, 1537, 668, 0, 0, 0, 0, 0, 0, 869, 869, 0, 1538, 0, 1476, 0, 0, 669, 0, 869, 0, 0, 1084, 0, 1477, 0, 0, 0, 0, 0, 0, 0, 0, 1478, 0, 670, 0, 0, 869, 0, 0, 0, 0, 0, 1539, 1479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 672, 0, 0, 0, 0, 0, 2918, 0, 673, 0, 2167, 2924, 0, 0, 3130, 0, 0, 1481, 1482, 1541, 674, 0, 0, 0, 0, 675, 0, 1093, 0, 0, 0, 0, 676, 0, 0, 0, 0, 0, 0, 0, 0, 1542, 869, 0, 4329, 0, 0, 3131, 0, 0, 4332, 677, 3211, 3212, 1613, 0, 0, 0, 3216, 0, 0, 1544, 1084, 0, 0, 0, 0, 0, 0, 0, 1086, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 3249, 0, 0, 1086, 678, 870, 0, 0, 0, 0, 1702, 0, 0, 0, 0, 0, 0, 0, 0, 1484, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 679, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 680, 0, 0, 0, 870, 0, 0, 0, 0, 0, 681, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 206, 682, 1093, 1093, 683, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 0, 0, 685, 0, 0, 0, 686, 0, 687, 0, 0, 0, 0, 0, 0, 688, 0, 0, 689, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 690, 0, 0, 0, 0, 0, 691, 0, 0, 0, 1093, 692, 0, 0, 693, 0, 0, 0, 694, 0, 0, 0, 0, 0, 0, 0, 695, 0, 696, 869, 0, 0, 942, 697, 1701, 0, 0, 943, 870, 1084, 0, 0, 0, 0, 0, 698, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 1616, 699, 0, 0, 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 944, 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 945, 946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 947, 1094, 0, 0, 948, 0, 0, 0, 1084, 3453, 869, 0, 0, 0, 3459, 0, 870, 0, 0, 0, 0, 1086, 949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2014, 0, 0, 0, 0, 0, 950, 1086, 0, 0, 1084, 2768, 0, 2768, 2768, 0, 0, 951, 0, 0, 0, 0, 1086, 0, 3517, 952, 0, 3520, 0, 3522, 0, 0, 0, 0, 0, 0, 0, 953, 0, 0, 0, 0, 954, 1084, 2167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 3540, 0, 3543, 0, 3545, 0, 0, 0, 869, 0, 955, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 870, 0, 870, 0, 0, 0, 0, 0, 0, 0, 956, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 0, 957, 0, 2112, 0, 1093, 4628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 2129, 0, 0, 4632, 0, 0, 0, 0, 861, 869, 0, 0, 0, 0, 0, 0, 0, 958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 959, 0, 0, 0, 0, 0, 1702, 0, 1094, 0, 206, 960, 861, 0, 961, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 3633, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 962, 0, 0, 963, 0, 1086, 0, 964, 0, 965, 1084, 0, 4698, 0, 0, 0, 966, 0, 0, 967, 0, 0, 0, 0, 0, 0, 0, 1084, 0, 0, 0, 0, 0, 0, 0, 869, 1084, 869, 968, 0, 0, 0, 0, 0, 969, 0, 0, 0, 1084, 970, 0, 0, 971, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 973, 0, 974, 0, 0, 0, 0, 975, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 976, 0, 0, 0, 0, 0, 0, 0, 1084, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1084, 0, 0, 0, 0, 1087, 1093, 0, 0, 0, 0, 1701, 1084, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 1084, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 1702, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 4817, 4818, 4818, 0, 0, 0, 1084, 1084, 2167, 870, 0, 2924, 0, 2924, 0, 0, 0, 0, 2167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1613, 0, 0, 0, 1094, 1087, 1613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1701, 0, 0, 0, 0, 1086, 0, 1084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4950, 869, 0, 0, 1089, 1093, 0, 0, 1093, 0, 1093, 0, 0, 869, 1086, 1093, 0, 0, 1087, 0, 0, 0, 0, 1094, 0, 1094, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1702, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 1094, 191, 0, 0, 1084, 0, 0, 0, 1084, 1084, 0, 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 1616, 0, 1702, 5056, 0, 5058, 1616, 0, 0, 193, 0, 0, 4003, 0, 1094, 194, 0, 0, 0, 0, 870, 4007, 0, 0, 0, 0, 0, 4008, 0, 4009, 0, 0, 195, 0, 861, 0, 0, 0, 0, 2924, 1093, 0, 1093, 196, 0, 1084, 0, 2924, 0, 870, 0, 197, 0, 1086, 0, 0, 4033, 4034, 0, 1084, 0, 0, 0, 198, 0, 0, 0, 0, 199, 1701, 1086, 869, 0, 0, 2774, 200, 0, 0, 0, 1086, 0, 0, 4059, 0, 0, 4062, 0, 4064, 1087, 0, 0, 1086, 0, 0, 201, 0, 4068, 0, 0, 1084, 0, 0, 0, 0, 4075, 4076, 0, 0, 0, 861, 861, 0, 0, 0, 0, 0, 1094, 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 2924, 0, 4122, 0, 0, 0, 203, 0, 0, 0, 1089, 0, 0, 1086, 1094, 0, 0, 0, 0, 1087, 870, 0, 0, 0, 4818, 0, 4135, 1086, 0, 0, 0, 1701, 0, 0, 0, 1089, 1093, 0, 0, 1086, 204, 0, 4148, 0, 0, 0, 0, 0, 0, 869, 1089, 1086, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 1093, 0, 205, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 206, 207, 0, 0, 208, 869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 1086, 1086, 0, 0, 0, 0, 0, 1702, 209, 0, 0, 210, 0, 0, 0, 211, 0, 212, 5236, 0, 0, 1094, 1090, 0, 213, 0, 0, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 1094, 1093, 0, 0, 215, 0, 1090, 0, 0, 0, 216, 0, 0, 0, 217, 218, 0, 0, 219, 1093, 0, 0, 220, 0, 0, 1094, 1702, 0, 0, 0, 0, 1084, 221, 1093, 0, 0, 0, 222, 0, 0, 0, 0, 1702, 0, 861, 861, 869, 0, 0, 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 0, 1084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1701, 0, 0, 0, 0, 0, 1087, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2167, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 1093, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 5382, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 1701, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1701, 0, 0, 4818, 4818, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 4415, 4416, 0, 0, 0, 0, 0, 0, 0, 1087, 1086, 0, 1084, 0, 1086, 1086, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 2924, 0, 1084, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 1090, 0, 0, 0, 1084, 0, 0, 1087, 0, 0, 0, 2924, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 4456, 0, 0, 0, 0, 0, 1086, 0, 0, 0, 1090, 4461, 0, 1093, 0, 0, 0, 0, 0, 4818, 1086, 1087, 1087, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4476, 4478, 0, 0, 0, 0, 0, 4482, 4483, 1086, 0, 0, 4484, 0, 0, 0, 0, 4487, 0, 0, 4490, 4491, 0, 0, 0, 4495, 0, 0, 0, 0, 0, 4499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 1290, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 4554, 0, 0, 2167, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1084, 0, 0, 1084, 0, 1084, 0, 0, 0, 0, 1084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1084, 0, 0, 0, 0, 4617, 1086, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1084, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 1087, 0, 0, 0, 1087, 1087, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 4655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 1086, 0, 0, 0, 0, 0, 0, 0, 1084, 0, 1084, 0, 0, 1087, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 1090, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 0, 1084, 1093, 0, 0, 0, 0, 0, 0, 1089, 1094, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 1086, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 1089, 0, 1090, 0, 1086, 0, 0, 1084, 0, 0, 4759, 4760, 0, 0, 4761, 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1084, 0, 0, 0, 0, 0, 0, 0, 1084, 0, 0, 1090, 1089, 1089, 0, 0, 0, 0, 0, 4796, 4797, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 4808, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1084, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1084, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 1087, 0, 1084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4724, 0, 1094, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 1087, 0, 1094, 1086, 0, 0, 1086, 0, 1086, 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 0, 0, 0, 1084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1084, 0, 0, 0, 0, 2774, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 1086, 0, 0, 0, 0, 0, 1084, 0, 0, 1090, 0, 0, 0, 0, 4989, 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 0, 0, 0, 2014, 0, 0, 0, 1089, 0, 0, 0, 1089, 1089, 0, 0, 1084, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 2924, 0, 0, 1087, 0, 0, 0, 0, 0, 1090, 0, 0, 1092, 0, 0, 0, 0, 5038, 1087, 0, 0, 1090, 0, 0, 0, 0, 1093, 0, 1089, 0, 0, 0, 0, 1090, 0, 0, 0, 1092, 0, 0, 0, 0, 1089, 0, 0, 1086, 0, 1086, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 1084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 1090, 0, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2924, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1086, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 1093, 1084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4796, 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 1084, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 5188, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 0, 0, 1086, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 1087, 0, 1087, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 1092, 1094, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1086, 0, 0, 0, 1093, 1087, 5243, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 1093, 0, 0, 0, 1086, 0, 0, 0, 0, 1084, 0, 0, 5270, 5270, 5270, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4796, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 1090, 0, 0, 0, 1090, 1090, 0, 0, 0, 0, 0, 4724, 1094, 0, 0, 0, 1084, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 1093, 1087, 0, 0, 0, 1093, 1093, 0, 0, 0, 0, 0, 0, 1086, 0, 0, 1090, 0, 0, 0, 0, 5332, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 1086, 0, 0, 0, 5270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 1086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 1087, 1084, 0, 1086, 0, 0, 0, 0, 0, 0, 0, 1084, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 1089, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5422, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 1087, 1092, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1086, 0, 5270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5448, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 1084, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 1084, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 1089, 0, 0, 1089, 0, 1089, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 1084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 1087, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 1092, 0, 0, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 2051, 0, 0, 0, 1092, 0, 0, 0, 0, 1086, 0, 0, 1090, 0, 0, 0, 1092, 0, 0, 0, 1089, 0, 1089, 1084, 0, 0, 0, 1090, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 1089, 0, 0, 1084, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 1087, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 1090, 0, 1090, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 1086, 0, 0, 0, 2051, 0, 0, 0, 2051, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 1084, 0, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 1086, 0, 0, 0, 1084, 0, 0, 0, 0, 0, 0, 0, 1090, 1087, 0, 0, 0, 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 1084, 1092, 0, 0, 0, 1092, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1086, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 1084, 0, 0, 0, 0, 1084, 1084, 0, 0, 0, 0, 1090, 1089, 1090, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 1090, 1086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 2051, 0, 0, 0, 2756, 0, 0, 0, 1087, 0, 0, 1089, 0, 0, 1090, 0, 0, 0, 2051, 2051, 2051, 0, 2051, 0, 1092, 0, 0, 0, 1090, 1087, 0, 0, 1086, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 2051, 0, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 1086, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1086, 0, 0, 0, 0, 1086, 1086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 1086, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 1092, 0, 1092, 0, 1089, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 1087, 1087, 0, 0, 1092, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 1090, 0, 0, 0, 0, 2051, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 2051, 0, 2051, 0, 0, 2756, 2756, 0, 3494, 0, 2756, 1092, 0, 0, 2051, 0, 0, 2051, 0, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 2051, 0, 0, 0, 0, 2051, 0, 0, 1092, 0, 0, 0, 2051, 2051, 2051, 2051, 1092, 0, 0, 2756, 2756, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 2051, 0, 0, 0, 0, 0, 0, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 1089, 1089, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 2051, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 2051, 0, 0, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 3494, 3494, 0, 0, 2756, 2756, 2756, 2756, 0, 0, 2756, 2756, 2756, 2756, 2756, 2756, 2756, 2756, 2756, 2756, 3494, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 1090, 1090, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 0, 2051, 0, 2051, 0, 0, 3494, 3494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 2756, 2756, 2051, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2756, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 2051, 0, 0, 0, 2051, 2051, 2051, 0, 0, 0, 0, 0, 3494, 3494, 3494, 3494, 0, 0, 0, 0, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 2051, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 0, 2051, 0, 2051, 0, 0, 0, 2051, 0, 0, 3494, 3494, 0, 0, 2051, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 1092, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 0, 0, 0, 2051, 2756, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 2051, 0, 0, 0, 2051, 2051, 2051, 0, 0, 2051, 0, 0, 2051, 2051, 1092, 0, 0, 2051, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3494, 2756, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 2051, 2051, 0, 0, 0, 0, 0, 0, 0, 2756, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2756, 0, 0, 3494, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3494, 0, 2756, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2756, 2756, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3494, 3494, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 2051, 228, 229, 230, 231, 232, 233, 234, 235, 1607, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 1231, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 1608, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 1246, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 1254, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 1263, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 1609, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 1274, 0, 0, 0, 0, 0, 0, 1275, 1276, 1610, 0, 0, 0, 0, 0, 0, 1278, 1611, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 1231, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 1246, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 1254, 491, 492, 493, 494, 495, 496, 497, 498, 499, 40, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 44, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 1263, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 1143, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 49, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 1274, 0, 50, 0, 0, 0, 0, 1275, 1276, 0, 0, 0, 0, 0, 0, 0, 1278, 5000, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 1231, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 1246, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 1254, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 1263, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 1274, 0, 0, 0, 0, 0, 0, 1275, 1276, 0, 0, 0, 0, 0, 0, 0, 1278, 2758, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 1231, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 1246, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 1254, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 1263, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 1274, 0, 0, 0, 0, 0, 0, 1275, 1276, 0, 0, 0, 0, 0, 0, 0, 1278, 4011, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 1231, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 1246, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 1254, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 1263, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 1274, 0, 0, 598, 0, 0, 0, 1275, 1276, 0, 0, 0, 0, 0, 0, 0, 1278, 4082, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 4100, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, -1779, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, -1779, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, -1779, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, -1779, 380, 381, 382, 383, 384, 0, 0, 385, 386, -1779, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1779, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, -1779, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 0, 0, 0, 1057, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1356, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 0, 1058, 250, 1059, 1060, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 1061, 1062, 263, 0, 264, 265, 266, 267, 0, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 1063, 1064, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 0, 326, 327, 328, 0, 0, 330, 0, 331, 332, 1066, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 0, 0, 0, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 2153, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 2154, 368, 369, 370, 371, 1068, 1069, 0, 1070, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 0, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1071, 410, 1072, 412, 413, 414, 0, 0, 416, 417, 418, 419, 0, 0, 421, 1073, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 2156, 434, 435, 436, 0, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1074, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 2157, 508, 509, 510, 511, 512, 1076, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1077, 1078, 0, 0, 540, 541, 0, 543, 0, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 0, 1079, 2158, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 1057, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 588, 589, 590, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 2265, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 0, 1058, 250, 1059, 1060, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 1061, 1062, 263, 0, 264, 265, 266, 267, 0, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 1063, 1064, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 0, 326, 327, 328, 0, 0, 330, 0, 331, 332, 1066, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 0, 0, 0, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 2153, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 2154, 368, 369, 370, 371, 1068, 1069, 0, 1070, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 0, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1071, 410, 1072, 412, 413, 414, 0, 0, 416, 417, 418, 419, 0, 0, 421, 1073, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 2156, 434, 435, 436, 0, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1074, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 2157, 508, 509, 510, 511, 512, 1076, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1077, 1078, 0, 0, 540, 541, 0, 543, 0, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 0, 1079, 2158, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 0, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 588, 589, 590, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 3335, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 1231, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 1246, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 1254, 491, 492, 493, 494, 495, 496, 497, 498, 499, 40, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 44, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 1263, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 1143, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 49, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 1274, 0, 50, 0, 0, 0, 0, 1275, 1276, 0, 0, 0, 0, 0, 0, 0, 1278, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 2764, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 1231, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 2765, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 2766, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 1246, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 1254, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 2767, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 1263, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 1274, 0, 0, 0, 0, 0, 0, 1275, 1276, 0, 0, 0, 0, 0, 0, 0, 1278, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 1231, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 1246, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 1254, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 1263, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 1274, 0, 0, 0, 0, 0, 0, 1275, 1276, 0, 0, 0, 0, 0, 1975, 2719, 1278, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 1231, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 1246, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 1254, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 1263, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 1274, 0, 0, 0, 0, 0, 0, 1275, 1276, 1277, 0, 0, 0, 0, 0, 0, 1278, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 2122, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 1231, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 1246, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 1254, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 1263, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 1274, 0, 0, 0, 0, 0, 0, 1275, 1276, 0, 0, 0, 0, 0, 0, 0, 1278, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 1231, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 1246, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 1254, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 1263, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 3213, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 1274, 0, 0, 0, 0, 0, 0, 1275, 1276, 0, 0, 0, 0, 0, 0, 0, 1278, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 1231, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 2765, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 1246, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 1254, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 1263, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 1274, 0, 0, 0, 0, 0, 0, 1275, 1276, 0, 0, 0, 0, 0, 0, 0, 1278, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 1231, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 1246, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 1254, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 1263, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 1274, 0, 0, 0, 0, 0, 0, 1275, 1276, 0, 0, 0, 0, 0, 0, 0, 1278, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 1231, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 1246, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 1254, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 1263, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 1274, 0, 0, 0, 0, 0, 0, 2125, 2126, 0, 0, 0, 0, 0, 0, 0, 1278, 227, 2885, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 1231, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 1246, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 1254, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 1263, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 1274, 0, 0, 0, 0, 0, 0, 1275, 1276, 0, 0, 0, 0, 0, 0, 0, 1278, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 4134, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 1231, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 1246, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 1254, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 1263, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 1274, 0, 0, 0, 0, 0, 0, 1275, 1276, 0, 0, 0, 0, 0, 0, 0, 1278, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 1231, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 1246, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 1254, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 1263, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 4468, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 1274, 0, 0, 0, 0, 0, 0, 1275, 1276, 0, 0, 0, 0, 0, 0, 0, 1278, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 1231, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 4477, 415, 1246, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 1254, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 1263, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 1274, 0, 0, 0, 0, 0, 0, 1275, 1276, 0, 0, 0, 0, 0, 0, 0, 1278, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 4786, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 1231, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 4787, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 1246, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 4788, 488, 489, 1254, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 1263, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 1274, 0, 0, 0, 0, 0, 0, 1275, 1276, 0, 0, 0, 0, 0, 0, 0, 4789, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 5267, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 5268, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 1231, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 1246, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 1254, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 5269, 550, 551, 0, 1263, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 1274, 0, 0, 0, 0, 0, 0, 1275, 1276, 0, 0, 0, 0, 0, 0, 0, 1278, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 5268, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 1231, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 1246, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 1254, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 5269, 550, 551, 0, 1263, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 1274, 0, 0, 0, 0, 0, 0, 1275, 1276, 0, 0, 0, 0, 0, 0, 0, 1278, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 4982, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 0, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 2750, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 0, 0, 0, 0, 0, 0, 0, 2751, 2752, 0, 0, 0, 0, 0, 0, 0, 2753, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, -2635, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 5268, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 1231, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, -2635, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 0, 0, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, -2635, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 1246, 416, 417, 0, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 1254, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, -2635, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 5269, 550, 551, 0, 1263, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, -2635, 0, 0, 0, 0, 0, 0, 1275, 1276, 0, 0, 0, 0, 0, 0, 0, 1278, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 0, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 2750, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 0, 0, 0, 0, 0, 0, 0, 2751, 2752, 0, 0, 227, 1207, 659, 1208, 1209, 2753, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 0, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 2874, 2875, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 0, 0, 0, 0, 0, 0, 0, 2876, 2877, 0, 0, 0, 0, 0, 0, 0, 2753, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 0, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 2750, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 0, 0, 0, 0, 0, 0, 0, 2751, 2752, 0, 0, 227, 1207, 659, 1208, 1209, 2753, 720, 1211, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 0, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 2750, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 0, 0, 227, 1207, 659, 1208, 1209, 0, 720, 1211, 0, 0, 0, 0, 0, 0, 2753, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 4044, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 0, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 2750, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 0, 0, 227, 1207, 659, 1208, 1209, 0, 720, 1211, 0, 0, 0, 0, 0, 0, 2753, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 0, 416, 417, 418, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 2750, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 4508, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 0, 0, 227, 1207, 659, 1208, 1209, 1210, 720, 1211, 0, 0, 0, 0, 0, 0, 2753, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 1212, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 0, 1213, 250, 1214, 1215, 0, 253, 254, 255, 256, 257, 258, 1216, 1217, 259, 260, 1218, 1219, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 1229, 1230, 298, 1231, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 0, 320, 0, 321, 322, 323, 324, 1232, 326, 327, 328, 1233, 1234, 330, 0, 331, 332, 1235, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 1237, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 1238, 1239, 0, 1240, 0, 375, 0, 0, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 0, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1244, 410, 1245, 412, 413, 414, 415, 1246, 416, 417, 0, 419, 1247, 1248, 421, 1249, 423, 424, 425, 0, 426, 427, 0, 0, 1250, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1253, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 1254, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 0, 511, 512, 1256, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1258, 1259, 0, 0, 540, 541, 1260, 543, 1261, 1262, 545, 546, 547, 548, 549, 550, 551, 0, 1263, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 1265, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 0, 0, 227, 0, 0, 0, 0, 1275, 1276, 0, 0, 0, 0, 0, 0, 0, 1278, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 1217, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 1233, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 3563, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 1248, 421, 422, 423, 424, 425, 0, 426, 427, 0, 809, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 3564, 492, 493, 494, 495, 496, 497, 498, 499, 40, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 44, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 1260, 543, 1261, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 1143, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 49, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 3565, 588, 589, 590, 0, 0, 50, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3566, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 1217, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 1233, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 3563, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 1248, 421, 422, 423, 424, 425, 0, 426, 427, 0, 809, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 3564, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 1260, 543, 1261, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 3565, 588, 589, 590, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3566, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 1217, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 1233, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 1248, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 3564, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 1260, 543, 1261, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 3565, 588, 589, 590, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 1217, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 1233, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 1248, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 1260, 543, 1261, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4163, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 1217, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 1233, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 1248, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 1260, 543, 1261, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 0, 0, 862, 1489, 659, 0, 0, 0, 720, 0, 0, 0, 0, 0, 0, 0, 5250, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 1906, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 1907, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 1908, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 0, 0, 862, 0, 0, 0, 0, 1490, 1491, 5063, 0, 0, 0, 0, 0, 0, 5064, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 3, 4, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 40, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 44, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 1143, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 49, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 0, 0, 50, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 0, 0, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4838, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 40, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 44, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 1143, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 49, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 0, 0, 50, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 0, 0, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1336, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 0, 0, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2907, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 0, 0, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4079, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 0, 0, 0, 0, 0, 1057, 1489, 659, 0, 0, 876, 720, 0, 0, 0, 0, 4525, 877, 878, 879, 228, 229, 230, 231, 232, 233, 234, 235, 1620, 236, 237, 238, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 239, 240, 1628, 241, 242, 243, 244, 245, 246, 247, 0, 1058, 250, 1059, 1060, 1629, 253, 254, 255, 256, 257, 258, 1630, 1631, 259, 260, 1061, 1062, 263, 1632, 264, 265, 266, 267, 0, 1633, 269, 1634, 270, 271, 272, 273, 274, 275, 276, 277, 278, 1635, 279, 280, 281, 282, 283, 284, 1636, 285, 286, 287, 288, 1637, 1638, 1639, 289, 1640, 1641, 1642, 290, 291, 292, 293, 294, 295, 1063, 1064, 298, 1643, 299, 1644, 300, 301, 302, 303, 304, 305, 1645, 306, 307, 308, 309, 1646, 1647, 310, 311, 1065, 313, 314, 1648, 315, 316, 317, 1649, 318, 319, 320, 1650, 321, 322, 323, 324, 0, 326, 327, 328, 0, 1651, 330, 1652, 331, 332, 1066, 334, 1653, 335, 1654, 336, 337, 1655, 338, 339, 340, 341, 342, 1656, 343, 0, 1657, 0, 346, 347, 1658, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 1659, 358, 359, 360, 361, 362, 363, 364, 1660, 365, 366, 0, 368, 369, 370, 371, 1068, 1069, 1661, 1070, 1662, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 1663, 1664, 385, 0, 387, 388, 389, 1665, 390, 391, 392, 1666, 1667, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1071, 410, 1072, 412, 413, 414, 3830, 1668, 416, 417, 418, 419, 1669, 0, 421, 1073, 423, 424, 425, 1670, 426, 427, 1671, 1672, 3831, 429, 430, 1673, 1674, 431, 432, 0, 434, 435, 436, 0, 438, 439, 440, 441, 442, 443, 444, 445, 446, 1675, 447, 448, 0, 450, 0, 452, 453, 454, 1676, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1074, 466, 467, 468, 469, 1677, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 1678, 482, 483, 484, 485, 486, 487, 488, 489, 0, 491, 492, 493, 494, 495, 496, 497, 498, 499, 1679, 500, 501, 502, 503, 504, 1680, 505, 506, 2157, 508, 509, 510, 511, 512, 1076, 514, 1681, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 1682, 528, 529, 1683, 530, 531, 532, 533, 534, 535, 536, 1684, 537, 1077, 1078, 1685, 1686, 540, 541, 0, 543, 0, 1687, 545, 546, 547, 548, 549, 550, 551, 1688, 1689, 552, 553, 554, 555, 556, 1690, 1691, 557, 558, 559, 560, 561, 0, 1079, 1692, 564, 565, 566, 567, 568, 569, 1693, 1694, 570, 1695, 1696, 571, 572, 573, 574, 575, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 588, 589, 590, 0, 0, 0, 882, 883, 884, 0, 3832, 3833, 887, 888, 889, 890, 1057, 1489, 659, 0, 0, 876, 720, 0, 0, 0, 0, 0, 877, 878, 879, 228, 229, 230, 231, 232, 233, 234, 235, 1620, 236, 237, 238, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 239, 240, 1628, 241, 242, 243, 244, 245, 246, 247, 0, 1058, 250, 1059, 1060, 1629, 253, 254, 255, 256, 257, 258, 1630, 1631, 259, 260, 1061, 1062, 263, 1632, 264, 265, 266, 267, 0, 1633, 269, 1634, 270, 271, 272, 273, 274, 275, 276, 277, 278, 1635, 279, 280, 281, 282, 283, 284, 1636, 285, 286, 287, 288, 1637, 1638, 1639, 289, 1640, 1641, 1642, 290, 291, 292, 293, 294, 295, 1063, 1064, 298, 1643, 299, 1644, 300, 301, 302, 303, 304, 305, 1645, 306, 307, 308, 309, 1646, 1647, 310, 311, 1065, 313, 314, 1648, 315, 316, 317, 1649, 318, 319, 320, 1650, 321, 322, 323, 324, 0, 326, 327, 328, 0, 1651, 330, 1652, 331, 332, 1066, 334, 1653, 335, 1654, 336, 337, 1655, 338, 339, 340, 341, 342, 1656, 343, 0, 1657, 0, 346, 347, 1658, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 1659, 358, 359, 360, 361, 362, 363, 364, 1660, 365, 366, 0, 368, 369, 370, 371, 1068, 1069, 1661, 1070, 1662, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 1663, 1664, 385, 0, 387, 388, 389, 1665, 390, 391, 392, 1666, 1667, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1071, 410, 1072, 412, 413, 414, 4255, 1668, 416, 417, 418, 419, 1669, 0, 421, 1073, 423, 424, 425, 1670, 426, 427, 1671, 1672, 3831, 429, 430, 1673, 1674, 431, 432, 0, 434, 435, 436, 0, 438, 439, 440, 441, 442, 443, 444, 445, 446, 1675, 447, 448, 0, 450, 0, 452, 453, 454, 1676, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1074, 466, 467, 468, 469, 1677, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 1678, 482, 483, 484, 485, 486, 487, 488, 489, 0, 491, 492, 493, 494, 495, 496, 497, 498, 499, 1679, 500, 501, 502, 503, 504, 1680, 505, 506, 2157, 508, 509, 510, 511, 512, 1076, 514, 1681, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 1682, 528, 529, 1683, 530, 531, 532, 533, 534, 535, 536, 1684, 537, 1077, 1078, 1685, 1686, 540, 541, 0, 543, 0, 1687, 545, 546, 547, 548, 549, 550, 551, 1688, 1689, 552, 553, 554, 555, 556, 1690, 1691, 557, 558, 559, 560, 561, 0, 1079, 1692, 564, 565, 566, 567, 568, 569, 1693, 1694, 570, 1695, 1696, 571, 572, 573, 574, 575, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 588, 589, 590, 0, 598, 0, 882, 883, 884, 876, 3832, 3833, 887, 888, 889, 890, 877, 878, 879, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 880, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 881, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 0, 598, 0, 882, 883, 884, 876, 885, 886, 887, 888, 889, 890, 877, 878, 879, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 1007, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 1008, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 0, 598, 0, 882, 883, 884, 876, 885, 886, 887, 888, 889, 890, 877, 878, 879, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 1107, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 1108, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1109, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 0, 598, 0, 882, 883, 884, 876, 885, 886, 887, 888, 889, 890, 877, 878, 879, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 1719, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 1720, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 0, 598, 0, 882, 883, 884, 876, 885, 886, 887, 888, 889, 890, 877, 878, 879, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 0, 598, 0, 882, 883, 884, 876, 885, 886, 887, 888, 889, 890, 877, 878, 879, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 2985, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 2986, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 0, 598, 0, 882, 883, 884, 876, 885, 886, 887, 888, 889, 890, 877, 878, 879, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 4815, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 1619, 0, 0, 882, 883, 884, 0, 885, 886, 887, 888, 889, 890, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 1620, 236, 237, 238, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 239, 240, 1628, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 1629, 253, 254, 255, 256, 257, 258, 1630, 1631, 259, 260, 261, 262, 263, 1632, 264, 265, 266, 267, 268, 1633, 269, 1634, 270, 271, 272, 273, 274, 275, 276, 277, 278, 1635, 279, 280, 281, 282, 283, 284, 1636, 285, 286, 287, 288, 1637, 1638, 1639, 289, 1640, 1641, 1642, 290, 291, 292, 293, 294, 295, 296, 297, 298, 1643, 299, 1644, 300, 301, 302, 303, 304, 305, 1645, 306, 307, 308, 309, 1646, 1647, 310, 311, 312, 313, 314, 1648, 315, 316, 317, 1649, 318, 319, 320, 1650, 321, 322, 323, 324, 325, 326, 327, 328, 329, 1651, 330, 1652, 331, 332, 333, 334, 1653, 335, 1654, 336, 337, 1655, 338, 339, 340, 341, 342, 1656, 343, 344, 1657, 345, 346, 347, 1658, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 1659, 358, 359, 360, 361, 362, 363, 364, 1660, 365, 366, 367, 368, 369, 370, 371, 372, 373, 1661, 374, 1662, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 1663, 1664, 385, 386, 387, 388, 389, 1665, 390, 391, 392, 1666, 1667, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 1668, 416, 417, 418, 419, 1669, 420, 421, 422, 423, 424, 425, 1670, 426, 427, 1671, 1672, 428, 429, 430, 1673, 1674, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 1675, 447, 448, 449, 450, 451, 452, 453, 454, 1676, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 1677, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 1678, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 1679, 500, 501, 502, 503, 504, 1680, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 1681, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 1682, 528, 529, 1683, 530, 531, 532, 533, 534, 535, 536, 1684, 537, 538, 539, 1685, 1686, 540, 541, 542, 543, 544, 1687, 545, 546, 547, 548, 549, 550, 551, 1688, 1689, 552, 553, 554, 555, 556, 1690, 1691, 557, 558, 559, 560, 561, 562, 563, 1692, 564, 565, 566, 567, 568, 569, 1693, 1694, 570, 1695, 1696, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 1697, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 814, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 1057, 0, 0, 0, 0, 0, 0, 0, 0, 5216, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 0, 1058, 250, 1059, 1060, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 1061, 1062, 263, 0, 264, 265, 266, 267, 0, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 1063, 1064, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 0, 326, 327, 328, 0, 0, 330, 0, 331, 332, 1066, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 0, 0, 0, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 2153, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 2154, 368, 369, 370, 371, 1068, 1069, 0, 1070, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 0, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1071, 410, 1072, 412, 413, 414, 0, 0, 416, 417, 418, 419, 0, 0, 421, 1073, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 2155, 431, 432, 2156, 434, 435, 436, 0, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1074, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 2157, 508, 509, 510, 511, 512, 1076, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1077, 1078, 0, 0, 540, 541, 0, 543, 0, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 0, 1079, 2158, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 2475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 588, 589, 590, 0, 228, 229, 230, 231, 232, 233, 234, 235, 2159, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 0, 1058, 250, 1059, 1060, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 1061, 1062, 263, 0, 264, 265, 266, 267, 0, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 1063, 1064, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 0, 326, 327, 328, 0, 0, 330, 0, 331, 332, 1066, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 0, 0, 0, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 2153, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 2154, 368, 369, 370, 371, 1068, 1069, 0, 1070, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 0, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1071, 410, 1072, 412, 413, 414, 0, 0, 416, 417, 418, 419, 0, 0, 421, 1073, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 2155, 431, 432, 2156, 434, 435, 436, 0, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1074, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 2157, 508, 509, 510, 511, 512, 1076, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1077, 1078, 0, 0, 540, 541, 0, 543, 0, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 0, 1079, 2158, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 862, 1489, 659, 0, 0, 0, 720, 0, 0, 0, 0, 588, 589, 590, 0, 228, 229, 230, 231, 232, 233, 234, 235, 2159, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 2084, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 1906, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 1907, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 1908, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 862, 1489, 659, 0, 0, 0, 720, 1490, 1491, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 2089, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 1906, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 1907, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 1908, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 862, 1489, 659, 0, 0, 0, 720, 1490, 1491, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 1906, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 1907, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 1908, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 862, 0, 659, 0, 0, 0, 720, 1490, 1491, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 2939, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 1906, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 1907, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 1908, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 720, 732, 733, 0, 0, 0, 0, 0, 0, 228, 721, 230, 231, 232, 233, 234, 235, 722, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 723, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 724, 333, 334, 0, 335, 0, 725, 0, 726, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 727, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 728, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 729, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 730, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 731, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 1619, 5427, 659, 0, 0, 0, 720, 732, 733, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 1620, 236, 237, 238, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 239, 240, 1628, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 1629, 253, 254, 255, 256, 257, 258, 1630, 1631, 259, 260, 261, 262, 263, 1632, 264, 265, 266, 267, 268, 1633, 269, 1634, 270, 271, 272, 273, 274, 275, 276, 277, 278, 1635, 279, 280, 281, 282, 283, 284, 1636, 285, 286, 287, 288, 1637, 1638, 1639, 289, 1640, 1641, 1642, 290, 291, 292, 293, 294, 295, 296, 297, 298, 1643, 299, 1644, 300, 301, 302, 303, 304, 305, 1645, 306, 307, 308, 309, 1646, 1647, 310, 311, 312, 313, 314, 1648, 315, 316, 317, 1649, 318, 319, 320, 1650, 321, 322, 323, 324, 325, 326, 327, 328, 329, 1651, 330, 1652, 331, 332, 333, 334, 1653, 335, 1654, 336, 337, 1655, 338, 339, 340, 341, 342, 1656, 343, 344, 1657, 345, 346, 347, 1658, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 1659, 358, 359, 360, 361, 362, 363, 364, 1660, 365, 366, 367, 368, 369, 370, 371, 372, 373, 1661, 374, 1662, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 1663, 1664, 385, 386, 387, 388, 389, 1665, 390, 391, 392, 1666, 1667, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 1668, 416, 417, 418, 419, 1669, 420, 421, 422, 423, 424, 425, 1670, 426, 427, 1671, 1672, 428, 429, 430, 1673, 1674, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 1675, 447, 448, 449, 450, 451, 452, 453, 454, 1676, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 1677, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 1678, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 1679, 500, 501, 502, 503, 504, 1680, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 1681, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 1682, 528, 529, 1683, 530, 531, 532, 533, 534, 535, 536, 1684, 537, 538, 539, 1685, 1686, 540, 541, 542, 543, 544, 1687, 545, 546, 547, 548, 549, 550, 551, 1688, 1689, 552, 553, 554, 555, 556, 1690, 1691, 557, 558, 559, 560, 561, 562, 563, 1692, 564, 565, 566, 567, 568, 569, 1693, 1694, 570, 1695, 1696, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 1619, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 1620, 236, 237, 238, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 239, 240, 1628, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 1629, 253, 254, 255, 256, 257, 258, 1630, 1631, 259, 260, 261, 262, 263, 1632, 264, 265, 266, 267, 268, 1633, 269, 1634, 270, 271, 272, 273, 274, 275, 276, 277, 278, 1635, 279, 280, 281, 282, 283, 284, 1636, 285, 286, 287, 288, 1637, 1638, 1639, 289, 1640, 1641, 1642, 290, 291, 292, 293, 294, 295, 296, 297, 298, 1643, 299, 1644, 300, 301, 302, 303, 304, 305, 1645, 306, 307, 308, 309, 1646, 1647, 310, 311, 312, 313, 314, 1648, 315, 316, 317, 1649, 318, 319, 320, 1650, 321, 322, 323, 324, 325, 326, 327, 328, 329, 1651, 330, 1652, 331, 332, 333, 334, 1653, 335, 1654, 336, 337, 1655, 338, 339, 340, 341, 342, 1656, 343, 344, 1657, 345, 346, 347, 1658, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 1659, 358, 359, 360, 361, 362, 363, 364, 1660, 365, 366, 367, 368, 369, 370, 371, 372, 373, 1661, 374, 1662, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 1663, 1664, 385, 386, 387, 388, 389, 1665, 390, 391, 392, 1666, 1667, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 1668, 416, 417, 418, 419, 1669, 420, 421, 422, 423, 424, 425, 1670, 426, 427, 1671, 1672, 428, 429, 430, 1673, 1674, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 1675, 447, 448, 449, 450, 451, 452, 453, 454, 1676, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 1677, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 1678, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 1679, 500, 501, 502, 503, 504, 1680, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 1681, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 1682, 528, 529, 1683, 530, 531, 532, 533, 534, 535, 536, 1684, 537, 538, 539, 1685, 1686, 540, 541, 542, 543, 544, 1687, 545, 546, 547, 548, 549, 550, 551, 1688, 1689, 552, 553, 554, 555, 556, 1690, 1691, 557, 558, 559, 560, 561, 562, 563, 1692, 564, 565, 566, 567, 568, 569, 1693, 1694, 570, 1695, 1696, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 1619, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 3057, 233, 234, 235, 1620, 236, 237, 238, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 239, 240, 1628, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 1629, 253, 254, 255, 256, 257, 258, 1630, 1631, 259, 260, 261, 262, 263, 1632, 264, 265, 266, 267, 268, 1633, 269, 1634, 270, 271, 272, 273, 274, 275, 276, 277, 278, 1635, 279, 280, 281, 282, 283, 284, 1636, 285, 286, 287, 288, 1637, 1638, 1639, 289, 1640, 1641, 1642, 290, 291, 292, 293, 294, 295, 296, 297, 298, 1643, 299, 1644, 300, 301, 302, 303, 304, 305, 1645, 306, 307, 308, 309, 1646, 1647, 310, 311, 312, 3058, 314, 1648, 315, 316, 317, 1649, 318, 319, 320, 1650, 321, 322, 323, 324, 325, 326, 327, 328, 329, 1651, 330, 1652, 331, 332, 333, 334, 1653, 335, 1654, 336, 337, 1655, 338, 339, 340, 341, 342, 1656, 343, 344, 1657, 345, 346, 347, 1658, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 1659, 358, 359, 360, 361, 362, 363, 364, 1660, 365, 366, 367, 368, 369, 370, 371, 372, 373, 1661, 374, 1662, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 1663, 1664, 385, 386, 387, 388, 389, 1665, 390, 391, 392, 1666, 1667, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 1668, 416, 417, 418, 419, 1669, 420, 421, 422, 423, 424, 425, 1670, 426, 427, 1671, 1672, 428, 429, 430, 1673, 1674, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 1675, 447, 448, 449, 450, 451, 452, 453, 454, 1676, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 1677, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 1678, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 1679, 500, 501, 502, 503, 504, 1680, 3059, 506, 507, 508, 509, 510, 511, 512, 513, 514, 1681, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 1682, 528, 529, 1683, 530, 531, 532, 533, 534, 535, 536, 1684, 537, 538, 539, 1685, 1686, 540, 541, 542, 543, 544, 1687, 545, 546, 547, 548, 549, 550, 551, 1688, 1689, 552, 553, 554, 555, 556, 1690, 1691, 557, 558, 559, 560, 561, 562, 563, 1692, 564, 565, 566, 567, 568, 569, 1693, 1694, 570, 1695, 1696, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 1217, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 1220, 0, 1221, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 1233, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 1236, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 1241, 387, 388, 389, 0, 390, 391, 392, 1242, 1243, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 1248, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 1251, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 1252, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 1255, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1257, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 1260, 543, 1261, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 1264, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 1266, 1267, 1268, 1269, 582, 1270, 1271, 1272, 1273, 587, 588, 589, 590, 862, 0, 659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 1906, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 1907, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 1908, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 900, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 863, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 864, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 920, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 863, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 921, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 864, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 863, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 864, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 2418, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 863, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 3409, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 864, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 863, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 864, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 863, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 1026, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 864, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 863, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1102, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 864, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 863, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1115, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 864, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 863, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1127, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 1128, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 864, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 862, 0, 659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 2069, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 3, 4, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 862, 0, 659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 862, 0, 659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1892, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1049, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1099, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1113, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1117, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 386, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 416, 417, 418, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 2193, 264, 265, 266, 267, 268, 0, 0, 2272, 270, 271, 272, 273, 274, 0, 276, 277, 278, 2194, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 2273, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 2196, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 2274, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 2197, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 2198, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 2193, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 2194, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 2273, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 2196, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 3268, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 2197, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 2198, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 777, 234, 235, 739, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 740, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 778, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 741, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 742, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 739, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 740, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 2946, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 741, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 742, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 2193, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 2194, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 2273, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 2196, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 2197, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 2198, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 739, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 740, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 741, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 742, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 1933, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 1934, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 1935, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 1936, 336, 0, 0, 0, 1937, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 1938, 1939, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 1940, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 1941, 489, 490, 491, 492, 493, 1942, 495, 496, 497, 498, 499, 0, 1943, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 1944, 530, 0, 1945, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 1946, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 740, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 741, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 742, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 913, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 914, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 809, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 3038, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 3039, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 3051, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 3052, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 599, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 650, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 651, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 769, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 770, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 771, 539, 0, 0, 772, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 803, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 804, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 805, 539, 0, 0, 806, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 809, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 871, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 872, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 1041, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 1311, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 1322, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 789, 260, 261, 262, 1323, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 792, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 793, 486, 487, 488, 489, 490, 491, 492, 493, 794, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 1315, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 796, 539, 0, 0, 797, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 798, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1435, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 809, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 1494, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1495, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 769, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 2837, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 2838, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 2839, 530, 0, 532, 2840, 534, 2841, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 2842, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 720, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 4100, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 4114, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 755, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 767, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 789, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 790, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 791, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 792, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 793, 486, 487, 488, 489, 490, 491, 492, 493, 794, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 795, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 796, 539, 0, 0, 797, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 798, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 820, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 896, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 906, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 924, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 991, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 997, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1014, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1017, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1019, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1055, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1119, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1121, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1131, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1134, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1137, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 789, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 792, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 793, 486, 487, 488, 489, 490, 491, 492, 493, 794, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 1315, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 796, 539, 0, 0, 797, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 798, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1753, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1791, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1793, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1864, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1866, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 1868, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 1969, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 2146, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 0, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 789, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 792, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 793, 486, 487, 488, 489, 490, 491, 492, 493, 794, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 1315, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 2180, 533, 534, 535, 536, 0, 537, 796, 539, 0, 0, 797, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 798, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 789, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 792, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 793, 486, 487, 488, 489, 490, 491, 492, 493, 2257, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 2258, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 796, 539, 0, 0, 2259, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 798, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 789, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 792, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 793, 486, 487, 488, 489, 490, 491, 492, 493, 2336, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 2258, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 796, 539, 0, 0, 2259, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 798, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 789, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 792, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 793, 486, 487, 488, 489, 490, 491, 492, 493, 2353, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 2258, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 796, 539, 0, 0, 2259, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 798, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 2555, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 2559, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 2631, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 2957, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 789, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 792, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 793, 486, 487, 488, 489, 490, 491, 492, 493, 794, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 2258, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 796, 539, 0, 0, 2259, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 798, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 3026, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 3041, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 3043, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 3186, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 3222, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 346, 347, 0, 348, 349, 350, 351, 4373, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 1057, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 0, 1058, 250, 1059, 1060, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 1061, 1062, 263, 0, 264, 265, 266, 267, 0, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 1063, 1064, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 0, 326, 327, 328, 0, 0, 330, 0, 331, 332, 1066, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 0, 0, 0, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 2153, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 2154, 368, 369, 370, 371, 1068, 1069, 0, 1070, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 0, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1071, 410, 1072, 412, 413, 414, 0, 0, 416, 417, 418, 419, 0, 0, 421, 1073, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 2156, 434, 435, 436, 0, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1074, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 2157, 508, 509, 510, 511, 512, 1076, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1077, 1078, 0, 0, 540, 541, 0, 543, 0, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 0, 1079, 2158, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 588, 589, 590, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 248, 249, 0, 251, 252, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 0, 264, 265, 266, 267, 268, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 330, 0, 331, 332, 333, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 344, 0, 345, 0, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 367, 368, 369, 370, 371, 372, 373, 0, 374, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 386, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 0, 411, 412, 413, 414, 415, 0, 416, 417, 0, 419, 0, 420, 421, 422, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 0, 445, 446, 0, 447, 448, 449, 450, 451, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 0, 464, 465, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 490, 0, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 0, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 538, 539, 0, 0, 540, 541, 542, 543, 544, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 562, 563, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 1057, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 0, 1058, 250, 1059, 1060, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 1061, 1062, 263, 0, 264, 265, 266, 267, 0, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 1063, 1064, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 0, 326, 327, 328, 0, 0, 330, 0, 331, 332, 1066, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 0, 0, 0, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 0, 368, 369, 370, 371, 1068, 1069, 0, 1070, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 0, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1071, 410, 1072, 412, 413, 414, 0, 0, 416, 417, 418, 419, 2253, 0, 421, 1073, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 0, 434, 435, 436, 0, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1074, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 2157, 508, 509, 510, 511, 512, 1076, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 0, 528, 529, 3937, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1077, 1078, 0, 0, 540, 541, 0, 543, 0, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 0, 1079, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 1057, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 588, 589, 590, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 0, 1058, 250, 1059, 1060, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 1061, 1062, 263, 0, 264, 265, 266, 267, 0, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 1063, 1064, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 0, 326, 327, 328, 0, 0, 330, 0, 331, 332, 1066, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 0, 0, 0, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 0, 368, 369, 370, 371, 1068, 1069, 0, 1070, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 0, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1071, 410, 1072, 412, 413, 414, 2325, 0, 416, 417, 418, 419, 0, 0, 421, 1073, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 0, 434, 435, 436, 0, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1074, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 1075, 508, 509, 510, 511, 512, 1076, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1077, 1078, 0, 0, 540, 541, 0, 543, 0, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 0, 1079, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 1057, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 588, 589, 590, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 0, 1058, 250, 1059, 1060, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 1061, 1062, 263, 0, 264, 265, 266, 267, 0, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 1063, 1064, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 0, 326, 327, 328, 0, 0, 330, 0, 331, 332, 1066, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 0, 0, 0, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 0, 368, 369, 370, 371, 1068, 1069, 0, 1070, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 0, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1071, 410, 1072, 412, 413, 414, 3744, 0, 416, 417, 418, 419, 0, 0, 421, 1073, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 0, 434, 435, 436, 0, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1074, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 1075, 508, 509, 510, 511, 512, 1076, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1077, 1078, 0, 0, 540, 541, 0, 543, 0, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 0, 1079, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 1057, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 588, 589, 590, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 0, 1058, 250, 1059, 1060, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 1061, 1062, 263, 0, 264, 265, 266, 267, 0, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 1063, 1064, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 0, 326, 327, 328, 0, 0, 330, 0, 331, 332, 1066, 334, 5282, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 0, 0, 0, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 0, 368, 369, 370, 371, 1068, 1069, 0, 1070, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 0, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1071, 410, 1072, 412, 413, 414, 0, 0, 416, 417, 418, 419, 0, 0, 421, 1073, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 0, 434, 435, 436, 0, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1074, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 1075, 508, 509, 510, 511, 512, 1076, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1077, 1078, 0, 0, 540, 541, 0, 543, 0, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 0, 1079, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 1057, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 588, 589, 590, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 0, 1058, 250, 1059, 1060, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 1061, 1062, 263, 0, 264, 265, 266, 267, 0, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 1063, 1064, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 0, 326, 327, 328, 0, 0, 330, 0, 331, 332, 1066, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 0, 0, 0, 346, 347, 0, 348, 349, 350, 351, 1067, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 0, 368, 369, 370, 371, 1068, 1069, 0, 1070, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 0, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1071, 410, 1072, 412, 413, 414, 0, 0, 416, 417, 418, 419, 0, 0, 421, 1073, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 0, 434, 435, 436, 0, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1074, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 1075, 508, 509, 510, 511, 512, 1076, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1077, 1078, 0, 0, 540, 541, 0, 543, 0, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 0, 1079, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 1057, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 588, 589, 590, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 0, 1058, 250, 1059, 1060, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 1061, 1062, 263, 0, 264, 265, 266, 267, 0, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 1063, 1064, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 0, 326, 327, 328, 0, 0, 330, 0, 331, 332, 1066, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 0, 0, 0, 346, 347, 0, 348, 349, 350, 351, 1125, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 0, 368, 369, 370, 371, 1068, 1069, 0, 1070, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 0, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1071, 410, 1072, 412, 413, 414, 0, 0, 416, 417, 418, 419, 0, 0, 421, 1073, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 0, 434, 435, 436, 0, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1074, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 1075, 508, 509, 510, 511, 512, 1076, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1077, 1078, 0, 0, 540, 541, 0, 543, 0, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 0, 1079, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 1057, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 588, 589, 590, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 0, 1058, 250, 1059, 1060, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 1061, 1062, 263, 0, 264, 265, 266, 267, 0, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 1063, 1064, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 0, 326, 327, 328, 0, 0, 330, 0, 331, 332, 1066, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 0, 0, 0, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 0, 368, 369, 370, 371, 1068, 1069, 0, 1070, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 0, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1071, 410, 1072, 412, 413, 414, 0, 0, 416, 417, 418, 419, 0, 0, 421, 1073, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 0, 434, 435, 436, 0, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1074, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 1075, 508, 509, 510, 511, 512, 1076, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1077, 1078, 0, 0, 540, 541, 0, 543, 0, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 0, 1079, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 1057, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 588, 589, 590, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 0, 1058, 250, 1059, 1060, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 1061, 1062, 263, 0, 264, 265, 266, 267, 0, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 1063, 1064, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 0, 326, 327, 328, 0, 0, 330, 0, 331, 332, 1066, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 0, 0, 0, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 0, 368, 369, 370, 371, 1068, 1069, 0, 1070, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 0, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1071, 410, 1072, 412, 413, 414, 0, 0, 416, 417, 418, 419, 0, 0, 421, 1073, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 0, 434, 435, 436, 0, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1074, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 2157, 508, 509, 510, 511, 512, 1076, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1077, 1078, 0, 0, 540, 541, 0, 543, 0, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 0, 1079, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 1057, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 588, 589, 590, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 0, 1058, 250, 1059, 1060, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 1061, 1062, 263, 0, 264, 265, 266, 267, 0, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 1063, 1064, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 1065, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 0, 326, 327, 328, 0, 0, 330, 0, 331, 332, 1066, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 0, 0, 0, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 0, 368, 369, 370, 371, 1068, 1069, 0, 1070, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 0, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1071, 410, 1072, 412, 413, 414, 0, 0, 416, 417, 418, 419, 0, 0, 421, 1073, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 0, 434, 435, 436, 0, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 1074, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 0, 508, 509, 510, 511, 512, 1076, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 1077, 1078, 0, 0, 540, 541, 0, 543, 0, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 0, 1079, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 1057, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 588, 589, 590, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 244, 245, 246, 247, 0, 0, 250, 0, 0, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 0, 0, 263, 0, 264, 265, 266, 267, 0, 0, 269, 0, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 290, 291, 292, 293, 294, 295, 0, 0, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 0, 326, 327, 328, 0, 0, 330, 0, 331, 332, 0, 334, 0, 335, 0, 336, 337, 0, 338, 339, 340, 341, 342, 0, 343, 0, 0, 0, 346, 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 366, 0, 368, 369, 370, 371, 0, 0, 0, 0, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, 0, 385, 0, 387, 388, 389, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 0, 412, 413, 414, 0, 0, 416, 417, 418, 419, 0, 0, 421, 0, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 0, 434, 435, 436, 0, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 0, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 0, 508, 509, 510, 511, 512, 0, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 0, 528, 529, 0, 530, 531, 532, 533, 534, 535, 536, 0, 537, 0, 0, 0, 0, 540, 541, 0, 543, 0, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 0, 0, 0, 564, 565, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 4938, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 588, 589, 590, 0, 228, 229, 230, 231, 232, 233, 234, 235, 0, 236, 237, 238, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 241, 242, 243, 0, 245, 246, 247, 0, 0, 0, 0, 0, 0, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 0, 0, 263, 0, 264, 265, 266, 267, 0, 0, 0, 0, 270, 271, 272, 273, 274, 0, 276, 277, 278, 0, 279, 280, 281, 282, 283, 284, 0, 0, 286, 287, 288, 0, 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, 0, 0, 298, 0, 299, 0, 300, 301, 302, 303, 304, 305, 0, 306, 307, 308, 309, 0, 0, 310, 311, 312, 313, 314, 0, 315, 316, 317, 0, 318, 319, 320, 0, 321, 322, 323, 324, 0, 326, 327, 328, 0, 0, 330, 0, 331, 332, 0, 334, 0, 335, 0, 336, 0, 0, 0, 339, 340, 341, 342, 0, 343, 0, 0, 0, 346, 347, 0, 348, 349, 350, 351, 352, 0, 354, 355, 356, 357, 0, 358, 359, 360, 361, 362, 363, 364, 0, 365, 0, 0, 368, 369, 370, 371, 0, 0, 0, 0, 0, 375, 0, 0, 378, 0, 380, 381, 382, 383, 384, 0, 0, 385, 0, 0, 388, 0, 0, 390, 391, 392, 0, 0, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 0, 0, 412, 413, 414, 0, 0, 416, 417, 0, 419, 0, 0, 421, 0, 423, 424, 425, 0, 426, 427, 0, 0, 428, 429, 430, 0, 0, 431, 432, 0, 0, 435, 0, 0, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 452, 453, 454, 0, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 0, 466, 467, 468, 469, 0, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 0, 482, 483, 0, 485, 486, 487, 488, 489, 0, 491, 492, 493, 494, 495, 496, 497, 498, 499, 0, 500, 501, 502, 503, 504, 0, 505, 506, 0, 508, 509, 0, 511, 512, 0, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 0, 528, 529, 0, 530, 0, 532, 533, 534, 535, 536, 0, 537, 0, 0, 0, 0, 540, 541, 0, 543, 0, 0, 545, 546, 547, 548, 549, 550, 551, 0, 0, 552, 553, 554, 555, 556, 0, 0, 557, 558, 559, 560, 561, 0, 0, 0, 564, 0, 566, 567, 568, 569, 0, 0, 570, 0, 0, 571, 572, 573, 574, 575, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 588, 589, 590 }; static const yytype_int16 yycheck[] = { 6, 44, 204, 0, 907, 627, 1147, 8, 788, 51, 0, 1546, 0, 36, 15, 0, 660, 23, 790, 25, 182, 0, 938, 29, 21, 1075, 923, 908, 34, 35, 36, 1105, 38, 848, 932, 41, 42, 1421, 44, 22, 46, 740, 741, 742, 199, 28, 839, 746, 2495, 1465, 1458, 812, 207, 190, 702, 210, 204, 13, 1169, 2564, 1020, 2849, 1063, 1064, 708, 1705, 813, 1787, 2690, 45, 797, 2386, 1073, 1078, 1200, 3636, 3030, 2898, 934, 23, 2508, 1465, 936, 3344, 618, 1609, 3347, 1009, 3319, 2324, 6, 3591, 36, 2161, 2162, 18, 3003, 994, 3300, 860, 21, 998, 660, 1025, 209, 2666, 1003, 1471, 1482, 3057, 1975, 3059, 0, 2407, 3537, 3566, 1013, 3246, 223, 3254, 2907, 3688, 3265, 707, 3926, 3254, 697, 3911, 4168, 3331, 1027, 169, 1958, 2872, 874, 3632, 670, 2451, 2063, 2453, 3572, 682, 4560, 2457, 685, 2459, 2460, 184, 684, 793, 4509, 4400, 3929, 3872, 2468, 2469, 2470, 3916, 35, 184, 1800, 4403, 698, 2019, 1450, 42, 1399, 2781, 50, 0, 1890, 836, 2126, 2096, 0, 218, 0, 4354, 0, 0, 941, 2104, 41, 3636, 190, 191, 192, 193, 4666, 195, 0, 0, 0, 199, 2846, 201, 3915, 0, 204, 0, 2128, 207, 1576, 1577, 210, 4580, 1570, 213, 0, 215, 3317, 0, 218, 2917, 4707, 4719, 222, 3500, 224, 1061, 1062, 836, 3612, 1509, 858, 4402, 0, 0, 1229, 1230, 1072, 4525, 9, 4527, 0, 793, 35, 3571, 49, 3573, 1526, 57, 11, 9, 22, 4620, 2898, 0, 1249, 0, 5, 57, 0, 5, 1259, 1996, 9, 11, 26, 5, 26, 13, 14, 2498, 898, 5, 5, 5, 4854, 903, 5, 40, 5, 26, 5, 907, 5, 39, 5, 1094, 13, 14, 4915, 915, 13, 14, 158, 986, 74, 87, 1413, 1607, 1608, 925, 5, 39, 5, 2911, 5, 3005, 5, 42, 5, 72, 5, 112, 138, 22, 163, 74, 4819, 4820, 163, 3, 4, 5, 4, 5, 4, 9, 187, 9, 79, 9, 74, 105, 207, 163, 267, 57, 112, 26, 187, 4, 5, 9, 163, 4652, 9, 144, 42, 3993, 3994, 269, 3996, 3997, 3998, 3999, 4000, 117, 70, 289, 270, 131, 4627, 4628, 289, 27, 252, 252, 255, 275, 26, 5, 325, 144, 112, 308, 117, 33, 11, 2606, 339, 2608, 24, 107, 1218, 1219, 32, 270, 57, 315, 131, 5267, 165, 357, 4, 258, 57, 163, 163, 9, 114, 153, 240, 45, 383, 163, 158, 40, 819, 11, 395, 1245, 165, 1365, 116, 1147, 155, 11, 163, 74, 163, 187, 187, 163, 131, 163, 3, 91, 339, 187, 112, 1339, 84, 57, 343, 11, 397, 1327, 3, 72, 5, 201, 187, 143, 187, 43, 327, 187, 1510, 463, 382, 4, 4555, 30, 31, 179, 9, 72, 4943, 4562, 112, 86, 476, 428, 40, 1527, 114, 65, 4709, 4836, 72, 151, 383, 225, 4708, 356, 723, 724, 725, 440, 254, 728, 729, 730, 437, 417, 310, 627, 151, 189, 1532, 738, 5117, 478, 1130, 474, 72, 4783, 66, 145, 363, 26, 57, 128, 430, 169, 208, 460, 33, 347, 474, 1147, 251, 26, 266, 474, 240, 11, 271, 243, 33, 329, 57, 74, 206, 478, 1279, 74, 625, 416, 170, 329, 305, 84, 631, 5411, 422, 84, 328, 679, 202, 474, 107, 474, 474, 259, 228, 644, 57, 474, 163, 163, 1460, 1399, 1307, 267, 474, 298, 238, 442, 202, 241, 359, 211, 474, 474, 3264, 395, 1204, 343, 163, 456, 478, 1149, 142, 4882, 395, 163, 285, 259, 1130, 215, 29, 164, 1112, 162, 356, 164, 359, 349, 437, 84, 160, 1325, 114, 133, 259, 3724, 1330, 1331, 163, 1515, 254, 3724, 5014, 478, 254, 605, 119, 329, 474, 383, 117, 611, 179, 613, 323, 395, 616, 478, 618, 610, 620, 347, 163, 5203, 380, 3748, 610, 627, 610, 1746, 26, 610, 632, 478, 634, 11, 395, 610, 5125, 373, 374, 641, 380, 5115, 416, 1175, 1562, 356, 474, 4066, 1541, 395, 1204, 1544, 416, 395, 1186, 408, 329, 4104, 395, 311, 463, 4108, 40, 665, 329, 4093, 478, 474, 670, 1201, 708, 240, 5177, 675, 243, 1552, 478, 679, 712, 474, 682, 839, 1322, 685, 478, 3883, 423, 606, 439, 3639, 1330, 1331, 383, 427, 72, 4933, 5325, 4942, 3925, 701, 473, 329, 1438, 465, 466, 470, 366, 477, 477, 460, 1354, 1605, 1448, 752, 707, 477, 465, 466, 402, 2950, 470, 463, 1383, 474, 1139, 423, 474, 455, 477, 301, 477, 4010, 439, 477, 476, 402, 395, 472, 735, 474, 474, 476, 721, 474, 723, 474, 725, 474, 2060, 474, 752, 474, 731, 460, 706, 1607, 1608, 1609, 5247, 5259, 958, 4147, 4092, 765, 4094, 767, 3905, 474, 1322, 474, 329, 474, 1383, 474, 813, 474, 4812, 474, 347, 465, 466, 465, 466, 465, 466, 787, 788, 5056, 790, 791, 329, 708, 22, 795, 827, 465, 466, 1533, 465, 466, 1536, 1537, 4450, 954, 843, 478, 827, 809, 1436, 960, 943, 813, 963, 478, 958, 5186, 329, 819, 857, 163, 1738, 1928, 57, 437, 1894, 1614, 478, 1457, 5199, 831, 467, 468, 469, 470, 478, 4398, 829, 366, 3149, 411, 395, 843, 5331, 829, 395, 829, 460, 428, 829, 366, 478, 465, 466, 472, 829, 857, 2920, 476, 2922, 1856, 2272, 478, 478, 1278, 5154, 1935, 3969, 3291, 1496, 467, 468, 469, 470, 875, 5119, 326, 1946, 106, 880, 881, 1510, 478, 2242, 5121, 474, 1503, 455, 1375, 339, 474, 341, 433, 3842, 1743, 20, 293, 420, 1527, 395, 1150, 817, 131, 1153, 418, 1155, 5394, 1157, 416, 1159, 911, 912, 478, 1163, 175, 29, 3563, 3226, 81, 3566, 478, 2440, 5335, 5336, 269, 3624, 5098, 3829, 2877, 163, 5300, 120, 474, 934, 935, 105, 57, 791, 3, 47, 478, 795, 943, 820, 2862, 2173, 829, 275, 5120, 5, 400, 175, 5425, 954, 351, 2878, 5, 958, 36, 960, 123, 2320, 963, 191, 145, 107, 478, 850, 465, 466, 467, 468, 469, 470, 160, 1389, 105, 978, 105, 38, 116, 2262, 1717, 395, 4698, 26, 112, 105, 2908, 3636, 387, 252, 389, 141, 1831, 1832, 5, 3227, 3228, 1000, 4556, 3610, 2853, 829, 3, 5249, 1007, 1008, 829, 5363, 829, 5248, 829, 829, 3748, 2751, 2752, 2547, 83, 144, 2756, 4660, 5435, 81, 829, 829, 829, 35, 1029, 1030, 1031, 829, 1033, 829, 1035, 1036, 179, 179, 164, 911, 912, 34, 829, 121, 2865, 829, 54, 3949, 4466, 66, 2186, 117, 395, 187, 5, 117, 285, 2793, 2794, 4507, 303, 22, 26, 1974, 164, 123, 478, 84, 4514, 4593, 383, 136, 208, 4519, 182, 81, 4522, 225, 3894, 187, 5, 92, 252, 4510, 83, 126, 5330, 105, 465, 466, 467, 468, 469, 470, 323, 4543, 104, 240, 240, 81, 105, 243, 1796, 339, 1105, 2016, 1107, 1108, 4556, 343, 58, 4635, 2157, 77, 334, 343, 224, 123, 66, 112, 463, 85, 1040, 174, 287, 142, 185, 356, 193, 255, 284, 252, 172, 476, 323, 201, 135, 117, 1139, 201, 22, 123, 3, 160, 4941, 4899, 30, 31, 158, 113, 478, 2062, 4931, 164, 382, 383, 1152, 1149, 1154, 2562, 1156, 422, 1158, 4419, 1160, 1161, 1162, 4393, 1169, 1170, 131, 1167, 157, 1174, 356, 1176, 1943, 1944, 2027, 4951, 416, 4935, 190, 3246, 4898, 4824, 197, 356, 288, 323, 4387, 3254, 421, 327, 81, 429, 1197, 417, 422, 1200, 285, 212, 1203, 259, 347, 347, 141, 91, 329, 2060, 259, 222, 326, 4162, 339, 1216, 180, 264, 5253, 5254, 4934, 201, 356, 95, 353, 388, 291, 111, 192, 287, 238, 474, 231, 241, 359, 356, 123, 248, 323, 49, 8, 1278, 289, 11, 252, 1246, 474, 3894, 275, 131, 259, 112, 433, 361, 1897, 112, 383, 2013, 269, 310, 4203, 145, 362, 3, 1830, 383, 1905, 159, 26, 237, 205, 4719, 40, 1274, 1275, 1276, 284, 1278, 3341, 47, 228, 287, 275, 23, 301, 165, 285, 349, 234, 340, 1819, 1934, 418, 103, 334, 1938, 478, 1298, 153, 1942, 172, 193, 1945, 437, 72, 287, 356, 323, 22, 478, 2161, 296, 273, 455, 28, 325, 1349, 214, 4810, 114, 328, 1887, 333, 1859, 2173, 1904, 460, 4745, 106, 5126, 388, 1862, 474, 4779, 259, 1336, 1368, 1369, 1874, 1371, 275, 1877, 350, 83, 409, 1876, 428, 1385, 1368, 1369, 416, 1371, 417, 22, 416, 420, 0, 2348, 1889, 28, 1503, 5396, 370, 4145, 145, 383, 327, 328, 126, 1370, 225, 139, 2139, 1374, 1375, 4937, 5015, 1994, 383, 395, 252, 5020, 388, 22, 1385, 1386, 1387, 386, 1389, 388, 200, 271, 474, 254, 411, 356, 136, 343, 259, 104, 287, 1937, 259, 285, 1940, 1941, 388, 418, 372, 1410, 1824, 375, 285, 191, 182, 284, 211, 131, 264, 187, 4838, 264, 115, 403, 114, 4843, 4844, 474, 478, 300, 269, 2422, 3988, 22, 91, 319, 416, 397, 3938, 28, 386, 323, 252, 289, 1445, 168, 289, 187, 475, 1450, 323, 478, 5008, 193, 111, 2304, 224, 4104, 5255, 254, 2358, 4108, 131, 1464, 1465, 349, 4596, 475, 414, 284, 463, 4697, 4596, 1474, 356, 410, 1477, 112, 112, 472, 2329, 474, 475, 476, 284, 478, 2403, 356, 145, 115, 183, 437, 131, 439, 168, 375, 124, 311, 474, 383, 112, 388, 1503, 271, 1505, 228, 134, 3816, 1509, 1996, 324, 3820, 3821, 478, 3823, 1433, 311, 2004, 395, 213, 392, 211, 5017, 5018, 158, 1526, 397, 1528, 474, 1567, 1531, 4979, 5329, 238, 2603, 345, 241, 264, 352, 2388, 424, 356, 131, 5340, 428, 180, 4684, 2186, 175, 165, 3860, 291, 285, 437, 228, 275, 356, 183, 252, 1973, 5008, 1975, 289, 237, 254, 343, 1567, 1981, 349, 440, 365, 285, 175, 1987, 1988, 1989, 460, 1578, 1579, 1580, 1581, 1582, 234, 1997, 1998, 3895, 463, 2504, 2002, 2440, 474, 323, 3452, 361, 334, 1596, 2338, 2339, 5395, 476, 2342, 155, 383, 3133, 382, 383, 1607, 1608, 1609, 323, 2527, 2528, 2529, 2530, 477, 3904, 285, 3020, 168, 254, 323, 311, 2539, 356, 356, 252, 346, 2362, 474, 2116, 126, 474, 128, 472, 1517, 2370, 5433, 476, 2373, 1522, 2489, 381, 356, 424, 2271, 285, 2434, 2435, 2436, 252, 2179, 165, 0, 356, 323, 151, 437, 285, 285, 5456, 166, 3724, 319, 217, 387, 359, 389, 115, 66, 409, 273, 283, 303, 21, 1871, 5123, 3391, 417, 228, 460, 420, 254, 1814, 323, 198, 3748, 259, 356, 3207, 305, 458, 414, 349, 474, 3213, 323, 323, 465, 466, 467, 468, 469, 470, 51, 1705, 4654, 1707, 300, 1591, 273, 1860, 328, 1595, 387, 112, 389, 356, 4914, 1719, 1720, 400, 285, 416, 4949, 29, 341, 383, 1870, 1871, 166, 3960, 2358, 3962, 341, 386, 183, 309, 349, 2269, 356, 414, 1742, 153, 3479, 3480, 3481, 3482, 474, 53, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 323, 1761, 2503, 414, 259, 2391, 315, 1765, 424, 264, 167, 126, 383, 128, 315, 4912, 418, 1777, 1778, 1779, 1780, 437, 341, 398, 5339, 339, 437, 285, 439, 404, 1790, 1789, 4929, 400, 263, 3153, 422, 1797, 2424, 5293, 1800, 306, 63, 64, 460, 397, 3541, 3542, 339, 350, 341, 1811, 5259, 424, 1814, 225, 2344, 371, 474, 1819, 422, 319, 3472, 474, 1824, 323, 437, 92, 4444, 4966, 4731, 434, 474, 338, 126, 474, 128, 184, 387, 153, 389, 400, 383, 158, 158, 430, 351, 285, 440, 460, 2955, 3501, 1994, 327, 169, 145, 266, 254, 356, 1859, 1860, 4507, 259, 474, 2557, 414, 429, 163, 4514, 400, 1870, 1871, 187, 4519, 1874, 478, 4522, 1877, 5133, 384, 114, 430, 356, 5438, 439, 323, 346, 5334, 4830, 430, 74, 187, 5339, 5118, 1894, 1895, 250, 4543, 215, 164, 84, 1901, 338, 1903, 301, 460, 474, 402, 344, 264, 4556, 225, 4353, 1904, 268, 351, 1953, 412, 356, 1914, 317, 1916, 2656, 1918, 2772, 1920, 418, 1922, 1928, 2567, 2778, 1926, 197, 2928, 4550, 1935, 4552, 1937, 213, 8, 1940, 1941, 11, 1943, 1944, 4727, 1946, 212, 384, 1966, 4372, 4392, 266, 1953, 4183, 4184, 3324, 222, 239, 3327, 1960, 195, 254, 5100, 104, 1965, 1966, 1958, 84, 1969, 406, 40, 264, 1973, 1958, 1975, 1958, 252, 47, 1958, 1980, 1981, 474, 248, 2622, 1958, 4206, 1987, 1988, 1989, 1905, 5438, 4212, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 474, 2002, 72, 2004, 2005, 3640, 4315, 2008, 4317, 4318, 2653, 285, 4321, 411, 2567, 24, 332, 252, 159, 254, 315, 418, 2023, 2024, 2025, 2026, 1965, 285, 4, 2030, 2031, 2228, 4342, 9, 2035, 311, 45, 2038, 164, 158, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 323, 2051, 168, 193, 327, 1972, 350, 2057, 2058, 349, 2060, 2848, 4963, 181, 1517, 5261, 323, 2067, 333, 1522, 2622, 325, 197, 4719, 5022, 191, 22, 2226, 474, 400, 2229, 2230, 28, 356, 359, 74, 2228, 212, 2219, 383, 141, 285, 437, 383, 285, 84, 2096, 222, 238, 356, 2100, 241, 153, 5240, 2104, 4920, 2106, 158, 437, 2918, 2523, 141, 228, 182, 269, 460, 2116, 3852, 187, 274, 2854, 400, 349, 153, 237, 2125, 2126, 437, 158, 323, 2851, 3006, 323, 4779, 424, 437, 430, 114, 1591, 2139, 473, 416, 1595, 346, 437, 478, 2146, 437, 2148, 478, 460, 2592, 2593, 2594, 205, 224, 383, 3032, 274, 387, 2144, 389, 356, 2576, 158, 356, 3695, 473, 478, 2268, 460, 2188, 478, 2190, 225, 205, 478, 439, 126, 2179, 128, 158, 2097, 2098, 474, 478, 5323, 181, 2188, 237, 2190, 158, 3906, 2809, 141, 225, 4, 424, 460, 88, 3305, 9, 271, 151, 2241, 191, 153, 2207, 333, 2186, 3315, 158, 474, 472, 181, 266, 2854, 476, 195, 2219, 437, 2221, 2222, 181, 275, 5007, 2226, 239, 2228, 2229, 2230, 4870, 2232, 4872, 2234, 5183, 266, 4876, 2238, 4878, 5436, 2241, 400, 460, 469, 275, 80, 474, 2347, 474, 430, 476, 5389, 475, 5, 4564, 478, 346, 205, 269, 11, 439, 2262, 610, 274, 2751, 2752, 474, 19, 476, 2756, 387, 2272, 389, 4920, 252, 3686, 254, 225, 53, 2280, 2281, 460, 9, 400, 4924, 37, 472, 2288, 474, 215, 476, 361, 474, 3928, 411, 474, 2297, 414, 898, 474, 2338, 2339, 2945, 903, 2342, 254, 2793, 2794, 269, 469, 259, 3432, 478, 3672, 474, 264, 476, 2318, 266, 13, 14, 2421, 2323, 2324, 3693, 475, 3695, 275, 478, 343, 4639, 902, 4979, 2972, 3251, 474, 83, 2338, 2339, 2753, 53, 2342, 3297, 2344, 2345, 2764, 5295, 2766, 2767, 920, 475, 2765, 923, 478, 475, 430, 3207, 478, 410, 707, 708, 5008, 3213, 3363, 3364, 8, 3258, 2368, 11, 3728, 2371, 428, 15, 16, 17, 475, 43, 124, 478, 410, 3007, 475, 475, 2797, 478, 478, 475, 134, 458, 478, 475, 2392, 2393, 478, 457, 465, 466, 467, 468, 469, 470, 472, 475, 474, 3253, 478, 2407, 283, 2409, 2410, 475, 2942, 2943, 478, 475, 475, 211, 478, 478, 2972, 472, 2835, 475, 475, 476, 478, 66, 475, 30, 31, 478, 5380, 72, 475, 158, 349, 478, 2438, 2439, 2440, 437, 476, 439, 2444, 84, 4675, 339, 340, 475, 2450, 3299, 478, 8, 402, 4954, 11, 3083, 2458, 475, 272, 2461, 478, 410, 412, 234, 2503, 2467, 475, 475, 383, 478, 478, 112, 349, 114, 387, 5123, 389, 2479, 827, 2481, 829, 475, 475, 40, 478, 478, 475, 269, 475, 478, 47, 478, 475, 2495, 475, 478, 2498, 478, 2500, 272, 475, 2503, 4813, 478, 269, 2507, 383, 5291, 2510, 424, 3246, 4822, 339, 340, 475, 72, 8, 478, 3254, 11, 2522, 2523, 437, 15, 16, 17, 167, 3931, 339, 340, 3637, 3638, 4596, 3913, 339, 340, 475, 285, 2540, 478, 32, 475, 395, 187, 478, 460, 272, 424, 2550, 2700, 2552, 457, 2703, 475, 195, 2706, 478, 2509, 5176, 474, 437, 2694, 43, 2549, 475, 209, 474, 478, 476, 3101, 475, 319, 343, 478, 2576, 323, 475, 475, 8, 478, 478, 11, 139, 460, 457, 15, 16, 17, 3120, 3284, 475, 475, 475, 478, 478, 478, 475, 474, 467, 478, 437, 2603, 439, 2605, 2606, 2607, 2608, 162, 356, 3521, 40, 5259, 387, 254, 389, 386, 211, 47, 259, 5403, 3260, 475, 3262, 477, 3621, 182, 8, 271, 35, 11, 187, 5149, 5150, 15, 16, 17, 475, 475, 478, 478, 478, 2643, 72, 414, 475, 475, 475, 54, 478, 478, 32, 475, 475, 475, 478, 478, 478, 4721, 475, 475, 301, 478, 478, 475, 3514, 2809, 437, 224, 439, 5273, 5274, 475, 141, 3416, 478, 475, 317, 475, 478, 474, 478, 5465, 2684, 387, 153, 389, 5334, 4218, 3582, 158, 475, 5339, 2694, 478, 53, 428, 475, 104, 2700, 478, 3340, 2703, 163, 474, 2706, 3441, 3260, 3619, 3262, 475, 207, 474, 478, 2715, 271, 2753, 475, 209, 474, 478, 475, 2723, 476, 478, 8, 4462, 2728, 11, 2872, 441, 474, 15, 16, 17, 475, 475, 205, 478, 478, 234, 437, 475, 439, 3275, 478, 3277, 323, 474, 32, 2751, 2752, 2753, 182, 187, 2756, 475, 225, 187, 478, 2797, 167, 3405, 2764, 2765, 2766, 2767, 475, 146, 475, 478, 411, 478, 146, 475, 475, 2777, 478, 478, 2780, 271, 2782, 475, 475, 190, 478, 478, 3340, 474, 476, 4201, 5438, 2793, 2794, 269, 224, 2797, 5239, 266, 187, 475, 1149, 3694, 478, 269, 361, 475, 275, 2809, 478, 2811, 323, 2813, 475, 2815, 475, 478, 477, 461, 462, 463, 3577, 465, 466, 467, 468, 469, 470, 209, 833, 475, 835, 238, 478, 2835, 241, 146, 475, 2839, 234, 478, 475, 271, 187, 478, 2846, 252, 475, 475, 343, 478, 478, 475, 475, 3664, 478, 478, 146, 269, 475, 35, 2862, 478, 475, 1212, 2902, 478, 158, 2869, 2840, 2841, 2842, 475, 2865, 3723, 478, 3725, 323, 284, 54, 2865, 146, 2865, 2884, 1232, 2865, 4109, 223, 4111, 256, 271, 2865, 386, 475, 114, 418, 478, 2898, 3747, 269, 3431, 2902, 458, 474, 2905, 475, 2907, 239, 478, 465, 466, 467, 468, 469, 470, 1263, 475, 3766, 475, 478, 414, 478, 328, 400, 475, 263, 209, 478, 3804, 104, 1278, 430, 361, 475, 3826, 2846, 478, 475, 475, 346, 478, 478, 410, 437, 350, 439, 158, 2948, 343, 2950, 475, 215, 234, 478, 2955, 475, 475, 475, 478, 478, 478, 475, 66, 2006, 370, 0, 2009, 474, 254, 3, 461, 462, 463, 35, 465, 466, 467, 468, 469, 470, 474, 2982, 349, 2984, 2985, 2986, 254, 2898, 271, 3724, 441, 386, 3479, 3480, 3481, 3482, 234, 269, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 4744, 158, 474, 4056, 254, 3748, 43, 190, 383, 43, 254, 414, 1368, 1369, 405, 1371, 3812, 3512, 254, 83, 285, 458, 430, 430, 461, 462, 463, 80, 465, 466, 467, 468, 469, 470, 437, 158, 439, 304, 146, 146, 474, 83, 146, 427, 474, 297, 3541, 3542, 91, 424, 474, 146, 3474, 343, 34, 238, 474, 146, 241, 441, 146, 478, 437, 146, 146, 146, 146, 35, 146, 252, 146, 474, 461, 462, 463, 146, 465, 466, 467, 468, 469, 470, 269, 671, 158, 460, 3508, 146, 56, 146, 3099, 146, 146, 135, 383, 3246, 386, 343, 141, 474, 475, 284, 477, 3254, 474, 35, 223, 158, 158, 697, 153, 269, 474, 5, 5, 158, 474, 474, 158, 474, 163, 474, 90, 474, 414, 474, 169, 8, 5, 172, 11, 3553, 474, 176, 15, 16, 17, 474, 5, 474, 386, 474, 474, 474, 474, 328, 474, 437, 474, 439, 474, 32, 5, 8, 5, 49, 11, 474, 474, 474, 474, 234, 205, 474, 474, 474, 474, 350, 414, 474, 461, 462, 463, 474, 465, 466, 467, 468, 469, 470, 438, 149, 225, 281, 474, 40, 474, 370, 207, 231, 35, 437, 47, 439, 478, 478, 95, 223, 3207, 93, 35, 478, 4121, 8, 3213, 158, 11, 158, 266, 356, 15, 16, 17, 3222, 395, 264, 184, 72, 3227, 3228, 395, 343, 4141, 266, 118, 395, 269, 32, 474, 429, 255, 256, 275, 3976, 395, 40, 476, 343, 4982, 395, 395, 135, 47, 285, 343, 139, 8, 215, 4362, 11, 225, 395, 220, 15, 16, 17, 395, 3266, 3267, 3268, 463, 395, 84, 146, 343, 159, 269, 72, 162, 269, 343, 348, 220, 35, 3283, 395, 395, 259, 289, 395, 417, 323, 269, 177, 139, 327, 254, 330, 3334, 386, 269, 339, 8, 264, 474, 11, 3305, 3306, 180, 15, 16, 17, 8, 395, 395, 11, 3315, 3316, 3317, 15, 16, 17, 3321, 386, 356, 474, 4703, 84, 286, 3970, 3971, 3972, 3973, 3974, 349, 3334, 478, 182, 209, 285, 187, 146, 187, 418, 418, 395, 269, 3330, 3877, 3878, 383, 414, 8, 395, 386, 11, 388, 383, 395, 15, 16, 17, 383, 4136, 395, 106, 395, 3852, 383, 327, 3353, 269, 950, 331, 437, 259, 439, 410, 395, 224, 3416, 395, 340, 267, 395, 395, 53, 182, 395, 53, 348, 395, 187, 245, 3549, 395, 3395, 975, 356, 395, 271, 434, 308, 436, 437, 437, 395, 273, 395, 424, 368, 474, 990, 343, 209, 210, 395, 3416, 376, 395, 386, 289, 437, 42, 234, 309, 271, 289, 8, 224, 42, 395, 395, 3432, 343, 15, 16, 17, 395, 472, 398, 395, 475, 476, 477, 460, 395, 475, 209, 269, 234, 209, 269, 478, 209, 3454, 479, 209, 441, 474, 209, 209, 257, 209, 3463, 269, 269, 209, 395, 209, 3469, 405, 3471, 209, 432, 3474, 271, 4210, 436, 274, 3479, 3480, 3481, 3482, 437, 35, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 234, 146, 24, 3498, 3499, 474, 269, 209, 146, 112, 418, 254, 437, 3508, 146, 146, 3547, 3512, 4129, 429, 361, 3516, 146, 271, 231, 264, 254, 254, 269, 3524, 254, 35, 3527, 158, 3529, 3566, 474, 343, 35, 215, 345, 474, 34, 3538, 393, 472, 3541, 3542, 393, 395, 472, 3546, 3547, 395, 474, 395, 3551, 209, 3553, 395, 146, 146, 1904, 343, 418, 3560, 3561, 3562, 3563, 271, 361, 3566, 3567, 4418, 146, 0, 3571, 3572, 3573, 271, 386, 146, 146, 3578, 418, 263, 395, 3724, 258, 163, 3555, 3556, 3557, 3558, 461, 462, 463, 245, 465, 466, 467, 468, 469, 470, 433, 245, 386, 3602, 414, 343, 1184, 3748, 11, 474, 393, 4096, 1958, 458, 478, 271, 395, 3616, 474, 3618, 465, 466, 467, 468, 469, 470, 474, 437, 172, 439, 414, 4043, 5366, 5367, 154, 163, 478, 3636, 3637, 3638, 180, 3640, 180, 4284, 4285, 475, 4287, 397, 386, 205, 474, 4343, 478, 437, 3563, 439, 359, 3566, 3657, 3658, 3659, 3660, 91, 458, 474, 213, 461, 462, 463, 4198, 465, 466, 467, 468, 469, 470, 414, 270, 478, 418, 35, 278, 53, 478, 475, 343, 2032, 3686, 474, 418, 474, 271, 213, 259, 5222, 213, 259, 395, 395, 437, 395, 439, 239, 474, 430, 346, 3705, 400, 158, 461, 462, 463, 141, 465, 466, 467, 468, 469, 470, 4823, 215, 148, 269, 259, 153, 43, 365, 3636, 148, 158, 254, 223, 223, 4867, 163, 223, 474, 339, 267, 386, 169, 395, 269, 172, 478, 181, 4275, 176, 148, 148, 269, 323, 353, 311, 475, 461, 462, 463, 4648, 465, 466, 467, 468, 469, 470, 461, 462, 463, 395, 465, 466, 467, 468, 469, 470, 395, 205, 275, 35, 3755, 418, 209, 215, 267, 418, 307, 191, 463, 463, 146, 264, 4858, 158, 4860, 35, 160, 225, 4644, 2144, 430, 384, 3800, 308, 264, 474, 461, 462, 463, 353, 465, 466, 467, 468, 469, 470, 146, 146, 474, 146, 264, 8, 437, 254, 11, 35, 269, 269, 15, 16, 17, 254, 215, 178, 178, 158, 35, 8, 266, 475, 11, 269, 4370, 472, 457, 32, 3844, 275, 457, 347, 3848, 475, 3850, 40, 3852, 475, 243, 215, 475, 475, 47, 3859, 158, 269, 4596, 353, 254, 3865, 187, 40, 478, 187, 187, 187, 187, 478, 47, 3875, 441, 478, 23, 170, 461, 462, 463, 72, 465, 466, 467, 468, 469, 470, 3890, 395, 474, 163, 3894, 437, 269, 242, 478, 72, 330, 53, 400, 383, 3904, 215, 263, 4673, 163, 475, 281, 474, 430, 3913, 475, 475, 478, 475, 163, 475, 1499, 475, 475, 475, 3924, 475, 290, 474, 3928, 5064, 395, 475, 3932, 3933, 270, 475, 280, 270, 474, 3923, 457, 4557, 474, 474, 459, 416, 434, 233, 474, 269, 434, 424, 463, 383, 53, 269, 191, 269, 474, 272, 3960, 474, 3962, 146, 4377, 441, 139, 5072, 5073, 3969, 199, 395, 395, 200, 259, 395, 4462, 4764, 395, 254, 410, 146, 209, 273, 3894, 4471, 356, 4129, 146, 348, 146, 4607, 223, 182, 348, 348, 223, 191, 187, 148, 463, 395, 4002, 418, 434, 225, 436, 437, 478, 182, 291, 291, 415, 4013, 187, 395, 395, 395, 395, 235, 209, 210, 235, 269, 235, 146, 395, 395, 254, 356, 395, 42, 343, 395, 343, 224, 343, 343, 473, 475, 395, 209, 472, 4043, 395, 475, 476, 477, 475, 475, 209, 224, 395, 4053, 4054, 395, 395, 395, 209, 209, 4060, 4061, 175, 3, 475, 4065, 475, 4597, 257, 3, 4070, 478, 158, 4073, 4074, 405, 43, 325, 4078, 4079, 105, 478, 271, 475, 4084, 4085, 4086, 4087, 4088, 158, 474, 267, 4092, 4093, 4094, 269, 4096, 4097, 271, 0, 4100, 475, 35, 146, 4104, 4955, 395, 146, 4108, 5214, 158, 175, 473, 418, 4114, 418, 146, 272, 343, 343, 343, 473, 343, 353, 343, 475, 144, 144, 209, 4129, 4772, 1710, 209, 4867, 209, 209, 4136, 478, 209, 209, 4140, 4783, 209, 4160, 209, 4145, 472, 137, 1727, 163, 11, 281, 158, 429, 4138, 4139, 478, 434, 163, 163, 4160, 56, 172, 4163, 270, 82, 474, 8, 460, 1748, 11, 475, 361, 475, 475, 5310, 475, 330, 475, 474, 423, 475, 478, 4183, 4184, 478, 474, 5084, 361, 158, 91, 475, 475, 35, 4104, 90, 405, 395, 4108, 40, 418, 4201, 2549, 418, 199, 53, 47, 215, 386, 146, 474, 372, 167, 405, 5062, 4215, 348, 4855, 395, 343, 4862, 343, 475, 395, 395, 1804, 395, 323, 4205, 4867, 474, 72, 395, 437, 475, 475, 53, 4214, 386, 1818, 141, 148, 424, 158, 72, 105, 146, 475, 405, 209, 209, 1830, 153, 209, 149, 209, 213, 158, 4744, 194, 474, 395, 163, 1842, 4264, 318, 474, 269, 169, 458, 475, 172, 461, 462, 463, 176, 465, 466, 467, 468, 469, 470, 478, 4769, 35, 458, 4286, 441, 478, 184, 289, 78, 465, 466, 467, 468, 469, 470, 139, 386, 405, 4301, 395, 478, 205, 475, 353, 1886, 1887, 473, 5158, 478, 474, 169, 474, 105, 163, 209, 163, 316, 53, 435, 212, 435, 225, 220, 5019, 279, 475, 475, 474, 4331, 475, 281, 212, 475, 4749, 478, 474, 385, 475, 182, 53, 474, 276, 474, 187, 4347, 4990, 176, 264, 405, 463, 4353, 395, 163, 72, 437, 188, 254, 193, 181, 4362, 259, 53, 266, 259, 386, 269, 463, 478, 478, 395, 66, 275, 8, 4789, 4377, 11, 395, 395, 146, 474, 224, 6, 475, 209, 165, 163, 112, 4390, 286, 4392, 35, 418, 187, 264, 418, 625, 35, 5016, 474, 353, 254, 631, 4389, 2753, 40, 160, 158, 353, 4607, 264, 53, 47, 4557, 35, 644, 163, 269, 158, 207, 4422, 474, 437, 437, 5064, 196, 272, 330, 271, 163, 327, 316, 329, 423, 331, 474, 474, 72, 369, 475, 475, 2022, 212, 340, 289, 474, 474, 436, 2797, 127, 474, 348, 4596, 475, 84, 4606, 269, 317, 35, 356, 4462, 146, 395, 4607, 475, 2814, 395, 119, 158, 4471, 35, 368, 474, 259, 474, 180, 474, 236, 474, 376, 383, 2830, 191, 474, 353, 146, 4488, 4489, 474, 474, 4492, 474, 474, 105, 4982, 475, 132, 2846, 35, 4650, 475, 433, 340, 340, 139, 4507, 405, 410, 4510, 273, 367, 367, 4514, 53, 53, 475, 2865, 4519, 361, 35, 4522, 4523, 75, 4525, 180, 4527, 474, 4529, 4530, 478, 474, 434, 423, 436, 437, 432, 474, 418, 386, 4536, 158, 4543, 5392, 4545, 474, 386, 474, 182, 252, 2898, 474, 5, 187, 2902, 4556, 4557, 4558, 4559, 4560, 269, 386, 4976, 475, 152, 441, 5205, 190, 474, 474, 472, 145, 66, 475, 476, 477, 199, 200, 66, 4993, 272, 127, 423, 4997, 207, 4999, 209, 210, 316, 422, 224, 474, 474, 478, 35, 356, 4507, 163, 437, 437, 223, 314, 386, 4514, 5453, 4606, 4607, 259, 4519, 132, 193, 4522, 269, 269, 474, 353, 458, 35, 35, 272, 5469, 188, 272, 465, 466, 467, 468, 469, 470, 434, 165, 165, 4543, 53, 339, 395, 117, 271, 416, 474, 5, 339, 22, 2223, 474, 4556, 478, 353, 28, 4650, 142, 474, 4653, 475, 276, 475, 475, 2237, 324, 474, 6, 41, 21, 474, 4665, 478, 474, 4668, 478, 32, 5157, 5310, 4673, 259, 4675, 474, 8, 145, 163, 11, 4718, 4682, 277, 15, 16, 17, 75, 367, 395, 367, 70, 339, 4677, 437, 437, 165, 165, 2277, 4699, 474, 32, 829, 4703, 1331, 1594, 2507, 2854, 911, 40, 912, 2391, 3032, 2313, 3697, 5205, 47, 4717, 4718, 4719, 3723, 5383, 5201, 3244, 866, 3828, 8, 2416, 361, 11, 4880, 5062, 4716, 15, 16, 17, 5310, 3875, 4703, 4333, 2949, 72, 4672, 122, 4744, 124, 5182, 4747, 2643, 4749, 32, 5297, 131, 4789, 5092, 134, 5091, 5224, 40, 5334, 4556, 2953, 3908, 3924, 5026, 47, 3866, 3718, 3295, 4769, 2492, 2492, 3058, 3891, 4371, 4775, 4679, 2486, 3307, 4779, 159, 4688, 908, 4783, 5469, 5312, 5453, 4665, 3253, 4789, 72, 5277, 3248, 5237, 4841, 4609, 1756, 5035, 4798, 4612, 28, 1176, 3979, 4809, 1187, 5400, 1802, 2162, 3931, 4719, 2927, 1811, 4955, 1870, 193, 695, 1961, 1961, 3185, 3747, 1962, 4821, 988, 4823, 3299, 458, 3766, 5264, 5441, 808, 1417, 2097, 465, 466, 467, 468, 469, 470, 4140, 1905, 2105, 4539, 5175, 3616, 2106, 190, 661, 1353, 4848, 1308, 2869, 182, 2884, 2142, 199, 2116, 187, 3581, 4858, 4859, 4860, 4861, 207, 5167, 1378, 210, 5001, 1377, 4126, 4779, 3566, 2141, 1380, 252, 5016, 254, 4093, 3563, 209, 210, 5366, 5367, 4780, 4979, 4110, 264, 4978, 3617, 3563, 5447, 1385, 5281, 5370, 224, 273, 1835, 4896, 5157, 3516, 4747, 182, 2480, 4533, 35, 5170, 187, 285, 5171, 2724, 2814, 2444, 2812, -1, -1, 2055, -1, -1, 4917, 2058, -1, 4920, -1, 54, -1, -1, -1, 257, 209, 210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, 224, 274, 323, -1, 4930, 326, 327, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 104, 105, -1, 257, 4976, 356, -1, 4979, 112, -1, 4982, 3330, -1, -1, 4986, -1, -1, 271, -1, 613, 274, 4993, -1, -1, -1, 4997, -1, 4999, -1, 5001, -1, 625, -1, -1, 3353, -1, 5008, 631, 4920, -1, -1, -1, 5014, -1, 5016, -1, -1, -1, -1, 5005, 644, -1, -1, -1, -1, 5027, -1, -1, 361, -1, -1, -1, -1, 167, -1, -1, 660, -1, -1, 5190, 421, 665, -1, -1, -1, -1, -1, 671, -1, -1, -1, 675, 676, -1, -1, -1, 190, -1, 682, -1, 684, 685, -1, -1, -1, -1, -1, 4979, -1, -1, 5072, 5073, -1, 697, 698, -1, -1, 361, -1, -1, -1, -1, -1, -1, 708, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5008, -1, -1, 2680, -1, 5103, -1, -1, 238, -1, -1, 241, 5110, -1, -1, -1, 5114, -1, 5265, 5266, 2697, -1, 252, -1, 254, 5123, -1, -1, -1, 458, -1, -1, 461, 462, 463, 2712, 465, 466, 467, 468, 469, 470, -1, -1, -1, -1, -1, -1, -1, 478, 5148, 5149, 5150, -1, 284, -1, 5154, -1, -1, 5157, -1, -1, -1, -1, -1, -1, -1, 787, 788, 5167, -1, -1, 5170, 793, -1, -1, -1, 5175, 458, -1, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, -1, 5190, -1, -1, 475, -1, -1, 328, 819, -1, -1, 3547, -1, -1, -1, -1, -1, -1, 5207, -1, -1, -1, -1, -1, 5123, 5214, -1, 3563, -1, 350, 3566, 3, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, 370, 5239, 372, -1, -1, 375, 5244, -1, -1, -1, -1, 32, 5250, -1, 35, -1, 5238, -1, -1, 40, -1, 5259, -1, -1, -1, -1, 47, 5265, 5266, 5267, 613, -1, -1, -1, -1, 5264, -1, -1, -1, 5277, -1, -1, 5264, 5281, 5264, -1, -1, 5264, -1, -1, -1, 72, -1, 5264, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5302, -1, -1, -1, 5342, -1, -1, -1, -1, -1, 934, 935, 936, -1, -1, -1, -1, -1, 665, 943, 5471, 5472, -1, -1, -1, -1, 950, -1, 675, -1, 954, -1, 5334, 5335, 5336, 682, 960, 5339, 685, 963, 474, -1, -1, -1, -1, -1, -1, 5259, -1, 5342, -1, 975, -1, -1, -1, -1, 5342, -1, 5342, -1, -1, 5342, -1, 1592, 5366, 5367, 990, 5342, -1, -1, -1, -1, -1, -1, -1, -1, 5378, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, 2976, -1, 182, -1, -1, -1, -1, 187, -1, -1, -1, -1, -1, -1, 5411, -1, 1035, 1036, -1, 2995, -1, -1, -1, -1, 5421, -1, -1, 5334, -1, 209, 210, -1, 5339, -1, -1, -1, -1, -1, 5435, -1, -1, 5438, -1, -1, 224, -1, -1, -1, -1, -1, 5447, -1, -1, 5441, 5451, -1, 1075, -1, -1, -1, 5441, -1, 5441, -1, -1, 5441, -1, -1, -1, -1, -1, 5441, -1, -1, 5471, 5472, -1, 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, 1112, 274, -1, -1, -1, 22, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, 1130, -1, -1, -1, 3091, -1, 3093, -1, -1, 1139, -1, -1, -1, -1, -1, -1, -1, 1147, -1, -1, 5438, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1767, -1, -1, 70, -1, -1, -1, 3894, 1775, 8, -1, -1, 11, 1175, -1, -1, 15, 16, 17, -1, 1787, -1, 1184, -1, 1186, -1, -1, -1, -1, -1, -1, -1, -1, 32, -1, -1, 3923, -1, 361, 1201, -1, 40, 1204, -1, -1, -1, -1, -1, 47, -1, -1, 25, -1, 120, 1216, -1, -1, 124, 943, -1, -1, -1, -1, 3182, 131, -1, -1, 134, -1, 954, -1, -1, -1, 72, -1, 960, -1, -1, 963, -1, -1, -1, -1, -1, 1246, -1, -1, -1, -1, -1, -1, -1, 159, -1, -1, -1, 1863, -1, -1, -1, 74, -1, 3221, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1274, 1275, 1276, -1, 1278, -1, -1, -1, -1, -1, -1, 1890, -1, -1, 193, -1, -1, -1, -1, -1, 106, -1, -1, 458, 1298, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, -1, -1, 1035, 1036, -1, -1, -1, 129, -1, -1, -1, -1, 1322, -1, -1, -1, -1, -1, 140, -1, 1330, 1331, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 182, -1, 252, 160, 254, 187, -1, -1, 165, -1, -1, -1, -1, -1, 264, -1, -1, -1, -1, -1, -1, 3323, -1, 273, -1, 1370, -1, 209, 210, 1374, 1375, -1, -1, -1, 4104, 285, -1, -1, 4108, -1, -1, -1, 224, -1, 1389, -1, -1, -1, 1393, -1, -1, -1, -1, 3355, 1399, -1, -1, -1, -1, 216, -1, -1, -1, -1, -1, -1, -1, -1, 4138, 4139, -1, -1, -1, 323, -1, 257, 326, 327, -1, -1, 237, -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, -1, 274, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, 22, -1, 356, -1, -1, -1, 28, -1, -1, 1458, -1, -1, -1, 32, -1, -1, -1, -1, -1, 41, -1, 40, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 304, 305, -1, -1, 308, 70, -1, 1499, 3457, -1, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 421, -1, -1, -1, -1, 3478, 334, -1, 361, 337, -1, -1, -1, -1, -1, 343, 1532, -1, -1, -1, -1, -1, 350, -1, -1, -1, -1, -1, -1, 2150, 3503, 120, 20, -1, -1, 124, -1, 25, -1, -1, -1, -1, 131, -1, -1, 134, -1, 2168, -1, -1, 378, -1, -1, 2174, -1, 383, -1, 2178, 386, -1, -1, -1, -1, -1, 3537, -1, -1, -1, -1, -1, 159, -1, 60, -1, -1, -1, 1592, 405, -1, -1, -1, -1, -1, 2204, -1, 73, -1, -1, -1, -1, -1, 1607, 1608, 1609, -1, -1, 182, -1, -1, -1, 88, 187, 430, -1, 193, 458, -1, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, -1, -1, -1, -1, 475, 209, 210, -1, -1, -1, -1, 2250, -1, -1, -1, -1, -1, -1, -1, -1, 224, -1, -1, 129, -1, -1, -1, -1, -1, 2268, 4389, -1, -1, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 252, -1, 254, -1, -1, -1, -1, -1, 257, 160, -1, -1, 264, -1, 165, -1, -1, 2301, -1, -1, -1, 273, 271, -1, -1, 274, 721, -1, 723, -1, 725, 1710, -1, 285, -1, -1, 731, 732, 733, -1, -1, -1, -1, 2327, -1, -1, -1, -1, 1727, -1, 2334, -1, -1, -1, -1, -1, 2340, 1736, -1, -1, -1, -1, -1, 2347, 1743, -1, -1, 2351, -1, 1748, -1, 323, 2356, -1, 326, 327, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 237, -1, 1767, -1, -1, -1, 2376, -1, -1, -1, 1775, 2381, -1, -1, -1, 2385, -1, -1, 356, -1, -1, -1, 1787, -1, 4514, -1, 361, -1, 2398, 4519, -1, -1, 4522, -1, 271, -1, -1, -1, -1, 1804, -1, 2411, -1, -1, -1, -1, 1811, -1, -1, 1814, -1, 2421, -1, 1818, -1, -1, -1, -1, -1, 1824, -1, -1, -1, -1, -1, 1830, -1, 304, 305, -1, -1, -1, -1, -1, -1, -1, -1, 1842, 17, -1, -1, -1, -1, 421, -1, -1, -1, 26, -1, -1, -1, -1, -1, 874, 1859, 1860, -1, 1862, 1863, -1, 337, -1, -1, -1, -1, -1, 343, -1, -1, 1874, -1, 1876, 1877, 350, -1, -1, 353, -1, -1, -1, -1, 1886, 1887, 458, 1889, 1890, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, -1, -1, 473, -1, 1905, -1, -1, -1, -1, -1, 383, -1, -1, -1, -1, -1, -1, 390, -1, -1, -1, -1, -1, 3881, -1, 398, -1, -1, -1, -1, -1, -1, 405, -1, -1, -1, 1937, -1, -1, 1940, 1941, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4677, -1, -1, -1, -1, -1, 430, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1973, -1, 1975, -1, -1, -1, -1, 1980, 1981, -1, -1, -1, -1, -1, 1987, 1988, 1989, -1, 4716, -1, 1993, -1, 1995, 1996, 1997, 1998, 1999, 2000, -1, 2002, -1, 2004, 2005, -1, -1, 2008, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2022, 2023, 2024, 2025, 2026, 2027, -1, -1, -1, 2031, -1, -1, -1, 2035, -1, -1, 2038, -1, -1, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, -1, 2051, -1, -1, 4779, -1, -1, -1, 2058, 2664, 2060, -1, -1, -1, 4789, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2682, -1, -1, -1, -1, -1, -1, -1, 2690, -1, 35, 1811, -1, -1, 1814, -1, -1, -1, -1, 8, -1, -1, 11, 2100, -1, -1, 15, 16, 17, -1, -1, 56, 4066, -1, -1, -1, -1, -1, -1, 2116, -1, -1, -1, 32, -1, -1, -1, -1, 2125, 2126, -1, 40, -1, -1, 1147, -1, -1, -1, 47, 1859, 1860, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, 2150, 1874, -1, -1, 1877, -1, -1, 2157, -1, -1, 72, 2161, 2162, -1, -1, -1, -1, -1, 2168, -1, -1, -1, -1, 2173, 2174, -1, -1, -1, 2178, -1, -1, -1, -1, -1, -1, -1, 2186, -1, -1, -1, -1, -1, -1, -1, -1, 4920, -1, -1, -1, -1, -1, 149, -1, -1, 2204, 4930, -1, 2207, -1, -1, -1, -1, -1, -1, 1937, -1, -1, 1940, 1941, 2219, -1, -1, -1, 2223, 4181, -1, 2226, -1, -1, 2229, 2230, -1, -1, -1, -1, -1, 184, 2237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4220, -1, -1, -1, 215, 2268, 2269, 182, -1, 220, -1, -1, 187, -1, 2277, -1, -1, 5005, -1, 22, -1, 4241, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, 209, 210, -1, 2300, 2301, -1, -1, 2304, -1, 254, -1, -1, 1325, -1, -1, 224, -1, 1330, 1331, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2327, -1, 2329, 70, -1, -1, -1, 2334, -1, -1, -1, 286, -1, 2340, -1, -1, -1, -1, 257, -1, 2347, -1, 4306, -1, 2351, -1, -1, -1, -1, 2356, -1, -1, 271, -1, -1, 274, -1, 2969, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2376, -1, -1, 327, -1, 2381, -1, 331, 124, 2385, -1, -1, 2388, -1, -1, 131, 340, -1, 134, -1, -1, -1, 2398, -1, 348, -1, -1, -1, -1, -1, 22, -1, 356, -1, -1, 2411, 28, -1, -1, -1, -1, -1, -1, 159, 368, 2421, 1438, -1, -1, -1, -1, -1, 376, -1, -1, -1, 1448, 607, -1, -1, -1, -1, 2438, 2439, 2440, -1, -1, -1, 2444, -1, -1, -1, -1, 361, 398, -1, -1, 193, 70, -1, -1, -1, -1, -1, -1, -1, -1, 4420, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1490, 1491, 3081, -1, -1, 2479, 2480, -1, -1, -1, 432, -1, 660, 661, 436, 2489, -1, -1, -1, -1, -1, -1, 2219, -1, -1, -1, -1, -1, -1, 2226, -1, -1, 2229, 2230, 124, 4466, -1, -1, 252, 5238, 254, 131, -1, 1533, 134, -1, 1536, 1537, -1, 2523, 264, -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, 5264, -1, -1, -1, 159, -1, 285, 458, -1, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, -1, -1, -1, 2562, 475, -1, -1, -1, 2567, -1, -1, -1, -1, -1, -1, -1, -1, 2576, 193, -1, -1, -1, 755, -1, 323, -1, -1, 326, 327, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3202, -1, -1, -1, -1, -1, -1, -1, -1, -1, 781, -1, -1, -1, -1, -1, -1, -1, 789, 356, 5342, 792, 793, 794, -1, 2622, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 252, -1, 254, -1, -1, -1, -1, -1, -1, -1, -1, -1, 264, -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, 2664, -1, -1, -1, -1, 285, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2680, 421, 2682, -1, -1, -1, -1, -1, -1, 22, 2690, -1, -1, -1, 2694, 28, -1, 2697, -1, -1, 2700, 1717, -1, 2703, -1, -1, 2706, 323, 41, -1, 326, 327, 2712, -1, -1, -1, 5441, -1, -1, -1, -1, -1, -1, 2723, -1, -1, -1, -1, 2728, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, 356, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2751, 2752, 2753, -1, -1, 2756, -1, -1, -1, -1, -1, -1, -1, 2764, 2765, 2766, 2767, -1, -1, -1, -1, 2772, -1, -1, -1, -1, 2777, 2778, -1, 2780, -1, 2782, -1, -1, -1, 3391, -1, 4745, 122, -1, 124, -1, 2793, 2794, -1, -1, 2797, 131, -1, -1, 134, -1, -1, 3409, 421, -1, -1, -1, -1, -1, 2811, 1828, 2813, -1, 2815, -1, -1, -1, -1, -1, -1, 1838, -1, 1840, -1, 159, -1, 4785, 3434, 1846, 8, -1, -1, 11, 2835, -1, 1853, 15, 16, 17, -1, -1, -1, -1, -1, 2846, -1, -1, -1, 8, -1, -1, 11, 2854, 32, -1, 15, 16, 17, 193, -1, -1, 40, -1, -1, -1, -1, -1, 2869, 47, -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, 4838, 40, -1, 2884, -1, 4843, 4844, -1, 47, -1, -1, -1, -1, -1, 72, -1, -1, 2898, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, -1, -1, 2917, -1, 252, 2920, 254, 2922, -1, -1, -1, -1, 2927, -1, -1, -1, 264, -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, 2942, 2943, -1, -1, -1, -1, 2948, -1, -1, -1, 285, -1, -1, -1, 1130, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1983, 1984, 2969, -1, 2694, 2972, 1147, 1990, 1991, 2976, 2700, -1, -1, 2703, -1, -1, 2706, -1, -1, -1, -1, -1, 8, 323, -1, 11, 326, 327, 2995, 15, 16, 17, 4956, -1, -1, 2018, -1, -1, 182, -1, 1181, -1, -1, 187, -1, -1, 32, -1, -1, -1, -1, -1, -1, 3020, 40, -1, 356, 182, -1, -1, -1, 47, 187, 1204, -1, 209, 210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 224, -1, -1, -1, 209, 210, 72, -1, -1, -1, 3057, 3058, 3059, -1, -1, 3667, -1, -1, -1, 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, 3081, -1, -1, -1, -1, -1, -1, 421, -1, -1, 3091, -1, 3093, 271, -1, -1, 274, -1, 257, -1, 3101, -1, -1, -1, -1, 1280, -1, -1, 2125, 2126, -1, -1, 271, -1, 1289, 274, -1, -1, -1, 3120, -1, -1, 2846, -1, -1, -1, -1, -1, 1303, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1322, -1, -1, 1325, 1326, -1, -1, -1, 1330, 1331, -1, -1, -1, -1, -1, 182, -1, -1, -1, -1, 187, -1, 2186, -1, -1, -1, -1, 2898, -1, 3782, -1, -1, 3785, -1, 3182, -1, 361, -1, -1, -1, -1, -1, 209, 210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3202, 361, 5161, 224, -1, 3207, -1, -1, -1, -1, -1, 3213, -1, -1, -1, -1, -1, -1, -1, 3221, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, -1, -1, -1, -1, -1, -1, -1, 3246, -1, -1, -1, -1, -1, 271, 3253, 3254, 274, -1, -1, -1, -1, 3260, -1, 3262, -1, 2280, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3275, -1, 3277, -1, -1, -1, 458, 3887, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, -1, -1, -1, -1, 475, 3299, 458, 3906, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, -1, -1, -1, -1, 475, -1, -1, -1, -1, -1, 3323, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3340, 3341, 361, -1, -1, 1052, 2362, -1, -1, -1, -1, -1, -1, -1, 2370, 3355, 8, 2373, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, 1080, 3979, -1, 1550, -1, -1, -1, 32, -1, 1556, -1, -1, -1, -1, -1, 40, -1, -1, 3391, -1, 1100, -1, 47, -1, -1, -1, -1, -1, -1, -1, 1110, -1, -1, -1, 1114, -1, 3409, -1, 1118, -1, 1120, -1, -1, -1, -1, -1, 1126, 72, -1, -1, -1, -1, 1132, -1, -1, 1135, -1, -1, 3431, -1, -1, 3434, -1, -1, -1, -1, 458, -1, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, -1, -1, 3454, -1, 475, 3457, -1, -1, -1, -1, -1, 3463, -1, -1, -1, -1, -1, 3469, -1, 3471, -1, -1, 3474, -1, -1, -1, 3478, 3479, 3480, 3481, 3482, -1, -1, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, -1, -1, -1, 3498, 3499, -1, -1, -1, 3503, -1, -1, -1, -1, 3508, -1, -1, -1, 3512, -1, 3514, -1, 3516, -1, -1, -1, -1, -1, -1, -1, 3524, -1, -1, 3527, -1, 3529, 182, -1, -1, -1, -1, 187, -1, 3537, 3538, -1, -1, 3541, 3542, -1, -1, -1, 3546, 3547, -1, -1, -1, -1, -1, 3553, -1, -1, -1, 209, 210, -1, -1, -1, -1, 3563, -1, -1, 3566, -1, -1, -1, -1, -1, 224, 2589, 2590, -1, -1, -1, 3578, 2595, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1770, -1, -1, -1, 1774, -1, 3602, -1, -1, 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3618, 271, -1, -1, 274, -1, 3624, -1, -1, -1, -1, -1, -1, 4236, -1, -1, -1, -1, 3636, -1, -1, -1, 2656, -1, -1, 4248, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, 3667, -1, -1, -1, -1, 8, -1, -1, 11, 32, -1, -1, 15, 16, 17, -1, -1, 40, -1, -1, -1, -1, -1, -1, 47, 22, -1, -1, -1, 32, -1, 28, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, 361, -1, 47, -1, -1, -1, -1, 72, -1, 3718, -1, -1, -1, -1, 3723, 3724, 3725, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, 72, -1, 11, -1, 70, -1, 15, 16, 17, -1, -1, 3747, 3748, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, 3766, 40, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, 3782, -1, -1, 3785, -1, -1, -1, -1, -1, -1, -1, -1, 124, -1, -1, -1, -1, 72, -1, 131, -1, -1, 134, -1, 458, -1, -1, 461, 462, 463, 1986, 465, 466, 467, 468, 469, 470, -1, -1, -1, -1, 475, -1, -1, 182, -1, -1, 159, -1, 187, -1, -1, -1, -1, 2852, -1, 2854, 4444, 3563, -1, -1, 3566, -1, -1, 182, -1, -1, -1, -1, 187, 3852, 209, 210, -1, -1, -1, -1, -1, 2876, 2877, -1, 193, -1, -1, -1, -1, 224, -1, -1, -1, -1, 209, 210, -1, -1, 3877, 3878, -1, -1, 3881, -1, -1, -1, -1, -1, 3887, 224, -1, -1, -1, -1, -1, 3894, -1, -1, -1, -1, -1, -1, 257, -1, 2077, -1, 22, 3906, -1, -1, 182, -1, 28, -1, 3636, 187, 271, -1, -1, 274, -1, -1, 257, 252, -1, 254, -1, -1, -1, -1, -1, -1, 3931, 3932, 3933, 264, 271, 209, 210, 274, -1, -1, -1, -1, 273, -1, 4550, -1, 4552, -1, -1, -1, 224, -1, 70, -1, 285, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3979, -1, -1, -1, 22, 257, -1, -1, -1, -1, 28, -1, -1, -1, 323, -1, -1, 326, 327, 271, -1, -1, 274, 4002, -1, -1, 361, -1, 124, -1, -1, -1, -1, 2186, 4013, 131, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, 361, 356, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 159, 4043, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4053, 4054, -1, 4056, -1, -1, -1, 4060, 4061, -1, -1, -1, 4065, 4066, -1, -1, -1, 4070, -1, -1, 4073, 4074, -1, 193, -1, 4078, -1, -1, -1, -1, 2257, 4084, 124, -1, -1, 361, -1, -1, 421, 131, -1, -1, 134, 4096, -1, -1, -1, -1, -1, 458, -1, 4104, 461, 462, 463, 4108, 465, 466, 467, 468, 469, 470, -1, -1, -1, -1, 475, 159, -1, 458, -1, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 252, 4136, 254, -1, 475, -1, -1, -1, -1, -1, -1, -1, 264, -1, -1, -1, -1, -1, -1, 193, -1, 273, -1, 1865, -1, -1, -1, 2336, 4163, -1, -1, 1873, -1, 285, -1, -1, 3894, -1, -1, -1, -1, -1, -1, -1, 2353, -1, 4181, -1, -1, -1, 458, 1893, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 4198, -1, -1, -1, 475, 4203, -1, -1, 323, -1, -1, 326, 327, -1, -1, 252, -1, 254, -1, -1, -1, -1, 4220, -1, -1, -1, -1, 264, -1, -1, -1, -1, 3246, -1, -1, -1, 273, -1, 4236, -1, 3254, 356, 2414, 4241, -1, -1, -1, -1, 285, -1, 4248, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3278, -1, 4264, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2448, 4275, -1, 2451, -1, 2453, -1, -1, -1, 2457, 323, 2459, 2460, 326, 327, -1, -1, -1, -1, -1, 2468, 2469, 2470, -1, -1, -1, 8, -1, -1, 11, 421, -1, 4306, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, 356, -1, -1, -1, -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, 4331, 40, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, 3360, -1, -1, 4347, -1, -1, -1, -1, 2526, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, 4370, -1, -1, -1, -1, -1, -1, 4377, -1, -1, -1, 4104, 421, -1, 2558, 4108, -1, -1, 2095, -1, -1, 22, -1, 2567, -1, -1, -1, 28, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, 22, -1, -1, -1, -1, -1, 28, -1, -1, 4418, -1, 4420, -1, -1, 32, -1, 3441, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, 47, 70, -1, -1, -1, -1, 4444, -1, -1, -1, 2622, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, 4462, 72, -1, -1, 4466, -1, -1, -1, -1, 4471, -1, -1, 182, -1, -1, -1, -1, 187, -1, -1, -1, -1, -1, -1, -1, -1, 4488, 4489, -1, -1, 4492, 124, -1, -1, -1, -1, -1, -1, 131, 209, 210, 134, -1, -1, -1, 4507, -1, -1, -1, 124, -1, -1, 4514, -1, 224, -1, 131, 4519, -1, 134, 4522, 4523, -1, -1, -1, -1, 159, 4529, 4530, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4543, -1, 4545, 159, -1, -1, 257, 4550, -1, 4552, -1, -1, -1, 4556, -1, -1, -1, -1, -1, 193, 271, -1, -1, 274, -1, -1, -1, -1, 5176, -1, 182, -1, -1, -1, -1, 187, -1, 193, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4596, 4597, -1, -1, 209, 210, -1, -1, -1, -1, 4606, -1, -1, -1, -1, -1, -1, -1, -1, 224, -1, -1, -1, -1, -1, 252, -1, 254, 4347, -1, -1, -1, -1, -1, -1, -1, -1, 264, -1, -1, -1, -1, -1, 252, -1, 254, 273, -1, 4644, -1, -1, -1, 257, -1, 4650, 264, -1, 361, 285, -1, -1, -1, -1, -1, 273, -1, 271, -1, -1, 274, -1, -1, -1, -1, -1, -1, 285, -1, -1, -1, -1, -1, -1, -1, 2854, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, -1, -1, 326, 327, -1, -1, -1, 56, -1, -1, -1, -1, -1, 4706, -1, 3724, -1, -1, -1, -1, 326, 327, -1, -1, -1, -1, 4719, -1, 4721, -1, -1, -1, 356, -1, -1, -1, -1, -1, -1, 3748, -1, 90, -1, -1, -1, -1, 3755, -1, -1, -1, 356, 4744, 4745, -1, 4747, 56, 4749, 458, -1, 361, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, -1, 120, -1, -1, 475, -1, 4769, -1, -1, -1, -1, -1, 4775, -1, -1, -1, 4779, -1, -1, 90, -1, 4507, 4785, -1, -1, -1, 4789, 421, 4514, -1, 149, -1, -1, 4519, -1, 2972, 4522, 4523, -1, -1, -1, -1, -1, 56, -1, 421, -1, -1, -1, 120, -1, -1, -1, 3832, 3833, -1, -1, 4543, -1, -1, -1, -1, -1, -1, -1, 184, -1, 4830, -1, -1, 4556, -1, -1, -1, -1, 4838, -1, 90, 149, -1, 4843, 4844, -1, -1, -1, 4848, 458, -1, -1, 461, 462, 463, 4855, 465, 466, 467, 468, 469, 470, -1, -1, 220, 2572, 475, 4867, -1, -1, 120, -1, 2579, -1, -1, -1, 184, -1, -1, -1, -1, -1, -1, 4606, -1, -1, -1, -1, -1, 3063, -1, -1, 2599, -1, -1, -1, 4896, -1, 254, 149, -1, -1, 2609, -1, -1, 2612, -1, 2614, 2615, 201, -1, 2618, 220, -1, -1, -1, -1, 2624, -1, 2626, 4920, 213, 2629, -1, -1, -1, -1, 4650, -1, 285, 286, -1, 224, -1, 184, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3118, -1, 254, -1, -1, -1, -1, -1, -1, -1, -1, 4955, 4956, -1, -1, -1, 3976, -1, -1, -1, -1, -1, -1, 323, -1, -1, 220, 327, -1, -1, -1, 331, 4976, 285, 286, 4979, -1, -1, 4982, -1, 340, 2692, -1, -1, -1, -1, -1, -1, 348, 4993, -1, -1, 4719, 4997, -1, 4999, 356, 5001, -1, -1, 254, -1, -1, -1, 5008, -1, 3184, -1, 368, -1, -1, 323, -1, -1, -1, 327, 376, -1, -1, 331, -1, -1, -1, 5027, -1, -1, -1, -1, 340, -1, -1, 285, 286, -1, -1, -1, 348, -1, -1, -1, -1, -1, 8, -1, 356, 11, -1, -1, 3226, 15, 16, 17, 4779, -1, -1, -1, 368, -1, 5062, -1, 5064, -1, 3240, -1, 376, -1, 32, -1, 3246, 323, -1, -1, 432, 327, 40, -1, 3254, 331, -1, -1, -1, 47, 3260, -1, 3262, -1, 340, -1, -1, -1, -1, -1, -1, -1, 348, -1, -1, -1, -1, -1, -1, -1, 356, -1, -1, -1, 72, -1, -1, -1, 5114, -1, -1, -1, 368, -1, -1, -1, -1, 5123, 432, -1, 376, -1, -1, -1, -1, -1, -1, -1, 3308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5148, 5149, 5150, -1, -1, -1, -1, -1, -1, 5157, 5158, -1, -1, 5161, -1, -1, -1, 3339, 3340, 5167, -1, -1, -1, 8, -1, 4896, -1, -1, 5176, 14, 15, -1, -1, -1, 432, 20, -1, 22, -1, -1, -1, 4205, 5190, 28, -1, 30, 4210, -1, -1, 4920, 4214, -1, -1, -1, -1, -1, -1, 5205, -1, -1, -1, -1, -1, -1, 49, 50, -1, -1, -1, -1, -1, -1, 182, -1, -1, 4239, 4240, 187, -1, -1, 4244, 4245, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5244, -1, -1, 209, 210, -1, 5250, 2958, -1, -1, -1, -1, 4979, -1, -1, 5259, -1, -1, 224, -1, -1, 5265, 5266, 5267, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5277, -1, -1, -1, -1, -1, -1, -1, 5008, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, 5310, -1, 274, 605, -1, -1, -1, -1, -1, 611, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5334, 3042, -1, 3044, -1, 5339, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3523, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 197, -1, -1, -1, -1, -1, 5366, 5367, 205, -1, -1, 208, -1, -1, 211, 212, -1, 214, 5378, 216, -1, -1, 219, -1, 221, -1, -1, -1, -1, -1, -1, -1, 5392, -1, -1, -1, -1, -1, -1, 361, 5123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5411, -1, -1, -1, -1, -1, 8, -1, -1, 11, 5421, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5438, -1, -1, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, 5451, -1, 5453, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5190, -1, 5469, -1, 5471, 5472, 765, 3181, -1, -1, -1, -1, -1, 3187, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 458, -1, 790, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, -1, -1, -1, -1, 475, -1, -1, -1, 809, -1, -1, 8, 5244, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, 5259, -1, -1, 831, -1, -1, 5265, 5266, 32, -1, -1, -1, -1, -1, 3724, -1, 40, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3748, -1, -1, -1, -1, -1, 4596, -1, 3756, 875, 72, 3759, -1, 3761, -1, -1, -1, 182, -1, -1, -1, -1, 187, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, 5334, -1, -1, -1, -1, 5339, -1, 209, 210, -1, -1, -1, 32, -1, -1, -1, -1, -1, 3803, -1, 40, -1, 224, -1, -1, -1, -1, 47, -1, -1, -1, 3816, -1, -1, -1, 3820, 3821, -1, 3823, -1, -1, -1, -1, 3828, -1, -1, -1, -1, -1, -1, -1, -1, 72, -1, -1, 257, -1, -1, -1, -1, -1, 3379, -1, 3381, -1, 3383, -1, -1, -1, 271, -1, -1, 274, -1, 3392, -1, -1, -1, -1, -1, -1, -1, -1, 182, -1, -1, -1, -1, 187, -1, -1, -1, -1, -1, -1, -1, -1, 1000, -1, -1, -1, -1, -1, -1, 5438, -1, -1, -1, -1, -1, 209, 210, -1, -1, -1, 3433, -1, 5451, -1, -1, -1, -1, -1, -1, -1, 224, 1029, 1030, 1031, -1, -1, -1, -1, -1, -1, -1, -1, 5471, 5472, -1, -1, -1, 3927, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, 361, -1, -1, 182, -1, -1, -1, 614, 187, -1, -1, -1, -1, 271, -1, 622, 274, -1, -1, -1, -1, -1, 629, 630, -1, -1, 633, -1, 635, 636, 209, 210, -1, 640, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 651, 224, -1, -1, 3992, 3993, 3994, -1, 3996, 3997, 3998, 3999, 4000, -1, -1, 666, -1, -1, -1, -1, -1, -1, -1, 4853, 4854, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, -1, -1, 4867, -1, -1, 691, -1, 693, -1, -1, -1, -1, -1, 271, -1, -1, 274, 703, 458, -1, -1, 461, 462, 463, 361, 465, 466, 467, 468, 469, 470, -1, -1, 1174, -1, 475, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 735, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1200, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 766, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4125, 361, 4127, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 458, -1, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 820, -1, -1, -1, 475, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 854, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5054, -1, -1, -1, -1, -1, 1336, -1, -1, -1, -1, 458, -1, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, -1, -1, -1, -1, 475, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 926, -1, -1, -1, 8, 1386, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, 947, -1, -1, -1, -1, -1, -1, 32, -1, -1, -1, -1, 959, -1, -1, 40, -1, 964, -1, -1, 4304, 4305, 47, -1, -1, -1, -1, 974, -1, -1, -1, 4315, 979, 4317, 4318, -1, -1, 4321, -1, -1, 987, -1, -1, -1, -1, -1, 993, 72, -1, 996, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1464, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1474, -1, -1, 5201, 8, 5203, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, 1037, -1, -1, -1, -1, -1, -1, -1, -1, 4383, 32, -1, -1, 1505, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1528, -1, -1, 1531, -1, -1, -1, 4417, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, 3964, -1, -1, -1, 3968, -1, -1, -1, -1, -1, 182, -1, -1, -1, -1, 187, -1, -1, -1, 4450, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1582, -1, -1, -1, 209, 210, -1, -1, -1, -1, -1, -1, -1, -1, 1596, -1, -1, -1, -1, 224, -1, -1, -1, -1, -1, 1152, -1, 1154, -1, 1156, -1, 1158, -1, 1160, 1161, 1162, -1, -1, -1, -1, 1167, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1178, 257, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, -1, 274, 182, 18, -1, -1, -1, 187, -1, 5383, -1, -1, -1, 28, -1, 30, 31, -1, 5392, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 209, 210, 46, -1, -1, -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, 224, -1, -1, -1, -1, -1, -1, -1, 67, -1, 69, 70, -1, 1707, -1, -1, -1, 76, -1, 78, 4596, -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, -1, 91, 257, -1, 5453, -1, -1, -1, -1, -1, -1, -1, -1, 361, -1, -1, 271, -1, 108, 274, 5469, 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4639, -1, -1, 125, 1761, 127, -1, 4179, -1, 131, -1, -1, -1, -1, -1, 137, -1, -1, -1, -1, -1, -1, -1, 145, -1, 147, -1, -1, -1, -1, -1, 153, -1, 1790, -1, -1, -1, -1, -1, -1, 1797, -1, -1, -1, -1, -1, -1, 169, -1, 4221, 4222, 1353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 186, -1, -1, -1, -1, -1, -1, -1, -1, -1, 361, -1, -1, -1, 458, -1, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 8, -1, -1, 11, 475, -1, -1, 15, 16, 17, -1, -1, -1, 226, 227, -1, -1, -1, -1, 232, -1, -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, 244, 40, -1, -1, -1, -1, -1, -1, 47, -1, 1434, -1, 256, 4307, 4308, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1903, -1, -1, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 458, -1, -1, 461, 462, 463, 299, 465, 466, 467, 468, 469, 470, -1, -1, 1943, 1944, 475, -1, -1, 313, -1, -1, -1, -1, -1, 319, 320, -1, 322, -1, 1504, 1960, -1, 327, -1, -1, -1, -1, 332, -1, -1, 335, 4853, 4854, -1, -1, -1, -1, 342, -1, -1, -1, -1, -1, 348, 349, 4867, -1, -1, -1, 4871, -1, 356, -1, -1, -1, 360, -1, -1, -1, 4881, -1, -1, -1, -1, -1, 370, -1, -1, -1, -1, 4425, -1, 4427, 4428, -1, -1, -1, -1, 383, -1, -1, -1, 182, 8, -1, -1, 11, 187, 4443, -1, 15, 16, 17, -1, -1, -1, -1, -1, 403, -1, -1, -1, -1, -1, -1, -1, -1, 32, 413, 209, 210, 36, -1, -1, 419, 40, -1, 2057, -1, 424, -1, -1, 47, -1, 224, -1, -1, 2067, -1, -1, -1, -1, 437, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, 72, -1, -1, 15, 16, 17, -1, -1, 460, 2096, 257, -1, -1, -1, -1, -1, -1, 2104, -1, 2106, 32, -1, 474, -1, 271, 477, -1, 274, 40, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 121, -1, -1, 2139, -1, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5064, -1, -1, -1, 5068, -1, 5070, -1, -1, -1, 5074, 5075, -1, -1, -1, 182, -1, -1, -1, 361, 187, -1, -1, -1, -1, 1752, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 209, 210, -1, -1, -1, -1, -1, -1, -1, 158, -1, -1, -1, -1, 163, 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, 182, -1, 11, -1, -1, 187, 15, 16, 17, -1, -1, -1, -1, -1, -1, 257, -1, -1, -1, -1, -1, -1, -1, 32, 2281, -1, 35, 209, 210, 271, -1, 40, 274, -1, -1, -1, -1, -1, 47, -1, 2297, 458, 224, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, -1, -1, -1, -1, 475, -1, -1, 2318, 5201, 72, 5203, -1, -1, -1, 4740, -1, -1, -1, -1, -1, -1, 257, -1, 1879, -1, 1881, -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, -1, 274, -1, -1, -1, 1898, -1, 1900, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1914, -1, 1916, -1, 1918, -1, 1920, 361, 1922, -1, -1, -1, 1926, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2392, 2393, -1, -1, 4811, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5310, -1, 182, -1, -1, 418, -1, 187, 361, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4863, -1, -1, -1, -1, -1, -1, -1, -1, 209, 210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 224, 458, -1, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2500, 5383, -1, -1, -1, 257, -1, -1, -1, -1, 5392, -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, -1, 274, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 458, -1, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5453, -1, -1, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, 5469, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2151, 2152, -1, 361, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2170, 2171, -1, -1, -1, 2175, 2176, -1, 199, 200, 2180, -1, -1, -1, -1, -1, 207, -1, 209, 210, -1, -1, -1, -1, 2194, -1, -1, -1, -1, -1, -1, 2201, 223, -1, -1, 2205, 2206, -1, -1, 2209, 2210, -1, -1, -1, -1, -1, 2216, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2684, -1, 2231, -1, 2233, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 458, 2252, -1, 461, 462, 463, 2257, 465, 466, 467, 468, 469, 470, -1, -1, -1, -1, -1, 182, 2270, -1, -1, -1, 187, -1, -1, -1, -1, 2279, -1, 8, 2282, -1, 11, 2285, 2286, 2287, 15, 16, 17, -1, 2292, 2293, -1, -1, 209, 210, -1, -1, -1, -1, 2302, -1, -1, 32, -1, 2307, -1, -1, -1, 224, 2312, 40, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, 2328, -1, -1, -1, -1, -1, -1, 2335, 2336, -1, -1, -1, -1, 2341, 200, -1, 257, 72, -1, -1, -1, -1, -1, 209, 2352, 2353, -1, -1, -1, 2357, 271, -1, -1, 274, -1, -1, -1, 223, -1, -1, -1, 2369, -1, -1, 2372, -1, -1, -1, -1, 2377, -1, -1, -1, -1, 2382, 2383, 2839, 298, -1, 2387, -1, -1, 2390, -1, -1, -1, 2394, 2395, 2396, 2397, -1, 2399, -1, -1, -1, -1, -1, -1, -1, 2862, -1, -1, -1, -1, 2412, 2413, -1, 2415, -1, -1, -1, -1, -1, -1, 5292, -1, -1, 2425, 2426, -1, -1, 8, 157, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, 361, -1, -1, -1, -1, 32, -1, 182, -1, -1, -1, -1, 187, 40, -1, -1, 377, -1, -1, -1, 47, -1, 191, 192, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, 209, 210, -1, -1, -1, -1, -1, -1, 2490, -1, -1, 72, 215, 8, -1, 224, 11, -1, -1, 222, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2518, 32, -1, -1, 35, -1, -1, -1, -1, 40, -1, -1, 257, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, 458, -1, 274, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, -1, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 182, 625, -1, -1, -1, 187, -1, 631, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 644, -1, -1, -1, -1, -1, -1, 209, 210, -1, -1, 361, -1, -1, -1, -1, 660, -1, -1, -1, -1, 3099, 224, -1, -1, -1, -1, -1, -1, -1, -1, 675, 676, -1, -1, -1, -1, -1, 682, -1, 684, 685, -1, -1, -1, -1, 182, -1, -1, -1, -1, 187, -1, -1, 698, 257, -1, -1, -1, -1, -1, -1, 2685, -1, 708, -1, -1, -1, -1, 271, -1, -1, 274, 209, 210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 224, -1, 292, -1, -1, 2716, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 458, -1, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, 271, -1, 11, 274, -1, -1, 15, 16, 17, 625, -1, -1, -1, -1, 793, 631, -1, -1, -1, -1, -1, -1, -1, 32, 361, -1, -1, -1, 644, -1, -1, 40, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, 660, -1, -1, -1, -1, -1, -1, -1, -1, 3266, 3267, 3268, -1, -1, -1, -1, 676, -1, -1, 72, -1, -1, -1, -1, 684, -1, 3283, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 698, -1, -1, -1, -1, -1, -1, -1, 361, -1, 708, 3306, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3316, 3317, -1, -1, -1, 3321, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 458, -1, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, -1, -1, -1, 616, -1, -1, 8, 620, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, 163, 634, -1, 936, -1, -1, -1, -1, 641, -1, 32, -1, -1, 35, -1, -1, -1, -1, 40, 182, -1, 954, -1, 793, 187, 47, -1, 960, -1, -1, 963, -1, -1, 458, -1, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 209, 210, -1, -1, 72, -1, -1, -1, -1, -1, -1, -1, 2970, -1, -1, 224, 2974, -1, -1, 3432, -1, -1, 2980, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2998, 2999, -1, -1, -1, 3003, -1, -1, 257, -1, 3008, 3009, 3010, -1, 3012, -1, -1, -1, -1, -1, -1, -1, 271, -1, -1, 274, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, 3035, -1, 15, 16, 17, -1, -1, -1, -1, -1, 3045, 3046, 3047, 3048, -1, -1, -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, 47, -1, -1, 182, -1, -1, -1, -1, 187, 936, -1, -1, -1, 3082, -1, -1, 3085, 3086, 3087, -1, -1, -1, 1112, -1, -1, 72, -1, -1, -1, -1, 209, 210, -1, -1, 3103, -1, 3560, 3561, 3562, -1, 1130, 361, -1, -1, -1, 224, -1, -1, -1, -1, -1, -1, -1, -1, 3123, -1, -1, 1147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, -1, -1, -1, -1, -1, -1, 1175, -1, -1, -1, -1, 880, 881, 271, -1, -1, 274, 1186, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, 1201, -1, -1, 1204, -1, -1, -1, -1, -1, -1, 32, -1, -1, 35, -1, 3195, -1, -1, 40, -1, -1, -1, -1, 3203, 182, 47, -1, 458, -1, 187, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, 209, 210, -1, 3234, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 224, -1, -1, -1, -1, 361, -1, -1, 1112, -1, -1, 978, -1, -1, -1, 3261, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1130, -1, -1, -1, -1, -1, -1, 257, -1, -1, -1, -1, -1, -1, 1007, 1008, -1, 1147, -1, -1, -1, 271, -1, -1, 274, -1, -1, -1, -1, 1322, -1, -1, -1, -1, -1, -1, -1, 1330, 1331, -1, 1033, 3313, -1, -1, -1, 1175, 3318, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1186, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 182, -1, -1, 1201, -1, 187, 1204, -1, 458, 3349, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, -1, -1, -1, -1, -1, 8, 209, 210, 11, -1, -1, -1, 15, 16, 17, -1, -1, 1399, -1, -1, -1, 224, 361, -1, -1, 1107, 1108, 3388, -1, 3390, -1, -1, 3848, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, 3859, 47, -1, -1, -1, -1, -1, -1, -1, 391, -1, 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, 72, -1, 274, -1, -1, 3890, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, 1322, -1, -1, -1, -1, 3924, -1, 40, 1330, 1331, -1, -1, -1, -1, 47, -1, 458, -1, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3969, -1, -1, -1, -1, 361, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 182, 1399, -1, -1, -1, 187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 209, 210, -1, -1, 1592, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 182, -1, 257, 458, -1, 187, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 271, 4085, 4086, 4087, 4088, -1, -1, -1, -1, -1, -1, 209, 210, -1, 3643, -1, 3645, -1, -1, -1, -1, -1, -1, 3652, -1, -1, 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3668, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3684, -1, -1, -1, 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, 3703, -1, 274, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 361, -1, 3721, 1743, -1, -1, -1, -1, -1, -1, -1, -1, 3731, -1, -1, 1592, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1767, -1, -1, -1, 3750, -1, -1, -1, 1775, -1, 1477, -1, -1, -1, -1, -1, -1, 3763, 3764, 3765, 1787, -1, -1, -1, 3770, 3771, 3772, 3773, -1, -1, -1, 3777, 3778, -1, -1, -1, -1, 3783, 3784, -1, 3786, 3787, 3788, 3789, 3790, 3791, 361, 3793, -1, -1, -1, -1, -1, -1, -1, 8, 3802, -1, 11, 3805, 3806, -1, 15, 16, 17, -1, -1, -1, -1, -1, 458, -1, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 3829, -1, -1, -1, 40, -1, -1, -1, -1, 1859, 1860, 47, 1862, 1863, -1, -1, -1, -1, -1, -1, -1, -1, 3851, -1, 1874, -1, 1876, 1877, 1578, 1579, 1580, 1581, -1, -1, -1, -1, 72, -1, -1, 1889, 1890, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1905, 1743, -1, -1, -1, 458, -1, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, -1, -1, -1, -1, -1, -1, -1, 1767, -1, -1, -1, -1, -1, -1, 1937, 1775, -1, 1940, 1941, -1, -1, -1, -1, -1, -1, -1, -1, 1787, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3949, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4422, -1, -1, -1, -1, -1, -1, -1, 182, -1, -1, -1, -1, 187, -1, -1, 3983, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1719, 1720, -1, -1, 209, 210, 1862, 1863, 2027, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 224, 1876, -1, -1, 1742, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1889, 1890, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1905, -1, -1, 257, -1, -1, -1, -1, -1, 1777, 1778, 1779, 1780, -1, -1, -1, -1, 271, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2150, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2168, -1, -1, -1, -1, 2173, 2174, 361, -1, -1, 2178, -1, -1, -1, -1, -1, -1, -1, 2186, -1, -1, -1, 2027, -1, -1, -1, -1, 1895, -1, -1, -1, -1, -1, 1901, -1, -1, 2204, -1, -1, -1, -1, -1, 4189, -1, -1, -1, 4193, 4194, 4195, 4196, -1, 4653, 4199, -1, -1, -1, -1, -1, 2226, -1, -1, 2229, 2230, -1, -1, -1, 4668, -1, -1, -1, -1, 4673, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2250, -1, 4231, 4232, 4233, -1, 4235, -1, 4237, 4238, -1, -1, -1, -1, -1, 4699, -1, -1, 2268, 2269, 4249, 4250, 458, -1, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4276, -1, -1, 2300, 2301, -1, -1, 2304, -1, -1, -1, -1, -1, -1, -1, -1, 2150, -1, -1, -1, -1, -1, -1, 4299, -1, -1, -1, -1, -1, -1, 2327, -1, 2329, 2030, 2168, -1, -1, 2334, -1, 2173, 2174, -1, -1, 2340, 2178, -1, -1, -1, -1, -1, 2347, -1, 2186, -1, 2351, -1, -1, -1, -1, 2356, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2204, -1, -1, -1, -1, -1, -1, -1, -1, 2376, -1, -1, -1, -1, 2381, -1, -1, -1, 2385, -1, 4821, 2388, -1, -1, -1, -1, -1, -1, -1, -1, 4376, 2398, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2411, -1, 2250, -1, -1, -1, -1, -1, -1, -1, 2421, -1, -1, -1, -1, 4405, -1, -1, -1, -1, 2268, 2269, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4430, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2300, 2301, -1, -1, 2304, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4917, -1, -1, -1, -1, -1, 2489, 2327, -1, 2329, -1, -1, -1, -1, 2334, -1, -1, -1, 787, 788, 2340, -1, -1, -1, -1, -1, -1, 2347, -1, -1, -1, 2351, -1, -1, -1, -1, 2356, -1, 2221, 2222, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2232, -1, 2234, -1, -1, -1, 2238, 2376, -1, -1, -1, -1, 2381, -1, -1, -1, 2385, -1, -1, 2388, -1, -1, -1, -1, -1, 4536, -1, -1, -1, 2398, -1, -1, -1, -1, -1, 2567, -1, -1, -1, -1, -1, -1, 2411, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4598, 671, -1, 2622, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4616, -1, -1, -1, -1, 4621, 4622, -1, -1, 697, -1, 934, 935, -1, -1, 2489, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2664, -1, -1, -1, 2368, -1, -1, 2371, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2682, -1, -1, -1, -1, -1, -1, -1, 2690, -1, -1, -1, -1, 4674, -1, -1, -1, -1, 2700, -1, -1, 2703, -1, -1, 2706, -1, -1, -1, -1, -1, -1, -1, -1, 4694, -1, 4696, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2567, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2450, -1, 4731, -1, -1, -1, -1, -1, 2458, 4738, -1, 2461, -1, -1, -1, -1, -1, 2467, -1, -1, -1, -1, 2772, -1, -1, -1, 671, -1, 2778, -1, -1, 2481, -1, -1, -1, 2622, -1, -1, 20, -1, -1, -1, -1, 25, -1, -1, -1, -1, -1, -1, -1, -1, 697, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2522, -1, -1, 4804, -1, 2664, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 73, -1, -1, -1, 2682, -1, 4826, -1, -1, 2550, -1, 84, 2690, 2854, -1, 88, -1, 4837, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 106, -1, -1, -1, -1, -1, 112, -1, -1, 934, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, -1, 950, -1, -1, -1, -1, -1, 2605, -1, 2607, 140, -1, -1, -1, -1, -1, -1, -1, 148, -1, -1, -1, -1, 4900, -1, -1, 975, -1, -1, -1, 160, -1, 1216, -1, -1, -1, -1, 2772, 168, -1, -1, 990, 172, 2778, 2942, 2943, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 1246, -1, -1, -1, -1, -1, -1, -1, -1, 2969, -1, -1, 2972, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4963, -1, -1, -1, 1274, 1275, 1276, -1, 1278, -1, -1, -1, 228, -1, -1, -1, -1, -1, -1, -1, -1, 237, -1, -1, -1, -1, -1, -1, 1298, -1, -1, 2715, -1, 2854, -1, -1, -1, -1, -1, -1, 1075, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, -1, 274, -1, -1, 5024, -1, -1, -1, -1, -1, -1, -1, -1, -1, 950, -1, 3057, 3058, 3059, 5039, -1, 294, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, -1, -1, -1, 975, 3081, -1, 315, 1370, -1, -1, -1, 1374, 1375, -1, -1, -1, -1, -1, 990, -1, -1, -1, -1, -1, 3101, 334, -1, -1, 2942, 2943, -1, -1, -1, -1, 343, -1, -1, 5093, -1, -1, -1, 350, -1, 3120, 353, -1, -1, -1, -1, -1, -1, -1, 5108, -1, -1, 2969, 1184, -1, 2972, -1, -1, -1, -1, 372, -1, -1, -1, -1, -1, 378, -1, -1, -1, -1, 383, -1, -1, 386, 387, -1, 389, 390, -1, -1, -1, -1, -1, -1, -1, -1, -1, 400, -1, -1, -1, -1, 405, -1, -1, -1, -1, -1, 411, 1075, -1, 414, -1, -1, 417, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 430, -1, -1, -1, 3202, -1, -1, -1, -1, -1, -1, -1, 5189, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3057, 3058, 3059, -1, -1, 22, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, 35, -1, -1, -1, -1, -1, 3081, -1, -1, -1, -1, -1, -1, -1, -1, 3253, -1, 5234, -1, 54, -1, -1, 3260, -1, 3262, -1, 3101, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, 3275, -1, 3277, -1, -1, -1, -1, 2982, 3120, 2984, 2985, 2986, -1, -1, 1184, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3299, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1607, 1608, 1609, -1, -1, -1, 124, -1, -1, -1, -1, -1, -1, 131, -1, -1, 134, -1, -1, 3340, -1, 1393, 5322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 159, -1, -1, 3202, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3391, -1, 190, -1, -1, 193, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1458, -1, 3409, -1, -1, -1, -1, -1, -1, 3253, -1, -1, -1, -1, -1, -1, 3260, -1, 3262, -1, -1, -1, -1, 1325, 3431, -1, -1, 3434, -1, -1, -1, 3275, -1, 3277, 238, -1, -1, 241, -1, -1, -1, 1499, -1, -1, -1, -1, -1, -1, 252, -1, 254, -1, -1, -1, -1, 3299, -1, -1, -1, -1, 264, -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, -1, 1532, -1, -1, -1, -1, -1, 284, 285, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1393, -1, -1, -1, -1, 3340, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3514, -1, -1, -1, -1, -1, -1, -1, 3222, -1, -1, -1, 323, -1, -1, 326, 327, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 350, 3391, -1, 1607, 1608, 1609, 356, -1, -1, -1, 1458, -1, -1, -1, -1, -1, -1, -1, -1, 3409, 370, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3431, -1, -1, 3434, -1, -1, -1, -1, -1, -1, 1499, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1532, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 671, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1710, -1, -1, -1, -1, -1, -1, -1, 3667, -1, -1, -1, -1, -1, -1, -1, 697, 1727, 3514, -1, -1, -1, -1, -1, -1, -1, 1736, -1, -1, -1, -1, -1, -1, -1, -1, 1980, 3395, -1, 1748, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1993, -1, 1995, -1, -1, 1998, 1999, 2000, -1, -1, -1, 3718, 2005, -1, -1, 2008, 3723, -1, 3725, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2023, 2024, 2025, 2026, -1, -1, -1, -1, 2031, -1, 3747, -1, 2035, -1, -1, 2038, 1804, -1, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, -1, 2051, 3766, 1818, -1, -1, -1, -1, 2058, -1, 2060, -1, -1, -1, -1, 1830, -1, -1, 3782, -1, -1, 3785, -1, -1, -1, -1, -1, 1842, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 2100, 1710, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, 35, -1, -1, -1, 3667, -1, 1727, -1, -1, 1886, 1887, -1, -1, 2125, 2126, 1736, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, 1748, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3877, 3878, -1, -1, 3718, -1, -1, -1, -1, 3723, 3887, 3725, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3906, -1, -1, 1804, 3747, -1, -1, -1, -1, 124, -1, -1, -1, -1, -1, 2207, 131, 1818, -1, 134, -1, -1, 950, 3766, -1, -1, -1, -1, -1, 1830, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3782, -1, 1842, 3785, -1, 159, -1, -1, 975, -1, -1, -1, 3657, 3658, 3659, 3660, -1, -1, -1, -1, -1, -1, -1, 990, -1, -1, 2022, -1, -1, -1, -1, -1, -1, -1, 3979, 20, 190, -1, -1, 193, 25, -1, -1, -1, -1, -1, 1886, 1887, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2060, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, 238, -1, -1, 241, 73, -1, -1, -1, -1, -1, -1, 3877, 3878, -1, 252, -1, 254, -1, -1, 88, -1, 3887, -1, -1, 1075, -1, 264, -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, 106, -1, -1, 3906, -1, -1, -1, -1, -1, 284, 285, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 140, -1, -1, -1, -1, -1, 2157, -1, 148, -1, 2161, 2162, -1, -1, 323, -1, -1, 326, 327, 328, 160, -1, -1, -1, -1, 165, -1, 2022, -1, -1, -1, -1, 172, -1, -1, -1, -1, -1, -1, -1, -1, 350, 3979, -1, 3844, -1, -1, 356, -1, -1, 3850, 191, 2438, 2439, 2440, -1, -1, -1, 2444, -1, -1, 370, 1184, -1, -1, -1, -1, -1, -1, -1, 671, -1, 2223, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2237, -1, -1, -1, -1, -1, -1, 2479, -1, -1, 697, 237, 4198, -1, -1, -1, -1, 4203, -1, -1, -1, -1, -1, -1, -1, -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2277, -1, -1, -1, -1, 271, -1, -1, -1, -1, 4236, -1, -1, -1, -1, -1, -1, -1, 284, -1, -1, -1, 4248, -1, -1, -1, -1, -1, 294, -1, -1, -1, -1, -1, -1, -1, 2157, -1, 304, 305, 2161, 2162, 308, -1, -1, -1, -1, -1, -1, 4275, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 334, -1, -1, 337, -1, -1, -1, 341, -1, 343, -1, -1, -1, -1, -1, -1, 350, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2223, -1, -1, -1, 372, -1, -1, -1, -1, -1, 378, -1, -1, -1, 2237, 383, -1, -1, 386, -1, -1, -1, 390, -1, -1, -1, -1, -1, -1, -1, 398, -1, 400, 4198, -1, -1, 20, 405, 4203, -1, -1, 25, 4370, 1393, -1, -1, -1, -1, -1, 417, -1, -1, -1, -1, 2277, -1, -1, -1, -1, -1, -1, 2440, 430, -1, -1, -1, -1, -1, -1, -1, -1, 4236, -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, 4248, -1, -1, -1, -1, -1, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 2480, -1, -1, 88, -1, -1, -1, 1458, 2723, 4275, -1, -1, -1, 2728, -1, 4444, -1, -1, -1, -1, 950, 106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2753, -1, -1, -1, -1, -1, 129, 975, -1, -1, 1499, 2764, -1, 2766, 2767, -1, -1, 140, -1, -1, -1, -1, 990, -1, 2777, 148, -1, 2780, -1, 2782, -1, -1, -1, -1, -1, -1, -1, 160, -1, -1, -1, -1, 165, 1532, 2562, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 671, -1, -1, 2811, -1, 2813, -1, 2815, -1, -1, -1, 4370, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 697, -1, 4550, -1, 4552, -1, -1, -1, -1, -1, -1, -1, 216, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1075, -1, -1, -1, -1, -1, -1, 237, -1, 2869, -1, 2480, 4286, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4597, 2884, -1, -1, 4301, -1, -1, -1, -1, 4606, 4444, -1, -1, -1, -1, -1, -1, -1, 271, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2680, -1, -1, -1, -1, -1, -1, -1, -1, 294, -1, -1, -1, -1, -1, 4644, -1, 2697, -1, 304, 305, 4650, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, 2712, 2948, -1, -1, -1, -1, 2562, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 334, -1, -1, 337, -1, 1184, -1, 341, -1, 343, 1710, -1, 4390, -1, -1, -1, 350, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, 1727, -1, -1, -1, -1, -1, -1, -1, 4550, 1736, 4552, 372, -1, -1, -1, -1, -1, 378, -1, -1, -1, 1748, 383, -1, -1, 386, -1, -1, -1, 390, -1, -1, -1, -1, -1, -1, -1, 398, -1, 400, -1, -1, -1, -1, 405, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4597, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 430, -1, -1, -1, -1, -1, -1, -1, 1804, -1, -1, 2680, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1818, -1, -1, -1, -1, 950, 2697, -1, -1, -1, -1, 4644, 1830, -1, -1, -1, -1, -1, -1, -1, -1, 2712, -1, -1, 1842, -1, -1, -1, -1, -1, 975, -1, -1, -1, 4830, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 990, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4855, -1, -1, 4558, 4559, 4560, -1, -1, -1, 1886, 1887, 2917, 4867, -1, 2920, -1, 2922, -1, -1, -1, -1, 2927, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1393, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3207, -1, -1, -1, 2976, 1075, 3213, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2995, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1458, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3020, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4830, -1, -1, -1, -1, 1499, -1, 2022, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4717, 4855, -1, -1, 671, 2917, -1, -1, 2920, -1, 2922, -1, -1, 4867, 1532, 2927, -1, -1, 1184, -1, -1, -1, -1, 3091, -1, 3093, -1, -1, -1, -1, 697, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5062, -1, 5064, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2976, -1, -1, 25, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2995, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3020, -1, -1, -1, -1, -1, 3182, 73, -1, -1, 2157, -1, -1, -1, 2161, 2162, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, 3207, -1, 5158, 4859, -1, 4861, 3213, -1, -1, 106, -1, -1, 3454, -1, 3221, 112, -1, -1, -1, -1, 5176, 3463, -1, -1, -1, -1, -1, 3469, -1, 3471, -1, -1, 129, -1, 5190, -1, -1, -1, -1, 3246, 3091, -1, 3093, 140, -1, 2223, -1, 3254, -1, 5205, -1, 148, -1, 1710, -1, -1, 3498, 3499, -1, 2237, -1, -1, -1, 160, -1, -1, -1, -1, 165, 5062, 1727, 5064, -1, -1, 3516, 172, -1, -1, -1, 1736, -1, -1, 3524, -1, -1, 3527, -1, 3529, 1393, -1, -1, 1748, -1, -1, 191, -1, 3538, -1, -1, 2277, -1, -1, -1, -1, 3546, 3547, -1, -1, -1, 5265, 5266, -1, -1, -1, -1, -1, 3323, -1, -1, 216, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3182, -1, -1, 3341, -1, 3578, -1, -1, -1, 237, -1, -1, -1, 950, -1, -1, 1804, 3355, -1, -1, -1, -1, 1458, 5310, -1, -1, -1, 5014, -1, 3602, 1818, -1, -1, -1, 5158, -1, -1, -1, 975, 3221, -1, -1, 1830, 271, -1, 3618, -1, -1, -1, -1, -1, -1, 5176, 990, 1842, -1, -1, -1, -1, -1, -1, -1, -1, 1499, 3246, -1, 294, -1, -1, -1, -1, -1, 3254, -1, -1, -1, 304, 305, -1, -1, 308, 5205, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1532, -1, 1886, 1887, -1, -1, -1, -1, -1, 5392, 334, -1, -1, 337, -1, -1, -1, 341, -1, 343, 5103, -1, -1, 3457, 671, -1, 350, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1075, -1, 3478, 3323, -1, -1, 372, -1, 697, -1, -1, -1, 378, -1, -1, -1, 382, 383, -1, -1, 386, 3341, -1, -1, 390, -1, -1, 3503, 5453, -1, -1, -1, -1, 2480, 400, 3355, -1, -1, -1, 405, -1, -1, -1, -1, 5469, -1, 5471, 5472, 5310, -1, -1, 417, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3537, -1, -1, 430, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2022, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1184, -1, -1, -1, -1, -1, 2562, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5392, -1, -1, -1, -1, -1, 1710, 3457, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3624, -1, -1, -1, -1, 1727, -1, -1, -1, -1, 3478, -1, -1, -1, 1736, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1748, -1, -1, 5302, -1, -1, -1, -1, -1, 3503, -1, -1, -1, -1, -1, -1, -1, 5453, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5469, -1, -1, 5335, 5336, -1, -1, -1, -1, -1, 3537, -1, -1, -1, 3932, 3933, -1, -1, -1, -1, -1, -1, -1, 1804, 2157, -1, 2680, -1, 2161, 2162, -1, -1, -1, -1, -1, -1, -1, 1818, -1, -1, -1, 3724, -1, 2697, -1, -1, -1, -1, -1, 1830, -1, -1, -1, -1, 950, -1, -1, -1, 2712, -1, -1, 1842, -1, -1, -1, 3748, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 975, -1, -1, -1, -1, 4002, -1, -1, -1, -1, -1, 2223, -1, -1, -1, 990, 4013, -1, 3624, -1, -1, -1, -1, -1, 5435, 2237, 1886, 1887, -1, -1, -1, -1, 1393, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4053, 4054, -1, -1, -1, -1, -1, 4060, 4061, 2277, -1, -1, 4065, -1, -1, -1, -1, 4070, -1, -1, 4073, 4074, -1, -1, -1, 4078, -1, -1, -1, -1, -1, 4084, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1458, -1, -1, 1075, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3724, 3881, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1499, 4136, -1, -1, 3748, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2022, -1, -1, -1, 4163, -1, -1, 3931, -1, 1532, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2917, -1, -1, 2920, -1, 2922, -1, -1, -1, -1, 2927, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1184, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2976, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2995, -1, -1, -1, -1, 4264, 2480, -1, -1, -1, -1, -1, -1, 3881, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3020, -1, -1, -1, -1, -1, -1, 4056, -1, -1, 2157, -1, -1, -1, 2161, 2162, -1, 4066, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3931, -1, -1, -1, -1, -1, -1, -1, -1, 4331, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1710, 2562, -1, -1, -1, -1, -1, -1, -1, 3091, -1, 3093, -1, -1, 2223, -1, -1, 1727, -1, -1, -1, -1, -1, -1, -1, -1, 1736, -1, 2237, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1748, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2277, 1393, 4181, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1804, -1, -1, -1, -1, -1, 3182, 4056, -1, -1, -1, -1, -1, -1, 1818, 4220, -1, 4066, -1, -1, -1, -1, -1, -1, -1, 2680, 1830, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4241, -1, 1842, -1, 1458, -1, 2697, -1, -1, 3221, -1, -1, 4488, 4489, -1, -1, 4492, -1, -1, -1, -1, 2712, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3246, -1, -1, -1, -1, -1, -1, -1, 3254, -1, -1, 1499, 1886, 1887, -1, -1, -1, -1, -1, 4529, 4530, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4306, -1, -1, -1, 4545, -1, -1, -1, -1, -1, -1, -1, -1, 1532, -1, -1, -1, -1, -1, -1, -1, -1, -1, 671, -1, -1, -1, -1, -1, -1, -1, 4181, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3323, -1, -1, 697, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3341, -1, -1, -1, -1, -1, 4220, -1, -1, -1, -1, -1, 2480, -1, 3355, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4241, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4418, -1, 4420, -1, -1, 2022, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4306, -1, 2562, -1, 4466, 2917, -1, -1, 2920, -1, 2922, -1, -1, -1, -1, 2927, -1, -1, -1, -1, -1, -1, -1, -1, 3457, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1710, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3478, -1, -1, -1, -1, 4747, -1, 1727, -1, -1, -1, -1, -1, -1, -1, -1, 1736, -1, -1, 2976, -1, -1, -1, -1, -1, 3503, -1, -1, 1748, -1, -1, -1, -1, 4775, -1, -1, -1, -1, 2995, -1, -1, -1, -1, -1, -1, -1, -1, 4789, -1, -1, -1, 2157, -1, -1, -1, 2161, 2162, -1, -1, 3537, -1, -1, -1, 3020, -1, -1, -1, -1, -1, 4420, -1, -1, -1, -1, -1, 2680, -1, -1, -1, -1, -1, -1, -1, -1, 1804, -1, -1, -1, -1, 4596, -1, -1, 2697, -1, -1, -1, -1, -1, 1818, -1, -1, 950, -1, -1, -1, -1, 4848, 2712, -1, -1, 1830, -1, -1, -1, -1, 4466, -1, 2223, -1, -1, -1, -1, 1842, -1, -1, -1, 975, -1, -1, -1, -1, 2237, -1, -1, 3091, -1, 3093, -1, -1, -1, -1, 990, -1, -1, -1, -1, 3624, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1886, 1887, -1, -1, -1, 2277, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4721, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3182, 1075, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4745, -1, -1, -1, -1, -1, -1, 4596, 3724, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5001, -1, -1, -1, -1, 3221, -1, -1, -1, -1, -1, 3748, -1, -1, -1, -1, -1, -1, -1, 4785, -1, -1, -1, -1, -1, -1, 5027, -1, -1, -1, 3246, -1, -1, -1, -1, -1, -1, -1, 3254, -1, -1, -1, -1, 2022, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2917, -1, -1, 2920, -1, 2922, -1, -1, -1, -1, 2927, -1, -1, -1, -1, -1, -1, -1, -1, 4838, -1, -1, -1, 1184, 4843, 4844, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3323, -1, -1, -1, 4721, 2976, 5114, -1, 2480, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3341, -1, -1, -1, -1, -1, 2995, -1, -1, -1, 4745, -1, -1, -1, 3355, -1, -1, -1, -1, 3881, -1, -1, 5148, 5149, 5150, -1, -1, -1, -1, -1, -1, 3020, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5167, -1, -1, -1, -1, -1, -1, -1, -1, 4785, -1, -1, 2157, -1, -1, -1, 2161, 2162, -1, -1, -1, -1, -1, 4955, 4956, -1, -1, -1, 3931, -1, -1, 2562, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3091, 4838, 3093, -1, -1, -1, 4843, 4844, -1, -1, -1, -1, -1, -1, 3457, -1, -1, 2223, -1, -1, -1, -1, 5250, -1, -1, -1, -1, -1, -1, -1, -1, 2237, -1, -1, -1, 3478, -1, -1, -1, 5267, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1393, -1, 3503, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2277, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2680, -1, -1, 3182, 4056, -1, 3537, -1, -1, -1, -1, -1, -1, -1, 4066, -1, -1, 2697, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4956, 2712, -1, -1, 1458, -1, -1, -1, -1, -1, -1, 3221, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5378, -1, -1, -1, -1, 3246, -1, -1, -1, -1, -1, -1, -1, 3254, 1499, -1, -1, -1, 5161, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3624, -1, 5411, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5421, -1, -1, -1, 1532, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4181, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3323, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3341, -1, -1, -1, -1, -1, 4220, -1, -1, -1, -1, -1, -1, -1, 3355, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2480, -1, -1, 4241, -1, -1, -1, 3724, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3748, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5161, 2917, -1, -1, 2920, -1, 2922, -1, -1, -1, -1, 2927, -1, -1, -1, -1, -1, -1, 4306, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2562, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3457, -1, -1, -1, -1, -1, -1, -1, -1, 1710, -1, -1, -1, -1, -1, -1, -1, -1, 2976, -1, -1, 3478, -1, -1, -1, -1, 1727, -1, -1, -1, -1, -1, -1, -1, -1, 1736, -1, 2995, -1, -1, -1, -1, -1, -1, -1, -1, 3503, 1748, -1, -1, -1, -1, -1, 1290, -1, -1, -1, -1, -1, -1, -1, -1, 3020, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3881, -1, -1, -1, -1, -1, -1, -1, 3537, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4420, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1804, -1, -1, -1, -1, 2680, -1, -1, -1, -1, 1350, -1, -1, -1, 1818, -1, -1, -1, -1, 3931, -1, -1, 2697, -1, -1, -1, 1830, -1, -1, -1, 3091, -1, 3093, 4466, -1, -1, -1, 2712, 1842, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3624, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1886, 1887, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3182, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4056, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4066, -1, -1, -1, -1, -1, 3221, -1, -1, 4596, 3724, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3246, -1, -1, 3748, -1, -1, -1, -1, 3254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2022, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2917, -1, -1, 2920, -1, 2922, -1, -1, -1, -1, 2927, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3323, -1, -1, -1, -1, -1, -1, 4181, -1, -1, -1, 1613, -1, -1, -1, 1617, -1, -1, 3341, -1, -1, -1, -1, -1, -1, -1, 4721, -1, -1, -1, -1, -1, 3355, -1, -1, -1, -1, -1, -1, 2976, -1, -1, -1, -1, -1, -1, 4220, -1, -1, -1, 4745, -1, -1, -1, -1, -1, -1, -1, 2995, 3881, -1, -1, -1, -1, -1, -1, -1, 4241, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3020, -1, -1, -1, -1, -1, -1, 4785, 2157, -1, -1, -1, 2161, 2162, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3931, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4306, -1, 3457, -1, -1, -1, -1, -1, -1, -1, -1, 4838, -1, -1, -1, -1, 4843, 4844, -1, -1, -1, -1, 3091, 3478, 3093, 2223, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2237, -1, -1, -1, -1, -1, -1, -1, -1, 3503, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2277, -1, -1, 3537, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4056, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4066, 3182, 4420, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4956, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3221, -1, -1, -1, -1, -1, -1, -1, 4466, -1, -1, -1, -1, -1, -1, -1, -1, 3624, -1, -1, -1, -1, -1, -1, -1, 3246, -1, -1, -1, -1, -1, -1, -1, 3254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4181, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1978, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3323, -1, -1, -1, 1992, -1, -1, -1, 1996, -1, -1, -1, 4220, -1, -1, 3724, -1, -1, 3341, -1, -1, -1, 2010, 2011, 2012, -1, 2014, -1, 2480, -1, -1, -1, 3355, 4241, -1, -1, 4596, -1, -1, 3748, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2056, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5161, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4306, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2562, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2112, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3457, -1, 2124, -1, -1, -1, -1, 2129, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3478, -1, -1, -1, -1, -1, 4721, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3881, -1, -1, -1, -1, -1, -1, -1, 3503, -1, -1, -1, -1, 4745, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4420, -1, 3537, -1, -1, -1, -1, -1, -1, -1, 3931, -1, -1, 4785, -1, -1, 2680, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2697, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4466, -1, 2712, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4838, -1, -1, -1, -1, 4843, 4844, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3624, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4056, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4066, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4596, -1, -1, -1, -1, -1, -1, -1, 4956, -1, -1, -1, -1, 3724, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3748, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2917, -1, -1, 2920, -1, 2922, -1, 4181, -1, -1, 2927, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4220, -1, 4721, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2976, -1, -1, -1, -1, -1, -1, -1, 4241, -1, -1, -1, -1, 4745, -1, -1, -1, -1, -1, 2995, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3881, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3020, -1, -1, -1, -1, -1, -1, -1, -1, 4785, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4306, -1, -1, -1, 5161, -1, -1, -1, -1, -1, -1, 3931, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4838, -1, -1, -1, -1, 4843, 4844, -1, -1, 3091, -1, 3093, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4420, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3182, -1, -1, 4056, -1, -1, -1, -1, 2726, -1, -1, -1, -1, 4066, -1, -1, -1, -1, 4956, -1, -1, -1, -1, -1, -1, -1, -1, 4466, 2746, -1, 2748, -1, -1, 2751, 2752, -1, 2754, -1, 2756, 3221, -1, -1, 2760, -1, -1, 2763, -1, -1, -1, -1, 2768, -1, -1, -1, -1, -1, 2774, -1, -1, -1, -1, 2779, -1, -1, 3246, -1, -1, -1, 2786, 2787, 2788, 2789, 3254, -1, -1, 2793, 2794, -1, 2796, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2808, -1, 2810, -1, -1, -1, -1, -1, -1, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4181, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3323, -1, -1, -1, 2863, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4596, -1, 3341, -1, -1, -1, -1, -1, -1, -1, 4220, -1, -1, -1, -1, -1, 3355, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4241, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5161, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2963, -1, -1, -1, -1, -1, -1, -1, 4306, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3457, -1, -1, -1, -1, -1, -1, 4721, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3478, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4745, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3503, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4785, -1, -1, -1, -1, -1, -1, -1, -1, 3537, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4420, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4838, -1, -1, -1, -1, 4843, 4844, -1, -1, -1, -1, -1, -1, -1, 4466, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3624, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3211, 3212, -1, -1, -1, 3216, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4956, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3249, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3724, 4596, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3748, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4721, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4745, -1, -1, -1, -1, -1, -1, 3881, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5161, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4785, -1, -1, 3453, -1, -1, -1, -1, -1, 3459, -1, -1, -1, -1, -1, -1, -1, 3931, -1, -1, -1, -1, -1, -1, -1, 3475, 3476, -1, -1, 3479, 3480, 3481, 3482, -1, -1, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, -1, -1, -1, -1, -1, -1, -1, 4838, -1, -1, -1, -1, 4843, 4844, -1, -1, -1, -1, -1, -1, -1, 3517, -1, -1, 3520, -1, 3522, -1, -1, 3525, 3526, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3540, 3541, 3542, 3543, -1, 3545, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4056, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4066, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4956, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3633, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4181, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4220, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4241, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5161, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4306, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3852, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4420, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4466, 4003, -1, -1, -1, 4007, 4008, 4009, -1, -1, -1, -1, -1, 4015, 4016, 4017, 4018, -1, -1, -1, -1, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4059, -1, -1, 4062, -1, 4064, -1, -1, -1, 4068, -1, -1, 4071, 4072, -1, -1, 4075, 4076, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4122, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4596, -1, -1, 4135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4148, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4721, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4745, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4785, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4334, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4838, -1, -1, -1, -1, 4843, 4844, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4415, 4416, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4456, -1, -1, -1, -1, 4461, 4462, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4476, -1, 4478, -1, -1, -1, 4482, 4483, 4484, -1, -1, 4487, -1, -1, 4490, 4491, 4956, -1, -1, 4495, -1, -1, -1, 4499, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4554, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4617, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4655, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5161, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4743, 4744, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4759, 4760, 4761, -1, -1, -1, -1, -1, -1, -1, 4769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4796, 4797, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4808, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4968, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4982, -1, -1, 4985, -1, -1, -1, 4989, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5038, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5155, -1, 5157, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5188, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5243, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5270, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5332, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5366, 5367, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5417, 5418, -1, -1, -1, 5422, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, 5448, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, 126, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, -1, -1, -1, -1, -1, 465, 466, 467, -1, -1, -1, -1, -1, -1, 474, 475, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 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, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, -1, -1, -1, -1, 465, 466, -1, -1, -1, -1, -1, -1, -1, 474, 475, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, -1, -1, -1, -1, -1, 465, 466, -1, -1, -1, -1, -1, -1, -1, 474, 475, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, -1, -1, -1, -1, -1, 465, 466, -1, -1, -1, -1, -1, -1, -1, 474, 475, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, -1, 3, -1, -1, -1, 465, 466, -1, -1, -1, -1, -1, -1, -1, 474, 475, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, 35, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 475, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, -1, 400, -1, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 455, 456, 457, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 475, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, -1, 400, -1, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, -1, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, 455, 456, 457, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, 475, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 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, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, -1, -1, -1, -1, 465, 466, -1, -1, -1, -1, -1, -1, -1, 474, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 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, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, 219, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, -1, -1, -1, -1, -1, 465, 466, -1, -1, -1, -1, -1, -1, -1, 474, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, -1, -1, -1, -1, -1, 465, 466, -1, -1, -1, -1, -1, 472, 473, 474, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, -1, -1, -1, -1, -1, 465, 466, 467, -1, -1, -1, -1, -1, -1, 474, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, -1, -1, -1, -1, -1, 465, 466, -1, -1, -1, -1, -1, -1, -1, 474, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, -1, -1, -1, -1, -1, 465, 466, -1, -1, -1, -1, -1, -1, -1, 474, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, -1, -1, -1, -1, -1, 465, 466, -1, -1, -1, -1, -1, -1, -1, 474, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, -1, -1, -1, -1, -1, 465, 466, -1, -1, -1, -1, -1, -1, -1, 474, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, -1, -1, -1, -1, -1, 465, 466, -1, -1, -1, -1, -1, -1, -1, 474, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, -1, -1, -1, -1, -1, 465, 466, -1, -1, -1, -1, -1, -1, -1, 474, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, -1, -1, -1, -1, -1, 465, 466, -1, -1, -1, -1, -1, -1, -1, 474, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, -1, -1, -1, -1, -1, 465, 466, -1, -1, -1, -1, -1, -1, -1, 474, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, -1, -1, -1, -1, -1, 465, 466, -1, -1, -1, -1, -1, -1, -1, 474, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, -1, -1, -1, -1, -1, 465, 466, -1, -1, -1, -1, -1, -1, -1, 474, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, -1, -1, -1, -1, -1, 465, 466, -1, -1, -1, -1, -1, -1, -1, 474, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, -1, -1, -1, -1, -1, 465, 466, -1, -1, -1, -1, -1, -1, -1, 474, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, -1, -1, -1, -1, -1, -1, 465, 466, -1, -1, -1, -1, -1, -1, -1, 474, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, -1, -1, -1, -1, -1, 465, 466, -1, -1, -1, -1, -1, -1, -1, 474, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, -1, -1, -1, -1, -1, -1, 465, 466, -1, -1, 3, 4, 5, 6, 7, 474, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, -1, -1, -1, -1, -1, -1, 465, 466, -1, -1, -1, -1, -1, -1, -1, 474, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, -1, -1, -1, -1, -1, -1, 465, 466, -1, -1, 3, 4, 5, 6, 7, 474, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, -1, 3, 4, 5, 6, 7, -1, 9, 10, -1, -1, -1, -1, -1, -1, 474, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, -1, 3, 4, 5, 6, 7, -1, 9, 10, -1, -1, -1, -1, -1, -1, 474, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, 474, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, -1, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, -1, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, -1, 3, -1, -1, -1, -1, 465, 466, -1, -1, -1, -1, -1, -1, -1, 474, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, 270, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 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, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, -1, 460, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, 270, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, -1, 3, 4, 5, -1, -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, 474, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, -1, 3, -1, -1, -1, -1, 465, 466, 467, -1, -1, -1, -1, -1, -1, 474, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, 30, 31, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, -1, 460, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, -1, 460, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, -1, -1, -1, -1, 3, 4, 5, -1, -1, 8, 9, -1, -1, -1, -1, 474, 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, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, -1, 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, -1, 147, 148, 149, -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, -1, 172, -1, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, -1, 296, -1, 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, -1, 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, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, -1, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 455, 456, 457, -1, -1, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 3, 4, 5, -1, -1, 8, 9, -1, -1, -1, -1, -1, 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, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, -1, 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, -1, 147, 148, 149, -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, -1, 172, -1, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, -1, 296, -1, 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, -1, 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, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, -1, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 455, 456, 457, -1, 3, -1, 461, 462, 463, 8, 465, 466, 467, 468, 469, 470, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, 3, -1, 461, 462, 463, 8, 465, 466, 467, 468, 469, 470, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, 3, -1, 461, 462, 463, 8, 465, 466, 467, 468, 469, 470, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, 3, -1, 461, 462, 463, 8, 465, 466, 467, 468, 469, 470, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, 3, -1, 461, 462, 463, 8, 465, 466, 467, 468, 469, 470, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, 3, -1, 461, 462, 463, 8, 465, 466, 467, 468, 469, 470, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, -1, 3, -1, 461, 462, 463, 8, 465, 466, 467, 468, 469, 470, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, -1, -1, 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, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 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, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, 467, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, 467, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, 467, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, -1, 400, -1, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 455, 456, 457, -1, 18, 19, 20, 21, 22, 23, 24, 25, 467, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, -1, 400, -1, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 3, 4, 5, -1, -1, -1, 9, -1, -1, -1, -1, 455, 456, 457, -1, 18, 19, 20, 21, 22, 23, 24, 25, 467, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, 4, 5, -1, -1, -1, 9, 465, 466, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, 4, 5, -1, -1, -1, 9, 465, 466, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, 5, -1, -1, -1, 9, 465, 466, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, 9, 465, 466, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, 163, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, 4, 5, -1, -1, -1, 9, 465, 466, -1, -1, -1, -1, -1, -1, 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, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 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, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 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, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 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, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 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, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 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, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, 172, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, 30, 31, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, -1, -1, 74, 75, 76, 77, 78, 79, -1, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, 160, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, 160, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, 91, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 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, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, 91, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 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, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, 160, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, 411, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, 91, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 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, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, 160, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, 91, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 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, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, 270, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, 270, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, 270, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, 35, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, 35, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, 35, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, -1, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, -1, 400, -1, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, 425, 426, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 455, 456, 457, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, -1, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, -1, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, -1, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, -1, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, -1, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, -1, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, -1, 400, -1, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 455, 456, 457, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, -1, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, -1, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, -1, 400, -1, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 455, 456, 457, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, -1, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, -1, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, -1, 400, -1, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 455, 456, 457, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, 158, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, -1, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, -1, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, -1, 400, -1, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 455, 456, 457, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, -1, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, -1, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, -1, 400, -1, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 455, 456, 457, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, -1, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, -1, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, -1, 400, -1, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 455, 456, 457, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, -1, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, -1, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, -1, 400, -1, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 455, 456, 457, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, -1, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, -1, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, -1, 400, -1, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 455, 456, 457, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, -1, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, -1, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, 393, 394, -1, -1, 397, 398, -1, 400, -1, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, 425, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 455, 456, 457, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, -1, 49, -1, -1, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, -1, -1, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, -1, -1, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, -1, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, -1, 199, 200, 201, 202, -1, -1, -1, -1, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, -1, 248, -1, 250, 251, 252, -1, -1, 255, 256, 257, 258, -1, -1, 261, -1, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, -1, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, -1, 359, 360, 361, 362, 363, -1, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, -1, 392, -1, -1, -1, -1, 397, 398, -1, 400, -1, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, -1, -1, 427, 428, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 455, 456, 457, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, -1, -1, -1, -1, -1, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, -1, -1, 65, -1, 67, 68, 69, 70, -1, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, -1, -1, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, -1, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, -1, 199, 200, 201, 202, -1, -1, -1, -1, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, -1, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, -1, -1, -1, 250, 251, 252, -1, -1, 255, 256, -1, 258, -1, -1, 261, -1, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, -1, -1, 280, -1, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, -1, 359, 360, -1, 362, 363, -1, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, 381, 382, -1, 384, -1, 386, 387, 388, 389, 390, -1, 392, -1, -1, -1, -1, 397, 398, -1, 400, -1, -1, 403, 404, 405, 406, 407, 408, 409, -1, -1, 412, 413, 414, 415, 416, -1, -1, 419, 420, 421, 422, 423, -1, -1, -1, 427, -1, 429, 430, 431, 432, -1, -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 455, 456, 457 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { 0, 18, 28, 30, 31, 46, 55, 67, 69, 70, 76, 78, 89, 91, 108, 111, 125, 127, 131, 137, 145, 147, 153, 169, 186, 226, 227, 232, 244, 256, 299, 313, 319, 320, 322, 327, 332, 335, 342, 348, 349, 356, 360, 370, 383, 403, 413, 419, 424, 437, 460, 474, 481, 482, 483, 484, 485, 491, 492, 494, 495, 496, 497, 499, 503, 515, 520, 521, 524, 525, 526, 549, 552, 553, 569, 613, 614, 617, 620, 621, 622, 630, 636, 638, 640, 641, 644, 647, 648, 652, 661, 665, 666, 667, 668, 671, 673, 674, 675, 676, 684, 685, 705, 709, 711, 712, 713, 723, 725, 732, 733, 736, 737, 738, 739, 740, 748, 750, 754, 759, 763, 764, 772, 773, 776, 781, 794, 821, 824, 825, 826, 831, 834, 836, 838, 840, 841, 846, 847, 850, 851, 852, 856, 857, 860, 861, 864, 865, 866, 873, 875, 876, 877, 882, 884, 885, 891, 892, 893, 894, 895, 896, 897, 899, 900, 902, 903, 905, 908, 911, 920, 926, 929, 931, 932, 941, 943, 948, 953, 957, 958, 959, 960, 961, 962, 965, 1000, 397, 440, 878, 25, 73, 88, 106, 112, 129, 140, 148, 160, 165, 172, 191, 216, 237, 271, 294, 304, 305, 308, 334, 337, 341, 343, 350, 353, 372, 378, 382, 383, 386, 390, 400, 405, 417, 430, 637, 878, 3, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 54, 55, 56, 57, 58, 61, 62, 63, 64, 65, 67, 68, 69, 70, 71, 73, 75, 76, 77, 78, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 92, 93, 94, 95, 99, 103, 104, 105, 106, 107, 108, 109, 110, 111, 113, 115, 116, 117, 118, 119, 120, 122, 123, 124, 125, 128, 129, 130, 131, 132, 134, 135, 136, 138, 139, 140, 142, 143, 144, 145, 146, 147, 148, 149, 150, 152, 154, 155, 156, 157, 159, 161, 162, 164, 165, 166, 167, 168, 170, 171, 173, 174, 175, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 188, 189, 190, 191, 192, 193, 194, 196, 197, 198, 199, 200, 201, 202, 203, 204, 206, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 220, 221, 222, 223, 224, 226, 227, 228, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 255, 256, 257, 258, 260, 261, 262, 263, 264, 265, 267, 268, 271, 272, 273, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 293, 294, 295, 296, 297, 298, 299, 300, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 350, 351, 352, 353, 354, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 381, 382, 384, 385, 386, 387, 388, 389, 390, 392, 393, 394, 397, 398, 399, 400, 401, 403, 404, 405, 406, 407, 408, 409, 412, 413, 414, 415, 416, 419, 420, 421, 422, 423, 424, 425, 427, 428, 429, 430, 431, 432, 435, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 1059, 1132, 1140, 1141, 1144, 1145, 1146, 3, 26, 954, 1126, 1140, 1144, 428, 913, 269, 300, 878, 49, 474, 560, 20, 25, 37, 60, 73, 84, 106, 112, 129, 140, 148, 160, 168, 172, 228, 271, 274, 294, 308, 334, 343, 353, 372, 378, 386, 387, 389, 390, 400, 405, 411, 414, 417, 570, 619, 728, 782, 795, 26, 299, 1126, 954, 26, 293, 351, 387, 389, 5, 215, 832, 833, 1135, 20, 25, 37, 60, 73, 88, 106, 129, 140, 148, 160, 165, 172, 191, 237, 271, 284, 294, 305, 308, 334, 337, 341, 343, 350, 353, 372, 378, 383, 386, 390, 398, 400, 405, 417, 430, 637, 741, 742, 743, 878, 1126, 91, 428, 474, 614, 617, 620, 911, 921, 929, 932, 941, 948, 953, 957, 9, 19, 26, 44, 155, 161, 163, 187, 217, 251, 302, 321, 465, 466, 760, 761, 954, 1134, 1136, 26, 91, 317, 349, 765, 766, 767, 1140, 160, 1140, 1131, 1135, 383, 968, 760, 1140, 397, 1126, 284, 237, 106, 191, 343, 382, 383, 474, 842, 843, 342, 1140, 26, 354, 393, 397, 507, 516, 517, 1140, 23, 169, 765, 766, 300, 878, 1140, 214, 26, 126, 970, 971, 61, 85, 228, 246, 334, 343, 354, 393, 397, 443, 504, 505, 506, 507, 26, 354, 393, 397, 507, 397, 270, 1011, 1124, 1140, 968, 467, 1140, 164, 474, 914, 474, 315, 963, 964, 1126, 963, 958, 959, 962, 0, 477, 474, 913, 141, 205, 275, 410, 972, 973, 958, 960, 961, 117, 201, 416, 478, 811, 1132, 745, 1140, 745, 1127, 1140, 303, 745, 400, 1126, 105, 383, 799, 1132, 1140, 1146, 3, 102, 355, 1137, 1138, 1142, 1144, 1145, 1146, 26, 181, 1124, 263, 430, 8, 15, 16, 17, 68, 152, 461, 462, 463, 465, 466, 467, 468, 469, 470, 828, 830, 1088, 1089, 1140, 181, 1126, 799, 1126, 26, 1137, 1138, 799, 1126, 1126, 181, 1124, 1126, 745, 1126, 327, 356, 26, 181, 1011, 1126, 346, 1126, 745, 26, 235, 1137, 1138, 181, 1124, 215, 114, 211, 254, 311, 879, 880, 881, 474, 472, 476, 1115, 1117, 1124, 1130, 1140, 20, 25, 60, 73, 74, 84, 88, 106, 129, 140, 148, 160, 165, 191, 216, 237, 271, 294, 305, 308, 334, 337, 341, 343, 350, 353, 372, 378, 383, 386, 390, 398, 400, 405, 430, 637, 751, 752, 1135, 928, 932, 941, 948, 957, 1124, 239, 1132, 1126, 474, 181, 745, 400, 1127, 745, 400, 181, 1126, 105, 383, 387, 389, 1137, 1138, 387, 389, 68, 152, 828, 325, 1126, 1126, 1137, 181, 500, 1140, 181, 1126, 181, 745, 1126, 1126, 346, 1126, 745, 235, 1137, 315, 350, 383, 430, 237, 88, 191, 165, 305, 341, 398, 404, 631, 26, 1126, 955, 514, 1135, 1142, 833, 239, 181, 811, 812, 1126, 181, 837, 181, 1127, 3, 48, 50, 51, 63, 64, 109, 110, 130, 156, 181, 203, 204, 206, 247, 249, 262, 312, 358, 364, 393, 394, 425, 747, 1033, 1035, 1037, 1039, 1041, 1043, 1044, 1045, 1047, 1048, 1049, 1051, 1052, 1141, 1144, 400, 105, 383, 181, 798, 799, 181, 1138, 1139, 80, 430, 68, 152, 181, 829, 830, 53, 181, 798, 181, 1139, 181, 798, 181, 1126, 181, 1126, 346, 837, 181, 747, 181, 235, 1139, 215, 181, 744, 745, 181, 1125, 1126, 181, 1126, 474, 930, 570, 921, 424, 911, 922, 923, 924, 1142, 913, 1136, 761, 762, 26, 762, 1136, 762, 26, 762, 1136, 762, 762, 762, 1136, 1134, 1134, 954, 762, 303, 474, 474, 590, 590, 590, 269, 395, 478, 590, 343, 1011, 1012, 478, 874, 1135, 474, 927, 53, 430, 428, 844, 845, 1124, 1126, 1140, 43, 457, 211, 476, 272, 272, 269, 163, 1135, 395, 158, 755, 269, 4, 6, 7, 8, 10, 34, 48, 50, 51, 59, 60, 63, 64, 71, 73, 96, 97, 98, 99, 100, 101, 102, 109, 110, 112, 146, 150, 151, 156, 171, 173, 203, 204, 206, 221, 229, 230, 247, 249, 254, 259, 260, 262, 271, 282, 295, 312, 339, 355, 364, 379, 393, 394, 399, 401, 402, 411, 417, 425, 445, 446, 447, 448, 450, 451, 452, 453, 458, 465, 466, 467, 474, 958, 1036, 1039, 1042, 1043, 1044, 1046, 1047, 1048, 1051, 1052, 1056, 1058, 1059, 1060, 1062, 1084, 1085, 1086, 1090, 1109, 1114, 1121, 1122, 1132, 1133, 1134, 1135, 1140, 1120, 1121, 1135, 26, 522, 1123, 1124, 354, 504, 112, 513, 1135, 514, 1135, 43, 65, 504, 457, 365, 880, 272, 163, 395, 463, 43, 457, 211, 881, 474, 1124, 467, 1117, 1012, 3, 162, 164, 428, 906, 907, 911, 162, 915, 1056, 1093, 963, 478, 474, 916, 475, 475, 483, 428, 909, 910, 917, 918, 919, 1124, 26, 126, 969, 969, 53, 969, 153, 158, 225, 266, 976, 978, 979, 994, 996, 997, 998, 972, 973, 163, 207, 1011, 1013, 474, 285, 323, 356, 474, 809, 285, 319, 323, 356, 476, 746, 285, 323, 356, 3, 83, 135, 231, 285, 323, 356, 386, 388, 437, 515, 518, 886, 887, 888, 889, 777, 22, 131, 285, 323, 356, 421, 531, 1126, 22, 131, 356, 416, 498, 441, 181, 1011, 56, 90, 120, 149, 184, 220, 254, 285, 286, 323, 331, 340, 348, 356, 368, 376, 432, 515, 519, 814, 822, 474, 796, 1117, 323, 498, 187, 146, 22, 28, 41, 70, 120, 124, 131, 134, 159, 193, 252, 254, 264, 273, 285, 323, 326, 327, 356, 421, 527, 529, 530, 655, 4, 465, 466, 628, 1136, 26, 181, 1124, 745, 745, 474, 827, 285, 356, 476, 146, 269, 120, 285, 323, 356, 822, 22, 131, 285, 323, 356, 187, 493, 323, 437, 460, 486, 493, 120, 285, 323, 356, 822, 269, 285, 323, 146, 35, 54, 104, 190, 238, 241, 252, 284, 323, 328, 350, 356, 370, 527, 625, 626, 285, 323, 429, 655, 663, 285, 323, 356, 83, 124, 134, 285, 319, 323, 356, 517, 505, 507, 187, 146, 41, 122, 323, 356, 527, 528, 285, 323, 327, 356, 81, 123, 287, 388, 269, 22, 28, 131, 285, 323, 356, 550, 551, 493, 158, 323, 486, 493, 146, 323, 356, 527, 1126, 223, 114, 270, 442, 478, 879, 26, 126, 426, 467, 475, 804, 1056, 1094, 1095, 1141, 1056, 1116, 3, 26, 30, 31, 32, 33, 34, 35, 36, 39, 52, 59, 60, 66, 72, 74, 84, 91, 96, 97, 98, 100, 101, 102, 112, 114, 121, 126, 127, 133, 137, 141, 151, 153, 158, 160, 163, 169, 172, 176, 187, 195, 205, 207, 218, 219, 225, 229, 230, 254, 259, 266, 269, 270, 274, 275, 292, 301, 317, 330, 349, 355, 366, 380, 383, 391, 395, 396, 402, 410, 411, 417, 418, 426, 433, 434, 436, 437, 467, 1129, 1143, 1144, 1145, 1146, 1147, 1115, 418, 904, 269, 239, 811, 474, 1126, 1033, 400, 105, 383, 799, 263, 430, 68, 152, 830, 1126, 799, 799, 1126, 346, 158, 1126, 1033, 215, 745, 1126, 475, 590, 1126, 474, 718, 809, 66, 1033, 254, 163, 474, 714, 1126, 486, 35, 898, 1126, 254, 486, 441, 181, 1124, 486, 745, 745, 714, 414, 570, 269, 158, 858, 859, 486, 254, 43, 501, 254, 405, 662, 254, 916, 83, 285, 639, 81, 123, 287, 388, 24, 45, 202, 686, 35, 714, 158, 181, 486, 430, 181, 1124, 181, 615, 1124, 1124, 430, 745, 80, 783, 1132, 1132, 1126, 158, 637, 49, 103, 200, 252, 345, 146, 57, 329, 478, 532, 532, 146, 474, 146, 427, 1050, 1050, 1050, 474, 1038, 1038, 297, 474, 1040, 146, 63, 64, 1050, 1038, 1035, 439, 460, 474, 1053, 474, 1053, 478, 532, 34, 1034, 474, 107, 179, 240, 243, 347, 455, 474, 1054, 1055, 746, 1038, 441, 146, 478, 532, 146, 478, 181, 744, 181, 745, 181, 745, 146, 478, 532, 1139, 146, 532, 146, 146, 532, 146, 532, 146, 81, 123, 287, 388, 158, 146, 532, 146, 158, 181, 181, 514, 146, 478, 532, 146, 478, 532, 146, 269, 1093, 383, 475, 478, 151, 269, 402, 511, 514, 628, 925, 921, 762, 954, 762, 954, 762, 954, 762, 954, 762, 954, 954, 954, 762, 954, 474, 591, 592, 1140, 591, 26, 106, 129, 160, 165, 215, 216, 305, 337, 343, 350, 383, 386, 405, 768, 1123, 1139, 767, 1126, 187, 478, 944, 1135, 1033, 1096, 35, 1139, 783, 475, 478, 223, 1140, 158, 158, 768, 1139, 342, 1140, 514, 269, 474, 1118, 472, 958, 1097, 1056, 1113, 474, 474, 158, 474, 474, 958, 474, 474, 474, 474, 474, 474, 1056, 474, 474, 474, 474, 474, 474, 474, 474, 958, 474, 474, 474, 474, 474, 474, 474, 474, 1056, 1056, 1056, 958, 1056, 1093, 1117, 1135, 474, 1135, 3, 8, 11, 15, 16, 17, 32, 35, 40, 47, 72, 182, 187, 209, 210, 224, 257, 271, 274, 361, 458, 461, 462, 463, 465, 466, 467, 468, 469, 470, 1088, 1090, 1092, 438, 1071, 281, 1056, 207, 478, 966, 474, 1135, 1117, 966, 115, 183, 523, 478, 65, 112, 514, 35, 3, 112, 228, 512, 628, 1052, 1135, 1135, 86, 128, 1068, 95, 112, 508, 509, 511, 628, 112, 508, 223, 1124, 87, 328, 749, 475, 478, 913, 475, 478, 964, 1125, 35, 475, 478, 478, 916, 960, 960, 974, 975, 1056, 960, 155, 251, 985, 213, 252, 311, 359, 416, 26, 980, 1056, 465, 466, 981, 982, 1056, 1058, 994, 995, 979, 978, 976, 977, 158, 997, 264, 999, 976, 994, 1013, 933, 1124, 35, 1140, 356, 1093, 395, 395, 343, 187, 198, 275, 278, 358, 426, 467, 802, 803, 804, 806, 808, 810, 1033, 1141, 395, 429, 395, 343, 1129, 476, 395, 395, 343, 225, 395, 395, 386, 504, 285, 886, 888, 463, 890, 158, 169, 187, 332, 778, 779, 66, 84, 142, 160, 301, 411, 587, 588, 84, 112, 254, 395, 84, 395, 112, 254, 343, 84, 124, 134, 285, 323, 710, 343, 645, 20, 25, 60, 73, 88, 129, 140, 160, 165, 237, 271, 305, 337, 343, 350, 353, 383, 390, 398, 405, 430, 637, 1126, 146, 323, 356, 527, 269, 628, 269, 348, 220, 395, 1140, 395, 259, 628, 116, 208, 343, 354, 397, 506, 329, 356, 814, 823, 475, 797, 802, 395, 417, 386, 1124, 74, 142, 181, 577, 587, 1140, 74, 84, 848, 289, 269, 269, 339, 341, 400, 84, 848, 29, 326, 339, 341, 400, 339, 1124, 159, 193, 264, 745, 474, 395, 395, 180, 474, 536, 234, 386, 414, 437, 439, 536, 84, 478, 4, 4, 285, 187, 146, 120, 323, 356, 527, 418, 418, 253, 1033, 395, 343, 474, 828, 1126, 1124, 269, 395, 395, 343, 823, 383, 383, 395, 395, 383, 714, 106, 356, 518, 395, 488, 518, 269, 395, 395, 343, 823, 1124, 395, 395, 1124, 1035, 628, 53, 627, 628, 628, 104, 238, 241, 53, 395, 486, 245, 343, 486, 252, 626, 395, 395, 259, 1135, 655, 395, 395, 343, 1135, 395, 308, 395, 308, 714, 386, 1011, 289, 289, 84, 395, 848, 343, 395, 395, 536, 536, 745, 745, 745, 745, 1124, 42, 423, 42, 42, 395, 42, 395, 423, 343, 478, 518, 417, 672, 1138, 395, 488, 518, 1124, 395, 343, 285, 323, 311, 324, 352, 510, 879, 1094, 1094, 1095, 475, 13, 14, 478, 972, 973, 473, 479, 1130, 1140, 1124, 209, 1033, 269, 209, 441, 209, 628, 745, 745, 209, 269, 209, 209, 269, 81, 123, 287, 388, 1033, 269, 209, 209, 209, 395, 437, 561, 405, 3, 719, 720, 714, 474, 35, 146, 745, 715, 716, 1143, 24, 886, 1033, 269, 146, 642, 1126, 254, 289, 474, 487, 728, 418, 315, 430, 1124, 26, 383, 437, 818, 487, 146, 1138, 91, 169, 502, 569, 621, 685, 763, 781, 882, 146, 1135, 663, 664, 146, 269, 1135, 1138, 231, 745, 745, 745, 745, 264, 117, 201, 403, 416, 687, 688, 138, 310, 474, 672, 254, 487, 1124, 254, 623, 625, 254, 35, 264, 289, 474, 590, 590, 181, 618, 1124, 158, 181, 784, 1130, 474, 800, 800, 35, 1033, 215, 437, 439, 956, 345, 812, 811, 1033, 1127, 474, 1093, 1134, 747, 1050, 1050, 34, 1034, 393, 393, 1134, 1134, 1033, 472, 472, 1134, 395, 395, 395, 474, 395, 1134, 1038, 798, 799, 1139, 1138, 146, 532, 146, 418, 146, 418, 829, 830, 532, 798, 1139, 798, 1126, 1126, 1033, 747, 1139, 672, 146, 146, 532, 744, 745, 1125, 1126, 1126, 745, 475, 181, 1124, 921, 923, 954, 954, 954, 954, 954, 954, 591, 475, 478, 475, 166, 306, 338, 351, 384, 1125, 744, 105, 353, 798, 1125, 263, 798, 798, 1125, 1123, 1123, 1125, 744, 395, 437, 774, 141, 225, 669, 670, 20, 144, 339, 359, 945, 1011, 258, 946, 475, 478, 928, 395, 1124, 842, 843, 845, 766, 765, 766, 163, 170, 775, 1140, 25, 74, 106, 129, 140, 160, 165, 216, 237, 305, 308, 334, 337, 343, 350, 378, 383, 386, 405, 430, 637, 756, 757, 1093, 1115, 473, 1093, 1097, 1098, 433, 1110, 1111, 1056, 1093, 474, 1134, 1134, 3, 107, 179, 240, 243, 347, 455, 1099, 1100, 1135, 1093, 1093, 1093, 1134, 1134, 1056, 828, 1056, 1101, 339, 465, 466, 474, 1057, 1058, 1090, 1103, 475, 1093, 1056, 1093, 1104, 1056, 52, 163, 219, 396, 1056, 1093, 1107, 1093, 245, 1058, 1056, 1066, 1067, 1068, 245, 1056, 1068, 475, 478, 1134, 1054, 1033, 1056, 1056, 1056, 1056, 1143, 393, 39, 380, 1119, 745, 1056, 474, 958, 1108, 126, 128, 151, 254, 259, 264, 402, 412, 1056, 474, 1056, 395, 47, 182, 187, 224, 361, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 26, 33, 366, 1087, 172, 154, 1072, 339, 474, 1084, 168, 228, 383, 387, 389, 414, 967, 1124, 1122, 163, 1001, 1094, 1001, 1124, 397, 474, 1135, 478, 475, 180, 180, 532, 919, 907, 911, 912, 1056, 475, 474, 919, 910, 917, 478, 36, 121, 418, 792, 339, 340, 465, 466, 982, 984, 1058, 359, 213, 270, 478, 4, 983, 1134, 983, 339, 340, 984, 1123, 258, 363, 947, 995, 977, 418, 942, 112, 283, 474, 934, 957, 35, 1140, 474, 949, 950, 951, 1140, 475, 1138, 1126, 1126, 278, 53, 1141, 475, 804, 806, 803, 806, 1141, 275, 475, 478, 746, 1138, 1126, 1126, 1129, 1138, 1126, 1126, 1138, 1127, 1126, 112, 511, 1136, 334, 417, 765, 343, 169, 765, 474, 1126, 418, 785, 213, 213, 418, 474, 612, 181, 1126, 259, 1138, 1126, 1126, 1056, 259, 1126, 1126, 29, 326, 395, 395, 1126, 395, 646, 239, 811, 474, 745, 745, 1033, 400, 105, 383, 799, 430, 68, 152, 830, 799, 799, 1126, 745, 1126, 745, 346, 158, 1033, 745, 215, 175, 252, 285, 323, 422, 649, 650, 651, 1011, 395, 848, 343, 259, 148, 116, 208, 1138, 1126, 269, 1126, 475, 478, 1137, 1139, 1126, 323, 527, 181, 577, 254, 1033, 1126, 1134, 1140, 1124, 1126, 148, 223, 1126, 26, 417, 1126, 181, 1126, 181, 1140, 341, 400, 341, 400, 223, 1126, 26, 417, 1126, 223, 339, 1124, 22, 131, 356, 656, 657, 658, 659, 1143, 1138, 1126, 112, 164, 255, 418, 535, 538, 539, 1143, 1126, 267, 70, 267, 1126, 530, 395, 386, 1124, 269, 395, 848, 343, 1128, 1140, 1128, 478, 475, 478, 1138, 1126, 853, 854, 1143, 269, 323, 395, 680, 148, 1138, 1126, 1126, 1012, 1012, 1138, 1126, 1012, 1127, 1137, 3, 83, 136, 193, 291, 409, 417, 420, 489, 148, 1138, 1126, 1126, 323, 1138, 1126, 323, 356, 527, 625, 628, 745, 1126, 628, 745, 1126, 628, 1138, 1126, 1138, 1126, 1126, 1138, 818, 1126, 862, 863, 1143, 1126, 323, 356, 527, 528, 1124, 1124, 1126, 1126, 1126, 1126, 1138, 1126, 22, 28, 131, 285, 323, 356, 285, 323, 356, 714, 323, 356, 323, 356, 120, 323, 1025, 1140, 181, 724, 1140, 181, 1140, 1138, 1126, 1126, 1135, 1126, 22, 551, 353, 1137, 323, 356, 527, 1126, 1126, 395, 395, 79, 408, 311, 478, 972, 972, 972, 1056, 1056, 426, 1095, 475, 1056, 1116, 259, 753, 1135, 35, 129, 745, 753, 753, 209, 418, 418, 753, 745, 753, 753, 745, 215, 745, 753, 753, 753, 307, 555, 267, 163, 395, 554, 191, 463, 475, 478, 1056, 1033, 745, 475, 478, 463, 687, 579, 1143, 1126, 57, 163, 343, 429, 643, 650, 651, 146, 264, 224, 571, 573, 575, 577, 584, 587, 23, 187, 334, 381, 489, 490, 158, 1128, 430, 1124, 35, 681, 384, 1012, 714, 500, 1140, 501, 274, 570, 1126, 160, 745, 1093, 308, 1135, 714, 714, 714, 714, 264, 269, 274, 474, 714, 1023, 1024, 1025, 353, 146, 474, 146, 146, 145, 957, 745, 264, 571, 1140, 437, 439, 608, 437, 537, 254, 35, 590, 1135, 254, 269, 475, 801, 802, 807, 35, 215, 331, 398, 436, 813, 814, 815, 813, 269, 215, 514, 178, 178, 158, 532, 35, 1093, 475, 475, 532, 472, 457, 457, 475, 475, 1134, 473, 1134, 475, 179, 240, 1055, 240, 1055, 1055, 1134, 243, 475, 532, 744, 745, 1128, 745, 1128, 532, 532, 532, 532, 215, 532, 353, 158, 514, 532, 532, 269, 532, 254, 475, 592, 187, 187, 187, 187, 187, 441, 1125, 628, 629, 172, 769, 770, 1138, 23, 775, 395, 474, 163, 144, 359, 144, 359, 339, 416, 242, 1033, 1138, 437, 616, 1124, 1126, 163, 269, 769, 53, 532, 811, 1033, 400, 383, 799, 263, 430, 799, 799, 1033, 215, 745, 1126, 475, 473, 473, 478, 1056, 133, 1111, 1112, 35, 475, 1056, 475, 475, 475, 163, 475, 475, 475, 475, 475, 478, 475, 292, 1102, 475, 474, 1057, 1057, 1093, 11, 15, 16, 17, 187, 209, 271, 461, 462, 463, 465, 466, 467, 468, 469, 470, 1090, 1057, 475, 475, 158, 163, 1105, 1106, 475, 35, 1107, 1093, 1107, 1107, 163, 475, 475, 1143, 290, 1070, 35, 475, 478, 1056, 1143, 478, 1056, 1118, 1056, 475, 457, 1057, 1057, 139, 1093, 163, 126, 128, 151, 259, 264, 402, 412, 474, 139, 828, 1056, 380, 1119, 1056, 1108, 1056, 395, 474, 958, 474, 474, 280, 1076, 474, 1093, 387, 389, 387, 389, 1124, 968, 968, 968, 218, 340, 454, 474, 958, 1002, 1003, 1004, 1011, 1016, 1026, 1059, 1061, 1062, 1140, 434, 1021, 972, 1021, 880, 1134, 1054, 509, 919, 928, 975, 271, 1088, 1091, 459, 793, 4, 1134, 984, 270, 416, 981, 233, 1002, 434, 1022, 424, 382, 417, 935, 936, 937, 1140, 269, 938, 1140, 951, 952, 478, 1001, 463, 1118, 810, 746, 806, 806, 53, 808, 469, 1139, 1139, 269, 1125, 272, 269, 1056, 588, 1128, 474, 474, 474, 612, 191, 591, 703, 146, 532, 395, 1138, 1126, 514, 1126, 1033, 1126, 441, 745, 745, 745, 745, 81, 123, 287, 388, 1033, 1126, 632, 1126, 175, 422, 395, 395, 632, 649, 655, 323, 356, 527, 1126, 1126, 1126, 199, 1126, 259, 802, 284, 356, 395, 254, 146, 273, 653, 703, 356, 22, 131, 327, 328, 356, 531, 540, 541, 655, 849, 1126, 348, 146, 532, 146, 532, 1126, 1126, 1126, 1126, 348, 348, 223, 658, 659, 658, 475, 478, 660, 1135, 191, 475, 478, 463, 476, 1138, 1126, 323, 356, 527, 148, 1126, 1126, 1126, 285, 323, 356, 22, 131, 285, 323, 356, 1033, 253, 1033, 475, 478, 463, 1124, 395, 1139, 418, 677, 1126, 225, 291, 259, 1135, 291, 1139, 415, 1126, 395, 395, 343, 478, 818, 284, 356, 84, 395, 848, 343, 112, 158, 542, 395, 395, 235, 235, 235, 395, 395, 343, 395, 395, 343, 395, 343, 395, 343, 269, 395, 532, 1033, 254, 1135, 356, 849, 146, 532, 395, 395, 1126, 395, 343, 1138, 1126, 475, 475, 475, 1095, 473, 1033, 745, 209, 753, 1128, 1128, 209, 209, 1126, 209, 373, 374, 556, 1135, 555, 175, 253, 271, 465, 466, 628, 717, 806, 1091, 1135, 1147, 3, 720, 475, 475, 163, 714, 716, 717, 269, 66, 72, 84, 112, 114, 167, 195, 254, 259, 301, 317, 411, 580, 581, 583, 145, 433, 486, 514, 1126, 514, 653, 1124, 1124, 1124, 475, 478, 1139, 172, 334, 1139, 1134, 405, 1124, 590, 3, 158, 682, 43, 501, 325, 383, 662, 105, 916, 163, 862, 537, 591, 1124, 688, 721, 722, 1135, 475, 478, 1126, 158, 591, 1124, 615, 1124, 1126, 616, 474, 572, 1124, 475, 267, 536, 267, 269, 609, 536, 35, 146, 957, 537, 395, 146, 1011, 475, 478, 112, 463, 816, 1135, 514, 383, 805, 806, 158, 817, 815, 117, 201, 349, 416, 871, 1126, 175, 957, 1033, 475, 1134, 1053, 1053, 473, 473, 475, 532, 418, 532, 418, 532, 1126, 1126, 672, 532, 745, 146, 343, 343, 343, 343, 343, 1125, 478, 1138, 437, 478, 771, 272, 1012, 353, 144, 144, 105, 252, 1139, 768, 532, 1138, 209, 209, 209, 628, 209, 209, 209, 209, 209, 1097, 391, 1056, 137, 1033, 475, 1056, 1056, 1056, 1105, 475, 1093, 478, 1033, 1057, 1057, 1057, 1057, 126, 128, 254, 264, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1056, 1056, 1106, 1105, 1033, 475, 475, 475, 1093, 475, 478, 53, 1058, 475, 1143, 1067, 298, 377, 1069, 475, 478, 429, 1063, 35, 475, 1135, 1056, 32, 32, 1056, 475, 1056, 163, 474, 1096, 1056, 475, 139, 1057, 1057, 139, 139, 1056, 1056, 973, 434, 474, 1077, 1140, 475, 1093, 478, 968, 968, 968, 968, 1124, 1124, 1124, 958, 1016, 1026, 163, 474, 958, 1003, 1004, 35, 1005, 1006, 1140, 478, 92, 164, 197, 212, 222, 248, 333, 1008, 1006, 35, 1005, 1007, 1140, 1006, 460, 1020, 1117, 1056, 172, 986, 475, 986, 475, 475, 474, 793, 155, 217, 270, 95, 1056, 330, 940, 423, 475, 478, 1118, 82, 940, 475, 478, 950, 1022, 1056, 475, 469, 810, 405, 166, 338, 344, 351, 384, 406, 780, 158, 780, 475, 474, 595, 596, 787, 1061, 1140, 591, 591, 703, 1130, 475, 114, 195, 252, 254, 704, 1126, 1126, 35, 1126, 418, 418, 745, 745, 745, 745, 215, 746, 1138, 1126, 395, 848, 343, 395, 199, 53, 386, 1126, 146, 577, 474, 579, 372, 167, 180, 254, 536, 486, 105, 167, 254, 372, 375, 536, 626, 356, 541, 405, 1126, 1140, 348, 657, 1126, 539, 717, 1143, 284, 356, 395, 848, 343, 1126, 395, 395, 395, 343, 165, 271, 375, 726, 727, 165, 271, 734, 735, 395, 395, 343, 475, 475, 475, 854, 253, 628, 806, 855, 1091, 1135, 1147, 323, 1126, 474, 437, 678, 1136, 1135, 1135, 1135, 1126, 1126, 1126, 863, 53, 386, 1126, 1126, 1126, 1126, 424, 1126, 1126, 158, 158, 325, 158, 181, 1138, 1126, 1126, 1138, 1126, 1126, 1126, 1126, 1126, 1126, 148, 1126, 72, 533, 146, 24, 45, 405, 1140, 1126, 1135, 655, 1126, 1126, 972, 475, 209, 753, 209, 209, 753, 753, 209, 753, 486, 556, 632, 703, 437, 439, 745, 1124, 474, 745, 1126, 1057, 29, 53, 582, 115, 183, 114, 259, 213, 1124, 818, 165, 305, 699, 706, 707, 1140, 642, 289, 474, 572, 585, 194, 602, 575, 1139, 1139, 1033, 474, 537, 26, 117, 201, 349, 416, 683, 395, 679, 1138, 181, 1124, 664, 441, 269, 1002, 818, 318, 689, 475, 478, 1025, 653, 672, 475, 623, 35, 264, 289, 474, 930, 574, 576, 578, 587, 1140, 289, 603, 604, 572, 602, 78, 386, 610, 957, 618, 616, 610, 1135, 1130, 785, 807, 1056, 1056, 478, 474, 813, 405, 478, 395, 474, 632, 475, 473, 1128, 1128, 532, 353, 532, 1125, 1125, 1125, 1125, 1125, 628, 169, 770, 475, 1126, 105, 775, 163, 259, 758, 1135, 758, 758, 209, 758, 758, 758, 758, 758, 1056, 475, 475, 1106, 475, 1056, 163, 126, 128, 264, 474, 475, 444, 1065, 1093, 316, 53, 435, 435, 475, 1056, 252, 1056, 478, 1064, 1035, 1056, 1056, 1056, 1096, 475, 1056, 32, 32, 1056, 1056, 139, 475, 475, 1056, 1078, 1140, 475, 1056, 1124, 1124, 1124, 1124, 1006, 1007, 1006, 474, 449, 1058, 475, 1140, 474, 1003, 212, 279, 1009, 1003, 1009, 212, 1008, 1009, 212, 385, 1014, 474, 1140, 474, 276, 53, 176, 993, 1135, 993, 1135, 828, 264, 1121, 957, 283, 957, 937, 269, 474, 939, 463, 951, 940, 405, 475, 395, 765, 163, 703, 1056, 475, 478, 437, 72, 790, 790, 475, 475, 188, 593, 115, 183, 193, 114, 420, 532, 1033, 1128, 1128, 1126, 1126, 1126, 1126, 1126, 1139, 1126, 577, 654, 658, 1136, 582, 181, 259, 628, 582, 259, 1136, 1140, 1033, 532, 532, 463, 53, 386, 1126, 1126, 1126, 1126, 1138, 1126, 1126, 1134, 1134, 1033, 478, 1134, 1134, 478, 1138, 1126, 1126, 395, 1056, 66, 1139, 1126, 395, 395, 163, 187, 437, 1125, 1125, 745, 1125, 146, 1126, 745, 1135, 1135, 1033, 532, 532, 475, 209, 753, 753, 753, 753, 474, 557, 558, 418, 562, 563, 165, 198, 165, 163, 702, 1056, 254, 581, 112, 35, 818, 590, 418, 611, 1132, 32, 145, 187, 264, 571, 542, 143, 189, 474, 353, 418, 591, 35, 1139, 677, 501, 254, 474, 160, 1126, 1093, 250, 268, 690, 691, 692, 158, 695, 1135, 353, 537, 145, 957, 745, 264, 571, 616, 475, 478, 437, 579, 53, 608, 542, 603, 117, 131, 298, 1126, 437, 883, 35, 163, 269, 474, 1135, 804, 819, 820, 1141, 1033, 158, 1124, 163, 395, 839, 196, 633, 532, 532, 532, 1126, 272, 207, 532, 769, 758, 475, 1057, 163, 474, 1096, 474, 475, 478, 475, 1058, 316, 475, 423, 369, 475, 475, 475, 1056, 1056, 1056, 475, 289, 1079, 475, 1017, 1018, 1061, 474, 1070, 1005, 474, 1125, 1003, 269, 418, 1010, 1003, 212, 1003, 1132, 1024, 474, 1024, 1140, 94, 173, 336, 474, 987, 988, 989, 990, 991, 992, 1056, 1056, 436, 1073, 1073, 475, 954, 935, 84, 786, 787, 127, 1056, 769, 269, 769, 475, 593, 596, 271, 828, 745, 745, 791, 791, 317, 593, 474, 818, 475, 395, 356, 946, 475, 478, 35, 146, 533, 717, 1139, 1126, 395, 474, 799, 828, 830, 727, 474, 474, 735, 1126, 475, 474, 356, 946, 1126, 1126, 474, 474, 474, 437, 460, 901, 325, 901, 901, 158, 533, 753, 564, 565, 1143, 49, 93, 118, 135, 139, 159, 162, 177, 259, 267, 309, 559, 486, 119, 799, 35, 835, 835, 1124, 703, 475, 180, 611, 236, 594, 191, 474, 707, 699, 474, 1124, 475, 353, 26, 77, 85, 113, 180, 192, 372, 375, 586, 586, 1123, 1126, 1128, 475, 957, 678, 146, 105, 653, 163, 691, 339, 383, 693, 132, 696, 433, 698, 1126, 35, 1126, 616, 572, 1124, 475, 576, 273, 3, 605, 1144, 609, 603, 608, 340, 340, 58, 66, 228, 957, 745, 1011, 786, 806, 475, 478, 405, 1021, 367, 367, 475, 632, 252, 422, 634, 635, 1126, 532, 1057, 1096, 475, 1066, 1093, 53, 252, 456, 53, 972, 475, 478, 35, 1019, 112, 1031, 1032, 1057, 75, 1125, 475, 1056, 474, 1003, 1010, 474, 475, 1024, 475, 474, 357, 474, 475, 478, 1074, 1075, 1140, 423, 1126, 475, 478, 255, 416, 771, 780, 532, 790, 818, 474, 792, 792, 1124, 818, 591, 611, 1126, 386, 658, 180, 418, 534, 356, 946, 1126, 1096, 158, 730, 730, 1096, 1096, 1056, 386, 151, 238, 241, 259, 402, 545, 547, 548, 628, 1135, 545, 546, 543, 544, 1142, 744, 745, 744, 745, 1125, 532, 475, 478, 467, 474, 511, 566, 628, 898, 1135, 898, 254, 259, 309, 898, 898, 557, 1135, 835, 38, 185, 158, 252, 589, 474, 624, 164, 288, 362, 269, 598, 599, 600, 386, 475, 1132, 5, 708, 572, 602, 1126, 475, 653, 152, 729, 537, 883, 1124, 441, 1002, 898, 339, 371, 697, 474, 145, 653, 957, 930, 603, 572, 602, 579, 474, 610, 608, 609, 66, 272, 66, 616, 785, 475, 813, 819, 1033, 127, 437, 437, 422, 632, 653, 475, 475, 475, 316, 423, 1093, 174, 310, 340, 1080, 1020, 1017, 474, 1057, 475, 478, 35, 1027, 1028, 1140, 475, 1125, 1093, 475, 1093, 474, 1093, 988, 478, 35, 957, 1021, 787, 356, 163, 791, 611, 828, 793, 793, 590, 611, 475, 703, 1126, 624, 1056, 386, 475, 275, 346, 314, 731, 731, 475, 475, 475, 1126, 475, 478, 475, 478, 475, 478, 1134, 901, 565, 511, 567, 568, 1135, 1135, 259, 591, 467, 591, 1135, 1135, 132, 193, 625, 117, 416, 269, 600, 269, 599, 1126, 474, 475, 478, 542, 353, 653, 745, 35, 35, 474, 1126, 694, 1140, 1056, 699, 883, 616, 608, 542, 603, 474, 606, 607, 1061, 1140, 609, 610, 272, 272, 474, 188, 788, 27, 202, 872, 165, 165, 47, 95, 407, 1056, 1081, 1082, 1081, 1081, 475, 1024, 478, 1032, 1143, 475, 478, 158, 1033, 475, 475, 475, 987, 475, 1075, 1077, 949, 769, 792, 434, 597, 475, 594, 703, 946, 1126, 799, 53, 946, 395, 548, 545, 543, 745, 475, 478, 591, 339, 475, 57, 252, 329, 356, 601, 601, 475, 5, 353, 1126, 726, 957, 653, 475, 1132, 609, 603, 608, 1056, 475, 478, 790, 790, 610, 786, 474, 537, 255, 474, 867, 869, 873, 932, 941, 948, 957, 799, 799, 1082, 339, 157, 296, 157, 296, 142, 1083, 1083, 1083, 475, 1058, 1028, 276, 3, 112, 254, 259, 1029, 1030, 324, 1015, 475, 1021, 532, 793, 474, 703, 598, 946, 745, 474, 568, 698, 21, 112, 259, 1126, 653, 883, 474, 610, 608, 609, 475, 607, 791, 791, 475, 787, 789, 610, 868, 869, 870, 958, 959, 478, 478, 32, 95, 172, 252, 392, 1070, 1057, 1057, 259, 1030, 474, 1056, 703, 547, 145, 653, 4, 700, 701, 1134, 1135, 1143, 609, 610, 790, 788, 475, 478, 1021, 475, 477, 395, 163, 1082, 339, 277, 75, 1056, 475, 475, 699, 475, 478, 610, 791, 537, 787, 870, 367, 367, 1027, 475, 1132, 701, 610, 437, 437, 475, 474, 1021, 165, 165, 700, 799, 799, 475 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { 0, 480, 481, 482, 482, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 484, 485, 486, 486, 486, 487, 487, 488, 488, 489, 489, 489, 489, 489, 489, 489, 489, 489, 490, 490, 490, 490, 490, 490, 491, 492, 492, 493, 493, 494, 494, 494, 494, 495, 495, 495, 495, 495, 495, 496, 497, 498, 498, 499, 499, 499, 499, 500, 500, 501, 501, 502, 502, 502, 502, 502, 502, 503, 503, 503, 504, 504, 504, 505, 505, 505, 505, 506, 506, 506, 506, 506, 506, 506, 506, 506, 506, 506, 507, 507, 508, 508, 509, 509, 510, 510, 510, 510, 511, 511, 511, 511, 512, 512, 512, 512, 512, 512, 512, 513, 513, 513, 514, 514, 515, 516, 516, 516, 516, 517, 517, 518, 518, 519, 519, 520, 520, 520, 520, 520, 521, 522, 522, 523, 523, 524, 525, 525, 525, 525, 525, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 527, 527, 528, 528, 529, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 531, 531, 532, 532, 532, 533, 533, 534, 534, 535, 535, 535, 535, 536, 537, 537, 538, 538, 539, 539, 539, 539, 540, 540, 541, 541, 541, 541, 542, 542, 542, 542, 543, 544, 544, 545, 545, 545, 545, 545, 546, 546, 547, 547, 548, 548, 548, 549, 550, 550, 551, 551, 551, 551, 552, 552, 553, 553, 554, 554, 555, 555, 556, 556, 556, 557, 557, 558, 558, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 560, 560, 561, 561, 562, 562, 563, 563, 564, 564, 565, 566, 566, 566, 566, 566, 567, 567, 568, 569, 569, 569, 569, 569, 569, 570, 570, 570, 570, 570, 570, 570, 570, 571, 571, 572, 572, 573, 573, 574, 574, 575, 575, 575, 576, 576, 577, 578, 578, 579, 579, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 583, 583, 583, 583, 584, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 588, 588, 588, 588, 588, 588, 588, 589, 589, 590, 590, 591, 591, 592, 593, 593, 594, 594, 594, 594, 595, 595, 596, 596, 597, 597, 598, 598, 598, 598, 598, 599, 600, 601, 601, 601, 601, 601, 602, 602, 603, 603, 604, 605, 605, 606, 606, 607, 607, 607, 608, 608, 608, 608, 609, 609, 609, 609, 610, 610, 611, 611, 612, 613, 613, 614, 614, 615, 616, 616, 616, 617, 617, 618, 619, 619, 620, 621, 621, 622, 622, 623, 623, 624, 624, 625, 625, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 627, 627, 628, 628, 628, 628, 629, 629, 630, 630, 631, 631, 632, 632, 633, 633, 634, 634, 635, 635, 636, 636, 637, 637, 638, 639, 639, 640, 640, 641, 641, 642, 642, 643, 643, 643, 643, 644, 645, 645, 646, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 648, 649, 649, 649, 649, 650, 650, 651, 651, 652, 652, 653, 653, 654, 654, 655, 656, 656, 657, 657, 657, 657, 658, 659, 660, 661, 661, 662, 662, 663, 663, 664, 664, 665, 665, 665, 666, 666, 666, 666, 667, 667, 668, 669, 669, 670, 670, 671, 671, 672, 672, 673, 673, 674, 675, 676, 677, 677, 678, 678, 679, 679, 680, 680, 681, 681, 682, 682, 683, 683, 683, 683, 683, 684, 685, 685, 686, 686, 686, 687, 687, 688, 688, 688, 688, 688, 689, 689, 690, 690, 691, 692, 692, 693, 693, 694, 695, 695, 696, 696, 697, 697, 698, 698, 699, 699, 700, 700, 700, 701, 701, 701, 701, 702, 702, 703, 703, 704, 704, 704, 704, 704, 704, 705, 705, 706, 706, 707, 708, 708, 709, 710, 710, 710, 710, 711, 712, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 714, 715, 715, 716, 716, 717, 717, 717, 717, 717, 717, 718, 719, 719, 720, 721, 721, 722, 722, 723, 723, 723, 723, 724, 724, 725, 726, 726, 727, 727, 727, 727, 727, 728, 728, 729, 729, 730, 730, 730, 731, 731, 732, 733, 733, 734, 734, 735, 735, 736, 736, 737, 737, 738, 739, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 742, 742, 742, 742, 742, 742, 742, 743, 743, 743, 744, 744, 745, 745, 746, 746, 747, 747, 748, 749, 749, 749, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 753, 753, 754, 754, 754, 754, 754, 754, 754, 754, 754, 755, 755, 756, 756, 756, 756, 756, 756, 757, 757, 757, 757, 757, 757, 757, 757, 758, 758, 759, 759, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 761, 761, 762, 762, 763, 764, 764, 765, 765, 765, 765, 765, 766, 766, 767, 767, 767, 767, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 769, 769, 770, 770, 771, 771, 772, 773, 773, 774, 774, 775, 775, 776, 777, 777, 778, 778, 778, 779, 779, 779, 780, 780, 780, 780, 780, 780, 781, 781, 782, 782, 783, 783, 784, 784, 785, 785, 786, 786, 787, 787, 787, 788, 788, 789, 789, 790, 790, 791, 791, 792, 792, 792, 793, 793, 793, 794, 794, 794, 794, 795, 795, 796, 796, 797, 797, 798, 798, 799, 799, 799, 799, 800, 800, 801, 801, 802, 802, 802, 802, 802, 803, 803, 803, 803, 803, 804, 805, 806, 806, 806, 807, 807, 807, 808, 809, 809, 809, 809, 810, 810, 811, 812, 812, 813, 813, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 815, 815, 815, 815, 815, 816, 816, 817, 817, 818, 818, 819, 820, 820, 821, 821, 821, 822, 822, 823, 823, 824, 824, 824, 824, 824, 824, 825, 825, 826, 826, 827, 827, 827, 827, 828, 828, 829, 829, 830, 831, 832, 832, 833, 833, 834, 834, 834, 835, 835, 835, 836, 837, 837, 838, 839, 839, 839, 839, 840, 841, 841, 841, 841, 842, 842, 843, 843, 843, 844, 844, 845, 846, 846, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 848, 848, 849, 849, 850, 850, 850, 850, 850, 850, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 852, 853, 853, 854, 854, 855, 855, 855, 855, 855, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 857, 858, 858, 859, 859, 860, 860, 860, 860, 861, 862, 862, 863, 864, 864, 864, 864, 864, 864, 865, 865, 866, 867, 867, 867, 868, 868, 869, 869, 869, 869, 869, 870, 870, 871, 871, 871, 871, 872, 872, 872, 873, 874, 874, 875, 876, 876, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 878, 878, 878, 879, 879, 879, 879, 879, 880, 880, 880, 881, 881, 882, 882, 882, 882, 883, 883, 883, 883, 884, 885, 886, 886, 887, 887, 888, 888, 888, 889, 889, 889, 889, 889, 889, 889, 890, 890, 891, 891, 891, 892, 893, 893, 894, 895, 895, 896, 897, 897, 897, 897, 897, 897, 897, 898, 898, 899, 900, 900, 900, 900, 900, 900, 901, 901, 902, 903, 903, 903, 904, 904, 905, 905, 906, 906, 907, 907, 907, 907, 907, 908, 908, 909, 909, 910, 911, 911, 912, 912, 913, 913, 914, 914, 915, 915, 916, 916, 917, 918, 918, 919, 919, 920, 920, 920, 920, 921, 921, 921, 921, 921, 921, 921, 921, 921, 922, 922, 923, 924, 924, 925, 925, 925, 926, 927, 927, 928, 928, 928, 928, 929, 929, 929, 930, 930, 931, 931, 931, 931, 932, 933, 933, 934, 934, 934, 934, 934, 935, 935, 936, 936, 937, 938, 938, 938, 939, 939, 939, 940, 940, 941, 942, 942, 943, 944, 944, 945, 945, 945, 945, 945, 945, 945, 945, 946, 946, 947, 947, 947, 948, 949, 949, 950, 950, 951, 952, 952, 953, 954, 955, 955, 955, 955, 955, 956, 956, 956, 957, 957, 958, 958, 959, 959, 959, 959, 959, 959, 959, 959, 960, 960, 961, 961, 961, 961, 961, 961, 961, 962, 962, 962, 963, 963, 964, 965, 965, 966, 966, 967, 967, 967, 967, 967, 967, 967, 967, 967, 968, 968, 969, 969, 969, 970, 970, 971, 971, 972, 972, 973, 974, 974, 975, 975, 976, 976, 976, 976, 977, 977, 978, 978, 978, 978, 979, 979, 980, 980, 981, 982, 982, 982, 983, 983, 984, 984, 985, 985, 986, 986, 987, 987, 988, 988, 988, 988, 988, 989, 990, 991, 992, 993, 993, 994, 994, 995, 995, 996, 996, 997, 998, 998, 998, 998, 999, 999, 1000, 1000, 1001, 1001, 1002, 1002, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1004, 1004, 1004, 1004, 1004, 1004, 1005, 1005, 1005, 1005, 1006, 1006, 1007, 1007, 1007, 1007, 1007, 1008, 1008, 1008, 1008, 1009, 1009, 1010, 1010, 1011, 1011, 1011, 1011, 1012, 1012, 1013, 1013, 1013, 1014, 1015, 1015, 1016, 1016, 1017, 1018, 1018, 1019, 1019, 1020, 1020, 1021, 1021, 1022, 1022, 1022, 1023, 1023, 1024, 1024, 1025, 1026, 1026, 1027, 1027, 1028, 1028, 1028, 1029, 1029, 1030, 1030, 1030, 1030, 1031, 1031, 1032, 1032, 1033, 1033, 1033, 1033, 1033, 1033, 1034, 1034, 1034, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1036, 1036, 1036, 1036, 1037, 1037, 1038, 1038, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1040, 1040, 1041, 1041, 1042, 1042, 1043, 1044, 1045, 1045, 1046, 1046, 1047, 1048, 1049, 1049, 1049, 1049, 1049, 1049, 1050, 1050, 1051, 1051, 1051, 1051, 1052, 1053, 1053, 1053, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1055, 1055, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1060, 1060, 1061, 1061, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1063, 1063, 1064, 1064, 1064, 1064, 1065, 1066, 1066, 1067, 1067, 1068, 1068, 1069, 1069, 1069, 1070, 1070, 1070, 1070, 1071, 1071, 1072, 1072, 1073, 1073, 1074, 1074, 1075, 1076, 1076, 1076, 1077, 1078, 1078, 1079, 1079, 1080, 1080, 1080, 1080, 1081, 1081, 1082, 1082, 1082, 1082, 1082, 1083, 1083, 1083, 1083, 1083, 1084, 1084, 1084, 1085, 1085, 1086, 1087, 1087, 1087, 1088, 1088, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1090, 1090, 1091, 1091, 1092, 1092, 1092, 1092, 1092, 1092, 1093, 1093, 1094, 1094, 1095, 1095, 1095, 1096, 1096, 1097, 1097, 1097, 1098, 1098, 1099, 1099, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1101, 1101, 1102, 1103, 1103, 1104, 1104, 1104, 1104, 1104, 1104, 1105, 1106, 1107, 1107, 1107, 1108, 1108, 1109, 1110, 1110, 1111, 1112, 1112, 1113, 1113, 1114, 1114, 1115, 1115, 1115, 1115, 1116, 1116, 1117, 1117, 1118, 1118, 1119, 1119, 1120, 1120, 1121, 1121, 1122, 1122, 1122, 1122, 1123, 1123, 1124, 1124, 1125, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1132, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1134, 1135, 1136, 1136, 1136, 1137, 1138, 1138, 1138, 1139, 1139, 1140, 1140, 1140, 1141, 1141, 1141, 1142, 1142, 1142, 1142, 1143, 1143, 1143, 1143, 1143, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, 5, 1, 1, 0, 2, 0, 2, 0, 2, 2, 3, 3, 1, 3, 3, 2, 1, 1, 2, 2, 2, 3, 3, 5, 5, 5, 0, 3, 5, 5, 5, 5, 3, 5, 3, 5, 3, 5, 5, 6, 1, 1, 6, 4, 9, 7, 1, 0, 2, 0, 1, 1, 1, 1, 1, 1, 2, 3, 3, 2, 5, 1, 3, 3, 3, 3, 1, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 3, 5, 1, 1, 1, 1, 1, 0, 1, 1, 2, 1, 2, 3, 2, 1, 1, 2, 1, 2, 1, 2, 3, 4, 3, 2, 4, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 4, 6, 4, 6, 10, 13, 4, 6, 4, 10, 13, 4, 6, 4, 6, 5, 7, 11, 14, 1, 3, 4, 3, 3, 2, 5, 3, 6, 4, 6, 6, 6, 6, 5, 5, 6, 9, 4, 5, 7, 6, 4, 8, 4, 2, 4, 3, 6, 4, 3, 3, 3, 3, 2, 2, 3, 4, 4, 3, 3, 3, 3, 3, 3, 4, 4, 3, 2, 3, 2, 2, 3, 3, 2, 2, 3, 4, 4, 4, 5, 1, 3, 2, 1, 1, 0, 2, 0, 2, 0, 1, 1, 1, 3, 3, 2, 0, 1, 3, 3, 1, 5, 3, 1, 2, 1, 3, 2, 3, 6, 6, 10, 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, 4, 1, 3, 4, 6, 4, 8, 2, 2, 11, 9, 1, 1, 1, 0, 1, 1, 1, 1, 3, 2, 0, 1, 1, 1, 3, 3, 1, 1, 3, 3, 3, 3, 4, 3, 2, 1, 0, 2, 0, 3, 0, 1, 0, 1, 3, 2, 1, 1, 1, 3, 0, 1, 3, 1, 12, 15, 11, 14, 13, 16, 1, 1, 2, 2, 2, 2, 1, 0, 1, 0, 3, 0, 1, 3, 1, 3, 1, 1, 1, 1, 1, 4, 2, 4, 2, 0, 3, 1, 1, 2, 2, 1, 3, 4, 5, 2, 5, 5, 1, 2, 1, 2, 2, 2, 3, 3, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 5, 8, 3, 9, 4, 10, 11, 2, 0, 3, 0, 1, 3, 1, 4, 0, 2, 2, 2, 0, 1, 3, 3, 6, 4, 0, 1, 1, 2, 2, 0, 3, 3, 2, 1, 1, 2, 2, 4, 0, 1, 0, 6, 1, 1, 1, 3, 3, 3, 5, 2, 2, 2, 0, 3, 4, 4, 0, 2, 0, 4, 0, 3, 8, 11, 7, 10, 5, 2, 3, 0, 8, 11, 4, 1, 0, 6, 5, 8, 4, 6, 1, 0, 3, 0, 1, 2, 2, 2, 1, 2, 3, 2, 2, 2, 2, 3, 3, 3, 1, 3, 1, 0, 1, 2, 2, 1, 1, 3, 6, 10, 1, 0, 1, 2, 2, 0, 2, 2, 1, 0, 5, 7, 1, 0, 7, 2, 0, 3, 5, 5, 8, 2, 0, 2, 2, 2, 1, 5, 2, 0, 2, 7, 6, 10, 6, 6, 6, 6, 7, 6, 9, 9, 6, 6, 6, 7, 6, 8, 8, 8, 8, 6, 6, 7, 7, 8, 6, 9, 6, 7, 2, 2, 2, 2, 1, 2, 1, 0, 7, 6, 4, 0, 1, 3, 4, 1, 3, 1, 2, 2, 2, 2, 1, 1, 10, 13, 2, 0, 2, 2, 1, 0, 5, 4, 4, 11, 14, 12, 15, 5, 7, 11, 2, 1, 4, 0, 8, 11, 1, 1, 7, 9, 8, 10, 8, 4, 0, 5, 0, 2, 0, 2, 0, 2, 0, 2, 0, 1, 1, 1, 1, 1, 8, 16, 20, 1, 1, 2, 1, 3, 1, 1, 1, 3, 1, 2, 0, 1, 2, 4, 1, 1, 1, 1, 1, 3, 0, 1, 0, 1, 1, 4, 0, 1, 1, 1, 3, 0, 1, 1, 1, 1, 2, 0, 0, 2, 2, 1, 2, 2, 2, 2, 11, 13, 1, 3, 5, 1, 3, 5, 1, 2, 2, 1, 8, 4, 5, 4, 4, 4, 3, 7, 8, 6, 6, 6, 6, 6, 4, 7, 5, 8, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 3, 1, 0, 1, 3, 7, 9, 9, 8, 3, 0, 13, 1, 3, 5, 5, 3, 6, 2, 1, 0, 2, 0, 2, 4, 0, 1, 0, 6, 8, 8, 1, 3, 5, 5, 7, 9, 7, 9, 5, 6, 6, 4, 6, 4, 6, 8, 4, 6, 4, 6, 5, 7, 1, 1, 1, 2, 1, 2, 1, 1, 1, 3, 3, 3, 3, 2, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 2, 2, 3, 1, 3, 5, 2, 2, 0, 6, 6, 6, 6, 6, 6, 6, 8, 9, 8, 6, 6, 8, 9, 8, 9, 9, 7, 10, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 3, 3, 3, 3, 2, 1, 2, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 8, 8, 8, 8, 8, 8, 9, 8, 8, 2, 0, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 3, 3, 3, 3, 4, 4, 3, 3, 3, 4, 4, 3, 4, 4, 1, 1, 1, 0, 7, 7, 10, 1, 1, 2, 4, 5, 1, 3, 2, 2, 2, 2, 1, 2, 2, 4, 3, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 5, 5, 5, 5, 5, 1, 3, 1, 2, 3, 0, 6, 6, 9, 3, 0, 3, 0, 5, 2, 0, 3, 3, 3, 7, 7, 10, 1, 1, 1, 1, 1, 1, 15, 18, 1, 0, 1, 0, 1, 0, 2, 0, 1, 3, 5, 5, 7, 4, 0, 1, 3, 2, 0, 1, 0, 1, 1, 0, 2, 2, 0, 8, 11, 6, 6, 2, 0, 3, 2, 1, 3, 1, 3, 2, 1, 1, 2, 3, 2, 1, 3, 3, 3, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 4, 5, 1, 3, 3, 1, 3, 3, 5, 6, 1, 3, 2, 1, 3, 1, 2, 4, 5, 1, 1, 1, 1, 3, 3, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 3, 3, 5, 2, 0, 2, 1, 3, 5, 5, 5, 1, 2, 1, 0, 4, 6, 4, 6, 4, 6, 4, 6, 4, 6, 3, 5, 5, 5, 1, 3, 1, 3, 2, 2, 1, 2, 1, 2, 11, 10, 10, 2, 2, 0, 9, 2, 0, 10, 11, 11, 5, 5, 8, 3, 3, 6, 6, 1, 1, 1, 1, 1, 1, 3, 1, 5, 5, 6, 6, 6, 6, 6, 8, 8, 6, 6, 7, 9, 9, 8, 10, 6, 6, 6, 6, 6, 6, 6, 8, 6, 8, 6, 8, 7, 9, 6, 8, 7, 9, 8, 10, 9, 11, 8, 10, 9, 11, 8, 8, 7, 6, 6, 6, 6, 8, 8, 8, 8, 6, 9, 1, 0, 2, 0, 7, 7, 7, 9, 8, 7, 6, 6, 6, 6, 6, 6, 6, 9, 9, 6, 6, 6, 8, 6, 8, 8, 8, 8, 6, 8, 6, 8, 7, 9, 7, 9, 6, 7, 1, 3, 3, 3, 1, 1, 1, 1, 1, 6, 6, 6, 6, 6, 6, 7, 7, 6, 9, 9, 6, 6, 6, 6, 6, 6, 8, 8, 8, 6, 7, 6, 6, 5, 1, 0, 3, 3, 5, 6, 6, 6, 8, 1, 3, 1, 5, 5, 6, 7, 4, 4, 4, 6, 13, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 3, 2, 0, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 3, 2, 5, 4, 3, 3, 3, 1, 1, 0, 3, 2, 2, 1, 2, 1, 3, 2, 1, 0, 9, 11, 12, 14, 3, 4, 4, 0, 2, 5, 1, 0, 1, 2, 3, 3, 3, 1, 2, 1, 1, 1, 1, 1, 1, 0, 5, 4, 6, 4, 3, 5, 5, 4, 4, 6, 4, 6, 6, 5, 7, 9, 6, 1, 0, 6, 11, 11, 11, 13, 9, 11, 1, 1, 10, 4, 2, 5, 2, 0, 6, 5, 1, 3, 1, 1, 1, 1, 1, 3, 5, 1, 3, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 3, 0, 2, 1, 3, 1, 0, 2, 4, 3, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 1, 1, 1, 1, 0, 5, 3, 0, 1, 1, 1, 1, 3, 9, 12, 3, 0, 2, 3, 2, 3, 7, 1, 3, 1, 4, 4, 7, 2, 1, 1, 1, 3, 2, 8, 5, 0, 4, 3, 0, 2, 0, 7, 2, 0, 5, 3, 0, 2, 2, 2, 3, 1, 3, 1, 2, 1, 0, 1, 2, 0, 8, 1, 3, 3, 5, 2, 1, 3, 7, 1, 0, 3, 2, 2, 2, 0, 2, 2, 1, 1, 3, 3, 1, 2, 4, 4, 2, 3, 5, 5, 1, 1, 9, 9, 1, 2, 4, 4, 4, 2, 2, 3, 1, 3, 6, 1, 0, 2, 0, 3, 3, 4, 4, 4, 4, 3, 2, 1, 1, 0, 1, 1, 0, 1, 5, 1, 0, 1, 0, 3, 1, 3, 4, 3, 2, 2, 1, 1, 1, 0, 2, 4, 5, 4, 2, 3, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 3, 0, 1, 3, 1, 1, 1, 1, 1, 2, 4, 4, 5, 2, 0, 1, 3, 1, 0, 1, 2, 3, 2, 4, 2, 3, 2, 0, 4, 5, 2, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 1, 4, 3, 4, 5, 4, 5, 4, 5, 2, 4, 1, 1, 0, 1, 4, 5, 4, 0, 2, 2, 2, 1, 1, 0, 4, 2, 1, 2, 2, 4, 1, 3, 1, 2, 3, 6, 4, 0, 2, 6, 2, 1, 3, 4, 0, 2, 0, 2, 0, 2, 4, 0, 1, 0, 1, 3, 3, 7, 12, 1, 3, 2, 3, 3, 1, 2, 2, 2, 2, 1, 1, 3, 3, 2, 2, 3, 5, 6, 2, 3, 3, 4, 0, 1, 1, 1, 1, 1, 2, 4, 1, 1, 1, 1, 2, 3, 3, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 3, 0, 1, 1, 1, 1, 5, 2, 1, 1, 1, 1, 4, 1, 2, 2, 1, 3, 3, 2, 1, 0, 5, 2, 5, 2, 1, 3, 3, 0, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 0, 1, 4, 1, 3, 3, 5, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 2, 2, 3, 5, 4, 6, 3, 5, 4, 6, 4, 6, 5, 7, 3, 2, 4, 2, 3, 3, 4, 3, 4, 3, 4, 5, 6, 6, 7, 6, 7, 6, 7, 3, 4, 4, 6, 2, 3, 4, 1, 1, 3, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 5, 6, 6, 7, 3, 4, 1, 1, 2, 4, 1, 1, 1, 2, 2, 2, 2, 1, 1, 4, 3, 5, 6, 8, 6, 6, 4, 4, 1, 1, 1, 5, 1, 1, 4, 1, 4, 1, 4, 1, 4, 1, 1, 1, 1, 1, 1, 6, 4, 4, 4, 4, 6, 5, 5, 5, 4, 6, 4, 4, 4, 4, 5, 7, 7, 9, 5, 4, 6, 5, 7, 7, 7, 2, 3, 3, 3, 4, 0, 4, 1, 3, 3, 1, 1, 1, 2, 2, 0, 2, 4, 4, 6, 5, 0, 5, 0, 2, 0, 1, 3, 3, 2, 2, 0, 6, 1, 0, 3, 0, 3, 3, 3, 0, 1, 4, 2, 2, 2, 2, 2, 3, 2, 2, 3, 0, 4, 3, 5, 4, 3, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 4, 1, 4, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 3, 1, 3, 3, 3, 2, 1, 3, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 4, 3, 2, 3, 0, 3, 3, 2, 2, 1, 0, 2, 2, 3, 2, 1, 1, 3, 5, 1, 2, 4, 2, 0, 1, 0, 1, 2, 2, 2, 3, 5, 1, 0, 1, 2, 0, 2, 1, 0, 1, 0, 1, 3, 3, 2, 1, 1, 1, 3, 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 6, 2, 3, 5, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; #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 (&yylloc, yyscanner, YY_("syntax error: cannot back up")); \ YYERROR; \ } \ while (0) /* Error token number */ #define YYTERROR 1 #define YYERRCODE 256 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends the previous symbol: RHS[0] (always defined). */ #ifndef YYLLOC_DEFAULT # define YYLLOC_DEFAULT(Current, Rhs, N) \ do \ if (N) \ { \ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ } \ else \ { \ (Current).first_line = (Current).last_line = \ YYRHSLOC (Rhs, 0).last_line; \ (Current).first_column = (Current).last_column = \ YYRHSLOC (Rhs, 0).last_column; \ } \ while (0) #endif #define YYRHSLOC(Rhs, K) ((Rhs)[K]) /* Enable debugging if requested. */ #if YYDEBUG # ifndef YYFPRINTF # include /* INFRINGES ON USER NAME SPACE */ # define YYFPRINTF fprintf # endif # define YYDPRINTF(Args) \ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (0) /* YY_LOCATION_PRINT -- Print the location on the stream. This macro was not mandated originally: define only if we know we won't break user code: when these are the locations we know. */ #ifndef YY_LOCATION_PRINT # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL /* Print *YYLOCP on YYO. Private, do not rely on its existence. */ YY_ATTRIBUTE_UNUSED static int yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp) { int res = 0; int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0; if (0 <= yylocp->first_line) { res += YYFPRINTF (yyo, "%d", yylocp->first_line); if (0 <= yylocp->first_column) res += YYFPRINTF (yyo, ".%d", yylocp->first_column); } if (0 <= yylocp->last_line) { if (yylocp->first_line < yylocp->last_line) { res += YYFPRINTF (yyo, "-%d", yylocp->last_line); if (0 <= end_col) res += YYFPRINTF (yyo, ".%d", end_col); } else if (0 <= end_col && yylocp->first_column < end_col) res += YYFPRINTF (yyo, "-%d", end_col); } return res; } # define YY_LOCATION_PRINT(File, Loc) \ yy_location_print_ (File, &(Loc)) # else # define YY_LOCATION_PRINT(File, Loc) ((void) 0) # endif #endif # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ Type, Value, Location, yyscanner); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) /*-----------------------------------. | Print this symbol's value on YYO. | `-----------------------------------*/ static void yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner) { FILE *yyoutput = yyo; YYUSE (yyoutput); YYUSE (yylocationp); YYUSE (yyscanner); if (!yyvaluep) return; # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyo, yytoknum[yytype], *yyvaluep); # endif YYUSE (yytype); } /*---------------------------. | Print this symbol on YYO. | `---------------------------*/ static void yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner) { YYFPRINTF (yyo, "%s %s (", yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); YY_LOCATION_PRINT (yyo, *yylocationp); YYFPRINTF (yyo, ": "); yy_symbol_value_print (yyo, yytype, yyvaluep, yylocationp, yyscanner); YYFPRINTF (yyo, ")"); } /*------------------------------------------------------------------. | 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, YYLTYPE *yylsp, int yyrule, core_yyscan_t yyscanner) { unsigned long 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)] , &(yylsp[(yyi + 1) - (yynrhs)]) , yyscanner); YYFPRINTF (stderr, "\n"); } } # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ yy_reduce_print (yyssp, yyvsp, yylsp, Rule, yyscanner); \ } 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[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; else goto append; append: 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 (YYSIZE_T) (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) yysize = yysize1; else return 2; } } } } switch (yycount) { # define YYCASE_(N, S) \ case N: \ yyformat = S; \ break default: /* Avoid compiler warnings. */ 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) yysize = yysize1; else return 2; } 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, YYLTYPE *yylocationp, core_yyscan_t yyscanner) { YYUSE (yyvaluep); YYUSE (yylocationp); YYUSE (yyscanner); 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 (core_yyscan_t yyscanner) { /* 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); /* Location data for the lookahead symbol. */ static YYLTYPE yyloc_default # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL = { 1, 1, 1, 1 } # endif ; YYLTYPE yylloc = yyloc_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. 'yyls': related to locations. 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; /* The location stack. */ YYLTYPE yylsa[YYINITDEPTH]; YYLTYPE *yyls; YYLTYPE *yylsp; /* The locations where the error started and ended. */ YYLTYPE yyerror_range[3]; 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; YYLTYPE yyloc; #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), yylsp -= (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; yylsp = yyls = yylsa; yystacksize = YYINITDEPTH; YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ yylsp[0] = yylloc; 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++; /*--------------------------------------------------------------------. | yynewstate -- set current state (the top of the stack) to yystate. | `--------------------------------------------------------------------*/ yysetstate: *yyssp = (yytype_int16) yystate; if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE goto yyexhaustedlab; #else { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1); # if defined 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; YYLTYPE *yyls1 = yyls; /* 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), &yyls1, yysize * sizeof (*yylsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; yyls = yyls1; } # else /* defined YYSTACK_RELOCATE */ /* 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); YYSTACK_RELOCATE (yyls_alloc, yyls); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; yylsp = yyls + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) YYABORT; } #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ 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, &yylloc, yyscanner); } 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 *++yylsp = yylloc; 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]; /* Default location. */ YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); yyerror_range[1] = yyloc; YY_REDUCE_PRINT (yyn); switch (yyn) { case 2: #line 785 "gram.y" /* yacc.c:1652 */ { pg_yyget_extra(yyscanner)->parsetree = (yyvsp[0].list); } #line 25368 "gram.c" /* yacc.c:1652 */ break; case 3: #line 801 "gram.y" /* yacc.c:1652 */ { if ((yyvsp[-2].list) != NIL) { /* update length of previous stmt */ updateRawStmtEnd(llast_node(RawStmt, (yyvsp[-2].list)), (yylsp[-1])); } if ((yyvsp[0].node) != NULL) (yyval.list) = lappend((yyvsp[-2].list), makeRawStmt((yyvsp[0].node), (yylsp[-1]) + 1)); else (yyval.list) = (yyvsp[-2].list); } #line 25384 "gram.c" /* yacc.c:1652 */ break; case 4: #line 813 "gram.y" /* yacc.c:1652 */ { if ((yyvsp[0].node) != NULL) (yyval.list) = list_make1(makeRawStmt((yyvsp[0].node), 0)); else (yyval.list) = NIL; } #line 25395 "gram.c" /* yacc.c:1652 */ break; case 129: #line 947 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 25401 "gram.c" /* yacc.c:1652 */ break; case 130: #line 957 "gram.y" /* yacc.c:1652 */ { CallStmt *n = makeNode(CallStmt); n->funccall = castNode(FuncCall, (yyvsp[0].node)); (yyval.node) = (Node *)n; } #line 25411 "gram.c" /* yacc.c:1652 */ break; case 131: #line 972 "gram.y" /* yacc.c:1652 */ { CreateRoleStmt *n = makeNode(CreateRoleStmt); n->stmt_type = ROLESTMT_ROLE; n->role = (yyvsp[-2].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 25423 "gram.c" /* yacc.c:1652 */ break; case 132: #line 982 "gram.y" /* yacc.c:1652 */ {} #line 25429 "gram.c" /* yacc.c:1652 */ break; case 133: #line 983 "gram.y" /* yacc.c:1652 */ {} #line 25435 "gram.c" /* yacc.c:1652 */ break; case 134: #line 984 "gram.y" /* yacc.c:1652 */ {} #line 25441 "gram.c" /* yacc.c:1652 */ break; case 135: #line 993 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 25447 "gram.c" /* yacc.c:1652 */ break; case 136: #line 994 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 25453 "gram.c" /* yacc.c:1652 */ break; case 137: #line 998 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 25459 "gram.c" /* yacc.c:1652 */ break; case 138: #line 999 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 25465 "gram.c" /* yacc.c:1652 */ break; case 139: #line 1004 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("password", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } #line 25474 "gram.c" /* yacc.c:1652 */ break; case 140: #line 1009 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("password", NULL, (yylsp[-1])); } #line 25482 "gram.c" /* yacc.c:1652 */ break; case 141: #line 1013 "gram.y" /* yacc.c:1652 */ { /* * These days, passwords are always stored in encrypted * form, so there is no difference between PASSWORD and * ENCRYPTED PASSWORD. */ (yyval.defelt) = makeDefElem("password", (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); } #line 25496 "gram.c" /* yacc.c:1652 */ break; case 142: #line 1023 "gram.y" /* yacc.c:1652 */ { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("UNENCRYPTED PASSWORD is no longer supported"), errhint("Remove UNENCRYPTED to store the password in encrypted form instead."), parser_errposition((yylsp[-2])))); } #line 25508 "gram.c" /* yacc.c:1652 */ break; case 143: #line 1031 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("inherit", (Node *)makeInteger(true), (yylsp[0])); } #line 25516 "gram.c" /* yacc.c:1652 */ break; case 144: #line 1035 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("connectionlimit", (Node *)makeInteger((yyvsp[0].ival)), (yylsp[-2])); } #line 25524 "gram.c" /* yacc.c:1652 */ break; case 145: #line 1039 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("validUntil", (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); } #line 25532 "gram.c" /* yacc.c:1652 */ break; case 146: #line 1044 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("rolemembers", (Node *)(yyvsp[0].list), (yylsp[-1])); } #line 25540 "gram.c" /* yacc.c:1652 */ break; case 147: #line 1048 "gram.y" /* yacc.c:1652 */ { /* * We handle identifiers that aren't parser keywords with * the following special-case codes, to avoid bloating the * size of the main parser. */ if (strcmp((yyvsp[0].str), "superuser") == 0) (yyval.defelt) = makeDefElem("superuser", (Node *)makeInteger(true), (yylsp[0])); else if (strcmp((yyvsp[0].str), "nosuperuser") == 0) (yyval.defelt) = makeDefElem("superuser", (Node *)makeInteger(false), (yylsp[0])); else if (strcmp((yyvsp[0].str), "createrole") == 0) (yyval.defelt) = makeDefElem("createrole", (Node *)makeInteger(true), (yylsp[0])); else if (strcmp((yyvsp[0].str), "nocreaterole") == 0) (yyval.defelt) = makeDefElem("createrole", (Node *)makeInteger(false), (yylsp[0])); else if (strcmp((yyvsp[0].str), "replication") == 0) (yyval.defelt) = makeDefElem("isreplication", (Node *)makeInteger(true), (yylsp[0])); else if (strcmp((yyvsp[0].str), "noreplication") == 0) (yyval.defelt) = makeDefElem("isreplication", (Node *)makeInteger(false), (yylsp[0])); else if (strcmp((yyvsp[0].str), "createdb") == 0) (yyval.defelt) = makeDefElem("createdb", (Node *)makeInteger(true), (yylsp[0])); else if (strcmp((yyvsp[0].str), "nocreatedb") == 0) (yyval.defelt) = makeDefElem("createdb", (Node *)makeInteger(false), (yylsp[0])); else if (strcmp((yyvsp[0].str), "login") == 0) (yyval.defelt) = makeDefElem("canlogin", (Node *)makeInteger(true), (yylsp[0])); else if (strcmp((yyvsp[0].str), "nologin") == 0) (yyval.defelt) = makeDefElem("canlogin", (Node *)makeInteger(false), (yylsp[0])); else if (strcmp((yyvsp[0].str), "bypassrls") == 0) (yyval.defelt) = makeDefElem("bypassrls", (Node *)makeInteger(true), (yylsp[0])); else if (strcmp((yyvsp[0].str), "nobypassrls") == 0) (yyval.defelt) = makeDefElem("bypassrls", (Node *)makeInteger(false), (yylsp[0])); else if (strcmp((yyvsp[0].str), "noinherit") == 0) { /* * Note that INHERIT is a keyword, so it's handled by main parser, but * NOINHERIT is handled here. */ (yyval.defelt) = makeDefElem("inherit", (Node *)makeInteger(false), (yylsp[0])); } else ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("unrecognized role option \"%s\"", (yyvsp[0].str)), parser_errposition((yylsp[0])))); } #line 25589 "gram.c" /* yacc.c:1652 */ break; case 148: #line 1095 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = (yyvsp[0].defelt); } #line 25595 "gram.c" /* yacc.c:1652 */ break; case 149: #line 1098 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("sysid", (Node *)makeInteger((yyvsp[0].ival)), (yylsp[-1])); } #line 25603 "gram.c" /* yacc.c:1652 */ break; case 150: #line 1102 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("adminmembers", (Node *)(yyvsp[0].list), (yylsp[-1])); } #line 25611 "gram.c" /* yacc.c:1652 */ break; case 151: #line 1106 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("rolemembers", (Node *)(yyvsp[0].list), (yylsp[-1])); } #line 25619 "gram.c" /* yacc.c:1652 */ break; case 152: #line 1110 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("addroleto", (Node *)(yyvsp[0].list), (yylsp[-2])); } #line 25627 "gram.c" /* yacc.c:1652 */ break; case 153: #line 1114 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("addroleto", (Node *)(yyvsp[0].list), (yylsp[-2])); } #line 25635 "gram.c" /* yacc.c:1652 */ break; case 154: #line 1128 "gram.y" /* yacc.c:1652 */ { CreateRoleStmt *n = makeNode(CreateRoleStmt); n->stmt_type = ROLESTMT_USER; n->role = (yyvsp[-2].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 25647 "gram.c" /* yacc.c:1652 */ break; case 155: #line 1146 "gram.y" /* yacc.c:1652 */ { AlterRoleStmt *n = makeNode(AlterRoleStmt); n->role = (yyvsp[-2].rolespec); n->action = +1; /* add, if there are members */ n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 25659 "gram.c" /* yacc.c:1652 */ break; case 156: #line 1154 "gram.y" /* yacc.c:1652 */ { AlterRoleStmt *n = makeNode(AlterRoleStmt); n->role = (yyvsp[-2].rolespec); n->action = +1; /* add, if there are members */ n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 25671 "gram.c" /* yacc.c:1652 */ break; case 157: #line 1164 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 25677 "gram.c" /* yacc.c:1652 */ break; case 158: #line 1165 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 25683 "gram.c" /* yacc.c:1652 */ break; case 159: #line 1170 "gram.y" /* yacc.c:1652 */ { AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); n->role = (yyvsp[-2].rolespec); n->database = (yyvsp[-1].str); n->setstmt = (yyvsp[0].vsetstmt); (yyval.node) = (Node *)n; } #line 25695 "gram.c" /* yacc.c:1652 */ break; case 160: #line 1178 "gram.y" /* yacc.c:1652 */ { AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); n->role = NULL; n->database = (yyvsp[-1].str); n->setstmt = (yyvsp[0].vsetstmt); (yyval.node) = (Node *)n; } #line 25707 "gram.c" /* yacc.c:1652 */ break; case 161: #line 1186 "gram.y" /* yacc.c:1652 */ { AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); n->role = (yyvsp[-2].rolespec); n->database = (yyvsp[-1].str); n->setstmt = (yyvsp[0].vsetstmt); (yyval.node) = (Node *)n; } #line 25719 "gram.c" /* yacc.c:1652 */ break; case 162: #line 1194 "gram.y" /* yacc.c:1652 */ { AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); n->role = NULL; n->database = (yyvsp[-1].str); n->setstmt = (yyvsp[0].vsetstmt); (yyval.node) = (Node *)n; } #line 25731 "gram.c" /* yacc.c:1652 */ break; case 163: #line 1215 "gram.y" /* yacc.c:1652 */ { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = false; n->roles = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 25742 "gram.c" /* yacc.c:1652 */ break; case 164: #line 1222 "gram.y" /* yacc.c:1652 */ { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = true; n->roles = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 25753 "gram.c" /* yacc.c:1652 */ break; case 165: #line 1229 "gram.y" /* yacc.c:1652 */ { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = false; n->roles = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 25764 "gram.c" /* yacc.c:1652 */ break; case 166: #line 1236 "gram.y" /* yacc.c:1652 */ { DropRoleStmt *n = makeNode(DropRoleStmt); n->roles = (yyvsp[0].list); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 25775 "gram.c" /* yacc.c:1652 */ break; case 167: #line 1243 "gram.y" /* yacc.c:1652 */ { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = false; n->roles = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 25786 "gram.c" /* yacc.c:1652 */ break; case 168: #line 1250 "gram.y" /* yacc.c:1652 */ { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = true; n->roles = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 25797 "gram.c" /* yacc.c:1652 */ break; case 169: #line 1267 "gram.y" /* yacc.c:1652 */ { CreateRoleStmt *n = makeNode(CreateRoleStmt); n->stmt_type = ROLESTMT_GROUP; n->role = (yyvsp[-2].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 25809 "gram.c" /* yacc.c:1652 */ break; case 170: #line 1285 "gram.y" /* yacc.c:1652 */ { AlterRoleStmt *n = makeNode(AlterRoleStmt); n->role = (yyvsp[-3].rolespec); n->action = (yyvsp[-2].ival); n->options = list_make1(makeDefElem("rolemembers", (Node *)(yyvsp[0].list), (yylsp[0]))); (yyval.node) = (Node *)n; } #line 25822 "gram.c" /* yacc.c:1652 */ break; case 171: #line 1295 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = +1; } #line 25828 "gram.c" /* yacc.c:1652 */ break; case 172: #line 1296 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = -1; } #line 25834 "gram.c" /* yacc.c:1652 */ break; case 173: #line 1308 "gram.y" /* yacc.c:1652 */ { CreateSchemaStmt *n = makeNode(CreateSchemaStmt); /* One can omit the schema name or the authorization id. */ n->schemaname = (yyvsp[-3].str); n->authrole = (yyvsp[-1].rolespec); n->schemaElts = (yyvsp[0].list); n->if_not_exists = false; (yyval.node) = (Node *)n; } #line 25848 "gram.c" /* yacc.c:1652 */ break; case 174: #line 1318 "gram.y" /* yacc.c:1652 */ { CreateSchemaStmt *n = makeNode(CreateSchemaStmt); /* ...but not both */ n->schemaname = (yyvsp[-1].str); n->authrole = NULL; n->schemaElts = (yyvsp[0].list); n->if_not_exists = false; (yyval.node) = (Node *)n; } #line 25862 "gram.c" /* yacc.c:1652 */ break; case 175: #line 1328 "gram.y" /* yacc.c:1652 */ { CreateSchemaStmt *n = makeNode(CreateSchemaStmt); /* schema name can be omitted here, too */ n->schemaname = (yyvsp[-3].str); n->authrole = (yyvsp[-1].rolespec); if ((yyvsp[0].list) != NIL) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("CREATE SCHEMA IF NOT EXISTS cannot include schema elements"), parser_errposition((yylsp[0])))); n->schemaElts = (yyvsp[0].list); n->if_not_exists = true; (yyval.node) = (Node *)n; } #line 25881 "gram.c" /* yacc.c:1652 */ break; case 176: #line 1343 "gram.y" /* yacc.c:1652 */ { CreateSchemaStmt *n = makeNode(CreateSchemaStmt); /* ...but not here */ n->schemaname = (yyvsp[-1].str); n->authrole = NULL; if ((yyvsp[0].list) != NIL) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("CREATE SCHEMA IF NOT EXISTS cannot include schema elements"), parser_errposition((yylsp[0])))); n->schemaElts = (yyvsp[0].list); n->if_not_exists = true; (yyval.node) = (Node *)n; } #line 25900 "gram.c" /* yacc.c:1652 */ break; case 177: #line 1360 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 25906 "gram.c" /* yacc.c:1652 */ break; case 178: #line 1361 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 25912 "gram.c" /* yacc.c:1652 */ break; case 179: #line 1366 "gram.y" /* yacc.c:1652 */ { if ((yyloc) < 0) /* see comments for YYLLOC_DEFAULT */ (yyloc) = (yylsp[0]); (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } #line 25922 "gram.c" /* yacc.c:1652 */ break; case 180: #line 1372 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 25928 "gram.c" /* yacc.c:1652 */ break; case 187: #line 1400 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = (yyvsp[0].vsetstmt); n->is_local = false; (yyval.node) = (Node *) n; } #line 25938 "gram.c" /* yacc.c:1652 */ break; case 188: #line 1406 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = (yyvsp[0].vsetstmt); n->is_local = true; (yyval.node) = (Node *) n; } #line 25948 "gram.c" /* yacc.c:1652 */ break; case 189: #line 1412 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = (yyvsp[0].vsetstmt); n->is_local = false; (yyval.node) = (Node *) n; } #line 25958 "gram.c" /* yacc.c:1652 */ break; case 190: #line 1421 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_MULTI; n->name = "TRANSACTION"; n->args = (yyvsp[0].list); (yyval.vsetstmt) = n; } #line 25970 "gram.c" /* yacc.c:1652 */ break; case 191: #line 1429 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_MULTI; n->name = "SESSION CHARACTERISTICS"; n->args = (yyvsp[0].list); (yyval.vsetstmt) = n; } #line 25982 "gram.c" /* yacc.c:1652 */ break; case 193: #line 1441 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = (yyvsp[-2].str); n->args = (yyvsp[0].list); (yyval.vsetstmt) = n; } #line 25994 "gram.c" /* yacc.c:1652 */ break; case 194: #line 1449 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = (yyvsp[-2].str); n->args = (yyvsp[0].list); (yyval.vsetstmt) = n; } #line 26006 "gram.c" /* yacc.c:1652 */ break; case 195: #line 1457 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_DEFAULT; n->name = (yyvsp[-2].str); (yyval.vsetstmt) = n; } #line 26017 "gram.c" /* yacc.c:1652 */ break; case 196: #line 1464 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_DEFAULT; n->name = (yyvsp[-2].str); (yyval.vsetstmt) = n; } #line 26028 "gram.c" /* yacc.c:1652 */ break; case 197: #line 1473 "gram.y" /* yacc.c:1652 */ {(yyval.vsetstmt) = (yyvsp[0].vsetstmt);} #line 26034 "gram.c" /* yacc.c:1652 */ break; case 198: #line 1475 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_CURRENT; n->name = (yyvsp[-2].str); (yyval.vsetstmt) = n; } #line 26045 "gram.c" /* yacc.c:1652 */ break; case 199: #line 1483 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "timezone"; if ((yyvsp[0].node) != NULL) n->args = list_make1((yyvsp[0].node)); else n->kind = VAR_SET_DEFAULT; (yyval.vsetstmt) = n; } #line 26060 "gram.c" /* yacc.c:1652 */ break; case 200: #line 1494 "gram.y" /* yacc.c:1652 */ { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("current database cannot be changed"), parser_errposition((yylsp[0])))); (yyval.vsetstmt) = NULL; /*not reached*/ } #line 26072 "gram.c" /* yacc.c:1652 */ break; case 201: #line 1502 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "search_path"; n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0]))); (yyval.vsetstmt) = n; } #line 26084 "gram.c" /* yacc.c:1652 */ break; case 202: #line 1510 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "client_encoding"; if ((yyvsp[0].str) != NULL) n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0]))); else n->kind = VAR_SET_DEFAULT; (yyval.vsetstmt) = n; } #line 26099 "gram.c" /* yacc.c:1652 */ break; case 203: #line 1521 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "role"; n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0]))); (yyval.vsetstmt) = n; } #line 26111 "gram.c" /* yacc.c:1652 */ break; case 204: #line 1529 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "session_authorization"; n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0]))); (yyval.vsetstmt) = n; } #line 26123 "gram.c" /* yacc.c:1652 */ break; case 205: #line 1537 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_DEFAULT; n->name = "session_authorization"; (yyval.vsetstmt) = n; } #line 26134 "gram.c" /* yacc.c:1652 */ break; case 206: #line 1544 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "xmloption"; n->args = list_make1(makeStringConst((yyvsp[0].ival) == XMLOPTION_DOCUMENT ? "DOCUMENT" : "CONTENT", (yylsp[0]))); (yyval.vsetstmt) = n; } #line 26146 "gram.c" /* yacc.c:1652 */ break; case 207: #line 1553 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_MULTI; n->name = "TRANSACTION SNAPSHOT"; n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0]))); (yyval.vsetstmt) = n; } #line 26158 "gram.c" /* yacc.c:1652 */ break; case 208: #line 1562 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 26164 "gram.c" /* yacc.c:1652 */ break; case 209: #line 1564 "gram.y" /* yacc.c:1652 */ { (yyval.str) = psprintf("%s.%s", (yyvsp[-2].str), (yyvsp[0].str)); } #line 26170 "gram.c" /* yacc.c:1652 */ break; case 210: #line 1567 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 26176 "gram.c" /* yacc.c:1652 */ break; case 211: #line 1568 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 26182 "gram.c" /* yacc.c:1652 */ break; case 212: #line 1572 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); } #line 26188 "gram.c" /* yacc.c:1652 */ break; case 213: #line 1574 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeAConst((yyvsp[0].value), (yylsp[0])); } #line 26194 "gram.c" /* yacc.c:1652 */ break; case 214: #line 1577 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "read uncommitted"; } #line 26200 "gram.c" /* yacc.c:1652 */ break; case 215: #line 1578 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "read committed"; } #line 26206 "gram.c" /* yacc.c:1652 */ break; case 216: #line 1579 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "repeatable read"; } #line 26212 "gram.c" /* yacc.c:1652 */ break; case 217: #line 1580 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "serializable"; } #line 26218 "gram.c" /* yacc.c:1652 */ break; case 218: #line 1584 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "true"; } #line 26224 "gram.c" /* yacc.c:1652 */ break; case 219: #line 1585 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "false"; } #line 26230 "gram.c" /* yacc.c:1652 */ break; case 220: #line 1586 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "on"; } #line 26236 "gram.c" /* yacc.c:1652 */ break; case 221: #line 1592 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 26242 "gram.c" /* yacc.c:1652 */ break; case 222: #line 1605 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); } #line 26250 "gram.c" /* yacc.c:1652 */ break; case 223: #line 1609 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); } #line 26258 "gram.c" /* yacc.c:1652 */ break; case 224: #line 1613 "gram.y" /* yacc.c:1652 */ { TypeName *t = (yyvsp[-2].typnam); if ((yyvsp[0].list) != NIL) { A_Const *n = (A_Const *) linitial((yyvsp[0].list)); if ((n->val.val.ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("time zone interval must be HOUR or HOUR TO MINUTE"), parser_errposition((yylsp[0])))); } t->typmods = (yyvsp[0].list); (yyval.node) = makeStringConstCast((yyvsp[-1].str), (yylsp[-1]), t); } #line 26277 "gram.c" /* yacc.c:1652 */ break; case 225: #line 1628 "gram.y" /* yacc.c:1652 */ { TypeName *t = (yyvsp[-4].typnam); t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), makeIntConst((yyvsp[-2].ival), (yylsp[-2]))); (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t); } #line 26288 "gram.c" /* yacc.c:1652 */ break; case 226: #line 1634 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeAConst((yyvsp[0].value), (yylsp[0])); } #line 26294 "gram.c" /* yacc.c:1652 */ break; case 227: #line 1635 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 26300 "gram.c" /* yacc.c:1652 */ break; case 228: #line 1636 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 26306 "gram.c" /* yacc.c:1652 */ break; case 229: #line 1640 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 26312 "gram.c" /* yacc.c:1652 */ break; case 230: #line 1641 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 26318 "gram.c" /* yacc.c:1652 */ break; case 231: #line 1642 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 26324 "gram.c" /* yacc.c:1652 */ break; case 232: #line 1646 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 26330 "gram.c" /* yacc.c:1652 */ break; case 233: #line 1647 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 26336 "gram.c" /* yacc.c:1652 */ break; case 234: #line 1651 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) (yyvsp[0].vsetstmt); } #line 26342 "gram.c" /* yacc.c:1652 */ break; case 235: #line 1655 "gram.y" /* yacc.c:1652 */ { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); } #line 26348 "gram.c" /* yacc.c:1652 */ break; case 236: #line 1657 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = "timezone"; (yyval.vsetstmt) = n; } #line 26359 "gram.c" /* yacc.c:1652 */ break; case 237: #line 1664 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = "transaction_isolation"; (yyval.vsetstmt) = n; } #line 26370 "gram.c" /* yacc.c:1652 */ break; case 238: #line 1671 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = "session_authorization"; (yyval.vsetstmt) = n; } #line 26381 "gram.c" /* yacc.c:1652 */ break; case 239: #line 1681 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = (yyvsp[0].str); (yyval.vsetstmt) = n; } #line 26392 "gram.c" /* yacc.c:1652 */ break; case 240: #line 1688 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET_ALL; (yyval.vsetstmt) = n; } #line 26402 "gram.c" /* yacc.c:1652 */ break; case 241: #line 1697 "gram.y" /* yacc.c:1652 */ { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); } #line 26408 "gram.c" /* yacc.c:1652 */ break; case 242: #line 1698 "gram.y" /* yacc.c:1652 */ { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[0].node); } #line 26414 "gram.c" /* yacc.c:1652 */ break; case 243: #line 1703 "gram.y" /* yacc.c:1652 */ { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); } #line 26420 "gram.c" /* yacc.c:1652 */ break; case 244: #line 1704 "gram.y" /* yacc.c:1652 */ { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[0].node); } #line 26426 "gram.c" /* yacc.c:1652 */ break; case 245: #line 1710 "gram.y" /* yacc.c:1652 */ { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 26436 "gram.c" /* yacc.c:1652 */ break; case 246: #line 1716 "gram.y" /* yacc.c:1652 */ { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "timezone"; (yyval.node) = (Node *) n; } #line 26446 "gram.c" /* yacc.c:1652 */ break; case 247: #line 1722 "gram.y" /* yacc.c:1652 */ { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "transaction_isolation"; (yyval.node) = (Node *) n; } #line 26456 "gram.c" /* yacc.c:1652 */ break; case 248: #line 1728 "gram.y" /* yacc.c:1652 */ { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "session_authorization"; (yyval.node) = (Node *) n; } #line 26466 "gram.c" /* yacc.c:1652 */ break; case 249: #line 1734 "gram.y" /* yacc.c:1652 */ { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "all"; (yyval.node) = (Node *) n; } #line 26476 "gram.c" /* yacc.c:1652 */ break; case 250: #line 1744 "gram.y" /* yacc.c:1652 */ { ConstraintsSetStmt *n = makeNode(ConstraintsSetStmt); n->constraints = (yyvsp[-1].list); n->deferred = (yyvsp[0].boolean); (yyval.node) = (Node *) n; } #line 26487 "gram.c" /* yacc.c:1652 */ break; case 251: #line 1753 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 26493 "gram.c" /* yacc.c:1652 */ break; case 252: #line 1754 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 26499 "gram.c" /* yacc.c:1652 */ break; case 253: #line 1758 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 26505 "gram.c" /* yacc.c:1652 */ break; case 254: #line 1759 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 26511 "gram.c" /* yacc.c:1652 */ break; case 255: #line 1768 "gram.y" /* yacc.c:1652 */ { CheckPointStmt *n = makeNode(CheckPointStmt); (yyval.node) = (Node *)n; } #line 26520 "gram.c" /* yacc.c:1652 */ break; case 256: #line 1783 "gram.y" /* yacc.c:1652 */ { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_ALL; (yyval.node) = (Node *) n; } #line 26530 "gram.c" /* yacc.c:1652 */ break; case 257: #line 1789 "gram.y" /* yacc.c:1652 */ { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_TEMP; (yyval.node) = (Node *) n; } #line 26540 "gram.c" /* yacc.c:1652 */ break; case 258: #line 1795 "gram.y" /* yacc.c:1652 */ { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_TEMP; (yyval.node) = (Node *) n; } #line 26550 "gram.c" /* yacc.c:1652 */ break; case 259: #line 1801 "gram.y" /* yacc.c:1652 */ { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_PLANS; (yyval.node) = (Node *) n; } #line 26560 "gram.c" /* yacc.c:1652 */ break; case 260: #line 1807 "gram.y" /* yacc.c:1652 */ { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_SEQUENCES; (yyval.node) = (Node *) n; } #line 26570 "gram.c" /* yacc.c:1652 */ break; case 261: #line 1826 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_TABLE; n->missing_ok = false; (yyval.node) = (Node *)n; } #line 26583 "gram.c" /* yacc.c:1652 */ break; case 262: #line 1835 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_TABLE; n->missing_ok = true; (yyval.node) = (Node *)n; } #line 26596 "gram.c" /* yacc.c:1652 */ break; case 263: #line 1844 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = list_make1((yyvsp[0].node)); n->relkind = OBJECT_TABLE; n->missing_ok = false; (yyval.node) = (Node *)n; } #line 26609 "gram.c" /* yacc.c:1652 */ break; case 264: #line 1853 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = list_make1((yyvsp[0].node)); n->relkind = OBJECT_TABLE; n->missing_ok = true; (yyval.node) = (Node *)n; } #line 26622 "gram.c" /* yacc.c:1652 */ break; case 265: #line 1862 "gram.y" /* yacc.c:1652 */ { AlterTableMoveAllStmt *n = makeNode(AlterTableMoveAllStmt); n->orig_tablespacename = (yyvsp[-4].str); n->objtype = OBJECT_TABLE; n->roles = NIL; n->new_tablespacename = (yyvsp[-1].str); n->nowait = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } #line 26637 "gram.c" /* yacc.c:1652 */ break; case 266: #line 1873 "gram.y" /* yacc.c:1652 */ { AlterTableMoveAllStmt *n = makeNode(AlterTableMoveAllStmt); n->orig_tablespacename = (yyvsp[-7].str); n->objtype = OBJECT_TABLE; n->roles = (yyvsp[-4].list); n->new_tablespacename = (yyvsp[-1].str); n->nowait = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } #line 26652 "gram.c" /* yacc.c:1652 */ break; case 267: #line 1884 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_INDEX; n->missing_ok = false; (yyval.node) = (Node *)n; } #line 26665 "gram.c" /* yacc.c:1652 */ break; case 268: #line 1893 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_INDEX; n->missing_ok = true; (yyval.node) = (Node *)n; } #line 26678 "gram.c" /* yacc.c:1652 */ break; case 269: #line 1902 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = list_make1((yyvsp[0].node)); n->relkind = OBJECT_INDEX; n->missing_ok = false; (yyval.node) = (Node *)n; } #line 26691 "gram.c" /* yacc.c:1652 */ break; case 270: #line 1911 "gram.y" /* yacc.c:1652 */ { AlterTableMoveAllStmt *n = makeNode(AlterTableMoveAllStmt); n->orig_tablespacename = (yyvsp[-4].str); n->objtype = OBJECT_INDEX; n->roles = NIL; n->new_tablespacename = (yyvsp[-1].str); n->nowait = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } #line 26706 "gram.c" /* yacc.c:1652 */ break; case 271: #line 1922 "gram.y" /* yacc.c:1652 */ { AlterTableMoveAllStmt *n = makeNode(AlterTableMoveAllStmt); n->orig_tablespacename = (yyvsp[-7].str); n->objtype = OBJECT_INDEX; n->roles = (yyvsp[-4].list); n->new_tablespacename = (yyvsp[-1].str); n->nowait = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } #line 26721 "gram.c" /* yacc.c:1652 */ break; case 272: #line 1933 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_SEQUENCE; n->missing_ok = false; (yyval.node) = (Node *)n; } #line 26734 "gram.c" /* yacc.c:1652 */ break; case 273: #line 1942 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_SEQUENCE; n->missing_ok = true; (yyval.node) = (Node *)n; } #line 26747 "gram.c" /* yacc.c:1652 */ break; case 274: #line 1951 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_VIEW; n->missing_ok = false; (yyval.node) = (Node *)n; } #line 26760 "gram.c" /* yacc.c:1652 */ break; case 275: #line 1960 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_VIEW; n->missing_ok = true; (yyval.node) = (Node *)n; } #line 26773 "gram.c" /* yacc.c:1652 */ break; case 276: #line 1969 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_MATVIEW; n->missing_ok = false; (yyval.node) = (Node *)n; } #line 26786 "gram.c" /* yacc.c:1652 */ break; case 277: #line 1978 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_MATVIEW; n->missing_ok = true; (yyval.node) = (Node *)n; } #line 26799 "gram.c" /* yacc.c:1652 */ break; case 278: #line 1987 "gram.y" /* yacc.c:1652 */ { AlterTableMoveAllStmt *n = makeNode(AlterTableMoveAllStmt); n->orig_tablespacename = (yyvsp[-4].str); n->objtype = OBJECT_MATVIEW; n->roles = NIL; n->new_tablespacename = (yyvsp[-1].str); n->nowait = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } #line 26814 "gram.c" /* yacc.c:1652 */ break; case 279: #line 1998 "gram.y" /* yacc.c:1652 */ { AlterTableMoveAllStmt *n = makeNode(AlterTableMoveAllStmt); n->orig_tablespacename = (yyvsp[-7].str); n->objtype = OBJECT_MATVIEW; n->roles = (yyvsp[-4].list); n->new_tablespacename = (yyvsp[-1].str); n->nowait = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } #line 26829 "gram.c" /* yacc.c:1652 */ break; case 280: #line 2011 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 26835 "gram.c" /* yacc.c:1652 */ break; case 281: #line 2012 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 26841 "gram.c" /* yacc.c:1652 */ break; case 282: #line 2018 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); PartitionCmd *cmd = makeNode(PartitionCmd); n->subtype = AT_AttachPartition; cmd->name = (yyvsp[-1].range); cmd->bound = (yyvsp[0].partboundspec); n->def = (Node *) cmd; (yyval.node) = (Node *) n; } #line 26857 "gram.c" /* yacc.c:1652 */ break; case 283: #line 2031 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); PartitionCmd *cmd = makeNode(PartitionCmd); n->subtype = AT_DetachPartition; cmd->name = (yyvsp[0].range); cmd->bound = NULL; n->def = (Node *) cmd; (yyval.node) = (Node *) n; } #line 26873 "gram.c" /* yacc.c:1652 */ break; case 284: #line 2047 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); PartitionCmd *cmd = makeNode(PartitionCmd); n->subtype = AT_AttachPartition; cmd->name = (yyvsp[0].range); cmd->bound = NULL; n->def = (Node *) cmd; (yyval.node) = (Node *) n; } #line 26889 "gram.c" /* yacc.c:1652 */ break; case 285: #line 2063 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[0].node); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 26901 "gram.c" /* yacc.c:1652 */ break; case 286: #line 2072 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[0].node); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 26913 "gram.c" /* yacc.c:1652 */ break; case 287: #line 2081 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[0].node); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 26925 "gram.c" /* yacc.c:1652 */ break; case 288: #line 2090 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[0].node); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 26937 "gram.c" /* yacc.c:1652 */ break; case 289: #line 2099 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ColumnDefault; n->name = (yyvsp[-1].str); n->def = (yyvsp[0].node); (yyval.node) = (Node *)n; } #line 26949 "gram.c" /* yacc.c:1652 */ break; case 290: #line 2108 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropNotNull; n->name = (yyvsp[-3].str); (yyval.node) = (Node *)n; } #line 26960 "gram.c" /* yacc.c:1652 */ break; case 291: #line 2116 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetNotNull; n->name = (yyvsp[-3].str); (yyval.node) = (Node *)n; } #line 26971 "gram.c" /* yacc.c:1652 */ break; case 292: #line 2124 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetStatistics; n->name = (yyvsp[-3].str); n->def = (Node *) makeInteger((yyvsp[0].ival)); (yyval.node) = (Node *)n; } #line 26983 "gram.c" /* yacc.c:1652 */ break; case 293: #line 2133 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); if ((yyvsp[-3].ival) <= 0 || (yyvsp[-3].ival) > PG_INT16_MAX) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("column number must be in range from 1 to %d", PG_INT16_MAX), parser_errposition((yylsp[-3])))); n->subtype = AT_SetStatistics; n->num = (int16) (yyvsp[-3].ival); n->def = (Node *) makeInteger((yyvsp[0].ival)); (yyval.node) = (Node *)n; } #line 27002 "gram.c" /* yacc.c:1652 */ break; case 294: #line 2149 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetOptions; n->name = (yyvsp[-2].str); n->def = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 27014 "gram.c" /* yacc.c:1652 */ break; case 295: #line 2158 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ResetOptions; n->name = (yyvsp[-2].str); n->def = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 27026 "gram.c" /* yacc.c:1652 */ break; case 296: #line 2167 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetStorage; n->name = (yyvsp[-3].str); n->def = (Node *) makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 27038 "gram.c" /* yacc.c:1652 */ break; case 297: #line 2176 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); Constraint *c = makeNode(Constraint); c->contype = CONSTR_IDENTITY; c->generated_when = (yyvsp[-3].ival); c->options = (yyvsp[0].list); c->location = (yylsp[-4]); n->subtype = AT_AddIdentity; n->name = (yyvsp[-6].str); n->def = (Node *) c; (yyval.node) = (Node *)n; } #line 27058 "gram.c" /* yacc.c:1652 */ break; case 298: #line 2193 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetIdentity; n->name = (yyvsp[-1].str); n->def = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 27070 "gram.c" /* yacc.c:1652 */ break; case 299: #line 2202 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropIdentity; n->name = (yyvsp[-2].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 27082 "gram.c" /* yacc.c:1652 */ break; case 300: #line 2211 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropIdentity; n->name = (yyvsp[-4].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 27094 "gram.c" /* yacc.c:1652 */ break; case 301: #line 2220 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropColumn; n->name = (yyvsp[-1].str); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 27107 "gram.c" /* yacc.c:1652 */ break; case 302: #line 2230 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropColumn; n->name = (yyvsp[-1].str); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 27120 "gram.c" /* yacc.c:1652 */ break; case 303: #line 2243 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); ColumnDef *def = makeNode(ColumnDef); n->subtype = AT_AlterColumnType; n->name = (yyvsp[-5].str); n->def = (Node *) def; /* We only use these fields of the ColumnDef node */ def->typeName = (yyvsp[-2].typnam); def->collClause = (CollateClause *) (yyvsp[-1].node); def->raw_default = (yyvsp[0].node); def->location = (yylsp[-5]); (yyval.node) = (Node *)n; } #line 27138 "gram.c" /* yacc.c:1652 */ break; case 304: #line 2258 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AlterColumnGenericOptions; n->name = (yyvsp[-1].str); n->def = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 27150 "gram.c" /* yacc.c:1652 */ break; case 305: #line 2267 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddConstraint; n->def = (yyvsp[0].node); (yyval.node) = (Node *)n; } #line 27161 "gram.c" /* yacc.c:1652 */ break; case 306: #line 2275 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); Constraint *c = makeNode(Constraint); n->subtype = AT_AlterConstraint; n->def = (Node *) c; c->contype = CONSTR_FOREIGN; /* others not supported, yet */ c->conname = (yyvsp[-1].str); processCASbits((yyvsp[0].ival), (yylsp[0]), "ALTER CONSTRAINT statement", &c->deferrable, &c->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *)n; } #line 27179 "gram.c" /* yacc.c:1652 */ break; case 307: #line 2290 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ValidateConstraint; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 27190 "gram.c" /* yacc.c:1652 */ break; case 308: #line 2298 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropConstraint; n->name = (yyvsp[-1].str); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 27203 "gram.c" /* yacc.c:1652 */ break; case 309: #line 2308 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropConstraint; n->name = (yyvsp[-1].str); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 27216 "gram.c" /* yacc.c:1652 */ break; case 310: #line 2318 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddOids; (yyval.node) = (Node *)n; } #line 27226 "gram.c" /* yacc.c:1652 */ break; case 311: #line 2325 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropOids; (yyval.node) = (Node *)n; } #line 27236 "gram.c" /* yacc.c:1652 */ break; case 312: #line 2332 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ClusterOn; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 27247 "gram.c" /* yacc.c:1652 */ break; case 313: #line 2340 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropCluster; n->name = NULL; (yyval.node) = (Node *)n; } #line 27258 "gram.c" /* yacc.c:1652 */ break; case 314: #line 2348 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetLogged; (yyval.node) = (Node *)n; } #line 27268 "gram.c" /* yacc.c:1652 */ break; case 315: #line 2355 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetUnLogged; (yyval.node) = (Node *)n; } #line 27278 "gram.c" /* yacc.c:1652 */ break; case 316: #line 2362 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableTrig; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 27289 "gram.c" /* yacc.c:1652 */ break; case 317: #line 2370 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableAlwaysTrig; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 27300 "gram.c" /* yacc.c:1652 */ break; case 318: #line 2378 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableReplicaTrig; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 27311 "gram.c" /* yacc.c:1652 */ break; case 319: #line 2386 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableTrigAll; (yyval.node) = (Node *)n; } #line 27321 "gram.c" /* yacc.c:1652 */ break; case 320: #line 2393 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableTrigUser; (yyval.node) = (Node *)n; } #line 27331 "gram.c" /* yacc.c:1652 */ break; case 321: #line 2400 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableTrig; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 27342 "gram.c" /* yacc.c:1652 */ break; case 322: #line 2408 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableTrigAll; (yyval.node) = (Node *)n; } #line 27352 "gram.c" /* yacc.c:1652 */ break; case 323: #line 2415 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableTrigUser; (yyval.node) = (Node *)n; } #line 27362 "gram.c" /* yacc.c:1652 */ break; case 324: #line 2422 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableRule; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 27373 "gram.c" /* yacc.c:1652 */ break; case 325: #line 2430 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableAlwaysRule; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 27384 "gram.c" /* yacc.c:1652 */ break; case 326: #line 2438 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableReplicaRule; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 27395 "gram.c" /* yacc.c:1652 */ break; case 327: #line 2446 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableRule; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 27406 "gram.c" /* yacc.c:1652 */ break; case 328: #line 2454 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddInherit; n->def = (Node *) (yyvsp[0].range); (yyval.node) = (Node *)n; } #line 27417 "gram.c" /* yacc.c:1652 */ break; case 329: #line 2462 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropInherit; n->def = (Node *) (yyvsp[0].range); (yyval.node) = (Node *)n; } #line 27428 "gram.c" /* yacc.c:1652 */ break; case 330: #line 2470 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); TypeName *def = makeTypeNameFromNameList((yyvsp[0].list)); def->location = (yylsp[0]); n->subtype = AT_AddOf; n->def = (Node *) def; (yyval.node) = (Node *)n; } #line 27441 "gram.c" /* yacc.c:1652 */ break; case 331: #line 2480 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropOf; (yyval.node) = (Node *)n; } #line 27451 "gram.c" /* yacc.c:1652 */ break; case 332: #line 2487 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ChangeOwner; n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 27462 "gram.c" /* yacc.c:1652 */ break; case 333: #line 2495 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetTableSpace; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 27473 "gram.c" /* yacc.c:1652 */ break; case 334: #line 2503 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetRelOptions; n->def = (Node *)(yyvsp[0].list); (yyval.node) = (Node *)n; } #line 27484 "gram.c" /* yacc.c:1652 */ break; case 335: #line 2511 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ResetRelOptions; n->def = (Node *)(yyvsp[0].list); (yyval.node) = (Node *)n; } #line 27495 "gram.c" /* yacc.c:1652 */ break; case 336: #line 2519 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ReplicaIdentity; n->def = (yyvsp[0].node); (yyval.node) = (Node *)n; } #line 27506 "gram.c" /* yacc.c:1652 */ break; case 337: #line 2527 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableRowSecurity; (yyval.node) = (Node *)n; } #line 27516 "gram.c" /* yacc.c:1652 */ break; case 338: #line 2534 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableRowSecurity; (yyval.node) = (Node *)n; } #line 27526 "gram.c" /* yacc.c:1652 */ break; case 339: #line 2541 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ForceRowSecurity; (yyval.node) = (Node *)n; } #line 27536 "gram.c" /* yacc.c:1652 */ break; case 340: #line 2548 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_NoForceRowSecurity; (yyval.node) = (Node *)n; } #line 27546 "gram.c" /* yacc.c:1652 */ break; case 341: #line 2554 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_GenericOptions; n->def = (Node *)(yyvsp[0].list); (yyval.node) = (Node *) n; } #line 27557 "gram.c" /* yacc.c:1652 */ break; case 342: #line 2563 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 27563 "gram.c" /* yacc.c:1652 */ break; case 343: #line 2564 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 27569 "gram.c" /* yacc.c:1652 */ break; case 344: #line 2568 "gram.y" /* yacc.c:1652 */ { (yyval.dbehavior) = DROP_CASCADE; } #line 27575 "gram.c" /* yacc.c:1652 */ break; case 345: #line 2569 "gram.y" /* yacc.c:1652 */ { (yyval.dbehavior) = DROP_RESTRICT; } #line 27581 "gram.c" /* yacc.c:1652 */ break; case 346: #line 2570 "gram.y" /* yacc.c:1652 */ { (yyval.dbehavior) = DROP_RESTRICT; /* default */ } #line 27587 "gram.c" /* yacc.c:1652 */ break; case 347: #line 2575 "gram.y" /* yacc.c:1652 */ { CollateClause *n = makeNode(CollateClause); n->arg = NULL; n->collname = (yyvsp[0].list); n->location = (yylsp[-1]); (yyval.node) = (Node *) n; } #line 27599 "gram.c" /* yacc.c:1652 */ break; case 348: #line 2582 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 27605 "gram.c" /* yacc.c:1652 */ break; case 349: #line 2586 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 27611 "gram.c" /* yacc.c:1652 */ break; case 350: #line 2587 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 27617 "gram.c" /* yacc.c:1652 */ break; case 351: #line 2592 "gram.y" /* yacc.c:1652 */ { ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); n->identity_type = REPLICA_IDENTITY_NOTHING; n->name = NULL; (yyval.node) = (Node *) n; } #line 27628 "gram.c" /* yacc.c:1652 */ break; case 352: #line 2599 "gram.y" /* yacc.c:1652 */ { ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); n->identity_type = REPLICA_IDENTITY_FULL; n->name = NULL; (yyval.node) = (Node *) n; } #line 27639 "gram.c" /* yacc.c:1652 */ break; case 353: #line 2606 "gram.y" /* yacc.c:1652 */ { ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); n->identity_type = REPLICA_IDENTITY_DEFAULT; n->name = NULL; (yyval.node) = (Node *) n; } #line 27650 "gram.c" /* yacc.c:1652 */ break; case 354: #line 2613 "gram.y" /* yacc.c:1652 */ { ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); n->identity_type = REPLICA_IDENTITY_INDEX; n->name = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 27661 "gram.c" /* yacc.c:1652 */ break; case 355: #line 2622 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 27667 "gram.c" /* yacc.c:1652 */ break; case 356: #line 2625 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 27673 "gram.c" /* yacc.c:1652 */ break; case 357: #line 2626 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 27679 "gram.c" /* yacc.c:1652 */ break; case 358: #line 2630 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 27685 "gram.c" /* yacc.c:1652 */ break; case 359: #line 2631 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } #line 27691 "gram.c" /* yacc.c:1652 */ break; case 360: #line 2637 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2])); } #line 27699 "gram.c" /* yacc.c:1652 */ break; case 361: #line 2641 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[0].str), NULL, (yylsp[0])); } #line 27707 "gram.c" /* yacc.c:1652 */ break; case 362: #line 2645 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElemExtended((yyvsp[-4].str), (yyvsp[-2].str), (Node *) (yyvsp[0].node), DEFELEM_UNSPEC, (yylsp[-4])); } #line 27716 "gram.c" /* yacc.c:1652 */ break; case 363: #line 2650 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElemExtended((yyvsp[-2].str), (yyvsp[0].str), NULL, DEFELEM_UNSPEC, (yylsp[-2])); } #line 27724 "gram.c" /* yacc.c:1652 */ break; case 364: #line 2657 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 27730 "gram.c" /* yacc.c:1652 */ break; case 365: #line 2659 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 27736 "gram.c" /* yacc.c:1652 */ break; case 366: #line 2664 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[0])); } #line 27744 "gram.c" /* yacc.c:1652 */ break; case 367: #line 2668 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("restart", (Node *)(yyvsp[0].value), (yylsp[-2])); } #line 27752 "gram.c" /* yacc.c:1652 */ break; case 368: #line 2672 "gram.y" /* yacc.c:1652 */ { if (strcmp((yyvsp[0].defelt)->defname, "as") == 0 || strcmp((yyvsp[0].defelt)->defname, "restart") == 0 || strcmp((yyvsp[0].defelt)->defname, "owned_by") == 0) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("sequence option \"%s\" not supported here", (yyvsp[0].defelt)->defname), parser_errposition((yylsp[0])))); (yyval.defelt) = (yyvsp[0].defelt); } #line 27767 "gram.c" /* yacc.c:1652 */ break; case 369: #line 2683 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("generated", (Node *) makeInteger((yyvsp[0].ival)), (yylsp[-2])); } #line 27775 "gram.c" /* yacc.c:1652 */ break; case 370: #line 2691 "gram.y" /* yacc.c:1652 */ { ListCell *lc; PartitionBoundSpec *n = makeNode(PartitionBoundSpec); n->strategy = PARTITION_STRATEGY_HASH; n->modulus = n->remainder = -1; foreach (lc, (yyvsp[-1].list)) { DefElem *opt = lfirst_node(DefElem, lc); if (strcmp(opt->defname, "modulus") == 0) { if (n->modulus != -1) ereport(ERROR, (errcode(ERRCODE_DUPLICATE_OBJECT), errmsg("modulus for hash partition provided more than once"), parser_errposition(opt->location))); n->modulus = defGetInt32(opt); } else if (strcmp(opt->defname, "remainder") == 0) { if (n->remainder != -1) ereport(ERROR, (errcode(ERRCODE_DUPLICATE_OBJECT), errmsg("remainder for hash partition provided more than once"), parser_errposition(opt->location))); n->remainder = defGetInt32(opt); } else ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("unrecognized hash partition bound specification \"%s\"", opt->defname), parser_errposition(opt->location))); } if (n->modulus == -1) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("modulus for hash partition must be specified"))); if (n->remainder == -1) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("remainder for hash partition must be specified"))); n->location = (yylsp[-3]); (yyval.partboundspec) = n; } #line 27830 "gram.c" /* yacc.c:1652 */ break; case 371: #line 2744 "gram.y" /* yacc.c:1652 */ { PartitionBoundSpec *n = makeNode(PartitionBoundSpec); n->strategy = PARTITION_STRATEGY_LIST; n->is_default = false; n->listdatums = (yyvsp[-1].list); n->location = (yylsp[-3]); (yyval.partboundspec) = n; } #line 27845 "gram.c" /* yacc.c:1652 */ break; case 372: #line 2757 "gram.y" /* yacc.c:1652 */ { PartitionBoundSpec *n = makeNode(PartitionBoundSpec); n->strategy = PARTITION_STRATEGY_RANGE; n->is_default = false; n->lowerdatums = (yyvsp[-5].list); n->upperdatums = (yyvsp[-1].list); n->location = (yylsp[-7]); (yyval.partboundspec) = n; } #line 27861 "gram.c" /* yacc.c:1652 */ break; case 373: #line 2771 "gram.y" /* yacc.c:1652 */ { PartitionBoundSpec *n = makeNode(PartitionBoundSpec); n->is_default = true; n->location = (yylsp[0]); (yyval.partboundspec) = n; } #line 27874 "gram.c" /* yacc.c:1652 */ break; case 374: #line 2783 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (Node *)makeInteger((yyvsp[0].ival)), (yylsp[-1])); } #line 27882 "gram.c" /* yacc.c:1652 */ break; case 375: #line 2790 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 27890 "gram.c" /* yacc.c:1652 */ break; case 376: #line 2794 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } #line 27898 "gram.c" /* yacc.c:1652 */ break; case 377: #line 2800 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); } #line 27904 "gram.c" /* yacc.c:1652 */ break; case 378: #line 2801 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeAConst((yyvsp[0].value), (yylsp[0])); } #line 27910 "gram.c" /* yacc.c:1652 */ break; case 379: #line 2802 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeStringConst(pstrdup("true"), (yylsp[0])); } #line 27916 "gram.c" /* yacc.c:1652 */ break; case 380: #line 2803 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeStringConst(pstrdup("false"), (yylsp[0])); } #line 27922 "gram.c" /* yacc.c:1652 */ break; case 381: #line 2804 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeNullAConst((yylsp[0])); } #line 27928 "gram.c" /* yacc.c:1652 */ break; case 382: #line 2808 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 27934 "gram.c" /* yacc.c:1652 */ break; case 383: #line 2810 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 27940 "gram.c" /* yacc.c:1652 */ break; case 384: #line 2814 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 27946 "gram.c" /* yacc.c:1652 */ break; case 385: #line 2816 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 27952 "gram.c" /* yacc.c:1652 */ break; case 386: #line 2821 "gram.y" /* yacc.c:1652 */ { PartitionRangeDatum *n = makeNode(PartitionRangeDatum); n->kind = PARTITION_RANGE_DATUM_MINVALUE; n->value = NULL; n->location = (yylsp[0]); (yyval.node) = (Node *) n; } #line 27966 "gram.c" /* yacc.c:1652 */ break; case 387: #line 2831 "gram.y" /* yacc.c:1652 */ { PartitionRangeDatum *n = makeNode(PartitionRangeDatum); n->kind = PARTITION_RANGE_DATUM_MAXVALUE; n->value = NULL; n->location = (yylsp[0]); (yyval.node) = (Node *) n; } #line 27980 "gram.c" /* yacc.c:1652 */ break; case 388: #line 2841 "gram.y" /* yacc.c:1652 */ { PartitionRangeDatum *n = makeNode(PartitionRangeDatum); n->kind = PARTITION_RANGE_DATUM_VALUE; n->value = (yyvsp[0].node); n->location = (yylsp[0]); (yyval.node) = (Node *) n; } #line 27994 "gram.c" /* yacc.c:1652 */ break; case 389: #line 2861 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); /* can't use qualified_name, sigh */ n->relation = makeRangeVarFromAnyName((yyvsp[-1].list), (yylsp[-1]), yyscanner); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_TYPE; (yyval.node) = (Node *)n; } #line 28008 "gram.c" /* yacc.c:1652 */ break; case 390: #line 2873 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 28014 "gram.c" /* yacc.c:1652 */ break; case 391: #line 2874 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 28020 "gram.c" /* yacc.c:1652 */ break; case 392: #line 2880 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[-1].node); n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *)n; } #line 28032 "gram.c" /* yacc.c:1652 */ break; case 393: #line 2889 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropColumn; n->name = (yyvsp[-1].str); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 28045 "gram.c" /* yacc.c:1652 */ break; case 394: #line 2899 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropColumn; n->name = (yyvsp[-1].str); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 28058 "gram.c" /* yacc.c:1652 */ break; case 395: #line 2909 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); ColumnDef *def = makeNode(ColumnDef); n->subtype = AT_AlterColumnType; n->name = (yyvsp[-5].str); n->def = (Node *) def; n->behavior = (yyvsp[0].dbehavior); /* We only use these fields of the ColumnDef node */ def->typeName = (yyvsp[-2].typnam); def->collClause = (CollateClause *) (yyvsp[-1].node); def->raw_default = NULL; def->location = (yylsp[-5]); (yyval.node) = (Node *)n; } #line 28077 "gram.c" /* yacc.c:1652 */ break; case 396: #line 2935 "gram.y" /* yacc.c:1652 */ { ClosePortalStmt *n = makeNode(ClosePortalStmt); n->portalname = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 28087 "gram.c" /* yacc.c:1652 */ break; case 397: #line 2941 "gram.y" /* yacc.c:1652 */ { ClosePortalStmt *n = makeNode(ClosePortalStmt); n->portalname = NULL; (yyval.node) = (Node *)n; } #line 28097 "gram.c" /* yacc.c:1652 */ break; case 398: #line 2975 "gram.y" /* yacc.c:1652 */ { CopyStmt *n = makeNode(CopyStmt); n->relation = (yyvsp[-8].range); n->query = NULL; n->attlist = (yyvsp[-7].list); n->is_from = (yyvsp[-5].boolean); n->is_program = (yyvsp[-4].boolean); n->filename = (yyvsp[-3].str); if (n->is_program && n->filename == NULL) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("STDIN/STDOUT not allowed with PROGRAM"), parser_errposition((yylsp[-3])))); n->options = NIL; /* Concatenate user-supplied flags */ if ((yyvsp[-9].defelt)) n->options = lappend(n->options, (yyvsp[-9].defelt)); if ((yyvsp[-6].defelt)) n->options = lappend(n->options, (yyvsp[-6].defelt)); if ((yyvsp[-2].defelt)) n->options = lappend(n->options, (yyvsp[-2].defelt)); if ((yyvsp[0].list)) n->options = list_concat(n->options, (yyvsp[0].list)); (yyval.node) = (Node *)n; } #line 28129 "gram.c" /* yacc.c:1652 */ break; case 399: #line 3003 "gram.y" /* yacc.c:1652 */ { CopyStmt *n = makeNode(CopyStmt); n->relation = NULL; n->query = (yyvsp[-6].node); n->attlist = NIL; n->is_from = false; n->is_program = (yyvsp[-3].boolean); n->filename = (yyvsp[-2].str); n->options = (yyvsp[0].list); if (n->is_program && n->filename == NULL) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("STDIN/STDOUT not allowed with PROGRAM"), parser_errposition((yylsp[-4])))); (yyval.node) = (Node *)n; } #line 28152 "gram.c" /* yacc.c:1652 */ break; case 400: #line 3024 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 28158 "gram.c" /* yacc.c:1652 */ break; case 401: #line 3025 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 28164 "gram.c" /* yacc.c:1652 */ break; case 402: #line 3029 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 28170 "gram.c" /* yacc.c:1652 */ break; case 403: #line 3030 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 28176 "gram.c" /* yacc.c:1652 */ break; case 404: #line 3039 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 28182 "gram.c" /* yacc.c:1652 */ break; case 405: #line 3040 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 28188 "gram.c" /* yacc.c:1652 */ break; case 406: #line 3041 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 28194 "gram.c" /* yacc.c:1652 */ break; case 407: #line 3044 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 28200 "gram.c" /* yacc.c:1652 */ break; case 408: #line 3045 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 28206 "gram.c" /* yacc.c:1652 */ break; case 409: #line 3050 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 28212 "gram.c" /* yacc.c:1652 */ break; case 410: #line 3051 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 28218 "gram.c" /* yacc.c:1652 */ break; case 411: #line 3056 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("format", (Node *)makeString("binary"), (yylsp[0])); } #line 28226 "gram.c" /* yacc.c:1652 */ break; case 412: #line 3060 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("oids", (Node *)makeInteger(true), (yylsp[0])); } #line 28234 "gram.c" /* yacc.c:1652 */ break; case 413: #line 3064 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("freeze", (Node *)makeInteger(true), (yylsp[0])); } #line 28242 "gram.c" /* yacc.c:1652 */ break; case 414: #line 3068 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("delimiter", (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); } #line 28250 "gram.c" /* yacc.c:1652 */ break; case 415: #line 3072 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("null", (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); } #line 28258 "gram.c" /* yacc.c:1652 */ break; case 416: #line 3076 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("format", (Node *)makeString("csv"), (yylsp[0])); } #line 28266 "gram.c" /* yacc.c:1652 */ break; case 417: #line 3080 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("header", (Node *)makeInteger(true), (yylsp[0])); } #line 28274 "gram.c" /* yacc.c:1652 */ break; case 418: #line 3084 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("quote", (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); } #line 28282 "gram.c" /* yacc.c:1652 */ break; case 419: #line 3088 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("escape", (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); } #line 28290 "gram.c" /* yacc.c:1652 */ break; case 420: #line 3092 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("force_quote", (Node *)(yyvsp[0].list), (yylsp[-2])); } #line 28298 "gram.c" /* yacc.c:1652 */ break; case 421: #line 3096 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("force_quote", (Node *)makeNode(A_Star), (yylsp[-2])); } #line 28306 "gram.c" /* yacc.c:1652 */ break; case 422: #line 3100 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("force_not_null", (Node *)(yyvsp[0].list), (yylsp[-3])); } #line 28314 "gram.c" /* yacc.c:1652 */ break; case 423: #line 3104 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("force_null", (Node *)(yyvsp[0].list), (yylsp[-2])); } #line 28322 "gram.c" /* yacc.c:1652 */ break; case 424: #line 3108 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("encoding", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } #line 28330 "gram.c" /* yacc.c:1652 */ break; case 425: #line 3117 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("format", (Node *)makeString("binary"), (yylsp[0])); } #line 28338 "gram.c" /* yacc.c:1652 */ break; case 426: #line 3120 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = NULL; } #line 28344 "gram.c" /* yacc.c:1652 */ break; case 427: #line 3125 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("oids", (Node *)makeInteger(true), (yylsp[-1])); } #line 28352 "gram.c" /* yacc.c:1652 */ break; case 428: #line 3128 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = NULL; } #line 28358 "gram.c" /* yacc.c:1652 */ break; case 429: #line 3133 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("delimiter", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } #line 28366 "gram.c" /* yacc.c:1652 */ break; case 430: #line 3136 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = NULL; } #line 28372 "gram.c" /* yacc.c:1652 */ break; case 431: #line 3140 "gram.y" /* yacc.c:1652 */ {} #line 28378 "gram.c" /* yacc.c:1652 */ break; case 432: #line 3141 "gram.y" /* yacc.c:1652 */ {} #line 28384 "gram.c" /* yacc.c:1652 */ break; case 433: #line 3147 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 28392 "gram.c" /* yacc.c:1652 */ break; case 434: #line 3151 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } #line 28400 "gram.c" /* yacc.c:1652 */ break; case 435: #line 3158 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); } #line 28408 "gram.c" /* yacc.c:1652 */ break; case 436: #line 3164 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } #line 28414 "gram.c" /* yacc.c:1652 */ break; case 437: #line 3165 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) (yyvsp[0].value); } #line 28420 "gram.c" /* yacc.c:1652 */ break; case 438: #line 3166 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeNode(A_Star); } #line 28426 "gram.c" /* yacc.c:1652 */ break; case 439: #line 3167 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) (yyvsp[-1].list); } #line 28432 "gram.c" /* yacc.c:1652 */ break; case 440: #line 3168 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 28438 "gram.c" /* yacc.c:1652 */ break; case 441: #line 3173 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 28446 "gram.c" /* yacc.c:1652 */ break; case 442: #line 3177 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 28454 "gram.c" /* yacc.c:1652 */ break; case 443: #line 3184 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } #line 28460 "gram.c" /* yacc.c:1652 */ break; case 444: #line 3197 "gram.y" /* yacc.c:1652 */ { CreateStmt *n = makeNode(CreateStmt); (yyvsp[-8].range)->relpersistence = (yyvsp[-10].ival); n->relation = (yyvsp[-8].range); n->tableElts = (yyvsp[-6].list); n->inhRelations = (yyvsp[-4].list); n->partspec = (yyvsp[-3].partspec); n->ofTypename = NULL; n->constraints = NIL; n->options = (yyvsp[-2].list); n->oncommit = (yyvsp[-1].oncommit); n->tablespacename = (yyvsp[0].str); n->if_not_exists = false; (yyval.node) = (Node *)n; } #line 28480 "gram.c" /* yacc.c:1652 */ break; case 445: #line 3215 "gram.y" /* yacc.c:1652 */ { CreateStmt *n = makeNode(CreateStmt); (yyvsp[-8].range)->relpersistence = (yyvsp[-13].ival); n->relation = (yyvsp[-8].range); n->tableElts = (yyvsp[-6].list); n->inhRelations = (yyvsp[-4].list); n->partspec = (yyvsp[-3].partspec); n->ofTypename = NULL; n->constraints = NIL; n->options = (yyvsp[-2].list); n->oncommit = (yyvsp[-1].oncommit); n->tablespacename = (yyvsp[0].str); n->if_not_exists = true; (yyval.node) = (Node *)n; } #line 28500 "gram.c" /* yacc.c:1652 */ break; case 446: #line 3233 "gram.y" /* yacc.c:1652 */ { CreateStmt *n = makeNode(CreateStmt); (yyvsp[-7].range)->relpersistence = (yyvsp[-9].ival); n->relation = (yyvsp[-7].range); n->tableElts = (yyvsp[-4].list); n->inhRelations = NIL; n->partspec = (yyvsp[-3].partspec); n->ofTypename = makeTypeNameFromNameList((yyvsp[-5].list)); n->ofTypename->location = (yylsp[-5]); n->constraints = NIL; n->options = (yyvsp[-2].list); n->oncommit = (yyvsp[-1].oncommit); n->tablespacename = (yyvsp[0].str); n->if_not_exists = false; (yyval.node) = (Node *)n; } #line 28521 "gram.c" /* yacc.c:1652 */ break; case 447: #line 3252 "gram.y" /* yacc.c:1652 */ { CreateStmt *n = makeNode(CreateStmt); (yyvsp[-7].range)->relpersistence = (yyvsp[-12].ival); n->relation = (yyvsp[-7].range); n->tableElts = (yyvsp[-4].list); n->inhRelations = NIL; n->partspec = (yyvsp[-3].partspec); n->ofTypename = makeTypeNameFromNameList((yyvsp[-5].list)); n->ofTypename->location = (yylsp[-5]); n->constraints = NIL; n->options = (yyvsp[-2].list); n->oncommit = (yyvsp[-1].oncommit); n->tablespacename = (yyvsp[0].str); n->if_not_exists = true; (yyval.node) = (Node *)n; } #line 28542 "gram.c" /* yacc.c:1652 */ break; case 448: #line 3271 "gram.y" /* yacc.c:1652 */ { CreateStmt *n = makeNode(CreateStmt); (yyvsp[-9].range)->relpersistence = (yyvsp[-11].ival); n->relation = (yyvsp[-9].range); n->tableElts = (yyvsp[-5].list); n->inhRelations = list_make1((yyvsp[-6].range)); n->partbound = (yyvsp[-4].partboundspec); n->partspec = (yyvsp[-3].partspec); n->ofTypename = NULL; n->constraints = NIL; n->options = (yyvsp[-2].list); n->oncommit = (yyvsp[-1].oncommit); n->tablespacename = (yyvsp[0].str); n->if_not_exists = false; (yyval.node) = (Node *)n; } #line 28563 "gram.c" /* yacc.c:1652 */ break; case 449: #line 3290 "gram.y" /* yacc.c:1652 */ { CreateStmt *n = makeNode(CreateStmt); (yyvsp[-9].range)->relpersistence = (yyvsp[-14].ival); n->relation = (yyvsp[-9].range); n->tableElts = (yyvsp[-5].list); n->inhRelations = list_make1((yyvsp[-6].range)); n->partbound = (yyvsp[-4].partboundspec); n->partspec = (yyvsp[-3].partspec); n->ofTypename = NULL; n->constraints = NIL; n->options = (yyvsp[-2].list); n->oncommit = (yyvsp[-1].oncommit); n->tablespacename = (yyvsp[0].str); n->if_not_exists = true; (yyval.node) = (Node *)n; } #line 28584 "gram.c" /* yacc.c:1652 */ break; case 450: #line 3319 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = RELPERSISTENCE_TEMP; } #line 28590 "gram.c" /* yacc.c:1652 */ break; case 451: #line 3320 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = RELPERSISTENCE_TEMP; } #line 28596 "gram.c" /* yacc.c:1652 */ break; case 452: #line 3321 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = RELPERSISTENCE_TEMP; } #line 28602 "gram.c" /* yacc.c:1652 */ break; case 453: #line 3322 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = RELPERSISTENCE_TEMP; } #line 28608 "gram.c" /* yacc.c:1652 */ break; case 454: #line 3324 "gram.y" /* yacc.c:1652 */ { ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition((yylsp[-1])))); (yyval.ival) = RELPERSISTENCE_TEMP; } #line 28619 "gram.c" /* yacc.c:1652 */ break; case 455: #line 3331 "gram.y" /* yacc.c:1652 */ { ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition((yylsp[-1])))); (yyval.ival) = RELPERSISTENCE_TEMP; } #line 28630 "gram.c" /* yacc.c:1652 */ break; case 456: #line 3337 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = RELPERSISTENCE_UNLOGGED; } #line 28636 "gram.c" /* yacc.c:1652 */ break; case 457: #line 3338 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = RELPERSISTENCE_PERMANENT; } #line 28642 "gram.c" /* yacc.c:1652 */ break; case 458: #line 3342 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 28648 "gram.c" /* yacc.c:1652 */ break; case 459: #line 3343 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 28654 "gram.c" /* yacc.c:1652 */ break; case 460: #line 3347 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 28660 "gram.c" /* yacc.c:1652 */ break; case 461: #line 3348 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 28666 "gram.c" /* yacc.c:1652 */ break; case 462: #line 3353 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 28674 "gram.c" /* yacc.c:1652 */ break; case 463: #line 3357 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 28682 "gram.c" /* yacc.c:1652 */ break; case 464: #line 3364 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 28690 "gram.c" /* yacc.c:1652 */ break; case 465: #line 3368 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 28698 "gram.c" /* yacc.c:1652 */ break; case 466: #line 3374 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 28704 "gram.c" /* yacc.c:1652 */ break; case 467: #line 3375 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 28710 "gram.c" /* yacc.c:1652 */ break; case 468: #line 3376 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 28716 "gram.c" /* yacc.c:1652 */ break; case 469: #line 3380 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 28722 "gram.c" /* yacc.c:1652 */ break; case 470: #line 3381 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 28728 "gram.c" /* yacc.c:1652 */ break; case 471: #line 3385 "gram.y" /* yacc.c:1652 */ { ColumnDef *n = makeNode(ColumnDef); n->colname = (yyvsp[-3].str); n->typeName = (yyvsp[-2].typnam); n->inhcount = 0; n->is_local = true; n->is_not_null = false; n->is_from_type = false; n->storage = 0; n->raw_default = NULL; n->cooked_default = NULL; n->collOid = InvalidOid; n->fdwoptions = (yyvsp[-1].list); SplitColQualList((yyvsp[0].list), &n->constraints, &n->collClause, yyscanner); n->location = (yylsp[-3]); (yyval.node) = (Node *)n; } #line 28751 "gram.c" /* yacc.c:1652 */ break; case 472: #line 3406 "gram.y" /* yacc.c:1652 */ { ColumnDef *n = makeNode(ColumnDef); n->colname = (yyvsp[-1].str); n->typeName = NULL; n->inhcount = 0; n->is_local = true; n->is_not_null = false; n->is_from_type = false; n->storage = 0; n->raw_default = NULL; n->cooked_default = NULL; n->collOid = InvalidOid; SplitColQualList((yyvsp[0].list), &n->constraints, &n->collClause, yyscanner); n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } #line 28773 "gram.c" /* yacc.c:1652 */ break; case 473: #line 3424 "gram.y" /* yacc.c:1652 */ { ColumnDef *n = makeNode(ColumnDef); n->colname = (yyvsp[-3].str); n->typeName = NULL; n->inhcount = 0; n->is_local = true; n->is_not_null = false; n->is_from_type = false; n->storage = 0; n->raw_default = NULL; n->cooked_default = NULL; n->collOid = InvalidOid; SplitColQualList((yyvsp[0].list), &n->constraints, &n->collClause, yyscanner); n->location = (yylsp[-3]); (yyval.node) = (Node *)n; } #line 28795 "gram.c" /* yacc.c:1652 */ break; case 474: #line 3444 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } #line 28801 "gram.c" /* yacc.c:1652 */ break; case 475: #line 3445 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 28807 "gram.c" /* yacc.c:1652 */ break; case 476: #line 3450 "gram.y" /* yacc.c:1652 */ { Constraint *n = castNode(Constraint, (yyvsp[0].node)); n->conname = (yyvsp[-1].str); n->location = (yylsp[-2]); (yyval.node) = (Node *) n; } #line 28818 "gram.c" /* yacc.c:1652 */ break; case 477: #line 3456 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 28824 "gram.c" /* yacc.c:1652 */ break; case 478: #line 3457 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 28830 "gram.c" /* yacc.c:1652 */ break; case 479: #line 3459 "gram.y" /* yacc.c:1652 */ { /* * Note: the CollateClause is momentarily included in * the list built by ColQualList, but we split it out * again in SplitColQualList. */ CollateClause *n = makeNode(CollateClause); n->arg = NULL; n->collname = (yyvsp[0].list); n->location = (yylsp[-1]); (yyval.node) = (Node *) n; } #line 28847 "gram.c" /* yacc.c:1652 */ break; case 480: #line 3490 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_NOTNULL; n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } #line 28858 "gram.c" /* yacc.c:1652 */ break; case 481: #line 3497 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_NULL; n->location = (yylsp[0]); (yyval.node) = (Node *)n; } #line 28869 "gram.c" /* yacc.c:1652 */ break; case 482: #line 3504 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_UNIQUE; n->location = (yylsp[-2]); n->keys = NULL; n->options = (yyvsp[-1].list); n->indexname = NULL; n->indexspace = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 28884 "gram.c" /* yacc.c:1652 */ break; case 483: #line 3515 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_PRIMARY; n->location = (yylsp[-3]); n->keys = NULL; n->options = (yyvsp[-1].list); n->indexname = NULL; n->indexspace = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 28899 "gram.c" /* yacc.c:1652 */ break; case 484: #line 3526 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_CHECK; n->location = (yylsp[-4]); n->is_no_inherit = (yyvsp[0].boolean); n->raw_expr = (yyvsp[-2].node); n->cooked_expr = NULL; n->skip_validation = false; n->initially_valid = true; (yyval.node) = (Node *)n; } #line 28915 "gram.c" /* yacc.c:1652 */ break; case 485: #line 3538 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_DEFAULT; n->location = (yylsp[-1]); n->raw_expr = (yyvsp[0].node); n->cooked_expr = NULL; (yyval.node) = (Node *)n; } #line 28928 "gram.c" /* yacc.c:1652 */ break; case 486: #line 3547 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_IDENTITY; n->generated_when = (yyvsp[-3].ival); n->options = (yyvsp[0].list); n->location = (yylsp[-4]); (yyval.node) = (Node *)n; } #line 28941 "gram.c" /* yacc.c:1652 */ break; case 487: #line 3556 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_FOREIGN; n->location = (yylsp[-4]); n->pktable = (yyvsp[-3].range); n->fk_attrs = NIL; n->pk_attrs = (yyvsp[-2].list); n->fk_matchtype = (yyvsp[-1].ival); n->fk_upd_action = (char) ((yyvsp[0].ival) >> 8); n->fk_del_action = (char) ((yyvsp[0].ival) & 0xFF); n->skip_validation = false; n->initially_valid = true; (yyval.node) = (Node *)n; } #line 28960 "gram.c" /* yacc.c:1652 */ break; case 488: #line 3573 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = ATTRIBUTE_IDENTITY_ALWAYS; } #line 28966 "gram.c" /* yacc.c:1652 */ break; case 489: #line 3574 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = ATTRIBUTE_IDENTITY_BY_DEFAULT; } #line 28972 "gram.c" /* yacc.c:1652 */ break; case 490: #line 3594 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_DEFERRABLE; n->location = (yylsp[0]); (yyval.node) = (Node *)n; } #line 28983 "gram.c" /* yacc.c:1652 */ break; case 491: #line 3601 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_NOT_DEFERRABLE; n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } #line 28994 "gram.c" /* yacc.c:1652 */ break; case 492: #line 3608 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_DEFERRED; n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } #line 29005 "gram.c" /* yacc.c:1652 */ break; case 493: #line 3615 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_IMMEDIATE; n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } #line 29016 "gram.c" /* yacc.c:1652 */ break; case 494: #line 3626 "gram.y" /* yacc.c:1652 */ { TableLikeClause *n = makeNode(TableLikeClause); n->relation = (yyvsp[-1].range); n->options = (yyvsp[0].ival); n->relationOid = InvalidOid; (yyval.node) = (Node *)n; } #line 29028 "gram.c" /* yacc.c:1652 */ break; case 495: #line 3636 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[-2].ival) | (yyvsp[0].ival); } #line 29034 "gram.c" /* yacc.c:1652 */ break; case 496: #line 3637 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[-2].ival) & ~(yyvsp[0].ival); } #line 29040 "gram.c" /* yacc.c:1652 */ break; case 497: #line 3638 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 29046 "gram.c" /* yacc.c:1652 */ break; case 498: #line 3642 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CREATE_TABLE_LIKE_COMMENTS; } #line 29052 "gram.c" /* yacc.c:1652 */ break; case 499: #line 3643 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CREATE_TABLE_LIKE_CONSTRAINTS; } #line 29058 "gram.c" /* yacc.c:1652 */ break; case 500: #line 3644 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CREATE_TABLE_LIKE_DEFAULTS; } #line 29064 "gram.c" /* yacc.c:1652 */ break; case 501: #line 3645 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CREATE_TABLE_LIKE_IDENTITY; } #line 29070 "gram.c" /* yacc.c:1652 */ break; case 502: #line 3646 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CREATE_TABLE_LIKE_INDEXES; } #line 29076 "gram.c" /* yacc.c:1652 */ break; case 503: #line 3647 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CREATE_TABLE_LIKE_STATISTICS; } #line 29082 "gram.c" /* yacc.c:1652 */ break; case 504: #line 3648 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CREATE_TABLE_LIKE_STORAGE; } #line 29088 "gram.c" /* yacc.c:1652 */ break; case 505: #line 3649 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CREATE_TABLE_LIKE_ALL; } #line 29094 "gram.c" /* yacc.c:1652 */ break; case 506: #line 3659 "gram.y" /* yacc.c:1652 */ { Constraint *n = castNode(Constraint, (yyvsp[0].node)); n->conname = (yyvsp[-1].str); n->location = (yylsp[-2]); (yyval.node) = (Node *) n; } #line 29105 "gram.c" /* yacc.c:1652 */ break; case 507: #line 3665 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 29111 "gram.c" /* yacc.c:1652 */ break; case 508: #line 3670 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_CHECK; n->location = (yylsp[-4]); n->raw_expr = (yyvsp[-2].node); n->cooked_expr = NULL; processCASbits((yyvsp[0].ival), (yylsp[0]), "CHECK", NULL, NULL, &n->skip_validation, &n->is_no_inherit, yyscanner); n->initially_valid = !n->skip_validation; (yyval.node) = (Node *)n; } #line 29128 "gram.c" /* yacc.c:1652 */ break; case 509: #line 3684 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_UNIQUE; n->location = (yylsp[-7]); n->keys = (yyvsp[-5].list); n->including = (yyvsp[-3].list); n->options = (yyvsp[-2].list); n->indexname = NULL; n->indexspace = (yyvsp[-1].str); processCASbits((yyvsp[0].ival), (yylsp[0]), "UNIQUE", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *)n; } #line 29147 "gram.c" /* yacc.c:1652 */ break; case 510: #line 3699 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_UNIQUE; n->location = (yylsp[-2]); n->keys = NIL; n->including = NIL; n->options = NIL; n->indexname = (yyvsp[-1].str); n->indexspace = NULL; processCASbits((yyvsp[0].ival), (yylsp[0]), "UNIQUE", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *)n; } #line 29166 "gram.c" /* yacc.c:1652 */ break; case 511: #line 3715 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_PRIMARY; n->location = (yylsp[-8]); n->keys = (yyvsp[-5].list); n->including = (yyvsp[-3].list); n->options = (yyvsp[-2].list); n->indexname = NULL; n->indexspace = (yyvsp[-1].str); processCASbits((yyvsp[0].ival), (yylsp[0]), "PRIMARY KEY", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *)n; } #line 29185 "gram.c" /* yacc.c:1652 */ break; case 512: #line 3730 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_PRIMARY; n->location = (yylsp[-3]); n->keys = NIL; n->including = NIL; n->options = NIL; n->indexname = (yyvsp[-1].str); n->indexspace = NULL; processCASbits((yyvsp[0].ival), (yylsp[0]), "PRIMARY KEY", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *)n; } #line 29204 "gram.c" /* yacc.c:1652 */ break; case 513: #line 3747 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_EXCLUSION; n->location = (yylsp[-9]); n->access_method = (yyvsp[-8].str); n->exclusions = (yyvsp[-6].list); n->including = (yyvsp[-4].list); n->options = (yyvsp[-3].list); n->indexname = NULL; n->indexspace = (yyvsp[-2].str); n->where_clause = (yyvsp[-1].node); processCASbits((yyvsp[0].ival), (yylsp[0]), "EXCLUDE", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *)n; } #line 29225 "gram.c" /* yacc.c:1652 */ break; case 514: #line 3765 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_FOREIGN; n->location = (yylsp[-10]); n->pktable = (yyvsp[-4].range); n->fk_attrs = (yyvsp[-7].list); n->pk_attrs = (yyvsp[-3].list); n->fk_matchtype = (yyvsp[-2].ival); n->fk_upd_action = (char) ((yyvsp[-1].ival) >> 8); n->fk_del_action = (char) ((yyvsp[-1].ival) & 0xFF); processCASbits((yyvsp[0].ival), (yylsp[0]), "FOREIGN KEY", &n->deferrable, &n->initdeferred, &n->skip_validation, NULL, yyscanner); n->initially_valid = !n->skip_validation; (yyval.node) = (Node *)n; } #line 29247 "gram.c" /* yacc.c:1652 */ break; case 515: #line 3784 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 29253 "gram.c" /* yacc.c:1652 */ break; case 516: #line 3785 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 29259 "gram.c" /* yacc.c:1652 */ break; case 517: #line 3789 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 29265 "gram.c" /* yacc.c:1652 */ break; case 518: #line 3790 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 29271 "gram.c" /* yacc.c:1652 */ break; case 519: #line 3794 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 29277 "gram.c" /* yacc.c:1652 */ break; case 520: #line 3795 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 29283 "gram.c" /* yacc.c:1652 */ break; case 521: #line 3799 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } #line 29291 "gram.c" /* yacc.c:1652 */ break; case 522: #line 3804 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 29297 "gram.c" /* yacc.c:1652 */ break; case 523: #line 3805 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 29303 "gram.c" /* yacc.c:1652 */ break; case 524: #line 3809 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FKCONSTR_MATCH_FULL; } #line 29311 "gram.c" /* yacc.c:1652 */ break; case 525: #line 3813 "gram.y" /* yacc.c:1652 */ { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("MATCH PARTIAL not yet implemented"), parser_errposition((yylsp[-1])))); (yyval.ival) = FKCONSTR_MATCH_PARTIAL; } #line 29323 "gram.c" /* yacc.c:1652 */ break; case 526: #line 3821 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FKCONSTR_MATCH_SIMPLE; } #line 29331 "gram.c" /* yacc.c:1652 */ break; case 527: #line 3825 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FKCONSTR_MATCH_SIMPLE; } #line 29339 "gram.c" /* yacc.c:1652 */ break; case 528: #line 3831 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].list)); } #line 29345 "gram.c" /* yacc.c:1652 */ break; case 529: #line 3833 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); } #line 29351 "gram.c" /* yacc.c:1652 */ break; case 530: #line 3837 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[-2].ielem), (yyvsp[0].list)); } #line 29359 "gram.c" /* yacc.c:1652 */ break; case 531: #line 3842 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[-5].ielem), (yyvsp[-1].list)); } #line 29367 "gram.c" /* yacc.c:1652 */ break; case 532: #line 3848 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[-1].node); } #line 29373 "gram.c" /* yacc.c:1652 */ break; case 533: #line 3849 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 29379 "gram.c" /* yacc.c:1652 */ break; case 534: #line 3860 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = ((yyvsp[0].ival) << 8) | (FKCONSTR_ACTION_NOACTION & 0xFF); } #line 29385 "gram.c" /* yacc.c:1652 */ break; case 535: #line 3862 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (FKCONSTR_ACTION_NOACTION << 8) | ((yyvsp[0].ival) & 0xFF); } #line 29391 "gram.c" /* yacc.c:1652 */ break; case 536: #line 3864 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = ((yyvsp[-1].ival) << 8) | ((yyvsp[0].ival) & 0xFF); } #line 29397 "gram.c" /* yacc.c:1652 */ break; case 537: #line 3866 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = ((yyvsp[0].ival) << 8) | ((yyvsp[-1].ival) & 0xFF); } #line 29403 "gram.c" /* yacc.c:1652 */ break; case 538: #line 3868 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (FKCONSTR_ACTION_NOACTION << 8) | (FKCONSTR_ACTION_NOACTION & 0xFF); } #line 29409 "gram.c" /* yacc.c:1652 */ break; case 539: #line 3871 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[0].ival); } #line 29415 "gram.c" /* yacc.c:1652 */ break; case 540: #line 3874 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[0].ival); } #line 29421 "gram.c" /* yacc.c:1652 */ break; case 541: #line 3878 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FKCONSTR_ACTION_NOACTION; } #line 29427 "gram.c" /* yacc.c:1652 */ break; case 542: #line 3879 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FKCONSTR_ACTION_RESTRICT; } #line 29433 "gram.c" /* yacc.c:1652 */ break; case 543: #line 3880 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FKCONSTR_ACTION_CASCADE; } #line 29439 "gram.c" /* yacc.c:1652 */ break; case 544: #line 3881 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FKCONSTR_ACTION_SETNULL; } #line 29445 "gram.c" /* yacc.c:1652 */ break; case 545: #line 3882 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FKCONSTR_ACTION_SETDEFAULT; } #line 29451 "gram.c" /* yacc.c:1652 */ break; case 546: #line 3885 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 29457 "gram.c" /* yacc.c:1652 */ break; case 547: #line 3886 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 29463 "gram.c" /* yacc.c:1652 */ break; case 548: #line 3890 "gram.y" /* yacc.c:1652 */ { (yyval.partspec) = (yyvsp[0].partspec); } #line 29469 "gram.c" /* yacc.c:1652 */ break; case 549: #line 3891 "gram.y" /* yacc.c:1652 */ { (yyval.partspec) = NULL; } #line 29475 "gram.c" /* yacc.c:1652 */ break; case 550: #line 3895 "gram.y" /* yacc.c:1652 */ { PartitionSpec *n = makeNode(PartitionSpec); n->strategy = (yyvsp[-3].str); n->partParams = (yyvsp[-1].list); n->location = (yylsp[-5]); (yyval.partspec) = n; } #line 29489 "gram.c" /* yacc.c:1652 */ break; case 551: #line 3906 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 29495 "gram.c" /* yacc.c:1652 */ break; case 552: #line 3907 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 29501 "gram.c" /* yacc.c:1652 */ break; case 553: #line 3910 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].partelem)); } #line 29507 "gram.c" /* yacc.c:1652 */ break; case 554: #line 3911 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].partelem)); } #line 29513 "gram.c" /* yacc.c:1652 */ break; case 555: #line 3915 "gram.y" /* yacc.c:1652 */ { PartitionElem *n = makeNode(PartitionElem); n->name = (yyvsp[-2].str); n->expr = NULL; n->collation = (yyvsp[-1].list); n->opclass = (yyvsp[0].list); n->location = (yylsp[-2]); (yyval.partelem) = n; } #line 29528 "gram.c" /* yacc.c:1652 */ break; case 556: #line 3926 "gram.y" /* yacc.c:1652 */ { PartitionElem *n = makeNode(PartitionElem); n->name = NULL; n->expr = (yyvsp[-2].node); n->collation = (yyvsp[-1].list); n->opclass = (yyvsp[0].list); n->location = (yylsp[-2]); (yyval.partelem) = n; } #line 29543 "gram.c" /* yacc.c:1652 */ break; case 557: #line 3937 "gram.y" /* yacc.c:1652 */ { PartitionElem *n = makeNode(PartitionElem); n->name = NULL; n->expr = (yyvsp[-3].node); n->collation = (yyvsp[-1].list); n->opclass = (yyvsp[0].list); n->location = (yylsp[-4]); (yyval.partelem) = n; } #line 29558 "gram.c" /* yacc.c:1652 */ break; case 558: #line 3950 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 29564 "gram.c" /* yacc.c:1652 */ break; case 559: #line 3951 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeDefElem("oids", (Node *) makeInteger(true), (yylsp[-1]))); } #line 29570 "gram.c" /* yacc.c:1652 */ break; case 560: #line 3952 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeDefElem("oids", (Node *) makeInteger(false), (yylsp[-1]))); } #line 29576 "gram.c" /* yacc.c:1652 */ break; case 561: #line 3953 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 29582 "gram.c" /* yacc.c:1652 */ break; case 562: #line 3956 "gram.y" /* yacc.c:1652 */ { (yyval.oncommit) = ONCOMMIT_DROP; } #line 29588 "gram.c" /* yacc.c:1652 */ break; case 563: #line 3957 "gram.y" /* yacc.c:1652 */ { (yyval.oncommit) = ONCOMMIT_DELETE_ROWS; } #line 29594 "gram.c" /* yacc.c:1652 */ break; case 564: #line 3958 "gram.y" /* yacc.c:1652 */ { (yyval.oncommit) = ONCOMMIT_PRESERVE_ROWS; } #line 29600 "gram.c" /* yacc.c:1652 */ break; case 565: #line 3959 "gram.y" /* yacc.c:1652 */ { (yyval.oncommit) = ONCOMMIT_NOOP; } #line 29606 "gram.c" /* yacc.c:1652 */ break; case 566: #line 3962 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 29612 "gram.c" /* yacc.c:1652 */ break; case 567: #line 3963 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 29618 "gram.c" /* yacc.c:1652 */ break; case 568: #line 3966 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 29624 "gram.c" /* yacc.c:1652 */ break; case 569: #line 3967 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 29630 "gram.c" /* yacc.c:1652 */ break; case 570: #line 3970 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 29636 "gram.c" /* yacc.c:1652 */ break; case 571: #line 3990 "gram.y" /* yacc.c:1652 */ { CreateStatsStmt *n = makeNode(CreateStatsStmt); n->defnames = (yyvsp[-5].list); n->stat_types = (yyvsp[-4].list); n->exprs = (yyvsp[-2].list); n->relations = (yyvsp[0].list); n->stxcomment = NULL; n->if_not_exists = false; (yyval.node) = (Node *)n; } #line 29651 "gram.c" /* yacc.c:1652 */ break; case 572: #line 4002 "gram.y" /* yacc.c:1652 */ { CreateStatsStmt *n = makeNode(CreateStatsStmt); n->defnames = (yyvsp[-5].list); n->stat_types = (yyvsp[-4].list); n->exprs = (yyvsp[-2].list); n->relations = (yyvsp[0].list); n->stxcomment = NULL; n->if_not_exists = true; (yyval.node) = (Node *)n; } #line 29666 "gram.c" /* yacc.c:1652 */ break; case 573: #line 4026 "gram.y" /* yacc.c:1652 */ { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = (yyvsp[-1].node); ctas->into = (yyvsp[-3].into); ctas->relkind = OBJECT_TABLE; ctas->is_select_into = false; ctas->if_not_exists = false; /* cram additional flags into the IntoClause */ (yyvsp[-3].into)->rel->relpersistence = (yyvsp[-5].ival); (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean)); (yyval.node) = (Node *) ctas; } #line 29683 "gram.c" /* yacc.c:1652 */ break; case 574: #line 4039 "gram.y" /* yacc.c:1652 */ { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = (yyvsp[-1].node); ctas->into = (yyvsp[-3].into); ctas->relkind = OBJECT_TABLE; ctas->is_select_into = false; ctas->if_not_exists = true; /* cram additional flags into the IntoClause */ (yyvsp[-3].into)->rel->relpersistence = (yyvsp[-8].ival); (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean)); (yyval.node) = (Node *) ctas; } #line 29700 "gram.c" /* yacc.c:1652 */ break; case 575: #line 4055 "gram.y" /* yacc.c:1652 */ { (yyval.into) = makeNode(IntoClause); (yyval.into)->rel = (yyvsp[-4].range); (yyval.into)->colNames = (yyvsp[-3].list); (yyval.into)->options = (yyvsp[-2].list); (yyval.into)->onCommit = (yyvsp[-1].oncommit); (yyval.into)->tableSpaceName = (yyvsp[0].str); (yyval.into)->viewQuery = NULL; (yyval.into)->skipData = false; /* might get changed later */ } #line 29715 "gram.c" /* yacc.c:1652 */ break; case 576: #line 4068 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 29721 "gram.c" /* yacc.c:1652 */ break; case 577: #line 4069 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 29727 "gram.c" /* yacc.c:1652 */ break; case 578: #line 4070 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 29733 "gram.c" /* yacc.c:1652 */ break; case 579: #line 4083 "gram.y" /* yacc.c:1652 */ { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = (yyvsp[-1].node); ctas->into = (yyvsp[-3].into); ctas->relkind = OBJECT_MATVIEW; ctas->is_select_into = false; ctas->if_not_exists = false; /* cram additional flags into the IntoClause */ (yyvsp[-3].into)->rel->relpersistence = (yyvsp[-6].ival); (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean)); (yyval.node) = (Node *) ctas; } #line 29750 "gram.c" /* yacc.c:1652 */ break; case 580: #line 4096 "gram.y" /* yacc.c:1652 */ { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = (yyvsp[-1].node); ctas->into = (yyvsp[-3].into); ctas->relkind = OBJECT_MATVIEW; ctas->is_select_into = false; ctas->if_not_exists = true; /* cram additional flags into the IntoClause */ (yyvsp[-3].into)->rel->relpersistence = (yyvsp[-9].ival); (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean)); (yyval.node) = (Node *) ctas; } #line 29767 "gram.c" /* yacc.c:1652 */ break; case 581: #line 4112 "gram.y" /* yacc.c:1652 */ { (yyval.into) = makeNode(IntoClause); (yyval.into)->rel = (yyvsp[-3].range); (yyval.into)->colNames = (yyvsp[-2].list); (yyval.into)->options = (yyvsp[-1].list); (yyval.into)->onCommit = ONCOMMIT_NOOP; (yyval.into)->tableSpaceName = (yyvsp[0].str); (yyval.into)->viewQuery = NULL; /* filled at analysis time */ (yyval.into)->skipData = false; /* might get changed later */ } #line 29782 "gram.c" /* yacc.c:1652 */ break; case 582: #line 4124 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = RELPERSISTENCE_UNLOGGED; } #line 29788 "gram.c" /* yacc.c:1652 */ break; case 583: #line 4125 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = RELPERSISTENCE_PERMANENT; } #line 29794 "gram.c" /* yacc.c:1652 */ break; case 584: #line 4138 "gram.y" /* yacc.c:1652 */ { RefreshMatViewStmt *n = makeNode(RefreshMatViewStmt); n->concurrent = (yyvsp[-2].boolean); n->relation = (yyvsp[-1].range); n->skipData = !((yyvsp[0].boolean)); (yyval.node) = (Node *) n; } #line 29806 "gram.c" /* yacc.c:1652 */ break; case 585: #line 4158 "gram.y" /* yacc.c:1652 */ { CreateSeqStmt *n = makeNode(CreateSeqStmt); (yyvsp[-1].range)->relpersistence = (yyvsp[-3].ival); n->sequence = (yyvsp[-1].range); n->options = (yyvsp[0].list); n->ownerId = InvalidOid; n->if_not_exists = false; (yyval.node) = (Node *)n; } #line 29820 "gram.c" /* yacc.c:1652 */ break; case 586: #line 4168 "gram.y" /* yacc.c:1652 */ { CreateSeqStmt *n = makeNode(CreateSeqStmt); (yyvsp[-1].range)->relpersistence = (yyvsp[-6].ival); n->sequence = (yyvsp[-1].range); n->options = (yyvsp[0].list); n->ownerId = InvalidOid; n->if_not_exists = true; (yyval.node) = (Node *)n; } #line 29834 "gram.c" /* yacc.c:1652 */ break; case 587: #line 4181 "gram.y" /* yacc.c:1652 */ { AlterSeqStmt *n = makeNode(AlterSeqStmt); n->sequence = (yyvsp[-1].range); n->options = (yyvsp[0].list); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 29846 "gram.c" /* yacc.c:1652 */ break; case 588: #line 4189 "gram.y" /* yacc.c:1652 */ { AlterSeqStmt *n = makeNode(AlterSeqStmt); n->sequence = (yyvsp[-1].range); n->options = (yyvsp[0].list); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 29858 "gram.c" /* yacc.c:1652 */ break; case 589: #line 4199 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 29864 "gram.c" /* yacc.c:1652 */ break; case 590: #line 4200 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 29870 "gram.c" /* yacc.c:1652 */ break; case 591: #line 4203 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 29876 "gram.c" /* yacc.c:1652 */ break; case 592: #line 4204 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 29882 "gram.c" /* yacc.c:1652 */ break; case 593: #line 4207 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 29888 "gram.c" /* yacc.c:1652 */ break; case 594: #line 4208 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 29894 "gram.c" /* yacc.c:1652 */ break; case 595: #line 4212 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("as", (Node *)(yyvsp[0].typnam), (yylsp[-1])); } #line 29902 "gram.c" /* yacc.c:1652 */ break; case 596: #line 4216 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("cache", (Node *)(yyvsp[0].value), (yylsp[-1])); } #line 29910 "gram.c" /* yacc.c:1652 */ break; case 597: #line 4220 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("cycle", (Node *)makeInteger(true), (yylsp[0])); } #line 29918 "gram.c" /* yacc.c:1652 */ break; case 598: #line 4224 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("cycle", (Node *)makeInteger(false), (yylsp[-1])); } #line 29926 "gram.c" /* yacc.c:1652 */ break; case 599: #line 4228 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("increment", (Node *)(yyvsp[0].value), (yylsp[-2])); } #line 29934 "gram.c" /* yacc.c:1652 */ break; case 600: #line 4232 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("maxvalue", (Node *)(yyvsp[0].value), (yylsp[-1])); } #line 29942 "gram.c" /* yacc.c:1652 */ break; case 601: #line 4236 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("minvalue", (Node *)(yyvsp[0].value), (yylsp[-1])); } #line 29950 "gram.c" /* yacc.c:1652 */ break; case 602: #line 4240 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("maxvalue", NULL, (yylsp[-1])); } #line 29958 "gram.c" /* yacc.c:1652 */ break; case 603: #line 4244 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("minvalue", NULL, (yylsp[-1])); } #line 29966 "gram.c" /* yacc.c:1652 */ break; case 604: #line 4248 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("owned_by", (Node *)(yyvsp[0].list), (yylsp[-2])); } #line 29974 "gram.c" /* yacc.c:1652 */ break; case 605: #line 4252 "gram.y" /* yacc.c:1652 */ { /* not documented, only used by pg_dump */ (yyval.defelt) = makeDefElem("sequence_name", (Node *)(yyvsp[0].list), (yylsp[-2])); } #line 29983 "gram.c" /* yacc.c:1652 */ break; case 606: #line 4257 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("start", (Node *)(yyvsp[0].value), (yylsp[-2])); } #line 29991 "gram.c" /* yacc.c:1652 */ break; case 607: #line 4261 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[0])); } #line 29999 "gram.c" /* yacc.c:1652 */ break; case 608: #line 4265 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("restart", (Node *)(yyvsp[0].value), (yylsp[-2])); } #line 30007 "gram.c" /* yacc.c:1652 */ break; case 609: #line 4270 "gram.y" /* yacc.c:1652 */ {} #line 30013 "gram.c" /* yacc.c:1652 */ break; case 610: #line 4271 "gram.y" /* yacc.c:1652 */ {} #line 30019 "gram.c" /* yacc.c:1652 */ break; case 611: #line 4275 "gram.y" /* yacc.c:1652 */ { (yyval.value) = makeFloat((yyvsp[0].str)); } #line 30025 "gram.c" /* yacc.c:1652 */ break; case 612: #line 4276 "gram.y" /* yacc.c:1652 */ { (yyval.value) = makeFloat((yyvsp[0].str)); } #line 30031 "gram.c" /* yacc.c:1652 */ break; case 613: #line 4278 "gram.y" /* yacc.c:1652 */ { (yyval.value) = makeFloat((yyvsp[0].str)); doNegateFloat((yyval.value)); } #line 30040 "gram.c" /* yacc.c:1652 */ break; case 614: #line 4282 "gram.y" /* yacc.c:1652 */ { (yyval.value) = makeInteger((yyvsp[0].ival)); } #line 30046 "gram.c" /* yacc.c:1652 */ break; case 615: #line 4285 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].value)); } #line 30052 "gram.c" /* yacc.c:1652 */ break; case 616: #line 4286 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].value)); } #line 30058 "gram.c" /* yacc.c:1652 */ break; case 617: #line 4299 "gram.y" /* yacc.c:1652 */ { CreatePLangStmt *n = makeNode(CreatePLangStmt); n->replace = (yyvsp[-4].boolean); n->plname = (yyvsp[0].str); /* parameters are all to be supplied by system */ n->plhandler = NIL; n->plinline = NIL; n->plvalidator = NIL; n->pltrusted = false; (yyval.node) = (Node *)n; } #line 30074 "gram.c" /* yacc.c:1652 */ break; case 618: #line 4312 "gram.y" /* yacc.c:1652 */ { CreatePLangStmt *n = makeNode(CreatePLangStmt); n->replace = (yyvsp[-8].boolean); n->plname = (yyvsp[-4].str); n->plhandler = (yyvsp[-2].list); n->plinline = (yyvsp[-1].list); n->plvalidator = (yyvsp[0].list); n->pltrusted = (yyvsp[-7].boolean); (yyval.node) = (Node *)n; } #line 30089 "gram.c" /* yacc.c:1652 */ break; case 619: #line 4325 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 30095 "gram.c" /* yacc.c:1652 */ break; case 620: #line 4326 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 30101 "gram.c" /* yacc.c:1652 */ break; case 621: #line 4334 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } #line 30107 "gram.c" /* yacc.c:1652 */ break; case 622: #line 4335 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)); } #line 30113 "gram.c" /* yacc.c:1652 */ break; case 623: #line 4339 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 30119 "gram.c" /* yacc.c:1652 */ break; case 624: #line 4340 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 30125 "gram.c" /* yacc.c:1652 */ break; case 625: #line 4344 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 30131 "gram.c" /* yacc.c:1652 */ break; case 626: #line 4345 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 30137 "gram.c" /* yacc.c:1652 */ break; case 627: #line 4349 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 30143 "gram.c" /* yacc.c:1652 */ break; case 628: #line 4350 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 30149 "gram.c" /* yacc.c:1652 */ break; case 629: #line 4355 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_LANGUAGE; n->objects = list_make1(makeString((yyvsp[-1].str))); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *)n; } #line 30163 "gram.c" /* yacc.c:1652 */ break; case 630: #line 4365 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_LANGUAGE; n->objects = list_make1(makeString((yyvsp[-1].str))); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *)n; } #line 30177 "gram.c" /* yacc.c:1652 */ break; case 631: #line 4377 "gram.y" /* yacc.c:1652 */ {} #line 30183 "gram.c" /* yacc.c:1652 */ break; case 632: #line 4378 "gram.y" /* yacc.c:1652 */ {} #line 30189 "gram.c" /* yacc.c:1652 */ break; case 633: #line 4389 "gram.y" /* yacc.c:1652 */ { CreateTableSpaceStmt *n = makeNode(CreateTableSpaceStmt); n->tablespacename = (yyvsp[-4].str); n->owner = (yyvsp[-3].rolespec); n->location = (yyvsp[-1].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 30202 "gram.c" /* yacc.c:1652 */ break; case 634: #line 4399 "gram.y" /* yacc.c:1652 */ { (yyval.rolespec) = (yyvsp[0].rolespec); } #line 30208 "gram.c" /* yacc.c:1652 */ break; case 635: #line 4400 "gram.y" /* yacc.c:1652 */ { (yyval.rolespec) = NULL; } #line 30214 "gram.c" /* yacc.c:1652 */ break; case 636: #line 4414 "gram.y" /* yacc.c:1652 */ { DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt); n->tablespacename = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *) n; } #line 30225 "gram.c" /* yacc.c:1652 */ break; case 637: #line 4421 "gram.y" /* yacc.c:1652 */ { DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt); n->tablespacename = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *) n; } #line 30236 "gram.c" /* yacc.c:1652 */ break; case 638: #line 4438 "gram.y" /* yacc.c:1652 */ { CreateExtensionStmt *n = makeNode(CreateExtensionStmt); n->extname = (yyvsp[-2].str); n->if_not_exists = false; n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 30248 "gram.c" /* yacc.c:1652 */ break; case 639: #line 4446 "gram.y" /* yacc.c:1652 */ { CreateExtensionStmt *n = makeNode(CreateExtensionStmt); n->extname = (yyvsp[-2].str); n->if_not_exists = true; n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 30260 "gram.c" /* yacc.c:1652 */ break; case 640: #line 4457 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 30266 "gram.c" /* yacc.c:1652 */ break; case 641: #line 4459 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 30272 "gram.c" /* yacc.c:1652 */ break; case 642: #line 4464 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("schema", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } #line 30280 "gram.c" /* yacc.c:1652 */ break; case 643: #line 4468 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("new_version", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } #line 30288 "gram.c" /* yacc.c:1652 */ break; case 644: #line 4472 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("old_version", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } #line 30296 "gram.c" /* yacc.c:1652 */ break; case 645: #line 4476 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("cascade", (Node *)makeInteger(true), (yylsp[0])); } #line 30304 "gram.c" /* yacc.c:1652 */ break; case 646: #line 4488 "gram.y" /* yacc.c:1652 */ { AlterExtensionStmt *n = makeNode(AlterExtensionStmt); n->extname = (yyvsp[-2].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 30315 "gram.c" /* yacc.c:1652 */ break; case 647: #line 4498 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 30321 "gram.c" /* yacc.c:1652 */ break; case 648: #line 4500 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 30327 "gram.c" /* yacc.c:1652 */ break; case 649: #line 4505 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("new_version", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } #line 30335 "gram.c" /* yacc.c:1652 */ break; case 650: #line 4518 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-4].str); n->action = (yyvsp[-3].ival); n->objtype = OBJECT_ACCESS_METHOD; n->object = (Node *) makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 30348 "gram.c" /* yacc.c:1652 */ break; case 651: #line 4527 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_AGGREGATE; n->object = (Node *) (yyvsp[0].objwithargs); (yyval.node) = (Node *)n; } #line 30361 "gram.c" /* yacc.c:1652 */ break; case 652: #line 4536 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-7].str); n->action = (yyvsp[-6].ival); n->objtype = OBJECT_CAST; n->object = (Node *) list_make2((yyvsp[-3].typnam), (yyvsp[-1].typnam)); (yyval.node) = (Node *) n; } #line 30374 "gram.c" /* yacc.c:1652 */ break; case 653: #line 4545 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_COLLATION; n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 30387 "gram.c" /* yacc.c:1652 */ break; case 654: #line 4554 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_CONVERSION; n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 30400 "gram.c" /* yacc.c:1652 */ break; case 655: #line 4563 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_DOMAIN; n->object = (Node *) (yyvsp[0].typnam); (yyval.node) = (Node *)n; } #line 30413 "gram.c" /* yacc.c:1652 */ break; case 656: #line 4572 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[0].objwithargs); (yyval.node) = (Node *)n; } #line 30426 "gram.c" /* yacc.c:1652 */ break; case 657: #line 4581 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-4].str); n->action = (yyvsp[-3].ival); n->objtype = OBJECT_LANGUAGE; n->object = (Node *) makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 30439 "gram.c" /* yacc.c:1652 */ break; case 658: #line 4590 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_OPERATOR; n->object = (Node *) (yyvsp[0].objwithargs); (yyval.node) = (Node *)n; } #line 30452 "gram.c" /* yacc.c:1652 */ break; case 659: #line 4599 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-6].str); n->action = (yyvsp[-5].ival); n->objtype = OBJECT_OPCLASS; n->object = (Node *) lcons(makeString((yyvsp[0].str)), (yyvsp[-2].list)); (yyval.node) = (Node *)n; } #line 30465 "gram.c" /* yacc.c:1652 */ break; case 660: #line 4608 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-6].str); n->action = (yyvsp[-5].ival); n->objtype = OBJECT_OPFAMILY; n->object = (Node *) lcons(makeString((yyvsp[0].str)), (yyvsp[-2].list)); (yyval.node) = (Node *)n; } #line 30478 "gram.c" /* yacc.c:1652 */ break; case 661: #line 4617 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[0].objwithargs); (yyval.node) = (Node *)n; } #line 30491 "gram.c" /* yacc.c:1652 */ break; case 662: #line 4626 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[0].objwithargs); (yyval.node) = (Node *)n; } #line 30504 "gram.c" /* yacc.c:1652 */ break; case 663: #line 4635 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_SCHEMA; n->object = (Node *) makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 30517 "gram.c" /* yacc.c:1652 */ break; case 664: #line 4644 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-4].str); n->action = (yyvsp[-3].ival); n->objtype = OBJECT_EVENT_TRIGGER; n->object = (Node *) makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 30530 "gram.c" /* yacc.c:1652 */ break; case 665: #line 4653 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_TABLE; n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 30543 "gram.c" /* yacc.c:1652 */ break; case 666: #line 4662 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-5].str); n->action = (yyvsp[-4].ival); n->objtype = OBJECT_TSPARSER; n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 30556 "gram.c" /* yacc.c:1652 */ break; case 667: #line 4671 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-5].str); n->action = (yyvsp[-4].ival); n->objtype = OBJECT_TSDICTIONARY; n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 30569 "gram.c" /* yacc.c:1652 */ break; case 668: #line 4680 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-5].str); n->action = (yyvsp[-4].ival); n->objtype = OBJECT_TSTEMPLATE; n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 30582 "gram.c" /* yacc.c:1652 */ break; case 669: #line 4689 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-5].str); n->action = (yyvsp[-4].ival); n->objtype = OBJECT_TSCONFIGURATION; n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 30595 "gram.c" /* yacc.c:1652 */ break; case 670: #line 4698 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_SEQUENCE; n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 30608 "gram.c" /* yacc.c:1652 */ break; case 671: #line 4707 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_VIEW; n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 30621 "gram.c" /* yacc.c:1652 */ break; case 672: #line 4716 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-4].str); n->action = (yyvsp[-3].ival); n->objtype = OBJECT_MATVIEW; n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 30634 "gram.c" /* yacc.c:1652 */ break; case 673: #line 4725 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-4].str); n->action = (yyvsp[-3].ival); n->objtype = OBJECT_FOREIGN_TABLE; n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 30647 "gram.c" /* yacc.c:1652 */ break; case 674: #line 4734 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-5].str); n->action = (yyvsp[-4].ival); n->objtype = OBJECT_FDW; n->object = (Node *) makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 30660 "gram.c" /* yacc.c:1652 */ break; case 675: #line 4743 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_FOREIGN_SERVER; n->object = (Node *) makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 30673 "gram.c" /* yacc.c:1652 */ break; case 676: #line 4752 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-6].str); n->action = (yyvsp[-5].ival); n->objtype = OBJECT_TRANSFORM; n->object = (Node *) list_make2((yyvsp[-2].typnam), makeString((yyvsp[0].str))); (yyval.node) = (Node *)n; } #line 30686 "gram.c" /* yacc.c:1652 */ break; case 677: #line 4761 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_TYPE; n->object = (Node *) (yyvsp[0].typnam); (yyval.node) = (Node *)n; } #line 30699 "gram.c" /* yacc.c:1652 */ break; case 678: #line 4779 "gram.y" /* yacc.c:1652 */ { CreateFdwStmt *n = makeNode(CreateFdwStmt); n->fdwname = (yyvsp[-2].str); n->func_options = (yyvsp[-1].list); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 30711 "gram.c" /* yacc.c:1652 */ break; case 679: #line 4789 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("handler", (Node *)(yyvsp[0].list), (yylsp[-1])); } #line 30717 "gram.c" /* yacc.c:1652 */ break; case 680: #line 4790 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("handler", NULL, (yylsp[-1])); } #line 30723 "gram.c" /* yacc.c:1652 */ break; case 681: #line 4791 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("validator", (Node *)(yyvsp[0].list), (yylsp[-1])); } #line 30729 "gram.c" /* yacc.c:1652 */ break; case 682: #line 4792 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("validator", NULL, (yylsp[-1])); } #line 30735 "gram.c" /* yacc.c:1652 */ break; case 683: #line 4796 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 30741 "gram.c" /* yacc.c:1652 */ break; case 684: #line 4797 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 30747 "gram.c" /* yacc.c:1652 */ break; case 685: #line 4801 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 30753 "gram.c" /* yacc.c:1652 */ break; case 686: #line 4802 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 30759 "gram.c" /* yacc.c:1652 */ break; case 687: #line 4813 "gram.y" /* yacc.c:1652 */ { AlterFdwStmt *n = makeNode(AlterFdwStmt); n->fdwname = (yyvsp[-2].str); n->func_options = (yyvsp[-1].list); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 30771 "gram.c" /* yacc.c:1652 */ break; case 688: #line 4821 "gram.y" /* yacc.c:1652 */ { AlterFdwStmt *n = makeNode(AlterFdwStmt); n->fdwname = (yyvsp[-1].str); n->func_options = (yyvsp[0].list); n->options = NIL; (yyval.node) = (Node *) n; } #line 30783 "gram.c" /* yacc.c:1652 */ break; case 689: #line 4832 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 30789 "gram.c" /* yacc.c:1652 */ break; case 690: #line 4833 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 30795 "gram.c" /* yacc.c:1652 */ break; case 691: #line 4838 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 30803 "gram.c" /* yacc.c:1652 */ break; case 692: #line 4842 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } #line 30811 "gram.c" /* yacc.c:1652 */ break; case 693: #line 4849 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 30817 "gram.c" /* yacc.c:1652 */ break; case 694: #line 4854 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 30825 "gram.c" /* yacc.c:1652 */ break; case 695: #line 4858 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } #line 30833 "gram.c" /* yacc.c:1652 */ break; case 696: #line 4865 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = (yyvsp[0].defelt); } #line 30841 "gram.c" /* yacc.c:1652 */ break; case 697: #line 4869 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = (yyvsp[0].defelt); (yyval.defelt)->defaction = DEFELEM_SET; } #line 30850 "gram.c" /* yacc.c:1652 */ break; case 698: #line 4874 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = (yyvsp[0].defelt); (yyval.defelt)->defaction = DEFELEM_ADD; } #line 30859 "gram.c" /* yacc.c:1652 */ break; case 699: #line 4879 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElemExtended(NULL, (yyvsp[0].str), NULL, DEFELEM_DROP, (yylsp[0])); } #line 30867 "gram.c" /* yacc.c:1652 */ break; case 700: #line 4886 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); } #line 30875 "gram.c" /* yacc.c:1652 */ break; case 701: #line 4892 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 30881 "gram.c" /* yacc.c:1652 */ break; case 702: #line 4897 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } #line 30887 "gram.c" /* yacc.c:1652 */ break; case 703: #line 4909 "gram.y" /* yacc.c:1652 */ { CreateForeignServerStmt *n = makeNode(CreateForeignServerStmt); n->servername = (yyvsp[-7].str); n->servertype = (yyvsp[-6].str); n->version = (yyvsp[-5].str); n->fdwname = (yyvsp[-1].str); n->options = (yyvsp[0].list); n->if_not_exists = false; (yyval.node) = (Node *) n; } #line 30902 "gram.c" /* yacc.c:1652 */ break; case 704: #line 4921 "gram.y" /* yacc.c:1652 */ { CreateForeignServerStmt *n = makeNode(CreateForeignServerStmt); n->servername = (yyvsp[-7].str); n->servertype = (yyvsp[-6].str); n->version = (yyvsp[-5].str); n->fdwname = (yyvsp[-1].str); n->options = (yyvsp[0].list); n->if_not_exists = true; (yyval.node) = (Node *) n; } #line 30917 "gram.c" /* yacc.c:1652 */ break; case 705: #line 4934 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 30923 "gram.c" /* yacc.c:1652 */ break; case 706: #line 4935 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 30929 "gram.c" /* yacc.c:1652 */ break; case 707: #line 4940 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 30935 "gram.c" /* yacc.c:1652 */ break; case 708: #line 4941 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 30941 "gram.c" /* yacc.c:1652 */ break; case 709: #line 4945 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 30947 "gram.c" /* yacc.c:1652 */ break; case 710: #line 4946 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 30953 "gram.c" /* yacc.c:1652 */ break; case 711: #line 4957 "gram.y" /* yacc.c:1652 */ { AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt); n->servername = (yyvsp[-2].str); n->version = (yyvsp[-1].str); n->options = (yyvsp[0].list); n->has_version = true; (yyval.node) = (Node *) n; } #line 30966 "gram.c" /* yacc.c:1652 */ break; case 712: #line 4966 "gram.y" /* yacc.c:1652 */ { AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt); n->servername = (yyvsp[-1].str); n->version = (yyvsp[0].str); n->has_version = true; (yyval.node) = (Node *) n; } #line 30978 "gram.c" /* yacc.c:1652 */ break; case 713: #line 4974 "gram.y" /* yacc.c:1652 */ { AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt); n->servername = (yyvsp[-1].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 30989 "gram.c" /* yacc.c:1652 */ break; case 714: #line 4993 "gram.y" /* yacc.c:1652 */ { CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); (yyvsp[-7].range)->relpersistence = RELPERSISTENCE_PERMANENT; n->base.relation = (yyvsp[-7].range); n->base.tableElts = (yyvsp[-5].list); n->base.inhRelations = (yyvsp[-3].list); n->base.ofTypename = NULL; n->base.constraints = NIL; n->base.options = NIL; n->base.oncommit = ONCOMMIT_NOOP; n->base.tablespacename = NULL; n->base.if_not_exists = false; /* FDW-specific data */ n->servername = (yyvsp[-1].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 31011 "gram.c" /* yacc.c:1652 */ break; case 715: #line 5013 "gram.y" /* yacc.c:1652 */ { CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); (yyvsp[-7].range)->relpersistence = RELPERSISTENCE_PERMANENT; n->base.relation = (yyvsp[-7].range); n->base.tableElts = (yyvsp[-5].list); n->base.inhRelations = (yyvsp[-3].list); n->base.ofTypename = NULL; n->base.constraints = NIL; n->base.options = NIL; n->base.oncommit = ONCOMMIT_NOOP; n->base.tablespacename = NULL; n->base.if_not_exists = true; /* FDW-specific data */ n->servername = (yyvsp[-1].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 31033 "gram.c" /* yacc.c:1652 */ break; case 716: #line 5033 "gram.y" /* yacc.c:1652 */ { CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); (yyvsp[-8].range)->relpersistence = RELPERSISTENCE_PERMANENT; n->base.relation = (yyvsp[-8].range); n->base.inhRelations = list_make1((yyvsp[-5].range)); n->base.tableElts = (yyvsp[-4].list); n->base.partbound = (yyvsp[-3].partboundspec); n->base.ofTypename = NULL; n->base.constraints = NIL; n->base.options = NIL; n->base.oncommit = ONCOMMIT_NOOP; n->base.tablespacename = NULL; n->base.if_not_exists = false; /* FDW-specific data */ n->servername = (yyvsp[-1].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 31056 "gram.c" /* yacc.c:1652 */ break; case 717: #line 5054 "gram.y" /* yacc.c:1652 */ { CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); (yyvsp[-8].range)->relpersistence = RELPERSISTENCE_PERMANENT; n->base.relation = (yyvsp[-8].range); n->base.inhRelations = list_make1((yyvsp[-5].range)); n->base.tableElts = (yyvsp[-4].list); n->base.partbound = (yyvsp[-3].partboundspec); n->base.ofTypename = NULL; n->base.constraints = NIL; n->base.options = NIL; n->base.oncommit = ONCOMMIT_NOOP; n->base.tablespacename = NULL; n->base.if_not_exists = true; /* FDW-specific data */ n->servername = (yyvsp[-1].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 31079 "gram.c" /* yacc.c:1652 */ break; case 718: #line 5083 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_FOREIGN_TABLE; n->missing_ok = false; (yyval.node) = (Node *)n; } #line 31092 "gram.c" /* yacc.c:1652 */ break; case 719: #line 5092 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_FOREIGN_TABLE; n->missing_ok = true; (yyval.node) = (Node *)n; } #line 31105 "gram.c" /* yacc.c:1652 */ break; case 720: #line 5114 "gram.y" /* yacc.c:1652 */ { ImportForeignSchemaStmt *n = makeNode(ImportForeignSchemaStmt); n->server_name = (yyvsp[-3].str); n->remote_schema = (yyvsp[-7].str); n->local_schema = (yyvsp[-1].str); n->list_type = (yyvsp[-6].importqual)->type; n->table_list = (yyvsp[-6].importqual)->table_names; n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 31120 "gram.c" /* yacc.c:1652 */ break; case 721: #line 5127 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FDW_IMPORT_SCHEMA_LIMIT_TO; } #line 31126 "gram.c" /* yacc.c:1652 */ break; case 722: #line 5128 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FDW_IMPORT_SCHEMA_EXCEPT; } #line 31132 "gram.c" /* yacc.c:1652 */ break; case 723: #line 5133 "gram.y" /* yacc.c:1652 */ { ImportQual *n = (ImportQual *) palloc(sizeof(ImportQual)); n->type = (yyvsp[-3].ival); n->table_names = (yyvsp[-1].list); (yyval.importqual) = n; } #line 31143 "gram.c" /* yacc.c:1652 */ break; case 724: #line 5140 "gram.y" /* yacc.c:1652 */ { ImportQual *n = (ImportQual *) palloc(sizeof(ImportQual)); n->type = FDW_IMPORT_SCHEMA_ALL; n->table_names = NIL; (yyval.importqual) = n; } #line 31154 "gram.c" /* yacc.c:1652 */ break; case 725: #line 5156 "gram.y" /* yacc.c:1652 */ { CreateUserMappingStmt *n = makeNode(CreateUserMappingStmt); n->user = (yyvsp[-3].rolespec); n->servername = (yyvsp[-1].str); n->options = (yyvsp[0].list); n->if_not_exists = false; (yyval.node) = (Node *) n; } #line 31167 "gram.c" /* yacc.c:1652 */ break; case 726: #line 5165 "gram.y" /* yacc.c:1652 */ { CreateUserMappingStmt *n = makeNode(CreateUserMappingStmt); n->user = (yyvsp[-3].rolespec); n->servername = (yyvsp[-1].str); n->options = (yyvsp[0].list); n->if_not_exists = true; (yyval.node) = (Node *) n; } #line 31180 "gram.c" /* yacc.c:1652 */ break; case 727: #line 5176 "gram.y" /* yacc.c:1652 */ { (yyval.rolespec) = (yyvsp[0].rolespec); } #line 31186 "gram.c" /* yacc.c:1652 */ break; case 728: #line 5177 "gram.y" /* yacc.c:1652 */ { (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_USER, (yylsp[0])); } #line 31192 "gram.c" /* yacc.c:1652 */ break; case 729: #line 5190 "gram.y" /* yacc.c:1652 */ { DropUserMappingStmt *n = makeNode(DropUserMappingStmt); n->user = (yyvsp[-2].rolespec); n->servername = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *) n; } #line 31204 "gram.c" /* yacc.c:1652 */ break; case 730: #line 5198 "gram.y" /* yacc.c:1652 */ { DropUserMappingStmt *n = makeNode(DropUserMappingStmt); n->user = (yyvsp[-2].rolespec); n->servername = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *) n; } #line 31216 "gram.c" /* yacc.c:1652 */ break; case 731: #line 5215 "gram.y" /* yacc.c:1652 */ { AlterUserMappingStmt *n = makeNode(AlterUserMappingStmt); n->user = (yyvsp[-3].rolespec); n->servername = (yyvsp[-1].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 31228 "gram.c" /* yacc.c:1652 */ break; case 732: #line 5241 "gram.y" /* yacc.c:1652 */ { CreatePolicyStmt *n = makeNode(CreatePolicyStmt); n->policy_name = (yyvsp[-7].str); n->table = (yyvsp[-5].range); n->permissive = (yyvsp[-4].boolean); n->cmd_name = (yyvsp[-3].str); n->roles = (yyvsp[-2].list); n->qual = (yyvsp[-1].node); n->with_check = (yyvsp[0].node); (yyval.node) = (Node *) n; } #line 31244 "gram.c" /* yacc.c:1652 */ break; case 733: #line 5257 "gram.y" /* yacc.c:1652 */ { AlterPolicyStmt *n = makeNode(AlterPolicyStmt); n->policy_name = (yyvsp[-5].str); n->table = (yyvsp[-3].range); n->roles = (yyvsp[-2].list); n->qual = (yyvsp[-1].node); n->with_check = (yyvsp[0].node); (yyval.node) = (Node *) n; } #line 31258 "gram.c" /* yacc.c:1652 */ break; case 734: #line 5269 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[-1].node); } #line 31264 "gram.c" /* yacc.c:1652 */ break; case 735: #line 5270 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 31270 "gram.c" /* yacc.c:1652 */ break; case 736: #line 5274 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[-1].node); } #line 31276 "gram.c" /* yacc.c:1652 */ break; case 737: #line 5275 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 31282 "gram.c" /* yacc.c:1652 */ break; case 738: #line 5279 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 31288 "gram.c" /* yacc.c:1652 */ break; case 739: #line 5280 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeRoleSpec(ROLESPEC_PUBLIC, -1)); } #line 31294 "gram.c" /* yacc.c:1652 */ break; case 740: #line 5284 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 31300 "gram.c" /* yacc.c:1652 */ break; case 741: #line 5285 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NULL; } #line 31306 "gram.c" /* yacc.c:1652 */ break; case 742: #line 5290 "gram.y" /* yacc.c:1652 */ { if (strcmp((yyvsp[0].str), "permissive") == 0) (yyval.boolean) = true; else if (strcmp((yyvsp[0].str), "restrictive") == 0) (yyval.boolean) = false; else ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("unrecognized row security option \"%s\"", (yyvsp[0].str)), errhint("Only PERMISSIVE or RESTRICTIVE policies are supported currently."), parser_errposition((yylsp[0])))); } #line 31324 "gram.c" /* yacc.c:1652 */ break; case 743: #line 5303 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 31330 "gram.c" /* yacc.c:1652 */ break; case 744: #line 5307 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 31336 "gram.c" /* yacc.c:1652 */ break; case 745: #line 5308 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "all"; } #line 31342 "gram.c" /* yacc.c:1652 */ break; case 746: #line 5312 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "all"; } #line 31348 "gram.c" /* yacc.c:1652 */ break; case 747: #line 5313 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "select"; } #line 31354 "gram.c" /* yacc.c:1652 */ break; case 748: #line 5314 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "insert"; } #line 31360 "gram.c" /* yacc.c:1652 */ break; case 749: #line 5315 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "update"; } #line 31366 "gram.c" /* yacc.c:1652 */ break; case 750: #line 5316 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "delete"; } #line 31372 "gram.c" /* yacc.c:1652 */ break; case 751: #line 5327 "gram.y" /* yacc.c:1652 */ { CreateAmStmt *n = makeNode(CreateAmStmt); n->amname = (yyvsp[-4].str); n->handler_name = (yyvsp[0].list); n->amtype = AMTYPE_INDEX; (yyval.node) = (Node *) n; } #line 31384 "gram.c" /* yacc.c:1652 */ break; case 752: #line 5347 "gram.y" /* yacc.c:1652 */ { CreateTrigStmt *n = makeNode(CreateTrigStmt); n->trigname = (yyvsp[-13].str); n->relation = (yyvsp[-9].range); n->funcname = (yyvsp[-3].list); n->args = (yyvsp[-1].list); n->row = (yyvsp[-7].boolean); n->timing = (yyvsp[-12].ival); n->events = intVal(linitial((yyvsp[-11].list))); n->columns = (List *) lsecond((yyvsp[-11].list)); n->whenClause = (yyvsp[-6].node); n->transitionRels = (yyvsp[-8].list); n->isconstraint = false; n->deferrable = false; n->initdeferred = false; n->constrrel = NULL; (yyval.node) = (Node *)n; } #line 31407 "gram.c" /* yacc.c:1652 */ break; case 753: #line 5369 "gram.y" /* yacc.c:1652 */ { CreateTrigStmt *n = makeNode(CreateTrigStmt); n->trigname = (yyvsp[-16].str); n->relation = (yyvsp[-12].range); n->funcname = (yyvsp[-3].list); n->args = (yyvsp[-1].list); n->row = true; n->timing = TRIGGER_TYPE_AFTER; n->events = intVal(linitial((yyvsp[-14].list))); n->columns = (List *) lsecond((yyvsp[-14].list)); n->whenClause = (yyvsp[-6].node); n->transitionRels = NIL; n->isconstraint = true; processCASbits((yyvsp[-10].ival), (yylsp[-10]), "TRIGGER", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); n->constrrel = (yyvsp[-11].range); (yyval.node) = (Node *)n; } #line 31431 "gram.c" /* yacc.c:1652 */ break; case 754: #line 5391 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = TRIGGER_TYPE_BEFORE; } #line 31437 "gram.c" /* yacc.c:1652 */ break; case 755: #line 5392 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = TRIGGER_TYPE_AFTER; } #line 31443 "gram.c" /* yacc.c:1652 */ break; case 756: #line 5393 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = TRIGGER_TYPE_INSTEAD; } #line 31449 "gram.c" /* yacc.c:1652 */ break; case 757: #line 5398 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 31455 "gram.c" /* yacc.c:1652 */ break; case 758: #line 5400 "gram.y" /* yacc.c:1652 */ { int events1 = intVal(linitial((yyvsp[-2].list))); int events2 = intVal(linitial((yyvsp[0].list))); List *columns1 = (List *) lsecond((yyvsp[-2].list)); List *columns2 = (List *) lsecond((yyvsp[0].list)); if (events1 & events2) parser_yyerror("duplicate trigger events specified"); /* * concat'ing the columns lists loses information about * which columns went with which event, but so long as * only UPDATE carries columns and we disallow multiple * UPDATE items, it doesn't matter. Command execution * should just ignore the columns for non-UPDATE events. */ (yyval.list) = list_make2(makeInteger(events1 | events2), list_concat(columns1, columns2)); } #line 31478 "gram.c" /* yacc.c:1652 */ break; case 759: #line 5422 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_INSERT), NIL); } #line 31484 "gram.c" /* yacc.c:1652 */ break; case 760: #line 5424 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_DELETE), NIL); } #line 31490 "gram.c" /* yacc.c:1652 */ break; case 761: #line 5426 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), NIL); } #line 31496 "gram.c" /* yacc.c:1652 */ break; case 762: #line 5428 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), (yyvsp[0].list)); } #line 31502 "gram.c" /* yacc.c:1652 */ break; case 763: #line 5430 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_TRUNCATE), NIL); } #line 31508 "gram.c" /* yacc.c:1652 */ break; case 764: #line 5434 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 31514 "gram.c" /* yacc.c:1652 */ break; case 765: #line 5435 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 31520 "gram.c" /* yacc.c:1652 */ break; case 766: #line 5439 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 31526 "gram.c" /* yacc.c:1652 */ break; case 767: #line 5440 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } #line 31532 "gram.c" /* yacc.c:1652 */ break; case 768: #line 5445 "gram.y" /* yacc.c:1652 */ { TriggerTransition *n = makeNode(TriggerTransition); n->name = (yyvsp[0].str); n->isNew = (yyvsp[-3].boolean); n->isTable = (yyvsp[-2].boolean); (yyval.node) = (Node *)n; } #line 31544 "gram.c" /* yacc.c:1652 */ break; case 769: #line 5455 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 31550 "gram.c" /* yacc.c:1652 */ break; case 770: #line 5456 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 31556 "gram.c" /* yacc.c:1652 */ break; case 771: #line 5460 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 31562 "gram.c" /* yacc.c:1652 */ break; case 772: #line 5469 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 31568 "gram.c" /* yacc.c:1652 */ break; case 773: #line 5473 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 31574 "gram.c" /* yacc.c:1652 */ break; case 774: #line 5478 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = (yyvsp[0].boolean); } #line 31582 "gram.c" /* yacc.c:1652 */ break; case 775: #line 5482 "gram.y" /* yacc.c:1652 */ { /* * If ROW/STATEMENT not specified, default to * STATEMENT, per SQL */ (yyval.boolean) = false; } #line 31594 "gram.c" /* yacc.c:1652 */ break; case 776: #line 5492 "gram.y" /* yacc.c:1652 */ {} #line 31600 "gram.c" /* yacc.c:1652 */ break; case 777: #line 5493 "gram.y" /* yacc.c:1652 */ {} #line 31606 "gram.c" /* yacc.c:1652 */ break; case 778: #line 5497 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 31612 "gram.c" /* yacc.c:1652 */ break; case 779: #line 5498 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 31618 "gram.c" /* yacc.c:1652 */ break; case 780: #line 5502 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[-1].node); } #line 31624 "gram.c" /* yacc.c:1652 */ break; case 781: #line 5503 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 31630 "gram.c" /* yacc.c:1652 */ break; case 784: #line 5512 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].value)); } #line 31636 "gram.c" /* yacc.c:1652 */ break; case 785: #line 5513 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].value)); } #line 31642 "gram.c" /* yacc.c:1652 */ break; case 786: #line 5514 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 31648 "gram.c" /* yacc.c:1652 */ break; case 787: #line 5519 "gram.y" /* yacc.c:1652 */ { (yyval.value) = makeString(psprintf("%d", (yyvsp[0].ival))); } #line 31656 "gram.c" /* yacc.c:1652 */ break; case 788: #line 5522 "gram.y" /* yacc.c:1652 */ { (yyval.value) = makeString((yyvsp[0].str)); } #line 31662 "gram.c" /* yacc.c:1652 */ break; case 789: #line 5523 "gram.y" /* yacc.c:1652 */ { (yyval.value) = makeString((yyvsp[0].str)); } #line 31668 "gram.c" /* yacc.c:1652 */ break; case 790: #line 5524 "gram.y" /* yacc.c:1652 */ { (yyval.value) = makeString((yyvsp[0].str)); } #line 31674 "gram.c" /* yacc.c:1652 */ break; case 791: #line 5528 "gram.y" /* yacc.c:1652 */ { (yyval.range) = (yyvsp[0].range); } #line 31680 "gram.c" /* yacc.c:1652 */ break; case 792: #line 5529 "gram.y" /* yacc.c:1652 */ { (yyval.range) = NULL; } #line 31686 "gram.c" /* yacc.c:1652 */ break; case 793: #line 5534 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 31692 "gram.c" /* yacc.c:1652 */ break; case 794: #line 5536 "gram.y" /* yacc.c:1652 */ { /* * We must complain about conflicting options. * We could, but choose not to, complain about redundant * options (ie, where $2's bit is already set in $1). */ int newspec = (yyvsp[-1].ival) | (yyvsp[0].ival); /* special message for this case */ if ((newspec & (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) == (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("constraint declared INITIALLY DEFERRED must be DEFERRABLE"), parser_errposition((yylsp[0])))); /* generic message for other conflicts */ if ((newspec & (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE)) == (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE) || (newspec & (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) == (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("conflicting constraint properties"), parser_errposition((yylsp[0])))); (yyval.ival) = newspec; } #line 31720 "gram.c" /* yacc.c:1652 */ break; case 795: #line 5562 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CAS_NOT_DEFERRABLE; } #line 31726 "gram.c" /* yacc.c:1652 */ break; case 796: #line 5563 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CAS_DEFERRABLE; } #line 31732 "gram.c" /* yacc.c:1652 */ break; case 797: #line 5564 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CAS_INITIALLY_IMMEDIATE; } #line 31738 "gram.c" /* yacc.c:1652 */ break; case 798: #line 5565 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CAS_INITIALLY_DEFERRED; } #line 31744 "gram.c" /* yacc.c:1652 */ break; case 799: #line 5566 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CAS_NOT_VALID; } #line 31750 "gram.c" /* yacc.c:1652 */ break; case 800: #line 5567 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CAS_NO_INHERIT; } #line 31756 "gram.c" /* yacc.c:1652 */ break; case 801: #line 5582 "gram.y" /* yacc.c:1652 */ { CreateEventTrigStmt *n = makeNode(CreateEventTrigStmt); n->trigname = (yyvsp[-7].str); n->eventname = (yyvsp[-5].str); n->whenclause = NULL; n->funcname = (yyvsp[-2].list); (yyval.node) = (Node *)n; } #line 31769 "gram.c" /* yacc.c:1652 */ break; case 802: #line 5593 "gram.y" /* yacc.c:1652 */ { CreateEventTrigStmt *n = makeNode(CreateEventTrigStmt); n->trigname = (yyvsp[-9].str); n->eventname = (yyvsp[-7].str); n->whenclause = (yyvsp[-5].list); n->funcname = (yyvsp[-2].list); (yyval.node) = (Node *)n; } #line 31782 "gram.c" /* yacc.c:1652 */ break; case 803: #line 5605 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 31788 "gram.c" /* yacc.c:1652 */ break; case 804: #line 5607 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } #line 31794 "gram.c" /* yacc.c:1652 */ break; case 805: #line 5612 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-4].str), (Node *) (yyvsp[-1].list), (yylsp[-4])); } #line 31800 "gram.c" /* yacc.c:1652 */ break; case 806: #line 5617 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } #line 31806 "gram.c" /* yacc.c:1652 */ break; case 807: #line 5619 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); } #line 31812 "gram.c" /* yacc.c:1652 */ break; case 808: #line 5624 "gram.y" /* yacc.c:1652 */ { AlterEventTrigStmt *n = makeNode(AlterEventTrigStmt); n->trigname = (yyvsp[-1].str); n->tgenabled = (yyvsp[0].chr); (yyval.node) = (Node *) n; } #line 31823 "gram.c" /* yacc.c:1652 */ break; case 809: #line 5633 "gram.y" /* yacc.c:1652 */ { (yyval.chr) = TRIGGER_FIRES_ON_ORIGIN; } #line 31829 "gram.c" /* yacc.c:1652 */ break; case 810: #line 5634 "gram.y" /* yacc.c:1652 */ { (yyval.chr) = TRIGGER_FIRES_ON_REPLICA; } #line 31835 "gram.c" /* yacc.c:1652 */ break; case 811: #line 5635 "gram.y" /* yacc.c:1652 */ { (yyval.chr) = TRIGGER_FIRES_ALWAYS; } #line 31841 "gram.c" /* yacc.c:1652 */ break; case 812: #line 5636 "gram.y" /* yacc.c:1652 */ { (yyval.chr) = TRIGGER_DISABLED; } #line 31847 "gram.c" /* yacc.c:1652 */ break; case 813: #line 5650 "gram.y" /* yacc.c:1652 */ { CreateTrigStmt *n = makeNode(CreateTrigStmt); n->trigname = (yyvsp[-5].str); n->args = list_make1((yyvsp[-2].node)); n->isconstraint = true; processCASbits((yyvsp[0].ival), (yylsp[0]), "ASSERTION", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("CREATE ASSERTION is not yet implemented"))); (yyval.node) = (Node *)n; } #line 31867 "gram.c" /* yacc.c:1652 */ break; case 814: #line 5669 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->objects = NIL; n->behavior = (yyvsp[0].dbehavior); n->removeType = OBJECT_TRIGGER; /* XXX */ ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("DROP ASSERTION is not yet implemented"))); (yyval.node) = (Node *) n; } #line 31882 "gram.c" /* yacc.c:1652 */ break; case 815: #line 5691 "gram.y" /* yacc.c:1652 */ { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_AGGREGATE; n->oldstyle = false; n->defnames = (yyvsp[-2].list); n->args = (yyvsp[-1].list); n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 31896 "gram.c" /* yacc.c:1652 */ break; case 816: #line 5701 "gram.y" /* yacc.c:1652 */ { /* old-style (pre-8.2) syntax for CREATE AGGREGATE */ DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_AGGREGATE; n->oldstyle = true; n->defnames = (yyvsp[-1].list); n->args = NIL; n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 31911 "gram.c" /* yacc.c:1652 */ break; case 817: #line 5712 "gram.y" /* yacc.c:1652 */ { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_OPERATOR; n->oldstyle = false; n->defnames = (yyvsp[-1].list); n->args = NIL; n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 31925 "gram.c" /* yacc.c:1652 */ break; case 818: #line 5722 "gram.y" /* yacc.c:1652 */ { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TYPE; n->oldstyle = false; n->defnames = (yyvsp[-1].list); n->args = NIL; n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 31939 "gram.c" /* yacc.c:1652 */ break; case 819: #line 5732 "gram.y" /* yacc.c:1652 */ { /* Shell type (identified by lack of definition) */ DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TYPE; n->oldstyle = false; n->defnames = (yyvsp[0].list); n->args = NIL; n->definition = NIL; (yyval.node) = (Node *)n; } #line 31954 "gram.c" /* yacc.c:1652 */ break; case 820: #line 5743 "gram.y" /* yacc.c:1652 */ { CompositeTypeStmt *n = makeNode(CompositeTypeStmt); /* can't use qualified_name, sigh */ n->typevar = makeRangeVarFromAnyName((yyvsp[-4].list), (yylsp[-4]), yyscanner); n->coldeflist = (yyvsp[-1].list); (yyval.node) = (Node *)n; } #line 31967 "gram.c" /* yacc.c:1652 */ break; case 821: #line 5752 "gram.y" /* yacc.c:1652 */ { CreateEnumStmt *n = makeNode(CreateEnumStmt); n->typeName = (yyvsp[-5].list); n->vals = (yyvsp[-1].list); (yyval.node) = (Node *)n; } #line 31978 "gram.c" /* yacc.c:1652 */ break; case 822: #line 5759 "gram.y" /* yacc.c:1652 */ { CreateRangeStmt *n = makeNode(CreateRangeStmt); n->typeName = (yyvsp[-3].list); n->params = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 31989 "gram.c" /* yacc.c:1652 */ break; case 823: #line 5766 "gram.y" /* yacc.c:1652 */ { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TSPARSER; n->args = NIL; n->defnames = (yyvsp[-1].list); n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 32002 "gram.c" /* yacc.c:1652 */ break; case 824: #line 5775 "gram.y" /* yacc.c:1652 */ { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TSDICTIONARY; n->args = NIL; n->defnames = (yyvsp[-1].list); n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 32015 "gram.c" /* yacc.c:1652 */ break; case 825: #line 5784 "gram.y" /* yacc.c:1652 */ { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TSTEMPLATE; n->args = NIL; n->defnames = (yyvsp[-1].list); n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 32028 "gram.c" /* yacc.c:1652 */ break; case 826: #line 5793 "gram.y" /* yacc.c:1652 */ { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TSCONFIGURATION; n->args = NIL; n->defnames = (yyvsp[-1].list); n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 32041 "gram.c" /* yacc.c:1652 */ break; case 827: #line 5802 "gram.y" /* yacc.c:1652 */ { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_COLLATION; n->args = NIL; n->defnames = (yyvsp[-1].list); n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 32054 "gram.c" /* yacc.c:1652 */ break; case 828: #line 5811 "gram.y" /* yacc.c:1652 */ { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_COLLATION; n->args = NIL; n->defnames = (yyvsp[-1].list); n->definition = (yyvsp[0].list); n->if_not_exists = true; (yyval.node) = (Node *)n; } #line 32068 "gram.c" /* yacc.c:1652 */ break; case 829: #line 5821 "gram.y" /* yacc.c:1652 */ { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_COLLATION; n->args = NIL; n->defnames = (yyvsp[-2].list); n->definition = list_make1(makeDefElem("from", (Node *) (yyvsp[0].list), (yylsp[0]))); (yyval.node) = (Node *)n; } #line 32081 "gram.c" /* yacc.c:1652 */ break; case 830: #line 5830 "gram.y" /* yacc.c:1652 */ { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_COLLATION; n->args = NIL; n->defnames = (yyvsp[-2].list); n->definition = list_make1(makeDefElem("from", (Node *) (yyvsp[0].list), (yylsp[0]))); n->if_not_exists = true; (yyval.node) = (Node *)n; } #line 32095 "gram.c" /* yacc.c:1652 */ break; case 831: #line 5841 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 32101 "gram.c" /* yacc.c:1652 */ break; case 832: #line 5844 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 32107 "gram.c" /* yacc.c:1652 */ break; case 833: #line 5845 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } #line 32113 "gram.c" /* yacc.c:1652 */ break; case 834: #line 5849 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2])); } #line 32121 "gram.c" /* yacc.c:1652 */ break; case 835: #line 5853 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[0].str), NULL, (yylsp[0])); } #line 32129 "gram.c" /* yacc.c:1652 */ break; case 836: #line 5859 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *)(yyvsp[0].typnam); } #line 32135 "gram.c" /* yacc.c:1652 */ break; case 837: #line 5860 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *)makeString(pstrdup((yyvsp[0].keyword))); } #line 32141 "gram.c" /* yacc.c:1652 */ break; case 838: #line 5861 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *)(yyvsp[0].list); } #line 32147 "gram.c" /* yacc.c:1652 */ break; case 839: #line 5862 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *)(yyvsp[0].value); } #line 32153 "gram.c" /* yacc.c:1652 */ break; case 840: #line 5863 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *)makeString((yyvsp[0].str)); } #line 32159 "gram.c" /* yacc.c:1652 */ break; case 841: #line 5864 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *)makeString(pstrdup((yyvsp[0].keyword))); } #line 32165 "gram.c" /* yacc.c:1652 */ break; case 842: #line 5867 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 32171 "gram.c" /* yacc.c:1652 */ break; case 843: #line 5870 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 32177 "gram.c" /* yacc.c:1652 */ break; case 844: #line 5871 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } #line 32183 "gram.c" /* yacc.c:1652 */ break; case 845: #line 5880 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *)(yyvsp[0].node), (yylsp[-2])); } #line 32191 "gram.c" /* yacc.c:1652 */ break; case 846: #line 5886 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 32197 "gram.c" /* yacc.c:1652 */ break; case 847: #line 5887 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 32203 "gram.c" /* yacc.c:1652 */ break; case 848: #line 5891 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } #line 32209 "gram.c" /* yacc.c:1652 */ break; case 849: #line 5893 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); } #line 32215 "gram.c" /* yacc.c:1652 */ break; case 850: #line 5904 "gram.y" /* yacc.c:1652 */ { AlterEnumStmt *n = makeNode(AlterEnumStmt); n->typeName = (yyvsp[-4].list); n->oldVal = NULL; n->newVal = (yyvsp[0].str); n->newValNeighbor = NULL; n->newValIsAfter = true; n->skipIfNewValExists = (yyvsp[-1].boolean); (yyval.node) = (Node *) n; } #line 32230 "gram.c" /* yacc.c:1652 */ break; case 851: #line 5915 "gram.y" /* yacc.c:1652 */ { AlterEnumStmt *n = makeNode(AlterEnumStmt); n->typeName = (yyvsp[-6].list); n->oldVal = NULL; n->newVal = (yyvsp[-2].str); n->newValNeighbor = (yyvsp[0].str); n->newValIsAfter = false; n->skipIfNewValExists = (yyvsp[-3].boolean); (yyval.node) = (Node *) n; } #line 32245 "gram.c" /* yacc.c:1652 */ break; case 852: #line 5926 "gram.y" /* yacc.c:1652 */ { AlterEnumStmt *n = makeNode(AlterEnumStmt); n->typeName = (yyvsp[-6].list); n->oldVal = NULL; n->newVal = (yyvsp[-2].str); n->newValNeighbor = (yyvsp[0].str); n->newValIsAfter = true; n->skipIfNewValExists = (yyvsp[-3].boolean); (yyval.node) = (Node *) n; } #line 32260 "gram.c" /* yacc.c:1652 */ break; case 853: #line 5937 "gram.y" /* yacc.c:1652 */ { AlterEnumStmt *n = makeNode(AlterEnumStmt); n->typeName = (yyvsp[-5].list); n->oldVal = (yyvsp[-2].str); n->newVal = (yyvsp[0].str); n->newValNeighbor = NULL; n->newValIsAfter = false; n->skipIfNewValExists = false; (yyval.node) = (Node *) n; } #line 32275 "gram.c" /* yacc.c:1652 */ break; case 854: #line 5949 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 32281 "gram.c" /* yacc.c:1652 */ break; case 855: #line 5950 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 32287 "gram.c" /* yacc.c:1652 */ break; case 856: #line 5968 "gram.y" /* yacc.c:1652 */ { CreateOpClassStmt *n = makeNode(CreateOpClassStmt); n->opclassname = (yyvsp[-9].list); n->isDefault = (yyvsp[-8].boolean); n->datatype = (yyvsp[-5].typnam); n->amname = (yyvsp[-3].str); n->opfamilyname = (yyvsp[-2].list); n->items = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 32302 "gram.c" /* yacc.c:1652 */ break; case 857: #line 5981 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 32308 "gram.c" /* yacc.c:1652 */ break; case 858: #line 5982 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 32314 "gram.c" /* yacc.c:1652 */ break; case 859: #line 5987 "gram.y" /* yacc.c:1652 */ { CreateOpClassItem *n = makeNode(CreateOpClassItem); ObjectWithArgs *owa = makeNode(ObjectWithArgs); owa->objname = (yyvsp[-2].list); owa->objargs = NIL; n->itemtype = OPCLASS_ITEM_OPERATOR; n->name = owa; n->number = (yyvsp[-3].ival); n->order_family = (yyvsp[-1].list); (yyval.node) = (Node *) n; } #line 32330 "gram.c" /* yacc.c:1652 */ break; case 860: #line 6000 "gram.y" /* yacc.c:1652 */ { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_OPERATOR; n->name = (yyvsp[-2].objwithargs); n->number = (yyvsp[-3].ival); n->order_family = (yyvsp[-1].list); (yyval.node) = (Node *) n; } #line 32343 "gram.c" /* yacc.c:1652 */ break; case 861: #line 6009 "gram.y" /* yacc.c:1652 */ { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_FUNCTION; n->name = (yyvsp[0].objwithargs); n->number = (yyvsp[-1].ival); (yyval.node) = (Node *) n; } #line 32355 "gram.c" /* yacc.c:1652 */ break; case 862: #line 6017 "gram.y" /* yacc.c:1652 */ { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_FUNCTION; n->name = (yyvsp[0].objwithargs); n->number = (yyvsp[-4].ival); n->class_args = (yyvsp[-2].list); (yyval.node) = (Node *) n; } #line 32368 "gram.c" /* yacc.c:1652 */ break; case 863: #line 6026 "gram.y" /* yacc.c:1652 */ { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_STORAGETYPE; n->storedtype = (yyvsp[0].typnam); (yyval.node) = (Node *) n; } #line 32379 "gram.c" /* yacc.c:1652 */ break; case 864: #line 6034 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 32385 "gram.c" /* yacc.c:1652 */ break; case 865: #line 6035 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 32391 "gram.c" /* yacc.c:1652 */ break; case 866: #line 6038 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 32397 "gram.c" /* yacc.c:1652 */ break; case 867: #line 6039 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 32403 "gram.c" /* yacc.c:1652 */ break; case 868: #line 6042 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 32409 "gram.c" /* yacc.c:1652 */ break; case 869: #line 6043 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 32415 "gram.c" /* yacc.c:1652 */ break; case 870: #line 6044 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 32421 "gram.c" /* yacc.c:1652 */ break; case 871: #line 6048 "gram.y" /* yacc.c:1652 */ { /* * RECHECK no longer does anything in opclass definitions, * but we still accept it to ease porting of old database * dumps. */ ereport(NOTICE, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("RECHECK is no longer required"), errhint("Update your data type."), parser_errposition((yylsp[0])))); (yyval.boolean) = true; } #line 32439 "gram.c" /* yacc.c:1652 */ break; case 872: #line 6061 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 32445 "gram.c" /* yacc.c:1652 */ break; case 873: #line 6067 "gram.y" /* yacc.c:1652 */ { CreateOpFamilyStmt *n = makeNode(CreateOpFamilyStmt); n->opfamilyname = (yyvsp[-2].list); n->amname = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 32456 "gram.c" /* yacc.c:1652 */ break; case 874: #line 6077 "gram.y" /* yacc.c:1652 */ { AlterOpFamilyStmt *n = makeNode(AlterOpFamilyStmt); n->opfamilyname = (yyvsp[-4].list); n->amname = (yyvsp[-2].str); n->isDrop = false; n->items = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 32469 "gram.c" /* yacc.c:1652 */ break; case 875: #line 6086 "gram.y" /* yacc.c:1652 */ { AlterOpFamilyStmt *n = makeNode(AlterOpFamilyStmt); n->opfamilyname = (yyvsp[-4].list); n->amname = (yyvsp[-2].str); n->isDrop = true; n->items = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 32482 "gram.c" /* yacc.c:1652 */ break; case 876: #line 6097 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 32488 "gram.c" /* yacc.c:1652 */ break; case 877: #line 6098 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 32494 "gram.c" /* yacc.c:1652 */ break; case 878: #line 6103 "gram.y" /* yacc.c:1652 */ { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_OPERATOR; n->number = (yyvsp[-3].ival); n->class_args = (yyvsp[-1].list); (yyval.node) = (Node *) n; } #line 32506 "gram.c" /* yacc.c:1652 */ break; case 879: #line 6111 "gram.y" /* yacc.c:1652 */ { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_FUNCTION; n->number = (yyvsp[-3].ival); n->class_args = (yyvsp[-1].list); (yyval.node) = (Node *) n; } #line 32518 "gram.c" /* yacc.c:1652 */ break; case 880: #line 6123 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->objects = list_make1(lcons(makeString((yyvsp[-1].str)), (yyvsp[-3].list))); n->removeType = OBJECT_OPCLASS; n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *) n; } #line 32532 "gram.c" /* yacc.c:1652 */ break; case 881: #line 6133 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->objects = list_make1(lcons(makeString((yyvsp[-1].str)), (yyvsp[-3].list))); n->removeType = OBJECT_OPCLASS; n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *) n; } #line 32546 "gram.c" /* yacc.c:1652 */ break; case 882: #line 6146 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->objects = list_make1(lcons(makeString((yyvsp[-1].str)), (yyvsp[-3].list))); n->removeType = OBJECT_OPFAMILY; n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *) n; } #line 32560 "gram.c" /* yacc.c:1652 */ break; case 883: #line 6156 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->objects = list_make1(lcons(makeString((yyvsp[-1].str)), (yyvsp[-3].list))); n->removeType = OBJECT_OPFAMILY; n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *) n; } #line 32574 "gram.c" /* yacc.c:1652 */ break; case 884: #line 6178 "gram.y" /* yacc.c:1652 */ { DropOwnedStmt *n = makeNode(DropOwnedStmt); n->roles = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *)n; } #line 32585 "gram.c" /* yacc.c:1652 */ break; case 885: #line 6188 "gram.y" /* yacc.c:1652 */ { ReassignOwnedStmt *n = makeNode(ReassignOwnedStmt); n->roles = (yyvsp[-2].list); n->newrole = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 32596 "gram.c" /* yacc.c:1652 */ break; case 886: #line 6206 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[-4].objtype); n->missing_ok = true; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->concurrent = false; (yyval.node) = (Node *)n; } #line 32610 "gram.c" /* yacc.c:1652 */ break; case 887: #line 6216 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[-2].objtype); n->missing_ok = false; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->concurrent = false; (yyval.node) = (Node *)n; } #line 32624 "gram.c" /* yacc.c:1652 */ break; case 888: #line 6226 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[-4].objtype); n->missing_ok = true; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->concurrent = false; (yyval.node) = (Node *)n; } #line 32638 "gram.c" /* yacc.c:1652 */ break; case 889: #line 6236 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[-2].objtype); n->missing_ok = false; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->concurrent = false; (yyval.node) = (Node *)n; } #line 32652 "gram.c" /* yacc.c:1652 */ break; case 890: #line 6246 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[-4].objtype); n->objects = list_make1(lappend((yyvsp[-1].list), makeString((yyvsp[-3].str)))); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *) n; } #line 32666 "gram.c" /* yacc.c:1652 */ break; case 891: #line 6256 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[-6].objtype); n->objects = list_make1(lappend((yyvsp[-1].list), makeString((yyvsp[-3].str)))); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *) n; } #line 32680 "gram.c" /* yacc.c:1652 */ break; case 892: #line 6266 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_TYPE; n->missing_ok = false; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->concurrent = false; (yyval.node) = (Node *) n; } #line 32694 "gram.c" /* yacc.c:1652 */ break; case 893: #line 6276 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_TYPE; n->missing_ok = true; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->concurrent = false; (yyval.node) = (Node *) n; } #line 32708 "gram.c" /* yacc.c:1652 */ break; case 894: #line 6286 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_DOMAIN; n->missing_ok = false; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->concurrent = false; (yyval.node) = (Node *) n; } #line 32722 "gram.c" /* yacc.c:1652 */ break; case 895: #line 6296 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_DOMAIN; n->missing_ok = true; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->concurrent = false; (yyval.node) = (Node *) n; } #line 32736 "gram.c" /* yacc.c:1652 */ break; case 896: #line 6306 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_INDEX; n->missing_ok = false; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->concurrent = true; (yyval.node) = (Node *)n; } #line 32750 "gram.c" /* yacc.c:1652 */ break; case 897: #line 6316 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_INDEX; n->missing_ok = true; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->concurrent = true; (yyval.node) = (Node *)n; } #line 32764 "gram.c" /* yacc.c:1652 */ break; case 898: #line 6329 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TABLE; } #line 32770 "gram.c" /* yacc.c:1652 */ break; case 899: #line 6330 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_SEQUENCE; } #line 32776 "gram.c" /* yacc.c:1652 */ break; case 900: #line 6331 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_VIEW; } #line 32782 "gram.c" /* yacc.c:1652 */ break; case 901: #line 6332 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_MATVIEW; } #line 32788 "gram.c" /* yacc.c:1652 */ break; case 902: #line 6333 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_INDEX; } #line 32794 "gram.c" /* yacc.c:1652 */ break; case 903: #line 6334 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_FOREIGN_TABLE; } #line 32800 "gram.c" /* yacc.c:1652 */ break; case 904: #line 6335 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_COLLATION; } #line 32806 "gram.c" /* yacc.c:1652 */ break; case 905: #line 6336 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_CONVERSION; } #line 32812 "gram.c" /* yacc.c:1652 */ break; case 906: #line 6337 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_STATISTIC_EXT; } #line 32818 "gram.c" /* yacc.c:1652 */ break; case 907: #line 6338 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TSPARSER; } #line 32824 "gram.c" /* yacc.c:1652 */ break; case 908: #line 6339 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TSDICTIONARY; } #line 32830 "gram.c" /* yacc.c:1652 */ break; case 909: #line 6340 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TSTEMPLATE; } #line 32836 "gram.c" /* yacc.c:1652 */ break; case 910: #line 6341 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TSCONFIGURATION; } #line 32842 "gram.c" /* yacc.c:1652 */ break; case 911: #line 6346 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_ACCESS_METHOD; } #line 32848 "gram.c" /* yacc.c:1652 */ break; case 912: #line 6347 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_EVENT_TRIGGER; } #line 32854 "gram.c" /* yacc.c:1652 */ break; case 913: #line 6348 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_EXTENSION; } #line 32860 "gram.c" /* yacc.c:1652 */ break; case 914: #line 6349 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_FDW; } #line 32866 "gram.c" /* yacc.c:1652 */ break; case 915: #line 6350 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_PUBLICATION; } #line 32872 "gram.c" /* yacc.c:1652 */ break; case 916: #line 6351 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_SCHEMA; } #line 32878 "gram.c" /* yacc.c:1652 */ break; case 917: #line 6352 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_FOREIGN_SERVER; } #line 32884 "gram.c" /* yacc.c:1652 */ break; case 918: #line 6357 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_POLICY; } #line 32890 "gram.c" /* yacc.c:1652 */ break; case 919: #line 6358 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_RULE; } #line 32896 "gram.c" /* yacc.c:1652 */ break; case 920: #line 6359 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TRIGGER; } #line 32902 "gram.c" /* yacc.c:1652 */ break; case 921: #line 6363 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].list)); } #line 32908 "gram.c" /* yacc.c:1652 */ break; case 922: #line 6364 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); } #line 32914 "gram.c" /* yacc.c:1652 */ break; case 923: #line 6367 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } #line 32920 "gram.c" /* yacc.c:1652 */ break; case 924: #line 6368 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)); } #line 32926 "gram.c" /* yacc.c:1652 */ break; case 925: #line 6372 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } #line 32932 "gram.c" /* yacc.c:1652 */ break; case 926: #line 6374 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); } #line 32938 "gram.c" /* yacc.c:1652 */ break; case 927: #line 6378 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].typnam)); } #line 32944 "gram.c" /* yacc.c:1652 */ break; case 928: #line 6379 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].typnam)); } #line 32950 "gram.c" /* yacc.c:1652 */ break; case 929: #line 6391 "gram.y" /* yacc.c:1652 */ { TruncateStmt *n = makeNode(TruncateStmt); n->relations = (yyvsp[-2].list); n->restart_seqs = (yyvsp[-1].boolean); n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *)n; } #line 32962 "gram.c" /* yacc.c:1652 */ break; case 930: #line 6401 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 32968 "gram.c" /* yacc.c:1652 */ break; case 931: #line 6402 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 32974 "gram.c" /* yacc.c:1652 */ break; case 932: #line 6403 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 32980 "gram.c" /* yacc.c:1652 */ break; case 933: #line 6438 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = (yyvsp[-3].objtype); n->object = (Node *) (yyvsp[-2].list); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 32992 "gram.c" /* yacc.c:1652 */ break; case 934: #line 6446 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = (yyvsp[-3].objtype); n->object = (Node *) makeString((yyvsp[-2].str)); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33004 "gram.c" /* yacc.c:1652 */ break; case 935: #line 6454 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TYPE; n->object = (Node *) (yyvsp[-2].typnam); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33016 "gram.c" /* yacc.c:1652 */ break; case 936: #line 6462 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_DOMAIN; n->object = (Node *) (yyvsp[-2].typnam); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33028 "gram.c" /* yacc.c:1652 */ break; case 937: #line 6470 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_AGGREGATE; n->object = (Node *) (yyvsp[-2].objwithargs); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33040 "gram.c" /* yacc.c:1652 */ break; case 938: #line 6478 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[-2].objwithargs); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33052 "gram.c" /* yacc.c:1652 */ break; case 939: #line 6486 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_OPERATOR; n->object = (Node *) (yyvsp[-2].objwithargs); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33064 "gram.c" /* yacc.c:1652 */ break; case 940: #line 6494 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TABCONSTRAINT; n->object = (Node *) lappend((yyvsp[-2].list), makeString((yyvsp[-4].str))); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33076 "gram.c" /* yacc.c:1652 */ break; case 941: #line 6502 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_DOMCONSTRAINT; /* * should use Typename not any_name in the production, but * there's a shift/reduce conflict if we do that, so fix it * up here. */ n->object = (Node *) list_make2(makeTypeNameFromNameList((yyvsp[-2].list)), makeString((yyvsp[-5].str))); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33093 "gram.c" /* yacc.c:1652 */ break; case 942: #line 6515 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_POLICY; n->object = (Node *) lappend((yyvsp[-2].list), makeString((yyvsp[-4].str))); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33105 "gram.c" /* yacc.c:1652 */ break; case 943: #line 6523 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[-2].objwithargs); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33117 "gram.c" /* yacc.c:1652 */ break; case 944: #line 6531 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[-2].objwithargs); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33129 "gram.c" /* yacc.c:1652 */ break; case 945: #line 6539 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_RULE; n->object = (Node *) lappend((yyvsp[-2].list), makeString((yyvsp[-4].str))); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33141 "gram.c" /* yacc.c:1652 */ break; case 946: #line 6547 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TRANSFORM; n->object = (Node *) list_make2((yyvsp[-4].typnam), makeString((yyvsp[-2].str))); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33153 "gram.c" /* yacc.c:1652 */ break; case 947: #line 6555 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TRIGGER; n->object = (Node *) lappend((yyvsp[-2].list), makeString((yyvsp[-4].str))); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33165 "gram.c" /* yacc.c:1652 */ break; case 948: #line 6563 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_OPCLASS; n->object = (Node *) lcons(makeString((yyvsp[-2].str)), (yyvsp[-4].list)); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33177 "gram.c" /* yacc.c:1652 */ break; case 949: #line 6571 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_OPFAMILY; n->object = (Node *) lcons(makeString((yyvsp[-2].str)), (yyvsp[-4].list)); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33189 "gram.c" /* yacc.c:1652 */ break; case 950: #line 6579 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_LARGEOBJECT; n->object = (Node *) (yyvsp[-2].value); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33201 "gram.c" /* yacc.c:1652 */ break; case 951: #line 6587 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_CAST; n->object = (Node *) list_make2((yyvsp[-5].typnam), (yyvsp[-3].typnam)); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33213 "gram.c" /* yacc.c:1652 */ break; case 952: #line 6598 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_COLUMN; } #line 33219 "gram.c" /* yacc.c:1652 */ break; case 953: #line 6599 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_INDEX; } #line 33225 "gram.c" /* yacc.c:1652 */ break; case 954: #line 6600 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_SEQUENCE; } #line 33231 "gram.c" /* yacc.c:1652 */ break; case 955: #line 6601 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_STATISTIC_EXT; } #line 33237 "gram.c" /* yacc.c:1652 */ break; case 956: #line 6602 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TABLE; } #line 33243 "gram.c" /* yacc.c:1652 */ break; case 957: #line 6603 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_VIEW; } #line 33249 "gram.c" /* yacc.c:1652 */ break; case 958: #line 6604 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_MATVIEW; } #line 33255 "gram.c" /* yacc.c:1652 */ break; case 959: #line 6605 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_COLLATION; } #line 33261 "gram.c" /* yacc.c:1652 */ break; case 960: #line 6606 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_CONVERSION; } #line 33267 "gram.c" /* yacc.c:1652 */ break; case 961: #line 6607 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_FOREIGN_TABLE; } #line 33273 "gram.c" /* yacc.c:1652 */ break; case 962: #line 6608 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TSCONFIGURATION; } #line 33279 "gram.c" /* yacc.c:1652 */ break; case 963: #line 6609 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TSDICTIONARY; } #line 33285 "gram.c" /* yacc.c:1652 */ break; case 964: #line 6610 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TSPARSER; } #line 33291 "gram.c" /* yacc.c:1652 */ break; case 965: #line 6611 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TSTEMPLATE; } #line 33297 "gram.c" /* yacc.c:1652 */ break; case 966: #line 6616 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_ACCESS_METHOD; } #line 33303 "gram.c" /* yacc.c:1652 */ break; case 967: #line 6617 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_DATABASE; } #line 33309 "gram.c" /* yacc.c:1652 */ break; case 968: #line 6618 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_EVENT_TRIGGER; } #line 33315 "gram.c" /* yacc.c:1652 */ break; case 969: #line 6619 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_EXTENSION; } #line 33321 "gram.c" /* yacc.c:1652 */ break; case 970: #line 6620 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_FDW; } #line 33327 "gram.c" /* yacc.c:1652 */ break; case 971: #line 6621 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_LANGUAGE; } #line 33333 "gram.c" /* yacc.c:1652 */ break; case 972: #line 6622 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_PUBLICATION; } #line 33339 "gram.c" /* yacc.c:1652 */ break; case 973: #line 6623 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_ROLE; } #line 33345 "gram.c" /* yacc.c:1652 */ break; case 974: #line 6624 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_SCHEMA; } #line 33351 "gram.c" /* yacc.c:1652 */ break; case 975: #line 6625 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_FOREIGN_SERVER; } #line 33357 "gram.c" /* yacc.c:1652 */ break; case 976: #line 6626 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_SUBSCRIPTION; } #line 33363 "gram.c" /* yacc.c:1652 */ break; case 977: #line 6627 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TABLESPACE; } #line 33369 "gram.c" /* yacc.c:1652 */ break; case 978: #line 6631 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 33375 "gram.c" /* yacc.c:1652 */ break; case 979: #line 6632 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 33381 "gram.c" /* yacc.c:1652 */ break; case 980: #line 6648 "gram.y" /* yacc.c:1652 */ { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-5].str); n->objtype = (yyvsp[-3].objtype); n->object = (Node *) (yyvsp[-2].list); n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33394 "gram.c" /* yacc.c:1652 */ break; case 981: #line 6658 "gram.y" /* yacc.c:1652 */ { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-5].str); n->objtype = (yyvsp[-3].objtype); n->object = (Node *) makeString((yyvsp[-2].str)); n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33407 "gram.c" /* yacc.c:1652 */ break; case 982: #line 6668 "gram.y" /* yacc.c:1652 */ { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-5].str); n->objtype = OBJECT_TYPE; n->object = (Node *) (yyvsp[-2].typnam); n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33420 "gram.c" /* yacc.c:1652 */ break; case 983: #line 6678 "gram.y" /* yacc.c:1652 */ { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-5].str); n->objtype = OBJECT_DOMAIN; n->object = (Node *) (yyvsp[-2].typnam); n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33433 "gram.c" /* yacc.c:1652 */ break; case 984: #line 6688 "gram.y" /* yacc.c:1652 */ { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-5].str); n->objtype = OBJECT_AGGREGATE; n->object = (Node *) (yyvsp[-2].objwithargs); n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33446 "gram.c" /* yacc.c:1652 */ break; case 985: #line 6698 "gram.y" /* yacc.c:1652 */ { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-5].str); n->objtype = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[-2].objwithargs); n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33459 "gram.c" /* yacc.c:1652 */ break; case 986: #line 6708 "gram.y" /* yacc.c:1652 */ { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-6].str); n->objtype = OBJECT_LARGEOBJECT; n->object = (Node *) (yyvsp[-2].value); n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33472 "gram.c" /* yacc.c:1652 */ break; case 987: #line 6718 "gram.y" /* yacc.c:1652 */ { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-5].str); n->objtype = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[-2].objwithargs); n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33485 "gram.c" /* yacc.c:1652 */ break; case 988: #line 6728 "gram.y" /* yacc.c:1652 */ { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-5].str); n->objtype = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[-2].objwithargs); n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33498 "gram.c" /* yacc.c:1652 */ break; case 989: #line 6738 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 33504 "gram.c" /* yacc.c:1652 */ break; case 990: #line 6739 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 33510 "gram.c" /* yacc.c:1652 */ break; case 991: #line 6744 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_COLUMN; } #line 33516 "gram.c" /* yacc.c:1652 */ break; case 992: #line 6745 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_FOREIGN_TABLE; } #line 33522 "gram.c" /* yacc.c:1652 */ break; case 993: #line 6746 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_SEQUENCE; } #line 33528 "gram.c" /* yacc.c:1652 */ break; case 994: #line 6747 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TABLE; } #line 33534 "gram.c" /* yacc.c:1652 */ break; case 995: #line 6748 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_VIEW; } #line 33540 "gram.c" /* yacc.c:1652 */ break; case 996: #line 6749 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_MATVIEW; } #line 33546 "gram.c" /* yacc.c:1652 */ break; case 997: #line 6754 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_DATABASE; } #line 33552 "gram.c" /* yacc.c:1652 */ break; case 998: #line 6755 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_EVENT_TRIGGER; } #line 33558 "gram.c" /* yacc.c:1652 */ break; case 999: #line 6756 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_LANGUAGE; } #line 33564 "gram.c" /* yacc.c:1652 */ break; case 1000: #line 6757 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_PUBLICATION; } #line 33570 "gram.c" /* yacc.c:1652 */ break; case 1001: #line 6758 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_ROLE; } #line 33576 "gram.c" /* yacc.c:1652 */ break; case 1002: #line 6759 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_SCHEMA; } #line 33582 "gram.c" /* yacc.c:1652 */ break; case 1003: #line 6760 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_SUBSCRIPTION; } #line 33588 "gram.c" /* yacc.c:1652 */ break; case 1004: #line 6761 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TABLESPACE; } #line 33594 "gram.c" /* yacc.c:1652 */ break; case 1005: #line 6764 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 33600 "gram.c" /* yacc.c:1652 */ break; case 1006: #line 6765 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 33606 "gram.c" /* yacc.c:1652 */ break; case 1007: #line 6776 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = (FetchStmt *) (yyvsp[0].node); n->ismove = false; (yyval.node) = (Node *)n; } #line 33616 "gram.c" /* yacc.c:1652 */ break; case 1008: #line 6782 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = (FetchStmt *) (yyvsp[0].node); n->ismove = true; (yyval.node) = (Node *)n; } #line 33626 "gram.c" /* yacc.c:1652 */ break; case 1009: #line 6790 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_FORWARD; n->howMany = 1; (yyval.node) = (Node *)n; } #line 33638 "gram.c" /* yacc.c:1652 */ break; case 1010: #line 6798 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_FORWARD; n->howMany = 1; (yyval.node) = (Node *)n; } #line 33650 "gram.c" /* yacc.c:1652 */ break; case 1011: #line 6806 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_FORWARD; n->howMany = 1; (yyval.node) = (Node *)n; } #line 33662 "gram.c" /* yacc.c:1652 */ break; case 1012: #line 6814 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_BACKWARD; n->howMany = 1; (yyval.node) = (Node *)n; } #line 33674 "gram.c" /* yacc.c:1652 */ break; case 1013: #line 6822 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_ABSOLUTE; n->howMany = 1; (yyval.node) = (Node *)n; } #line 33686 "gram.c" /* yacc.c:1652 */ break; case 1014: #line 6830 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_ABSOLUTE; n->howMany = -1; (yyval.node) = (Node *)n; } #line 33698 "gram.c" /* yacc.c:1652 */ break; case 1015: #line 6838 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_ABSOLUTE; n->howMany = (yyvsp[-2].ival); (yyval.node) = (Node *)n; } #line 33710 "gram.c" /* yacc.c:1652 */ break; case 1016: #line 6846 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_RELATIVE; n->howMany = (yyvsp[-2].ival); (yyval.node) = (Node *)n; } #line 33722 "gram.c" /* yacc.c:1652 */ break; case 1017: #line 6854 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_FORWARD; n->howMany = (yyvsp[-2].ival); (yyval.node) = (Node *)n; } #line 33734 "gram.c" /* yacc.c:1652 */ break; case 1018: #line 6862 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_FORWARD; n->howMany = FETCH_ALL; (yyval.node) = (Node *)n; } #line 33746 "gram.c" /* yacc.c:1652 */ break; case 1019: #line 6870 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_FORWARD; n->howMany = 1; (yyval.node) = (Node *)n; } #line 33758 "gram.c" /* yacc.c:1652 */ break; case 1020: #line 6878 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_FORWARD; n->howMany = (yyvsp[-2].ival); (yyval.node) = (Node *)n; } #line 33770 "gram.c" /* yacc.c:1652 */ break; case 1021: #line 6886 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_FORWARD; n->howMany = FETCH_ALL; (yyval.node) = (Node *)n; } #line 33782 "gram.c" /* yacc.c:1652 */ break; case 1022: #line 6894 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_BACKWARD; n->howMany = 1; (yyval.node) = (Node *)n; } #line 33794 "gram.c" /* yacc.c:1652 */ break; case 1023: #line 6902 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_BACKWARD; n->howMany = (yyvsp[-2].ival); (yyval.node) = (Node *)n; } #line 33806 "gram.c" /* yacc.c:1652 */ break; case 1024: #line 6910 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_BACKWARD; n->howMany = FETCH_ALL; (yyval.node) = (Node *)n; } #line 33818 "gram.c" /* yacc.c:1652 */ break; case 1025: #line 6919 "gram.y" /* yacc.c:1652 */ {} #line 33824 "gram.c" /* yacc.c:1652 */ break; case 1026: #line 6920 "gram.y" /* yacc.c:1652 */ {} #line 33830 "gram.c" /* yacc.c:1652 */ break; case 1027: #line 6923 "gram.y" /* yacc.c:1652 */ {} #line 33836 "gram.c" /* yacc.c:1652 */ break; case 1028: #line 6924 "gram.y" /* yacc.c:1652 */ {} #line 33842 "gram.c" /* yacc.c:1652 */ break; case 1029: #line 6936 "gram.y" /* yacc.c:1652 */ { GrantStmt *n = makeNode(GrantStmt); n->is_grant = true; n->privileges = (yyvsp[-5].list); n->targtype = ((yyvsp[-3].privtarget))->targtype; n->objtype = ((yyvsp[-3].privtarget))->objtype; n->objects = ((yyvsp[-3].privtarget))->objs; n->grantees = (yyvsp[-1].list); n->grant_option = (yyvsp[0].boolean); (yyval.node) = (Node*)n; } #line 33858 "gram.c" /* yacc.c:1652 */ break; case 1030: #line 6952 "gram.y" /* yacc.c:1652 */ { GrantStmt *n = makeNode(GrantStmt); n->is_grant = false; n->grant_option = false; n->privileges = (yyvsp[-5].list); n->targtype = ((yyvsp[-3].privtarget))->targtype; n->objtype = ((yyvsp[-3].privtarget))->objtype; n->objects = ((yyvsp[-3].privtarget))->objs; n->grantees = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *)n; } #line 33875 "gram.c" /* yacc.c:1652 */ break; case 1031: #line 6966 "gram.y" /* yacc.c:1652 */ { GrantStmt *n = makeNode(GrantStmt); n->is_grant = false; n->grant_option = true; n->privileges = (yyvsp[-5].list); n->targtype = ((yyvsp[-3].privtarget))->targtype; n->objtype = ((yyvsp[-3].privtarget))->objtype; n->objects = ((yyvsp[-3].privtarget))->objs; n->grantees = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *)n; } #line 33892 "gram.c" /* yacc.c:1652 */ break; case 1032: #line 6991 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 33898 "gram.c" /* yacc.c:1652 */ break; case 1033: #line 6993 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 33904 "gram.c" /* yacc.c:1652 */ break; case 1034: #line 6995 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 33910 "gram.c" /* yacc.c:1652 */ break; case 1035: #line 6997 "gram.y" /* yacc.c:1652 */ { AccessPriv *n = makeNode(AccessPriv); n->priv_name = NULL; n->cols = (yyvsp[-1].list); (yyval.list) = list_make1(n); } #line 33921 "gram.c" /* yacc.c:1652 */ break; case 1036: #line 7004 "gram.y" /* yacc.c:1652 */ { AccessPriv *n = makeNode(AccessPriv); n->priv_name = NULL; n->cols = (yyvsp[-1].list); (yyval.list) = list_make1(n); } #line 33932 "gram.c" /* yacc.c:1652 */ break; case 1037: #line 7012 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].accesspriv)); } #line 33938 "gram.c" /* yacc.c:1652 */ break; case 1038: #line 7013 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].accesspriv)); } #line 33944 "gram.c" /* yacc.c:1652 */ break; case 1039: #line 7017 "gram.y" /* yacc.c:1652 */ { AccessPriv *n = makeNode(AccessPriv); n->priv_name = pstrdup((yyvsp[-1].keyword)); n->cols = (yyvsp[0].list); (yyval.accesspriv) = n; } #line 33955 "gram.c" /* yacc.c:1652 */ break; case 1040: #line 7024 "gram.y" /* yacc.c:1652 */ { AccessPriv *n = makeNode(AccessPriv); n->priv_name = pstrdup((yyvsp[-1].keyword)); n->cols = (yyvsp[0].list); (yyval.accesspriv) = n; } #line 33966 "gram.c" /* yacc.c:1652 */ break; case 1041: #line 7031 "gram.y" /* yacc.c:1652 */ { AccessPriv *n = makeNode(AccessPriv); n->priv_name = pstrdup((yyvsp[-1].keyword)); n->cols = (yyvsp[0].list); (yyval.accesspriv) = n; } #line 33977 "gram.c" /* yacc.c:1652 */ break; case 1042: #line 7038 "gram.y" /* yacc.c:1652 */ { AccessPriv *n = makeNode(AccessPriv); n->priv_name = (yyvsp[-1].str); n->cols = (yyvsp[0].list); (yyval.accesspriv) = n; } #line 33988 "gram.c" /* yacc.c:1652 */ break; case 1043: #line 7052 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_TABLE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34000 "gram.c" /* yacc.c:1652 */ break; case 1044: #line 7060 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_TABLE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34012 "gram.c" /* yacc.c:1652 */ break; case 1045: #line 7068 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_SEQUENCE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34024 "gram.c" /* yacc.c:1652 */ break; case 1046: #line 7076 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_FDW; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34036 "gram.c" /* yacc.c:1652 */ break; case 1047: #line 7084 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_FOREIGN_SERVER; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34048 "gram.c" /* yacc.c:1652 */ break; case 1048: #line 7092 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_FUNCTION; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34060 "gram.c" /* yacc.c:1652 */ break; case 1049: #line 7100 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_PROCEDURE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34072 "gram.c" /* yacc.c:1652 */ break; case 1050: #line 7108 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_ROUTINE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34084 "gram.c" /* yacc.c:1652 */ break; case 1051: #line 7116 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_DATABASE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34096 "gram.c" /* yacc.c:1652 */ break; case 1052: #line 7124 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_DOMAIN; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34108 "gram.c" /* yacc.c:1652 */ break; case 1053: #line 7132 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_LANGUAGE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34120 "gram.c" /* yacc.c:1652 */ break; case 1054: #line 7140 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_LARGEOBJECT; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34132 "gram.c" /* yacc.c:1652 */ break; case 1055: #line 7148 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_SCHEMA; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34144 "gram.c" /* yacc.c:1652 */ break; case 1056: #line 7156 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_TABLESPACE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34156 "gram.c" /* yacc.c:1652 */ break; case 1057: #line 7164 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_TYPE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34168 "gram.c" /* yacc.c:1652 */ break; case 1058: #line 7172 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = OBJECT_TABLE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34180 "gram.c" /* yacc.c:1652 */ break; case 1059: #line 7180 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = OBJECT_SEQUENCE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34192 "gram.c" /* yacc.c:1652 */ break; case 1060: #line 7188 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = OBJECT_FUNCTION; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34204 "gram.c" /* yacc.c:1652 */ break; case 1061: #line 7196 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = OBJECT_PROCEDURE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34216 "gram.c" /* yacc.c:1652 */ break; case 1062: #line 7204 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = OBJECT_ROUTINE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34228 "gram.c" /* yacc.c:1652 */ break; case 1063: #line 7215 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].rolespec)); } #line 34234 "gram.c" /* yacc.c:1652 */ break; case 1064: #line 7216 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].rolespec)); } #line 34240 "gram.c" /* yacc.c:1652 */ break; case 1065: #line 7220 "gram.y" /* yacc.c:1652 */ { (yyval.rolespec) = (yyvsp[0].rolespec); } #line 34246 "gram.c" /* yacc.c:1652 */ break; case 1066: #line 7221 "gram.y" /* yacc.c:1652 */ { (yyval.rolespec) = (yyvsp[0].rolespec); } #line 34252 "gram.c" /* yacc.c:1652 */ break; case 1067: #line 7226 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 34258 "gram.c" /* yacc.c:1652 */ break; case 1068: #line 7227 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 34264 "gram.c" /* yacc.c:1652 */ break; case 1069: #line 7238 "gram.y" /* yacc.c:1652 */ { GrantRoleStmt *n = makeNode(GrantRoleStmt); n->is_grant = true; n->granted_roles = (yyvsp[-4].list); n->grantee_roles = (yyvsp[-2].list); n->admin_opt = (yyvsp[-1].boolean); n->grantor = (yyvsp[0].rolespec); (yyval.node) = (Node*)n; } #line 34278 "gram.c" /* yacc.c:1652 */ break; case 1070: #line 7251 "gram.y" /* yacc.c:1652 */ { GrantRoleStmt *n = makeNode(GrantRoleStmt); n->is_grant = false; n->admin_opt = false; n->granted_roles = (yyvsp[-4].list); n->grantee_roles = (yyvsp[-2].list); n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node*)n; } #line 34292 "gram.c" /* yacc.c:1652 */ break; case 1071: #line 7261 "gram.y" /* yacc.c:1652 */ { GrantRoleStmt *n = makeNode(GrantRoleStmt); n->is_grant = false; n->admin_opt = true; n->granted_roles = (yyvsp[-4].list); n->grantee_roles = (yyvsp[-2].list); n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node*)n; } #line 34306 "gram.c" /* yacc.c:1652 */ break; case 1072: #line 7272 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 34312 "gram.c" /* yacc.c:1652 */ break; case 1073: #line 7273 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 34318 "gram.c" /* yacc.c:1652 */ break; case 1074: #line 7276 "gram.y" /* yacc.c:1652 */ { (yyval.rolespec) = (yyvsp[0].rolespec); } #line 34324 "gram.c" /* yacc.c:1652 */ break; case 1075: #line 7277 "gram.y" /* yacc.c:1652 */ { (yyval.rolespec) = NULL; } #line 34330 "gram.c" /* yacc.c:1652 */ break; case 1076: #line 7288 "gram.y" /* yacc.c:1652 */ { AlterDefaultPrivilegesStmt *n = makeNode(AlterDefaultPrivilegesStmt); n->options = (yyvsp[-1].list); n->action = (GrantStmt *) (yyvsp[0].node); (yyval.node) = (Node*)n; } #line 34341 "gram.c" /* yacc.c:1652 */ break; case 1077: #line 7297 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 34347 "gram.c" /* yacc.c:1652 */ break; case 1078: #line 7298 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 34353 "gram.c" /* yacc.c:1652 */ break; case 1079: #line 7303 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("schemas", (Node *)(yyvsp[0].list), (yylsp[-2])); } #line 34361 "gram.c" /* yacc.c:1652 */ break; case 1080: #line 7307 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("roles", (Node *)(yyvsp[0].list), (yylsp[-2])); } #line 34369 "gram.c" /* yacc.c:1652 */ break; case 1081: #line 7311 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("roles", (Node *)(yyvsp[0].list), (yylsp[-2])); } #line 34377 "gram.c" /* yacc.c:1652 */ break; case 1082: #line 7323 "gram.y" /* yacc.c:1652 */ { GrantStmt *n = makeNode(GrantStmt); n->is_grant = true; n->privileges = (yyvsp[-5].list); n->targtype = ACL_TARGET_DEFAULTS; n->objtype = (yyvsp[-3].ival); n->objects = NIL; n->grantees = (yyvsp[-1].list); n->grant_option = (yyvsp[0].boolean); (yyval.node) = (Node*)n; } #line 34393 "gram.c" /* yacc.c:1652 */ break; case 1083: #line 7336 "gram.y" /* yacc.c:1652 */ { GrantStmt *n = makeNode(GrantStmt); n->is_grant = false; n->grant_option = false; n->privileges = (yyvsp[-5].list); n->targtype = ACL_TARGET_DEFAULTS; n->objtype = (yyvsp[-3].ival); n->objects = NIL; n->grantees = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *)n; } #line 34410 "gram.c" /* yacc.c:1652 */ break; case 1084: #line 7350 "gram.y" /* yacc.c:1652 */ { GrantStmt *n = makeNode(GrantStmt); n->is_grant = false; n->grant_option = true; n->privileges = (yyvsp[-5].list); n->targtype = ACL_TARGET_DEFAULTS; n->objtype = (yyvsp[-3].ival); n->objects = NIL; n->grantees = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *)n; } #line 34427 "gram.c" /* yacc.c:1652 */ break; case 1085: #line 7365 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = OBJECT_TABLE; } #line 34433 "gram.c" /* yacc.c:1652 */ break; case 1086: #line 7366 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = OBJECT_FUNCTION; } #line 34439 "gram.c" /* yacc.c:1652 */ break; case 1087: #line 7367 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = OBJECT_FUNCTION; } #line 34445 "gram.c" /* yacc.c:1652 */ break; case 1088: #line 7368 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = OBJECT_SEQUENCE; } #line 34451 "gram.c" /* yacc.c:1652 */ break; case 1089: #line 7369 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = OBJECT_TYPE; } #line 34457 "gram.c" /* yacc.c:1652 */ break; case 1090: #line 7370 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = OBJECT_SCHEMA; } #line 34463 "gram.c" /* yacc.c:1652 */ break; case 1091: #line 7385 "gram.y" /* yacc.c:1652 */ { IndexStmt *n = makeNode(IndexStmt); n->unique = (yyvsp[-13].boolean); n->concurrent = (yyvsp[-11].boolean); n->idxname = (yyvsp[-10].str); n->relation = (yyvsp[-8].range); n->relationId = InvalidOid; n->accessMethod = (yyvsp[-7].str); n->indexParams = (yyvsp[-5].list); n->indexIncludingParams = (yyvsp[-3].list); n->options = (yyvsp[-2].list); n->tableSpace = (yyvsp[-1].str); n->whereClause = (yyvsp[0].node); n->excludeOpNames = NIL; n->idxcomment = NULL; n->indexOid = InvalidOid; n->oldNode = InvalidOid; n->primary = false; n->isconstraint = false; n->deferrable = false; n->initdeferred = false; n->transformed = false; n->if_not_exists = false; (yyval.node) = (Node *)n; } #line 34493 "gram.c" /* yacc.c:1652 */ break; case 1092: #line 7413 "gram.y" /* yacc.c:1652 */ { IndexStmt *n = makeNode(IndexStmt); n->unique = (yyvsp[-16].boolean); n->concurrent = (yyvsp[-14].boolean); n->idxname = (yyvsp[-10].str); n->relation = (yyvsp[-8].range); n->relationId = InvalidOid; n->accessMethod = (yyvsp[-7].str); n->indexParams = (yyvsp[-5].list); n->indexIncludingParams = (yyvsp[-3].list); n->options = (yyvsp[-2].list); n->tableSpace = (yyvsp[-1].str); n->whereClause = (yyvsp[0].node); n->excludeOpNames = NIL; n->idxcomment = NULL; n->indexOid = InvalidOid; n->oldNode = InvalidOid; n->primary = false; n->isconstraint = false; n->deferrable = false; n->initdeferred = false; n->transformed = false; n->if_not_exists = true; (yyval.node) = (Node *)n; } #line 34523 "gram.c" /* yacc.c:1652 */ break; case 1093: #line 7441 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 34529 "gram.c" /* yacc.c:1652 */ break; case 1094: #line 7442 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 34535 "gram.c" /* yacc.c:1652 */ break; case 1095: #line 7446 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 34541 "gram.c" /* yacc.c:1652 */ break; case 1096: #line 7447 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 34547 "gram.c" /* yacc.c:1652 */ break; case 1097: #line 7451 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 34553 "gram.c" /* yacc.c:1652 */ break; case 1098: #line 7452 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 34559 "gram.c" /* yacc.c:1652 */ break; case 1099: #line 7456 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 34565 "gram.c" /* yacc.c:1652 */ break; case 1100: #line 7457 "gram.y" /* yacc.c:1652 */ { (yyval.str) = DEFAULT_INDEX_TYPE; } #line 34571 "gram.c" /* yacc.c:1652 */ break; case 1101: #line 7460 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].ielem)); } #line 34577 "gram.c" /* yacc.c:1652 */ break; case 1102: #line 7461 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].ielem)); } #line 34583 "gram.c" /* yacc.c:1652 */ break; case 1103: #line 7470 "gram.y" /* yacc.c:1652 */ { (yyval.ielem) = makeNode(IndexElem); (yyval.ielem)->name = (yyvsp[-4].str); (yyval.ielem)->expr = NULL; (yyval.ielem)->indexcolname = NULL; (yyval.ielem)->collation = (yyvsp[-3].list); (yyval.ielem)->opclass = (yyvsp[-2].list); (yyval.ielem)->ordering = (yyvsp[-1].ival); (yyval.ielem)->nulls_ordering = (yyvsp[0].ival); } #line 34598 "gram.c" /* yacc.c:1652 */ break; case 1104: #line 7481 "gram.y" /* yacc.c:1652 */ { (yyval.ielem) = makeNode(IndexElem); (yyval.ielem)->name = NULL; (yyval.ielem)->expr = (yyvsp[-4].node); (yyval.ielem)->indexcolname = NULL; (yyval.ielem)->collation = (yyvsp[-3].list); (yyval.ielem)->opclass = (yyvsp[-2].list); (yyval.ielem)->ordering = (yyvsp[-1].ival); (yyval.ielem)->nulls_ordering = (yyvsp[0].ival); } #line 34613 "gram.c" /* yacc.c:1652 */ break; case 1105: #line 7492 "gram.y" /* yacc.c:1652 */ { (yyval.ielem) = makeNode(IndexElem); (yyval.ielem)->name = NULL; (yyval.ielem)->expr = (yyvsp[-5].node); (yyval.ielem)->indexcolname = NULL; (yyval.ielem)->collation = (yyvsp[-3].list); (yyval.ielem)->opclass = (yyvsp[-2].list); (yyval.ielem)->ordering = (yyvsp[-1].ival); (yyval.ielem)->nulls_ordering = (yyvsp[0].ival); } #line 34628 "gram.c" /* yacc.c:1652 */ break; case 1106: #line 7504 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 34634 "gram.c" /* yacc.c:1652 */ break; case 1107: #line 7505 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 34640 "gram.c" /* yacc.c:1652 */ break; case 1108: #line 7508 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].ielem)); } #line 34646 "gram.c" /* yacc.c:1652 */ break; case 1109: #line 7509 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].ielem)); } #line 34652 "gram.c" /* yacc.c:1652 */ break; case 1110: #line 7512 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 34658 "gram.c" /* yacc.c:1652 */ break; case 1111: #line 7513 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 34664 "gram.c" /* yacc.c:1652 */ break; case 1112: #line 7516 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 34670 "gram.c" /* yacc.c:1652 */ break; case 1113: #line 7517 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 34676 "gram.c" /* yacc.c:1652 */ break; case 1114: #line 7520 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = SORTBY_ASC; } #line 34682 "gram.c" /* yacc.c:1652 */ break; case 1115: #line 7521 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = SORTBY_DESC; } #line 34688 "gram.c" /* yacc.c:1652 */ break; case 1116: #line 7522 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = SORTBY_DEFAULT; } #line 34694 "gram.c" /* yacc.c:1652 */ break; case 1117: #line 7525 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = SORTBY_NULLS_FIRST; } #line 34700 "gram.c" /* yacc.c:1652 */ break; case 1118: #line 7526 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = SORTBY_NULLS_LAST; } #line 34706 "gram.c" /* yacc.c:1652 */ break; case 1119: #line 7527 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = SORTBY_NULLS_DEFAULT; } #line 34712 "gram.c" /* yacc.c:1652 */ break; case 1120: #line 7545 "gram.y" /* yacc.c:1652 */ { CreateFunctionStmt *n = makeNode(CreateFunctionStmt); n->is_procedure = false; n->replace = (yyvsp[-6].boolean); n->funcname = (yyvsp[-4].list); n->parameters = (yyvsp[-3].list); n->returnType = (yyvsp[-1].typnam); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 34727 "gram.c" /* yacc.c:1652 */ break; case 1121: #line 7557 "gram.y" /* yacc.c:1652 */ { CreateFunctionStmt *n = makeNode(CreateFunctionStmt); n->is_procedure = false; n->replace = (yyvsp[-9].boolean); n->funcname = (yyvsp[-7].list); n->parameters = mergeTableFuncParameters((yyvsp[-6].list), (yyvsp[-2].list)); n->returnType = TableFuncTypeName((yyvsp[-2].list)); n->returnType->location = (yylsp[-4]); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 34743 "gram.c" /* yacc.c:1652 */ break; case 1122: #line 7570 "gram.y" /* yacc.c:1652 */ { CreateFunctionStmt *n = makeNode(CreateFunctionStmt); n->is_procedure = false; n->replace = (yyvsp[-4].boolean); n->funcname = (yyvsp[-2].list); n->parameters = (yyvsp[-1].list); n->returnType = NULL; n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 34758 "gram.c" /* yacc.c:1652 */ break; case 1123: #line 7582 "gram.y" /* yacc.c:1652 */ { CreateFunctionStmt *n = makeNode(CreateFunctionStmt); n->is_procedure = true; n->replace = (yyvsp[-4].boolean); n->funcname = (yyvsp[-2].list); n->parameters = (yyvsp[-1].list); n->returnType = NULL; n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 34773 "gram.c" /* yacc.c:1652 */ break; case 1124: #line 7595 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 34779 "gram.c" /* yacc.c:1652 */ break; case 1125: #line 7596 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 34785 "gram.c" /* yacc.c:1652 */ break; case 1126: #line 7599 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 34791 "gram.c" /* yacc.c:1652 */ break; case 1127: #line 7600 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 34797 "gram.c" /* yacc.c:1652 */ break; case 1128: #line 7604 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].fun_param)); } #line 34803 "gram.c" /* yacc.c:1652 */ break; case 1129: #line 7605 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); } #line 34809 "gram.c" /* yacc.c:1652 */ break; case 1130: #line 7609 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].objwithargs)); } #line 34815 "gram.c" /* yacc.c:1652 */ break; case 1131: #line 7611 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].objwithargs)); } #line 34821 "gram.c" /* yacc.c:1652 */ break; case 1132: #line 7616 "gram.y" /* yacc.c:1652 */ { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = (yyvsp[-1].list); n->objargs = extractArgTypes((yyvsp[0].list)); (yyval.objwithargs) = n; } #line 34832 "gram.c" /* yacc.c:1652 */ break; case 1133: #line 7628 "gram.y" /* yacc.c:1652 */ { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = list_make1(makeString(pstrdup((yyvsp[0].keyword)))); n->args_unspecified = true; (yyval.objwithargs) = n; } #line 34843 "gram.c" /* yacc.c:1652 */ break; case 1134: #line 7635 "gram.y" /* yacc.c:1652 */ { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = list_make1(makeString((yyvsp[0].str))); n->args_unspecified = true; (yyval.objwithargs) = n; } #line 34854 "gram.c" /* yacc.c:1652 */ break; case 1135: #line 7642 "gram.y" /* yacc.c:1652 */ { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = check_func_name(lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)), yyscanner); n->args_unspecified = true; (yyval.objwithargs) = n; } #line 34866 "gram.c" /* yacc.c:1652 */ break; case 1136: #line 7656 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 34872 "gram.c" /* yacc.c:1652 */ break; case 1137: #line 7657 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 34878 "gram.c" /* yacc.c:1652 */ break; case 1138: #line 7661 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].fun_param)); } #line 34884 "gram.c" /* yacc.c:1652 */ break; case 1139: #line 7663 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); } #line 34890 "gram.c" /* yacc.c:1652 */ break; case 1140: #line 7678 "gram.y" /* yacc.c:1652 */ { FunctionParameter *n = makeNode(FunctionParameter); n->name = (yyvsp[-1].str); n->argType = (yyvsp[0].typnam); n->mode = (yyvsp[-2].fun_param_mode); n->defexpr = NULL; (yyval.fun_param) = n; } #line 34903 "gram.c" /* yacc.c:1652 */ break; case 1141: #line 7687 "gram.y" /* yacc.c:1652 */ { FunctionParameter *n = makeNode(FunctionParameter); n->name = (yyvsp[-2].str); n->argType = (yyvsp[0].typnam); n->mode = (yyvsp[-1].fun_param_mode); n->defexpr = NULL; (yyval.fun_param) = n; } #line 34916 "gram.c" /* yacc.c:1652 */ break; case 1142: #line 7696 "gram.y" /* yacc.c:1652 */ { FunctionParameter *n = makeNode(FunctionParameter); n->name = (yyvsp[-1].str); n->argType = (yyvsp[0].typnam); n->mode = FUNC_PARAM_IN; n->defexpr = NULL; (yyval.fun_param) = n; } #line 34929 "gram.c" /* yacc.c:1652 */ break; case 1143: #line 7705 "gram.y" /* yacc.c:1652 */ { FunctionParameter *n = makeNode(FunctionParameter); n->name = NULL; n->argType = (yyvsp[0].typnam); n->mode = (yyvsp[-1].fun_param_mode); n->defexpr = NULL; (yyval.fun_param) = n; } #line 34942 "gram.c" /* yacc.c:1652 */ break; case 1144: #line 7714 "gram.y" /* yacc.c:1652 */ { FunctionParameter *n = makeNode(FunctionParameter); n->name = NULL; n->argType = (yyvsp[0].typnam); n->mode = FUNC_PARAM_IN; n->defexpr = NULL; (yyval.fun_param) = n; } #line 34955 "gram.c" /* yacc.c:1652 */ break; case 1145: #line 7725 "gram.y" /* yacc.c:1652 */ { (yyval.fun_param_mode) = FUNC_PARAM_IN; } #line 34961 "gram.c" /* yacc.c:1652 */ break; case 1146: #line 7726 "gram.y" /* yacc.c:1652 */ { (yyval.fun_param_mode) = FUNC_PARAM_OUT; } #line 34967 "gram.c" /* yacc.c:1652 */ break; case 1147: #line 7727 "gram.y" /* yacc.c:1652 */ { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; } #line 34973 "gram.c" /* yacc.c:1652 */ break; case 1148: #line 7728 "gram.y" /* yacc.c:1652 */ { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; } #line 34979 "gram.c" /* yacc.c:1652 */ break; case 1149: #line 7729 "gram.y" /* yacc.c:1652 */ { (yyval.fun_param_mode) = FUNC_PARAM_VARIADIC; } #line 34985 "gram.c" /* yacc.c:1652 */ break; case 1151: #line 7740 "gram.y" /* yacc.c:1652 */ { /* We can catch over-specified results here if we want to, * but for now better to silently swallow typmod, etc. * - thomas 2000-03-22 */ (yyval.typnam) = (yyvsp[0].typnam); } #line 34997 "gram.c" /* yacc.c:1652 */ break; case 1152: #line 7754 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 35003 "gram.c" /* yacc.c:1652 */ break; case 1153: #line 7756 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[-3].str)), (yyvsp[-2].list))); (yyval.typnam)->pct_type = true; (yyval.typnam)->location = (yylsp[-3]); } #line 35013 "gram.c" /* yacc.c:1652 */ break; case 1154: #line 7762 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[-3].str)), (yyvsp[-2].list))); (yyval.typnam)->pct_type = true; (yyval.typnam)->setof = true; (yyval.typnam)->location = (yylsp[-3]); } #line 35024 "gram.c" /* yacc.c:1652 */ break; case 1155: #line 7772 "gram.y" /* yacc.c:1652 */ { (yyval.fun_param) = (yyvsp[0].fun_param); } #line 35032 "gram.c" /* yacc.c:1652 */ break; case 1156: #line 7776 "gram.y" /* yacc.c:1652 */ { (yyval.fun_param) = (yyvsp[-2].fun_param); (yyval.fun_param)->defexpr = (yyvsp[0].node); } #line 35041 "gram.c" /* yacc.c:1652 */ break; case 1157: #line 7781 "gram.y" /* yacc.c:1652 */ { (yyval.fun_param) = (yyvsp[-2].fun_param); (yyval.fun_param)->defexpr = (yyvsp[0].node); } #line 35050 "gram.c" /* yacc.c:1652 */ break; case 1158: #line 7789 "gram.y" /* yacc.c:1652 */ { if (!((yyvsp[0].fun_param)->mode == FUNC_PARAM_IN || (yyvsp[0].fun_param)->mode == FUNC_PARAM_VARIADIC)) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("aggregates cannot have output arguments"), parser_errposition((yylsp[0])))); (yyval.fun_param) = (yyvsp[0].fun_param); } #line 35064 "gram.c" /* yacc.c:1652 */ break; case 1159: #line 7830 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(NIL, makeInteger(-1)); } #line 35072 "gram.c" /* yacc.c:1652 */ break; case 1160: #line 7834 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[-1].list), makeInteger(-1)); } #line 35080 "gram.c" /* yacc.c:1652 */ break; case 1161: #line 7838 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[-1].list), makeInteger(0)); } #line 35088 "gram.c" /* yacc.c:1652 */ break; case 1162: #line 7842 "gram.y" /* yacc.c:1652 */ { /* this is the only case requiring consistency checking */ (yyval.list) = makeOrderedSetArgs((yyvsp[-4].list), (yyvsp[-1].list), yyscanner); } #line 35097 "gram.c" /* yacc.c:1652 */ break; case 1163: #line 7849 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].fun_param)); } #line 35103 "gram.c" /* yacc.c:1652 */ break; case 1164: #line 7850 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); } #line 35109 "gram.c" /* yacc.c:1652 */ break; case 1165: #line 7855 "gram.y" /* yacc.c:1652 */ { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = (yyvsp[-1].list); n->objargs = extractAggrArgTypes((yyvsp[0].list)); (yyval.objwithargs) = n; } #line 35120 "gram.c" /* yacc.c:1652 */ break; case 1166: #line 7864 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].objwithargs)); } #line 35126 "gram.c" /* yacc.c:1652 */ break; case 1167: #line 7866 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].objwithargs)); } #line 35132 "gram.c" /* yacc.c:1652 */ break; case 1168: #line 7871 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 35138 "gram.c" /* yacc.c:1652 */ break; case 1169: #line 7872 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 35144 "gram.c" /* yacc.c:1652 */ break; case 1170: #line 7880 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("strict", (Node *)makeInteger(false), (yylsp[-3])); } #line 35152 "gram.c" /* yacc.c:1652 */ break; case 1171: #line 7884 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("strict", (Node *)makeInteger(true), (yylsp[-4])); } #line 35160 "gram.c" /* yacc.c:1652 */ break; case 1172: #line 7888 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("strict", (Node *)makeInteger(true), (yylsp[0])); } #line 35168 "gram.c" /* yacc.c:1652 */ break; case 1173: #line 7892 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("volatility", (Node *)makeString("immutable"), (yylsp[0])); } #line 35176 "gram.c" /* yacc.c:1652 */ break; case 1174: #line 7896 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("volatility", (Node *)makeString("stable"), (yylsp[0])); } #line 35184 "gram.c" /* yacc.c:1652 */ break; case 1175: #line 7900 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("volatility", (Node *)makeString("volatile"), (yylsp[0])); } #line 35192 "gram.c" /* yacc.c:1652 */ break; case 1176: #line 7904 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("security", (Node *)makeInteger(true), (yylsp[-2])); } #line 35200 "gram.c" /* yacc.c:1652 */ break; case 1177: #line 7908 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("security", (Node *)makeInteger(false), (yylsp[-2])); } #line 35208 "gram.c" /* yacc.c:1652 */ break; case 1178: #line 7912 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("security", (Node *)makeInteger(true), (yylsp[-1])); } #line 35216 "gram.c" /* yacc.c:1652 */ break; case 1179: #line 7916 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("security", (Node *)makeInteger(false), (yylsp[-1])); } #line 35224 "gram.c" /* yacc.c:1652 */ break; case 1180: #line 7920 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("leakproof", (Node *)makeInteger(true), (yylsp[0])); } #line 35232 "gram.c" /* yacc.c:1652 */ break; case 1181: #line 7924 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("leakproof", (Node *)makeInteger(false), (yylsp[-1])); } #line 35240 "gram.c" /* yacc.c:1652 */ break; case 1182: #line 7928 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("cost", (Node *)(yyvsp[0].value), (yylsp[-1])); } #line 35248 "gram.c" /* yacc.c:1652 */ break; case 1183: #line 7932 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("rows", (Node *)(yyvsp[0].value), (yylsp[-1])); } #line 35256 "gram.c" /* yacc.c:1652 */ break; case 1184: #line 7936 "gram.y" /* yacc.c:1652 */ { /* we abuse the normal content of a DefElem here */ (yyval.defelt) = makeDefElem("set", (Node *)(yyvsp[0].vsetstmt), (yylsp[0])); } #line 35265 "gram.c" /* yacc.c:1652 */ break; case 1185: #line 7941 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("parallel", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } #line 35273 "gram.c" /* yacc.c:1652 */ break; case 1186: #line 7948 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("as", (Node *)(yyvsp[0].list), (yylsp[-1])); } #line 35281 "gram.c" /* yacc.c:1652 */ break; case 1187: #line 7952 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("language", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } #line 35289 "gram.c" /* yacc.c:1652 */ break; case 1188: #line 7956 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("transform", (Node *)(yyvsp[0].list), (yylsp[-1])); } #line 35297 "gram.c" /* yacc.c:1652 */ break; case 1189: #line 7960 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("window", (Node *)makeInteger(true), (yylsp[0])); } #line 35305 "gram.c" /* yacc.c:1652 */ break; case 1190: #line 7964 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = (yyvsp[0].defelt); } #line 35313 "gram.c" /* yacc.c:1652 */ break; case 1191: #line 7969 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } #line 35319 "gram.c" /* yacc.c:1652 */ break; case 1192: #line 7971 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(makeString((yyvsp[-2].str)), makeString((yyvsp[0].str))); } #line 35327 "gram.c" /* yacc.c:1652 */ break; case 1193: #line 7977 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].typnam)); } #line 35333 "gram.c" /* yacc.c:1652 */ break; case 1194: #line 7978 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-4].list), (yyvsp[0].typnam)); } #line 35339 "gram.c" /* yacc.c:1652 */ break; case 1195: #line 7982 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 35345 "gram.c" /* yacc.c:1652 */ break; case 1196: #line 7983 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 35351 "gram.c" /* yacc.c:1652 */ break; case 1197: #line 7987 "gram.y" /* yacc.c:1652 */ { FunctionParameter *n = makeNode(FunctionParameter); n->name = (yyvsp[-1].str); n->argType = (yyvsp[0].typnam); n->mode = FUNC_PARAM_TABLE; n->defexpr = NULL; (yyval.fun_param) = n; } #line 35364 "gram.c" /* yacc.c:1652 */ break; case 1198: #line 7999 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].fun_param)); } #line 35372 "gram.c" /* yacc.c:1652 */ break; case 1199: #line 8003 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); } #line 35380 "gram.c" /* yacc.c:1652 */ break; case 1200: #line 8018 "gram.y" /* yacc.c:1652 */ { AlterFunctionStmt *n = makeNode(AlterFunctionStmt); n->objtype = OBJECT_FUNCTION; n->func = (yyvsp[-2].objwithargs); n->actions = (yyvsp[-1].list); (yyval.node) = (Node *) n; } #line 35392 "gram.c" /* yacc.c:1652 */ break; case 1201: #line 8026 "gram.y" /* yacc.c:1652 */ { AlterFunctionStmt *n = makeNode(AlterFunctionStmt); n->objtype = OBJECT_PROCEDURE; n->func = (yyvsp[-2].objwithargs); n->actions = (yyvsp[-1].list); (yyval.node) = (Node *) n; } #line 35404 "gram.c" /* yacc.c:1652 */ break; case 1202: #line 8034 "gram.y" /* yacc.c:1652 */ { AlterFunctionStmt *n = makeNode(AlterFunctionStmt); n->objtype = OBJECT_ROUTINE; n->func = (yyvsp[-2].objwithargs); n->actions = (yyvsp[-1].list); (yyval.node) = (Node *) n; } #line 35416 "gram.c" /* yacc.c:1652 */ break; case 1203: #line 8045 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 35422 "gram.c" /* yacc.c:1652 */ break; case 1204: #line 8046 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 35428 "gram.c" /* yacc.c:1652 */ break; case 1207: #line 8070 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FUNCTION; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *)n; } #line 35442 "gram.c" /* yacc.c:1652 */ break; case 1208: #line 8080 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FUNCTION; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *)n; } #line 35456 "gram.c" /* yacc.c:1652 */ break; case 1209: #line 8090 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_PROCEDURE; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *)n; } #line 35470 "gram.c" /* yacc.c:1652 */ break; case 1210: #line 8100 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_PROCEDURE; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *)n; } #line 35484 "gram.c" /* yacc.c:1652 */ break; case 1211: #line 8110 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_ROUTINE; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *)n; } #line 35498 "gram.c" /* yacc.c:1652 */ break; case 1212: #line 8120 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_ROUTINE; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *)n; } #line 35512 "gram.c" /* yacc.c:1652 */ break; case 1213: #line 8133 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_AGGREGATE; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *)n; } #line 35526 "gram.c" /* yacc.c:1652 */ break; case 1214: #line 8143 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_AGGREGATE; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *)n; } #line 35540 "gram.c" /* yacc.c:1652 */ break; case 1215: #line 8156 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_OPERATOR; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *)n; } #line 35554 "gram.c" /* yacc.c:1652 */ break; case 1216: #line 8166 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_OPERATOR; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *)n; } #line 35568 "gram.c" /* yacc.c:1652 */ break; case 1217: #line 8179 "gram.y" /* yacc.c:1652 */ { ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("missing argument"), errhint("Use NONE to denote the missing argument of a unary operator."), parser_errposition((yylsp[0])))); } #line 35580 "gram.c" /* yacc.c:1652 */ break; case 1218: #line 8187 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[-3].typnam), (yyvsp[-1].typnam)); } #line 35586 "gram.c" /* yacc.c:1652 */ break; case 1219: #line 8189 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(NULL, (yyvsp[-1].typnam)); } #line 35592 "gram.c" /* yacc.c:1652 */ break; case 1220: #line 8191 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[-3].typnam), NULL); } #line 35598 "gram.c" /* yacc.c:1652 */ break; case 1221: #line 8196 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } #line 35604 "gram.c" /* yacc.c:1652 */ break; case 1222: #line 8198 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lcons(makeString((yyvsp[-2].str)), (yyvsp[0].list)); } #line 35610 "gram.c" /* yacc.c:1652 */ break; case 1223: #line 8202 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].objwithargs)); } #line 35616 "gram.c" /* yacc.c:1652 */ break; case 1224: #line 8204 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].objwithargs)); } #line 35622 "gram.c" /* yacc.c:1652 */ break; case 1225: #line 8209 "gram.y" /* yacc.c:1652 */ { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = (yyvsp[-1].list); n->objargs = (yyvsp[0].list); (yyval.objwithargs) = n; } #line 35633 "gram.c" /* yacc.c:1652 */ break; case 1226: #line 8227 "gram.y" /* yacc.c:1652 */ { DoStmt *n = makeNode(DoStmt); n->args = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 35643 "gram.c" /* yacc.c:1652 */ break; case 1227: #line 8235 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 35649 "gram.c" /* yacc.c:1652 */ break; case 1228: #line 8236 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 35655 "gram.c" /* yacc.c:1652 */ break; case 1229: #line 8241 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("as", (Node *)makeString((yyvsp[0].str)), (yylsp[0])); } #line 35663 "gram.c" /* yacc.c:1652 */ break; case 1230: #line 8245 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("language", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } #line 35671 "gram.c" /* yacc.c:1652 */ break; case 1231: #line 8258 "gram.y" /* yacc.c:1652 */ { CreateCastStmt *n = makeNode(CreateCastStmt); n->sourcetype = (yyvsp[-7].typnam); n->targettype = (yyvsp[-5].typnam); n->func = (yyvsp[-1].objwithargs); n->context = (CoercionContext) (yyvsp[0].ival); n->inout = false; (yyval.node) = (Node *)n; } #line 35685 "gram.c" /* yacc.c:1652 */ break; case 1232: #line 8269 "gram.y" /* yacc.c:1652 */ { CreateCastStmt *n = makeNode(CreateCastStmt); n->sourcetype = (yyvsp[-6].typnam); n->targettype = (yyvsp[-4].typnam); n->func = NULL; n->context = (CoercionContext) (yyvsp[0].ival); n->inout = false; (yyval.node) = (Node *)n; } #line 35699 "gram.c" /* yacc.c:1652 */ break; case 1233: #line 8280 "gram.y" /* yacc.c:1652 */ { CreateCastStmt *n = makeNode(CreateCastStmt); n->sourcetype = (yyvsp[-6].typnam); n->targettype = (yyvsp[-4].typnam); n->func = NULL; n->context = (CoercionContext) (yyvsp[0].ival); n->inout = true; (yyval.node) = (Node *)n; } #line 35713 "gram.c" /* yacc.c:1652 */ break; case 1234: #line 8291 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = COERCION_IMPLICIT; } #line 35719 "gram.c" /* yacc.c:1652 */ break; case 1235: #line 8292 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = COERCION_ASSIGNMENT; } #line 35725 "gram.c" /* yacc.c:1652 */ break; case 1236: #line 8293 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = COERCION_EXPLICIT; } #line 35731 "gram.c" /* yacc.c:1652 */ break; case 1237: #line 8298 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_CAST; n->objects = list_make1(list_make2((yyvsp[-4].typnam), (yyvsp[-2].typnam))); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = (yyvsp[-6].boolean); n->concurrent = false; (yyval.node) = (Node *)n; } #line 35745 "gram.c" /* yacc.c:1652 */ break; case 1238: #line 8309 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 35751 "gram.c" /* yacc.c:1652 */ break; case 1239: #line 8310 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 35757 "gram.c" /* yacc.c:1652 */ break; case 1240: #line 8321 "gram.y" /* yacc.c:1652 */ { CreateTransformStmt *n = makeNode(CreateTransformStmt); n->replace = (yyvsp[-8].boolean); n->type_name = (yyvsp[-5].typnam); n->lang = (yyvsp[-3].str); n->fromsql = linitial((yyvsp[-1].list)); n->tosql = lsecond((yyvsp[-1].list)); (yyval.node) = (Node *)n; } #line 35771 "gram.c" /* yacc.c:1652 */ break; case 1241: #line 8333 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[-6].objwithargs), (yyvsp[0].objwithargs)); } #line 35779 "gram.c" /* yacc.c:1652 */ break; case 1242: #line 8337 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[0].objwithargs), (yyvsp[-6].objwithargs)); } #line 35787 "gram.c" /* yacc.c:1652 */ break; case 1243: #line 8341 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[0].objwithargs), NULL); } #line 35795 "gram.c" /* yacc.c:1652 */ break; case 1244: #line 8345 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(NULL, (yyvsp[0].objwithargs)); } #line 35803 "gram.c" /* yacc.c:1652 */ break; case 1245: #line 8352 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_TRANSFORM; n->objects = list_make1(list_make2((yyvsp[-3].typnam), makeString((yyvsp[-1].str)))); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = (yyvsp[-5].boolean); (yyval.node) = (Node *)n; } #line 35816 "gram.c" /* yacc.c:1652 */ break; case 1246: #line 8372 "gram.y" /* yacc.c:1652 */ { ReindexStmt *n = makeNode(ReindexStmt); n->kind = (yyvsp[-1].ival); n->relation = (yyvsp[0].range); n->name = NULL; n->options = 0; (yyval.node) = (Node *)n; } #line 35829 "gram.c" /* yacc.c:1652 */ break; case 1247: #line 8381 "gram.y" /* yacc.c:1652 */ { ReindexStmt *n = makeNode(ReindexStmt); n->kind = (yyvsp[-1].ival); n->name = (yyvsp[0].str); n->relation = NULL; n->options = 0; (yyval.node) = (Node *)n; } #line 35842 "gram.c" /* yacc.c:1652 */ break; case 1248: #line 8390 "gram.y" /* yacc.c:1652 */ { ReindexStmt *n = makeNode(ReindexStmt); n->kind = (yyvsp[-1].ival); n->relation = (yyvsp[0].range); n->name = NULL; n->options = (yyvsp[-3].ival); (yyval.node) = (Node *)n; } #line 35855 "gram.c" /* yacc.c:1652 */ break; case 1249: #line 8399 "gram.y" /* yacc.c:1652 */ { ReindexStmt *n = makeNode(ReindexStmt); n->kind = (yyvsp[-1].ival); n->name = (yyvsp[0].str); n->relation = NULL; n->options = (yyvsp[-3].ival); (yyval.node) = (Node *)n; } #line 35868 "gram.c" /* yacc.c:1652 */ break; case 1250: #line 8409 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = REINDEX_OBJECT_INDEX; } #line 35874 "gram.c" /* yacc.c:1652 */ break; case 1251: #line 8410 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = REINDEX_OBJECT_TABLE; } #line 35880 "gram.c" /* yacc.c:1652 */ break; case 1252: #line 8413 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = REINDEX_OBJECT_SCHEMA; } #line 35886 "gram.c" /* yacc.c:1652 */ break; case 1253: #line 8414 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = REINDEX_OBJECT_SYSTEM; } #line 35892 "gram.c" /* yacc.c:1652 */ break; case 1254: #line 8415 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = REINDEX_OBJECT_DATABASE; } #line 35898 "gram.c" /* yacc.c:1652 */ break; case 1255: #line 8418 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[0].ival); } #line 35904 "gram.c" /* yacc.c:1652 */ break; case 1256: #line 8419 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[-2].ival) | (yyvsp[0].ival); } #line 35910 "gram.c" /* yacc.c:1652 */ break; case 1257: #line 8422 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = REINDEXOPT_VERBOSE; } #line 35916 "gram.c" /* yacc.c:1652 */ break; case 1258: #line 8433 "gram.y" /* yacc.c:1652 */ { AlterTableSpaceOptionsStmt *n = makeNode(AlterTableSpaceOptionsStmt); n->tablespacename = (yyvsp[-2].str); n->options = (yyvsp[0].list); n->isReset = false; (yyval.node) = (Node *)n; } #line 35929 "gram.c" /* yacc.c:1652 */ break; case 1259: #line 8442 "gram.y" /* yacc.c:1652 */ { AlterTableSpaceOptionsStmt *n = makeNode(AlterTableSpaceOptionsStmt); n->tablespacename = (yyvsp[-2].str); n->options = (yyvsp[0].list); n->isReset = true; (yyval.node) = (Node *)n; } #line 35942 "gram.c" /* yacc.c:1652 */ break; case 1260: #line 8459 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_AGGREGATE; n->object = (Node *) (yyvsp[-3].objwithargs); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 35955 "gram.c" /* yacc.c:1652 */ break; case 1261: #line 8468 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLLATION; n->object = (Node *) (yyvsp[-3].list); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 35968 "gram.c" /* yacc.c:1652 */ break; case 1262: #line 8477 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_CONVERSION; n->object = (Node *) (yyvsp[-3].list); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 35981 "gram.c" /* yacc.c:1652 */ break; case 1263: #line 8486 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_DATABASE; n->subname = (yyvsp[-3].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 35994 "gram.c" /* yacc.c:1652 */ break; case 1264: #line 8495 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_DOMAIN; n->object = (Node *) (yyvsp[-3].list); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36007 "gram.c" /* yacc.c:1652 */ break; case 1265: #line 8504 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_DOMCONSTRAINT; n->object = (Node *) (yyvsp[-5].list); n->subname = (yyvsp[-2].str); n->newname = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 36020 "gram.c" /* yacc.c:1652 */ break; case 1266: #line 8513 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FDW; n->object = (Node *) makeString((yyvsp[-3].str)); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36033 "gram.c" /* yacc.c:1652 */ break; case 1267: #line 8522 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[-3].objwithargs); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36046 "gram.c" /* yacc.c:1652 */ break; case 1268: #line 8531 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_ROLE; n->subname = (yyvsp[-3].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36059 "gram.c" /* yacc.c:1652 */ break; case 1269: #line 8540 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_LANGUAGE; n->object = (Node *) makeString((yyvsp[-3].str)); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36072 "gram.c" /* yacc.c:1652 */ break; case 1270: #line 8549 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_OPCLASS; n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list)); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36085 "gram.c" /* yacc.c:1652 */ break; case 1271: #line 8558 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_OPFAMILY; n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list)); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36098 "gram.c" /* yacc.c:1652 */ break; case 1272: #line 8567 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_POLICY; n->relation = (yyvsp[-3].range); n->subname = (yyvsp[-5].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36112 "gram.c" /* yacc.c:1652 */ break; case 1273: #line 8577 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_POLICY; n->relation = (yyvsp[-3].range); n->subname = (yyvsp[-5].str); n->newname = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 36126 "gram.c" /* yacc.c:1652 */ break; case 1274: #line 8587 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[-3].objwithargs); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36139 "gram.c" /* yacc.c:1652 */ break; case 1275: #line 8596 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_PUBLICATION; n->object = (Node *) makeString((yyvsp[-3].str)); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36152 "gram.c" /* yacc.c:1652 */ break; case 1276: #line 8605 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[-3].objwithargs); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36165 "gram.c" /* yacc.c:1652 */ break; case 1277: #line 8614 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_SCHEMA; n->subname = (yyvsp[-3].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36178 "gram.c" /* yacc.c:1652 */ break; case 1278: #line 8623 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FOREIGN_SERVER; n->object = (Node *) makeString((yyvsp[-3].str)); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36191 "gram.c" /* yacc.c:1652 */ break; case 1279: #line 8632 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_SUBSCRIPTION; n->object = (Node *) makeString((yyvsp[-3].str)); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36204 "gram.c" /* yacc.c:1652 */ break; case 1280: #line 8641 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TABLE; n->relation = (yyvsp[-3].range); n->subname = NULL; n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36218 "gram.c" /* yacc.c:1652 */ break; case 1281: #line 8651 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TABLE; n->relation = (yyvsp[-3].range); n->subname = NULL; n->newname = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 36232 "gram.c" /* yacc.c:1652 */ break; case 1282: #line 8661 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_SEQUENCE; n->relation = (yyvsp[-3].range); n->subname = NULL; n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36246 "gram.c" /* yacc.c:1652 */ break; case 1283: #line 8671 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_SEQUENCE; n->relation = (yyvsp[-3].range); n->subname = NULL; n->newname = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 36260 "gram.c" /* yacc.c:1652 */ break; case 1284: #line 8681 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_VIEW; n->relation = (yyvsp[-3].range); n->subname = NULL; n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36274 "gram.c" /* yacc.c:1652 */ break; case 1285: #line 8691 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_VIEW; n->relation = (yyvsp[-3].range); n->subname = NULL; n->newname = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 36288 "gram.c" /* yacc.c:1652 */ break; case 1286: #line 8701 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_MATVIEW; n->relation = (yyvsp[-3].range); n->subname = NULL; n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36302 "gram.c" /* yacc.c:1652 */ break; case 1287: #line 8711 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_MATVIEW; n->relation = (yyvsp[-3].range); n->subname = NULL; n->newname = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 36316 "gram.c" /* yacc.c:1652 */ break; case 1288: #line 8721 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_INDEX; n->relation = (yyvsp[-3].range); n->subname = NULL; n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36330 "gram.c" /* yacc.c:1652 */ break; case 1289: #line 8731 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_INDEX; n->relation = (yyvsp[-3].range); n->subname = NULL; n->newname = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 36344 "gram.c" /* yacc.c:1652 */ break; case 1290: #line 8741 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[-3].range); n->subname = NULL; n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36358 "gram.c" /* yacc.c:1652 */ break; case 1291: #line 8751 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[-3].range); n->subname = NULL; n->newname = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 36372 "gram.c" /* yacc.c:1652 */ break; case 1292: #line 8761 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_TABLE; n->relation = (yyvsp[-5].range); n->subname = (yyvsp[-2].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36387 "gram.c" /* yacc.c:1652 */ break; case 1293: #line 8772 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_TABLE; n->relation = (yyvsp[-5].range); n->subname = (yyvsp[-2].str); n->newname = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 36402 "gram.c" /* yacc.c:1652 */ break; case 1294: #line 8783 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_MATVIEW; n->relation = (yyvsp[-5].range); n->subname = (yyvsp[-2].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36417 "gram.c" /* yacc.c:1652 */ break; case 1295: #line 8794 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_MATVIEW; n->relation = (yyvsp[-5].range); n->subname = (yyvsp[-2].str); n->newname = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 36432 "gram.c" /* yacc.c:1652 */ break; case 1296: #line 8805 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TABCONSTRAINT; n->relation = (yyvsp[-5].range); n->subname = (yyvsp[-2].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36446 "gram.c" /* yacc.c:1652 */ break; case 1297: #line 8815 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TABCONSTRAINT; n->relation = (yyvsp[-5].range); n->subname = (yyvsp[-2].str); n->newname = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 36460 "gram.c" /* yacc.c:1652 */ break; case 1298: #line 8825 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[-5].range); n->subname = (yyvsp[-2].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36475 "gram.c" /* yacc.c:1652 */ break; case 1299: #line 8836 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[-5].range); n->subname = (yyvsp[-2].str); n->newname = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 36490 "gram.c" /* yacc.c:1652 */ break; case 1300: #line 8847 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_RULE; n->relation = (yyvsp[-3].range); n->subname = (yyvsp[-5].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36504 "gram.c" /* yacc.c:1652 */ break; case 1301: #line 8857 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TRIGGER; n->relation = (yyvsp[-3].range); n->subname = (yyvsp[-5].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36518 "gram.c" /* yacc.c:1652 */ break; case 1302: #line 8867 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_EVENT_TRIGGER; n->object = (Node *) makeString((yyvsp[-3].str)); n->newname = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 36530 "gram.c" /* yacc.c:1652 */ break; case 1303: #line 8875 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_ROLE; n->subname = (yyvsp[-3].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36543 "gram.c" /* yacc.c:1652 */ break; case 1304: #line 8884 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_ROLE; n->subname = (yyvsp[-3].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36556 "gram.c" /* yacc.c:1652 */ break; case 1305: #line 8893 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TABLESPACE; n->subname = (yyvsp[-3].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36569 "gram.c" /* yacc.c:1652 */ break; case 1306: #line 8902 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_STATISTIC_EXT; n->object = (Node *) (yyvsp[-3].list); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36582 "gram.c" /* yacc.c:1652 */ break; case 1307: #line 8911 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSPARSER; n->object = (Node *) (yyvsp[-3].list); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36595 "gram.c" /* yacc.c:1652 */ break; case 1308: #line 8920 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSDICTIONARY; n->object = (Node *) (yyvsp[-3].list); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36608 "gram.c" /* yacc.c:1652 */ break; case 1309: #line 8929 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSTEMPLATE; n->object = (Node *) (yyvsp[-3].list); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36621 "gram.c" /* yacc.c:1652 */ break; case 1310: #line 8938 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSCONFIGURATION; n->object = (Node *) (yyvsp[-3].list); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36634 "gram.c" /* yacc.c:1652 */ break; case 1311: #line 8947 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TYPE; n->object = (Node *) (yyvsp[-3].list); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36647 "gram.c" /* yacc.c:1652 */ break; case 1312: #line 8956 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_ATTRIBUTE; n->relationType = OBJECT_TYPE; n->relation = makeRangeVarFromAnyName((yyvsp[-6].list), (yylsp[-6]), yyscanner); n->subname = (yyvsp[-3].str); n->newname = (yyvsp[-1].str); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36663 "gram.c" /* yacc.c:1652 */ break; case 1313: #line 8969 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = COLUMN; } #line 36669 "gram.c" /* yacc.c:1652 */ break; case 1314: #line 8970 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 36675 "gram.c" /* yacc.c:1652 */ break; case 1315: #line 8973 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 1; } #line 36681 "gram.c" /* yacc.c:1652 */ break; case 1316: #line 8974 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 36687 "gram.c" /* yacc.c:1652 */ break; case 1317: #line 8985 "gram.y" /* yacc.c:1652 */ { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[-4].objwithargs); n->extname = makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 36699 "gram.c" /* yacc.c:1652 */ break; case 1318: #line 8993 "gram.y" /* yacc.c:1652 */ { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[-4].objwithargs); n->extname = makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 36711 "gram.c" /* yacc.c:1652 */ break; case 1319: #line 9001 "gram.y" /* yacc.c:1652 */ { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[-4].objwithargs); n->extname = makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 36723 "gram.c" /* yacc.c:1652 */ break; case 1320: #line 9009 "gram.y" /* yacc.c:1652 */ { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_TRIGGER; n->relation = (yyvsp[-4].range); n->object = (Node *) list_make1(makeString((yyvsp[-6].str))); n->extname = makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 36736 "gram.c" /* yacc.c:1652 */ break; case 1321: #line 9018 "gram.y" /* yacc.c:1652 */ { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_MATVIEW; n->relation = (yyvsp[-4].range); n->extname = makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 36748 "gram.c" /* yacc.c:1652 */ break; case 1322: #line 9026 "gram.y" /* yacc.c:1652 */ { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_INDEX; n->relation = (yyvsp[-4].range); n->extname = makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 36760 "gram.c" /* yacc.c:1652 */ break; case 1323: #line 9043 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_AGGREGATE; n->object = (Node *) (yyvsp[-3].objwithargs); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36773 "gram.c" /* yacc.c:1652 */ break; case 1324: #line 9052 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_COLLATION; n->object = (Node *) (yyvsp[-3].list); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36786 "gram.c" /* yacc.c:1652 */ break; case 1325: #line 9061 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_CONVERSION; n->object = (Node *) (yyvsp[-3].list); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36799 "gram.c" /* yacc.c:1652 */ break; case 1326: #line 9070 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_DOMAIN; n->object = (Node *) (yyvsp[-3].list); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36812 "gram.c" /* yacc.c:1652 */ break; case 1327: #line 9079 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_EXTENSION; n->object = (Node *) makeString((yyvsp[-3].str)); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36825 "gram.c" /* yacc.c:1652 */ break; case 1328: #line 9088 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[-3].objwithargs); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36838 "gram.c" /* yacc.c:1652 */ break; case 1329: #line 9097 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_OPERATOR; n->object = (Node *) (yyvsp[-3].objwithargs); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36851 "gram.c" /* yacc.c:1652 */ break; case 1330: #line 9106 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_OPCLASS; n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list)); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36864 "gram.c" /* yacc.c:1652 */ break; case 1331: #line 9115 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_OPFAMILY; n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list)); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36877 "gram.c" /* yacc.c:1652 */ break; case 1332: #line 9124 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[-3].objwithargs); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36890 "gram.c" /* yacc.c:1652 */ break; case 1333: #line 9133 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[-3].objwithargs); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36903 "gram.c" /* yacc.c:1652 */ break; case 1334: #line 9142 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TABLE; n->relation = (yyvsp[-3].range); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36916 "gram.c" /* yacc.c:1652 */ break; case 1335: #line 9151 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TABLE; n->relation = (yyvsp[-3].range); n->newschema = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 36929 "gram.c" /* yacc.c:1652 */ break; case 1336: #line 9160 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_STATISTIC_EXT; n->object = (Node *) (yyvsp[-3].list); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36942 "gram.c" /* yacc.c:1652 */ break; case 1337: #line 9169 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSPARSER; n->object = (Node *) (yyvsp[-3].list); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36955 "gram.c" /* yacc.c:1652 */ break; case 1338: #line 9178 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSDICTIONARY; n->object = (Node *) (yyvsp[-3].list); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36968 "gram.c" /* yacc.c:1652 */ break; case 1339: #line 9187 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSTEMPLATE; n->object = (Node *) (yyvsp[-3].list); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36981 "gram.c" /* yacc.c:1652 */ break; case 1340: #line 9196 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSCONFIGURATION; n->object = (Node *) (yyvsp[-3].list); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36994 "gram.c" /* yacc.c:1652 */ break; case 1341: #line 9205 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_SEQUENCE; n->relation = (yyvsp[-3].range); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37007 "gram.c" /* yacc.c:1652 */ break; case 1342: #line 9214 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_SEQUENCE; n->relation = (yyvsp[-3].range); n->newschema = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 37020 "gram.c" /* yacc.c:1652 */ break; case 1343: #line 9223 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_VIEW; n->relation = (yyvsp[-3].range); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37033 "gram.c" /* yacc.c:1652 */ break; case 1344: #line 9232 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_VIEW; n->relation = (yyvsp[-3].range); n->newschema = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 37046 "gram.c" /* yacc.c:1652 */ break; case 1345: #line 9241 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_MATVIEW; n->relation = (yyvsp[-3].range); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37059 "gram.c" /* yacc.c:1652 */ break; case 1346: #line 9250 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_MATVIEW; n->relation = (yyvsp[-3].range); n->newschema = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 37072 "gram.c" /* yacc.c:1652 */ break; case 1347: #line 9259 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[-3].range); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37085 "gram.c" /* yacc.c:1652 */ break; case 1348: #line 9268 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[-3].range); n->newschema = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 37098 "gram.c" /* yacc.c:1652 */ break; case 1349: #line 9277 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TYPE; n->object = (Node *) (yyvsp[-3].list); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37111 "gram.c" /* yacc.c:1652 */ break; case 1350: #line 9295 "gram.y" /* yacc.c:1652 */ { AlterOperatorStmt *n = makeNode(AlterOperatorStmt); n->opername = (yyvsp[-4].objwithargs); n->options = (yyvsp[-1].list); (yyval.node) = (Node *)n; } #line 37122 "gram.c" /* yacc.c:1652 */ break; case 1351: #line 9303 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 37128 "gram.c" /* yacc.c:1652 */ break; case 1352: #line 9304 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } #line 37134 "gram.c" /* yacc.c:1652 */ break; case 1353: #line 9308 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-2].str), NULL, (yylsp[-2])); } #line 37140 "gram.c" /* yacc.c:1652 */ break; case 1354: #line 9310 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2])); } #line 37146 "gram.c" /* yacc.c:1652 */ break; case 1355: #line 9315 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *)(yyvsp[0].typnam); } #line 37152 "gram.c" /* yacc.c:1652 */ break; case 1356: #line 9316 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *)makeString(pstrdup((yyvsp[0].keyword))); } #line 37158 "gram.c" /* yacc.c:1652 */ break; case 1357: #line 9317 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *)(yyvsp[0].list); } #line 37164 "gram.c" /* yacc.c:1652 */ break; case 1358: #line 9318 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *)(yyvsp[0].value); } #line 37170 "gram.c" /* yacc.c:1652 */ break; case 1359: #line 9319 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *)makeString((yyvsp[0].str)); } #line 37176 "gram.c" /* yacc.c:1652 */ break; case 1360: #line 9329 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_AGGREGATE; n->object = (Node *) (yyvsp[-3].objwithargs); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37188 "gram.c" /* yacc.c:1652 */ break; case 1361: #line 9337 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_COLLATION; n->object = (Node *) (yyvsp[-3].list); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37200 "gram.c" /* yacc.c:1652 */ break; case 1362: #line 9345 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_CONVERSION; n->object = (Node *) (yyvsp[-3].list); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37212 "gram.c" /* yacc.c:1652 */ break; case 1363: #line 9353 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_DATABASE; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37224 "gram.c" /* yacc.c:1652 */ break; case 1364: #line 9361 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_DOMAIN; n->object = (Node *) (yyvsp[-3].list); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37236 "gram.c" /* yacc.c:1652 */ break; case 1365: #line 9369 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[-3].objwithargs); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37248 "gram.c" /* yacc.c:1652 */ break; case 1366: #line 9377 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_LANGUAGE; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37260 "gram.c" /* yacc.c:1652 */ break; case 1367: #line 9385 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_LARGEOBJECT; n->object = (Node *) (yyvsp[-3].value); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37272 "gram.c" /* yacc.c:1652 */ break; case 1368: #line 9393 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_OPERATOR; n->object = (Node *) (yyvsp[-3].objwithargs); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37284 "gram.c" /* yacc.c:1652 */ break; case 1369: #line 9401 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_OPCLASS; n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37296 "gram.c" /* yacc.c:1652 */ break; case 1370: #line 9409 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_OPFAMILY; n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37308 "gram.c" /* yacc.c:1652 */ break; case 1371: #line 9417 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[-3].objwithargs); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37320 "gram.c" /* yacc.c:1652 */ break; case 1372: #line 9425 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[-3].objwithargs); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37332 "gram.c" /* yacc.c:1652 */ break; case 1373: #line 9433 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_SCHEMA; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37344 "gram.c" /* yacc.c:1652 */ break; case 1374: #line 9441 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TYPE; n->object = (Node *) (yyvsp[-3].list); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37356 "gram.c" /* yacc.c:1652 */ break; case 1375: #line 9449 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TABLESPACE; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37368 "gram.c" /* yacc.c:1652 */ break; case 1376: #line 9457 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_STATISTIC_EXT; n->object = (Node *) (yyvsp[-3].list); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37380 "gram.c" /* yacc.c:1652 */ break; case 1377: #line 9465 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TSDICTIONARY; n->object = (Node *) (yyvsp[-3].list); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37392 "gram.c" /* yacc.c:1652 */ break; case 1378: #line 9473 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TSCONFIGURATION; n->object = (Node *) (yyvsp[-3].list); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37404 "gram.c" /* yacc.c:1652 */ break; case 1379: #line 9481 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_FDW; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37416 "gram.c" /* yacc.c:1652 */ break; case 1380: #line 9489 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_FOREIGN_SERVER; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37428 "gram.c" /* yacc.c:1652 */ break; case 1381: #line 9497 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_EVENT_TRIGGER; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37440 "gram.c" /* yacc.c:1652 */ break; case 1382: #line 9505 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_PUBLICATION; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37452 "gram.c" /* yacc.c:1652 */ break; case 1383: #line 9513 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_SUBSCRIPTION; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37464 "gram.c" /* yacc.c:1652 */ break; case 1384: #line 9531 "gram.y" /* yacc.c:1652 */ { CreatePublicationStmt *n = makeNode(CreatePublicationStmt); n->pubname = (yyvsp[-2].str); n->options = (yyvsp[0].list); if ((yyvsp[-1].node) != NULL) { /* FOR TABLE */ if (IsA((yyvsp[-1].node), List)) n->tables = (List *)(yyvsp[-1].node); /* FOR ALL TABLES */ else n->for_all_tables = true; } (yyval.node) = (Node *)n; } #line 37484 "gram.c" /* yacc.c:1652 */ break; case 1385: #line 9549 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 37490 "gram.c" /* yacc.c:1652 */ break; case 1386: #line 9550 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 37496 "gram.c" /* yacc.c:1652 */ break; case 1387: #line 9555 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) (yyvsp[0].list); } #line 37504 "gram.c" /* yacc.c:1652 */ break; case 1388: #line 9559 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeInteger(true); } #line 37512 "gram.c" /* yacc.c:1652 */ break; case 1389: #line 9579 "gram.y" /* yacc.c:1652 */ { AlterPublicationStmt *n = makeNode(AlterPublicationStmt); n->pubname = (yyvsp[-2].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 37523 "gram.c" /* yacc.c:1652 */ break; case 1390: #line 9586 "gram.y" /* yacc.c:1652 */ { AlterPublicationStmt *n = makeNode(AlterPublicationStmt); n->pubname = (yyvsp[-3].str); n->tables = (yyvsp[0].list); n->tableAction = DEFELEM_ADD; (yyval.node) = (Node *)n; } #line 37535 "gram.c" /* yacc.c:1652 */ break; case 1391: #line 9594 "gram.y" /* yacc.c:1652 */ { AlterPublicationStmt *n = makeNode(AlterPublicationStmt); n->pubname = (yyvsp[-3].str); n->tables = (yyvsp[0].list); n->tableAction = DEFELEM_SET; (yyval.node) = (Node *)n; } #line 37547 "gram.c" /* yacc.c:1652 */ break; case 1392: #line 9602 "gram.y" /* yacc.c:1652 */ { AlterPublicationStmt *n = makeNode(AlterPublicationStmt); n->pubname = (yyvsp[-3].str); n->tables = (yyvsp[0].list); n->tableAction = DEFELEM_DROP; (yyval.node) = (Node *)n; } #line 37559 "gram.c" /* yacc.c:1652 */ break; case 1393: #line 9619 "gram.y" /* yacc.c:1652 */ { CreateSubscriptionStmt *n = makeNode(CreateSubscriptionStmt); n->subname = (yyvsp[-5].str); n->conninfo = (yyvsp[-3].str); n->publication = (yyvsp[-1].list); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 37573 "gram.c" /* yacc.c:1652 */ break; case 1394: #line 9632 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].value)); } #line 37581 "gram.c" /* yacc.c:1652 */ break; case 1395: #line 9636 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].value)); } #line 37589 "gram.c" /* yacc.c:1652 */ break; case 1396: #line 9642 "gram.y" /* yacc.c:1652 */ { (yyval.value) = makeString((yyvsp[0].str)); } #line 37595 "gram.c" /* yacc.c:1652 */ break; case 1397: #line 9652 "gram.y" /* yacc.c:1652 */ { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_OPTIONS; n->subname = (yyvsp[-2].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 37608 "gram.c" /* yacc.c:1652 */ break; case 1398: #line 9661 "gram.y" /* yacc.c:1652 */ { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_CONNECTION; n->subname = (yyvsp[-2].str); n->conninfo = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 37621 "gram.c" /* yacc.c:1652 */ break; case 1399: #line 9670 "gram.y" /* yacc.c:1652 */ { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_REFRESH; n->subname = (yyvsp[-3].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 37634 "gram.c" /* yacc.c:1652 */ break; case 1400: #line 9679 "gram.y" /* yacc.c:1652 */ { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_PUBLICATION; n->subname = (yyvsp[-4].str); n->publication = (yyvsp[-1].list); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 37648 "gram.c" /* yacc.c:1652 */ break; case 1401: #line 9689 "gram.y" /* yacc.c:1652 */ { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_ENABLED; n->subname = (yyvsp[-1].str); n->options = list_make1(makeDefElem("enabled", (Node *)makeInteger(true), (yylsp[-3]))); (yyval.node) = (Node *)n; } #line 37662 "gram.c" /* yacc.c:1652 */ break; case 1402: #line 9699 "gram.y" /* yacc.c:1652 */ { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_ENABLED; n->subname = (yyvsp[-1].str); n->options = list_make1(makeDefElem("enabled", (Node *)makeInteger(false), (yylsp[-3]))); (yyval.node) = (Node *)n; } #line 37676 "gram.c" /* yacc.c:1652 */ break; case 1403: #line 9717 "gram.y" /* yacc.c:1652 */ { DropSubscriptionStmt *n = makeNode(DropSubscriptionStmt); n->subname = (yyvsp[-1].str); n->missing_ok = false; n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *) n; } #line 37688 "gram.c" /* yacc.c:1652 */ break; case 1404: #line 9725 "gram.y" /* yacc.c:1652 */ { DropSubscriptionStmt *n = makeNode(DropSubscriptionStmt); n->subname = (yyvsp[-1].str); n->missing_ok = true; n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *) n; } #line 37700 "gram.c" /* yacc.c:1652 */ break; case 1405: #line 9743 "gram.y" /* yacc.c:1652 */ { RuleStmt *n = makeNode(RuleStmt); n->replace = (yyvsp[-11].boolean); n->relation = (yyvsp[-4].range); n->rulename = (yyvsp[-9].str); n->whereClause = (yyvsp[-3].node); n->event = (yyvsp[-6].ival); n->instead = (yyvsp[-1].boolean); n->actions = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 37716 "gram.c" /* yacc.c:1652 */ break; case 1406: #line 9757 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 37722 "gram.c" /* yacc.c:1652 */ break; case 1407: #line 9758 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 37728 "gram.c" /* yacc.c:1652 */ break; case 1408: #line 9759 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 37734 "gram.c" /* yacc.c:1652 */ break; case 1409: #line 9765 "gram.y" /* yacc.c:1652 */ { if ((yyvsp[0].node) != NULL) (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); else (yyval.list) = (yyvsp[-2].list); } #line 37744 "gram.c" /* yacc.c:1652 */ break; case 1410: #line 9771 "gram.y" /* yacc.c:1652 */ { if ((yyvsp[0].node) != NULL) (yyval.list) = list_make1((yyvsp[0].node)); else (yyval.list) = NIL; } #line 37754 "gram.c" /* yacc.c:1652 */ break; case 1416: #line 9787 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 37760 "gram.c" /* yacc.c:1652 */ break; case 1417: #line 9788 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 37766 "gram.c" /* yacc.c:1652 */ break; case 1418: #line 9791 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CMD_SELECT; } #line 37772 "gram.c" /* yacc.c:1652 */ break; case 1419: #line 9792 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CMD_UPDATE; } #line 37778 "gram.c" /* yacc.c:1652 */ break; case 1420: #line 9793 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CMD_DELETE; } #line 37784 "gram.c" /* yacc.c:1652 */ break; case 1421: #line 9794 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CMD_INSERT; } #line 37790 "gram.c" /* yacc.c:1652 */ break; case 1422: #line 9798 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 37796 "gram.c" /* yacc.c:1652 */ break; case 1423: #line 9799 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 37802 "gram.c" /* yacc.c:1652 */ break; case 1424: #line 9800 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 37808 "gram.c" /* yacc.c:1652 */ break; case 1425: #line 9813 "gram.y" /* yacc.c:1652 */ { NotifyStmt *n = makeNode(NotifyStmt); n->conditionname = (yyvsp[-1].str); n->payload = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 37819 "gram.c" /* yacc.c:1652 */ break; case 1426: #line 9822 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 37825 "gram.c" /* yacc.c:1652 */ break; case 1427: #line 9823 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 37831 "gram.c" /* yacc.c:1652 */ break; case 1428: #line 9827 "gram.y" /* yacc.c:1652 */ { ListenStmt *n = makeNode(ListenStmt); n->conditionname = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 37841 "gram.c" /* yacc.c:1652 */ break; case 1429: #line 9836 "gram.y" /* yacc.c:1652 */ { UnlistenStmt *n = makeNode(UnlistenStmt); n->conditionname = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 37851 "gram.c" /* yacc.c:1652 */ break; case 1430: #line 9842 "gram.y" /* yacc.c:1652 */ { UnlistenStmt *n = makeNode(UnlistenStmt); n->conditionname = NULL; (yyval.node) = (Node *)n; } #line 37861 "gram.c" /* yacc.c:1652 */ break; case 1431: #line 9861 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK; n->options = NIL; (yyval.node) = (Node *)n; } #line 37872 "gram.c" /* yacc.c:1652 */ break; case 1432: #line 9868 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_BEGIN; n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 37883 "gram.c" /* yacc.c:1652 */ break; case 1433: #line 9875 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_START; n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 37894 "gram.c" /* yacc.c:1652 */ break; case 1434: #line 9882 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_COMMIT; n->options = NIL; (yyval.node) = (Node *)n; } #line 37905 "gram.c" /* yacc.c:1652 */ break; case 1435: #line 9889 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_COMMIT; n->options = NIL; (yyval.node) = (Node *)n; } #line 37916 "gram.c" /* yacc.c:1652 */ break; case 1436: #line 9896 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK; n->options = NIL; (yyval.node) = (Node *)n; } #line 37927 "gram.c" /* yacc.c:1652 */ break; case 1437: #line 9903 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_SAVEPOINT; n->savepoint_name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 37938 "gram.c" /* yacc.c:1652 */ break; case 1438: #line 9910 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_RELEASE; n->savepoint_name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 37949 "gram.c" /* yacc.c:1652 */ break; case 1439: #line 9917 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_RELEASE; n->savepoint_name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 37960 "gram.c" /* yacc.c:1652 */ break; case 1440: #line 9924 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK_TO; n->savepoint_name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 37971 "gram.c" /* yacc.c:1652 */ break; case 1441: #line 9931 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK_TO; n->savepoint_name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 37982 "gram.c" /* yacc.c:1652 */ break; case 1442: #line 9938 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_PREPARE; n->gid = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 37993 "gram.c" /* yacc.c:1652 */ break; case 1443: #line 9945 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_COMMIT_PREPARED; n->gid = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 38004 "gram.c" /* yacc.c:1652 */ break; case 1444: #line 9952 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK_PREPARED; n->gid = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 38015 "gram.c" /* yacc.c:1652 */ break; case 1445: #line 9960 "gram.y" /* yacc.c:1652 */ {} #line 38021 "gram.c" /* yacc.c:1652 */ break; case 1446: #line 9961 "gram.y" /* yacc.c:1652 */ {} #line 38027 "gram.c" /* yacc.c:1652 */ break; case 1447: #line 9962 "gram.y" /* yacc.c:1652 */ {} #line 38033 "gram.c" /* yacc.c:1652 */ break; case 1448: #line 9967 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("transaction_isolation", makeStringConst((yyvsp[0].str), (yylsp[0])), (yylsp[-2])); } #line 38040 "gram.c" /* yacc.c:1652 */ break; case 1449: #line 9970 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("transaction_read_only", makeIntConst(true, (yylsp[-1])), (yylsp[-1])); } #line 38047 "gram.c" /* yacc.c:1652 */ break; case 1450: #line 9973 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("transaction_read_only", makeIntConst(false, (yylsp[-1])), (yylsp[-1])); } #line 38054 "gram.c" /* yacc.c:1652 */ break; case 1451: #line 9976 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("transaction_deferrable", makeIntConst(true, (yylsp[0])), (yylsp[0])); } #line 38061 "gram.c" /* yacc.c:1652 */ break; case 1452: #line 9979 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("transaction_deferrable", makeIntConst(false, (yylsp[-1])), (yylsp[-1])); } #line 38068 "gram.c" /* yacc.c:1652 */ break; case 1453: #line 9986 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 38074 "gram.c" /* yacc.c:1652 */ break; case 1454: #line 9988 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } #line 38080 "gram.c" /* yacc.c:1652 */ break; case 1455: #line 9990 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 38086 "gram.c" /* yacc.c:1652 */ break; case 1457: #line 9996 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 38092 "gram.c" /* yacc.c:1652 */ break; case 1458: #line 10010 "gram.y" /* yacc.c:1652 */ { ViewStmt *n = makeNode(ViewStmt); n->view = (yyvsp[-5].range); n->view->relpersistence = (yyvsp[-7].ival); n->aliases = (yyvsp[-4].list); n->query = (yyvsp[-1].node); n->replace = false; n->options = (yyvsp[-3].list); n->withCheckOption = (yyvsp[0].ival); (yyval.node) = (Node *) n; } #line 38108 "gram.c" /* yacc.c:1652 */ break; case 1459: #line 10023 "gram.y" /* yacc.c:1652 */ { ViewStmt *n = makeNode(ViewStmt); n->view = (yyvsp[-5].range); n->view->relpersistence = (yyvsp[-7].ival); n->aliases = (yyvsp[-4].list); n->query = (yyvsp[-1].node); n->replace = true; n->options = (yyvsp[-3].list); n->withCheckOption = (yyvsp[0].ival); (yyval.node) = (Node *) n; } #line 38124 "gram.c" /* yacc.c:1652 */ break; case 1460: #line 10036 "gram.y" /* yacc.c:1652 */ { ViewStmt *n = makeNode(ViewStmt); n->view = (yyvsp[-7].range); n->view->relpersistence = (yyvsp[-10].ival); n->aliases = (yyvsp[-5].list); n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[-1].node)); n->replace = false; n->options = (yyvsp[-3].list); n->withCheckOption = (yyvsp[0].ival); if (n->withCheckOption != NO_CHECK_OPTION) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("WITH CHECK OPTION not supported on recursive views"), parser_errposition((yylsp[0])))); (yyval.node) = (Node *) n; } #line 38145 "gram.c" /* yacc.c:1652 */ break; case 1461: #line 10054 "gram.y" /* yacc.c:1652 */ { ViewStmt *n = makeNode(ViewStmt); n->view = (yyvsp[-7].range); n->view->relpersistence = (yyvsp[-10].ival); n->aliases = (yyvsp[-5].list); n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[-1].node)); n->replace = true; n->options = (yyvsp[-3].list); n->withCheckOption = (yyvsp[0].ival); if (n->withCheckOption != NO_CHECK_OPTION) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("WITH CHECK OPTION not supported on recursive views"), parser_errposition((yylsp[0])))); (yyval.node) = (Node *) n; } #line 38166 "gram.c" /* yacc.c:1652 */ break; case 1462: #line 10073 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CASCADED_CHECK_OPTION; } #line 38172 "gram.c" /* yacc.c:1652 */ break; case 1463: #line 10074 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CASCADED_CHECK_OPTION; } #line 38178 "gram.c" /* yacc.c:1652 */ break; case 1464: #line 10075 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = LOCAL_CHECK_OPTION; } #line 38184 "gram.c" /* yacc.c:1652 */ break; case 1465: #line 10076 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = NO_CHECK_OPTION; } #line 38190 "gram.c" /* yacc.c:1652 */ break; case 1466: #line 10087 "gram.y" /* yacc.c:1652 */ { LoadStmt *n = makeNode(LoadStmt); n->filename = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 38200 "gram.c" /* yacc.c:1652 */ break; case 1467: #line 10103 "gram.y" /* yacc.c:1652 */ { CreatedbStmt *n = makeNode(CreatedbStmt); n->dbname = (yyvsp[-2].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 38211 "gram.c" /* yacc.c:1652 */ break; case 1468: #line 10112 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 38217 "gram.c" /* yacc.c:1652 */ break; case 1469: #line 10113 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 38223 "gram.c" /* yacc.c:1652 */ break; case 1470: #line 10117 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 38229 "gram.c" /* yacc.c:1652 */ break; case 1471: #line 10118 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 38235 "gram.c" /* yacc.c:1652 */ break; case 1472: #line 10123 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *)makeInteger((yyvsp[0].ival)), (yylsp[-2])); } #line 38243 "gram.c" /* yacc.c:1652 */ break; case 1473: #line 10127 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); } #line 38251 "gram.c" /* yacc.c:1652 */ break; case 1474: #line 10131 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-2].str), NULL, (yylsp[-2])); } #line 38259 "gram.c" /* yacc.c:1652 */ break; case 1475: #line 10148 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 38265 "gram.c" /* yacc.c:1652 */ break; case 1476: #line 10149 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup("connection_limit"); } #line 38271 "gram.c" /* yacc.c:1652 */ break; case 1477: #line 10150 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 38277 "gram.c" /* yacc.c:1652 */ break; case 1478: #line 10151 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 38283 "gram.c" /* yacc.c:1652 */ break; case 1479: #line 10152 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 38289 "gram.c" /* yacc.c:1652 */ break; case 1480: #line 10153 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 38295 "gram.c" /* yacc.c:1652 */ break; case 1481: #line 10154 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 38301 "gram.c" /* yacc.c:1652 */ break; case 1482: #line 10161 "gram.y" /* yacc.c:1652 */ {} #line 38307 "gram.c" /* yacc.c:1652 */ break; case 1483: #line 10162 "gram.y" /* yacc.c:1652 */ {} #line 38313 "gram.c" /* yacc.c:1652 */ break; case 1484: #line 10174 "gram.y" /* yacc.c:1652 */ { AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); n->dbname = (yyvsp[-2].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 38324 "gram.c" /* yacc.c:1652 */ break; case 1485: #line 10181 "gram.y" /* yacc.c:1652 */ { AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); n->dbname = (yyvsp[-1].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 38335 "gram.c" /* yacc.c:1652 */ break; case 1486: #line 10188 "gram.y" /* yacc.c:1652 */ { AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); n->dbname = (yyvsp[-3].str); n->options = list_make1(makeDefElem("tablespace", (Node *)makeString((yyvsp[0].str)), (yylsp[0]))); (yyval.node) = (Node *)n; } #line 38347 "gram.c" /* yacc.c:1652 */ break; case 1487: #line 10199 "gram.y" /* yacc.c:1652 */ { AlterDatabaseSetStmt *n = makeNode(AlterDatabaseSetStmt); n->dbname = (yyvsp[-1].str); n->setstmt = (yyvsp[0].vsetstmt); (yyval.node) = (Node *)n; } #line 38358 "gram.c" /* yacc.c:1652 */ break; case 1488: #line 10216 "gram.y" /* yacc.c:1652 */ { DropdbStmt *n = makeNode(DropdbStmt); n->dbname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 38369 "gram.c" /* yacc.c:1652 */ break; case 1489: #line 10223 "gram.y" /* yacc.c:1652 */ { DropdbStmt *n = makeNode(DropdbStmt); n->dbname = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 38380 "gram.c" /* yacc.c:1652 */ break; case 1490: #line 10239 "gram.y" /* yacc.c:1652 */ { AlterCollationStmt *n = makeNode(AlterCollationStmt); n->collname = (yyvsp[-2].list); (yyval.node) = (Node *)n; } #line 38390 "gram.c" /* yacc.c:1652 */ break; case 1491: #line 10256 "gram.y" /* yacc.c:1652 */ { AlterSystemStmt *n = makeNode(AlterSystemStmt); n->setstmt = (yyvsp[0].vsetstmt); (yyval.node) = (Node *)n; } #line 38400 "gram.c" /* yacc.c:1652 */ break; case 1492: #line 10262 "gram.y" /* yacc.c:1652 */ { AlterSystemStmt *n = makeNode(AlterSystemStmt); n->setstmt = (yyvsp[0].vsetstmt); (yyval.node) = (Node *)n; } #line 38410 "gram.c" /* yacc.c:1652 */ break; case 1493: #line 10278 "gram.y" /* yacc.c:1652 */ { CreateDomainStmt *n = makeNode(CreateDomainStmt); n->domainname = (yyvsp[-3].list); n->typeName = (yyvsp[-1].typnam); SplitColQualList((yyvsp[0].list), &n->constraints, &n->collClause, yyscanner); (yyval.node) = (Node *)n; } #line 38423 "gram.c" /* yacc.c:1652 */ break; case 1494: #line 10291 "gram.y" /* yacc.c:1652 */ { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'T'; n->typeName = (yyvsp[-1].list); n->def = (yyvsp[0].node); (yyval.node) = (Node *)n; } #line 38435 "gram.c" /* yacc.c:1652 */ break; case 1495: #line 10300 "gram.y" /* yacc.c:1652 */ { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'N'; n->typeName = (yyvsp[-3].list); (yyval.node) = (Node *)n; } #line 38446 "gram.c" /* yacc.c:1652 */ break; case 1496: #line 10308 "gram.y" /* yacc.c:1652 */ { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'O'; n->typeName = (yyvsp[-3].list); (yyval.node) = (Node *)n; } #line 38457 "gram.c" /* yacc.c:1652 */ break; case 1497: #line 10316 "gram.y" /* yacc.c:1652 */ { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'C'; n->typeName = (yyvsp[-2].list); n->def = (yyvsp[0].node); (yyval.node) = (Node *)n; } #line 38469 "gram.c" /* yacc.c:1652 */ break; case 1498: #line 10325 "gram.y" /* yacc.c:1652 */ { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'X'; n->typeName = (yyvsp[-4].list); n->name = (yyvsp[-1].str); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 38483 "gram.c" /* yacc.c:1652 */ break; case 1499: #line 10336 "gram.y" /* yacc.c:1652 */ { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'X'; n->typeName = (yyvsp[-6].list); n->name = (yyvsp[-1].str); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 38497 "gram.c" /* yacc.c:1652 */ break; case 1500: #line 10347 "gram.y" /* yacc.c:1652 */ { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'V'; n->typeName = (yyvsp[-3].list); n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 38509 "gram.c" /* yacc.c:1652 */ break; case 1501: #line 10356 "gram.y" /* yacc.c:1652 */ {} #line 38515 "gram.c" /* yacc.c:1652 */ break; case 1502: #line 10357 "gram.y" /* yacc.c:1652 */ {} #line 38521 "gram.c" /* yacc.c:1652 */ break; case 1503: #line 10369 "gram.y" /* yacc.c:1652 */ { AlterTSDictionaryStmt *n = makeNode(AlterTSDictionaryStmt); n->dictname = (yyvsp[-1].list); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 38532 "gram.c" /* yacc.c:1652 */ break; case 1504: #line 10379 "gram.y" /* yacc.c:1652 */ { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->kind = ALTER_TSCONFIG_ADD_MAPPING; n->cfgname = (yyvsp[-6].list); n->tokentype = (yyvsp[-2].list); n->dicts = (yyvsp[0].list); n->override = false; n->replace = false; (yyval.node) = (Node*)n; } #line 38547 "gram.c" /* yacc.c:1652 */ break; case 1505: #line 10390 "gram.y" /* yacc.c:1652 */ { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->kind = ALTER_TSCONFIG_ALTER_MAPPING_FOR_TOKEN; n->cfgname = (yyvsp[-6].list); n->tokentype = (yyvsp[-2].list); n->dicts = (yyvsp[0].list); n->override = true; n->replace = false; (yyval.node) = (Node*)n; } #line 38562 "gram.c" /* yacc.c:1652 */ break; case 1506: #line 10401 "gram.y" /* yacc.c:1652 */ { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->kind = ALTER_TSCONFIG_REPLACE_DICT; n->cfgname = (yyvsp[-6].list); n->tokentype = NIL; n->dicts = list_make2((yyvsp[-2].list),(yyvsp[0].list)); n->override = false; n->replace = true; (yyval.node) = (Node*)n; } #line 38577 "gram.c" /* yacc.c:1652 */ break; case 1507: #line 10412 "gram.y" /* yacc.c:1652 */ { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->kind = ALTER_TSCONFIG_REPLACE_DICT_FOR_TOKEN; n->cfgname = (yyvsp[-8].list); n->tokentype = (yyvsp[-4].list); n->dicts = list_make2((yyvsp[-2].list),(yyvsp[0].list)); n->override = false; n->replace = true; (yyval.node) = (Node*)n; } #line 38592 "gram.c" /* yacc.c:1652 */ break; case 1508: #line 10423 "gram.y" /* yacc.c:1652 */ { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->kind = ALTER_TSCONFIG_DROP_MAPPING; n->cfgname = (yyvsp[-4].list); n->tokentype = (yyvsp[0].list); n->missing_ok = false; (yyval.node) = (Node*)n; } #line 38605 "gram.c" /* yacc.c:1652 */ break; case 1509: #line 10432 "gram.y" /* yacc.c:1652 */ { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->kind = ALTER_TSCONFIG_DROP_MAPPING; n->cfgname = (yyvsp[-6].list); n->tokentype = (yyvsp[0].list); n->missing_ok = true; (yyval.node) = (Node*)n; } #line 38618 "gram.c" /* yacc.c:1652 */ break; case 1510: #line 10443 "gram.y" /* yacc.c:1652 */ {} #line 38624 "gram.c" /* yacc.c:1652 */ break; case 1511: #line 10444 "gram.y" /* yacc.c:1652 */ {} #line 38630 "gram.c" /* yacc.c:1652 */ break; case 1512: #line 10460 "gram.y" /* yacc.c:1652 */ { CreateConversionStmt *n = makeNode(CreateConversionStmt); n->conversion_name = (yyvsp[-6].list); n->for_encoding_name = (yyvsp[-4].str); n->to_encoding_name = (yyvsp[-2].str); n->func_name = (yyvsp[0].list); n->def = (yyvsp[-8].boolean); (yyval.node) = (Node *)n; } #line 38644 "gram.c" /* yacc.c:1652 */ break; case 1513: #line 10482 "gram.y" /* yacc.c:1652 */ { ClusterStmt *n = makeNode(ClusterStmt); n->relation = (yyvsp[-1].range); n->indexname = (yyvsp[0].str); n->verbose = (yyvsp[-2].boolean); (yyval.node) = (Node*)n; } #line 38656 "gram.c" /* yacc.c:1652 */ break; case 1514: #line 10490 "gram.y" /* yacc.c:1652 */ { ClusterStmt *n = makeNode(ClusterStmt); n->relation = NULL; n->indexname = NULL; n->verbose = (yyvsp[0].boolean); (yyval.node) = (Node*)n; } #line 38668 "gram.c" /* yacc.c:1652 */ break; case 1515: #line 10499 "gram.y" /* yacc.c:1652 */ { ClusterStmt *n = makeNode(ClusterStmt); n->relation = (yyvsp[0].range); n->indexname = (yyvsp[-2].str); n->verbose = (yyvsp[-3].boolean); (yyval.node) = (Node*)n; } #line 38680 "gram.c" /* yacc.c:1652 */ break; case 1516: #line 10509 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 38686 "gram.c" /* yacc.c:1652 */ break; case 1517: #line 10510 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 38692 "gram.c" /* yacc.c:1652 */ break; case 1518: #line 10523 "gram.y" /* yacc.c:1652 */ { VacuumStmt *n = makeNode(VacuumStmt); n->options = VACOPT_VACUUM; if ((yyvsp[-4].boolean)) n->options |= VACOPT_FULL; if ((yyvsp[-3].boolean)) n->options |= VACOPT_FREEZE; if ((yyvsp[-2].boolean)) n->options |= VACOPT_VERBOSE; if ((yyvsp[-1].boolean)) n->options |= VACOPT_ANALYZE; n->rels = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 38711 "gram.c" /* yacc.c:1652 */ break; case 1519: #line 10538 "gram.y" /* yacc.c:1652 */ { VacuumStmt *n = makeNode(VacuumStmt); n->options = VACOPT_VACUUM | (yyvsp[-2].ival); n->rels = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 38722 "gram.c" /* yacc.c:1652 */ break; case 1520: #line 10547 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[0].ival); } #line 38728 "gram.c" /* yacc.c:1652 */ break; case 1521: #line 10548 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[-2].ival) | (yyvsp[0].ival); } #line 38734 "gram.c" /* yacc.c:1652 */ break; case 1522: #line 10552 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = VACOPT_ANALYZE; } #line 38740 "gram.c" /* yacc.c:1652 */ break; case 1523: #line 10553 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = VACOPT_VERBOSE; } #line 38746 "gram.c" /* yacc.c:1652 */ break; case 1524: #line 10554 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = VACOPT_FREEZE; } #line 38752 "gram.c" /* yacc.c:1652 */ break; case 1525: #line 10555 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = VACOPT_FULL; } #line 38758 "gram.c" /* yacc.c:1652 */ break; case 1526: #line 10557 "gram.y" /* yacc.c:1652 */ { if (strcmp((yyvsp[0].str), "disable_page_skipping") == 0) (yyval.ival) = VACOPT_DISABLE_PAGE_SKIPPING; else ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("unrecognized VACUUM option \"%s\"", (yyvsp[0].str)), parser_errposition((yylsp[0])))); } #line 38772 "gram.c" /* yacc.c:1652 */ break; case 1527: #line 10569 "gram.y" /* yacc.c:1652 */ { VacuumStmt *n = makeNode(VacuumStmt); n->options = VACOPT_ANALYZE; if ((yyvsp[-1].boolean)) n->options |= VACOPT_VERBOSE; n->rels = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 38785 "gram.c" /* yacc.c:1652 */ break; case 1528: #line 10578 "gram.y" /* yacc.c:1652 */ { VacuumStmt *n = makeNode(VacuumStmt); n->options = VACOPT_ANALYZE | (yyvsp[-2].ival); n->rels = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 38796 "gram.c" /* yacc.c:1652 */ break; case 1529: #line 10587 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[0].ival); } #line 38802 "gram.c" /* yacc.c:1652 */ break; case 1530: #line 10588 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[-2].ival) | (yyvsp[0].ival); } #line 38808 "gram.c" /* yacc.c:1652 */ break; case 1531: #line 10592 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = VACOPT_VERBOSE; } #line 38814 "gram.c" /* yacc.c:1652 */ break; case 1532: #line 10596 "gram.y" /* yacc.c:1652 */ {} #line 38820 "gram.c" /* yacc.c:1652 */ break; case 1533: #line 10597 "gram.y" /* yacc.c:1652 */ {} #line 38826 "gram.c" /* yacc.c:1652 */ break; case 1534: #line 10601 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 38832 "gram.c" /* yacc.c:1652 */ break; case 1535: #line 10602 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 38838 "gram.c" /* yacc.c:1652 */ break; case 1536: #line 10606 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 38844 "gram.c" /* yacc.c:1652 */ break; case 1537: #line 10607 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 38850 "gram.c" /* yacc.c:1652 */ break; case 1538: #line 10610 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 38856 "gram.c" /* yacc.c:1652 */ break; case 1539: #line 10611 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 38862 "gram.c" /* yacc.c:1652 */ break; case 1540: #line 10614 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 38868 "gram.c" /* yacc.c:1652 */ break; case 1541: #line 10615 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 38874 "gram.c" /* yacc.c:1652 */ break; case 1542: #line 10619 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 38880 "gram.c" /* yacc.c:1652 */ break; case 1543: #line 10620 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 38886 "gram.c" /* yacc.c:1652 */ break; case 1544: #line 10625 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeVacuumRelation((yyvsp[-1].range), InvalidOid, (yyvsp[0].list)); } #line 38894 "gram.c" /* yacc.c:1652 */ break; case 1545: #line 10632 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 38900 "gram.c" /* yacc.c:1652 */ break; case 1546: #line 10634 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 38906 "gram.c" /* yacc.c:1652 */ break; case 1547: #line 10638 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 38912 "gram.c" /* yacc.c:1652 */ break; case 1548: #line 10639 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 38918 "gram.c" /* yacc.c:1652 */ break; case 1549: #line 10653 "gram.y" /* yacc.c:1652 */ { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[0].node); n->options = NIL; (yyval.node) = (Node *) n; } #line 38929 "gram.c" /* yacc.c:1652 */ break; case 1550: #line 10660 "gram.y" /* yacc.c:1652 */ { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[0].node); n->options = list_make1(makeDefElem("analyze", NULL, (yylsp[-2]))); if ((yyvsp[-1].boolean)) n->options = lappend(n->options, makeDefElem("verbose", NULL, (yylsp[-1]))); (yyval.node) = (Node *) n; } #line 38943 "gram.c" /* yacc.c:1652 */ break; case 1551: #line 10670 "gram.y" /* yacc.c:1652 */ { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[0].node); n->options = list_make1(makeDefElem("verbose", NULL, (yylsp[-1]))); (yyval.node) = (Node *) n; } #line 38954 "gram.c" /* yacc.c:1652 */ break; case 1552: #line 10677 "gram.y" /* yacc.c:1652 */ { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[0].node); n->options = (yyvsp[-2].list); (yyval.node) = (Node *) n; } #line 38965 "gram.c" /* yacc.c:1652 */ break; case 1562: #line 10699 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 38973 "gram.c" /* yacc.c:1652 */ break; case 1563: #line 10703 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } #line 38981 "gram.c" /* yacc.c:1652 */ break; case 1564: #line 10710 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); } #line 38989 "gram.c" /* yacc.c:1652 */ break; case 1565: #line 10716 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 38995 "gram.c" /* yacc.c:1652 */ break; case 1566: #line 10717 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "analyze"; } #line 39001 "gram.c" /* yacc.c:1652 */ break; case 1567: #line 10721 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } #line 39007 "gram.c" /* yacc.c:1652 */ break; case 1568: #line 10722 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) (yyvsp[0].value); } #line 39013 "gram.c" /* yacc.c:1652 */ break; case 1569: #line 10723 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 39019 "gram.c" /* yacc.c:1652 */ break; case 1570: #line 10734 "gram.y" /* yacc.c:1652 */ { PrepareStmt *n = makeNode(PrepareStmt); n->name = (yyvsp[-3].str); n->argtypes = (yyvsp[-2].list); n->query = (yyvsp[0].node); (yyval.node) = (Node *) n; } #line 39031 "gram.c" /* yacc.c:1652 */ break; case 1571: #line 10743 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 39037 "gram.c" /* yacc.c:1652 */ break; case 1572: #line 10744 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 39043 "gram.c" /* yacc.c:1652 */ break; case 1577: #line 10762 "gram.y" /* yacc.c:1652 */ { ExecuteStmt *n = makeNode(ExecuteStmt); n->name = (yyvsp[-1].str); n->params = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 39054 "gram.c" /* yacc.c:1652 */ break; case 1578: #line 10770 "gram.y" /* yacc.c:1652 */ { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ExecuteStmt *n = makeNode(ExecuteStmt); n->name = (yyvsp[-2].str); n->params = (yyvsp[-1].list); ctas->query = (Node *) n; ctas->into = (yyvsp[-5].into); ctas->relkind = OBJECT_TABLE; ctas->is_select_into = false; ctas->if_not_exists = false; /* cram additional flags into the IntoClause */ (yyvsp[-5].into)->rel->relpersistence = (yyvsp[-7].ival); (yyvsp[-5].into)->skipData = !((yyvsp[0].boolean)); (yyval.node) = (Node *) ctas; } #line 39074 "gram.c" /* yacc.c:1652 */ break; case 1579: #line 10787 "gram.y" /* yacc.c:1652 */ { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ExecuteStmt *n = makeNode(ExecuteStmt); n->name = (yyvsp[-2].str); n->params = (yyvsp[-1].list); ctas->query = (Node *) n; ctas->into = (yyvsp[-5].into); ctas->relkind = OBJECT_TABLE; ctas->is_select_into = false; ctas->if_not_exists = true; /* cram additional flags into the IntoClause */ (yyvsp[-5].into)->rel->relpersistence = (yyvsp[-10].ival); (yyvsp[-5].into)->skipData = !((yyvsp[0].boolean)); (yyval.node) = (Node *) ctas; } #line 39094 "gram.c" /* yacc.c:1652 */ break; case 1580: #line 10804 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 39100 "gram.c" /* yacc.c:1652 */ break; case 1581: #line 10805 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 39106 "gram.c" /* yacc.c:1652 */ break; case 1582: #line 10816 "gram.y" /* yacc.c:1652 */ { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 39116 "gram.c" /* yacc.c:1652 */ break; case 1583: #line 10822 "gram.y" /* yacc.c:1652 */ { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 39126 "gram.c" /* yacc.c:1652 */ break; case 1584: #line 10828 "gram.y" /* yacc.c:1652 */ { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = NULL; (yyval.node) = (Node *) n; } #line 39136 "gram.c" /* yacc.c:1652 */ break; case 1585: #line 10834 "gram.y" /* yacc.c:1652 */ { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = NULL; (yyval.node) = (Node *) n; } #line 39146 "gram.c" /* yacc.c:1652 */ break; case 1586: #line 10851 "gram.y" /* yacc.c:1652 */ { (yyvsp[-2].istmt)->relation = (yyvsp[-3].range); (yyvsp[-2].istmt)->onConflictClause = (yyvsp[-1].onconflict); (yyvsp[-2].istmt)->returningList = (yyvsp[0].list); (yyvsp[-2].istmt)->withClause = (yyvsp[-6].with); (yyval.node) = (Node *) (yyvsp[-2].istmt); } #line 39158 "gram.c" /* yacc.c:1652 */ break; case 1587: #line 10868 "gram.y" /* yacc.c:1652 */ { (yyval.range) = (yyvsp[0].range); } #line 39166 "gram.c" /* yacc.c:1652 */ break; case 1588: #line 10872 "gram.y" /* yacc.c:1652 */ { (yyvsp[-2].range)->alias = makeAlias((yyvsp[0].str), NIL); (yyval.range) = (yyvsp[-2].range); } #line 39175 "gram.c" /* yacc.c:1652 */ break; case 1589: #line 10880 "gram.y" /* yacc.c:1652 */ { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = NIL; (yyval.istmt)->selectStmt = (yyvsp[0].node); } #line 39185 "gram.c" /* yacc.c:1652 */ break; case 1590: #line 10886 "gram.y" /* yacc.c:1652 */ { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = NIL; (yyval.istmt)->override = (yyvsp[-2].ival); (yyval.istmt)->selectStmt = (yyvsp[0].node); } #line 39196 "gram.c" /* yacc.c:1652 */ break; case 1591: #line 10893 "gram.y" /* yacc.c:1652 */ { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = (yyvsp[-2].list); (yyval.istmt)->selectStmt = (yyvsp[0].node); } #line 39206 "gram.c" /* yacc.c:1652 */ break; case 1592: #line 10899 "gram.y" /* yacc.c:1652 */ { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = (yyvsp[-5].list); (yyval.istmt)->override = (yyvsp[-2].ival); (yyval.istmt)->selectStmt = (yyvsp[0].node); } #line 39217 "gram.c" /* yacc.c:1652 */ break; case 1593: #line 10906 "gram.y" /* yacc.c:1652 */ { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = NIL; (yyval.istmt)->selectStmt = NULL; } #line 39227 "gram.c" /* yacc.c:1652 */ break; case 1594: #line 10914 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = OVERRIDING_USER_VALUE; } #line 39233 "gram.c" /* yacc.c:1652 */ break; case 1595: #line 10915 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = OVERRIDING_SYSTEM_VALUE; } #line 39239 "gram.c" /* yacc.c:1652 */ break; case 1596: #line 10920 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].target)); } #line 39245 "gram.c" /* yacc.c:1652 */ break; case 1597: #line 10922 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); } #line 39251 "gram.c" /* yacc.c:1652 */ break; case 1598: #line 10927 "gram.y" /* yacc.c:1652 */ { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[-1].str); (yyval.target)->indirection = check_indirection((yyvsp[0].list), yyscanner); (yyval.target)->val = NULL; (yyval.target)->location = (yylsp[-1]); } #line 39263 "gram.c" /* yacc.c:1652 */ break; case 1599: #line 10938 "gram.y" /* yacc.c:1652 */ { (yyval.onconflict) = makeNode(OnConflictClause); (yyval.onconflict)->action = ONCONFLICT_UPDATE; (yyval.onconflict)->infer = (yyvsp[-5].infer); (yyval.onconflict)->targetList = (yyvsp[-1].list); (yyval.onconflict)->whereClause = (yyvsp[0].node); (yyval.onconflict)->location = (yylsp[-7]); } #line 39276 "gram.c" /* yacc.c:1652 */ break; case 1600: #line 10948 "gram.y" /* yacc.c:1652 */ { (yyval.onconflict) = makeNode(OnConflictClause); (yyval.onconflict)->action = ONCONFLICT_NOTHING; (yyval.onconflict)->infer = (yyvsp[-2].infer); (yyval.onconflict)->targetList = NIL; (yyval.onconflict)->whereClause = NULL; (yyval.onconflict)->location = (yylsp[-4]); } #line 39289 "gram.c" /* yacc.c:1652 */ break; case 1601: #line 10957 "gram.y" /* yacc.c:1652 */ { (yyval.onconflict) = NULL; } #line 39297 "gram.c" /* yacc.c:1652 */ break; case 1602: #line 10964 "gram.y" /* yacc.c:1652 */ { (yyval.infer) = makeNode(InferClause); (yyval.infer)->indexElems = (yyvsp[-2].list); (yyval.infer)->whereClause = (yyvsp[0].node); (yyval.infer)->conname = NULL; (yyval.infer)->location = (yylsp[-3]); } #line 39309 "gram.c" /* yacc.c:1652 */ break; case 1603: #line 10973 "gram.y" /* yacc.c:1652 */ { (yyval.infer) = makeNode(InferClause); (yyval.infer)->indexElems = NIL; (yyval.infer)->whereClause = NULL; (yyval.infer)->conname = (yyvsp[0].str); (yyval.infer)->location = (yylsp[-2]); } #line 39321 "gram.c" /* yacc.c:1652 */ break; case 1604: #line 10981 "gram.y" /* yacc.c:1652 */ { (yyval.infer) = NULL; } #line 39329 "gram.c" /* yacc.c:1652 */ break; case 1605: #line 10987 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 39335 "gram.c" /* yacc.c:1652 */ break; case 1606: #line 10988 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 39341 "gram.c" /* yacc.c:1652 */ break; case 1607: #line 11001 "gram.y" /* yacc.c:1652 */ { DeleteStmt *n = makeNode(DeleteStmt); n->relation = (yyvsp[-3].range); n->usingClause = (yyvsp[-2].list); n->whereClause = (yyvsp[-1].node); n->returningList = (yyvsp[0].list); n->withClause = (yyvsp[-6].with); (yyval.node) = (Node *)n; } #line 39355 "gram.c" /* yacc.c:1652 */ break; case 1608: #line 11013 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 39361 "gram.c" /* yacc.c:1652 */ break; case 1609: #line 11014 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 39367 "gram.c" /* yacc.c:1652 */ break; case 1610: #line 11026 "gram.y" /* yacc.c:1652 */ { LockStmt *n = makeNode(LockStmt); n->relations = (yyvsp[-2].list); n->mode = (yyvsp[-1].ival); n->nowait = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } #line 39380 "gram.c" /* yacc.c:1652 */ break; case 1611: #line 11036 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[-1].ival); } #line 39386 "gram.c" /* yacc.c:1652 */ break; case 1612: #line 11037 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = AccessExclusiveLock; } #line 39392 "gram.c" /* yacc.c:1652 */ break; case 1613: #line 11040 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = AccessShareLock; } #line 39398 "gram.c" /* yacc.c:1652 */ break; case 1614: #line 11041 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = RowShareLock; } #line 39404 "gram.c" /* yacc.c:1652 */ break; case 1615: #line 11042 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = RowExclusiveLock; } #line 39410 "gram.c" /* yacc.c:1652 */ break; case 1616: #line 11043 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = ShareUpdateExclusiveLock; } #line 39416 "gram.c" /* yacc.c:1652 */ break; case 1617: #line 11044 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = ShareLock; } #line 39422 "gram.c" /* yacc.c:1652 */ break; case 1618: #line 11045 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = ShareRowExclusiveLock; } #line 39428 "gram.c" /* yacc.c:1652 */ break; case 1619: #line 11046 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = ExclusiveLock; } #line 39434 "gram.c" /* yacc.c:1652 */ break; case 1620: #line 11047 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = AccessExclusiveLock; } #line 39440 "gram.c" /* yacc.c:1652 */ break; case 1621: #line 11050 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 39446 "gram.c" /* yacc.c:1652 */ break; case 1622: #line 11051 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 39452 "gram.c" /* yacc.c:1652 */ break; case 1623: #line 11055 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = LockWaitError; } #line 39458 "gram.c" /* yacc.c:1652 */ break; case 1624: #line 11056 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = LockWaitSkip; } #line 39464 "gram.c" /* yacc.c:1652 */ break; case 1625: #line 11057 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = LockWaitBlock; } #line 39470 "gram.c" /* yacc.c:1652 */ break; case 1626: #line 11073 "gram.y" /* yacc.c:1652 */ { UpdateStmt *n = makeNode(UpdateStmt); n->relation = (yyvsp[-5].range); n->targetList = (yyvsp[-3].list); n->fromClause = (yyvsp[-2].list); n->whereClause = (yyvsp[-1].node); n->returningList = (yyvsp[0].list); n->withClause = (yyvsp[-7].with); (yyval.node) = (Node *)n; } #line 39485 "gram.c" /* yacc.c:1652 */ break; case 1627: #line 11086 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 39491 "gram.c" /* yacc.c:1652 */ break; case 1628: #line 11087 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_concat((yyvsp[-2].list),(yyvsp[0].list)); } #line 39497 "gram.c" /* yacc.c:1652 */ break; case 1629: #line 11092 "gram.y" /* yacc.c:1652 */ { (yyvsp[-2].target)->val = (Node *) (yyvsp[0].node); (yyval.list) = list_make1((yyvsp[-2].target)); } #line 39506 "gram.c" /* yacc.c:1652 */ break; case 1630: #line 11097 "gram.y" /* yacc.c:1652 */ { int ncolumns = list_length((yyvsp[-3].list)); int i = 1; ListCell *col_cell; /* Create a MultiAssignRef source for each target */ foreach(col_cell, (yyvsp[-3].list)) { ResTarget *res_col = (ResTarget *) lfirst(col_cell); MultiAssignRef *r = makeNode(MultiAssignRef); r->source = (Node *) (yyvsp[0].node); r->colno = i; r->ncolumns = ncolumns; res_col->val = (Node *) r; i++; } (yyval.list) = (yyvsp[-3].list); } #line 39531 "gram.c" /* yacc.c:1652 */ break; case 1631: #line 11121 "gram.y" /* yacc.c:1652 */ { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[-1].str); (yyval.target)->indirection = check_indirection((yyvsp[0].list), yyscanner); (yyval.target)->val = NULL; /* upper production sets this */ (yyval.target)->location = (yylsp[-1]); } #line 39543 "gram.c" /* yacc.c:1652 */ break; case 1632: #line 11131 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].target)); } #line 39549 "gram.c" /* yacc.c:1652 */ break; case 1633: #line 11132 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list),(yyvsp[0].target)); } #line 39555 "gram.c" /* yacc.c:1652 */ break; case 1634: #line 11143 "gram.y" /* yacc.c:1652 */ { DeclareCursorStmt *n = makeNode(DeclareCursorStmt); n->portalname = (yyvsp[-5].str); /* currently we always set FAST_PLAN option */ n->options = (yyvsp[-4].ival) | (yyvsp[-2].ival) | CURSOR_OPT_FAST_PLAN; n->query = (yyvsp[0].node); (yyval.node) = (Node *)n; } #line 39568 "gram.c" /* yacc.c:1652 */ break; case 1635: #line 11153 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 39574 "gram.c" /* yacc.c:1652 */ break; case 1636: #line 11156 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 39580 "gram.c" /* yacc.c:1652 */ break; case 1637: #line 11157 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[-2].ival) | CURSOR_OPT_NO_SCROLL; } #line 39586 "gram.c" /* yacc.c:1652 */ break; case 1638: #line 11158 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_SCROLL; } #line 39592 "gram.c" /* yacc.c:1652 */ break; case 1639: #line 11159 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_BINARY; } #line 39598 "gram.c" /* yacc.c:1652 */ break; case 1640: #line 11160 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_INSENSITIVE; } #line 39604 "gram.c" /* yacc.c:1652 */ break; case 1641: #line 11163 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 39610 "gram.c" /* yacc.c:1652 */ break; case 1642: #line 11164 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CURSOR_OPT_HOLD; } #line 39616 "gram.c" /* yacc.c:1652 */ break; case 1643: #line 11165 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 39622 "gram.c" /* yacc.c:1652 */ break; case 1646: #line 11218 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[-1].node); } #line 39628 "gram.c" /* yacc.c:1652 */ break; case 1647: #line 11219 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[-1].node); } #line 39634 "gram.c" /* yacc.c:1652 */ break; case 1648: #line 11234 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 39640 "gram.c" /* yacc.c:1652 */ break; case 1649: #line 11236 "gram.y" /* yacc.c:1652 */ { insertSelectOptions((SelectStmt *) (yyvsp[-1].node), (yyvsp[0].list), NIL, NULL, NULL, NULL, yyscanner); (yyval.node) = (yyvsp[-1].node); } #line 39651 "gram.c" /* yacc.c:1652 */ break; case 1650: #line 11243 "gram.y" /* yacc.c:1652 */ { insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[-1].list), list_nth((yyvsp[0].list), 0), list_nth((yyvsp[0].list), 1), NULL, yyscanner); (yyval.node) = (yyvsp[-3].node); } #line 39663 "gram.c" /* yacc.c:1652 */ break; case 1651: #line 11251 "gram.y" /* yacc.c:1652 */ { insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[0].list), list_nth((yyvsp[-1].list), 0), list_nth((yyvsp[-1].list), 1), NULL, yyscanner); (yyval.node) = (yyvsp[-3].node); } #line 39675 "gram.c" /* yacc.c:1652 */ break; case 1652: #line 11259 "gram.y" /* yacc.c:1652 */ { insertSelectOptions((SelectStmt *) (yyvsp[0].node), NULL, NIL, NULL, NULL, (yyvsp[-1].with), yyscanner); (yyval.node) = (yyvsp[0].node); } #line 39687 "gram.c" /* yacc.c:1652 */ break; case 1653: #line 11267 "gram.y" /* yacc.c:1652 */ { insertSelectOptions((SelectStmt *) (yyvsp[-1].node), (yyvsp[0].list), NIL, NULL, NULL, (yyvsp[-2].with), yyscanner); (yyval.node) = (yyvsp[-1].node); } #line 39699 "gram.c" /* yacc.c:1652 */ break; case 1654: #line 11275 "gram.y" /* yacc.c:1652 */ { insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[-1].list), list_nth((yyvsp[0].list), 0), list_nth((yyvsp[0].list), 1), (yyvsp[-4].with), yyscanner); (yyval.node) = (yyvsp[-3].node); } #line 39711 "gram.c" /* yacc.c:1652 */ break; case 1655: #line 11283 "gram.y" /* yacc.c:1652 */ { insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[0].list), list_nth((yyvsp[-1].list), 0), list_nth((yyvsp[-1].list), 1), (yyvsp[-4].with), yyscanner); (yyval.node) = (yyvsp[-3].node); } #line 39723 "gram.c" /* yacc.c:1652 */ break; case 1656: #line 11293 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 39729 "gram.c" /* yacc.c:1652 */ break; case 1657: #line 11294 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 39735 "gram.c" /* yacc.c:1652 */ break; case 1658: #line 11324 "gram.y" /* yacc.c:1652 */ { SelectStmt *n = makeNode(SelectStmt); n->targetList = (yyvsp[-6].list); n->intoClause = (yyvsp[-5].into); n->fromClause = (yyvsp[-4].list); n->whereClause = (yyvsp[-3].node); n->groupClause = (yyvsp[-2].list); n->havingClause = (yyvsp[-1].node); n->windowClause = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 39751 "gram.c" /* yacc.c:1652 */ break; case 1659: #line 11338 "gram.y" /* yacc.c:1652 */ { SelectStmt *n = makeNode(SelectStmt); n->distinctClause = (yyvsp[-7].list); n->targetList = (yyvsp[-6].list); n->intoClause = (yyvsp[-5].into); n->fromClause = (yyvsp[-4].list); n->whereClause = (yyvsp[-3].node); n->groupClause = (yyvsp[-2].list); n->havingClause = (yyvsp[-1].node); n->windowClause = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 39768 "gram.c" /* yacc.c:1652 */ break; case 1660: #line 11350 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 39774 "gram.c" /* yacc.c:1652 */ break; case 1661: #line 11352 "gram.y" /* yacc.c:1652 */ { /* same as SELECT * FROM relation_expr */ ColumnRef *cr = makeNode(ColumnRef); ResTarget *rt = makeNode(ResTarget); SelectStmt *n = makeNode(SelectStmt); cr->fields = list_make1(makeNode(A_Star)); cr->location = -1; rt->name = NULL; rt->indirection = NIL; rt->val = (Node *)cr; rt->location = -1; n->targetList = list_make1(rt); n->fromClause = list_make1((yyvsp[0].range)); (yyval.node) = (Node *)n; } #line 39797 "gram.c" /* yacc.c:1652 */ break; case 1662: #line 11371 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSetOp(SETOP_UNION, (yyvsp[-1].boolean), (yyvsp[-3].node), (yyvsp[0].node)); } #line 39805 "gram.c" /* yacc.c:1652 */ break; case 1663: #line 11375 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSetOp(SETOP_INTERSECT, (yyvsp[-1].boolean), (yyvsp[-3].node), (yyvsp[0].node)); } #line 39813 "gram.c" /* yacc.c:1652 */ break; case 1664: #line 11379 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSetOp(SETOP_EXCEPT, (yyvsp[-1].boolean), (yyvsp[-3].node), (yyvsp[0].node)); } #line 39821 "gram.c" /* yacc.c:1652 */ break; case 1665: #line 11396 "gram.y" /* yacc.c:1652 */ { (yyval.with) = makeNode(WithClause); (yyval.with)->ctes = (yyvsp[0].list); (yyval.with)->recursive = false; (yyval.with)->location = (yylsp[-1]); } #line 39832 "gram.c" /* yacc.c:1652 */ break; case 1666: #line 11403 "gram.y" /* yacc.c:1652 */ { (yyval.with) = makeNode(WithClause); (yyval.with)->ctes = (yyvsp[0].list); (yyval.with)->recursive = false; (yyval.with)->location = (yylsp[-1]); } #line 39843 "gram.c" /* yacc.c:1652 */ break; case 1667: #line 11410 "gram.y" /* yacc.c:1652 */ { (yyval.with) = makeNode(WithClause); (yyval.with)->ctes = (yyvsp[0].list); (yyval.with)->recursive = true; (yyval.with)->location = (yylsp[-2]); } #line 39854 "gram.c" /* yacc.c:1652 */ break; case 1668: #line 11419 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 39860 "gram.c" /* yacc.c:1652 */ break; case 1669: #line 11420 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 39866 "gram.c" /* yacc.c:1652 */ break; case 1670: #line 11424 "gram.y" /* yacc.c:1652 */ { CommonTableExpr *n = makeNode(CommonTableExpr); n->ctename = (yyvsp[-5].str); n->aliascolnames = (yyvsp[-4].list); n->ctequery = (yyvsp[-1].node); n->location = (yylsp[-5]); (yyval.node) = (Node *) n; } #line 39879 "gram.c" /* yacc.c:1652 */ break; case 1671: #line 11435 "gram.y" /* yacc.c:1652 */ { (yyval.with) = (yyvsp[0].with); } #line 39885 "gram.c" /* yacc.c:1652 */ break; case 1672: #line 11436 "gram.y" /* yacc.c:1652 */ { (yyval.with) = NULL; } #line 39891 "gram.c" /* yacc.c:1652 */ break; case 1673: #line 11441 "gram.y" /* yacc.c:1652 */ { (yyval.into) = makeNode(IntoClause); (yyval.into)->rel = (yyvsp[0].range); (yyval.into)->colNames = NIL; (yyval.into)->options = NIL; (yyval.into)->onCommit = ONCOMMIT_NOOP; (yyval.into)->tableSpaceName = NULL; (yyval.into)->viewQuery = NULL; (yyval.into)->skipData = false; } #line 39906 "gram.c" /* yacc.c:1652 */ break; case 1674: #line 11452 "gram.y" /* yacc.c:1652 */ { (yyval.into) = NULL; } #line 39912 "gram.c" /* yacc.c:1652 */ break; case 1675: #line 11461 "gram.y" /* yacc.c:1652 */ { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; } #line 39921 "gram.c" /* yacc.c:1652 */ break; case 1676: #line 11466 "gram.y" /* yacc.c:1652 */ { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; } #line 39930 "gram.c" /* yacc.c:1652 */ break; case 1677: #line 11471 "gram.y" /* yacc.c:1652 */ { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; } #line 39939 "gram.c" /* yacc.c:1652 */ break; case 1678: #line 11476 "gram.y" /* yacc.c:1652 */ { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; } #line 39948 "gram.c" /* yacc.c:1652 */ break; case 1679: #line 11481 "gram.y" /* yacc.c:1652 */ { ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition((yylsp[-3])))); (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; } #line 39960 "gram.c" /* yacc.c:1652 */ break; case 1680: #line 11489 "gram.y" /* yacc.c:1652 */ { ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition((yylsp[-3])))); (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; } #line 39972 "gram.c" /* yacc.c:1652 */ break; case 1681: #line 11497 "gram.y" /* yacc.c:1652 */ { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_UNLOGGED; } #line 39981 "gram.c" /* yacc.c:1652 */ break; case 1682: #line 11502 "gram.y" /* yacc.c:1652 */ { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; } #line 39990 "gram.c" /* yacc.c:1652 */ break; case 1683: #line 11507 "gram.y" /* yacc.c:1652 */ { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; } #line 39999 "gram.c" /* yacc.c:1652 */ break; case 1684: #line 11513 "gram.y" /* yacc.c:1652 */ {} #line 40005 "gram.c" /* yacc.c:1652 */ break; case 1685: #line 11514 "gram.y" /* yacc.c:1652 */ {} #line 40011 "gram.c" /* yacc.c:1652 */ break; case 1686: #line 11518 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 40017 "gram.c" /* yacc.c:1652 */ break; case 1687: #line 11519 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 40023 "gram.c" /* yacc.c:1652 */ break; case 1688: #line 11520 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 40029 "gram.c" /* yacc.c:1652 */ break; case 1689: #line 11527 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(NIL); } #line 40035 "gram.c" /* yacc.c:1652 */ break; case 1690: #line 11528 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 40041 "gram.c" /* yacc.c:1652 */ break; case 1691: #line 11532 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL;} #line 40047 "gram.c" /* yacc.c:1652 */ break; case 1692: #line 11533 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 40053 "gram.c" /* yacc.c:1652 */ break; case 1693: #line 11537 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list);} #line 40059 "gram.c" /* yacc.c:1652 */ break; case 1694: #line 11538 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 40065 "gram.c" /* yacc.c:1652 */ break; case 1695: #line 11542 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 40071 "gram.c" /* yacc.c:1652 */ break; case 1696: #line 11546 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].sortby)); } #line 40077 "gram.c" /* yacc.c:1652 */ break; case 1697: #line 11547 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].sortby)); } #line 40083 "gram.c" /* yacc.c:1652 */ break; case 1698: #line 11551 "gram.y" /* yacc.c:1652 */ { (yyval.sortby) = makeNode(SortBy); (yyval.sortby)->node = (yyvsp[-3].node); (yyval.sortby)->sortby_dir = SORTBY_USING; (yyval.sortby)->sortby_nulls = (yyvsp[0].ival); (yyval.sortby)->useOp = (yyvsp[-1].list); (yyval.sortby)->location = (yylsp[-1]); } #line 40096 "gram.c" /* yacc.c:1652 */ break; case 1699: #line 11560 "gram.y" /* yacc.c:1652 */ { (yyval.sortby) = makeNode(SortBy); (yyval.sortby)->node = (yyvsp[-2].node); (yyval.sortby)->sortby_dir = (yyvsp[-1].ival); (yyval.sortby)->sortby_nulls = (yyvsp[0].ival); (yyval.sortby)->useOp = NIL; (yyval.sortby)->location = -1; /* no operator */ } #line 40109 "gram.c" /* yacc.c:1652 */ break; case 1700: #line 11572 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[0].node), (yyvsp[-1].node)); } #line 40115 "gram.c" /* yacc.c:1652 */ break; case 1701: #line 11573 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[-1].node), (yyvsp[0].node)); } #line 40121 "gram.c" /* yacc.c:1652 */ break; case 1702: #line 11574 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(NULL, (yyvsp[0].node)); } #line 40127 "gram.c" /* yacc.c:1652 */ break; case 1703: #line 11575 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[0].node), NULL); } #line 40133 "gram.c" /* yacc.c:1652 */ break; case 1704: #line 11579 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 40139 "gram.c" /* yacc.c:1652 */ break; case 1705: #line 11580 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(NULL,NULL); } #line 40145 "gram.c" /* yacc.c:1652 */ break; case 1706: #line 11585 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40151 "gram.c" /* yacc.c:1652 */ break; case 1707: #line 11587 "gram.y" /* yacc.c:1652 */ { /* Disabled because it was too confusing, bjm 2002-02-18 */ ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("LIMIT #,# syntax is not supported"), errhint("Use separate LIMIT and OFFSET clauses."), parser_errposition((yylsp[-3])))); } #line 40164 "gram.c" /* yacc.c:1652 */ break; case 1708: #line 11603 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[-2].node); } #line 40170 "gram.c" /* yacc.c:1652 */ break; case 1709: #line 11605 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeIntConst(1, -1); } #line 40176 "gram.c" /* yacc.c:1652 */ break; case 1710: #line 11610 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40182 "gram.c" /* yacc.c:1652 */ break; case 1711: #line 11613 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[-1].node); } #line 40188 "gram.c" /* yacc.c:1652 */ break; case 1712: #line 11617 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40194 "gram.c" /* yacc.c:1652 */ break; case 1713: #line 11619 "gram.y" /* yacc.c:1652 */ { /* LIMIT ALL is represented as a NULL constant */ (yyval.node) = makeNullAConst((yylsp[0])); } #line 40203 "gram.c" /* yacc.c:1652 */ break; case 1714: #line 11626 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40209 "gram.c" /* yacc.c:1652 */ break; case 1715: #line 11646 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40215 "gram.c" /* yacc.c:1652 */ break; case 1716: #line 11648 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); } #line 40221 "gram.c" /* yacc.c:1652 */ break; case 1717: #line 11650 "gram.y" /* yacc.c:1652 */ { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); } #line 40227 "gram.c" /* yacc.c:1652 */ break; case 1718: #line 11654 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeIntConst((yyvsp[0].ival),(yylsp[0])); } #line 40233 "gram.c" /* yacc.c:1652 */ break; case 1719: #line 11655 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeFloatConst((yyvsp[0].str),(yylsp[0])); } #line 40239 "gram.c" /* yacc.c:1652 */ break; case 1720: #line 11659 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 40245 "gram.c" /* yacc.c:1652 */ break; case 1721: #line 11660 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 40251 "gram.c" /* yacc.c:1652 */ break; case 1722: #line 11663 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 40257 "gram.c" /* yacc.c:1652 */ break; case 1723: #line 11664 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 40263 "gram.c" /* yacc.c:1652 */ break; case 1724: #line 11689 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 40269 "gram.c" /* yacc.c:1652 */ break; case 1725: #line 11690 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 40275 "gram.c" /* yacc.c:1652 */ break; case 1726: #line 11694 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 40281 "gram.c" /* yacc.c:1652 */ break; case 1727: #line 11695 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list),(yyvsp[0].node)); } #line 40287 "gram.c" /* yacc.c:1652 */ break; case 1728: #line 11699 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40293 "gram.c" /* yacc.c:1652 */ break; case 1729: #line 11700 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40299 "gram.c" /* yacc.c:1652 */ break; case 1730: #line 11701 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40305 "gram.c" /* yacc.c:1652 */ break; case 1731: #line 11702 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40311 "gram.c" /* yacc.c:1652 */ break; case 1732: #line 11703 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40317 "gram.c" /* yacc.c:1652 */ break; case 1733: #line 11708 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_EMPTY, NIL, (yylsp[-1])); } #line 40325 "gram.c" /* yacc.c:1652 */ break; case 1734: #line 11721 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_ROLLUP, (yyvsp[-1].list), (yylsp[-3])); } #line 40333 "gram.c" /* yacc.c:1652 */ break; case 1735: #line 11728 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_CUBE, (yyvsp[-1].list), (yylsp[-3])); } #line 40341 "gram.c" /* yacc.c:1652 */ break; case 1736: #line 11735 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_SETS, (yyvsp[-1].list), (yylsp[-4])); } #line 40349 "gram.c" /* yacc.c:1652 */ break; case 1737: #line 11741 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40355 "gram.c" /* yacc.c:1652 */ break; case 1738: #line 11742 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 40361 "gram.c" /* yacc.c:1652 */ break; case 1739: #line 11746 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 40367 "gram.c" /* yacc.c:1652 */ break; case 1740: #line 11747 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 40373 "gram.c" /* yacc.c:1652 */ break; case 1741: #line 11751 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 40379 "gram.c" /* yacc.c:1652 */ break; case 1742: #line 11752 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 40385 "gram.c" /* yacc.c:1652 */ break; case 1743: #line 11756 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 40391 "gram.c" /* yacc.c:1652 */ break; case 1744: #line 11757 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } #line 40397 "gram.c" /* yacc.c:1652 */ break; case 1745: #line 11762 "gram.y" /* yacc.c:1652 */ { LockingClause *n = makeNode(LockingClause); n->lockedRels = (yyvsp[-1].list); n->strength = (yyvsp[-2].ival); n->waitPolicy = (yyvsp[0].ival); (yyval.node) = (Node *) n; } #line 40409 "gram.c" /* yacc.c:1652 */ break; case 1746: #line 11772 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = LCS_FORUPDATE; } #line 40415 "gram.c" /* yacc.c:1652 */ break; case 1747: #line 11773 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = LCS_FORNOKEYUPDATE; } #line 40421 "gram.c" /* yacc.c:1652 */ break; case 1748: #line 11774 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = LCS_FORSHARE; } #line 40427 "gram.c" /* yacc.c:1652 */ break; case 1749: #line 11775 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = LCS_FORKEYSHARE; } #line 40433 "gram.c" /* yacc.c:1652 */ break; case 1750: #line 11779 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 40439 "gram.c" /* yacc.c:1652 */ break; case 1751: #line 11780 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 40445 "gram.c" /* yacc.c:1652 */ break; case 1752: #line 11791 "gram.y" /* yacc.c:1652 */ { SelectStmt *n = makeNode(SelectStmt); n->valuesLists = list_make1((yyvsp[-1].list)); (yyval.node) = (Node *) n; } #line 40455 "gram.c" /* yacc.c:1652 */ break; case 1753: #line 11797 "gram.y" /* yacc.c:1652 */ { SelectStmt *n = (SelectStmt *) (yyvsp[-4].node); n->valuesLists = lappend(n->valuesLists, (yyvsp[-1].list)); (yyval.node) = (Node *) n; } #line 40465 "gram.c" /* yacc.c:1652 */ break; case 1754: #line 11814 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 40471 "gram.c" /* yacc.c:1652 */ break; case 1755: #line 11815 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 40477 "gram.c" /* yacc.c:1652 */ break; case 1756: #line 11819 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 40483 "gram.c" /* yacc.c:1652 */ break; case 1757: #line 11820 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 40489 "gram.c" /* yacc.c:1652 */ break; case 1758: #line 11827 "gram.y" /* yacc.c:1652 */ { (yyvsp[-1].range)->alias = (yyvsp[0].alias); (yyval.node) = (Node *) (yyvsp[-1].range); } #line 40498 "gram.c" /* yacc.c:1652 */ break; case 1759: #line 11832 "gram.y" /* yacc.c:1652 */ { RangeTableSample *n = (RangeTableSample *) (yyvsp[0].node); (yyvsp[-2].range)->alias = (yyvsp[-1].alias); /* relation_expr goes inside the RangeTableSample node */ n->relation = (Node *) (yyvsp[-2].range); (yyval.node) = (Node *) n; } #line 40510 "gram.c" /* yacc.c:1652 */ break; case 1760: #line 11840 "gram.y" /* yacc.c:1652 */ { RangeFunction *n = (RangeFunction *) (yyvsp[-1].node); n->alias = linitial((yyvsp[0].list)); n->coldeflist = lsecond((yyvsp[0].list)); (yyval.node) = (Node *) n; } #line 40521 "gram.c" /* yacc.c:1652 */ break; case 1761: #line 11847 "gram.y" /* yacc.c:1652 */ { RangeFunction *n = (RangeFunction *) (yyvsp[-1].node); n->lateral = true; n->alias = linitial((yyvsp[0].list)); n->coldeflist = lsecond((yyvsp[0].list)); (yyval.node) = (Node *) n; } #line 40533 "gram.c" /* yacc.c:1652 */ break; case 1762: #line 11855 "gram.y" /* yacc.c:1652 */ { RangeTableFunc *n = (RangeTableFunc *) (yyvsp[-1].node); n->alias = (yyvsp[0].alias); (yyval.node) = (Node *) n; } #line 40543 "gram.c" /* yacc.c:1652 */ break; case 1763: #line 11861 "gram.y" /* yacc.c:1652 */ { RangeTableFunc *n = (RangeTableFunc *) (yyvsp[-1].node); n->lateral = true; n->alias = (yyvsp[0].alias); (yyval.node) = (Node *) n; } #line 40554 "gram.c" /* yacc.c:1652 */ break; case 1764: #line 11868 "gram.y" /* yacc.c:1652 */ { RangeSubselect *n = makeNode(RangeSubselect); n->lateral = false; n->subquery = (yyvsp[-1].node); n->alias = (yyvsp[0].alias); /* * The SQL spec does not permit a subselect * () without an alias clause, * so we don't either. This avoids the problem * of needing to invent a unique refname for it. * That could be surmounted if there's sufficient * popular demand, but for now let's just implement * the spec and see if anyone complains. * However, it does seem like a good idea to emit * an error message that's better than "syntax error". */ if ((yyvsp[0].alias) == NULL) { if (IsA((yyvsp[-1].node), SelectStmt) && ((SelectStmt *) (yyvsp[-1].node))->valuesLists) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("VALUES in FROM must have an alias"), errhint("For example, FROM (VALUES ...) [AS] foo."), parser_errposition((yylsp[-1])))); else ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("subquery in FROM must have an alias"), errhint("For example, FROM (SELECT ...) [AS] foo."), parser_errposition((yylsp[-1])))); } (yyval.node) = (Node *) n; } #line 40593 "gram.c" /* yacc.c:1652 */ break; case 1765: #line 11903 "gram.y" /* yacc.c:1652 */ { RangeSubselect *n = makeNode(RangeSubselect); n->lateral = true; n->subquery = (yyvsp[-1].node); n->alias = (yyvsp[0].alias); /* same comment as above */ if ((yyvsp[0].alias) == NULL) { if (IsA((yyvsp[-1].node), SelectStmt) && ((SelectStmt *) (yyvsp[-1].node))->valuesLists) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("VALUES in FROM must have an alias"), errhint("For example, FROM (VALUES ...) [AS] foo."), parser_errposition((yylsp[-1])))); else ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("subquery in FROM must have an alias"), errhint("For example, FROM (SELECT ...) [AS] foo."), parser_errposition((yylsp[-1])))); } (yyval.node) = (Node *) n; } #line 40622 "gram.c" /* yacc.c:1652 */ break; case 1766: #line 11928 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) (yyvsp[0].jexpr); } #line 40630 "gram.c" /* yacc.c:1652 */ break; case 1767: #line 11932 "gram.y" /* yacc.c:1652 */ { (yyvsp[-2].jexpr)->alias = (yyvsp[0].alias); (yyval.node) = (Node *) (yyvsp[-2].jexpr); } #line 40639 "gram.c" /* yacc.c:1652 */ break; case 1768: #line 11958 "gram.y" /* yacc.c:1652 */ { (yyval.jexpr) = (yyvsp[-1].jexpr); } #line 40647 "gram.c" /* yacc.c:1652 */ break; case 1769: #line 11962 "gram.y" /* yacc.c:1652 */ { /* CROSS JOIN is same as unqualified inner join */ JoinExpr *n = makeNode(JoinExpr); n->jointype = JOIN_INNER; n->isNatural = false; n->larg = (yyvsp[-3].node); n->rarg = (yyvsp[0].node); n->usingClause = NIL; n->quals = NULL; (yyval.jexpr) = n; } #line 40663 "gram.c" /* yacc.c:1652 */ break; case 1770: #line 11974 "gram.y" /* yacc.c:1652 */ { JoinExpr *n = makeNode(JoinExpr); n->jointype = (yyvsp[-3].jtype); n->isNatural = false; n->larg = (yyvsp[-4].node); n->rarg = (yyvsp[-1].node); if ((yyvsp[0].node) != NULL && IsA((yyvsp[0].node), List)) n->usingClause = (List *) (yyvsp[0].node); /* USING clause */ else n->quals = (yyvsp[0].node); /* ON clause */ (yyval.jexpr) = n; } #line 40680 "gram.c" /* yacc.c:1652 */ break; case 1771: #line 11987 "gram.y" /* yacc.c:1652 */ { /* letting join_type reduce to empty doesn't work */ JoinExpr *n = makeNode(JoinExpr); n->jointype = JOIN_INNER; n->isNatural = false; n->larg = (yyvsp[-3].node); n->rarg = (yyvsp[-1].node); if ((yyvsp[0].node) != NULL && IsA((yyvsp[0].node), List)) n->usingClause = (List *) (yyvsp[0].node); /* USING clause */ else n->quals = (yyvsp[0].node); /* ON clause */ (yyval.jexpr) = n; } #line 40698 "gram.c" /* yacc.c:1652 */ break; case 1772: #line 12001 "gram.y" /* yacc.c:1652 */ { JoinExpr *n = makeNode(JoinExpr); n->jointype = (yyvsp[-2].jtype); n->isNatural = true; n->larg = (yyvsp[-4].node); n->rarg = (yyvsp[0].node); n->usingClause = NIL; /* figure out which columns later... */ n->quals = NULL; /* fill later */ (yyval.jexpr) = n; } #line 40713 "gram.c" /* yacc.c:1652 */ break; case 1773: #line 12012 "gram.y" /* yacc.c:1652 */ { /* letting join_type reduce to empty doesn't work */ JoinExpr *n = makeNode(JoinExpr); n->jointype = JOIN_INNER; n->isNatural = true; n->larg = (yyvsp[-3].node); n->rarg = (yyvsp[0].node); n->usingClause = NIL; /* figure out which columns later... */ n->quals = NULL; /* fill later */ (yyval.jexpr) = n; } #line 40729 "gram.c" /* yacc.c:1652 */ break; case 1774: #line 12027 "gram.y" /* yacc.c:1652 */ { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[-3].str); (yyval.alias)->colnames = (yyvsp[-1].list); } #line 40739 "gram.c" /* yacc.c:1652 */ break; case 1775: #line 12033 "gram.y" /* yacc.c:1652 */ { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[0].str); } #line 40748 "gram.c" /* yacc.c:1652 */ break; case 1776: #line 12038 "gram.y" /* yacc.c:1652 */ { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[-3].str); (yyval.alias)->colnames = (yyvsp[-1].list); } #line 40758 "gram.c" /* yacc.c:1652 */ break; case 1777: #line 12044 "gram.y" /* yacc.c:1652 */ { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[0].str); } #line 40767 "gram.c" /* yacc.c:1652 */ break; case 1778: #line 12050 "gram.y" /* yacc.c:1652 */ { (yyval.alias) = (yyvsp[0].alias); } #line 40773 "gram.c" /* yacc.c:1652 */ break; case 1779: #line 12051 "gram.y" /* yacc.c:1652 */ { (yyval.alias) = NULL; } #line 40779 "gram.c" /* yacc.c:1652 */ break; case 1780: #line 12060 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[0].alias), NIL); } #line 40787 "gram.c" /* yacc.c:1652 */ break; case 1781: #line 12064 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(NULL, (yyvsp[-1].list)); } #line 40795 "gram.c" /* yacc.c:1652 */ break; case 1782: #line 12068 "gram.y" /* yacc.c:1652 */ { Alias *a = makeNode(Alias); a->aliasname = (yyvsp[-3].str); (yyval.list) = list_make2(a, (yyvsp[-1].list)); } #line 40805 "gram.c" /* yacc.c:1652 */ break; case 1783: #line 12074 "gram.y" /* yacc.c:1652 */ { Alias *a = makeNode(Alias); a->aliasname = (yyvsp[-3].str); (yyval.list) = list_make2(a, (yyvsp[-1].list)); } #line 40815 "gram.c" /* yacc.c:1652 */ break; case 1784: #line 12080 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(NULL, NIL); } #line 40823 "gram.c" /* yacc.c:1652 */ break; case 1785: #line 12085 "gram.y" /* yacc.c:1652 */ { (yyval.jtype) = JOIN_FULL; } #line 40829 "gram.c" /* yacc.c:1652 */ break; case 1786: #line 12086 "gram.y" /* yacc.c:1652 */ { (yyval.jtype) = JOIN_LEFT; } #line 40835 "gram.c" /* yacc.c:1652 */ break; case 1787: #line 12087 "gram.y" /* yacc.c:1652 */ { (yyval.jtype) = JOIN_RIGHT; } #line 40841 "gram.c" /* yacc.c:1652 */ break; case 1788: #line 12088 "gram.y" /* yacc.c:1652 */ { (yyval.jtype) = JOIN_INNER; } #line 40847 "gram.c" /* yacc.c:1652 */ break; case 1789: #line 12092 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 40853 "gram.c" /* yacc.c:1652 */ break; case 1790: #line 12093 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 40859 "gram.c" /* yacc.c:1652 */ break; case 1791: #line 12105 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) (yyvsp[-1].list); } #line 40865 "gram.c" /* yacc.c:1652 */ break; case 1792: #line 12106 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40871 "gram.c" /* yacc.c:1652 */ break; case 1793: #line 12112 "gram.y" /* yacc.c:1652 */ { /* inheritance query, implicitly */ (yyval.range) = (yyvsp[0].range); (yyval.range)->inh = true; (yyval.range)->alias = NULL; } #line 40882 "gram.c" /* yacc.c:1652 */ break; case 1794: #line 12119 "gram.y" /* yacc.c:1652 */ { /* inheritance query, explicitly */ (yyval.range) = (yyvsp[-1].range); (yyval.range)->inh = true; (yyval.range)->alias = NULL; } #line 40893 "gram.c" /* yacc.c:1652 */ break; case 1795: #line 12126 "gram.y" /* yacc.c:1652 */ { /* no inheritance */ (yyval.range) = (yyvsp[0].range); (yyval.range)->inh = false; (yyval.range)->alias = NULL; } #line 40904 "gram.c" /* yacc.c:1652 */ break; case 1796: #line 12133 "gram.y" /* yacc.c:1652 */ { /* no inheritance, SQL99-style syntax */ (yyval.range) = (yyvsp[-1].range); (yyval.range)->inh = false; (yyval.range)->alias = NULL; } #line 40915 "gram.c" /* yacc.c:1652 */ break; case 1797: #line 12143 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].range)); } #line 40921 "gram.c" /* yacc.c:1652 */ break; case 1798: #line 12144 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].range)); } #line 40927 "gram.c" /* yacc.c:1652 */ break; case 1799: #line 12158 "gram.y" /* yacc.c:1652 */ { (yyval.range) = (yyvsp[0].range); } #line 40935 "gram.c" /* yacc.c:1652 */ break; case 1800: #line 12162 "gram.y" /* yacc.c:1652 */ { Alias *alias = makeNode(Alias); alias->aliasname = (yyvsp[0].str); (yyvsp[-1].range)->alias = alias; (yyval.range) = (yyvsp[-1].range); } #line 40946 "gram.c" /* yacc.c:1652 */ break; case 1801: #line 12169 "gram.y" /* yacc.c:1652 */ { Alias *alias = makeNode(Alias); alias->aliasname = (yyvsp[0].str); (yyvsp[-2].range)->alias = alias; (yyval.range) = (yyvsp[-2].range); } #line 40957 "gram.c" /* yacc.c:1652 */ break; case 1802: #line 12182 "gram.y" /* yacc.c:1652 */ { RangeTableSample *n = makeNode(RangeTableSample); /* n->relation will be filled in later */ n->method = (yyvsp[-4].list); n->args = (yyvsp[-2].list); n->repeatable = (yyvsp[0].node); n->location = (yylsp[-4]); (yyval.node) = (Node *) n; } #line 40971 "gram.c" /* yacc.c:1652 */ break; case 1803: #line 12194 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) (yyvsp[-1].node); } #line 40977 "gram.c" /* yacc.c:1652 */ break; case 1804: #line 12195 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 40983 "gram.c" /* yacc.c:1652 */ break; case 1805: #line 12211 "gram.y" /* yacc.c:1652 */ { RangeFunction *n = makeNode(RangeFunction); n->lateral = false; n->ordinality = (yyvsp[0].boolean); n->is_rowsfrom = false; n->functions = list_make1(list_make2((yyvsp[-1].node), NIL)); /* alias and coldeflist are set by table_ref production */ (yyval.node) = (Node *) n; } #line 40997 "gram.c" /* yacc.c:1652 */ break; case 1806: #line 12221 "gram.y" /* yacc.c:1652 */ { RangeFunction *n = makeNode(RangeFunction); n->lateral = false; n->ordinality = (yyvsp[0].boolean); n->is_rowsfrom = true; n->functions = (yyvsp[-2].list); /* alias and coldeflist are set by table_ref production */ (yyval.node) = (Node *) n; } #line 41011 "gram.c" /* yacc.c:1652 */ break; case 1807: #line 12233 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[-1].node), (yyvsp[0].list)); } #line 41017 "gram.c" /* yacc.c:1652 */ break; case 1808: #line 12237 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].list)); } #line 41023 "gram.c" /* yacc.c:1652 */ break; case 1809: #line 12238 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); } #line 41029 "gram.c" /* yacc.c:1652 */ break; case 1810: #line 12241 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 41035 "gram.c" /* yacc.c:1652 */ break; case 1811: #line 12242 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 41041 "gram.c" /* yacc.c:1652 */ break; case 1812: #line 12245 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 41047 "gram.c" /* yacc.c:1652 */ break; case 1813: #line 12246 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 41053 "gram.c" /* yacc.c:1652 */ break; case 1814: #line 12251 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 41059 "gram.c" /* yacc.c:1652 */ break; case 1815: #line 12252 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 41065 "gram.c" /* yacc.c:1652 */ break; case 1816: #line 12257 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 41071 "gram.c" /* yacc.c:1652 */ break; case 1817: #line 12259 "gram.y" /* yacc.c:1652 */ { CurrentOfExpr *n = makeNode(CurrentOfExpr); /* cvarno is filled in by parse analysis */ n->cursor_name = (yyvsp[0].str); n->cursor_param = 0; (yyval.node) = (Node *) n; } #line 41083 "gram.c" /* yacc.c:1652 */ break; case 1818: #line 12266 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 41089 "gram.c" /* yacc.c:1652 */ break; case 1819: #line 12271 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 41095 "gram.c" /* yacc.c:1652 */ break; case 1820: #line 12272 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 41101 "gram.c" /* yacc.c:1652 */ break; case 1821: #line 12277 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 41109 "gram.c" /* yacc.c:1652 */ break; case 1822: #line 12281 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 41117 "gram.c" /* yacc.c:1652 */ break; case 1823: #line 12287 "gram.y" /* yacc.c:1652 */ { ColumnDef *n = makeNode(ColumnDef); n->colname = (yyvsp[-2].str); n->typeName = (yyvsp[-1].typnam); n->inhcount = 0; n->is_local = true; n->is_not_null = false; n->is_from_type = false; n->storage = 0; n->raw_default = NULL; n->cooked_default = NULL; n->collClause = (CollateClause *) (yyvsp[0].node); n->collOid = InvalidOid; n->constraints = NIL; n->location = (yylsp[-2]); (yyval.node) = (Node *)n; } #line 41139 "gram.c" /* yacc.c:1652 */ break; case 1824: #line 12311 "gram.y" /* yacc.c:1652 */ { RangeTableFunc *n = makeNode(RangeTableFunc); n->rowexpr = (yyvsp[-4].node); n->docexpr = (yyvsp[-3].node); n->columns = (yyvsp[-1].list); n->namespaces = NIL; n->location = (yylsp[-6]); (yyval.node) = (Node *)n; } #line 41153 "gram.c" /* yacc.c:1652 */ break; case 1825: #line 12322 "gram.y" /* yacc.c:1652 */ { RangeTableFunc *n = makeNode(RangeTableFunc); n->rowexpr = (yyvsp[-4].node); n->docexpr = (yyvsp[-3].node); n->columns = (yyvsp[-1].list); n->namespaces = (yyvsp[-7].list); n->location = (yylsp[-11]); (yyval.node) = (Node *)n; } #line 41167 "gram.c" /* yacc.c:1652 */ break; case 1826: #line 12333 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 41173 "gram.c" /* yacc.c:1652 */ break; case 1827: #line 12334 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 41179 "gram.c" /* yacc.c:1652 */ break; case 1828: #line 12339 "gram.y" /* yacc.c:1652 */ { RangeTableFuncCol *fc = makeNode(RangeTableFuncCol); fc->colname = (yyvsp[-1].str); fc->for_ordinality = false; fc->typeName = (yyvsp[0].typnam); fc->is_not_null = false; fc->colexpr = NULL; fc->coldefexpr = NULL; fc->location = (yylsp[-1]); (yyval.node) = (Node *) fc; } #line 41197 "gram.c" /* yacc.c:1652 */ break; case 1829: #line 12353 "gram.y" /* yacc.c:1652 */ { RangeTableFuncCol *fc = makeNode(RangeTableFuncCol); ListCell *option; bool nullability_seen = false; fc->colname = (yyvsp[-2].str); fc->typeName = (yyvsp[-1].typnam); fc->for_ordinality = false; fc->is_not_null = false; fc->colexpr = NULL; fc->coldefexpr = NULL; fc->location = (yylsp[-2]); foreach(option, (yyvsp[0].list)) { DefElem *defel = (DefElem *) lfirst(option); if (strcmp(defel->defname, "default") == 0) { if (fc->coldefexpr != NULL) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("only one DEFAULT value is allowed"), parser_errposition(defel->location))); fc->coldefexpr = defel->arg; } else if (strcmp(defel->defname, "path") == 0) { if (fc->colexpr != NULL) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("only one PATH value per column is allowed"), parser_errposition(defel->location))); fc->colexpr = defel->arg; } else if (strcmp(defel->defname, "is_not_null") == 0) { if (nullability_seen) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("conflicting or redundant NULL / NOT NULL declarations for column \"%s\"", fc->colname), parser_errposition(defel->location))); fc->is_not_null = intVal(defel->arg); nullability_seen = true; } else { ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("unrecognized column option \"%s\"", defel->defname), parser_errposition(defel->location))); } } (yyval.node) = (Node *) fc; } #line 41258 "gram.c" /* yacc.c:1652 */ break; case 1830: #line 12410 "gram.y" /* yacc.c:1652 */ { RangeTableFuncCol *fc = makeNode(RangeTableFuncCol); fc->colname = (yyvsp[-2].str); fc->for_ordinality = true; /* other fields are ignored, initialized by makeNode */ fc->location = (yylsp[-2]); (yyval.node) = (Node *) fc; } #line 41273 "gram.c" /* yacc.c:1652 */ break; case 1831: #line 12424 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 41279 "gram.c" /* yacc.c:1652 */ break; case 1832: #line 12426 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 41285 "gram.c" /* yacc.c:1652 */ break; case 1833: #line 12431 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); } #line 41291 "gram.c" /* yacc.c:1652 */ break; case 1834: #line 12433 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("default", (yyvsp[0].node), (yylsp[-1])); } #line 41297 "gram.c" /* yacc.c:1652 */ break; case 1835: #line 12435 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("is_not_null", (Node *) makeInteger(true), (yylsp[-1])); } #line 41303 "gram.c" /* yacc.c:1652 */ break; case 1836: #line 12437 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("is_not_null", (Node *) makeInteger(false), (yylsp[0])); } #line 41309 "gram.c" /* yacc.c:1652 */ break; case 1837: #line 12442 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].target)); } #line 41315 "gram.c" /* yacc.c:1652 */ break; case 1838: #line 12444 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); } #line 41321 "gram.c" /* yacc.c:1652 */ break; case 1839: #line 12449 "gram.y" /* yacc.c:1652 */ { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[0].str); (yyval.target)->indirection = NIL; (yyval.target)->val = (yyvsp[-2].node); (yyval.target)->location = (yylsp[-2]); } #line 41333 "gram.c" /* yacc.c:1652 */ break; case 1840: #line 12457 "gram.y" /* yacc.c:1652 */ { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = NULL; (yyval.target)->indirection = NIL; (yyval.target)->val = (yyvsp[0].node); (yyval.target)->location = (yylsp[-1]); } #line 41345 "gram.c" /* yacc.c:1652 */ break; case 1841: #line 12477 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[-1].typnam); (yyval.typnam)->arrayBounds = (yyvsp[0].list); } #line 41354 "gram.c" /* yacc.c:1652 */ break; case 1842: #line 12482 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[-1].typnam); (yyval.typnam)->arrayBounds = (yyvsp[0].list); (yyval.typnam)->setof = true; } #line 41364 "gram.c" /* yacc.c:1652 */ break; case 1843: #line 12489 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[-4].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[-1].ival))); } #line 41373 "gram.c" /* yacc.c:1652 */ break; case 1844: #line 12494 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[-4].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[-1].ival))); (yyval.typnam)->setof = true; } #line 41383 "gram.c" /* yacc.c:1652 */ break; case 1845: #line 12500 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[-1].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); } #line 41392 "gram.c" /* yacc.c:1652 */ break; case 1846: #line 12505 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[-1].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); (yyval.typnam)->setof = true; } #line 41402 "gram.c" /* yacc.c:1652 */ break; case 1847: #line 12514 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), makeInteger(-1)); } #line 41408 "gram.c" /* yacc.c:1652 */ break; case 1848: #line 12516 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-3].list), makeInteger((yyvsp[-1].ival))); } #line 41414 "gram.c" /* yacc.c:1652 */ break; case 1849: #line 12518 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 41420 "gram.c" /* yacc.c:1652 */ break; case 1850: #line 12522 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 41426 "gram.c" /* yacc.c:1652 */ break; case 1851: #line 12523 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 41432 "gram.c" /* yacc.c:1652 */ break; case 1852: #line 12524 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 41438 "gram.c" /* yacc.c:1652 */ break; case 1853: #line 12525 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 41444 "gram.c" /* yacc.c:1652 */ break; case 1854: #line 12526 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 41450 "gram.c" /* yacc.c:1652 */ break; case 1855: #line 12528 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[-1].typnam); (yyval.typnam)->typmods = (yyvsp[0].list); } #line 41459 "gram.c" /* yacc.c:1652 */ break; case 1856: #line 12533 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[-3].typnam); (yyval.typnam)->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), makeIntConst((yyvsp[-1].ival), (yylsp[-1]))); } #line 41469 "gram.c" /* yacc.c:1652 */ break; case 1857: #line 12552 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 41475 "gram.c" /* yacc.c:1652 */ break; case 1858: #line 12553 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 41481 "gram.c" /* yacc.c:1652 */ break; case 1859: #line 12554 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 41487 "gram.c" /* yacc.c:1652 */ break; case 1860: #line 12555 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 41493 "gram.c" /* yacc.c:1652 */ break; case 1861: #line 12567 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = makeTypeName((yyvsp[-1].str)); (yyval.typnam)->typmods = (yyvsp[0].list); (yyval.typnam)->location = (yylsp[-1]); } #line 41503 "gram.c" /* yacc.c:1652 */ break; case 1862: #line 12573 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[-2].str)), (yyvsp[-1].list))); (yyval.typnam)->typmods = (yyvsp[0].list); (yyval.typnam)->location = (yylsp[-2]); } #line 41513 "gram.c" /* yacc.c:1652 */ break; case 1863: #line 12580 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 41519 "gram.c" /* yacc.c:1652 */ break; case 1864: #line 12581 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 41525 "gram.c" /* yacc.c:1652 */ break; case 1865: #line 12588 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName("int4"); (yyval.typnam)->location = (yylsp[0]); } #line 41534 "gram.c" /* yacc.c:1652 */ break; case 1866: #line 12593 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName("int4"); (yyval.typnam)->location = (yylsp[0]); } #line 41543 "gram.c" /* yacc.c:1652 */ break; case 1867: #line 12598 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName("int2"); (yyval.typnam)->location = (yylsp[0]); } #line 41552 "gram.c" /* yacc.c:1652 */ break; case 1868: #line 12603 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName("int8"); (yyval.typnam)->location = (yylsp[0]); } #line 41561 "gram.c" /* yacc.c:1652 */ break; case 1869: #line 12608 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName("float4"); (yyval.typnam)->location = (yylsp[0]); } #line 41570 "gram.c" /* yacc.c:1652 */ break; case 1870: #line 12613 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); (yyval.typnam)->location = (yylsp[-1]); } #line 41579 "gram.c" /* yacc.c:1652 */ break; case 1871: #line 12618 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName("float8"); (yyval.typnam)->location = (yylsp[-1]); } #line 41588 "gram.c" /* yacc.c:1652 */ break; case 1872: #line 12623 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[0].list); (yyval.typnam)->location = (yylsp[-1]); } #line 41598 "gram.c" /* yacc.c:1652 */ break; case 1873: #line 12629 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[0].list); (yyval.typnam)->location = (yylsp[-1]); } #line 41608 "gram.c" /* yacc.c:1652 */ break; case 1874: #line 12635 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[0].list); (yyval.typnam)->location = (yylsp[-1]); } #line 41618 "gram.c" /* yacc.c:1652 */ break; case 1875: #line 12641 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName("bool"); (yyval.typnam)->location = (yylsp[0]); } #line 41627 "gram.c" /* yacc.c:1652 */ break; case 1876: #line 12648 "gram.y" /* yacc.c:1652 */ { /* * Check FLOAT() precision limits assuming IEEE floating * types - thomas 1997-09-18 */ if ((yyvsp[-1].ival) < 1) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("precision for type float must be at least 1 bit"), parser_errposition((yylsp[-1])))); else if ((yyvsp[-1].ival) <= 24) (yyval.typnam) = SystemTypeName("float4"); else if ((yyvsp[-1].ival) <= 53) (yyval.typnam) = SystemTypeName("float8"); else ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("precision for type float must be less than 54 bits"), parser_errposition((yylsp[-1])))); } #line 41652 "gram.c" /* yacc.c:1652 */ break; case 1877: #line 12669 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName("float8"); } #line 41660 "gram.c" /* yacc.c:1652 */ break; case 1878: #line 12679 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 41668 "gram.c" /* yacc.c:1652 */ break; case 1879: #line 12683 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 41676 "gram.c" /* yacc.c:1652 */ break; case 1880: #line 12691 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 41684 "gram.c" /* yacc.c:1652 */ break; case 1881: #line 12695 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); (yyval.typnam)->typmods = NIL; } #line 41693 "gram.c" /* yacc.c:1652 */ break; case 1882: #line 12703 "gram.y" /* yacc.c:1652 */ { char *typname; typname = (yyvsp[-3].boolean) ? "varbit" : "bit"; (yyval.typnam) = SystemTypeName(typname); (yyval.typnam)->typmods = (yyvsp[-1].list); (yyval.typnam)->location = (yylsp[-4]); } #line 41706 "gram.c" /* yacc.c:1652 */ break; case 1883: #line 12715 "gram.y" /* yacc.c:1652 */ { /* bit defaults to bit(1), varbit to no limit */ if ((yyvsp[0].boolean)) { (yyval.typnam) = SystemTypeName("varbit"); } else { (yyval.typnam) = SystemTypeName("bit"); (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1)); } (yyval.typnam)->location = (yylsp[-1]); } #line 41724 "gram.c" /* yacc.c:1652 */ break; case 1884: #line 12736 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 41732 "gram.c" /* yacc.c:1652 */ break; case 1885: #line 12740 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 41740 "gram.c" /* yacc.c:1652 */ break; case 1886: #line 12746 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 41748 "gram.c" /* yacc.c:1652 */ break; case 1887: #line 12750 "gram.y" /* yacc.c:1652 */ { /* Length was not specified so allow to be unrestricted. * This handles problems with fixed-length (bpchar) strings * which in column definitions must default to a length * of one, but should not be constrained if the length * was not specified. */ (yyval.typnam) = (yyvsp[0].typnam); (yyval.typnam)->typmods = NIL; } #line 41763 "gram.c" /* yacc.c:1652 */ break; case 1888: #line 12763 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName((yyvsp[-3].str)); (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-1].ival), (yylsp[-1]))); (yyval.typnam)->location = (yylsp[-3]); } #line 41773 "gram.c" /* yacc.c:1652 */ break; case 1889: #line 12771 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName((yyvsp[0].str)); /* char defaults to char(1), varchar to no limit */ if (strcmp((yyvsp[0].str), "bpchar") == 0) (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1)); (yyval.typnam)->location = (yylsp[0]); } #line 41785 "gram.c" /* yacc.c:1652 */ break; case 1890: #line 12781 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } #line 41791 "gram.c" /* yacc.c:1652 */ break; case 1891: #line 12783 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } #line 41797 "gram.c" /* yacc.c:1652 */ break; case 1892: #line 12785 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "varchar"; } #line 41803 "gram.c" /* yacc.c:1652 */ break; case 1893: #line 12787 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } #line 41809 "gram.c" /* yacc.c:1652 */ break; case 1894: #line 12789 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } #line 41815 "gram.c" /* yacc.c:1652 */ break; case 1895: #line 12791 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } #line 41821 "gram.c" /* yacc.c:1652 */ break; case 1896: #line 12795 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 41827 "gram.c" /* yacc.c:1652 */ break; case 1897: #line 12796 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 41833 "gram.c" /* yacc.c:1652 */ break; case 1898: #line 12804 "gram.y" /* yacc.c:1652 */ { if ((yyvsp[0].boolean)) (yyval.typnam) = SystemTypeName("timestamptz"); else (yyval.typnam) = SystemTypeName("timestamp"); (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-2].ival), (yylsp[-2]))); (yyval.typnam)->location = (yylsp[-4]); } #line 41846 "gram.c" /* yacc.c:1652 */ break; case 1899: #line 12813 "gram.y" /* yacc.c:1652 */ { if ((yyvsp[0].boolean)) (yyval.typnam) = SystemTypeName("timestamptz"); else (yyval.typnam) = SystemTypeName("timestamp"); (yyval.typnam)->location = (yylsp[-1]); } #line 41858 "gram.c" /* yacc.c:1652 */ break; case 1900: #line 12821 "gram.y" /* yacc.c:1652 */ { if ((yyvsp[0].boolean)) (yyval.typnam) = SystemTypeName("timetz"); else (yyval.typnam) = SystemTypeName("time"); (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-2].ival), (yylsp[-2]))); (yyval.typnam)->location = (yylsp[-4]); } #line 41871 "gram.c" /* yacc.c:1652 */ break; case 1901: #line 12830 "gram.y" /* yacc.c:1652 */ { if ((yyvsp[0].boolean)) (yyval.typnam) = SystemTypeName("timetz"); else (yyval.typnam) = SystemTypeName("time"); (yyval.typnam)->location = (yylsp[-1]); } #line 41883 "gram.c" /* yacc.c:1652 */ break; case 1902: #line 12841 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName("interval"); (yyval.typnam)->location = (yylsp[0]); } #line 41892 "gram.c" /* yacc.c:1652 */ break; case 1903: #line 12848 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 41898 "gram.c" /* yacc.c:1652 */ break; case 1904: #line 12849 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 41904 "gram.c" /* yacc.c:1652 */ break; case 1905: #line 12850 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 41910 "gram.c" /* yacc.c:1652 */ break; case 1906: #line 12855 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[0]))); } #line 41916 "gram.c" /* yacc.c:1652 */ break; case 1907: #line 12857 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[0]))); } #line 41922 "gram.c" /* yacc.c:1652 */ break; case 1908: #line 12859 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[0]))); } #line 41928 "gram.c" /* yacc.c:1652 */ break; case 1909: #line 12861 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[0]))); } #line 41934 "gram.c" /* yacc.c:1652 */ break; case 1910: #line 12863 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[0]))); } #line 41940 "gram.c" /* yacc.c:1652 */ break; case 1911: #line 12865 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 41946 "gram.c" /* yacc.c:1652 */ break; case 1912: #line 12867 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) | INTERVAL_MASK(MONTH), (yylsp[-2]))); } #line 41955 "gram.c" /* yacc.c:1652 */ break; case 1913: #line 12872 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR), (yylsp[-2]))); } #line 41964 "gram.c" /* yacc.c:1652 */ break; case 1914: #line 12877 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE), (yylsp[-2]))); } #line 41974 "gram.c" /* yacc.c:1652 */ break; case 1915: #line 12883 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND), (yylsp[-2])); } #line 41986 "gram.c" /* yacc.c:1652 */ break; case 1916: #line 12891 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE), (yylsp[-2]))); } #line 41995 "gram.c" /* yacc.c:1652 */ break; case 1917: #line 12896 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND), (yylsp[-2])); } #line 42006 "gram.c" /* yacc.c:1652 */ break; case 1918: #line 12903 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND), (yylsp[-2])); } #line 42016 "gram.c" /* yacc.c:1652 */ break; case 1919: #line 12909 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 42022 "gram.c" /* yacc.c:1652 */ break; case 1920: #line 12914 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[0]))); } #line 42030 "gram.c" /* yacc.c:1652 */ break; case 1921: #line 12918 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[-3])), makeIntConst((yyvsp[-1].ival), (yylsp[-1]))); } #line 42039 "gram.c" /* yacc.c:1652 */ break; case 1922: #line 12953 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 42045 "gram.c" /* yacc.c:1652 */ break; case 1923: #line 12955 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeTypeCast((yyvsp[-2].node), (yyvsp[0].typnam), (yylsp[-1])); } #line 42051 "gram.c" /* yacc.c:1652 */ break; case 1924: #line 12957 "gram.y" /* yacc.c:1652 */ { CollateClause *n = makeNode(CollateClause); n->arg = (yyvsp[-2].node); n->collname = (yyvsp[0].list); n->location = (yylsp[-1]); (yyval.node) = (Node *) n; } #line 42063 "gram.c" /* yacc.c:1652 */ break; case 1925: #line 12965 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("timezone"), list_make2((yyvsp[0].node), (yyvsp[-4].node)), (yylsp[-3])); } #line 42073 "gram.c" /* yacc.c:1652 */ break; case 1926: #line 12980 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); } #line 42079 "gram.c" /* yacc.c:1652 */ break; case 1927: #line 12982 "gram.y" /* yacc.c:1652 */ { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); } #line 42085 "gram.c" /* yacc.c:1652 */ break; case 1928: #line 12984 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42091 "gram.c" /* yacc.c:1652 */ break; case 1929: #line 12986 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42097 "gram.c" /* yacc.c:1652 */ break; case 1930: #line 12988 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42103 "gram.c" /* yacc.c:1652 */ break; case 1931: #line 12990 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42109 "gram.c" /* yacc.c:1652 */ break; case 1932: #line 12992 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42115 "gram.c" /* yacc.c:1652 */ break; case 1933: #line 12994 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42121 "gram.c" /* yacc.c:1652 */ break; case 1934: #line 12996 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42127 "gram.c" /* yacc.c:1652 */ break; case 1935: #line 12998 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42133 "gram.c" /* yacc.c:1652 */ break; case 1936: #line 13000 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42139 "gram.c" /* yacc.c:1652 */ break; case 1937: #line 13002 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42145 "gram.c" /* yacc.c:1652 */ break; case 1938: #line 13004 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42151 "gram.c" /* yacc.c:1652 */ break; case 1939: #line 13006 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42157 "gram.c" /* yacc.c:1652 */ break; case 1940: #line 13009 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42163 "gram.c" /* yacc.c:1652 */ break; case 1941: #line 13011 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), NULL, (yyvsp[0].node), (yylsp[-1])); } #line 42169 "gram.c" /* yacc.c:1652 */ break; case 1942: #line 13013 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[0].list), (yyvsp[-1].node), NULL, (yylsp[0])); } #line 42175 "gram.c" /* yacc.c:1652 */ break; case 1943: #line 13016 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeAndExpr((yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42181 "gram.c" /* yacc.c:1652 */ break; case 1944: #line 13018 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeOrExpr((yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42187 "gram.c" /* yacc.c:1652 */ break; case 1945: #line 13020 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeNotExpr((yyvsp[0].node), (yylsp[-1])); } #line 42193 "gram.c" /* yacc.c:1652 */ break; case 1946: #line 13022 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeNotExpr((yyvsp[0].node), (yylsp[-1])); } #line 42199 "gram.c" /* yacc.c:1652 */ break; case 1947: #line 13025 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "~~", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42208 "gram.c" /* yacc.c:1652 */ break; case 1948: #line 13030 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-3])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "~~", (yyvsp[-4].node), (Node *) n, (yylsp[-3])); } #line 42220 "gram.c" /* yacc.c:1652 */ break; case 1949: #line 13038 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "!~~", (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2])); } #line 42229 "gram.c" /* yacc.c:1652 */ break; case 1950: #line 13043 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-4])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "!~~", (yyvsp[-5].node), (Node *) n, (yylsp[-4])); } #line 42241 "gram.c" /* yacc.c:1652 */ break; case 1951: #line 13051 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "~~*", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42250 "gram.c" /* yacc.c:1652 */ break; case 1952: #line 13056 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-3])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "~~*", (yyvsp[-4].node), (Node *) n, (yylsp[-3])); } #line 42262 "gram.c" /* yacc.c:1652 */ break; case 1953: #line 13064 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "!~~*", (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2])); } #line 42271 "gram.c" /* yacc.c:1652 */ break; case 1954: #line 13069 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-4])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "!~~*", (yyvsp[-5].node), (Node *) n, (yylsp[-4])); } #line 42283 "gram.c" /* yacc.c:1652 */ break; case 1955: #line 13078 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), list_make2((yyvsp[0].node), makeNullAConst(-1)), (yylsp[-2])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "~", (yyvsp[-3].node), (Node *) n, (yylsp[-2])); } #line 42295 "gram.c" /* yacc.c:1652 */ break; case 1956: #line 13086 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-4])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "~", (yyvsp[-5].node), (Node *) n, (yylsp[-4])); } #line 42307 "gram.c" /* yacc.c:1652 */ break; case 1957: #line 13094 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), list_make2((yyvsp[0].node), makeNullAConst(-1)), (yylsp[-3])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "!~", (yyvsp[-4].node), (Node *) n, (yylsp[-3])); } #line 42319 "gram.c" /* yacc.c:1652 */ break; case 1958: #line 13102 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-5])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "!~", (yyvsp[-6].node), (Node *) n, (yylsp[-5])); } #line 42331 "gram.c" /* yacc.c:1652 */ break; case 1959: #line 13120 "gram.y" /* yacc.c:1652 */ { NullTest *n = makeNode(NullTest); n->arg = (Expr *) (yyvsp[-2].node); n->nulltesttype = IS_NULL; n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } #line 42343 "gram.c" /* yacc.c:1652 */ break; case 1960: #line 13128 "gram.y" /* yacc.c:1652 */ { NullTest *n = makeNode(NullTest); n->arg = (Expr *) (yyvsp[-1].node); n->nulltesttype = IS_NULL; n->location = (yylsp[0]); (yyval.node) = (Node *)n; } #line 42355 "gram.c" /* yacc.c:1652 */ break; case 1961: #line 13136 "gram.y" /* yacc.c:1652 */ { NullTest *n = makeNode(NullTest); n->arg = (Expr *) (yyvsp[-3].node); n->nulltesttype = IS_NOT_NULL; n->location = (yylsp[-2]); (yyval.node) = (Node *)n; } #line 42367 "gram.c" /* yacc.c:1652 */ break; case 1962: #line 13144 "gram.y" /* yacc.c:1652 */ { NullTest *n = makeNode(NullTest); n->arg = (Expr *) (yyvsp[-1].node); n->nulltesttype = IS_NOT_NULL; n->location = (yylsp[0]); (yyval.node) = (Node *)n; } #line 42379 "gram.c" /* yacc.c:1652 */ break; case 1963: #line 13152 "gram.y" /* yacc.c:1652 */ { if (list_length((yyvsp[-2].list)) != 2) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("wrong number of parameters on left side of OVERLAPS expression"), parser_errposition((yylsp[-2])))); if (list_length((yyvsp[0].list)) != 2) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("wrong number of parameters on right side of OVERLAPS expression"), parser_errposition((yylsp[0])))); (yyval.node) = (Node *) makeFuncCall(SystemFuncName("overlaps"), list_concat((yyvsp[-2].list), (yyvsp[0].list)), (yylsp[-1])); } #line 42399 "gram.c" /* yacc.c:1652 */ break; case 1964: #line 13168 "gram.y" /* yacc.c:1652 */ { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[-2].node); b->booltesttype = IS_TRUE; b->location = (yylsp[-1]); (yyval.node) = (Node *)b; } #line 42411 "gram.c" /* yacc.c:1652 */ break; case 1965: #line 13176 "gram.y" /* yacc.c:1652 */ { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[-3].node); b->booltesttype = IS_NOT_TRUE; b->location = (yylsp[-2]); (yyval.node) = (Node *)b; } #line 42423 "gram.c" /* yacc.c:1652 */ break; case 1966: #line 13184 "gram.y" /* yacc.c:1652 */ { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[-2].node); b->booltesttype = IS_FALSE; b->location = (yylsp[-1]); (yyval.node) = (Node *)b; } #line 42435 "gram.c" /* yacc.c:1652 */ break; case 1967: #line 13192 "gram.y" /* yacc.c:1652 */ { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[-3].node); b->booltesttype = IS_NOT_FALSE; b->location = (yylsp[-2]); (yyval.node) = (Node *)b; } #line 42447 "gram.c" /* yacc.c:1652 */ break; case 1968: #line 13200 "gram.y" /* yacc.c:1652 */ { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[-2].node); b->booltesttype = IS_UNKNOWN; b->location = (yylsp[-1]); (yyval.node) = (Node *)b; } #line 42459 "gram.c" /* yacc.c:1652 */ break; case 1969: #line 13208 "gram.y" /* yacc.c:1652 */ { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[-3].node); b->booltesttype = IS_NOT_UNKNOWN; b->location = (yylsp[-2]); (yyval.node) = (Node *)b; } #line 42471 "gram.c" /* yacc.c:1652 */ break; case 1970: #line 13216 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[-4].node), (yyvsp[0].node), (yylsp[-3])); } #line 42479 "gram.c" /* yacc.c:1652 */ break; case 1971: #line 13220 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_DISTINCT, "=", (yyvsp[-5].node), (yyvsp[0].node), (yylsp[-4])); } #line 42487 "gram.c" /* yacc.c:1652 */ break; case 1972: #line 13224 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "=", (yyvsp[-5].node), (Node *) (yyvsp[-1].list), (yylsp[-4])); } #line 42495 "gram.c" /* yacc.c:1652 */ break; case 1973: #line 13228 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "<>", (yyvsp[-6].node), (Node *) (yyvsp[-1].list), (yylsp[-5])); } #line 42503 "gram.c" /* yacc.c:1652 */ break; case 1974: #line 13232 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_BETWEEN, "BETWEEN", (yyvsp[-5].node), (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-4])); } #line 42515 "gram.c" /* yacc.c:1652 */ break; case 1975: #line 13240 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_BETWEEN, "NOT BETWEEN", (yyvsp[-6].node), (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-5])); } #line 42527 "gram.c" /* yacc.c:1652 */ break; case 1976: #line 13248 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_BETWEEN_SYM, "BETWEEN SYMMETRIC", (yyvsp[-5].node), (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-4])); } #line 42539 "gram.c" /* yacc.c:1652 */ break; case 1977: #line 13256 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_BETWEEN_SYM, "NOT BETWEEN SYMMETRIC", (yyvsp[-6].node), (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-5])); } #line 42551 "gram.c" /* yacc.c:1652 */ break; case 1978: #line 13264 "gram.y" /* yacc.c:1652 */ { /* in_expr returns a SubLink or a list of a_exprs */ if (IsA((yyvsp[0].node), SubLink)) { /* generate foo = ANY (subquery) */ SubLink *n = (SubLink *) (yyvsp[0].node); n->subLinkType = ANY_SUBLINK; n->subLinkId = 0; n->testexpr = (yyvsp[-2].node); n->operName = NIL; /* show it's IN not = ANY */ n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } else { /* generate scalar IN expression */ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_IN, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } } #line 42575 "gram.c" /* yacc.c:1652 */ break; case 1979: #line 13284 "gram.y" /* yacc.c:1652 */ { /* in_expr returns a SubLink or a list of a_exprs */ if (IsA((yyvsp[0].node), SubLink)) { /* generate NOT (foo = ANY (subquery)) */ /* Make an = ANY node */ SubLink *n = (SubLink *) (yyvsp[0].node); n->subLinkType = ANY_SUBLINK; n->subLinkId = 0; n->testexpr = (yyvsp[-3].node); n->operName = NIL; /* show it's IN not = ANY */ n->location = (yylsp[-2]); /* Stick a NOT on top; must have same parse location */ (yyval.node) = makeNotExpr((Node *) n, (yylsp[-2])); } else { /* generate scalar NOT IN expression */ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_IN, "<>", (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2])); } } #line 42601 "gram.c" /* yacc.c:1652 */ break; case 1980: #line 13306 "gram.y" /* yacc.c:1652 */ { SubLink *n = makeNode(SubLink); n->subLinkType = (yyvsp[-1].ival); n->subLinkId = 0; n->testexpr = (yyvsp[-3].node); n->operName = (yyvsp[-2].list); n->subselect = (yyvsp[0].node); n->location = (yylsp[-2]); (yyval.node) = (Node *)n; } #line 42616 "gram.c" /* yacc.c:1652 */ break; case 1981: #line 13317 "gram.y" /* yacc.c:1652 */ { if ((yyvsp[-3].ival) == ANY_SUBLINK) (yyval.node) = (Node *) makeA_Expr(AEXPR_OP_ANY, (yyvsp[-4].list), (yyvsp[-5].node), (yyvsp[-1].node), (yylsp[-4])); else (yyval.node) = (Node *) makeA_Expr(AEXPR_OP_ALL, (yyvsp[-4].list), (yyvsp[-5].node), (yyvsp[-1].node), (yylsp[-4])); } #line 42627 "gram.c" /* yacc.c:1652 */ break; case 1982: #line 13324 "gram.y" /* yacc.c:1652 */ { /* Not sure how to get rid of the parentheses * but there are lots of shift/reduce errors without them. * * Should be able to implement this by plopping the entire * select into a node, then transforming the target expressions * from whatever they are into count(*), and testing the * entire result equal to one. * But, will probably implement a separate node in the executor. */ ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("UNIQUE predicate is not yet implemented"), parser_errposition((yylsp[-1])))); } #line 42647 "gram.c" /* yacc.c:1652 */ break; case 1983: #line 13340 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[-2].node)), (yylsp[-1])); } #line 42656 "gram.c" /* yacc.c:1652 */ break; case 1984: #line 13345 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeNotExpr(makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[-3].node)), (yylsp[-2])), (yylsp[-2])); } #line 42666 "gram.c" /* yacc.c:1652 */ break; case 1985: #line 13351 "gram.y" /* yacc.c:1652 */ { /* * The SQL spec only allows DEFAULT in "contextually typed * expressions", but for us, it's easier to allow it in * any a_expr and then throw error during parse analysis * if it's in an inappropriate context. This way also * lets us say something smarter than "syntax error". */ SetToDefault *n = makeNode(SetToDefault); /* parse analysis will fill in the rest */ n->location = (yylsp[0]); (yyval.node) = (Node *)n; } #line 42684 "gram.c" /* yacc.c:1652 */ break; case 1986: #line 13376 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 42690 "gram.c" /* yacc.c:1652 */ break; case 1987: #line 13378 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeTypeCast((yyvsp[-2].node), (yyvsp[0].typnam), (yylsp[-1])); } #line 42696 "gram.c" /* yacc.c:1652 */ break; case 1988: #line 13380 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); } #line 42702 "gram.c" /* yacc.c:1652 */ break; case 1989: #line 13382 "gram.y" /* yacc.c:1652 */ { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); } #line 42708 "gram.c" /* yacc.c:1652 */ break; case 1990: #line 13384 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42714 "gram.c" /* yacc.c:1652 */ break; case 1991: #line 13386 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42720 "gram.c" /* yacc.c:1652 */ break; case 1992: #line 13388 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42726 "gram.c" /* yacc.c:1652 */ break; case 1993: #line 13390 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42732 "gram.c" /* yacc.c:1652 */ break; case 1994: #line 13392 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42738 "gram.c" /* yacc.c:1652 */ break; case 1995: #line 13394 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42744 "gram.c" /* yacc.c:1652 */ break; case 1996: #line 13396 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42750 "gram.c" /* yacc.c:1652 */ break; case 1997: #line 13398 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42756 "gram.c" /* yacc.c:1652 */ break; case 1998: #line 13400 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42762 "gram.c" /* yacc.c:1652 */ break; case 1999: #line 13402 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42768 "gram.c" /* yacc.c:1652 */ break; case 2000: #line 13404 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42774 "gram.c" /* yacc.c:1652 */ break; case 2001: #line 13406 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42780 "gram.c" /* yacc.c:1652 */ break; case 2002: #line 13408 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42786 "gram.c" /* yacc.c:1652 */ break; case 2003: #line 13410 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), NULL, (yyvsp[0].node), (yylsp[-1])); } #line 42792 "gram.c" /* yacc.c:1652 */ break; case 2004: #line 13412 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[0].list), (yyvsp[-1].node), NULL, (yylsp[0])); } #line 42798 "gram.c" /* yacc.c:1652 */ break; case 2005: #line 13414 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[-4].node), (yyvsp[0].node), (yylsp[-3])); } #line 42806 "gram.c" /* yacc.c:1652 */ break; case 2006: #line 13418 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_DISTINCT, "=", (yyvsp[-5].node), (yyvsp[0].node), (yylsp[-4])); } #line 42814 "gram.c" /* yacc.c:1652 */ break; case 2007: #line 13422 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "=", (yyvsp[-5].node), (Node *) (yyvsp[-1].list), (yylsp[-4])); } #line 42822 "gram.c" /* yacc.c:1652 */ break; case 2008: #line 13426 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "<>", (yyvsp[-6].node), (Node *) (yyvsp[-1].list), (yylsp[-5])); } #line 42830 "gram.c" /* yacc.c:1652 */ break; case 2009: #line 13430 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[-2].node)), (yylsp[-1])); } #line 42839 "gram.c" /* yacc.c:1652 */ break; case 2010: #line 13435 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeNotExpr(makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[-3].node)), (yylsp[-2])), (yylsp[-2])); } #line 42849 "gram.c" /* yacc.c:1652 */ break; case 2011: #line 13450 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 42855 "gram.c" /* yacc.c:1652 */ break; case 2012: #line 13451 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 42861 "gram.c" /* yacc.c:1652 */ break; case 2013: #line 13453 "gram.y" /* yacc.c:1652 */ { ParamRef *p = makeNode(ParamRef); p->number = (yyvsp[-1].ival); p->location = (yylsp[-1]); if ((yyvsp[0].list)) { A_Indirection *n = makeNode(A_Indirection); n->arg = (Node *) p; n->indirection = check_indirection((yyvsp[0].list), yyscanner); (yyval.node) = (Node *) n; } else (yyval.node) = (Node *) p; } #line 42880 "gram.c" /* yacc.c:1652 */ break; case 2014: #line 13468 "gram.y" /* yacc.c:1652 */ { if ((yyvsp[0].list)) { A_Indirection *n = makeNode(A_Indirection); n->arg = (yyvsp[-2].node); n->indirection = check_indirection((yyvsp[0].list), yyscanner); (yyval.node) = (Node *)n; } else if (operator_precedence_warning) { /* * If precedence warnings are enabled, insert * AEXPR_PAREN nodes wrapping all explicitly * parenthesized subexpressions; this prevents bogus * warnings from being issued when the ordering has * been forced by parentheses. Take care that an * AEXPR_PAREN node has the same exprLocation as its * child, so as not to cause surprising changes in * error cursor positioning. * * In principle we should not be relying on a GUC to * decide whether to insert AEXPR_PAREN nodes. * However, since they have no effect except to * suppress warnings, it's probably safe enough; and * we'd just as soon not waste cycles on dummy parse * nodes if we don't have to. */ (yyval.node) = (Node *) makeA_Expr(AEXPR_PAREN, NIL, (yyvsp[-2].node), NULL, exprLocation((yyvsp[-2].node))); } else (yyval.node) = (yyvsp[-2].node); } #line 42918 "gram.c" /* yacc.c:1652 */ break; case 2015: #line 13502 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 42924 "gram.c" /* yacc.c:1652 */ break; case 2016: #line 13504 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 42930 "gram.c" /* yacc.c:1652 */ break; case 2017: #line 13506 "gram.y" /* yacc.c:1652 */ { SubLink *n = makeNode(SubLink); n->subLinkType = EXPR_SUBLINK; n->subLinkId = 0; n->testexpr = NULL; n->operName = NIL; n->subselect = (yyvsp[0].node); n->location = (yylsp[0]); (yyval.node) = (Node *)n; } #line 42945 "gram.c" /* yacc.c:1652 */ break; case 2018: #line 13517 "gram.y" /* yacc.c:1652 */ { /* * Because the select_with_parens nonterminal is designed * to "eat" as many levels of parens as possible, the * '(' a_expr ')' opt_indirection production above will * fail to match a sub-SELECT with indirection decoration; * the sub-SELECT won't be regarded as an a_expr as long * as there are parens around it. To support applying * subscripting or field selection to a sub-SELECT result, * we need this redundant-looking production. */ SubLink *n = makeNode(SubLink); A_Indirection *a = makeNode(A_Indirection); n->subLinkType = EXPR_SUBLINK; n->subLinkId = 0; n->testexpr = NULL; n->operName = NIL; n->subselect = (yyvsp[-1].node); n->location = (yylsp[-1]); a->arg = (Node *)n; a->indirection = check_indirection((yyvsp[0].list), yyscanner); (yyval.node) = (Node *)a; } #line 42973 "gram.c" /* yacc.c:1652 */ break; case 2019: #line 13541 "gram.y" /* yacc.c:1652 */ { SubLink *n = makeNode(SubLink); n->subLinkType = EXISTS_SUBLINK; n->subLinkId = 0; n->testexpr = NULL; n->operName = NIL; n->subselect = (yyvsp[0].node); n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } #line 42988 "gram.c" /* yacc.c:1652 */ break; case 2020: #line 13552 "gram.y" /* yacc.c:1652 */ { SubLink *n = makeNode(SubLink); n->subLinkType = ARRAY_SUBLINK; n->subLinkId = 0; n->testexpr = NULL; n->operName = NIL; n->subselect = (yyvsp[0].node); n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } #line 43003 "gram.c" /* yacc.c:1652 */ break; case 2021: #line 13563 "gram.y" /* yacc.c:1652 */ { A_ArrayExpr *n = castNode(A_ArrayExpr, (yyvsp[0].node)); /* point outermost A_ArrayExpr to the ARRAY keyword */ n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } #line 43014 "gram.c" /* yacc.c:1652 */ break; case 2022: #line 13570 "gram.y" /* yacc.c:1652 */ { RowExpr *r = makeNode(RowExpr); r->args = (yyvsp[0].list); r->row_typeid = InvalidOid; /* not analyzed yet */ r->colnames = NIL; /* to be filled in during analysis */ r->row_format = COERCE_EXPLICIT_CALL; /* abuse */ r->location = (yylsp[0]); (yyval.node) = (Node *)r; } #line 43028 "gram.c" /* yacc.c:1652 */ break; case 2023: #line 13580 "gram.y" /* yacc.c:1652 */ { RowExpr *r = makeNode(RowExpr); r->args = (yyvsp[0].list); r->row_typeid = InvalidOid; /* not analyzed yet */ r->colnames = NIL; /* to be filled in during analysis */ r->row_format = COERCE_IMPLICIT_CAST; /* abuse */ r->location = (yylsp[0]); (yyval.node) = (Node *)r; } #line 43042 "gram.c" /* yacc.c:1652 */ break; case 2024: #line 13590 "gram.y" /* yacc.c:1652 */ { GroupingFunc *g = makeNode(GroupingFunc); g->args = (yyvsp[-1].list); g->location = (yylsp[-3]); (yyval.node) = (Node *)g; } #line 43053 "gram.c" /* yacc.c:1652 */ break; case 2025: #line 13599 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeFuncCall((yyvsp[-2].list), NIL, (yylsp[-2])); } #line 43061 "gram.c" /* yacc.c:1652 */ break; case 2026: #line 13603 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall((yyvsp[-4].list), (yyvsp[-2].list), (yylsp[-4])); n->agg_order = (yyvsp[-1].list); (yyval.node) = (Node *)n; } #line 43071 "gram.c" /* yacc.c:1652 */ break; case 2027: #line 13609 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall((yyvsp[-5].list), list_make1((yyvsp[-2].node)), (yylsp[-5])); n->func_variadic = true; n->agg_order = (yyvsp[-1].list); (yyval.node) = (Node *)n; } #line 43082 "gram.c" /* yacc.c:1652 */ break; case 2028: #line 13616 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall((yyvsp[-7].list), lappend((yyvsp[-5].list), (yyvsp[-2].node)), (yylsp[-7])); n->func_variadic = true; n->agg_order = (yyvsp[-1].list); (yyval.node) = (Node *)n; } #line 43093 "gram.c" /* yacc.c:1652 */ break; case 2029: #line 13623 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall((yyvsp[-5].list), (yyvsp[-2].list), (yylsp[-5])); n->agg_order = (yyvsp[-1].list); /* Ideally we'd mark the FuncCall node to indicate * "must be an aggregate", but there's no provision * for that in FuncCall at the moment. */ (yyval.node) = (Node *)n; } #line 43107 "gram.c" /* yacc.c:1652 */ break; case 2030: #line 13633 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall((yyvsp[-5].list), (yyvsp[-2].list), (yylsp[-5])); n->agg_order = (yyvsp[-1].list); n->agg_distinct = true; (yyval.node) = (Node *)n; } #line 43118 "gram.c" /* yacc.c:1652 */ break; case 2031: #line 13640 "gram.y" /* yacc.c:1652 */ { /* * We consider AGGREGATE(*) to invoke a parameterless * aggregate. This does the right thing for COUNT(*), * and there are no other aggregates in SQL that accept * '*' as parameter. * * The FuncCall node is also marked agg_star = true, * so that later processing can detect what the argument * really was. */ FuncCall *n = makeFuncCall((yyvsp[-3].list), NIL, (yylsp[-3])); n->agg_star = true; (yyval.node) = (Node *)n; } #line 43138 "gram.c" /* yacc.c:1652 */ break; case 2032: #line 13668 "gram.y" /* yacc.c:1652 */ { FuncCall *n = (FuncCall *) (yyvsp[-3].node); /* * The order clause for WITHIN GROUP and the one for * plain-aggregate ORDER BY share a field, so we have to * check here that at most one is present. We also check * for DISTINCT and VARIADIC here to give a better error * location. Other consistency checks are deferred to * parse analysis. */ if ((yyvsp[-2].list) != NIL) { if (n->agg_order != NIL) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("cannot use multiple ORDER BY clauses with WITHIN GROUP"), parser_errposition((yylsp[-2])))); if (n->agg_distinct) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("cannot use DISTINCT with WITHIN GROUP"), parser_errposition((yylsp[-2])))); if (n->func_variadic) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("cannot use VARIADIC with WITHIN GROUP"), parser_errposition((yylsp[-2])))); n->agg_order = (yyvsp[-2].list); n->agg_within_group = true; } n->agg_filter = (yyvsp[-1].node); n->over = (yyvsp[0].windef); (yyval.node) = (Node *) n; } #line 43177 "gram.c" /* yacc.c:1652 */ break; case 2033: #line 13703 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 43183 "gram.c" /* yacc.c:1652 */ break; case 2034: #line 13713 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 43189 "gram.c" /* yacc.c:1652 */ break; case 2035: #line 13714 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 43195 "gram.c" /* yacc.c:1652 */ break; case 2036: #line 13722 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("pg_collation_for"), list_make1((yyvsp[-1].node)), (yylsp[-4])); } #line 43205 "gram.c" /* yacc.c:1652 */ break; case 2037: #line 13728 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_DATE, -1, (yylsp[0])); } #line 43213 "gram.c" /* yacc.c:1652 */ break; case 2038: #line 13732 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIME, -1, (yylsp[0])); } #line 43221 "gram.c" /* yacc.c:1652 */ break; case 2039: #line 13736 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIME_N, (yyvsp[-1].ival), (yylsp[-3])); } #line 43229 "gram.c" /* yacc.c:1652 */ break; case 2040: #line 13740 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIMESTAMP, -1, (yylsp[0])); } #line 43237 "gram.c" /* yacc.c:1652 */ break; case 2041: #line 13744 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIMESTAMP_N, (yyvsp[-1].ival), (yylsp[-3])); } #line 43245 "gram.c" /* yacc.c:1652 */ break; case 2042: #line 13748 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIME, -1, (yylsp[0])); } #line 43253 "gram.c" /* yacc.c:1652 */ break; case 2043: #line 13752 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIME_N, (yyvsp[-1].ival), (yylsp[-3])); } #line 43261 "gram.c" /* yacc.c:1652 */ break; case 2044: #line 13756 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIMESTAMP, -1, (yylsp[0])); } #line 43269 "gram.c" /* yacc.c:1652 */ break; case 2045: #line 13760 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIMESTAMP_N, (yyvsp[-1].ival), (yylsp[-3])); } #line 43277 "gram.c" /* yacc.c:1652 */ break; case 2046: #line 13764 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_ROLE, -1, (yylsp[0])); } #line 43285 "gram.c" /* yacc.c:1652 */ break; case 2047: #line 13768 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_USER, -1, (yylsp[0])); } #line 43293 "gram.c" /* yacc.c:1652 */ break; case 2048: #line 13772 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_SESSION_USER, -1, (yylsp[0])); } #line 43301 "gram.c" /* yacc.c:1652 */ break; case 2049: #line 13776 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_USER, -1, (yylsp[0])); } #line 43309 "gram.c" /* yacc.c:1652 */ break; case 2050: #line 13780 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_CATALOG, -1, (yylsp[0])); } #line 43317 "gram.c" /* yacc.c:1652 */ break; case 2051: #line 13784 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_SCHEMA, -1, (yylsp[0])); } #line 43325 "gram.c" /* yacc.c:1652 */ break; case 2052: #line 13788 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeTypeCast((yyvsp[-3].node), (yyvsp[-1].typnam), (yylsp[-5])); } #line 43331 "gram.c" /* yacc.c:1652 */ break; case 2053: #line 13790 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("date_part"), (yyvsp[-1].list), (yylsp[-3])); } #line 43339 "gram.c" /* yacc.c:1652 */ break; case 2054: #line 13794 "gram.y" /* yacc.c:1652 */ { /* overlay(A PLACING B FROM C FOR D) is converted to * overlay(A, B, C, D) * overlay(A PLACING B FROM C) is converted to * overlay(A, B, C) */ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("overlay"), (yyvsp[-1].list), (yylsp[-3])); } #line 43352 "gram.c" /* yacc.c:1652 */ break; case 2055: #line 13803 "gram.y" /* yacc.c:1652 */ { /* position(A in B) is converted to position(B, A) */ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("position"), (yyvsp[-1].list), (yylsp[-3])); } #line 43361 "gram.c" /* yacc.c:1652 */ break; case 2056: #line 13808 "gram.y" /* yacc.c:1652 */ { /* substring(A from B for C) is converted to * substring(A, B, C) - thomas 2000-11-28 */ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("substring"), (yyvsp[-1].list), (yylsp[-3])); } #line 43372 "gram.c" /* yacc.c:1652 */ break; case 2057: #line 13815 "gram.y" /* yacc.c:1652 */ { /* TREAT(expr AS target) converts expr of a particular type to target, * which is defined to be a subtype of the original expression. * In SQL99, this is intended for use with structured UDTs, * but let's make this a generally useful form allowing stronger * coercions than are handled by implicit casting. * * Convert SystemTypeName() to SystemFuncName() even though * at the moment they result in the same thing. */ (yyval.node) = (Node *) makeFuncCall(SystemFuncName(((Value *)llast((yyvsp[-1].typnam)->names))->val.str), list_make1((yyvsp[-3].node)), (yylsp[-5])); } #line 43391 "gram.c" /* yacc.c:1652 */ break; case 2058: #line 13830 "gram.y" /* yacc.c:1652 */ { /* various trim expressions are defined in SQL * - thomas 1997-07-19 */ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("btrim"), (yyvsp[-1].list), (yylsp[-4])); } #line 43402 "gram.c" /* yacc.c:1652 */ break; case 2059: #line 13837 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("ltrim"), (yyvsp[-1].list), (yylsp[-4])); } #line 43410 "gram.c" /* yacc.c:1652 */ break; case 2060: #line 13841 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("rtrim"), (yyvsp[-1].list), (yylsp[-4])); } #line 43418 "gram.c" /* yacc.c:1652 */ break; case 2061: #line 13845 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("btrim"), (yyvsp[-1].list), (yylsp[-3])); } #line 43426 "gram.c" /* yacc.c:1652 */ break; case 2062: #line 13849 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NULLIF, "=", (yyvsp[-3].node), (yyvsp[-1].node), (yylsp[-5])); } #line 43434 "gram.c" /* yacc.c:1652 */ break; case 2063: #line 13853 "gram.y" /* yacc.c:1652 */ { CoalesceExpr *c = makeNode(CoalesceExpr); c->args = (yyvsp[-1].list); c->location = (yylsp[-3]); (yyval.node) = (Node *)c; } #line 43445 "gram.c" /* yacc.c:1652 */ break; case 2064: #line 13860 "gram.y" /* yacc.c:1652 */ { MinMaxExpr *v = makeNode(MinMaxExpr); v->args = (yyvsp[-1].list); v->op = IS_GREATEST; v->location = (yylsp[-3]); (yyval.node) = (Node *)v; } #line 43457 "gram.c" /* yacc.c:1652 */ break; case 2065: #line 13868 "gram.y" /* yacc.c:1652 */ { MinMaxExpr *v = makeNode(MinMaxExpr); v->args = (yyvsp[-1].list); v->op = IS_LEAST; v->location = (yylsp[-3]); (yyval.node) = (Node *)v; } #line 43469 "gram.c" /* yacc.c:1652 */ break; case 2066: #line 13876 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeXmlExpr(IS_XMLCONCAT, NULL, NIL, (yyvsp[-1].list), (yylsp[-3])); } #line 43477 "gram.c" /* yacc.c:1652 */ break; case 2067: #line 13880 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-1].str), NIL, NIL, (yylsp[-4])); } #line 43485 "gram.c" /* yacc.c:1652 */ break; case 2068: #line 13884 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-3].str), (yyvsp[-1].list), NIL, (yylsp[-6])); } #line 43493 "gram.c" /* yacc.c:1652 */ break; case 2069: #line 13888 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-3].str), NIL, (yyvsp[-1].list), (yylsp[-6])); } #line 43501 "gram.c" /* yacc.c:1652 */ break; case 2070: #line 13892 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-5].str), (yyvsp[-3].list), (yyvsp[-1].list), (yylsp[-8])); } #line 43509 "gram.c" /* yacc.c:1652 */ break; case 2071: #line 13896 "gram.y" /* yacc.c:1652 */ { /* xmlexists(A PASSING [BY REF] B [BY REF]) is * converted to xmlexists(A, B)*/ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("xmlexists"), list_make2((yyvsp[-2].node), (yyvsp[-1].node)), (yylsp[-4])); } #line 43519 "gram.c" /* yacc.c:1652 */ break; case 2072: #line 13902 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeXmlExpr(IS_XMLFOREST, NULL, (yyvsp[-1].list), NIL, (yylsp[-3])); } #line 43527 "gram.c" /* yacc.c:1652 */ break; case 2073: #line 13906 "gram.y" /* yacc.c:1652 */ { XmlExpr *x = (XmlExpr *) makeXmlExpr(IS_XMLPARSE, NULL, NIL, list_make2((yyvsp[-2].node), makeBoolAConst((yyvsp[-1].boolean), -1)), (yylsp[-5])); x->xmloption = (yyvsp[-3].ival); (yyval.node) = (Node *)x; } #line 43540 "gram.c" /* yacc.c:1652 */ break; case 2074: #line 13915 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[-1].str), NULL, NIL, (yylsp[-4])); } #line 43548 "gram.c" /* yacc.c:1652 */ break; case 2075: #line 13919 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[-3].str), NULL, list_make1((yyvsp[-1].node)), (yylsp[-6])); } #line 43556 "gram.c" /* yacc.c:1652 */ break; case 2076: #line 13923 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeXmlExpr(IS_XMLROOT, NULL, NIL, list_make3((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[-1].node)), (yylsp[-6])); } #line 43565 "gram.c" /* yacc.c:1652 */ break; case 2077: #line 13928 "gram.y" /* yacc.c:1652 */ { XmlSerialize *n = makeNode(XmlSerialize); n->xmloption = (yyvsp[-4].ival); n->expr = (yyvsp[-3].node); n->typeName = (yyvsp[-1].typnam); n->location = (yylsp[-6]); (yyval.node) = (Node *)n; } #line 43578 "gram.c" /* yacc.c:1652 */ break; case 2078: #line 13942 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 43584 "gram.c" /* yacc.c:1652 */ break; case 2079: #line 13944 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeNullAConst(-1); } #line 43590 "gram.c" /* yacc.c:1652 */ break; case 2080: #line 13948 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeIntConst(XML_STANDALONE_YES, -1); } #line 43596 "gram.c" /* yacc.c:1652 */ break; case 2081: #line 13950 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeIntConst(XML_STANDALONE_NO, -1); } #line 43602 "gram.c" /* yacc.c:1652 */ break; case 2082: #line 13952 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeIntConst(XML_STANDALONE_NO_VALUE, -1); } #line 43608 "gram.c" /* yacc.c:1652 */ break; case 2083: #line 13954 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeIntConst(XML_STANDALONE_OMITTED, -1); } #line 43614 "gram.c" /* yacc.c:1652 */ break; case 2084: #line 13957 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 43620 "gram.c" /* yacc.c:1652 */ break; case 2085: #line 13960 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].target)); } #line 43626 "gram.c" /* yacc.c:1652 */ break; case 2086: #line 13961 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); } #line 43632 "gram.c" /* yacc.c:1652 */ break; case 2087: #line 13965 "gram.y" /* yacc.c:1652 */ { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[0].str); (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *) (yyvsp[-2].node); (yyval.target)->location = (yylsp[-2]); } #line 43644 "gram.c" /* yacc.c:1652 */ break; case 2088: #line 13973 "gram.y" /* yacc.c:1652 */ { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = NULL; (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *) (yyvsp[0].node); (yyval.target)->location = (yylsp[0]); } #line 43656 "gram.c" /* yacc.c:1652 */ break; case 2089: #line 13982 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = XMLOPTION_DOCUMENT; } #line 43662 "gram.c" /* yacc.c:1652 */ break; case 2090: #line 13983 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = XMLOPTION_CONTENT; } #line 43668 "gram.c" /* yacc.c:1652 */ break; case 2091: #line 13986 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 43674 "gram.c" /* yacc.c:1652 */ break; case 2092: #line 13987 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 43680 "gram.c" /* yacc.c:1652 */ break; case 2093: #line 13988 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 43686 "gram.c" /* yacc.c:1652 */ break; case 2094: #line 13994 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 43694 "gram.c" /* yacc.c:1652 */ break; case 2095: #line 13998 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[-2].node); } #line 43702 "gram.c" /* yacc.c:1652 */ break; case 2096: #line 14002 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 43710 "gram.c" /* yacc.c:1652 */ break; case 2097: #line 14006 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[-2].node); } #line 43718 "gram.c" /* yacc.c:1652 */ break; case 2098: #line 14016 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 43724 "gram.c" /* yacc.c:1652 */ break; case 2099: #line 14017 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 43730 "gram.c" /* yacc.c:1652 */ break; case 2100: #line 14021 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[-1].node); } #line 43736 "gram.c" /* yacc.c:1652 */ break; case 2101: #line 14022 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 43742 "gram.c" /* yacc.c:1652 */ break; case 2102: #line 14030 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 43748 "gram.c" /* yacc.c:1652 */ break; case 2103: #line 14031 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 43754 "gram.c" /* yacc.c:1652 */ break; case 2104: #line 14035 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].windef)); } #line 43760 "gram.c" /* yacc.c:1652 */ break; case 2105: #line 14037 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].windef)); } #line 43766 "gram.c" /* yacc.c:1652 */ break; case 2106: #line 14042 "gram.y" /* yacc.c:1652 */ { WindowDef *n = (yyvsp[0].windef); n->name = (yyvsp[-2].str); (yyval.windef) = n; } #line 43776 "gram.c" /* yacc.c:1652 */ break; case 2107: #line 14050 "gram.y" /* yacc.c:1652 */ { (yyval.windef) = (yyvsp[0].windef); } #line 43782 "gram.c" /* yacc.c:1652 */ break; case 2108: #line 14052 "gram.y" /* yacc.c:1652 */ { WindowDef *n = makeNode(WindowDef); n->name = (yyvsp[0].str); n->refname = NULL; n->partitionClause = NIL; n->orderClause = NIL; n->frameOptions = FRAMEOPTION_DEFAULTS; n->startOffset = NULL; n->endOffset = NULL; n->location = (yylsp[0]); (yyval.windef) = n; } #line 43799 "gram.c" /* yacc.c:1652 */ break; case 2109: #line 14065 "gram.y" /* yacc.c:1652 */ { (yyval.windef) = NULL; } #line 43805 "gram.c" /* yacc.c:1652 */ break; case 2110: #line 14070 "gram.y" /* yacc.c:1652 */ { WindowDef *n = makeNode(WindowDef); n->name = NULL; n->refname = (yyvsp[-4].str); n->partitionClause = (yyvsp[-3].list); n->orderClause = (yyvsp[-2].list); /* copy relevant fields of opt_frame_clause */ n->frameOptions = (yyvsp[-1].windef)->frameOptions; n->startOffset = (yyvsp[-1].windef)->startOffset; n->endOffset = (yyvsp[-1].windef)->endOffset; n->location = (yylsp[-5]); (yyval.windef) = n; } #line 43823 "gram.c" /* yacc.c:1652 */ break; case 2111: #line 14095 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 43829 "gram.c" /* yacc.c:1652 */ break; case 2112: #line 14096 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 43835 "gram.c" /* yacc.c:1652 */ break; case 2113: #line 14099 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 43841 "gram.c" /* yacc.c:1652 */ break; case 2114: #line 14100 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 43847 "gram.c" /* yacc.c:1652 */ break; case 2115: #line 14109 "gram.y" /* yacc.c:1652 */ { WindowDef *n = (yyvsp[-1].windef); n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE; n->frameOptions |= (yyvsp[0].ival); (yyval.windef) = n; } #line 43858 "gram.c" /* yacc.c:1652 */ break; case 2116: #line 14116 "gram.y" /* yacc.c:1652 */ { WindowDef *n = (yyvsp[-1].windef); n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS; n->frameOptions |= (yyvsp[0].ival); (yyval.windef) = n; } #line 43869 "gram.c" /* yacc.c:1652 */ break; case 2117: #line 14123 "gram.y" /* yacc.c:1652 */ { WindowDef *n = (yyvsp[-1].windef); n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_GROUPS; n->frameOptions |= (yyvsp[0].ival); (yyval.windef) = n; } #line 43880 "gram.c" /* yacc.c:1652 */ break; case 2118: #line 14130 "gram.y" /* yacc.c:1652 */ { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_DEFAULTS; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; } #line 43892 "gram.c" /* yacc.c:1652 */ break; case 2119: #line 14140 "gram.y" /* yacc.c:1652 */ { WindowDef *n = (yyvsp[0].windef); /* reject invalid cases */ if (n->frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING) ereport(ERROR, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame start cannot be UNBOUNDED FOLLOWING"), parser_errposition((yylsp[0])))); if (n->frameOptions & FRAMEOPTION_START_OFFSET_FOLLOWING) ereport(ERROR, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame starting from following row cannot end with current row"), parser_errposition((yylsp[0])))); n->frameOptions |= FRAMEOPTION_END_CURRENT_ROW; (yyval.windef) = n; } #line 43913 "gram.c" /* yacc.c:1652 */ break; case 2120: #line 14157 "gram.y" /* yacc.c:1652 */ { WindowDef *n1 = (yyvsp[-2].windef); WindowDef *n2 = (yyvsp[0].windef); /* form merged options */ int frameOptions = n1->frameOptions; /* shift converts START_ options to END_ options */ frameOptions |= n2->frameOptions << 1; frameOptions |= FRAMEOPTION_BETWEEN; /* reject invalid cases */ if (frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING) ereport(ERROR, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame start cannot be UNBOUNDED FOLLOWING"), parser_errposition((yylsp[-2])))); if (frameOptions & FRAMEOPTION_END_UNBOUNDED_PRECEDING) ereport(ERROR, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame end cannot be UNBOUNDED PRECEDING"), parser_errposition((yylsp[0])))); if ((frameOptions & FRAMEOPTION_START_CURRENT_ROW) && (frameOptions & FRAMEOPTION_END_OFFSET_PRECEDING)) ereport(ERROR, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame starting from current row cannot have preceding rows"), parser_errposition((yylsp[0])))); if ((frameOptions & FRAMEOPTION_START_OFFSET_FOLLOWING) && (frameOptions & (FRAMEOPTION_END_OFFSET_PRECEDING | FRAMEOPTION_END_CURRENT_ROW))) ereport(ERROR, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame starting from following row cannot have preceding rows"), parser_errposition((yylsp[0])))); n1->frameOptions = frameOptions; n1->endOffset = n2->startOffset; (yyval.windef) = n1; } #line 43954 "gram.c" /* yacc.c:1652 */ break; case 2121: #line 14202 "gram.y" /* yacc.c:1652 */ { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_UNBOUNDED_PRECEDING; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; } #line 43966 "gram.c" /* yacc.c:1652 */ break; case 2122: #line 14210 "gram.y" /* yacc.c:1652 */ { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_UNBOUNDED_FOLLOWING; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; } #line 43978 "gram.c" /* yacc.c:1652 */ break; case 2123: #line 14218 "gram.y" /* yacc.c:1652 */ { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_CURRENT_ROW; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; } #line 43990 "gram.c" /* yacc.c:1652 */ break; case 2124: #line 14226 "gram.y" /* yacc.c:1652 */ { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_OFFSET_PRECEDING; n->startOffset = (yyvsp[-1].node); n->endOffset = NULL; (yyval.windef) = n; } #line 44002 "gram.c" /* yacc.c:1652 */ break; case 2125: #line 14234 "gram.y" /* yacc.c:1652 */ { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_OFFSET_FOLLOWING; n->startOffset = (yyvsp[-1].node); n->endOffset = NULL; (yyval.windef) = n; } #line 44014 "gram.c" /* yacc.c:1652 */ break; case 2126: #line 14244 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FRAMEOPTION_EXCLUDE_CURRENT_ROW; } #line 44020 "gram.c" /* yacc.c:1652 */ break; case 2127: #line 14245 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FRAMEOPTION_EXCLUDE_GROUP; } #line 44026 "gram.c" /* yacc.c:1652 */ break; case 2128: #line 14246 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FRAMEOPTION_EXCLUDE_TIES; } #line 44032 "gram.c" /* yacc.c:1652 */ break; case 2129: #line 14247 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 44038 "gram.c" /* yacc.c:1652 */ break; case 2130: #line 14248 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 44044 "gram.c" /* yacc.c:1652 */ break; case 2131: #line 14262 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 44050 "gram.c" /* yacc.c:1652 */ break; case 2132: #line 14263 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 44056 "gram.c" /* yacc.c:1652 */ break; case 2133: #line 14264 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-3].list), (yyvsp[-1].node)); } #line 44062 "gram.c" /* yacc.c:1652 */ break; case 2134: #line 14267 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 44068 "gram.c" /* yacc.c:1652 */ break; case 2135: #line 14268 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 44074 "gram.c" /* yacc.c:1652 */ break; case 2136: #line 14271 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-3].list), (yyvsp[-1].node)); } #line 44080 "gram.c" /* yacc.c:1652 */ break; case 2137: #line 14274 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = ANY_SUBLINK; } #line 44086 "gram.c" /* yacc.c:1652 */ break; case 2138: #line 14275 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = ANY_SUBLINK; } #line 44092 "gram.c" /* yacc.c:1652 */ break; case 2139: #line 14276 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = ALL_SUBLINK; } #line 44098 "gram.c" /* yacc.c:1652 */ break; case 2140: #line 14279 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 44104 "gram.c" /* yacc.c:1652 */ break; case 2141: #line 14280 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 44110 "gram.c" /* yacc.c:1652 */ break; case 2142: #line 14283 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "+"; } #line 44116 "gram.c" /* yacc.c:1652 */ break; case 2143: #line 14284 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "-"; } #line 44122 "gram.c" /* yacc.c:1652 */ break; case 2144: #line 14285 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "*"; } #line 44128 "gram.c" /* yacc.c:1652 */ break; case 2145: #line 14286 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "/"; } #line 44134 "gram.c" /* yacc.c:1652 */ break; case 2146: #line 14287 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "%"; } #line 44140 "gram.c" /* yacc.c:1652 */ break; case 2147: #line 14288 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "^"; } #line 44146 "gram.c" /* yacc.c:1652 */ break; case 2148: #line 14289 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "<"; } #line 44152 "gram.c" /* yacc.c:1652 */ break; case 2149: #line 14290 "gram.y" /* yacc.c:1652 */ { (yyval.str) = ">"; } #line 44158 "gram.c" /* yacc.c:1652 */ break; case 2150: #line 14291 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "="; } #line 44164 "gram.c" /* yacc.c:1652 */ break; case 2151: #line 14292 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "<="; } #line 44170 "gram.c" /* yacc.c:1652 */ break; case 2152: #line 14293 "gram.y" /* yacc.c:1652 */ { (yyval.str) = ">="; } #line 44176 "gram.c" /* yacc.c:1652 */ break; case 2153: #line 14294 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "<>"; } #line 44182 "gram.c" /* yacc.c:1652 */ break; case 2154: #line 14298 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } #line 44188 "gram.c" /* yacc.c:1652 */ break; case 2155: #line 14300 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 44194 "gram.c" /* yacc.c:1652 */ break; case 2156: #line 14305 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } #line 44200 "gram.c" /* yacc.c:1652 */ break; case 2157: #line 14307 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 44206 "gram.c" /* yacc.c:1652 */ break; case 2158: #line 14312 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } #line 44212 "gram.c" /* yacc.c:1652 */ break; case 2159: #line 14314 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 44218 "gram.c" /* yacc.c:1652 */ break; case 2160: #line 14316 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString("~~")); } #line 44224 "gram.c" /* yacc.c:1652 */ break; case 2161: #line 14318 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString("!~~")); } #line 44230 "gram.c" /* yacc.c:1652 */ break; case 2162: #line 14320 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString("~~*")); } #line 44236 "gram.c" /* yacc.c:1652 */ break; case 2163: #line 14322 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString("!~~*")); } #line 44242 "gram.c" /* yacc.c:1652 */ break; case 2164: #line 14334 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 44250 "gram.c" /* yacc.c:1652 */ break; case 2165: #line 14338 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 44258 "gram.c" /* yacc.c:1652 */ break; case 2166: #line 14345 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 44266 "gram.c" /* yacc.c:1652 */ break; case 2167: #line 14349 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 44274 "gram.c" /* yacc.c:1652 */ break; case 2168: #line 14355 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 44282 "gram.c" /* yacc.c:1652 */ break; case 2169: #line 14359 "gram.y" /* yacc.c:1652 */ { NamedArgExpr *na = makeNode(NamedArgExpr); na->name = (yyvsp[-2].str); na->arg = (Expr *) (yyvsp[0].node); na->argnumber = -1; /* until determined */ na->location = (yylsp[-2]); (yyval.node) = (Node *) na; } #line 44295 "gram.c" /* yacc.c:1652 */ break; case 2170: #line 14368 "gram.y" /* yacc.c:1652 */ { NamedArgExpr *na = makeNode(NamedArgExpr); na->name = (yyvsp[-2].str); na->arg = (Expr *) (yyvsp[0].node); na->argnumber = -1; /* until determined */ na->location = (yylsp[-2]); (yyval.node) = (Node *) na; } #line 44308 "gram.c" /* yacc.c:1652 */ break; case 2171: #line 14378 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].typnam)); } #line 44314 "gram.c" /* yacc.c:1652 */ break; case 2172: #line 14379 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].typnam)); } #line 44320 "gram.c" /* yacc.c:1652 */ break; case 2173: #line 14383 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeAArrayExpr((yyvsp[-1].list), (yylsp[-2])); } #line 44328 "gram.c" /* yacc.c:1652 */ break; case 2174: #line 14387 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeAArrayExpr((yyvsp[-1].list), (yylsp[-2])); } #line 44336 "gram.c" /* yacc.c:1652 */ break; case 2175: #line 14391 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeAArrayExpr(NIL, (yylsp[-1])); } #line 44344 "gram.c" /* yacc.c:1652 */ break; case 2176: #line 14396 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 44350 "gram.c" /* yacc.c:1652 */ break; case 2177: #line 14397 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 44356 "gram.c" /* yacc.c:1652 */ break; case 2178: #line 14403 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(makeStringConst((yyvsp[-2].str), (yylsp[-2])), (yyvsp[0].node)); } #line 44364 "gram.c" /* yacc.c:1652 */ break; case 2179: #line 14406 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 44370 "gram.c" /* yacc.c:1652 */ break; case 2180: #line 14413 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 44376 "gram.c" /* yacc.c:1652 */ break; case 2181: #line 14414 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "year"; } #line 44382 "gram.c" /* yacc.c:1652 */ break; case 2182: #line 14415 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "month"; } #line 44388 "gram.c" /* yacc.c:1652 */ break; case 2183: #line 14416 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "day"; } #line 44394 "gram.c" /* yacc.c:1652 */ break; case 2184: #line 14417 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "hour"; } #line 44400 "gram.c" /* yacc.c:1652 */ break; case 2185: #line 14418 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "minute"; } #line 44406 "gram.c" /* yacc.c:1652 */ break; case 2186: #line 14419 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "second"; } #line 44412 "gram.c" /* yacc.c:1652 */ break; case 2187: #line 14420 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 44418 "gram.c" /* yacc.c:1652 */ break; case 2188: #line 14431 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make4((yyvsp[-3].node), (yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); } #line 44426 "gram.c" /* yacc.c:1652 */ break; case 2189: #line 14435 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make3((yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); } #line 44434 "gram.c" /* yacc.c:1652 */ break; case 2190: #line 14442 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 44440 "gram.c" /* yacc.c:1652 */ break; case 2191: #line 14448 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[0].node), (yyvsp[-2].node)); } #line 44446 "gram.c" /* yacc.c:1652 */ break; case 2192: #line 14449 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 44452 "gram.c" /* yacc.c:1652 */ break; case 2193: #line 14466 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make3((yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); } #line 44460 "gram.c" /* yacc.c:1652 */ break; case 2194: #line 14470 "gram.y" /* yacc.c:1652 */ { /* not legal per SQL99, but might as well allow it */ (yyval.list) = list_make3((yyvsp[-2].node), (yyvsp[0].node), (yyvsp[-1].node)); } #line 44469 "gram.c" /* yacc.c:1652 */ break; case 2195: #line 14475 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[-1].node), (yyvsp[0].node)); } #line 44477 "gram.c" /* yacc.c:1652 */ break; case 2196: #line 14479 "gram.y" /* yacc.c:1652 */ { /* * Since there are no cases where this syntax allows * a textual FOR value, we forcibly cast the argument * to int4. The possible matches in pg_proc are * substring(text,int4) and substring(text,text), * and we don't want the parser to choose the latter, * which it is likely to do if the second argument * is unknown or doesn't have an implicit cast to int4. */ (yyval.list) = list_make3((yyvsp[-1].node), makeIntConst(1, -1), makeTypeCast((yyvsp[0].node), SystemTypeName("int4"), -1)); } #line 44496 "gram.c" /* yacc.c:1652 */ break; case 2197: #line 14494 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 44504 "gram.c" /* yacc.c:1652 */ break; case 2198: #line 14498 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 44510 "gram.c" /* yacc.c:1652 */ break; case 2199: #line 14502 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 44516 "gram.c" /* yacc.c:1652 */ break; case 2200: #line 14505 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 44522 "gram.c" /* yacc.c:1652 */ break; case 2201: #line 14508 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[0].list), (yyvsp[-2].node)); } #line 44528 "gram.c" /* yacc.c:1652 */ break; case 2202: #line 14509 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 44534 "gram.c" /* yacc.c:1652 */ break; case 2203: #line 14510 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 44540 "gram.c" /* yacc.c:1652 */ break; case 2204: #line 14514 "gram.y" /* yacc.c:1652 */ { SubLink *n = makeNode(SubLink); n->subselect = (yyvsp[0].node); /* other fields will be filled later */ (yyval.node) = (Node *)n; } #line 44551 "gram.c" /* yacc.c:1652 */ break; case 2205: #line 14520 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *)(yyvsp[-1].list); } #line 44557 "gram.c" /* yacc.c:1652 */ break; case 2206: #line 14531 "gram.y" /* yacc.c:1652 */ { CaseExpr *c = makeNode(CaseExpr); c->casetype = InvalidOid; /* not analyzed yet */ c->arg = (Expr *) (yyvsp[-3].node); c->args = (yyvsp[-2].list); c->defresult = (Expr *) (yyvsp[-1].node); c->location = (yylsp[-4]); (yyval.node) = (Node *)c; } #line 44571 "gram.c" /* yacc.c:1652 */ break; case 2207: #line 14544 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 44577 "gram.c" /* yacc.c:1652 */ break; case 2208: #line 14545 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } #line 44583 "gram.c" /* yacc.c:1652 */ break; case 2209: #line 14550 "gram.y" /* yacc.c:1652 */ { CaseWhen *w = makeNode(CaseWhen); w->expr = (Expr *) (yyvsp[-2].node); w->result = (Expr *) (yyvsp[0].node); w->location = (yylsp[-3]); (yyval.node) = (Node *)w; } #line 44595 "gram.c" /* yacc.c:1652 */ break; case 2210: #line 14560 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 44601 "gram.c" /* yacc.c:1652 */ break; case 2211: #line 14561 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 44607 "gram.c" /* yacc.c:1652 */ break; case 2212: #line 14564 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 44613 "gram.c" /* yacc.c:1652 */ break; case 2213: #line 14565 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 44619 "gram.c" /* yacc.c:1652 */ break; case 2214: #line 14569 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeColumnRef((yyvsp[0].str), NIL, (yylsp[0]), yyscanner); } #line 44627 "gram.c" /* yacc.c:1652 */ break; case 2215: #line 14573 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeColumnRef((yyvsp[-1].str), (yyvsp[0].list), (yylsp[-1]), yyscanner); } #line 44635 "gram.c" /* yacc.c:1652 */ break; case 2216: #line 14580 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } #line 44643 "gram.c" /* yacc.c:1652 */ break; case 2217: #line 14584 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeNode(A_Star); } #line 44651 "gram.c" /* yacc.c:1652 */ break; case 2218: #line 14588 "gram.y" /* yacc.c:1652 */ { A_Indices *ai = makeNode(A_Indices); ai->is_slice = false; ai->lidx = NULL; ai->uidx = (yyvsp[-1].node); (yyval.node) = (Node *) ai; } #line 44663 "gram.c" /* yacc.c:1652 */ break; case 2219: #line 14596 "gram.y" /* yacc.c:1652 */ { A_Indices *ai = makeNode(A_Indices); ai->is_slice = true; ai->lidx = (yyvsp[-3].node); ai->uidx = (yyvsp[-1].node); (yyval.node) = (Node *) ai; } #line 44675 "gram.c" /* yacc.c:1652 */ break; case 2220: #line 14606 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 44681 "gram.c" /* yacc.c:1652 */ break; case 2221: #line 14607 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 44687 "gram.c" /* yacc.c:1652 */ break; case 2222: #line 14611 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 44693 "gram.c" /* yacc.c:1652 */ break; case 2223: #line 14612 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } #line 44699 "gram.c" /* yacc.c:1652 */ break; case 2224: #line 14616 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 44705 "gram.c" /* yacc.c:1652 */ break; case 2225: #line 14617 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } #line 44711 "gram.c" /* yacc.c:1652 */ break; case 2228: #line 14631 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 44717 "gram.c" /* yacc.c:1652 */ break; case 2229: #line 14632 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 44723 "gram.c" /* yacc.c:1652 */ break; case 2230: #line 14636 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].target)); } #line 44729 "gram.c" /* yacc.c:1652 */ break; case 2231: #line 14637 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); } #line 44735 "gram.c" /* yacc.c:1652 */ break; case 2232: #line 14641 "gram.y" /* yacc.c:1652 */ { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[0].str); (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *)(yyvsp[-2].node); (yyval.target)->location = (yylsp[-2]); } #line 44747 "gram.c" /* yacc.c:1652 */ break; case 2233: #line 14657 "gram.y" /* yacc.c:1652 */ { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[0].str); (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *)(yyvsp[-1].node); (yyval.target)->location = (yylsp[-1]); } #line 44759 "gram.c" /* yacc.c:1652 */ break; case 2234: #line 14665 "gram.y" /* yacc.c:1652 */ { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = NULL; (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *)(yyvsp[0].node); (yyval.target)->location = (yylsp[0]); } #line 44771 "gram.c" /* yacc.c:1652 */ break; case 2235: #line 14673 "gram.y" /* yacc.c:1652 */ { ColumnRef *n = makeNode(ColumnRef); n->fields = list_make1(makeNode(A_Star)); n->location = (yylsp[0]); (yyval.target) = makeNode(ResTarget); (yyval.target)->name = NULL; (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *)n; (yyval.target)->location = (yylsp[0]); } #line 44787 "gram.c" /* yacc.c:1652 */ break; case 2236: #line 14694 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].range)); } #line 44793 "gram.c" /* yacc.c:1652 */ break; case 2237: #line 14695 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].range)); } #line 44799 "gram.c" /* yacc.c:1652 */ break; case 2238: #line 14707 "gram.y" /* yacc.c:1652 */ { (yyval.range) = makeRangeVar(NULL, (yyvsp[0].str), (yylsp[0])); } #line 44807 "gram.c" /* yacc.c:1652 */ break; case 2239: #line 14711 "gram.y" /* yacc.c:1652 */ { check_qualified_name((yyvsp[0].list), yyscanner); (yyval.range) = makeRangeVar(NULL, NULL, (yylsp[-1])); switch (list_length((yyvsp[0].list))) { case 1: (yyval.range)->catalogname = NULL; (yyval.range)->schemaname = (yyvsp[-1].str); (yyval.range)->relname = strVal(linitial((yyvsp[0].list))); break; case 2: (yyval.range)->catalogname = (yyvsp[-1].str); (yyval.range)->schemaname = strVal(linitial((yyvsp[0].list))); (yyval.range)->relname = strVal(lsecond((yyvsp[0].list))); break; default: ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("improper qualified name (too many dotted names): %s", NameListToString(lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)))), parser_errposition((yylsp[-1])))); break; } } #line 44836 "gram.c" /* yacc.c:1652 */ break; case 2240: #line 14738 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } #line 44842 "gram.c" /* yacc.c:1652 */ break; case 2241: #line 14740 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); } #line 44848 "gram.c" /* yacc.c:1652 */ break; case 2242: #line 14744 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 44854 "gram.c" /* yacc.c:1652 */ break; case 2243: #line 14747 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 44860 "gram.c" /* yacc.c:1652 */ break; case 2244: #line 14750 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 44866 "gram.c" /* yacc.c:1652 */ break; case 2245: #line 14752 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 44872 "gram.c" /* yacc.c:1652 */ break; case 2246: #line 14754 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 44878 "gram.c" /* yacc.c:1652 */ break; case 2247: #line 14756 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 44884 "gram.c" /* yacc.c:1652 */ break; case 2248: #line 14767 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } #line 44890 "gram.c" /* yacc.c:1652 */ break; case 2249: #line 14769 "gram.y" /* yacc.c:1652 */ { (yyval.list) = check_func_name(lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)), yyscanner); } #line 44899 "gram.c" /* yacc.c:1652 */ break; case 2250: #line 14780 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeIntConst((yyvsp[0].ival), (yylsp[0])); } #line 44907 "gram.c" /* yacc.c:1652 */ break; case 2251: #line 14784 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeFloatConst((yyvsp[0].str), (yylsp[0])); } #line 44915 "gram.c" /* yacc.c:1652 */ break; case 2252: #line 14788 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); } #line 44923 "gram.c" /* yacc.c:1652 */ break; case 2253: #line 14792 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeBitStringConst((yyvsp[0].str), (yylsp[0])); } #line 44931 "gram.c" /* yacc.c:1652 */ break; case 2254: #line 14796 "gram.y" /* yacc.c:1652 */ { /* This is a bit constant per SQL99: * Without Feature F511, "BIT data type", * a shall not be a * or a . */ (yyval.node) = makeBitStringConst((yyvsp[0].str), (yylsp[0])); } #line 44944 "gram.c" /* yacc.c:1652 */ break; case 2255: #line 14805 "gram.y" /* yacc.c:1652 */ { /* generic type 'literal' syntax */ TypeName *t = makeTypeNameFromNameList((yyvsp[-1].list)); t->location = (yylsp[-1]); (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t); } #line 44955 "gram.c" /* yacc.c:1652 */ break; case 2256: #line 14812 "gram.y" /* yacc.c:1652 */ { /* generic syntax with a type modifier */ TypeName *t = makeTypeNameFromNameList((yyvsp[-5].list)); ListCell *lc; /* * We must use func_arg_list and opt_sort_clause in the * production to avoid reduce/reduce conflicts, but we * don't actually wish to allow NamedArgExpr in this * context, nor ORDER BY. */ foreach(lc, (yyvsp[-3].list)) { NamedArgExpr *arg = (NamedArgExpr *) lfirst(lc); if (IsA(arg, NamedArgExpr)) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("type modifier cannot have parameter name"), parser_errposition(arg->location))); } if ((yyvsp[-2].list) != NIL) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("type modifier cannot have ORDER BY"), parser_errposition((yylsp[-2])))); t->typmods = (yyvsp[-3].list); t->location = (yylsp[-5]); (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t); } #line 44991 "gram.c" /* yacc.c:1652 */ break; case 2257: #line 14844 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), (yyvsp[-1].typnam)); } #line 44999 "gram.c" /* yacc.c:1652 */ break; case 2258: #line 14848 "gram.y" /* yacc.c:1652 */ { TypeName *t = (yyvsp[-2].typnam); t->typmods = (yyvsp[0].list); (yyval.node) = makeStringConstCast((yyvsp[-1].str), (yylsp[-1]), t); } #line 45009 "gram.c" /* yacc.c:1652 */ break; case 2259: #line 14854 "gram.y" /* yacc.c:1652 */ { TypeName *t = (yyvsp[-4].typnam); t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), makeIntConst((yyvsp[-2].ival), (yylsp[-2]))); (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t); } #line 45020 "gram.c" /* yacc.c:1652 */ break; case 2260: #line 14861 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeBoolAConst(true, (yylsp[0])); } #line 45028 "gram.c" /* yacc.c:1652 */ break; case 2261: #line 14865 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeBoolAConst(false, (yylsp[0])); } #line 45036 "gram.c" /* yacc.c:1652 */ break; case 2262: #line 14869 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeNullAConst((yylsp[0])); } #line 45044 "gram.c" /* yacc.c:1652 */ break; case 2263: #line 14874 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[0].ival); } #line 45050 "gram.c" /* yacc.c:1652 */ break; case 2264: #line 14875 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 45056 "gram.c" /* yacc.c:1652 */ break; case 2265: #line 14877 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[0].ival); } #line 45062 "gram.c" /* yacc.c:1652 */ break; case 2266: #line 14878 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = + (yyvsp[0].ival); } #line 45068 "gram.c" /* yacc.c:1652 */ break; case 2267: #line 14879 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = - (yyvsp[0].ival); } #line 45074 "gram.c" /* yacc.c:1652 */ break; case 2268: #line 14884 "gram.y" /* yacc.c:1652 */ { RoleSpec *spc = (RoleSpec *) (yyvsp[0].rolespec); switch (spc->roletype) { case ROLESPEC_CSTRING: (yyval.str) = spc->rolename; break; case ROLESPEC_PUBLIC: ereport(ERROR, (errcode(ERRCODE_RESERVED_NAME), errmsg("role name \"%s\" is reserved", "public"), parser_errposition((yylsp[0])))); break; case ROLESPEC_SESSION_USER: ereport(ERROR, (errcode(ERRCODE_RESERVED_NAME), errmsg("%s cannot be used as a role name here", "SESSION_USER"), parser_errposition((yylsp[0])))); break; case ROLESPEC_CURRENT_USER: ereport(ERROR, (errcode(ERRCODE_RESERVED_NAME), errmsg("%s cannot be used as a role name here", "CURRENT_USER"), parser_errposition((yylsp[0])))); break; } } #line 45109 "gram.c" /* yacc.c:1652 */ break; case 2269: #line 14917 "gram.y" /* yacc.c:1652 */ { /* * "public" and "none" are not keywords, but they must * be treated specially here. */ RoleSpec *n; if (strcmp((yyvsp[0].str), "public") == 0) { n = (RoleSpec *) makeRoleSpec(ROLESPEC_PUBLIC, (yylsp[0])); n->roletype = ROLESPEC_PUBLIC; } else if (strcmp((yyvsp[0].str), "none") == 0) { ereport(ERROR, (errcode(ERRCODE_RESERVED_NAME), errmsg("role name \"%s\" is reserved", "none"), parser_errposition((yylsp[0])))); } else { n = makeRoleSpec(ROLESPEC_CSTRING, (yylsp[0])); n->rolename = pstrdup((yyvsp[0].str)); } (yyval.rolespec) = n; } #line 45140 "gram.c" /* yacc.c:1652 */ break; case 2270: #line 14944 "gram.y" /* yacc.c:1652 */ { (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_USER, (yylsp[0])); } #line 45148 "gram.c" /* yacc.c:1652 */ break; case 2271: #line 14948 "gram.y" /* yacc.c:1652 */ { (yyval.rolespec) = makeRoleSpec(ROLESPEC_SESSION_USER, (yylsp[0])); } #line 45156 "gram.c" /* yacc.c:1652 */ break; case 2272: #line 14954 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].rolespec)); } #line 45162 "gram.c" /* yacc.c:1652 */ break; case 2273: #line 14956 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].rolespec)); } #line 45168 "gram.c" /* yacc.c:1652 */ break; case 2274: #line 14972 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 45174 "gram.c" /* yacc.c:1652 */ break; case 2275: #line 14973 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 45180 "gram.c" /* yacc.c:1652 */ break; case 2276: #line 14974 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 45186 "gram.c" /* yacc.c:1652 */ break; case 2277: #line 14979 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 45192 "gram.c" /* yacc.c:1652 */ break; case 2278: #line 14980 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 45198 "gram.c" /* yacc.c:1652 */ break; case 2279: #line 14981 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 45204 "gram.c" /* yacc.c:1652 */ break; case 2280: #line 14986 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 45210 "gram.c" /* yacc.c:1652 */ break; case 2281: #line 14987 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 45216 "gram.c" /* yacc.c:1652 */ break; case 2282: #line 14988 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 45222 "gram.c" /* yacc.c:1652 */ break; case 2283: #line 14989 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 45228 "gram.c" /* yacc.c:1652 */ break; case 2284: #line 14995 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 45234 "gram.c" /* yacc.c:1652 */ break; case 2285: #line 14996 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 45240 "gram.c" /* yacc.c:1652 */ break; case 2286: #line 14997 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 45246 "gram.c" /* yacc.c:1652 */ break; case 2287: #line 14998 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 45252 "gram.c" /* yacc.c:1652 */ break; case 2288: #line 14999 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 45258 "gram.c" /* yacc.c:1652 */ break; #line 45262 "gram.c" /* yacc.c:1652 */ 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; *++yylsp = yyloc; /* 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. */ { const int yylhs = yyr1[yyn] - YYNTOKENS; const int yyi = yypgoto[yylhs] + *yyssp; yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp ? yytable[yyi] : yydefgoto[yylhs]); } 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 (&yylloc, yyscanner, 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 (&yylloc, yyscanner, yymsgp); if (yysyntax_error_status == 2) goto yyexhaustedlab; } # undef YYSYNTAX_ERROR #endif } yyerror_range[1] = yylloc; 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, &yylloc, yyscanner); yychar = YYEMPTY; } } /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; /*---------------------------------------------------. | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: /* Pacify compilers when the user code never invokes YYERROR and the label yyerrorlab therefore never appears in user code. */ if (0) YYERROR; /* 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. | `-------------------------------------------------------------*/ 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; yyerror_range[1] = *yylsp; yydestruct ("Error: popping", yystos[yystate], yyvsp, yylsp, yyscanner); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END yyerror_range[2] = yylloc; /* Using YYLLOC is tempting, but would change the location of the lookahead. YYLOC is available though. */ YYLLOC_DEFAULT (yyloc, yyerror_range, 2); *++yylsp = yyloc; /* 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 (&yylloc, yyscanner, YY_("memory exhausted")); yyresult = 2; /* Fall through. */ #endif /*-----------------------------------------------------. | yyreturn -- parsing is finished, return the result. | `-----------------------------------------------------*/ 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, &yylloc, yyscanner); } /* 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, yylsp, yyscanner); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif #if YYERROR_VERBOSE if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif return yyresult; } #line 15496 "gram.y" /* yacc.c:1918 */ /* * The signature of this function is required by bison. However, we * ignore the passed yylloc and instead use the last token position * available from the scanner. */ static void base_yyerror(YYLTYPE *yylloc, core_yyscan_t yyscanner, const char *msg) { parser_yyerror(msg); } static RawStmt * makeRawStmt(Node *stmt, int stmt_location) { RawStmt *rs = makeNode(RawStmt); rs->stmt = stmt; rs->stmt_location = stmt_location; rs->stmt_len = 0; /* might get changed later */ return rs; } /* Adjust a RawStmt to reflect that it doesn't run to the end of the string */ static void updateRawStmtEnd(RawStmt *rs, int end_location) { /* * If we already set the length, don't change it. This is for situations * like "select foo ;; select bar" where the same statement will be last * in the string for more than one semicolon. */ if (rs->stmt_len > 0) return; /* OK, update length of RawStmt */ rs->stmt_len = end_location - rs->stmt_location; } static Node * makeColumnRef(char *colname, List *indirection, int location, core_yyscan_t yyscanner) { /* * Generate a ColumnRef node, with an A_Indirection node added if there * is any subscripting in the specified indirection list. However, * any field selection at the start of the indirection list must be * transposed into the "fields" part of the ColumnRef node. */ ColumnRef *c = makeNode(ColumnRef); int nfields = 0; ListCell *l; c->location = location; foreach(l, indirection) { if (IsA(lfirst(l), A_Indices)) { A_Indirection *i = makeNode(A_Indirection); if (nfields == 0) { /* easy case - all indirection goes to A_Indirection */ c->fields = list_make1(makeString(colname)); i->indirection = check_indirection(indirection, yyscanner); } else { /* got to split the list in two */ i->indirection = check_indirection(list_copy_tail(indirection, nfields), yyscanner); indirection = list_truncate(indirection, nfields); c->fields = lcons(makeString(colname), indirection); } i->arg = (Node *) c; return (Node *) i; } else if (IsA(lfirst(l), A_Star)) { /* We only allow '*' at the end of a ColumnRef */ if (lnext(l) != NULL) parser_yyerror("improper use of \"*\""); } nfields++; } /* No subscripting, so all indirection gets added to field list */ c->fields = lcons(makeString(colname), indirection); return (Node *) c; } static Node * makeTypeCast(Node *arg, TypeName *typename, int location) { TypeCast *n = makeNode(TypeCast); n->arg = arg; n->typeName = typename; n->location = location; return (Node *) n; } static Node * makeStringConst(char *str, int location) { A_Const *n = makeNode(A_Const); n->val.type = T_String; n->val.val.str = str; n->location = location; return (Node *)n; } static Node * makeStringConstCast(char *str, int location, TypeName *typename) { Node *s = makeStringConst(str, location); return makeTypeCast(s, typename, -1); } static Node * makeIntConst(int val, int location) { A_Const *n = makeNode(A_Const); n->val.type = T_Integer; n->val.val.ival = val; n->location = location; return (Node *)n; } static Node * makeFloatConst(char *str, int location) { A_Const *n = makeNode(A_Const); n->val.type = T_Float; n->val.val.str = str; n->location = location; return (Node *)n; } static Node * makeBitStringConst(char *str, int location) { A_Const *n = makeNode(A_Const); n->val.type = T_BitString; n->val.val.str = str; n->location = location; return (Node *)n; } static Node * makeNullAConst(int location) { A_Const *n = makeNode(A_Const); n->val.type = T_Null; n->location = location; return (Node *)n; } static Node * makeAConst(Value *v, int location) { Node *n; switch (v->type) { case T_Float: n = makeFloatConst(v->val.str, location); break; case T_Integer: n = makeIntConst(v->val.ival, location); break; case T_String: default: n = makeStringConst(v->val.str, location); break; } return n; } /* makeBoolAConst() * Create an A_Const string node and put it inside a boolean cast. */ static Node * makeBoolAConst(bool state, int location) { A_Const *n = makeNode(A_Const); n->val.type = T_String; n->val.val.str = (state ? "t" : "f"); n->location = location; return makeTypeCast((Node *)n, SystemTypeName("bool"), -1); } /* makeRoleSpec * Create a RoleSpec with the given type */ static RoleSpec * makeRoleSpec(RoleSpecType type, int location) { RoleSpec *spec = makeNode(RoleSpec); spec->roletype = type; spec->location = location; return spec; } /* check_qualified_name --- check the result of qualified_name production * * It's easiest to let the grammar production for qualified_name allow * subscripts and '*', which we then must reject here. */ static void check_qualified_name(List *names, core_yyscan_t yyscanner) { ListCell *i; foreach(i, names) { if (!IsA(lfirst(i), String)) parser_yyerror("syntax error"); } } /* check_func_name --- check the result of func_name production * * It's easiest to let the grammar production for func_name allow subscripts * and '*', which we then must reject here. */ static List * check_func_name(List *names, core_yyscan_t yyscanner) { ListCell *i; foreach(i, names) { if (!IsA(lfirst(i), String)) parser_yyerror("syntax error"); } return names; } /* check_indirection --- check the result of indirection production * * We only allow '*' at the end of the list, but it's hard to enforce that * in the grammar, so do it here. */ static List * check_indirection(List *indirection, core_yyscan_t yyscanner) { ListCell *l; foreach(l, indirection) { if (IsA(lfirst(l), A_Star)) { if (lnext(l) != NULL) parser_yyerror("improper use of \"*\""); } } return indirection; } /* extractArgTypes() * Given a list of FunctionParameter nodes, extract a list of just the * argument types (TypeNames) for input parameters only. This is what * is needed to look up an existing function, which is what is wanted by * the productions that use this call. */ static List * extractArgTypes(List *parameters) { List *result = NIL; ListCell *i; foreach(i, parameters) { FunctionParameter *p = (FunctionParameter *) lfirst(i); if (p->mode != FUNC_PARAM_OUT && p->mode != FUNC_PARAM_TABLE) result = lappend(result, p->argType); } return result; } /* extractAggrArgTypes() * As above, but work from the output of the aggr_args production. */ static List * extractAggrArgTypes(List *aggrargs) { Assert(list_length(aggrargs) == 2); return extractArgTypes((List *) linitial(aggrargs)); } /* makeOrderedSetArgs() * Build the result of the aggr_args production (which see the comments for). * This handles only the case where both given lists are nonempty, so that * we have to deal with multiple VARIADIC arguments. */ static List * makeOrderedSetArgs(List *directargs, List *orderedargs, core_yyscan_t yyscanner) { FunctionParameter *lastd = (FunctionParameter *) llast(directargs); Value *ndirectargs; /* No restriction unless last direct arg is VARIADIC */ if (lastd->mode == FUNC_PARAM_VARIADIC) { FunctionParameter *firsto = (FunctionParameter *) linitial(orderedargs); /* * We ignore the names, though the aggr_arg production allows them; * it doesn't allow default values, so those need not be checked. */ if (list_length(orderedargs) != 1 || firsto->mode != FUNC_PARAM_VARIADIC || !equal(lastd->argType, firsto->argType)) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("an ordered-set aggregate with a VARIADIC direct argument must have one VARIADIC aggregated argument of the same data type"), parser_errposition(exprLocation((Node *) firsto)))); /* OK, drop the duplicate VARIADIC argument from the internal form */ orderedargs = NIL; } /* don't merge into the next line, as list_concat changes directargs */ ndirectargs = makeInteger(list_length(directargs)); return list_make2(list_concat(directargs, orderedargs), ndirectargs); } /* insertSelectOptions() * Insert ORDER BY, etc into an already-constructed SelectStmt. * * This routine is just to avoid duplicating code in SelectStmt productions. */ static void insertSelectOptions(SelectStmt *stmt, List *sortClause, List *lockingClause, Node *limitOffset, Node *limitCount, WithClause *withClause, core_yyscan_t yyscanner) { Assert(IsA(stmt, SelectStmt)); /* * Tests here are to reject constructs like * (SELECT foo ORDER BY bar) ORDER BY baz */ if (sortClause) { if (stmt->sortClause) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple ORDER BY clauses not allowed"), parser_errposition(exprLocation((Node *) sortClause)))); stmt->sortClause = sortClause; } /* We can handle multiple locking clauses, though */ stmt->lockingClause = list_concat(stmt->lockingClause, lockingClause); if (limitOffset) { if (stmt->limitOffset) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple OFFSET clauses not allowed"), parser_errposition(exprLocation(limitOffset)))); stmt->limitOffset = limitOffset; } if (limitCount) { if (stmt->limitCount) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple LIMIT clauses not allowed"), parser_errposition(exprLocation(limitCount)))); stmt->limitCount = limitCount; } if (withClause) { if (stmt->withClause) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple WITH clauses not allowed"), parser_errposition(exprLocation((Node *) withClause)))); stmt->withClause = withClause; } } static Node * makeSetOp(SetOperation op, bool all, Node *larg, Node *rarg) { SelectStmt *n = makeNode(SelectStmt); n->op = op; n->all = all; n->larg = (SelectStmt *) larg; n->rarg = (SelectStmt *) rarg; return (Node *) n; } /* SystemFuncName() * Build a properly-qualified reference to a built-in function. */ List * SystemFuncName(char *name) { return list_make2(makeString("pg_catalog"), makeString(name)); } /* SystemTypeName() * Build a properly-qualified reference to a built-in type. * * typmod is defaulted, but may be changed afterwards by caller. * Likewise for the location. */ TypeName * SystemTypeName(char *name) { return makeTypeNameFromNameList(list_make2(makeString("pg_catalog"), makeString(name))); } /* doNegate() * Handle negation of a numeric constant. * * Formerly, we did this here because the optimizer couldn't cope with * indexquals that looked like "var = -4" --- it wants "var = const" * and a unary minus operator applied to a constant didn't qualify. * As of Postgres 7.0, that problem doesn't exist anymore because there * is a constant-subexpression simplifier in the optimizer. However, * there's still a good reason for doing this here, which is that we can * postpone committing to a particular internal representation for simple * negative constants. It's better to leave "-123.456" in string form * until we know what the desired type is. */ static Node * doNegate(Node *n, int location) { if (IsA(n, A_Const)) { A_Const *con = (A_Const *)n; /* report the constant's location as that of the '-' sign */ con->location = location; if (con->val.type == T_Integer) { con->val.val.ival = -con->val.val.ival; return n; } if (con->val.type == T_Float) { doNegateFloat(&con->val); return n; } } return (Node *) makeSimpleA_Expr(AEXPR_OP, "-", NULL, n, location); } static void doNegateFloat(Value *v) { char *oldval = v->val.str; Assert(IsA(v, Float)); if (*oldval == '+') oldval++; if (*oldval == '-') v->val.str = oldval+1; /* just strip the '-' */ else v->val.str = psprintf("-%s", oldval); } static Node * makeAndExpr(Node *lexpr, Node *rexpr, int location) { Node *lexp = lexpr; /* Look through AEXPR_PAREN nodes so they don't affect flattening */ while (IsA(lexp, A_Expr) && ((A_Expr *) lexp)->kind == AEXPR_PAREN) lexp = ((A_Expr *) lexp)->lexpr; /* Flatten "a AND b AND c ..." to a single BoolExpr on sight */ if (IsA(lexp, BoolExpr)) { BoolExpr *blexpr = (BoolExpr *) lexp; if (blexpr->boolop == AND_EXPR) { blexpr->args = lappend(blexpr->args, rexpr); return (Node *) blexpr; } } return (Node *) makeBoolExpr(AND_EXPR, list_make2(lexpr, rexpr), location); } static Node * makeOrExpr(Node *lexpr, Node *rexpr, int location) { Node *lexp = lexpr; /* Look through AEXPR_PAREN nodes so they don't affect flattening */ while (IsA(lexp, A_Expr) && ((A_Expr *) lexp)->kind == AEXPR_PAREN) lexp = ((A_Expr *) lexp)->lexpr; /* Flatten "a OR b OR c ..." to a single BoolExpr on sight */ if (IsA(lexp, BoolExpr)) { BoolExpr *blexpr = (BoolExpr *) lexp; if (blexpr->boolop == OR_EXPR) { blexpr->args = lappend(blexpr->args, rexpr); return (Node *) blexpr; } } return (Node *) makeBoolExpr(OR_EXPR, list_make2(lexpr, rexpr), location); } static Node * makeNotExpr(Node *expr, int location) { return (Node *) makeBoolExpr(NOT_EXPR, list_make1(expr), location); } static Node * makeAArrayExpr(List *elements, int location) { A_ArrayExpr *n = makeNode(A_ArrayExpr); n->elements = elements; n->location = location; return (Node *) n; } static Node * makeSQLValueFunction(SQLValueFunctionOp op, int32 typmod, int location) { SQLValueFunction *svf = makeNode(SQLValueFunction); svf->op = op; /* svf->type will be filled during parse analysis */ svf->typmod = typmod; svf->location = location; return (Node *) svf; } static Node * makeXmlExpr(XmlExprOp op, char *name, List *named_args, List *args, int location) { XmlExpr *x = makeNode(XmlExpr); x->op = op; x->name = name; /* * named_args is a list of ResTarget; it'll be split apart into separate * expression and name lists in transformXmlExpr(). */ x->named_args = named_args; x->arg_names = NIL; x->args = args; /* xmloption, if relevant, must be filled in by caller */ /* type and typmod will be filled in during parse analysis */ x->type = InvalidOid; /* marks the node as not analyzed */ x->location = location; return (Node *) x; } /* * Merge the input and output parameters of a table function. */ static List * mergeTableFuncParameters(List *func_args, List *columns) { ListCell *lc; /* Explicit OUT and INOUT parameters shouldn't be used in this syntax */ foreach(lc, func_args) { FunctionParameter *p = (FunctionParameter *) lfirst(lc); if (p->mode != FUNC_PARAM_IN && p->mode != FUNC_PARAM_VARIADIC) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("OUT and INOUT arguments aren't allowed in TABLE functions"))); } return list_concat(func_args, columns); } /* * Determine return type of a TABLE function. A single result column * returns setof that column's type; otherwise return setof record. */ static TypeName * TableFuncTypeName(List *columns) { TypeName *result; if (list_length(columns) == 1) { FunctionParameter *p = (FunctionParameter *) linitial(columns); result = copyObject(p->argType); } else result = SystemTypeName("record"); result->setof = true; return result; } /* * Convert a list of (dotted) names to a RangeVar (like * makeRangeVarFromNameList, but with position support). The * "AnyName" refers to the any_name production in the grammar. */ static RangeVar * makeRangeVarFromAnyName(List *names, int position, core_yyscan_t yyscanner) { RangeVar *r = makeNode(RangeVar); switch (list_length(names)) { case 1: r->catalogname = NULL; r->schemaname = NULL; r->relname = strVal(linitial(names)); break; case 2: r->catalogname = NULL; r->schemaname = strVal(linitial(names)); r->relname = strVal(lsecond(names)); break; case 3: r->catalogname = strVal(linitial(names)); r->schemaname = strVal(lsecond(names)); r->relname = strVal(lthird(names)); break; default: ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("improper qualified name (too many dotted names): %s", NameListToString(names)), parser_errposition(position))); break; } r->relpersistence = RELPERSISTENCE_PERMANENT; r->location = position; return r; } /* Separate Constraint nodes from COLLATE clauses in a ColQualList */ static void SplitColQualList(List *qualList, List **constraintList, CollateClause **collClause, core_yyscan_t yyscanner) { ListCell *cell; ListCell *prev; ListCell *next; *collClause = NULL; prev = NULL; for (cell = list_head(qualList); cell; cell = next) { Node *n = (Node *) lfirst(cell); next = lnext(cell); if (IsA(n, Constraint)) { /* keep it in list */ prev = cell; continue; } if (IsA(n, CollateClause)) { CollateClause *c = (CollateClause *) n; if (*collClause) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple COLLATE clauses not allowed"), parser_errposition(c->location))); *collClause = c; } else elog(ERROR, "unexpected node type %d", (int) n->type); /* remove non-Constraint nodes from qualList */ qualList = list_delete_cell(qualList, cell, prev); } *constraintList = qualList; } /* * Process result of ConstraintAttributeSpec, and set appropriate bool flags * in the output command node. Pass NULL for any flags the particular * command doesn't support. */ static void processCASbits(int cas_bits, int location, const char *constrType, bool *deferrable, bool *initdeferred, bool *not_valid, bool *no_inherit, core_yyscan_t yyscanner) { /* defaults */ if (deferrable) *deferrable = false; if (initdeferred) *initdeferred = false; if (not_valid) *not_valid = false; if (cas_bits & (CAS_DEFERRABLE | CAS_INITIALLY_DEFERRED)) { if (deferrable) *deferrable = true; else ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), /* translator: %s is CHECK, UNIQUE, or similar */ errmsg("%s constraints cannot be marked DEFERRABLE", constrType), parser_errposition(location))); } if (cas_bits & CAS_INITIALLY_DEFERRED) { if (initdeferred) *initdeferred = true; else ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), /* translator: %s is CHECK, UNIQUE, or similar */ errmsg("%s constraints cannot be marked DEFERRABLE", constrType), parser_errposition(location))); } if (cas_bits & CAS_NOT_VALID) { if (not_valid) *not_valid = true; else ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), /* translator: %s is CHECK, UNIQUE, or similar */ errmsg("%s constraints cannot be marked NOT VALID", constrType), parser_errposition(location))); } if (cas_bits & CAS_NO_INHERIT) { if (no_inherit) *no_inherit = true; else ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), /* translator: %s is CHECK, UNIQUE, or similar */ errmsg("%s constraints cannot be marked NO INHERIT", constrType), parser_errposition(location))); } } /*---------- * Recursive view transformation * * Convert * * CREATE RECURSIVE VIEW relname (aliases) AS query * * to * * CREATE VIEW relname (aliases) AS * WITH RECURSIVE relname (aliases) AS (query) * SELECT aliases FROM relname * * Actually, just the WITH ... part, which is then inserted into the original * view definition as the query. * ---------- */ static Node * makeRecursiveViewSelect(char *relname, List *aliases, Node *query) { SelectStmt *s = makeNode(SelectStmt); WithClause *w = makeNode(WithClause); CommonTableExpr *cte = makeNode(CommonTableExpr); List *tl = NIL; ListCell *lc; /* create common table expression */ cte->ctename = relname; cte->aliascolnames = aliases; cte->ctequery = query; cte->location = -1; /* create WITH clause and attach CTE */ w->recursive = true; w->ctes = list_make1(cte); w->location = -1; /* create target list for the new SELECT from the alias list of the * recursive view specification */ foreach (lc, aliases) { ResTarget *rt = makeNode(ResTarget); rt->name = NULL; rt->indirection = NIL; rt->val = makeColumnRef(strVal(lfirst(lc)), NIL, -1, 0); rt->location = -1; tl = lappend(tl, rt); } /* create new SELECT combining WITH clause, target list, and fake FROM * clause */ s->withClause = w; s->targetList = tl; s->fromClause = list_make1(makeRangeVar(NULL, relname, -1)); return (Node *) s; } /* parser_init() * Initialize to parse one query string */ void parser_init(base_yy_extra_type *yyext) { yyext->parsetree = NIL; /* in case grammar forgets to set it */ }