summaryrefslogtreecommitdiffstats
path: root/src/backend/parser/gram.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/backend/parser/gram.c50468
1 files changed, 50468 insertions, 0 deletions
diff --git a/src/backend/parser/gram.c b/src/backend/parser/gram.c
new file mode 100644
index 0000000..d84de48
--- /dev/null
+++ b/src/backend/parser/gram.c
@@ -0,0 +1,50468 @@
+/* A Bison parser, made by GNU Bison 3.7.5. */
+
+/* Bison implementation for Yacc-like parsers in C
+
+ Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
+ Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* As a special exception, you may create a larger work that contains
+ part or all of the Bison parser skeleton and distribute that work
+ under terms of your choice, so long as that work isn't itself a
+ parser generator using the skeleton or a modified version thereof
+ as a parser skeleton. Alternatively, if you modify or redistribute
+ the parser skeleton itself, you may (at your option) remove this
+ special exception, which will cause the skeleton and the resulting
+ Bison output files to be licensed under the GNU General Public
+ License without this special exception.
+
+ This special exception was added by the Free Software Foundation in
+ version 2.2 of Bison. */
+
+/* C LALR(1) parser skeleton written by Richard Stallman, by
+ simplifying the original so-called "semantic" parser. */
+
+/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
+ especially those whose name start with YY_ or yy_. They are
+ private implementation details that can be changed or removed. */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+ infringing on user name space. This should be done even for local
+ variables, as they might otherwise be expanded by user macros.
+ There are some unavoidable exceptions within include files to
+ define necessary library symbols; they are noted "INFRINGES ON
+ USER NAME SPACE" below. */
+
+/* Identify Bison output, and Bison version. */
+#define YYBISON 30705
+
+/* Bison version string. */
+#define YYBISON_VERSION "3.7.5"
+
+/* 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"
+
+
+/*#define YYDEBUG 1*/
+/*-------------------------------------------------------------------------
+ *
+ * gram.y
+ * POSTGRESQL BISON rules/actions
+ *
+ * Portions Copyright (c) 1996-2022, 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 <ctype.h>
+#include <limits.h>
+
+#include "access/tableam.h"
+#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 "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;
+
+/* Private struct for the result of opt_select_limit production */
+typedef struct SelectLimit
+{
+ Node *limitOffset;
+ Node *limitCount;
+ LimitOption limitOption;
+} SelectLimit;
+
+/* Private struct for the result of group_clause production */
+typedef struct GroupClause
+{
+ bool distinct;
+ List *list;
+} GroupClause;
+
+/* Private structs for the result of key_actions and key_action productions */
+typedef struct KeyAction
+{
+ char action;
+ List *cols;
+} KeyAction;
+
+typedef struct KeyActions
+{
+ KeyAction *updateAction;
+ KeyAction *deleteAction;
+} KeyActions;
+
+/* 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 *makeBoolAConst(bool state, int location);
+static Node *makeBitStringConst(char *str, int location);
+static Node *makeNullAConst(int location);
+static Node *makeAConst(Node *v, 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,
+ SelectLimit *limitClause,
+ 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(Float *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 RangeVar *makeRangeVarFromQualifiedName(char *name, List *rels,
+ int location,
+ 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 void preprocess_pubobj_list(List *pubobjspec_list,
+ core_yyscan_t yyscanner);
+static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
+
+
+#line 301 "gram.c"
+
+# ifndef YY_CAST
+# ifdef __cplusplus
+# define YY_CAST(Type, Val) static_cast<Type> (Val)
+# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
+# else
+# define YY_CAST(Type, Val) ((Type) (Val))
+# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
+# endif
+# endif
+# 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
+
+#include "gram.h"
+/* Symbol kind. */
+enum yysymbol_kind_t
+{
+ YYSYMBOL_YYEMPTY = -2,
+ YYSYMBOL_YYEOF = 0, /* "end of file" */
+ YYSYMBOL_YYerror = 1, /* error */
+ YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
+ YYSYMBOL_IDENT = 3, /* IDENT */
+ YYSYMBOL_UIDENT = 4, /* UIDENT */
+ YYSYMBOL_FCONST = 5, /* FCONST */
+ YYSYMBOL_SCONST = 6, /* SCONST */
+ YYSYMBOL_USCONST = 7, /* USCONST */
+ YYSYMBOL_BCONST = 8, /* BCONST */
+ YYSYMBOL_XCONST = 9, /* XCONST */
+ YYSYMBOL_Op = 10, /* Op */
+ YYSYMBOL_ICONST = 11, /* ICONST */
+ YYSYMBOL_PARAM = 12, /* PARAM */
+ YYSYMBOL_TYPECAST = 13, /* TYPECAST */
+ YYSYMBOL_DOT_DOT = 14, /* DOT_DOT */
+ YYSYMBOL_COLON_EQUALS = 15, /* COLON_EQUALS */
+ YYSYMBOL_EQUALS_GREATER = 16, /* EQUALS_GREATER */
+ YYSYMBOL_LESS_EQUALS = 17, /* LESS_EQUALS */
+ YYSYMBOL_GREATER_EQUALS = 18, /* GREATER_EQUALS */
+ YYSYMBOL_NOT_EQUALS = 19, /* NOT_EQUALS */
+ YYSYMBOL_ABORT_P = 20, /* ABORT_P */
+ YYSYMBOL_ABSOLUTE_P = 21, /* ABSOLUTE_P */
+ YYSYMBOL_ACCESS = 22, /* ACCESS */
+ YYSYMBOL_ACTION = 23, /* ACTION */
+ YYSYMBOL_ADD_P = 24, /* ADD_P */
+ YYSYMBOL_ADMIN = 25, /* ADMIN */
+ YYSYMBOL_AFTER = 26, /* AFTER */
+ YYSYMBOL_AGGREGATE = 27, /* AGGREGATE */
+ YYSYMBOL_ALL = 28, /* ALL */
+ YYSYMBOL_ALSO = 29, /* ALSO */
+ YYSYMBOL_ALTER = 30, /* ALTER */
+ YYSYMBOL_ALWAYS = 31, /* ALWAYS */
+ YYSYMBOL_ANALYSE = 32, /* ANALYSE */
+ YYSYMBOL_ANALYZE = 33, /* ANALYZE */
+ YYSYMBOL_AND = 34, /* AND */
+ YYSYMBOL_ANY = 35, /* ANY */
+ YYSYMBOL_ARRAY = 36, /* ARRAY */
+ YYSYMBOL_AS = 37, /* AS */
+ YYSYMBOL_ASC = 38, /* ASC */
+ YYSYMBOL_ASENSITIVE = 39, /* ASENSITIVE */
+ YYSYMBOL_ASSERTION = 40, /* ASSERTION */
+ YYSYMBOL_ASSIGNMENT = 41, /* ASSIGNMENT */
+ YYSYMBOL_ASYMMETRIC = 42, /* ASYMMETRIC */
+ YYSYMBOL_ATOMIC = 43, /* ATOMIC */
+ YYSYMBOL_AT = 44, /* AT */
+ YYSYMBOL_ATTACH = 45, /* ATTACH */
+ YYSYMBOL_ATTRIBUTE = 46, /* ATTRIBUTE */
+ YYSYMBOL_AUTHORIZATION = 47, /* AUTHORIZATION */
+ YYSYMBOL_BACKWARD = 48, /* BACKWARD */
+ YYSYMBOL_BEFORE = 49, /* BEFORE */
+ YYSYMBOL_BEGIN_P = 50, /* BEGIN_P */
+ YYSYMBOL_BETWEEN = 51, /* BETWEEN */
+ YYSYMBOL_BIGINT = 52, /* BIGINT */
+ YYSYMBOL_BINARY = 53, /* BINARY */
+ YYSYMBOL_BIT = 54, /* BIT */
+ YYSYMBOL_BOOLEAN_P = 55, /* BOOLEAN_P */
+ YYSYMBOL_BOTH = 56, /* BOTH */
+ YYSYMBOL_BREADTH = 57, /* BREADTH */
+ YYSYMBOL_BY = 58, /* BY */
+ YYSYMBOL_CACHE = 59, /* CACHE */
+ YYSYMBOL_CALL = 60, /* CALL */
+ YYSYMBOL_CALLED = 61, /* CALLED */
+ YYSYMBOL_CASCADE = 62, /* CASCADE */
+ YYSYMBOL_CASCADED = 63, /* CASCADED */
+ YYSYMBOL_CASE = 64, /* CASE */
+ YYSYMBOL_CAST = 65, /* CAST */
+ YYSYMBOL_CATALOG_P = 66, /* CATALOG_P */
+ YYSYMBOL_CHAIN = 67, /* CHAIN */
+ YYSYMBOL_CHAR_P = 68, /* CHAR_P */
+ YYSYMBOL_CHARACTER = 69, /* CHARACTER */
+ YYSYMBOL_CHARACTERISTICS = 70, /* CHARACTERISTICS */
+ YYSYMBOL_CHECK = 71, /* CHECK */
+ YYSYMBOL_CHECKPOINT = 72, /* CHECKPOINT */
+ YYSYMBOL_CLASS = 73, /* CLASS */
+ YYSYMBOL_CLOSE = 74, /* CLOSE */
+ YYSYMBOL_CLUSTER = 75, /* CLUSTER */
+ YYSYMBOL_COALESCE = 76, /* COALESCE */
+ YYSYMBOL_COLLATE = 77, /* COLLATE */
+ YYSYMBOL_COLLATION = 78, /* COLLATION */
+ YYSYMBOL_COLUMN = 79, /* COLUMN */
+ YYSYMBOL_COLUMNS = 80, /* COLUMNS */
+ YYSYMBOL_COMMENT = 81, /* COMMENT */
+ YYSYMBOL_COMMENTS = 82, /* COMMENTS */
+ YYSYMBOL_COMMIT = 83, /* COMMIT */
+ YYSYMBOL_COMMITTED = 84, /* COMMITTED */
+ YYSYMBOL_COMPRESSION = 85, /* COMPRESSION */
+ YYSYMBOL_CONCURRENTLY = 86, /* CONCURRENTLY */
+ YYSYMBOL_CONFIGURATION = 87, /* CONFIGURATION */
+ YYSYMBOL_CONFLICT = 88, /* CONFLICT */
+ YYSYMBOL_CONNECTION = 89, /* CONNECTION */
+ YYSYMBOL_CONSTRAINT = 90, /* CONSTRAINT */
+ YYSYMBOL_CONSTRAINTS = 91, /* CONSTRAINTS */
+ YYSYMBOL_CONTENT_P = 92, /* CONTENT_P */
+ YYSYMBOL_CONTINUE_P = 93, /* CONTINUE_P */
+ YYSYMBOL_CONVERSION_P = 94, /* CONVERSION_P */
+ YYSYMBOL_COPY = 95, /* COPY */
+ YYSYMBOL_COST = 96, /* COST */
+ YYSYMBOL_CREATE = 97, /* CREATE */
+ YYSYMBOL_CROSS = 98, /* CROSS */
+ YYSYMBOL_CSV = 99, /* CSV */
+ YYSYMBOL_CUBE = 100, /* CUBE */
+ YYSYMBOL_CURRENT_P = 101, /* CURRENT_P */
+ YYSYMBOL_CURRENT_CATALOG = 102, /* CURRENT_CATALOG */
+ YYSYMBOL_CURRENT_DATE = 103, /* CURRENT_DATE */
+ YYSYMBOL_CURRENT_ROLE = 104, /* CURRENT_ROLE */
+ YYSYMBOL_CURRENT_SCHEMA = 105, /* CURRENT_SCHEMA */
+ YYSYMBOL_CURRENT_TIME = 106, /* CURRENT_TIME */
+ YYSYMBOL_CURRENT_TIMESTAMP = 107, /* CURRENT_TIMESTAMP */
+ YYSYMBOL_CURRENT_USER = 108, /* CURRENT_USER */
+ YYSYMBOL_CURSOR = 109, /* CURSOR */
+ YYSYMBOL_CYCLE = 110, /* CYCLE */
+ YYSYMBOL_DATA_P = 111, /* DATA_P */
+ YYSYMBOL_DATABASE = 112, /* DATABASE */
+ YYSYMBOL_DAY_P = 113, /* DAY_P */
+ YYSYMBOL_DEALLOCATE = 114, /* DEALLOCATE */
+ YYSYMBOL_DEC = 115, /* DEC */
+ YYSYMBOL_DECIMAL_P = 116, /* DECIMAL_P */
+ YYSYMBOL_DECLARE = 117, /* DECLARE */
+ YYSYMBOL_DEFAULT = 118, /* DEFAULT */
+ YYSYMBOL_DEFAULTS = 119, /* DEFAULTS */
+ YYSYMBOL_DEFERRABLE = 120, /* DEFERRABLE */
+ YYSYMBOL_DEFERRED = 121, /* DEFERRED */
+ YYSYMBOL_DEFINER = 122, /* DEFINER */
+ YYSYMBOL_DELETE_P = 123, /* DELETE_P */
+ YYSYMBOL_DELIMITER = 124, /* DELIMITER */
+ YYSYMBOL_DELIMITERS = 125, /* DELIMITERS */
+ YYSYMBOL_DEPENDS = 126, /* DEPENDS */
+ YYSYMBOL_DEPTH = 127, /* DEPTH */
+ YYSYMBOL_DESC = 128, /* DESC */
+ YYSYMBOL_DETACH = 129, /* DETACH */
+ YYSYMBOL_DICTIONARY = 130, /* DICTIONARY */
+ YYSYMBOL_DISABLE_P = 131, /* DISABLE_P */
+ YYSYMBOL_DISCARD = 132, /* DISCARD */
+ YYSYMBOL_DISTINCT = 133, /* DISTINCT */
+ YYSYMBOL_DO = 134, /* DO */
+ YYSYMBOL_DOCUMENT_P = 135, /* DOCUMENT_P */
+ YYSYMBOL_DOMAIN_P = 136, /* DOMAIN_P */
+ YYSYMBOL_DOUBLE_P = 137, /* DOUBLE_P */
+ YYSYMBOL_DROP = 138, /* DROP */
+ YYSYMBOL_EACH = 139, /* EACH */
+ YYSYMBOL_ELSE = 140, /* ELSE */
+ YYSYMBOL_ENABLE_P = 141, /* ENABLE_P */
+ YYSYMBOL_ENCODING = 142, /* ENCODING */
+ YYSYMBOL_ENCRYPTED = 143, /* ENCRYPTED */
+ YYSYMBOL_END_P = 144, /* END_P */
+ YYSYMBOL_ENUM_P = 145, /* ENUM_P */
+ YYSYMBOL_ESCAPE = 146, /* ESCAPE */
+ YYSYMBOL_EVENT = 147, /* EVENT */
+ YYSYMBOL_EXCEPT = 148, /* EXCEPT */
+ YYSYMBOL_EXCLUDE = 149, /* EXCLUDE */
+ YYSYMBOL_EXCLUDING = 150, /* EXCLUDING */
+ YYSYMBOL_EXCLUSIVE = 151, /* EXCLUSIVE */
+ YYSYMBOL_EXECUTE = 152, /* EXECUTE */
+ YYSYMBOL_EXISTS = 153, /* EXISTS */
+ YYSYMBOL_EXPLAIN = 154, /* EXPLAIN */
+ YYSYMBOL_EXPRESSION = 155, /* EXPRESSION */
+ YYSYMBOL_EXTENSION = 156, /* EXTENSION */
+ YYSYMBOL_EXTERNAL = 157, /* EXTERNAL */
+ YYSYMBOL_EXTRACT = 158, /* EXTRACT */
+ YYSYMBOL_FALSE_P = 159, /* FALSE_P */
+ YYSYMBOL_FAMILY = 160, /* FAMILY */
+ YYSYMBOL_FETCH = 161, /* FETCH */
+ YYSYMBOL_FILTER = 162, /* FILTER */
+ YYSYMBOL_FINALIZE = 163, /* FINALIZE */
+ YYSYMBOL_FIRST_P = 164, /* FIRST_P */
+ YYSYMBOL_FLOAT_P = 165, /* FLOAT_P */
+ YYSYMBOL_FOLLOWING = 166, /* FOLLOWING */
+ YYSYMBOL_FOR = 167, /* FOR */
+ YYSYMBOL_FORCE = 168, /* FORCE */
+ YYSYMBOL_FOREIGN = 169, /* FOREIGN */
+ YYSYMBOL_FORWARD = 170, /* FORWARD */
+ YYSYMBOL_FREEZE = 171, /* FREEZE */
+ YYSYMBOL_FROM = 172, /* FROM */
+ YYSYMBOL_FULL = 173, /* FULL */
+ YYSYMBOL_FUNCTION = 174, /* FUNCTION */
+ YYSYMBOL_FUNCTIONS = 175, /* FUNCTIONS */
+ YYSYMBOL_GENERATED = 176, /* GENERATED */
+ YYSYMBOL_GLOBAL = 177, /* GLOBAL */
+ YYSYMBOL_GRANT = 178, /* GRANT */
+ YYSYMBOL_GRANTED = 179, /* GRANTED */
+ YYSYMBOL_GREATEST = 180, /* GREATEST */
+ YYSYMBOL_GROUP_P = 181, /* GROUP_P */
+ YYSYMBOL_GROUPING = 182, /* GROUPING */
+ YYSYMBOL_GROUPS = 183, /* GROUPS */
+ YYSYMBOL_HANDLER = 184, /* HANDLER */
+ YYSYMBOL_HAVING = 185, /* HAVING */
+ YYSYMBOL_HEADER_P = 186, /* HEADER_P */
+ YYSYMBOL_HOLD = 187, /* HOLD */
+ YYSYMBOL_HOUR_P = 188, /* HOUR_P */
+ YYSYMBOL_IDENTITY_P = 189, /* IDENTITY_P */
+ YYSYMBOL_IF_P = 190, /* IF_P */
+ YYSYMBOL_ILIKE = 191, /* ILIKE */
+ YYSYMBOL_IMMEDIATE = 192, /* IMMEDIATE */
+ YYSYMBOL_IMMUTABLE = 193, /* IMMUTABLE */
+ YYSYMBOL_IMPLICIT_P = 194, /* IMPLICIT_P */
+ YYSYMBOL_IMPORT_P = 195, /* IMPORT_P */
+ YYSYMBOL_IN_P = 196, /* IN_P */
+ YYSYMBOL_INCLUDE = 197, /* INCLUDE */
+ YYSYMBOL_INCLUDING = 198, /* INCLUDING */
+ YYSYMBOL_INCREMENT = 199, /* INCREMENT */
+ YYSYMBOL_INDEX = 200, /* INDEX */
+ YYSYMBOL_INDEXES = 201, /* INDEXES */
+ YYSYMBOL_INHERIT = 202, /* INHERIT */
+ YYSYMBOL_INHERITS = 203, /* INHERITS */
+ YYSYMBOL_INITIALLY = 204, /* INITIALLY */
+ YYSYMBOL_INLINE_P = 205, /* INLINE_P */
+ YYSYMBOL_INNER_P = 206, /* INNER_P */
+ YYSYMBOL_INOUT = 207, /* INOUT */
+ YYSYMBOL_INPUT_P = 208, /* INPUT_P */
+ YYSYMBOL_INSENSITIVE = 209, /* INSENSITIVE */
+ YYSYMBOL_INSERT = 210, /* INSERT */
+ YYSYMBOL_INSTEAD = 211, /* INSTEAD */
+ YYSYMBOL_INT_P = 212, /* INT_P */
+ YYSYMBOL_INTEGER = 213, /* INTEGER */
+ YYSYMBOL_INTERSECT = 214, /* INTERSECT */
+ YYSYMBOL_INTERVAL = 215, /* INTERVAL */
+ YYSYMBOL_INTO = 216, /* INTO */
+ YYSYMBOL_INVOKER = 217, /* INVOKER */
+ YYSYMBOL_IS = 218, /* IS */
+ YYSYMBOL_ISNULL = 219, /* ISNULL */
+ YYSYMBOL_ISOLATION = 220, /* ISOLATION */
+ YYSYMBOL_JOIN = 221, /* JOIN */
+ YYSYMBOL_KEY = 222, /* KEY */
+ YYSYMBOL_LABEL = 223, /* LABEL */
+ YYSYMBOL_LANGUAGE = 224, /* LANGUAGE */
+ YYSYMBOL_LARGE_P = 225, /* LARGE_P */
+ YYSYMBOL_LAST_P = 226, /* LAST_P */
+ YYSYMBOL_LATERAL_P = 227, /* LATERAL_P */
+ YYSYMBOL_LEADING = 228, /* LEADING */
+ YYSYMBOL_LEAKPROOF = 229, /* LEAKPROOF */
+ YYSYMBOL_LEAST = 230, /* LEAST */
+ YYSYMBOL_LEFT = 231, /* LEFT */
+ YYSYMBOL_LEVEL = 232, /* LEVEL */
+ YYSYMBOL_LIKE = 233, /* LIKE */
+ YYSYMBOL_LIMIT = 234, /* LIMIT */
+ YYSYMBOL_LISTEN = 235, /* LISTEN */
+ YYSYMBOL_LOAD = 236, /* LOAD */
+ YYSYMBOL_LOCAL = 237, /* LOCAL */
+ YYSYMBOL_LOCALTIME = 238, /* LOCALTIME */
+ YYSYMBOL_LOCALTIMESTAMP = 239, /* LOCALTIMESTAMP */
+ YYSYMBOL_LOCATION = 240, /* LOCATION */
+ YYSYMBOL_LOCK_P = 241, /* LOCK_P */
+ YYSYMBOL_LOCKED = 242, /* LOCKED */
+ YYSYMBOL_LOGGED = 243, /* LOGGED */
+ YYSYMBOL_MAPPING = 244, /* MAPPING */
+ YYSYMBOL_MATCH = 245, /* MATCH */
+ YYSYMBOL_MATCHED = 246, /* MATCHED */
+ YYSYMBOL_MATERIALIZED = 247, /* MATERIALIZED */
+ YYSYMBOL_MAXVALUE = 248, /* MAXVALUE */
+ YYSYMBOL_MERGE = 249, /* MERGE */
+ YYSYMBOL_METHOD = 250, /* METHOD */
+ YYSYMBOL_MINUTE_P = 251, /* MINUTE_P */
+ YYSYMBOL_MINVALUE = 252, /* MINVALUE */
+ YYSYMBOL_MODE = 253, /* MODE */
+ YYSYMBOL_MONTH_P = 254, /* MONTH_P */
+ YYSYMBOL_MOVE = 255, /* MOVE */
+ YYSYMBOL_NAME_P = 256, /* NAME_P */
+ YYSYMBOL_NAMES = 257, /* NAMES */
+ YYSYMBOL_NATIONAL = 258, /* NATIONAL */
+ YYSYMBOL_NATURAL = 259, /* NATURAL */
+ YYSYMBOL_NCHAR = 260, /* NCHAR */
+ YYSYMBOL_NEW = 261, /* NEW */
+ YYSYMBOL_NEXT = 262, /* NEXT */
+ YYSYMBOL_NFC = 263, /* NFC */
+ YYSYMBOL_NFD = 264, /* NFD */
+ YYSYMBOL_NFKC = 265, /* NFKC */
+ YYSYMBOL_NFKD = 266, /* NFKD */
+ YYSYMBOL_NO = 267, /* NO */
+ YYSYMBOL_NONE = 268, /* NONE */
+ YYSYMBOL_NORMALIZE = 269, /* NORMALIZE */
+ YYSYMBOL_NORMALIZED = 270, /* NORMALIZED */
+ YYSYMBOL_NOT = 271, /* NOT */
+ YYSYMBOL_NOTHING = 272, /* NOTHING */
+ YYSYMBOL_NOTIFY = 273, /* NOTIFY */
+ YYSYMBOL_NOTNULL = 274, /* NOTNULL */
+ YYSYMBOL_NOWAIT = 275, /* NOWAIT */
+ YYSYMBOL_NULL_P = 276, /* NULL_P */
+ YYSYMBOL_NULLIF = 277, /* NULLIF */
+ YYSYMBOL_NULLS_P = 278, /* NULLS_P */
+ YYSYMBOL_NUMERIC = 279, /* NUMERIC */
+ YYSYMBOL_OBJECT_P = 280, /* OBJECT_P */
+ YYSYMBOL_OF = 281, /* OF */
+ YYSYMBOL_OFF = 282, /* OFF */
+ YYSYMBOL_OFFSET = 283, /* OFFSET */
+ YYSYMBOL_OIDS = 284, /* OIDS */
+ YYSYMBOL_OLD = 285, /* OLD */
+ YYSYMBOL_ON = 286, /* ON */
+ YYSYMBOL_ONLY = 287, /* ONLY */
+ YYSYMBOL_OPERATOR = 288, /* OPERATOR */
+ YYSYMBOL_OPTION = 289, /* OPTION */
+ YYSYMBOL_OPTIONS = 290, /* OPTIONS */
+ YYSYMBOL_OR = 291, /* OR */
+ YYSYMBOL_ORDER = 292, /* ORDER */
+ YYSYMBOL_ORDINALITY = 293, /* ORDINALITY */
+ YYSYMBOL_OTHERS = 294, /* OTHERS */
+ YYSYMBOL_OUT_P = 295, /* OUT_P */
+ YYSYMBOL_OUTER_P = 296, /* OUTER_P */
+ YYSYMBOL_OVER = 297, /* OVER */
+ YYSYMBOL_OVERLAPS = 298, /* OVERLAPS */
+ YYSYMBOL_OVERLAY = 299, /* OVERLAY */
+ YYSYMBOL_OVERRIDING = 300, /* OVERRIDING */
+ YYSYMBOL_OWNED = 301, /* OWNED */
+ YYSYMBOL_OWNER = 302, /* OWNER */
+ YYSYMBOL_PARALLEL = 303, /* PARALLEL */
+ YYSYMBOL_PARAMETER = 304, /* PARAMETER */
+ YYSYMBOL_PARSER = 305, /* PARSER */
+ YYSYMBOL_PARTIAL = 306, /* PARTIAL */
+ YYSYMBOL_PARTITION = 307, /* PARTITION */
+ YYSYMBOL_PASSING = 308, /* PASSING */
+ YYSYMBOL_PASSWORD = 309, /* PASSWORD */
+ YYSYMBOL_PLACING = 310, /* PLACING */
+ YYSYMBOL_PLANS = 311, /* PLANS */
+ YYSYMBOL_POLICY = 312, /* POLICY */
+ YYSYMBOL_POSITION = 313, /* POSITION */
+ YYSYMBOL_PRECEDING = 314, /* PRECEDING */
+ YYSYMBOL_PRECISION = 315, /* PRECISION */
+ YYSYMBOL_PRESERVE = 316, /* PRESERVE */
+ YYSYMBOL_PREPARE = 317, /* PREPARE */
+ YYSYMBOL_PREPARED = 318, /* PREPARED */
+ YYSYMBOL_PRIMARY = 319, /* PRIMARY */
+ YYSYMBOL_PRIOR = 320, /* PRIOR */
+ YYSYMBOL_PRIVILEGES = 321, /* PRIVILEGES */
+ YYSYMBOL_PROCEDURAL = 322, /* PROCEDURAL */
+ YYSYMBOL_PROCEDURE = 323, /* PROCEDURE */
+ YYSYMBOL_PROCEDURES = 324, /* PROCEDURES */
+ YYSYMBOL_PROGRAM = 325, /* PROGRAM */
+ YYSYMBOL_PUBLICATION = 326, /* PUBLICATION */
+ YYSYMBOL_QUOTE = 327, /* QUOTE */
+ YYSYMBOL_RANGE = 328, /* RANGE */
+ YYSYMBOL_READ = 329, /* READ */
+ YYSYMBOL_REAL = 330, /* REAL */
+ YYSYMBOL_REASSIGN = 331, /* REASSIGN */
+ YYSYMBOL_RECHECK = 332, /* RECHECK */
+ YYSYMBOL_RECURSIVE = 333, /* RECURSIVE */
+ YYSYMBOL_REF_P = 334, /* REF_P */
+ YYSYMBOL_REFERENCES = 335, /* REFERENCES */
+ YYSYMBOL_REFERENCING = 336, /* REFERENCING */
+ YYSYMBOL_REFRESH = 337, /* REFRESH */
+ YYSYMBOL_REINDEX = 338, /* REINDEX */
+ YYSYMBOL_RELATIVE_P = 339, /* RELATIVE_P */
+ YYSYMBOL_RELEASE = 340, /* RELEASE */
+ YYSYMBOL_RENAME = 341, /* RENAME */
+ YYSYMBOL_REPEATABLE = 342, /* REPEATABLE */
+ YYSYMBOL_REPLACE = 343, /* REPLACE */
+ YYSYMBOL_REPLICA = 344, /* REPLICA */
+ YYSYMBOL_RESET = 345, /* RESET */
+ YYSYMBOL_RESTART = 346, /* RESTART */
+ YYSYMBOL_RESTRICT = 347, /* RESTRICT */
+ YYSYMBOL_RETURN = 348, /* RETURN */
+ YYSYMBOL_RETURNING = 349, /* RETURNING */
+ YYSYMBOL_RETURNS = 350, /* RETURNS */
+ YYSYMBOL_REVOKE = 351, /* REVOKE */
+ YYSYMBOL_RIGHT = 352, /* RIGHT */
+ YYSYMBOL_ROLE = 353, /* ROLE */
+ YYSYMBOL_ROLLBACK = 354, /* ROLLBACK */
+ YYSYMBOL_ROLLUP = 355, /* ROLLUP */
+ YYSYMBOL_ROUTINE = 356, /* ROUTINE */
+ YYSYMBOL_ROUTINES = 357, /* ROUTINES */
+ YYSYMBOL_ROW = 358, /* ROW */
+ YYSYMBOL_ROWS = 359, /* ROWS */
+ YYSYMBOL_RULE = 360, /* RULE */
+ YYSYMBOL_SAVEPOINT = 361, /* SAVEPOINT */
+ YYSYMBOL_SCHEMA = 362, /* SCHEMA */
+ YYSYMBOL_SCHEMAS = 363, /* SCHEMAS */
+ YYSYMBOL_SCROLL = 364, /* SCROLL */
+ YYSYMBOL_SEARCH = 365, /* SEARCH */
+ YYSYMBOL_SECOND_P = 366, /* SECOND_P */
+ YYSYMBOL_SECURITY = 367, /* SECURITY */
+ YYSYMBOL_SELECT = 368, /* SELECT */
+ YYSYMBOL_SEQUENCE = 369, /* SEQUENCE */
+ YYSYMBOL_SEQUENCES = 370, /* SEQUENCES */
+ YYSYMBOL_SERIALIZABLE = 371, /* SERIALIZABLE */
+ YYSYMBOL_SERVER = 372, /* SERVER */
+ YYSYMBOL_SESSION = 373, /* SESSION */
+ YYSYMBOL_SESSION_USER = 374, /* SESSION_USER */
+ YYSYMBOL_SET = 375, /* SET */
+ YYSYMBOL_SETS = 376, /* SETS */
+ YYSYMBOL_SETOF = 377, /* SETOF */
+ YYSYMBOL_SHARE = 378, /* SHARE */
+ YYSYMBOL_SHOW = 379, /* SHOW */
+ YYSYMBOL_SIMILAR = 380, /* SIMILAR */
+ YYSYMBOL_SIMPLE = 381, /* SIMPLE */
+ YYSYMBOL_SKIP = 382, /* SKIP */
+ YYSYMBOL_SMALLINT = 383, /* SMALLINT */
+ YYSYMBOL_SNAPSHOT = 384, /* SNAPSHOT */
+ YYSYMBOL_SOME = 385, /* SOME */
+ YYSYMBOL_SQL_P = 386, /* SQL_P */
+ YYSYMBOL_STABLE = 387, /* STABLE */
+ YYSYMBOL_STANDALONE_P = 388, /* STANDALONE_P */
+ YYSYMBOL_START = 389, /* START */
+ YYSYMBOL_STATEMENT = 390, /* STATEMENT */
+ YYSYMBOL_STATISTICS = 391, /* STATISTICS */
+ YYSYMBOL_STDIN = 392, /* STDIN */
+ YYSYMBOL_STDOUT = 393, /* STDOUT */
+ YYSYMBOL_STORAGE = 394, /* STORAGE */
+ YYSYMBOL_STORED = 395, /* STORED */
+ YYSYMBOL_STRICT_P = 396, /* STRICT_P */
+ YYSYMBOL_STRIP_P = 397, /* STRIP_P */
+ YYSYMBOL_SUBSCRIPTION = 398, /* SUBSCRIPTION */
+ YYSYMBOL_SUBSTRING = 399, /* SUBSTRING */
+ YYSYMBOL_SUPPORT = 400, /* SUPPORT */
+ YYSYMBOL_SYMMETRIC = 401, /* SYMMETRIC */
+ YYSYMBOL_SYSID = 402, /* SYSID */
+ YYSYMBOL_SYSTEM_P = 403, /* SYSTEM_P */
+ YYSYMBOL_TABLE = 404, /* TABLE */
+ YYSYMBOL_TABLES = 405, /* TABLES */
+ YYSYMBOL_TABLESAMPLE = 406, /* TABLESAMPLE */
+ YYSYMBOL_TABLESPACE = 407, /* TABLESPACE */
+ YYSYMBOL_TEMP = 408, /* TEMP */
+ YYSYMBOL_TEMPLATE = 409, /* TEMPLATE */
+ YYSYMBOL_TEMPORARY = 410, /* TEMPORARY */
+ YYSYMBOL_TEXT_P = 411, /* TEXT_P */
+ YYSYMBOL_THEN = 412, /* THEN */
+ YYSYMBOL_TIES = 413, /* TIES */
+ YYSYMBOL_TIME = 414, /* TIME */
+ YYSYMBOL_TIMESTAMP = 415, /* TIMESTAMP */
+ YYSYMBOL_TO = 416, /* TO */
+ YYSYMBOL_TRAILING = 417, /* TRAILING */
+ YYSYMBOL_TRANSACTION = 418, /* TRANSACTION */
+ YYSYMBOL_TRANSFORM = 419, /* TRANSFORM */
+ YYSYMBOL_TREAT = 420, /* TREAT */
+ YYSYMBOL_TRIGGER = 421, /* TRIGGER */
+ YYSYMBOL_TRIM = 422, /* TRIM */
+ YYSYMBOL_TRUE_P = 423, /* TRUE_P */
+ YYSYMBOL_TRUNCATE = 424, /* TRUNCATE */
+ YYSYMBOL_TRUSTED = 425, /* TRUSTED */
+ YYSYMBOL_TYPE_P = 426, /* TYPE_P */
+ YYSYMBOL_TYPES_P = 427, /* TYPES_P */
+ YYSYMBOL_UESCAPE = 428, /* UESCAPE */
+ YYSYMBOL_UNBOUNDED = 429, /* UNBOUNDED */
+ YYSYMBOL_UNCOMMITTED = 430, /* UNCOMMITTED */
+ YYSYMBOL_UNENCRYPTED = 431, /* UNENCRYPTED */
+ YYSYMBOL_UNION = 432, /* UNION */
+ YYSYMBOL_UNIQUE = 433, /* UNIQUE */
+ YYSYMBOL_UNKNOWN = 434, /* UNKNOWN */
+ YYSYMBOL_UNLISTEN = 435, /* UNLISTEN */
+ YYSYMBOL_UNLOGGED = 436, /* UNLOGGED */
+ YYSYMBOL_UNTIL = 437, /* UNTIL */
+ YYSYMBOL_UPDATE = 438, /* UPDATE */
+ YYSYMBOL_USER = 439, /* USER */
+ YYSYMBOL_USING = 440, /* USING */
+ YYSYMBOL_VACUUM = 441, /* VACUUM */
+ YYSYMBOL_VALID = 442, /* VALID */
+ YYSYMBOL_VALIDATE = 443, /* VALIDATE */
+ YYSYMBOL_VALIDATOR = 444, /* VALIDATOR */
+ YYSYMBOL_VALUE_P = 445, /* VALUE_P */
+ YYSYMBOL_VALUES = 446, /* VALUES */
+ YYSYMBOL_VARCHAR = 447, /* VARCHAR */
+ YYSYMBOL_VARIADIC = 448, /* VARIADIC */
+ YYSYMBOL_VARYING = 449, /* VARYING */
+ YYSYMBOL_VERBOSE = 450, /* VERBOSE */
+ YYSYMBOL_VERSION_P = 451, /* VERSION_P */
+ YYSYMBOL_VIEW = 452, /* VIEW */
+ YYSYMBOL_VIEWS = 453, /* VIEWS */
+ YYSYMBOL_VOLATILE = 454, /* VOLATILE */
+ YYSYMBOL_WHEN = 455, /* WHEN */
+ YYSYMBOL_WHERE = 456, /* WHERE */
+ YYSYMBOL_WHITESPACE_P = 457, /* WHITESPACE_P */
+ YYSYMBOL_WINDOW = 458, /* WINDOW */
+ YYSYMBOL_WITH = 459, /* WITH */
+ YYSYMBOL_WITHIN = 460, /* WITHIN */
+ YYSYMBOL_WITHOUT = 461, /* WITHOUT */
+ YYSYMBOL_WORK = 462, /* WORK */
+ YYSYMBOL_WRAPPER = 463, /* WRAPPER */
+ YYSYMBOL_WRITE = 464, /* WRITE */
+ YYSYMBOL_XML_P = 465, /* XML_P */
+ YYSYMBOL_XMLATTRIBUTES = 466, /* XMLATTRIBUTES */
+ YYSYMBOL_XMLCONCAT = 467, /* XMLCONCAT */
+ YYSYMBOL_XMLELEMENT = 468, /* XMLELEMENT */
+ YYSYMBOL_XMLEXISTS = 469, /* XMLEXISTS */
+ YYSYMBOL_XMLFOREST = 470, /* XMLFOREST */
+ YYSYMBOL_XMLNAMESPACES = 471, /* XMLNAMESPACES */
+ YYSYMBOL_XMLPARSE = 472, /* XMLPARSE */
+ YYSYMBOL_XMLPI = 473, /* XMLPI */
+ YYSYMBOL_XMLROOT = 474, /* XMLROOT */
+ YYSYMBOL_XMLSERIALIZE = 475, /* XMLSERIALIZE */
+ YYSYMBOL_XMLTABLE = 476, /* XMLTABLE */
+ YYSYMBOL_YEAR_P = 477, /* YEAR_P */
+ YYSYMBOL_YES_P = 478, /* YES_P */
+ YYSYMBOL_ZONE = 479, /* ZONE */
+ YYSYMBOL_NOT_LA = 480, /* NOT_LA */
+ YYSYMBOL_NULLS_LA = 481, /* NULLS_LA */
+ YYSYMBOL_WITH_LA = 482, /* WITH_LA */
+ YYSYMBOL_MODE_TYPE_NAME = 483, /* MODE_TYPE_NAME */
+ YYSYMBOL_MODE_PLPGSQL_EXPR = 484, /* MODE_PLPGSQL_EXPR */
+ YYSYMBOL_MODE_PLPGSQL_ASSIGN1 = 485, /* MODE_PLPGSQL_ASSIGN1 */
+ YYSYMBOL_MODE_PLPGSQL_ASSIGN2 = 486, /* MODE_PLPGSQL_ASSIGN2 */
+ YYSYMBOL_MODE_PLPGSQL_ASSIGN3 = 487, /* MODE_PLPGSQL_ASSIGN3 */
+ YYSYMBOL_488_ = 488, /* '<' */
+ YYSYMBOL_489_ = 489, /* '>' */
+ YYSYMBOL_490_ = 490, /* '=' */
+ YYSYMBOL_491_ = 491, /* '+' */
+ YYSYMBOL_492_ = 492, /* '-' */
+ YYSYMBOL_493_ = 493, /* '*' */
+ YYSYMBOL_494_ = 494, /* '/' */
+ YYSYMBOL_495_ = 495, /* '%' */
+ YYSYMBOL_496_ = 496, /* '^' */
+ YYSYMBOL_UMINUS = 497, /* UMINUS */
+ YYSYMBOL_498_ = 498, /* '[' */
+ YYSYMBOL_499_ = 499, /* ']' */
+ YYSYMBOL_500_ = 500, /* '(' */
+ YYSYMBOL_501_ = 501, /* ')' */
+ YYSYMBOL_502_ = 502, /* '.' */
+ YYSYMBOL_503_ = 503, /* ';' */
+ YYSYMBOL_504_ = 504, /* ',' */
+ YYSYMBOL_505_ = 505, /* ':' */
+ YYSYMBOL_YYACCEPT = 506, /* $accept */
+ YYSYMBOL_parse_toplevel = 507, /* parse_toplevel */
+ YYSYMBOL_stmtmulti = 508, /* stmtmulti */
+ YYSYMBOL_toplevel_stmt = 509, /* toplevel_stmt */
+ YYSYMBOL_stmt = 510, /* stmt */
+ YYSYMBOL_CallStmt = 511, /* CallStmt */
+ YYSYMBOL_CreateRoleStmt = 512, /* CreateRoleStmt */
+ YYSYMBOL_opt_with = 513, /* opt_with */
+ YYSYMBOL_OptRoleList = 514, /* OptRoleList */
+ YYSYMBOL_AlterOptRoleList = 515, /* AlterOptRoleList */
+ YYSYMBOL_AlterOptRoleElem = 516, /* AlterOptRoleElem */
+ YYSYMBOL_CreateOptRoleElem = 517, /* CreateOptRoleElem */
+ YYSYMBOL_CreateUserStmt = 518, /* CreateUserStmt */
+ YYSYMBOL_AlterRoleStmt = 519, /* AlterRoleStmt */
+ YYSYMBOL_opt_in_database = 520, /* opt_in_database */
+ YYSYMBOL_AlterRoleSetStmt = 521, /* AlterRoleSetStmt */
+ YYSYMBOL_DropRoleStmt = 522, /* DropRoleStmt */
+ YYSYMBOL_CreateGroupStmt = 523, /* CreateGroupStmt */
+ YYSYMBOL_AlterGroupStmt = 524, /* AlterGroupStmt */
+ YYSYMBOL_add_drop = 525, /* add_drop */
+ YYSYMBOL_CreateSchemaStmt = 526, /* CreateSchemaStmt */
+ YYSYMBOL_OptSchemaName = 527, /* OptSchemaName */
+ YYSYMBOL_OptSchemaEltList = 528, /* OptSchemaEltList */
+ YYSYMBOL_schema_stmt = 529, /* schema_stmt */
+ YYSYMBOL_VariableSetStmt = 530, /* VariableSetStmt */
+ YYSYMBOL_set_rest = 531, /* set_rest */
+ YYSYMBOL_generic_set = 532, /* generic_set */
+ YYSYMBOL_set_rest_more = 533, /* set_rest_more */
+ YYSYMBOL_var_name = 534, /* var_name */
+ YYSYMBOL_var_list = 535, /* var_list */
+ YYSYMBOL_var_value = 536, /* var_value */
+ YYSYMBOL_iso_level = 537, /* iso_level */
+ YYSYMBOL_opt_boolean_or_string = 538, /* opt_boolean_or_string */
+ YYSYMBOL_zone_value = 539, /* zone_value */
+ YYSYMBOL_opt_encoding = 540, /* opt_encoding */
+ YYSYMBOL_NonReservedWord_or_Sconst = 541, /* NonReservedWord_or_Sconst */
+ YYSYMBOL_VariableResetStmt = 542, /* VariableResetStmt */
+ YYSYMBOL_reset_rest = 543, /* reset_rest */
+ YYSYMBOL_generic_reset = 544, /* generic_reset */
+ YYSYMBOL_SetResetClause = 545, /* SetResetClause */
+ YYSYMBOL_FunctionSetResetClause = 546, /* FunctionSetResetClause */
+ YYSYMBOL_VariableShowStmt = 547, /* VariableShowStmt */
+ YYSYMBOL_ConstraintsSetStmt = 548, /* ConstraintsSetStmt */
+ YYSYMBOL_constraints_set_list = 549, /* constraints_set_list */
+ YYSYMBOL_constraints_set_mode = 550, /* constraints_set_mode */
+ YYSYMBOL_CheckPointStmt = 551, /* CheckPointStmt */
+ YYSYMBOL_DiscardStmt = 552, /* DiscardStmt */
+ YYSYMBOL_AlterTableStmt = 553, /* AlterTableStmt */
+ YYSYMBOL_alter_table_cmds = 554, /* alter_table_cmds */
+ YYSYMBOL_partition_cmd = 555, /* partition_cmd */
+ YYSYMBOL_index_partition_cmd = 556, /* index_partition_cmd */
+ YYSYMBOL_alter_table_cmd = 557, /* alter_table_cmd */
+ YYSYMBOL_alter_column_default = 558, /* alter_column_default */
+ YYSYMBOL_opt_drop_behavior = 559, /* opt_drop_behavior */
+ YYSYMBOL_opt_collate_clause = 560, /* opt_collate_clause */
+ YYSYMBOL_alter_using = 561, /* alter_using */
+ YYSYMBOL_replica_identity = 562, /* replica_identity */
+ YYSYMBOL_reloptions = 563, /* reloptions */
+ YYSYMBOL_opt_reloptions = 564, /* opt_reloptions */
+ YYSYMBOL_reloption_list = 565, /* reloption_list */
+ YYSYMBOL_reloption_elem = 566, /* reloption_elem */
+ YYSYMBOL_alter_identity_column_option_list = 567, /* alter_identity_column_option_list */
+ YYSYMBOL_alter_identity_column_option = 568, /* alter_identity_column_option */
+ YYSYMBOL_PartitionBoundSpec = 569, /* PartitionBoundSpec */
+ YYSYMBOL_hash_partbound_elem = 570, /* hash_partbound_elem */
+ YYSYMBOL_hash_partbound = 571, /* hash_partbound */
+ YYSYMBOL_AlterCompositeTypeStmt = 572, /* AlterCompositeTypeStmt */
+ YYSYMBOL_alter_type_cmds = 573, /* alter_type_cmds */
+ YYSYMBOL_alter_type_cmd = 574, /* alter_type_cmd */
+ YYSYMBOL_ClosePortalStmt = 575, /* ClosePortalStmt */
+ YYSYMBOL_CopyStmt = 576, /* CopyStmt */
+ YYSYMBOL_copy_from = 577, /* copy_from */
+ YYSYMBOL_opt_program = 578, /* opt_program */
+ YYSYMBOL_copy_file_name = 579, /* copy_file_name */
+ YYSYMBOL_copy_options = 580, /* copy_options */
+ YYSYMBOL_copy_opt_list = 581, /* copy_opt_list */
+ YYSYMBOL_copy_opt_item = 582, /* copy_opt_item */
+ YYSYMBOL_opt_binary = 583, /* opt_binary */
+ YYSYMBOL_copy_delimiter = 584, /* copy_delimiter */
+ YYSYMBOL_opt_using = 585, /* opt_using */
+ YYSYMBOL_copy_generic_opt_list = 586, /* copy_generic_opt_list */
+ YYSYMBOL_copy_generic_opt_elem = 587, /* copy_generic_opt_elem */
+ YYSYMBOL_copy_generic_opt_arg = 588, /* copy_generic_opt_arg */
+ YYSYMBOL_copy_generic_opt_arg_list = 589, /* copy_generic_opt_arg_list */
+ YYSYMBOL_copy_generic_opt_arg_list_item = 590, /* copy_generic_opt_arg_list_item */
+ YYSYMBOL_CreateStmt = 591, /* CreateStmt */
+ YYSYMBOL_OptTemp = 592, /* OptTemp */
+ YYSYMBOL_OptTableElementList = 593, /* OptTableElementList */
+ YYSYMBOL_OptTypedTableElementList = 594, /* OptTypedTableElementList */
+ YYSYMBOL_TableElementList = 595, /* TableElementList */
+ YYSYMBOL_TypedTableElementList = 596, /* TypedTableElementList */
+ YYSYMBOL_TableElement = 597, /* TableElement */
+ YYSYMBOL_TypedTableElement = 598, /* TypedTableElement */
+ YYSYMBOL_columnDef = 599, /* columnDef */
+ YYSYMBOL_columnOptions = 600, /* columnOptions */
+ YYSYMBOL_column_compression = 601, /* column_compression */
+ YYSYMBOL_opt_column_compression = 602, /* opt_column_compression */
+ YYSYMBOL_ColQualList = 603, /* ColQualList */
+ YYSYMBOL_ColConstraint = 604, /* ColConstraint */
+ YYSYMBOL_ColConstraintElem = 605, /* ColConstraintElem */
+ YYSYMBOL_opt_unique_null_treatment = 606, /* opt_unique_null_treatment */
+ YYSYMBOL_generated_when = 607, /* generated_when */
+ YYSYMBOL_ConstraintAttr = 608, /* ConstraintAttr */
+ YYSYMBOL_TableLikeClause = 609, /* TableLikeClause */
+ YYSYMBOL_TableLikeOptionList = 610, /* TableLikeOptionList */
+ YYSYMBOL_TableLikeOption = 611, /* TableLikeOption */
+ YYSYMBOL_TableConstraint = 612, /* TableConstraint */
+ YYSYMBOL_ConstraintElem = 613, /* ConstraintElem */
+ YYSYMBOL_opt_no_inherit = 614, /* opt_no_inherit */
+ YYSYMBOL_opt_column_list = 615, /* opt_column_list */
+ YYSYMBOL_columnList = 616, /* columnList */
+ YYSYMBOL_columnElem = 617, /* columnElem */
+ YYSYMBOL_opt_c_include = 618, /* opt_c_include */
+ YYSYMBOL_key_match = 619, /* key_match */
+ YYSYMBOL_ExclusionConstraintList = 620, /* ExclusionConstraintList */
+ YYSYMBOL_ExclusionConstraintElem = 621, /* ExclusionConstraintElem */
+ YYSYMBOL_OptWhereClause = 622, /* OptWhereClause */
+ YYSYMBOL_key_actions = 623, /* key_actions */
+ YYSYMBOL_key_update = 624, /* key_update */
+ YYSYMBOL_key_delete = 625, /* key_delete */
+ YYSYMBOL_key_action = 626, /* key_action */
+ YYSYMBOL_OptInherit = 627, /* OptInherit */
+ YYSYMBOL_OptPartitionSpec = 628, /* OptPartitionSpec */
+ YYSYMBOL_PartitionSpec = 629, /* PartitionSpec */
+ YYSYMBOL_part_params = 630, /* part_params */
+ YYSYMBOL_part_elem = 631, /* part_elem */
+ YYSYMBOL_table_access_method_clause = 632, /* table_access_method_clause */
+ YYSYMBOL_OptWith = 633, /* OptWith */
+ YYSYMBOL_OnCommitOption = 634, /* OnCommitOption */
+ YYSYMBOL_OptTableSpace = 635, /* OptTableSpace */
+ YYSYMBOL_OptConsTableSpace = 636, /* OptConsTableSpace */
+ YYSYMBOL_ExistingIndex = 637, /* ExistingIndex */
+ YYSYMBOL_CreateStatsStmt = 638, /* CreateStatsStmt */
+ YYSYMBOL_stats_params = 639, /* stats_params */
+ YYSYMBOL_stats_param = 640, /* stats_param */
+ YYSYMBOL_AlterStatsStmt = 641, /* AlterStatsStmt */
+ YYSYMBOL_CreateAsStmt = 642, /* CreateAsStmt */
+ YYSYMBOL_create_as_target = 643, /* create_as_target */
+ YYSYMBOL_opt_with_data = 644, /* opt_with_data */
+ YYSYMBOL_CreateMatViewStmt = 645, /* CreateMatViewStmt */
+ YYSYMBOL_create_mv_target = 646, /* create_mv_target */
+ YYSYMBOL_OptNoLog = 647, /* OptNoLog */
+ YYSYMBOL_RefreshMatViewStmt = 648, /* RefreshMatViewStmt */
+ YYSYMBOL_CreateSeqStmt = 649, /* CreateSeqStmt */
+ YYSYMBOL_AlterSeqStmt = 650, /* AlterSeqStmt */
+ YYSYMBOL_OptSeqOptList = 651, /* OptSeqOptList */
+ YYSYMBOL_OptParenthesizedSeqOptList = 652, /* OptParenthesizedSeqOptList */
+ YYSYMBOL_SeqOptList = 653, /* SeqOptList */
+ YYSYMBOL_SeqOptElem = 654, /* SeqOptElem */
+ YYSYMBOL_opt_by = 655, /* opt_by */
+ YYSYMBOL_NumericOnly = 656, /* NumericOnly */
+ YYSYMBOL_NumericOnly_list = 657, /* NumericOnly_list */
+ YYSYMBOL_CreatePLangStmt = 658, /* CreatePLangStmt */
+ YYSYMBOL_opt_trusted = 659, /* opt_trusted */
+ YYSYMBOL_handler_name = 660, /* handler_name */
+ YYSYMBOL_opt_inline_handler = 661, /* opt_inline_handler */
+ YYSYMBOL_validator_clause = 662, /* validator_clause */
+ YYSYMBOL_opt_validator = 663, /* opt_validator */
+ YYSYMBOL_opt_procedural = 664, /* opt_procedural */
+ YYSYMBOL_CreateTableSpaceStmt = 665, /* CreateTableSpaceStmt */
+ YYSYMBOL_OptTableSpaceOwner = 666, /* OptTableSpaceOwner */
+ YYSYMBOL_DropTableSpaceStmt = 667, /* DropTableSpaceStmt */
+ YYSYMBOL_CreateExtensionStmt = 668, /* CreateExtensionStmt */
+ YYSYMBOL_create_extension_opt_list = 669, /* create_extension_opt_list */
+ YYSYMBOL_create_extension_opt_item = 670, /* create_extension_opt_item */
+ YYSYMBOL_AlterExtensionStmt = 671, /* AlterExtensionStmt */
+ YYSYMBOL_alter_extension_opt_list = 672, /* alter_extension_opt_list */
+ YYSYMBOL_alter_extension_opt_item = 673, /* alter_extension_opt_item */
+ YYSYMBOL_AlterExtensionContentsStmt = 674, /* AlterExtensionContentsStmt */
+ YYSYMBOL_CreateFdwStmt = 675, /* CreateFdwStmt */
+ YYSYMBOL_fdw_option = 676, /* fdw_option */
+ YYSYMBOL_fdw_options = 677, /* fdw_options */
+ YYSYMBOL_opt_fdw_options = 678, /* opt_fdw_options */
+ YYSYMBOL_AlterFdwStmt = 679, /* AlterFdwStmt */
+ YYSYMBOL_create_generic_options = 680, /* create_generic_options */
+ YYSYMBOL_generic_option_list = 681, /* generic_option_list */
+ YYSYMBOL_alter_generic_options = 682, /* alter_generic_options */
+ YYSYMBOL_alter_generic_option_list = 683, /* alter_generic_option_list */
+ YYSYMBOL_alter_generic_option_elem = 684, /* alter_generic_option_elem */
+ YYSYMBOL_generic_option_elem = 685, /* generic_option_elem */
+ YYSYMBOL_generic_option_name = 686, /* generic_option_name */
+ YYSYMBOL_generic_option_arg = 687, /* generic_option_arg */
+ YYSYMBOL_CreateForeignServerStmt = 688, /* CreateForeignServerStmt */
+ YYSYMBOL_opt_type = 689, /* opt_type */
+ YYSYMBOL_foreign_server_version = 690, /* foreign_server_version */
+ YYSYMBOL_opt_foreign_server_version = 691, /* opt_foreign_server_version */
+ YYSYMBOL_AlterForeignServerStmt = 692, /* AlterForeignServerStmt */
+ YYSYMBOL_CreateForeignTableStmt = 693, /* CreateForeignTableStmt */
+ YYSYMBOL_ImportForeignSchemaStmt = 694, /* ImportForeignSchemaStmt */
+ YYSYMBOL_import_qualification_type = 695, /* import_qualification_type */
+ YYSYMBOL_import_qualification = 696, /* import_qualification */
+ YYSYMBOL_CreateUserMappingStmt = 697, /* CreateUserMappingStmt */
+ YYSYMBOL_auth_ident = 698, /* auth_ident */
+ YYSYMBOL_DropUserMappingStmt = 699, /* DropUserMappingStmt */
+ YYSYMBOL_AlterUserMappingStmt = 700, /* AlterUserMappingStmt */
+ YYSYMBOL_CreatePolicyStmt = 701, /* CreatePolicyStmt */
+ YYSYMBOL_AlterPolicyStmt = 702, /* AlterPolicyStmt */
+ YYSYMBOL_RowSecurityOptionalExpr = 703, /* RowSecurityOptionalExpr */
+ YYSYMBOL_RowSecurityOptionalWithCheck = 704, /* RowSecurityOptionalWithCheck */
+ YYSYMBOL_RowSecurityDefaultToRole = 705, /* RowSecurityDefaultToRole */
+ YYSYMBOL_RowSecurityOptionalToRole = 706, /* RowSecurityOptionalToRole */
+ YYSYMBOL_RowSecurityDefaultPermissive = 707, /* RowSecurityDefaultPermissive */
+ YYSYMBOL_RowSecurityDefaultForCmd = 708, /* RowSecurityDefaultForCmd */
+ YYSYMBOL_row_security_cmd = 709, /* row_security_cmd */
+ YYSYMBOL_CreateAmStmt = 710, /* CreateAmStmt */
+ YYSYMBOL_am_type = 711, /* am_type */
+ YYSYMBOL_CreateTrigStmt = 712, /* CreateTrigStmt */
+ YYSYMBOL_TriggerActionTime = 713, /* TriggerActionTime */
+ YYSYMBOL_TriggerEvents = 714, /* TriggerEvents */
+ YYSYMBOL_TriggerOneEvent = 715, /* TriggerOneEvent */
+ YYSYMBOL_TriggerReferencing = 716, /* TriggerReferencing */
+ YYSYMBOL_TriggerTransitions = 717, /* TriggerTransitions */
+ YYSYMBOL_TriggerTransition = 718, /* TriggerTransition */
+ YYSYMBOL_TransitionOldOrNew = 719, /* TransitionOldOrNew */
+ YYSYMBOL_TransitionRowOrTable = 720, /* TransitionRowOrTable */
+ YYSYMBOL_TransitionRelName = 721, /* TransitionRelName */
+ YYSYMBOL_TriggerForSpec = 722, /* TriggerForSpec */
+ YYSYMBOL_TriggerForOptEach = 723, /* TriggerForOptEach */
+ YYSYMBOL_TriggerForType = 724, /* TriggerForType */
+ YYSYMBOL_TriggerWhen = 725, /* TriggerWhen */
+ YYSYMBOL_FUNCTION_or_PROCEDURE = 726, /* FUNCTION_or_PROCEDURE */
+ YYSYMBOL_TriggerFuncArgs = 727, /* TriggerFuncArgs */
+ YYSYMBOL_TriggerFuncArg = 728, /* TriggerFuncArg */
+ YYSYMBOL_OptConstrFromTable = 729, /* OptConstrFromTable */
+ YYSYMBOL_ConstraintAttributeSpec = 730, /* ConstraintAttributeSpec */
+ YYSYMBOL_ConstraintAttributeElem = 731, /* ConstraintAttributeElem */
+ YYSYMBOL_CreateEventTrigStmt = 732, /* CreateEventTrigStmt */
+ YYSYMBOL_event_trigger_when_list = 733, /* event_trigger_when_list */
+ YYSYMBOL_event_trigger_when_item = 734, /* event_trigger_when_item */
+ YYSYMBOL_event_trigger_value_list = 735, /* event_trigger_value_list */
+ YYSYMBOL_AlterEventTrigStmt = 736, /* AlterEventTrigStmt */
+ YYSYMBOL_enable_trigger = 737, /* enable_trigger */
+ YYSYMBOL_CreateAssertionStmt = 738, /* CreateAssertionStmt */
+ YYSYMBOL_DefineStmt = 739, /* DefineStmt */
+ YYSYMBOL_definition = 740, /* definition */
+ YYSYMBOL_def_list = 741, /* def_list */
+ YYSYMBOL_def_elem = 742, /* def_elem */
+ YYSYMBOL_def_arg = 743, /* def_arg */
+ YYSYMBOL_old_aggr_definition = 744, /* old_aggr_definition */
+ YYSYMBOL_old_aggr_list = 745, /* old_aggr_list */
+ YYSYMBOL_old_aggr_elem = 746, /* old_aggr_elem */
+ YYSYMBOL_opt_enum_val_list = 747, /* opt_enum_val_list */
+ YYSYMBOL_enum_val_list = 748, /* enum_val_list */
+ YYSYMBOL_AlterEnumStmt = 749, /* AlterEnumStmt */
+ YYSYMBOL_opt_if_not_exists = 750, /* opt_if_not_exists */
+ YYSYMBOL_CreateOpClassStmt = 751, /* CreateOpClassStmt */
+ YYSYMBOL_opclass_item_list = 752, /* opclass_item_list */
+ YYSYMBOL_opclass_item = 753, /* opclass_item */
+ YYSYMBOL_opt_default = 754, /* opt_default */
+ YYSYMBOL_opt_opfamily = 755, /* opt_opfamily */
+ YYSYMBOL_opclass_purpose = 756, /* opclass_purpose */
+ YYSYMBOL_opt_recheck = 757, /* opt_recheck */
+ YYSYMBOL_CreateOpFamilyStmt = 758, /* CreateOpFamilyStmt */
+ YYSYMBOL_AlterOpFamilyStmt = 759, /* AlterOpFamilyStmt */
+ YYSYMBOL_opclass_drop_list = 760, /* opclass_drop_list */
+ YYSYMBOL_opclass_drop = 761, /* opclass_drop */
+ YYSYMBOL_DropOpClassStmt = 762, /* DropOpClassStmt */
+ YYSYMBOL_DropOpFamilyStmt = 763, /* DropOpFamilyStmt */
+ YYSYMBOL_DropOwnedStmt = 764, /* DropOwnedStmt */
+ YYSYMBOL_ReassignOwnedStmt = 765, /* ReassignOwnedStmt */
+ YYSYMBOL_DropStmt = 766, /* DropStmt */
+ YYSYMBOL_object_type_any_name = 767, /* object_type_any_name */
+ YYSYMBOL_object_type_name = 768, /* object_type_name */
+ YYSYMBOL_drop_type_name = 769, /* drop_type_name */
+ YYSYMBOL_object_type_name_on_any_name = 770, /* object_type_name_on_any_name */
+ YYSYMBOL_any_name_list = 771, /* any_name_list */
+ YYSYMBOL_any_name = 772, /* any_name */
+ YYSYMBOL_attrs = 773, /* attrs */
+ YYSYMBOL_type_name_list = 774, /* type_name_list */
+ YYSYMBOL_TruncateStmt = 775, /* TruncateStmt */
+ YYSYMBOL_opt_restart_seqs = 776, /* opt_restart_seqs */
+ YYSYMBOL_CommentStmt = 777, /* CommentStmt */
+ YYSYMBOL_comment_text = 778, /* comment_text */
+ YYSYMBOL_SecLabelStmt = 779, /* SecLabelStmt */
+ YYSYMBOL_opt_provider = 780, /* opt_provider */
+ YYSYMBOL_security_label = 781, /* security_label */
+ YYSYMBOL_FetchStmt = 782, /* FetchStmt */
+ YYSYMBOL_fetch_args = 783, /* fetch_args */
+ YYSYMBOL_from_in = 784, /* from_in */
+ YYSYMBOL_opt_from_in = 785, /* opt_from_in */
+ YYSYMBOL_GrantStmt = 786, /* GrantStmt */
+ YYSYMBOL_RevokeStmt = 787, /* RevokeStmt */
+ YYSYMBOL_privileges = 788, /* privileges */
+ YYSYMBOL_privilege_list = 789, /* privilege_list */
+ YYSYMBOL_privilege = 790, /* privilege */
+ YYSYMBOL_parameter_name_list = 791, /* parameter_name_list */
+ YYSYMBOL_parameter_name = 792, /* parameter_name */
+ YYSYMBOL_privilege_target = 793, /* privilege_target */
+ YYSYMBOL_grantee_list = 794, /* grantee_list */
+ YYSYMBOL_grantee = 795, /* grantee */
+ YYSYMBOL_opt_grant_grant_option = 796, /* opt_grant_grant_option */
+ YYSYMBOL_GrantRoleStmt = 797, /* GrantRoleStmt */
+ YYSYMBOL_RevokeRoleStmt = 798, /* RevokeRoleStmt */
+ YYSYMBOL_opt_grant_admin_option = 799, /* opt_grant_admin_option */
+ YYSYMBOL_opt_granted_by = 800, /* opt_granted_by */
+ YYSYMBOL_AlterDefaultPrivilegesStmt = 801, /* AlterDefaultPrivilegesStmt */
+ YYSYMBOL_DefACLOptionList = 802, /* DefACLOptionList */
+ YYSYMBOL_DefACLOption = 803, /* DefACLOption */
+ YYSYMBOL_DefACLAction = 804, /* DefACLAction */
+ YYSYMBOL_defacl_privilege_target = 805, /* defacl_privilege_target */
+ YYSYMBOL_IndexStmt = 806, /* IndexStmt */
+ YYSYMBOL_opt_unique = 807, /* opt_unique */
+ YYSYMBOL_opt_concurrently = 808, /* opt_concurrently */
+ YYSYMBOL_opt_index_name = 809, /* opt_index_name */
+ YYSYMBOL_access_method_clause = 810, /* access_method_clause */
+ YYSYMBOL_index_params = 811, /* index_params */
+ YYSYMBOL_index_elem_options = 812, /* index_elem_options */
+ YYSYMBOL_index_elem = 813, /* index_elem */
+ YYSYMBOL_opt_include = 814, /* opt_include */
+ YYSYMBOL_index_including_params = 815, /* index_including_params */
+ YYSYMBOL_opt_collate = 816, /* opt_collate */
+ YYSYMBOL_opt_class = 817, /* opt_class */
+ YYSYMBOL_opt_asc_desc = 818, /* opt_asc_desc */
+ YYSYMBOL_opt_nulls_order = 819, /* opt_nulls_order */
+ YYSYMBOL_CreateFunctionStmt = 820, /* CreateFunctionStmt */
+ YYSYMBOL_opt_or_replace = 821, /* opt_or_replace */
+ YYSYMBOL_func_args = 822, /* func_args */
+ YYSYMBOL_func_args_list = 823, /* func_args_list */
+ YYSYMBOL_function_with_argtypes_list = 824, /* function_with_argtypes_list */
+ YYSYMBOL_function_with_argtypes = 825, /* function_with_argtypes */
+ YYSYMBOL_func_args_with_defaults = 826, /* func_args_with_defaults */
+ YYSYMBOL_func_args_with_defaults_list = 827, /* func_args_with_defaults_list */
+ YYSYMBOL_func_arg = 828, /* func_arg */
+ YYSYMBOL_arg_class = 829, /* arg_class */
+ YYSYMBOL_param_name = 830, /* param_name */
+ YYSYMBOL_func_return = 831, /* func_return */
+ YYSYMBOL_func_type = 832, /* func_type */
+ YYSYMBOL_func_arg_with_default = 833, /* func_arg_with_default */
+ YYSYMBOL_aggr_arg = 834, /* aggr_arg */
+ YYSYMBOL_aggr_args = 835, /* aggr_args */
+ YYSYMBOL_aggr_args_list = 836, /* aggr_args_list */
+ YYSYMBOL_aggregate_with_argtypes = 837, /* aggregate_with_argtypes */
+ YYSYMBOL_aggregate_with_argtypes_list = 838, /* aggregate_with_argtypes_list */
+ YYSYMBOL_opt_createfunc_opt_list = 839, /* opt_createfunc_opt_list */
+ YYSYMBOL_createfunc_opt_list = 840, /* createfunc_opt_list */
+ YYSYMBOL_common_func_opt_item = 841, /* common_func_opt_item */
+ YYSYMBOL_createfunc_opt_item = 842, /* createfunc_opt_item */
+ YYSYMBOL_func_as = 843, /* func_as */
+ YYSYMBOL_ReturnStmt = 844, /* ReturnStmt */
+ YYSYMBOL_opt_routine_body = 845, /* opt_routine_body */
+ YYSYMBOL_routine_body_stmt_list = 846, /* routine_body_stmt_list */
+ YYSYMBOL_routine_body_stmt = 847, /* routine_body_stmt */
+ YYSYMBOL_transform_type_list = 848, /* transform_type_list */
+ YYSYMBOL_opt_definition = 849, /* opt_definition */
+ YYSYMBOL_table_func_column = 850, /* table_func_column */
+ YYSYMBOL_table_func_column_list = 851, /* table_func_column_list */
+ YYSYMBOL_AlterFunctionStmt = 852, /* AlterFunctionStmt */
+ YYSYMBOL_alterfunc_opt_list = 853, /* alterfunc_opt_list */
+ YYSYMBOL_opt_restrict = 854, /* opt_restrict */
+ YYSYMBOL_RemoveFuncStmt = 855, /* RemoveFuncStmt */
+ YYSYMBOL_RemoveAggrStmt = 856, /* RemoveAggrStmt */
+ YYSYMBOL_RemoveOperStmt = 857, /* RemoveOperStmt */
+ YYSYMBOL_oper_argtypes = 858, /* oper_argtypes */
+ YYSYMBOL_any_operator = 859, /* any_operator */
+ YYSYMBOL_operator_with_argtypes_list = 860, /* operator_with_argtypes_list */
+ YYSYMBOL_operator_with_argtypes = 861, /* operator_with_argtypes */
+ YYSYMBOL_DoStmt = 862, /* DoStmt */
+ YYSYMBOL_dostmt_opt_list = 863, /* dostmt_opt_list */
+ YYSYMBOL_dostmt_opt_item = 864, /* dostmt_opt_item */
+ YYSYMBOL_CreateCastStmt = 865, /* CreateCastStmt */
+ YYSYMBOL_cast_context = 866, /* cast_context */
+ YYSYMBOL_DropCastStmt = 867, /* DropCastStmt */
+ YYSYMBOL_opt_if_exists = 868, /* opt_if_exists */
+ YYSYMBOL_CreateTransformStmt = 869, /* CreateTransformStmt */
+ YYSYMBOL_transform_element_list = 870, /* transform_element_list */
+ YYSYMBOL_DropTransformStmt = 871, /* DropTransformStmt */
+ YYSYMBOL_ReindexStmt = 872, /* ReindexStmt */
+ YYSYMBOL_reindex_target_type = 873, /* reindex_target_type */
+ YYSYMBOL_reindex_target_multitable = 874, /* reindex_target_multitable */
+ YYSYMBOL_AlterTblSpcStmt = 875, /* AlterTblSpcStmt */
+ YYSYMBOL_RenameStmt = 876, /* RenameStmt */
+ YYSYMBOL_opt_column = 877, /* opt_column */
+ YYSYMBOL_opt_set_data = 878, /* opt_set_data */
+ YYSYMBOL_AlterObjectDependsStmt = 879, /* AlterObjectDependsStmt */
+ YYSYMBOL_opt_no = 880, /* opt_no */
+ YYSYMBOL_AlterObjectSchemaStmt = 881, /* AlterObjectSchemaStmt */
+ YYSYMBOL_AlterOperatorStmt = 882, /* AlterOperatorStmt */
+ YYSYMBOL_operator_def_list = 883, /* operator_def_list */
+ YYSYMBOL_operator_def_elem = 884, /* operator_def_elem */
+ YYSYMBOL_operator_def_arg = 885, /* operator_def_arg */
+ YYSYMBOL_AlterTypeStmt = 886, /* AlterTypeStmt */
+ YYSYMBOL_AlterOwnerStmt = 887, /* AlterOwnerStmt */
+ YYSYMBOL_CreatePublicationStmt = 888, /* CreatePublicationStmt */
+ YYSYMBOL_PublicationObjSpec = 889, /* PublicationObjSpec */
+ YYSYMBOL_pub_obj_list = 890, /* pub_obj_list */
+ YYSYMBOL_AlterPublicationStmt = 891, /* AlterPublicationStmt */
+ YYSYMBOL_CreateSubscriptionStmt = 892, /* CreateSubscriptionStmt */
+ YYSYMBOL_AlterSubscriptionStmt = 893, /* AlterSubscriptionStmt */
+ YYSYMBOL_DropSubscriptionStmt = 894, /* DropSubscriptionStmt */
+ YYSYMBOL_RuleStmt = 895, /* RuleStmt */
+ YYSYMBOL_RuleActionList = 896, /* RuleActionList */
+ YYSYMBOL_RuleActionMulti = 897, /* RuleActionMulti */
+ YYSYMBOL_RuleActionStmt = 898, /* RuleActionStmt */
+ YYSYMBOL_RuleActionStmtOrEmpty = 899, /* RuleActionStmtOrEmpty */
+ YYSYMBOL_event = 900, /* event */
+ YYSYMBOL_opt_instead = 901, /* opt_instead */
+ YYSYMBOL_NotifyStmt = 902, /* NotifyStmt */
+ YYSYMBOL_notify_payload = 903, /* notify_payload */
+ YYSYMBOL_ListenStmt = 904, /* ListenStmt */
+ YYSYMBOL_UnlistenStmt = 905, /* UnlistenStmt */
+ YYSYMBOL_TransactionStmt = 906, /* TransactionStmt */
+ YYSYMBOL_TransactionStmtLegacy = 907, /* TransactionStmtLegacy */
+ YYSYMBOL_opt_transaction = 908, /* opt_transaction */
+ YYSYMBOL_transaction_mode_item = 909, /* transaction_mode_item */
+ YYSYMBOL_transaction_mode_list = 910, /* transaction_mode_list */
+ YYSYMBOL_transaction_mode_list_or_empty = 911, /* transaction_mode_list_or_empty */
+ YYSYMBOL_opt_transaction_chain = 912, /* opt_transaction_chain */
+ YYSYMBOL_ViewStmt = 913, /* ViewStmt */
+ YYSYMBOL_opt_check_option = 914, /* opt_check_option */
+ YYSYMBOL_LoadStmt = 915, /* LoadStmt */
+ YYSYMBOL_CreatedbStmt = 916, /* CreatedbStmt */
+ YYSYMBOL_createdb_opt_list = 917, /* createdb_opt_list */
+ YYSYMBOL_createdb_opt_items = 918, /* createdb_opt_items */
+ YYSYMBOL_createdb_opt_item = 919, /* createdb_opt_item */
+ YYSYMBOL_createdb_opt_name = 920, /* createdb_opt_name */
+ YYSYMBOL_opt_equal = 921, /* opt_equal */
+ YYSYMBOL_AlterDatabaseStmt = 922, /* AlterDatabaseStmt */
+ YYSYMBOL_AlterDatabaseSetStmt = 923, /* AlterDatabaseSetStmt */
+ YYSYMBOL_DropdbStmt = 924, /* DropdbStmt */
+ YYSYMBOL_drop_option_list = 925, /* drop_option_list */
+ YYSYMBOL_drop_option = 926, /* drop_option */
+ YYSYMBOL_AlterCollationStmt = 927, /* AlterCollationStmt */
+ YYSYMBOL_AlterSystemStmt = 928, /* AlterSystemStmt */
+ YYSYMBOL_CreateDomainStmt = 929, /* CreateDomainStmt */
+ YYSYMBOL_AlterDomainStmt = 930, /* AlterDomainStmt */
+ YYSYMBOL_opt_as = 931, /* opt_as */
+ YYSYMBOL_AlterTSDictionaryStmt = 932, /* AlterTSDictionaryStmt */
+ YYSYMBOL_AlterTSConfigurationStmt = 933, /* AlterTSConfigurationStmt */
+ YYSYMBOL_any_with = 934, /* any_with */
+ YYSYMBOL_CreateConversionStmt = 935, /* CreateConversionStmt */
+ YYSYMBOL_ClusterStmt = 936, /* ClusterStmt */
+ YYSYMBOL_cluster_index_specification = 937, /* cluster_index_specification */
+ YYSYMBOL_VacuumStmt = 938, /* VacuumStmt */
+ YYSYMBOL_AnalyzeStmt = 939, /* AnalyzeStmt */
+ YYSYMBOL_utility_option_list = 940, /* utility_option_list */
+ YYSYMBOL_analyze_keyword = 941, /* analyze_keyword */
+ YYSYMBOL_utility_option_elem = 942, /* utility_option_elem */
+ YYSYMBOL_utility_option_name = 943, /* utility_option_name */
+ YYSYMBOL_utility_option_arg = 944, /* utility_option_arg */
+ YYSYMBOL_opt_analyze = 945, /* opt_analyze */
+ YYSYMBOL_opt_verbose = 946, /* opt_verbose */
+ YYSYMBOL_opt_full = 947, /* opt_full */
+ YYSYMBOL_opt_freeze = 948, /* opt_freeze */
+ YYSYMBOL_opt_name_list = 949, /* opt_name_list */
+ YYSYMBOL_vacuum_relation = 950, /* vacuum_relation */
+ YYSYMBOL_vacuum_relation_list = 951, /* vacuum_relation_list */
+ YYSYMBOL_opt_vacuum_relation_list = 952, /* opt_vacuum_relation_list */
+ YYSYMBOL_ExplainStmt = 953, /* ExplainStmt */
+ YYSYMBOL_ExplainableStmt = 954, /* ExplainableStmt */
+ YYSYMBOL_PrepareStmt = 955, /* PrepareStmt */
+ YYSYMBOL_prep_type_clause = 956, /* prep_type_clause */
+ YYSYMBOL_PreparableStmt = 957, /* PreparableStmt */
+ YYSYMBOL_ExecuteStmt = 958, /* ExecuteStmt */
+ YYSYMBOL_execute_param_clause = 959, /* execute_param_clause */
+ YYSYMBOL_DeallocateStmt = 960, /* DeallocateStmt */
+ YYSYMBOL_InsertStmt = 961, /* InsertStmt */
+ YYSYMBOL_insert_target = 962, /* insert_target */
+ YYSYMBOL_insert_rest = 963, /* insert_rest */
+ YYSYMBOL_override_kind = 964, /* override_kind */
+ YYSYMBOL_insert_column_list = 965, /* insert_column_list */
+ YYSYMBOL_insert_column_item = 966, /* insert_column_item */
+ YYSYMBOL_opt_on_conflict = 967, /* opt_on_conflict */
+ YYSYMBOL_opt_conf_expr = 968, /* opt_conf_expr */
+ YYSYMBOL_returning_clause = 969, /* returning_clause */
+ YYSYMBOL_DeleteStmt = 970, /* DeleteStmt */
+ YYSYMBOL_using_clause = 971, /* using_clause */
+ YYSYMBOL_LockStmt = 972, /* LockStmt */
+ YYSYMBOL_opt_lock = 973, /* opt_lock */
+ YYSYMBOL_lock_type = 974, /* lock_type */
+ YYSYMBOL_opt_nowait = 975, /* opt_nowait */
+ YYSYMBOL_opt_nowait_or_skip = 976, /* opt_nowait_or_skip */
+ YYSYMBOL_UpdateStmt = 977, /* UpdateStmt */
+ YYSYMBOL_set_clause_list = 978, /* set_clause_list */
+ YYSYMBOL_set_clause = 979, /* set_clause */
+ YYSYMBOL_set_target = 980, /* set_target */
+ YYSYMBOL_set_target_list = 981, /* set_target_list */
+ YYSYMBOL_MergeStmt = 982, /* MergeStmt */
+ YYSYMBOL_merge_when_list = 983, /* merge_when_list */
+ YYSYMBOL_merge_when_clause = 984, /* merge_when_clause */
+ YYSYMBOL_opt_merge_when_condition = 985, /* opt_merge_when_condition */
+ YYSYMBOL_merge_update = 986, /* merge_update */
+ YYSYMBOL_merge_delete = 987, /* merge_delete */
+ YYSYMBOL_merge_insert = 988, /* merge_insert */
+ YYSYMBOL_merge_values_clause = 989, /* merge_values_clause */
+ YYSYMBOL_DeclareCursorStmt = 990, /* DeclareCursorStmt */
+ YYSYMBOL_cursor_name = 991, /* cursor_name */
+ YYSYMBOL_cursor_options = 992, /* cursor_options */
+ YYSYMBOL_opt_hold = 993, /* opt_hold */
+ YYSYMBOL_SelectStmt = 994, /* SelectStmt */
+ YYSYMBOL_select_with_parens = 995, /* select_with_parens */
+ YYSYMBOL_select_no_parens = 996, /* select_no_parens */
+ YYSYMBOL_select_clause = 997, /* select_clause */
+ YYSYMBOL_simple_select = 998, /* simple_select */
+ YYSYMBOL_with_clause = 999, /* with_clause */
+ YYSYMBOL_cte_list = 1000, /* cte_list */
+ YYSYMBOL_common_table_expr = 1001, /* common_table_expr */
+ YYSYMBOL_opt_materialized = 1002, /* opt_materialized */
+ YYSYMBOL_opt_search_clause = 1003, /* opt_search_clause */
+ YYSYMBOL_opt_cycle_clause = 1004, /* opt_cycle_clause */
+ YYSYMBOL_opt_with_clause = 1005, /* opt_with_clause */
+ YYSYMBOL_into_clause = 1006, /* into_clause */
+ YYSYMBOL_OptTempTableName = 1007, /* OptTempTableName */
+ YYSYMBOL_opt_table = 1008, /* opt_table */
+ YYSYMBOL_set_quantifier = 1009, /* set_quantifier */
+ YYSYMBOL_distinct_clause = 1010, /* distinct_clause */
+ YYSYMBOL_opt_all_clause = 1011, /* opt_all_clause */
+ YYSYMBOL_opt_distinct_clause = 1012, /* opt_distinct_clause */
+ YYSYMBOL_opt_sort_clause = 1013, /* opt_sort_clause */
+ YYSYMBOL_sort_clause = 1014, /* sort_clause */
+ YYSYMBOL_sortby_list = 1015, /* sortby_list */
+ YYSYMBOL_sortby = 1016, /* sortby */
+ YYSYMBOL_select_limit = 1017, /* select_limit */
+ YYSYMBOL_opt_select_limit = 1018, /* opt_select_limit */
+ YYSYMBOL_limit_clause = 1019, /* limit_clause */
+ YYSYMBOL_offset_clause = 1020, /* offset_clause */
+ YYSYMBOL_select_limit_value = 1021, /* select_limit_value */
+ YYSYMBOL_select_offset_value = 1022, /* select_offset_value */
+ YYSYMBOL_select_fetch_first_value = 1023, /* select_fetch_first_value */
+ YYSYMBOL_I_or_F_const = 1024, /* I_or_F_const */
+ YYSYMBOL_row_or_rows = 1025, /* row_or_rows */
+ YYSYMBOL_first_or_next = 1026, /* first_or_next */
+ YYSYMBOL_group_clause = 1027, /* group_clause */
+ YYSYMBOL_group_by_list = 1028, /* group_by_list */
+ YYSYMBOL_group_by_item = 1029, /* group_by_item */
+ YYSYMBOL_empty_grouping_set = 1030, /* empty_grouping_set */
+ YYSYMBOL_rollup_clause = 1031, /* rollup_clause */
+ YYSYMBOL_cube_clause = 1032, /* cube_clause */
+ YYSYMBOL_grouping_sets_clause = 1033, /* grouping_sets_clause */
+ YYSYMBOL_having_clause = 1034, /* having_clause */
+ YYSYMBOL_for_locking_clause = 1035, /* for_locking_clause */
+ YYSYMBOL_opt_for_locking_clause = 1036, /* opt_for_locking_clause */
+ YYSYMBOL_for_locking_items = 1037, /* for_locking_items */
+ YYSYMBOL_for_locking_item = 1038, /* for_locking_item */
+ YYSYMBOL_for_locking_strength = 1039, /* for_locking_strength */
+ YYSYMBOL_locked_rels_list = 1040, /* locked_rels_list */
+ YYSYMBOL_values_clause = 1041, /* values_clause */
+ YYSYMBOL_from_clause = 1042, /* from_clause */
+ YYSYMBOL_from_list = 1043, /* from_list */
+ YYSYMBOL_table_ref = 1044, /* table_ref */
+ YYSYMBOL_joined_table = 1045, /* joined_table */
+ YYSYMBOL_alias_clause = 1046, /* alias_clause */
+ YYSYMBOL_opt_alias_clause = 1047, /* opt_alias_clause */
+ YYSYMBOL_opt_alias_clause_for_join_using = 1048, /* opt_alias_clause_for_join_using */
+ YYSYMBOL_func_alias_clause = 1049, /* func_alias_clause */
+ YYSYMBOL_join_type = 1050, /* join_type */
+ YYSYMBOL_opt_outer = 1051, /* opt_outer */
+ YYSYMBOL_join_qual = 1052, /* join_qual */
+ YYSYMBOL_relation_expr = 1053, /* relation_expr */
+ YYSYMBOL_extended_relation_expr = 1054, /* extended_relation_expr */
+ YYSYMBOL_relation_expr_list = 1055, /* relation_expr_list */
+ YYSYMBOL_relation_expr_opt_alias = 1056, /* relation_expr_opt_alias */
+ YYSYMBOL_tablesample_clause = 1057, /* tablesample_clause */
+ YYSYMBOL_opt_repeatable_clause = 1058, /* opt_repeatable_clause */
+ YYSYMBOL_func_table = 1059, /* func_table */
+ YYSYMBOL_rowsfrom_item = 1060, /* rowsfrom_item */
+ YYSYMBOL_rowsfrom_list = 1061, /* rowsfrom_list */
+ YYSYMBOL_opt_col_def_list = 1062, /* opt_col_def_list */
+ YYSYMBOL_opt_ordinality = 1063, /* opt_ordinality */
+ YYSYMBOL_where_clause = 1064, /* where_clause */
+ YYSYMBOL_where_or_current_clause = 1065, /* where_or_current_clause */
+ YYSYMBOL_OptTableFuncElementList = 1066, /* OptTableFuncElementList */
+ YYSYMBOL_TableFuncElementList = 1067, /* TableFuncElementList */
+ YYSYMBOL_TableFuncElement = 1068, /* TableFuncElement */
+ YYSYMBOL_xmltable = 1069, /* xmltable */
+ YYSYMBOL_xmltable_column_list = 1070, /* xmltable_column_list */
+ YYSYMBOL_xmltable_column_el = 1071, /* xmltable_column_el */
+ YYSYMBOL_xmltable_column_option_list = 1072, /* xmltable_column_option_list */
+ YYSYMBOL_xmltable_column_option_el = 1073, /* xmltable_column_option_el */
+ YYSYMBOL_xml_namespace_list = 1074, /* xml_namespace_list */
+ YYSYMBOL_xml_namespace_el = 1075, /* xml_namespace_el */
+ YYSYMBOL_Typename = 1076, /* Typename */
+ YYSYMBOL_opt_array_bounds = 1077, /* opt_array_bounds */
+ YYSYMBOL_SimpleTypename = 1078, /* SimpleTypename */
+ YYSYMBOL_ConstTypename = 1079, /* ConstTypename */
+ YYSYMBOL_GenericType = 1080, /* GenericType */
+ YYSYMBOL_opt_type_modifiers = 1081, /* opt_type_modifiers */
+ YYSYMBOL_Numeric = 1082, /* Numeric */
+ YYSYMBOL_opt_float = 1083, /* opt_float */
+ YYSYMBOL_Bit = 1084, /* Bit */
+ YYSYMBOL_ConstBit = 1085, /* ConstBit */
+ YYSYMBOL_BitWithLength = 1086, /* BitWithLength */
+ YYSYMBOL_BitWithoutLength = 1087, /* BitWithoutLength */
+ YYSYMBOL_Character = 1088, /* Character */
+ YYSYMBOL_ConstCharacter = 1089, /* ConstCharacter */
+ YYSYMBOL_CharacterWithLength = 1090, /* CharacterWithLength */
+ YYSYMBOL_CharacterWithoutLength = 1091, /* CharacterWithoutLength */
+ YYSYMBOL_character = 1092, /* character */
+ YYSYMBOL_opt_varying = 1093, /* opt_varying */
+ YYSYMBOL_ConstDatetime = 1094, /* ConstDatetime */
+ YYSYMBOL_ConstInterval = 1095, /* ConstInterval */
+ YYSYMBOL_opt_timezone = 1096, /* opt_timezone */
+ YYSYMBOL_opt_interval = 1097, /* opt_interval */
+ YYSYMBOL_interval_second = 1098, /* interval_second */
+ YYSYMBOL_a_expr = 1099, /* a_expr */
+ YYSYMBOL_b_expr = 1100, /* b_expr */
+ YYSYMBOL_c_expr = 1101, /* c_expr */
+ YYSYMBOL_func_application = 1102, /* func_application */
+ YYSYMBOL_func_expr = 1103, /* func_expr */
+ YYSYMBOL_func_expr_windowless = 1104, /* func_expr_windowless */
+ YYSYMBOL_func_expr_common_subexpr = 1105, /* func_expr_common_subexpr */
+ YYSYMBOL_xml_root_version = 1106, /* xml_root_version */
+ YYSYMBOL_opt_xml_root_standalone = 1107, /* opt_xml_root_standalone */
+ YYSYMBOL_xml_attributes = 1108, /* xml_attributes */
+ YYSYMBOL_xml_attribute_list = 1109, /* xml_attribute_list */
+ YYSYMBOL_xml_attribute_el = 1110, /* xml_attribute_el */
+ YYSYMBOL_document_or_content = 1111, /* document_or_content */
+ YYSYMBOL_xml_whitespace_option = 1112, /* xml_whitespace_option */
+ YYSYMBOL_xmlexists_argument = 1113, /* xmlexists_argument */
+ YYSYMBOL_xml_passing_mech = 1114, /* xml_passing_mech */
+ YYSYMBOL_within_group_clause = 1115, /* within_group_clause */
+ YYSYMBOL_filter_clause = 1116, /* filter_clause */
+ YYSYMBOL_window_clause = 1117, /* window_clause */
+ YYSYMBOL_window_definition_list = 1118, /* window_definition_list */
+ YYSYMBOL_window_definition = 1119, /* window_definition */
+ YYSYMBOL_over_clause = 1120, /* over_clause */
+ YYSYMBOL_window_specification = 1121, /* window_specification */
+ YYSYMBOL_opt_existing_window_name = 1122, /* opt_existing_window_name */
+ YYSYMBOL_opt_partition_clause = 1123, /* opt_partition_clause */
+ YYSYMBOL_opt_frame_clause = 1124, /* opt_frame_clause */
+ YYSYMBOL_frame_extent = 1125, /* frame_extent */
+ YYSYMBOL_frame_bound = 1126, /* frame_bound */
+ YYSYMBOL_opt_window_exclusion_clause = 1127, /* opt_window_exclusion_clause */
+ YYSYMBOL_row = 1128, /* row */
+ YYSYMBOL_explicit_row = 1129, /* explicit_row */
+ YYSYMBOL_implicit_row = 1130, /* implicit_row */
+ YYSYMBOL_sub_type = 1131, /* sub_type */
+ YYSYMBOL_all_Op = 1132, /* all_Op */
+ YYSYMBOL_MathOp = 1133, /* MathOp */
+ YYSYMBOL_qual_Op = 1134, /* qual_Op */
+ YYSYMBOL_qual_all_Op = 1135, /* qual_all_Op */
+ YYSYMBOL_subquery_Op = 1136, /* subquery_Op */
+ YYSYMBOL_expr_list = 1137, /* expr_list */
+ YYSYMBOL_func_arg_list = 1138, /* func_arg_list */
+ YYSYMBOL_func_arg_expr = 1139, /* func_arg_expr */
+ YYSYMBOL_func_arg_list_opt = 1140, /* func_arg_list_opt */
+ YYSYMBOL_type_list = 1141, /* type_list */
+ YYSYMBOL_array_expr = 1142, /* array_expr */
+ YYSYMBOL_array_expr_list = 1143, /* array_expr_list */
+ YYSYMBOL_extract_list = 1144, /* extract_list */
+ YYSYMBOL_extract_arg = 1145, /* extract_arg */
+ YYSYMBOL_unicode_normal_form = 1146, /* unicode_normal_form */
+ YYSYMBOL_overlay_list = 1147, /* overlay_list */
+ YYSYMBOL_position_list = 1148, /* position_list */
+ YYSYMBOL_substr_list = 1149, /* substr_list */
+ YYSYMBOL_trim_list = 1150, /* trim_list */
+ YYSYMBOL_in_expr = 1151, /* in_expr */
+ YYSYMBOL_case_expr = 1152, /* case_expr */
+ YYSYMBOL_when_clause_list = 1153, /* when_clause_list */
+ YYSYMBOL_when_clause = 1154, /* when_clause */
+ YYSYMBOL_case_default = 1155, /* case_default */
+ YYSYMBOL_case_arg = 1156, /* case_arg */
+ YYSYMBOL_columnref = 1157, /* columnref */
+ YYSYMBOL_indirection_el = 1158, /* indirection_el */
+ YYSYMBOL_opt_slice_bound = 1159, /* opt_slice_bound */
+ YYSYMBOL_indirection = 1160, /* indirection */
+ YYSYMBOL_opt_indirection = 1161, /* opt_indirection */
+ YYSYMBOL_opt_asymmetric = 1162, /* opt_asymmetric */
+ YYSYMBOL_opt_target_list = 1163, /* opt_target_list */
+ YYSYMBOL_target_list = 1164, /* target_list */
+ YYSYMBOL_target_el = 1165, /* target_el */
+ YYSYMBOL_qualified_name_list = 1166, /* qualified_name_list */
+ YYSYMBOL_qualified_name = 1167, /* qualified_name */
+ YYSYMBOL_name_list = 1168, /* name_list */
+ YYSYMBOL_name = 1169, /* name */
+ YYSYMBOL_attr_name = 1170, /* attr_name */
+ YYSYMBOL_file_name = 1171, /* file_name */
+ YYSYMBOL_func_name = 1172, /* func_name */
+ YYSYMBOL_AexprConst = 1173, /* AexprConst */
+ YYSYMBOL_Iconst = 1174, /* Iconst */
+ YYSYMBOL_Sconst = 1175, /* Sconst */
+ YYSYMBOL_SignedIconst = 1176, /* SignedIconst */
+ YYSYMBOL_RoleId = 1177, /* RoleId */
+ YYSYMBOL_RoleSpec = 1178, /* RoleSpec */
+ YYSYMBOL_role_list = 1179, /* role_list */
+ YYSYMBOL_PLpgSQL_Expr = 1180, /* PLpgSQL_Expr */
+ YYSYMBOL_PLAssignStmt = 1181, /* PLAssignStmt */
+ YYSYMBOL_plassign_target = 1182, /* plassign_target */
+ YYSYMBOL_plassign_equals = 1183, /* plassign_equals */
+ YYSYMBOL_ColId = 1184, /* ColId */
+ YYSYMBOL_type_function_name = 1185, /* type_function_name */
+ YYSYMBOL_NonReservedWord = 1186, /* NonReservedWord */
+ YYSYMBOL_ColLabel = 1187, /* ColLabel */
+ YYSYMBOL_BareColLabel = 1188, /* BareColLabel */
+ YYSYMBOL_unreserved_keyword = 1189, /* unreserved_keyword */
+ YYSYMBOL_col_name_keyword = 1190, /* col_name_keyword */
+ YYSYMBOL_type_func_name_keyword = 1191, /* type_func_name_keyword */
+ YYSYMBOL_reserved_keyword = 1192, /* reserved_keyword */
+ YYSYMBOL_bare_label_keyword = 1193 /* bare_label_keyword */
+};
+typedef enum yysymbol_kind_t yysymbol_kind_t;
+
+
+
+
+#ifdef short
+# undef short
+#endif
+
+/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
+ <limits.h> and (if available) <stdint.h> are included
+ so that the code can choose integer types of a good width. */
+
+#ifndef __PTRDIFF_MAX__
+# include <limits.h> /* INFRINGES ON USER NAME SPACE */
+# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
+# include <stdint.h> /* INFRINGES ON USER NAME SPACE */
+# define YY_STDINT_H
+# endif
+#endif
+
+/* Narrow types that promote to a signed type and that can represent a
+ signed or unsigned integer of at least N bits. In tables they can
+ save space and decrease cache pressure. Promoting to a signed type
+ helps avoid bugs in integer arithmetic. */
+
+#ifdef __INT_LEAST8_MAX__
+typedef __INT_LEAST8_TYPE__ yytype_int8;
+#elif defined YY_STDINT_H
+typedef int_least8_t yytype_int8;
+#else
+typedef signed char yytype_int8;
+#endif
+
+#ifdef __INT_LEAST16_MAX__
+typedef __INT_LEAST16_TYPE__ yytype_int16;
+#elif defined YY_STDINT_H
+typedef int_least16_t yytype_int16;
+#else
+typedef short yytype_int16;
+#endif
+
+/* Work around bug in HP-UX 11.23, which defines these macros
+ incorrectly for preprocessor constants. This workaround can likely
+ be removed in 2023, as HPE has promised support for HP-UX 11.23
+ (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
+ <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */
+#ifdef __hpux
+# undef UINT_LEAST8_MAX
+# undef UINT_LEAST16_MAX
+# define UINT_LEAST8_MAX 255
+# define UINT_LEAST16_MAX 65535
+#endif
+
+#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
+typedef __UINT_LEAST8_TYPE__ yytype_uint8;
+#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
+ && UINT_LEAST8_MAX <= INT_MAX)
+typedef uint_least8_t yytype_uint8;
+#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
+typedef unsigned char yytype_uint8;
+#else
+typedef short yytype_uint8;
+#endif
+
+#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
+typedef __UINT_LEAST16_TYPE__ yytype_uint16;
+#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
+ && UINT_LEAST16_MAX <= INT_MAX)
+typedef uint_least16_t yytype_uint16;
+#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
+typedef unsigned short yytype_uint16;
+#else
+typedef int yytype_uint16;
+#endif
+
+#ifndef YYPTRDIFF_T
+# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
+# define YYPTRDIFF_T __PTRDIFF_TYPE__
+# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
+# elif defined PTRDIFF_MAX
+# ifndef ptrdiff_t
+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+# endif
+# define YYPTRDIFF_T ptrdiff_t
+# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
+# else
+# define YYPTRDIFF_T long
+# define YYPTRDIFF_MAXIMUM LONG_MAX
+# endif
+#endif
+
+#ifndef YYSIZE_T
+# ifdef __SIZE_TYPE__
+# define YYSIZE_T __SIZE_TYPE__
+# elif defined size_t
+# define YYSIZE_T size_t
+# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+# define YYSIZE_T size_t
+# else
+# define YYSIZE_T unsigned
+# endif
+#endif
+
+#define YYSIZE_MAXIMUM \
+ YY_CAST (YYPTRDIFF_T, \
+ (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
+ ? YYPTRDIFF_MAXIMUM \
+ : YY_CAST (YYSIZE_T, -1)))
+
+#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
+
+
+/* Stored state numbers (used for stacks). */
+typedef yytype_int16 yy_state_t;
+
+/* State numbers in computations. */
+typedef int yy_state_fast_t;
+
+#ifndef YY_
+# if defined YYENABLE_NLS && YYENABLE_NLS
+# if ENABLE_NLS
+# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
+# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
+# endif
+# endif
+# ifndef YY_
+# define YY_(Msgid) Msgid
+# endif
+#endif
+
+
+#ifndef YY_ATTRIBUTE_PURE
+# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
+# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
+# else
+# define YY_ATTRIBUTE_PURE
+# endif
+#endif
+
+#ifndef YY_ATTRIBUTE_UNUSED
+# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
+# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
+# else
+# define YY_ATTRIBUTE_UNUSED
+# endif
+#endif
+
+/* Suppress unused-variable warnings by "using" E. */
+#if ! defined lint || defined __GNUC__
+# define YY_USE(E) ((void) (E))
+#else
+# define YY_USE(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 __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
+# define YY_IGNORE_USELESS_CAST_BEGIN \
+ _Pragma ("GCC diagnostic push") \
+ _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
+# define YY_IGNORE_USELESS_CAST_END \
+ _Pragma ("GCC diagnostic pop")
+#endif
+#ifndef YY_IGNORE_USELESS_CAST_BEGIN
+# define YY_IGNORE_USELESS_CAST_BEGIN
+# define YY_IGNORE_USELESS_CAST_END
+#endif
+
+
+#define YY_ASSERT(E) ((void) (0 && (E)))
+
+#if !defined yyoverflow
+
+/* The parser invokes alloca or malloc; define the necessary symbols. */
+
+# ifdef YYSTACK_USE_ALLOCA
+# if YYSTACK_USE_ALLOCA
+# ifdef __GNUC__
+# define YYSTACK_ALLOC __builtin_alloca
+# elif defined __BUILTIN_VA_ARG_INCR
+# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
+# elif defined _AIX
+# define YYSTACK_ALLOC __alloca
+# elif defined _MSC_VER
+# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
+# define alloca _alloca
+# else
+# define YYSTACK_ALLOC alloca
+# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+ /* Use EXIT_SUCCESS as a witness for stdlib.h. */
+# ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
+# endif
+# endif
+# endif
+# endif
+# endif
+
+# ifdef YYSTACK_ALLOC
+ /* Pacify GCC's 'empty if-body' warning. */
+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+# ifndef YYSTACK_ALLOC_MAXIMUM
+ /* The OS might guarantee only one guard page at the bottom of the stack,
+ and a page size can be as small as 4096 bytes. So we cannot safely
+ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
+ to allow for a few compiler-allocated temporary stack slots. */
+# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
+# endif
+# else
+# define YYSTACK_ALLOC YYMALLOC
+# define YYSTACK_FREE YYFREE
+# ifndef YYSTACK_ALLOC_MAXIMUM
+# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
+# endif
+# if (defined __cplusplus && ! defined EXIT_SUCCESS \
+ && ! ((defined YYMALLOC || defined malloc) \
+ && (defined YYFREE || defined free)))
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+# ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
+# endif
+# endif
+# ifndef YYMALLOC
+# define YYMALLOC malloc
+# if ! defined malloc && ! defined EXIT_SUCCESS
+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
+# endif
+# endif
+# ifndef YYFREE
+# define YYFREE free
+# if ! defined free && ! defined EXIT_SUCCESS
+void free (void *); /* INFRINGES ON USER NAME SPACE */
+# endif
+# endif
+# endif
+#endif /* !defined yyoverflow */
+
+#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
+{
+ yy_state_t 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 (YYSIZEOF (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+ N elements. */
+# define YYSTACK_BYTES(N) \
+ ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \
+ + YYSIZEOF (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 \
+ { \
+ YYPTRDIFF_T yynewbytes; \
+ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
+ Stack = &yyptr->Stack_alloc; \
+ yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / YYSIZEOF (*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, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
+# else
+# define YYCOPY(Dst, Src, Count) \
+ do \
+ { \
+ YYPTRDIFF_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 902
+/* YYLAST -- Last index in YYTABLE. */
+#define YYLAST 111091
+
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS 506
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS 688
+/* YYNRULES -- Number of rules. */
+#define YYNRULES 3206
+/* YYNSTATES -- Number of states. */
+#define YYNSTATES 6090
+
+/* YYMAXUTOK -- Last valid token kind. */
+#define YYMAXUTOK 743
+
+
+/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
+ as returned by yylex, with out-of-bounds checking. */
+#define YYTRANSLATE(YYX) \
+ (0 <= (YYX) && (YYX) <= YYMAXUTOK \
+ ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
+ : YYSYMBOL_YYUNDEF)
+
+/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
+ as returned by yylex. */
+static const yytype_int16 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, 495, 2, 2,
+ 500, 501, 493, 491, 504, 492, 502, 494, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 505, 503,
+ 488, 490, 489, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 498, 2, 499, 496, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 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, 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, 497
+};
+
+#if YYDEBUG
+ /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
+static const yytype_int16 yyrline[] =
+{
+ 0, 859, 859, 864, 868, 873, 881, 889, 909, 921,
+ 935, 936, 940, 941, 942, 943, 944, 945, 946, 947,
+ 948, 949, 950, 951, 952, 953, 954, 955, 956, 957,
+ 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,
+ 968, 969, 970, 971, 972, 973, 974, 975, 976, 977,
+ 978, 979, 980, 981, 982, 983, 984, 985, 986, 987,
+ 988, 989, 990, 991, 992, 993, 994, 995, 996, 997,
+ 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007,
+ 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
+ 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027,
+ 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037,
+ 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047,
+ 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057,
+ 1058, 1059, 1060, 1061, 1062, 1063, 1065, 1074, 1090, 1102,
+ 1103, 1104, 1113, 1114, 1118, 1119, 1123, 1128, 1132, 1142,
+ 1150, 1154, 1158, 1163, 1167, 1215, 1217, 1221, 1225, 1229,
+ 1233, 1247, 1266, 1275, 1287, 1288, 1292, 1301, 1310, 1319,
+ 1341, 1349, 1357, 1365, 1373, 1381, 1399, 1418, 1430, 1431,
+ 1442, 1453, 1464, 1480, 1499, 1500, 1504, 1511, 1519, 1520,
+ 1521, 1522, 1523, 1524, 1538, 1545, 1552, 1562, 1571, 1580,
+ 1584, 1593, 1602, 1610, 1621, 1622, 1631, 1643, 1651, 1660,
+ 1672, 1681, 1690, 1698, 1708, 1719, 1720, 1724, 1725, 1728,
+ 1730, 1734, 1735, 1736, 1737, 1741, 1742, 1743, 1749, 1761,
+ 1765, 1769, 1786, 1794, 1795, 1796, 1800, 1801, 1802, 1806,
+ 1807, 1811, 1815, 1816, 1824, 1832, 1843, 1851, 1862, 1863,
+ 1868, 1869, 1874, 1881, 1888, 1895, 1902, 1913, 1924, 1925,
+ 1929, 1930, 1938, 1954, 1961, 1968, 1975, 1982, 2002, 2012,
+ 2022, 2032, 2042, 2054, 2066, 2076, 2086, 2096, 2108, 2120,
+ 2130, 2140, 2150, 2160, 2170, 2180, 2192, 2204, 2214, 2227,
+ 2228, 2233, 2247, 2260, 2276, 2293, 2303, 2313, 2323, 2333,
+ 2343, 2352, 2361, 2370, 2380, 2390, 2406, 2416, 2426, 2436,
+ 2446, 2463, 2473, 2483, 2493, 2504, 2518, 2534, 2544, 2553,
+ 2569, 2578, 2589, 2600, 2608, 2617, 2626, 2634, 2642, 2651,
+ 2660, 2669, 2677, 2685, 2694, 2702, 2710, 2719, 2728, 2737,
+ 2746, 2755, 2764, 2775, 2783, 2792, 2801, 2810, 2819, 2828,
+ 2837, 2845, 2853, 2861, 2868, 2879, 2880, 2884, 2885, 2886,
+ 2890, 2899, 2903, 2904, 2908, 2916, 2924, 2932, 2943, 2946,
+ 2947, 2951, 2952, 2957, 2961, 2965, 2970, 2977, 2979, 2984,
+ 2988, 2992, 3003, 3011, 3064, 3077, 3091, 3103, 3110, 3114,
+ 3128, 3141, 3142, 3147, 3157, 3168, 3179, 3206, 3213, 3247,
+ 3283, 3306, 3307, 3311, 3312, 3321, 3322, 3323, 3326, 3327,
+ 3332, 3333, 3337, 3341, 3345, 3349, 3353, 3357, 3361, 3365,
+ 3369, 3373, 3377, 3381, 3385, 3394, 3398, 3402, 3406, 3410,
+ 3411, 3416, 3420, 3427, 3434, 3435, 3436, 3437, 3438, 3442,
+ 3446, 3454, 3465, 3485, 3505, 3526, 3547, 3568, 3602, 3603,
+ 3604, 3605, 3606, 3613, 3620, 3621, 3625, 3626, 3630, 3631,
+ 3635, 3639, 3646, 3650, 3657, 3658, 3659, 3663, 3664, 3667,
+ 3690, 3709, 3731, 3732, 3736, 3737, 3741, 3742, 3746, 3754,
+ 3755, 3756, 3788, 3796, 3804, 3817, 3829, 3842, 3852, 3862,
+ 3886, 3906, 3907, 3908, 3912, 3913, 3932, 3940, 3948, 3956,
+ 3968, 3980, 3981, 3982, 3986, 3987, 3988, 3989, 3990, 3991,
+ 3992, 3993, 3994, 3995, 4004, 4012, 4016, 4030, 4048, 4064,
+ 4081, 4097, 4117, 4140, 4141, 4145, 4146, 4150, 4151, 4154,
+ 4160, 4161, 4164, 4168, 4176, 4181, 4187, 4188, 4192, 4197,
+ 4204, 4205, 4209, 4219, 4229, 4237, 4246, 4259, 4271, 4278,
+ 4286, 4294, 4302, 4310, 4320, 4321, 4325, 4326, 4329, 4341,
+ 4342, 4345, 4356, 4367, 4381, 4382, 4387, 4388, 4389, 4392,
+ 4393, 4394, 4395, 4398, 4399, 4402, 4403, 4406, 4424, 4437,
+ 4459, 4460, 4463, 4469, 4475, 4492, 4501, 4523, 4537, 4554,
+ 4570, 4571, 4572, 4584, 4598, 4615, 4629, 4630, 4642, 4663,
+ 4674, 4688, 4697, 4709, 4710, 4713, 4714, 4717, 4718, 4721,
+ 4725, 4729, 4733, 4737, 4741, 4745, 4749, 4753, 4757, 4761,
+ 4766, 4770, 4774, 4780, 4781, 4785, 4786, 4787, 4794, 4797,
+ 4798, 4810, 4826, 4842, 4843, 4851, 4852, 4856, 4857, 4861,
+ 4862, 4866, 4867, 4871, 4872, 4882, 4894, 4895, 4908, 4916,
+ 4934, 4943, 4955, 4958, 4962, 4966, 4970, 4977, 4989, 5000,
+ 5003, 5007, 5020, 5030, 5040, 5050, 5060, 5070, 5080, 5090,
+ 5100, 5110, 5120, 5130, 5140, 5159, 5171, 5172, 5173, 5174,
+ 5178, 5179, 5183, 5184, 5194, 5203, 5216, 5217, 5221, 5225,
+ 5233, 5237, 5241, 5248, 5252, 5257, 5262, 5269, 5276, 5281,
+ 5291, 5304, 5320, 5321, 5326, 5327, 5331, 5332, 5342, 5352,
+ 5361, 5379, 5400, 5421, 5443, 5477, 5493, 5494, 5498, 5507,
+ 5522, 5532, 5545, 5546, 5558, 5567, 5585, 5610, 5628, 5643,
+ 5644, 5648, 5649, 5653, 5654, 5658, 5659, 5663, 5677, 5681,
+ 5682, 5686, 5687, 5688, 5689, 5690, 5700, 5712, 5713, 5724,
+ 5747, 5779, 5780, 5781, 5785, 5787, 5809, 5811, 5813, 5815,
+ 5817, 5822, 5823, 5827, 5828, 5832, 5844, 5845, 5849, 5858,
+ 5862, 5866, 5871, 5881, 5882, 5886, 5887, 5891, 5892, 5896,
+ 5897, 5901, 5902, 5903, 5907, 5911, 5912, 5913, 5917, 5918,
+ 5923, 5924, 5951, 5952, 5953, 5954, 5955, 5956, 5969, 5980,
+ 5995, 5997, 6002, 6007, 6009, 6014, 6025, 6026, 6027, 6028,
+ 6039, 6058, 6070, 6083, 6094, 6105, 6117, 6126, 6134, 6142,
+ 6152, 6162, 6172, 6182, 6192, 6203, 6213, 6226, 6229, 6230,
+ 6233, 6237, 6244, 6245, 6246, 6247, 6248, 6249, 6252, 6255,
+ 6256, 6264, 6271, 6272, 6275, 6277, 6288, 6300, 6312, 6324,
+ 6338, 6339, 6355, 6371, 6372, 6376, 6389, 6400, 6409, 6419,
+ 6429, 6430, 6433, 6434, 6437, 6438, 6439, 6442, 6456, 6461,
+ 6472, 6482, 6495, 6496, 6500, 6509, 6522, 6533, 6547, 6558,
+ 6581, 6592, 6611, 6622, 6633, 6644, 6655, 6666, 6677, 6688,
+ 6699, 6710, 6721, 6732, 6747, 6748, 6749, 6750, 6751, 6752,
+ 6753, 6754, 6755, 6756, 6757, 6758, 6759, 6769, 6770, 6771,
+ 6772, 6773, 6777, 6778, 6779, 6780, 6781, 6782, 6783, 6784,
+ 6789, 6790, 6791, 6795, 6796, 6799, 6800, 6803, 6805, 6810,
+ 6811, 6822, 6834, 6835, 6836, 6846, 6855, 6864, 6873, 6882,
+ 6891, 6900, 6909, 6918, 6927, 6941, 6950, 6959, 6968, 6977,
+ 6986, 6995, 7004, 7016, 7017, 7031, 7042, 7053, 7064, 7075,
+ 7086, 7097, 7108, 7119, 7130, 7143, 7144, 7147, 7148, 7158,
+ 7165, 7174, 7183, 7192, 7201, 7210, 7219, 7228, 7237, 7246,
+ 7255, 7264, 7273, 7282, 7291, 7300, 7309, 7320, 7321, 7324,
+ 7325, 7335, 7353, 7369, 7397, 7399, 7401, 7403, 7411, 7421,
+ 7422, 7425, 7433, 7441, 7449, 7456, 7467, 7471, 7478, 7482,
+ 7493, 7502, 7511, 7520, 7529, 7538, 7547, 7556, 7565, 7574,
+ 7583, 7592, 7601, 7609, 7618, 7627, 7636, 7645, 7654, 7663,
+ 7672, 7685, 7686, 7690, 7691, 7696, 7697, 7707, 7721, 7732,
+ 7745, 7746, 7749, 7750, 7760, 7771, 7772, 7776, 7780, 7784,
+ 7795, 7809, 7824, 7842, 7843, 7844, 7845, 7846, 7847, 7859,
+ 7891, 7926, 7927, 7931, 7932, 7936, 7937, 7941, 7942, 7945,
+ 7946, 7951, 7963, 7982, 7987, 7992, 7999, 8000, 8003, 8004,
+ 8007, 8008, 8011, 8012, 8015, 8016, 8017, 8020, 8021, 8022,
+ 8038, 8052, 8067, 8081, 8098, 8099, 8102, 8103, 8107, 8108,
+ 8112, 8113, 8118, 8132, 8140, 8148, 8164, 8165, 8169, 8170,
+ 8185, 8195, 8205, 8215, 8225, 8238, 8239, 8240, 8241, 8242,
+ 8248, 8252, 8267, 8268, 8274, 8284, 8288, 8293, 8301, 8343,
+ 8347, 8351, 8355, 8363, 8364, 8368, 8380, 8381, 8386, 8387,
+ 8392, 8393, 8400, 8404, 8408, 8412, 8416, 8420, 8424, 8428,
+ 8432, 8436, 8440, 8444, 8448, 8452, 8456, 8460, 8465, 8472,
+ 8476, 8480, 8484, 8488, 8494, 8495, 8501, 8511, 8515, 8526,
+ 8532, 8541, 8547, 8548, 8552, 8553, 8557, 8558, 8561, 8574,
+ 8578, 8593, 8602, 8611, 8624, 8625, 8630, 8631, 8648, 8659,
+ 8670, 8681, 8692, 8703, 8717, 8728, 8742, 8753, 8767, 8775,
+ 8777, 8779, 8784, 8786, 8791, 8792, 8797, 8816, 8826, 8827,
+ 8831, 8835, 8847, 8859, 8871, 8885, 8886, 8887, 8891, 8904,
+ 8905, 8915, 8928, 8932, 8936, 8940, 8947, 8968, 8981, 8994,
+ 9007, 9022, 9023, 9026, 9027, 9028, 9038, 9048, 9066, 9076,
+ 9086, 9096, 9106, 9116, 9126, 9136, 9146, 9156, 9166, 9176,
+ 9186, 9197, 9208, 9218, 9228, 9238, 9248, 9258, 9268, 9279,
+ 9290, 9301, 9312, 9323, 9334, 9345, 9356, 9367, 9378, 9389,
+ 9400, 9412, 9424, 9436, 9448, 9460, 9472, 9483, 9494, 9506,
+ 9518, 9529, 9540, 9549, 9559, 9569, 9579, 9589, 9599, 9609,
+ 9619, 9629, 9639, 9654, 9655, 9658, 9659, 9669, 9679, 9689,
+ 9699, 9710, 9720, 9732, 9733, 9743, 9753, 9763, 9773, 9783,
+ 9793, 9803, 9813, 9823, 9833, 9843, 9853, 9863, 9873, 9883,
+ 9893, 9903, 9913, 9923, 9933, 9943, 9953, 9963, 9973, 9983,
+ 9993, 10003, 10022, 10032, 10033, 10036, 10038, 10044, 10045, 10046,
+ 10047, 10048, 10060, 10076, 10085, 10094, 10103, 10112, 10121, 10130,
+ 10139, 10148, 10157, 10166, 10175, 10184, 10193, 10202, 10211, 10220,
+ 10229, 10238, 10247, 10256, 10265, 10274, 10283, 10311, 10319, 10328,
+ 10354, 10363, 10370, 10376, 10403, 10414, 10423, 10431, 10433, 10455,
+ 10463, 10473, 10483, 10502, 10521, 10531, 10541, 10551, 10562, 10573,
+ 10584, 10595, 10606, 10624, 10633, 10650, 10668, 10669, 10670, 10675,
+ 10681, 10690, 10691, 10692, 10693, 10694, 10698, 10699, 10702, 10703,
+ 10704, 10705, 10709, 10710, 10711, 10723, 10734, 10735, 10738, 10748,
+ 10755, 10775, 10784, 10792, 10801, 10810, 10818, 10826, 10834, 10842,
+ 10850, 10858, 10866, 10877, 10885, 10896, 10897, 10898, 10902, 10905,
+ 10908, 10911, 10914, 10921, 10923, 10925, 10930, 10932, 10936, 10937,
+ 10938, 10950, 10964, 10978, 10997, 11019, 11020, 11021, 11022, 11032,
+ 11049, 11060, 11061, 11065, 11066, 11070, 11074, 11078, 11096, 11097,
+ 11098, 11099, 11100, 11101, 11102, 11109, 11110, 11121, 11129, 11137,
+ 11146, 11156, 11174, 11183, 11192, 11201, 11213, 11217, 11228, 11240,
+ 11258, 11265, 11282, 11296, 11306, 11315, 11324, 11334, 11346, 11358,
+ 11369, 11370, 11381, 11392, 11404, 11416, 11428, 11440, 11450, 11463,
+ 11464, 11478, 11503, 11515, 11524, 11536, 11550, 11551, 11563, 11584,
+ 11595, 11607, 11619, 11623, 11630, 11631, 11635, 11642, 11643, 11647,
+ 11648, 11649, 11653, 11654, 11658, 11659, 11662, 11663, 11666, 11667,
+ 11671, 11672, 11676, 11683, 11685, 11690, 11691, 11704, 11712, 11723,
+ 11731, 11742, 11743, 11744, 11745, 11746, 11747, 11748, 11749, 11750,
+ 11751, 11761, 11772, 11773, 11777, 11778, 11779, 11780, 11781, 11791,
+ 11799, 11817, 11837, 11838, 11848, 11855, 11862, 11869, 11886, 11904,
+ 11908, 11916, 11922, 11929, 11935, 11942, 11951, 11952, 11956, 11958,
+ 11963, 11974, 11984, 11994, 12000, 12009, 12018, 12024, 12025, 12036,
+ 12051, 12052, 12063, 12074, 12075, 12078, 12079, 12080, 12081, 12082,
+ 12083, 12084, 12085, 12088, 12089, 12093, 12094, 12095, 12106, 12125,
+ 12126, 12130, 12135, 12159, 12170, 12171, 12183, 12201, 12202, 12206,
+ 12213, 12220, 12227, 12237, 12250, 12251, 12255, 12268, 12281, 12290,
+ 12299, 12308, 12317, 12329, 12341, 12353, 12356, 12357, 12358, 12359,
+ 12360, 12361, 12364, 12365, 12366, 12414, 12415, 12419, 12420, 12435,
+ 12436, 12443, 12451, 12459, 12467, 12475, 12483, 12494, 12495, 12527,
+ 12543, 12560, 12561, 12580, 12584, 12588, 12603, 12610, 12617, 12627,
+ 12628, 12631, 12647, 12648, 12649, 12653, 12663, 12674, 12680, 12692,
+ 12705, 12711, 12712, 12716, 12728, 12736, 12741, 12746, 12751, 12756,
+ 12764, 12772, 12777, 12782, 12789, 12790, 12794, 12795, 12796, 12803,
+ 12804, 12808, 12809, 12813, 12814, 12818, 12819, 12823, 12827, 12828,
+ 12831, 12840, 12853, 12858, 12863, 12867, 12879, 12880, 12884, 12893,
+ 12909, 12918, 12927, 12936, 12948, 12951, 12956, 12957, 12965, 12985,
+ 12986, 12988, 12993, 12994, 12998, 12999, 13002, 13003, 13028, 13037,
+ 13047, 13048, 13052, 13053, 13054, 13055, 13056, 13060, 13073, 13080,
+ 13087, 13094, 13095, 13099, 13100, 13104, 13105, 13109, 13110, 13114,
+ 13126, 13127, 13128, 13129, 13133, 13134, 13144, 13151, 13170, 13171,
+ 13175, 13176, 13182, 13187, 13196, 13204, 13213, 13220, 13228, 13264,
+ 13290, 13294, 13320, 13324, 13338, 13359, 13381, 13394, 13411, 13417,
+ 13422, 13428, 13435, 13436, 13446, 13452, 13460, 13464, 13468, 13475,
+ 13483, 13488, 13489, 13490, 13491, 13495, 13496, 13511, 13515, 13523,
+ 13530, 13537, 13544, 13551, 13562, 13563, 13576, 13580, 13588, 13602,
+ 13616, 13617, 13632, 13643, 13656, 13661, 13662, 13665, 13666, 13669,
+ 13670, 13675, 13676, 13681, 13682, 13691, 13696, 13697, 13701, 13705,
+ 13711, 13736, 13747, 13761, 13762, 13766, 13780, 13837, 13851, 13853,
+ 13858, 13860, 13862, 13864, 13869, 13871, 13876, 13884, 13904, 13909,
+ 13916, 13921, 13927, 13932, 13941, 13943, 13946, 13950, 13951, 13952,
+ 13953, 13954, 13955, 13960, 13980, 13981, 13982, 13983, 13994, 14000,
+ 14008, 14009, 14015, 14020, 14025, 14030, 14035, 14040, 14045, 14050,
+ 14056, 14062, 14068, 14075, 14097, 14106, 14110, 14118, 14122, 14130,
+ 14142, 14163, 14167, 14173, 14177, 14190, 14198, 14208, 14210, 14212,
+ 14214, 14216, 14218, 14223, 14224, 14231, 14240, 14248, 14257, 14268,
+ 14276, 14277, 14278, 14282, 14284, 14286, 14288, 14290, 14292, 14294,
+ 14299, 14304, 14310, 14318, 14323, 14330, 14337, 14341, 14345, 14381,
+ 14382, 14384, 14393, 14409, 14411, 14413, 14415, 14417, 14419, 14421,
+ 14423, 14425, 14427, 14429, 14431, 14433, 14435, 14438, 14440, 14443,
+ 14445, 14447, 14449, 14452, 14457, 14466, 14471, 14480, 14485, 14494,
+ 14499, 14509, 14518, 14527, 14536, 14555, 14564, 14573, 14582, 14591,
+ 14608, 14617, 14626, 14635, 14644, 14653, 14662, 14666, 14670, 14678,
+ 14686, 14694, 14702, 14723, 14746, 14758, 14765, 14781, 14786, 14792,
+ 14799, 14806, 14814, 14822, 14848, 14850, 14852, 14854, 14856, 14858,
+ 14860, 14862, 14864, 14866, 14868, 14870, 14872, 14874, 14876, 14878,
+ 14880, 14882, 14884, 14888, 14892, 14897, 14913, 14914, 14915, 14932,
+ 14945, 14947, 14949, 14961, 14986, 14998, 15010, 15018, 15029, 15040,
+ 15050, 15056, 15065, 15075, 15085, 15098, 15108, 15139, 15175, 15186,
+ 15187, 15194, 15201, 15205, 15209, 15213, 15217, 15221, 15225, 15229,
+ 15233, 15237, 15241, 15245, 15249, 15253, 15257, 15261, 15263, 15270,
+ 15277, 15284, 15291, 15302, 15316, 15326, 15337, 15353, 15363, 15370,
+ 15377, 15384, 15388, 15396, 15405, 15414, 15418, 15422, 15426, 15430,
+ 15434, 15443, 15447, 15457, 15461, 15465, 15470, 15485, 15487, 15491,
+ 15493, 15495, 15498, 15501, 15504, 15505, 15508, 15516, 15526, 15527,
+ 15530, 15531, 15532, 15537, 15541, 15545, 15549, 15556, 15557, 15565,
+ 15566, 15570, 15571, 15579, 15580, 15584, 15585, 15590, 15599, 15601,
+ 15616, 15619, 15647, 15648, 15651, 15652, 15660, 15668, 15676, 15685,
+ 15695, 15713, 15759, 15768, 15777, 15786, 15795, 15807, 15808, 15809,
+ 15810, 15811, 15825, 15826, 15827, 15830, 15831, 15834, 15837, 15838,
+ 15839, 15842, 15843, 15846, 15847, 15848, 15849, 15850, 15851, 15852,
+ 15853, 15854, 15855, 15856, 15857, 15860, 15862, 15867, 15869, 15874,
+ 15876, 15878, 15880, 15882, 15884, 15896, 15900, 15907, 15911, 15917,
+ 15921, 15931, 15943, 15944, 15947, 15948, 15951, 15955, 15959, 15965,
+ 15966, 15971, 15981, 15982, 15983, 15984, 15985, 15986, 15987, 15988,
+ 15992, 15993, 15994, 15995, 16000, 16005, 16014, 16035, 16039, 16044,
+ 16055, 16072, 16078, 16079, 16080, 16083, 16091, 16101, 16116, 16117,
+ 16121, 16133, 16134, 16137, 16138, 16141, 16145, 16152, 16156, 16160,
+ 16169, 16181, 16182, 16186, 16187, 16191, 16192, 16195, 16196, 16206,
+ 16207, 16211, 16212, 16215, 16223, 16231, 16239, 16262, 16263, 16274,
+ 16278, 16284, 16286, 16291, 16293, 16295, 16305, 16307, 16318, 16322,
+ 16326, 16330, 16334, 16343, 16351, 16383, 16387, 16394, 16402, 16406,
+ 16410, 16416, 16417, 16419, 16420, 16421, 16425, 16466, 16494, 16498,
+ 16502, 16508, 16510, 16524, 16560, 16573, 16574, 16577, 16578, 16595,
+ 16596, 16597, 16602, 16603, 16604, 16609, 16610, 16611, 16612, 16618,
+ 16619, 16620, 16621, 16622, 16628, 16629, 16649, 16650, 16651, 16652,
+ 16653, 16654, 16655, 16656, 16657, 16658, 16659, 16660, 16661, 16662,
+ 16663, 16664, 16665, 16666, 16667, 16668, 16669, 16670, 16671, 16672,
+ 16673, 16674, 16675, 16676, 16677, 16678, 16679, 16680, 16681, 16682,
+ 16683, 16684, 16685, 16686, 16687, 16688, 16689, 16690, 16691, 16692,
+ 16693, 16694, 16695, 16696, 16697, 16698, 16699, 16700, 16701, 16702,
+ 16703, 16704, 16705, 16706, 16707, 16708, 16709, 16710, 16711, 16712,
+ 16713, 16714, 16715, 16716, 16717, 16718, 16719, 16720, 16721, 16722,
+ 16723, 16724, 16725, 16726, 16727, 16728, 16729, 16730, 16731, 16732,
+ 16733, 16734, 16735, 16736, 16737, 16738, 16739, 16740, 16741, 16742,
+ 16743, 16744, 16745, 16746, 16747, 16748, 16749, 16750, 16751, 16752,
+ 16753, 16754, 16755, 16756, 16757, 16758, 16759, 16760, 16761, 16762,
+ 16763, 16764, 16765, 16766, 16767, 16768, 16769, 16770, 16771, 16772,
+ 16773, 16774, 16775, 16776, 16777, 16778, 16779, 16780, 16781, 16782,
+ 16783, 16784, 16785, 16786, 16787, 16788, 16789, 16790, 16791, 16792,
+ 16793, 16794, 16795, 16796, 16797, 16798, 16799, 16800, 16801, 16802,
+ 16803, 16804, 16805, 16806, 16807, 16808, 16809, 16810, 16811, 16812,
+ 16813, 16814, 16815, 16816, 16817, 16818, 16819, 16820, 16821, 16822,
+ 16823, 16824, 16825, 16826, 16827, 16828, 16829, 16830, 16831, 16832,
+ 16833, 16834, 16835, 16836, 16837, 16838, 16839, 16840, 16841, 16842,
+ 16843, 16844, 16845, 16846, 16847, 16848, 16849, 16850, 16851, 16852,
+ 16853, 16854, 16855, 16856, 16857, 16858, 16859, 16860, 16861, 16862,
+ 16863, 16864, 16865, 16866, 16867, 16868, 16869, 16870, 16871, 16872,
+ 16873, 16874, 16875, 16876, 16877, 16878, 16879, 16880, 16881, 16882,
+ 16883, 16884, 16885, 16886, 16887, 16888, 16889, 16890, 16891, 16892,
+ 16893, 16894, 16895, 16896, 16897, 16898, 16899, 16900, 16901, 16902,
+ 16903, 16904, 16905, 16906, 16907, 16908, 16909, 16910, 16911, 16912,
+ 16913, 16914, 16915, 16916, 16917, 16918, 16919, 16920, 16921, 16922,
+ 16923, 16924, 16925, 16926, 16927, 16928, 16929, 16930, 16931, 16932,
+ 16933, 16934, 16935, 16936, 16937, 16938, 16939, 16940, 16941, 16942,
+ 16943, 16944, 16945, 16946, 16947, 16948, 16949, 16950, 16951, 16952,
+ 16953, 16954, 16955, 16956, 16957, 16971, 16972, 16973, 16974, 16975,
+ 16976, 16977, 16978, 16979, 16980, 16981, 16982, 16983, 16984, 16985,
+ 16986, 16987, 16988, 16989, 16990, 16991, 16992, 16993, 16994, 16995,
+ 16996, 16997, 16998, 16999, 17000, 17001, 17002, 17003, 17004, 17005,
+ 17006, 17007, 17008, 17009, 17010, 17011, 17012, 17013, 17014, 17015,
+ 17016, 17017, 17018, 17019, 17020, 17021, 17035, 17036, 17037, 17038,
+ 17039, 17040, 17041, 17042, 17043, 17044, 17045, 17046, 17047, 17048,
+ 17049, 17050, 17051, 17052, 17053, 17054, 17055, 17056, 17057, 17067,
+ 17068, 17069, 17070, 17071, 17072, 17073, 17074, 17075, 17076, 17077,
+ 17078, 17079, 17080, 17081, 17082, 17083, 17084, 17085, 17086, 17087,
+ 17088, 17089, 17090, 17091, 17092, 17093, 17094, 17095, 17096, 17097,
+ 17098, 17099, 17100, 17101, 17102, 17103, 17104, 17105, 17106, 17107,
+ 17108, 17109, 17110, 17111, 17112, 17113, 17114, 17115, 17116, 17117,
+ 17118, 17119, 17120, 17121, 17122, 17123, 17124, 17125, 17126, 17127,
+ 17128, 17129, 17130, 17131, 17132, 17133, 17134, 17135, 17136, 17137,
+ 17138, 17139, 17140, 17141, 17142, 17143, 17156, 17157, 17158, 17159,
+ 17160, 17161, 17162, 17163, 17164, 17165, 17166, 17167, 17168, 17169,
+ 17170, 17171, 17172, 17173, 17174, 17175, 17176, 17177, 17178, 17179,
+ 17180, 17181, 17182, 17183, 17184, 17185, 17186, 17187, 17188, 17189,
+ 17190, 17191, 17192, 17193, 17194, 17195, 17196, 17197, 17198, 17199,
+ 17200, 17201, 17202, 17203, 17204, 17205, 17206, 17207, 17208, 17209,
+ 17210, 17211, 17212, 17213, 17214, 17215, 17216, 17217, 17218, 17219,
+ 17220, 17221, 17222, 17223, 17224, 17225, 17226, 17227, 17228, 17229,
+ 17230, 17231, 17232, 17233, 17234, 17235, 17236, 17237, 17238, 17239,
+ 17240, 17241, 17242, 17243, 17244, 17245, 17246, 17247, 17248, 17249,
+ 17250, 17251, 17252, 17253, 17254, 17255, 17256, 17257, 17258, 17259,
+ 17260, 17261, 17262, 17263, 17264, 17265, 17266, 17267, 17268, 17269,
+ 17270, 17271, 17272, 17273, 17274, 17275, 17276, 17277, 17278, 17279,
+ 17280, 17281, 17282, 17283, 17284, 17285, 17286, 17287, 17288, 17289,
+ 17290, 17291, 17292, 17293, 17294, 17295, 17296, 17297, 17298, 17299,
+ 17300, 17301, 17302, 17303, 17304, 17305, 17306, 17307, 17308, 17309,
+ 17310, 17311, 17312, 17313, 17314, 17315, 17316, 17317, 17318, 17319,
+ 17320, 17321, 17322, 17323, 17324, 17325, 17326, 17327, 17328, 17329,
+ 17330, 17331, 17332, 17333, 17334, 17335, 17336, 17337, 17338, 17339,
+ 17340, 17341, 17342, 17343, 17344, 17345, 17346, 17347, 17348, 17349,
+ 17350, 17351, 17352, 17353, 17354, 17355, 17356, 17357, 17358, 17359,
+ 17360, 17361, 17362, 17363, 17364, 17365, 17366, 17367, 17368, 17369,
+ 17370, 17371, 17372, 17373, 17374, 17375, 17376, 17377, 17378, 17379,
+ 17380, 17381, 17382, 17383, 17384, 17385, 17386, 17387, 17388, 17389,
+ 17390, 17391, 17392, 17393, 17394, 17395, 17396, 17397, 17398, 17399,
+ 17400, 17401, 17402, 17403, 17404, 17405, 17406, 17407, 17408, 17409,
+ 17410, 17411, 17412, 17413, 17414, 17415, 17416, 17417, 17418, 17419,
+ 17420, 17421, 17422, 17423, 17424, 17425, 17426, 17427, 17428, 17429,
+ 17430, 17431, 17432, 17433, 17434, 17435, 17436, 17437, 17438, 17439,
+ 17440, 17441, 17442, 17443, 17444, 17445, 17446, 17447, 17448, 17449,
+ 17450, 17451, 17452, 17453, 17454, 17455, 17456, 17457, 17458, 17459,
+ 17460, 17461, 17462, 17463, 17464, 17465, 17466, 17467, 17468, 17469,
+ 17470, 17471, 17472, 17473, 17474, 17475, 17476, 17477, 17478, 17479,
+ 17480, 17481, 17482, 17483, 17484, 17485, 17486, 17487, 17488, 17489,
+ 17490, 17491, 17492, 17493, 17494, 17495, 17496, 17497, 17498, 17499,
+ 17500, 17501, 17502, 17503, 17504, 17505, 17506, 17507, 17508, 17509,
+ 17510, 17511, 17512, 17513, 17514, 17515, 17516, 17517, 17518, 17519,
+ 17520, 17521, 17522, 17523, 17524, 17525, 17526, 17527, 17528, 17529,
+ 17530, 17531, 17532, 17533, 17534, 17535, 17536, 17537, 17538, 17539,
+ 17540, 17541, 17542, 17543, 17544, 17545, 17546, 17547, 17548, 17549,
+ 17550, 17551, 17552, 17553, 17554, 17555, 17556, 17557, 17558, 17559,
+ 17560, 17561, 17562, 17563, 17564, 17565, 17566, 17567, 17568, 17569,
+ 17570, 17571, 17572, 17573, 17574, 17575, 17576
+};
+#endif
+
+/** Accessing symbol of state STATE. */
+#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
+
+#if YYDEBUG || 0
+/* The user-facing name of the symbol whose (internal) number is
+ YYSYMBOL. No bounds checking. */
+static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
+
+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+static const char *const yytname[] =
+{
+ "\"end of file\"", "error", "\"invalid token\"", "IDENT", "UIDENT",
+ "FCONST", "SCONST", "USCONST", "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", "ASENSITIVE", "ASSERTION", "ASSIGNMENT", "ASYMMETRIC",
+ "ATOMIC", "AT", "ATTACH", "ATTRIBUTE", "AUTHORIZATION", "BACKWARD",
+ "BEFORE", "BEGIN_P", "BETWEEN", "BIGINT", "BINARY", "BIT", "BOOLEAN_P",
+ "BOTH", "BREADTH", "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", "COMPRESSION", "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", "DEPTH", "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", "EXPRESSION", "EXTENSION",
+ "EXTERNAL", "EXTRACT", "FALSE_P", "FAMILY", "FETCH", "FILTER",
+ "FINALIZE", "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", "MATCHED",
+ "MATERIALIZED", "MAXVALUE", "MERGE", "METHOD", "MINUTE_P", "MINVALUE",
+ "MODE", "MONTH_P", "MOVE", "NAME_P", "NAMES", "NATIONAL", "NATURAL",
+ "NCHAR", "NEW", "NEXT", "NFC", "NFD", "NFKC", "NFKD", "NO", "NONE",
+ "NORMALIZE", "NORMALIZED", "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", "PARAMETER", "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_P", "REFERENCES", "REFERENCING", "REFRESH", "REINDEX",
+ "RELATIVE_P", "RELEASE", "RENAME", "REPEATABLE", "REPLACE", "REPLICA",
+ "RESET", "RESTART", "RESTRICT", "RETURN", "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", "STORED",
+ "STRICT_P", "STRIP_P", "SUBSCRIPTION", "SUBSTRING", "SUPPORT",
+ "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", "UESCAPE", "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",
+ "MODE_TYPE_NAME", "MODE_PLPGSQL_EXPR", "MODE_PLPGSQL_ASSIGN1",
+ "MODE_PLPGSQL_ASSIGN2", "MODE_PLPGSQL_ASSIGN3", "'<'", "'>'", "'='",
+ "'+'", "'-'", "'*'", "'/'", "'%'", "'^'", "UMINUS", "'['", "']'", "'('",
+ "')'", "'.'", "';'", "','", "':'", "$accept", "parse_toplevel",
+ "stmtmulti", "toplevel_stmt", "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", "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", "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", "column_compression",
+ "opt_column_compression", "ColQualList", "ColConstraint",
+ "ColConstraintElem", "opt_unique_null_treatment", "generated_when",
+ "ConstraintAttr", "TableLikeClause", "TableLikeOptionList",
+ "TableLikeOption", "TableConstraint", "ConstraintElem", "opt_no_inherit",
+ "opt_column_list", "columnList", "columnElem", "opt_c_include",
+ "key_match", "ExclusionConstraintList", "ExclusionConstraintElem",
+ "OptWhereClause", "key_actions", "key_update", "key_delete",
+ "key_action", "OptInherit", "OptPartitionSpec", "PartitionSpec",
+ "part_params", "part_elem", "table_access_method_clause", "OptWith",
+ "OnCommitOption", "OptTableSpace", "OptConsTableSpace", "ExistingIndex",
+ "CreateStatsStmt", "stats_params", "stats_param", "AlterStatsStmt",
+ "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", "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", "ImportForeignSchemaStmt",
+ "import_qualification_type", "import_qualification",
+ "CreateUserMappingStmt", "auth_ident", "DropUserMappingStmt",
+ "AlterUserMappingStmt", "CreatePolicyStmt", "AlterPolicyStmt",
+ "RowSecurityOptionalExpr", "RowSecurityOptionalWithCheck",
+ "RowSecurityDefaultToRole", "RowSecurityOptionalToRole",
+ "RowSecurityDefaultPermissive", "RowSecurityDefaultForCmd",
+ "row_security_cmd", "CreateAmStmt", "am_type", "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",
+ "CreateAssertionStmt", "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",
+ "object_type_any_name", "object_type_name", "drop_type_name",
+ "object_type_name_on_any_name", "any_name_list", "any_name", "attrs",
+ "type_name_list", "TruncateStmt", "opt_restart_seqs", "CommentStmt",
+ "comment_text", "SecLabelStmt", "opt_provider", "security_label",
+ "FetchStmt", "fetch_args", "from_in", "opt_from_in", "GrantStmt",
+ "RevokeStmt", "privileges", "privilege_list", "privilege",
+ "parameter_name_list", "parameter_name", "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_options", "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", "opt_createfunc_opt_list",
+ "createfunc_opt_list", "common_func_opt_item", "createfunc_opt_item",
+ "func_as", "ReturnStmt", "opt_routine_body", "routine_body_stmt_list",
+ "routine_body_stmt", "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", "AlterTblSpcStmt",
+ "RenameStmt", "opt_column", "opt_set_data", "AlterObjectDependsStmt",
+ "opt_no", "AlterObjectSchemaStmt", "AlterOperatorStmt",
+ "operator_def_list", "operator_def_elem", "operator_def_arg",
+ "AlterTypeStmt", "AlterOwnerStmt", "CreatePublicationStmt",
+ "PublicationObjSpec", "pub_obj_list", "AlterPublicationStmt",
+ "CreateSubscriptionStmt", "AlterSubscriptionStmt",
+ "DropSubscriptionStmt", "RuleStmt", "RuleActionList", "RuleActionMulti",
+ "RuleActionStmt", "RuleActionStmtOrEmpty", "event", "opt_instead",
+ "NotifyStmt", "notify_payload", "ListenStmt", "UnlistenStmt",
+ "TransactionStmt", "TransactionStmtLegacy", "opt_transaction",
+ "transaction_mode_item", "transaction_mode_list",
+ "transaction_mode_list_or_empty", "opt_transaction_chain", "ViewStmt",
+ "opt_check_option", "LoadStmt", "CreatedbStmt", "createdb_opt_list",
+ "createdb_opt_items", "createdb_opt_item", "createdb_opt_name",
+ "opt_equal", "AlterDatabaseStmt", "AlterDatabaseSetStmt", "DropdbStmt",
+ "drop_option_list", "drop_option", "AlterCollationStmt",
+ "AlterSystemStmt", "CreateDomainStmt", "AlterDomainStmt", "opt_as",
+ "AlterTSDictionaryStmt", "AlterTSConfigurationStmt", "any_with",
+ "CreateConversionStmt", "ClusterStmt", "cluster_index_specification",
+ "VacuumStmt", "AnalyzeStmt", "utility_option_list", "analyze_keyword",
+ "utility_option_elem", "utility_option_name", "utility_option_arg",
+ "opt_analyze", "opt_verbose", "opt_full", "opt_freeze", "opt_name_list",
+ "vacuum_relation", "vacuum_relation_list", "opt_vacuum_relation_list",
+ "ExplainStmt", "ExplainableStmt", "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", "MergeStmt", "merge_when_list",
+ "merge_when_clause", "opt_merge_when_condition", "merge_update",
+ "merge_delete", "merge_insert", "merge_values_clause",
+ "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_materialized", "opt_search_clause", "opt_cycle_clause",
+ "opt_with_clause", "into_clause", "OptTempTableName", "opt_table",
+ "set_quantifier", "distinct_clause", "opt_all_clause",
+ "opt_distinct_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", "opt_alias_clause_for_join_using",
+ "func_alias_clause", "join_type", "opt_outer", "join_qual",
+ "relation_expr", "extended_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", "xml_passing_mech", "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", "func_arg_list_opt", "type_list", "array_expr",
+ "array_expr_list", "extract_list", "extract_arg", "unicode_normal_form",
+ "overlay_list", "position_list", "substr_list", "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", "attr_name", "file_name", "func_name", "AexprConst",
+ "Iconst", "Sconst", "SignedIconst", "RoleId", "RoleSpec", "role_list",
+ "PLpgSQL_Expr", "PLAssignStmt", "plassign_target", "plassign_equals",
+ "ColId", "type_function_name", "NonReservedWord", "ColLabel",
+ "BareColLabel", "unreserved_keyword", "col_name_keyword",
+ "type_func_name_keyword", "reserved_keyword", "bare_label_keyword", YY_NULLPTR
+};
+
+static const char *
+yysymbol_name (yysymbol_kind_t yysymbol)
+{
+ return yytname[yysymbol];
+}
+#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_int16 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, 716, 717, 718, 719, 720, 721, 722, 723, 724,
+ 725, 726, 727, 728, 729, 730, 731, 732, 733, 734,
+ 735, 736, 737, 738, 739, 740, 741, 742, 60, 62,
+ 61, 43, 45, 42, 47, 37, 94, 743, 91, 93,
+ 40, 41, 46, 59, 44, 58
+};
+#endif
+
+#define YYPACT_NINF (-5454)
+
+#define yypact_value_is_default(Yyn) \
+ ((Yyn) == YYPACT_NINF)
+
+#define YYTABLE_NINF (-2816)
+
+#define yytable_value_is_error(Yyn) \
+ ((Yyn) == YYTABLE_NINF)
+
+ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+static const int yypact[] =
+{
+ 11502, 1383, 20130, -5454, -5454, 1383, 65914, -5454, 74977, -46,
+ 603, 862, 172, 19575, 75454, 84517, 1207, 340, 19887, 1383,
+ 84517, 2167, 56851, 71161, 982, 84517, 1058, 1077, 56851, 84517,
+ 84994, 1248, 1351, 925, 85471, 75931, 69730, 1407, 84517, 1416,
+ 1042, 85948, 76408, 1212, 76885, 1077, 53059, 127, 1179, 86425,
+ 84517,108297, 1042, 77362, 77362, 77362, 2008, 1720, 1321, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, 1348, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, 2633, -5454, 1034,
+ 2715, 1626, 879, 1423, -5454, -5454, 1852, 65914, 84517, 84517,
+ 84517, 1648, 84517, 1558, 84517, 192, 65914, 62098, 77839, 1769,
+ 1611, 49141, 86902, -5454, 65914, 84517, 59713, 65914, 84517, 84517,
+ 87379, 84517, 87856, 84517, 78, 73546, 84517, 1744, 84517, 84517,
+ 60190, 88333, 1894, 1322, 235, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, 1652,
+ 1441, -5454, 263, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, 64483, 84517, 10335, 1058, 1852, -5454, 2008, 84517,
+ 1922, 84517, 1735, 88810, 84517, -5454, 84517, 1763, 89287, 198,
+ 733, 62098, 1991, 49635, 1904, 84517, 84517, 62098, 89764, 90241,
+ 90718, 84517, 84517, -5454, -5454, 1900, 84517, -5454, 2026, 62575,
+ 1771, 2054, 2226, 2108, 527, -5454, 78316, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, 65437, 340, -5454, -5454, 2091,
+ 66391, 2197, -5454, -5454, 91195,108760, 1950, -5454, 210, 66868,
+ 63052, 2379, 1961, 50129, 2367, -5454, 67345, -5454, 63529, 67822,
+ -5454, -5454, -5454, -5454, -5454, 91672, -5454, 92149, 2104, 2197,
+ -5454,109223, 64006, -5454, 2264, 92626, 93103, 93580, 1852, 1994,
+ 967, 1935, 43808, -5454, -5454, -5454, 2052, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, 296, 1957, 218, 219,
+ 255, -5454, -5454, 228, 230, 245, 296, 2495, 2495, -5454,
+ 84517, -5454, -5454, 1957, 45, 2115, 2022, 2022, 2022, 2248,
+ -7, -5454, 2022, 2164, -5454, -5454, -5454, -5454, 76885, -5454,
+ 2036, 1058, 2047, 2493, 2107, -5454, -5454, -5454, -5454, -5454,
+ 64483, 2481, 2481, 84517, -5454, -5454, 2529, 2113, 2366, 2094,
+ -5454, -5454, -5454, 2313, 2317, 2330, 134, 1058, 204, -5454,
+ 2475, -5454, 2368, 30130, 30130, 1058, 78793, 94057, 215, 65437,
+ 1058, 79270, 2182, 1277, 2369, -5454, -5454, -5454, 102, -5454,
+ 2651, 2231, 2455, 2094, 1322, 45732, -5454, -5454, 2238, 1441,
+ 76885, -5454, -5454, -5454, 64483, 2569, 32595, 84517, 2250, -5454,
+ 2257, 2250, -5454, -5454, 2336, -5454, 2336, 2336, 2296, 2296,
+ 2486, 2310, -5454, -5454, -5454, 2414, 2336, 2296, -5454,110149,
+ -5454, 1807, 1824, -5454, -5454, 2754, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, 2320, -5454, 872, 1931, -5454, -5454,
+ -5454, 30130, -5454, -5454, -5454, -5454, -5454, -5454, -5454, 2331,
+ 2345, 1626, -5454, 12241, 64483, 84517, 1402, 1402, 2794, 1402,
+ 1832, 1914, -5454, 2890, -5454, 2693, 2657, 2663, 76885, 2386,
+ 943, -5454, 1486, 2397, 1798, 2408, 1501, 2908, -5454, 1064,
+ 84517, 224, 2428, 79747, 5596, 2420, 1441, 2483, -5454, -5454,
+ -5454, -5454, 2652, 1433, -5454, -5454, -5454, -5454, 2798, 2855,
+ 3498, 303, 80224, -5454, -5454, -5454, -5454, 84517, 84517, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, 2512, 993,
+ -5454, -5454, 2511, 2872, 2744, 6268, 1280, 2835, 2694, 1200,
+ 7058, 2755, 136, 2901, 8496, 1317, 2903, 1529, 2045, 80701,
+ 84517, 2865, 2913, 7246, 1431, 268, 2776, 1516, 2835, 2900,
+ 2737, 1200, 2926, 6114, 84517, -5454, 2851, 2968, 67, -5454,
+ 114, -5454, 23774, 32595, 52582, -5454, 1441, -54, -5454, -5454,
+ 56374, -5454, 2649, 2813, 767, 65914, 2606, 84517, 84517, -5454,
+ 108297, 65914, -5454, 2830, 50623, 65914, -5454, 65914, -5454, -5454,
+ 2944,108297, 84517, 84517, -5454, 84517, -5454, -5454, 2630, -5454,
+ -5454, -5454, -5454, -5454, 2022, 84517, 3057,108297, 2864, 119,
+ 689, 3102, 84517, 2879, 689, 2688, 94534, -5454, -5454, 689,
+ -5454, -5454, -5454, 84517, 84517, 2655, 1928, 2873, 424, 689,
+ 2895, 3130, 3131, 2912, 2769, 2935, 2257, 3118, 2924, 842,
+ 183, 1912, 689, 2759, 95011, 95488, 84517, 2775, 84517, 2481,
+ 65914, 2807, 65914, 65914, 84517, 3064, 84517, -5454, 2910, -5454,
+ -5454, 2157, -5454, -5454, -5454, -5454, -5454, 3081, -5454, 178,
+ 3084, 2738, 3086, 1752, 3087, 194, -5454, -5454, 2778, -5454,
+ 3091, 208, -5454, 3094, -5454, 2757, 95965, -5454, 96442, 96919,
+ 3095, 250, -5454, 62098, 3105, 208, 3106, 2757, 3109, 208,
+ 3110, 248, 3113, -5454, 1107, 3103, 3116, 194, 3119, 1989,
+ 2757, -5454, 3124, 251, -5454, 3126, 275, -5454, 3127, 2998,
+ -5454, 32595, -5454, 2881, -5454, 1179, 1667, 1935, 1957, -5454,
+ 84517, 1957, 84517, 1957, 84517, 1957, 84517, 1957, 84517, 84517,
+ 84517, 1957, -5454, -5454, -5454, 84517, 2786, 84517, -5454, 84517,
+ -5454, -5454, -5454, 72115, 62098, 72592, -5454, 84517, -5454, 106,
+ 1058, -5454, -5454,108297, 3250, 62098, 2481, 1918, -5454, 84517,
+ 84517, -5454, -5454, -5454, 3056, 84517, 3122, 3125, 72115, 62098,
+ -5454, 97396, -5454, 65437, 3005, 2796, -5454, -5454, -5454, -5454,
+ -5454, 1953, 3291, 197, 3293, 32595, 2800, 197, 197, 2801,
+ 3138, -5454, -5454, -5454, 289, 2808, 2809, -5454, 207, 207,
+ -5454, 2810, 2811, -5454, 211, 2812, 2814, 3301, 3310, 227,
+ 2818, 2819, 2820, 2414, 197, 2823, 32595, -5454, 2824, 207,
+ 2826, 2828, 2833, 3324, 2839, -5454, 3329, 2840, 269, 320,
+ 2842, 2843, -5454, 3067, -5454, 252, 2848, 2850, 2853, 2856,
+ 2857, 2858, 2859, 2860, 32595, 32595, 32595, -5454, 27660, 1441,
+ 1058, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, 253,
+ 48647, -5454, 2891, -5454, -5454, 3070, -5454, -5454, 32595, -5454,
+ -5454, 384, -5454, 261, -5454, -5454, -5454, 1441, 3139, 2866,
+ -5454, -5454, 273, 2867, -5454, 2185, -5454, -5454, -5454, -5454,
+ -5454, -5454, 64960, 3325, -5454, 324, 1058, 114, 2006, 3268,
+ 54943, 55420, -5454, -5454, 3141, -5454, 84517, -5454, -5454, 1441,
+ 270, 1946, -5454, 2052, 19170, 1995, 2250, 84517, 84517, 3337,
+ -5454, 2875, -5454, -5454, 32595, -5454, -5454, -5454, 2495, -5454,
+ 2336, 2336, -5454, -5454, 3340, 2963, 2965, 2495, -5454, 2495,
+ -5454, 2883, 2884, 2495, 2969, 2971, 2976, -5454, 2893, 2978,
+ 2495, -5454, -5454, 57805, 1998, -5454, 3212, 301, -5454, -5454,
+ -5454, 2012, -5454, 2896, -5454, 2257, -5454, -5454, 1626, 1626,
+ 32595, 1626, 231, 1535, 30623, 33088, 3230, 3121, 1436, 246,
+ 3235, -5454, 3128, 1832, 1914, 76885, 84517, 76885, 97873, 3030,
+ 32595, -5454, 3339, 2994, 3000, 3049, 54013, -5454, 3001, 2970,
+ 3003, 3052, 2920, 3010, 3011, 3068, -5454, 3197, -5454, -5454,
+ 3020, 3359, 3023, 98350, -5454, -5454, 1382, -5454, -5454, -5454,
+ 1382, -5454, 2950, 1356, 1319, 922, 3027, 385, 853, 3352,
+ -5454, 241, -5454, -5454, 3082, -5454, 11065, 84517, 3292, 6270,
+ 3160, 303, 3080, -5454, -5454, -5454, 3219, 3035, 84517, 3036,
+ 3179, 303, 284, 98827, -5454, -5454, 84517, -5454, -5454, -5454,
+ -5454, 5713, 3331, 26734, -5454, 1964, 3046, 3021, 3058, 84517,
+ 68776, 2201, 3156, 3181, 1650, 2253, 845, 3111, 84517, 1749,
+ 3187, 84517, 2972, 3054, 3055, 3284, 2974, 870, 3385, 2977,
+ -5454, -5454, -5454, 3350, -5454, 2350, 2357, 3178, -5454, 3286,
+ 3330, 8679, 3045, 3047,106908, -5454, 3074, 711, 51117, 84517,
+ 84517, 3075, 3077, 99304, 5713, 3360, 73069, 73069, 3078, 3083,
+ 45251, 3388, 777, 3085, -5454, -5454, -5454, 777, 3088, 3089,
+ 99781, 5713, 3376, 84517, 3090, 3092, 84517,110149, 303, -5454,
+ 3451, 303, 303, 2131, 3452, 3096, 327, 3255, 823, 689,
+ 2977, 3026, -5454, 3097, 3099, 325, -5454, 3226, 84517, 3101,
+ 3104, 1530, 3192, 1058, -5454, 3193, -5454, 3107, 3204, 3115,
+ 635, 2655, -5454, -5454, 1305, 3133, 76885, 3225, 3228, 1749,
+ 341, 1053, 2977, -5454, 3117, 3129, 2974, 2974, 84517, 84517,
+ 84517, 84517, 84517, 190, 3492, 3496, 3137, 406, 1146, 3040,
+ -5454, 777, 60667, 3140, -5454, 777, 84517, 173, 1054, 2977,
+ 1659, 1809, -5454, -5454, -5454, 1322, -5454, 32595, 32595, 32595,
+ 3053, -5454, 2596, 19170, 55, -5454, 271, 8001, 3041, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, 84517, 64483, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, 84517, -5454, 84517, 3342,108297, 3344,
+ 3261, 3346, 3348, 303, 84517, 84517, 3349, 3353, 3354,108297,
+ 3356, 3358, 3361, 3271, 3142, 171, 3151, 3098, 3531, 3425,
+ 84517, 57805, -5454, 1382, -5454,108297, 3294, 3428, -5454, 84517,
+ 3312, 697, -5454, 3466, 3146, -5454, -5454, 59, 84517, 71638,
+ 2655, -5454, -5454, 3434, 62098, 332, 3436, 1058, 3145, 3437,
+ 3306, 1058, 62098, 3357, 84517, 84517, 84517, 84517, 112, -5454,
+ 60667, 3328, -5454, 84517, 3332, 3026, 3333, 3563, 60, 2022,
+ 100258, 3435,100735, 3108, 84517, 3112, 3112, 3564,108297, 1232,
+ 3389, -5454, -5454, 2071, -5454, 3243, -5454, 65914, -5454, -5454,
+ 65914, -5454, -5454,108297, 84517, 3114,108297,108297, -5454, -5454,
+ 65914, 65914, -5454, 62098, 62098, 3456, 251, 3462, 3176, 3464,
+ 3180, 51117, 51117, -5454, 286, 65914, -5454, 62098, 65914, -5454,
+ 84517, -5454, 84517, -5454, -5454, -5454, -5454,108297,108297, -5454,
+ 62098, 60667, 3468, 84517, 84517, -5454, 84517, 84517, -5454, 84517,
+ 84517, 2013,101212, 1935, -5454, 84517, -5454, 84517, -5454, 84517,
+ -5454, 84517, -5454, 84517, -5454, -5454, -5454, 84517, -5454, 84517,
+ 2019, -5454, -5454, 2023, 181, 84517, 84517, 206, 65914, 84517,
+ 3343, 84517, 65914, 65914, 84517, 84517, 84517, 84517, 84517, 3206,
+ 2867, -41, -5454, 1192, 515, 76885, 3362, -5454, -5454, 2057,
+ 2008, 634, 84517, 1176, -5454, -5454, -5454, -5454, 72592, 71161,
+ 3459, 111, 84517, -5454, -5454, 8566, 32595, 1441, 29632, -5454,
+ -5454, 19170, 3173, 32595, 32595, 3132, 2495, 2495, -5454, 1596,
+ 32595, 32595, 32595, 2495, 2495, 32595, 4535, 32595, 51117, 32595,
+ 38018, 24772, 32595, 32595, 28153, 1483, 2810, 32595, 3379, 38998,
+ 32595, 2006, 3382, 32595, 2006, 4535, 3627, 3627, 2281, 7187,
+ 3143, 1441, -5454, 2495, 1396, -5454, 375,108297, 32595, 32595,
+ 32595, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, 32595, -5454, 57805, -5454, -5454,
+ -5454, -5454, -5454, -5454, 3227, -5454, -5454, -5454, -5454, -5454,
+ -5454, 1464, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, 84517, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, 28646, -5454,
+ -5454, -5454, -5454, 3144, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, 2837, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, 29139, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, 3149, -5454,
+ -5454, 32595, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, 3229, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, 954, 32595, 32595, 32595, 32595,
+ 32595, 32595, 32595, 32595, 32595, -5454, 32595, 454, -5454, -5454,
+ 3461, 3481, 632, 473, 81178, 30130, 3212, 23774, -5454, 243,
+ 3212, -5454, -5454, -5454, 84517, 3325, -5454, -5454, 3233, -5454,
+ -5454, -5454, -5454, -5454, 278, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, 3148, -5454, -5454, -5454, -5454, 3148, -5454, 3152,
+ 3457, 3467, 248, 84517, 2425, 32595, 3227, 212, 84517, 32595,
+ 3144, 2837, 32595, 3149, 32595, 3229, -5454, 32595, -5454, 2068,
+ 1907, 32595, 2073, 3157, -5454, -5454, 3159, 2884, 3182, 3183,
+ 3162, 3164, 2495, 205, 3166, 1362, 142, 3302, 2495, 3416,
+ 3168, -5454, 57805, -5454, 40922, 3215, -5454, -5454, -5454, 1042,
+ 84517, 84517, -5454, 3458, -5454, 3170, -5454, 7152, 3458, -5454,
+ -5454, 38508, 3297, 3454, 3391, -5454, -5454, -5454, 3175, 19170,
+ 33581, 33581, -5454, 2327, 19170, 2388, -5454, -5454, -5454, -5454,
+ -5454, -5454, 1465, -5454, 84517, 852, 3230, 246, 3240, 1127,
+ 3646, 3246, 84517, -5454, 46213, 2074, -5454, 62098, 84517, 84517,
+ 3395, -5454, 3633, -5454,110149, -5454, 3191, -5454,109686,105505,
+ -5454, -5454, 1001, -5454, 532, 62098, -5454, 84517, 84517, 62098,
+ 84517, 84517, -5454, 62098, 3244, 84517, 84517, -5454, -5454, -5454,
+ -5454, -5454, 55897, 1057, 71161, 3334, 70207, -5454, -5454, 3194,
+ 84517, 3259, 3479, 3480, 95, -5454, -5454,101689, -5454, 3429,
+ 62098, 84517, 84517, 32595, 3431, 84517, 84517, -5454, 525, 3288,
+ 3295, -5454, 84517, 3296, 65914, 3208,108297, 65914, 51611, 65914,
+ 65914, 3542,108297, 84517, 84517, 1408, 76885, 244, 1076, 2977,
+ 3438, -5454, 290, -5454, 62098, -5454, 84517, 3424, -5454, -5454,
+ -5454, 81655, 3666, 3335, -5454, -5454, -5454,102166, -5454, -5454,
+ 3430, -5454, 2079, -5454, 62098, 62098, 84517, 8684,102643, 1460,
+ 3444, -5454, -5454,108297, -5454, 84517, 82132, 84517, 84517, 3485,
+ 84517, 74023,103120,103597, 1092, 1430, 3486, 84517, 74500, 3488,
+ -5454, 3363, 84517, -5454, -5454, 58282, 62098, 84517, 895, 57805,
+ -5454, 3472, -5454, 84517, -5454, 826, -5454, 84517, 3383, 3440,
+ -5454, -5454, 3307, 3322, 84517, 272, 1094, 2977, 3605, 84517,
+ 84517, 3231, 2087, 62098, 84517, 57805, -5454, 3453, 96, 62098,
+ 84517, 81655, -5454, 3460, -5454, 76885, 3544, -5454, 3234, 2022,
+ 2238, 1898, 3234, 62098, 84517, -5454, 3234, 84517, 94057, -5454,
+ 62098, 1006, -5454, 62098, 84517, 81655, -5454, 3465, 3401, 62098,
+ 84517, 11813, -5454, -5454, -5454, 303, -5454, -5454, -5454, -5454,
+ -5454, 84517, 84517, 303, 84517, 84517, 303, 1657, -5454, 62098,
+ 84517, -5454, -5454, -5454, 3368, 62098, 84517, 84517, 296, 84517,
+ -5454, 84517, 62098, 3285, 84517, 84517, -5454, -5454, 84517, 7863,
+ 84517, 84517, 84517, 84517, 84517, 84517, 62098, 84517, -5454, -5454,
+ 1755, 1326, 1144, 1445, 1344, 84517, 3560, 84517,104074, 62098,
+ 84517, 84517, 1058, 84517, 57805, 1757, -5454, -5454, 3380, -5454,
+ 62098, 1006, -5454, 9160, 84517, 84517, 84517, 3338, 3341, 177,
+ 3426, -5454, -5454, -5454, 625, 625, 3469, -5454, 32595, 32595,
+ 31116, 3252, -5454, -5454, 32595, 2649, -5454, -5454, -5454, 552,
+ 3719, 552,104551, 552, 552, 3541, 3320, 3323, 552, 552,
+ 552, 3538, 552, 552, 552, 84517, 3439, -5454, -5454, 3439,
+ 839, 32595,108297, 84517, -5454, 2099, -5454, 3278, -5454, -5454,
+ 57805, 84517, 185, 751, 3613, 3489, 69253, 2234, 3604, 84517,
+ 3321, 84517, 3735, 3369, 1296, -5454, 2234, 84517, -5454, 2328,
+ 71161, -5454, -5454, -5454, -5454, -5454, -5454, -5454, 84517, -5454,
+ -5454, 3606, 84517, 41403, 3450, -5454, 1058, 2655, 2655, 2655,
+ 2655, 3277, 2655, 84517, 3408, 3629, 2234, 3283, 3631, -5454,
+ 3026, 3634, 1746, 84517, 3505, 69253, 3351, 3345, 3518, 3755,
+ 2022, 1058, 3523, 3510, -5454, 54478, -5454, 2655, 3772, 27197,
+ 5083, 6126, 3513, 3577, -5454, -5454, 3521, 960, 84517, 3616,
+ 3618, 3640, -5454, 178, -5454, 3771, 1752, 3642, 194, -5454,
+ 208, -5454, 2757, -5454, 84517, -5454, 84517, 84517, 84517, 84517,
+ 250, -5454, -5454, 208, 2757, 208, 248, -5454, 3587, 194,
+ 2757, 3441, 3645, 251, -5454, 275, -5454, 3533, 248, -5454,
+ 3546, 2022, -5454, -5454, -5454, -5454, -5454, -5454, -5454, 2100,
+ -5454, 84517, -5454, 3626, 3632, 3635, 3636, 3637, 3326, 3336,
+ 3364, 84517, 3347, 3326, 303, 3355, 3327, -5454, 3347, 3347,
+ 3326, 2867, 2867, 3326, 3336, 61144, 3800, 3655, -5454, 3419,
+ 3374, 3664, 189, -5454, 201, 43, 3585, -5454, -5454, -5454,
+ -5454,108297, -5454, 62098, 3387, 2481, 2481, 139, 3555, 3373,
+ 61144, 3786, 248, -5454, 65914, 84517,108297, 65914, 3567, 65914,
+ 65914,108297, 84517, 84517, 2106, -5454, 1694, -5454, 1734, 32595,
+ 417, -5454, 15543, 2147, 32595, 3378, 3381, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, 3384, 3676, -5454, 2149, 2151, 2178,
+ 3386, 3390, 2580, 3415, 3392, 16277, 3377, 3393, 3397, 3396,
+ 38018, 38018, 27660, 668, -5454, 38018, 3400, 3551, 2179, 15917,
+ 3411, 3412, 16670, 31609, 32595, 31609, 31609, 17328, 3410, 3414,
+ -5454, 3717, -5454, 2180, 57805, 3545, 17659, 2196, -5454, 32595,
+ 57805, 6764, 32595, -5454, 32595, 3417, -5454, -5454, 3848, 3848,
+ 3848, 4535, -5454, 3375, -5454, 38018, 38018, -5454, 940, 27660,
+ -5454, -5454, 3680, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ 2011, -5454, -5454, -5454, 3592, 2346, 51117, 4517, 32595, 239,
+ 32595, 3144, 32595, 3448, 3848, 3848, 3848, 562, 562, 309,
+ 309, 309, 2181, 473, -5454, -5454, -5454, 3421, 3422, 3423,
+ 3558, 3427, 32595, -5454, 2174, 2210, 84517, 5212, 6302, 6776,
+ -5454, -5454, -5454, 3215, 55, 3215, -5454, 1322, 2495, 1396,
+ 56374, -5454, -5454, -5454, -5454, -5454, -5454, 84517, 19170, -5454,
+ -5454, 3610, 3432, 2198, -5454, -5454, 2495, -5454, -5454, 1016,
+ 1016, 3443, -5454, 3449, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, 3470, -5454, -5454, -5454, 41884, 3708, 3433, 40441, 82609,
+ 3420, 3044, -5454, 82609, 83086, 82609, -5454, 3402, -5454, 1441,
+ 32595, 3702, -5454, -5454, -5454, 32595, -5454, -5454, 504, 3405,
+ 77, 87, 2373, 2373, 2327, 90, -5454, -5454, 3478, -5454,
+ 32595, 2410, -5454, 2415, -5454, -5454, -5454, -5454, 2867, -5454,
+ 3647, -5454, -5454, -5454, 40922, 3473, 3442, 18, 44770, 3644,
+ -5454, 84517, 40922, -5454, 84517, 344, -5454, 3445, -5454, -5454,
+ -5454, -5454, -5454, -5454,105505, 1931, -5454,109686, -5454,109686,
+ -5454, 1931, 3832, -5454,105505, 1893, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, 62098,
+ 62098, 3651, 84517, 3639, 3652, 32595, 1310, 84517, 3474, 3475,
+ 1491, 3731, 3476, -5454, 3787, 248, -5454, -5454, 3550, -5454,
+ 19170, -5454, -5454, -5454, -5454, -5454, 62098, 84517, -5454, 65437,
+ -5454, -5454,108297, -5454, -5454, 84517, 84517, -5454, -5454, -5454,
+ 108297, -5454, -5454, -5454, 84517, 710, 3553, 3554, 84517, -5454,
+ 1209, 3226, 9185, 84517, 84517, 84517, 3741, -5454, -5454, -5454,
+ -5454, 3684, -5454, 3805, -5454,105505, -5454, 2757, 1390, 3556,
+ 2977, 3691, -5454, 3814, 3892, -5454, 3608, 1384, -5454, -5454,
+ 3612, -5454, -5454, -5454, -5454, 3828, 248, 3833, 248, 84517,
+ 84517, 84517, 84517, 3620, -5454, -5454, -5454, -5454, 3621, 3753,
+ -5454, 57805, 57805, 57805, 2202, -5454, -5454, 1058, -5454, -5454,
+ -5454, -5454, -5454, -5454, 3789, -5454, 2203, -5454, -44, 84517,
+ -5454, -5454, -5454, -5454, -5454, 3835, 62098, 84517, 9703, 84517,
+ 84517, 84517, 3706, 1644, 1324,108297, -5454,107371, -5454, -5454,
+ 2208, -5454, 3504, 84517, 3580, 62098, 3557, -5454, -5454, -5454,
+ 3842, 2022, 3638, 73069, 3543, 3543, 1939, -5454, -5454, -5454,
+ -5454, -5454, 3767, 3693, -5454, 977, 3694, 62098, 3569, -5454,
+ -5454, -5454, -5454, 3851, 3594, -5454, -5454, 3595, 1096, 2977,
+ 3026, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ 3624, -5454, -5454, -5454, -5454, 1467, 1467, -5454, -5454, -5454,
+ 1467, 1503, 369, 1120, 2977, -5454, 293, 313, 3596, -5454,
+ 3600, -5454, -5454, -5454, 3774, 3775, 3777, 3607, 3609, 3665,
+ 3614, 3615, 3667, -5454, 3619, 3674, 3622, 3678, 3625, 3902,
+ 248,108297, 3776, 1058, 3675, 3889, 248, -5454, 3641, -5454,
+ 3648, -5454, 2213, 4006, -5454, 84517, -5454, 390, 1227, 2977,
+ -5454, 3653, -5454, 62098, 84517, -5454, -5454, -5454, 32595, 3552,
+ 3559, 3566, 19170, 19170, 32595, -5454, -5454, 19170, 3571, -5454,
+ -5454, -5454, -5454,108297, -5454, 84517, 3837, -5454, -5454, 552,
+ 84517, 84517, -5454, -5454, -5454, 84517, -5454, -5454, -5454, 3838,
+ -5454, 265, 265, -5454, -5454, 3874, 7346, 3570, 164, -5454,
+ 57805, 47659, 1618, 381, 689, -5454, 65437, 84517, 65437, -5454,
+ 751, 3783, 84517, 84517, 84517, 3573, 3572, -5454, -5454, -5454,
+ -5454, 62098, 719, 62098, 2495, -5454, -5454, 3649, -5454, 84517,
+ 2022, 4079, 3916, 3285, -5454, 4037, 3131, 332, 1778, 234,
+ 2769, 3974, 2257, 32595, 356, -5454, -5454, 1441, 84517, 3345,
+ -5454, -5454, -5454, -5454, 1058, -5454, 3586, 3582, -5454, 84517,
+ 3921, 84517, 84517, 84517, 84517, 3387, 3589, 84517, 3591,108297,
+ 84517, 2209, 2974, 4056, 3941, 2008, 3351, 3681, 3943, 76885,
+ 3611, 2214, -5454, -5454, 960, -5454, 2221, 266, -5454, 1058,
+ 65437,106445, 3931, -5454, 531, 6126, -5454, -5454, 531, 905,
+ 84517, -5454, -5454, -5454, -5454, 3818, 2067, -5454, 3919, -5454,
+ -5454, 2008, -5454,108297, 3623, -5454, 2223, -5454, -5454, -5454,
+ 251, 3660, 248, 3668, 248, -5454, -5454, -5454, -5454, 84517,
+ -5454, 84517, 60667, -5454, -5454, 84517, -5454, 3951, -5454, -5454,
+ 3743, 3744, 3745, 3747, 3748, 84517, 3326, -5454, 3617, 84517,
+ 84517, 62098, 1578, -5454, -5454, 3822, -5454, -5454, 76885, 3742,
+ -5454, -5454, -5454, -5454, 3962, 3964, -5454, -5454, -5454, 792,
+ -5454, 84517, 84517, 62098, 72115, 165, 62098, -5454, 3898, 3901,
+ 3904, 3906, 303, 3907, 3908, 3909, 3910, 3911, -5454, -5454,
+ -5454, 3643, 17908, 32595, -5454, 3976,108297, -5454, 7951, -5454,
+ -5454, -5454, 32595, -5454, -5454, -5454, -5454, -5454, -5454, 2290,
+ 32595, -5454, 32595, -5454, -5454, 25271, 4118, 4118, 3654,108297,
+ 38018, 38018, 38018, 38018, 1288, 2826, 38018, 38018, 38018, 38018,
+ 38018, 38018, 38018, 38018, 38018, 38018, 553, -5454, 3839, 32595,
+ 32595, 32102, -5454, -5454,108297, 3656, 3410, 3658, 3659, 32595,
+ -5454, -5454, -5454, 2240, 39479, 3661, 57805, -5454, 32595, 16641,
+ 2241, 3682, 18158, 1441, 8711, 1058, 32595, 1074, 1223, 32595,
+ 2247, 32595, 3963, -5454, -5454, -5454, -5454, -5454, -5454, 3868,
+ -5454, 32595, 3662, 4210, 38018, 38018, 5534, -5454, 6224, 32595,
+ 27660, -5454, 3469, 3686, 46694, -5454, 25770, 3657, 1077, 1077,
+ 1077, 1077, -5454, 84517, 84517, 84517, 3702, 3663, 3702, 114,
+ 3672, -5454, -5454, -5454, -5454, 2008, -5454, 3650, -5454, -5454,
+ -5454, -5454, -5454, 82609, 83086, 82609, 3677, 39960, 26252, 3044,
+ 3673, 84517, -5454, -5454, 3679, 40922, 3922, 3844, -5454, 40922,
+ 3844, 1724, 3844, 3923, 3739, 47175, -5454, -5454, 3683, -5454,
+ 3853, -5454, 1964, 19170, 4089, 3965, -5454, 3685, -5454, 3405,
+ 1584, -5454, -5454, -5454, 729, -5454, 3740, -5454, -5454, -5454,
+ 3420, 34074, 3799, -5454, -5454, -5454, 3707, 2251, -5454, -5454,
+ 4067, 3799, -5454, 2805, -5454, 2252, 46213, 3473, 32595, 1441,
+ 2261, 1926, -5454, -5454,105505, -5454, 3730, 2757, 2757, 1731,
+ 3326, 3998, 1731, 9228, -5454, -5454, 42365, 84517, 84517, -5454,
+ 84517, 84517, 1846, 84517, -5454, 84517, -5454, -5454, -5454, 4129,
+ 3727, 3728, 3952, -5454, 2408, -5454, -5454, 62098, 84517, -5454,
+ -5454, -5454, 411, 1241, 2977, -5454, 3759, -5454, -5454, 3970,
+ 84517, -5454, 4122, 3779, 84517, 4028, 84517, 83563, -5454, 3783,
+ 1846, 3791, 4008, 1619, 2974, 327, 3236, -5454, 1770, -5454,
+ -5454, 3762, -5454, 84517, -5454, 84517, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, 3824, -5454, -5454, -5454, -5454, 58282, -5454,
+ -5454, 84517, -5454, 57805, 47659, 57805, -5454, 84517, -5454, 1565,
+ 430, 1261, 2977, -5454, 3773, -5454, 4038, 3780, 3781, 3836,
+ 789, 1509, 3784, 3785, 3841, 3698, 3703, 3704, -5454, 57805,
+ 48153, 3865, 84517, 2757, 3711, 3754, 84517, 3543, 84040, -5454,
+ 3712, -5454, -5454, 3543, 296, 1058, -5454, -5454, 1058, 2757,
+ 1058, 84517, 84517, 84517, 84517, 296, -5454, -5454, -5454, 4156,
+ 3808, 84517, 84517, 84517, 84517, -5454, 3770, -5454, -5454, -5454,
+ 84517, 84517, 4050, 803, 2112, 62098, 84517, 84517, 62098, 84517,
+ 84517, 84517, 84517, 84517, 84517, 84517, 3932, -5454, 4142, 4068,
+ 2272, 4111, 3803, 84517, -5454, 84517, 1058, -5454, 3226, 84517,
+ 84517, 84517, 84517, -5454, -5454, -5454, -5454, -5454, 3469, -5454,
+ 3724, 4012, 552, -5454, 4013, 4017, 4018, 552, -5454, -5454,
+ 689, -5454, 437, 84517, -5454, 2274, 84517, -5454, -5454, -5454,
+ 3685, 2350, 2357, -5454, -5454, -5454, -5454, -5454, -5454, 3726,
+ 84517, 84517, 38018, -5454, 391, 1539, 901, -5454, 4015, 84517,
+ 3067, -5454, -5454, -5454, 868, 84517, -5454, -5454, -5454, -5454,
+ 3738, -5454, 713, 3589, -5454, 4036, 69253, 2757, 62098, 62098,
+ 2757, -5454,108297, 3746, 3345, -5454, 816, 3826, -5454, 62098,
+ 332,105028, 3145, 3782, 3954, 9359, 40922, 41403, 1467, -5454,
+ 3749, 3751, -5454, -5454, 84517, 3783, 60667, 2266, 3026, 4206,
+ 833, 1994, -5454, 70684, 3937, 3589, 4036, -5454, 2974, 3967,
+ 3966, -5454, 2008, 84517, 3387, 3345, 1058, 84517, 3259, 47659,
+ -5454, 4245, 2083, -5454,105505, 32595, 32595, -5454, 3752, -5454,
+ 3757, 6126, -5454, 3823, 3756, 4215, 32595, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, 3846, 3763, 84517, 84517, 960,
+ 84517, -5454, 3764, 3642, -5454, 3642, -5454, 84517, -5454, 84517,
+ -5454, 248, -5454, 3881, 248, 84517, 84517, 84517, 84517, 84517,
+ 84517, 3326, 303, 3327, -5454, -5454, 4086, 61144, 3655, -5454,
+ 2301, 84517, -5454, -5454, -5454, 4158, -5454, -5454, 111, 4095,
+ 248, -5454, 980, 980, 980, 980, 4054, 980, 980, 980,
+ 980, 980, -5454, 32595, 19170, -5454, 3788, -5454, 19170, 3790,
+ 9388, 18246, -5454, 2302, 32595, -5454, 485, 485, 485, 611,
+ 4104, -5454, 2696, 485, 485, 485, 337, 337, 240, 240,
+ 240, 4118, 553, 18396, 18526, 18624, 3792, -5454, -5454, -5454,
+ 3410, -5454, 34567, 47, 4219, 38998, -5454, -5454, -5454, 3821,
+ 3827, 3793, -5454, 32595, 35060, 3795,110149, 3982, -5454, 1452,
+ 32595, 32595, 4412, -5454, 8177, 32595, -5454, 4412, 456, 32595,
+ 1822, 1915, 32595, 32595, 7720, 9782, 3794, 32595,105968, -5454,
+ -5454, -5454, 2307, 32595, 84517, 84517, 84517, 84517, -5454, -5454,
+ -5454, 3965, 1058, 3965, 1058, 3796, -5454, -5454, -5454, -5454,
+ 58759, 3801, 3545, 82609, 3802, 84517, 3044, 40922, -5454, -5454,
+ 2613, -5454, 40922, 4062, -5454, 40922, 65914, -5454, 84517, 3804,
+ 84517, -5454, 1402, 32595, 3830, 51117, -5454, -5454, -5454, -5454,
+ 3872, -5454, 4005, 19170, 30130, -5454, 2008, 1863, 84517, 1441,
+ 53, -5454, 32595, 3813, 84517, -5454, 3799, 19170, -5454, 3864,
+ 2308, -5454, -5454, -5454, -5454, -5454, -5454, -5454, 3876, 71161,
+ 4133, -5454, 32595, 2321, -5454, 3847, 4230, 154, 2326, 2332,
+ 1846, -5454, 2358, -5454, 1624, 4106, 393, -5454, 248, -5454,
+ 108297, 84517, 84517, 84517, 2920, -5454, -5454, 84517, 84517, 84517,
+ 84517, -5454, -5454, 62098, 84517, -5454, 84517, -5454, -5454, -5454,
+ -5454, 296, 391, 4119, 4120, 4035, -5454, 303, -5454, 391,
+ 4041, 296, 84517, -5454, -5454, -5454, 2791, -5454,108297, 248,
+ 248, -5454, -5454, -5454, -5454, -5454, 3829, -5454, 4254, 3913,
+ 84517, 84517, 84517, 84517, 84517, 62098, 84517, 84517, 2495, 2495,
+ 108297, 3809, -5454, 2495, 2495, 3810, -5454, 62098, 84517, 84517,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, 3905, -5454, 32595, 4247, -5454, -5454, -5454, -5454, -5454,
+ 32595, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, 62098, 84517, 3914, -5454, 3917, -5454, 831, -5454, -5454,
+ 84517, 84517, 84517, 84517, 4169, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, 4167, 84517, -5454, -5454,
+ 1058, 1058,108297, 248, 248, -5454, -5454, -5454, 3918, -5454,
+ -5454, 3825, 4107, 552, -5454, 552, 552, 552, -5454, 3845,
+ -5454, 689, 4199, -5454, 1846, 1873, 4153, -5454, 32595, -5454,
+ 1653, 611, -5454, 4211, 4295, -5454, -5454, -5454, -5454, 3285,
+ 2022, 3285, -5454, -5454, 65914, 1213, -5454, 4139, 185, 57805,
+ 4066, 69253, 293, 1927, 3849, 3978, -5454, 2757, 2757, 3912,
+ 84517, 4311, -5454, -5454, -5454, -5454, -5454, -5454, 62098, 3557,
+ -5454, 4080, 1186, 4184, 84517, 41403, -5454, 3420, -5454, -5454,
+ -5454, 1058, -5454, -5454, 3983, 3345, -5454, 2540, 84517, 4073,
+ 69253, 3387, 2360, -5454, -5454, -5454, 3899, 4299, 3351, -5454,
+ 293, 3937, -5454, -5454, 4276, 3953, 3903, 4324, -5454, 3953,
+ 4191, 4078, 3871, -5454, 3611, -5454, 84517, -5454, 19170, 19170,
+ 1058,110612, 531,108297, 4207, -5454, 19170, 84517, 810, 3873,
+ 4039, -5454, 4173, 248, 2365, -5454, 248, 248, -5454, 84517,
+ -5454, 3326, 3326, 3326, 3326, 3326, -5454, 4090, -5454, -5454,
+ -5454, 4164, -5454, 248, 61144, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, 980, -5454, -5454, -5454, -5454, -5454, 19170, -5454,
+ -5454, -5454, 32595, -5454, 10357, 38018, 4209, -5454, 32595, 32595,
+ 32595, -5454, 3882, 2376, 2377, -5454, -5454, 47, -5454, 4219,
+ -5454, -5454, -5454, 10766, 3939, 19170, 3997, 3885, 3886, 4412,
+ 4412, 8177, 4412, 32595, 32595, 4412, 4412, 32595, -5454, -5454,
+ 10847, 4081, -5454, -5454, 11477, -5454, -5454, -5454, -5454, 3830,
+ -5454, 3830, -5454, 4024, -5454, 2383, 4358, 37032, 4317, -5454,
+ 84517, 2389, -5454, 32595, 3915, -5454, -5454, 40922, 2613, 3920,
+ 2391, 84517, 2401,108297, 35553, 19170, 84517, 3469, 3897, -5454,
+ 84517, 2866, -5454, 18, -5454, -5454, 4309, 42365, 4268, 18761,
+ 32595, -5454, -5454, -5454, -5454, 61144, 4117, 61144, 1846, 12289,
+ 4208, 42365, 52105, 84517, -5454, 84517, -5454, 4069, 4208, 4208,
+ -5454, -5454, -5454, -5454, -5454, -5454, 3926, -5454, -5454, -5454,
+ -5454, 3991, -5454, -5454, 821, 3362, -5454, 1618, -5454, 4371,
+ 4256, 4257, -5454, -5454, -5454, -5454, -5454, -5454, 4142, -5454,
+ -5454, 47659, 62098, 84517, -5454, 3995, -5454, -5454, -5454, -5454,
+ -5454, -5454, 44289, 51117, -5454, 789, 3924, 3934, 1509, -5454,
+ -5454, -5454, 84517, 12379, 3935, 12622, 1029, 3362, 84517, 84517,
+ 3936, 3946, 3947, 1684, 1476, 1845, 3326, 4246, 84517, -5454,
+ -5454, -5454, 4142, -5454, -5454, 84517, -5454, 552, -5454, -5454,
+ -5454, -5454, 57805, -5454, 2339, 3845, 1058, 65914, 4375, 4375,
+ 13150, 4140, -5454, -5454, 311, 3977, 4176, 3977, 3948, 84517,
+ 868, 3949, 2403, -5454, 84517, 3930, 4060, 1550, 1550, 84517,
+ 84517, 84517, 2405, 2008, 2757, 3754, 332, 4284, 69253, 4330,
+ 3783, 358, -5454, 84517, 4413, 84517, 3387, 3589, 84517, 3956,
+ -5454, -5454, 70684, 4162, 1618, 84517, 2209, 3937, 3351, 1235,
+ 84517, -5454, 1415, -5454, 2008, -5454, 84517, 76885, 42365, 4282,
+ -5454,109686, -5454, 2418, -5454, -5454, -5454, 4029, 15284, 3215,
+ 4074, 4082, 3968, 1984, 4297, 84517, 690, -5454, -5454, -5454,
+ -5454, -5454, -5454, 84517, -5454, 165, -5454, 19046, -5454, 2627,
+ 38018, 19170, 19170, 19170, 32595, -5454, 32595, -5454, -5454, -5454,
+ -5454, 92, -5454, -5454, 4412, 4412, 4412, -5454, 4407, 3469,
+ -5454, -5454, -5454, 1639, 4356, 3402, 58759, 3971, -5454, 38018,
+ 2423, -5454, 2442, 84517, 2438, -5454, 19170, 84517, -5454, -5454,
+ 32595, -5454, 2446, -5454, 3972, 20, 3973, 24273, 3979, -5454,
+ -5454, -5454, -5454, -5454, 19170, 3980, -5454, 4430, 246, -5454,
+ -5454, 4025, 84517, 2447, -5454, 717, 1866, 4019, -5454, 19170,
+ 1578, 1731, 321, 4230, 3975, 3285, -5454, 3985, -5454, -5454,
+ 2974, 359, 84517, 3285, 3285, -5454, 84517, 4070, -5454, 4287,
+ -5454, -5454, 4046, -5454, 1230, 3362, 84517,108297, -5454, 132,
+ 4320, -5454,108297,108297, -5454, -5454, -5454, 32595, -5454, 4071,
+ -5454, -5454, -5454, 32595, 32595, 68299, -5454, -5454, 84517, 84517,
+ 84517, 84517, 84517, -5454, 248, -5454, -5454, 2451, -5454, 43327,
+ -5454, -5454, 3102, 1058, 3102, 1699, -5454, -5454, 3102, 3102,
+ -5454, 3215, -5454, 4375, 330, -5454, -5454, 4221, 3990, 32595,
+ 4291, -5454, 1163, 4213, -5454, 3992, -5454, 65914, 4486, -5454,
+ 57805, 3589, 4036, 84517, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, 2452, 3783, 4334, 3345,
+ 3903, -5454, 84517, 4032, -5454, 40922, 3783, 2008, 1994, -5454,
+ 3937, 3589, 4036, -5454, -5454, 3996, 3966, 3351, 2209, 4138,
+ -5454, 4141, -5454, 4431, 4212, 4432, 3387, -5454, 3259, 2472,
+ 84517, -5454, -5454, 6126,110612,108297, -5454, -5454, -5454, 4001,
+ 4372, 4051, 4052, -5454, -5454, -5454, 1984, -5454, 1116, 4366,
+ 4058, -5454, 4065, 84517, -5454, -5454, 3783, 248, 32595, 2627,
+ 2478, 2480, 4072, -5454, 32595, 840, 4350, 4351, 84517, -5454,
+ -5454, -5454, 84517, 611, 4016, 37032, 57805, 2487, -5454,107834,
+ -5454, 2491, 2516, -5454, 32595, 4021, 32595, -5454, 35553, 84517,
+ 4022, 3230, 2008, -5454, 3215, 42365, -5454, 4144, 4489, 4278,
+ -5454, -5454, 4353, -5454, -5454, 84517, 3977, 51117, 359, 3405,
+ 2022, 3977, 3977, -5454, 84517, 3990, 32595, -5454, 4121, -5454,
+ -5454, 2517, 1542, 4194, 4194, 2523, 2543, 13285, 84517, 2544,
+ 2545, -5454, 2551, 2495, 3336, 1845, 3336, -5454, 3326, -5454,
+ -5454, 57805, -5454, 61621, -5454, -5454, -5454, 1058, -5454, 1058,
+ 4253, 84517, 53536, 1058, 1058, -5454, -5454, -5454, -5454, 4329,
+ -5454, 3026, -5454, 13842, 4125, -5454, -5454, -5454, 440, -5454,
+ 4251, 4252, -5454, 4033, -5454, 2576, -5454, 293, 4168, 3783,
+ -5454, -5454, 84517, 4502, 4504, -5454, 1240, 84517, 3420, -5454,
+ 3903, 3387, 3351, 293, 3937, 1618, 42846, 3953, 2209, 3966,
+ -5454, -5454, 4255, -5454, 4258, -5454, 4042, 4346, -5454, 1861,
+ 531, -5454, -5454, -5454, 331, 4382, 4385, -5454, -5454, -5454,
+ 3102, -5454, 1605, 4063, 4410, -5454, -5454, -5454, -5454, 19170,
+ -5454, -5454, -5454, 3410, 36046, 36046, 36046, 4084, 4508, 4509,
+ 1249, 2628, 38998, -5454, -5454, -5454, 84517, 4277, 312, 4534,
+ 4232, 2629, 35553, 2645, -5454, -5454, -5454, -5454, -5454, -5454,
+ -5454, 46213, 32595, 4160, 4489, 61144, 2664, 3543, 4087, 3405,
+ -5454, 4176, -5454, -5454, 3362, -5454, 19170, 84517, 65914, 4522,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, 3362, 4159, -5454,
+ -5454, 68299, -5454, 84517, -5454, -5454, 2670, -5454, -5454, -5454,
+ 84517, 3873, -5454, 3873, -5454, -5454, -5454, 1996, 4187, 84517,
+ 939, 939, 4460, -5454, 4151, -5454, 4091, -5454, 4587, 4223,
+ 84517, -5454, -5454, 789, 2008, 69253, 3783, -5454, -5454, 2209,
+ 3937, 3351, 32595, 2671, -5454, 4230, 154, -5454, 3966, 3953,
+ -5454, -5454, 42365, 4096, 3067, 4458, -5454, -5454, -5454, 3093,
+ 65914, 65914, 84517, -5454, -5454, -5454, 32595, 868, 37525, 4240,
+ 753, 16829, 4450, -5454, 4450, 4450, -5454, 84517, 84517, 84517,
+ -5454, 3545, -5454, -5454, 38018, 38018, 4325, -5454, 312, -5454,
+ 84517, -5454, 4100, -5454, -5454, 2675, -5454, 1492, 19170, 360,
+ 4190, 321, -5454, -5454, -5454, -5454, 4213, 1846, 1846, -5454,
+ 3362, -5454, 84517, -5454, 4105, -5454, -5454, -5454, 61621, 3873,
+ -5454, -5454, -5454, -5454, 4584, -5454, 936, -5454, -5454, -5454,
+ -5454, 84517, 3783, 3809, 3903, -5454, 3966, 3351, 2209, 13893,
+ -5454, 42846, 84517, 84517, 3953, -5454, 2689, 42365, 3345, 4259,
+ -5454, 2995, -5454, -5454, -5454, -5454, -5454, -5454, -5454, 929,
+ 4110, 4126, -5454, -5454, 14030, 65914, 4575, -5454, -5454, -5454,
+ -5454, -5454, 1188, -5454, -5454, -5454, 1265, 1269, 1838, 4530,
+ 611, 611, -5454, -5454, -5454, 32595, -5454, -5454, -5454, 4343,
+ 4248, -5454, -5454, 1484, -5454, 1846, -5454, -5454, -5454, 32595,
+ -5454, -5454, 2022, 2022, 3783, -5454, -5454, 3953, 2209, 3966,
+ 4230, -5454, -5454, -5454, -5454, -5454, 4346, -5454, 2690, 3953,
+ 4058, 2277, -5454, -5454, 2395, 2345, 4216, 4452, -5454, 4134,
+ 36539, 4264, -5454, 4331, -5454, 84517, 84517, 59236, 84517, 84517,
+ 14295, -5454, 46213, 4357, 125, -5454, 1846, 2700, -5454, -5454,
+ -5454, -5454, 3966, 3953, 84517, 3067, -5454, 42365, 3215, 4483,
+ -5454, 2995, 4261, 4262, 57328, -5454, -5454, -5454, -5454, -5454,
+ 283, 4521, -5454, 2701, -5454, 4136, -5454, 4195, 18, 4149,
+ 84517, -5454, -5454, 3953, -5454, -5454, 3345, -5454, -5454, 868,
+ -5454, 4183, 4185, -5454, 2711, -5454, -5454, -5454, -5454, 32595,
+ 59236, -5454, -5454, 4214, 32595, 2718, -5454, 3953, 65914, 4478,
+ 4479, -5454, 57328, 625, 4220, 4217, 2719, 88, 3215, 4154,
+ 65914, 65914, -5454, 4155, 84517, -5454, -5454, 18, -5454, -5454,
+ 57328, -5454, -5454, 1058, -5454, 4224, 2720, 4217, -5454, -5454
+};
+
+ /* 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_int16 yydefact[] =
+{
+ 1692, 1437, 644, 1525, 1524, 1437, 0, 262, 0, 1535,
+ 0, 1437, 426, 1095, 0, 0, 0, 0, 644, 1437,
+ 0, 1692, 0, 0, 0, 0, 0, 1705, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1437, 0, 0,
+ 1712, 0, 0, 0, 0, 1705, 0, 1537, 0, 0,
+ 0, 0, 1712, 0, 0, 0, 0, 0, 2, 9,
+ 10, 45, 80, 81, 38, 37, 98, 63, 24, 71,
+ 133, 132, 134, 50, 46, 88, 33, 35, 47, 51,
+ 73, 75, 40, 53, 64, 110, 72, 31, 70, 76,
+ 96, 58, 19, 20, 59, 21, 60, 22, 61, 106,
+ 82, 99, 43, 69, 30, 52, 78, 79, 12, 54,
+ 86, 18, 65, 66, 68, 91, 92, 93, 116, 94,
+ 128, 49, 125, 103, 104, 122, 105, 123, 16, 107,
+ 62, 23, 119, 118, 120, 89, 55, 90, 77, 97,
+ 117, 34, 121, 25, 26, 28, 29, 27, 67, 36,
+ 74, 39, 95, 124, 114, 109, 129, 127, 11, 135,
+ 111, 83, 14, 15, 100, 13, 32, 57, 17, 42,
+ 41, 56, 48, 131, 44, 1535, 102, 115, 101, 84,
+ 108, 87, 112, 130, 113, 85, 126, 1656, 1655, 1716,
+ 1659, 1691, 0, 1671, 1436, 1435, 1450, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 643, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1447, 2309, 2326, 2327, 2328, 2329, 2330,
+ 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2341,
+ 2340, 2342, 2343, 2686, 2344, 2345, 2346, 2635, 2636, 2687,
+ 2637, 2638, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354,
+ 2355, 2639, 2640, 2356, 2357, 2358, 2359, 2360, 2641, 2688,
+ 2361, 2362, 2363, 2364, 2365, 2366, 2689, 2367, 2368, 2369,
+ 2370, 2371, 2372, 2373, 2374, 2375, 2690, 2376, 2377, 2378,
+ 2691, 2379, 2380, 2381, 2382, 2383, 2384, 2642, 2643, 2385,
+ 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395,
+ 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405,
+ 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2644, 2413, 2414,
+ 2415, 2416, 2645, 2417, 2418, 2419, 2420, 2646, 2421, 2422,
+ 2423, 2692, 2693, 2424, 2425, 2426, 2427, 2428, 2647, 2648,
+ 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2694, 2436, 2437,
+ 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447,
+ 2695, 2649, 2448, 2449, 2450, 2451, 2650, 2651, 2652, 2452,
+ 2696, 2697, 2453, 2698, 2454, 2455, 2456, 2457, 2458, 2459,
+ 2653, 2699, 2460, 2700, 2461, 2462, 2463, 2464, 2465, 2466,
+ 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476,
+ 2477, 2478, 2479, 2480, 2481, 2654, 2701, 2655, 2482, 2483,
+ 2484, 2485, 2486, 2487, 2488, 2656, 2657, 2489, 2490, 2491,
+ 2702, 2492, 2658, 2493, 2659, 2494, 2495, 2496, 2497, 2498,
+ 2499, 2500, 2501, 2502, 2503, 2660, 2703, 2504, 2704, 2661,
+ 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514,
+ 2515, 2516, 2662, 2517, 2663, 2520, 2518, 2519, 2521, 2522,
+ 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2664, 2531,
+ 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541,
+ 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2705, 2550,
+ 2551, 2552, 2553, 2554, 2665, 2555, 2556, 2557, 2558, 2559,
+ 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569,
+ 2570, 2666, 2571, 2572, 2706, 2573, 2574, 2667, 2575, 2576,
+ 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586,
+ 2587, 2588, 2668, 2589, 2590, 2591, 2592, 2707, 2593, 2594,
+ 2595, 2596, 2597, 2598, 2669, 2670, 2599, 2600, 2671, 2601,
+ 2672, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610,
+ 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2673,
+ 2674, 2620, 2708, 2621, 2622, 2623, 2624, 2625, 2626, 2627,
+ 2628, 2629, 2630, 2631, 2675, 2676, 2677, 2678, 2679, 2680,
+ 2681, 2682, 2683, 2684, 2685, 2632, 2633, 2634, 137, 0,
+ 0, 2276, 2310, 2311, 2314, 2309, 398, 397, 1645, 2273,
+ 2310, 1534, 0, 1514, 644, 0, 1450, 425, 1692, 0,
+ 0, 0, 0, 0, 0, 860, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 185, 0,
+ 0, 0, 0, 449, 448, 0, 0, 1061, 454, 0,
+ 0, 0, 0, 0, 634, 1576, 2518, 1574, 1646, 263,
+ 266, 267, 264, 265, 2292, 0, 1207, 1208, 1210, 0,
+ 0, 1220, 900, 901, 0, 0, 0, 914, 0, 0,
+ 0, 898, 0, 0, 0, 920, 0, 917, 0, 0,
+ 921, 918, 895, 919, 902, 0, 894, 0, 0, 1220,
+ 922, 0, 0, 896, 0, 0, 0, 0, 1450, 1573,
+ 455, 1692, 0, 1557, 1558, 1559, 1535, 1547, 1560, 1552,
+ 1554, 1553, 1555, 1556, 1551, 2291, 2327, 990, 990, 990,
+ 990, 987, 988, 990, 990, 990, 2538, 0, 0, 969,
+ 0, 971, 2293, 990, 995, 2335, 526, 526, 526, 0,
+ 994, 999, 526, 0, 1418, 1459, 2275, 1704, 0, 970,
+ 1417, 2599, 1563, 0, 0, 1235, 1231, 1233, 1234, 1232,
+ 0, 1064, 1064, 2557, 1427, 247, 2568, 2669, 2599, 246,
+ 241, 242, 215, 2331, 0, 0, 994, 0, 1450, 1425,
+ 966, 1711, 1709, 0, 2260, 2354, 2370, 2463, 238, 2550,
+ 2558, 2568, 2669, 2599, 2631, 194, 204, 199, 0, 256,
+ 2568, 2669, 2599, 252, 1447, 0, 1672, 1820, 1819, 2269,
+ 0, 1420, 1419, 1536, 0, 1539, 0, 2533, 1676, 1679,
+ 1541, 1677, 2312, 1895, 1924, 1902, 1924, 1924, 1891, 1891,
+ 2400, 1904, 1892, 1893, 1929, 0, 1924, 1891, 1896, 0,
+ 1894, 1932, 1932, 1919, 3, 1876, 1877, 1878, 1879, 1905,
+ 1906, 1880, 1911, 1912, 1916, 1881, 1946, 1891, 2313, 1713,
+ 1714, 2260, 4, 2306, 5, 2255, 2305, 6, 7, 1668,
+ 0, 0, 1, 1692, 0, 1546, 1708, 1708, 0, 1708,
+ 0, 1660, 1668, 1663, 1667, 0, 0, 0, 0, 0,
+ 0, 1421, 0, 0, 0, 925, 0, 1462, 1046, 0,
+ 0, 0, 0, 0, 1304, 0, 1104, 1103, 2315, 2298,
+ 2299, 2300, 0, 2296, 2297, 2316, 2317, 2318, 0, 2435,
+ 1304, 0, 0, 2171, 2182, 2183, 2184, 2358, 2417, 2179,
+ 2180, 2181, 2173, 2174, 2175, 2176, 2177, 2178, 0, 0,
+ 1202, 2172, 0, 2435, 0, 1304, 0, 164, 0, 141,
+ 1304, 0, 0, 2435, 0, 0, 2435, 0, 0, 0,
+ 0, 0, 2435, 0, 0, 0, 0, 0, 164, 2468,
+ 0, 141, 2435, 0, 0, 1441, 0, 0, 0, 1443,
+ 1446, 1433, 0, 2252, 0, 2253, 2277, 0, 1528, 1522,
+ 1531, 1527, 1517, 0, 2269, 0, 0, 0, 0, 908,
+ 0, 0, 898, 0, 0, 0, 909, 0, 910, 911,
+ 0, 0, 0, 0, 907, 0, 1431, 1423, 0, 1565,
+ 1567, 1566, 1568, 1564, 526, 0, 0, 0, 2435, 0,
+ 141, 1501, 0, 2435, 141, 0, 0, 453, 452, 141,
+ 2296, 451, 450, 2358, 2417, 0, 1094, 0, 1177, 141,
+ 2435, 0, 187, 2435, 703, 2435, 1541, 0, 647, 0,
+ 815, 2468, 141, 0, 0, 0, 0, 0, 0, 1064,
+ 0, 0, 0, 0, 0, 0, 0, 633, 644, 1577,
+ 1575, 0, 1211, 240, 239, 1209, 912, 2435, 1136, 359,
+ 0, 0, 2435, 1482, 2435, 359, 929, 913, 0, 899,
+ 2435, 359, 1100, 2435, 2301, 174, 0, 897, 2358, 2417,
+ 2435, 359, 1204, 0, 2435, 359, 2435, 170, 2435, 359,
+ 2435, 359, 2435, 648, 0, 0, 2435, 359, 2435, 2468,
+ 172, 916, 2435, 359, 923, 2435, 359, 2271, 2435, 0,
+ 1434, 0, 1569, 0, 1549, 2673, 0, 1692, 990, 989,
+ 0, 990, 0, 990, 0, 990, 0, 990, 0, 0,
+ 0, 990, 2294, 2295, 972, 0, 996, 0, 1004, 0,
+ 1003, 1002, 1001, 0, 0, 0, 1005, 0, 1824, 1604,
+ 0, 1415, 1430, 0, 0, 0, 1064, 0, 1063, 0,
+ 0, 1426, 245, 243, 0, 0, 0, 0, 0, 0,
+ 1432, 0, 1424, 0, 0, 0, 2279, 2281, 2282, 2185,
+ 2255, 0, 2636, 2637, 2638, 2244, 0, 2639, 2640, 2641,
+ 2688, 2075, 2062, 2071, 2076, 2063, 2065, 2072, 2642, 2643,
+ 2013, 2644, 2645, 2289, 2646, 2647, 2648, 2650, 2651, 2652,
+ 2653, 2067, 2069, 2654, 2655, 2657, 0, 2290, 2658, 2659,
+ 2499, 2661, 2662, 2664, 2665, 2073, 2667, 2668, 2669, 2670,
+ 2671, 2672, 2288, 493, 2074, 2674, 2676, 2677, 2678, 2679,
+ 2681, 2682, 2683, 2684, 0, 0, 0, 2266, 0, 2042,
+ 0, 1884, 1885, 1907, 1908, 1886, 1913, 1914, 1887, 0,
+ 2265, 1949, 2130, 2041, 2058, 0, 2047, 2048, 0, 2040,
+ 2036, 1694, 2261, 0, 2037, 2278, 2280, 2245, 1694, 2259,
+ 207, 258, 0, 259, 2267, 2568, 195, 237, 209, 236,
+ 210, 208, 0, 2356, 196, 0, 0, 197, 0, 0,
+ 0, 0, 255, 253, 0, 1422, 0, 1822, 1821, 2270,
+ 934, 0, 1538, 1535, 2195, 0, 1678, 0, 0, 0,
+ 1923, 1910, 1918, 1917, 0, 1900, 1899, 1898, 0, 1897,
+ 1924, 1924, 1922, 1901, 1876, 0, 0, 0, 1928, 0,
+ 1926, 1872, 1868, 0, 1935, 1936, 1937, 1934, 1947, 1933,
+ 0, 1882, 1938, 0, 1891, 1888, 1779, 0, 1658, 1657,
+ 8, 0, 1543, 1545, 1520, 1541, 1706, 1707, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1766, 1724, 1725, 1727,
+ 1763, 1767, 1775, 0, 1664, 0, 0, 0, 1826, 0,
+ 0, 1448, 0, 0, 0, 0, 0, 1135, 0, 0,
+ 0, 0, 926, 0, 0, 0, 1468, 0, 1470, 1471,
+ 1472, 0, 0, 0, 1473, 1474, 1462, 249, 1481, 1478,
+ 1461, 1463, 1476, 0, 0, 0, 0, 0, 0, 0,
+ 1493, 0, 178, 179, 0, 660, 644, 0, 2435, 0,
+ 0, 0, 0, 1145, 1152, 1303, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1146, 1144, 0, 1147, 251, 1157,
+ 1184, 1187, 0, 0, 1102, 1105, 0, 0, 0, 0,
+ 0, 1294, 0, 0, 0, 1294, 0, 0, 0, 1303,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 274,
+ 276, 289, 354, 0, 625, 0, 0, 0, 628, 0,
+ 2435, 1304, 0, 0, 0, 1206, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1187, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 139, 140, 145, 0, 0, 0,
+ 0, 1187, 0, 0, 0, 0, 0, 0, 0, 611,
+ 624, 0, 0, 0, 0, 0, 621, 0, 0, 141,
+ 279, 601, 607, 0, 0, 0, 710, 709, 0, 0,
+ 0, 0, 0, 0, 1391, 0, 1390, 0, 0, 0,
+ 0, 0, 1491, 1490, 0, 0, 0, 0, 0, 0,
+ 1294, 0, 268, 270, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 390,
+ 391, 0, 0, 0, 145, 0, 0, 1294, 0, 281,
+ 0, 0, 1442, 1439, 1440, 0, 1445, 0, 0, 0,
+ 0, 2050, 0, 2199, 1716, 2197, 1120, 2251, 0, 2319,
+ 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718,
+ 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728,
+ 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738,
+ 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748,
+ 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758,
+ 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768,
+ 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778,
+ 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2248, 2247, 2274,
+ 2320, 2321, 2322, 2323, 2254, 0, 0, 226, 227, 225,
+ 1529, 228, 1530, 1526, 0, 1512, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2358, 2417, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 823, 1462, 1500, 0, 0, 0, 653, 0,
+ 2435, 0, 143, 861, 0, 813, 454, 0, 0, 0,
+ 0, 1367, 143, 0, 0, 181, 0, 0, 707, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 814,
+ 0, 0, 143, 0, 2435, 604, 2435, 0, 526, 526,
+ 0, 0, 1066, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1650, 1649, 1652, 1651, 0, 1648, 0, 357, 358,
+ 0, 1194, 1219, 0, 0, 0, 0, 0, 890, 915,
+ 0, 0, 1188, 0, 0, 2435, 359, 2435, 0, 2435,
+ 0, 0, 0, 1196, 359, 0, 1190, 0, 0, 1192,
+ 0, 1393, 0, 906, 904, 903, 905, 0, 0, 888,
+ 0, 0, 0, 0, 0, 883, 0, 0, 885, 0,
+ 0, 0, 0, 1692, 1548, 0, 980, 0, 984, 0,
+ 975, 0, 981, 0, 976, 973, 974, 0, 979, 0,
+ 0, 527, 529, 0, 0, 2382, 2399, 0, 2424, 2456,
+ 2457, 2509, 2524, 2553, 2558, 2564, 0, 2593, 2604, 0,
+ 1010, 1041, 1000, 719, 0, 0, 1614, 1416, 2204, 0,
+ 1692, 0, 0, 0, 1227, 1228, 244, 216, 0, 0,
+ 0, 1043, 2557, 1429, 965, 644, 0, 2038, 0, 2045,
+ 2046, 2243, 0, 0, 0, 0, 0, 0, 2044, 0,
+ 0, 0, 0, 0, 0, 0, 1971, 0, 0, 2203,
+ 0, 0, 2203, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1972, 1953, 1954, 2042, 2195,
+ 0, 2043, 2285, 0, 1946, 2324, 2185, 0, 2182, 2183,
+ 2184, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794,
+ 2795, 2796, 2797, 2798, 2799, 2800, 2801, 0, 2802, 2803,
+ 2804, 2805, 2806, 2808, 2807, 2809, 2810, 2811, 2812, 2813,
+ 2814, 2258, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823,
+ 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833,
+ 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843,
+ 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853,
+ 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863,
+ 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873,
+ 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883,
+ 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893,
+ 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903,
+ 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913,
+ 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923,
+ 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933,
+ 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943,
+ 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953,
+ 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963,
+ 2964, 2965, 2966, 2967, 1986, 2968, 2969, 2970, 2971, 2972,
+ 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982,
+ 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992,
+ 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002,
+ 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012,
+ 3013, 3014, 3015, 3016, 3017, 3018, 1988, 3019, 3020, 3021,
+ 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031,
+ 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041,
+ 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051,
+ 3052, 3053, 3056, 3054, 3055, 3057, 3058, 3059, 3060, 3061,
+ 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071,
+ 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081,
+ 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091,
+ 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101,
+ 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111,
+ 3113, 3112, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121,
+ 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131,
+ 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141,
+ 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151,
+ 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161,
+ 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171,
+ 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181,
+ 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191,
+ 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201,
+ 3202, 3203, 3204, 3205, 3206, 0, 2179, 2180, 2181, 2173,
+ 2174, 2175, 2176, 2177, 2178, 2189, 0, 0, 2264, 2325,
+ 0, 2132, 0, 1968, 0, 0, 1779, 0, 2283, 2246,
+ 1779, 260, 261, 257, 0, 0, 212, 211, 0, 230,
+ 234, 235, 206, 233, 0, 229, 214, 2119, 2118, 213,
+ 205, 202, 200, 217, 219, 220, 203, 201, 254, 0,
+ 0, 0, 359, 1546, 1533, 0, 0, 2258, 0, 2193,
+ 0, 0, 2191, 0, 0, 0, 1776, 0, 1680, 0,
+ 1684, 0, 0, 0, 1921, 1920, 1873, 1869, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 927, 0, 1889, 0, 1842, 2307, 2308, 2256, 1712,
+ 1546, 0, 1542, 1675, 1674, 1717, 1718, 1086, 1673, 1746,
+ 1747, 0, 0, 0, 0, 1772, 1770, 1737, 1728, 1736,
+ 0, 0, 1734, 0, 1738, 1949, 1765, 1662, 1722, 1723,
+ 1726, 1661, 0, 1768, 0, 1617, 1766, 1727, 1601, 0,
+ 1579, 0, 0, 1827, 0, 0, 1449, 0, 0, 0,
+ 1115, 1117, 0, 1116, 0, 1119, 0, 1128, 0, 0,
+ 1114, 1133, 0, 1122, 1120, 0, 1489, 0, 0, 0,
+ 0, 0, 1469, 0, 0, 0, 2593, 248, 1472, 1477,
+ 1464, 1475, 0, 0, 0, 0, 0, 1045, 1044, 0,
+ 0, 1068, 0, 0, 493, 1496, 515, 0, 356, 0,
+ 0, 0, 0, 0, 0, 0, 0, 809, 806, 0,
+ 0, 805, 0, 658, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 683, 0, 1294, 0, 287,
+ 0, 1154, 0, 1153, 0, 1158, 0, 0, 1155, 1150,
+ 1151, 2558, 2568, 2599, 250, 1156, 1186, 0, 1185, 1181,
+ 0, 1097, 0, 1098, 0, 0, 0, 0, 0, 2409,
+ 2435, 295, 318, 0, 1293, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 340, 0, 0, 343, 342, 0, 0, 0, 0, 0,
+ 348, 0, 326, 0, 327, 0, 347, 0, 0, 0,
+ 626, 627, 0, 0, 0, 1294, 0, 283, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1203, 0, 736, 0,
+ 0, 2558, 1182, 0, 1376, 0, 2592, 1377, 1380, 526,
+ 0, 526, 1382, 0, 0, 1379, 1381, 0, 0, 167,
+ 0, 162, 166, 0, 0, 2558, 1183, 0, 0, 0,
+ 0, 0, 609, 610, 623, 0, 614, 615, 612, 616,
+ 617, 0, 0, 0, 0, 0, 0, 0, 608, 0,
+ 0, 705, 704, 708, 0, 0, 0, 0, 0, 0,
+ 1385, 0, 0, 1177, 0, 0, 1384, 1392, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1237, 1236,
+ 0, 0, 0, 0, 1304, 0, 851, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 169, 723, 0, 722,
+ 0, 163, 168, 0, 0, 0, 0, 0, 0, 0,
+ 0, 224, 1438, 1444, 1716, 1716, 1716, 2056, 0, 0,
+ 0, 0, 1715, 2249, 2252, 1517, 1523, 1516, 1515, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 404, 401, 402, 404,
+ 0, 0, 0, 0, 825, 0, 828, 831, 1460, 477,
+ 0, 0, 650, 683, 0, 0, 457, 176, 0, 0,
+ 0, 0, 738, 0, 1177, 1176, 138, 185, 187, 455,
+ 0, 186, 188, 190, 191, 192, 189, 193, 0, 702,
+ 706, 0, 0, 0, 0, 646, 0, 0, 0, 0,
+ 0, 0, 0, 1847, 0, 0, 161, 0, 0, 599,
+ 603, 0, 0, 0, 0, 457, 565, 370, 2435, 0,
+ 526, 0, 2435, 0, 1065, 0, 812, 0, 0, 0,
+ 1139, 1139, 0, 0, 752, 751, 0, 0, 0, 0,
+ 0, 0, 1647, 359, 1137, 0, 1483, 0, 359, 930,
+ 359, 1101, 175, 2302, 0, 892, 0, 0, 0, 0,
+ 359, 1205, 880, 359, 171, 359, 359, 649, 0, 359,
+ 173, 0, 0, 359, 924, 359, 2272, 0, 359, 1572,
+ 2435, 526, 1550, 977, 986, 985, 983, 982, 978, 0,
+ 997, 0, 525, 0, 0, 0, 0, 0, 1018, 1019,
+ 0, 0, 1015, 1020, 0, 1022, 1006, 1008, 1016, 1017,
+ 1023, 1012, 1011, 1024, 1025, 0, 0, 1043, 717, 0,
+ 0, 0, 0, 1611, 0, 1609, 0, 1825, 1613, 1602,
+ 1562, 0, 1561, 0, 592, 1064, 1064, 0, 0, 994,
+ 0, 0, 359, 1428, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2208, 0, 2209, 0, 0,
+ 2242, 2238, 0, 0, 0, 0, 0, 2212, 2215, 2216,
+ 2217, 2214, 2218, 2213, 0, 0, 2219, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2199, 2202, 0, 0, 2665,
+ 0, 0, 0, 0, 2014, 0, 0, 2166, 0, 2199,
+ 0, 0, 0, 0, 0, 0, 0, 2195, 2234, 0,
+ 491, 0, 2006, 0, 0, 0, 2117, 0, 2114, 0,
+ 0, 0, 0, 2255, 0, 0, 2286, 1950, 1964, 1965,
+ 1966, 1969, 2263, 0, 2257, 0, 0, 1951, 1977, 0,
+ 2235, 2002, 0, 2007, 1992, 2220, 2221, 2222, 2223, 2009,
+ 0, 1985, 1990, 1994, 0, 1973, 0, 1970, 0, 2258,
+ 2194, 0, 2192, 0, 1961, 1962, 1963, 1955, 1956, 1957,
+ 1958, 1959, 1960, 1967, 2170, 2168, 2169, 0, 0, 0,
+ 2140, 0, 0, 1989, 2427, 2463, 0, 1705, 1705, 1705,
+ 1693, 1703, 2262, 1842, 1716, 1842, 2268, 0, 0, 1946,
+ 0, 1823, 932, 933, 931, 1519, 1532, 1546, 2196, 1540,
+ 1682, 0, 0, 0, 1890, 1903, 0, 1931, 1930, 1932,
+ 1932, 0, 1874, 0, 1915, 1940, 1941, 1942, 1943, 1944,
+ 1945, 0, 1939, 1883, 928, 0, 2555, 2685, 0, 1803,
+ 1778, 1780, 1790, 1803, 1810, 1803, 2059, 1840, 2060, 2269,
+ 0, 1749, 2304, 1521, 1544, 0, 1084, 1085, 0, 1089,
+ 2665, 2555, 0, 0, 0, 0, 1739, 1773, 0, 1764,
+ 0, 2279, 1740, 2278, 1741, 1744, 1745, 1735, 1774, 1615,
+ 0, 1769, 1666, 1665, 0, 1845, 0, 0, 0, 1593,
+ 1581, 0, 0, 1828, 0, 1779, 1619, 0, 2255, 1777,
+ 1343, 1238, 1305, 1118, 0, 1891, 1129, 0, 1113, 0,
+ 1112, 1891, 0, 1130, 0, 1891, 1344, 1239, 1306, 1345,
+ 1240, 1307, 1346, 1480, 1241, 1479, 1467, 1466, 1465, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 790, 2435, 359, 1494, 1347, 0, 1242,
+ 355, 1495, 1308, 1499, 808, 807, 0, 0, 1309, 0,
+ 659, 664, 0, 666, 667, 2358, 2417, 668, 671, 672,
+ 0, 674, 663, 662, 0, 0, 0, 0, 0, 680,
+ 685, 0, 0, 0, 0, 0, 0, 1148, 1149, 1348,
+ 1245, 0, 1310, 0, 1096, 0, 1246, 177, 0, 0,
+ 275, 2435, 297, 0, 475, 790, 0, 1296, 294, 324,
+ 0, 339, 334, 335, 333, 2435, 359, 2435, 359, 0,
+ 0, 0, 0, 0, 336, 331, 332, 328, 0, 0,
+ 341, 2330, 2401, 2569, 0, 691, 693, 0, 698, 344,
+ 1266, 366, 365, 364, 0, 349, 0, 371, 374, 0,
+ 346, 325, 323, 320, 290, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1198, 0, 1351, 1311,
+ 0, 1333, 0, 0, 0, 0, 730, 1354, 1252, 1314,
+ 0, 526, 0, 0, 541, 541, 526, 1365, 1253, 165,
+ 1283, 154, 0, 0, 150, 0, 0, 0, 0, 144,
+ 1355, 1254, 1315, 0, 0, 1356, 1255, 0, 0, 280,
+ 602, 613, 618, 1260, 622, 619, 1323, 620, 1363, 1256,
+ 0, 1359, 1286, 1318, 585, 1177, 1177, 1366, 1386, 1257,
+ 1177, 0, 1294, 0, 269, 271, 0, 1064, 0, 1258,
+ 0, 1316, 1358, 1285, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1502, 0, 0, 0, 0, 0, 0,
+ 359, 0, 0, 0, 1296, 2435, 359, 1357, 0, 1291,
+ 0, 1331, 0, 0, 392, 0, 1284, 1294, 0, 282,
+ 1262, 0, 1325, 0, 0, 222, 221, 223, 0, 0,
+ 0, 0, 2200, 2201, 0, 2198, 2051, 2251, 0, 1513,
+ 954, 940, 953, 0, 936, 2399, 0, 939, 941, 0,
+ 0, 0, 942, 946, 947, 0, 938, 935, 937, 0,
+ 403, 0, 0, 747, 748, 0, 0, 0, 0, 827,
+ 0, 0, 1492, 0, 141, 657, 0, 0, 0, 652,
+ 682, 687, 0, 0, 0, 0, 456, 460, 464, 465,
+ 466, 0, 0, 0, 0, 155, 142, 0, 869, 0,
+ 526, 0, 740, 1177, 1369, 0, 187, 180, 0, 0,
+ 703, 0, 1541, 0, 0, 580, 583, 582, 0, 370,
+ 822, 820, 819, 821, 843, 818, 0, 1846, 1848, 0,
+ 0, 0, 0, 0, 0, 592, 459, 0, 0, 529,
+ 0, 568, 0, 0, 0, 0, 565, 0, 0, 0,
+ 2312, 0, 839, 811, 0, 1107, 0, 1125, 1108, 0,
+ 0, 0, 0, 1162, 1169, 1138, 1163, 1140, 1169, 0,
+ 0, 753, 757, 756, 760, 758, 0, 754, 631, 1653,
+ 1654, 0, 1195, 0, 0, 1488, 0, 1486, 891, 1189,
+ 359, 0, 359, 0, 359, 1197, 1191, 1193, 1394, 0,
+ 889, 0, 0, 882, 884, 0, 886, 0, 998, 528,
+ 0, 0, 0, 0, 0, 0, 1014, 629, 1021, 0,
+ 0, 0, 1036, 1031, 1033, 0, 1037, 716, 0, 0,
+ 1612, 1605, 1607, 1606, 0, 0, 1603, 2205, 881, 0,
+ 598, 0, 0, 0, 0, 1043, 0, 1038, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1710, 2206,
+ 2207, 0, 0, 0, 2239, 0, 0, 2092, 0, 2064,
+ 2066, 2078, 0, 2093, 2049, 2094, 2068, 2070, 2079, 0,
+ 0, 2186, 0, 2082, 2081, 0, 2016, 2017, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2031, 2083, 2165, 0,
+ 0, 0, 2085, 2084, 0, 0, 2233, 0, 0, 0,
+ 2090, 492, 2095, 0, 0, 0, 0, 2101, 0, 2122,
+ 0, 0, 0, 2039, 2196, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2008, 1993, 2011, 1987, 1991, 1995, 0,
+ 2010, 0, 0, 1981, 0, 0, 1979, 2003, 1975, 0,
+ 0, 2004, 0, 0, 0, 2057, 0, 0, 1705, 1705,
+ 1705, 1705, 1702, 0, 0, 0, 1749, 0, 1749, 198,
+ 0, 231, 218, 1518, 1683, 1692, 1909, 0, 1927, 1925,
+ 1870, 1875, 1948, 1803, 1810, 1803, 0, 0, 1668, 0,
+ 1790, 0, 1802, 1788, 1801, 0, 0, 1816, 1814, 0,
+ 1816, 0, 1816, 0, 1782, 0, 1806, 1784, 1801, 1786,
+ 0, 1832, 2270, 1841, 0, 1762, 1719, 0, 2187, 1089,
+ 0, 1721, 1743, 1742, 0, 1732, 0, 1771, 1729, 1616,
+ 1600, 0, 1598, 1585, 1587, 1586, 0, 0, 1588, 2255,
+ 0, 1598, 1580, 0, 1624, 0, 0, 1845, 0, 1623,
+ 0, 1891, 1110, 1111, 0, 1134, 0, 1048, 1049, 0,
+ 1047, 0, 0, 0, 514, 1067, 0, 0, 0, 790,
+ 0, 0, 518, 0, 1497, 0, 1364, 1282, 661, 0,
+ 0, 0, 0, 676, 635, 677, 679, 0, 0, 678,
+ 681, 684, 1294, 0, 288, 1268, 0, 1329, 1142, 0,
+ 0, 1099, 0, 0, 0, 0, 0, 0, 474, 687,
+ 319, 0, 0, 0, 0, 379, 0, 299, 311, 377,
+ 317, 0, 351, 0, 322, 0, 315, 337, 329, 338,
+ 330, 350, 352, 0, 695, 696, 694, 690, 0, 697,
+ 699, 0, 368, 0, 0, 0, 345, 0, 1350, 0,
+ 1294, 0, 284, 1264, 0, 1327, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1332, 0,
+ 0, 0, 0, 735, 0, 732, 0, 541, 0, 1378,
+ 0, 1375, 1373, 541, 0, 0, 147, 146, 0, 153,
+ 0, 0, 0, 0, 0, 0, 1387, 1388, 1389, 0,
+ 0, 0, 0, 0, 0, 386, 0, 291, 293, 292,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 393, 361, 0,
+ 846, 0, 0, 0, 395, 0, 0, 1342, 0, 0,
+ 0, 0, 0, 1349, 1247, 2054, 2055, 2052, 1716, 2250,
+ 0, 0, 0, 951, 0, 0, 0, 0, 406, 407,
+ 141, 405, 428, 0, 790, 0, 0, 824, 829, 837,
+ 2499, 2173, 2174, 835, 830, 832, 834, 836, 833, 0,
+ 0, 0, 0, 496, 0, 0, 0, 483, 0, 0,
+ 493, 476, 479, 480, 0, 0, 653, 656, 654, 655,
+ 0, 675, 0, 459, 503, 555, 0, 157, 0, 0,
+ 158, 156, 0, 0, 370, 737, 0, 734, 1368, 0,
+ 183, 0, 707, 0, 0, 0, 0, 0, 1177, 645,
+ 0, 842, 844, 816, 0, 687, 0, 0, 604, 0,
+ 526, 1573, 587, 0, 557, 459, 555, 564, 0, 0,
+ 572, 369, 0, 0, 592, 370, 0, 0, 1068, 0,
+ 838, 0, 0, 1106, 0, 0, 0, 1159, 1164, 1160,
+ 0, 1139, 1121, 0, 1161, 0, 0, 1167, 1092, 1141,
+ 1093, 1410, 1411, 1408, 1409, 0, 0, 0, 0, 0,
+ 0, 1644, 0, 0, 1484, 0, 893, 0, 876, 0,
+ 878, 359, 724, 0, 359, 0, 0, 0, 0, 0,
+ 0, 1013, 0, 1007, 1009, 1034, 0, 0, 1043, 1040,
+ 0, 0, 1610, 1608, 590, 0, 1229, 1230, 1043, 0,
+ 359, 1042, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2210, 0, 2241, 2237, 0, 2061, 2211, 0,
+ 0, 0, 2166, 0, 0, 2015, 2027, 2028, 2029, 2226,
+ 0, 2034, 0, 2024, 2025, 2026, 2018, 2019, 2020, 2021,
+ 2022, 2023, 2030, 2230, 2229, 0, 0, 2087, 2088, 2089,
+ 2232, 2096, 0, 2348, 2123, 0, 2100, 2116, 2115, 0,
+ 0, 0, 2103, 0, 0, 2112, 0, 2167, 2287, 1952,
+ 0, 0, 1978, 2236, 1996, 0, 2012, 1974, 2186, 0,
+ 0, 0, 0, 0, 1983, 0, 0, 0, 2143, 2138,
+ 2139, 2163, 0, 0, 0, 0, 0, 0, 1696, 1695,
+ 1701, 1762, 2051, 1762, 0, 0, 1871, 1789, 1785, 1787,
+ 0, 2680, 0, 1792, 1799, 0, 1781, 0, 1815, 1811,
+ 0, 1812, 0, 0, 1813, 0, 0, 1783, 0, 1799,
+ 0, 1839, 1708, 0, 2134, 0, 1720, 1087, 1088, 1730,
+ 0, 1733, 2378, 1843, 0, 1599, 0, 0, 0, 1590,
+ 1596, 1578, 0, 0, 0, 1620, 1598, 1621, 1131, 0,
+ 0, 1123, 1054, 1055, 1058, 1056, 1053, 1057, 0, 0,
+ 0, 790, 0, 0, 536, 0, 1081, 1081, 0, 0,
+ 520, 577, 0, 793, 0, 0, 0, 791, 359, 1243,
+ 0, 0, 0, 0, 636, 1362, 1244, 0, 0, 0,
+ 0, 1143, 1297, 0, 0, 1267, 0, 296, 473, 472,
+ 477, 0, 0, 302, 312, 0, 307, 0, 1295, 0,
+ 0, 0, 0, 306, 309, 381, 0, 378, 0, 359,
+ 359, 353, 692, 367, 372, 373, 376, 1302, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 870, 853, 0, 0, 871, 872, 0, 0, 0,
+ 1200, 1201, 1199, 1334, 1335, 1340, 1337, 1336, 1339, 1341,
+ 1338, 0, 1250, 0, 0, 728, 1298, 1370, 1372, 1371,
+ 0, 1374, 151, 148, 149, 152, 1299, 1280, 1261, 1324,
+ 586, 0, 0, 0, 1259, 0, 1317, 0, 1276, 1270,
+ 0, 0, 0, 0, 0, 1361, 1290, 1322, 1360, 1288,
+ 1320, 1287, 1319, 1289, 1321, 1281, 0, 0, 1850, 850,
+ 0, 0, 0, 359, 359, 849, 726, 1263, 0, 1326,
+ 1272, 0, 0, 0, 943, 0, 0, 0, 945, 411,
+ 429, 141, 0, 746, 810, 0, 0, 826, 0, 481,
+ 0, 487, 494, 0, 0, 498, 499, 497, 482, 1177,
+ 526, 1177, 779, 780, 0, 0, 800, 0, 651, 0,
+ 0, 457, 0, 500, 0, 0, 461, 160, 159, 0,
+ 0, 0, 741, 745, 743, 742, 744, 739, 0, 730,
+ 187, 2435, 0, 0, 0, 0, 584, 578, 581, 1383,
+ 817, 0, 1849, 720, 0, 370, 600, 0, 0, 0,
+ 457, 592, 0, 462, 467, 468, 477, 0, 565, 556,
+ 0, 557, 566, 567, 0, 574, 1458, 0, 593, 574,
+ 0, 0, 0, 841, 0, 840, 0, 1109, 1126, 1127,
+ 0, 0, 1169, 0, 0, 1171, 1166, 0, 0, 759,
+ 762, 755, 638, 359, 0, 1487, 359, 359, 1226, 0,
+ 887, 1028, 1029, 1030, 1027, 1026, 630, 0, 1032, 991,
+ 718, 0, 591, 359, 0, 992, 968, 960, 967, 956,
+ 959, 961, 0, 963, 964, 958, 955, 957, 2240, 2077,
+ 2080, 2091, 0, 2165, 2196, 0, 0, 2035, 0, 0,
+ 0, 2086, 2675, 0, 0, 2127, 2128, 0, 2124, 2125,
+ 2120, 2121, 2102, 0, 2488, 2107, 0, 0, 0, 2000,
+ 1998, 1997, 1982, 0, 0, 1980, 1976, 0, 2005, 2129,
+ 0, 2145, 2142, 2162, 2196, 1700, 1699, 1698, 1697, 2134,
+ 2284, 2134, 232, 1687, 1835, 0, 1838, 0, 0, 1791,
+ 0, 0, 1793, 0, 0, 1795, 1797, 0, 0, 0,
+ 0, 0, 0, 2273, 0, 1761, 0, 1716, 0, 1731,
+ 0, 1597, 1582, 0, 1583, 1589, 0, 0, 0, 0,
+ 0, 1625, 1618, 1124, 1132, 0, 0, 0, 516, 0,
+ 531, 0, 0, 0, 1074, 1083, 1073, 0, 531, 531,
+ 795, 794, 797, 792, 796, 1498, 0, 669, 670, 673,
+ 1269, 0, 1330, 1278, 0, 1614, 298, 469, 305, 0,
+ 0, 0, 300, 380, 382, 301, 304, 308, 361, 321,
+ 314, 0, 0, 0, 1265, 0, 1328, 1274, 1301, 1352,
+ 1248, 1312, 0, 0, 859, 0, 0, 0, 0, 1353,
+ 1249, 1313, 0, 0, 0, 0, 0, 1614, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1507, 0, 0, 360,
+ 848, 847, 361, 394, 1292, 0, 2053, 0, 944, 949,
+ 950, 948, 0, 400, 408, 411, 0, 0, 1217, 1217,
+ 0, 0, 478, 495, 0, 576, 535, 576, 0, 0,
+ 0, 0, 0, 688, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 733, 732, 182, 0, 457, 0,
+ 687, 0, 845, 0, 0, 0, 592, 459, 0, 0,
+ 1570, 458, 0, 0, 470, 0, 568, 557, 565, 0,
+ 0, 589, 0, 1451, 0, 595, 0, 0, 0, 789,
+ 1165, 0, 1179, 0, 1120, 1090, 1174, 0, 1692, 1842,
+ 0, 0, 0, 0, 772, 0, 642, 1218, 1485, 877,
+ 879, 725, 1035, 0, 1039, 1043, 962, 2225, 2167, 2032,
+ 0, 2228, 2227, 2231, 0, 2097, 0, 2098, 2126, 2104,
+ 2108, 0, 2105, 2106, 2001, 1999, 1984, 2131, 0, 1716,
+ 2164, 1670, 1669, 0, 1690, 1840, 0, 0, 1834, 0,
+ 0, 1864, 0, 0, 0, 1800, 1818, 0, 1796, 1794,
+ 0, 1807, 0, 1809, 2377, 2648, 2552, 0, 1748, 1750,
+ 1753, 1755, 1754, 1756, 1752, 2133, 2135, 0, 1727, 2188,
+ 1844, 0, 0, 0, 1069, 0, 0, 1626, 1627, 1622,
+ 1036, 0, 359, 1081, 0, 1177, 537, 2499, 538, 1080,
+ 1082, 1086, 0, 1177, 1177, 665, 0, 0, 277, 0,
+ 303, 313, 363, 375, 0, 1614, 0, 0, 857, 866,
+ 866, 854, 0, 0, 873, 1251, 729, 0, 540, 0,
+ 272, 1277, 1271, 0, 0, 0, 1509, 1510, 0, 0,
+ 0, 0, 0, 1300, 359, 1273, 952, 0, 431, 438,
+ 412, 416, 1501, 0, 1501, 0, 413, 417, 1501, 1501,
+ 410, 1842, 427, 1217, 0, 1214, 1213, 524, 606, 0,
+ 0, 485, 0, 546, 484, 0, 801, 0, 0, 686,
+ 0, 459, 555, 0, 513, 504, 505, 506, 507, 509,
+ 508, 510, 511, 512, 502, 501, 0, 687, 863, 370,
+ 1458, 727, 0, 0, 700, 0, 687, 0, 1573, 588,
+ 557, 459, 555, 463, 477, 0, 572, 565, 568, 0,
+ 569, 0, 573, 0, 0, 0, 592, 1511, 1068, 0,
+ 0, 790, 1178, 1139, 0, 0, 1168, 1172, 1173, 0,
+ 0, 0, 0, 1221, 766, 767, 761, 763, 0, 774,
+ 778, 637, 0, 0, 641, 632, 687, 359, 0, 2033,
+ 0, 0, 2110, 2109, 0, 2149, 0, 0, 0, 1681,
+ 1833, 1836, 0, 1867, 0, 0, 0, 0, 1853, 0,
+ 1798, 0, 0, 1808, 0, 0, 0, 1757, 0, 0,
+ 0, 1766, 0, 1595, 1842, 0, 1592, 0, 1635, 0,
+ 1628, 1050, 0, 1051, 1075, 0, 576, 0, 1086, 1089,
+ 526, 576, 576, 1279, 0, 606, 0, 316, 0, 285,
+ 1275, 0, 0, 868, 868, 0, 0, 0, 0, 0,
+ 0, 388, 0, 0, 1503, 0, 1504, 1505, 1508, 396,
+ 409, 0, 436, 0, 434, 433, 435, 0, 424, 0,
+ 0, 0, 0, 0, 0, 399, 1212, 1216, 1215, 0,
+ 486, 0, 488, 0, 0, 532, 533, 534, 0, 490,
+ 542, 543, 798, 0, 803, 0, 689, 0, 0, 687,
+ 554, 711, 0, 0, 0, 1452, 0, 0, 579, 721,
+ 1458, 592, 565, 0, 557, 471, 0, 574, 568, 572,
+ 570, 571, 0, 1455, 0, 594, 0, 1077, 788, 0,
+ 1169, 1180, 1175, 1170, 1414, 0, 0, 764, 769, 768,
+ 1501, 773, 0, 0, 0, 640, 639, 715, 993, 2224,
+ 2113, 2099, 2111, 2144, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1865, 1866, 1851, 0, 0, 1855, 1805,
+ 1831, 0, 0, 0, 1751, 2136, 2137, 2303, 1584, 1594,
+ 1070, 0, 0, 0, 1635, 0, 0, 541, 0, 1089,
+ 1071, 535, 790, 790, 1614, 310, 362, 0, 0, 0,
+ 864, 867, 855, 856, 875, 874, 731, 1614, 0, 384,
+ 383, 0, 387, 0, 432, 441, 0, 439, 414, 419,
+ 0, 423, 421, 420, 415, 418, 523, 0, 0, 0,
+ 0, 0, 0, 544, 0, 545, 0, 802, 0, 0,
+ 0, 713, 862, 0, 0, 457, 687, 1453, 1571, 568,
+ 557, 565, 0, 0, 559, 1081, 1081, 444, 572, 574,
+ 1456, 1457, 0, 0, 493, 0, 1091, 1413, 1412, 1692,
+ 0, 0, 0, 775, 776, 771, 0, 0, 2635, 2378,
+ 2607, 0, 2161, 2150, 2161, 2161, 2141, 0, 0, 0,
+ 1837, 0, 1854, 1857, 0, 0, 0, 1863, 1856, 1858,
+ 0, 1817, 0, 1829, 1759, 0, 1758, 1842, 1634, 0,
+ 0, 359, 530, 790, 539, 1072, 546, 519, 517, 278,
+ 1614, 858, 0, 273, 0, 389, 1506, 437, 0, 422,
+ 605, 489, 575, 551, 0, 550, 0, 548, 547, 799,
+ 804, 0, 687, 852, 1458, 701, 572, 565, 568, 0,
+ 558, 0, 1083, 1083, 574, 442, 0, 0, 370, 0,
+ 1396, 1692, 1395, 1397, 1405, 1402, 1404, 1403, 1401, 0,
+ 1224, 1225, 765, 770, 0, 0, 0, 2154, 2153, 2152,
+ 2156, 2155, 0, 2148, 2146, 2147, 0, 0, 0, 0,
+ 1860, 1861, 1862, 1859, 1804, 0, 1760, 1591, 1637, 0,
+ 0, 1629, 1630, 0, 1052, 521, 790, 286, 865, 0,
+ 440, 549, 526, 526, 687, 712, 1454, 574, 568, 572,
+ 1081, 560, 1082, 562, 561, 446, 1077, 1078, 0, 574,
+ 778, 0, 1406, 1400, 1668, 1655, 0, 0, 777, 0,
+ 0, 0, 2158, 0, 2159, 0, 0, 0, 0, 0,
+ 0, 1632, 0, 0, 0, 1631, 522, 0, 553, 552,
+ 714, 445, 572, 574, 1083, 493, 1076, 0, 1842, 0,
+ 1398, 1692, 0, 0, 783, 2151, 2157, 2160, 1686, 1685,
+ 0, 0, 1689, 0, 1830, 1636, 1633, 0, 0, 0,
+ 0, 1638, 385, 574, 443, 563, 370, 1079, 1059, 0,
+ 1399, 0, 0, 785, 0, 781, 784, 786, 787, 0,
+ 0, 1852, 1642, 0, 0, 0, 447, 574, 0, 0,
+ 0, 749, 0, 1716, 0, 0, 0, 0, 1842, 0,
+ 0, 0, 782, 0, 0, 1639, 1643, 0, 1640, 1060,
+ 783, 1222, 1223, 0, 1688, 0, 0, 0, 750, 1641
+};
+
+ /* YYPGOTO[NTERM-NUM]. */
+static const yytype_int16 yypgoto[] =
+{
+ -5454, -5454, -5454, 3758, -603, -5454, -5454, -939, 267, 3004,
+ -2413, -5454, -5454, -5454, 1369, -5454, -5454, -5454, -5454, 3722,
+ -5454, 1685, -2845, -5454, -5454, 141, 3687, -1375, 131, 3309,
+ 1371, -5454, -970, -5454, -5454, -624, 1, -5454, 3689, 575,
+ -5454, -5454, -5454, -5454, -5454, -5454, -5454, -5454, -761, 1805,
+ -5454, 1902, 1169, 3816, -3190, -5454, -5454, -1497, -3676, -5454,
+ 468, -5454, 494, -4694, -1068, -5454, -5454, -5454, 1790, -5454,
+ -5454, -5454, 1738, 966, -496, -5454, -5454, -5454, -5454, -5454,
+ -5454, -910, -5454, -5454, -1176, 5, -644, -2885, -4216, -5454,
+ -5454, 317, -538, -1471, -5454, 512, -5454, -4538, -5454, -151,
+ -2616, -2419, -5454, -5454, -5454, -501, -1447, 1274, -5454, -726,
+ -1132, 1620, -2283, -1019, -5454, -377, -3488, -1141, -915, -913,
+ -1053, -4252, -4752, -5454, -5454, -1172, -3702, -5014, -5283, -4725,
+ -4617, 1281, -5454, -175, 326, -5454, 6, -3605, -3687, 7,
+ 302, -5454, 8, 11, -5454, 316, -847, -949, -1557, -5454,
+ -927, -5454, -5454, -5454, -3382, -5454, -5454, -5454, 153, -5454,
+ -5454, -5454, -5454, 363, -5454, -5454, -5454, -5454, -5454, -5454,
+ -3155, 1767, 1775, -5454, -4044, -5454, -918, -5454, 524, -3420,
+ 1201, -5454, -5454, 964, 3761, 348, -5454, -5454, -5454, -5454,
+ -5454, -5454, -1765, -5454, -5454, -5454, -5454, -148, -473, -5454,
+ -5454, -5454, -5454, -5454, -5454, -5454, 12, -5454, 933, 297,
+ -5454, -5454, -763, -5454, -5454, -5454, -5454, -5454, -5454, -1222,
+ -5024, -1331, -1310, -5454, -3407, -5454, -5454, -5454, -444, -5454,
+ -5454, -5454, -5454, -5454, -907, -5454, 1027, -4049, -5454, -5454,
+ 328, -5454, -5454, -5454, -5454, -5454, -1025, -385, 2938, -5454,
+ -618, -821, -5454, -5454, -5454, -384, -5454, -5454, -5454, -5454,
+ -5454, -508, -1289, 4747, 4132, -1100, 2521, -848, -574, -5454,
+ -5454, -5454, -2646, -5454, -5454, -4037, -5454, 4741, 2329, 1105,
+ 13, -5454, -2, 86, 3565, -5454, 893, -1146, -3056, 288,
+ -577, -5454, -5454, -5454, -3025, -5454, -5454, -5454, -5454, -3991,
+ 15, -5454, -720, -5454, -4270, -5058, -4488, -4030, -1188, -5454,
+ -4574, -4129, -4992, -3969, -5454, 1797, -5454, -5454, -563, -188,
+ 2914, -5454, -1457, 2140, -1392, -5454, -2550, 347, 1368, 2921,
+ -3199, -134, 2906, -2941, -5454, -707, 961, -5454, -469, -3711,
+ -5454, -5454, -5454, -2692, -704, -5454, -5454, 1469, 669, -5454,
+ -5454, -5454, -5454, -631, 2892, -179, -5454, -5454, 4109, -5454,
+ -4871, -5454, 4077, -5454, -5454, -5454, -5454, 2815, 2817, -5454,
+ -5454, -1428, 1133, -5454, -836, -5454, -5454, 1908, 564, -5454,
+ -5454, -5454, -5454, 1218, -1235, -5454, -5454, -5454, -5454, -5454,
+ -5454, -5454, -1005, -1205, -5454, -5454, -4426, -5454, -5454, -5454,
+ -5454, -5454, 2335, -941, -749, 3981, 646, 17, -5102, -5454,
+ -5454, -1190, -5454, 3365, -5454, -5454, -5454, -5454, -5454, 350,
+ 342, -5454, -5454, -5454, -5454, -4240, -5454, -5454, -4900, -5454,
+ -5454, 1887, -5454, -5454, 968, 10, 3038, -5454, -5454, -5454,
+ -23, -5454, -5454, -1006, 2236, -5454, -2366, -5454, -572, -5454,
+ -5454, -1881, 19, -4251, -5454, 21, -5454, -5454, -4911, -1212,
+ 174, -5454, -5454, -3917, 23, -5454, -5454, -5454, -5454, -4913,
+ -5454, 27, -5402, 703, -3260, -5454, 3, -5454, -527, -903,
+ -5454, -5454, -5454, -3737, 28, 121, -5454, -5454, 4, 349,
+ -36, -49, -40, 9, 113, 3447, -5454, -5454, -5454, -4407,
+ 3490, -5454, 49, -854, 4786, 4787, -5454, -880, -146, -5454,
+ 1474, -714, -2547, 3398, 3403, -5454, 1463, 2239, -2421, -2424,
+ -5454, -1185, -878, -713, -5454, -5454, -5454, -5454, -1675, -701,
+ -2548, -5454, 3399, -5454, -5454, -5454, -2326, -3284, -3211, 1500,
+ -3212, -3158, -5454, 787, 772, -1129, -212, -28, -1461, -783,
+ 1524, -5454, -5454, 1512, -458, -5454, -5454, -456, -3220, 734,
+ -5454, -4453, -2761, 1515, -1137, -853, -5454, -984, -5454, -680,
+ 6686, 3463, -817, -5454, -5454, -780, 12578, -5454, -5454, -5454,
+ 12712, 13785, -5454, -5454, 13950, 14568, -5454, -594, 15052, 10192,
+ -770, -1907, 528, 16918, -1744, 2246, -4, -5454, -2917, -2273,
+ -5454, -5454, -5454, -428, 871, 409, -5454, -4467, -4317, -5454,
+ -5454, -2039, -5454, -689, -5454, -688, -5454, -5454, -5454, -2838,
+ -5453, -2867, 2372, -5454, -5454, -5454, -197, -5454, 17861, -3197,
+ -5454, -736, -987, -1567, 2844, -4938, -1875, -5454, -5454, -5454,
+ -3064, -5454, -5454, -5454, -719, 1600, -5454, -5454, 1705, -5454,
+ -5454, -5454, -956, 1943, -744, -1169, 1609, 3984, -766, 2374,
+ -765, 16765, -608, 12331, -1259, -5454, 1124, -4897, 3276, 7298,
+ 16, -125, 3590, -333, 2291, 2909, -5454, -5454, 5118, 8246,
+ -584, -958, -5454, -6, 12039, 10270, -3603, -5454
+};
+
+ /* YYDEFGOTO[NTERM-NUM]. */
+static const yytype_int16 yydefgoto[] =
+{
+ 0, 57, 58, 59, 60, 61, 62, 1586, 2967, 2821,
+ 3755, 3756, 63, 64, 1582, 65, 66, 67, 68, 1496,
+ 69, 1081, 1835, 2981, 70, 2657, 826, 827, 828, 2522,
+ 2523, 2912, 2524, 2512, 1348, 1781, 1518, 800, 801, 1478,
+ 1519, 72, 73, 1342, 2503, 74, 75, 76, 1549, 1643,
+ 1550, 1551, 1490, 1881, 4818, 5577, 3545, 2776, 3803, 3546,
+ 3547, 4188, 4189, 4277, 5591, 5592, 77, 1659, 1660, 78,
+ 79, 2949, 3721, 4330, 5183, 5184, 5420, 639, 4841, 4842,
+ 5407, 5408, 5605, 5756, 5757, 2982, 670, 3798, 4414, 3746,
+ 4912, 3747, 4913, 3748, 4914, 4178, 4179, 3732, 4361, 4362,
+ 2026, 4854, 4363, 3749, 4873, 5454, 3750, 2676, 5620, 3016,
+ 1953, 1951, 5355, 5433, 4673, 4674, 4251, 5629, 5630, 5631,
+ 5877, 4875, 4918, 4919, 5793, 5794, 3801, 4420, 4925, 5241,
+ 5431, 3443, 81, 3774, 3775, 82, 733, 1857, 3900, 734,
+ 3019, 671, 735, 2983, 87, 3009, 5622, 3010, 1612, 2835,
+ 4343, 3878, 88, 1108, 4153, 5266, 5514, 5515, 724, 89,
+ 1843, 90, 91, 2962, 3739, 92, 2693, 3460, 93, 94,
+ 3479, 3480, 3481, 95, 4371, 5202, 1552, 3534, 3535, 3536,
+ 3537, 4209, 96, 1838, 2990, 2991, 97, 98, 99, 3120,
+ 3121, 100, 2898, 101, 102, 103, 104, 4245, 4775, 4889,
+ 3576, 3762, 4387, 4887, 105, 3725, 2984, 3037, 3836, 3837,
+ 5264, 5506, 5507, 5508, 5680, 5912, 5510, 5682, 5815, 5684,
+ 4864, 6044, 6045, 5491, 4142, 4687, 107, 4865, 4866, 5635,
+ 108, 2691, 109, 110, 1812, 2955, 2956, 4344, 3026, 3811,
+ 3812, 4400, 4401, 111, 3663, 112, 4751, 4752, 672, 5643,
+ 5583, 5742, 113, 114, 4755, 4756, 115, 116, 117, 118,
+ 119, 725, 1043, 1044, 727, 1163, 1164, 3415, 1125, 120,
+ 2532, 121, 3701, 122, 1234, 4977, 123, 759, 1179, 1180,
+ 2985, 125, 769, 3139, 771, 3105, 3106, 1969, 3882, 3883,
+ 4488, 126, 127, 3117, 3142, 128, 1483, 2667, 2668, 4668,
+ 2986, 673, 1219, 3023, 3438, 5343, 5094, 5344, 5804, 5968,
+ 5095, 5361, 3359, 4091, 130, 674, 1524, 2732, 1131, 1132,
+ 3030, 3816, 2637, 2638, 1682, 4441, 2640, 3818, 2641, 1457,
+ 2642, 1118, 1119, 3824, 3825, 3826, 3827, 4437, 4447, 4448,
+ 5258, 5499, 4444, 1831, 5252, 5253, 131, 1521, 2729, 132,
+ 133, 134, 1565, 968, 1141, 1142, 135, 686, 687, 136,
+ 5425, 137, 1121, 138, 5262, 139, 140, 791, 792, 141,
+ 142, 2746, 4191, 143, 1522, 144, 145, 3570, 3571, 4767,
+ 146, 147, 148, 2807, 2808, 149, 150, 151, 152, 153,
+ 5902, 5971, 5972, 5973, 4455, 5809, 154, 1211, 155, 156,
+ 157, 158, 196, 1009, 1010, 1011, 921, 2987, 5243, 160,
+ 161, 1479, 1480, 1481, 1482, 2662, 162, 163, 164, 3846,
+ 3847, 165, 166, 167, 168, 1815, 169, 170, 5398, 171,
+ 172, 1785, 173, 174, 1017, 1018, 1019, 1020, 1783, 3307,
+ 633, 845, 1373, 1379, 1422, 1423, 1424, 176, 737, 177,
+ 1214, 1048, 738, 1172, 179, 739, 2619, 3389, 4106, 4107,
+ 4108, 4111, 5078, 4645, 740, 3385, 182, 1976, 3126, 3129,
+ 3381, 741, 3395, 3396, 3397, 4115, 742, 5347, 5348, 5723,
+ 5941, 5942, 5995, 6031, 743, 761, 1111, 3041, 744, 1309,
+ 188, 189, 190, 901, 848, 849, 3312, 5304, 5529, 192,
+ 2496, 3290, 778, 1428, 889, 890, 891, 910, 2922, 2585,
+ 2586, 2610, 2611, 1437, 1438, 2598, 2602, 2603, 3372, 3365,
+ 2591, 4085, 5328, 5329, 5330, 5331, 5332, 5333, 4634, 2606,
+ 2607, 1440, 1441, 1442, 2615, 193, 2575, 3340, 3341, 3342,
+ 4062, 4063, 5841, 4077, 4073, 4619, 5055, 3343, 837, 1209,
+ 1449, 4627, 5843, 3344, 5044, 5045, 5308, 4081, 3351, 4102,
+ 3786, 3787, 3788, 3345, 5537, 5538, 5838, 5839, 5310, 5311,
+ 2643, 1402, 875, 1310, 876, 1415, 1311, 1389, 878, 1312,
+ 1313, 1314, 881, 1315, 1316, 1317, 884, 1381, 1318, 1319,
+ 1398, 1411, 1412, 1374, 5312, 1321, 1322, 1323, 3347, 1324,
+ 4565, 5017, 5003, 3217, 3218, 2519, 4561, 3985, 4555, 2491,
+ 3280, 5067, 5335, 5336, 4025, 4589, 5031, 5299, 5697, 5822,
+ 5823, 5923, 1325, 1326, 1327, 3277, 2485, 971, 1328, 4346,
+ 2487, 3208, 3186, 1685, 3187, 1979, 2000, 3158, 3174, 3175,
+ 3254, 3188, 3196, 3201, 3209, 3241, 1329, 3160, 3161, 3925,
+ 2002, 1330, 1015, 1688, 1016, 1417, 3236, 1338, 1339, 1332,
+ 1970, 838, 5051, 1167, 1768, 775, 1333, 1334, 1335, 1336,
+ 1558, 942, 1134, 1135, 892, 894, 895, 2579, 629, 621,
+ 944, 3538, 2488, 630, 623, 624, 1773, 2489
+};
+
+ /* 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[] =
+{
+ 622, 71, 618, 184, 186, 80, 83, 84, 85, 191,
+ 175, 86, 106, 124, 970, 129, 836, 159, 934, 178,
+ 900, 180, 1075, 181, 1557, 1684, 975, 183, 185, 980,
+ 191, 736, 969, 1443, 805, 1611, 1896, 2675, 763, 1414,
+ 1200, 1201, 1202, 911, 763, 888, 1206, 1331, 1021, 2770,
+ 1780, 1343, 1394, 1429, 2848, 1431, 1769, 1370, 3442, 2741,
+ 1774, 1112, 1664, 922, 2639, 1950, 2733, 1616, 3382, 1676,
+ 3383, 1997, 1220, 4036, 1357, 4038, 3776, 1462, 1385, 1386,
+ 1840, 3745, 1990, 2742, 3905, 3004, 1173, 1393, 3408, 3410,
+ 3828, 978, 3886, 1782, 840, 1369, 4159, 4252, 4180, 3132,
+ 4100, 1114, 1400, 4399, 4425, 1000, 4675, 2753, 4412, 770,
+ 1375, 4204, 2916, 4206, 1553, 2809, 2809, 4450, 1166, 2809,
+ 4636, 1813, 806, 3157, 3660, 1818, 1042, 4059, 4348, 627,
+ 1822, 2639, 4076, 3767, 4114, 4710, 678, 3226, 2724, 1575,
+ 1832, 4670, 913, 1145, 1592, 5048, 1149, 1157, 1021, 2878,
+ 2879, 914, 905, 1852, 2571, 232, 3071, 4872, 4932, 1174,
+ 4911, 4089, 5341, 851, 4921, 4735, 799, 3305, 1825, 5238,
+ 3293, 3628, 5117, 833, 3295, 5060, 5437, 5062, 5206, 3377,
+ 3374, 4113, 825, 1849, 1885, 4074, 4009, 4079, 4409, 5096,
+ 5489, 622, 1525, 5657, 4651, 1350, 1436, 993, 2724, 4920,
+ 622, 945, 5368, -1924, 5245, 4120, 1021, 2704, 622, 1439,
+ 945, 622, 2874, -1891, 3353, 2724, 745, -1904, -2344, -2420,
+ 1848, 684, 5476, 1610, 945, 637, 5237, 1520, -2458, 745,
+ -2483, 5093, 1642, -1929, 1005, 1114, 2885, 5008, 920, 2905,
+ 1878, -2312, 1669, 6027, 5390, -2521, 1181, 3735, 1492, -2277,
+ -2312, -2312, 2744, 3949, 3234, -2423, 1878, 3001, -1919, 684,
+ 1021, 3685, 1382, 1383, 5400, 5401, 745, 684, 1520, -2313,
+ 1878, 684, 1392, 1520, 1359, -1932, 3193, -2276, -2313, -2313,
+ 1369, 3234, 3764, 1185, 684, 3704, 2659, 3707, 3708, 684,
+ 3141, 1810, 3712, 3713, 3714, -2691, 3716, 3717, 3718, 5582,
+ 843, 3348, 1974, 932, -2691, -2691, 1229, 745, 1554, 1065,
+ 1878, 3903, 1878, 1878, 745, 5834, 2576, 3100, 5426, 5847,
+ 1021, 1128, 2047, 2744, 1101, 4160, -1932, 2509, 1805, 1554,
+ 684, 684, -141, 1347, 1006, 745, 4336, 1878, -141, 5076,
+ 3890, 3013, 2812, 2947, 3141, 2816, 684, 908, 1878, 187,
+ 3949, 2744, 3892, 2536, 1673, 1648, 3093, 3736, 5645, 5522,
+ 5807, 4903, 1493, 2530, -1744, 5916, 1196, 3014, 2809, 5569,
+ 187, 5617, 2687, 2025, -1745, 1147, 5799, 4095, 5234, 1862,
+ 4933, 5005, 2688, 1878, 4435, 1007, 2538, -2481, 6077, 1160,
+ 751, 751, 2970, 3328, 2501, 2589, 5545, 3356, 1649, 1218,
+ 751, 3894, 751, -2171, 631, 899, 2719, 1432, 3599, 1204,
+ -2171, 4275, 3487, 1774, 752, 752, 1676, 751, 3116, 2582,
+ 2744, 4104, 4852, 989, 752, 6028, 752, 751, 2513, 2979,
+ 5835, 2872, 1827, 2525, 2525, 1931, 1114, 3574, 1594, 5581,
+ 3002, 752, 2510, 1008, 5585, 5586, 4214, 1775, 2744, 4853,
+ 1776, 752, 2890, 990, 632, 1769, 970, 4105, 4215, 4271,
+ 4276, 2578, 5579, 1894, 5659, 2502, 4979, 4980, 4981, 2744,
+ 4983, 4984, 4985, 4986, 4987, 2681, 4278, 1595, 1385, 1386,
+ 1434, 3895, 3274, 5938, -2190, 5477, 2047, 3357, 3599, 3275,
+ 2744, -2190, 5006, 2590, 5939, 1239, 1982, 1205, 3949, 1393,
+ 5428, 2720, -2816, -2816, -2816, 3094, 970, 3488, 1408, 2744,
+ 2980, 2971, 3575, 5103, 953, 5894, 2574, 2536, 1360, 1400,
+ 2011, 954, 955, 956, 5618, 1879, 1069, 6015, 4396, 1435,
+ 5465, 1674, 1079, 4364, 6029, 3441, -1744, 3122, 3095, 864,
+ 912, 1879, 5808, 2689, 1092, 1197, -1745, 3737, 5787, 4096,
+ 2538, 3096, 5616, 5077, 1100, 1879, 3454, 3923, 684, 2920,
+ 3015, 2511, -430, 5770, 685, 2041, 3949, 3891, -1891, 1774,
+ 5523, 6029, 2040, 1650, 2711, 2047, 5729, 3945, 3101, 3893,
+ 5434, 4445, 2690, 5836, 2718, 4160, 3097, 2948, 5837, 2904,
+ 6025, 1829, 1361, 2499, 2974, 1879, 933, 1879, 1879, 1494,
+ 2494, 2851, 1066, 5957, 1225, 1934, 2536, 3686, 5322, 1994,
+ 1975, 4348, 3003, 3235, 1129, 1894, 2531, 1101, 1675, 1811,
+ 1231, 1239, 1879, 2958, 3949, 6030, 945, 844, 3950, 3951,
+ 3952, -2481, 1564, 1879, 2573, 2886, 3738, 4770, 1205, 2538,
+ 4014, 1052, 1053, 1205, 5798, 945, 1380, 191, 2552, 1114,
+ -1891, 945, 1013, 1382, 1383, 1106, 1014, 4328, 4329, 1049,
+ 3483, 1050, 1495, 945, 1811, 1051, 3123, 2843, 1879, 4487,
+ 2846, 2833, 638, 2815, 2836, 2837, 6003, 1651, 1239, 945,
+ 1392, 3949, 1880, 1811, 622, 3950, 3951, 3952, 3559, 888,
+ 2914, 2915, 5288, 622, 945, 5753, 900, -1924, 1887, 2853,
+ 622, 1102, 945, 622, 3322, -2481, 3153, 1384, 4881, 757,
+ 758, 1388, 1891, 1177, 2625, 888, 945, -2481, 5652, 6033,
+ 3348, -2344, -2420, 2866, 2867, 2788, 945, -1929, 2507, 2616,
+ 1395, -2458, 4680, -2483, 2913, -2312, 3964, 4928, 2709, 5082,
+ 191, 1013, 2617, -2277, 5896, 1014, 757, 758, -2521, 4929,
+ 1208, 1396, -1919, 2043, 1902, 1924, 4436, 2873, -2423, 4777,
+ -2171, 2497, 1178, -2313, 1183, 4781, 1187, 1444, 1114, 1397,
+ 2549, -2276, 1191, 3955, 1975, 5886, 1114, 1114, 3298, 1927,
+ 2832, 1395, 5956, 6049, 945, 4272, 1584, 757, 758, -2691,
+ 1894, 2577, 4087, 5915, 1555, 1556, 2554, 2555, 5940, 1013,
+ 2787, 2682, 1396, 1014, 2921, 2484, 4309, 622, 622, 1585,
+ 1904, 5429, 1208, 945, 2728, 1555, 1556, 3089, -141, -141,
+ 1399, 5859, 2891, 3073, -1891, 4487, 4348, 4697, 3700, 3954,
+ 3961, 3962, 3963, 3964, 5863, 5104, 4365, 970, 945, 3276,
+ 622, -2190, 4076, 1792, 4882, 2771, 4740, 1797, 4116, 1798,
+ 1103, 2892, 913, 2957, 4616, 1796, 3099, 4122, 4620, 4123,
+ 4397, 914, 4397, 888, 3953, 5564, 2935, 2728, 3114, 3455,
+ 4409, 1971, 3159, 3124, 5959, 4519, 2754, 4840, 5771, 4446,
+ 4500, 1194, 1981, 1830, 2728, 622, 3954, 1104, 2495, 634,
+ 1448, 1787, 2771, 3125, 4155, 4607, 1991, 4609, 945, 3955,
+ 4378, 3551, 5791, 4494, 71, 1499, 184, 186, 80, 83,
+ 84, 85, 191, 175, 86, 106, 124, 908, 129, 5918,
+ 159, 4390, 178, 2975, 180, 4660, 181, 4844, 1477, 1844,
+ 183, 185, 5797, 4266, 4267, 3474, 5655, 2796, 4268, 4883,
+ 4094, 4043, 3374, 5779, 6002, 5276, 1105, 5947, 1106, 5727,
+ 2046, 4843, 1107, 2047, 5732, 5733, 3955, 5512, 1346, 5790,
+ 1376, 2865, 1354, 4748, 2479, 2480, 2481, 2482, 2483, 2484,
+ 4801, 2683, 1845, -2816, -2816, -2816, 3959, 3960, 3961, 3962,
+ 3963, 3964, 5260, 684, 2536, 1404, 684, 187, 2703, 5556,
+ 3281, -2816, 959, 960, 961, 962, 963, 964, 965, 966,
+ 967, 5873, 915, 5160, 2965, 3259, 622, 622, 1770, 3591,
+ 1451, 5470, 2677, 3541, 945, 6058, 4639, 2538, 3475, 622,
+ 4870, 4857, -1891, 5694, 888, 622, 4884, 5161, 4451, 622,
+ -1891, 622, 1384, -1891, 1413, 888, -1891, 785, 5887, 3723,
+ 2678, 2578, 4862, 4768, 3959, 3960, 3961, 3962, 3963, 3964,
+ 3133, 888, 915, -2273, 5952, 2481, 2482, 2483, 2484, 4495,
+ 1405, 4675, 3348, 4323, 684, 3348, 2772, 5919, 3542, 4117,
+ 811, 4388, 4379, 2794, 5895, 2771, 2771, 4749, 4952, 5701,
+ 187, 899, 5373, 3832, 1239, 1774, 3999, 3949, 1484, 916,
+ 6021, 3950, 3951, 3952, 622, 3592, 622, 622, 2771, 3956,
+ 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 4570, 3232,
+ 3552, 3348, 4897, 2772, 4908, 4452, 2771, 6053, 2771, 3348,
+ 799, 1634, 35, 1406, 2684, 786, 1407, 3379, 917, 3688,
+ 619, -2816, 3282, 3017, 5513, 1811, -2816, 945, 1894, 916,
+ 4909, 1067, 2771, 1068, 650, 3260, 4802, 1846, 1584, 3593,
+ 3261, 773, 2818, 6064, 4156, 5557, 3956, 3957, 3958, 3959,
+ 3960, 3961, 3962, 3963, 3964, 622, 6085, 3543, 5695, 5965,
+ 3833, 1585, 5607, -2816, 5609, 812, 5464, 4858, 5613, 5614,
+ 635, 4345, 906, 4750, 4885, 2845, 191, 3262, 4640, 2755,
+ 5638, 4863, 1021, 2679, 1913, 3478, 5367, 2966, 945, 5696,
+ 3111, 3112, 1485, 2756, 652, 2757, 5874, 888, 3594, 945,
+ 1452, 2795, 5953, 4871, -597, 2685, 5236, 5651, 5666, 4676,
+ 5654, 5892, 5893, 945, 5230, 5637, 5261, 945, 2543, 5224,
+ 2773, 5255, 6001, 1239, 3380, 679, 3949, 1914, 1408, 622,
+ 3950, 3951, 3952, 3724, 6008, 3386, 3407, 5199, 907, 2771,
+ 912, 1847, 187, 4256, 4886, 5653, 4976, 4571, 3034, 2774,
+ 3154, 1870, 3156, 2771, 5088, 1013, 2758, 3502, 3163, 1014,
+ 622, 4442, 900, 4453, 3177, 3178, 3179, 2773, 6034, 3484,
+ 194, 3035, 1047, 2771, 2775, 3198, 5875, 787, 785, 5981,
+ 5162, 3213, 3954, 3412, 2041, 1566, 2772, 2772, 622, 622,
+ 622, 1936, 622, 1938, 1576, 1940, 2774, 1942, 6056, 1944,
+ 1945, 1946, 3048, 3334, 5876, 3595, 1948, 918, 3075, 2772,
+ -2816, 923, 622, 2769, 195, 1894, 908, 3050, 788, 789,
+ 935, 2775, 6068, 4910, 3263, 3544, 5625, 2772, 935, 2772,
+ 3118, 935, 3063, 4454, 3069, 3065, 945, 3098, 4230, 1409,
+ 2534, 3103, 2724, 3695, 945, 945, 3110, 3560, 5479, 3113,
+ 5562, 3082, 3955, 2772, 5929, 5200, 1486, 918, 1567, 5982,
+ 2769, 970, 1410, 5480, 1170, 663, 786, 664, 622, 2583,
+ 2584, 2669, 2588, 5904, 3834, 1466, 6004, 3184, 914, 914,
+ 2669, 914, 4041, 3474, 5081, 3102, 1581, 1005, 3835, 3108,
+ 3109, 5049, 5909, 668, 5389, 1487, 5052, 1770, 4182, 2670,
+ 3429, 5056, 1915, 5641, 5058, 2875, 2906, 1448, 1577, 1448,
+ -2816, 4530, 5649, 4531, 622, 790, 3119, 3387, 622, 622,
+ 1426, 2479, 2480, 2481, 2482, 2483, 2484, 3596, 3485, 1488,
+ 5812, 3954, 1005, 3036, 622, 3597, 3946, 3947, 3598, 5203,
+ 888, 3966, 3519, 2848, 1232, 5983, 3561, 1492, 4264, 2671,
+ 2773, 2773, 4231, 4969, -2815, 2047, 909, 3013, 2671, 5626,
+ 2772, 1467, 5687, 4973, 5678, 5904, 3475, 1395, 5483, 2672,
+ 3776, 777, 4274, 2773, 2772, 3654, 5484, 3152, 2672, 2774,
+ 2774, 3997, 3998, 3014, 5909, 40, 3430, 1006, 1396, -682,
+ 4942, 2773, 3413, 2773, 2772, 3414, 3234, 1489, 2893, 1404,
+ 3294, 3955, 2774, 3520, 2775, 2775, 1916, 888, 680, 3655,
+ 5679, 4908, 4183, 2663, 1468, 5720, 187, 2773, 4348, 2538,
+ 2774, 44, 2774, 1894, 2664, 1427, 5478, 2775, 787, 5469,
+ 1653, -2296, 1006, 1774, 5627, -164, 1654, 4909, 1007, 783,
+ 3325, 5481, 2665, 2769, 2769, 2775, 2774, 2775, 888, 4532,
+ 3052, -2815, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963,
+ 3964, 1493, 3817, 48, 3064, -164, 2769, 681, 5444, 788,
+ 789, 2775, 1578, 1477, 1405, 5904, 49, 3070, 1477, 4311,
+ 1999, 888, 3474, 1007, 2769, 5781, 2769, 1432, 784, 3167,
+ 5730, 5984, 684, 4699, 5909, 5578, 1008, 1542, 2869, 50,
+ 2008, 1505, -2815, 3326, 1769, 682, 3210, 683, 5993, 1613,
+ 2769, 1579, 1469, 4742, 5829, -2815, 4232, 3388, 3650, 2673,
+ 834, -2815, 5445, 2639, 2773, 5446, -2815, 2639, 2673, 810,
+ 5985, 5447, -2815, 4902, 5986, -2815, 2894, 1406, 2773, -2815,
+ 1407, 1008, 5485, 3478, 1655, 1580, 945, 2038, 1614, 1584,
+ 4855, 1356, 1477, 2774, 4345, 4233, 1477, 3651, 2773, 5448,
+ 1434, 622, 622, 622, 1542, 3475, 4834, 2774, -2815, 846,
+ -2815, 4838, 1585, 4753, 2658, 3658, 5218, 2592, 2775, 4349,
+ 4766, 4172, 3427, 5046, 5994, 4350, 5526, 2774, -2815, 4234,
+ 1176, 3652, 2775, 3051, 970, 970, 4899, 2666, 4351, 3168,
+ 3476, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964,
+ 902, 1360, 2775, 3061, 4349, 807, 5449, 2769, 1408, 4184,
+ 4185, 4856, 2593, 1644, 1894, 3428, 4352, 2678, 4353, 5450,
+ 5785, 2769, 5885, 2674, 4861, 5100, 3044, -2815, 4637, 3477,
+ -2815, 5451, 2674, 3091, 3211, 1830, -2815, 2592, 1217, 4186,
+ 5855, 2769, 1408, 5963, 5964, 4173, 5527, 2838, 1615, 3091,
+ 945, 4352, 1645, 3091, 4713, 5658, 1646, 912, 912, 3644,
+ 912, 3673, 888, 5644, 3169, 3645, 3656, 1654, 1453, 1474,
+ 3521, 1475, 3348, 888, 4354, 1361, 3348, 4754, 631, 5665,
+ 3583, 194, 2593, 1463, 4269, 1770, 1647, 1225, 4714, 888,
+ 4638, 3548, 1371, -2815, 923, 3313, 5101, 1394, 1656, 5399,
+ 3657, 970, 4355, 935, 903, 194, 1811, 1454, 945, 4354,
+ 935, 1619, 1239, 935, 5739, 3949, 945, 3572, 5955, 3950,
+ 3951, 3952, 1464, 2595, 945, 195, 5318, 3170, 904, 3378,
+ 3171, 3522, 3478, 1182, 1184, 1186, 5023, 1657, 1188, 1189,
+ 1190, 1455, 888, 3348, 2594, 3235, 4738, 5967, 1195, 195,
+ 1620, 622, 1421, 1409, 622, 6035, 1465, 888, 4270, 4345,
+ 888, 888, 3610, 5511, 622, 622, 920, 945, 945, 4356,
+ 4715, 1658, 2857, 3646, 4357, 1655, -2815, 4067, 3794, 622,
+ 3437, 945, 622, 2596, 1621, 2839, 4662, 5740, 3611, 2840,
+ 6000, 888, 888, 2595, 945, 945, 3614, 2761, 5275, 3617,
+ -2815, 2858, -2815, -2815, 5191, 1239, 1830, 919, 3949, 4357,
+ 4068, 3441, 3950, 3951, 3952, 5396, 3572, 4358, 5372, 1013,
+ 4739, 5452, 191, 1014, 5453, 4622, 4227, 3127, 3350, 5024,
+ 5789, 2762, 622, 4359, 3850, 4070, 622, 622, 5397, 5806,
+ -1068, 2907, 3172, 5813, 5788, -2815, 4683, -2815, -2815, 928,
+ 5610, 1927, 4358, 2596, 3653, 5611, 3500, 6037, 3776, 930,
+ 1927, 4683, 5404, 1052, 1053, 4228, 5205, 3138, 4359, 191,
+ 622, 4138, 622, 1432, 40, 5814, 4116, 622, 622, 1433,
+ 2908, 1049, 3733, 1050, 622, 622, 622, 1051, 2749, 622,
+ 2750, 622, 2639, 622, 622, 622, 622, 622, 622, 4229,
+ 5636, 622, 2639, 622, 622, 5229, 5612, 622, 5805, 5350,
+ 44, 5352, 730, 1597, 3689, 3690, 3691, 4486, 4171, 5500,
+ 3954, 888, 622, 622, 622, 5216, 4512, 5187, 3659, 951,
+ 4684, 4360, 15, 2848, 3993, 1598, 3083, 3647, 3084, 622,
+ 3085, 1770, 3086, 952, 3087, 4684, 1434, 3586, 3088, 1622,
+ 3609, 2751, 48, 3173, 3137, -1715, 4072, 5207, 1114, 1850,
+ 5188, -1715, 4487, 3584, 5669, 3585, 4360, 20, 4663, 5888,
+ 3780, 3781, 3782, 3783, 4664, 3785, 3648, 4473, 2517, 2976,
+ 1458, 4665, 1851, 2639, 1093, 650, 1599, 3844, 3634, 995,
+ 3955, 1093, 5558, 4685, 40, 1435, 4185, 4686, 1004, 3006,
+ 3813, 3695, 2809, 3348, 3348, 5208, 56, 4318, 4685, 751,
+ 3649, 5686, 4686, 3954, 1623, 1459, 4666, 5559, 2909, 1460,
+ 1094, 2518, 3679, 5396, 4002, 4726, 4003, 1094, -1715, 923,
+ 44, 2910, 1012, 752, 3310, 935, 1921, 2819, 4667, 935,
+ 4676, 935, 2822, 5073, 4605, 652, 5397, 5195, 1933, 5197,
+ 4004, 1776, 1055, 1461, 4676, 1095, 1624, 3877, 3311, 1922,
+ 2911, 5648, 4391, 1625, 1062, 5958, 1626, 5178, 1927, 5179,
+ 5180, 5181, 48, 3919, 2047, 1600, 1871, -1715, 2547, 3,
+ 4, 5615, 622, 3955, 4273, 49, 4526, 4527, 4528, 4529,
+ 1872, 1584, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540,
+ 4541, 4542, 5969, 1096, 1863, 2536, 1865, 1866, 50, 4119,
+ 1096, 40, 1352, 3920, 1585, 1057, 2896, 3591, 3921, 5853,
+ 2902, 2838, 622, 2802, 1601, 5504, 56, 1076, 1602, 4310,
+ 5517, 3625, -141, 3626, 5987, 2505, 3983, 3630, 2538, 3751,
+ 2826, -455, 3990, 2847, 730, 1089, 1873, 44, 1395, 5505,
+ 4580, 4581, 32, -596, 3245, 3246, 3247, 3248, 5988, 4803,
+ 2744, 4005, 187, 1935, 15, 1395, 1937, 4006, 1939, 1396,
+ 1941, 2745, 1943, 5119, 3806, 622, 1947, 1604, 4820, 2761,
+ 5124, 1097, 4804, 40, 5396, 4421, 1396, 1397, 1099, 48,
+ 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 20,
+ 1098, 4821, 49, 3592, 1399, 5857, 5858, 5397, 6075, 187,
+ 6078, 4676, 2744, 2762, 5719, 3768, 663, 3348, 664, 44,
+ 233, 1116, 1606, 2752, 3348, 50, 636, 1627, 1587, 3348,
+ 6089, 760, 3348, 4458, 728, 2780, 2046, 760, 4459, 2047,
+ 6057, 745, 2781, 56, 1826, 1607, 1874, 1661, 745, 4936,
+ 1665, 1127, 808, 2525, 4459, 3212, 40, 3593, 4092, 2839,
+ -455, 48, 1628, 2840, 745, 1609, 1629, 1120, 4126, 5046,
+ 2536, -2269, 5410, 1384, 49, 2572, 1013, -2816, 1199, 1071,
+ 1014, 1072, 3497, 3956, 3957, 3958, 3959, 3960, 3961, 3962,
+ 3963, 3964, 44, 1137, 4037, 3901, 3902, 50, -1095, 1983,
+ 1630, 4659, 1776, 2538, 1875, 1143, 1384, 1631, 2572, -1668,
+ 3752, 1384, -2270, 1413, 4007, 56, 3594, 1013, 5411, 1199,
+ 3219, 1014, -1668, 3222, 1574, 4008, 5945, 2533, -1668, 1591,
+ 1776, 1998, 1239, 56, 48, 3949, 3948, 3, 4, 3950,
+ 3951, 3952, 1013, 5412, -2277, 1136, 1014, 49, 3976, 1154,
+ 622, 622, 622, 622, 622, 622, 622, 622, 622, 5536,
+ 622, 5413, 1390, 1391, 3975, 5414, 3977, 3978, 1161, 622,
+ 50, 622, 4011, 3876, 1171, -1668, 2546, 5870, 1384, 2547,
+ 2572, 970, 631, 4000, 32, 650, 745, 5415, 56, 3464,
+ 5416, 3468, 3469, 2580, 3079, -1668, 1776, 2547, 1198, 3467,
+ 3090, 1876, 1199, 3091, 3092, 5417, 1207, 3091, -1062, 622,
+ 3039, 5406, 3040, 622, 1203, 40, 622, -2816, 622, 5996,
+ 1210, 622, -2816, 3595, 3306, 622, 4027, 1213, 4039, 4048,
+ 4049, 1215, 5670, 3245, 3246, 3247, 3248, 4121, 3130, 1216,
+ 3461, 3131, 3240, 4161, -1668, 652, 1770, 1218, 622, 3309,
+ 3346, 44, 1927, -1668, 3314, 3399, 1222, 2547, 2547, -2816,
+ 3494, 4345, 4028, 3495, 4029, 622, 1224, 3753, 3566, 4190,
+ 2046, 3567, 1223, 2047, 622, 622, 1225, 2048, 2049, 2050,
+ 3729, 3868, 1226, 3730, 3091, 4082, 1227, 3918, 4851, 3496,
+ 2547, 2918, 2919, 48, 2535, 5418, 1228, 731, 4030, 654,
+ 4031, 945, 3348, 3390, 2536, 4012, 49, 5937, 888, 4725,
+ 1774, 2537, 888, 888, 2543, 2573, 3754, 1239, 4676, 945,
+ 3949, 4904, 1233, 945, 3950, 3951, 3952, 945, 3927, 50,
+ 3933, 2547, 3934, 2547, 1235, 2547, 945, 2538, 1358, 4407,
+ 3954, 1355, 3431, 5566, 3434, 3596, 5419, 732, 4418, 5851,
+ 4419, 5571, 5572, 3597, 945, 1364, 3598, 622, 3482, 3935,
+ 3968, 3982, 2547, 2547, 2547, 3375, 3376, 4716, 622, 4723,
+ 888, 622, 5225, 622, 622, 3590, 888, 3987, 1362, 4046,
+ 3988, 5492, 2547, 4207, 4212, 4707, 4208, 4213, 945, 4238,
+ 1363, 4066, 4239, -1668, 4307, 4430, 1114, 4239, 4431, 924,
+ 926, 4164, 4433, 929, 4464, 4434, -2816, 4465, 945, 945,
+ 3955, 1368, 2639, 4845, 4698, 4846, 663, 888, 664, 5795,
+ 1372, 4551, 4562, 987, 4552, 4563, -1739, -1739, 4573, -1095,
+ 997, 2547, 4647, 4653, 1377, 4648, 4654, 1378, 4499, 1770,
+ 945, 667, 4658, 1770, 1826, 3414, 4394, 4905, -1743, -1743,
+ 3091, 2539, 2957, -1742, -1742, 3676, 2540, 3581, 6010, 1013,
+ 6011, -1668, 1418, 1014, 3348, 1380, 4067, 945, 6038, 1770,
+ 1401, 5551, 4741, 945, -1668, 4366, 1384, 4222, 2541, 2234,
+ -1668, 1387, 4970, 4993, 3348, 1975, 2547, 945, 5033, 5084,
+ 1388, 2547, 3414, 2542, 945, 5363, 5364, 945, 3348, 4068,
+ 1403, 4337, 5090, 945, 4130, 5091, -2816, 5097, 1597, 4996,
+ 3091, 4997, 1418, 5098, 4069, 4148, 3091, 2479, 2480, 2481,
+ 2482, 2483, 2484, 945, 4070, -2816, 1419, -1668, 6079, 945,
+ 1598, 4601, 1430, 4603, 2286, 4247, 945, 5824, 5825, 5099,
+ 4253, 5231, 3091, -1667, 5232, 1445, 5268, -1668, 2543, 4465,
+ 945, 2544, 4071, 1446, 3624, 1114, -1667, 5285, 5287, 1447,
+ 5286, 2547, -1667, 945, 5305, 4676, 1450, 5306, 1770, 3240,
+ 5315, 1497, 5321, 1927, 945, 4404, 1418, 1456, -1656, 5053,
+ 5229, 1599, 5323, 4066, 5439, 4404, 5459, 5440, 40, 3091,
+ 1413, 1466, 622, 622, 622, 3955, -1668, 4279, 622, 5493,
+ 1523, 4922, 5494, 3339, 5534, -1668, 5039, 5535, 5041, -1667,
+ 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 5540,
+ 4649, 4621, 1927, 4624, 44, 622, 888, 5543, 5554, -1667,
+ 4404, 5555, 5600, 5640, 1770, 5601, 2504, 5924, 5925, 3911,
+ 2545, 3913, 3914, 897, 898, 4072, 4915, 4719, 187, 2618,
+ 3242, 2621, 3243, 5667, 5795, 3348, 5555, 3817, 4067, 5690,
+ 4676, 5691, 3988, -2314, 2547, 4506, 48, 622, 5705, 3346,
+ 1600, 5706, 5709, 1526, 1528, 1927, 3244, 1467, -1667, 49,
+ 5301, 923, 5302, 5717, 923, 4678, 4679, -1667, 1529, 4682,
+ 3908, 4068, 1564, 1568, 935, 935, 3795, 5710, 5738, 888,
+ 2547, 3131, 50, 888, 5744, 1569, 4069, 3131, 4557, 935,
+ 1570, 1581, 935, 3348, 4384, 1583, 4070, 2578, 906, 1601,
+ 56, 1593, 2639, 1602, 5745, 5748, 5749, 3131, 2547, 2547,
+ 1468, -1716, 5750, 5054, 1596, 5751, 1618, -1716, 2847, 970,
+ 2475, 1635, 1652, 1597, 4071, -1668, 1636, 1662, 2476, 2477,
+ 2478, 2479, 2480, 2481, 2482, 2483, 2484, 5777, 1663, 1666,
+ 5778, 3938, 935, 1671, 3939, 1598, 935, 935, 1672, 1784,
+ 4676, 4652, 1604, 3327, 3329, 3330, 4127, 4128, 1676, 1786,
+ 3245, 3246, 3247, 3248, 907, 4490, 1788, 3249, 3250, 945,
+ 1793, 1799, 4367, 3251, 4369, 3956, 3957, 3958, 3959, 3960,
+ 3961, 3962, 3963, 3964, -1716, 888, 1774, 945, 1807, 5830,
+ 5844, 1804, 4404, 2547, 945, 1809, 1599, 1606, 622, 1814,
+ 888, 622, 4066, 622, 622, 888, 5846, -1667, 1469, 2547,
+ 1817, 1819, 1114, 622, 1114, 1811, 900, 4072, 622, 1828,
+ 1607, 4088, 1056, 2578, 1059, 5852, 1833, 1061, 3091, 4725,
+ 4398, 5867, 5890, -1716, 5868, 5891, 5936, 1834, -184, 5548,
+ 1609, 1086, 908, 1836, 622, 622, 622, 1090, 5898, 622,
+ 5966, 6006, 3348, 5555, 6007, 1837, 4439, 622, 622, 622,
+ 622, 6032, 6051, 900, 2547, 5706, 1839, 1841, 1770, 4523,
+ 1470, 1853, 6061, 622, 1770, 6062, 622, 4067, 622, 6067,
+ 6076, 6088, 4648, 2547, 6062, 1600, 1842, 1860, 1864, 622,
+ 622, 1868, 213, 622, 1877, 5116, 1114, 1882, 1883, 1884,
+ 1886, 1889, 4243, 4550, 1890, 1471, 4717, 1893, 1901, 1472,
+ 4068, 5279, 622, 35, 622, 3548, 622, 4736, 1905, 1907,
+ 3252, 1894, 1908, 1910, 4259, 4069, 1912, 4481, 29, 1918,
+ 1917, 3253, 1920, 1597, 1601, 4070, 622, 1923, 1602, 1926,
+ 1929, 3572, 3348, 1473, 1930, 1932, 1949, 1980, 1986, 1988,
+ 4592, 1995, 1989, 2847, 945, 1598, 1996, -1895, 762, -1902,
+ 2003, 2004, 900, 4071, 762, 2005, 4694, -1892, 2006, 2007,
+ 56, 2009, 2010, 4765, 2011, 1474, -1893, 1475, 2012, 2013,
+ 2014, 4177, 909, 2015, 2017, 4949, 2018, 1604, 2019, 622,
+ -1896, 3346, 622, 2020, 3346, -1894, 4033, 4034, 4035, 2021,
+ 2022, 2573, 2023, 2024, 622, 2025, 1599, 4718, 2027, 622,
+ 2028, 2490, 900, 2029, 2683, 2494, 2030, 2031, 2032, 2033,
+ 2034, 187, 2508, 40, 622, 5900, 29, 1476, 2492, 2520,
+ 2495, 2504, 1606, 2528, 2550, 2551, 2556, 2558, 622, 2559,
+ 3346, 2562, 2563, 3348, 2574, 2565, 622, 2566, 3346, 6036,
+ 4826, 4839, 2567, 2568, 2569, 1607, 4072, 1433, 888, 44,
+ 2581, 888, 2612, 888, 1435, 2624, 2626, 1530, 888, 2614,
+ 2627, 2629, 4719, 1531, 2648, 1609, 2628, 2645, 4377, 2647,
+ 4380, 2646, 2572, 945, 945, 2046, 2649, 2650, 2047, 622,
+ 2651, 2652, 2048, 2049, 2050, 1600, 2653, 2654, 4831, 2655,
+ 2661, 48, 2686, 2680, 2692, 2706, 2710, 2712, 2713, 2535,
+ 945, 2714, 2716, 945, 49, 2717, 888, 2730, 1533, 2536,
+ 2735, 40, 2734, 2747, 888, 2736, 2537, 2748, 2763, 2759,
+ 2766, 2767, 2765, 2768, 2769, 2777, 2779, 50, 1562, 1563,
+ 2782, 2778, 2783, 2784, 1601, 2789, 2803, 2790, 1602, 888,
+ 2793, 2799, 2538, 2800, 2813, 56, -1407, 44, -1407, 2814,
+ 2817, 2820, 2827, 2847, 2823, 2824, 2829, 4720, 2830, 2834,
+ 2841, 2844, 2842, 2849, 1534, 2850, 1542, 2855, 2859, 2861,
+ 2856, 1535, 1530, 2862, 1536, 1770, 1770, 1770, 1531, 3348,
+ 2863, 2864, 2870, 2876, 4088, 2871, 5519, 1604, 2887, 48,
+ 2868, 2038, 2888, 1532, 2895, 2877, 2924, 2932, 1789, 5251,
+ 945, 1537, 49, 2889, 2917, 4966, 2900, 2945, 2946, 888,
+ 2929, 888, 2931, 1801, 2933, 5533, 2934, 2938, 2952, 945,
+ 4498, 2939, 2940, 1533, 2942, 50, 2943, 2950, 2953, 2944,
+ 2960, 2961, 1606, 2964, 645, 1538, 2969, 2977, 2038, 2988,
+ 2992, 945, 2993, 5901, 1823, 1824, 1615, 2996, 2951, 3005,
+ 3012, 3032, 3021, 3008, 3011, 1607, 2539, 3042, 3025, 3054,
+ 3240, 2540, 3029, 3038, 3047, 3056, 3057, 3058, 3348, 1861,
+ 3059, 3072, 3115, 3104, 3348, 1609, 4021, 4721, 3159, 1534,
+ 4722, 3140, 3164, 2541, 2234, 3214, 1535, 3128, 3220, 1536,
+ 2047, 3233, 3278, 3279, 3239, 3258, 3302, 3224, 2542, 3256,
+ 1639, 3297, 3300, 3301, 1540, 888, 3303, 3316, 3315, 1898,
+ 1900, 3317, 3318, 3319, 1541, 3320, 1537, 3324, 1408, 3333,
+ 3332, 3350, 907, 1542, 3355, 3367, 3368, 945, 3369, 3370,
+ 3384, 2605, 622, 3391, 4053, 1543, 3392, 4058, 622, 2286,
+ 3403, 3404, 3406, 2578, 3435, 3423, 3432, 888, 619, 3437,
+ 1538, 3439, 3440, 2543, 3456, 3446, 2544, 3451, 3462, 3470,
+ 3491, 3457, 3459, 1352, 3486, 3503, 3493, 3510, 3523, 1356,
+ 3528, 3529, 3549, 3556, 1770, 888, 3555, 1545, 1546, 3557,
+ 945, 3562, 945, 3339, 3348, 3565, 2769, 899, 3583, 3573,
+ 3582, 3339, 3604, 3620, 1830, 945, 3580, 945, 5212, 5018,
+ 3662, 3603, 3675, 3696, 3683, 3687, 3703, 3684, 1547, 3709,
+ 3710, 908, 3715, 3711, 3720, 1539, 3742, 622, 3731, 1540,
+ 3743, 3757, 3761, 3759, 3763, 3771, 3778, 3784, 5064, 1541,
+ 3789, 4428, 3790, 3791, 3792, 4915, 3797, 3793, 1542, 3804,
+ 5123, 3800, 3805, 888, 3808, 2545, 3809, 943, 3814, 3829,
+ 1543, 3830, 3831, 3839, 3802, 3840, 979, 3841, 3843, 4424,
+ 3845, 3859, 3862, 3861, 945, 888, 5004, 3867, 923, 3865,
+ 1001, 935, 3870, 935, 935, 3885, 1548, 3875, 3871, 3880,
+ 1927, 3872, 3873, 3874, 3141, 3887, 3889, 888, 3896, 1544,
+ 1924, 3904, 1545, 1546, 3906, 4461, 3899, 3912, 3932, -2163,
+ 3981, 1891, 4001, 3984, 3996, 4024, 945, 4044, 2046, 3879,
+ 1208, 2047, 4010, 5568, 4019, -2816, -2816, -2816, 4961, 4962,
+ 4963, 4964, 4965, 1547, 3888, 945, 4586, 1205, 5071, 3929,
+ 4056, 3688, 3930, 4084, 4080, 3931, 4090, 3936, 4103, 4099,
+ 4124, 3937, 2536, 3941, 3943, 2475, 3945, 945, 3944, 2537,
+ 945, 3967, 5185, 2476, 2477, 2478, 2479, 2480, 2481, 2482,
+ 2483, 2484, 3972, 3973, 2547, 3980, 4097, 622, 3995, 3940,
+ 888, 4020, 4022, 4023, 4065, 2538, 622, 4026, 4131, 4101,
+ 4110, 4140, 4045, 4057, 622, 4118, 622, 4129, 4132, 622,
+ 4143, 1548, 4050, 888, 622, 622, 622, 622, 4051, 4168,
+ 622, 622, 622, 622, 622, 622, 622, 622, 622, 622,
+ 4169, 4170, 4175, 622, 622, 622, 4145, 4176, 888, 4157,
+ 4158, 4052, 4174, 622, 4136, 4137, 4141, 4177, 622, 4192,
+ 1770, 4193, 622, 4181, 900, 4203, 4195, 4201, 4202, 4211,
+ 622, 4217, 4226, 622, 4240, 622, 4242, 4244, 4246, 4250,
+ 4248, 4254, 4255, 4258, 5068, 622, 4260, 4261, 622, 622,
+ 4262, 4263, 4280, 622, 622, 4265, 4281, 4088, 4282, 4283,
+ 622, 4284, 762, 4285, 762, 4286, 762, 4287, 4296, 4290,
+ 4288, 4289, 762, 1192, 1193, 4291, 4292, 2725, 4293, 2539,
+ 4294, 4295, 4303, 4088, 2540, 4877, 4878, 4299, 1052, 1053,
+ 4301, 622, 2885, 4315, 191, 4322, 4327, 4305, 4333, 622,
+ 4316, 3346, 2764, 622, 4306, 3346, 1049, 4317, 1050, 4312,
+ 4319, 4335, 1051, 4370, 4375, 4382, 4376, 4594, 4595, 4596,
+ 4597, 2542, 4385, 4386, 4389, 4393, 4404, 4403, 4406, 4413,
+ 5930, 5931, 4416, 4422, 4423, 622, 4427, 4426, 4443, 4457,
+ 4467, 4429, 5251, 4460, 4475, 4476, 4477, 4478, 4469, 4479,
+ 4480, 4489, 622, 4492, 4491, 4493, 4502, 619, 888, 4503,
+ 4515, 4482, 4504, 4463, 4505, 4507, 4508, 4509, 4510, 4511,
+ 622, 3949, 3346, 4564, 5196, 4575, 2543, -2162, 4576, 2854,
+ 4618, 1998, 4587, 4617, 4625, 4626, 4631, 4632, 4644, 4606,
+ 4633, 945, 4646, 4641, 187, 4650, 4661, 4547, 4524, 4548,
+ 4549, 4593, 4556, 4578, 4602, 4669, 4690, 4691, 4692, 2880,
+ 2881, 2882, 2883, 4604, 4613, 4700, 4693, 4610, 4701, 4615,
+ 4703, 4706, 4711, 4630, 4712, 4635, 4704, 5338, 4728, 4743,
+ 187, 4731, 5163, 5164, 4744, 5166, 4745, 4746, 4747, 4760,
+ 4757, 4758, 1770, 4759, 4761, 4762, 4771, 1770, 888, 1770,
+ 2848, 4773, 4780, 4774, 4791, 4792, 4797, 4800, 4816, 4817,
+ 2046, 4819, 4718, 2047, 5409, 4832, 4848, 762, 2545, 4822,
+ 4833, 4835, 4088, 1770, 888, 4836, 4837, 4859, 4869, 4874,
+ 4895, 1070, 4888, 4907, 4917, 4894, 4880, 1070, 4934, 4943,
+ 4900, 4923, 4924, 4959, 2536, 4901, 4940, 4941, 4945, 1070,
+ 4944, -2816, 4947, 4948, 4967, 4953, 3194, 4974, 923, 4972,
+ 4782, 935, 4982, 935, 935, 3215, 4995, 5007, 5010, 945,
+ -2164, 4790, 945, 5057, 5011, 5069, 5070, 2538, 5066, 4989,
+ 5083, 4990, 5085, 5001, 5012, 5029, 762, 5043, 5594, 5016,
+ 5596, 5047, 5050, 5080, 5061, 5087, 5092, 5093, 5102, 5120,
+ 5121, 5122, 5132, 5145, 5148, 2936, 2937, 5125, 5154, 5131,
+ 5133, 5152, 5167, 5168, 5186, 5177, 5176, 5189, 2475, 5193,
+ 5158, 2954, 5194, 5159, 5175, 5201, -2816, -2816, -2816, 2479,
+ 2480, 2481, 2482, 2483, 2484, 5182, 622, 5204, 5213, 5209,
+ 5210, 5217, 5211, 5219, 5228, 5223, 4579, 5235, 5233, 5239,
+ 5240, 5244, 5242, 5246, 5247, 2997, 2998, 2999, 3000, 2038,
+ 5114, 5248, 945, 945, 5257, 5263, 888, 3091, 5265, 5272,
+ 5273, 5280, 5284, 945, 5290, 5291, 5292, 5293, 5298, 5303,
+ 622, 622, 3346, 3346, 187, 5307, 5700, 5313, 5339, 5342,
+ 945, -2816, 5345, 5351, 5362, 5354, -2816, 5366, 5369, 5370,
+ 5371, 5376, 5424, 5402, 3339, 5317, 4858, 5430, 3339, 5525,
+ 5320, 5432, 2046, 888, 5382, 2047, 4926, 5365, 888, 622,
+ 622, 5442, 5443, 5726, 5383, 5387, 5393, 5462, 970, 5604,
+ 622, 5463, 5314, -2816, 5456, 3074, 5394, 5395, 5435, 5438,
+ 5467, 3078, 5474, 5314, 5490, 5495, 2536, 5472, 5156, 619,
+ 5501, 5358, 619, -2816, 5509, 5524, 5528, 5550, 5502, 5503,
+ 5552, 5532, 5544, 5546, 5346, 5565, 5575, 5574, 5588, 5761,
+ 5763, 945, 5606, 5548, 5549, 5567, 5576, 5582, 5619, 2538,
+ 5621, 5624, 5634, 5632, 5642, 5647, 5656, 5660, 2543, 5628,
+ 5661, 5663, 5662, 5664, 5673, 5681, 5674, 622, 619, 5685,
+ 5675, 5676, 5379, 5683, 5698, 5699, 619, 5692, 622, 5721,
+ 5702, 5712, 4588, 5722, 5724, 5725, 5741, 2046, 5737, 5760,
+ 2047, 5766, 5769, 5776, 2048, 2049, 2050, 5772, 5774, 5783,
+ 5780, 5784, 5802, 5803, 5800, 2046, 622, 5801, 2047, 622,
+ 5521, 2535, 2048, 2049, 2050, 5214, 5810, 622, 622, 5811,
+ 888, 2536, 5817, 5816, 622, 622, 5827, 5828, 2537, 622,
+ 5833, 5840, 5849, 622, 5842, 5864, 622, 622, 5704, 2536,
+ 5862, 622, 5871, 5770, 5542, 5826, 2537, 622, 5854, 5771,
+ -2816, 2040, 5879, 5880, 2538, 5881, 5897, 5899, 5917, 5922,
+ 5935, 5932, 5943, -2816, 622, 5949, 3346, 5951, -2816, 5980,
+ 5989, 622, 2538, 3346, 5976, 5991, 622, 5970, 3346, 622,
+ 622, 3346, 6016, 5992, 6013, 6017, 3237, 622, 5869, 6026,
+ 5977, 762, 6012, 5755, 6014, 6039, 762, 762, 622, 6050,
+ 4116, 6052, 6059, 5409, 6060, -2816, 622, 6041, 6042, 6054,
+ 5072, 5074, 6070, 6071, 6080, 5497, 6083, 5589, 5590, 6065,
+ 6074, 1420, 3765, 6029, 2553, 1527, 622, 5086, 2901, 6087,
+ 2527, 4042, 5767, 2560, 3635, 2561, 4187, 1633, 1632, 2564,
+ 3554, 4734, 4727, 5865, 888, 3674, 2570, 3722, 4332, 5421,
+ -2816, 5754, 5950, 4876, 5473, 5926, 5927, 945, 4724, 5192,
+ 2543, 2479, 2480, 2481, 2482, 2483, 2484, 5455, 2539, 5541,
+ 4134, 3869, 5856, 2540, 5356, 5946, 5775, 5773, 5878, 5961,
+ 5221, 4139, 888, 4898, 4906, 4927, 2539, 5118, 5735, 4868,
+ 3740, 2540, 4732, 4205, 4392, 2541, 2234, 5126, 3741, 945,
+ 4893, 5215, 5461, 5677, 888, 3339, 1617, 4432, 6009, 6086,
+ 2542, 945, 6072, 2541, 2234, 5436, 4951, 4338, 5883, 4935,
+ 5381, 2968, 5584, 5743, 5384, 726, 1045, 622, 2542, 779,
+ 1972, 187, 4483, 5561, 622, 4968, 3769, 762, 6005, 3409,
+ 3031, 4937, 4125, 3043, 3027, 945, 4449, 762, 5693, 5498,
+ 5671, 2286, -2816, 3060, 5598, 1115, 1155, 4302, 3135, 5374,
+ 3136, 4249, 3672, 4763, 5903, 2543, 6040, 4955, 5711, 2286,
+ 5713, 5593, 3699, 4954, 2926, 1365, 888, 3354, 6055, 4655,
+ 5560, 5850, 5075, 2543, 2548, 1114, 813, 814, 2500, 4086,
+ 3364, 1192, 1193, 4098, 5845, 5714, 2609, 3366, 4060, 2613,
+ 2608, 4608, 622, 4623, 5731, 2660, 5319, 4054, 5531, 5530,
+ 4055, 4656, 6023, 5832, 5933, 5703, 5520, 2557, 622, 4558,
+ 5715, 4017, 5716, 1770, 3283, 3924, 3200, 3698, 4015, 3292,
+ 3352, 0, 0, 0, 762, 1416, 0, 762, 762, 0,
+ 0, 0, 945, 0, 0, 0, 0, 0, 0, 622,
+ 0, 3346, -2816, 0, 0, 970, 0, 2545, 5755, 0,
+ 0, 0, 0, 2479, 2480, 2481, 2482, 2483, 2484, 0,
+ 0, 5226, 0, 0, 0, 2545, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 4088, 888, 5728, 888, 0, 0,
+ 0, 1888, 0, 0, 0, 0, 970, 1892, 0, 0,
+ 0, 0, 0, 0, 5378, 0, 0, 1903, 0, 0,
+ 0, 1906, 0, 0, 5380, 1909, 3339, 1911, 945, 0,
+ 0, 3339, 0, 1919, 3339, 0, 0, 0, 0, 1925,
+ 0, 0, 1928, 0, 0, 0, 622, 0, 0, 622,
+ 0, 0, 622, 622, 622, 187, 187, 2475, 0, 5423,
+ 0, 0, 0, 0, 0, 2476, 2477, 2478, 2479, 2480,
+ 2481, 2482, 2483, 2484, 0, 2475, 0, 622, 622, 1114,
+ 0, 622, 0, 2476, 2477, 2478, 2479, 2480, 2481, 2482,
+ 2483, 2484, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 622, 0, 0, 0, 0, 0, 622, 0, 0,
+ 0, 622, 0, 3346, 0, 0, 6048, 888, 622, 3237,
+ 0, 0, 6063, 0, 0, 0, 0, 0, 0, 762,
+ 0, 622, 0, 3346, 622, 0, 0, 0, 0, 945,
+ 0, 945, 0, 0, 0, 622, 0, 3346, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 6048, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3819, 0, 6048, 0, 620, 888, 945, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 622, 0, 0, 0,
+ 0, 772, 0, 774, 1500, 0, 0, 780, 0, 0,
+ 0, 0, 794, 802, 772, 0, 809, 0, 0, 802,
+ 802, 0, 839, 0, 842, 0, 0, 5593, 0, 0,
+ 0, 896, 896, 896, 0, 0, 1770, 0, 0, 1501,
+ 0, 622, 0, 6073, 0, 0, 0, 0, 0, 619,
+ 0, 5340, 0, 619, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -2594, 5997, 0, 0, 0, 5460, 0, 5488,
+ 0, 0, 0, 0, 3472, 0, 5998, 5999, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1502, 0, 622, 0, 3346, 888, 0, 0, 5486, 0,
+ 0, 0, 2899, 0, 0, 0, 187, 0, 0, 71,
+ 619, 184, 186, 80, 83, 84, 85, 191, 175, 86,
+ 106, 124, 0, 129, 622, 159, 1503, 178, 622, 180,
+ 622, 181, 3165, 3166, 1114, 183, 185, 0, 0, 3180,
+ 3181, 900, 0, 0, 0, 0, 0, 0, 0, 0,
+ 622, 0, 3346, 622, 0, 0, 0, 3820, 0, -2594,
+ 0, 0, 1504, 0, 622, 620, 925, 925, 6066, 3225,
+ 925, 622, 0, 0, 936, 0, 839, 0, 0, 972,
+ 0, 0, 936, 0, 0, 936, 0, 0, 839, 0,
+ 925, 0, 0, 839, 0, 0, 0, 925, 0, 839,
+ 0, 0, 0, 0, 1506, 0, 0, 0, 0, 0,
+ -2594, 0, 3612, 0, 0, 3615, 0, 0, 0, 0,
+ 970, 888, 0, -2594, 0, 0, 888, 888, 0, -2594,
+ 0, 622, 0, 0, -2594, 0, 1508, 622, 622, 945,
+ -2594, 0, 0, -2594, 0, 0, 0, -2594, 0, 0,
+ 0, 0, 0, 945, 0, 0, 3339, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 622, 2978, 0, -2594, 0, 35, 0,
+ 0, 622, 2995, 3821, 1770, 0, 3194, 3194, 0, 0,
+ 2899, 3194, 1511, 0, 0, 0, -2594, 0, 0, 0,
+ 1512, 0, 0, 3706, 0, 0, 0, 0, 2727, 622,
+ 0, 3346, 0, 0, 0, 0, 3719, 0, 0, 0,
+ 1514, 5650, 0, 0, 3728, 0, 0, 0, 0, 1515,
+ 0, 3194, 3194, 1516, 3053, 0, 0, 0, 888, 888,
+ 0, 0, 0, 0, 0, -2594, 0, 0, -2594, 0,
+ 0, 0, 3822, 0, -2594, 0, 0, 0, 0, 0,
+ 0, 2899, 622, 3772, 0, 0, 0, 0, 622, 0,
+ 619, 619, 0, 0, 0, 0, 0, 0, 0, 622,
+ 1770, 0, 0, 888, 3796, 0, 0, 1517, 622, 0,
+ 622, 3823, 622, 0, 2046, 0, 0, 2047, 0, 622,
+ 5861, 3346, 0, 0, 0, 0, 5718, 0, 0, 0,
+ 0, -2594, 187, 0, 0, 0, 0, 0, 0, 0,
+ 622, 0, 0, 0, 0, 0, 0, 3851, 2536, 3853,
+ 0, 0, 0, 0, 0, -2816, 0, 0, 0, 0,
+ 0, 0, 0, 187, 0, 1770, 0, 945, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 187, 0, 0,
+ 0, 2538, 0, 0, 0, 0, 777, 0, 0, 0,
+ 0, 0, 5910, 5911, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -2594, 0, 0, 0, 0, 0,
+ 622, 0, 3346, 0, 0, 0, 0, 1500, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3909, 0, -2594, 0,
+ -2594, -2594, 0, 3916, 0, 0, 2038, 0, 0, 0,
+ 4582, 0, 0, 0, 0, 0, 0, 0, 622, 622,
+ 622, 0, 1501, 0, 0, 0, 622, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 622, 0, 0, 0,
+ -2594, 0, 3055, -2594, -2594, -2594, 622, 0, 0, 945,
+ 3062, 0, 0, 0, 0, -2816, 0, 0, 0, 0,
+ -2816, 0, 622, 0, 619, 0, 0, 0, 0, 0,
+ 0, 619, 0, 0, 0, 945, 619, 0, 0, 619,
+ 5059, 1024, 0, 1502, 0, 0, 0, 839, 0, 925,
+ 0, 925, 0, 0, 925, 0, 0, -2816, 0, 0,
+ 0, 972, 0, 0, 1500, 0, 1082, 0, 925, 0,
+ 0, 0, 0, 0, 925, 0, 622, 0, 5884, 1503,
+ 0, 0, 0, 0, 0, 0, 622, 0, 3346, 0,
+ 0, 0, 0, 0, 622, 622, 0, 0, 620, 1501,
+ 622, 0, 622, 5908, 3339, 0, 187, 936, 191, 0,
+ 0, 972, 2543, 0, 936, 1504, 0, 936, 622, 622,
+ 5905, 0, 5906, 0, 0, 0, 5907, 0, 3321, 3323,
+ 0, 0, 0, 925, 3331, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 945, 1505, 0, 5975, 0, 1506, 0, 0,
+ 1502, 0, 0, 0, 0, 0, 3373, 3373, 0, 0,
+ 0, 0, 6081, 6082, 0, 622, 0, 3346, 0, 0,
+ 0, 622, 0, 3346, 0, 0, 839, 0, 1507, 1508,
+ 0, 187, 0, 0, 0, 5908, 1503, 0, 0, 622,
+ 191, 1221, 0, 0, -2816, 0, 0, 0, 0, 0,
+ 0, 0, 5905, 0, 5906, 0, 0, 0, 5907, 622,
+ 0, 1337, 1337, 0, 839, 802, 0, 1509, 762, 802,
+ 0, 35, 1504, 622, 0, 0, 1510, 0, 0, 0,
+ 0, 0, 0, 839, 0, 1511, 0, 0, 839, 0,
+ 0, 0, 0, 1512, 1337, 0, 0, 0, 0, 0,
+ 0, 1513, 0, 0, 622, 0, 0, 0, 0, 0,
+ 0, 622, 0, 1514, 1506, 0, 4150, 4151, 5198, 0,
+ 0, 0, 1515, 0, 0, 0, 1516, 0, 0, 0,
+ 0, 622, 0, 3346, 0, 0, 0, 0, 1770, 1337,
+ 0, 0, 0, 0, -2816, 5908, 1508, 0, 0, 619,
+ 191, 0, 3506, 839, 0, 2479, 2480, 2481, 2482, 2483,
+ 2484, 0, 5905, 0, 5906, 0, 839, 0, 5907, 0,
+ 0, 0, 0, 622, 622, 0, 0, 0, 622, 0,
+ 1517, 839, 622, 0, 0, 0, 1770, 0, 35, 0,
+ 2726, 0, 0, 1510, 622, 622, 0, 0, 0, 0,
+ 839, 0, 1511, 0, 1770, 925, 925, 0, 0, 0,
+ 1512, 0, 0, 0, 0, 0, 0, 0, 2727, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1514, 0, 0, 0, 0, 0, 0, 802, 802, 1515,
+ 0, 762, 0, 1516, 0, 0, 0, 0, 0, 762,
+ 0, 0, 762, 0, 0, 0, 0, 0, 0, 0,
+ 1337, 1337, 0, 187, 762, 0, 0, 0, 1530, 0,
+ 0, 0, 0, 620, 1531, 925, 0, 0, 0, 936,
+ 0, 0, 972, 936, 0, 936, 0, 0, 187, 0,
+ 925, 0, 0, 3819, 0, 0, 0, 1517, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 619, 0, 0, 839, 0, 0, 1500, 0, 1533,
+ 0, 925, 925, 0, 0, 0, 3194, 3194, 3194, 3194,
+ 0, 619, 3194, 3194, 3194, 3194, 3194, 3194, 3194, 3194,
+ 3194, 3194, 839, 839, 839, 619, 925, 3400, 620, 0,
+ 620, 620, 1501, 0, 0, 0, 4321, 0, 0, 0,
+ 4554, 0, 0, 0, 2046, 3416, 0, 2047, 0, 3419,
+ 0, 0, 0, 3422, 0, 1534, 0, 0, 0, 0,
+ 5974, 0, 1535, 0, 925, 1536, 925, 925, 0, 0,
+ 3194, 3194, 0, 0, 0, 0, 935, 0, 2536, 0,
+ 3447, 0, 0, 0, 0, -2816, 0, 0, 0, 0,
+ 0, 0, 1537, 1502, 0, 0, 0, 0, 0, 1337,
+ 0, 0, 0, 0, 1530, 0, 0, 0, 0, 0,
+ 1531, 2538, -2596, 4612, 3489, 0, 0, 0, 0, 0,
+ 0, 935, 0, 0, 0, 1952, 1538, 1952, 0, 1503,
+ 0, 839, 0, 772, 1070, 0, 0, 0, 0, 1500,
+ 0, 0, 0, 0, 0, 0, 0, 839, 0, 0,
+ 0, 0, 0, 1987, 0, 1533, 839, 0, 3304, 1993,
+ 3820, 0, 0, 0, 0, 1504, 3539, 0, 0, 0,
+ 187, 0, 0, 1337, 1501, 0, 0, 0, 0, 0,
+ 4583, 0, 619, 0, 0, 0, 0, 0, 0, 0,
+ 762, 1639, 0, 3568, 0, 1540, 4474, 0, 0, 3577,
+ 0, 0, 0, 0, 1337, 1541, 0, 1506, 0, -2596,
+ 0, 1534, 0, 3587, 1542, 0, 0, 0, 1535, 0,
+ 1070, 1536, 0, 3600, 0, -2816, 1543, 0, 0, 3605,
+ -2816, 0, 1337, 1337, 1337, 1502, 1337, 0, 0, 1508,
+ 619, 0, 0, 0, 0, 0, 0, 0, 1537, 3618,
+ 0, 0, 0, 0, 0, 3621, 1337, 0, 0, 0,
+ -2596, 0, 3627, 0, 0, 1667, 0, -2816, 1545, 1546,
+ 0, 1503, 0, -2596, 0, 0, 3642, 0, 0, -2596,
+ 0, 35, 1538, 0, -2596, 0, 1510, 0, 0, 3667,
+ -2596, 0, 0, -2596, 839, 1511, 0, -2596, 0, 1668,
+ 1070, 0, 0, 1512, 0, 0, 0, 1504, 0, 0,
+ 0, 2727, 1337, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2543, 1514, 0, 0, -2596, 0, 0, 0,
+ 0, 0, 1515, 0, 0, 0, 1516, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1505, -2596, 1639, 0, 1506,
+ 0, 1540, 0, 0, 0, 3822, 0, 0, 1337, 0,
+ 0, 1541, 1337, 1337, 0, 0, 0, 1548, 0, 0,
+ 1542, 5633, 0, 839, 839, 839, 2623, 0, 1337, 0,
+ 1571, 1508, 1543, 0, 4040, 0, 762, 0, 0, 0,
+ 1517, 0, 0, 0, 3823, -2596, 0, 0, -2596, 619,
+ 0, 802, 4047, 0, -2596, 0, 0, 0, 3194, 0,
+ 0, 0, 0, 0, -2816, 0, 0, 0, 0, 1572,
+ 0, 2707, 0, 35, 1545, 1546, 0, 0, 1510, 0,
+ 0, 0, 0, 0, 0, 0, 2715, 1511, 0, 0,
+ 0, 802, 0, 0, 925, 1512, 0, 0, 4093, 4093,
+ 0, 0, 0, 1573, 0, 2708, 0, 839, 2743, 0,
+ 0, -2596, 0, 0, 0, 1514, 839, 0, 0, 925,
+ 0, 0, 0, 0, 1515, 0, 0, 0, 1516, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 619,
+ 0, 0, 0, 0, 0, 0, 972, 0, 839, 0,
+ 0, 802, 0, 0, 2811, 2811, 0, 0, 2811, 0,
+ 0, 0, 0, 0, -2816, 3884, 777, 0, 802, 0,
+ 0, 839, 0, 1548, 839, 2479, 2480, 2481, 2482, 2483,
+ 2484, 0, 1517, 3898, 0, 0, 0, 0, 0, 0,
+ 3884, 0, 0, 0, -2596, 0, 925, 874, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 839, 0, 0, 0, -2596, 0,
+ -2596, -2596, 0, 0, 0, 0, 925, 925, 925, 925,
+ 839, 0, 0, 0, 2046, 0, -2612, 2047, 0, 0,
+ 619, 2048, 2049, 2050, 839, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1337, 1337, 1337, 2535, 0,
+ -2596, 5009, 0, -2596, -2596, -2596, 0, 0, 2536, 0,
+ 0, 0, 0, 0, 0, 2537, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2538, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 4847, 0, 3842,
+ 0, 0, 935, 0, 3848, 0, 3849, 0, 0, 0,
+ 0, 4849, 0, -2612, 0, 0, 3855, 0, 0, 3856,
+ 0, 3857, 3858, 0, 0, 3860, 0, 0, 0, 3863,
+ 0, 3864, 0, 839, 3866, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 839, 0, 0, 0, 0, 0,
+ 0, 0, 925, 925, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -2612, 0, 619, 0, 925, 0,
+ 0, 0, 0, 0, 935, 935, 0, -2612, 0, 0,
+ 0, 0, 0, -2612, 0, 0, 839, 2811, -2612, 0,
+ 0, 0, 0, 0, -2612, 2539, 0, -2612, 3907, 0,
+ 2540, -2612, 925, 925, 925, 925, 0, 0, 0, 0,
+ 0, 839, 0, 0, 0, 0, 0, 0, 839, 0,
+ 0, 0, 2541, 2234, 0, 0, 0, 0, 0, 0,
+ -2612, 0, 0, 0, 0, 620, 0, 2542, 620, 0,
+ 0, 0, 0, 0, 0, 0, 0, 762, 936, 936,
+ -2612, 0, 0, 0, 0, 619, 0, 0, 0, 972,
+ 972, 619, 0, 936, 0, 0, 936, 0, 0, 0,
+ 4381, 0, 0, 0, 0, 0, 0, 0, 2286, 5979,
+ 0, 925, 925, 0, 0, 0, 4146, 0, 925, 0,
+ 839, 0, 2543, 0, 0, 2544, 0, 0, 0, -2612,
+ 0, 0, -2612, 0, 0, 0, 0, 1952, -2612, 0,
+ 0, 0, 0, 0, 925, 0, 936, 0, 0, 3107,
+ 936, 936, 0, 839, 839, 0, 925, 0, 0, 0,
+ 0, 0, 0, 839, 0, 0, 0, 0, 0, 0,
+ 839, 0, 0, 0, 0, 0, 772, 772, 0, 0,
+ 3143, 6020, 0, 0, 1337, 0, 1337, 0, 0, 1500,
+ 0, 1337, 1337, 0, 0, -2612, 0, 0, 1337, 1337,
+ 1337, 619, 0, 1337, 0, 1337, 972, 1337, 1337, 1337,
+ 1337, 1337, 1337, 0, 2545, 1337, 4218, 1337, 1337, 0,
+ 0, 1337, 0, 0, 1501, 0, 0, 0, 0, 0,
+ 0, 0, 2046, 0, 0, 2047, 1337, 1337, 1337, 2048,
+ 2049, 2050, 0, 0, 6020, 0, 0, 0, 0, 0,
+ 777, 0, 6069, 1337, 0, 0, 2535, 0, 762, 0,
+ 3356, 0, 0, 0, 935, 935, 2536, 2046, 0, 0,
+ 2047, 0, 0, 2537, 2048, 2049, 2050, 0, -2612, 0,
+ 0, 0, 0, 0, 0, 1502, 0, 0, 0, 0,
+ 0, 2535, 0, 925, 0, 0, 0, 0, 0, 2538,
+ 0, 2536, -2612, 0, -2612, -2612, 0, 0, 2537, 0,
+ 0, 3194, 0, 0, 2475, 0, 0, 0, 0, 0,
+ 0, 1503, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483,
+ 2484, 4144, 0, 0, 2538, 0, 0, 0, 3991, 0,
+ 1530, 0, 0, 4313, -2612, 0, 1531, -2612, -2612, -2612,
+ 3357, 0, 0, 0, 0, 0, 0, 1504, 0, 0,
+ 0, 1637, 0, 3194, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 688, 0, 0, 0, 0,
+ 0, 1533, 0, 5165, 776, 1505, 1337, 0, 0, 1506,
+ 0, 0, 4194, 0, 4196, 0, 0, 0, 5169, 0,
+ 0, 0, 0, 2539, 0, 0, 0, 0, 2540, 0,
+ 0, 0, 0, 0, 0, 0, 2046, 0, 0, 2047,
+ 1588, 1508, 0, 2048, 2049, 2050, 1337, 0, 0, 0,
+ 2541, 2234, 0, 0, 0, 1638, 0, 1534, 2539, 0,
+ 2535, 1126, 0, 2540, 1535, 2542, 0, 1536, 0, 0,
+ 2536, 0, 0, 0, 0, 0, 0, 2537, 0, 1589,
+ 0, 0, 0, 35, 0, 2541, 2234, 1126, 1510, 0,
+ 0, 0, 0, 0, 1537, 0, 0, 1511, 0, 1337,
+ 2542, 0, 0, 2538, 0, 1512, 2286, 0, 0, 5227,
+ 0, 0, 0, 1590, 0, 0, 0, 0, 0, 0,
+ 2543, 0, 0, 2544, 0, 1514, 0, 0, 1538, 0,
+ 0, 0, 2899, 0, 1515, 0, 0, 0, 1516, 0,
+ 0, 2286, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 4485, 0, 0, 0, 2543, 4297, 0, 2544, 0,
+ 0, 0, 4304, 0, 0, 0, 0, 0, 0, 0,
+ 762, 0, 0, 0, 0, 0, 4501, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1517, 1639, 0, 0, 762, 1540, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3194, 1541, 0, 0,
+ 762, 0, 2545, 0, 0, 0, 1542, 2539, 0, 0,
+ 0, 762, 2540, 0, 0, 0, 0, 0, 1543, 0,
+ 0, 0, 0, 0, 0, 3194, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2541, 2234, 0, 2545, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2542,
+ 0, 0, 0, 0, 0, 0, 0, 1640, 0, 0,
+ 1545, 1546, 3358, 0, 1337, 1337, 1337, 1337, 1337, 1337,
+ 1337, 1337, 1337, 0, 1337, 0, 0, 0, 0, 0,
+ 0, 0, 839, 1337, 5359, 1337, 5360, 1192, 1193, 0,
+ 2286, 1641, 839, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2475, 0, 2543, 0, 0, 2544, 0, 0,
+ 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 0,
+ 0, 839, 0, 1337, 0, 0, 925, 1337, 0, 0,
+ 1337, 0, 1337, 0, 0, 1337, 4466, 2475, 4468, 1337,
+ 4470, 0, 0, 0, 0, 2476, 2477, 2478, 2479, 2480,
+ 2481, 2482, 2483, 2484, 0, 0, 0, 0, 3223, 1548,
+ 0, 0, 3349, 0, 0, 0, 0, 0, 839, 839,
+ 0, 0, 0, 0, 0, 762, 0, 0, 0, 1337,
+ 0, 0, 0, 0, 0, 0, 1791, 0, 1337, 1337,
+ 0, 0, 0, 0, 0, 0, 2545, 1800, 0, 0,
+ 2046, 0, 839, 2047, 0, 0, 0, 0, 0, 0,
+ 3393, 0, 3398, 1808, 0, 0, 0, 4695, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 762, 0,
+ 0, 0, 0, 0, 2536, 0, 0, 5487, 0, 0,
+ 0, -2816, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 3194, 772, 0, 772, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2538, 0, 0,
+ 0, 1337, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 620, 0, 0, 936, 972, 936, 936, 0,
+ 0, 925, 0, 0, 839, 0, 2475, 0, 0, 0,
+ 0, 0, 0, 0, 2476, 2477, 2478, 2479, 2480, 2481,
+ 2482, 2483, 2484, 0, 0, 802, 0, 4334, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2743, 0, 0, 0,
+ 0, 0, 0, 0, 3507, 839, 5027, 0, 0, 0,
+ 0, 3518, 0, 0, 0, 4805, 0, 0, 4808, 0,
+ 839, 0, 0, 0, 0, 0, 0, 1530, 0, 0,
+ 0, 0, 0, 1531, 0, 0, 0, 0, 0, 1978,
+ 0, 0, 839, 0, 0, 0, 0, 0, 1637, 0,
+ 0, -2816, 0, 0, 0, 0, -2816, 0, 0, 0,
+ 5595, 0, 5597, 839, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1046, 0, 0, 802, 0, 1533, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 5831, 0,
+ 0, 0, 0, -2816, 0, 0, 0, 0, 0, 925,
+ 0, 2046, 925, 0, 2047, 0, 0, 0, 2048, 2049,
+ 2050, 0, 0, 0, 0, 0, 0, 0, 0, 4890,
+ 0, 0, 0, 1113, 688, 2535, 0, 762, 839, 839,
+ 0, 0, 1638, 762, 1534, 2536, 2899, 762, 0, 0,
+ 0, 1535, 2537, 3661, 1536, 3664, 3666, 0, 2543, 0,
+ 0, 2046, 0, 0, 2047, 0, 0, 0, 2048, 2049,
+ 2050, 0, 0, 0, 5142, 5143, 0, 0, 2538, 5146,
+ 5147, 1537, 0, 0, 0, 2535, 1337, 1337, 1337, 0,
+ 0, 0, 1337, 0, 0, 2536, 0, 0, 0, 0,
+ 925, 0, 2537, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 925, 0, 1538, 0, 0, 0, 1337,
+ 0, 925, 0, 0, 0, 0, 0, 3884, 2538, 1212,
+ 3194, 3194, 0, 0, 2743, 0, 0, 0, 0, 839,
+ 0, 0, 0, 0, 0, 3766, 0, 0, 772, 0,
+ -2816, 0, 0, 0, 0, 1230, 0, 0, 0, 0,
+ 925, 3777, 0, 1340, 0, 0, 1349, 1113, 1351, 0,
+ 0, 3661, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1639, 925, 0, 3799, 1540, 0, 0, 0, 0, 0,
+ 0, 0, 2539, 0, 1541, 0, 0, 2540, 0, 0,
+ 0, 0, 0, 1542, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 5782, 0, 1543, 0, 0, 0, 2541,
+ 2234, 0, 925, 0, 925, 0, 925, 0, 0, 0,
+ 0, 0, 0, 0, 2542, 0, 0, 2046, 0, 0,
+ 2047, 0, 2539, 0, 2048, 2049, 2050, 2540, 0, 0,
+ -2816, 0, 0, 0, 3632, 0, 0, 1545, 1546, 1952,
+ 0, 2479, 2480, 2481, 2482, 2483, 2484, 0, 0, 2541,
+ 2234, 2536, 0, 0, 0, 2286, 0, 0, 2537, 0,
+ 0, 0, 0, 0, 2542, 0, 0, 0, 3633, 2543,
+ 0, 0, 2544, 0, 0, 0, 0, 0, 0, 0,
+ 2792, 0, 0, 0, 2538, 0, 0, 0, 0, 0,
+ 0, 0, 620, 925, 0, 936, 0, 936, 936, 0,
+ 925, 0, 0, 0, 5866, 2286, 0, 1337, 0, 0,
+ 0, 0, 1337, 0, 0, 0, 0, 4958, 0, 2543,
+ 4960, 0, 2544, 0, 0, 0, 0, 887, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1548, 0, 1337, 1337,
+ 1337, 0, 0, 1337, 0, 0, 4975, 0, 1113, 0,
+ 0, 1337, 1337, 1337, 1337, 0, 0, 0, 0, 0,
+ 0, 2545, 0, 0, 0, 5139, 0, 1337, 0, 0,
+ 1337, 0, 1337, 0, 0, 0, 0, 5149, 0, 0,
+ 0, 0, 0, 1337, 1337, 0, 0, 1337, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2539, 0,
+ 0, 0, 0, 2540, 972, 0, 1337, 0, 1337, 0,
+ 1337, 2545, 0, 5948, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -2816, -2816, 0, 0, 0,
+ 1337, 0, 0, 0, 839, 0, 0, 762, 0, 0,
+ 2542, 0, 0, 5962, 5962, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 839, 0, 0, 0, 0,
+ 0, 2475, 0, 0, 0, 0, 0, 0, 0, 2476,
+ 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 0, 0,
+ 0, -2816, 4517, 620, 0, 0, 3349, 4064, 0, 0,
+ 0, 4064, 4078, 4064, 0, 2543, 0, 0, 1337, 0,
+ 0, 0, 0, 1337, 2930, 0, 0, 0, 0, 0,
+ 0, 2475, 0, 0, 0, 2941, 0, 0, 1337, 2476,
+ 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 0, 0,
+ 2923, 2959, 3349, 0, 5105, 0, 4109, 0, 1977, 4112,
+ 3349, 0, 3398, 0, 0, 0, 0, 0, 0, 0,
+ 1530, 0, 0, 0, 0, 5962, 1531, 0, 0, 0,
+ 0, 1113, 0, 1597, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 5129, 5130, 0, 0, 0,
+ 0, 0, 0, 1337, 3033, 1598, 0, 2545, 0, 0,
+ 0, 0, 0, 0, 3884, 0, 0, 0, 0, 3045,
+ 0, 1533, 1126, 3049, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 925, 925, 0, 0, 0, 689, 0,
+ 0, 0, 0, 3144, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3068, 1126, 0, 1599, 0, 2042, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2044, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1534, 0, 0,
+ 0, 2498, 0, 0, 1535, 0, 0, 1536, 0, 5173,
+ 5174, 0, 0, 0, 692, 3145, 0, 0, 0, 0,
+ 1113, 0, 0, 2515, 2516, 0, 0, 2475, 1113, 1113,
+ 693, 0, 0, 0, 1537, 2476, 2477, 2478, 2479, 2480,
+ 2481, 2482, 2483, 2484, 0, 3884, 0, 3884, 1029, 0,
+ 0, 0, 0, 0, 0, 762, 0, 0, 0, 0,
+ 0, 839, 0, 0, 0, 1600, 0, 0, 1538, 0,
+ 0, 2811, 3146, 1530, 0, 0, 0, 0, 1530, 1531,
+ 0, 0, 0, 696, 1531, 0, 0, 0, 0, 0,
+ 0, 2046, 697, 0, 2047, 0, 0, 0, 2048, 2049,
+ 2050, 0, 0, 3227, 0, 698, 0, 0, 0, 0,
+ 3147, 0, 0, 0, 1601, 2535, 0, 0, 1602, 0,
+ 0, 0, 0, 0, 1533, 2536, 0, 0, 0, 1533,
+ 0, 0, 2537, 1603, 0, 0, 1032, 1540, 0, 5267,
+ 0, 0, 5269, 5270, 0, 0, 0, 1541, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1542, 0, 2538, 5274,
+ 0, 3148, 0, 0, 0, 0, 0, 1604, 1543, 0,
+ 0, 0, 0, 0, 0, 0, 1337, 0, 0, 0,
+ 1534, 0, 1337, 702, 0, 1534, 0, 1535, 0, 0,
+ 1536, 0, 1535, 925, 0, 1536, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1605, 0, 0,
+ 1545, 1546, 1606, 0, 0, 0, 0, 1537, 0, 0,
+ 0, 0, 1537, 0, 0, 0, 0, 0, 0, 0,
+ 839, 839, 839, 0, 0, 1607, 0, 0, 0, 5752,
+ 0, 1608, 0, 0, 0, 0, 0, 839, 0, 0,
+ 0, 1538, 0, 0, 0, 1609, 1538, 0, 213, 3149,
+ 0, 1337, 707, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2539, 0, 0, 0, 0, 2540, 0, 1952,
+ 839, 839, 0, 2852, 0, 839, 0, 0, 0, 1036,
+ 0, 2860, 3150, 0, 0, 0, 0, 839, 711, 2541,
+ 2234, 0, 0, 0, 0, 712, 0, 0, 713, 1548,
+ 0, 887, 0, 0, 2542, 0, 1539, 0, 0, 0,
+ 1540, 1639, 0, 0, 0, 1540, 0, 714, 0, 0,
+ 1541, 0, 0, 0, 1038, 1541, 0, 887, 0, 1542,
+ 716, 0, 0, 1039, 1542, 0, 0, 718, 0, 0,
+ 0, 1543, 0, 925, 0, 2286, 1543, 0, 0, 0,
+ 0, 0, 3151, 0, 0, 0, 0, 3107, 4484, 2543,
+ 0, 0, 2544, 0, 0, 0, 839, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 723, 839,
+ 2785, 0, 839, 1545, 1546, 3499, 0, 0, 1545, 1546,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1337, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1337, 0, 0, 0, 2786, 0, 0, 0, 1337, 1547,
+ 1337, 0, 0, 1337, 0, 0, 0, 0, 1337, 1337,
+ 1337, 1337, 0, 0, 1337, 1337, 1337, 1337, 1337, 1337,
+ 1337, 1337, 1337, 1337, 0, 0, 0, 1337, 1337, 1337,
+ 0, 2545, 0, 0, 0, 0, 0, 1337, 0, 0,
+ 0, 0, 1337, 0, 0, 0, 1337, 0, 0, 0,
+ 0, 0, 0, 0, 1337, 887, 0, 1337, 0, 1337,
+ 0, 0, 1548, 0, 0, 0, 0, 1548, 0, 1337,
+ 0, 0, 1337, 1337, 0, 2989, 0, 1337, 1337, 2994,
+ 0, 0, 4590, 0, 1337, 0, 0, 0, 0, 0,
+ 0, 839, 839, 839, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 5563, 0,
+ 0, 4064, 4078, 4064, 0, 1337, 4064, 0, 0, 4614,
+ 0, 0, 0, 3349, 1530, 0, 0, 3349, 0, 0,
+ 1531, 2475, 0, 4629, 0, 0, 0, 0, 0, 2476,
+ 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 0, 1530,
+ 0, 0, 4567, 0, 0, 1531, 0, 0, 0, 1337,
+ 5599, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3398, 1533, 1337, 0, 2046, 0,
+ 0, 2047, 0, 0, 0, 2048, 2049, 2050, 0, 0,
+ 0, 0, 0, 0, 4677, 1952, 1952, 0, 1686, 1952,
+ 1533, 0, 2535, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2536, 0, 0, 0, 887, 0, 0, 2537,
+ 0, 0, 0, 0, 0, 0, 0, 887, 0, 0,
+ 6046, 1534, 0, 0, 2743, 4709, 0, 0, 1535, 0,
+ 0, 1536, 0, 887, 0, 2538, 0, 3176, 0, 0,
+ 0, 0, 0, 4730, 0, 3884, 1534, 0, 0, 0,
+ 0, 0, 0, 1535, 0, 0, 1536, 0, 1537, 0,
+ 0, 0, 0, 5688, 0, 0, 0, 0, 6046, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1537, 0, 0, 6046, 0, 0, 0,
+ 0, 0, 1538, 0, 0, 0, 4779, 0, 0, 2046,
+ 0, 0, 2047, 0, 0, 0, 2048, 2049, 2050, 0,
+ 0, 0, 3463, 0, 0, 0, 0, 1538, 3471, 0,
+ 0, 0, 0, 2535, 0, 0, 0, 0, 2046, 0,
+ 0, 2047, 0, 2536, 0, 2048, 2049, 2050, 0, 0,
+ 2537, 0, 0, 0, 0, 0, 0, 0, 0, 2539,
+ 0, 4823, 2535, 0, 2540, 0, 0, 1639, 0, 3504,
+ 0, 1540, 2536, 0, 0, 0, 2538, 0, 0, 2537,
+ 0, 1541, 0, 0, 0, 0, 2541, 2234, 0, 0,
+ 1542, 0, 1639, 0, 925, 0, 1540, 0, 0, 887,
+ 0, 2542, 1543, 0, 0, 2538, 1541, 0, 925, 0,
+ 1337, 0, 0, 0, 0, 1542, 0, 839, 0, 0,
+ 0, 0, 0, 4867, 0, 0, 0, 1543, 0, 0,
+ 0, 0, 0, 0, 2743, 0, 0, 0, 0, 0,
+ 0, 3677, 2286, 0, 1545, 1546, 0, 0, 0, 839,
+ 0, 0, 0, 0, 3349, 3777, 2543, 0, 0, 2544,
+ 0, 0, 3661, 0, 0, 0, 4162, 0, 0, 1545,
+ 1546, 4916, 0, 0, 0, 3678, 0, 0, 0, 0,
+ 0, 839, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2539, 0, 0, 1337, 1337, 2540, 0, 0, 0, 0,
+ 4163, 0, 0, 0, 1337, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1952, 839, 2541, 2234, 2539,
+ 0, 0, 0, 0, 2540, 0, 0, 0, 0, 0,
+ 0, 0, 2542, 839, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1548, 0, 0, 2541, 2234, 2545, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2542, 0, 0, 0, 0, 0, 0, 1548, 0,
+ 0, 1337, 0, 2286, 0, 0, 0, 0, 3727, 0,
+ 0, 0, 1337, 0, 0, 0, 0, 2543, 0, 0,
+ 2544, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2286, 0, 0, 0, 0, 5944, 0, 0,
+ 1337, 0, 0, 1337, 0, 0, 2543, 0, 0, 2544,
+ 0, 1337, 1337, 0, 0, 0, 0, 0, 1337, 1337,
+ 0, 0, 0, 1337, 0, 0, 0, 1337, 0, 0,
+ 1337, 1337, 2644, 0, 0, 1337, 5032, 0, 2475, 0,
+ 0, 1337, 839, 839, 839, 839, 2476, 2477, 2478, 2479,
+ 2480, 2481, 2482, 2483, 2484, 0, 0, 1530, 620, 4671,
+ 0, 4064, 0, 1531, 0, 3349, 0, 0, 0, 2545,
+ 3349, 0, 0, 3349, 620, 0, 3661, 0, 5063, 0,
+ 0, 1337, 0, 972, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1337, 0, 0, 0, 4109, 0, 2545, 2644,
+ 1337, 0, 3398, 0, 0, 0, 0, 0, 1533, 0,
+ 0, 0, 0, 0, 0, 0, 0, 772, 0, 0,
+ 1337, 0, 2046, 0, 0, 2047, 0, 0, 0, 2048,
+ 2049, 2050, 0, 0, 0, 0, 0, 0, 0, 0,
+ 887, 0, 3299, 0, 0, 0, 2535, 3897, 0, 0,
+ 0, 0, 0, 0, 2743, 0, 2536, 0, 0, 0,
+ 0, 0, 3910, 2537, 1534, 0, 0, 3915, 0, 2475,
+ 5127, 1535, 0, 887, 1536, 0, 0, 2476, 2477, 2478,
+ 2479, 2480, 2481, 2482, 2483, 2484, 0, 0, 0, 2538,
+ 4896, 0, 0, 0, 0, 0, 0, 0, 2475, 0,
+ 0, 1537, 0, 0, 0, 0, 2476, 2477, 2478, 2479,
+ 2480, 2481, 2482, 2483, 2484, 0, 0, 0, 0, 4991,
+ 0, 1337, 0, 0, 0, 0, 0, 0, 1337, 0,
+ 0, 0, 0, 0, 0, 1538, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 925, 0, 0, 1686, 1686, 1686, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 925, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1113, 0, 0, 0, 0, 0, 1337, 0, 0, 0,
+ 1639, 0, 0, 2539, 1540, 0, 0, 0, 2540, 0,
+ 0, 0, 620, 0, 1541, 0, 0, 0, 0, 2743,
+ 0, 0, 0, 1542, 0, 0, 0, 0, 1952, 0,
+ 2541, 2234, 0, 0, 0, 1543, 0, 0, 0, 0,
+ 0, 0, 0, 3777, 0, 2542, 0, 0, 0, 1351,
+ 0, 0, 0, 0, 0, 0, 925, 0, 3799, 0,
+ 0, 0, 0, 0, 887, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 4220, 887, 0, 1545, 1546, 0,
+ 0, 0, 0, 0, 839, 0, 2286, 0, 0, 0,
+ 0, 887, 0, 0, 0, 839, 0, 0, 0, 0,
+ 2543, 0, 0, 2544, 0, 0, 0, 0, 4221, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1351,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1337, 0, 0, 1337, 887, 0, 1337, 1337, 1337, 0,
+ 0, 0, 0, 1351, 0, 0, 0, 0, 0, 887,
+ 0, 0, 887, 887, 0, 0, 0, 0, 0, 0,
+ 0, 1337, 1337, 0, 0, 1337, 1548, 0, 4149, 0,
+ 0, 0, 0, 0, 0, 0, 4152, 0, 0, 0,
+ 0, 0, 2545, 887, 887, 1337, 0, 0, 0, 0,
+ 0, 1337, 0, 0, 0, 3349, 0, 0, 0, 5063,
+ 0, 0, 1337, 0, 5337, 0, 0, 0, 0, 0,
+ 3670, 0, 0, 0, 0, 4677, 0, 0, 1337, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 4677,
+ 972, 925, 0, 925, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 3702, 0, 3702,
+ 0, 3702, 3702, 0, 0, 0, 3702, 3702, 3702, 0,
+ 3702, 3702, 3702, 886, 0, 0, 0, 0, 0, 0,
+ 0, 4235, 0, 4237, 0, 0, 0, 0, 0, 0,
+ 936, 972, 2475, 0, 0, 1686, 0, 0, 1686, 0,
+ 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 0,
+ 0, 0, 0, 5028, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 887, 3779, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 936, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 4867, 0, 3807,
+ 0, 0, 839, 0, 0, 0, 0, 839, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2743, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 839, 4298, 0, 0,
+ 4916, 0, 0, 5475, 0, 0, 0, 689, 0, 0,
+ 0, 0, 1025, 0, 925, 839, 4677, 2046, 0, 0,
+ 2047, 0, 0, 0, 2048, 2049, 2050, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 4320,
+ 0, 2535, 0, 0, 0, 0, 0, 0, 1337, 0,
+ 1026, 2536, 1337, 0, 1337, 0, 0, 0, 2537, 0,
+ 0, 0, 0, 692, 1027, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 620, 1028, 0, 1337, 0, 693,
+ 0, 5539, 0, 0, 2538, 0, 0, 0, 1337, 0,
+ 0, 0, 0, 0, 0, 1337, 0, 1029, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1030, 0, 0, 0, 0, 937, 947, 0, 0,
+ 839, 0, 696, 0, 937, 3504, 947, 937, 0, 0,
+ 0, 697, 0, 0, 0, 0, 0, 0, 0, 0,
+ 947, 0, 0, 0, 698, 1337, 0, 0, 0, 1031,
+ 0, 1337, 1337, 0, 0, 0, 925, 925, 925, 925,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 4462,
+ 0, 0, 0, 0, 0, 1032, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1337, 2539, 0,
+ 0, 0, 0, 2540, 0, 620, 0, 0, 0, 0,
+ 1033, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2541, 2234, 0, 0, 0,
+ 839, 0, 702, 3349, 0, 0, 0, 0, 0, 0,
+ 2542, 0, 0, 0, 0, 0, 0, 0, 1113, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 839, 0,
+ 0, 0, 4516, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1034, 0, 0, 0, 0, 0, 0,
+ 0, 2286, 0, 0, 0, 4525, 1337, 0, 0, 0,
+ 0, 0, 1337, 0, 0, 2543, 1952, 705, 2544, 0,
+ 3661, 0, 0, 1337, 0, 0, 0, 213, 1035, 0,
+ 4546, 707, 1337, 0, 1337, 0, 1337, 5337, 0, 0,
+ 0, 0, 0, 4677, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1952, 0, 972, 0, 0, 1036, 0,
+ 0, 1037, 0, 0, 1337, 710, 0, 711, 0, 0,
+ 0, 0, 0, 0, 712, 0, 0, 713, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 714, 0, 0, 1952,
+ 1952, 0, 0, 1038, 0, 0, 0, 2545, 0, 716,
+ 0, 0, 1039, 1686, 0, 0, 718, 0, 0, 0,
+ 0, 0, 0, 0, 1040, 0, 720, 1113, 0, 0,
+ 925, 1041, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 5796, 0, 2046, 0, 0, 2047,
+ 0, 0, 0, 2048, 2049, 2050, 0, 723, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2535, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2536, 0, 1337, 1337, 1337, 0, 0, 2537, 0, 0,
+ 1337, 0, 0, 0, 5539, 0, 0, 0, 0, 0,
+ 1337, 0, 0, 0, 0, 4210, 0, 2475, 0, 3398,
+ 1337, 0, 0, 2538, 0, 2476, 2477, 2478, 2479, 2480,
+ 2481, 2482, 2483, 2484, 0, 0, 936, 2046, 5278, 0,
+ 2047, 0, 0, 0, 2048, 2049, 2050, 0, 0, 0,
+ 0, 925, 0, 0, 0, 0, 0, 0, 1952, 0,
+ 3405, 2535, 0, 0, 2644, 3411, 0, 886, 0, 0,
+ 0, 2536, 0, 4257, 0, 0, 0, 0, 2537, 0,
+ 0, 0, 947, 2743, 0, 0, 0, 0, 0, 0,
+ 1337, 0, 0, 886, 0, 0, 0, 0, 0, 0,
+ 4677, 947, 0, 0, 2538, 0, 0, 947, 936, 936,
+ 5913, 0, 0, 0, 1337, 0, 1337, 0, 0, 947,
+ 0, 0, 887, 0, 0, 1952, 1952, 5928, 887, 0,
+ 0, 0, 1337, 1337, 0, 947, 0, 2539, 5934, 0,
+ 0, 4300, 2540, 0, 0, 0, 0, 0, 0, 937,
+ 947, 0, 0, 0, 0, 0, 937, 0, 947, 937,
+ 925, 0, 0, 0, 2541, 2234, 0, 0, 0, 887,
+ 0, 0, 947, 0, 0, 0, 0, 0, 0, 2542,
+ 0, 0, 947, 0, 0, 0, 0, 3702, 0, 5796,
+ 925, 925, 0, 0, 0, 4677, 0, 0, 0, 4331,
+ 4331, 0, 0, 0, 0, 0, 0, 0, 0, 4347,
+ 0, 0, 0, 620, 1113, 0, 1113, 0, 2539, 0,
+ 2286, 0, 0, 2540, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1337, 2543, 0, 0, 2544, 0, 0,
+ 947, 886, 0, 0, 0, 2541, 2234, 1337, 4879, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2542, 0, 4402, 0, 0, 0, 0, 689, 0, 947,
+ 0, 0, 2694, 0, 0, 0, 0, 0, 1337, 0,
+ 0, 0, 0, 6018, 6019, 620, 6022, 5539, 0, 0,
+ 3398, 0, 0, 0, 947, 0, 0, 4438, 1113, 0,
+ 0, 2286, 925, 0, 0, 4677, 0, 0, 0, 0,
+ 2695, 0, 0, 0, 0, 2543, 0, 0, 2544, 0,
+ 0, 0, 0, 692, 0, 0, 2545, 0, 4109, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 693,
+ 0, 0, 0, 0, 0, 0, 1686, 1337, 620, 0,
+ 0, 0, 1337, 0, 947, 0, 620, 1029, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 936, 936,
+ 0, 0, 6084, 0, 0, 0, 0, 0, 887, 0,
+ 0, 2696, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 696, 0, 0, 0, 0, 0, 0, 0,
+ 0, 697, 886, 0, 0, 0, 0, 2545, 0, 0,
+ 0, 0, 0, 886, 698, 0, 0, 0, 0, 2697,
+ 0, 0, 0, 0, 0, 0, 2475, 0, 0, 886,
+ 0, 0, 0, 0, 2476, 2477, 2478, 2479, 2480, 2481,
+ 2482, 2483, 2484, 0, 0, 1032, 0, 5289, 0, 0,
+ 0, 2644, 0, 0, 0, 2644, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1772, 0, 0, 0, 0, 0,
+ 947, 0, 0, 4568, 0, 0, 0, 0, 0, 0,
+ 0, 937, 0, 0, 0, 937, 0, 937, 0, 0,
+ 0, 0, 702, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2475, 0, 0,
+ 0, 0, 0, 0, 0, 2476, 2477, 2478, 2479, 2480,
+ 2481, 2482, 2483, 2484, 0, 0, 0, 0, 5297, 0,
+ 0, 0, 0, 2698, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 5106, 887, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 213, 2699, 0,
+ 0, 707, 887, 0, 0, 0, 0, 887, 0, 0,
+ 0, 0, 0, 0, 0, 886, 0, 0, 0, 0,
+ 0, 0, 0, 947, 5128, 0, 0, 0, 1036, 0,
+ 0, 2700, 0, 0, 0, 0, 0, 711, 0, 0,
+ 0, 0, 0, 0, 712, 0, 5144, 713, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 714, 0, 0, 0,
+ 0, 0, 0, 1038, 0, 0, 0, 0, 0, 716,
+ 0, 0, 1039, 0, 947, 0, 718, 0, 0, 0,
+ 0, 0, 0, 0, 2701, 947, 0, 2046, 0, 0,
+ 2047, 2702, 0, 0, 2048, 2049, 2050, 0, 0, 947,
+ 0, 0, -136, 947, 0, 0, 0, 0, 5172, 0,
+ 0, 2535, 4347, 0, 0, 0, 0, 723, 0, 0,
+ 0, 2536, 1, 0, 0, 0, 0, 0, 2537, 0,
+ 0, 0, 2, 0, 3, 4, 0, 0, 4769, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2514, 0, 0,
+ 0, 0, 5, 4783, 2538, 0, 4784, 0, 4785, 0,
+ 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 7, 0, 8, 9, 0, 0,
+ 0, 0, 0, 10, 0, 11, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 12, 0, 13,
+ 0, 0, 0, 0, 4825, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 14, 0, 0, 15,
+ 3702, 0, 947, 0, 0, 3702, 0, 0, 0, 5256,
+ 947, 947, 0, 0, 16, 0, 17, 0, 0, 0,
+ 18, 0, 0, 0, 0, 0, 19, 0, 886, 0,
+ 2644, 0, 0, 3411, 20, 3411, 21, 0, 0, 0,
+ 2644, 0, 0, 22, 0, 0, 0, 0, 2539, 0,
+ 0, 0, 0, 2540, 0, 0, 0, 0, 0, 0,
+ 23, 0, 0, 1772, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2541, 2234, 24, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 887, 0,
+ 2542, 0, 0, 0, 0, 886, 887, 0, 0, 0,
+ 0, 0, 0, 0, 4930, 0, 0, 4347, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 25, 26, 0,
+ 0, 2644, 0, 27, 0, 0, 0, 0, 0, 4298,
+ 0, 2286, 0, 0, 0, 0, 886, 28, 0, 0,
+ 0, 0, 0, 0, 0, 2543, 0, 0, 2544, 0,
+ 0, 0, 0, 0, 0, 29, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 886,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 4978, 4978, 4978, 4978, 0, 4978, 4978, 4978, 4978, 4978,
+ 0, 887, 0, 887, 0, 0, 0, 0, 0, 30,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 31, 0, 0, 0, 1530, 0, 32,
+ 33, 0, 34, 1531, 0, 0, 0, 35, 0, 0,
+ 1597, 0, 0, 36, 0, 0, 37, 2545, 0, 0,
+ 0, 0, 0, 38, 0, 0, 0, 0, 0, 39,
+ 40, 0, 1598, 0, 0, 0, 0, 41, 0, 0,
+ 0, 42, 0, 0, 0, 0, 0, 0, 1533, 0,
+ 0, 43, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5040, 0, 5042, 0, 0, 0, 44, 887, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1599, 0, 0, 45, 0, 0, 0,
+ 0, 0, 947, 0, 1686, 0, 0, 46, 0, 0,
+ 1686, 0, 0, 47, 1534, 0, 0, 0, 48, 887,
+ 0, 1535, 0, 0, 1536, 0, 0, 2475, 0, 0,
+ 0, 49, 0, 0, 0, 2476, 2477, 2478, 2479, 2480,
+ 2481, 2482, 2483, 2484, 0, 0, 0, 3411, 5300, 0,
+ 886, 1537, 0, 0, 50, 51, 52, 53, 54, 55,
+ 0, 886, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 56, 0, 0, -136, 0, 886, 0, 0,
+ 0, 0, 1600, 0, 0, 1538, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 887, 947, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 886, 1601, 0, 1978, 0, 1602, 0, 3411, 1978, 1978,
+ 0, 0, 0, 0, 0, 886, 0, 0, 886, 886,
+ 1603, 1772, 0, 0, 1540, 0, 0, 0, 0, 887,
+ 0, 0, 0, 0, 1541, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1542, 947, 0, 0, 0, 0, 886,
+ 886, 0, 947, 0, 1604, 1543, 0, 0, 5170, 5171,
+ 947, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 3702, 0, 3702, 3702, 3702, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3607, 0, 0, 1545, 1546, 1606,
+ 937, 937, 0, 947, 947, 0, 0, 0, 0, 0,
+ 0, 0, 887, 0, 0, 937, 0, 947, 937, 0,
+ 0, 5672, 1607, 0, 0, 0, 0, 0, 3608, 0,
+ 947, 947, 0, 0, 0, 887, 0, 0, 0, 5222,
+ 0, 0, 1609, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 887, 0, 0, 0, 0, 5708, 0, 0, 937, 0,
+ 0, 0, 937, 937, 0, 0, 0, 0, 5250, 886,
+ 0, -136, 0, 0, 0, 0, 946, 0, 0, 0,
+ 0, 0, 0, 0, 0, 946, 1548, 0, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0, 0, 0, 946,
+ 0, 2, 0, 3, 4, 0, 0, 0, 0, 0,
+ 4978, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 5, 0, 0, 0, 0, 0, 0, 0, 2046,
+ 0, 6, 2047, 0, 0, 0, 2048, 2049, 2050, 0,
+ 0, 0, 0, 7, 0, 8, 9, 0, 0, 0,
+ 0, 0, 10, 2535, 11, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2536, 0, 0, 12, 1772, 13, 628,
+ 2537, 0, 0, 0, 0, 677, 628, 0, 0, 0,
+ 0, 729, 0, 628, 0, 14, 0, 0, 15, 628,
+ 0, 782, 0, 0, 0, 0, 2538, 0, 0, 0,
+ 2644, 0, 0, 16, 0, 17, 0, 0, 0, 18,
+ 850, 850, 0, 0, 0, 19, 0, 0, 0, 2046,
+ 0, 0, 2047, 20, 0, 21, 2048, 2049, 2050, 0,
+ 0, 0, 22, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2535, 0, 0, 0, 0, 0, 23,
+ 0, 0, 0, 2536, 0, 0, 0, 0, 0, 4347,
+ 2537, 0, 0, 0, 0, 0, 24, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2538, 0, 0, 0,
+ 3411, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 3702, 25, 26, 0, 0,
+ 2539, 0, 27, 0, 5422, 2540, 3411, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 28, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2541, 2234, 0,
+ 0, 0, 0, 0, 29, 0, 0, 0, 0, 0,
+ 0, 0, 2542, 0, 0, 0, 0, 0, 0, 0,
+ 0, 927, 0, 0, 0, 931, 0, 0, 0, 0,
+ 0, 0, 0, 974, 0, 0, 976, 0, 0, 981,
+ 982, 0, 985, 0, 988, 0, 0, 994, 30, 996,
+ 0, 0, 0, 2286, 0, 0, 0, 0, 0, 0,
+ 2539, 0, 31, 0, 0, 2540, 0, 2543, 32, 33,
+ 2544, 34, 0, 0, 0, 0, 35, 0, 0, 0,
+ 0, 0, 36, 0, 0, 37, 0, 2541, 2234, 0,
+ 0, 0, 38, 0, 0, 0, 0, 0, 39, 40,
+ 0, 0, 2542, 0, 0, 0, 41, 0, 0, 0,
+ 42, 0, 0, 0, 0, 0, 0, 0, 887, 877,
+ 43, 0, 2046, 0, 0, 2047, 0, 0, 0, 2048,
+ 2049, 2050, 0, 0, 0, 44, 0, 0, 0, 0,
+ 0, 0, 0, 2286, 0, 0, 2535, 0, 0, 0,
+ 0, 0, 0, 0, 0, 45, 2536, 2543, 0, 2545,
+ 2544, 946, 0, 2537, 0, 3411, 46, 0, 0, 0,
+ 2644, 0, 47, 0, 0, 0, 0, 48, 0, 0,
+ 946, 0, 0, 0, 0, 0, 946, 0, 0, 2538,
+ 49, 0, 0, 0, 0, 0, 0, 1113, 946, 0,
+ 0, 5608, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 50, 946, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 946,
+ 0, 56, 0, 0, -136, 0, 0, 946, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2545,
+ 0, 946, 0, 879, 0, 0, 0, 0, 0, 2475,
+ 0, 946, 0, 0, 0, 0, 0, 2476, 2477, 2478,
+ 2479, 2480, 2481, 2482, 2483, 2484, 0, 0, 0, 0,
+ 5353, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 887, 2539, 0, 0, 0, 0, 2540, 0,
+ 0, 0, 0, 0, 0, 0, 886, 0, 0, 946,
+ 886, 886, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2541, 2234, 1772, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2542, 0, 0, 946, 2475,
+ 0, 0, 0, 0, 0, 0, 0, 2476, 2477, 2478,
+ 2479, 2480, 2481, 2482, 2483, 2484, 0, 0, 0, 0,
+ 5386, 0, 0, 946, 0, 0, 0, 0, 886, 0,
+ 0, 0, 0, 0, 886, 0, 2286, 947, 0, 0,
+ 0, 1113, 0, 0, 0, 5758, 0, 5759, 0, 0,
+ 2543, 5764, 5765, 2544, 0, 947, 0, 0, 0, 947,
+ 0, 0, 0, 947, 0, 0, 0, 0, 0, 0,
+ 0, 0, 947, 0, 0, 886, 887, 0, 0, 0,
+ 0, 0, 0, 946, 0, 0, 0, 0, 0, 0,
+ 947, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1023, 0, 0, 937, 0, 937,
+ 937, 0, 0, 0, 887, 1060, 0, 0, 0, 1064,
+ 0, 0, 0, 0, 947, 0, 1077, 1078, 0, 0,
+ 1084, 0, 1087, 1088, 0, 0, 887, 0, 0, 0,
+ 0, 0, 2545, 0, 947, 947, 0, 1110, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1123, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1772, 947, 0, 0, 1772,
+ 0, 0, 0, 0, 0, 0, 1151, 0, 1153, 0,
+ 0, 0, 0, 1771, 0, 0, 0, 0, 1169, 946,
+ 0, 0, 0, 947, 0, 1772, 0, 0, 887, 947,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 947, 0, 0, 0, 0, 0, 0,
+ 947, 628, 0, 947, 0, 0, 0, 0, 0, 947,
+ 0, 0, 2475, 0, 0, 0, 0, 0, 0, 0,
+ 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 947,
+ 0, 0, 0, 5388, 0, 947, 0, 0, 0, 0,
+ 0, 0, 947, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 886, 0, 947, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 947,
+ 2046, 0, 0, 2047, 1772, 0, 1113, 2048, 2049, 2050,
+ 947, 0, 0, 0, 0, 0, 0, 0, 850, 0,
+ 0, 0, 946, 0, 2535, 0, 0, 5254, 0, 887,
+ 0, 0, 0, 0, 2536, 0, 0, 0, 0, 0,
+ 0, 2537, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 886, 0, 0,
+ 0, 886, 0, 0, 0, 0, 0, 2538, 0, 0,
+ 1772, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 946, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 946, 0, 0, 0, 0, 0,
+ 0, 1491, 0, 0, 0, 0, 0, 0, 946, 0,
+ 0, 0, 946, 877, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2046, 0, 0, 2047, 877,
+ 0, 0, 2048, 2049, 2050, 0, 0, 0, 0, 887,
+ 0, 0, 6047, 0, 0, 0, 0, 0, 2498, 2535,
+ 0, 0, 0, 886, 0, 0, 0, 0, 0, 2536,
+ 0, 0, 0, 0, 0, 1670, 2537, 0, 886, 0,
+ 0, 2539, 0, 886, 0, 0, 2540, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1790,
+ 6047, 0, 2538, 0, 0, 0, 0, 0, 2541, 2234,
+ 0, 0, 0, 0, 1802, 0, 1803, 3411, 6047, 0,
+ 0, 5040, 0, 2542, 0, 947, 1806, 0, 0, 0,
+ 0, 946, 0, 1816, 0, 0, 0, 0, 0, 946,
+ 946, 0, 0, 947, 0, 0, 0, 879, 0, 0,
+ 947, 0, 0, 0, 0, 0, 0, 937, 0, 937,
+ 937, 0, 0, 0, 2286, 0, 0, 0, 0, 0,
+ 0, 0, 0, 879, 0, 1867, 0, 1869, 2543, 0,
+ 0, 2544, 0, 0, 0, 0, 0, 877, 0, 0,
+ 0, 0, 1771, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2539, 0, 0, 0,
+ 0, 2540, 0, 0, 1772, 0, 0, 0, 0, 0,
+ 1772, 0, 0, 0, 0, 0, 0, 3411, 0, 0,
+ 0, 0, 0, 2541, 2234, 0, 0, 0, 0, 0,
+ 0, 628, 0, 628, 0, 628, 0, 628, 2542, 628,
+ 628, 628, 0, 0, 0, 0, 628, 0, 0, 0,
+ 2545, 0, 0, 0, 0, 0, 0, 0, 1973, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1985, 0, 0, 0, 0, 0, 0, 0, 2286,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 947, 0, 0, 2543, 0, 0, 2544, 0, 0, 0,
+ 0, 879, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 886, 0, 0, 886,
+ 0, 886, 0, 0, 0, 0, 886, 0, 877, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 877,
+ 0, 0, 0, 887, 0, 0, 0, 0, 887, 887,
+ 2475, 0, 0, 0, 0, 877, 0, 0, 2476, 2477,
+ 2478, 2479, 2480, 2481, 2482, 2483, 2484, 0, 0, 0,
+ 0, 5427, 0, 0, 886, 0, 0, 0, 0, 0,
+ 0, 0, 886, 0, 0, 2545, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 886, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 947,
+ 947, 946, 0, 0, 0, 0, 0, 0, 850, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 947, 0, 0, 947,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5254, 887, 879, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 879, 0, 0, 0, 886, 0, 886,
+ 0, 0, 0, 0, 0, 2475, 0, 0, 0, 879,
+ 0, 0, 0, 2476, 2477, 2478, 2479, 2480, 2481, 2482,
+ 2483, 2484, 0, 0, 0, 887, 5746, 0, 0, 0,
+ 0, 877, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1772, 1772, 1772, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 946, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 947, 0, 2705, 0,
+ 0, 0, 0, 0, 0, 0, 880, 0, 0, 0,
+ 0, 0, 0, 0, 0, 947, 0, 0, 0, 0,
+ 1771, 0, 2046, 886, 0, 2047, 0, 0, 0, 2048,
+ 2049, 2050, 0, 0, 0, 0, 0, 947, 0, 0,
+ 0, 0, 0, 946, 0, 0, 2535, 0, 0, 0,
+ 0, 946, 0, 0, 0, 0, 2536, 0, 0, 946,
+ 0, 0, 0, 2537, 0, 886, 0, 0, 0, 0,
+ 2797, 0, 0, 2046, 0, 0, 2047, 0, 0, 0,
+ 2048, 2049, 2050, 0, 0, 0, 0, 0, 0, 2538,
+ 0, 0, 0, 886, 0, 879, 0, 2535, 0, 0,
+ 0, 0, 946, 946, 0, 0, 0, 2536, 0, 0,
+ 0, 0, 0, 0, 2537, 0, 946, 0, 0, 0,
+ 0, 0, 0, 947, 0, 0, 0, 0, 0, 946,
+ 946, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2538, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 886, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1772, 882, 0, 0, 0, 0, 947, 0, 947, 0,
+ 0, 0, 0, 886, 0, 0, 0, 0, 0, 0,
+ 0, 947, 0, 947, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2539, 877, 886, 0, 0, 2540, 0,
+ 2046, 0, 0, 2047, 0, 0, 0, 2048, 2049, 2050,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2541, 2234, 0, 0, 2535, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2536, 2542, 0, 0, 0, 0,
+ 0, 2537, 0, 0, 2539, 0, 0, 0, 0, 2540,
+ 947, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 877, 0, 0, 0, 0, 1771, 2538, 0, 0,
+ 0, 2541, 2234, 0, 0, 2927, 2286, 0, 886, 0,
+ 0, 0, 0, 0, 0, 0, 2542, 0, 0, 0,
+ 2543, 0, 947, 2544, 0, 0, 0, 0, 0, 0,
+ 0, 886, 877, 0, 0, 0, 0, 0, 0, 0,
+ 2963, 947, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 886, 2286, 879, 0,
+ 0, 0, 0, 947, 0, 877, 947, 0, 0, 0,
+ 0, 2543, 0, 0, 2544, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3024, 0, 3028, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 3046, 0, 0, 0, 0,
+ 0, 2539, 2545, 0, 0, 0, 2540, 0, 0, 0,
+ 0, 0, 0, 0, 0, 879, 0, 0, 0, 0,
+ 0, 3066, 0, 3067, 0, 0, 0, 0, 2541, 2234,
+ 0, 0, 0, 0, 0, 0, 1772, 0, 3076, 0,
+ 3077, 0, 0, 2542, 0, 0, 628, 0, 628, 0,
+ 628, 0, 628, 2545, 628, 0, 879, 0, 628, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1686, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2286, 2046, 0, 0, 2047, 879,
+ 0, 0, 2048, 2049, 2050, 0, 886, 0, 2543, 0,
+ 0, 2544, 2475, 0, 0, 0, 0, 0, 0, 2535,
+ 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2536,
+ 0, 0, 0, 5768, 0, 0, 2537, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 877, 0, 0, 0,
+ 0, 0, 2538, 2475, 0, 0, 0, 877, 0, 0,
+ 0, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484,
+ 0, 0, 0, 877, 5960, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 886, 0, 0, 0,
+ 2545, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 947, 0, 0,
+ 0, 0, 886, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 877, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 877, 0, 0, 877, 877, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1772, 0,
+ 880, 0, 0, 1772, 0, 1772, 2539, 0, 0, 0,
+ 0, 2540, 0, 0, 0, 877, 877, 0, 0, 0,
+ 879, 0, 0, 0, 0, 0, 880, 0, 0, 1772,
+ 2475, 879, 0, 2541, 2234, 0, 0, 0, 2476, 2477,
+ 2478, 2479, 2480, 2481, 2482, 2483, 2484, 879, 2542, 0,
+ 0, 5978, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 947, 0, 0, 947, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2286,
+ 0, 0, 0, 0, 886, 0, 0, 0, 0, 0,
+ 879, 0, 0, 2543, 0, 0, 2544, 0, 0, 0,
+ 0, 0, 0, 0, 0, 879, 0, 0, 879, 879,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1771, 0, 0, 0, 0, 0, 0, 0, 883,
+ 0, 886, 0, 0, 0, 877, 886, 0, 0, 879,
+ 879, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 882, 0, 0, 947, 947,
+ 0, 0, 0, 0, 880, 0, 0, 0, 0, 947,
+ 0, 0, 0, 0, 0, 0, 946, 0, 0, 0,
+ 0, 882, 0, 0, 0, 2545, 947, 0, 0, 0,
+ 0, 0, 0, 0, 946, 0, 0, 0, 946, 0,
+ 0, 0, 946, 0, 0, 0, 0, 0, 0, 0,
+ 0, 946, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 946,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 946, 0, 0, 0, 947, 886, 879,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 946, 946, 2475, 0, 0, 0, 0,
+ 0, 0, 0, 2476, 2477, 2478, 2479, 2480, 2481, 2482,
+ 2483, 2484, 0, 0, 0, 0, 6024, 0, 0, 0,
+ 0, 0, 0, 0, 1771, 946, 0, 0, 1771, 0,
+ 0, 0, 0, 0, 0, 880, 0, 0, 0, 882,
+ 0, 0, 0, 0, 0, 0, 880, 0, 0, 0,
+ 0, 0, 946, 0, 1771, 0, 0, 0, 946, 0,
+ 0, 0, 880, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 946, 0, 0, 0, 0, 0, 0, 946,
+ 0, 0, 946, 0, 0, 0, 0, 0, 946, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 886, 0, 0, 0, 0, 0, 946, 0,
+ 0, 0, 0, 0, 946, 0, 0, 0, 0, 0,
+ 0, 946, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 946, 0, 0, 0, 0,
+ 886, 0, 0, 0, 0, 0, 0, 0, 946, 0,
+ 0, 0, 0, 1771, 0, 0, 0, 0, 0, 946,
+ 0, 0, 886, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3401,
+ 3402, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 947, 0, 0, 0, 0, 3417, 3418,
+ 882, 3420, 3421, 0, 0, 0, 3424, 3425, 0, 0,
+ 0, 882, 0, 0, 0, 0, 0, 0, 880, 1771,
+ 0, 3436, 0, 0, 0, 0, 0, 882, 3445, 0,
+ 0, 0, 3448, 3449, 886, 947, 3452, 3453, 0, 0,
+ 0, 0, 0, 3458, 0, 0, 0, 947, 0, 0,
+ 0, 0, 0, 0, 0, 3473, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 3490, 0, 0,
+ 0, 0, 3492, 0, 0, 0, 0, 0, 0, 0,
+ 0, 947, 0, 0, 0, 0, 0, 3498, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3505, 0, 0, 3509,
+ 0, 3511, 3514, 3516, 0, 0, 0, 0, 3524, 3527,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3540, 0,
+ 0, 0, 0, 885, 3550, 0, 0, 0, 3553, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3563, 3564, 0, 0, 0, 3569, 0, 0, 0, 0,
+ 0, 3578, 3579, 0, 0, 886, 0, 0, 0, 1772,
+ 0, 0, 0, 0, 0, 3588, 0, 0, 3589, 0,
+ 0, 0, 0, 0, 946, 3601, 3602, 0, 947, 0,
+ 0, 3606, 0, 882, 0, 0, 0, 0, 0, 0,
+ 0, 0, 946, 3613, 0, 0, 3616, 0, 0, 946,
+ 0, 3619, 0, 0, 0, 0, 0, 3622, 3623, 0,
+ 0, 0, 0, 0, 0, 3629, 0, 0, 0, 3631,
+ 0, 0, 0, 3638, 3639, 3640, 3641, 0, 3643, 0,
+ 0, 0, 877, 0, 0, 0, 877, 877, 0, 0,
+ 0, 3668, 3669, 0, 3671, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 3680, 3681, 3682, 0, 0,
+ 0, 880, 0, 0, 947, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1771, 0, 886, 0, 0, 0, 1771,
+ 0, 0, 0, 883, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 877, 0, 0, 0, 0, 0,
+ 877, 0, 0, 0, 0, 0, 0, 0, 0, 883,
+ 0, 0, 3734, 0, 0, 0, 0, 0, 0, 0,
+ 3758, 0, 0, 0, 1, 0, 0, 0, 880, 0,
+ 0, 0, 0, 0, 2, 0, 3, 4, 0, 3770,
+ 0, 877, 0, 886, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 946,
+ 0, 0, 0, 0, 6, 0, 879, 0, 0, 880,
+ 879, 879, 0, 0, 0, 947, 7, 947, 8, 9,
+ 0, 0, 0, 0, 0, 10, 0, 11, 0, 3838,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,
+ 0, 13, 880, 0, 0, 0, 0, 0, 3852, 0,
+ 3854, 0, 0, 0, 0, 0, 0, 0, 14, 0,
+ 0, 15, 947, 0, 0, 0, 882, 0, 879, 0,
+ 0, 0, 937, 0, 879, 0, 16, 0, 17, 0,
+ 0, 0, 18, 0, 0, 0, 0, 0, 5496, 0,
+ 0, 0, 0, 0, 0, 0, 20, 883, 21, 0,
+ 0, 0, 0, 886, 0, 22, 0, 0, 0, 0,
+ 0, 0, 1772, 0, 0, 879, 0, 937, 0, 0,
+ 0, 0, 23, 0, 0, 0, 0, 0, 946, 946,
+ 0, 0, 0, 882, 0, 0, 0, 0, 0, 24,
+ 0, 0, 0, 0, 3917, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 946, 0, 0, 946, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 882, 0, 0, 0, 0, 25,
+ 26, 0, 0, 0, 0, 27, 0, 0, 0, 0,
+ 877, 0, 0, 0, 0, 0, 0, 0, 0, 28,
+ 0, 0, 0, 0, 0, 0, 0, 882, 0, 0,
+ 0, 0, 0, 2046, 0, 0, 2047, 29, 0, 0,
+ 2048, 2049, 2050, 0, 0, 0, 0, 0, 0, 886,
+ 1771, 1771, 1771, 880, 886, 886, 0, 2535, 0, 0,
+ 3926, 0, 0, 0, 880, 0, 0, 2536, 0, 0,
+ 0, 0, 0, 0, 2537, 946, 0, 0, 883, 0,
+ 880, 30, 0, 877, 0, 0, 0, 877, 0, 883,
+ 0, 0, 0, 0, 946, 31, 0, 0, 0, 0,
+ 2538, 32, 33, 0, 34, 883, 0, 0, 0, 35,
+ 0, 0, 4446, 0, 0, 36, 946, 0, 37, 0,
+ 0, 0, 0, 0, 0, 38, 0, 0, 0, 0,
+ 0, 39, 40, 880, 0, 0, 0, 0, 0, 41,
+ 0, 0, 0, 42, 879, 947, 0, 0, 880, 0,
+ 0, 880, 880, 43, 0, 0, 0, 0, 0, 947,
+ 0, 0, 0, 0, 0, 0, 0, 886, 44, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 880, 880, 0, 0, 0, 0, 45, 877,
+ 1772, 0, 0, 0, 0, 0, 0, 0, 0, 46,
+ 0, 0, 946, 0, 877, 47, 0, 0, 0, 877,
+ 48, 886, 0, 0, 2539, 0, 0, 879, 882, 2540,
+ 0, 879, 0, 49, 0, 0, 0, 885, 0, 882,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2541, 2234, 0, 0, 882, 50, 0, 4135, 1771,
+ 0, 0, 0, 885, 0, 946, 2542, 946, 0, 0,
+ 0, 883, 0, 0, 56, 0, 0, -136, 4147, 0,
+ 946, 0, 946, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 4154, 1772, 0, 0, 4154,
+ 0, 0, 0, 0, 4165, 4166, 4167, 2286, 882, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2543, 880, 882, 2544, 0, 882, 882, 0, 0,
+ 0, 0, 0, 879, 0, 0, 0, 0, 0, 0,
+ 4197, 4198, 4199, 4200, 0, 0, 0, 0, 879, 946,
+ 0, 0, 0, 879, 0, 0, 0, 882, 882, 0,
+ 0, 1772, 0, 947, 0, 0, 0, 0, 0, 0,
+ 4216, 0, 0, 0, 0, 0, 0, 0, 4219, 0,
+ 4223, 4224, 4225, 0, 0, 0, 0, 0, 0, 0,
+ 0, 946, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 946, 885, 0, 2545, 0, 0, 0, 2046, 0, 0,
+ 2047, 0, 0, 0, 2048, 2049, 2050, 0, 0, 0,
+ 0, 0, 946, 0, 0, 946, 0, 0, 0, 0,
+ 0, 2535, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2536, 0, 0, 0, 0, 0, 0, 2537, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 877, 0, 0, 877, 0, 877, 0, 0,
+ 0, 0, 877, 0, 2538, 947, 0, 882, 0, 0,
+ 0, 0, 0, 0, 0, 0, 4308, 0, 937, 0,
+ 0, 0, 0, 0, 0, 4314, 0, 0, 0, 0,
+ 0, 947, 0, 2475, 883, 1771, 0, 0, 0, 0,
+ 0, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484,
+ 877, 4324, 4325, 0, 0, 0, 4326, 0, 877, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 4368, 0,
+ 0, 0, 0, 877, 0, 0, 0, 0, 0, 0,
+ 937, 937, 885, 0, 3969, 0, 0, 0, 0, 3970,
+ 0, 883, 0, 885, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2539, 885,
+ 0, 0, 0, 2540, 0, 0, 879, 0, 0, 879,
+ 4405, 879, 0, 0, 0, 4411, 879, 0, 0, 0,
+ 0, 4417, 883, 0, 0, 2541, 2234, 0, 947, 0,
+ 0, 0, 0, 877, 0, 877, 0, 0, 0, 0,
+ 2542, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 4456, 0, 0, 0, 883, 0, 0, 0, 0,
+ 0, 0, 0, 0, 879, 0, 0, 0, 0, 0,
+ 0, 0, 879, 0, 0, 0, 0, 0, 0, 0,
+ 4471, 2286, 4472, 0, 0, 0, 946, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2543, 0, 879, 2544, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 4497, 0, 0, 0, 0, 0, 877,
+ 0, 0, 0, 0, 0, 0, 0, 1771, 0, 0,
+ 0, 0, 1771, 0, 1771, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 885, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 879, 1771, 879,
+ 0, 877, 0, 0, 1772, 0, 0, 2046, 0, 0,
+ 2047, 0, 0, 0, 2048, 2049, 2050, 3971, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 877,
+ 0, 2535, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2536, 0, 0, 946, 0, 0, 946, 2537, 0,
+ 0, 0, 1772, 0, 0, 0, 0, 0, 0, 0,
+ 937, 937, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1772, 0, 0, 0, 2538, 0, 883, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 883, 0, 0,
+ 0, 0, 0, 879, 0, 0, 0, 877, 0, 0,
+ 0, 0, 0, 883, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2475, 0, 877,
+ 0, 0, 0, 0, 0, 2476, 2477, 2478, 2479, 2480,
+ 2481, 2482, 2483, 2484, 0, 879, 0, 946, 946, 880,
+ 0, 877, 0, 880, 880, 0, 0, 0, 946, 0,
+ 0, 0, 0, 0, 0, 0, 883, 0, 0, 0,
+ 0, 0, 0, 879, 0, 946, 0, 0, 0, 0,
+ 0, 883, 0, 0, 883, 883, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2539, 0,
+ 0, 4681, 0, 2540, 4688, 0, 4689, 0, 0, 0,
+ 0, 880, 0, 0, 0, 883, 883, 880, 0, 4696,
+ 0, 0, 0, 0, 0, 2541, 2234, 0, 0, 0,
+ 0, 4702, 0, 0, 877, 4705, 0, 0, 885, 0,
+ 2542, 879, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 4729, 0, 946, 877, 880, 0,
+ 0, 0, 0, 879, 0, 0, 0, 0, 0, 0,
+ 0, 0, 4733, 0, 0, 0, 0, 0, 4737, 0,
+ 0, 2286, 877, 0, 0, 879, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2543, 0, 0, 2544, 0,
+ 0, 0, 0, 4772, 0, 885, 0, 4776, 0, 0,
+ 0, 0, 0, 0, 882, 0, 0, 3942, 882, 882,
+ 0, 0, 4786, 4787, 4788, 4789, 0, 0, 0, 0,
+ 0, 0, 4793, 4794, 4795, 4796, 0, 0, 0, 0,
+ 0, 4798, 4799, 0, 0, 883, 885, 4806, 4807, 0,
+ 4809, 4810, 4811, 4812, 4813, 4814, 4815, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 4824, 0, 879, 0,
+ 4827, 4828, 4829, 4830, 0, 0, 882, 0, 0, 885,
+ 0, 2046, 882, 0, 2047, 0, 0, 2545, 2048, 2049,
+ 2050, 879, 0, 0, 4154, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2535, 0, 0, 0, 0,
+ 2046, 0, 4850, 2047, 0, 2536, 879, 2048, 2049, 2050,
+ 0, 0, 2537, 882, 0, 0, 0, 0, 0, 0,
+ 0, 0, 877, 0, 2535, 0, 0, 3974, 0, 0,
+ 0, 0, 0, 0, 2536, 0, 0, 0, 2538, 0,
+ 0, 2537, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 880, 0, 0,
+ 0, 0, 946, 0, 0, 0, 0, 2538, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2475, 4931, 0,
+ 0, 0, 0, 0, 0, 2476, 2477, 2478, 2479, 2480,
+ 2481, 2482, 2483, 2484, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 946, 0, 0, 0, 0, 0,
+ 0, 4154, 877, 0, 0, 0, 946, 0, 4956, 0,
+ 4957, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 880, 0, 0, 0, 880, 0, 0, 0, 877, 0,
+ 0, 0, 4971, 0, 0, 0, 0, 0, 0, 0,
+ 946, 0, 2539, 0, 0, 0, 879, 2540, 0, 2046,
+ 885, 0, 2047, 0, 0, 0, 2048, 2049, 2050, 0,
+ 0, 885, 0, 0, 0, 0, 0, 0, 0, 2541,
+ 2234, 2539, 0, 2535, 0, 0, 2540, 885, 0, 0,
+ 0, 0, 0, 2536, 2542, 0, 0, 0, 0, 0,
+ 2537, 0, 0, 0, 0, 0, 0, 0, 2541, 2234,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 882, 2542, 0, 0, 2538, 0, 1771, 0,
+ 0, 0, 0, 0, 0, 2286, 880, 0, 0, 0,
+ 885, 0, 0, 0, 0, 0, 879, 946, 0, 2543,
+ 0, 880, 2544, 0, 0, 885, 880, 0, 885, 885,
+ 0, 0, 0, 0, 2286, 0, 0, 0, 0, 0,
+ 0, 0, 879, 0, 0, 0, 0, 4559, 2543, 0,
+ 877, 2544, 0, 0, 0, 0, 0, 0, 0, 885,
+ 885, 0, 0, 950, 0, 882, 0, 0, 0, 882,
+ 0, 0, 0, 0, 0, 984, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 5920, 1003, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 877, 0, 0,
+ 0, 0, 877, 946, 0, 0, 0, 0, 0, 0,
+ 2539, 2545, 5107, 5108, 5109, 2540, 0, 0, 5110, 5111,
+ 5112, 5113, 0, 0, 0, 5115, 0, 0, 4560, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2541, 2234, 0,
+ 2545, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2542, 0, 0, 0, 0, 0, 0, 0,
+ 0, 5134, 5135, 5136, 5137, 5138, 0, 5140, 5141, 0,
+ 0, 882, 0, 0, 0, 0, 0, 0, 0, 5150,
+ 5151, 0, 0, 0, 879, 0, 882, 0, 0, 885,
+ 0, 882, 0, 2286, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2543, 0, 0,
+ 2544, 2475, 0, 5157, 946, 0, 946, 0, 0, 2476,
+ 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 0, 0,
+ 0, 879, 0, 5921, 877, 0, 879, 0, 0, 0,
+ 2475, 0, 0, 0, 0, 0, 0, 0, 2476, 2477,
+ 2478, 2479, 2480, 2481, 2482, 2483, 2484, 0, 0, 0,
+ 0, 946, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 880,
+ 0, 0, 880, 0, 880, 0, 0, 0, 0, 880,
+ 0, 0, 883, 0, 0, 0, 883, 883, 0, 2545,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1771, 0, 0, 0, 5220, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 880, 0, 0,
+ 0, 0, 0, 0, 0, 880, 0, 0, 0, 0,
+ 0, 0, 0, 0, 883, 0, 0, 0, 877, 0,
+ 883, 0, 0, 0, 0, 0, 0, 0, 879, 0,
+ 880, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5271, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 877, 0, 0, 2475,
+ 0, 883, 0, 0, 0, 0, 0, 2476, 2477, 2478,
+ 2479, 2480, 2481, 2482, 2483, 2484, 0, 0, 877, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2046, 0,
+ 0, 2047, 0, 0, 0, 2048, 2049, 2050, 0, 0,
+ 880, 0, 880, 0, 882, 0, 0, 882, 0, 882,
+ 0, 0, 2535, 0, 882, 0, 0, 0, 0, 0,
+ 0, 0, 2536, 0, 0, 0, 0, 0, 0, 2537,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1022, 0,
+ 877, 628, 879, 0, 1054, 2538, 0, 0, 0, 0,
+ 0, 0, 882, 0, 0, 0, 0, 0, 0, 0,
+ 882, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 946, 0, 0, 0, 0, 0,
+ 879, 0, 0, 0, 0, 882, 880, 0, 946, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 879, 0, 5375, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1771,
+ 0, 0, 0, 5385, 0, 0, 0, 0, 880, 5391,
+ 5392, 0, 0, 0, 0, 0, 0, 0, 0, 5403,
+ 3979, 0, 0, 0, 0, 0, 5405, 0, 0, 0,
+ 0, 0, 0, 0, 0, 882, 880, 882, 0, 2539,
+ 883, 877, 0, 0, 2540, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 879, 0, 0, 0, 0, 0,
+ 0, 5457, 5458, 0, 0, 0, 2541, 2234, 0, 0,
+ 0, 0, 0, 0, 5466, 0, 5468, 0, 0, 0,
+ 0, 2542, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 5482, 0, 0, 0, 1771, 0, 0, 0, 0,
+ 0, 1344, 0, 0, 880, 0, 0, 0, 0, 0,
+ 0, 0, 0, 883, 0, 0, 4154, 883, 0, 0,
+ 1367, 0, 2286, 0, 5516, 0, 880, 0, 0, 0,
+ 0, 882, 0, 0, 0, 0, 2543, 0, 0, 2544,
+ 0, 0, 0, 0, 0, 0, 0, 0, 880, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1771, 877, 946, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 882, 0, 879, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2046,
+ 1425, 0, 2047, 5553, 0, 0, 2048, 2049, 2050, 0,
+ 0, 882, 0, 0, 0, 0, 885, 0, 0, 0,
+ 885, 885, 0, 2535, 0, 0, 3986, 5573, 0, 883,
+ 0, 0, 0, 2536, 0, 0, 0, 5580, 2545, 877,
+ 2537, 880, 0, 0, 883, 0, 0, 1561, 0, 883,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1320, 1320, 0, 880, 0, 2538, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 885, 882,
+ 0, 0, 0, 0, 885, 0, 0, 0, 0, 880,
+ 0, 0, 0, 0, 946, 0, 0, 0, 0, 0,
+ 0, 882, 0, 0, 5639, 879, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 946, 0, 0, 882, 0, 885, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2475, 1320,
+ 0, 0, 0, 0, 0, 0, 2476, 2477, 2478, 2479,
+ 2480, 2481, 2482, 2483, 2484, 0, 0, 0, 0, 877,
+ 0, 1821, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 879, 4154, 0, 0, 0, 0, 0,
+ 2539, 0, 0, 0, 0, 2540, 0, 0, 0, 1855,
+ 1858, 1859, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 882, 2541, 2234, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2542, 0, 0, 0, 0, 0, 0, 882,
+ 0, 0, 0, 0, 0, 5734, 0, 946, 0, 880,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2046, 5747,
+ 0, 2047, 0, 0, 882, 2048, 2049, 2050, 0, 0,
+ 1683, 1687, 0, 2286, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2535, 0, 0, 0, 0, 2543, 0, 0,
+ 2544, 0, 2536, 0, 0, 877, 0, 0, 0, 2537,
+ 877, 877, 0, 879, 0, 0, 0, 0, 1344, 0,
+ 0, 0, 883, 0, 0, 883, 0, 883, 5786, 0,
+ 0, 0, 883, 0, 1984, 2538, 0, 0, 0, 0,
+ 0, 0, 0, 1344, 0, 0, 0, 0, 0, 880,
+ 0, 0, 0, 0, 885, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 880, 0, 0, 0, 0,
+ 883, 0, 0, 0, 0, 0, 0, 0, 883, 2545,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1771, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 883, 0, 0, 0, 0, 5860, 0,
+ 0, 0, 0, 877, 882, 0, 0, 885, 0, 0,
+ 0, 885, 0, 0, 0, 0, 0, 0, 0, 879,
+ 0, 0, 0, 0, 879, 879, 0, 0, 0, 2539,
+ 5872, 1771, 0, 0, 2540, 0, 0, 0, 0, 0,
+ 0, 5882, 0, 0, 0, 0, 0, 877, 0, 1771,
+ 0, 0, 0, 0, 0, 0, 2541, 2234, 0, 0,
+ 0, 2529, 0, 883, 0, 883, 0, 0, 0, 2475,
+ 0, 2542, 0, 0, 0, 0, 0, 2476, 2477, 2478,
+ 2479, 2480, 2481, 2482, 2483, 2484, 0, 0, 0, 0,
+ 0, 0, 0, 2001, 882, 0, 0, 880, 2046, 0,
+ 0, 2047, 0, 0, 0, 2048, 2049, 2050, 0, 0,
+ 0, 0, 2286, 885, 0, 0, 0, 0, 0, 0,
+ 882, 0, 2535, 0, 2016, 4566, 2543, 0, 885, 2544,
+ 0, 0, 2536, 885, 0, 0, 0, 879, 0, 2537,
+ 0, 2620, 5954, 0, 880, 0, 0, 0, 0, 880,
+ 0, 0, 2035, 2036, 2037, 0, 2039, 0, 0, 883,
+ 0, 0, 0, 0, 0, 2538, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2493, 0, 0, 0,
+ 0, 879, 0, 0, 0, 0, 2046, 0, 0, 2047,
+ 0, 0, 0, 2048, 2049, 2050, 0, 0, 0, 0,
+ 0, 883, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2535, 0, 0, 0, 0, 0, 0, 0, 2545, 0,
+ 2536, 0, 0, 0, 2737, 0, 0, 2537, 0, 883,
+ 0, 0, 0, 2760, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 4513, 0, 0, 2538, 0, 0, 0, 0, 0, 0,
+ 0, 0, 882, 0, 0, 2798, 0, 0, 0, 0,
+ 0, 2810, 2810, 0, 0, 2810, 0, 0, 2587, 2539,
+ 0, 880, 2599, 2604, 2540, 0, 0, 0, 2828, 0,
+ 0, 2831, 0, 0, 0, 0, 0, 883, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2541, 2234, 0, 882,
+ 0, 0, 0, 0, 882, 0, 0, 0, 2475, 883,
+ 0, 2542, 0, 0, 0, 0, 2476, 2477, 2478, 2479,
+ 2480, 2481, 2482, 2483, 2484, 0, 2046, 0, 0, 2047,
+ 0, 883, 0, 2048, 2049, 2050, 0, 2884, 4992, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2535, 2903, 2286, 0, 0, 0, 0, 2539, 0, 0,
+ 2536, 0, 2540, 0, 0, 0, 2543, 2537, 0, 2544,
+ 0, 0, 0, 0, 0, 0, 885, 0, 0, 885,
+ 0, 885, 0, 0, 2541, 2234, 885, 0, 0, 0,
+ 0, 0, 0, 2538, 0, 880, 0, 0, 0, 2542,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 883, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 880, 885, 0, 882, 883, 0, 0,
+ 2286, 0, 885, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2543, 880, 2046, 2544, 2545, 2047,
+ 2925, 0, 883, 2048, 2049, 2050, 0, 885, 0, 0,
+ 0, 2928, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2535, 0, 0, 0, 0, 0, 0, 0, 4998, 0,
+ 2536, 0, 0, 0, 0, 0, 0, 2537, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2539, 0, 0,
+ 0, 0, 2540, 2972, 2810, 1683, 1683, 1683, 0, 0,
+ 0, 0, 0, 2538, 0, 0, 0, 880, 0, 0,
+ 0, 0, 0, 0, 2541, 2234, 0, 885, 3007, 885,
+ 0, 0, 0, 0, 0, 3020, 2545, 0, 0, 2542,
+ 0, 0, 0, 0, 2046, 0, 0, 2047, 2475, 0,
+ 882, 2048, 2049, 2050, 0, 0, 2476, 2477, 2478, 2479,
+ 2480, 2481, 2482, 2483, 2484, 0, 0, 0, 2535, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2536, 0,
+ 2286, 0, 0, 0, 0, 2537, 0, 0, 882, 0,
+ 0, 0, 0, 0, 2543, 0, 0, 2544, 0, 0,
+ 0, 0, 883, 4999, 0, 0, 0, 3081, 0, 0,
+ 882, 2538, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 885, 0, 0, 0, 2539, 0, 0,
+ 0, 0, 2540, 0, 0, 0, 2475, 0, 880, 0,
+ 1344, 1344, 0, 0, 2476, 2477, 2478, 2479, 2480, 2481,
+ 2482, 2483, 2484, 0, 2541, 2234, 0, 3134, 0, 0,
+ 0, 0, 0, 0, 0, 885, 0, 0, 0, 2542,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5000, 2046, 882, 0, 2047, 0, 2545, 0, 2048, 2049,
+ 2050, 0, 883, 885, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2535, 0, 0, 0, 0,
+ 2286, 0, 0, 0, 0, 2536, 0, 0, 883, 0,
+ 0, 0, 2537, 0, 2543, 2539, 0, 2544, 0, 0,
+ 2540, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2538, 0,
+ 0, 0, 2541, 2234, 0, 0, 0, 0, 880, 0,
+ 0, 885, 0, 0, 0, 0, 0, 2542, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 885, 0, 0, 2475, 0, 0, 0,
+ 0, 0, 0, 0, 2476, 2477, 2478, 2479, 2480, 2481,
+ 2482, 2483, 2484, 882, 0, 885, 0, 0, 2286, 0,
+ 0, 0, 0, 0, 0, 0, 2545, 0, 0, 0,
+ 0, 0, 2543, 0, 0, 2544, 880, 0, 0, 0,
+ 0, 3162, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3182, 0, 3183, 0, 3185, 0, 0,
+ 3199, 3202, 3207, 0, 0, 0, 0, 0, 3216, 0,
+ 883, 3221, 2539, 0, 0, 0, 0, 2540, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3228, 3229, 3230, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 885, 2541,
+ 2234, 0, 0, 3231, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2542, 0, 0, 883, 0, 0,
+ 0, 885, 883, 0, 2545, 0, 2475, 0, 0, 0,
+ 0, 0, 0, 882, 2476, 2477, 2478, 2479, 2480, 2481,
+ 2482, 2483, 2484, 0, 0, 0, 885, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2286, 880, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2543,
+ 0, 0, 2544, 0, 0, 0, 2046, 0, 0, 2047,
+ 0, 0, 0, 2048, 2049, 2050, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2535, 882, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2536, 0, 0, 0, 0, 0, 0, 2537, 0, 0,
+ 0, 0, 0, 0, 2475, 0, 0, 0, 0, 0,
+ 0, 0, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483,
+ 2484, 0, 0, 2538, 0, 0, 3238, 0, 0, 0,
+ 0, 0, 0, 0, 883, 0, 0, 0, 0, 0,
+ 0, 2545, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 880, 0, 0, 0, 3255, 880, 880, 0,
+ 0, 0, 0, 0, 0, 0, 885, 0, 0, 0,
+ 2046, 2486, 0, 2047, 0, 0, 0, 2048, 2049, 2050,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 882, 0, 0, 2535, 0, 0, 0, 0, 0,
+ 0, 0, 0, 5518, 2536, 0, 5346, 0, 0, 3257,
+ 0, 2537, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2486, 0, 2539, 0, 0,
+ 0, 2475, 2540, 0, 0, 0, 0, 2538, 0, 2476,
+ 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 883, 3291,
+ 0, 0, 0, 0, 2541, 2234, 885, 0, 0, 3296,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2542,
+ 880, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 885, 0, 0, 0, 883, 0, 1425, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 883, 0,
+ 2286, 0, 0, 0, 880, 0, 0, 882, 0, 0,
+ 0, 0, 882, 882, 2543, 0, 0, 2544, 0, 0,
+ 0, 0, 0, 0, 0, 1425, 1425, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2539, 0, 0, 0, 0, 2540, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1344,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2541, 2234,
+ 883, 0, 0, 0, 3264, 3265, 3266, 3267, 3268, 3269,
+ 3270, 3271, 3272, 2542, 3273, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1320, 0, 1683, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2545, 0, 0, 0,
+ 0, 0, 0, 0, 885, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2286, 882, 0, 0, 0, 0,
+ 0, 0, 0, 3231, 0, 0, 0, 3238, 2543, 0,
+ 3255, 2544, 3257, 0, 0, 3308, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 885, 0, 0, 0, 0, 885, 0, 0, 882,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 883, 3508, 0, 0, 0, 0, 0, 2036, 2037,
+ 0, 0, 0, 0, 0, 0, 2475, 3530, 0, 0,
+ 0, 0, 0, 0, 2476, 2477, 2478, 2479, 2480, 2481,
+ 2482, 2483, 2484, 0, 2486, 0, 0, 0, 2486, 3558,
+ 2545, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 640, 0, 0,
+ 0, 3450, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 641, 0, 0, 885, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 883, 0, 0, 0, 3636, 3637, 0, 0, 0,
+ 642, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2475, 0, 0, 643, 0, 0, 0, 0, 2476, 2477,
+ 2478, 2479, 2480, 2481, 2482, 2483, 2484, 0, 0, -861,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 644, 0, 0,
+ 0, 0, 0, 645, 0, 0, 0, 0, 0, 883,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 646, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 647, 0, 0, 0, 0, 0, 0, 0,
+ 0, 648, 0, 0, 0, 0, 3760, 0, 0, 0,
+ 0, 0, 885, 0, 649, 0, 0, 0, 0, 0,
+ 0, 0, 650, 0, 0, 0, 651, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -1062, 0, 0, 0, 0,
+ 885, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 885, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 652, 0, 0, 0, 0, 0, 0, 883,
+ 0, 0, -597, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3692, 3693, 1683, 0,
+ 0, 0, 3697, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2486, 653, 0, 0, 654, 0, 0, 3726,
+ 0, 0, 0, 0, 885, 0, 0, 2486, 0, 0,
+ 0, 3195, 0, 0, 0, 0, 0, 655, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2486, 2486, 2486, 0,
+ 2486, 656, 0, 0, 0, 0, 0, 0, -455, 689,
+ 0, 0, 0, 0, 690, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 657, 0,
+ 0, 0, 0, 0, 0, 0, 0, 658, 0, 0,
+ 0, 0, 0, 0, -455, 883, 0, 659, 0, 0,
+ 883, 883, 691, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 692, 660, 0, 0, 0,
+ 0, 0, 0, 661, 0, 0, 0, 0, 0, -455,
+ 0, 693, 662, 663, 0, 664, 665, 0, 0, 0,
+ 0, 0, 0, 0, 0, 885, 0, 0, 0, 694,
+ 0, 666, 0, 0, 0, 0, 0, 0, 667, 0,
+ 0, 668, 0, 0, 669, 0, 0, 0, 0, 0,
+ 0, 0, 0, 695, 0, 0, 0, -455, 0, 0,
+ 0, 0, 0, 0, 696, 0, 0, 0, 0, 0,
+ 0, 0, 0, 697, 0, 0, 0, 0, 0, 0,
+ 0, 4032, 0, 0, 0, 0, 698, 0, 0, 0,
+ 0, 699, 0, 883, 0, 0, 0, 0, 700, 0,
+ 0, 0, 1425, 0, 0, 0, 0, 3922, 0, 0,
+ 0, 0, 3928, 0, 0, 0, 0, 701, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 883, 0, 0,
+ 2039, 0, 0, 0, 0, 885, 0, 0, 0, 0,
+ 0, 3207, 0, 3207, 3207, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 702, 0, 0, 3989, 0, 0,
+ 3992, 0, 3994, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 197, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 703, 4013, 0, 4016, 0,
+ 4018, 0, 0, 885, 0, 0, 0, 0, 704, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 705,
+ 0, 0, 0, 0, 0, 0, 0, 0, 198, 213,
+ 706, 0, 0, 707, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 199, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 708, 0, 200, 709, 0, 0, 0, 710, 201, 711,
+ 0, 0, 0, 0, 0, 0, 712, 0, 0, 713,
+ 0, 0, 0, 0, 0, 0, 202, 0, 4083, 0,
+ 0, 0, 0, 2587, 0, 0, 0, 203, 714, 0,
+ 0, 0, 0, 0, 0, 715, 204, 0, 2604, 0,
+ 0, 716, 0, 0, 717, 0, 0, 0, 718, 205,
+ 0, 0, 0, 885, 206, 0, 719, 0, 720, 0,
+ 0, 207, 0, 721, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 722, 0, 0, 0,
+ 208, 0, 0, 0, 0, 0, 0, 0, 4241, 723,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2810, 0,
+ 0, 0, 0, 4133, 2486, 209, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 210, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 211, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 885,
+ 0, 0, 0, 0, 885, 885, 0, 0, 0, 0,
+ 0, 0, 212, 0, 0, 0, 0, 0, 2486, 0,
+ 0, 0, 213, 214, 0, 0, 215, 0, 0, 0,
+ 2486, 0, 0, 0, 0, 2486, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 216, 0, 0, 217, 0, 0, 0,
+ 218, 0, 219, 0, 0, 0, 0, 0, 0, 220,
+ 0, 0, 221, 0, 0, 0, 0, 4372, 4373, 4374,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 222, 0, 0, 4383, 0, 0, 0, 223, 0,
+ 0, 0, 0, 224, 225, 0, 0, 226, 0, 0,
+ 0, 227, 0, 0, 0, 0, 0, 885, 0, 0,
+ 0, 228, 0, 0, 0, 0, 229, 4408, 4410, 0,
+ 0, 0, 4415, 0, 0, 0, 0, 0, 0, 230,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 231, 0, 0, 0, 0, 0, 0, 0,
+ 0, 885, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1683, 0, 0, 0,
+ 0, 0, 1683, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 4496, 0, 0, 1344,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 4395, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 4598, 4599,
+ 4600, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 4514, 0, 0, 0, 0, 0, 0, 0, 0,
+ 4518, 0, 0, 0, 0, 0, 0, 0, 4520, 0,
+ 4521, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 4543, 4544, 4545,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3216, 0, 0, 0,
+ 0, 0, 0, 0, 4569, 0, 0, 4572, 0, 4574,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 4577,
+ 0, 0, 0, 0, 0, 0, 0, 4584, 4585, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 4643,
+ 0, 0, 0, 2486, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 4657, 0, 0, 0,
+ 0, 0, 0, 2486, 2486, 0, 2486, 0, 0, 0,
+ 0, 3195, 3195, 0, 3965, 0, 3195, 0, 0, 0,
+ 2486, 0, 0, 2486, 0, 0, 0, 0, 2486, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2486, 0, 0,
+ 0, 0, 2486, 0, 0, 0, 0, 0, 0, 2486,
+ 2486, 2486, 2486, 0, 0, 0, 3195, 3195, 0, 2486,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2486, 0, 2486, 0,
+ 0, 0, 0, 0, 4860, 2486, 2486, 2486, 2486, 2486,
+ 2486, 2486, 2486, 2486, 2486, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 4892, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2486,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3020, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 4950, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3081, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2486, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 4938, 4939, 0, 0, 0, 0, 5035,
+ 5036, 5037, 5038, 0, 4946, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 4988, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 4994, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 5013, 5015, 0, 0, 0, 0, 0, 5019, 5020,
+ 0, 0, 0, 5021, 0, 0, 0, 5022, 0, 0,
+ 5025, 5026, 0, 0, 0, 5030, 0, 0, 0, 0,
+ 0, 5034, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 5065, 0, 2486, 2486, 0, 0, 0, 2486, 0,
+ 0, 0, 1320, 0, 0, 0, 0, 0, 0, 0,
+ 5079, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2486, 0, 0,
+ 5089, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 5153, 0, 0, 0, 0, 0, 0, 5155, 0,
+ 0, 5249, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 5259, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 5190, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2486, 0, 0, 0, 0, 0, 2486,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 3965, 3965, 0,
+ 0, 3195, 3195, 3195, 3195, 0, 0, 3195, 3195, 3195,
+ 3195, 3195, 3195, 3195, 3195, 3195, 3195, 3965, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2486, 0, 0, 2486, 0, 2486, 0, 0, 3965, 3965,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2486, 3195, 3195, 2486, 0, 2486,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5277, 0, 0, 0, 0, 0, 5281, 5282, 5283, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 5294, 5295, 0, 2486, 5296, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 5441,
+ 0, 5316, 0, 0, 1344, 0, 0, 0, 0, 0,
+ 0, 0, 5334, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 5471, 2486, 0, 0, 0, 5349, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 5570, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 3216, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3195, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 5646, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2039, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 5668, 2486, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 5587, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 5623, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2486, 0, 0, 0, 2486,
+ 0, 2486, 2486, 0, 0, 0, 0, 3965, 3965, 3965,
+ 3965, 0, 0, 0, 3965, 3965, 3965, 3965, 3965, 3965,
+ 3965, 3965, 3965, 3965, 2486, 2486, 2486, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2486, 0, 0, 2486, 0, 2486, 5689, 0, 2486, 0,
+ 0, 3965, 3965, 0, 0, 2486, 2486, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 5334, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 5736, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2486, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2486, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 5821, 5821, 5821, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5334, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5848, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5889, 0, 3965, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 5914, 0, 5821, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2486,
+ 2486, 0, 0, 0, 0, 0, 0, 2486, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2486,
+ 0, 0, 0, 5990, 0, 2486, 3195, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2486, 0, 2486, 0, 0, 0,
+ 2486, 2486, 2486, 2486, 0, 0, 2486, 2486, 0, 0,
+ 0, 2486, 0, 0, 0, 2486, 0, 0, 5821, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3195, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2486, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2486, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2486, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1683, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2486, 0, 2486, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2486, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2486, 0,
+ 3965, 3195, 2486, 2486, 2486, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2486, 2486, 2486, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3195, 0, 0, 3965, 0, 0, 0, 2486, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2486, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2486, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3965, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3965, 0, 3195, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2486, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2486, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2486, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2486, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2486, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 3195, 3195, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2486,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2486, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2486, 0, 234, 0, 1236,
+ 684, 0, 1237, 1238, 1239, 745, 1240, 0, 0, 0,
+ 0, 3965, 3965, 0, 235, 236, 237, 238, 239, 240,
+ 241, 242, 1677, 243, 244, 245, 0, 0, 0, 0,
+ 1241, 0, 0, 246, 247, 248, 0, 249, 250, 251,
+ 252, 253, 254, 255, 256, 257, 1242, 259, 1243, 1244,
+ 0, 262, 263, 264, 265, 266, 267, 268, 1245, 1246,
+ 269, 270, 1247, 1248, 273, 0, 274, 275, 276, 277,
+ 1249, 2486, 1250, 0, 280, 281, 282, 283, 284, 285,
+ 286, 287, 288, 289, 0, 290, 291, 292, 293, 294,
+ 295, 0, 296, 297, 298, 299, 1251, 1252, 1253, 1254,
+ 1255, 1256, 1257, 301, 302, 303, 304, 305, 306, 1258,
+ 1259, 309, 1260, 310, 0, 311, 312, 313, 314, 315,
+ 316, 317, 0, 318, 319, 320, 321, 1678, 0, 322,
+ 323, 860, 325, 326, 0, 327, 328, 329, 0, 330,
+ 331, 332, 0, 333, 334, 335, 336, 1261, 338, 339,
+ 340, 341, 1262, 1263, 343, 0, 344, 345, 346, 1264,
+ 348, 0, 349, 0, 350, 351, 0, 352, 353, 354,
+ 355, 356, 0, 357, 1265, 0, 1266, 360, 361, 0,
+ 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
+ 0, 372, 373, 374, 375, 376, 377, 378, 0, 379,
+ 380, 381, 382, 383, 384, 385, 1267, 1268, 0, 1269,
+ 0, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 0, 0, 399, 1270, 401, 402, 403, 0, 404,
+ 405, 406, 1271, 1272, 407, 408, 409, 410, 411, 412,
+ 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
+ 423, 424, 1273, 426, 1274, 428, 429, 430, 431, 432,
+ 433, 434, 435, 1275, 437, 1276, 438, 439, 440, 441,
+ 1277, 1278, 443, 1279, 445, 446, 447, 0, 448, 449,
+ 0, 0, 1280, 451, 452, 0, 0, 453, 454, 455,
+ 456, 457, 458, 1281, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 0, 470, 471, 1282, 473, 474,
+ 475, 476, 477, 0, 478, 479, 480, 481, 482, 483,
+ 484, 485, 486, 487, 1283, 489, 490, 491, 492, 0,
+ 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
+ 503, 504, 505, 0, 506, 507, 508, 509, 510, 511,
+ 512, 513, 1284, 515, 516, 517, 518, 519, 520, 521,
+ 522, 523, 0, 524, 525, 526, 527, 528, 1285, 529,
+ 530, 531, 532, 533, 534, 535, 536, 1286, 538, 0,
+ 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
+ 549, 550, 551, 1287, 553, 0, 554, 555, 0, 556,
+ 557, 558, 559, 560, 561, 562, 0, 563, 1288, 1289,
+ 0, 0, 566, 567, 1290, 569, 1291, 1292, 571, 572,
+ 573, 574, 575, 576, 577, 578, 0, 1293, 579, 580,
+ 581, 582, 583, 1294, 0, 584, 585, 586, 587, 588,
+ 589, 1295, 1679, 591, 592, 593, 594, 595, 596, 0,
+ 0, 597, 0, 0, 598, 599, 600, 601, 602, 603,
+ 604, 1296, 1297, 1298, 1299, 609, 1300, 1301, 1302, 1303,
+ 614, 615, 616, 617, 1304, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1305, 1306, 1680, 0, 0,
+ 0, 0, 0, 0, 1308, 1681, 234, 0, 1236, 684,
+ 0, 1237, 1238, 1239, 745, 1240, 0, 0, 0, 0,
+ 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
+ 242, 0, 243, 244, 245, 0, 0, 0, 0, 1241,
+ 0, 0, 246, 247, 248, 0, 249, 250, 251, 252,
+ 253, 254, 255, 256, 257, 1242, 259, 1243, 1244, 0,
+ 262, 263, 264, 265, 266, 267, 268, 1245, 1246, 269,
+ 270, 1247, 1248, 273, 0, 274, 275, 276, 277, 1249,
+ 0, 1250, 0, 280, 281, 282, 283, 284, 285, 286,
+ 287, 288, 289, 0, 290, 291, 292, 293, 294, 295,
+ 0, 296, 297, 298, 299, 1251, 1252, 1253, 1254, 1255,
+ 1256, 1257, 301, 302, 303, 304, 305, 306, 1258, 1259,
+ 309, 1260, 310, 0, 311, 312, 313, 314, 315, 316,
+ 317, 0, 318, 319, 320, 321, 0, 0, 322, 323,
+ 860, 325, 326, 0, 327, 328, 329, 0, 330, 331,
+ 332, 0, 333, 334, 335, 336, 1261, 338, 339, 340,
+ 341, 1262, 1263, 343, 0, 344, 345, 346, 1264, 348,
+ 0, 349, 0, 350, 351, 0, 352, 353, 354, 355,
+ 356, 0, 357, 1265, 0, 1266, 360, 361, 0, 362,
+ 363, 364, 365, 366, 367, 368, 369, 370, 371, 0,
+ 372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
+ 381, 382, 383, 384, 385, 1267, 1268, 0, 1269, 0,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 0, 0, 399, 1270, 401, 402, 403, 0, 404, 405,
+ 406, 1271, 1272, 407, 408, 409, 410, 411, 412, 413,
+ 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
+ 424, 1273, 426, 1274, 428, 429, 430, 431, 432, 433,
+ 434, 435, 1275, 437, 1276, 438, 439, 440, 441, 1277,
+ 1278, 443, 1279, 445, 446, 447, 0, 448, 449, 0,
+ 0, 1280, 451, 452, 0, 0, 453, 454, 455, 456,
+ 457, 458, 1281, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 0, 470, 471, 1282, 473, 474, 475,
+ 476, 477, 0, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 1283, 489, 490, 491, 492, 0, 493,
+ 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
+ 504, 505, 0, 506, 507, 508, 509, 510, 511, 512,
+ 513, 1284, 515, 516, 517, 518, 519, 520, 521, 522,
+ 523, 40, 524, 525, 526, 527, 528, 1285, 529, 530,
+ 531, 532, 533, 534, 535, 536, 1286, 538, 0, 539,
+ 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
+ 550, 551, 1287, 553, 0, 554, 555, 44, 556, 557,
+ 558, 559, 560, 561, 562, 0, 563, 1288, 1289, 0,
+ 0, 566, 567, 1290, 569, 1291, 1292, 571, 572, 573,
+ 574, 575, 576, 577, 578, 0, 1293, 579, 580, 581,
+ 582, 583, 1294, 0, 584, 585, 586, 587, 588, 1175,
+ 1295, 0, 591, 592, 593, 594, 595, 596, 0, 0,
+ 597, 0, 49, 598, 599, 600, 601, 602, 603, 604,
+ 1296, 1297, 1298, 1299, 609, 1300, 1301, 1302, 1303, 614,
+ 615, 616, 617, 1304, 0, 50, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1305, 1306, 0, 0, 0, 0,
+ 0, 0, 0, 1308, 5547, 234, 0, 1236, 684, 0,
+ 1237, 1238, 1239, 745, 1240, 0, 0, 0, 0, 0,
+ 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
+ 0, 243, 244, 245, 0, 0, 0, 0, 1241, 0,
+ 0, 246, 247, 248, 0, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 1242, 259, 1243, 1244, 0, 262,
+ 263, 264, 265, 266, 267, 268, 1245, 1246, 269, 270,
+ 1247, 1248, 273, 0, 274, 275, 276, 277, 1249, 0,
+ 1250, 0, 280, 281, 282, 283, 284, 285, 286, 287,
+ 288, 289, 0, 290, 291, 292, 293, 294, 295, 0,
+ 296, 297, 298, 299, 1251, 1252, 1253, 1254, 1255, 1256,
+ 1257, 301, 302, 303, 304, 305, 306, 1258, 1259, 309,
+ 1260, 310, 0, 311, 312, 313, 314, 315, 316, 317,
+ 0, 318, 319, 320, 321, 0, 0, 322, 323, 860,
+ 325, 326, 0, 327, 328, 329, 0, 330, 331, 332,
+ 0, 333, 334, 335, 336, 1261, 338, 339, 340, 341,
+ 1262, 1263, 343, 0, 344, 345, 346, 1264, 348, 0,
+ 349, 0, 350, 351, 0, 352, 353, 354, 355, 356,
+ 0, 357, 1265, 0, 1266, 360, 361, 0, 362, 363,
+ 364, 365, 366, 367, 368, 369, 370, 371, 0, 372,
+ 373, 374, 375, 376, 377, 378, 0, 379, 380, 381,
+ 382, 383, 384, 385, 1267, 1268, 0, 1269, 0, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 0,
+ 0, 399, 1270, 401, 402, 403, 0, 404, 405, 406,
+ 1271, 1272, 407, 408, 409, 410, 411, 412, 413, 414,
+ 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
+ 1273, 426, 1274, 428, 429, 430, 431, 432, 433, 434,
+ 435, 1275, 437, 1276, 438, 439, 440, 441, 1277, 1278,
+ 443, 1279, 445, 446, 447, 0, 448, 449, 0, 0,
+ 1280, 451, 452, 0, 0, 453, 454, 455, 456, 457,
+ 458, 1281, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 0, 470, 471, 1282, 473, 474, 475, 476,
+ 477, 0, 478, 479, 480, 481, 482, 483, 484, 485,
+ 486, 487, 1283, 489, 490, 491, 492, 0, 493, 494,
+ 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
+ 505, 0, 506, 507, 508, 509, 510, 511, 512, 513,
+ 1284, 515, 516, 517, 518, 519, 520, 521, 522, 523,
+ 0, 524, 525, 526, 527, 528, 1285, 529, 530, 531,
+ 532, 533, 534, 535, 536, 1286, 538, 0, 539, 540,
+ 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
+ 551, 1287, 553, 0, 554, 555, 0, 556, 557, 558,
+ 559, 560, 561, 562, 0, 563, 1288, 1289, 0, 0,
+ 566, 567, 1290, 569, 1291, 1292, 571, 572, 573, 574,
+ 575, 576, 577, 578, 0, 1293, 579, 580, 581, 582,
+ 583, 1294, 0, 584, 585, 586, 587, 588, 589, 1295,
+ 0, 591, 592, 593, 594, 595, 596, 0, 0, 597,
+ 0, 0, 598, 599, 600, 601, 602, 603, 604, 1296,
+ 1297, 1298, 1299, 609, 1300, 1301, 1302, 1303, 614, 615,
+ 616, 617, 1304, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1305, 1306, 0, 0, 0, 0, 0,
+ 0, 0, 1308, 3197, 234, 0, 1236, 684, 0, 1237,
+ 1238, 1239, 745, 1240, 0, 0, 0, 0, 0, 0,
+ 0, 235, 236, 237, 238, 239, 240, 241, 242, 0,
+ 243, 244, 245, 0, 0, 0, 0, 1241, 0, 0,
+ 246, 247, 248, 0, 249, 250, 251, 252, 253, 254,
+ 255, 256, 257, 1242, 259, 1243, 1244, 0, 262, 263,
+ 264, 265, 266, 267, 268, 1245, 1246, 269, 270, 1247,
+ 1248, 273, 0, 274, 275, 276, 277, 1249, 0, 1250,
+ 0, 280, 281, 282, 283, 284, 285, 286, 287, 288,
+ 289, 0, 290, 291, 292, 293, 294, 295, 0, 296,
+ 297, 298, 299, 1251, 1252, 1253, 1254, 1255, 1256, 1257,
+ 301, 302, 303, 304, 305, 306, 1258, 1259, 309, 1260,
+ 310, 0, 311, 312, 313, 314, 315, 316, 317, 0,
+ 318, 319, 320, 321, 0, 0, 322, 323, 860, 325,
+ 326, 0, 327, 328, 329, 0, 330, 331, 332, 0,
+ 333, 334, 335, 336, 1261, 338, 339, 340, 341, 1262,
+ 1263, 343, 0, 344, 345, 346, 1264, 348, 0, 349,
+ 0, 350, 351, 0, 352, 353, 354, 355, 356, 0,
+ 357, 1265, 0, 1266, 360, 361, 0, 362, 363, 364,
+ 365, 366, 367, 368, 369, 370, 371, 0, 372, 373,
+ 374, 375, 376, 377, 378, 0, 379, 380, 381, 382,
+ 383, 384, 385, 1267, 1268, 0, 1269, 0, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, 0, 0,
+ 399, 1270, 401, 402, 403, 0, 404, 405, 406, 1271,
+ 1272, 407, 408, 409, 410, 411, 412, 413, 414, 415,
+ 416, 417, 418, 419, 420, 421, 422, 423, 424, 1273,
+ 426, 1274, 428, 429, 430, 431, 432, 433, 434, 435,
+ 1275, 437, 1276, 438, 439, 440, 441, 1277, 1278, 443,
+ 1279, 445, 446, 447, 0, 448, 449, 0, 0, 1280,
+ 451, 452, 0, 0, 453, 454, 455, 456, 457, 458,
+ 1281, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 0, 470, 471, 1282, 473, 474, 475, 476, 477,
+ 0, 478, 479, 480, 481, 482, 483, 484, 485, 486,
+ 487, 1283, 489, 490, 491, 492, 0, 493, 494, 495,
+ 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
+ 0, 506, 507, 508, 509, 510, 511, 512, 513, 1284,
+ 515, 516, 517, 518, 519, 520, 521, 522, 523, 0,
+ 524, 525, 526, 527, 528, 1285, 529, 530, 531, 532,
+ 533, 534, 535, 536, 1286, 538, 0, 539, 540, 541,
+ 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
+ 1287, 553, 0, 554, 555, 0, 556, 557, 558, 559,
+ 560, 561, 562, 0, 563, 1288, 1289, 0, 0, 566,
+ 567, 1290, 569, 1291, 1292, 571, 572, 573, 574, 575,
+ 576, 577, 578, 0, 1293, 579, 580, 581, 582, 583,
+ 1294, 0, 584, 585, 586, 587, 588, 589, 1295, 0,
+ 591, 592, 593, 594, 595, 596, 0, 0, 597, 0,
+ 0, 598, 599, 600, 601, 602, 603, 604, 1296, 1297,
+ 1298, 1299, 609, 1300, 1301, 1302, 1303, 614, 615, 616,
+ 617, 1304, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1305, 1306, 0, 0, 0, 0, 0, 0,
+ 0, 1308, 4522, 234, 0, 1236, 684, 0, 1237, 1238,
+ 1239, 745, 1240, 0, 0, 0, 0, 0, 0, 0,
+ 235, 236, 237, 238, 239, 240, 241, 242, 0, 243,
+ 244, 245, 0, 0, 0, 0, 1241, 0, 0, 246,
+ 247, 248, 0, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 1242, 259, 1243, 1244, 0, 262, 263, 264,
+ 265, 266, 267, 268, 1245, 1246, 269, 270, 1247, 1248,
+ 273, 0, 274, 275, 276, 277, 1249, 0, 1250, 0,
+ 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 0, 290, 291, 292, 293, 294, 295, 0, 296, 297,
+ 298, 299, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 301,
+ 302, 303, 304, 305, 306, 1258, 1259, 309, 1260, 310,
+ 0, 311, 312, 313, 314, 315, 316, 317, 0, 318,
+ 319, 320, 321, 0, 0, 322, 323, 860, 325, 326,
+ 0, 327, 328, 329, 0, 330, 331, 332, 0, 333,
+ 334, 335, 336, 1261, 338, 339, 340, 341, 1262, 1263,
+ 343, 0, 344, 345, 346, 1264, 348, 0, 349, 0,
+ 350, 351, 0, 352, 353, 354, 355, 356, 0, 357,
+ 1265, 0, 1266, 360, 361, 0, 362, 363, 364, 365,
+ 366, 367, 368, 369, 370, 371, 0, 372, 373, 374,
+ 375, 376, 377, 378, 0, 379, 380, 381, 382, 383,
+ 384, 385, 1267, 1268, 0, 1269, 0, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 0, 0, 399,
+ 1270, 401, 402, 403, 0, 404, 405, 406, 1271, 1272,
+ 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
+ 417, 418, 419, 420, 421, 422, 423, 424, 1273, 426,
+ 1274, 428, 429, 430, 431, 432, 433, 434, 435, 1275,
+ 437, 1276, 438, 439, 440, 441, 1277, 1278, 443, 1279,
+ 445, 446, 447, 0, 448, 449, 0, 0, 1280, 451,
+ 452, 0, 0, 453, 454, 455, 456, 457, 458, 1281,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 0, 470, 471, 1282, 473, 474, 475, 476, 477, 0,
+ 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
+ 1283, 489, 490, 491, 492, 0, 493, 494, 495, 496,
+ 497, 498, 499, 500, 501, 502, 503, 504, 505, 0,
+ 506, 507, 508, 509, 510, 511, 512, 513, 1284, 515,
+ 516, 517, 518, 519, 520, 521, 522, 523, 0, 524,
+ 525, 526, 527, 528, 1285, 529, 530, 531, 532, 533,
+ 534, 535, 536, 1286, 538, 0, 539, 540, 541, 542,
+ 543, 544, 545, 546, 547, 548, 549, 550, 551, 1287,
+ 553, 0, 554, 555, 0, 556, 557, 558, 559, 560,
+ 561, 562, 0, 563, 1288, 1289, 0, 0, 566, 567,
+ 1290, 569, 1291, 1292, 571, 572, 573, 574, 575, 576,
+ 577, 578, 0, 1293, 579, 580, 581, 582, 583, 1294,
+ 0, 584, 585, 586, 587, 588, 589, 1295, 0, 591,
+ 592, 593, 594, 595, 596, 0, 0, 597, 0, 0,
+ 598, 599, 600, 601, 602, 603, 604, 1296, 1297, 1298,
+ 1299, 609, 1300, 1301, 1302, 1303, 614, 615, 616, 617,
+ 1304, 0, 0, 0, 0, 625, 0, 0, 0, 0,
+ 0, 1305, 1306, 0, 0, 0, 0, 0, 0, 0,
+ 1308, 4591, 235, 236, 237, 238, 239, 240, 241, 242,
+ 0, 243, 244, 245, 0, 0, 0, 0, 0, 4061,
+ 0, 246, 247, 248, 0, 249, 250, 251, 252, 0,
+ 254, 255, 256, 257, 258, 0, 260, 261, 0, 262,
+ 263, 264, 265, 266, 267, 268, 0, 0, 269, 270,
+ 271, 272, 273, 0, 274, 275, 276, 277, 278, 0,
+ 0, 0, 280, 281, 282, 283, 284, 285, 0, 287,
+ 288, 289, 0, 290, 291, 292, 293, 294, 295, 0,
+ -1803, 297, 298, 299, 0, 0, 0, 0, 0, 0,
+ 0, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ 0, 310, 0, 311, 312, 313, 314, 315, 316, 317,
+ 0, 318, 319, 320, 321, 0, 0, 322, 323, 324,
+ 325, 326, 0, 327, 328, 329, 0, 330, 331, 332,
+ 0, 333, 334, 335, 336, 337, 338, 339, 340, 341,
+ 342, 0, 343, 0, 344, 345, 346, 347, 348, 0,
+ 349, 0, 350, 0, 0, -1803, 353, 354, 355, 356,
+ 0, 357, 358, 0, 359, 360, 361, 0, 362, 363,
+ 364, 365, 366, 0, 368, 369, 370, 371, 0, 372,
+ 373, 374, 375, 376, 377, 378, 0, 379, -1803, 381,
+ 382, 383, 384, 385, 386, 387, 0, 388, 0, 389,
+ 0, 0, 392, -1803, 394, 395, 396, 397, 398, 0,
+ 0, 399, 400, -1803, 402, 0, 0, 404, 405, 406,
+ 0, 0, 407, 408, 409, 410, 411, 412, 413, 414,
+ 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
+ 425, -1803, 427, 428, 429, 430, 431, 432, 433, 434,
+ 435, 436, 437, 0, 438, 439, 0, 441, 0, 442,
+ 443, 444, 445, 446, 447, 0, 448, 449, 0, 0,
+ 450, 451, 452, 0, 0, 453, 454, 455, 0, 457,
+ 0, 459, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 0, 470, 471, 472, 473, 474, 475, 476,
+ 477, 0, 478, 479, 480, 481, 482, 483, 484, 485,
+ 486, 487, 488, 489, 490, 491, 492, 0, 493, 494,
+ 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
+ 505, 0, 506, 507, -1803, 509, 510, 511, 512, 513,
+ 514, 515, 516, 517, 518, 519, 520, 521, 522, 523,
+ 0, 524, 525, 526, 527, 528, 0, 529, 530, 531,
+ 532, 533, 0, 535, 536, 537, 538, 0, 539, 540,
+ 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
+ 551, 552, 553, 0, 554, 555, 0, 556, 0, 558,
+ 559, 560, 561, 562, 0, 563, 564, 565, 0, 0,
+ 566, 567, 568, 569, 570, 0, 571, 572, 573, 574,
+ 575, 576, 577, 578, 0, 0, 579, 580, 581, 582,
+ 583, 0, 0, 584, 585, 586, 587, 588, 589, 590,
+ 0, 591, 0, 593, 594, 595, 596, 0, 0, 597,
+ 0, 0, 598, 599, 600, 601, 602, 603, 604, 605,
+ 606, 607, 608, 609, 610, 611, 612, 613, 614, 615,
+ 616, 617, 0, 0, 0, 0, 0, 852, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1418, 235, 236, 237, 238, 239, 240,
+ 241, 242, 0, 243, 244, 245, 0, 0, 0, 0,
+ 0, 0, 0, 246, 247, 248, 0, 249, 250, 251,
+ 252, 253, 254, 255, 256, 0, 853, 259, 854, 855,
+ 0, 262, 263, 264, 265, 266, 267, 268, 0, 0,
+ 269, 270, 856, 857, 273, 0, 274, 275, 276, 277,
+ 0, 0, 279, 0, 280, 281, 282, 283, 284, 285,
+ 286, 287, 288, 289, 0, 290, 291, 292, 293, 294,
+ 295, 0, 296, 297, 298, 299, 0, 0, 0, 300,
+ 0, 0, 0, 301, 302, 303, 304, 305, 306, 858,
+ 859, 309, 0, 310, 0, 311, 312, 313, 314, 315,
+ 316, 317, 0, 318, 319, 320, 321, 0, 0, 322,
+ 323, 860, 325, 326, 0, 327, 328, 329, 0, 330,
+ 331, 332, 0, 333, 334, 335, 336, 0, 338, 339,
+ 340, 341, 0, 0, 343, 0, 344, 345, 346, 861,
+ 348, 0, 349, 0, 350, 351, 0, 352, 353, 354,
+ 355, 356, 0, 357, 0, 0, 0, 360, 361, 0,
+ 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
+ 2630, 372, 373, 374, 375, 376, 377, 378, 0, 379,
+ 380, 2631, 382, 383, 384, 385, 862, 863, 0, 864,
+ 0, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 0, 0, 399, 0, 401, 402, 403, 0, 404,
+ 405, 406, 0, 0, 407, 408, 409, 410, 411, 412,
+ 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
+ 423, 424, 865, 426, 866, 428, 429, 430, 431, 432,
+ 433, 434, 0, 0, 437, 0, 438, 439, 440, 441,
+ 0, 0, 443, 867, 445, 446, 447, 0, 448, 449,
+ 0, 0, 450, 451, 452, 0, 0, 453, 454, 2633,
+ 456, 457, 458, 0, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 0, 470, 471, 0, 473, 0,
+ 475, 476, 477, 0, 478, 479, 480, 481, 482, 483,
+ 484, 485, 486, 487, 868, 489, 490, 491, 492, 0,
+ 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
+ 503, 504, 505, 0, 506, 507, 508, 509, 510, 511,
+ 512, 513, 0, 515, 516, 517, 518, 519, 520, 521,
+ 522, 523, 0, 524, 525, 526, 527, 528, 0, 529,
+ 530, 2634, 532, 533, 534, 535, 536, 870, 538, 0,
+ 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
+ 549, 550, 551, 0, 553, 0, 554, 555, 0, 556,
+ 557, 558, 559, 560, 561, 562, 0, 563, 871, 872,
+ 0, 0, 566, 567, 0, 569, 0, 0, 571, 572,
+ 573, 574, 575, 576, 577, 578, 0, 0, 579, 580,
+ 581, 582, 583, 0, 0, 584, 585, 586, 587, 588,
+ 0, 873, 2635, 591, 592, 593, 594, 595, 596, 0,
+ 0, 597, 0, 0, 598, 599, 600, 601, 602, 603,
+ 852, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 615, 616, 617, 0, 0, 0, 235, 236, 237,
+ 238, 239, 240, 241, 242, 0, 243, 244, 245, 0,
+ 0, 0, 0, 0, 0, 2731, 246, 247, 248, 0,
+ 249, 250, 251, 252, 253, 254, 255, 256, 0, 853,
+ 259, 854, 855, 0, 262, 263, 264, 265, 266, 267,
+ 268, 0, 0, 269, 270, 856, 857, 273, 0, 274,
+ 275, 276, 277, 0, 0, 279, 0, 280, 281, 282,
+ 283, 284, 285, 286, 287, 288, 289, 0, 290, 291,
+ 292, 293, 294, 295, 0, 296, 297, 298, 299, 0,
+ 0, 0, 300, 0, 0, 0, 301, 302, 303, 304,
+ 305, 306, 858, 859, 309, 0, 310, 0, 311, 312,
+ 313, 314, 315, 316, 317, 0, 318, 319, 320, 321,
+ 0, 0, 322, 323, 860, 325, 326, 0, 327, 328,
+ 329, 0, 330, 331, 332, 0, 333, 334, 335, 336,
+ 0, 338, 339, 340, 341, 0, 0, 343, 0, 344,
+ 345, 346, 861, 348, 0, 349, 0, 350, 351, 0,
+ 352, 353, 354, 355, 356, 0, 357, 0, 0, 0,
+ 360, 361, 0, 362, 363, 364, 365, 366, 367, 368,
+ 369, 370, 371, 2630, 372, 373, 374, 375, 376, 377,
+ 378, 0, 379, 380, 2631, 382, 383, 384, 385, 862,
+ 863, 0, 864, 0, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 0, 0, 399, 0, 401, 402,
+ 403, 0, 404, 405, 406, 0, 0, 407, 408, 409,
+ 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
+ 420, 421, 422, 423, 424, 865, 426, 866, 428, 429,
+ 430, 431, 432, 433, 434, 0, 0, 437, 0, 438,
+ 439, 440, 441, 0, 0, 443, 867, 445, 446, 447,
+ 0, 448, 449, 0, 0, 450, 451, 452, 0, 0,
+ 453, 454, 2633, 456, 457, 458, 0, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 0, 470, 471,
+ 0, 473, 0, 475, 476, 477, 0, 478, 479, 480,
+ 481, 482, 483, 484, 485, 486, 487, 868, 489, 490,
+ 491, 492, 0, 493, 494, 495, 496, 497, 498, 499,
+ 500, 501, 502, 503, 504, 505, 0, 506, 507, 508,
+ 509, 510, 511, 512, 513, 0, 515, 516, 517, 518,
+ 519, 520, 521, 522, 523, 0, 524, 525, 526, 527,
+ 528, 0, 529, 530, 2634, 532, 533, 534, 535, 536,
+ 870, 538, 0, 539, 540, 541, 542, 543, 544, 545,
+ 546, 547, 548, 549, 550, 551, 0, 553, 0, 554,
+ 555, 0, 556, 557, 558, 559, 560, 561, 562, 0,
+ 563, 871, 872, 0, 0, 566, 567, 0, 569, 0,
+ 0, 571, 572, 573, 574, 575, 576, 577, 578, 0,
+ 0, 579, 580, 581, 582, 583, 0, 0, 584, 585,
+ 586, 587, 588, 0, 873, 2635, 591, 592, 593, 594,
+ 595, 596, 0, 0, 597, 0, 0, 598, 599, 600,
+ 601, 602, 603, 234, 0, 1236, 684, 0, 1237, 1238,
+ 1239, 745, 1240, 0, 615, 616, 617, 0, 0, 0,
+ 235, 236, 237, 238, 239, 240, 241, 242, 0, 243,
+ 244, 245, 0, 0, 0, 0, 1241, 0, 3815, 246,
+ 247, 248, 0, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 1242, 259, 1243, 1244, 0, 262, 263, 264,
+ 265, 266, 267, 268, 1245, 1246, 269, 270, 1247, 1248,
+ 273, 0, 274, 275, 276, 277, 1249, 0, 1250, 0,
+ 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 0, 290, 291, 292, 293, 294, 295, 0, 296, 297,
+ 298, 299, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 301,
+ 302, 303, 304, 305, 306, 1258, 1259, 309, 1260, 310,
+ 0, 311, 312, 313, 314, 315, 316, 317, 0, 318,
+ 319, 320, 321, 0, 0, 322, 323, 860, 325, 326,
+ 0, 327, 328, 329, 0, 330, 331, 332, 0, 333,
+ 334, 335, 336, 1261, 338, 339, 340, 341, 1262, 1263,
+ 343, 0, 344, 345, 346, 1264, 348, 0, 349, 0,
+ 350, 351, 0, 352, 353, 354, 355, 356, 0, 357,
+ 1265, 0, 1266, 360, 361, 0, 362, 363, 364, 365,
+ 366, 367, 368, 369, 370, 371, 0, 372, 373, 374,
+ 375, 376, 377, 378, 0, 379, 380, 381, 382, 383,
+ 384, 385, 1267, 1268, 0, 1269, 0, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 0, 0, 399,
+ 1270, 401, 402, 403, 0, 404, 405, 406, 1271, 1272,
+ 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
+ 417, 418, 419, 420, 421, 422, 423, 424, 1273, 426,
+ 1274, 428, 429, 430, 431, 432, 433, 434, 435, 1275,
+ 437, 1276, 438, 439, 440, 441, 1277, 1278, 443, 1279,
+ 445, 446, 447, 0, 448, 449, 0, 0, 1280, 451,
+ 452, 0, 0, 453, 454, 455, 456, 457, 458, 1281,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 0, 470, 471, 1282, 473, 474, 475, 476, 477, 0,
+ 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
+ 1283, 489, 490, 491, 492, 0, 493, 494, 495, 496,
+ 497, 498, 499, 500, 501, 502, 503, 504, 505, 0,
+ 506, 507, 508, 509, 510, 511, 512, 513, 1284, 515,
+ 516, 517, 518, 519, 520, 521, 522, 523, 40, 524,
+ 525, 526, 527, 528, 1285, 529, 530, 531, 532, 533,
+ 534, 535, 536, 1286, 538, 0, 539, 540, 541, 542,
+ 543, 544, 545, 546, 547, 548, 549, 550, 551, 1287,
+ 553, 0, 554, 555, 44, 556, 557, 558, 559, 560,
+ 561, 562, 0, 563, 1288, 1289, 0, 0, 566, 567,
+ 1290, 569, 1291, 1292, 571, 572, 573, 574, 575, 576,
+ 577, 578, 0, 1293, 579, 580, 581, 582, 583, 1294,
+ 0, 584, 585, 586, 587, 588, 1175, 1295, 0, 591,
+ 592, 593, 594, 595, 596, 0, 0, 597, 0, 49,
+ 598, 599, 600, 601, 602, 603, 604, 1296, 1297, 1298,
+ 1299, 609, 1300, 1301, 1302, 1303, 614, 615, 616, 617,
+ 1304, 0, 50, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1305, 1306, 0, 0, 0, 234, 0, 1236, 684,
+ 1308, 1237, 1238, 1239, 745, 1240, 0, 0, 0, 0,
+ 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
+ 242, 0, 243, 244, 245, 0, 0, 0, 0, 1241,
+ 0, 0, 246, 247, 248, 0, 249, 250, 251, 252,
+ 253, 254, 255, 256, 257, 1242, 259, 1243, 1244, 3203,
+ 262, 263, 264, 265, 266, 267, 268, 1245, 1246, 269,
+ 270, 1247, 1248, 273, 0, 274, 275, 276, 277, 1249,
+ 0, 1250, 0, 280, 281, 282, 283, 284, 285, 286,
+ 287, 288, 289, 0, 290, 291, 292, 293, 294, 295,
+ 0, 296, 297, 298, 299, 1251, 1252, 1253, 1254, 1255,
+ 1256, 1257, 301, 302, 303, 304, 305, 306, 1258, 1259,
+ 309, 1260, 310, 0, 311, 312, 313, 314, 315, 316,
+ 317, 0, 318, 319, 320, 321, 0, 0, 322, 323,
+ 860, 325, 326, 0, 327, 328, 329, 0, 330, 331,
+ 332, 0, 333, 334, 335, 336, 1261, 338, 339, 340,
+ 341, 1262, 1263, 343, 0, 344, 345, 346, 1264, 348,
+ 0, 349, 0, 350, 351, 3204, 352, 353, 354, 355,
+ 356, 0, 357, 1265, 0, 1266, 360, 361, 0, 362,
+ 363, 364, 365, 366, 367, 368, 369, 370, 371, 0,
+ 372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
+ 381, 382, 383, 384, 385, 1267, 1268, 0, 1269, 0,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 0, 3205, 399, 1270, 401, 402, 403, 0, 404, 405,
+ 406, 1271, 1272, 407, 408, 409, 410, 411, 412, 413,
+ 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
+ 424, 1273, 426, 1274, 428, 429, 430, 431, 432, 433,
+ 434, 435, 1275, 437, 1276, 438, 439, 440, 441, 1277,
+ 1278, 443, 1279, 445, 446, 447, 0, 448, 449, 0,
+ 0, 1280, 451, 452, 0, 0, 453, 454, 455, 456,
+ 457, 458, 1281, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 0, 470, 471, 1282, 473, 474, 475,
+ 476, 477, 0, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 1283, 489, 490, 491, 492, 0, 493,
+ 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
+ 504, 505, 0, 506, 507, 508, 509, 510, 511, 512,
+ 513, 1284, 515, 516, 517, 518, 519, 520, 521, 522,
+ 523, 0, 524, 525, 526, 527, 528, 1285, 529, 530,
+ 531, 532, 533, 534, 535, 536, 1286, 538, 0, 539,
+ 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
+ 550, 551, 1287, 553, 0, 554, 555, 0, 556, 557,
+ 558, 559, 560, 561, 562, 0, 563, 1288, 1289, 0,
+ 3206, 566, 567, 1290, 569, 1291, 1292, 571, 572, 573,
+ 574, 575, 576, 577, 578, 0, 1293, 579, 580, 581,
+ 582, 583, 1294, 0, 584, 585, 586, 587, 588, 589,
+ 1295, 0, 591, 592, 593, 594, 595, 596, 0, 0,
+ 597, 0, 0, 598, 599, 600, 601, 602, 603, 604,
+ 1296, 1297, 1298, 1299, 609, 1300, 1301, 1302, 1303, 614,
+ 615, 616, 617, 1304, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1305, 1306, 0, 0, 0, 234,
+ 0, 1236, 684, 1308, 1237, 1238, 1239, 745, 1240, 0,
+ 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
+ 239, 240, 241, 242, -2193, 243, 244, 245, 0, 0,
+ 0, -2193, 1241, 0, 0, 246, 247, 248, 0, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 1242, 259,
+ 1243, 1244, 0, 262, 263, 264, 265, 266, 267, 268,
+ 1245, 1246, 269, 270, 1247, 1248, 273, 0, 274, 275,
+ 276, 277, 1249, 0, 1250, 0, 280, 281, 282, 283,
+ 284, 285, 286, 287, 288, 289, 0, 290, 291, 292,
+ 293, 294, 295, 0, 296, 297, 298, 299, 1251, 1252,
+ 1253, 1254, 1255, 1256, 1257, 301, 302, 303, 304, 305,
+ 306, 1258, 1259, 309, 1260, 310, 0, 311, 312, 313,
+ 314, 315, 316, 317, 0, 318, 319, 320, 321, 0,
+ 0, 322, 323, 860, 325, 326, 0, 327, 328, 329,
+ 0, 330, 331, 332, 0, 333, 334, 335, 336, 1261,
+ 338, 339, 340, 341, 1262, 1263, 343, 0, 344, 345,
+ 346, 1264, 348, 0, 349, 0, 350, 351, 0, 352,
+ 353, 354, 355, 356, 0, 357, 1265, 0, 1266, 360,
+ 361, 0, 362, 363, 364, 365, 366, 367, 368, 369,
+ 370, 371, 0, 372, 373, 374, 375, 376, 377, 378,
+ 0, 379, 380, 381, 382, 383, 384, 385, 1267, 1268,
+ 0, 1269, 0, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, 0, 0, 399, 1270, 401, 402, 403,
+ 0, 404, 405, 406, 1271, 1272, 407, 408, 409, 410,
+ 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
+ 421, 422, 423, 424, 1273, 426, 1274, 428, 429, 430,
+ 431, 432, 433, 434, 435, 1275, 437, 1276, 438, 439,
+ 440, 441, 1277, 1278, 443, 1279, 445, 446, 447, 0,
+ 448, 449, 0, 0, 1280, 451, 452, 0, 0, 453,
+ 454, 455, 456, 457, 458, 1281, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 0, 470, 471, 1282,
+ 473, 474, 475, 476, 477, 0, 478, 479, 480, 481,
+ 482, 483, 484, 485, 486, 487, 1283, 489, 490, 491,
+ 492, 0, 493, 494, 495, 496, 497, 498, 499, 500,
+ 501, 502, 503, 504, 505, 0, 506, 507, 508, 509,
+ 510, 511, 512, 513, 1284, 515, 516, 517, 518, 519,
+ 520, 521, 522, 523, 0, 524, 525, 526, 527, 528,
+ 1285, 529, 530, 531, 532, 533, 534, 535, 536, 1286,
+ 538, -2193, 539, 540, 541, 542, 543, 544, 545, 546,
+ 547, 548, 549, 550, 551, 1287, 553, 0, 554, 555,
+ 0, 556, 557, 558, 559, 560, 561, 562, 0, 563,
+ 1288, 1289, 0, 0, 566, 567, 1290, 569, 1291, 1292,
+ 571, 572, 573, 574, 575, 576, 577, 578, 0, 1293,
+ 579, 580, 581, 582, 583, 1294, 0, 584, 585, 586,
+ 587, 588, 589, 1295, 0, 591, 592, 593, 594, 595,
+ 596, 0, 0, 597, 0, 0, 598, 599, 600, 601,
+ 602, 603, 604, 1296, 1297, 1298, 1299, 609, 1300, 1301,
+ 1302, 1303, 614, 615, 616, 617, 1304, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1305, 1306, 0,
+ 0, 0, 234, 0, 1236, 684, 1308, 1237, 1238, 1239,
+ 745, 1240, 0, 0, 0, 0, 0, 0, 0, 235,
+ 236, 237, 238, 239, 240, 241, 242, -2191, 243, 244,
+ 245, 0, 0, 0, -2191, 1241, 0, 0, 246, 247,
+ 248, 0, 249, 250, 251, 252, 253, 254, 255, 256,
+ 257, 1242, 259, 1243, 1244, 0, 262, 263, 264, 265,
+ 266, 267, 268, 1245, 1246, 269, 270, 1247, 1248, 273,
+ 0, 274, 275, 276, 277, 1249, 0, 1250, 0, 280,
+ 281, 282, 283, 284, 285, 286, 287, 288, 289, 0,
+ 290, 291, 292, 293, 294, 295, 0, 296, 297, 298,
+ 299, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 301, 302,
+ 303, 304, 305, 306, 1258, 1259, 309, 1260, 310, 0,
+ 311, 312, 313, 314, 315, 316, 317, 0, 318, 319,
+ 320, 321, 0, 0, 322, 323, 860, 325, 326, 0,
+ 327, 328, 329, 0, 330, 331, 332, 0, 333, 334,
+ 335, 336, 1261, 338, 339, 340, 341, 1262, 1263, 343,
+ 0, 344, 345, 346, 1264, 348, 0, 349, 0, 350,
+ 351, 0, 352, 353, 354, 355, 356, 0, 357, 1265,
+ 0, 1266, 360, 361, 0, 362, 363, 364, 365, 366,
+ 367, 368, 369, 370, 371, 0, 372, 373, 374, 375,
+ 376, 377, 378, 0, 379, 380, 381, 382, 383, 384,
+ 385, 1267, 1268, 0, 1269, 0, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 0, 0, 399, 1270,
+ 401, 402, 403, 0, 404, 405, 406, 1271, 1272, 407,
+ 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
+ 418, 419, 420, 421, 422, 423, 424, 1273, 426, 1274,
+ 428, 429, 430, 431, 432, 433, 434, 435, 1275, 437,
+ 1276, 438, 439, 440, 441, 1277, 1278, 443, 1279, 445,
+ 446, 447, 0, 448, 449, 0, 0, 1280, 451, 452,
+ 0, 0, 453, 454, 455, 456, 457, 458, 1281, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 0,
+ 470, 471, 1282, 473, 474, 475, 476, 477, 0, 478,
+ 479, 480, 481, 482, 483, 484, 485, 486, 487, 1283,
+ 489, 490, 491, 492, 0, 493, 494, 495, 496, 497,
+ 498, 499, 500, 501, 502, 503, 504, 505, 0, 506,
+ 507, 508, 509, 510, 511, 512, 513, 1284, 515, 516,
+ 517, 518, 519, 520, 521, 522, 523, 0, 524, 525,
+ 526, 527, 528, 1285, 529, 530, 531, 532, 533, 534,
+ 535, 536, 1286, 538, -2191, 539, 540, 541, 542, 543,
+ 544, 545, 546, 547, 548, 549, 550, 551, 1287, 553,
+ 0, 554, 555, 0, 556, 557, 558, 559, 560, 561,
+ 562, 0, 563, 1288, 1289, 0, 0, 566, 567, 1290,
+ 569, 1291, 1292, 571, 572, 573, 574, 575, 576, 577,
+ 578, 0, 1293, 579, 580, 581, 582, 583, 1294, 0,
+ 584, 585, 586, 587, 588, 589, 1295, 0, 591, 592,
+ 593, 594, 595, 596, 0, 0, 597, 0, 0, 598,
+ 599, 600, 601, 602, 603, 604, 1296, 1297, 1298, 1299,
+ 609, 1300, 1301, 1302, 1303, 614, 615, 616, 617, 1304,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1305, 1306, 0, 0, 0, 234, 0, 1236, 684, 1308,
+ 1237, 1238, 1239, 745, 1240, 0, 0, 0, 0, 0,
+ 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
+ 0, 243, 244, 245, 0, 0, 0, 0, 1241, 0,
+ 0, 246, 247, 248, 0, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 1242, 259, 1243, 1244, 0, 262,
+ 263, 264, 265, 266, 267, 268, 1245, 1246, 269, 270,
+ 1247, 1248, 273, 0, 274, 275, 276, 277, 1249, 0,
+ 1250, 0, 280, 281, 282, 283, 284, 285, 286, 287,
+ 288, 289, 0, 290, 291, 292, 293, 294, 295, 0,
+ 296, 297, 298, 299, 1251, 1252, 1253, 1254, 1255, 1256,
+ 1257, 301, 302, 303, 304, 305, 306, 1258, 1259, 309,
+ 1260, 310, 0, 311, 312, 313, 314, 315, 316, 317,
+ 0, 318, 319, 320, 321, 0, 0, 322, 323, 860,
+ 325, 326, 0, 327, 328, 329, 0, 330, 331, 332,
+ 0, 333, 334, 335, 336, 1261, 338, 339, 340, 341,
+ 1262, 1263, 343, 0, 344, 345, 346, 1264, 348, 0,
+ 349, 0, 350, 351, 0, 352, 353, 354, 355, 356,
+ 0, 357, 1265, 0, 1266, 360, 361, 0, 362, 363,
+ 364, 365, 366, 367, 368, 369, 370, 371, 0, 372,
+ 373, 374, 375, 376, 377, 378, 0, 379, 380, 381,
+ 382, 383, 384, 385, 1267, 1268, 0, 1269, 0, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 0,
+ 0, 399, 1270, 401, 402, 403, 0, 404, 405, 406,
+ 1271, 1272, 407, 408, 409, 410, 411, 412, 413, 414,
+ 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
+ 1273, 426, 1274, 428, 429, 430, 431, 432, 433, 434,
+ 435, 1275, 437, 1276, 438, 439, 440, 441, 1277, 1278,
+ 443, 1279, 445, 446, 447, 0, 448, 449, 0, 0,
+ 1280, 451, 452, 0, 0, 453, 454, 455, 456, 457,
+ 458, 1281, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 0, 470, 471, 1282, 473, 474, 475, 476,
+ 477, 0, 478, 479, 480, 481, 482, 483, 484, 485,
+ 486, 487, 1283, 489, 490, 491, 492, 0, 493, 494,
+ 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
+ 505, 0, 506, 507, 508, 509, 510, 511, 512, 513,
+ 1284, 515, 516, 517, 518, 519, 520, 521, 522, 523,
+ 0, 524, 525, 526, 527, 528, 1285, 529, 530, 531,
+ 532, 533, 534, 535, 536, 1286, 538, 0, 539, 540,
+ 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
+ 551, 1287, 553, 0, 554, 555, 0, 556, 557, 558,
+ 559, 560, 561, 562, 0, 563, 1288, 1289, 0, 0,
+ 566, 567, 1290, 569, 1291, 1292, 571, 572, 573, 574,
+ 575, 576, 577, 578, 0, 1293, 579, 580, 581, 582,
+ 583, 1294, 0, 584, 585, 586, 587, 588, 589, 1295,
+ 0, 591, 592, 593, 594, 595, 596, 0, 0, 597,
+ 0, 0, 598, 599, 600, 601, 602, 603, 604, 1296,
+ 1297, 1298, 1299, 609, 1300, 1301, 1302, 1303, 614, 615,
+ 616, 617, 1304, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1305, 1306, 0, 0, 0, 0, 0,
+ 1998, 3155, 1308, 234, 0, 1236, 684, 0, 1237, 1238,
+ 1239, 745, 1240, 0, 0, 0, 0, 0, 0, 0,
+ 235, 236, 237, 238, 239, 240, 241, 242, 0, 243,
+ 244, 245, 0, 0, 0, 0, 1241, 0, 0, 246,
+ 247, 248, 0, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 1242, 259, 1243, 1244, 0, 262, 263, 264,
+ 265, 266, 267, 268, 1245, 1246, 269, 270, 1247, 1248,
+ 273, 0, 274, 275, 276, 277, 1249, 0, 1250, 0,
+ 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 0, 290, 291, 292, 293, 294, 295, 0, 296, 297,
+ 298, 299, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 301,
+ 302, 303, 304, 305, 306, 1258, 1259, 309, 1260, 310,
+ 0, 311, 312, 313, 314, 315, 316, 317, 0, 318,
+ 319, 320, 321, 0, 0, 322, 323, 860, 325, 326,
+ 0, 327, 328, 329, 0, 330, 331, 332, 0, 333,
+ 334, 335, 336, 1261, 338, 339, 340, 341, 1262, 1263,
+ 343, 0, 344, 345, 346, 1264, 348, 0, 349, 0,
+ 350, 351, 0, 352, 353, 354, 355, 356, 0, 357,
+ 1265, 0, 1266, 360, 361, 0, 362, 363, 364, 365,
+ 366, 367, 368, 369, 370, 371, 0, 372, 373, 374,
+ 375, 376, 377, 378, 0, 379, 380, 381, 382, 383,
+ 384, 385, 1267, 1268, 0, 1269, 0, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 0, 0, 399,
+ 1270, 401, 402, 403, 0, 404, 405, 406, 1271, 1272,
+ 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
+ 417, 418, 419, 420, 421, 422, 423, 424, 1273, 426,
+ 1274, 428, 429, 430, 431, 432, 433, 434, 435, 1275,
+ 437, 1276, 438, 439, 440, 441, 1277, 1278, 443, 1279,
+ 445, 446, 447, 0, 448, 449, 0, 0, 1280, 451,
+ 452, 0, 0, 453, 454, 455, 456, 457, 458, 1281,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 0, 470, 471, 1282, 473, 474, 475, 476, 477, 0,
+ 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
+ 1283, 489, 490, 491, 492, 0, 493, 494, 495, 496,
+ 497, 498, 499, 500, 501, 502, 503, 504, 505, 0,
+ 506, 507, 508, 509, 510, 511, 512, 513, 1284, 515,
+ 516, 517, 518, 519, 520, 521, 522, 523, 0, 524,
+ 525, 526, 527, 528, 1285, 529, 530, 531, 532, 533,
+ 534, 535, 536, 1286, 538, 0, 539, 540, 541, 542,
+ 543, 544, 545, 546, 547, 548, 549, 550, 551, 1287,
+ 553, 0, 554, 555, 0, 556, 557, 558, 559, 560,
+ 561, 562, 0, 563, 1288, 1289, 0, 0, 566, 567,
+ 1290, 569, 1291, 1292, 571, 572, 573, 574, 575, 576,
+ 577, 578, 0, 1293, 579, 580, 581, 582, 583, 1294,
+ 0, 584, 585, 586, 587, 588, 589, 1295, 0, 591,
+ 592, 593, 594, 595, 596, 0, 0, 597, 0, 0,
+ 598, 599, 600, 601, 602, 603, 604, 1296, 1297, 1298,
+ 1299, 609, 1300, 1301, 1302, 1303, 614, 615, 616, 617,
+ 1304, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1305, 1306, 1307, 0, 0, 234, 0, 1236, 684,
+ 1308, 1237, 1238, 1239, 745, 1240, 0, 0, 0, 0,
+ 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
+ 242, 2597, 243, 244, 245, 0, 0, 0, 0, 1241,
+ 0, 0, 246, 247, 248, 0, 249, 250, 251, 252,
+ 253, 254, 255, 256, 257, 1242, 259, 1243, 1244, 0,
+ 262, 263, 264, 265, 266, 267, 268, 1245, 1246, 269,
+ 270, 1247, 1248, 273, 0, 274, 275, 276, 277, 1249,
+ 0, 1250, 0, 280, 281, 282, 283, 284, 285, 286,
+ 287, 288, 289, 0, 290, 291, 292, 293, 294, 295,
+ 0, 296, 297, 298, 299, 1251, 1252, 1253, 1254, 1255,
+ 1256, 1257, 301, 302, 303, 304, 305, 306, 1258, 1259,
+ 309, 1260, 310, 0, 311, 312, 313, 314, 315, 316,
+ 317, 0, 318, 319, 320, 321, 0, 0, 322, 323,
+ 860, 325, 326, 0, 327, 328, 329, 0, 330, 331,
+ 332, 0, 333, 334, 335, 336, 1261, 338, 339, 340,
+ 341, 1262, 1263, 343, 0, 344, 345, 346, 1264, 348,
+ 0, 349, 0, 350, 351, 0, 352, 353, 354, 355,
+ 356, 0, 357, 1265, 0, 1266, 360, 361, 0, 362,
+ 363, 364, 365, 366, 367, 368, 369, 370, 371, 0,
+ 372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
+ 381, 382, 383, 384, 385, 1267, 1268, 0, 1269, 0,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 0, 0, 399, 1270, 401, 402, 403, 0, 404, 405,
+ 406, 1271, 1272, 407, 408, 409, 410, 411, 412, 413,
+ 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
+ 424, 1273, 426, 1274, 428, 429, 430, 431, 432, 433,
+ 434, 435, 1275, 437, 1276, 438, 439, 440, 441, 1277,
+ 1278, 443, 1279, 445, 446, 447, 0, 448, 449, 0,
+ 0, 1280, 451, 452, 0, 0, 453, 454, 455, 456,
+ 457, 458, 1281, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 0, 470, 471, 1282, 473, 474, 475,
+ 476, 477, 0, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 1283, 489, 490, 491, 492, 0, 493,
+ 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
+ 504, 505, 0, 506, 507, 508, 509, 510, 511, 512,
+ 513, 1284, 515, 516, 517, 518, 519, 520, 521, 522,
+ 523, 0, 524, 525, 526, 527, 528, 1285, 529, 530,
+ 531, 532, 533, 534, 535, 536, 1286, 538, 0, 539,
+ 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
+ 550, 551, 1287, 553, 0, 554, 555, 0, 556, 557,
+ 558, 559, 560, 561, 562, 0, 563, 1288, 1289, 0,
+ 0, 566, 567, 1290, 569, 1291, 1292, 571, 572, 573,
+ 574, 575, 576, 577, 578, 0, 1293, 579, 580, 581,
+ 582, 583, 1294, 0, 584, 585, 586, 587, 588, 589,
+ 1295, 0, 591, 592, 593, 594, 595, 596, 0, 0,
+ 597, 0, 0, 598, 599, 600, 601, 602, 603, 604,
+ 1296, 1297, 1298, 1299, 609, 1300, 1301, 1302, 1303, 614,
+ 615, 616, 617, 1304, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1305, 1306, 0, 0, 0, 234,
+ 0, 1236, 684, 1308, 1237, 1238, 1239, 745, 1240, 0,
+ 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
+ 239, 240, 241, 242, 0, 243, 244, 245, 0, 0,
+ 0, 0, 1241, 0, 0, 246, 247, 248, 0, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 1242, 259,
+ 1243, 1244, 0, 262, 263, 264, 265, 266, 267, 268,
+ 1245, 1246, 269, 270, 1247, 1248, 273, 0, 274, 275,
+ 276, 277, 1249, 0, 1250, 0, 280, 281, 282, 283,
+ 284, 285, 286, 287, 288, 289, 0, 290, 291, 292,
+ 293, 294, 295, 0, 296, 297, 298, 299, 1251, 1252,
+ 1253, 1254, 1255, 1256, 1257, 301, 302, 303, 304, 305,
+ 306, 1258, 1259, 309, 1260, 310, 0, 311, 312, 313,
+ 314, 315, 316, 317, 0, 318, 319, 320, 321, 0,
+ 0, 322, 323, 860, 325, 326, 0, 327, 328, 329,
+ 0, 330, 331, 332, 0, 333, 334, 335, 336, 1261,
+ 338, 339, 340, 341, 1262, 1263, 343, 0, 344, 345,
+ 346, 1264, 348, 0, 349, 0, 350, 351, 0, 352,
+ 353, 354, 355, 356, 0, 357, 1265, 0, 1266, 360,
+ 361, 0, 362, 363, 364, 365, 366, 367, 368, 369,
+ 370, 371, 0, 372, 373, 374, 375, 376, 377, 378,
+ 0, 379, 380, 381, 382, 383, 384, 385, 1267, 1268,
+ 0, 1269, 0, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, 0, 0, 399, 1270, 401, 402, 403,
+ 0, 404, 405, 406, 1271, 1272, 407, 408, 409, 410,
+ 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
+ 421, 422, 423, 424, 1273, 426, 1274, 428, 429, 430,
+ 431, 432, 433, 434, 435, 1275, 437, 1276, 438, 439,
+ 440, 441, 1277, 1278, 443, 1279, 445, 446, 447, 0,
+ 448, 449, 0, 0, 1280, 451, 452, 0, 0, 453,
+ 454, 455, 456, 457, 458, 1281, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 0, 470, 471, 1282,
+ 473, 474, 475, 476, 477, 0, 478, 479, 480, 481,
+ 482, 483, 484, 485, 486, 487, 1283, 489, 490, 491,
+ 492, 0, 493, 494, 495, 496, 497, 498, 499, 500,
+ 501, 502, 503, 504, 505, 0, 506, 507, 508, 509,
+ 510, 511, 512, 513, 1284, 515, 516, 517, 518, 519,
+ 520, 521, 522, 523, 0, 524, 525, 526, 527, 528,
+ 1285, 529, 530, 531, 532, 533, 534, 535, 536, 1286,
+ 538, 0, 539, 540, 541, 542, 543, 544, 545, 546,
+ 547, 548, 549, 550, 551, 1287, 553, 0, 554, 555,
+ 0, 556, 557, 558, 559, 560, 561, 562, 0, 563,
+ 1288, 1289, 0, 0, 566, 567, 1290, 569, 1291, 1292,
+ 571, 572, 573, 574, 575, 576, 577, 578, 0, 1293,
+ 579, 580, 581, 582, 583, 1294, 0, 584, 585, 586,
+ 587, 588, 589, 1295, 3694, 591, 592, 593, 594, 595,
+ 596, 0, 0, 597, 0, 0, 598, 599, 600, 601,
+ 602, 603, 604, 1296, 1297, 1298, 1299, 609, 1300, 1301,
+ 1302, 1303, 614, 615, 616, 617, 1304, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1305, 1306, 0,
+ 0, 0, 234, 0, 1236, 684, 1308, 1237, 1238, 1239,
+ 745, 1240, 0, 0, 0, 0, 0, 0, 0, 235,
+ 236, 237, 238, 239, 240, 241, 242, 0, 243, 244,
+ 245, 0, 0, 0, 0, 1241, 0, 0, 246, 247,
+ 248, 0, 249, 250, 251, 252, 253, 254, 255, 256,
+ 257, 1242, 259, 1243, 1244, 0, 262, 263, 264, 265,
+ 266, 267, 268, 1245, 1246, 269, 270, 1247, 1248, 273,
+ 0, 274, 275, 276, 277, 1249, 0, 1250, 0, 280,
+ 281, 282, 283, 284, 285, 286, 287, 288, 289, 0,
+ 290, 291, 292, 293, 294, 295, 0, 296, 297, 298,
+ 299, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 301, 302,
+ 303, 304, 305, 306, 1258, 1259, 309, 1260, 310, 0,
+ 311, 312, 313, 314, 315, 316, 317, 0, 318, 319,
+ 320, 321, 0, 0, 322, 323, 860, 325, 326, 0,
+ 327, 328, 329, 0, 330, 331, 332, 0, 333, 334,
+ 335, 336, 1261, 338, 339, 340, 341, 1262, 1263, 343,
+ 0, 344, 345, 346, 1264, 348, 0, 349, 0, 350,
+ 351, 3204, 352, 353, 354, 355, 356, 0, 357, 1265,
+ 0, 1266, 360, 361, 0, 362, 363, 364, 365, 366,
+ 367, 368, 369, 370, 371, 0, 372, 373, 374, 375,
+ 376, 377, 378, 0, 379, 380, 381, 382, 383, 384,
+ 385, 1267, 1268, 0, 1269, 0, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 0, 0, 399, 1270,
+ 401, 402, 403, 0, 404, 405, 406, 1271, 1272, 407,
+ 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
+ 418, 419, 420, 421, 422, 423, 424, 1273, 426, 1274,
+ 428, 429, 430, 431, 432, 433, 434, 435, 1275, 437,
+ 1276, 438, 439, 440, 441, 1277, 1278, 443, 1279, 445,
+ 446, 447, 0, 448, 449, 0, 0, 1280, 451, 452,
+ 0, 0, 453, 454, 455, 456, 457, 458, 1281, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 0,
+ 470, 471, 1282, 473, 474, 475, 476, 477, 0, 478,
+ 479, 480, 481, 482, 483, 484, 485, 486, 487, 1283,
+ 489, 490, 491, 492, 0, 493, 494, 495, 496, 497,
+ 498, 499, 500, 501, 502, 503, 504, 505, 0, 506,
+ 507, 508, 509, 510, 511, 512, 513, 1284, 515, 516,
+ 517, 518, 519, 520, 521, 522, 523, 0, 524, 525,
+ 526, 527, 528, 1285, 529, 530, 531, 532, 533, 534,
+ 535, 536, 1286, 538, 0, 539, 540, 541, 542, 543,
+ 544, 545, 546, 547, 548, 549, 550, 551, 1287, 553,
+ 0, 554, 555, 0, 556, 557, 558, 559, 560, 561,
+ 562, 0, 563, 1288, 1289, 0, 0, 566, 567, 1290,
+ 569, 1291, 1292, 571, 572, 573, 574, 575, 576, 577,
+ 578, 0, 1293, 579, 580, 581, 582, 583, 1294, 0,
+ 584, 585, 586, 587, 588, 589, 1295, 0, 591, 592,
+ 593, 594, 595, 596, 0, 0, 597, 0, 0, 598,
+ 599, 600, 601, 602, 603, 604, 1296, 1297, 1298, 1299,
+ 609, 1300, 1301, 1302, 1303, 614, 615, 616, 617, 1304,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1305, 1306, 0, 0, 0, 234, 0, 1236, 684, 1308,
+ 1237, 1238, 1239, 745, 1240, 0, 0, 0, 0, 0,
+ 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
+ 0, 243, 244, 245, 0, 0, 0, 0, 1241, 0,
+ 0, 246, 247, 248, 0, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 1242, 259, 1243, 1244, 0, 262,
+ 263, 264, 265, 266, 267, 268, 1245, 1246, 269, 270,
+ 1247, 1248, 273, 0, 274, 275, 276, 277, 1249, 0,
+ 1250, 0, 280, 281, 282, 283, 284, 285, 286, 287,
+ 288, 289, 0, 290, 291, 292, 293, 294, 295, 0,
+ 296, 297, 298, 299, 1251, 1252, 1253, 1254, 1255, 1256,
+ 1257, 301, 302, 303, 304, 305, 306, 1258, 1259, 309,
+ 1260, 310, 0, 311, 312, 313, 314, 315, 316, 317,
+ 0, 318, 319, 320, 321, 0, 0, 322, 323, 860,
+ 325, 326, 0, 327, 328, 329, 0, 330, 331, 332,
+ 0, 333, 334, 335, 336, 1261, 338, 339, 340, 341,
+ 1262, 1263, 343, 0, 344, 345, 346, 1264, 348, 0,
+ 349, 0, 350, 351, 0, 352, 353, 354, 355, 356,
+ 0, 357, 1265, 0, 1266, 360, 361, 0, 362, 363,
+ 364, 365, 366, 367, 368, 369, 370, 371, 0, 372,
+ 373, 374, 375, 376, 377, 378, 0, 379, 380, 381,
+ 382, 383, 384, 385, 1267, 1268, 0, 1269, 0, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 0,
+ 0, 399, 1270, 401, 402, 403, 0, 404, 405, 406,
+ 1271, 1272, 407, 408, 409, 410, 411, 412, 413, 414,
+ 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
+ 1273, 426, 1274, 428, 429, 430, 431, 432, 433, 434,
+ 435, 1275, 437, 1276, 438, 439, 440, 441, 1277, 1278,
+ 443, 1279, 445, 446, 447, 0, 448, 449, 0, 0,
+ 1280, 451, 452, 0, 0, 453, 454, 455, 456, 457,
+ 458, 1281, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 0, 470, 471, 1282, 473, 474, 475, 476,
+ 477, 0, 478, 479, 480, 481, 482, 483, 484, 485,
+ 486, 487, 1283, 489, 490, 491, 492, 0, 493, 494,
+ 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
+ 505, 0, 506, 507, 508, 509, 510, 511, 512, 513,
+ 1284, 515, 516, 517, 518, 519, 520, 521, 522, 523,
+ 0, 524, 525, 526, 527, 528, 1285, 529, 530, 531,
+ 532, 533, 534, 535, 536, 1286, 538, 0, 539, 540,
+ 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
+ 551, 1287, 553, 0, 554, 555, 0, 556, 557, 558,
+ 559, 560, 561, 562, 0, 563, 1288, 1289, 3258, 0,
+ 566, 567, 1290, 569, 1291, 1292, 571, 572, 573, 574,
+ 575, 576, 577, 578, 0, 1293, 579, 580, 581, 582,
+ 583, 1294, 0, 584, 585, 586, 587, 588, 589, 1295,
+ 0, 591, 592, 593, 594, 595, 596, 0, 0, 597,
+ 0, 0, 598, 599, 600, 601, 602, 603, 604, 1296,
+ 1297, 1298, 1299, 609, 1300, 1301, 1302, 1303, 614, 615,
+ 616, 617, 1304, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1305, 1306, 0, 0, 0, 234, 0,
+ 1236, 684, 1308, 1237, 1238, 1239, 745, 1240, 0, 0,
+ 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
+ 240, 241, 242, 0, 243, 244, 245, 0, 0, 0,
+ 0, 1241, 0, 0, 246, 247, 248, 0, 249, 250,
+ 251, 252, 253, 254, 255, 256, 257, 1242, 259, 1243,
+ 1244, 0, 262, 263, 264, 265, 266, 267, 268, 1245,
+ 1246, 269, 270, 1247, 1248, 273, 0, 274, 275, 276,
+ 277, 1249, 0, 1250, 0, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 0, 290, 291, 292, 293,
+ 294, 295, 0, 296, 297, 298, 299, 1251, 1252, 1253,
+ 1254, 1255, 1256, 1257, 301, 302, 303, 304, 305, 306,
+ 1258, 1259, 309, 1260, 310, 0, 311, 312, 313, 314,
+ 315, 316, 317, 0, 318, 319, 320, 321, 0, 0,
+ 322, 323, 860, 325, 326, 0, 327, 328, 329, 0,
+ 330, 331, 332, 0, 333, 334, 335, 336, 1261, 338,
+ 339, 340, 341, 1262, 1263, 343, 0, 344, 345, 346,
+ 1264, 348, 0, 349, 0, 350, 351, 0, 352, 353,
+ 354, 355, 356, 0, 357, 1265, 0, 1266, 360, 361,
+ 0, 362, 363, 364, 365, 366, 367, 368, 369, 370,
+ 371, 0, 372, 373, 374, 375, 376, 377, 378, 0,
+ 379, 380, 381, 382, 383, 384, 385, 1267, 1268, 0,
+ 1269, 0, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 0, 0, 399, 1270, 401, 402, 403, 0,
+ 404, 405, 406, 1271, 1272, 407, 408, 409, 410, 411,
+ 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
+ 422, 423, 424, 1273, 426, 1274, 428, 429, 430, 431,
+ 432, 433, 434, 435, 1275, 437, 1276, 438, 439, 440,
+ 441, 1277, 1278, 443, 1279, 445, 446, 447, 0, 448,
+ 449, 0, 0, 1280, 451, 452, 0, 0, 453, 454,
+ 455, 456, 457, 458, 1281, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 0, 470, 471, 1282, 473,
+ 474, 475, 476, 477, 0, 478, 479, 480, 481, 482,
+ 483, 484, 485, 486, 487, 1283, 489, 490, 491, 492,
+ 0, 493, 494, 495, 496, 497, 498, 499, 500, 501,
+ 502, 503, 504, 505, 0, 506, 507, 508, 509, 510,
+ 511, 512, 513, 1284, 515, 516, 517, 518, 519, 520,
+ 521, 522, 523, 0, 524, 525, 526, 527, 528, 1285,
+ 529, 530, 531, 532, 533, 534, 535, 536, 1286, 538,
+ 0, 539, 540, 541, 542, 543, 544, 545, 546, 547,
+ 548, 549, 550, 551, 1287, 553, 0, 554, 555, 0,
+ 556, 557, 558, 559, 560, 561, 562, 0, 563, 1288,
+ 1289, 0, 0, 566, 567, 1290, 569, 1291, 1292, 571,
+ 572, 573, 574, 575, 576, 577, 578, 0, 1293, 579,
+ 580, 581, 582, 583, 1294, 0, 584, 585, 586, 587,
+ 588, 589, 1295, 0, 591, 592, 593, 594, 595, 596,
+ 0, 0, 597, 0, 0, 598, 599, 600, 601, 602,
+ 603, 604, 1296, 1297, 1298, 1299, 609, 1300, 1301, 1302,
+ 1303, 614, 615, 616, 617, 1304, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1305, 1306, 0, 0,
+ 0, 234, 0, 1236, 684, 1308, 1237, 1238, 1239, 745,
+ 1240, 0, 0, 0, 0, 0, 0, 0, 235, 236,
+ 237, 238, 239, 240, 241, 242, 0, 243, 244, 245,
+ 0, 0, 0, 0, 1241, 0, 0, 246, 247, 248,
+ 0, 249, 250, 251, 252, 253, 254, 255, 256, 257,
+ 1242, 259, 1243, 1244, 0, 262, 263, 264, 265, 266,
+ 267, 268, 1245, 1246, 269, 270, 1247, 1248, 273, 0,
+ 274, 275, 276, 277, 1249, 0, 1250, 0, 280, 281,
+ 282, 283, 284, 285, 286, 287, 288, 289, 0, 290,
+ 291, 292, 293, 294, 295, 0, 296, 297, 298, 299,
+ 1251, 1252, 1253, 1254, 1255, 1256, 1257, 301, 302, 303,
+ 304, 305, 306, 1258, 1259, 309, 1260, 310, 0, 311,
+ 312, 313, 314, 315, 316, 317, 0, 318, 319, 320,
+ 321, 0, 0, 322, 323, 860, 325, 326, 0, 327,
+ 328, 329, 0, 330, 331, 332, 0, 333, 334, 335,
+ 336, 1261, 338, 339, 340, 341, 1262, 1263, 343, 0,
+ 344, 345, 346, 1264, 348, 0, 349, 0, 350, 351,
+ 0, 352, 353, 354, 355, 356, 0, 357, 1265, 0,
+ 1266, 360, 361, 0, 362, 363, 364, 365, 366, 367,
+ 368, 369, 370, 371, 0, 372, 373, 374, 375, 376,
+ 377, 378, 0, 379, 380, 381, 382, 383, 384, 385,
+ 1267, 1268, 0, 1269, 0, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 0, 0, 399, 1270, 401,
+ 402, 403, 0, 404, 405, 406, 1271, 1272, 407, 408,
+ 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
+ 419, 420, 421, 422, 423, 424, 1273, 426, 1274, 428,
+ 429, 430, 431, 432, 433, 434, 435, 1275, 437, 1276,
+ 438, 439, 440, 441, 1277, 1278, 443, 1279, 445, 446,
+ 447, 0, 448, 449, 0, 0, 1280, 451, 452, 0,
+ 0, 453, 454, 455, 456, 457, 458, 1281, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 0, 470,
+ 471, 1282, 473, 474, 475, 476, 477, 0, 478, 479,
+ 480, 481, 482, 483, 484, 485, 486, 487, 1283, 489,
+ 490, 491, 492, 0, 493, 494, 495, 496, 497, 498,
+ 499, 500, 501, 502, 503, 504, 505, 0, 506, 507,
+ 508, 509, 510, 511, 512, 513, 1284, 515, 516, 517,
+ 518, 519, 520, 521, 522, 523, 0, 524, 525, 526,
+ 527, 528, 1285, 529, 530, 531, 532, 533, 534, 535,
+ 536, 1286, 538, 0, 539, 540, 541, 542, 543, 544,
+ 545, 546, 547, 548, 549, 550, 551, 1287, 553, 0,
+ 554, 555, 0, 556, 557, 558, 559, 560, 561, 562,
+ 0, 563, 1288, 1289, 0, 0, 566, 567, 1290, 569,
+ 1291, 1292, 571, 572, 573, 574, 575, 576, 577, 578,
+ 0, 1293, 579, 580, 581, 582, 583, 1294, 0, 584,
+ 585, 586, 587, 588, 589, 1295, 0, 591, 592, 593,
+ 594, 595, 596, 0, 0, 597, 0, 0, 598, 599,
+ 600, 601, 602, 603, 604, 1296, 1297, 1298, 1299, 609,
+ 1300, 1301, 1302, 1303, 614, 615, 616, 617, 1304, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2600,
+ 2601, 0, 0, 0, 234, 0, 3371, 684, 1308, 1237,
+ 1238, 1239, 745, 1240, 0, 0, 0, 0, 0, 0,
+ 0, 235, 236, 237, 238, 239, 240, 241, 242, 0,
+ 243, 244, 245, 0, 0, 0, 0, 1241, 0, 0,
+ 246, 247, 248, 0, 249, 250, 251, 252, 253, 254,
+ 255, 256, 257, 1242, 259, 1243, 1244, 0, 262, 263,
+ 264, 265, 266, 267, 268, 1245, 1246, 269, 270, 1247,
+ 1248, 273, 0, 274, 275, 276, 277, 1249, 0, 1250,
+ 0, 280, 281, 282, 283, 284, 285, 286, 287, 288,
+ 289, 0, 290, 291, 292, 293, 294, 295, 0, 296,
+ 297, 298, 299, 1251, 1252, 1253, 1254, 1255, 1256, 1257,
+ 301, 302, 303, 304, 305, 306, 1258, 1259, 309, 1260,
+ 310, 0, 311, 312, 313, 314, 315, 316, 317, 0,
+ 318, 319, 320, 321, 0, 0, 322, 323, 860, 325,
+ 326, 0, 327, 328, 329, 0, 330, 331, 332, 0,
+ 333, 334, 335, 336, 1261, 338, 339, 340, 341, 1262,
+ 1263, 343, 0, 344, 345, 346, 1264, 348, 0, 349,
+ 0, 350, 351, 0, 352, 353, 354, 355, 356, 0,
+ 357, 1265, 0, 1266, 360, 361, 0, 362, 363, 364,
+ 365, 366, 367, 368, 369, 370, 371, 0, 372, 373,
+ 374, 375, 376, 377, 378, 0, 379, 380, 381, 382,
+ 383, 384, 385, 1267, 1268, 0, 1269, 0, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, 0, 0,
+ 399, 1270, 401, 402, 403, 0, 404, 405, 406, 1271,
+ 1272, 407, 408, 409, 410, 411, 412, 413, 414, 415,
+ 416, 417, 418, 419, 420, 421, 422, 423, 424, 1273,
+ 426, 1274, 428, 429, 430, 431, 432, 433, 434, 435,
+ 1275, 437, 1276, 438, 439, 440, 441, 1277, 1278, 443,
+ 1279, 445, 446, 447, 0, 448, 449, 0, 0, 1280,
+ 451, 452, 0, 0, 453, 454, 455, 456, 457, 458,
+ 1281, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 0, 470, 471, 1282, 473, 474, 475, 476, 477,
+ 0, 478, 479, 480, 481, 482, 483, 484, 485, 486,
+ 487, 1283, 489, 490, 491, 492, 0, 493, 494, 495,
+ 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
+ 0, 506, 507, 508, 509, 510, 511, 512, 513, 1284,
+ 515, 516, 517, 518, 519, 520, 521, 522, 523, 0,
+ 524, 525, 526, 527, 528, 1285, 529, 530, 531, 532,
+ 533, 534, 535, 536, 1286, 538, 0, 539, 540, 541,
+ 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
+ 1287, 553, 0, 554, 555, 0, 556, 557, 558, 559,
+ 560, 561, 562, 0, 563, 1288, 1289, 0, 0, 566,
+ 567, 1290, 569, 1291, 1292, 571, 572, 573, 574, 575,
+ 576, 577, 578, 0, 1293, 579, 580, 581, 582, 583,
+ 1294, 0, 584, 585, 586, 587, 588, 589, 1295, 0,
+ 591, 592, 593, 594, 595, 596, 0, 0, 597, 0,
+ 0, 598, 599, 600, 601, 602, 603, 604, 1296, 1297,
+ 1298, 1299, 609, 1300, 1301, 1302, 1303, 614, 615, 616,
+ 617, 1304, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1305, 1306, 0, 0, 0, 234, 0, 1236,
+ 684, 1308, 1237, 1238, 1239, 745, 1240, 0, 0, 0,
+ 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
+ 241, 242, 0, 243, 244, 245, 0, 0, 0, 0,
+ 1241, 0, 0, 246, 247, 248, 0, 249, 250, 251,
+ 252, 253, 254, 255, 256, 257, 1242, 259, 1243, 1244,
+ 0, 262, 263, 264, 265, 266, 267, 268, 1245, 1246,
+ 269, 270, 1247, 1248, 273, 0, 274, 275, 276, 277,
+ 1249, 0, 1250, 0, 280, 281, 282, 283, 284, 285,
+ 286, 287, 288, 289, 0, 290, 291, 292, 293, 294,
+ 295, 0, 296, 297, 298, 4642, 1251, 1252, 1253, 1254,
+ 1255, 1256, 1257, 301, 302, 303, 304, 305, 306, 1258,
+ 1259, 309, 1260, 310, 0, 311, 312, 313, 314, 315,
+ 316, 317, 0, 318, 319, 320, 321, 0, 0, 322,
+ 323, 860, 325, 326, 0, 327, 328, 329, 0, 330,
+ 331, 332, 0, 333, 334, 335, 336, 1261, 338, 339,
+ 340, 341, 1262, 1263, 343, 0, 344, 345, 346, 1264,
+ 348, 0, 349, 0, 350, 351, 0, 352, 353, 354,
+ 355, 356, 0, 357, 1265, 0, 1266, 360, 361, 0,
+ 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
+ 0, 372, 373, 374, 375, 376, 377, 378, 0, 379,
+ 380, 381, 382, 383, 384, 385, 1267, 1268, 0, 1269,
+ 0, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 0, 0, 399, 1270, 401, 402, 403, 0, 404,
+ 405, 406, 1271, 1272, 407, 408, 409, 410, 411, 412,
+ 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
+ 423, 424, 1273, 426, 1274, 428, 429, 430, 431, 432,
+ 433, 434, 435, 1275, 437, 1276, 438, 439, 440, 441,
+ 1277, 1278, 443, 1279, 445, 446, 447, 0, 448, 449,
+ 0, 0, 1280, 451, 452, 0, 0, 453, 454, 455,
+ 456, 457, 458, 1281, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 0, 470, 471, 1282, 473, 474,
+ 475, 476, 477, 0, 478, 479, 480, 481, 482, 483,
+ 484, 485, 486, 487, 1283, 489, 490, 491, 492, 0,
+ 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
+ 503, 504, 505, 0, 506, 507, 508, 509, 510, 511,
+ 512, 513, 1284, 515, 516, 517, 518, 519, 520, 521,
+ 522, 523, 0, 524, 525, 526, 527, 528, 1285, 529,
+ 530, 531, 532, 533, 534, 535, 536, 1286, 538, 0,
+ 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
+ 549, 550, 551, 1287, 553, 0, 554, 555, 0, 556,
+ 557, 558, 559, 560, 561, 562, 0, 563, 1288, 1289,
+ 0, 0, 566, 567, 1290, 569, 1291, 1292, 571, 572,
+ 573, 574, 575, 576, 577, 578, 0, 1293, 579, 580,
+ 581, 582, 583, 1294, 0, 584, 585, 586, 587, 588,
+ 589, 1295, 0, 591, 592, 593, 594, 595, 596, 0,
+ 0, 597, 0, 0, 598, 599, 600, 601, 602, 603,
+ 604, 1296, 1297, 1298, 1299, 609, 1300, 1301, 1302, 1303,
+ 614, 615, 616, 617, 1304, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1305, 1306, 0, 0, 0,
+ 234, 0, 1236, 684, 1308, 1237, 1238, 1239, 745, 1240,
+ 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
+ 238, 239, 240, 241, 242, 0, 243, 244, 245, 0,
+ 0, 0, 0, 1241, 0, 0, 246, 247, 248, 0,
+ 249, 250, 251, 252, 253, 254, 255, 256, 257, 1242,
+ 259, 1243, 1244, 0, 262, 263, 264, 265, 266, 267,
+ 268, 1245, 1246, 269, 270, 1247, 1248, 273, 0, 274,
+ 275, 276, 277, 1249, 0, 1250, 0, 280, 281, 282,
+ 283, 284, 285, 286, 287, 288, 289, 0, 290, 291,
+ 292, 293, 294, 295, 0, 296, 297, 298, 299, 1251,
+ 1252, 1253, 1254, 1255, 1256, 1257, 301, 302, 303, 304,
+ 305, 306, 1258, 1259, 309, 1260, 310, 0, 311, 312,
+ 313, 314, 315, 316, 317, 0, 318, 319, 320, 321,
+ 0, 0, 322, 323, 860, 325, 326, 0, 327, 328,
+ 329, 0, 330, 331, 332, 0, 333, 334, 335, 336,
+ 1261, 338, 339, 340, 341, 1262, 1263, 343, 0, 344,
+ 345, 346, 1264, 348, 0, 349, 0, 350, 351, 0,
+ 352, 353, 354, 355, 356, 0, 357, 1265, 0, 1266,
+ 360, 361, 0, 362, 363, 364, 365, 366, 367, 368,
+ 369, 370, 371, 0, 372, 373, 374, 375, 376, 377,
+ 378, 0, 379, 380, 381, 382, 383, 384, 385, 1267,
+ 1268, 0, 1269, 0, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 0, 0, 399, 1270, 401, 402,
+ 403, 0, 404, 405, 406, 1271, 1272, 407, 408, 409,
+ 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
+ 420, 421, 422, 423, 424, 1273, 426, 1274, 428, 429,
+ 430, 431, 432, 433, 434, 435, 1275, 437, 1276, 438,
+ 439, 440, 441, 1277, 1278, 443, 1279, 445, 446, 447,
+ 0, 448, 449, 0, 0, 1280, 451, 452, 0, 0,
+ 453, 454, 455, 456, 457, 458, 1281, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 0, 470, 471,
+ 1282, 473, 474, 475, 476, 477, 0, 478, 479, 480,
+ 481, 482, 483, 484, 485, 486, 487, 1283, 489, 490,
+ 491, 492, 0, 493, 494, 495, 496, 497, 498, 499,
+ 500, 501, 502, 503, 504, 505, 0, 506, 507, 508,
+ 509, 510, 511, 512, 513, 1284, 515, 516, 517, 518,
+ 519, 520, 521, 522, 523, 0, 524, 525, 526, 527,
+ 528, 1285, 529, 530, 531, 532, 533, 534, 535, 536,
+ 1286, 538, 0, 539, 540, 541, 542, 543, 544, 545,
+ 546, 547, 548, 549, 550, 551, 1287, 553, 0, 554,
+ 555, 0, 556, 557, 558, 559, 560, 561, 562, 0,
+ 563, 1288, 1289, 0, 0, 566, 567, 1290, 569, 1291,
+ 1292, 571, 572, 573, 574, 575, 576, 577, 578, 0,
+ 1293, 579, 580, 581, 582, 583, 1294, 0, 584, 585,
+ 586, 587, 588, 589, 1295, 0, 591, 592, 593, 594,
+ 595, 596, 0, 0, 597, 0, 0, 598, 599, 600,
+ 601, 602, 603, 5002, 1296, 1297, 1298, 1299, 609, 1300,
+ 1301, 1302, 1303, 614, 615, 616, 617, 1304, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1305, 1306,
+ 0, 0, 0, 234, 0, 1236, 684, 1308, 1237, 1238,
+ 1239, 745, 1240, 0, 0, 0, 0, 0, 0, 0,
+ 235, 236, 237, 238, 239, 240, 241, 242, 0, 243,
+ 244, 245, 0, 0, 0, 0, 1241, 0, 0, 246,
+ 247, 248, 0, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 1242, 259, 1243, 1244, 0, 262, 263, 264,
+ 265, 266, 267, 268, 1245, 1246, 269, 270, 1247, 1248,
+ 273, 0, 274, 275, 276, 277, 1249, 0, 1250, 0,
+ 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 0, 290, 291, 292, 293, 294, 295, 0, 296, 297,
+ 298, 299, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 301,
+ 302, 303, 304, 305, 306, 1258, 1259, 309, 1260, 310,
+ 0, 311, 312, 313, 314, 315, 316, 317, 0, 318,
+ 319, 320, 321, 0, 0, 322, 323, 860, 325, 326,
+ 0, 327, 328, 329, 0, 330, 331, 332, 0, 333,
+ 334, 335, 336, 1261, 338, 339, 340, 341, 1262, 1263,
+ 343, 0, 344, 345, 346, 1264, 348, 0, 349, 0,
+ 350, 351, 0, 352, 353, 354, 355, 356, 0, 357,
+ 1265, 0, 1266, 360, 361, 0, 362, 363, 364, 365,
+ 366, 367, 368, 369, 370, 371, 0, 372, 373, 374,
+ 375, 376, 377, 378, 0, 379, 380, 381, 382, 383,
+ 384, 385, 1267, 1268, 0, 1269, 0, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 0, 0, 399,
+ 1270, 401, 402, 403, 0, 404, 405, 406, 1271, 1272,
+ 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
+ 417, 418, 419, 420, 421, 422, 423, 424, 1273, 426,
+ 1274, 428, 429, 430, 431, 432, 433, 5014, 435, 1275,
+ 437, 1276, 438, 439, 440, 441, 1277, 1278, 443, 1279,
+ 445, 446, 447, 0, 448, 449, 0, 0, 1280, 451,
+ 452, 0, 0, 453, 454, 455, 456, 457, 458, 1281,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 0, 470, 471, 1282, 473, 474, 475, 476, 477, 0,
+ 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
+ 1283, 489, 490, 491, 492, 0, 493, 494, 495, 496,
+ 497, 498, 499, 500, 501, 502, 503, 504, 505, 0,
+ 506, 507, 508, 509, 510, 511, 512, 513, 1284, 515,
+ 516, 517, 518, 519, 520, 521, 522, 523, 0, 524,
+ 525, 526, 527, 528, 1285, 529, 530, 531, 532, 533,
+ 534, 535, 536, 1286, 538, 0, 539, 540, 541, 542,
+ 543, 544, 545, 546, 547, 548, 549, 550, 551, 1287,
+ 553, 0, 554, 555, 0, 556, 557, 558, 559, 560,
+ 561, 562, 0, 563, 1288, 1289, 0, 0, 566, 567,
+ 1290, 569, 1291, 1292, 571, 572, 573, 574, 575, 576,
+ 577, 578, 0, 1293, 579, 580, 581, 582, 583, 1294,
+ 0, 584, 585, 586, 587, 588, 589, 1295, 0, 591,
+ 592, 593, 594, 595, 596, 0, 0, 597, 0, 0,
+ 598, 599, 600, 601, 602, 603, 604, 1296, 1297, 1298,
+ 1299, 609, 1300, 1301, 1302, 1303, 614, 615, 616, 617,
+ 1304, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1305, 1306, 0, 0, 0, 234, 0, 1236, 684,
+ 1308, 1237, 1238, 1239, 745, 1240, 0, 0, 0, 0,
+ 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
+ 242, 0, 243, 244, 245, 0, 0, 0, 0, 1241,
+ 0, 0, 246, 247, 248, 0, 249, 250, 251, 252,
+ 253, 254, 255, 256, 257, 1242, 259, 1243, 1244, 0,
+ 262, 263, 264, 265, 266, 267, 268, 1245, 1246, 269,
+ 270, 1247, 1248, 273, 0, 274, 275, 276, 277, 1249,
+ 0, 1250, 0, 280, 281, 282, 283, 284, 285, 286,
+ 287, 288, 289, 0, 290, 291, 292, 293, 294, 295,
+ 0, 296, 297, 5324, 299, 1251, 1252, 1253, 1254, 1255,
+ 1256, 1257, 301, 302, 303, 304, 305, 306, 1258, 1259,
+ 309, 1260, 310, 0, 311, 312, 313, 314, 315, 316,
+ 317, 0, 318, 319, 320, 321, 0, 0, 322, 323,
+ 860, 325, 326, 0, 327, 328, 329, 0, 330, 331,
+ 332, 0, 333, 334, 335, 336, 1261, 338, 339, 340,
+ 341, 1262, 1263, 343, 0, 344, 345, 346, 1264, 348,
+ 0, 349, 0, 350, 351, 0, 352, 353, 354, 355,
+ 356, 0, 357, 1265, 0, 5325, 360, 361, 0, 362,
+ 363, 364, 365, 366, 367, 368, 369, 370, 371, 0,
+ 372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
+ 381, 382, 383, 384, 385, 1267, 1268, 0, 1269, 0,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 0, 0, 399, 1270, 401, 402, 403, 0, 404, 405,
+ 406, 1271, 1272, 407, 408, 409, 410, 411, 412, 413,
+ 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
+ 424, 1273, 426, 1274, 428, 429, 430, 431, 432, 433,
+ 434, 435, 1275, 437, 1276, 438, 439, 440, 441, 1277,
+ 1278, 443, 1279, 445, 446, 447, 0, 448, 449, 0,
+ 0, 1280, 451, 452, 0, 0, 453, 454, 455, 456,
+ 457, 458, 1281, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 0, 470, 471, 1282, 473, 474, 475,
+ 476, 477, 0, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 1283, 489, 490, 491, 492, 0, 493,
+ 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
+ 504, 505, 0, 506, 507, 508, 509, 510, 5326, 512,
+ 513, 1284, 515, 516, 517, 518, 519, 520, 521, 522,
+ 523, 0, 524, 525, 526, 527, 528, 1285, 529, 530,
+ 531, 532, 533, 534, 535, 536, 1286, 538, 0, 539,
+ 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
+ 550, 551, 1287, 553, 0, 554, 555, 0, 556, 557,
+ 558, 559, 560, 561, 562, 0, 563, 1288, 1289, 0,
+ 0, 566, 567, 1290, 569, 1291, 1292, 571, 572, 573,
+ 574, 575, 576, 577, 578, 0, 1293, 579, 580, 581,
+ 582, 583, 1294, 0, 584, 585, 586, 587, 588, 589,
+ 1295, 0, 591, 592, 593, 594, 595, 596, 0, 0,
+ 597, 0, 0, 598, 599, 600, 601, 602, 603, 604,
+ 1296, 1297, 1298, 1299, 609, 1300, 1301, 1302, 1303, 614,
+ 615, 616, 617, 1304, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1305, 1306, 0, 0, 0, 234,
+ 0, 1236, 684, 5327, 1237, 1238, 1239, 745, 1240, 0,
+ 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
+ 239, 240, 241, 242, 0, 243, 244, 245, 0, 0,
+ 0, 0, 1241, 0, 0, 246, 247, 248, 0, 249,
+ 250, 251, 252, 253, 254, 255, 256, 5818, 1242, 259,
+ 1243, 1244, 0, 262, 263, 264, 265, 266, 267, 268,
+ 1245, 1246, 269, 270, 1247, 1248, 273, 0, 274, 275,
+ 276, 277, 1249, 0, 1250, 0, 280, 281, 282, 283,
+ 284, 285, 286, 287, 288, 289, 0, 290, 291, 292,
+ 293, 294, 295, 0, 296, 297, 298, 5819, 1251, 1252,
+ 1253, 1254, 1255, 1256, 1257, 301, 302, 303, 304, 305,
+ 306, 1258, 1259, 309, 1260, 310, 0, 311, 312, 313,
+ 314, 315, 316, 317, 0, 318, 319, 320, 321, 0,
+ 0, 322, 323, 860, 325, 326, 0, 327, 328, 329,
+ 0, 330, 331, 332, 0, 333, 334, 335, 336, 1261,
+ 338, 339, 340, 341, 1262, 1263, 343, 0, 344, 345,
+ 346, 1264, 348, 0, 349, 0, 350, 351, 0, 352,
+ 353, 354, 355, 356, 0, 357, 1265, 0, 1266, 360,
+ 361, 0, 362, 363, 364, 365, 366, 367, 368, 369,
+ 370, 371, 0, 372, 373, 374, 375, 376, 377, 378,
+ 0, 379, 380, 381, 382, 383, 384, 385, 1267, 1268,
+ 0, 1269, 0, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, 0, 0, 399, 1270, 401, 402, 403,
+ 0, 404, 405, 406, 1271, 1272, 407, 408, 409, 410,
+ 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
+ 421, 422, 423, 424, 1273, 426, 1274, 428, 429, 430,
+ 431, 432, 433, 434, 435, 1275, 437, 1276, 438, 439,
+ 440, 441, 1277, 1278, 443, 1279, 445, 446, 447, 0,
+ 448, 449, 0, 0, 1280, 451, 452, 0, 0, 453,
+ 454, 455, 456, 457, 458, 1281, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 0, 470, 471, 1282,
+ 473, 474, 475, 476, 477, 0, 478, 479, 480, 481,
+ 482, 483, 484, 485, 486, 487, 1283, 489, 490, 491,
+ 492, 0, 493, 494, 495, 496, 497, 498, 499, 500,
+ 501, 502, 503, 504, 505, 0, 506, 507, 508, 509,
+ 510, 511, 512, 513, 1284, 515, 516, 517, 518, 519,
+ 520, 521, 522, 523, 0, 524, 525, 526, 527, 528,
+ 1285, 529, 530, 531, 532, 533, 534, 535, 536, 1286,
+ 538, 0, 539, 540, 541, 542, 543, 544, 545, 546,
+ 547, 548, 549, 550, 551, 1287, 553, 0, 554, 555,
+ 0, 556, 557, 558, 559, 560, 561, 562, 0, 563,
+ 1288, 1289, 0, 0, 566, 567, 1290, 569, 1291, 1292,
+ 571, 572, 573, 574, 575, 5820, 577, 578, 0, 1293,
+ 579, 580, 581, 582, 583, 1294, 0, 584, 585, 586,
+ 587, 588, 589, 1295, 0, 591, 592, 593, 594, 595,
+ 596, 0, 0, 597, 0, 0, 598, 599, 600, 601,
+ 602, 603, 604, 1296, 1297, 1298, 1299, 609, 1300, 1301,
+ 1302, 1303, 614, 615, 616, 617, 1304, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1305, 1306, 0,
+ 0, 0, 234, 0, 1236, 684, 1308, 1237, 1238, 1239,
+ 745, 1240, 0, 0, 0, 0, 0, 0, 0, 235,
+ 236, 237, 238, 239, 240, 241, 242, 0, 243, 244,
+ 245, 0, 0, 0, 0, 1241, 0, 0, 246, 247,
+ 248, 0, 249, 250, 251, 252, 253, 254, 255, 256,
+ 257, 1242, 259, 1243, 1244, 0, 262, 263, 264, 265,
+ 266, 267, 268, 1245, 1246, 269, 270, 1247, 1248, 273,
+ 0, 274, 275, 276, 277, 1249, 0, 1250, 0, 280,
+ 281, 282, 283, 284, 285, 286, 287, 288, 289, 0,
+ 290, 291, 292, 293, 294, 295, 0, 296, 297, 298,
+ 5819, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 301, 302,
+ 303, 304, 305, 306, 1258, 1259, 309, 1260, 310, 0,
+ 311, 312, 313, 314, 315, 316, 317, 0, 318, 319,
+ 320, 321, 0, 0, 322, 323, 860, 325, 326, 0,
+ 327, 328, 329, 0, 330, 331, 332, 0, 333, 334,
+ 335, 336, 1261, 338, 339, 340, 341, 1262, 1263, 343,
+ 0, 344, 345, 346, 1264, 348, 0, 349, 0, 350,
+ 351, 0, 352, 353, 354, 355, 356, 0, 357, 1265,
+ 0, 1266, 360, 361, 0, 362, 363, 364, 365, 366,
+ 367, 368, 369, 370, 371, 0, 372, 373, 374, 375,
+ 376, 377, 378, 0, 379, 380, 381, 382, 383, 384,
+ 385, 1267, 1268, 0, 1269, 0, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 0, 0, 399, 1270,
+ 401, 402, 403, 0, 404, 405, 406, 1271, 1272, 407,
+ 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
+ 418, 419, 420, 421, 422, 423, 424, 1273, 426, 1274,
+ 428, 429, 430, 431, 432, 433, 434, 435, 1275, 437,
+ 1276, 438, 439, 440, 441, 1277, 1278, 443, 1279, 445,
+ 446, 447, 0, 448, 449, 0, 0, 1280, 451, 452,
+ 0, 0, 453, 454, 455, 456, 457, 458, 1281, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 0,
+ 470, 471, 1282, 473, 474, 475, 476, 477, 0, 478,
+ 479, 480, 481, 482, 483, 484, 485, 486, 487, 1283,
+ 489, 490, 491, 492, 0, 493, 494, 495, 496, 497,
+ 498, 499, 500, 501, 502, 503, 504, 505, 0, 506,
+ 507, 508, 509, 510, 511, 512, 513, 1284, 515, 516,
+ 517, 518, 519, 520, 521, 522, 523, 0, 524, 525,
+ 526, 527, 528, 1285, 529, 530, 531, 532, 533, 534,
+ 535, 536, 1286, 538, 0, 539, 540, 541, 542, 543,
+ 544, 545, 546, 547, 548, 549, 550, 551, 1287, 553,
+ 0, 554, 555, 0, 556, 557, 558, 559, 560, 561,
+ 562, 0, 563, 1288, 1289, 0, 0, 566, 567, 1290,
+ 569, 1291, 1292, 571, 572, 573, 574, 575, 5820, 577,
+ 578, 0, 1293, 579, 580, 581, 582, 583, 1294, 0,
+ 584, 585, 586, 587, 588, 589, 1295, 0, 591, 592,
+ 593, 594, 595, 596, 0, 0, 597, 0, 0, 598,
+ 599, 600, 601, 602, 603, 604, 1296, 1297, 1298, 1299,
+ 609, 1300, 1301, 1302, 1303, 614, 615, 616, 617, 1304,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1305, 1306, 0, 0, 0, 234, 0, 1236, 684, 1308,
+ 1237, 1238, 1239, 745, 1240, 0, 0, 0, 0, 0,
+ 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
+ 0, 243, 244, 245, 0, 0, 0, 0, 1241, 0,
+ 0, 246, 247, 248, 0, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 1242, 259, 1243, 1244, 0, 262,
+ 263, 264, 265, 266, 267, 268, 1245, 1246, 269, 270,
+ 1247, 1248, 273, 0, 274, 275, 276, 277, 1249, 0,
+ 1250, 0, 280, 281, 282, 283, 284, 285, 286, 287,
+ 288, 289, 0, 290, 291, 292, 293, 294, 295, 0,
+ 296, 297, 298, 299, 1251, 1252, 1253, 1254, 1255, 1256,
+ 1257, 301, 302, 303, 304, 305, 306, 1258, 1259, 309,
+ 5309, 310, 0, 311, 312, 313, 314, 315, 316, 317,
+ 0, 318, 319, 320, 321, 0, 0, 322, 323, 860,
+ 325, 326, 0, 327, 328, 329, 0, 330, 331, 332,
+ 0, 333, 334, 335, 336, 1261, 338, 339, 340, 341,
+ 1262, 1263, 343, 0, 344, 345, 346, 1264, 348, 0,
+ 349, 0, 350, 351, 0, 352, 353, 354, 355, 356,
+ 0, 357, 1265, 0, 1266, 360, 361, 0, 362, 363,
+ 364, 365, 366, 367, 368, 369, 370, 371, 0, 372,
+ 373, 374, 375, 376, 377, 378, 0, 379, 380, 381,
+ 382, 383, 384, 385, 1267, 1268, 0, 1269, 0, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 0,
+ 0, 399, 1270, 401, 402, 403, 0, 404, 405, 406,
+ 1271, 1272, 407, 408, 409, 410, 411, 412, 413, 414,
+ 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
+ 1273, 426, 1274, 428, 429, 430, 431, 432, 433, 434,
+ 435, 1275, 437, 0, 438, 439, 440, 441, 1277, 1278,
+ 443, 1279, 445, 446, 447, 0, 448, 449, 0, 0,
+ 1280, 451, 452, 0, 0, 453, 454, 455, 456, 457,
+ 458, 1281, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 0, 470, 471, 1282, 473, 474, 475, 476,
+ 477, 0, 478, 479, 480, 481, 482, 483, 484, 485,
+ 486, 487, 1283, 489, 490, 491, 492, 0, 493, 494,
+ 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
+ 505, 0, 506, 507, 508, 509, 510, 511, 512, 513,
+ 3189, 515, 516, 517, 518, 519, 520, 521, 522, 523,
+ 0, 524, 525, 526, 527, 528, 1285, 529, 530, 531,
+ 532, 533, 534, 535, 536, 1286, 538, 0, 539, 540,
+ 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
+ 551, 1287, 553, 0, 554, 555, 0, 556, 557, 558,
+ 559, 560, 561, 562, 0, 563, 1288, 1289, 0, 0,
+ 566, 567, 1290, 569, 1291, 1292, 571, 572, 573, 574,
+ 575, 576, 577, 578, 0, 0, 579, 580, 581, 582,
+ 583, 1294, 0, 584, 585, 586, 587, 588, 589, 1295,
+ 0, 591, 592, 593, 594, 595, 596, 0, 0, 597,
+ 0, 0, 598, 599, 600, 601, 602, 603, 604, 1296,
+ 1297, 1298, 1299, 609, 1300, 1301, 1302, 1303, 614, 615,
+ 616, 617, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3190, 3191, 0, 0, 0, 234, 0,
+ 1236, 684, 3192, 1237, 1238, 1239, 745, 1240, 0, 0,
+ 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
+ 240, 241, 242, 0, 243, 244, 245, 0, 0, 0,
+ 0, 1241, 0, 0, 246, 247, 248, 0, 249, 250,
+ 251, 252, 253, 254, 255, 256, -2816, 1242, 259, 1243,
+ 1244, 0, 262, 263, 264, 265, 266, 267, 268, 1245,
+ 1246, 269, 270, 1247, 1248, 273, 0, 274, 275, 276,
+ 277, 1249, 0, 1250, 0, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 0, 290, 291, 292, 293,
+ 294, 295, 0, 296, 297, 298, 5819, 1251, 1252, 1253,
+ 1254, 1255, 1256, 1257, 301, 302, 303, 304, 305, 306,
+ 1258, 1259, 309, 1260, 310, 0, 311, 312, 313, 314,
+ 315, 316, 317, 0, 318, 319, 320, 321, 0, 0,
+ 322, 323, 860, 325, 326, 0, 327, 328, 329, 0,
+ 330, 331, 332, 0, 333, 334, 335, 336, 1261, 338,
+ 339, 340, 341, 1262, 1263, 343, 0, 344, 345, 346,
+ 1264, 348, 0, 349, 0, 350, 351, 0, 352, 353,
+ 354, 355, 356, 0, 357, 1265, 0, 1266, 360, 361,
+ 0, 362, 363, 364, 365, 366, -2816, 368, 369, 370,
+ 371, 0, 372, 373, 374, 375, 376, 377, 378, 0,
+ 379, 380, 381, 382, 383, 384, 385, 1267, 1268, 0,
+ 1269, 0, 389, 0, 0, 392, 393, 394, 395, 396,
+ 397, 398, 0, 0, 399, 1270, 401, 402, -2816, 0,
+ 404, 405, 406, 1271, 1272, 407, 408, 409, 410, 411,
+ 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
+ 422, 423, 424, 1273, 426, 1274, 428, 429, 430, 431,
+ 432, 433, 434, 435, 1275, 437, 1276, 438, 439, 0,
+ 441, 1277, 1278, 443, 1279, 445, 446, 447, 0, 448,
+ 449, 0, 0, 1280, 451, 452, 0, 0, 453, 454,
+ 455, 456, 457, 458, 1281, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 0, 470, 471, 1282, 473,
+ 474, 475, 476, 477, 0, 478, 479, 480, 481, 482,
+ 483, 484, 485, 486, 487, 1283, 489, 490, 491, 492,
+ 0, 493, 494, 495, 496, 497, 498, 499, 500, 501,
+ 502, 503, 504, 505, 0, 506, 507, 508, 509, 510,
+ 511, 512, 513, 1284, 515, 516, 517, 518, 519, 520,
+ 521, 522, 523, 0, 524, 525, 526, 527, 528, 1285,
+ 529, 530, 531, 532, 533, -2816, 535, 536, 1286, 538,
+ 0, 539, 540, 541, 542, 543, 544, 545, 546, 547,
+ 548, 549, 550, 551, 1287, 553, 0, 554, 555, 0,
+ 556, 557, 558, 559, 560, 561, 562, 0, 563, 1288,
+ 1289, 0, 0, 566, 567, 1290, 569, 1291, 1292, 571,
+ 572, 573, 574, 575, 5820, 577, 578, 0, 1293, 579,
+ 580, 581, 582, 583, 1294, 0, 584, 585, 586, 587,
+ 588, 589, 1295, 0, 591, 592, 593, 594, 595, 596,
+ 0, 0, 597, 0, 0, 598, 599, 600, 601, 602,
+ 603, 604, 1296, 1297, 1298, 1299, 609, 1300, 1301, 1302,
+ 1303, 614, 615, 616, 617, -2816, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1305, 1306, 0, 0,
+ 0, 234, 0, 1236, 684, 1308, 1237, 1238, 1239, 745,
+ 1240, 0, 0, 0, 0, 0, 0, 0, 235, 236,
+ 237, 238, 239, 240, 241, 242, 0, 243, 244, 245,
+ 0, 0, 0, 0, 1241, 0, 0, 246, 247, 248,
+ 0, 249, 250, 251, 252, 253, 254, 255, 256, 257,
+ 1242, 259, 1243, 1244, 0, 262, 263, 264, 265, 266,
+ 267, 268, 1245, 1246, 269, 270, 1247, 1248, 273, 0,
+ 274, 275, 276, 277, 1249, 0, 1250, 0, 280, 281,
+ 282, 283, 284, 285, 286, 287, 288, 289, 0, 290,
+ 291, 292, 293, 294, 295, 0, 296, 297, 298, 299,
+ 1251, 1252, 1253, 1254, 1255, 1256, 1257, 301, 302, 303,
+ 304, 305, 306, 1258, 1259, 309, 0, 310, 0, 311,
+ 312, 313, 314, 315, 316, 317, 0, 318, 319, 320,
+ 321, 0, 0, 322, 323, 860, 325, 326, 0, 327,
+ 328, 329, 0, 330, 331, 332, 0, 333, 334, 335,
+ 336, 1261, 338, 339, 340, 341, 1262, 1263, 343, 0,
+ 344, 345, 346, 1264, 348, 0, 349, 0, 350, 351,
+ 0, 352, 353, 354, 355, 356, 0, 357, 1265, 0,
+ 1266, 360, 361, 0, 362, 363, 364, 365, 366, 367,
+ 368, 369, 370, 371, 0, 372, 373, 374, 375, 376,
+ 377, 378, 0, 379, 380, 381, 382, 383, 384, 385,
+ 1267, 1268, 0, 1269, 0, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 0, 0, 399, 1270, 401,
+ 402, 403, 0, 404, 405, 406, 1271, 1272, 407, 408,
+ 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
+ 419, 420, 421, 422, 423, 424, 1273, 426, 1274, 428,
+ 429, 430, 431, 432, 433, 434, 435, 1275, 437, 0,
+ 438, 439, 440, 441, 1277, 1278, 443, 1279, 445, 446,
+ 447, 0, 448, 449, 0, 0, 1280, 451, 452, 0,
+ 0, 453, 454, 455, 456, 457, 458, 1281, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 0, 470,
+ 471, 1282, 473, 474, 475, 476, 477, 0, 478, 479,
+ 480, 481, 482, 483, 484, 485, 486, 487, 1283, 489,
+ 490, 491, 492, 0, 493, 494, 495, 496, 497, 498,
+ 499, 500, 501, 502, 503, 504, 505, 0, 506, 507,
+ 508, 509, 510, 511, 512, 513, 3189, 515, 516, 517,
+ 518, 519, 520, 521, 522, 523, 0, 524, 525, 526,
+ 527, 528, 1285, 529, 530, 531, 532, 533, 534, 535,
+ 536, 1286, 538, 0, 539, 540, 541, 542, 543, 544,
+ 545, 546, 547, 548, 549, 550, 551, 1287, 553, 0,
+ 554, 555, 0, 556, 557, 558, 559, 560, 561, 562,
+ 0, 563, 1288, 1289, 0, 0, 566, 567, 1290, 569,
+ 1291, 1292, 571, 572, 573, 574, 575, 576, 577, 578,
+ 0, 0, 579, 580, 581, 582, 583, 1294, 0, 584,
+ 585, 586, 587, 588, 589, 1295, 0, 591, 592, 593,
+ 594, 595, 596, 0, 0, 597, 0, 0, 598, 599,
+ 600, 601, 602, 603, 604, 1296, 1297, 1298, 1299, 609,
+ 1300, 1301, 1302, 1303, 614, 615, 616, 617, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3190,
+ 3191, 234, 0, 1236, 684, 0, 1237, 1238, 3192, 745,
+ 1240, 0, 0, 0, 0, 0, 0, 0, 235, 236,
+ 237, 238, 239, 240, 241, 242, 0, 243, 244, 245,
+ 0, 0, 0, 0, 1241, 0, 0, 246, 247, 248,
+ 0, 249, 250, 251, 252, 253, 254, 255, 256, 257,
+ 1242, 259, 1243, 1244, 0, 262, 263, 264, 265, 266,
+ 267, 268, 1245, 1246, 269, 270, 1247, 1248, 273, 0,
+ 274, 275, 276, 277, 1249, 0, 1250, 0, 280, 281,
+ 282, 283, 284, 285, 286, 287, 288, 289, 0, 290,
+ 291, 292, 293, 294, 295, 0, 296, 297, 298, 299,
+ 1251, 1252, 1253, 1254, 1255, 1256, 1257, 301, 302, 303,
+ 304, 305, 306, 1258, 1259, 309, 0, 310, 0, 311,
+ 312, 313, 314, 315, 316, 317, 0, 318, 319, 320,
+ 321, 0, 0, 322, 323, 860, 325, 326, 0, 327,
+ 328, 329, 0, 330, 331, 332, 0, 333, 334, 335,
+ 336, 1261, 338, 339, 340, 341, 1262, 1263, 343, 0,
+ 344, 345, 346, 1264, 348, 0, 349, 0, 350, 351,
+ 0, 352, 353, 354, 355, 356, 0, 357, 1265, 0,
+ 1266, 360, 361, 0, 362, 363, 364, 365, 366, 367,
+ 368, 369, 370, 371, 0, 372, 373, 374, 375, 376,
+ 377, 378, 0, 379, 380, 381, 382, 383, 384, 385,
+ 1267, 1268, 0, 1269, 0, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 0, 0, 399, 1270, 401,
+ 402, 403, 0, 404, 405, 406, 1271, 1272, 407, 408,
+ 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
+ 419, 420, 421, 422, 423, 424, 1273, 426, 1274, 428,
+ 429, 430, 431, 432, 433, 434, 435, 1275, 437, 0,
+ 438, 439, 440, 441, 1277, 1278, 443, 1279, 445, 446,
+ 447, 0, 448, 449, 0, 0, 450, 451, 452, 0,
+ 0, 453, 454, 455, 456, 457, 458, 1281, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 0, 470,
+ 471, 1282, 473, 474, 475, 476, 477, 0, 478, 479,
+ 480, 481, 482, 483, 484, 485, 486, 487, 1283, 489,
+ 490, 491, 492, 0, 493, 494, 495, 496, 497, 498,
+ 499, 500, 501, 502, 503, 504, 505, 0, 506, 507,
+ 508, 509, 510, 511, 512, 513, 3360, 3361, 516, 517,
+ 518, 519, 520, 521, 522, 523, 0, 524, 525, 526,
+ 527, 528, 1285, 529, 530, 531, 532, 533, 534, 535,
+ 536, 1286, 538, 0, 539, 540, 541, 542, 543, 544,
+ 545, 546, 547, 548, 549, 550, 551, 1287, 553, 0,
+ 554, 555, 0, 556, 557, 558, 559, 560, 561, 562,
+ 0, 563, 1288, 1289, 0, 0, 566, 567, 1290, 569,
+ 1291, 1292, 571, 572, 573, 574, 575, 576, 577, 578,
+ 0, 0, 579, 580, 581, 582, 583, 1294, 0, 584,
+ 585, 586, 587, 588, 589, 1295, 0, 591, 592, 593,
+ 594, 595, 596, 0, 0, 597, 0, 0, 598, 599,
+ 600, 601, 602, 603, 604, 1296, 1297, 1298, 1299, 609,
+ 1300, 1301, 1302, 1303, 614, 615, 616, 617, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3362,
+ 3363, 234, 0, 1236, 684, 0, 1237, 1238, 3192, 745,
+ 1240, 0, 0, 0, 0, 0, 0, 0, 235, 236,
+ 237, 238, 239, 240, 241, 242, 0, 243, 244, 245,
+ 0, 0, 0, 0, 1241, 0, 0, 246, 247, 248,
+ 0, 249, 250, 251, 252, 253, 254, 255, 256, 257,
+ 1242, 259, 1243, 1244, 0, 262, 263, 264, 265, 266,
+ 267, 268, 1245, 1246, 269, 270, 1247, 1248, 273, 0,
+ 274, 275, 276, 277, 1249, 0, 1250, 0, 280, 281,
+ 282, 283, 284, 285, 286, 287, 288, 289, 0, 290,
+ 291, 292, 293, 294, 295, 0, 296, 297, 298, 299,
+ 1251, 1252, 1253, 1254, 1255, 1256, 1257, 301, 302, 303,
+ 304, 305, 306, 1258, 1259, 309, 0, 310, 0, 311,
+ 312, 313, 314, 315, 316, 317, 0, 318, 319, 320,
+ 321, 0, 0, 322, 323, 860, 325, 326, 0, 327,
+ 328, 329, 0, 330, 331, 332, 0, 333, 334, 335,
+ 336, 1261, 338, 339, 340, 341, 1262, 1263, 343, 0,
+ 344, 345, 346, 1264, 348, 0, 349, 0, 350, 351,
+ 0, 352, 353, 354, 355, 356, 0, 357, 1265, 0,
+ 1266, 360, 361, 0, 362, 363, 364, 365, 366, 367,
+ 368, 369, 370, 371, 0, 372, 373, 374, 375, 376,
+ 377, 378, 0, 379, 380, 381, 382, 383, 384, 385,
+ 1267, 1268, 0, 1269, 0, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 0, 0, 399, 1270, 401,
+ 402, 403, 0, 404, 405, 406, 1271, 1272, 407, 408,
+ 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
+ 419, 420, 421, 422, 423, 424, 1273, 426, 1274, 428,
+ 429, 430, 431, 432, 433, 434, 435, 1275, 437, 0,
+ 438, 439, 440, 441, 1277, 1278, 443, 1279, 445, 446,
+ 447, 0, 448, 449, 0, 0, 450, 451, 452, 0,
+ 0, 453, 454, 455, 456, 457, 458, 1281, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 0, 470,
+ 471, 1282, 473, 474, 475, 476, 477, 0, 478, 479,
+ 480, 481, 482, 483, 484, 485, 486, 487, 1283, 489,
+ 490, 491, 492, 0, 493, 494, 495, 496, 497, 498,
+ 499, 500, 501, 502, 503, 504, 505, 0, 506, 507,
+ 508, 509, 510, 511, 512, 513, 3189, 515, 516, 517,
+ 518, 519, 520, 521, 522, 523, 0, 524, 525, 526,
+ 527, 528, 1285, 529, 530, 531, 532, 533, 534, 535,
+ 536, 1286, 538, 0, 539, 540, 541, 542, 543, 544,
+ 545, 546, 547, 548, 549, 550, 551, 1287, 553, 0,
+ 554, 555, 0, 556, 557, 558, 559, 560, 561, 562,
+ 0, 563, 1288, 1289, 0, 0, 566, 567, 1290, 569,
+ 1291, 1292, 571, 572, 573, 574, 575, 576, 577, 578,
+ 0, 0, 579, 580, 581, 582, 583, 1294, 0, 584,
+ 585, 586, 587, 588, 589, 1295, 0, 591, 592, 593,
+ 594, 595, 596, 0, 0, 597, 0, 0, 598, 599,
+ 600, 601, 602, 603, 604, 1296, 1297, 1298, 1299, 609,
+ 1300, 1301, 1302, 1303, 614, 615, 616, 617, 0, 0,
+ 0, 0, 234, 0, 1236, 684, 0, 1237, 1238, 0,
+ 745, 1240, 0, 0, 0, 0, 0, 0, 3192, 235,
+ 236, 237, 238, 239, 240, 241, 242, 0, 243, 244,
+ 245, 0, 0, 0, 0, 1241, 0, 0, 246, 247,
+ 248, 0, 249, 250, 251, 252, 253, 254, 255, 256,
+ 257, 1242, 259, 1243, 1244, 0, 262, 4553, 264, 265,
+ 266, 267, 268, 1245, 1246, 269, 270, 1247, 1248, 273,
+ 0, 274, 275, 276, 277, 1249, 0, 1250, 0, 280,
+ 281, 282, 283, 284, 285, 286, 287, 288, 289, 0,
+ 290, 291, 292, 293, 294, 295, 0, 296, 297, 298,
+ 299, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 301, 302,
+ 303, 304, 305, 306, 1258, 1259, 309, 0, 310, 0,
+ 311, 312, 313, 314, 315, 316, 317, 0, 318, 319,
+ 320, 321, 0, 0, 322, 323, 860, 325, 326, 0,
+ 327, 328, 329, 0, 330, 331, 332, 0, 333, 334,
+ 335, 336, 1261, 338, 339, 340, 341, 1262, 1263, 343,
+ 0, 344, 345, 346, 1264, 348, 0, 349, 0, 350,
+ 351, 0, 352, 353, 354, 355, 356, 0, 357, 1265,
+ 0, 1266, 360, 361, 0, 362, 363, 364, 365, 366,
+ 367, 368, 369, 370, 371, 0, 372, 373, 374, 375,
+ 376, 377, 378, 0, 379, 380, 381, 382, 383, 384,
+ 385, 1267, 1268, 0, 1269, 0, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 0, 0, 399, 1270,
+ 401, 402, 403, 0, 404, 405, 406, 1271, 1272, 407,
+ 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
+ 418, 419, 420, 421, 422, 423, 424, 1273, 426, 1274,
+ 428, 429, 430, 431, 432, 433, 434, 435, 1275, 437,
+ 0, 438, 439, 440, 441, 1277, 1278, 443, 1279, 445,
+ 446, 447, 0, 448, 449, 0, 0, 450, 451, 452,
+ 0, 0, 453, 454, 455, 456, 457, 458, 1281, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 0,
+ 470, 471, 1282, 473, 474, 475, 476, 477, 0, 478,
+ 479, 480, 481, 482, 483, 484, 485, 486, 487, 1283,
+ 489, 490, 491, 492, 0, 493, 494, 495, 496, 497,
+ 498, 499, 500, 501, 502, 503, 504, 505, 0, 506,
+ 507, 508, 509, 510, 511, 512, 513, 3189, 515, 516,
+ 517, 518, 519, 520, 521, 522, 523, 0, 524, 525,
+ 526, 527, 528, 1285, 529, 530, 531, 532, 533, 534,
+ 535, 536, 1286, 538, 0, 539, 540, 541, 542, 543,
+ 544, 545, 546, 547, 548, 549, 550, 551, 1287, 553,
+ 0, 554, 555, 0, 556, 557, 558, 559, 560, 561,
+ 562, 0, 563, 1288, 1289, 0, 0, 566, 567, 1290,
+ 569, 1291, 1292, 571, 572, 573, 574, 575, 576, 577,
+ 578, 0, 0, 579, 580, 581, 582, 583, 1294, 0,
+ 584, 585, 586, 587, 588, 589, 1295, 0, 591, 592,
+ 593, 594, 595, 596, 0, 0, 597, 0, 0, 598,
+ 599, 600, 601, 602, 603, 604, 1296, 1297, 1298, 1299,
+ 609, 1300, 1301, 1302, 1303, 614, 615, 616, 617, 0,
+ 0, 0, 0, 234, 0, 1236, 684, 0, 1237, 1238,
+ 0, 745, 1240, 0, 0, 0, 0, 0, 0, 3192,
+ 235, 236, 237, 238, 239, 240, 241, 242, 0, 243,
+ 244, 245, 0, 0, 0, 0, 1241, 0, 0, 246,
+ 247, 248, 0, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 1242, 259, 1243, 1244, 0, 262, 263, 264,
+ 265, 266, 267, 268, 1245, 1246, 269, 270, 1247, 1248,
+ 273, 0, 274, 275, 276, 277, 1249, 0, 1250, 0,
+ 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 0, 290, 291, 292, 293, 294, 295, 0, 296, 297,
+ 298, 299, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 301,
+ 302, 303, 304, 305, 306, 1258, 1259, 309, 0, 310,
+ 0, 311, 312, 313, 314, 315, 316, 317, 0, 318,
+ 319, 320, 321, 0, 0, 322, 323, 860, 325, 326,
+ 0, 327, 328, 329, 0, 330, 331, 332, 0, 333,
+ 334, 335, 336, 1261, 338, 339, 340, 341, 1262, 1263,
+ 343, 0, 344, 345, 346, 1264, 348, 0, 349, 0,
+ 350, 351, 0, 352, 353, 354, 355, 356, 0, 357,
+ 1265, 0, 1266, 360, 361, 0, 362, 363, 364, 365,
+ 366, 367, 368, 369, 370, 371, 0, 372, 373, 374,
+ 375, 376, 377, 378, 0, 379, 380, 381, 382, 383,
+ 384, 385, 1267, 1268, 0, 1269, 0, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 0, 0, 399,
+ 1270, 401, 402, 403, 0, 404, 405, 406, 1271, 1272,
+ 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
+ 417, 418, 419, 420, 421, 422, 423, 424, 1273, 426,
+ 1274, 428, 429, 430, 431, 432, 433, 434, 435, 1275,
+ 437, 0, 438, 439, 440, 441, 1277, 1278, 443, 1279,
+ 445, 446, 447, 0, 448, 449, 0, 0, 450, 451,
+ 452, 0, 0, 453, 454, 455, 456, 457, 458, 1281,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 0, 470, 471, 1282, 473, 474, 475, 476, 477, 0,
+ 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
+ 1283, 489, 490, 491, 492, 0, 493, 494, 495, 496,
+ 497, 498, 499, 500, 501, 502, 503, 504, 505, 0,
+ 506, 507, 508, 509, 510, 511, 512, 513, 3189, 515,
+ 516, 517, 518, 519, 520, 521, 522, 523, 0, 524,
+ 525, 526, 527, 528, 1285, 529, 530, 531, 532, 533,
+ 534, 535, 536, 1286, 538, 0, 539, 540, 541, 542,
+ 543, 544, 545, 546, 547, 548, 549, 550, 551, 1287,
+ 553, 0, 554, 555, 0, 556, 557, 558, 559, 560,
+ 561, 562, 0, 563, 1288, 1289, 0, 0, 566, 567,
+ 1290, 569, 1291, 1292, 571, 572, 573, 574, 575, 576,
+ 577, 578, 0, 0, 579, 580, 581, 582, 583, 1294,
+ 0, 584, 585, 586, 587, 588, 589, 1295, 0, 591,
+ 592, 593, 594, 595, 596, 0, 0, 597, 0, 0,
+ 598, 599, 600, 601, 602, 603, 604, 1296, 1297, 1298,
+ 1299, 4611, 1300, 1301, 1302, 1303, 614, 615, 616, 617,
+ 0, 0, 0, 0, 234, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3192, 235, 236, 237, 238, 239, 240, 241, 242, 0,
+ 243, 244, 245, 0, 0, 0, 0, 0, 0, 0,
+ 246, 247, 248, 0, 249, 250, 251, 252, 253, 254,
+ 255, 256, 257, 258, 259, 260, 261, 0, 262, 263,
+ 264, 265, 266, 267, 268, 0, 1246, 269, 270, 271,
+ 272, 273, 0, 274, 275, 276, 277, 1249, 0, 1250,
+ 0, 280, 281, 282, 283, 284, 285, 286, 287, 288,
+ 289, 0, 290, 291, 292, 293, 294, 295, 0, 296,
+ 297, 298, 299, 1251, 1252, 1253, 1254, 1255, 1256, 1257,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, 0,
+ 310, 0, 311, 312, 313, 314, 315, 316, 317, 0,
+ 318, 319, 320, 321, 0, 0, 322, 323, 324, 325,
+ 326, 0, 327, 328, 329, 0, 330, 331, 332, 0,
+ 333, 334, 335, 336, 337, 338, 339, 340, 341, 1262,
+ 0, 343, 0, 344, 345, 346, 347, 348, 0, 349,
+ 0, 350, 351, 0, 352, 353, 354, 355, 356, 0,
+ 357, 1265, 0, 359, 360, 361, 0, 362, 363, 364,
+ 365, 366, 367, 368, 369, 370, 371, 0, 372, 373,
+ 374, 375, 376, 377, 378, 0, 379, 380, 381, 382,
+ 383, 384, 385, 386, 387, 0, 388, 0, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, 3335, 0,
+ 399, 1270, 401, 402, 403, 0, 404, 405, 406, 1271,
+ 1272, 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,
+ 1275, 437, 0, 438, 439, 440, 441, 0, 1278, 443,
+ 444, 445, 446, 447, 0, 448, 449, 0, 835, 450,
+ 451, 452, 0, 0, 453, 454, 455, 456, 457, 458,
+ 1281, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 0, 470, 471, 1282, 473, 474, 475, 476, 477,
+ 0, 478, 479, 480, 481, 482, 483, 484, 485, 486,
+ 487, 488, 489, 490, 491, 492, 0, 493, 494, 495,
+ 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
+ 0, 506, 507, 508, 509, 510, 511, 512, 513, 514,
+ 3336, 516, 517, 518, 519, 520, 521, 522, 523, 40,
+ 524, 525, 526, 527, 528, 1285, 529, 530, 531, 532,
+ 533, 534, 535, 536, 537, 538, 0, 539, 540, 541,
+ 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
+ 1287, 553, 0, 554, 555, 44, 556, 557, 558, 559,
+ 560, 561, 562, 0, 563, 564, 565, 0, 0, 566,
+ 567, 1290, 569, 1291, 0, 571, 572, 573, 574, 575,
+ 576, 577, 578, 0, 0, 579, 580, 581, 582, 583,
+ 1294, 0, 584, 585, 586, 587, 588, 1175, 590, 0,
+ 591, 592, 593, 594, 595, 596, 0, 0, 597, 0,
+ 49, 598, 599, 600, 601, 602, 603, 604, 1296, 1297,
+ 1298, 1299, 609, 1300, 1301, 1302, 1303, 3337, 615, 616,
+ 617, 0, 0, 50, 0, 234, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 3338, 235, 236, 237, 238, 239, 240, 241, 242,
+ 0, 243, 244, 245, 0, 0, 0, 0, 0, 0,
+ 0, 246, 247, 248, 0, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 258, 259, 260, 261, 0, 262,
+ 263, 264, 265, 266, 267, 268, 0, 1246, 269, 270,
+ 271, 272, 273, 0, 274, 275, 276, 277, 1249, 0,
+ 1250, 0, 280, 281, 282, 283, 284, 285, 286, 287,
+ 288, 289, 0, 290, 291, 292, 293, 294, 295, 0,
+ 296, 297, 298, 299, 1251, 1252, 1253, 1254, 1255, 1256,
+ 1257, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ 0, 310, 0, 311, 312, 313, 314, 315, 316, 317,
+ 0, 318, 319, 320, 321, 0, 0, 322, 323, 324,
+ 325, 326, 0, 327, 328, 329, 0, 330, 331, 332,
+ 0, 333, 334, 335, 336, 337, 338, 339, 340, 341,
+ 1262, 0, 343, 0, 344, 345, 346, 347, 348, 0,
+ 349, 0, 350, 351, 0, 352, 353, 354, 355, 356,
+ 0, 357, 1265, 0, 359, 360, 361, 0, 362, 363,
+ 364, 365, 366, 367, 368, 369, 370, 371, 0, 372,
+ 373, 374, 375, 376, 377, 378, 0, 379, 380, 381,
+ 382, 383, 384, 385, 386, 387, 0, 388, 0, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 3335,
+ 0, 399, 1270, 401, 402, 403, 0, 404, 405, 406,
+ 1271, 1272, 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, 1275, 437, 0, 438, 439, 440, 441, 0, 1278,
+ 443, 444, 445, 446, 447, 0, 448, 449, 0, 835,
+ 450, 451, 452, 0, 0, 453, 454, 455, 456, 457,
+ 458, 1281, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 0, 470, 471, 1282, 473, 474, 475, 476,
+ 477, 0, 478, 479, 480, 481, 482, 483, 484, 485,
+ 486, 487, 488, 489, 490, 491, 492, 0, 493, 494,
+ 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
+ 505, 0, 506, 507, 508, 509, 510, 511, 512, 513,
+ 514, 3336, 516, 517, 518, 519, 520, 521, 522, 523,
+ 0, 524, 525, 526, 527, 528, 1285, 529, 530, 531,
+ 532, 533, 534, 535, 536, 537, 538, 0, 539, 540,
+ 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
+ 551, 1287, 553, 0, 554, 555, 0, 556, 557, 558,
+ 559, 560, 561, 562, 0, 563, 564, 565, 0, 0,
+ 566, 567, 1290, 569, 1291, 0, 571, 572, 573, 574,
+ 575, 576, 577, 578, 0, 0, 579, 580, 581, 582,
+ 583, 1294, 0, 584, 585, 586, 587, 588, 589, 590,
+ 0, 591, 592, 593, 594, 595, 596, 0, 0, 597,
+ 0, 0, 598, 599, 600, 601, 602, 603, 604, 1296,
+ 1297, 1298, 1299, 609, 1300, 1301, 1302, 1303, 3337, 615,
+ 616, 617, 0, 0, 0, 0, 234, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 3338, 235, 236, 237, 238, 239, 240, 241,
+ 242, 0, 243, 244, 245, 0, 0, 0, 0, 0,
+ 0, 0, 246, 247, 248, 0, 249, 250, 251, 252,
+ 253, 254, 255, 256, 257, 258, 259, 260, 261, 0,
+ 262, 263, 264, 265, 266, 267, 268, 0, 1246, 269,
+ 270, 271, 272, 273, 0, 274, 275, 276, 277, 1249,
+ 0, 1250, 0, 280, 281, 282, 283, 284, 285, 286,
+ 287, 288, 289, 0, 290, 291, 292, 293, 294, 295,
+ 0, 296, 297, 298, 299, 1251, 1252, 1253, 1254, 1255,
+ 1256, 1257, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, 0, 310, 0, 311, 312, 313, 314, 315, 316,
+ 317, 0, 318, 319, 320, 321, 0, 0, 322, 323,
+ 324, 325, 326, 0, 327, 328, 329, 0, 330, 331,
+ 332, 0, 333, 334, 335, 336, 337, 338, 339, 340,
+ 341, 1262, 0, 343, 0, 344, 345, 346, 347, 348,
+ 0, 349, 0, 350, 351, 0, 352, 353, 354, 355,
+ 356, 0, 357, 1265, 0, 359, 360, 361, 0, 362,
+ 363, 364, 365, 366, 367, 368, 369, 370, 371, 0,
+ 372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
+ 381, 382, 383, 384, 385, 386, 387, 0, 388, 0,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 0, 0, 399, 1270, 401, 402, 403, 0, 404, 405,
+ 406, 1271, 1272, 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, 1275, 437, 0, 438, 439, 440, 441, 0,
+ 1278, 443, 444, 445, 446, 447, 0, 448, 449, 0,
+ 0, 450, 451, 452, 0, 0, 453, 454, 455, 456,
+ 457, 458, 1281, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 0, 470, 471, 1282, 473, 474, 475,
+ 476, 477, 0, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 488, 489, 490, 491, 492, 0, 493,
+ 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
+ 504, 505, 0, 506, 507, 508, 509, 510, 511, 512,
+ 513, 514, 515, 516, 517, 518, 519, 520, 521, 522,
+ 523, 0, 524, 525, 526, 527, 528, 1285, 529, 530,
+ 531, 532, 533, 534, 535, 536, 537, 538, 0, 539,
+ 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
+ 550, 551, 1287, 553, 0, 554, 555, 0, 556, 557,
+ 558, 559, 560, 561, 562, 0, 563, 564, 565, 0,
+ 0, 566, 567, 1290, 569, 1291, 0, 571, 572, 573,
+ 574, 575, 576, 577, 578, 0, 0, 579, 580, 581,
+ 582, 583, 1294, 0, 584, 585, 586, 587, 588, 589,
+ 590, 0, 591, 592, 593, 594, 595, 596, 0, 0,
+ 597, 0, 0, 598, 599, 600, 601, 602, 603, 604,
+ 1296, 1297, 1298, 1299, 609, 1300, 1301, 1302, 1303, 614,
+ 615, 616, 617, 0, 0, 0, 0, 234, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3773, 235, 236, 237, 238, 239, 240,
+ 241, 242, 0, 243, 244, 245, 0, 0, 0, 0,
+ 0, 0, 0, 246, 247, 248, 0, 249, 250, 251,
+ 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 0, 262, 263, 264, 265, 266, 267, 268, 0, 1246,
+ 269, 270, 271, 272, 273, 0, 274, 275, 276, 277,
+ 1249, 0, 1250, 0, 280, 281, 282, 283, 284, 285,
+ 286, 287, 288, 289, 0, 290, 291, 292, 293, 294,
+ 295, 0, 296, 297, 298, 299, 1251, 1252, 1253, 1254,
+ 1255, 1256, 1257, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, 0, 310, 0, 311, 312, 313, 314, 315,
+ 316, 317, 0, 318, 319, 320, 321, 0, 0, 322,
+ 323, 324, 325, 326, 0, 327, 328, 329, 0, 330,
+ 331, 332, 0, 333, 334, 335, 336, 337, 338, 339,
+ 340, 341, 1262, 0, 343, 0, 344, 345, 346, 347,
+ 348, 0, 349, 0, 350, 351, 0, 352, 353, 354,
+ 355, 356, 0, 357, 1265, 0, 359, 360, 361, 0,
+ 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
+ 0, 372, 373, 374, 375, 376, 377, 378, 0, 379,
+ 380, 381, 382, 383, 384, 385, 386, 387, 0, 388,
+ 0, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 0, 0, 399, 1270, 401, 402, 403, 0, 404,
+ 405, 406, 1271, 1272, 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, 1275, 437, 0, 438, 439, 440, 441,
+ 0, 1278, 443, 444, 445, 446, 447, 0, 448, 449,
+ 0, 0, 450, 451, 452, 0, 0, 453, 454, 455,
+ 456, 457, 458, 1281, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 0, 470, 471, 1282, 473, 474,
+ 475, 476, 477, 0, 478, 479, 480, 481, 482, 483,
+ 484, 485, 486, 487, 488, 489, 490, 491, 492, 0,
+ 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
+ 503, 504, 505, 0, 506, 507, 508, 509, 510, 511,
+ 512, 513, 514, 3336, 516, 517, 518, 519, 520, 521,
+ 522, 523, 0, 524, 525, 526, 527, 528, 1285, 529,
+ 530, 531, 532, 533, 534, 535, 536, 537, 538, 0,
+ 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
+ 549, 550, 551, 1287, 553, 0, 554, 555, 0, 556,
+ 557, 558, 559, 560, 561, 562, 0, 563, 564, 565,
+ 0, 0, 566, 567, 1290, 569, 1291, 0, 571, 572,
+ 573, 574, 575, 576, 577, 578, 0, 0, 579, 580,
+ 581, 582, 583, 1294, 0, 584, 585, 586, 587, 588,
+ 589, 590, 0, 591, 592, 593, 594, 595, 596, 0,
+ 0, 597, 0, 0, 598, 599, 600, 601, 602, 603,
+ 604, 1296, 1297, 1298, 1299, 609, 1300, 1301, 1302, 1303,
+ 3337, 615, 616, 617, 0, 0, 0, 0, 234, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 56, 235, 236, 237, 238, 239,
+ 240, 241, 242, 0, 243, 244, 245, 0, 0, 0,
+ 0, 0, 0, 0, 246, 247, 248, 0, 249, 250,
+ 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
+ 261, 0, 262, 263, 264, 265, 266, 267, 268, 0,
+ 1246, 269, 270, 271, 272, 273, 0, 274, 275, 276,
+ 277, 1249, 0, 1250, 0, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 0, 290, 291, 292, 293,
+ 294, 295, 0, 296, 297, 298, 299, 1251, 1252, 1253,
+ 1254, 1255, 1256, 1257, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, 0, 310, 0, 311, 312, 313, 314,
+ 315, 316, 317, 0, 318, 319, 320, 321, 0, 0,
+ 322, 323, 324, 325, 326, 0, 327, 328, 329, 0,
+ 330, 331, 332, 0, 333, 334, 335, 336, 337, 338,
+ 339, 340, 341, 1262, 0, 343, 0, 344, 345, 346,
+ 347, 348, 0, 349, 0, 350, 351, 0, 352, 353,
+ 354, 355, 356, 0, 357, 1265, 0, 359, 360, 361,
+ 0, 362, 363, 364, 365, 366, 367, 368, 369, 370,
+ 371, 0, 372, 373, 374, 375, 376, 377, 378, 0,
+ 379, 380, 381, 382, 383, 384, 385, 386, 387, 0,
+ 388, 0, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 0, 0, 399, 1270, 401, 402, 403, 0,
+ 404, 405, 406, 1271, 1272, 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, 1275, 437, 0, 438, 439, 440,
+ 441, 0, 1278, 443, 444, 445, 446, 447, 0, 448,
+ 449, 0, 0, 450, 451, 452, 0, 0, 453, 454,
+ 455, 456, 457, 458, 1281, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 0, 470, 471, 1282, 473,
+ 474, 475, 476, 477, 0, 478, 479, 480, 481, 482,
+ 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
+ 0, 493, 494, 495, 496, 497, 498, 499, 500, 501,
+ 502, 503, 504, 505, 0, 506, 507, 508, 509, 510,
+ 511, 512, 513, 514, 515, 516, 517, 518, 519, 520,
+ 521, 522, 523, 0, 524, 525, 526, 527, 528, 1285,
+ 529, 530, 531, 532, 533, 534, 535, 536, 537, 538,
+ 0, 539, 540, 541, 542, 543, 544, 545, 546, 547,
+ 548, 549, 550, 551, 1287, 553, 0, 554, 555, 0,
+ 556, 557, 558, 559, 560, 561, 562, 0, 563, 564,
+ 565, 0, 0, 566, 567, 1290, 569, 1291, 0, 571,
+ 572, 573, 574, 575, 576, 577, 578, 0, 0, 579,
+ 580, 581, 582, 583, 1294, 0, 584, 585, 586, 587,
+ 588, 589, 590, 0, 591, 592, 593, 594, 595, 596,
+ 0, 0, 597, 0, 0, 598, 599, 600, 601, 602,
+ 603, 604, 1296, 1297, 1298, 1299, 609, 1300, 1301, 1302,
+ 1303, 614, 615, 616, 617, 0, 0, 0, 0, 234,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 4672, 235, 236, 237, 238,
+ 239, 240, 241, 242, 0, 243, 244, 245, 0, 0,
+ 0, 0, 0, 0, 0, 246, 247, 248, 0, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
+ 260, 261, 0, 262, 263, 264, 265, 266, 267, 268,
+ 0, 1246, 269, 270, 271, 272, 273, 0, 274, 275,
+ 276, 277, 1249, 0, 1250, 0, 280, 281, 282, 283,
+ 284, 285, 286, 287, 288, 289, 0, 290, 291, 292,
+ 293, 294, 295, 0, 296, 297, 298, 299, 1251, 1252,
+ 1253, 1254, 1255, 1256, 1257, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, 0, 310, 0, 311, 312, 313,
+ 314, 315, 316, 317, 0, 318, 319, 320, 321, 0,
+ 0, 322, 323, 324, 325, 326, 0, 327, 328, 329,
+ 0, 330, 331, 332, 0, 333, 334, 335, 336, 337,
+ 338, 339, 340, 341, 1262, 0, 343, 0, 344, 345,
+ 346, 347, 348, 0, 349, 0, 350, 351, 0, 352,
+ 353, 354, 355, 356, 0, 357, 1265, 0, 359, 360,
+ 361, 0, 362, 363, 364, 365, 366, 367, 368, 369,
+ 370, 371, 0, 372, 373, 374, 375, 376, 377, 378,
+ 0, 379, 380, 381, 382, 383, 384, 385, 386, 387,
+ 0, 388, 0, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, 0, 0, 399, 1270, 401, 402, 403,
+ 0, 404, 405, 406, 1271, 1272, 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, 1275, 437, 0, 438, 439,
+ 440, 441, 0, 1278, 443, 444, 445, 446, 447, 0,
+ 448, 449, 0, 0, 450, 451, 452, 0, 0, 453,
+ 454, 455, 456, 457, 458, 1281, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 0, 470, 471, 1282,
+ 473, 474, 475, 476, 477, 0, 478, 479, 480, 481,
+ 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
+ 492, 0, 493, 494, 495, 496, 497, 498, 499, 500,
+ 501, 502, 503, 504, 505, 0, 506, 507, 508, 509,
+ 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
+ 520, 521, 522, 523, 0, 524, 525, 526, 527, 528,
+ 1285, 529, 530, 531, 532, 533, 534, 535, 536, 537,
+ 538, 0, 539, 540, 541, 542, 543, 544, 545, 546,
+ 547, 548, 549, 550, 551, 1287, 553, 0, 554, 555,
+ 0, 556, 557, 558, 559, 560, 561, 562, 0, 563,
+ 564, 565, 0, 0, 566, 567, 1290, 569, 1291, 0,
+ 571, 572, 573, 574, 575, 576, 577, 578, 0, 0,
+ 579, 580, 581, 582, 583, 1294, 0, 584, 585, 586,
+ 587, 588, 589, 590, 0, 591, 592, 593, 594, 595,
+ 596, 0, 0, 597, 0, 0, 598, 599, 600, 601,
+ 602, 603, 604, 1296, 1297, 1298, 1299, 609, 1300, 1301,
+ 1302, 1303, 614, 615, 616, 617, 0, 0, 0, 0,
+ 938, 0, 1554, 684, 0, 0, 0, 0, 745, 0,
+ 0, 0, 0, 0, 0, 0, 5792, 235, 236, 237,
+ 238, 239, 240, 241, 242, 0, 243, 244, 245, 0,
+ 0, 0, 0, 0, 0, 0, 246, 247, 248, 0,
+ 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ 259, 260, 261, 0, 262, 263, 264, 265, 266, 267,
+ 268, 0, 0, 269, 270, 271, 272, 273, 0, 274,
+ 275, 276, 277, 278, 0, 279, 0, 280, 281, 282,
+ 283, 284, 285, 286, 287, 288, 289, 0, 290, 291,
+ 292, 293, 294, 295, 0, 296, 297, 298, 299, 0,
+ 0, 0, 300, 0, 0, 0, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, 0, 310, 0, 311, 312,
+ 313, 314, 315, 316, 317, 0, 318, 319, 320, 321,
+ 0, 0, 322, 323, 324, 325, 326, 0, 327, 328,
+ 329, 0, 330, 331, 332, 0, 333, 334, 335, 336,
+ 337, 338, 339, 340, 341, 342, 1777, 343, 0, 344,
+ 345, 346, 347, 348, 0, 349, 0, 350, 351, 0,
+ 352, 353, 354, 355, 356, 0, 357, 358, 0, 359,
+ 360, 361, 0, 362, 363, 364, 365, 366, 367, 368,
+ 369, 370, 371, 0, 372, 373, 374, 375, 376, 377,
+ 378, 0, 379, 380, 381, 382, 383, 384, 385, 386,
+ 387, 0, 388, 0, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 0, 0, 399, 400, 401, 402,
+ 403, 0, 404, 405, 406, 0, 0, 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, 0, 438,
+ 439, 440, 441, 0, 442, 443, 444, 445, 446, 447,
+ 0, 448, 449, 1778, 0, 450, 451, 452, 0, 0,
+ 453, 454, 455, 456, 457, 458, 459, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 0, 470, 471,
+ 472, 473, 474, 475, 476, 477, 0, 478, 479, 480,
+ 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
+ 491, 492, 0, 493, 494, 495, 496, 497, 498, 499,
+ 500, 501, 502, 503, 504, 505, 0, 506, 507, 508,
+ 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
+ 519, 520, 521, 522, 523, 0, 524, 525, 526, 527,
+ 528, 0, 529, 530, 531, 532, 533, 534, 535, 536,
+ 537, 538, 0, 539, 540, 541, 542, 543, 544, 545,
+ 546, 547, 548, 549, 550, 551, 552, 553, 0, 554,
+ 555, 0, 556, 557, 558, 559, 560, 561, 562, 0,
+ 563, 564, 565, 0, 0, 566, 567, 568, 569, 570,
+ 1779, 571, 572, 573, 574, 575, 576, 577, 578, 0,
+ 0, 579, 580, 581, 582, 583, 0, 0, 584, 585,
+ 586, 587, 588, 589, 590, 0, 591, 592, 593, 594,
+ 595, 596, 0, 0, 597, 0, 0, 598, 599, 600,
+ 601, 602, 603, 604, 605, 606, 607, 608, 609, 610,
+ 611, 612, 613, 614, 615, 616, 617, 0, 0, 0,
+ 0, 938, 0, 0, 0, 0, 0, 0, 1555, 1556,
+ 5602, 0, 0, 0, 0, 0, 0, 5603, 235, 236,
+ 237, 238, 239, 240, 241, 242, 0, 243, 244, 245,
+ 3, 4, 0, 0, 0, 0, 0, 246, 247, 248,
+ 0, 249, 250, 251, 252, 253, 254, 255, 256, 257,
+ 258, 259, 260, 261, 0, 262, 263, 264, 265, 266,
+ 267, 268, 0, 0, 269, 270, 271, 272, 273, 0,
+ 274, 275, 276, 277, 278, 0, 279, 0, 280, 281,
+ 282, 283, 284, 285, 286, 287, 288, 289, 0, 290,
+ 291, 292, 293, 294, 295, 0, 296, 297, 298, 299,
+ 0, 0, 0, 300, 0, 0, 0, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, 0, 310, 0, 311,
+ 312, 313, 314, 315, 316, 317, 0, 318, 319, 320,
+ 321, 0, 0, 322, 323, 324, 325, 326, 0, 327,
+ 328, 329, 0, 330, 331, 332, 0, 333, 334, 335,
+ 336, 337, 338, 339, 340, 341, 342, 0, 343, 0,
+ 344, 345, 346, 347, 348, 0, 349, 0, 350, 351,
+ 0, 352, 353, 354, 355, 356, 0, 357, 358, 0,
+ 359, 360, 361, 0, 362, 363, 364, 365, 366, 367,
+ 368, 369, 370, 371, 0, 372, 373, 374, 375, 376,
+ 377, 378, 0, 379, 380, 381, 382, 383, 384, 385,
+ 386, 387, 0, 388, 0, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 0, 0, 399, 400, 401,
+ 402, 403, 0, 404, 405, 406, 0, 0, 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, 0,
+ 438, 439, 440, 441, 0, 442, 443, 444, 445, 446,
+ 447, 0, 448, 449, 0, 0, 450, 451, 452, 0,
+ 0, 453, 454, 455, 456, 457, 458, 459, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 0, 470,
+ 471, 472, 473, 474, 475, 476, 477, 0, 478, 479,
+ 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
+ 490, 491, 492, 0, 493, 494, 495, 496, 497, 498,
+ 499, 500, 501, 502, 503, 504, 505, 0, 506, 507,
+ 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
+ 518, 519, 520, 521, 522, 523, 40, 524, 525, 526,
+ 527, 528, 0, 529, 530, 531, 532, 533, 534, 535,
+ 536, 537, 538, 0, 539, 540, 541, 542, 543, 544,
+ 545, 546, 547, 548, 549, 550, 551, 552, 553, 0,
+ 554, 555, 44, 556, 557, 558, 559, 560, 561, 562,
+ 0, 563, 564, 565, 0, 0, 566, 567, 568, 569,
+ 570, 0, 571, 572, 573, 574, 575, 576, 577, 578,
+ 0, 0, 579, 580, 581, 582, 583, 0, 0, 584,
+ 585, 586, 587, 588, 1175, 590, 0, 591, 592, 593,
+ 594, 595, 596, 0, 0, 597, 0, 49, 598, 599,
+ 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
+ 610, 611, 612, 613, 614, 615, 616, 617, 0, 0,
+ 50, 0, 234, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 56, 235,
+ 236, 237, 238, 239, 240, 241, 242, 0, 243, 244,
+ 245, 0, 0, 0, 0, 0, 0, 0, 246, 247,
+ 248, 0, 249, 250, 251, 252, 253, 254, 255, 256,
+ 257, 258, 259, 260, 261, 0, 262, 263, 264, 265,
+ 266, 267, 268, 0, 0, 269, 270, 271, 272, 273,
+ 0, 274, 275, 276, 277, 278, 0, 279, 0, 280,
+ 281, 282, 283, 284, 285, 286, 287, 288, 289, 0,
+ 290, 291, 292, 293, 294, 295, 0, 296, 297, 298,
+ 299, 0, 0, 0, 300, 0, 0, 0, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, 0, 310, 0,
+ 311, 312, 313, 314, 315, 316, 317, 0, 318, 319,
+ 320, 321, 0, 0, 322, 323, 324, 325, 326, 0,
+ 327, 328, 329, 0, 330, 331, 332, 0, 333, 334,
+ 335, 336, 337, 338, 339, 340, 341, 342, 0, 343,
+ 0, 344, 345, 346, 347, 348, 0, 349, 0, 350,
+ 351, 0, 352, 353, 354, 355, 356, 0, 357, 358,
+ 0, 359, 360, 361, 0, 362, 363, 364, 365, 366,
+ 367, 368, 369, 370, 371, 0, 372, 373, 374, 375,
+ 376, 377, 378, 0, 379, 380, 381, 382, 383, 384,
+ 385, 386, 387, 0, 388, 0, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 0, 0, 399, 400,
+ 401, 402, 403, 0, 404, 405, 406, 0, 0, 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,
+ 0, 438, 439, 440, 441, 0, 442, 443, 444, 445,
+ 446, 447, 0, 448, 449, 0, 0, 450, 451, 452,
+ 0, 0, 453, 454, 455, 456, 457, 458, 459, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 0,
+ 470, 471, 472, 473, 474, 475, 476, 477, 0, 478,
+ 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
+ 489, 490, 491, 492, 0, 493, 494, 495, 496, 497,
+ 498, 499, 500, 501, 502, 503, 504, 505, 0, 506,
+ 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
+ 517, 518, 519, 520, 521, 522, 523, 0, 524, 525,
+ 526, 527, 528, 0, 529, 530, 531, 532, 533, 534,
+ 535, 536, 537, 538, 0, 539, 540, 541, 542, 543,
+ 544, 545, 546, 547, 548, 549, 550, 551, 552, 553,
+ 0, 554, 555, 0, 556, 557, 558, 559, 560, 561,
+ 562, 0, 563, 564, 565, 0, 0, 566, 567, 568,
+ 569, 570, 0, 571, 572, 573, 574, 575, 576, 577,
+ 578, 0, 0, 579, 580, 581, 582, 583, 0, 0,
+ 584, 585, 586, 587, 588, 589, 590, 0, 591, 592,
+ 593, 594, 595, 596, 0, 0, 597, 0, 0, 598,
+ 599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
+ 609, 610, 611, 612, 613, 614, 615, 616, 617, 0,
+ 0, 0, 0, 625, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 5377,
+ 235, 236, 237, 238, 239, 240, 241, 242, 0, 243,
+ 244, 245, 0, 0, 0, 0, 0, 0, 0, 246,
+ 247, 248, 0, 249, 250, 251, 252, 0, 254, 255,
+ 256, 257, 258, 0, 260, 261, 0, 262, 263, 264,
+ 265, 266, 267, 268, 0, 0, 269, 270, 271, 272,
+ 273, 0, 274, 275, 276, 277, 278, 0, 0, 0,
+ 280, 281, 282, 283, 284, 285, 0, 287, 288, 289,
+ 0, 290, 291, 292, 293, 294, 295, 0, 0, 297,
+ 298, 299, 0, 0, 0, 0, 0, 0, 0, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 0, 310,
+ 0, 311, 312, 313, 314, 315, 316, 317, 0, 318,
+ 319, 320, 321, 0, 0, 322, 323, 324, 325, 326,
+ 0, 327, 328, 329, 0, 330, 331, 332, 0, 333,
+ 334, 335, 336, 337, 338, 339, 340, 341, 342, 0,
+ 343, 0, 344, 345, 346, 347, 348, 0, 349, 0,
+ 350, 0, 0, 0, 353, 354, 355, 356, 0, 357,
+ 358, 0, 359, 360, 361, 0, 362, 363, 364, 365,
+ 366, 0, 368, 369, 370, 371, 0, 372, 373, 374,
+ 375, 376, 377, 378, 0, 379, 0, 381, 382, 383,
+ 384, 385, 386, 387, 0, 388, 0, 389, 0, 0,
+ 392, 0, 394, 395, 396, 397, 398, 0, 0, 399,
+ 400, 0, 402, 0, 0, 404, 405, 406, 0, 0,
+ 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
+ 417, 418, 419, 420, 421, 422, 423, 424, 425, 0,
+ 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
+ 437, 0, 438, 439, 0, 441, 0, 442, 443, 444,
+ 445, 446, 447, 0, 448, 449, 0, 0, 450, 451,
+ 452, 0, 0, 453, 454, 455, 0, 457, 0, 459,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 0, 470, 471, 472, 473, 474, 475, 476, 477, 0,
+ 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
+ 488, 489, 490, 491, 492, 0, 493, 494, 495, 496,
+ 497, 498, 499, 500, 501, 502, 503, 504, 505, 0,
+ 506, 507, 0, 509, 510, 511, 512, 513, 514, 515,
+ 516, 517, 518, 519, 520, 521, 522, 523, 40, 524,
+ 525, 526, 527, 528, 0, 529, 530, 531, 532, 533,
+ 0, 535, 536, 537, 538, 0, 539, 540, 541, 542,
+ 543, 544, 545, 546, 547, 548, 549, 550, 551, 552,
+ 553, 0, 554, 555, 44, 556, 0, 558, 559, 560,
+ 561, 562, 0, 563, 564, 565, 0, 0, 566, 567,
+ 568, 569, 570, 0, 571, 572, 573, 574, 575, 576,
+ 577, 578, 0, 0, 579, 580, 581, 582, 583, 0,
+ 0, 584, 585, 586, 587, 588, 1175, 590, 0, 591,
+ 0, 593, 594, 595, 596, 0, 0, 597, 0, 49,
+ 598, 599, 600, 601, 602, 603, 604, 605, 606, 607,
+ 608, 609, 610, 611, 612, 613, 614, 615, 616, 617,
+ 0, 0, 50, 0, 625, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 56, 235, 236, 237, 238, 239, 240, 241, 242, 0,
+ 243, 244, 245, 0, 0, 0, 0, 0, 0, 0,
+ 246, 247, 248, 0, 249, 250, 251, 252, 0, 254,
+ 255, 256, 257, 258, 0, 260, 261, 0, 262, 263,
+ 264, 265, 266, 267, 268, 0, 0, 269, 270, 271,
+ 272, 273, 0, 274, 275, 276, 277, 278, 0, 0,
+ 0, 280, 281, 282, 283, 284, 285, 0, 287, 288,
+ 289, 0, 290, 291, 292, 293, 294, 295, 0, 0,
+ 297, 298, 299, 0, 0, 0, 2804, 0, 0, 0,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, 0,
+ 310, 0, 311, 312, 313, 314, 315, 316, 317, 0,
+ 318, 319, 320, 321, 0, 0, 322, 323, 324, 325,
+ 326, 0, 327, 328, 329, 0, 330, 331, 332, 0,
+ 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
+ 0, 343, 0, 344, 345, 346, 347, 348, 0, 349,
+ 0, 350, 0, 0, 0, 353, 354, 355, 356, 0,
+ 357, 358, 0, 359, 360, 361, 0, 362, 363, 364,
+ 365, 366, 0, 368, 369, 370, 371, 0, 372, 373,
+ 374, 375, 376, 377, 378, 0, 379, 0, 381, 382,
+ 383, 384, 385, 386, 387, 0, 388, 0, 389, 0,
+ 0, 392, 0, 394, 395, 396, 397, 398, 0, 0,
+ 399, 400, 0, 402, 0, 0, 404, 405, 406, 0,
+ 0, 407, 408, 409, 410, 411, 412, 413, 414, 415,
+ 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
+ 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
+ 436, 437, 0, 438, 439, 0, 441, 0, 442, 443,
+ 444, 445, 446, 447, 0, 448, 449, 0, 835, 450,
+ 451, 452, 0, 0, 453, 454, 455, 0, 457, 0,
+ 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 0, 470, 471, 472, 473, 474, 475, 476, 477,
+ 0, 478, 479, 480, 481, 482, 483, 484, 485, 486,
+ 487, 488, 489, 490, 491, 492, 0, 493, 494, 495,
+ 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
+ 0, 506, 507, 0, 509, 510, 511, 512, 513, 514,
+ 515, 516, 517, 518, 519, 520, 521, 522, 523, 0,
+ 524, 525, 526, 527, 528, 0, 529, 530, 531, 532,
+ 533, 0, 535, 536, 537, 538, 0, 539, 540, 541,
+ 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
+ 552, 553, 0, 554, 555, 2805, 2806, 0, 558, 559,
+ 560, 561, 562, 0, 563, 564, 565, 0, 0, 566,
+ 567, 568, 569, 570, 0, 571, 572, 573, 574, 575,
+ 576, 577, 578, 0, 0, 579, 580, 581, 582, 583,
+ 0, 0, 584, 585, 586, 587, 588, 589, 590, 0,
+ 591, 0, 593, 594, 595, 596, 0, 0, 597, 0,
+ 0, 598, 599, 600, 601, 602, 603, 604, 605, 606,
+ 607, 608, 609, 610, 611, 612, 613, 614, 615, 616,
+ 617, 0, 0, 0, 0, 625, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1811, 235, 236, 237, 238, 239, 240, 241, 242,
+ 0, 243, 244, 245, 0, 0, 0, 0, 0, 0,
+ 0, 246, 247, 248, 0, 249, 250, 251, 252, 0,
+ 254, 255, 256, 257, 258, 0, 260, 261, 0, 262,
+ 263, 264, 265, 266, 267, 268, 0, 0, 269, 270,
+ 271, 272, 273, 0, 274, 275, 276, 277, 278, 0,
+ 0, 0, 280, 281, 282, 283, 284, 285, 0, 287,
+ 288, 289, 0, 290, 291, 292, 293, 294, 295, 0,
+ 0, 297, 298, 299, 0, 0, 0, 0, 0, 0,
+ 0, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ 0, 310, 0, 311, 312, 313, 314, 315, 316, 317,
+ 0, 318, 319, 320, 321, 0, 0, 322, 323, 324,
+ 325, 326, 0, 327, 328, 329, 0, 330, 331, 332,
+ 0, 333, 334, 335, 336, 337, 338, 339, 340, 341,
+ 342, 0, 343, 0, 344, 345, 346, 347, 348, 0,
+ 349, 0, 350, 0, 0, 0, 353, 354, 355, 356,
+ 0, 357, 358, 0, 359, 360, 361, 0, 362, 363,
+ 364, 365, 366, 0, 368, 369, 370, 371, 0, 372,
+ 373, 374, 375, 376, 377, 378, 0, 379, 0, 381,
+ 382, 383, 384, 385, 386, 387, 0, 388, 0, 389,
+ 0, 0, 392, 0, 394, 395, 396, 397, 398, 0,
+ 0, 399, 400, 0, 402, 0, 0, 404, 405, 406,
+ 0, 0, 407, 408, 409, 410, 411, 412, 413, 414,
+ 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
+ 425, 0, 427, 428, 429, 430, 431, 432, 433, 434,
+ 435, 436, 437, 0, 438, 439, 0, 441, 0, 442,
+ 443, 444, 445, 446, 447, 0, 448, 449, 0, 0,
+ 450, 451, 452, 0, 0, 453, 454, 455, 0, 457,
+ 0, 459, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 0, 470, 471, 472, 473, 474, 475, 476,
+ 477, 0, 478, 479, 480, 481, 482, 483, 484, 485,
+ 486, 487, 488, 489, 490, 491, 492, 0, 493, 494,
+ 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
+ 505, 0, 506, 507, 0, 509, 510, 511, 512, 513,
+ 514, 515, 516, 517, 518, 519, 520, 521, 522, 523,
+ 0, 524, 525, 526, 527, 528, 0, 529, 530, 531,
+ 532, 533, 0, 535, 536, 537, 538, 0, 539, 540,
+ 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
+ 551, 552, 553, 0, 554, 555, 0, 556, 0, 558,
+ 559, 560, 561, 562, 0, 563, 564, 565, 0, 0,
+ 566, 567, 568, 569, 570, 0, 571, 572, 573, 574,
+ 575, 576, 577, 578, 0, 0, 579, 580, 581, 582,
+ 583, 0, 0, 584, 585, 586, 587, 588, 589, 590,
+ 0, 591, 0, 593, 594, 595, 596, 0, 0, 597,
+ 0, 0, 598, 599, 600, 601, 602, 603, 604, 605,
+ 606, 607, 608, 609, 610, 611, 612, 613, 614, 615,
+ 616, 617, 0, 0, 0, 0, 625, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1366, 235, 236, 237, 238, 239, 240, 241,
+ 242, 0, 243, 244, 245, 0, 0, 0, 0, 0,
+ 0, 0, 246, 247, 248, 0, 249, 250, 251, 252,
+ 0, 254, 255, 256, 257, 258, 0, 260, 261, 0,
+ 262, 263, 264, 265, 266, 267, 268, 0, 0, 269,
+ 270, 271, 272, 273, 0, 274, 275, 276, 277, 278,
+ 0, 0, 0, 280, 281, 282, 283, 284, 285, 0,
+ 287, 288, 289, 0, 290, 291, 292, 293, 294, 295,
+ 0, 0, 297, 298, 299, 0, 0, 0, 0, 0,
+ 0, 0, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, 0, 310, 0, 311, 312, 313, 314, 315, 316,
+ 317, 0, 318, 319, 320, 321, 0, 0, 322, 323,
+ 324, 325, 326, 0, 327, 328, 329, 0, 330, 331,
+ 332, 0, 333, 334, 335, 336, 337, 338, 339, 340,
+ 341, 342, 0, 343, 0, 344, 345, 346, 347, 348,
+ 0, 349, 0, 350, 0, 0, 0, 353, 354, 355,
+ 356, 0, 357, 358, 0, 359, 360, 361, 0, 362,
+ 363, 364, 365, 366, 0, 368, 369, 370, 371, 0,
+ 372, 373, 374, 375, 376, 377, 378, 0, 379, 0,
+ 381, 382, 383, 384, 385, 386, 387, 0, 388, 0,
+ 389, 0, 0, 392, 0, 394, 395, 396, 397, 398,
+ 0, 0, 399, 400, 0, 402, 0, 0, 404, 405,
+ 406, 0, 0, 407, 408, 409, 410, 411, 412, 413,
+ 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
+ 424, 425, 0, 427, 428, 429, 430, 431, 432, 433,
+ 434, 435, 436, 437, 0, 438, 439, 0, 441, 0,
+ 442, 443, 444, 445, 446, 447, 0, 448, 449, 0,
+ 0, 450, 451, 452, 0, 0, 453, 454, 455, 0,
+ 457, 0, 459, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 0, 470, 471, 472, 473, 474, 475,
+ 476, 477, 0, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 488, 489, 490, 491, 492, 0, 493,
+ 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
+ 504, 505, 0, 506, 507, 0, 509, 510, 511, 512,
+ 513, 514, 515, 516, 517, 518, 519, 520, 521, 522,
+ 523, 0, 524, 525, 526, 527, 528, 0, 529, 530,
+ 531, 532, 533, 0, 535, 536, 537, 538, 0, 539,
+ 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
+ 550, 551, 552, 553, 0, 554, 555, 0, 556, 0,
+ 558, 559, 560, 561, 562, 0, 563, 564, 565, 0,
+ 0, 566, 567, 568, 569, 570, 0, 571, 572, 573,
+ 574, 575, 576, 577, 578, 0, 0, 579, 580, 581,
+ 582, 583, 0, 0, 584, 585, 586, 587, 588, 589,
+ 590, 0, 591, 0, 593, 594, 595, 596, 0, 0,
+ 597, 0, 0, 598, 599, 600, 601, 602, 603, 604,
+ 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
+ 615, 616, 617, 0, 0, 0, 0, 625, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3394, 235, 236, 237, 238, 239, 240,
+ 241, 242, 0, 243, 244, 245, 0, 0, 0, 0,
+ 0, 0, 0, 246, 247, 248, 0, 249, 250, 251,
+ 252, 0, 254, 255, 256, 257, 258, 0, 260, 261,
+ 0, 262, 263, 264, 265, 266, 267, 268, 0, 0,
+ 269, 270, 271, 272, 273, 0, 274, 275, 276, 277,
+ 278, 0, 0, 0, 280, 281, 282, 283, 284, 285,
+ 0, 287, 288, 289, 0, 290, 291, 292, 293, 294,
+ 295, 0, 0, 297, 298, 299, 0, 0, 0, 0,
+ 0, 0, 0, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, 0, 310, 0, 311, 312, 313, 314, 315,
+ 316, 317, 0, 318, 319, 320, 321, 0, 0, 322,
+ 323, 324, 325, 326, 0, 327, 328, 329, 0, 330,
+ 331, 332, 0, 333, 334, 335, 336, 337, 338, 339,
+ 340, 341, 342, 0, 343, 0, 344, 345, 346, 347,
+ 348, 0, 349, 0, 350, 0, 0, 0, 353, 354,
+ 355, 356, 0, 357, 358, 0, 359, 360, 361, 0,
+ 362, 363, 364, 365, 366, 0, 368, 369, 370, 371,
+ 0, 372, 373, 374, 375, 376, 377, 378, 0, 379,
+ 0, 381, 382, 383, 384, 385, 386, 387, 0, 388,
+ 0, 389, 0, 0, 392, 0, 394, 395, 396, 397,
+ 398, 0, 0, 399, 400, 0, 402, 0, 0, 404,
+ 405, 406, 0, 0, 407, 408, 409, 410, 411, 412,
+ 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
+ 423, 424, 425, 0, 427, 428, 429, 430, 431, 432,
+ 433, 434, 435, 436, 437, 0, 438, 439, 0, 441,
+ 0, 442, 443, 444, 445, 446, 447, 0, 448, 449,
+ 0, 0, 450, 451, 452, 0, 0, 453, 454, 455,
+ 0, 457, 0, 459, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 0, 470, 471, 472, 473, 474,
+ 475, 476, 477, 0, 478, 479, 480, 481, 482, 483,
+ 484, 485, 486, 487, 488, 489, 490, 491, 492, 0,
+ 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
+ 503, 504, 505, 0, 506, 507, 0, 509, 510, 511,
+ 512, 513, 514, 515, 516, 517, 518, 519, 520, 521,
+ 522, 523, 0, 524, 525, 526, 527, 528, 0, 529,
+ 530, 531, 532, 533, 0, 535, 536, 537, 538, 0,
+ 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
+ 549, 550, 551, 552, 553, 0, 554, 555, 0, 556,
+ 0, 558, 559, 560, 561, 562, 0, 563, 564, 565,
+ 0, 0, 566, 567, 568, 569, 570, 0, 571, 572,
+ 573, 574, 575, 576, 577, 578, 0, 0, 579, 580,
+ 581, 582, 583, 0, 0, 584, 585, 586, 587, 588,
+ 589, 590, 0, 591, 0, 593, 594, 595, 596, 0,
+ 0, 597, 0, 0, 598, 599, 600, 601, 602, 603,
+ 604, 605, 606, 607, 608, 609, 610, 611, 612, 613,
+ 614, 615, 616, 617, 0, 0, 0, 0, 625, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 4588, 235, 236, 237, 238, 239,
+ 240, 241, 242, 0, 243, 244, 245, 0, 0, 0,
+ 0, 0, 0, 0, 246, 247, 248, 0, 249, 250,
+ 251, 252, 0, 254, 255, 256, 257, 258, 0, 260,
+ 261, 0, 262, 263, 264, 265, 266, 267, 268, 0,
+ 0, 269, 270, 271, 272, 273, 0, 274, 275, 276,
+ 277, 278, 0, 0, 0, 280, 281, 282, 283, 284,
+ 285, 0, 287, 288, 289, 0, 290, 291, 292, 293,
+ 294, 295, 0, 0, 297, 298, 299, 0, 0, 0,
+ 0, 0, 0, 0, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, 0, 310, 0, 311, 312, 313, 314,
+ 315, 316, 317, 0, 318, 319, 320, 321, 0, 0,
+ 322, 323, 324, 325, 326, 0, 327, 328, 329, 0,
+ 330, 331, 332, 0, 333, 334, 335, 336, 337, 338,
+ 339, 340, 341, 342, 0, 343, 0, 344, 345, 346,
+ 347, 348, 0, 349, 0, 350, 0, 0, 0, 353,
+ 354, 355, 356, 0, 357, 358, 0, 359, 360, 361,
+ 0, 362, 363, 364, 365, 366, 0, 368, 369, 370,
+ 371, 0, 372, 373, 374, 375, 376, 377, 378, 0,
+ 379, 0, 381, 382, 383, 384, 385, 386, 387, 0,
+ 388, 0, 389, 0, 0, 392, 0, 394, 395, 396,
+ 397, 398, 0, 0, 399, 400, 0, 402, 0, 0,
+ 404, 405, 406, 0, 0, 407, 408, 409, 410, 411,
+ 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
+ 422, 423, 424, 425, 0, 427, 428, 429, 430, 431,
+ 432, 433, 434, 435, 436, 437, 0, 438, 439, 0,
+ 441, 0, 442, 443, 444, 445, 446, 447, 0, 448,
+ 449, 0, 0, 450, 451, 452, 0, 0, 453, 454,
+ 455, 0, 457, 0, 459, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 0, 470, 471, 472, 473,
+ 474, 475, 476, 477, 0, 478, 479, 480, 481, 482,
+ 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
+ 0, 493, 494, 495, 496, 497, 498, 499, 500, 501,
+ 502, 503, 504, 505, 0, 506, 507, 0, 509, 510,
+ 511, 512, 513, 514, 515, 516, 517, 518, 519, 520,
+ 521, 522, 523, 0, 524, 525, 526, 527, 528, 0,
+ 529, 530, 531, 532, 533, 0, 535, 536, 537, 538,
+ 0, 539, 540, 541, 542, 543, 544, 545, 546, 547,
+ 548, 549, 550, 551, 552, 553, 0, 554, 555, 0,
+ 556, 0, 558, 559, 560, 561, 562, 0, 563, 564,
+ 565, 0, 0, 566, 567, 568, 569, 570, 0, 571,
+ 572, 573, 574, 575, 576, 577, 578, 0, 0, 579,
+ 580, 581, 582, 583, 0, 0, 584, 585, 586, 587,
+ 588, 589, 590, 0, 591, 0, 593, 594, 595, 596,
+ 0, 0, 597, 0, 0, 598, 599, 600, 601, 602,
+ 603, 604, 605, 606, 607, 608, 609, 610, 611, 612,
+ 613, 614, 615, 616, 617, 0, 0, 0, 0, 0,
+ 0, 0, 852, 0, 1554, 684, 0, 0, 0, 953,
+ 745, 0, 0, 0, 0, 4628, 954, 955, 956, 235,
+ 236, 237, 238, 239, 240, 241, 242, 1690, 243, 244,
+ 245, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 246, 247,
+ 248, 1698, 249, 250, 251, 252, 253, 254, 255, 256,
+ 0, 853, 259, 854, 855, 1699, 262, 263, 264, 265,
+ 266, 267, 268, 1700, 1701, 269, 270, 856, 857, 273,
+ 1702, 274, 275, 276, 277, 0, 1703, 279, 1704, 280,
+ 281, 282, 283, 284, 285, 286, 287, 288, 289, 1705,
+ 290, 291, 292, 293, 294, 295, 1706, 296, 297, 298,
+ 299, 1707, 1708, 1709, 300, 1710, 1711, 1712, 301, 302,
+ 303, 304, 305, 306, 858, 859, 309, 1713, 310, 1714,
+ 311, 312, 313, 314, 315, 316, 317, 1715, 318, 319,
+ 320, 321, 1716, 1717, 322, 323, 860, 325, 326, 1718,
+ 327, 328, 329, 1719, 330, 331, 332, 1720, 333, 334,
+ 335, 336, 0, 338, 339, 340, 341, 0, 1721, 343,
+ 1722, 344, 345, 346, 861, 348, 1723, 349, 1724, 350,
+ 351, 1725, 352, 353, 354, 355, 356, 1726, 357, 0,
+ 1727, 0, 360, 361, 1728, 362, 363, 364, 365, 366,
+ 367, 368, 369, 370, 371, 1729, 372, 373, 374, 375,
+ 376, 377, 378, 1730, 379, 380, 0, 382, 383, 384,
+ 385, 862, 863, 1731, 864, 1732, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 1733, 1734, 399, 0,
+ 401, 402, 403, 1735, 404, 405, 406, 1736, 1737, 407,
+ 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
+ 418, 419, 420, 421, 422, 423, 424, 865, 426, 866,
+ 428, 429, 430, 431, 432, 433, 434, 4339, 0, 437,
+ 1738, 438, 439, 440, 441, 1739, 0, 443, 867, 445,
+ 446, 447, 1740, 448, 449, 1741, 1742, 4340, 451, 452,
+ 1743, 1744, 453, 454, 0, 456, 457, 458, 0, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 1745,
+ 470, 471, 0, 473, 0, 475, 476, 477, 1746, 478,
+ 479, 480, 481, 482, 483, 484, 485, 486, 487, 868,
+ 489, 490, 491, 492, 1747, 493, 494, 495, 496, 497,
+ 498, 499, 500, 501, 502, 503, 504, 505, 1748, 506,
+ 507, 508, 509, 510, 511, 512, 513, 0, 515, 516,
+ 517, 518, 519, 520, 521, 522, 523, 1749, 524, 525,
+ 526, 527, 528, 1750, 529, 530, 2634, 532, 533, 534,
+ 535, 536, 870, 538, 1751, 539, 540, 541, 542, 543,
+ 544, 545, 546, 547, 548, 549, 550, 551, 0, 553,
+ 1752, 554, 555, 1753, 556, 557, 558, 559, 560, 561,
+ 562, 1754, 563, 871, 872, 1755, 1756, 566, 567, 0,
+ 569, 0, 1757, 571, 572, 573, 574, 575, 576, 577,
+ 578, 1758, 1759, 579, 580, 581, 582, 583, 1760, 1761,
+ 584, 585, 586, 587, 588, 0, 873, 1762, 591, 592,
+ 593, 594, 595, 596, 1763, 1764, 597, 1765, 1766, 598,
+ 599, 600, 601, 602, 603, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 615, 616, 617, 0,
+ 0, 0, 0, 0, 0, 0, 0, 959, 960, 961,
+ 4341, 4342, 964, 965, 966, 967, 852, 0, 1554, 684,
+ 0, 0, 0, 953, 745, 0, 0, 0, 0, 0,
+ 954, 955, 956, 235, 236, 237, 238, 239, 240, 241,
+ 242, 1690, 243, 244, 245, 1691, 1692, 1693, 1694, 1695,
+ 1696, 1697, 246, 247, 248, 1698, 249, 250, 251, 252,
+ 253, 254, 255, 256, 0, 853, 259, 854, 855, 1699,
+ 262, 263, 264, 265, 266, 267, 268, 1700, 1701, 269,
+ 270, 856, 857, 273, 1702, 274, 275, 276, 277, 0,
+ 1703, 279, 1704, 280, 281, 282, 283, 284, 285, 286,
+ 287, 288, 289, 1705, 290, 291, 292, 293, 294, 295,
+ 1706, 296, 297, 298, 299, 1707, 1708, 1709, 300, 1710,
+ 1711, 1712, 301, 302, 303, 304, 305, 306, 858, 859,
+ 309, 1713, 310, 1714, 311, 312, 313, 314, 315, 316,
+ 317, 1715, 318, 319, 320, 321, 1716, 1717, 322, 323,
+ 860, 325, 326, 1718, 327, 328, 329, 1719, 330, 331,
+ 332, 1720, 333, 334, 335, 336, 0, 338, 339, 340,
+ 341, 0, 1721, 343, 1722, 344, 345, 346, 861, 348,
+ 1723, 349, 1724, 350, 351, 1725, 352, 353, 354, 355,
+ 356, 1726, 357, 0, 1727, 0, 360, 361, 1728, 362,
+ 363, 364, 365, 366, 367, 368, 369, 370, 371, 1729,
+ 372, 373, 374, 375, 376, 377, 378, 1730, 379, 380,
+ 0, 382, 383, 384, 385, 862, 863, 1731, 864, 1732,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 1733, 1734, 399, 0, 401, 402, 403, 1735, 404, 405,
+ 406, 1736, 1737, 407, 408, 409, 410, 411, 412, 413,
+ 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
+ 424, 865, 426, 866, 428, 429, 430, 431, 432, 433,
+ 434, 4764, 0, 437, 1738, 438, 439, 440, 441, 1739,
+ 0, 443, 867, 445, 446, 447, 1740, 448, 449, 1741,
+ 1742, 4340, 451, 452, 1743, 1744, 453, 454, 0, 456,
+ 457, 458, 0, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 1745, 470, 471, 0, 473, 0, 475,
+ 476, 477, 1746, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 868, 489, 490, 491, 492, 1747, 493,
+ 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
+ 504, 505, 1748, 506, 507, 508, 509, 510, 511, 512,
+ 513, 0, 515, 516, 517, 518, 519, 520, 521, 522,
+ 523, 1749, 524, 525, 526, 527, 528, 1750, 529, 530,
+ 2634, 532, 533, 534, 535, 536, 870, 538, 1751, 539,
+ 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
+ 550, 551, 0, 553, 1752, 554, 555, 1753, 556, 557,
+ 558, 559, 560, 561, 562, 1754, 563, 871, 872, 1755,
+ 1756, 566, 567, 0, 569, 0, 1757, 571, 572, 573,
+ 574, 575, 576, 577, 578, 1758, 1759, 579, 580, 581,
+ 582, 583, 1760, 1761, 584, 585, 586, 587, 588, 0,
+ 873, 1762, 591, 592, 593, 594, 595, 596, 1763, 1764,
+ 597, 1765, 1766, 598, 599, 600, 601, 602, 603, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 615, 616, 617, 0, 0, 0, 0, 0, 0, 0,
+ 0, 959, 960, 961, 4341, 4342, 964, 965, 966, 967,
+ 2045, 0, 0, 0, 0, 0, 0, 2046, 0, 0,
+ 2047, 0, 0, 0, 2048, 2049, 2050, 2051, 2052, 2053,
+ 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063,
+ 2064, 2065, 2066, 0, 2067, 2068, 2069, 2070, 2071, 2072,
+ 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082,
+ 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092,
+ 2093, 2094, 2095, 2096, 2097, 0, 0, 2098, 2099, 2100,
+ 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110,
+ 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120,
+ 2121, 2122, 2123, 2124, 0, 2125, 2126, 2127, 2128, 2129,
+ 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139,
+ 0, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148,
+ 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158,
+ 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168,
+ 2169, 2170, 2171, 2172, 2173, 0, 2174, 2175, 2176, 2177,
+ 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 0, 0,
+ 2186, 2187, 2188, 2189, 0, 2190, 2191, 2192, 2193, 0,
+ 2194, 2195, 2196, 2197, 2198, 0, 2199, 2200, 0, 2201,
+ 2202, 2203, 0, 2204, 2205, 0, 2206, 2207, 2208, 2209,
+ 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219,
+ 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229,
+ 2230, 0, 2231, 0, 2232, 2233, 2234, 2235, 2236, 2237,
+ 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247,
+ 2248, 0, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256,
+ 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 0, 2265,
+ 2266, 0, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274,
+ 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284,
+ 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294,
+ 0, 2295, 2296, 0, 2297, 2298, 2299, 2300, 2301, 0,
+ 2302, 2303, 2304, 2305, 0, 0, 2306, 2307, 2308, 2309,
+ 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319,
+ 2320, 2321, 0, 2322, 2323, 2324, 2325, 2326, 2327, 2328,
+ 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338,
+ 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348,
+ 2349, 2350, 2351, 2352, 2353, 2354, 0, 2355, 2356, 2357,
+ 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367,
+ 2368, 2369, 2370, 0, 2371, 2372, 2373, 2374, 2375, 2376,
+ 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386,
+ 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396,
+ 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406,
+ 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416,
+ 2417, 2418, 2419, 0, 2420, 2421, 2422, 2423, 2424, 2425,
+ 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 0,
+ 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444,
+ 2445, 2446, 2447, 2448, 2449, 2450, 0, 2451, 2452, 2453,
+ 2454, 2455, 2456, 0, 2457, 0, 0, 0, 0, 2458,
+ 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468,
+ 2469, 2470, 2471, 2472, 0, 2473, 2474, 2475, 0, 0,
+ 0, 0, 0, 0, 0, 2476, 2477, 2478, 2479, 2480,
+ 2481, 2482, 2483, 2484, 625, 0, 0, 0, 0, 0,
+ 0, 953, 0, 0, 0, 0, 0, 0, 954, 955,
+ 956, 235, 236, 237, 238, 239, 240, 241, 242, 0,
+ 243, 244, 245, 0, 0, 0, 0, 0, 0, 0,
+ 246, 247, 248, 0, 249, 250, 251, 252, 0, 254,
+ 255, 256, 257, 258, 0, 260, 261, 0, 262, 263,
+ 264, 265, 266, 267, 268, 0, 0, 269, 270, 271,
+ 272, 273, 0, 274, 957, 276, 277, 278, 0, 0,
+ 0, 280, 281, 282, 283, 284, 285, 0, 287, 288,
+ 289, 0, 290, 291, 292, 293, 294, 295, 0, 0,
+ 297, 298, 299, 0, 0, 0, 0, 0, 0, 0,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, 0,
+ 310, 0, 311, 312, 313, 314, 315, 316, 317, 0,
+ 318, 319, 320, 321, 0, 0, 322, 323, 324, 325,
+ 326, 0, 327, 328, 329, 0, 330, 331, 332, 0,
+ 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
+ 0, 958, 0, 344, 345, 346, 347, 348, 0, 349,
+ 0, 350, 0, 0, 0, 353, 354, 355, 356, 0,
+ 357, 358, 0, 359, 360, 361, 0, 362, 363, 364,
+ 365, 366, 0, 368, 369, 370, 371, 0, 372, 373,
+ 374, 375, 376, 377, 378, 0, 379, 0, 381, 382,
+ 383, 384, 385, 386, 387, 0, 388, 0, 389, 0,
+ 0, 392, 0, 394, 395, 396, 397, 398, 0, 0,
+ 399, 400, 0, 402, 0, 0, 404, 405, 406, 0,
+ 0, 407, 408, 409, 410, 411, 412, 413, 414, 415,
+ 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
+ 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
+ 436, 437, 0, 438, 439, 0, 441, 0, 442, 443,
+ 444, 445, 446, 447, 0, 448, 449, 0, 0, 450,
+ 451, 452, 0, 0, 453, 454, 455, 0, 457, 0,
+ 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 0, 470, 471, 472, 473, 474, 475, 476, 477,
+ 0, 478, 479, 480, 481, 482, 483, 484, 485, 486,
+ 487, 488, 489, 490, 491, 492, 0, 493, 494, 495,
+ 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
+ 0, 506, 507, 0, 509, 510, 511, 512, 513, 514,
+ 515, 516, 517, 518, 519, 520, 521, 522, 523, 0,
+ 524, 525, 526, 527, 528, 0, 529, 530, 531, 532,
+ 533, 0, 535, 536, 537, 538, 0, 539, 540, 541,
+ 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
+ 552, 553, 0, 554, 555, 0, 556, 0, 558, 559,
+ 560, 561, 562, 0, 563, 564, 565, 0, 0, 566,
+ 567, 568, 569, 570, 0, 571, 572, 573, 574, 575,
+ 576, 577, 578, 0, 0, 579, 580, 581, 582, 583,
+ 0, 0, 584, 585, 586, 587, 588, 589, 590, 0,
+ 591, 0, 593, 594, 595, 596, 0, 0, 597, 0,
+ 0, 598, 599, 600, 601, 602, 603, 604, 605, 606,
+ 607, 608, 609, 610, 611, 612, 613, 614, 615, 616,
+ 617, 0, 0, 0, 0, 0, 0, 0, 0, 959,
+ 960, 961, 962, 963, 964, 965, 966, 967, 625, 0,
+ 0, 0, 0, 0, 0, 953, 0, 0, 0, 0,
+ 0, 0, 954, 955, 956, 235, 236, 237, 238, 239,
+ 240, 241, 242, 0, 243, 244, 245, 0, 0, 0,
+ 0, 0, 0, 0, 246, 247, 248, 0, 249, 250,
+ 251, 252, 0, 254, 255, 256, 257, 258, 0, 260,
+ 261, 0, 262, 263, 264, 265, 266, 267, 268, 0,
+ 0, 269, 270, 271, 272, 273, 0, 274, 1073, 276,
+ 277, 278, 0, 0, 0, 280, 281, 282, 283, 284,
+ 285, 0, 287, 288, 289, 0, 290, 291, 292, 293,
+ 294, 295, 0, 0, 297, 298, 299, 0, 0, 0,
+ 0, 0, 0, 0, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, 0, 310, 0, 311, 312, 313, 314,
+ 315, 316, 317, 0, 318, 319, 320, 321, 0, 0,
+ 322, 323, 324, 325, 326, 0, 327, 328, 329, 0,
+ 330, 331, 332, 0, 333, 334, 335, 336, 337, 338,
+ 339, 340, 341, 342, 0, 1074, 0, 344, 345, 346,
+ 347, 348, 0, 349, 0, 350, 0, 0, 0, 353,
+ 354, 355, 356, 0, 357, 358, 0, 359, 360, 361,
+ 0, 362, 363, 364, 365, 366, 0, 368, 369, 370,
+ 371, 0, 372, 373, 374, 375, 376, 377, 378, 0,
+ 379, 0, 381, 382, 383, 384, 385, 386, 387, 0,
+ 388, 0, 389, 0, 0, 392, 0, 394, 395, 396,
+ 397, 398, 0, 0, 399, 400, 0, 402, 0, 0,
+ 404, 405, 406, 0, 0, 407, 408, 409, 410, 411,
+ 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
+ 422, 423, 424, 425, 0, 427, 428, 429, 430, 431,
+ 432, 433, 434, 435, 436, 437, 0, 438, 439, 0,
+ 441, 0, 442, 443, 444, 445, 446, 447, 0, 448,
+ 449, 0, 0, 450, 451, 452, 0, 0, 453, 454,
+ 455, 0, 457, 0, 459, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 0, 470, 471, 472, 473,
+ 474, 475, 476, 477, 0, 478, 479, 480, 481, 482,
+ 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
+ 0, 493, 494, 495, 496, 497, 498, 499, 500, 501,
+ 502, 503, 504, 505, 0, 506, 507, 0, 509, 510,
+ 511, 512, 513, 514, 515, 516, 517, 518, 519, 520,
+ 521, 522, 523, 0, 524, 525, 526, 527, 528, 0,
+ 529, 530, 531, 532, 533, 0, 535, 536, 537, 538,
+ 0, 539, 540, 541, 542, 543, 544, 545, 546, 547,
+ 548, 549, 550, 551, 552, 553, 0, 554, 555, 0,
+ 556, 0, 558, 559, 560, 561, 562, 0, 563, 564,
+ 565, 0, 0, 566, 567, 568, 569, 570, 0, 571,
+ 572, 573, 574, 575, 576, 577, 578, 0, 0, 579,
+ 580, 581, 582, 583, 0, 0, 584, 585, 586, 587,
+ 588, 589, 590, 0, 591, 0, 593, 594, 595, 596,
+ 0, 0, 597, 0, 0, 598, 599, 600, 601, 602,
+ 603, 604, 605, 606, 607, 608, 609, 610, 611, 612,
+ 613, 614, 615, 616, 617, 0, 0, 0, 0, 0,
+ 0, 0, 0, 959, 960, 961, 962, 963, 964, 965,
+ 966, 967, 625, 0, 0, 0, 0, 0, 0, 953,
+ 0, 0, 0, 0, 0, 0, 954, 955, 956, 235,
+ 236, 237, 238, 239, 240, 241, 242, 0, 243, 244,
+ 245, 0, 0, 0, 0, 0, 0, 0, 246, 247,
+ 248, 0, 249, 250, 251, 252, 0, 254, 255, 256,
+ 257, 258, 0, 260, 261, 0, 262, 263, 264, 265,
+ 266, 267, 268, 0, 0, 269, 270, 271, 272, 273,
+ 0, 274, 1138, 276, 277, 278, 0, 0, 0, 280,
+ 281, 282, 283, 284, 285, 0, 287, 288, 289, 0,
+ 290, 291, 292, 293, 294, 295, 0, 0, 297, 298,
+ 299, 0, 0, 0, 0, 0, 0, 0, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, 0, 310, 0,
+ 311, 312, 313, 314, 315, 316, 317, 0, 318, 319,
+ 320, 321, 0, 0, 322, 323, 324, 325, 326, 0,
+ 327, 328, 329, 0, 330, 331, 332, 0, 333, 334,
+ 335, 336, 337, 338, 339, 340, 341, 342, 0, 1139,
+ 0, 344, 345, 346, 347, 348, 0, 349, 0, 350,
+ 0, 0, 0, 353, 354, 355, 356, 0, 357, 358,
+ 0, 359, 360, 361, 0, 362, 363, 364, 365, 1140,
+ 0, 368, 369, 370, 371, 0, 372, 373, 374, 375,
+ 376, 377, 378, 0, 379, 0, 381, 382, 383, 384,
+ 385, 386, 387, 0, 388, 0, 389, 0, 0, 392,
+ 0, 394, 395, 396, 397, 398, 0, 0, 399, 400,
+ 0, 402, 0, 0, 404, 405, 406, 0, 0, 407,
+ 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
+ 418, 419, 420, 421, 422, 423, 424, 425, 0, 427,
+ 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
+ 0, 438, 439, 0, 441, 0, 442, 443, 444, 445,
+ 446, 447, 0, 448, 449, 0, 0, 450, 451, 452,
+ 0, 0, 453, 454, 455, 0, 457, 0, 459, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 0,
+ 470, 471, 472, 473, 474, 475, 476, 477, 0, 478,
+ 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
+ 489, 490, 491, 492, 0, 493, 494, 495, 496, 497,
+ 498, 499, 500, 501, 502, 503, 504, 505, 0, 506,
+ 507, 0, 509, 510, 511, 512, 513, 514, 515, 516,
+ 517, 518, 519, 520, 521, 522, 523, 0, 524, 525,
+ 526, 527, 528, 0, 529, 530, 531, 532, 533, 0,
+ 535, 536, 537, 538, 0, 539, 540, 541, 542, 543,
+ 544, 545, 546, 547, 548, 549, 550, 551, 552, 553,
+ 0, 554, 555, 0, 556, 0, 558, 559, 560, 561,
+ 562, 0, 563, 564, 565, 0, 0, 566, 567, 568,
+ 569, 570, 0, 571, 572, 573, 574, 575, 576, 577,
+ 578, 0, 0, 579, 580, 581, 582, 583, 0, 0,
+ 584, 585, 586, 587, 588, 589, 590, 0, 591, 0,
+ 593, 594, 595, 596, 0, 0, 597, 0, 0, 598,
+ 599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
+ 609, 610, 611, 612, 613, 614, 615, 616, 617, 0,
+ 0, 0, 0, 0, 0, 0, 0, 959, 960, 961,
+ 962, 963, 964, 965, 966, 967, 625, 0, 0, 0,
+ 0, 0, 0, 953, 0, 0, 0, 0, 0, 0,
+ 954, 955, 956, 235, 236, 237, 238, 239, 240, 241,
+ 242, 0, 243, 244, 245, 0, 0, 0, 0, 0,
+ 0, 0, 246, 247, 248, 0, 249, 250, 251, 252,
+ 0, 254, 255, 256, 257, 258, 0, 260, 261, 0,
+ 262, 263, 264, 265, 266, 267, 268, 0, 0, 269,
+ 270, 271, 272, 273, 0, 274, 1794, 276, 277, 278,
+ 0, 0, 0, 280, 281, 282, 283, 284, 285, 0,
+ 287, 288, 289, 0, 290, 291, 292, 293, 294, 295,
+ 0, 0, 297, 298, 299, 0, 0, 0, 0, 0,
+ 0, 0, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, 0, 310, 0, 311, 312, 313, 314, 315, 316,
+ 317, 0, 318, 319, 320, 321, 0, 0, 322, 323,
+ 324, 325, 326, 0, 327, 328, 329, 0, 330, 331,
+ 332, 0, 333, 334, 335, 336, 337, 338, 339, 340,
+ 341, 342, 0, 1795, 0, 344, 345, 346, 347, 348,
+ 0, 349, 0, 350, 0, 0, 0, 353, 354, 355,
+ 356, 0, 357, 358, 0, 359, 360, 361, 0, 362,
+ 363, 364, 365, 366, 0, 368, 369, 370, 371, 0,
+ 372, 373, 374, 375, 376, 377, 378, 0, 379, 0,
+ 381, 382, 383, 384, 385, 386, 387, 0, 388, 0,
+ 389, 0, 0, 392, 0, 394, 395, 396, 397, 398,
+ 0, 0, 399, 400, 0, 402, 0, 0, 404, 405,
+ 406, 0, 0, 407, 408, 409, 410, 411, 412, 413,
+ 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
+ 424, 425, 0, 427, 428, 429, 430, 431, 432, 433,
+ 434, 435, 436, 437, 0, 438, 439, 0, 441, 0,
+ 442, 443, 444, 445, 446, 447, 0, 448, 449, 0,
+ 0, 450, 451, 452, 0, 0, 453, 454, 455, 0,
+ 457, 0, 459, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 0, 470, 471, 472, 473, 474, 475,
+ 476, 477, 0, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 488, 489, 490, 491, 492, 0, 493,
+ 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
+ 504, 505, 0, 506, 507, 0, 509, 510, 511, 512,
+ 513, 514, 515, 516, 517, 518, 519, 520, 521, 522,
+ 523, 0, 524, 525, 526, 527, 528, 0, 529, 530,
+ 531, 532, 533, 0, 535, 536, 537, 538, 0, 539,
+ 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
+ 550, 551, 552, 553, 0, 554, 555, 0, 556, 0,
+ 558, 559, 560, 561, 562, 0, 563, 564, 565, 0,
+ 0, 566, 567, 568, 569, 570, 0, 571, 572, 573,
+ 574, 575, 576, 577, 578, 0, 0, 579, 580, 581,
+ 582, 583, 0, 0, 584, 585, 586, 587, 588, 589,
+ 590, 0, 591, 0, 593, 594, 595, 596, 0, 0,
+ 597, 0, 0, 598, 599, 600, 601, 602, 603, 604,
+ 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
+ 615, 616, 617, 0, 0, 0, 0, 0, 0, 0,
+ 0, 959, 960, 961, 962, 963, 964, 965, 966, 967,
+ 625, 0, 0, 0, 0, 0, 0, 953, 0, 0,
+ 0, 0, 0, 0, 954, 955, 956, 235, 236, 237,
+ 238, 239, 240, 241, 242, 0, 243, 244, 245, 0,
+ 0, 0, 0, 0, 0, 0, 246, 247, 248, 0,
+ 249, 250, 251, 252, 0, 254, 255, 256, 257, 258,
+ 0, 260, 261, 0, 262, 263, 264, 265, 266, 267,
+ 268, 0, 0, 269, 270, 271, 272, 273, 0, 274,
+ 275, 276, 277, 278, 0, 0, 0, 280, 281, 282,
+ 283, 284, 285, 0, 287, 288, 289, 0, 290, 291,
+ 292, 293, 294, 295, 0, 0, 297, 298, 299, 0,
+ 0, 0, 0, 0, 0, 0, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, 0, 310, 0, 311, 312,
+ 313, 314, 315, 316, 317, 0, 318, 319, 320, 321,
+ 0, 0, 322, 323, 324, 325, 326, 0, 327, 328,
+ 329, 0, 330, 331, 332, 0, 333, 334, 335, 336,
+ 337, 338, 339, 340, 341, 342, 0, 343, 0, 344,
+ 345, 346, 347, 348, 0, 349, 0, 350, 0, 0,
+ 0, 353, 354, 355, 356, 0, 357, 358, 0, 359,
+ 360, 361, 0, 362, 363, 364, 365, 366, 0, 368,
+ 369, 370, 371, 0, 372, 373, 374, 375, 376, 377,
+ 378, 0, 379, 0, 381, 382, 383, 384, 385, 386,
+ 387, 0, 388, 0, 389, 0, 0, 392, 0, 394,
+ 395, 396, 397, 398, 0, 0, 399, 400, 0, 402,
+ 0, 0, 404, 405, 406, 0, 0, 407, 408, 409,
+ 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
+ 420, 421, 422, 423, 424, 425, 0, 427, 428, 429,
+ 430, 431, 432, 433, 434, 435, 436, 437, 0, 438,
+ 439, 0, 441, 0, 442, 443, 444, 445, 446, 447,
+ 0, 448, 449, 0, 0, 450, 451, 452, 0, 0,
+ 453, 454, 455, 0, 457, 0, 459, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 0, 470, 471,
+ 472, 473, 474, 475, 476, 477, 0, 478, 479, 480,
+ 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
+ 491, 492, 0, 493, 494, 495, 496, 497, 498, 499,
+ 500, 501, 502, 503, 504, 505, 0, 506, 507, 0,
+ 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
+ 519, 520, 521, 522, 523, 0, 524, 525, 526, 527,
+ 528, 0, 529, 530, 531, 532, 533, 0, 535, 536,
+ 537, 538, 0, 539, 540, 541, 542, 543, 544, 545,
+ 546, 547, 548, 549, 550, 551, 552, 553, 0, 554,
+ 555, 0, 556, 0, 558, 559, 560, 561, 562, 0,
+ 563, 564, 565, 0, 0, 566, 567, 568, 569, 570,
+ 0, 571, 572, 573, 574, 575, 576, 577, 578, 0,
+ 0, 579, 580, 581, 582, 583, 0, 0, 584, 585,
+ 586, 587, 588, 589, 590, 0, 591, 0, 593, 594,
+ 595, 596, 0, 0, 597, 0, 0, 598, 599, 600,
+ 601, 602, 603, 604, 605, 606, 607, 608, 609, 610,
+ 611, 612, 613, 614, 615, 616, 617, 0, 0, 0,
+ 0, 0, 0, 0, 0, 959, 960, 961, 962, 963,
+ 964, 965, 966, 967, 625, 0, 0, 0, 0, 0,
+ 0, 953, 0, 0, 0, 0, 0, 0, 954, 955,
+ 956, 235, 236, 237, 238, 239, 240, 241, 242, 0,
+ 243, 244, 245, 0, 0, 0, 0, 0, 0, 0,
+ 246, 247, 248, 0, 249, 250, 251, 252, 0, 254,
+ 255, 256, 257, 258, 0, 260, 261, 0, 262, 263,
+ 264, 265, 266, 267, 268, 0, 0, 269, 270, 271,
+ 272, 273, 0, 274, 3465, 276, 277, 278, 0, 0,
+ 0, 280, 281, 282, 283, 284, 285, 0, 287, 288,
+ 289, 0, 290, 291, 292, 293, 294, 295, 0, 0,
+ 297, 298, 299, 0, 0, 0, 0, 0, 0, 0,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, 0,
+ 310, 0, 311, 312, 313, 314, 315, 316, 317, 0,
+ 318, 319, 320, 321, 0, 0, 322, 323, 324, 325,
+ 326, 0, 327, 328, 329, 0, 330, 331, 332, 0,
+ 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
+ 0, 3466, 0, 344, 345, 346, 347, 348, 0, 349,
+ 0, 350, 0, 0, 0, 353, 354, 355, 356, 0,
+ 357, 358, 0, 359, 360, 361, 0, 362, 363, 364,
+ 365, 366, 0, 368, 369, 370, 371, 0, 372, 373,
+ 374, 375, 376, 377, 378, 0, 379, 0, 381, 382,
+ 383, 384, 385, 386, 387, 0, 388, 0, 389, 0,
+ 0, 392, 0, 394, 395, 396, 397, 398, 0, 0,
+ 399, 400, 0, 402, 0, 0, 404, 405, 406, 0,
+ 0, 407, 408, 409, 410, 411, 412, 413, 414, 415,
+ 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
+ 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
+ 436, 437, 0, 438, 439, 0, 441, 0, 442, 443,
+ 444, 445, 446, 447, 0, 448, 449, 0, 0, 450,
+ 451, 452, 0, 0, 453, 454, 455, 0, 457, 0,
+ 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 0, 470, 471, 472, 473, 474, 475, 476, 477,
+ 0, 478, 479, 480, 481, 482, 483, 484, 485, 486,
+ 487, 488, 489, 490, 491, 492, 0, 493, 494, 495,
+ 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
+ 0, 506, 507, 0, 509, 510, 511, 512, 513, 514,
+ 515, 516, 517, 518, 519, 520, 521, 522, 523, 0,
+ 524, 525, 526, 527, 528, 0, 529, 530, 531, 532,
+ 533, 0, 535, 536, 537, 538, 0, 539, 540, 541,
+ 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
+ 552, 553, 0, 554, 555, 0, 556, 0, 558, 559,
+ 560, 561, 562, 0, 563, 564, 565, 0, 0, 566,
+ 567, 568, 569, 570, 0, 571, 572, 573, 574, 575,
+ 576, 577, 578, 0, 0, 579, 580, 581, 582, 583,
+ 0, 0, 584, 585, 586, 587, 588, 589, 590, 0,
+ 591, 0, 593, 594, 595, 596, 0, 0, 597, 0,
+ 0, 598, 599, 600, 601, 602, 603, 604, 605, 606,
+ 607, 608, 609, 610, 611, 612, 613, 614, 615, 616,
+ 617, 0, 0, 0, 0, 0, 0, 0, 0, 959,
+ 960, 961, 962, 963, 964, 965, 966, 967, 625, 0,
+ 0, 0, 0, 0, 0, 953, 0, 0, 0, 0,
+ 0, 0, 954, 955, 956, 235, 236, 237, 238, 239,
+ 240, 241, 242, 0, 243, 244, 245, 0, 0, 0,
+ 0, 0, 0, 0, 246, 247, 248, 0, 249, 250,
+ 251, 252, 0, 254, 255, 256, 257, 258, 0, 260,
+ 261, 0, 262, 263, 264, 265, 266, 267, 268, 0,
+ 0, 269, 270, 271, 272, 273, 0, 274, 275, 276,
+ 277, 278, 0, 0, 0, 280, 281, 282, 283, 284,
+ 285, 0, 287, 288, 289, 0, 290, 291, 292, 293,
+ 294, 295, 0, 0, 297, 298, 299, 0, 0, 0,
+ 0, 0, 0, 0, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, 0, 310, 0, 311, 312, 313, 314,
+ 315, 316, 317, 0, 318, 319, 320, 321, 0, 0,
+ 322, 323, 324, 325, 326, 0, 327, 328, 329, 0,
+ 330, 331, 332, 0, 333, 334, 335, 336, 337, 338,
+ 339, 340, 341, 342, 0, 343, 0, 344, 345, 346,
+ 347, 348, 0, 349, 0, 350, 0, 0, 0, 353,
+ 354, 355, 356, 0, 357, 358, 0, 359, 360, 361,
+ 0, 362, 363, 364, 365, 366, 0, 368, 369, 370,
+ 371, 0, 372, 373, 374, 375, 376, 377, 378, 0,
+ 379, 0, 381, 382, 383, 384, 385, 386, 387, 0,
+ 388, 0, 389, 0, 0, 392, 0, 394, 395, 396,
+ 397, 398, 0, 0, 399, 400, 0, 402, 0, 0,
+ 404, 405, 406, 0, 0, 407, 408, 409, 410, 411,
+ 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
+ 422, 423, 424, 425, 0, 427, 428, 429, 430, 431,
+ 432, 433, 434, 435, 436, 437, 0, 438, 439, 0,
+ 441, 0, 442, 443, 444, 445, 446, 447, 0, 448,
+ 449, 0, 0, 5357, 451, 452, 0, 0, 453, 454,
+ 455, 0, 457, 0, 459, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 0, 470, 471, 472, 473,
+ 474, 475, 476, 477, 0, 478, 479, 480, 481, 482,
+ 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
+ 0, 493, 494, 495, 496, 497, 498, 499, 500, 501,
+ 502, 503, 504, 505, 0, 506, 507, 0, 509, 510,
+ 511, 512, 513, 514, 515, 516, 517, 518, 519, 520,
+ 521, 522, 523, 0, 524, 525, 526, 527, 528, 0,
+ 529, 530, 531, 532, 533, 0, 535, 536, 537, 538,
+ 0, 539, 540, 541, 542, 543, 544, 545, 546, 547,
+ 548, 549, 550, 551, 552, 553, 0, 554, 555, 0,
+ 556, 0, 558, 559, 560, 561, 562, 0, 563, 564,
+ 565, 0, 0, 566, 567, 568, 569, 570, 0, 571,
+ 572, 573, 574, 575, 576, 577, 578, 0, 0, 579,
+ 580, 581, 582, 583, 0, 0, 584, 585, 586, 587,
+ 588, 589, 590, 0, 591, 0, 593, 594, 595, 596,
+ 0, 0, 597, 0, 0, 598, 599, 600, 601, 602,
+ 603, 604, 605, 606, 607, 608, 609, 610, 611, 612,
+ 613, 614, 615, 616, 617, 1689, 0, 0, 0, 0,
+ 0, 0, 0, 959, 960, 961, 962, 963, 964, 965,
+ 966, 967, 235, 236, 237, 238, 239, 240, 241, 242,
+ 1690, 243, 244, 245, 1691, 1692, 1693, 1694, 1695, 1696,
+ 1697, 246, 247, 248, 1698, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 258, 259, 260, 261, 1699, 262,
+ 263, 264, 265, 266, 267, 268, 1700, 1701, 269, 270,
+ 271, 272, 273, 1702, 274, 275, 276, 277, 278, 1703,
+ 279, 1704, 280, 281, 282, 283, 284, 285, 286, 287,
+ 288, 289, 1705, 290, 291, 292, 293, 294, 295, 1706,
+ 296, 297, 298, 299, 1707, 1708, 1709, 300, 1710, 1711,
+ 1712, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ 1713, 310, 1714, 311, 312, 313, 314, 315, 316, 317,
+ 1715, 318, 319, 320, 321, 1716, 1717, 322, 323, 324,
+ 325, 326, 1718, 327, 328, 329, 1719, 330, 331, 332,
+ 1720, 333, 334, 335, 336, 337, 338, 339, 340, 341,
+ 342, 1721, 343, 1722, 344, 345, 346, 347, 348, 1723,
+ 349, 1724, 350, 351, 1725, 352, 353, 354, 355, 356,
+ 1726, 357, 358, 1727, 359, 360, 361, 1728, 362, 363,
+ 364, 365, 366, 367, 368, 369, 370, 371, 1729, 372,
+ 373, 374, 375, 376, 377, 378, 1730, 379, 380, 381,
+ 382, 383, 384, 385, 386, 387, 1731, 388, 1732, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 1733,
+ 1734, 399, 400, 401, 402, 403, 1735, 404, 405, 406,
+ 1736, 1737, 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, 1738, 438, 439, 440, 441, 1739, 442,
+ 443, 444, 445, 446, 447, 1740, 448, 449, 1741, 1742,
+ 450, 451, 452, 1743, 1744, 453, 454, 455, 456, 457,
+ 458, 459, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 1745, 470, 471, 472, 473, 474, 475, 476,
+ 477, 1746, 478, 479, 480, 481, 482, 483, 484, 485,
+ 486, 487, 488, 489, 490, 491, 492, 1747, 493, 494,
+ 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
+ 505, 1748, 506, 507, 508, 509, 510, 511, 512, 513,
+ 514, 515, 516, 517, 518, 519, 520, 521, 522, 523,
+ 1749, 524, 525, 526, 527, 528, 1750, 529, 530, 531,
+ 532, 533, 534, 535, 536, 537, 538, 1751, 539, 540,
+ 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
+ 551, 552, 553, 1752, 554, 555, 1753, 556, 557, 558,
+ 559, 560, 561, 562, 1754, 563, 564, 565, 1755, 1756,
+ 566, 567, 568, 569, 570, 1757, 571, 572, 573, 574,
+ 575, 576, 577, 578, 1758, 1759, 579, 580, 581, 582,
+ 583, 1760, 1761, 584, 585, 586, 587, 588, 589, 590,
+ 1762, 591, 592, 593, 594, 595, 596, 1763, 1764, 597,
+ 1765, 1766, 598, 599, 600, 601, 602, 603, 604, 605,
+ 606, 607, 608, 609, 610, 611, 612, 613, 614, 615,
+ 616, 617, 625, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1767, 0, 0, 0, 235,
+ 236, 237, 238, 239, 240, 241, 242, 0, 243, 244,
+ 245, 0, 0, 0, 0, 0, 0, 0, 246, 247,
+ 248, 0, 249, 250, 251, 252, 0, 254, 255, 256,
+ 257, 258, 0, 260, 261, 0, 262, 263, 264, 265,
+ 266, 267, 268, 0, 0, 269, 270, 271, 272, 273,
+ 0, 274, 275, 276, 277, 278, 0, 0, 0, 280,
+ 281, 282, 283, 284, 285, 0, 287, 288, 289, 0,
+ 290, 291, 292, 293, 294, 295, 0, 0, 297, 298,
+ 299, 0, 0, 0, 0, 0, 0, 0, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, 0, 310, 0,
+ 311, 312, 313, 314, 315, 316, 317, 0, 318, 319,
+ 320, 321, 0, 0, 322, 323, 324, 325, 326, 0,
+ 327, 328, 329, 0, 330, 331, 332, 0, 333, 334,
+ 335, 336, 337, 338, 339, 340, 341, 342, 0, 343,
+ 0, 344, 345, 346, 347, 348, 0, 349, 0, 350,
+ 0, 0, 0, 353, 354, 355, 356, 0, 357, 358,
+ 0, 359, 360, 361, 0, 362, 363, 364, 365, 366,
+ 0, 368, 369, 370, 371, 0, 372, 373, 374, 375,
+ 376, 377, 378, 0, 379, 0, 381, 382, 383, 384,
+ 385, 386, 387, 0, 388, 0, 389, 0, 0, 392,
+ 0, 394, 395, 396, 397, 398, 0, 0, 399, 400,
+ 0, 402, 0, 0, 404, 405, 406, 0, 0, 407,
+ 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
+ 418, 419, 420, 421, 422, 423, 424, 425, 0, 427,
+ 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
+ 0, 438, 439, 0, 441, 0, 442, 443, 444, 445,
+ 446, 447, 0, 448, 449, 0, 0, 450, 451, 452,
+ 0, 0, 453, 454, 455, 0, 457, 0, 459, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 0,
+ 470, 471, 472, 473, 474, 475, 476, 477, 0, 478,
+ 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
+ 489, 490, 491, 492, 0, 493, 494, 495, 496, 497,
+ 498, 499, 500, 501, 502, 503, 504, 505, 0, 506,
+ 507, 0, 509, 510, 511, 512, 513, 514, 515, 516,
+ 517, 518, 519, 520, 521, 522, 523, 0, 524, 525,
+ 526, 527, 528, 0, 529, 530, 531, 532, 533, 0,
+ 535, 536, 537, 538, 0, 539, 540, 541, 542, 543,
+ 544, 545, 546, 547, 548, 549, 550, 551, 552, 553,
+ 0, 554, 555, 0, 556, 0, 558, 559, 560, 561,
+ 562, 0, 563, 564, 565, 0, 0, 566, 567, 568,
+ 569, 570, 0, 571, 572, 573, 574, 575, 576, 577,
+ 578, 0, 0, 579, 580, 581, 582, 583, 0, 0,
+ 584, 585, 586, 587, 588, 589, 590, 0, 591, 0,
+ 593, 594, 595, 596, 0, 0, 597, 0, 0, 598,
+ 599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
+ 609, 610, 611, 612, 613, 614, 615, 616, 617, 625,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 841, 0, 0, 0, 235, 236, 237, 238,
+ 239, 240, 241, 242, 0, 243, 244, 245, 0, 0,
+ 0, 0, 0, 0, 0, 246, 247, 248, 0, 249,
+ 250, 251, 252, 0, 254, 255, 256, 257, 258, 0,
+ 260, 261, 0, 262, 263, 264, 265, 266, 267, 268,
+ 0, 0, 269, 270, 271, 272, 273, 0, 274, 275,
+ 276, 277, 278, 0, 0, 0, 280, 281, 282, 283,
+ 284, 285, 0, 287, 288, 289, 0, 290, 291, 292,
+ 293, 294, 295, 0, 0, 297, 298, 299, 0, 0,
+ 0, 0, 0, 0, 0, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, 0, 310, 0, 311, 312, 313,
+ 314, 315, 316, 317, 0, 318, 319, 320, 321, 0,
+ 0, 322, 323, 324, 325, 326, 0, 327, 328, 329,
+ 0, 330, 331, 332, 0, 333, 334, 335, 336, 337,
+ 338, 339, 340, 341, 342, 0, 343, 0, 344, 345,
+ 346, 347, 348, 0, 349, 0, 350, 0, 0, 0,
+ 353, 354, 355, 356, 0, 357, 358, 0, 359, 360,
+ 361, 0, 362, 363, 364, 365, 366, 0, 368, 369,
+ 370, 371, 0, 372, 373, 374, 375, 376, 377, 378,
+ 0, 379, 0, 381, 382, 383, 384, 385, 386, 387,
+ 0, 388, 0, 389, 0, 0, 392, 0, 394, 395,
+ 396, 397, 398, 0, 0, 399, 400, 0, 402, 0,
+ 0, 404, 405, 406, 0, 0, 407, 408, 409, 410,
+ 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
+ 421, 422, 423, 424, 425, 0, 427, 428, 429, 430,
+ 431, 432, 433, 434, 435, 436, 437, 0, 438, 439,
+ 0, 441, 0, 442, 443, 444, 445, 446, 447, 0,
+ 448, 449, 0, 0, 450, 451, 452, 0, 0, 453,
+ 454, 455, 0, 457, 0, 459, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 0, 470, 471, 472,
+ 473, 474, 475, 476, 477, 0, 478, 479, 480, 481,
+ 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
+ 492, 0, 493, 494, 495, 496, 497, 498, 499, 500,
+ 501, 502, 503, 504, 505, 0, 506, 507, 0, 509,
+ 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
+ 520, 521, 522, 523, 0, 524, 525, 526, 527, 528,
+ 0, 529, 530, 531, 532, 533, 0, 535, 536, 537,
+ 538, 0, 539, 540, 541, 542, 543, 544, 545, 546,
+ 547, 548, 549, 550, 551, 552, 553, 0, 554, 555,
+ 0, 556, 0, 558, 559, 560, 561, 562, 0, 563,
+ 564, 565, 0, 0, 566, 567, 568, 569, 570, 0,
+ 571, 572, 573, 574, 575, 576, 577, 578, 0, 0,
+ 579, 580, 581, 582, 583, 0, 0, 584, 585, 586,
+ 587, 588, 589, 590, 0, 591, 0, 593, 594, 595,
+ 596, 0, 0, 597, 0, 0, 598, 599, 600, 601,
+ 602, 603, 604, 605, 606, 607, 608, 609, 610, 611,
+ 612, 613, 614, 615, 616, 617, 852, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 5762,
+ 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
+ 242, 0, 243, 244, 245, 0, 0, 0, 0, 0,
+ 0, 0, 246, 247, 248, 0, 249, 250, 251, 252,
+ 253, 254, 255, 256, 0, 853, 259, 854, 855, 0,
+ 262, 263, 264, 265, 266, 267, 268, 0, 0, 269,
+ 270, 856, 857, 273, 0, 274, 275, 276, 277, 0,
+ 0, 279, 0, 280, 281, 282, 283, 284, 285, 286,
+ 287, 288, 289, 0, 290, 291, 292, 293, 294, 295,
+ 0, 296, 297, 298, 299, 0, 0, 0, 300, 0,
+ 0, 0, 301, 302, 303, 304, 305, 306, 858, 859,
+ 309, 0, 310, 0, 311, 312, 313, 314, 315, 316,
+ 317, 0, 318, 319, 320, 321, 0, 0, 322, 323,
+ 860, 325, 326, 0, 327, 328, 329, 0, 330, 331,
+ 332, 0, 333, 334, 335, 336, 0, 338, 339, 340,
+ 341, 0, 0, 343, 0, 344, 345, 346, 861, 348,
+ 0, 349, 0, 350, 351, 0, 352, 353, 354, 355,
+ 356, 0, 357, 0, 0, 0, 360, 361, 0, 362,
+ 363, 364, 365, 366, 367, 368, 369, 370, 371, 2630,
+ 372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
+ 2631, 382, 383, 384, 385, 862, 863, 0, 864, 0,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 0, 0, 399, 0, 401, 402, 403, 0, 404, 405,
+ 406, 0, 0, 407, 408, 409, 410, 411, 412, 413,
+ 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
+ 424, 865, 426, 866, 428, 429, 430, 431, 432, 433,
+ 434, 0, 0, 437, 0, 438, 439, 440, 441, 0,
+ 0, 443, 867, 445, 446, 447, 0, 448, 449, 0,
+ 0, 450, 451, 452, 0, 2632, 453, 454, 2633, 456,
+ 457, 458, 0, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 0, 470, 471, 0, 473, 0, 475,
+ 476, 477, 0, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 868, 489, 490, 491, 492, 0, 493,
+ 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
+ 504, 505, 0, 506, 507, 508, 509, 510, 511, 512,
+ 513, 0, 515, 516, 517, 518, 519, 520, 521, 522,
+ 523, 0, 524, 525, 526, 527, 528, 0, 529, 530,
+ 2634, 532, 533, 534, 535, 536, 870, 538, 0, 539,
+ 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
+ 550, 551, 0, 553, 0, 554, 555, 0, 556, 557,
+ 558, 559, 560, 561, 562, 0, 563, 871, 872, 0,
+ 0, 566, 567, 0, 569, 0, 0, 571, 572, 573,
+ 574, 575, 576, 577, 578, 0, 0, 579, 580, 581,
+ 582, 583, 0, 0, 584, 585, 586, 587, 588, 0,
+ 873, 2635, 591, 592, 593, 594, 595, 596, 0, 0,
+ 597, 0, 0, 598, 599, 600, 601, 602, 603, 0,
+ 0, 3810, 0, 0, 0, 0, 0, 0, 0, 0,
+ 615, 616, 617, 0, 0, 0, 0, 0, 235, 236,
+ 237, 238, 239, 240, 241, 242, 2636, 243, 244, 245,
+ 0, 0, 0, 0, 0, 0, 0, 246, 247, 248,
+ 0, 249, 250, 251, 252, 253, 254, 255, 256, 0,
+ 853, 259, 854, 855, 0, 262, 263, 264, 265, 266,
+ 267, 268, 0, 0, 269, 270, 856, 857, 273, 0,
+ 274, 275, 276, 277, 0, 0, 279, 0, 280, 281,
+ 282, 283, 284, 285, 286, 287, 288, 289, 0, 290,
+ 291, 292, 293, 294, 295, 0, 296, 297, 298, 299,
+ 0, 0, 0, 300, 0, 0, 0, 301, 302, 303,
+ 304, 305, 306, 858, 859, 309, 0, 310, 0, 311,
+ 312, 313, 314, 315, 316, 317, 0, 318, 319, 320,
+ 321, 0, 0, 322, 323, 860, 325, 326, 0, 327,
+ 328, 329, 0, 330, 331, 332, 0, 333, 334, 335,
+ 336, 0, 338, 339, 340, 341, 0, 0, 343, 0,
+ 344, 345, 346, 861, 348, 0, 349, 0, 350, 351,
+ 0, 352, 353, 354, 355, 356, 0, 357, 0, 0,
+ 0, 360, 361, 0, 362, 363, 364, 365, 366, 367,
+ 368, 369, 370, 371, 2630, 372, 373, 374, 375, 376,
+ 377, 378, 0, 379, 380, 2631, 382, 383, 384, 385,
+ 862, 863, 0, 864, 0, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 0, 0, 399, 0, 401,
+ 402, 403, 0, 404, 405, 406, 0, 0, 407, 408,
+ 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
+ 419, 420, 421, 422, 423, 424, 865, 426, 866, 428,
+ 429, 430, 431, 432, 433, 434, 0, 0, 437, 0,
+ 438, 439, 440, 441, 0, 0, 443, 867, 445, 446,
+ 447, 0, 448, 449, 0, 0, 450, 451, 452, 0,
+ 2632, 453, 454, 2633, 456, 457, 458, 0, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 0, 470,
+ 471, 0, 473, 0, 475, 476, 477, 0, 478, 479,
+ 480, 481, 482, 483, 484, 485, 486, 487, 868, 489,
+ 490, 491, 492, 0, 493, 494, 495, 496, 497, 498,
+ 499, 500, 501, 502, 503, 504, 505, 0, 506, 507,
+ 508, 509, 510, 511, 512, 513, 0, 515, 516, 517,
+ 518, 519, 520, 521, 522, 523, 0, 524, 525, 526,
+ 527, 528, 0, 529, 530, 2634, 532, 533, 534, 535,
+ 536, 870, 538, 0, 539, 540, 541, 542, 543, 544,
+ 545, 546, 547, 548, 549, 550, 551, 0, 553, 0,
+ 554, 555, 0, 556, 557, 558, 559, 560, 561, 562,
+ 0, 563, 871, 872, 0, 0, 566, 567, 0, 569,
+ 0, 0, 571, 572, 573, 574, 575, 576, 577, 578,
+ 0, 0, 579, 580, 581, 582, 583, 0, 0, 584,
+ 585, 586, 587, 588, 0, 873, 2635, 591, 592, 593,
+ 594, 595, 596, 0, 0, 597, 0, 0, 598, 599,
+ 600, 601, 602, 603, 0, 0, 938, 0, 1554, 684,
+ 0, 0, 0, 0, 745, 615, 616, 617, 0, 0,
+ 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
+ 242, 2636, 243, 244, 245, 0, 0, 0, 0, 0,
+ 0, 0, 246, 247, 248, 0, 249, 250, 251, 252,
+ 253, 254, 255, 256, 257, 258, 259, 260, 261, 0,
+ 262, 263, 264, 265, 266, 267, 268, 0, 0, 269,
+ 270, 271, 272, 273, 0, 274, 275, 276, 277, 278,
+ 0, 279, 0, 280, 281, 282, 283, 284, 285, 286,
+ 287, 288, 289, 0, 290, 291, 292, 293, 294, 295,
+ 0, 296, 297, 298, 299, 0, 0, 0, 300, 0,
+ 0, 0, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, 2521, 310, 0, 311, 312, 313, 314, 315, 316,
+ 317, 0, 318, 319, 320, 321, 0, 0, 322, 323,
+ 324, 325, 326, 0, 327, 328, 329, 0, 330, 331,
+ 332, 0, 333, 334, 335, 336, 337, 338, 339, 340,
+ 341, 342, 1777, 343, 0, 344, 345, 346, 347, 348,
+ 0, 349, 0, 350, 351, 0, 352, 353, 354, 355,
+ 356, 0, 357, 358, 0, 359, 360, 361, 0, 362,
+ 363, 364, 365, 366, 367, 368, 369, 370, 371, 0,
+ 372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
+ 381, 382, 383, 384, 385, 386, 387, 0, 388, 0,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 0, 0, 399, 400, 401, 402, 403, 0, 404, 405,
+ 406, 0, 0, 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, 0, 438, 439, 440, 441, 0,
+ 442, 443, 444, 445, 446, 447, 0, 448, 449, 1778,
+ 0, 450, 451, 452, 0, 0, 453, 454, 455, 456,
+ 457, 458, 459, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 0, 470, 471, 472, 473, 474, 475,
+ 476, 477, 0, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 488, 489, 490, 491, 492, 0, 493,
+ 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
+ 504, 505, 0, 506, 507, 508, 509, 510, 511, 512,
+ 513, 514, 515, 516, 517, 518, 519, 520, 521, 522,
+ 523, 0, 524, 525, 526, 527, 528, 0, 529, 530,
+ 531, 532, 533, 534, 535, 536, 537, 538, 0, 539,
+ 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
+ 550, 551, 552, 553, 0, 554, 555, 0, 556, 557,
+ 558, 559, 560, 561, 562, 0, 563, 564, 565, 0,
+ 0, 566, 567, 568, 569, 570, 1779, 571, 572, 573,
+ 574, 575, 576, 577, 578, 0, 0, 579, 580, 581,
+ 582, 583, 0, 0, 584, 585, 586, 587, 588, 589,
+ 590, 0, 591, 592, 593, 594, 595, 596, 0, 0,
+ 597, 0, 0, 598, 599, 600, 601, 602, 603, 604,
+ 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
+ 615, 616, 617, 938, 0, 1554, 684, 0, 0, 0,
+ 0, 745, 0, 0, 1555, 1556, 0, 0, 0, 0,
+ 235, 236, 237, 238, 239, 240, 241, 242, 0, 243,
+ 244, 245, 0, 0, 0, 0, 0, 0, 0, 246,
+ 247, 248, 0, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 258, 259, 260, 261, 0, 262, 263, 264,
+ 265, 266, 267, 268, 0, 0, 269, 270, 271, 272,
+ 273, 0, 274, 275, 276, 277, 278, 0, 279, 0,
+ 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 0, 290, 291, 292, 293, 294, 295, 0, 296, 297,
+ 298, 299, 0, 0, 0, 300, 0, 0, 0, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 2526, 310,
+ 0, 311, 312, 313, 314, 315, 316, 317, 0, 318,
+ 319, 320, 321, 0, 0, 322, 323, 324, 325, 326,
+ 0, 327, 328, 329, 0, 330, 331, 332, 0, 333,
+ 334, 335, 336, 337, 338, 339, 340, 341, 342, 1777,
+ 343, 0, 344, 345, 346, 347, 348, 0, 349, 0,
+ 350, 351, 0, 352, 353, 354, 355, 356, 0, 357,
+ 358, 0, 359, 360, 361, 0, 362, 363, 364, 365,
+ 366, 367, 368, 369, 370, 371, 0, 372, 373, 374,
+ 375, 376, 377, 378, 0, 379, 380, 381, 382, 383,
+ 384, 385, 386, 387, 0, 388, 0, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 0, 0, 399,
+ 400, 401, 402, 403, 0, 404, 405, 406, 0, 0,
+ 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, 0, 438, 439, 440, 441, 0, 442, 443, 444,
+ 445, 446, 447, 0, 448, 449, 1778, 0, 450, 451,
+ 452, 0, 0, 453, 454, 455, 456, 457, 458, 459,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 0, 470, 471, 472, 473, 474, 475, 476, 477, 0,
+ 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
+ 488, 489, 490, 491, 492, 0, 493, 494, 495, 496,
+ 497, 498, 499, 500, 501, 502, 503, 504, 505, 0,
+ 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
+ 516, 517, 518, 519, 520, 521, 522, 523, 0, 524,
+ 525, 526, 527, 528, 0, 529, 530, 531, 532, 533,
+ 534, 535, 536, 537, 538, 0, 539, 540, 541, 542,
+ 543, 544, 545, 546, 547, 548, 549, 550, 551, 552,
+ 553, 0, 554, 555, 0, 556, 557, 558, 559, 560,
+ 561, 562, 0, 563, 564, 565, 0, 0, 566, 567,
+ 568, 569, 570, 1779, 571, 572, 573, 574, 575, 576,
+ 577, 578, 0, 0, 579, 580, 581, 582, 583, 0,
+ 0, 584, 585, 586, 587, 588, 589, 590, 0, 591,
+ 592, 593, 594, 595, 596, 0, 0, 597, 0, 0,
+ 598, 599, 600, 601, 602, 603, 604, 605, 606, 607,
+ 608, 609, 610, 611, 612, 613, 614, 615, 616, 617,
+ 938, 0, 1554, 684, 0, 0, 0, 0, 745, 0,
+ 0, 1555, 1556, 0, 0, 0, 0, 235, 236, 237,
+ 238, 239, 240, 241, 242, 0, 243, 244, 245, 0,
+ 0, 0, 0, 0, 0, 0, 246, 247, 248, 0,
+ 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ 259, 260, 261, 0, 262, 263, 264, 265, 266, 267,
+ 268, 0, 0, 269, 270, 271, 272, 273, 0, 274,
+ 275, 276, 277, 278, 0, 279, 0, 280, 281, 282,
+ 283, 284, 285, 286, 287, 288, 289, 0, 290, 291,
+ 292, 293, 294, 295, 0, 296, 297, 298, 299, 0,
+ 0, 0, 300, 0, 0, 0, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, 3426, 310, 0, 311, 312,
+ 313, 314, 315, 316, 317, 0, 318, 319, 320, 321,
+ 0, 0, 322, 323, 324, 325, 326, 0, 327, 328,
+ 329, 0, 330, 331, 332, 0, 333, 334, 335, 336,
+ 337, 338, 339, 340, 341, 342, 1777, 343, 0, 344,
+ 345, 346, 347, 348, 0, 349, 0, 350, 351, 0,
+ 352, 353, 354, 355, 356, 0, 357, 358, 0, 359,
+ 360, 361, 0, 362, 363, 364, 365, 366, 367, 368,
+ 369, 370, 371, 0, 372, 373, 374, 375, 376, 377,
+ 378, 0, 379, 380, 381, 382, 383, 384, 385, 386,
+ 387, 0, 388, 0, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 0, 0, 399, 400, 401, 402,
+ 403, 0, 404, 405, 406, 0, 0, 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, 0, 438,
+ 439, 440, 441, 0, 442, 443, 444, 445, 446, 447,
+ 0, 448, 449, 1778, 0, 450, 451, 452, 0, 0,
+ 453, 454, 455, 456, 457, 458, 459, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 0, 470, 471,
+ 472, 473, 474, 475, 476, 477, 0, 478, 479, 480,
+ 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
+ 491, 492, 0, 493, 494, 495, 496, 497, 498, 499,
+ 500, 501, 502, 503, 504, 505, 0, 506, 507, 508,
+ 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
+ 519, 520, 521, 522, 523, 0, 524, 525, 526, 527,
+ 528, 0, 529, 530, 531, 532, 533, 534, 535, 536,
+ 537, 538, 0, 539, 540, 541, 542, 543, 544, 545,
+ 546, 547, 548, 549, 550, 551, 552, 553, 0, 554,
+ 555, 0, 556, 557, 558, 559, 560, 561, 562, 0,
+ 563, 564, 565, 0, 0, 566, 567, 568, 569, 570,
+ 1779, 571, 572, 573, 574, 575, 576, 577, 578, 0,
+ 0, 579, 580, 581, 582, 583, 0, 0, 584, 585,
+ 586, 587, 588, 589, 590, 0, 591, 592, 593, 594,
+ 595, 596, 0, 0, 597, 0, 0, 598, 599, 600,
+ 601, 602, 603, 604, 605, 606, 607, 608, 609, 610,
+ 611, 612, 613, 614, 615, 616, 617, 938, 0, 1554,
+ 684, 0, 0, 0, 0, 745, 0, 0, 1555, 1556,
+ 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
+ 241, 242, 0, 243, 244, 245, 0, 0, 0, 0,
+ 0, 0, 0, 246, 247, 248, 0, 249, 250, 251,
+ 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 0, 262, 263, 264, 265, 266, 267, 268, 0, 0,
+ 269, 270, 271, 272, 273, 0, 274, 275, 276, 277,
+ 278, 0, 279, 0, 280, 281, 282, 283, 284, 285,
+ 286, 287, 288, 289, 0, 290, 291, 292, 293, 294,
+ 295, 0, 296, 297, 298, 299, 0, 0, 0, 300,
+ 0, 0, 0, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, 0, 310, 0, 311, 312, 313, 314, 315,
+ 316, 317, 0, 318, 319, 320, 321, 0, 0, 322,
+ 323, 324, 325, 326, 0, 327, 328, 329, 0, 330,
+ 331, 332, 0, 333, 334, 335, 336, 337, 338, 339,
+ 340, 341, 342, 1777, 343, 0, 344, 345, 346, 347,
+ 348, 0, 349, 0, 350, 351, 0, 352, 353, 354,
+ 355, 356, 0, 357, 358, 0, 359, 360, 361, 0,
+ 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
+ 0, 372, 373, 374, 375, 376, 377, 378, 0, 379,
+ 380, 381, 382, 383, 384, 385, 386, 387, 0, 388,
+ 0, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 0, 0, 399, 400, 401, 402, 403, 0, 404,
+ 405, 406, 0, 0, 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, 0, 438, 439, 440, 441,
+ 0, 442, 443, 444, 445, 446, 447, 0, 448, 449,
+ 1778, 0, 450, 451, 452, 0, 0, 453, 454, 455,
+ 456, 457, 458, 459, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 0, 470, 471, 472, 473, 474,
+ 475, 476, 477, 0, 478, 479, 480, 481, 482, 483,
+ 484, 485, 486, 487, 488, 489, 490, 491, 492, 0,
+ 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
+ 503, 504, 505, 0, 506, 507, 508, 509, 510, 511,
+ 512, 513, 514, 515, 516, 517, 518, 519, 520, 521,
+ 522, 523, 0, 524, 525, 526, 527, 528, 0, 529,
+ 530, 531, 532, 533, 534, 535, 536, 537, 538, 0,
+ 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
+ 549, 550, 551, 552, 553, 0, 554, 555, 0, 556,
+ 557, 558, 559, 560, 561, 562, 0, 563, 564, 565,
+ 0, 0, 566, 567, 568, 569, 570, 1779, 571, 572,
+ 573, 574, 575, 576, 577, 578, 0, 0, 579, 580,
+ 581, 582, 583, 0, 0, 584, 585, 586, 587, 588,
+ 589, 590, 0, 591, 592, 593, 594, 595, 596, 0,
+ 0, 597, 0, 0, 598, 599, 600, 601, 602, 603,
+ 604, 605, 606, 607, 608, 609, 610, 611, 612, 613,
+ 614, 615, 616, 617, 625, 0, 0, 0, 0, 0,
+ 0, 0, 745, 0, 0, 1555, 1556, 0, 0, 0,
+ 0, 235, 746, 237, 238, 239, 240, 241, 242, 747,
+ 243, 244, 245, 0, 0, 0, 0, 0, 0, 0,
+ 246, 247, 248, 0, 249, 250, 251, 252, 0, 748,
+ 255, 256, 257, 258, 0, 260, 261, 0, 262, 263,
+ 264, 265, 266, 267, 268, 0, 0, 269, 270, 271,
+ 272, 273, 0, 274, 275, 276, 277, 278, 0, 0,
+ 0, 280, 281, 282, 283, 284, 285, 0, 287, 288,
+ 289, 0, 290, 291, 292, 293, 294, 295, 0, 0,
+ 297, 298, 299, 0, 0, 0, 0, 0, 0, 0,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, 0,
+ 310, 0, 311, 312, 313, 314, 315, 316, 317, 0,
+ 318, 319, 320, 321, 0, 0, 322, 323, 324, 325,
+ 326, 0, 327, 328, 329, 0, 330, 331, 332, 0,
+ 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
+ 0, 343, 0, 344, 345, 749, 347, 348, 0, 349,
+ 0, 750, 0, 751, 0, 353, 354, 355, 356, 0,
+ 357, 358, 0, 359, 360, 361, 0, 362, 363, 364,
+ 365, 366, 0, 368, 369, 370, 371, 752, 372, 373,
+ 374, 375, 376, 377, 378, 0, 379, 0, 381, 382,
+ 383, 384, 385, 386, 387, 0, 388, 0, 389, 0,
+ 0, 392, 0, 394, 395, 396, 397, 753, 0, 0,
+ 399, 400, 0, 402, 0, 0, 404, 405, 406, 0,
+ 0, 407, 408, 409, 410, 411, 412, 413, 414, 415,
+ 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
+ 0, 427, 428, 754, 430, 431, 432, 433, 434, 435,
+ 436, 437, 0, 438, 439, 0, 441, 0, 442, 443,
+ 444, 445, 446, 447, 0, 448, 449, 0, 0, 450,
+ 451, 452, 0, 0, 453, 454, 455, 0, 457, 0,
+ 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 0, 470, 471, 472, 473, 474, 475, 476, 477,
+ 0, 755, 479, 480, 481, 482, 483, 484, 485, 486,
+ 487, 488, 489, 490, 491, 492, 0, 493, 494, 495,
+ 756, 497, 498, 499, 500, 501, 502, 503, 504, 505,
+ 0, 506, 507, 0, 509, 510, 511, 512, 513, 514,
+ 515, 516, 517, 518, 519, 520, 521, 522, 523, 0,
+ 524, 525, 526, 527, 528, 0, 529, 530, 531, 532,
+ 533, 0, 535, 536, 537, 538, 0, 539, 540, 541,
+ 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
+ 552, 553, 0, 554, 555, 0, 556, 0, 558, 559,
+ 560, 561, 562, 0, 563, 564, 565, 0, 0, 566,
+ 567, 568, 569, 570, 0, 571, 572, 573, 574, 575,
+ 576, 577, 578, 0, 0, 579, 580, 581, 582, 583,
+ 0, 0, 584, 585, 586, 587, 588, 589, 590, 0,
+ 591, 0, 593, 594, 595, 596, 0, 0, 597, 0,
+ 0, 598, 599, 600, 601, 602, 603, 604, 605, 606,
+ 607, 608, 609, 610, 611, 612, 613, 614, 615, 616,
+ 617, 1689, 0, 6043, 684, 0, 0, 0, 0, 745,
+ 0, 0, 757, 758, 0, 0, 0, 0, 235, 236,
+ 237, 238, 239, 240, 241, 242, 1690, 243, 244, 245,
+ 1691, 1692, 1693, 1694, 1695, 1696, 1697, 246, 247, 248,
+ 1698, 249, 250, 251, 252, 253, 254, 255, 256, 257,
+ 258, 259, 260, 261, 1699, 262, 263, 264, 265, 266,
+ 267, 268, 1700, 1701, 269, 270, 271, 272, 273, 1702,
+ 274, 275, 276, 277, 278, 1703, 279, 1704, 280, 281,
+ 282, 283, 284, 285, 286, 287, 288, 289, 1705, 290,
+ 291, 292, 293, 294, 295, 1706, 296, 297, 298, 299,
+ 1707, 1708, 1709, 300, 1710, 1711, 1712, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, 1713, 310, 1714, 311,
+ 312, 313, 314, 315, 316, 317, 1715, 318, 319, 320,
+ 321, 1716, 1717, 322, 323, 324, 325, 326, 1718, 327,
+ 328, 329, 1719, 330, 331, 332, 1720, 333, 334, 335,
+ 336, 337, 338, 339, 340, 341, 342, 1721, 343, 1722,
+ 344, 345, 346, 347, 348, 1723, 349, 1724, 350, 351,
+ 1725, 352, 353, 354, 355, 356, 1726, 357, 358, 1727,
+ 359, 360, 361, 1728, 362, 363, 364, 365, 366, 367,
+ 368, 369, 370, 371, 1729, 372, 373, 374, 375, 376,
+ 377, 378, 1730, 379, 380, 381, 382, 383, 384, 385,
+ 386, 387, 1731, 388, 1732, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 1733, 1734, 399, 400, 401,
+ 402, 403, 1735, 404, 405, 406, 1736, 1737, 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, 1738,
+ 438, 439, 440, 441, 1739, 442, 443, 444, 445, 446,
+ 447, 1740, 448, 449, 1741, 1742, 450, 451, 452, 1743,
+ 1744, 453, 454, 455, 456, 457, 458, 459, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 1745, 470,
+ 471, 472, 473, 474, 475, 476, 477, 1746, 478, 479,
+ 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
+ 490, 491, 492, 1747, 493, 494, 495, 496, 497, 498,
+ 499, 500, 501, 502, 503, 504, 505, 1748, 506, 507,
+ 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
+ 518, 519, 520, 521, 522, 523, 1749, 524, 525, 526,
+ 527, 528, 1750, 529, 530, 531, 532, 533, 534, 535,
+ 536, 537, 538, 1751, 539, 540, 541, 542, 543, 544,
+ 545, 546, 547, 548, 549, 550, 551, 552, 553, 1752,
+ 554, 555, 1753, 556, 557, 558, 559, 560, 561, 562,
+ 1754, 563, 564, 565, 1755, 1756, 566, 567, 568, 569,
+ 570, 1757, 571, 572, 573, 574, 575, 576, 577, 578,
+ 1758, 1759, 579, 580, 581, 582, 583, 1760, 1761, 584,
+ 585, 586, 587, 588, 589, 590, 1762, 591, 592, 593,
+ 594, 595, 596, 1763, 1764, 597, 1765, 1766, 598, 599,
+ 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
+ 610, 611, 612, 613, 614, 615, 616, 617, 1689, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
+ 240, 241, 242, 1690, 243, 244, 245, 1691, 1692, 1693,
+ 1694, 1695, 1696, 1697, 246, 247, 248, 1698, 249, 250,
+ 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
+ 261, 1699, 262, 263, 264, 265, 266, 267, 268, 1700,
+ 1701, 269, 270, 271, 272, 273, 1702, 274, 275, 276,
+ 277, 278, 1703, 279, 1704, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 1705, 290, 291, 292, 293,
+ 294, 295, 1706, 296, 297, 298, 299, 1707, 1708, 1709,
+ 300, 1710, 1711, 1712, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, 1713, 310, 1714, 311, 312, 313, 314,
+ 315, 316, 317, 1715, 318, 319, 320, 321, 1716, 1717,
+ 322, 323, 324, 325, 326, 1718, 327, 328, 329, 1719,
+ 330, 331, 332, 1720, 333, 334, 335, 336, 337, 338,
+ 339, 340, 341, 342, 1721, 343, 1722, 344, 345, 346,
+ 347, 348, 1723, 349, 1724, 350, 351, 1725, 352, 353,
+ 354, 355, 356, 1726, 357, 358, 1727, 359, 360, 361,
+ 1728, 362, 363, 364, 365, 366, 367, 368, 369, 370,
+ 371, 1729, 372, 373, 374, 375, 376, 377, 378, 1730,
+ 379, 380, 381, 382, 383, 384, 385, 386, 387, 1731,
+ 388, 1732, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 1733, 1734, 399, 400, 401, 402, 403, 1735,
+ 404, 405, 406, 1736, 1737, 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, 1738, 438, 439, 440,
+ 441, 1739, 442, 443, 444, 445, 446, 447, 1740, 448,
+ 449, 1741, 1742, 450, 451, 452, 1743, 1744, 453, 454,
+ 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 1745, 470, 471, 472, 473,
+ 474, 475, 476, 477, 1746, 478, 479, 480, 481, 482,
+ 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
+ 1747, 493, 494, 495, 496, 497, 498, 499, 500, 501,
+ 502, 503, 504, 505, 1748, 506, 507, 508, 509, 510,
+ 511, 512, 513, 514, 515, 516, 517, 518, 519, 520,
+ 521, 522, 523, 1749, 524, 525, 526, 527, 528, 1750,
+ 529, 530, 531, 532, 533, 534, 535, 536, 537, 538,
+ 1751, 539, 540, 541, 542, 543, 544, 545, 546, 547,
+ 548, 549, 550, 551, 552, 553, 1752, 554, 555, 1753,
+ 556, 557, 558, 559, 560, 561, 562, 1754, 563, 564,
+ 565, 1755, 1756, 566, 567, 568, 569, 570, 1757, 571,
+ 572, 573, 574, 575, 576, 577, 578, 1758, 1759, 579,
+ 580, 581, 582, 583, 1760, 1761, 584, 585, 586, 587,
+ 588, 589, 590, 1762, 591, 592, 593, 594, 595, 596,
+ 1763, 1764, 597, 1765, 1766, 598, 599, 600, 601, 602,
+ 603, 604, 605, 606, 607, 608, 609, 610, 611, 612,
+ 613, 614, 615, 616, 617, 1689, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 235, 236, 237, 238, 3531, 240, 241, 242,
+ 1690, 243, 244, 245, 1691, 1692, 1693, 1694, 1695, 1696,
+ 1697, 246, 247, 248, 1698, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 258, 259, 260, 261, 1699, 262,
+ 263, 264, 265, 266, 267, 268, 1700, 1701, 269, 270,
+ 271, 272, 273, 1702, 274, 275, 276, 277, 278, 1703,
+ 279, 1704, 280, 281, 282, 283, 284, 285, 286, 287,
+ 288, 289, 1705, 290, 291, 292, 293, 294, 295, 1706,
+ 296, 297, 298, 299, 1707, 1708, 1709, 300, 1710, 1711,
+ 1712, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ 1713, 310, 1714, 311, 312, 313, 314, 315, 316, 317,
+ 1715, 318, 319, 320, 321, 1716, 1717, 322, 323, 324,
+ 3532, 326, 1718, 327, 328, 329, 1719, 330, 331, 332,
+ 1720, 333, 334, 335, 336, 337, 338, 339, 340, 341,
+ 342, 1721, 343, 1722, 344, 345, 346, 347, 348, 1723,
+ 349, 1724, 350, 351, 1725, 352, 353, 354, 355, 356,
+ 1726, 357, 358, 1727, 359, 360, 361, 1728, 362, 363,
+ 364, 365, 366, 367, 368, 369, 370, 371, 1729, 372,
+ 373, 374, 375, 376, 377, 378, 1730, 379, 380, 381,
+ 382, 383, 384, 385, 386, 387, 1731, 388, 1732, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 1733,
+ 1734, 399, 400, 401, 402, 403, 1735, 404, 405, 406,
+ 1736, 1737, 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, 1738, 438, 439, 440, 441, 1739, 442,
+ 443, 444, 445, 446, 447, 1740, 448, 449, 1741, 1742,
+ 450, 451, 452, 1743, 1744, 453, 454, 455, 456, 457,
+ 458, 459, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 1745, 470, 471, 472, 473, 474, 475, 476,
+ 477, 1746, 478, 479, 480, 481, 482, 483, 484, 485,
+ 486, 487, 488, 489, 490, 491, 492, 1747, 493, 494,
+ 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
+ 505, 1748, 506, 507, 508, 509, 510, 511, 512, 513,
+ 514, 515, 516, 517, 518, 519, 520, 521, 522, 523,
+ 1749, 524, 525, 526, 527, 528, 1750, 3533, 530, 531,
+ 532, 533, 534, 535, 536, 537, 538, 1751, 539, 540,
+ 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
+ 551, 552, 553, 1752, 554, 555, 1753, 556, 557, 558,
+ 559, 560, 561, 562, 1754, 563, 564, 565, 1755, 1756,
+ 566, 567, 568, 569, 570, 1757, 571, 572, 573, 574,
+ 575, 576, 577, 578, 1758, 1759, 579, 580, 581, 582,
+ 583, 1760, 1761, 584, 585, 586, 587, 588, 589, 590,
+ 1762, 591, 592, 593, 594, 595, 596, 1763, 1764, 597,
+ 1765, 1766, 598, 599, 600, 601, 602, 603, 604, 605,
+ 606, 607, 608, 609, 610, 611, 612, 613, 614, 615,
+ 616, 617, 234, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
+ 236, 237, 238, 239, 240, 241, 242, 0, 243, 244,
+ 245, 0, 0, 0, 0, 0, 0, 0, 246, 247,
+ 248, 0, 249, 250, 251, 252, 253, 254, 255, 256,
+ 257, 258, 259, 260, 261, 0, 262, 263, 264, 265,
+ 266, 267, 268, 0, 1246, 269, 270, 271, 272, 273,
+ 0, 274, 275, 276, 277, 1249, 0, 1250, 0, 280,
+ 281, 282, 283, 284, 285, 286, 287, 288, 289, 0,
+ 290, 291, 292, 293, 294, 295, 0, 296, 297, 298,
+ 299, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, 0, 310, 0,
+ 311, 312, 313, 314, 315, 316, 317, 0, 318, 319,
+ 320, 321, 0, 0, 322, 323, 324, 325, 326, 0,
+ 327, 328, 329, 0, 330, 331, 332, 0, 333, 334,
+ 335, 336, 337, 338, 339, 340, 341, 1262, 0, 343,
+ 0, 344, 345, 346, 347, 348, 0, 349, 0, 350,
+ 351, 0, 352, 353, 354, 355, 356, 0, 357, 1265,
+ 0, 359, 360, 361, 0, 362, 363, 364, 365, 366,
+ 367, 368, 369, 370, 371, 0, 372, 373, 374, 375,
+ 376, 377, 378, 0, 379, 380, 381, 382, 383, 384,
+ 385, 386, 387, 0, 388, 0, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 0, 0, 399, 1270,
+ 401, 402, 403, 0, 404, 405, 406, 1271, 1272, 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, 1275, 437,
+ 0, 438, 439, 440, 441, 0, 1278, 443, 444, 445,
+ 446, 447, 0, 448, 449, 0, 0, 450, 451, 452,
+ 0, 0, 453, 454, 455, 456, 457, 458, 1281, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 0,
+ 470, 471, 1282, 473, 474, 475, 476, 477, 0, 478,
+ 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
+ 489, 490, 491, 492, 0, 493, 494, 495, 496, 497,
+ 498, 499, 500, 501, 502, 503, 504, 505, 0, 506,
+ 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
+ 517, 518, 519, 520, 521, 522, 523, 0, 524, 525,
+ 526, 527, 528, 1285, 529, 530, 531, 532, 533, 534,
+ 535, 536, 537, 538, 0, 539, 540, 541, 542, 543,
+ 544, 545, 546, 547, 548, 549, 550, 551, 1287, 553,
+ 0, 554, 555, 0, 556, 557, 558, 559, 560, 561,
+ 562, 0, 563, 564, 565, 0, 0, 566, 567, 1290,
+ 569, 1291, 0, 571, 572, 573, 574, 575, 576, 577,
+ 578, 0, 0, 579, 580, 581, 582, 583, 1294, 0,
+ 584, 585, 586, 587, 588, 589, 590, 0, 591, 592,
+ 593, 594, 595, 596, 0, 0, 597, 0, 0, 598,
+ 599, 600, 601, 602, 603, 604, 1296, 1297, 1298, 1299,
+ 609, 1300, 1301, 1302, 1303, 614, 615, 616, 617, 234,
+ 0, 1236, 684, 0, 1237, 1238, 0, 745, 0, 0,
+ 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
+ 239, 240, 241, 242, 0, 243, 244, 245, 0, 0,
+ 0, 0, 0, 0, 0, 246, 247, 248, 0, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 1242, 259,
+ 1243, 1244, 0, 262, 263, 264, 265, 266, 267, 268,
+ 0, 0, 269, 270, 1247, 1248, 273, 0, 274, 275,
+ 276, 277, 278, 0, 279, 0, 280, 281, 282, 283,
+ 284, 285, 286, 287, 288, 289, 0, 290, 291, 292,
+ 293, 294, 295, 0, 296, 297, 298, 299, 0, 0,
+ 0, 300, 0, 0, 0, 301, 302, 303, 304, 305,
+ 306, 1258, 1259, 309, 0, 310, 0, 311, 312, 313,
+ 314, 315, 316, 317, 0, 318, 319, 320, 321, 0,
+ 0, 322, 323, 860, 325, 326, 0, 327, 328, 329,
+ 0, 330, 331, 332, 0, 333, 334, 335, 336, 337,
+ 338, 339, 340, 341, 342, 1263, 343, 0, 344, 345,
+ 346, 1264, 348, 0, 349, 0, 350, 351, 0, 352,
+ 353, 354, 355, 356, 0, 357, 358, 0, 359, 360,
+ 361, 0, 362, 363, 364, 365, 366, 367, 368, 369,
+ 370, 371, 0, 372, 373, 374, 375, 376, 377, 378,
+ 0, 379, 380, 381, 382, 383, 384, 385, 1267, 1268,
+ 0, 1269, 0, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, 0, 0, 399, 400, 401, 402, 403,
+ 0, 404, 405, 406, 0, 0, 407, 408, 409, 410,
+ 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
+ 421, 422, 423, 424, 1273, 426, 1274, 428, 429, 430,
+ 431, 432, 433, 434, 435, 436, 437, 0, 438, 439,
+ 440, 441, 1277, 442, 443, 1279, 445, 446, 447, 0,
+ 448, 449, 0, 0, 450, 451, 452, 0, 0, 453,
+ 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 0, 470, 471, 472,
+ 473, 474, 475, 476, 477, 0, 478, 479, 480, 481,
+ 482, 483, 484, 485, 486, 487, 1283, 489, 490, 491,
+ 492, 0, 493, 494, 495, 496, 497, 498, 499, 500,
+ 501, 502, 503, 504, 505, 0, 506, 507, 508, 509,
+ 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
+ 520, 521, 522, 523, 0, 524, 525, 526, 527, 528,
+ 0, 529, 530, 531, 532, 533, 534, 535, 536, 1286,
+ 538, 0, 539, 540, 541, 542, 543, 544, 545, 546,
+ 547, 548, 549, 550, 551, 552, 553, 0, 554, 555,
+ 0, 556, 557, 558, 559, 560, 561, 562, 0, 563,
+ 1288, 1289, 0, 0, 566, 567, 568, 569, 570, 1292,
+ 571, 572, 573, 574, 575, 576, 577, 578, 0, 0,
+ 579, 580, 581, 582, 583, 0, 0, 584, 585, 586,
+ 587, 588, 589, 1295, 0, 591, 592, 593, 594, 595,
+ 596, 0, 0, 597, 0, 0, 598, 599, 600, 601,
+ 602, 603, 604, 605, 606, 607, 608, 609, 610, 611,
+ 612, 613, 614, 615, 616, 617, 938, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
+ 242, 977, 243, 244, 245, 0, 0, 0, 0, 0,
+ 0, 0, 246, 247, 248, 0, 249, 250, 251, 252,
+ 253, 254, 255, 256, 257, 258, 259, 260, 261, 0,
+ 262, 263, 264, 265, 266, 267, 268, 0, 0, 269,
+ 270, 271, 272, 273, 0, 274, 275, 276, 277, 278,
+ 0, 279, 0, 280, 281, 282, 283, 284, 285, 286,
+ 287, 288, 289, 0, 290, 291, 292, 293, 294, 295,
+ 0, 296, 297, 298, 299, 0, 0, 939, 300, 0,
+ 0, 940, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, 0, 310, 0, 311, 312, 313, 314, 315, 316,
+ 317, 0, 318, 319, 320, 321, 0, 0, 322, 323,
+ 324, 325, 326, 0, 327, 328, 329, 0, 330, 331,
+ 332, 0, 333, 334, 335, 336, 337, 338, 339, 340,
+ 341, 342, 0, 343, 0, 344, 345, 346, 347, 348,
+ 0, 349, 0, 350, 351, 0, 352, 353, 354, 355,
+ 356, 0, 357, 358, 0, 359, 360, 361, 0, 362,
+ 363, 364, 365, 366, 367, 368, 369, 370, 371, 0,
+ 372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
+ 381, 382, 383, 384, 385, 386, 387, 0, 388, 0,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 0, 0, 399, 400, 401, 402, 403, 0, 404, 405,
+ 406, 0, 0, 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, 0, 438, 439, 440, 441, 0,
+ 442, 443, 444, 445, 446, 447, 0, 448, 449, 0,
+ 0, 450, 451, 452, 0, 0, 453, 454, 455, 456,
+ 457, 458, 459, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 0, 470, 471, 472, 473, 474, 475,
+ 476, 477, 0, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 488, 489, 490, 491, 492, 0, 493,
+ 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
+ 504, 505, 0, 506, 507, 508, 509, 510, 511, 512,
+ 513, 514, 515, 516, 517, 518, 519, 520, 521, 522,
+ 523, 0, 524, 525, 526, 527, 528, 941, 529, 530,
+ 531, 532, 533, 534, 535, 536, 537, 538, 0, 539,
+ 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
+ 550, 551, 552, 553, 0, 554, 555, 0, 556, 557,
+ 558, 559, 560, 561, 562, 0, 563, 564, 565, 0,
+ 0, 566, 567, 568, 569, 570, 0, 571, 572, 573,
+ 574, 575, 576, 577, 578, 0, 0, 579, 580, 581,
+ 582, 583, 0, 0, 584, 585, 586, 587, 588, 589,
+ 590, 0, 591, 592, 593, 594, 595, 596, 0, 0,
+ 597, 0, 0, 598, 599, 600, 601, 602, 603, 604,
+ 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
+ 615, 616, 617, 938, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 235, 236, 237, 238, 239, 240, 241, 242, 998, 243,
+ 244, 245, 0, 0, 0, 0, 0, 0, 0, 246,
+ 247, 248, 0, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 258, 259, 260, 261, 0, 262, 263, 264,
+ 265, 266, 267, 268, 0, 0, 269, 270, 271, 272,
+ 273, 0, 274, 275, 276, 277, 278, 0, 279, 0,
+ 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 0, 290, 291, 292, 293, 294, 295, 0, 296, 297,
+ 298, 299, 0, 0, 939, 300, 0, 0, 940, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 0, 310,
+ 0, 311, 312, 313, 314, 315, 316, 317, 0, 318,
+ 319, 320, 321, 0, 0, 322, 323, 324, 325, 326,
+ 0, 327, 328, 329, 0, 330, 331, 332, 0, 333,
+ 334, 335, 336, 337, 338, 339, 340, 341, 342, 0,
+ 343, 0, 344, 345, 346, 347, 348, 0, 349, 0,
+ 350, 351, 0, 352, 353, 354, 355, 356, 0, 357,
+ 358, 0, 359, 360, 361, 0, 362, 363, 364, 365,
+ 366, 367, 368, 369, 370, 371, 0, 372, 373, 374,
+ 375, 376, 377, 378, 0, 379, 380, 381, 382, 383,
+ 384, 385, 386, 387, 0, 388, 0, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 0, 0, 399,
+ 400, 401, 402, 403, 0, 404, 405, 406, 0, 0,
+ 407, 408, 409, 410, 999, 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, 0, 438, 439, 440, 441, 0, 442, 443, 444,
+ 445, 446, 447, 0, 448, 449, 0, 0, 450, 451,
+ 452, 0, 0, 453, 454, 455, 456, 457, 458, 459,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 0, 470, 471, 472, 473, 474, 475, 476, 477, 0,
+ 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
+ 488, 489, 490, 491, 492, 0, 493, 494, 495, 496,
+ 497, 498, 499, 500, 501, 502, 503, 504, 505, 0,
+ 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
+ 516, 517, 518, 519, 520, 521, 522, 523, 0, 524,
+ 525, 526, 527, 528, 941, 529, 530, 531, 532, 533,
+ 534, 535, 536, 537, 538, 0, 539, 540, 541, 542,
+ 543, 544, 545, 546, 547, 548, 549, 550, 551, 552,
+ 553, 0, 554, 555, 0, 556, 557, 558, 559, 560,
+ 561, 562, 0, 563, 564, 565, 0, 0, 566, 567,
+ 568, 569, 570, 0, 571, 572, 573, 574, 575, 576,
+ 577, 578, 0, 0, 579, 580, 581, 582, 583, 0,
+ 0, 584, 585, 586, 587, 588, 589, 590, 0, 591,
+ 592, 593, 594, 595, 596, 0, 0, 597, 0, 0,
+ 598, 599, 600, 601, 602, 603, 604, 605, 606, 607,
+ 608, 609, 610, 611, 612, 613, 614, 615, 616, 617,
+ 938, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
+ 238, 239, 240, 241, 242, 0, 243, 244, 245, 0,
+ 0, 0, 0, 0, 0, 0, 246, 247, 248, 0,
+ 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ 259, 260, 261, 0, 262, 263, 264, 265, 266, 267,
+ 268, 0, 0, 269, 270, 271, 272, 273, 0, 274,
+ 275, 276, 277, 278, 0, 279, 0, 280, 281, 282,
+ 283, 284, 285, 286, 287, 288, 289, 0, 290, 291,
+ 292, 293, 294, 295, 0, 296, 297, 298, 299, 0,
+ 0, 939, 300, 0, 0, 940, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, 0, 310, 0, 311, 312,
+ 313, 314, 315, 316, 317, 0, 318, 319, 320, 321,
+ 0, 0, 322, 323, 324, 325, 326, 0, 327, 328,
+ 329, 0, 330, 331, 332, 0, 333, 334, 335, 336,
+ 337, 338, 339, 340, 341, 342, 0, 343, 0, 344,
+ 345, 346, 347, 348, 0, 349, 0, 350, 351, 0,
+ 352, 353, 354, 355, 356, 0, 357, 358, 0, 359,
+ 360, 361, 0, 362, 363, 364, 365, 366, 367, 368,
+ 369, 370, 371, 0, 372, 373, 374, 375, 376, 377,
+ 378, 0, 379, 380, 381, 382, 383, 384, 385, 386,
+ 387, 0, 388, 0, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 0, 0, 399, 400, 401, 402,
+ 403, 0, 404, 405, 406, 0, 0, 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, 0, 438,
+ 439, 440, 441, 0, 442, 443, 444, 445, 446, 447,
+ 0, 448, 449, 0, 0, 450, 451, 452, 0, 0,
+ 453, 454, 455, 456, 457, 458, 459, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 0, 470, 471,
+ 472, 473, 474, 475, 476, 477, 0, 478, 479, 480,
+ 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
+ 491, 492, 0, 493, 494, 495, 496, 497, 498, 499,
+ 500, 501, 502, 503, 504, 505, 0, 506, 507, 508,
+ 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
+ 519, 520, 521, 522, 523, 0, 524, 525, 526, 527,
+ 528, 941, 529, 530, 531, 532, 533, 534, 535, 536,
+ 537, 538, 0, 539, 540, 541, 542, 543, 544, 545,
+ 546, 547, 548, 549, 550, 551, 552, 553, 0, 554,
+ 555, 0, 556, 557, 558, 559, 560, 561, 562, 0,
+ 563, 564, 565, 0, 0, 566, 567, 568, 569, 570,
+ 0, 571, 572, 573, 574, 575, 576, 577, 578, 0,
+ 0, 579, 580, 581, 582, 583, 2897, 0, 584, 585,
+ 586, 587, 588, 589, 590, 0, 591, 592, 593, 594,
+ 595, 596, 0, 0, 597, 0, 0, 598, 599, 600,
+ 601, 602, 603, 604, 605, 606, 607, 608, 609, 610,
+ 611, 612, 613, 614, 615, 616, 617, 938, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
+ 241, 242, 0, 243, 244, 245, 0, 0, 0, 0,
+ 0, 0, 0, 246, 247, 248, 0, 249, 250, 251,
+ 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 0, 262, 263, 264, 265, 266, 267, 268, 0, 0,
+ 269, 270, 271, 272, 273, 0, 274, 275, 276, 277,
+ 278, 0, 279, 0, 280, 281, 282, 283, 284, 285,
+ 286, 287, 288, 289, 0, 290, 291, 292, 293, 294,
+ 295, 0, 296, 297, 298, 299, 0, 0, 939, 300,
+ 0, 0, 940, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, 0, 310, 0, 311, 312, 313, 314, 315,
+ 316, 317, 0, 318, 319, 320, 321, 0, 0, 322,
+ 323, 324, 325, 326, 0, 327, 328, 329, 0, 330,
+ 331, 332, 0, 333, 334, 335, 336, 337, 338, 339,
+ 340, 341, 342, 0, 343, 0, 344, 345, 346, 347,
+ 348, 0, 349, 0, 350, 351, 0, 352, 353, 354,
+ 355, 356, 0, 357, 358, 3881, 359, 360, 361, 0,
+ 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
+ 0, 372, 373, 374, 375, 376, 377, 378, 0, 379,
+ 380, 381, 382, 383, 384, 385, 386, 387, 0, 388,
+ 0, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 0, 0, 399, 400, 401, 402, 403, 0, 404,
+ 405, 406, 0, 0, 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, 0, 438, 439, 440, 441,
+ 0, 442, 443, 444, 445, 446, 447, 0, 448, 449,
+ 0, 0, 450, 451, 452, 0, 0, 453, 454, 455,
+ 456, 457, 458, 459, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 0, 470, 471, 472, 473, 474,
+ 475, 476, 477, 0, 478, 479, 480, 481, 482, 483,
+ 484, 485, 486, 487, 488, 489, 490, 491, 492, 0,
+ 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
+ 503, 504, 505, 0, 506, 507, 508, 509, 510, 511,
+ 512, 513, 514, 515, 516, 517, 518, 519, 520, 521,
+ 522, 523, 0, 524, 525, 526, 527, 528, 941, 529,
+ 530, 531, 532, 533, 534, 535, 536, 537, 538, 0,
+ 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
+ 549, 550, 551, 552, 553, 0, 554, 555, 0, 556,
+ 557, 558, 559, 560, 561, 562, 0, 563, 564, 565,
+ 0, 0, 566, 567, 568, 569, 570, 0, 571, 572,
+ 573, 574, 575, 576, 577, 578, 0, 0, 579, 580,
+ 581, 582, 583, 0, 0, 584, 585, 586, 587, 588,
+ 589, 590, 0, 591, 592, 593, 594, 595, 596, 0,
+ 0, 597, 0, 0, 598, 599, 600, 601, 602, 603,
+ 604, 605, 606, 607, 608, 609, 610, 611, 612, 613,
+ 614, 615, 616, 617, 938, 0, 0, 684, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 235, 236, 237, 238, 239, 240, 241, 242, 0,
+ 243, 244, 245, 0, 0, 0, 0, 0, 0, 0,
+ 246, 247, 248, 0, 249, 250, 251, 252, 253, 254,
+ 255, 256, 257, 258, 259, 260, 261, 0, 262, 263,
+ 264, 265, 266, 267, 268, 0, 0, 269, 270, 271,
+ 272, 273, 0, 274, 275, 276, 277, 278, 0, 279,
+ 0, 280, 281, 282, 283, 284, 285, 286, 287, 288,
+ 289, 0, 290, 291, 292, 293, 294, 295, 0, 296,
+ 297, 298, 299, 0, 0, 0, 300, 0, 0, 0,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, 0,
+ 310, 0, 311, 312, 313, 314, 315, 316, 317, 0,
+ 318, 319, 320, 321, 0, 0, 322, 323, 324, 325,
+ 326, 0, 327, 328, 329, 0, 330, 331, 332, 0,
+ 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
+ 1777, 343, 0, 344, 345, 346, 347, 348, 0, 349,
+ 0, 350, 351, 0, 352, 353, 354, 355, 356, 0,
+ 357, 358, 0, 359, 360, 361, 0, 362, 363, 364,
+ 365, 366, 367, 368, 369, 370, 371, 0, 372, 373,
+ 374, 375, 376, 377, 378, 0, 379, 380, 381, 382,
+ 383, 384, 385, 386, 387, 0, 388, 0, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, 0, 0,
+ 399, 400, 401, 402, 403, 0, 404, 405, 406, 0,
+ 0, 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, 0, 438, 439, 440, 441, 0, 442, 443,
+ 444, 445, 446, 447, 0, 448, 449, 1778, 0, 450,
+ 451, 452, 0, 0, 453, 454, 455, 456, 457, 458,
+ 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 0, 470, 471, 472, 473, 474, 475, 476, 477,
+ 0, 478, 479, 480, 481, 482, 483, 484, 485, 486,
+ 487, 488, 489, 490, 491, 492, 0, 493, 494, 495,
+ 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
+ 0, 506, 507, 508, 509, 510, 511, 512, 513, 514,
+ 515, 516, 517, 518, 519, 520, 521, 522, 523, 0,
+ 524, 525, 526, 527, 528, 0, 529, 530, 531, 532,
+ 533, 534, 535, 536, 537, 538, 0, 539, 540, 541,
+ 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
+ 552, 553, 0, 554, 555, 0, 556, 557, 558, 559,
+ 560, 561, 562, 0, 563, 564, 565, 0, 0, 566,
+ 567, 568, 569, 570, 1779, 571, 572, 573, 574, 575,
+ 576, 577, 578, 0, 0, 579, 580, 581, 582, 583,
+ 0, 0, 584, 585, 586, 587, 588, 589, 590, 0,
+ 591, 592, 593, 594, 595, 596, 0, 0, 597, 0,
+ 0, 598, 599, 600, 601, 602, 603, 604, 605, 606,
+ 607, 608, 609, 610, 611, 612, 613, 614, 615, 616,
+ 617, 938, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
+ 237, 238, 239, 240, 241, 242, 0, 243, 244, 245,
+ 0, 0, 0, 0, 0, 0, 0, 246, 247, 248,
+ 0, 249, 250, 251, 252, 253, 254, 255, 256, 257,
+ 258, 259, 260, 261, 0, 262, 263, 264, 265, 266,
+ 267, 268, 0, 0, 269, 270, 271, 272, 273, 0,
+ 274, 275, 276, 277, 278, 0, 279, 0, 280, 281,
+ 282, 283, 284, 285, 286, 287, 288, 289, 0, 290,
+ 291, 292, 293, 294, 295, 0, 296, 297, 298, 299,
+ 0, 0, 939, 300, 0, 0, 940, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, 0, 310, 0, 311,
+ 312, 313, 314, 315, 316, 317, 0, 318, 319, 320,
+ 321, 0, 0, 322, 323, 324, 325, 326, 0, 327,
+ 328, 329, 0, 330, 331, 332, 0, 333, 334, 335,
+ 336, 337, 338, 339, 340, 341, 342, 0, 343, 0,
+ 344, 345, 346, 347, 348, 0, 349, 0, 350, 351,
+ 0, 352, 353, 354, 355, 356, 0, 357, 358, 0,
+ 359, 360, 361, 0, 362, 363, 364, 365, 366, 367,
+ 368, 369, 370, 371, 0, 372, 373, 374, 375, 376,
+ 377, 378, 0, 379, 380, 381, 382, 383, 384, 385,
+ 386, 387, 0, 388, 0, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 0, 0, 399, 400, 401,
+ 402, 403, 0, 404, 405, 406, 0, 0, 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, 0,
+ 438, 439, 440, 441, 0, 442, 443, 444, 445, 446,
+ 447, 0, 448, 449, 0, 0, 450, 451, 452, 0,
+ 0, 453, 454, 455, 456, 457, 458, 459, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 0, 470,
+ 471, 472, 473, 474, 475, 476, 477, 0, 478, 479,
+ 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
+ 490, 491, 492, 0, 493, 494, 495, 496, 497, 498,
+ 499, 500, 501, 502, 503, 504, 505, 0, 506, 507,
+ 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
+ 518, 519, 520, 521, 522, 523, 0, 524, 525, 526,
+ 527, 528, 941, 529, 530, 531, 532, 533, 534, 535,
+ 536, 537, 538, 0, 539, 540, 541, 542, 543, 544,
+ 545, 546, 547, 548, 549, 550, 551, 552, 553, 0,
+ 554, 555, 0, 556, 557, 558, 559, 560, 561, 562,
+ 0, 563, 564, 565, 0, 0, 566, 567, 568, 569,
+ 570, 0, 571, 572, 573, 574, 575, 576, 577, 578,
+ 0, 0, 579, 580, 581, 582, 583, 0, 0, 584,
+ 585, 586, 587, 588, 589, 590, 0, 591, 592, 593,
+ 594, 595, 596, 0, 0, 597, 0, 0, 598, 599,
+ 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
+ 610, 611, 612, 613, 614, 615, 616, 617, 938, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
+ 240, 241, 242, 0, 243, 244, 245, 0, 0, 0,
+ 0, 0, 0, 0, 246, 247, 248, 0, 249, 250,
+ 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
+ 261, 0, 262, 263, 264, 265, 266, 267, 268, 0,
+ 0, 269, 270, 271, 272, 273, 0, 274, 275, 276,
+ 277, 278, 0, 279, 0, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 0, 290, 291, 292, 293,
+ 294, 295, 0, 296, 297, 298, 299, 0, 0, 939,
+ 300, 0, 0, 940, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, 0, 310, 0, 311, 312, 313, 314,
+ 315, 316, 317, 0, 318, 319, 320, 321, 0, 0,
+ 322, 323, 324, 325, 326, 0, 327, 328, 329, 0,
+ 330, 331, 332, 0, 333, 334, 335, 336, 337, 338,
+ 339, 340, 341, 342, 0, 343, 0, 344, 345, 346,
+ 347, 348, 0, 349, 0, 350, 351, 0, 352, 353,
+ 354, 355, 356, 0, 357, 358, 0, 359, 360, 361,
+ 0, 362, 363, 364, 365, 366, 367, 368, 369, 370,
+ 371, 0, 372, 373, 374, 375, 376, 377, 378, 0,
+ 379, 380, 381, 382, 383, 384, 385, 386, 387, 0,
+ 388, 0, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 0, 0, 399, 400, 401, 402, 403, 0,
+ 404, 405, 406, 0, 0, 407, 408, 409, 410, 1091,
+ 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, 0, 438, 439, 440,
+ 441, 0, 442, 443, 444, 445, 446, 447, 0, 448,
+ 449, 0, 0, 450, 451, 452, 0, 0, 453, 454,
+ 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 0, 470, 471, 472, 473,
+ 474, 475, 476, 477, 0, 478, 479, 480, 481, 482,
+ 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
+ 0, 493, 494, 495, 496, 497, 498, 499, 500, 501,
+ 502, 503, 504, 505, 0, 506, 507, 508, 509, 510,
+ 511, 512, 513, 514, 515, 516, 517, 518, 519, 520,
+ 521, 522, 523, 0, 524, 525, 526, 527, 528, 941,
+ 529, 530, 531, 532, 533, 534, 535, 536, 537, 538,
+ 0, 539, 540, 541, 542, 543, 544, 545, 546, 547,
+ 548, 549, 550, 551, 552, 553, 0, 554, 555, 0,
+ 556, 557, 558, 559, 560, 561, 562, 0, 563, 564,
+ 565, 0, 0, 566, 567, 568, 569, 570, 0, 571,
+ 572, 573, 574, 575, 576, 577, 578, 0, 0, 579,
+ 580, 581, 582, 583, 0, 0, 584, 585, 586, 587,
+ 588, 589, 590, 0, 591, 592, 593, 594, 595, 596,
+ 0, 0, 597, 0, 0, 598, 599, 600, 601, 602,
+ 603, 604, 605, 606, 607, 608, 609, 610, 611, 612,
+ 613, 614, 615, 616, 617, 938, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
+ 0, 243, 244, 245, 0, 0, 0, 0, 0, 0,
+ 0, 246, 247, 248, 0, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 258, 259, 260, 261, 0, 262,
+ 263, 264, 265, 266, 267, 268, 0, 0, 269, 270,
+ 271, 272, 273, 0, 274, 275, 276, 277, 278, 0,
+ 279, 0, 280, 281, 282, 283, 284, 285, 286, 287,
+ 288, 289, 0, 290, 291, 292, 293, 294, 295, 0,
+ 296, 297, 298, 299, 0, 0, 939, 300, 0, 0,
+ 940, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ 0, 310, 0, 311, 312, 313, 314, 315, 316, 317,
+ 0, 318, 319, 320, 321, 0, 0, 322, 323, 324,
+ 325, 326, 0, 327, 328, 329, 0, 330, 331, 332,
+ 0, 333, 334, 335, 336, 337, 338, 339, 340, 341,
+ 342, 0, 343, 0, 344, 345, 346, 347, 348, 0,
+ 349, 0, 350, 351, 0, 352, 353, 354, 355, 356,
+ 0, 357, 358, 0, 359, 360, 361, 0, 362, 363,
+ 364, 365, 1133, 367, 368, 369, 370, 371, 0, 372,
+ 373, 374, 375, 376, 377, 378, 0, 379, 380, 381,
+ 382, 383, 384, 385, 386, 387, 0, 388, 0, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 0,
+ 0, 399, 400, 401, 402, 403, 0, 404, 405, 406,
+ 0, 0, 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, 0, 438, 439, 440, 441, 0, 442,
+ 443, 444, 445, 446, 447, 0, 448, 449, 0, 0,
+ 450, 451, 452, 0, 0, 453, 454, 455, 456, 457,
+ 458, 459, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 0, 470, 471, 472, 473, 474, 475, 476,
+ 477, 0, 478, 479, 480, 481, 482, 483, 484, 485,
+ 486, 487, 488, 489, 490, 491, 492, 0, 493, 494,
+ 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
+ 505, 0, 506, 507, 508, 509, 510, 511, 512, 513,
+ 514, 515, 516, 517, 518, 519, 520, 521, 522, 523,
+ 0, 524, 525, 526, 527, 528, 941, 529, 530, 531,
+ 532, 533, 534, 535, 536, 537, 538, 0, 539, 540,
+ 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
+ 551, 552, 553, 0, 554, 555, 0, 556, 557, 558,
+ 559, 560, 561, 562, 0, 563, 564, 565, 0, 0,
+ 566, 567, 568, 569, 570, 0, 571, 572, 573, 574,
+ 575, 576, 577, 578, 0, 0, 579, 580, 581, 582,
+ 583, 0, 0, 584, 585, 586, 587, 588, 589, 590,
+ 0, 591, 592, 593, 594, 595, 596, 0, 0, 597,
+ 0, 0, 598, 599, 600, 601, 602, 603, 604, 605,
+ 606, 607, 608, 609, 610, 611, 612, 613, 614, 615,
+ 616, 617, 938, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
+ 236, 237, 238, 239, 240, 241, 242, 0, 243, 244,
+ 245, 0, 0, 0, 0, 0, 0, 0, 246, 247,
+ 248, 0, 249, 250, 251, 252, 253, 254, 255, 256,
+ 257, 258, 259, 260, 261, 0, 262, 263, 264, 265,
+ 266, 267, 268, 0, 0, 269, 270, 271, 272, 273,
+ 0, 274, 275, 276, 277, 278, 0, 279, 0, 280,
+ 281, 282, 283, 284, 285, 286, 287, 288, 289, 0,
+ 290, 291, 292, 293, 294, 295, 0, 296, 297, 298,
+ 299, 0, 0, 939, 300, 0, 0, 940, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, 0, 310, 0,
+ 311, 312, 313, 314, 315, 316, 317, 0, 318, 319,
+ 320, 321, 0, 0, 322, 323, 324, 325, 326, 0,
+ 327, 328, 329, 0, 330, 331, 332, 0, 333, 334,
+ 335, 336, 337, 338, 339, 340, 341, 342, 0, 343,
+ 0, 344, 345, 346, 347, 348, 0, 349, 0, 350,
+ 351, 0, 352, 353, 354, 355, 356, 0, 357, 358,
+ 0, 359, 360, 361, 0, 362, 363, 364, 365, 1146,
+ 367, 368, 369, 370, 371, 0, 372, 373, 374, 375,
+ 376, 377, 378, 0, 379, 380, 381, 382, 383, 384,
+ 385, 386, 387, 0, 388, 0, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 0, 0, 399, 400,
+ 401, 402, 403, 0, 404, 405, 406, 0, 0, 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,
+ 0, 438, 439, 440, 441, 0, 442, 443, 444, 445,
+ 446, 447, 0, 448, 449, 0, 0, 450, 451, 452,
+ 0, 0, 453, 454, 455, 456, 457, 458, 459, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 0,
+ 470, 471, 472, 473, 474, 475, 476, 477, 0, 478,
+ 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
+ 489, 490, 491, 492, 0, 493, 494, 495, 496, 497,
+ 498, 499, 500, 501, 502, 503, 504, 505, 0, 506,
+ 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
+ 517, 518, 519, 520, 521, 522, 523, 0, 524, 525,
+ 526, 527, 528, 941, 529, 530, 531, 532, 533, 534,
+ 535, 536, 537, 538, 0, 539, 540, 541, 542, 543,
+ 544, 545, 546, 547, 548, 549, 550, 551, 552, 553,
+ 0, 554, 555, 0, 556, 557, 558, 559, 560, 561,
+ 562, 0, 563, 564, 565, 0, 0, 566, 567, 568,
+ 569, 570, 0, 571, 572, 573, 574, 575, 576, 577,
+ 578, 0, 0, 579, 580, 581, 582, 583, 0, 0,
+ 584, 585, 586, 587, 588, 589, 590, 0, 591, 592,
+ 593, 594, 595, 596, 0, 0, 597, 0, 0, 598,
+ 599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
+ 609, 610, 611, 612, 613, 614, 615, 616, 617, 938,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
+ 239, 240, 241, 242, 0, 243, 244, 245, 0, 0,
+ 0, 0, 0, 0, 0, 246, 247, 248, 0, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
+ 260, 261, 0, 262, 263, 264, 265, 266, 267, 268,
+ 0, 0, 269, 270, 271, 272, 273, 0, 274, 275,
+ 276, 277, 278, 0, 279, 0, 280, 281, 282, 283,
+ 284, 285, 286, 287, 288, 289, 0, 290, 291, 292,
+ 293, 294, 295, 0, 296, 297, 298, 299, 0, 0,
+ 939, 300, 0, 0, 940, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, 0, 310, 0, 311, 312, 313,
+ 314, 315, 316, 317, 0, 318, 319, 320, 321, 0,
+ 0, 322, 323, 324, 325, 326, 0, 327, 328, 329,
+ 0, 330, 331, 332, 0, 333, 334, 335, 336, 337,
+ 338, 339, 340, 341, 342, 0, 343, 0, 344, 345,
+ 346, 347, 348, 0, 349, 0, 350, 351, 0, 352,
+ 353, 354, 355, 356, 0, 357, 358, 0, 359, 360,
+ 361, 0, 362, 363, 364, 365, 1158, 367, 368, 369,
+ 370, 371, 0, 372, 373, 374, 375, 376, 377, 378,
+ 0, 379, 380, 381, 382, 383, 384, 385, 386, 387,
+ 0, 388, 0, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, 0, 0, 399, 400, 401, 402, 403,
+ 0, 404, 405, 406, 0, 0, 407, 408, 409, 410,
+ 1159, 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, 0, 438, 439,
+ 440, 441, 0, 442, 443, 444, 445, 446, 447, 0,
+ 448, 449, 0, 0, 450, 451, 452, 0, 0, 453,
+ 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 0, 470, 471, 472,
+ 473, 474, 475, 476, 477, 0, 478, 479, 480, 481,
+ 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
+ 492, 0, 493, 494, 495, 496, 497, 498, 499, 500,
+ 501, 502, 503, 504, 505, 0, 506, 507, 508, 509,
+ 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
+ 520, 521, 522, 523, 0, 524, 525, 526, 527, 528,
+ 941, 529, 530, 531, 532, 533, 534, 535, 536, 537,
+ 538, 0, 539, 540, 541, 542, 543, 544, 545, 546,
+ 547, 548, 549, 550, 551, 552, 553, 0, 554, 555,
+ 0, 556, 557, 558, 559, 560, 561, 562, 0, 563,
+ 564, 565, 0, 0, 566, 567, 568, 569, 570, 0,
+ 571, 572, 573, 574, 575, 576, 577, 578, 0, 0,
+ 579, 580, 581, 582, 583, 0, 0, 584, 585, 586,
+ 587, 588, 589, 590, 0, 591, 592, 593, 594, 595,
+ 596, 0, 0, 597, 0, 0, 598, 599, 600, 601,
+ 602, 603, 604, 605, 606, 607, 608, 609, 610, 611,
+ 612, 613, 614, 615, 616, 617, 938, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
+ 242, 0, 243, 244, 245, 3, 4, 0, 0, 0,
+ 0, 0, 246, 247, 248, 0, 249, 250, 251, 252,
+ 253, 254, 255, 256, 257, 258, 259, 260, 261, 0,
+ 262, 263, 264, 265, 266, 267, 268, 0, 0, 269,
+ 270, 271, 272, 273, 0, 274, 275, 276, 277, 278,
+ 0, 279, 0, 280, 281, 282, 283, 284, 285, 286,
+ 287, 288, 289, 0, 290, 291, 292, 293, 294, 295,
+ 0, 296, 297, 298, 299, 0, 0, 0, 300, 0,
+ 0, 0, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, 0, 310, 0, 311, 312, 313, 314, 315, 316,
+ 317, 0, 318, 319, 320, 321, 0, 0, 322, 323,
+ 324, 325, 326, 0, 327, 328, 329, 0, 330, 331,
+ 332, 0, 333, 334, 335, 336, 337, 338, 339, 340,
+ 341, 342, 0, 343, 0, 344, 345, 346, 347, 348,
+ 0, 349, 0, 350, 351, 0, 352, 353, 354, 355,
+ 356, 0, 357, 358, 0, 359, 360, 361, 0, 362,
+ 363, 364, 365, 366, 367, 368, 369, 370, 371, 0,
+ 372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
+ 381, 382, 383, 384, 385, 386, 387, 0, 388, 0,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 0, 0, 399, 400, 401, 402, 403, 0, 404, 405,
+ 406, 0, 0, 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, 0, 438, 439, 440, 441, 0,
+ 442, 443, 444, 445, 446, 447, 0, 448, 449, 0,
+ 0, 450, 451, 452, 0, 0, 453, 454, 455, 456,
+ 457, 458, 459, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 0, 470, 471, 472, 473, 474, 475,
+ 476, 477, 0, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 488, 489, 490, 491, 492, 0, 493,
+ 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
+ 504, 505, 0, 506, 507, 508, 509, 510, 511, 512,
+ 513, 514, 515, 516, 517, 518, 519, 520, 521, 522,
+ 523, 0, 524, 525, 526, 527, 528, 0, 529, 530,
+ 531, 532, 533, 534, 535, 536, 537, 538, 0, 539,
+ 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
+ 550, 551, 552, 553, 0, 554, 555, 0, 556, 557,
+ 558, 559, 560, 561, 562, 0, 563, 564, 565, 0,
+ 0, 566, 567, 568, 569, 570, 0, 571, 572, 573,
+ 574, 575, 576, 577, 578, 0, 0, 579, 580, 581,
+ 582, 583, 0, 0, 584, 585, 586, 587, 588, 589,
+ 590, 0, 591, 592, 593, 594, 595, 596, 0, 0,
+ 597, 0, 0, 598, 599, 600, 601, 602, 603, 604,
+ 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
+ 615, 616, 617, 938, 0, 0, 684, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 235, 236, 237, 238, 239, 240, 241, 242, 0, 243,
+ 244, 245, 0, 0, 0, 0, 0, 0, 0, 246,
+ 247, 248, 0, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 258, 259, 260, 261, 0, 262, 263, 264,
+ 265, 266, 267, 268, 0, 0, 269, 270, 271, 272,
+ 273, 0, 274, 275, 276, 277, 278, 0, 279, 0,
+ 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 0, 290, 291, 292, 293, 294, 295, 0, 296, 297,
+ 298, 299, 0, 0, 0, 300, 0, 0, 0, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 2506, 310,
+ 0, 311, 312, 313, 314, 315, 316, 317, 0, 318,
+ 319, 320, 321, 0, 0, 322, 323, 324, 325, 326,
+ 0, 327, 328, 329, 0, 330, 331, 332, 0, 333,
+ 334, 335, 336, 337, 338, 339, 340, 341, 342, 0,
+ 343, 0, 344, 345, 346, 347, 348, 0, 349, 0,
+ 350, 351, 0, 352, 353, 354, 355, 356, 0, 357,
+ 358, 0, 359, 360, 361, 0, 362, 363, 364, 365,
+ 366, 367, 368, 369, 370, 371, 0, 372, 373, 374,
+ 375, 376, 377, 378, 0, 379, 380, 381, 382, 383,
+ 384, 385, 386, 387, 0, 388, 0, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 0, 0, 399,
+ 400, 401, 402, 403, 0, 404, 405, 406, 0, 0,
+ 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, 0, 438, 439, 440, 441, 0, 442, 443, 444,
+ 445, 446, 447, 0, 448, 449, 0, 0, 450, 451,
+ 452, 0, 0, 453, 454, 455, 456, 457, 458, 459,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 0, 470, 471, 472, 473, 474, 475, 476, 477, 0,
+ 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
+ 488, 489, 490, 491, 492, 0, 493, 494, 495, 496,
+ 497, 498, 499, 500, 501, 502, 503, 504, 505, 0,
+ 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
+ 516, 517, 518, 519, 520, 521, 522, 523, 0, 524,
+ 525, 526, 527, 528, 0, 529, 530, 531, 532, 533,
+ 534, 535, 536, 537, 538, 0, 539, 540, 541, 542,
+ 543, 544, 545, 546, 547, 548, 549, 550, 551, 552,
+ 553, 0, 554, 555, 0, 556, 557, 558, 559, 560,
+ 561, 562, 0, 563, 564, 565, 0, 0, 566, 567,
+ 568, 569, 570, 0, 571, 572, 573, 574, 575, 576,
+ 577, 578, 0, 0, 579, 580, 581, 582, 583, 0,
+ 0, 584, 585, 586, 587, 588, 589, 590, 0, 591,
+ 592, 593, 594, 595, 596, 0, 0, 597, 0, 0,
+ 598, 599, 600, 601, 602, 603, 604, 605, 606, 607,
+ 608, 609, 610, 611, 612, 613, 614, 615, 616, 617,
+ 938, 0, 0, 684, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
+ 238, 239, 240, 241, 242, 0, 243, 244, 245, 0,
+ 0, 0, 0, 0, 0, 0, 246, 247, 248, 0,
+ 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ 259, 260, 261, 0, 262, 263, 264, 265, 266, 267,
+ 268, 0, 0, 269, 270, 271, 272, 273, 0, 274,
+ 275, 276, 277, 278, 0, 279, 0, 280, 281, 282,
+ 283, 284, 285, 286, 287, 288, 289, 0, 290, 291,
+ 292, 293, 294, 295, 0, 296, 297, 298, 299, 0,
+ 0, 0, 300, 0, 0, 0, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, 0, 310, 0, 311, 312,
+ 313, 314, 315, 316, 317, 0, 318, 319, 320, 321,
+ 0, 0, 322, 323, 324, 325, 326, 0, 327, 328,
+ 329, 0, 330, 331, 332, 0, 333, 334, 335, 336,
+ 337, 338, 339, 340, 341, 342, 0, 343, 0, 344,
+ 345, 346, 347, 348, 0, 349, 0, 350, 351, 0,
+ 352, 353, 354, 355, 356, 0, 357, 358, 0, 359,
+ 360, 361, 0, 362, 363, 364, 365, 366, 367, 368,
+ 369, 370, 371, 0, 372, 373, 374, 375, 376, 377,
+ 378, 0, 379, 380, 381, 382, 383, 384, 385, 386,
+ 387, 0, 388, 0, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 0, 0, 399, 400, 401, 402,
+ 403, 0, 404, 405, 406, 0, 0, 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, 0, 438,
+ 439, 440, 441, 0, 442, 443, 444, 445, 446, 447,
+ 0, 448, 449, 0, 0, 450, 451, 452, 0, 0,
+ 453, 454, 455, 456, 457, 458, 459, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 0, 470, 471,
+ 472, 473, 474, 475, 476, 477, 0, 478, 479, 480,
+ 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
+ 491, 492, 0, 493, 494, 495, 496, 497, 498, 499,
+ 500, 501, 502, 503, 504, 505, 0, 506, 507, 508,
+ 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
+ 519, 520, 521, 522, 523, 0, 524, 525, 526, 527,
+ 528, 0, 529, 530, 531, 532, 533, 534, 535, 536,
+ 537, 538, 0, 539, 540, 541, 542, 543, 544, 545,
+ 546, 547, 548, 549, 550, 551, 552, 553, 0, 554,
+ 555, 0, 556, 557, 558, 559, 560, 561, 562, 0,
+ 563, 564, 565, 0, 0, 566, 567, 568, 569, 570,
+ 0, 571, 572, 573, 574, 575, 576, 577, 578, 0,
+ 0, 579, 580, 581, 582, 583, 0, 0, 584, 585,
+ 586, 587, 588, 589, 590, 0, 591, 592, 593, 594,
+ 595, 596, 0, 0, 597, 0, 0, 598, 599, 600,
+ 601, 602, 603, 604, 605, 606, 607, 608, 609, 610,
+ 611, 612, 613, 614, 615, 616, 617, 234, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
+ 241, 242, 0, 243, 244, 245, 0, 0, 0, 0,
+ 0, 0, 0, 246, 247, 248, 0, 249, 250, 251,
+ 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 0, 262, 263, 264, 265, 266, 267, 268, 0, 0,
+ 269, 270, 271, 272, 273, 0, 274, 275, 276, 277,
+ 278, 0, 279, 0, 280, 281, 282, 283, 284, 285,
+ 286, 287, 288, 289, 0, 290, 291, 292, 293, 294,
+ 295, 0, 296, 297, 298, 299, 0, 0, 0, 300,
+ 0, 0, 0, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, 0, 310, 0, 311, 312, 313, 314, 315,
+ 316, 317, 0, 318, 319, 320, 321, 0, 0, 322,
+ 323, 324, 325, 326, 0, 327, 328, 329, 0, 330,
+ 331, 332, 0, 333, 334, 335, 336, 337, 338, 339,
+ 340, 341, 342, 0, 343, 0, 344, 345, 346, 347,
+ 348, 0, 349, 0, 350, 351, 0, 352, 353, 354,
+ 355, 356, 0, 357, 358, 0, 359, 360, 361, 0,
+ 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
+ 0, 372, 373, 374, 375, 376, 377, 378, 0, 379,
+ 380, 381, 382, 383, 384, 385, 386, 387, 0, 388,
+ 0, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 0, 0, 399, 400, 401, 402, 403, 0, 404,
+ 405, 406, 0, 0, 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, 0, 438, 439, 440, 441,
+ 0, 442, 443, 444, 445, 446, 447, 0, 448, 449,
+ 0, 0, 450, 451, 452, 0, 0, 453, 454, 455,
+ 456, 457, 458, 459, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 0, 470, 471, 472, 473, 474,
+ 475, 476, 477, 0, 478, 479, 480, 481, 482, 483,
+ 484, 485, 486, 487, 488, 489, 490, 491, 492, 0,
+ 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
+ 503, 504, 505, 0, 506, 507, 508, 509, 510, 511,
+ 512, 513, 514, 515, 516, 517, 518, 519, 520, 521,
+ 522, 523, 0, 524, 525, 526, 527, 528, 0, 529,
+ 530, 531, 532, 533, 534, 535, 536, 537, 538, 0,
+ 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
+ 549, 550, 551, 552, 553, 0, 554, 555, 0, 556,
+ 557, 558, 559, 560, 561, 562, 0, 563, 564, 565,
+ 0, 0, 566, 567, 568, 569, 570, 0, 571, 572,
+ 573, 574, 575, 576, 577, 578, 0, 0, 579, 580,
+ 581, 582, 583, 0, 0, 584, 585, 586, 587, 588,
+ 589, 590, 0, 591, 592, 593, 594, 595, 596, 0,
+ 0, 597, 0, 0, 598, 599, 600, 601, 602, 603,
+ 604, 605, 606, 607, 608, 609, 610, 611, 612, 613,
+ 614, 615, 616, 617, 234, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 235, 236, 237, 238, 239, 240, 241, 242, 0,
+ 243, 244, 245, 0, 0, 0, 0, 0, 0, 0,
+ 246, 247, 248, 0, 249, 250, 251, 252, 253, 254,
+ 255, 256, 257, 258, 259, 260, 261, 0, 262, 263,
+ 264, 265, 266, 267, 268, 0, 0, 269, 270, 271,
+ 272, 273, 0, 274, 275, 276, 277, 278, 0, 279,
+ 0, 280, 281, 282, 283, 284, 285, 286, 287, 288,
+ 289, 0, 290, 291, 292, 293, 294, 295, 0, 296,
+ 297, 298, 299, 0, 0, 0, 300, 0, 0, 0,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, 0,
+ 310, 0, 311, 312, 313, 314, 315, 316, 317, 0,
+ 318, 319, 320, 321, 0, 0, 322, 323, 324, 325,
+ 326, 0, 327, 328, 329, 0, 330, 331, 332, 0,
+ 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
+ 0, 343, 0, 344, 345, 346, 347, 348, 0, 349,
+ 0, 350, 351, 0, 352, 353, 354, 355, 356, 0,
+ 357, 358, 0, 359, 360, 361, 0, 362, 363, 364,
+ 365, 1117, 367, 368, 369, 370, 371, 0, 372, 373,
+ 374, 375, 376, 377, 378, 0, 379, 380, 381, 382,
+ 383, 384, 385, 386, 387, 0, 388, 0, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, 0, 0,
+ 399, 400, 401, 402, 403, 0, 404, 405, 406, 0,
+ 0, 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, 0, 438, 439, 440, 441, 0, 442, 443,
+ 444, 445, 446, 447, 0, 448, 449, 0, 0, 450,
+ 451, 452, 0, 0, 453, 454, 455, 456, 457, 458,
+ 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 0, 470, 471, 472, 473, 474, 475, 476, 477,
+ 0, 478, 479, 480, 481, 482, 483, 484, 485, 486,
+ 487, 488, 489, 490, 491, 492, 0, 493, 494, 495,
+ 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
+ 0, 506, 507, 508, 509, 510, 511, 512, 513, 514,
+ 515, 516, 517, 518, 519, 520, 521, 522, 523, 0,
+ 524, 525, 526, 527, 528, 0, 529, 530, 531, 532,
+ 533, 534, 535, 536, 537, 538, 0, 539, 540, 541,
+ 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
+ 552, 553, 0, 554, 555, 0, 556, 557, 558, 559,
+ 560, 561, 562, 0, 563, 564, 565, 0, 0, 566,
+ 567, 568, 569, 570, 0, 571, 572, 573, 574, 575,
+ 576, 577, 578, 0, 0, 579, 580, 581, 582, 583,
+ 0, 0, 584, 585, 586, 587, 588, 589, 590, 0,
+ 591, 592, 593, 594, 595, 596, 0, 0, 597, 0,
+ 0, 598, 599, 600, 601, 602, 603, 604, 605, 606,
+ 607, 608, 609, 610, 611, 612, 613, 614, 615, 616,
+ 617, 234, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
+ 237, 238, 239, 240, 241, 242, 0, 243, 244, 245,
+ 0, 0, 0, 0, 0, 0, 0, 246, 247, 248,
+ 0, 249, 250, 251, 252, 253, 254, 255, 256, 257,
+ 258, 259, 260, 261, 0, 262, 263, 264, 265, 266,
+ 267, 268, 0, 0, 269, 270, 271, 272, 273, 0,
+ 274, 275, 276, 277, 278, 0, 279, 0, 280, 281,
+ 282, 283, 284, 285, 286, 287, 288, 289, 0, 290,
+ 291, 292, 293, 294, 295, 0, 296, 297, 298, 299,
+ 0, 0, 0, 300, 0, 0, 0, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, 0, 310, 0, 311,
+ 312, 313, 314, 315, 316, 317, 0, 318, 319, 320,
+ 321, 0, 0, 322, 323, 324, 325, 326, 0, 327,
+ 328, 329, 0, 330, 331, 332, 0, 333, 334, 335,
+ 336, 337, 338, 339, 340, 341, 342, 0, 343, 0,
+ 344, 345, 346, 347, 348, 0, 349, 0, 350, 351,
+ 0, 352, 353, 354, 355, 356, 0, 357, 358, 0,
+ 359, 360, 361, 0, 362, 363, 364, 365, 1130, 367,
+ 368, 369, 370, 371, 0, 372, 373, 374, 375, 376,
+ 377, 378, 0, 379, 380, 381, 382, 383, 384, 385,
+ 386, 387, 0, 388, 0, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 0, 0, 399, 400, 401,
+ 402, 403, 0, 404, 405, 406, 0, 0, 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, 0,
+ 438, 439, 440, 441, 0, 442, 443, 444, 445, 446,
+ 447, 0, 448, 449, 0, 0, 450, 451, 452, 0,
+ 0, 453, 454, 455, 456, 457, 458, 459, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 0, 470,
+ 471, 472, 473, 474, 475, 476, 477, 0, 478, 479,
+ 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
+ 490, 491, 492, 0, 493, 494, 495, 496, 497, 498,
+ 499, 500, 501, 502, 503, 504, 505, 0, 506, 507,
+ 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
+ 518, 519, 520, 521, 522, 523, 0, 524, 525, 526,
+ 527, 528, 0, 529, 530, 531, 532, 533, 534, 535,
+ 536, 537, 538, 0, 539, 540, 541, 542, 543, 544,
+ 545, 546, 547, 548, 549, 550, 551, 552, 553, 0,
+ 554, 555, 0, 556, 557, 558, 559, 560, 561, 562,
+ 0, 563, 564, 565, 0, 0, 566, 567, 568, 569,
+ 570, 0, 571, 572, 573, 574, 575, 576, 577, 578,
+ 0, 0, 579, 580, 581, 582, 583, 0, 0, 584,
+ 585, 586, 587, 588, 589, 590, 0, 591, 592, 593,
+ 594, 595, 596, 0, 0, 597, 0, 0, 598, 599,
+ 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
+ 610, 611, 612, 613, 614, 615, 616, 617, 234, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
+ 240, 241, 242, 0, 243, 244, 245, 0, 0, 0,
+ 0, 0, 0, 0, 246, 247, 248, 0, 249, 250,
+ 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
+ 261, 0, 262, 263, 264, 265, 266, 267, 268, 0,
+ 0, 269, 270, 271, 272, 273, 0, 274, 275, 276,
+ 277, 278, 0, 279, 0, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 0, 290, 291, 292, 293,
+ 294, 295, 0, 296, 297, 298, 299, 0, 0, 0,
+ 300, 0, 0, 0, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, 0, 310, 0, 311, 312, 313, 314,
+ 315, 316, 317, 0, 318, 319, 320, 321, 0, 0,
+ 322, 323, 324, 325, 326, 0, 327, 328, 329, 0,
+ 330, 331, 332, 0, 333, 334, 335, 336, 337, 338,
+ 339, 340, 341, 342, 0, 343, 0, 344, 345, 346,
+ 347, 348, 0, 349, 0, 350, 351, 0, 352, 353,
+ 354, 355, 356, 0, 357, 358, 0, 359, 360, 361,
+ 0, 362, 363, 364, 365, 1144, 367, 368, 369, 370,
+ 371, 0, 372, 373, 374, 375, 376, 377, 378, 0,
+ 379, 380, 381, 382, 383, 384, 385, 386, 387, 0,
+ 388, 0, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 0, 0, 399, 400, 401, 402, 403, 0,
+ 404, 405, 406, 0, 0, 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, 0, 438, 439, 440,
+ 441, 0, 442, 443, 444, 445, 446, 447, 0, 448,
+ 449, 0, 0, 450, 451, 452, 0, 0, 453, 454,
+ 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 0, 470, 471, 472, 473,
+ 474, 475, 476, 477, 0, 478, 479, 480, 481, 482,
+ 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
+ 0, 493, 494, 495, 496, 497, 498, 499, 500, 501,
+ 502, 503, 504, 505, 0, 506, 507, 508, 509, 510,
+ 511, 512, 513, 514, 515, 516, 517, 518, 519, 520,
+ 521, 522, 523, 0, 524, 525, 526, 527, 528, 0,
+ 529, 530, 531, 532, 533, 534, 535, 536, 537, 538,
+ 0, 539, 540, 541, 542, 543, 544, 545, 546, 547,
+ 548, 549, 550, 551, 552, 553, 0, 554, 555, 0,
+ 556, 557, 558, 559, 560, 561, 562, 0, 563, 564,
+ 565, 0, 0, 566, 567, 568, 569, 570, 0, 571,
+ 572, 573, 574, 575, 576, 577, 578, 0, 0, 579,
+ 580, 581, 582, 583, 0, 0, 584, 585, 586, 587,
+ 588, 589, 590, 0, 591, 592, 593, 594, 595, 596,
+ 0, 0, 597, 0, 0, 598, 599, 600, 601, 602,
+ 603, 604, 605, 606, 607, 608, 609, 610, 611, 612,
+ 613, 614, 615, 616, 617, 234, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
+ 0, 243, 244, 245, 0, 0, 0, 0, 0, 0,
+ 0, 246, 247, 248, 0, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 258, 259, 260, 261, 0, 262,
+ 263, 264, 265, 266, 267, 268, 0, 0, 269, 270,
+ 271, 272, 273, 0, 274, 275, 276, 277, 278, 0,
+ 279, 0, 280, 281, 282, 283, 284, 285, 286, 287,
+ 288, 289, 0, 290, 291, 292, 293, 294, 295, 0,
+ 296, 297, 298, 299, 0, 0, 0, 300, 0, 0,
+ 0, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ 0, 310, 0, 311, 312, 313, 314, 315, 316, 317,
+ 0, 318, 319, 320, 321, 0, 0, 322, 323, 324,
+ 325, 326, 0, 327, 328, 329, 0, 330, 331, 332,
+ 0, 333, 334, 335, 336, 337, 338, 339, 340, 341,
+ 342, 0, 343, 0, 344, 345, 346, 347, 348, 0,
+ 349, 0, 350, 351, 0, 352, 353, 354, 355, 356,
+ 0, 357, 358, 0, 359, 360, 361, 0, 362, 363,
+ 364, 365, 1148, 367, 368, 369, 370, 371, 0, 372,
+ 373, 374, 375, 376, 377, 378, 0, 379, 380, 381,
+ 382, 383, 384, 385, 386, 387, 0, 388, 0, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 0,
+ 0, 399, 400, 401, 402, 403, 0, 404, 405, 406,
+ 0, 0, 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, 0, 438, 439, 440, 441, 0, 442,
+ 443, 444, 445, 446, 447, 0, 448, 449, 0, 0,
+ 450, 451, 452, 0, 0, 453, 454, 455, 456, 457,
+ 458, 459, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 0, 470, 471, 472, 473, 474, 475, 476,
+ 477, 0, 478, 479, 480, 481, 482, 483, 484, 485,
+ 486, 487, 488, 489, 490, 491, 492, 0, 493, 494,
+ 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
+ 505, 0, 506, 507, 508, 509, 510, 511, 512, 513,
+ 514, 515, 516, 517, 518, 519, 520, 521, 522, 523,
+ 0, 524, 525, 526, 527, 528, 0, 529, 530, 531,
+ 532, 533, 534, 535, 536, 537, 538, 0, 539, 540,
+ 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
+ 551, 552, 553, 0, 554, 555, 0, 556, 557, 558,
+ 559, 560, 561, 562, 0, 563, 564, 565, 0, 0,
+ 566, 567, 568, 569, 570, 0, 571, 572, 573, 574,
+ 575, 576, 577, 578, 0, 0, 579, 580, 581, 582,
+ 583, 0, 0, 584, 585, 586, 587, 588, 589, 590,
+ 0, 591, 592, 593, 594, 595, 596, 0, 0, 597,
+ 0, 0, 598, 599, 600, 601, 602, 603, 604, 605,
+ 606, 607, 608, 609, 610, 611, 612, 613, 614, 615,
+ 616, 617, 938, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
+ 236, 237, 238, 239, 240, 241, 242, 0, 243, 244,
+ 245, 0, 0, 0, 0, 0, 0, 0, 246, 247,
+ 248, 0, 249, 250, 251, 252, 253, 254, 255, 256,
+ 257, 258, 259, 260, 261, 0, 262, 263, 264, 265,
+ 266, 267, 268, 0, 0, 269, 270, 271, 272, 273,
+ 0, 274, 275, 276, 277, 278, 0, 279, 0, 280,
+ 281, 282, 283, 284, 285, 286, 287, 288, 289, 0,
+ 290, 291, 292, 293, 294, 295, 0, 296, 297, 298,
+ 299, 0, 0, 0, 300, 0, 0, 0, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, 0, 310, 0,
+ 311, 312, 313, 314, 315, 316, 317, 0, 318, 319,
+ 320, 321, 0, 0, 322, 323, 324, 325, 326, 0,
+ 327, 328, 329, 0, 330, 331, 332, 0, 333, 334,
+ 335, 336, 337, 338, 339, 340, 341, 342, 0, 343,
+ 0, 344, 345, 346, 347, 348, 0, 349, 0, 350,
+ 351, 0, 352, 353, 354, 355, 356, 0, 357, 358,
+ 0, 359, 360, 361, 0, 362, 363, 364, 365, 366,
+ 367, 368, 369, 370, 371, 0, 372, 373, 374, 375,
+ 376, 377, 378, 0, 379, 380, 381, 382, 383, 384,
+ 385, 386, 387, 0, 388, 0, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 0, 0, 399, 400,
+ 401, 402, 403, 0, 404, 405, 406, 0, 0, 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,
+ 0, 438, 439, 440, 441, 0, 442, 443, 444, 445,
+ 446, 447, 0, 448, 449, 0, 0, 450, 451, 452,
+ 0, 0, 453, 454, 455, 456, 457, 458, 459, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 0,
+ 470, 471, 472, 473, 474, 475, 476, 477, 0, 478,
+ 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
+ 489, 490, 491, 492, 0, 493, 494, 495, 496, 497,
+ 498, 499, 500, 501, 502, 503, 504, 505, 0, 506,
+ 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
+ 517, 518, 519, 520, 521, 522, 523, 0, 524, 525,
+ 526, 527, 528, 0, 529, 530, 531, 532, 533, 534,
+ 535, 536, 537, 538, 0, 539, 540, 541, 542, 543,
+ 544, 545, 546, 547, 548, 549, 550, 551, 552, 553,
+ 0, 554, 555, 0, 556, 557, 558, 559, 560, 561,
+ 562, 0, 563, 564, 565, 0, 0, 566, 567, 568,
+ 569, 570, 0, 571, 572, 573, 574, 575, 576, 577,
+ 578, 0, 0, 579, 580, 581, 582, 583, 0, 0,
+ 584, 585, 586, 587, 588, 589, 590, 0, 591, 592,
+ 593, 594, 595, 596, 0, 0, 597, 0, 0, 598,
+ 599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
+ 609, 610, 611, 612, 613, 614, 615, 616, 617, 625,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
+ 239, 240, 241, 242, 0, 243, 244, 245, 0, 0,
+ 0, 0, 0, 0, 0, 246, 247, 248, 0, 249,
+ 250, 251, 252, 0, 254, 255, 256, 257, 258, 0,
+ 260, 261, 0, 262, 263, 264, 265, 266, 267, 268,
+ 0, 0, 269, 270, 271, 272, 273, 2669, 274, 275,
+ 276, 277, 278, 0, 0, 2738, 280, 281, 282, 283,
+ 284, 285, 0, 287, 288, 289, 2670, 290, 291, 292,
+ 293, 294, 295, 0, 0, 297, 298, 299, 0, 0,
+ 0, 0, 0, 0, 0, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, 0, 310, 0, 311, 312, 313,
+ 314, 315, 316, 317, 0, 318, 319, 320, 321, 0,
+ 0, 322, 323, 324, 325, 326, 0, 327, 328, 329,
+ 0, 330, 331, 332, 0, 2739, 334, 335, 336, 337,
+ 338, 339, 340, 341, 342, 0, 343, 0, 344, 345,
+ 346, 347, 348, 0, 349, 2672, 350, 0, 0, 0,
+ 353, 354, 355, 356, 0, 357, 358, 0, 359, 360,
+ 361, 0, 362, 363, 364, 365, 2740, 0, 368, 369,
+ 370, 371, 0, 372, 373, 374, 375, 376, 377, 378,
+ 0, 379, 0, 381, 382, 383, 384, 385, 386, 387,
+ 0, 388, 0, 389, 0, 0, 392, 0, 394, 395,
+ 396, 397, 398, 0, 0, 399, 400, 0, 402, 0,
+ 0, 404, 405, 406, 0, 0, 407, 408, 409, 410,
+ 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
+ 421, 422, 423, 424, 425, 0, 427, 428, 429, 430,
+ 431, 432, 433, 434, 435, 436, 437, 0, 438, 439,
+ 0, 441, 0, 442, 443, 444, 445, 446, 447, 0,
+ 448, 449, 0, 0, 450, 451, 452, 0, 0, 453,
+ 454, 455, 0, 457, 0, 459, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 0, 470, 471, 472,
+ 473, 474, 475, 476, 477, 2673, 478, 479, 480, 481,
+ 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
+ 492, 0, 493, 494, 495, 496, 497, 498, 499, 500,
+ 501, 502, 503, 504, 505, 0, 506, 507, 0, 509,
+ 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
+ 520, 521, 522, 523, 0, 524, 525, 526, 527, 528,
+ 0, 529, 530, 531, 532, 533, 0, 535, 536, 537,
+ 538, 0, 539, 540, 541, 542, 543, 544, 545, 546,
+ 547, 548, 549, 550, 551, 552, 553, 0, 554, 555,
+ 0, 556, 0, 558, 559, 560, 561, 562, 0, 563,
+ 564, 565, 0, 0, 566, 567, 568, 569, 570, 0,
+ 571, 572, 573, 574, 575, 576, 577, 578, 0, 2674,
+ 579, 580, 581, 582, 583, 0, 0, 584, 585, 586,
+ 587, 588, 589, 590, 0, 591, 0, 593, 594, 595,
+ 596, 0, 0, 597, 0, 0, 598, 599, 600, 601,
+ 602, 603, 604, 605, 606, 607, 608, 609, 610, 611,
+ 612, 613, 614, 615, 616, 617, 625, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
+ 242, 0, 243, 244, 245, 0, 0, 0, 0, 0,
+ 0, 0, 246, 247, 248, 0, 249, 250, 251, 252,
+ 0, 254, 255, 256, 257, 258, 0, 260, 261, 0,
+ 262, 263, 264, 265, 266, 267, 268, 0, 0, 269,
+ 270, 271, 272, 273, 2669, 274, 275, 276, 277, 278,
+ 0, 0, 0, 280, 281, 282, 283, 284, 285, 0,
+ 287, 288, 289, 2670, 290, 291, 292, 293, 294, 295,
+ 0, 0, 297, 298, 299, 0, 0, 0, 0, 0,
+ 0, 0, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, 0, 310, 0, 311, 312, 313, 314, 315, 316,
+ 317, 0, 318, 319, 320, 321, 0, 0, 322, 323,
+ 324, 325, 326, 0, 327, 328, 329, 0, 330, 331,
+ 332, 0, 2739, 334, 335, 336, 337, 338, 339, 340,
+ 341, 342, 0, 343, 0, 344, 345, 346, 347, 348,
+ 0, 349, 2672, 350, 0, 0, 0, 353, 354, 355,
+ 356, 0, 357, 358, 0, 359, 360, 361, 0, 362,
+ 363, 364, 365, 366, 0, 368, 369, 370, 371, 0,
+ 372, 373, 374, 375, 376, 377, 378, 0, 379, 0,
+ 381, 382, 383, 384, 385, 386, 387, 0, 388, 0,
+ 389, 0, 0, 392, 0, 394, 395, 396, 397, 398,
+ 0, 0, 399, 400, 0, 402, 3744, 0, 404, 405,
+ 406, 0, 0, 407, 408, 409, 410, 411, 412, 413,
+ 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
+ 424, 425, 0, 427, 428, 429, 430, 431, 432, 433,
+ 434, 435, 436, 437, 0, 438, 439, 0, 441, 0,
+ 442, 443, 444, 445, 446, 447, 0, 448, 449, 0,
+ 0, 450, 451, 452, 0, 0, 453, 454, 455, 0,
+ 457, 0, 459, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 0, 470, 471, 472, 473, 474, 475,
+ 476, 477, 2673, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 488, 489, 490, 491, 492, 0, 493,
+ 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
+ 504, 505, 0, 506, 507, 0, 509, 510, 511, 512,
+ 513, 514, 515, 516, 517, 518, 519, 520, 521, 522,
+ 523, 0, 524, 525, 526, 527, 528, 0, 529, 530,
+ 531, 532, 533, 0, 535, 536, 537, 538, 0, 539,
+ 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
+ 550, 551, 552, 553, 0, 554, 555, 0, 556, 0,
+ 558, 559, 560, 561, 562, 0, 563, 564, 565, 0,
+ 0, 566, 567, 568, 569, 570, 0, 571, 572, 573,
+ 574, 575, 576, 577, 578, 0, 2674, 579, 580, 581,
+ 582, 583, 0, 0, 584, 585, 586, 587, 588, 589,
+ 590, 0, 591, 0, 593, 594, 595, 596, 0, 0,
+ 597, 0, 0, 598, 599, 600, 601, 602, 603, 604,
+ 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
+ 615, 616, 617, 625, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 235, 236, 237, 238, 239, 803, 241, 242, 764, 243,
+ 765, 245, 0, 0, 0, 0, 0, 0, 0, 246,
+ 247, 248, 0, 249, 250, 251, 252, 0, 254, 255,
+ 256, 257, 258, 0, 260, 261, 0, 262, 263, 264,
+ 265, 266, 267, 268, 0, 0, 269, 270, 271, 272,
+ 273, 0, 274, 275, 276, 277, 278, 0, 0, 0,
+ 280, 281, 282, 283, 284, 285, 0, 287, 288, 289,
+ 0, 290, 291, 292, 293, 294, 295, 766, 0, 297,
+ 298, 299, 0, 0, 0, 0, 0, 0, 0, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 0, 310,
+ 0, 311, 312, 313, 314, 315, 316, 317, 0, 318,
+ 319, 320, 321, 0, 0, 322, 323, 324, 325, 326,
+ 0, 327, 328, 329, 0, 330, 331, 332, 0, 333,
+ 334, 335, 336, 337, 338, 339, 340, 341, 342, 0,
+ 343, 0, 344, 345, 346, 347, 348, 0, 349, 0,
+ 350, 0, 0, 0, 353, 354, 355, 356, 804, 357,
+ 358, 0, 359, 360, 361, 0, 362, 363, 364, 365,
+ 366, 0, 368, 369, 370, 371, 0, 372, 373, 374,
+ 375, 376, 377, 378, 0, 379, 0, 381, 382, 383,
+ 384, 385, 386, 387, 0, 388, 0, 389, 0, 0,
+ 392, 0, 394, 395, 396, 397, 398, 0, 0, 399,
+ 400, 0, 402, 0, 0, 404, 405, 406, 0, 0,
+ 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
+ 417, 418, 419, 420, 421, 422, 423, 424, 425, 0,
+ 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
+ 437, 0, 438, 439, 0, 441, 0, 442, 443, 444,
+ 445, 446, 447, 0, 448, 449, 0, 0, 450, 451,
+ 452, 0, 0, 453, 454, 455, 0, 457, 0, 459,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 0, 470, 471, 472, 473, 474, 475, 476, 477, 0,
+ 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
+ 488, 489, 490, 491, 492, 767, 493, 494, 495, 496,
+ 497, 498, 499, 500, 501, 502, 503, 504, 505, 0,
+ 506, 507, 0, 509, 510, 511, 512, 513, 514, 515,
+ 516, 517, 518, 519, 520, 521, 522, 523, 768, 524,
+ 525, 526, 527, 528, 0, 529, 530, 531, 532, 533,
+ 0, 535, 536, 537, 538, 0, 539, 540, 541, 542,
+ 543, 544, 545, 546, 547, 548, 549, 550, 551, 552,
+ 553, 0, 554, 555, 0, 556, 0, 558, 559, 560,
+ 561, 562, 0, 563, 564, 565, 0, 0, 566, 567,
+ 568, 569, 570, 0, 571, 572, 573, 574, 575, 576,
+ 577, 578, 0, 0, 579, 580, 581, 582, 583, 0,
+ 0, 584, 585, 586, 587, 588, 589, 590, 0, 591,
+ 0, 593, 594, 595, 596, 0, 0, 597, 0, 0,
+ 598, 599, 600, 601, 602, 603, 604, 605, 606, 607,
+ 608, 609, 610, 611, 612, 613, 614, 615, 616, 617,
+ 625, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
+ 238, 239, 240, 241, 242, 764, 243, 765, 245, 0,
+ 0, 0, 0, 0, 0, 0, 246, 247, 248, 0,
+ 249, 250, 251, 252, 0, 254, 255, 256, 257, 258,
+ 0, 260, 261, 0, 262, 263, 264, 265, 266, 267,
+ 268, 0, 0, 269, 270, 271, 272, 273, 0, 274,
+ 275, 276, 277, 278, 0, 0, 0, 280, 281, 282,
+ 283, 284, 285, 0, 287, 288, 289, 0, 290, 291,
+ 292, 293, 294, 295, 766, 0, 297, 298, 299, 0,
+ 0, 0, 0, 0, 0, 0, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, 0, 310, 0, 311, 312,
+ 313, 314, 315, 316, 317, 0, 318, 319, 320, 321,
+ 0, 0, 322, 323, 324, 325, 326, 0, 327, 328,
+ 329, 0, 330, 331, 332, 0, 333, 334, 335, 336,
+ 337, 338, 339, 340, 341, 342, 0, 343, 0, 344,
+ 345, 346, 347, 348, 0, 349, 0, 350, 0, 0,
+ 0, 353, 354, 355, 356, 3433, 357, 358, 0, 359,
+ 360, 361, 0, 362, 363, 364, 365, 366, 0, 368,
+ 369, 370, 371, 0, 372, 373, 374, 375, 376, 377,
+ 378, 0, 379, 0, 381, 382, 383, 384, 385, 386,
+ 387, 0, 388, 0, 389, 0, 0, 392, 0, 394,
+ 395, 396, 397, 398, 0, 0, 399, 400, 0, 402,
+ 0, 0, 404, 405, 406, 0, 0, 407, 408, 409,
+ 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
+ 420, 421, 422, 423, 424, 425, 0, 427, 428, 429,
+ 430, 431, 432, 433, 434, 435, 436, 437, 0, 438,
+ 439, 0, 441, 0, 442, 443, 444, 445, 446, 447,
+ 0, 448, 449, 0, 0, 450, 451, 452, 0, 0,
+ 453, 454, 455, 0, 457, 0, 459, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 0, 470, 471,
+ 472, 473, 474, 475, 476, 477, 0, 478, 479, 480,
+ 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
+ 491, 492, 767, 493, 494, 495, 496, 497, 498, 499,
+ 500, 501, 502, 503, 504, 505, 0, 506, 507, 0,
+ 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
+ 519, 520, 521, 522, 523, 768, 524, 525, 526, 527,
+ 528, 0, 529, 530, 531, 532, 533, 0, 535, 536,
+ 537, 538, 0, 539, 540, 541, 542, 543, 544, 545,
+ 546, 547, 548, 549, 550, 551, 552, 553, 0, 554,
+ 555, 0, 556, 0, 558, 559, 560, 561, 562, 0,
+ 563, 564, 565, 0, 0, 566, 567, 568, 569, 570,
+ 0, 571, 572, 573, 574, 575, 576, 577, 578, 0,
+ 0, 579, 580, 581, 582, 583, 0, 0, 584, 585,
+ 586, 587, 588, 589, 590, 0, 591, 0, 593, 594,
+ 595, 596, 0, 0, 597, 0, 0, 598, 599, 600,
+ 601, 602, 603, 604, 605, 606, 607, 608, 609, 610,
+ 611, 612, 613, 614, 615, 616, 617, 625, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
+ 241, 242, 0, 243, 244, 245, 0, 0, 0, 0,
+ 0, 0, 0, 246, 247, 248, 0, 249, 250, 251,
+ 252, 0, 254, 255, 256, 257, 258, 0, 260, 261,
+ 0, 262, 263, 264, 265, 266, 267, 268, 0, 0,
+ 269, 270, 271, 272, 273, 2669, 274, 275, 276, 277,
+ 278, 0, 0, 0, 280, 281, 282, 283, 284, 285,
+ 0, 287, 288, 289, 2670, 290, 291, 292, 293, 294,
+ 295, 0, 0, 297, 298, 299, 0, 0, 0, 0,
+ 0, 0, 0, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, 0, 310, 0, 311, 312, 313, 314, 315,
+ 316, 317, 0, 318, 319, 320, 321, 0, 0, 322,
+ 323, 324, 325, 326, 0, 327, 328, 329, 0, 330,
+ 331, 332, 0, 2739, 334, 335, 336, 337, 338, 339,
+ 340, 341, 342, 0, 343, 0, 344, 345, 346, 347,
+ 348, 0, 349, 2672, 350, 0, 0, 0, 353, 354,
+ 355, 356, 0, 357, 358, 0, 359, 360, 361, 0,
+ 362, 363, 364, 365, 366, 0, 368, 369, 370, 371,
+ 0, 372, 373, 374, 375, 376, 377, 378, 0, 379,
+ 0, 381, 382, 383, 384, 385, 386, 387, 0, 388,
+ 0, 389, 0, 0, 392, 0, 394, 395, 396, 397,
+ 398, 0, 0, 399, 400, 0, 402, 0, 0, 404,
+ 405, 406, 0, 0, 407, 408, 409, 410, 411, 412,
+ 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
+ 423, 424, 425, 0, 427, 428, 429, 430, 431, 432,
+ 433, 434, 435, 436, 437, 0, 438, 439, 0, 441,
+ 0, 442, 443, 444, 445, 446, 447, 0, 448, 449,
+ 0, 0, 450, 451, 452, 0, 0, 453, 454, 455,
+ 0, 457, 0, 459, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 0, 470, 471, 472, 473, 474,
+ 475, 476, 477, 2673, 478, 479, 480, 481, 482, 483,
+ 484, 485, 486, 487, 488, 489, 490, 491, 492, 0,
+ 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
+ 503, 504, 505, 0, 506, 507, 0, 509, 510, 511,
+ 512, 513, 514, 515, 516, 517, 518, 519, 520, 521,
+ 522, 523, 0, 524, 525, 526, 527, 528, 0, 529,
+ 530, 531, 532, 533, 0, 535, 536, 537, 538, 0,
+ 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
+ 549, 550, 551, 552, 553, 0, 554, 555, 0, 556,
+ 0, 558, 559, 560, 561, 562, 0, 563, 564, 565,
+ 0, 0, 566, 567, 568, 569, 570, 0, 571, 572,
+ 573, 574, 575, 576, 577, 578, 0, 2674, 579, 580,
+ 581, 582, 583, 0, 0, 584, 585, 586, 587, 588,
+ 589, 590, 0, 591, 0, 593, 594, 595, 596, 0,
+ 0, 597, 0, 0, 598, 599, 600, 601, 602, 603,
+ 604, 605, 606, 607, 608, 609, 610, 611, 612, 613,
+ 614, 615, 616, 617, 625, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 235, 236, 237, 238, 239, 240, 241, 242, 764,
+ 243, 765, 245, 0, 0, 0, 0, 0, 0, 0,
+ 246, 247, 248, 0, 249, 250, 251, 252, 0, 254,
+ 255, 256, 257, 258, 0, 260, 261, 0, 262, 263,
+ 264, 265, 266, 267, 268, 0, 0, 269, 270, 271,
+ 272, 273, 0, 274, 275, 276, 277, 278, 0, 0,
+ 0, 280, 281, 282, 283, 284, 285, 0, 287, 288,
+ 289, 0, 290, 291, 292, 293, 294, 295, 766, 0,
+ 297, 298, 299, 0, 0, 0, 0, 0, 0, 0,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, 0,
+ 310, 0, 311, 312, 313, 314, 315, 316, 317, 0,
+ 318, 319, 320, 321, 0, 0, 322, 323, 324, 325,
+ 326, 0, 327, 328, 329, 0, 330, 331, 332, 0,
+ 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
+ 0, 343, 0, 344, 345, 346, 347, 348, 0, 349,
+ 0, 350, 0, 0, 0, 353, 354, 355, 356, 0,
+ 357, 358, 0, 359, 360, 361, 0, 362, 363, 364,
+ 365, 366, 0, 368, 369, 370, 371, 0, 372, 373,
+ 374, 375, 376, 377, 378, 0, 379, 0, 381, 382,
+ 383, 384, 385, 386, 387, 0, 388, 0, 389, 0,
+ 0, 392, 0, 394, 395, 396, 397, 398, 0, 0,
+ 399, 400, 0, 402, 0, 0, 404, 405, 406, 0,
+ 0, 407, 408, 409, 410, 411, 412, 413, 414, 415,
+ 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
+ 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
+ 436, 437, 0, 438, 439, 0, 441, 0, 442, 443,
+ 444, 445, 446, 447, 0, 448, 449, 0, 0, 450,
+ 451, 452, 0, 0, 453, 454, 455, 0, 457, 0,
+ 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 0, 470, 471, 472, 473, 474, 475, 476, 477,
+ 0, 478, 479, 480, 481, 482, 483, 484, 485, 486,
+ 487, 488, 489, 490, 491, 492, 767, 493, 494, 495,
+ 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
+ 0, 506, 507, 0, 509, 510, 511, 512, 513, 514,
+ 515, 516, 517, 518, 519, 520, 521, 522, 523, 768,
+ 524, 525, 526, 527, 528, 0, 529, 530, 531, 532,
+ 533, 0, 535, 536, 537, 538, 0, 539, 540, 541,
+ 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
+ 552, 553, 0, 554, 555, 0, 556, 0, 558, 559,
+ 560, 561, 562, 0, 563, 564, 565, 0, 0, 566,
+ 567, 568, 569, 570, 0, 571, 572, 573, 574, 575,
+ 576, 577, 578, 0, 0, 579, 580, 581, 582, 583,
+ 0, 0, 584, 585, 586, 587, 588, 589, 590, 0,
+ 591, 0, 593, 594, 595, 596, 0, 0, 597, 0,
+ 0, 598, 599, 600, 601, 602, 603, 604, 605, 606,
+ 607, 608, 609, 610, 611, 612, 613, 614, 615, 616,
+ 617, 625, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
+ 237, 238, 239, 240, 241, 242, 2973, 243, 244, 245,
+ 0, 0, 0, 0, 0, 0, 0, 246, 247, 248,
+ 0, 249, 250, 251, 252, 0, 254, 255, 256, 257,
+ 258, 0, 260, 261, 0, 262, 263, 264, 265, 266,
+ 267, 268, 0, 0, 269, 270, 271, 272, 273, 0,
+ 274, 275, 276, 277, 278, 0, 0, 0, 280, 281,
+ 282, 283, 284, 285, 0, 287, 288, 289, 0, 290,
+ 291, 292, 293, 294, 295, 0, 0, 297, 298, 299,
+ 0, 0, 0, 2804, 0, 0, 0, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, 0, 310, 0, 311,
+ 312, 313, 314, 315, 316, 317, 0, 318, 319, 320,
+ 321, 0, 0, 322, 323, 324, 325, 326, 0, 327,
+ 328, 329, 0, 330, 331, 332, 0, 333, 334, 335,
+ 336, 337, 338, 339, 340, 341, 342, 0, 343, 0,
+ 344, 345, 346, 347, 348, 0, 349, 0, 350, 0,
+ 0, 0, 353, 354, 355, 356, 0, 357, 358, 0,
+ 359, 360, 361, 0, 362, 363, 364, 365, 366, 0,
+ 368, 369, 370, 371, 0, 372, 373, 374, 375, 376,
+ 377, 378, 0, 379, 0, 381, 382, 383, 384, 385,
+ 386, 387, 0, 388, 0, 389, 0, 0, 392, 0,
+ 394, 395, 396, 397, 398, 0, 0, 399, 400, 0,
+ 402, 0, 0, 404, 405, 406, 0, 0, 407, 408,
+ 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
+ 419, 420, 421, 422, 423, 424, 425, 0, 427, 428,
+ 429, 430, 431, 432, 433, 434, 435, 436, 437, 0,
+ 438, 439, 0, 441, 0, 442, 443, 444, 445, 446,
+ 447, 0, 448, 449, 0, 835, 450, 451, 452, 0,
+ 0, 453, 454, 455, 0, 457, 0, 459, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 0, 470,
+ 471, 472, 473, 474, 475, 476, 477, 0, 478, 479,
+ 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
+ 490, 491, 492, 0, 493, 494, 495, 496, 497, 498,
+ 499, 500, 501, 502, 503, 504, 505, 0, 506, 507,
+ 0, 509, 510, 511, 512, 513, 514, 515, 516, 517,
+ 518, 519, 520, 521, 522, 523, 0, 524, 525, 526,
+ 527, 528, 0, 529, 530, 531, 532, 533, 0, 535,
+ 536, 537, 538, 0, 539, 540, 541, 542, 543, 544,
+ 545, 546, 547, 548, 549, 550, 551, 552, 553, 0,
+ 554, 555, 2805, 2806, 0, 558, 559, 560, 561, 562,
+ 0, 563, 564, 565, 0, 0, 566, 567, 568, 569,
+ 570, 0, 571, 572, 573, 574, 575, 576, 577, 578,
+ 0, 0, 579, 580, 581, 582, 583, 0, 0, 584,
+ 585, 586, 587, 588, 589, 590, 0, 591, 0, 593,
+ 594, 595, 596, 0, 0, 597, 0, 0, 598, 599,
+ 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
+ 610, 611, 612, 613, 614, 615, 616, 617, 625, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
+ 240, 241, 242, 1954, 243, 244, 245, 0, 0, 0,
+ 0, 0, 0, 0, 246, 247, 248, 0, 249, 250,
+ 251, 252, 0, 254, 255, 256, 257, 258, 0, 260,
+ 261, 0, 262, 263, 264, 265, 266, 267, 268, 0,
+ 0, 269, 270, 271, 272, 273, 0, 274, 275, 276,
+ 277, 278, 0, 0, 0, 280, 281, 282, 283, 284,
+ 285, 0, 287, 288, 289, 0, 290, 291, 292, 293,
+ 294, 295, 0, 0, 297, 298, 299, 0, 0, 0,
+ 0, 0, 0, 0, 301, 302, 303, 1955, 305, 306,
+ 307, 308, 309, 0, 310, 0, 311, 312, 313, 314,
+ 315, 316, 317, 0, 318, 319, 320, 321, 0, 0,
+ 322, 1956, 324, 325, 326, 0, 327, 328, 329, 0,
+ 330, 331, 332, 0, 333, 334, 335, 336, 337, 338,
+ 339, 340, 341, 342, 0, 343, 0, 344, 345, 346,
+ 347, 348, 0, 349, 1957, 350, 0, 0, 0, 1958,
+ 354, 355, 356, 0, 357, 358, 0, 359, 360, 361,
+ 0, 362, 363, 364, 365, 366, 0, 368, 369, 370,
+ 371, 0, 372, 373, 374, 375, 376, 377, 378, 0,
+ 379, 0, 381, 382, 383, 384, 385, 386, 387, 0,
+ 388, 0, 389, 0, 0, 392, 0, 394, 395, 1959,
+ 1960, 398, 0, 0, 399, 400, 0, 402, 0, 0,
+ 404, 405, 406, 0, 0, 407, 408, 409, 410, 411,
+ 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
+ 422, 423, 424, 425, 0, 427, 428, 429, 430, 431,
+ 432, 433, 434, 435, 436, 437, 0, 438, 439, 0,
+ 441, 0, 442, 443, 444, 445, 446, 447, 0, 448,
+ 449, 0, 0, 450, 451, 452, 0, 0, 453, 454,
+ 455, 0, 457, 0, 459, 460, 461, 462, 463, 1961,
+ 465, 466, 467, 468, 469, 0, 470, 471, 472, 473,
+ 474, 475, 476, 477, 0, 478, 479, 480, 1962, 482,
+ 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
+ 0, 493, 494, 495, 496, 497, 498, 499, 500, 501,
+ 502, 503, 504, 505, 0, 506, 507, 0, 509, 510,
+ 511, 1963, 513, 514, 515, 516, 517, 1964, 519, 520,
+ 521, 522, 523, 0, 1965, 525, 526, 527, 528, 0,
+ 529, 530, 531, 532, 533, 0, 535, 536, 537, 538,
+ 0, 539, 540, 541, 542, 543, 544, 545, 546, 547,
+ 548, 549, 550, 551, 552, 553, 0, 554, 555, 1966,
+ 556, 0, 1967, 559, 560, 561, 562, 0, 563, 564,
+ 565, 0, 0, 566, 567, 568, 569, 570, 0, 571,
+ 572, 1968, 574, 575, 576, 577, 578, 0, 0, 579,
+ 580, 581, 582, 583, 0, 0, 584, 585, 586, 587,
+ 588, 589, 590, 0, 591, 0, 593, 594, 595, 596,
+ 0, 0, 597, 0, 0, 598, 599, 600, 601, 602,
+ 603, 604, 605, 606, 607, 608, 609, 610, 611, 612,
+ 613, 614, 615, 616, 617, 625, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
+ 0, 243, 765, 245, 0, 0, 0, 0, 0, 0,
+ 0, 246, 247, 248, 0, 249, 250, 251, 252, 0,
+ 254, 255, 256, 257, 258, 0, 260, 261, 0, 262,
+ 263, 264, 265, 266, 267, 268, 0, 0, 269, 270,
+ 271, 272, 273, 0, 274, 275, 276, 277, 278, 0,
+ 0, 0, 280, 281, 282, 283, 284, 285, 0, 287,
+ 288, 289, 0, 290, 291, 292, 293, 294, 295, 766,
+ 0, 297, 298, 299, 0, 0, 0, 0, 0, 0,
+ 0, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ 0, 310, 0, 311, 312, 313, 314, 315, 316, 317,
+ 0, 318, 319, 320, 321, 0, 0, 322, 323, 324,
+ 325, 326, 0, 327, 328, 329, 0, 330, 331, 332,
+ 0, 333, 334, 335, 336, 337, 338, 339, 340, 341,
+ 342, 0, 343, 0, 344, 345, 346, 347, 348, 0,
+ 349, 0, 350, 0, 0, 0, 353, 354, 355, 356,
+ 0, 357, 358, 0, 359, 360, 361, 0, 362, 363,
+ 364, 365, 366, 0, 368, 369, 370, 371, 0, 372,
+ 373, 374, 375, 376, 377, 378, 0, 379, 0, 381,
+ 382, 383, 384, 385, 386, 387, 0, 388, 0, 389,
+ 0, 0, 392, 0, 394, 395, 396, 397, 398, 0,
+ 0, 399, 400, 0, 402, 0, 0, 404, 405, 406,
+ 0, 0, 407, 408, 409, 410, 411, 412, 413, 414,
+ 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
+ 425, 0, 427, 428, 429, 430, 431, 432, 433, 434,
+ 435, 436, 437, 0, 438, 439, 0, 441, 0, 442,
+ 443, 444, 445, 446, 447, 0, 448, 449, 0, 0,
+ 450, 451, 452, 0, 0, 453, 454, 455, 0, 457,
+ 0, 459, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 0, 470, 471, 472, 473, 474, 475, 476,
+ 477, 0, 478, 479, 480, 481, 482, 483, 484, 485,
+ 486, 487, 488, 489, 490, 491, 492, 767, 493, 494,
+ 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
+ 505, 0, 506, 507, 0, 509, 510, 511, 512, 513,
+ 514, 515, 516, 517, 518, 519, 520, 521, 522, 523,
+ 768, 524, 525, 526, 527, 528, 0, 529, 530, 531,
+ 532, 533, 0, 535, 536, 537, 538, 0, 539, 540,
+ 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
+ 551, 552, 553, 0, 554, 555, 0, 556, 0, 558,
+ 559, 560, 561, 562, 0, 563, 564, 565, 0, 0,
+ 566, 567, 568, 569, 570, 0, 571, 572, 573, 574,
+ 575, 576, 577, 578, 0, 0, 579, 580, 581, 582,
+ 583, 0, 0, 584, 585, 586, 587, 588, 589, 590,
+ 0, 591, 0, 593, 594, 595, 596, 0, 0, 597,
+ 0, 0, 598, 599, 600, 601, 602, 603, 604, 605,
+ 606, 607, 608, 609, 610, 611, 612, 613, 614, 615,
+ 616, 617, 625, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
+ 236, 237, 238, 239, 240, 241, 242, 0, 243, 244,
+ 245, 0, 0, 0, 0, 0, 0, 0, 246, 247,
+ 248, 0, 249, 250, 251, 252, 0, 254, 255, 256,
+ 257, 258, 0, 260, 261, 0, 262, 263, 264, 265,
+ 266, 267, 268, 0, 0, 269, 270, 271, 272, 273,
+ 0, 274, 275, 276, 277, 278, 0, 0, 0, 280,
+ 281, 282, 283, 284, 285, 0, 287, 288, 289, 0,
+ 290, 291, 292, 293, 294, 295, 0, 0, 297, 298,
+ 299, 0, 0, 0, 2804, 0, 0, 0, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, 0, 310, 0,
+ 311, 312, 313, 314, 315, 316, 317, 0, 318, 319,
+ 320, 321, 0, 0, 322, 323, 324, 325, 326, 0,
+ 327, 328, 329, 0, 330, 331, 332, 0, 333, 334,
+ 335, 336, 337, 338, 339, 340, 341, 342, 0, 343,
+ 0, 344, 345, 346, 347, 348, 0, 349, 0, 350,
+ 0, 0, 0, 353, 354, 355, 356, 0, 357, 358,
+ 0, 359, 360, 361, 0, 362, 363, 364, 365, 366,
+ 0, 368, 369, 370, 371, 0, 372, 373, 374, 375,
+ 376, 377, 378, 0, 379, 0, 381, 382, 383, 384,
+ 385, 386, 387, 0, 388, 0, 389, 0, 0, 392,
+ 0, 394, 395, 396, 397, 398, 0, 0, 399, 400,
+ 0, 402, 0, 0, 404, 405, 406, 0, 0, 407,
+ 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
+ 418, 419, 420, 421, 422, 423, 424, 425, 0, 427,
+ 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
+ 0, 438, 439, 0, 441, 0, 442, 443, 444, 445,
+ 446, 447, 0, 448, 449, 0, 835, 450, 451, 452,
+ 0, 0, 453, 454, 455, 0, 457, 0, 459, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 0,
+ 470, 471, 472, 473, 474, 475, 476, 477, 0, 478,
+ 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
+ 489, 490, 491, 492, 0, 493, 494, 495, 496, 497,
+ 498, 499, 500, 501, 502, 503, 504, 505, 0, 506,
+ 507, 0, 509, 510, 511, 512, 513, 514, 515, 516,
+ 517, 518, 519, 520, 521, 522, 523, 0, 524, 525,
+ 526, 527, 528, 0, 529, 530, 531, 532, 533, 0,
+ 535, 536, 537, 538, 0, 539, 540, 541, 542, 543,
+ 544, 545, 546, 547, 548, 549, 550, 551, 552, 553,
+ 0, 554, 555, 2805, 2806, 0, 558, 559, 560, 561,
+ 562, 0, 563, 564, 565, 0, 0, 566, 567, 568,
+ 569, 570, 0, 571, 572, 573, 574, 575, 576, 577,
+ 578, 0, 0, 579, 580, 581, 582, 583, 0, 0,
+ 584, 585, 586, 587, 588, 589, 590, 0, 591, 0,
+ 593, 594, 595, 596, 0, 0, 597, 0, 0, 598,
+ 599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
+ 609, 610, 611, 612, 613, 614, 615, 616, 617, 625,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
+ 239, 240, 241, 242, 991, 243, 244, 245, 0, 0,
+ 0, 0, 0, 0, 0, 246, 247, 248, 0, 249,
+ 250, 251, 252, 0, 254, 255, 256, 257, 258, 0,
+ 260, 261, 0, 262, 263, 264, 265, 266, 267, 268,
+ 0, 0, 269, 270, 271, 272, 273, 0, 274, 275,
+ 276, 277, 278, 0, 0, 0, 280, 281, 282, 283,
+ 284, 285, 0, 287, 288, 289, 0, 290, 291, 292,
+ 293, 294, 295, 0, 0, 297, 298, 299, 0, 0,
+ 0, 0, 0, 0, 0, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, 0, 310, 0, 311, 312, 313,
+ 314, 315, 316, 317, 0, 318, 319, 320, 321, 0,
+ 0, 322, 323, 324, 325, 326, 0, 327, 328, 329,
+ 0, 330, 331, 332, 0, 333, 334, 335, 336, 337,
+ 338, 339, 340, 341, 342, 0, 343, 0, 344, 345,
+ 346, 347, 348, 0, 349, 0, 350, 0, 0, 0,
+ 353, 354, 355, 356, 0, 357, 358, 0, 359, 360,
+ 361, 0, 362, 363, 364, 365, 992, 0, 368, 369,
+ 370, 371, 0, 372, 373, 374, 375, 376, 377, 378,
+ 0, 379, 0, 381, 382, 383, 384, 385, 386, 387,
+ 0, 388, 0, 389, 0, 0, 392, 0, 394, 395,
+ 396, 397, 398, 0, 0, 399, 400, 0, 402, 0,
+ 0, 404, 405, 406, 0, 0, 407, 408, 409, 410,
+ 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
+ 421, 422, 423, 424, 425, 0, 427, 428, 429, 430,
+ 431, 432, 433, 434, 435, 436, 437, 0, 438, 439,
+ 0, 441, 0, 442, 443, 444, 445, 446, 447, 0,
+ 448, 449, 0, 835, 450, 451, 452, 0, 0, 453,
+ 454, 455, 0, 457, 0, 459, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 0, 470, 471, 472,
+ 473, 474, 475, 476, 477, 0, 478, 479, 480, 481,
+ 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
+ 492, 0, 493, 494, 495, 496, 497, 498, 499, 500,
+ 501, 502, 503, 504, 505, 0, 506, 507, 0, 509,
+ 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
+ 520, 521, 522, 523, 0, 524, 525, 526, 527, 528,
+ 0, 529, 530, 531, 532, 533, 0, 535, 536, 537,
+ 538, 0, 539, 540, 541, 542, 543, 544, 545, 546,
+ 547, 548, 549, 550, 551, 552, 553, 0, 554, 555,
+ 0, 556, 0, 558, 559, 560, 561, 562, 0, 563,
+ 564, 565, 0, 0, 566, 567, 568, 569, 570, 0,
+ 571, 572, 573, 574, 575, 576, 577, 578, 0, 0,
+ 579, 580, 581, 582, 583, 0, 0, 584, 585, 586,
+ 587, 588, 589, 590, 0, 591, 0, 593, 594, 595,
+ 596, 0, 0, 597, 0, 0, 598, 599, 600, 601,
+ 602, 603, 604, 605, 606, 607, 608, 609, 610, 611,
+ 612, 613, 614, 615, 616, 617, 625, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
+ 242, 3512, 243, 244, 245, 0, 0, 0, 0, 0,
+ 0, 0, 246, 247, 248, 0, 249, 250, 251, 252,
+ 0, 254, 255, 256, 257, 258, 0, 260, 261, 0,
+ 262, 263, 264, 265, 266, 267, 268, 0, 0, 269,
+ 270, 271, 272, 273, 0, 274, 275, 276, 277, 278,
+ 0, 0, 0, 280, 281, 282, 283, 284, 285, 0,
+ 287, 288, 289, 0, 290, 291, 292, 293, 294, 295,
+ 0, 0, 297, 298, 299, 0, 0, 0, 0, 0,
+ 0, 0, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, 0, 310, 0, 311, 312, 313, 314, 315, 316,
+ 317, 0, 318, 319, 320, 321, 0, 0, 322, 323,
+ 324, 325, 326, 0, 327, 328, 329, 0, 330, 331,
+ 332, 0, 333, 334, 335, 336, 337, 338, 339, 340,
+ 341, 342, 0, 343, 0, 344, 345, 346, 347, 348,
+ 0, 349, 0, 350, 0, 0, 0, 353, 354, 355,
+ 356, 0, 357, 358, 0, 359, 360, 361, 0, 362,
+ 363, 364, 365, 366, 0, 368, 369, 370, 371, 0,
+ 372, 373, 374, 375, 376, 377, 378, 0, 379, 0,
+ 381, 382, 383, 384, 385, 386, 387, 0, 388, 0,
+ 389, 0, 0, 392, 0, 394, 395, 396, 397, 398,
+ 0, 0, 399, 400, 0, 402, 0, 0, 404, 405,
+ 406, 0, 0, 407, 408, 409, 410, 411, 412, 413,
+ 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
+ 424, 425, 0, 427, 428, 429, 430, 431, 432, 433,
+ 434, 435, 436, 437, 0, 438, 439, 0, 441, 0,
+ 442, 443, 444, 445, 446, 447, 0, 448, 449, 0,
+ 0, 450, 451, 452, 0, 0, 453, 454, 455, 0,
+ 457, 0, 459, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 0, 470, 471, 472, 473, 474, 475,
+ 476, 477, 0, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 488, 489, 490, 491, 492, 0, 493,
+ 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
+ 504, 505, 0, 506, 507, 0, 509, 510, 511, 512,
+ 513, 514, 515, 516, 517, 518, 519, 520, 521, 522,
+ 523, 0, 524, 525, 526, 527, 528, 0, 529, 530,
+ 531, 532, 533, 0, 535, 536, 537, 538, 0, 539,
+ 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
+ 550, 551, 552, 553, 0, 554, 555, 0, 556, 0,
+ 558, 559, 560, 561, 562, 0, 563, 564, 565, 0,
+ 0, 566, 567, 568, 569, 570, 0, 571, 572, 573,
+ 574, 575, 576, 577, 578, 0, 0, 579, 580, 581,
+ 582, 583, 3513, 0, 584, 585, 586, 587, 588, 589,
+ 590, 0, 591, 0, 593, 594, 595, 596, 0, 0,
+ 597, 0, 0, 598, 599, 600, 601, 602, 603, 604,
+ 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
+ 615, 616, 617, 625, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 235, 236, 237, 238, 239, 240, 241, 242, 3525, 243,
+ 244, 245, 0, 0, 0, 0, 0, 0, 0, 246,
+ 247, 248, 0, 249, 250, 251, 252, 0, 254, 255,
+ 256, 257, 258, 0, 260, 261, 0, 262, 263, 264,
+ 265, 266, 267, 268, 0, 0, 269, 270, 271, 272,
+ 273, 0, 274, 275, 276, 277, 278, 0, 0, 0,
+ 280, 281, 282, 283, 284, 285, 0, 287, 288, 289,
+ 0, 290, 291, 292, 293, 294, 295, 0, 0, 297,
+ 298, 299, 0, 0, 0, 0, 0, 0, 0, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 0, 310,
+ 0, 311, 312, 313, 314, 315, 316, 317, 0, 318,
+ 319, 320, 321, 0, 0, 322, 323, 324, 325, 326,
+ 0, 327, 328, 329, 0, 330, 331, 332, 0, 333,
+ 334, 335, 336, 337, 338, 339, 340, 341, 342, 0,
+ 343, 0, 344, 345, 346, 347, 348, 0, 349, 0,
+ 350, 0, 0, 0, 353, 354, 355, 356, 0, 357,
+ 358, 0, 359, 360, 361, 0, 362, 363, 364, 365,
+ 366, 0, 368, 369, 370, 371, 0, 372, 373, 374,
+ 375, 376, 377, 378, 0, 379, 0, 381, 382, 383,
+ 384, 385, 386, 387, 0, 388, 0, 389, 0, 0,
+ 392, 0, 394, 395, 396, 397, 398, 0, 0, 399,
+ 400, 0, 402, 0, 0, 404, 405, 406, 0, 0,
+ 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
+ 417, 418, 419, 420, 421, 422, 423, 424, 425, 0,
+ 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
+ 437, 0, 438, 439, 0, 441, 0, 442, 443, 444,
+ 445, 446, 447, 0, 448, 449, 0, 0, 450, 451,
+ 452, 0, 0, 453, 454, 455, 0, 457, 0, 459,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 0, 470, 471, 472, 473, 474, 475, 476, 477, 0,
+ 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
+ 488, 489, 490, 491, 492, 0, 493, 494, 495, 496,
+ 497, 498, 499, 500, 501, 502, 503, 504, 505, 0,
+ 506, 507, 0, 509, 510, 511, 512, 513, 514, 515,
+ 516, 517, 518, 519, 520, 521, 522, 523, 0, 524,
+ 525, 526, 527, 528, 0, 529, 530, 531, 532, 533,
+ 0, 535, 536, 537, 538, 0, 539, 540, 541, 542,
+ 543, 544, 545, 546, 547, 548, 549, 550, 551, 552,
+ 553, 0, 554, 555, 0, 556, 0, 558, 559, 560,
+ 561, 562, 0, 563, 564, 565, 0, 0, 566, 567,
+ 568, 569, 570, 0, 571, 572, 573, 574, 575, 576,
+ 577, 578, 0, 0, 579, 580, 581, 582, 583, 3526,
+ 0, 584, 585, 586, 587, 588, 589, 590, 0, 591,
+ 0, 593, 594, 595, 596, 0, 0, 597, 0, 0,
+ 598, 599, 600, 601, 602, 603, 604, 605, 606, 607,
+ 608, 609, 610, 611, 612, 613, 614, 615, 616, 617,
+ 625, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
+ 238, 239, 240, 241, 242, 626, 243, 244, 245, 0,
+ 0, 0, 0, 0, 0, 0, 246, 247, 248, 0,
+ 249, 250, 251, 252, 0, 254, 255, 256, 257, 258,
+ 0, 260, 261, 0, 262, 263, 264, 265, 266, 267,
+ 268, 0, 0, 269, 270, 271, 272, 273, 0, 274,
+ 275, 276, 277, 278, 0, 0, 0, 280, 281, 282,
+ 283, 284, 285, 0, 287, 288, 289, 0, 290, 291,
+ 292, 293, 294, 295, 0, 0, 297, 298, 299, 0,
+ 0, 0, 0, 0, 0, 0, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, 0, 310, 0, 311, 312,
+ 313, 314, 315, 316, 317, 0, 318, 319, 320, 321,
+ 0, 0, 322, 323, 324, 325, 326, 0, 327, 328,
+ 329, 0, 330, 331, 332, 0, 333, 334, 335, 336,
+ 337, 338, 339, 340, 341, 342, 0, 343, 0, 344,
+ 345, 346, 347, 348, 0, 349, 0, 350, 0, 0,
+ 0, 353, 354, 355, 356, 0, 357, 358, 0, 359,
+ 360, 361, 0, 362, 363, 364, 365, 366, 0, 368,
+ 369, 370, 371, 0, 372, 373, 374, 375, 376, 377,
+ 378, 0, 379, 0, 381, 382, 383, 384, 385, 386,
+ 387, 0, 388, 0, 389, 0, 0, 392, 0, 394,
+ 395, 396, 397, 398, 0, 0, 399, 400, 0, 402,
+ 0, 0, 404, 405, 406, 0, 0, 407, 408, 409,
+ 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
+ 420, 421, 422, 423, 424, 425, 0, 427, 428, 429,
+ 430, 431, 432, 433, 434, 435, 436, 437, 0, 438,
+ 439, 0, 441, 0, 442, 443, 444, 445, 446, 447,
+ 0, 448, 449, 0, 0, 450, 451, 452, 0, 0,
+ 453, 454, 455, 0, 457, 0, 459, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 0, 470, 471,
+ 472, 473, 474, 475, 476, 477, 0, 478, 479, 480,
+ 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
+ 491, 492, 0, 493, 494, 495, 496, 497, 498, 499,
+ 500, 501, 502, 503, 504, 505, 0, 506, 507, 0,
+ 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
+ 519, 520, 521, 522, 523, 0, 524, 525, 526, 527,
+ 528, 0, 529, 530, 531, 532, 533, 0, 535, 536,
+ 537, 538, 0, 539, 540, 541, 542, 543, 544, 545,
+ 546, 547, 548, 549, 550, 551, 552, 553, 0, 554,
+ 555, 0, 556, 0, 558, 559, 560, 561, 562, 0,
+ 563, 564, 565, 0, 0, 566, 567, 568, 569, 570,
+ 0, 571, 572, 573, 574, 575, 576, 577, 578, 0,
+ 0, 579, 580, 581, 582, 583, 0, 0, 584, 585,
+ 586, 587, 588, 589, 590, 0, 591, 0, 593, 594,
+ 595, 596, 0, 0, 597, 0, 0, 598, 599, 600,
+ 601, 602, 603, 604, 605, 606, 607, 608, 609, 610,
+ 611, 612, 613, 614, 615, 616, 617, 625, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
+ 241, 242, 675, 243, 244, 245, 0, 0, 0, 0,
+ 0, 0, 0, 246, 247, 248, 0, 249, 250, 251,
+ 252, 0, 254, 255, 256, 257, 258, 0, 260, 261,
+ 0, 262, 263, 264, 265, 266, 267, 268, 0, 0,
+ 269, 270, 271, 272, 273, 0, 274, 275, 276, 277,
+ 278, 0, 0, 0, 280, 281, 282, 283, 284, 285,
+ 0, 287, 288, 289, 0, 290, 291, 292, 293, 294,
+ 295, 0, 0, 297, 298, 299, 0, 0, 0, 0,
+ 0, 0, 0, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, 0, 310, 0, 311, 312, 313, 314, 315,
+ 316, 317, 0, 318, 319, 320, 321, 0, 0, 322,
+ 323, 324, 325, 326, 0, 327, 328, 329, 0, 330,
+ 331, 332, 0, 333, 334, 335, 336, 337, 338, 339,
+ 340, 341, 342, 0, 343, 0, 344, 345, 346, 347,
+ 348, 0, 349, 0, 350, 0, 0, 0, 353, 354,
+ 355, 356, 0, 357, 358, 0, 359, 360, 361, 0,
+ 362, 363, 364, 365, 366, 0, 368, 369, 370, 371,
+ 0, 372, 373, 374, 375, 376, 377, 378, 0, 379,
+ 0, 381, 382, 383, 384, 385, 386, 387, 0, 388,
+ 0, 389, 0, 0, 392, 0, 394, 395, 396, 397,
+ 398, 0, 0, 399, 400, 0, 402, 0, 0, 404,
+ 405, 406, 0, 0, 407, 408, 409, 410, 411, 412,
+ 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
+ 423, 424, 425, 0, 427, 428, 429, 430, 431, 432,
+ 433, 434, 435, 436, 437, 0, 438, 439, 0, 441,
+ 0, 442, 443, 444, 445, 446, 447, 0, 448, 449,
+ 0, 0, 450, 451, 452, 0, 0, 453, 454, 455,
+ 0, 457, 0, 459, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 0, 470, 471, 472, 473, 474,
+ 475, 676, 477, 0, 478, 479, 480, 481, 482, 483,
+ 484, 485, 486, 487, 488, 489, 490, 491, 492, 0,
+ 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
+ 503, 504, 505, 0, 506, 507, 0, 509, 510, 511,
+ 512, 513, 514, 515, 516, 517, 518, 519, 520, 521,
+ 522, 523, 0, 524, 525, 526, 527, 528, 0, 529,
+ 530, 531, 532, 533, 0, 535, 536, 537, 538, 0,
+ 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
+ 549, 550, 551, 552, 553, 0, 554, 555, 0, 556,
+ 0, 558, 559, 560, 561, 562, 0, 563, 564, 565,
+ 0, 0, 566, 567, 568, 569, 570, 0, 571, 572,
+ 573, 574, 575, 576, 577, 578, 0, 0, 579, 580,
+ 581, 582, 583, 0, 0, 584, 585, 586, 587, 588,
+ 589, 590, 0, 591, 0, 593, 594, 595, 596, 0,
+ 0, 597, 0, 0, 598, 599, 600, 601, 602, 603,
+ 604, 605, 606, 607, 608, 609, 610, 611, 612, 613,
+ 614, 615, 616, 617, 625, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 235, 236, 237, 238, 239, 240, 241, 242, 795,
+ 243, 244, 245, 0, 0, 0, 0, 0, 0, 0,
+ 246, 247, 248, 0, 249, 250, 251, 252, 0, 254,
+ 255, 256, 257, 258, 0, 260, 261, 0, 262, 263,
+ 264, 265, 266, 267, 268, 0, 0, 269, 270, 271,
+ 272, 273, 0, 274, 275, 276, 277, 278, 0, 0,
+ 0, 280, 281, 282, 283, 284, 285, 0, 287, 288,
+ 289, 0, 290, 291, 292, 293, 294, 295, 0, 0,
+ 297, 298, 299, 0, 0, 0, 0, 0, 0, 0,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, 0,
+ 310, 0, 311, 312, 313, 314, 315, 316, 317, 0,
+ 318, 319, 320, 321, 0, 0, 322, 323, 324, 325,
+ 326, 0, 327, 328, 329, 0, 330, 331, 332, 0,
+ 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
+ 0, 343, 0, 344, 345, 346, 347, 348, 0, 349,
+ 0, 350, 0, 0, 0, 353, 354, 355, 356, 0,
+ 357, 358, 0, 359, 360, 361, 0, 362, 363, 364,
+ 365, 366, 0, 368, 369, 370, 371, 0, 372, 373,
+ 374, 375, 376, 377, 378, 0, 379, 0, 381, 382,
+ 383, 384, 385, 386, 387, 0, 388, 0, 389, 0,
+ 0, 392, 0, 394, 395, 396, 397, 398, 0, 0,
+ 399, 400, 0, 402, 0, 0, 404, 405, 406, 0,
+ 0, 407, 408, 409, 410, 411, 412, 413, 414, 415,
+ 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
+ 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
+ 436, 437, 0, 438, 439, 0, 441, 0, 442, 443,
+ 444, 445, 446, 447, 0, 448, 449, 0, 0, 450,
+ 451, 452, 0, 0, 453, 454, 455, 0, 457, 0,
+ 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 0, 470, 471, 472, 473, 474, 475, 476, 477,
+ 0, 478, 479, 480, 481, 482, 483, 484, 485, 486,
+ 487, 488, 489, 490, 491, 492, 0, 493, 494, 495,
+ 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
+ 0, 506, 507, 0, 509, 510, 511, 512, 513, 514,
+ 515, 516, 517, 518, 519, 520, 521, 522, 523, 0,
+ 524, 525, 526, 527, 796, 0, 529, 530, 531, 532,
+ 533, 0, 535, 536, 537, 538, 0, 539, 540, 541,
+ 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
+ 552, 553, 0, 554, 555, 0, 556, 0, 558, 559,
+ 560, 561, 562, 0, 563, 797, 565, 0, 0, 798,
+ 567, 568, 569, 570, 0, 571, 572, 573, 574, 575,
+ 576, 577, 578, 0, 0, 579, 580, 581, 582, 583,
+ 0, 0, 584, 585, 586, 587, 588, 589, 590, 0,
+ 591, 0, 593, 594, 595, 596, 0, 0, 597, 0,
+ 0, 598, 599, 600, 601, 602, 603, 604, 605, 606,
+ 607, 608, 609, 610, 611, 612, 613, 614, 615, 616,
+ 617, 625, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
+ 237, 238, 239, 240, 241, 242, 829, 243, 244, 245,
+ 0, 0, 0, 0, 0, 0, 0, 246, 247, 248,
+ 0, 249, 250, 251, 252, 0, 254, 255, 256, 257,
+ 258, 0, 260, 261, 0, 262, 263, 264, 265, 266,
+ 267, 268, 0, 0, 269, 270, 271, 272, 273, 0,
+ 274, 275, 276, 277, 278, 0, 0, 0, 280, 281,
+ 282, 283, 284, 285, 0, 287, 288, 289, 0, 290,
+ 291, 292, 293, 294, 295, 0, 0, 297, 298, 299,
+ 0, 0, 0, 0, 0, 0, 0, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, 0, 310, 0, 311,
+ 312, 313, 314, 315, 316, 317, 0, 318, 319, 320,
+ 321, 0, 0, 322, 323, 324, 325, 326, 0, 327,
+ 328, 329, 0, 330, 331, 332, 0, 333, 334, 335,
+ 336, 337, 338, 339, 340, 341, 342, 0, 343, 0,
+ 344, 345, 346, 347, 348, 0, 349, 0, 350, 0,
+ 0, 0, 353, 354, 355, 356, 0, 357, 358, 0,
+ 359, 360, 361, 0, 362, 363, 364, 365, 366, 0,
+ 368, 369, 370, 371, 0, 372, 373, 374, 375, 376,
+ 377, 378, 0, 379, 0, 381, 382, 383, 384, 385,
+ 386, 387, 0, 388, 0, 389, 0, 0, 392, 0,
+ 394, 395, 396, 397, 398, 0, 0, 399, 400, 0,
+ 402, 0, 0, 404, 405, 406, 0, 0, 407, 408,
+ 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
+ 419, 420, 421, 422, 423, 424, 425, 0, 427, 428,
+ 429, 430, 431, 432, 433, 434, 435, 436, 437, 0,
+ 438, 439, 0, 441, 0, 442, 443, 444, 445, 446,
+ 447, 0, 448, 449, 0, 0, 450, 451, 452, 0,
+ 0, 453, 454, 455, 0, 457, 0, 459, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 0, 470,
+ 471, 472, 473, 474, 475, 476, 477, 0, 478, 479,
+ 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
+ 490, 491, 492, 0, 493, 494, 495, 496, 497, 498,
+ 499, 500, 501, 502, 503, 504, 505, 0, 506, 507,
+ 0, 509, 510, 511, 512, 513, 514, 515, 516, 517,
+ 518, 519, 520, 521, 522, 523, 0, 524, 525, 526,
+ 527, 830, 0, 529, 530, 531, 532, 533, 0, 535,
+ 536, 537, 538, 0, 539, 540, 541, 542, 543, 544,
+ 545, 546, 547, 548, 549, 550, 551, 552, 553, 0,
+ 554, 555, 0, 556, 0, 558, 559, 560, 561, 562,
+ 0, 563, 831, 565, 0, 0, 832, 567, 568, 569,
+ 570, 0, 571, 572, 573, 574, 575, 576, 577, 578,
+ 0, 0, 579, 580, 581, 582, 583, 0, 0, 584,
+ 585, 586, 587, 588, 589, 590, 0, 591, 0, 593,
+ 594, 595, 596, 0, 0, 597, 0, 0, 598, 599,
+ 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
+ 610, 611, 612, 613, 614, 615, 616, 617, 625, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
+ 240, 241, 242, 0, 243, 244, 245, 0, 0, 0,
+ 0, 0, 0, 0, 246, 247, 248, 0, 249, 250,
+ 251, 252, 0, 254, 255, 256, 257, 258, 0, 260,
+ 261, 0, 262, 263, 264, 265, 266, 267, 268, 0,
+ 0, 269, 270, 271, 272, 273, 0, 274, 275, 276,
+ 277, 278, 0, 0, 0, 280, 281, 282, 283, 284,
+ 285, 0, 287, 288, 289, 0, 290, 291, 292, 293,
+ 294, 295, 0, 0, 297, 298, 299, 0, 0, 0,
+ 0, 0, 0, 0, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, 0, 310, 0, 311, 312, 313, 314,
+ 315, 316, 317, 0, 318, 319, 320, 321, 0, 0,
+ 322, 323, 324, 325, 326, 0, 327, 328, 329, 0,
+ 330, 331, 332, 0, 333, 334, 335, 336, 337, 338,
+ 339, 340, 341, 342, 0, 343, 0, 344, 345, 346,
+ 347, 348, 0, 349, 0, 350, 0, 0, 0, 353,
+ 354, 355, 356, 0, 357, 358, 0, 359, 360, 361,
+ 0, 362, 363, 364, 365, 366, 0, 368, 369, 370,
+ 371, 0, 372, 373, 374, 375, 376, 377, 378, 0,
+ 379, 0, 381, 382, 383, 384, 385, 386, 387, 0,
+ 388, 0, 389, 0, 0, 392, 0, 394, 395, 396,
+ 397, 398, 0, 0, 399, 400, 0, 402, 0, 0,
+ 404, 405, 406, 0, 0, 407, 408, 409, 410, 411,
+ 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
+ 422, 423, 424, 425, 0, 427, 428, 429, 430, 431,
+ 432, 433, 434, 435, 436, 437, 0, 438, 439, 0,
+ 441, 0, 442, 443, 444, 445, 446, 447, 0, 448,
+ 449, 0, 835, 450, 451, 452, 0, 0, 453, 454,
+ 455, 0, 457, 0, 459, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 0, 470, 471, 472, 473,
+ 474, 475, 476, 477, 0, 478, 479, 480, 481, 482,
+ 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
+ 0, 493, 494, 495, 496, 497, 498, 499, 500, 501,
+ 502, 503, 504, 505, 0, 506, 507, 0, 509, 510,
+ 511, 512, 513, 514, 515, 516, 517, 518, 519, 520,
+ 521, 522, 523, 0, 524, 525, 526, 527, 528, 0,
+ 529, 530, 531, 532, 533, 0, 535, 536, 537, 538,
+ 0, 539, 540, 541, 542, 543, 544, 545, 546, 547,
+ 548, 549, 550, 551, 552, 553, 0, 554, 555, 0,
+ 556, 0, 558, 559, 560, 561, 562, 0, 563, 564,
+ 565, 0, 0, 566, 567, 568, 569, 570, 0, 571,
+ 572, 573, 574, 575, 576, 577, 578, 0, 0, 579,
+ 580, 581, 582, 583, 0, 0, 584, 585, 586, 587,
+ 588, 589, 590, 0, 591, 0, 593, 594, 595, 596,
+ 0, 0, 597, 0, 0, 598, 599, 600, 601, 602,
+ 603, 604, 605, 606, 607, 608, 609, 610, 611, 612,
+ 613, 614, 615, 616, 617, 625, 0, 0, 0, 0,
+ 0, 0, 0, 0, 893, 0, 0, 0, 0, 0,
+ 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
+ 0, 243, 244, 245, 0, 0, 0, 0, 0, 0,
+ 0, 246, 247, 248, 0, 249, 250, 251, 252, 0,
+ 254, 255, 256, 257, 258, 0, 260, 261, 0, 262,
+ 263, 264, 265, 266, 267, 268, 0, 0, 269, 270,
+ 271, 272, 273, 0, 274, 275, 276, 277, 278, 0,
+ 0, 0, 280, 281, 282, 283, 284, 285, 0, 287,
+ 288, 289, 0, 290, 291, 292, 293, 294, 295, 0,
+ 0, 297, 298, 299, 0, 0, 0, 0, 0, 0,
+ 0, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ 0, 310, 0, 311, 312, 313, 314, 315, 316, 317,
+ 0, 318, 319, 320, 321, 0, 0, 322, 323, 324,
+ 325, 326, 0, 327, 328, 329, 0, 330, 331, 332,
+ 0, 333, 334, 335, 336, 337, 338, 339, 340, 341,
+ 342, 0, 343, 0, 344, 345, 346, 347, 348, 0,
+ 349, 0, 350, 0, 0, 0, 353, 354, 355, 356,
+ 0, 357, 358, 0, 359, 360, 361, 0, 362, 363,
+ 364, 365, 366, 0, 368, 369, 370, 371, 0, 372,
+ 373, 374, 375, 376, 377, 378, 0, 379, 0, 381,
+ 382, 383, 384, 385, 386, 387, 0, 388, 0, 389,
+ 0, 0, 392, 0, 394, 395, 396, 397, 398, 0,
+ 0, 399, 400, 0, 402, 0, 0, 404, 405, 406,
+ 0, 0, 407, 408, 409, 410, 411, 412, 413, 414,
+ 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
+ 425, 0, 427, 428, 429, 430, 431, 432, 433, 434,
+ 435, 436, 437, 0, 438, 439, 0, 441, 0, 442,
+ 443, 444, 445, 446, 447, 0, 448, 449, 0, 0,
+ 450, 451, 452, 0, 0, 453, 454, 455, 0, 457,
+ 0, 459, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 0, 470, 471, 472, 473, 474, 475, 476,
+ 477, 0, 478, 479, 480, 481, 482, 483, 484, 485,
+ 486, 487, 488, 489, 490, 491, 492, 0, 493, 494,
+ 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
+ 505, 0, 506, 507, 0, 509, 510, 511, 512, 513,
+ 514, 515, 516, 517, 518, 519, 520, 521, 522, 523,
+ 0, 524, 525, 526, 527, 528, 0, 529, 530, 531,
+ 532, 533, 0, 535, 536, 537, 538, 0, 539, 540,
+ 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
+ 551, 552, 553, 0, 554, 555, 0, 556, 0, 558,
+ 559, 560, 561, 562, 0, 563, 564, 565, 0, 0,
+ 566, 567, 568, 569, 570, 0, 571, 572, 573, 574,
+ 575, 576, 577, 578, 0, 0, 579, 580, 581, 582,
+ 583, 0, 0, 584, 585, 586, 587, 588, 589, 590,
+ 0, 591, 0, 593, 594, 595, 596, 0, 0, 597,
+ 0, 0, 598, 599, 600, 601, 602, 603, 604, 605,
+ 606, 607, 608, 609, 610, 611, 612, 613, 614, 615,
+ 616, 617, 625, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
+ 236, 237, 238, 239, 240, 241, 242, 948, 243, 244,
+ 245, 0, 0, 0, 0, 0, 0, 0, 246, 247,
+ 248, 0, 249, 250, 251, 252, 0, 254, 255, 256,
+ 257, 258, 0, 260, 261, 0, 262, 263, 264, 265,
+ 266, 267, 268, 0, 0, 269, 270, 271, 272, 273,
+ 0, 274, 275, 276, 277, 278, 0, 0, 0, 280,
+ 281, 282, 283, 284, 285, 0, 287, 288, 289, 0,
+ 290, 291, 292, 293, 294, 295, 0, 0, 297, 298,
+ 299, 0, 0, 0, 0, 0, 0, 0, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, 0, 310, 0,
+ 311, 312, 313, 314, 315, 316, 317, 0, 318, 319,
+ 320, 321, 0, 0, 322, 323, 324, 325, 326, 0,
+ 327, 328, 329, 0, 330, 331, 332, 0, 333, 334,
+ 335, 336, 337, 338, 339, 340, 341, 342, 0, 343,
+ 0, 344, 345, 346, 347, 348, 0, 349, 0, 350,
+ 0, 0, 0, 353, 354, 355, 356, 0, 357, 358,
+ 0, 359, 360, 361, 0, 362, 363, 364, 365, 949,
+ 0, 368, 369, 370, 371, 0, 372, 373, 374, 375,
+ 376, 377, 378, 0, 379, 0, 381, 382, 383, 384,
+ 385, 386, 387, 0, 388, 0, 389, 0, 0, 392,
+ 0, 394, 395, 396, 397, 398, 0, 0, 399, 400,
+ 0, 402, 0, 0, 404, 405, 406, 0, 0, 407,
+ 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
+ 418, 419, 420, 421, 422, 423, 424, 425, 0, 427,
+ 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
+ 0, 438, 439, 0, 441, 0, 442, 443, 444, 445,
+ 446, 447, 0, 448, 449, 0, 0, 450, 451, 452,
+ 0, 0, 453, 454, 455, 0, 457, 0, 459, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 0,
+ 470, 471, 472, 473, 474, 475, 476, 477, 0, 478,
+ 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
+ 489, 490, 491, 492, 0, 493, 494, 495, 496, 497,
+ 498, 499, 500, 501, 502, 503, 504, 505, 0, 506,
+ 507, 0, 509, 510, 511, 512, 513, 514, 515, 516,
+ 517, 518, 519, 520, 521, 522, 523, 0, 524, 525,
+ 526, 527, 528, 0, 529, 530, 531, 532, 533, 0,
+ 535, 536, 537, 538, 0, 539, 540, 541, 542, 543,
+ 544, 545, 546, 547, 548, 549, 550, 551, 552, 553,
+ 0, 554, 555, 0, 556, 0, 558, 559, 560, 561,
+ 562, 0, 563, 564, 565, 0, 0, 566, 567, 568,
+ 569, 570, 0, 571, 572, 573, 574, 575, 576, 577,
+ 578, 0, 0, 579, 580, 581, 582, 583, 0, 0,
+ 584, 585, 586, 587, 588, 589, 590, 0, 591, 0,
+ 593, 594, 595, 596, 0, 0, 597, 0, 0, 598,
+ 599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
+ 609, 610, 611, 612, 613, 614, 615, 616, 617, 625,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
+ 239, 240, 241, 242, 1109, 243, 244, 245, 0, 0,
+ 0, 0, 0, 0, 0, 246, 247, 248, 0, 249,
+ 250, 251, 252, 0, 254, 255, 256, 257, 258, 0,
+ 260, 261, 0, 262, 263, 264, 265, 266, 267, 268,
+ 0, 0, 269, 270, 271, 272, 273, 0, 274, 275,
+ 276, 277, 278, 0, 0, 0, 280, 281, 282, 283,
+ 284, 285, 0, 287, 288, 289, 0, 290, 291, 292,
+ 293, 294, 295, 0, 0, 297, 298, 299, 0, 0,
+ 0, 0, 0, 0, 0, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, 0, 310, 0, 311, 312, 313,
+ 314, 315, 316, 317, 0, 318, 319, 320, 321, 0,
+ 0, 322, 323, 324, 325, 326, 0, 327, 328, 329,
+ 0, 330, 331, 332, 0, 333, 334, 335, 336, 337,
+ 338, 339, 340, 341, 342, 0, 343, 0, 344, 345,
+ 346, 347, 348, 0, 349, 0, 350, 0, 0, 0,
+ 353, 354, 355, 356, 0, 357, 358, 0, 359, 360,
+ 361, 0, 362, 363, 364, 365, 366, 0, 368, 369,
+ 370, 371, 0, 372, 373, 374, 375, 376, 377, 378,
+ 0, 379, 0, 381, 382, 383, 384, 385, 386, 387,
+ 0, 388, 0, 389, 0, 0, 392, 0, 394, 395,
+ 396, 397, 398, 0, 0, 399, 400, 0, 402, 0,
+ 0, 404, 405, 406, 0, 0, 407, 408, 409, 410,
+ 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
+ 421, 422, 423, 424, 425, 0, 427, 428, 429, 430,
+ 431, 432, 433, 434, 435, 436, 437, 0, 438, 439,
+ 0, 441, 0, 442, 443, 444, 445, 446, 447, 0,
+ 448, 449, 0, 0, 450, 451, 452, 0, 0, 453,
+ 454, 455, 0, 457, 0, 459, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 0, 470, 471, 472,
+ 473, 474, 475, 476, 477, 0, 478, 479, 480, 481,
+ 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
+ 492, 0, 493, 494, 495, 496, 497, 498, 499, 500,
+ 501, 502, 503, 504, 505, 0, 506, 507, 0, 509,
+ 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
+ 520, 521, 522, 523, 0, 524, 525, 526, 527, 528,
+ 0, 529, 530, 531, 532, 533, 0, 535, 536, 537,
+ 538, 0, 539, 540, 541, 542, 543, 544, 545, 546,
+ 547, 548, 549, 550, 551, 552, 553, 0, 554, 555,
+ 0, 556, 0, 558, 559, 560, 561, 562, 0, 563,
+ 564, 565, 0, 0, 566, 567, 568, 569, 570, 0,
+ 571, 572, 573, 574, 575, 576, 577, 578, 0, 0,
+ 579, 580, 581, 582, 583, 0, 0, 584, 585, 586,
+ 587, 588, 589, 590, 0, 591, 0, 593, 594, 595,
+ 596, 0, 0, 597, 0, 0, 598, 599, 600, 601,
+ 602, 603, 604, 605, 606, 607, 608, 609, 610, 611,
+ 612, 613, 614, 615, 616, 617, 625, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
+ 242, 1341, 243, 244, 245, 0, 0, 0, 0, 0,
+ 0, 0, 246, 247, 248, 0, 249, 250, 251, 252,
+ 0, 254, 255, 256, 257, 258, 0, 260, 261, 0,
+ 262, 263, 264, 265, 266, 267, 268, 0, 0, 269,
+ 270, 271, 272, 273, 0, 274, 275, 276, 277, 278,
+ 0, 0, 0, 280, 281, 282, 283, 284, 285, 0,
+ 287, 288, 289, 0, 290, 291, 292, 293, 294, 295,
+ 0, 0, 297, 298, 299, 0, 0, 0, 0, 0,
+ 0, 0, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, 0, 310, 0, 311, 312, 313, 314, 315, 316,
+ 317, 0, 318, 319, 320, 321, 0, 0, 322, 323,
+ 324, 325, 326, 0, 327, 328, 329, 0, 330, 331,
+ 332, 0, 333, 334, 335, 336, 337, 338, 339, 340,
+ 341, 342, 0, 343, 0, 344, 345, 346, 347, 348,
+ 0, 349, 0, 350, 0, 0, 0, 353, 354, 355,
+ 356, 0, 357, 358, 0, 359, 360, 361, 0, 362,
+ 363, 364, 365, 366, 0, 368, 369, 370, 371, 0,
+ 372, 373, 374, 375, 376, 377, 378, 0, 379, 0,
+ 381, 382, 383, 384, 385, 386, 387, 0, 388, 0,
+ 389, 0, 0, 392, 0, 394, 395, 396, 397, 398,
+ 0, 0, 399, 400, 0, 402, 0, 0, 404, 405,
+ 406, 0, 0, 407, 408, 409, 410, 411, 412, 413,
+ 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
+ 424, 425, 0, 427, 428, 429, 430, 431, 432, 433,
+ 434, 435, 436, 437, 0, 438, 439, 0, 441, 0,
+ 442, 443, 444, 445, 446, 447, 0, 448, 449, 0,
+ 0, 450, 451, 452, 0, 0, 453, 454, 455, 0,
+ 457, 0, 459, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 0, 470, 471, 472, 473, 474, 475,
+ 476, 477, 0, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 488, 489, 490, 491, 492, 0, 493,
+ 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
+ 504, 505, 0, 506, 507, 0, 509, 510, 511, 512,
+ 513, 514, 515, 516, 517, 518, 519, 520, 521, 522,
+ 523, 0, 524, 525, 526, 527, 528, 0, 529, 530,
+ 531, 532, 533, 0, 535, 536, 537, 538, 0, 539,
+ 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
+ 550, 551, 552, 553, 0, 554, 555, 0, 556, 0,
+ 558, 559, 560, 561, 562, 0, 563, 564, 565, 0,
+ 0, 566, 567, 568, 569, 570, 0, 571, 572, 573,
+ 574, 575, 576, 577, 578, 0, 0, 579, 580, 581,
+ 582, 583, 0, 0, 584, 585, 586, 587, 588, 589,
+ 590, 0, 591, 0, 593, 594, 595, 596, 0, 0,
+ 597, 0, 0, 598, 599, 600, 601, 602, 603, 604,
+ 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
+ 615, 616, 617, 625, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 235, 236, 237, 238, 239, 240, 241, 242, 0, 243,
+ 244, 245, 0, 0, 0, 0, 0, 0, 0, 246,
+ 247, 248, 0, 249, 250, 251, 252, 1352, 254, 255,
+ 256, 257, 258, 0, 260, 261, 0, 262, 263, 264,
+ 265, 266, 267, 268, 0, 0, 815, 270, 271, 272,
+ 1353, 0, 274, 275, 276, 277, 278, 0, 0, 0,
+ 280, 281, 282, 283, 284, 285, 0, 287, 288, 289,
+ 0, 290, 291, 292, 293, 294, 295, 0, 0, 297,
+ 298, 299, 0, 0, 0, 0, 0, 0, 0, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 0, 310,
+ 0, 311, 312, 313, 314, 315, 316, 317, 0, 318,
+ 319, 320, 321, 0, 0, 322, 323, 324, 325, 326,
+ 0, 327, 328, 329, 0, 330, 331, 332, 0, 333,
+ 334, 335, 336, 337, 338, 339, 340, 341, 342, 0,
+ 343, 0, 344, 345, 346, 347, 348, 0, 349, 0,
+ 350, 0, 0, 0, 353, 354, 355, 356, 0, 357,
+ 358, 0, 359, 360, 361, 0, 362, 363, 364, 365,
+ 366, 0, 368, 369, 370, 371, 0, 372, 373, 374,
+ 375, 376, 377, 378, 0, 379, 0, 381, 382, 383,
+ 384, 385, 386, 387, 0, 388, 0, 389, 0, 0,
+ 392, 0, 394, 395, 396, 397, 398, 0, 0, 399,
+ 400, 0, 402, 0, 0, 404, 405, 406, 0, 0,
+ 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
+ 417, 418, 419, 420, 421, 422, 423, 818, 425, 0,
+ 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
+ 437, 0, 438, 439, 0, 441, 0, 442, 443, 444,
+ 445, 446, 447, 0, 448, 449, 0, 0, 450, 451,
+ 452, 0, 0, 453, 454, 455, 0, 457, 0, 459,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 0, 470, 471, 472, 473, 474, 475, 476, 477, 0,
+ 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
+ 488, 489, 490, 491, 492, 0, 493, 494, 495, 496,
+ 497, 498, 499, 500, 501, 502, 503, 504, 505, 0,
+ 506, 507, 0, 819, 510, 511, 512, 513, 514, 515,
+ 516, 517, 820, 519, 520, 521, 522, 523, 0, 524,
+ 525, 526, 527, 1345, 0, 529, 530, 531, 532, 533,
+ 0, 535, 536, 537, 538, 0, 539, 540, 541, 542,
+ 543, 544, 545, 546, 547, 548, 549, 550, 551, 552,
+ 553, 0, 554, 555, 0, 556, 0, 558, 559, 560,
+ 561, 562, 0, 563, 822, 565, 0, 0, 823, 567,
+ 568, 569, 570, 0, 571, 572, 573, 574, 575, 576,
+ 577, 578, 0, 0, 579, 580, 581, 582, 583, 0,
+ 0, 584, 585, 586, 587, 588, 589, 590, 0, 591,
+ 0, 593, 594, 595, 596, 0, 0, 597, 0, 0,
+ 598, 599, 600, 601, 602, 824, 604, 605, 606, 607,
+ 608, 609, 610, 611, 612, 613, 614, 615, 616, 617,
+ 625, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
+ 238, 239, 240, 241, 242, 0, 243, 244, 245, 0,
+ 0, 0, 0, 0, 0, 0, 246, 247, 248, 0,
+ 249, 250, 251, 252, 0, 254, 255, 256, 257, 258,
+ 0, 260, 261, 0, 262, 263, 264, 265, 266, 267,
+ 268, 0, 0, 269, 270, 271, 272, 273, 0, 274,
+ 275, 276, 277, 278, 0, 0, 0, 280, 281, 282,
+ 283, 284, 285, 0, 287, 288, 289, 0, 290, 291,
+ 292, 293, 294, 295, 0, 0, 297, 298, 299, 0,
+ 0, 0, 0, 0, 0, 0, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, 0, 310, 0, 311, 312,
+ 313, 314, 315, 316, 317, 0, 318, 319, 320, 321,
+ 0, 0, 322, 323, 324, 325, 326, 0, 327, 328,
+ 329, 0, 330, 331, 332, 0, 333, 334, 335, 336,
+ 337, 338, 339, 340, 341, 342, 0, 343, 0, 344,
+ 345, 346, 347, 348, 0, 349, 0, 350, 0, 0,
+ 0, 353, 354, 355, 356, 0, 357, 358, 0, 359,
+ 360, 361, 0, 362, 363, 364, 365, 1498, 0, 368,
+ 369, 370, 371, 0, 372, 373, 374, 375, 376, 377,
+ 378, 0, 379, 0, 381, 382, 383, 384, 385, 386,
+ 387, 0, 388, 0, 389, 0, 0, 392, 0, 394,
+ 395, 396, 397, 398, 0, 0, 399, 400, 0, 402,
+ 0, 0, 404, 405, 406, 0, 0, 407, 408, 409,
+ 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
+ 420, 421, 422, 423, 424, 425, 0, 427, 428, 429,
+ 430, 431, 432, 433, 434, 435, 436, 437, 0, 438,
+ 439, 0, 441, 0, 442, 443, 444, 445, 446, 447,
+ 0, 448, 449, 0, 835, 450, 451, 452, 0, 0,
+ 453, 454, 455, 0, 457, 0, 459, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 0, 470, 471,
+ 472, 473, 474, 475, 476, 477, 0, 478, 479, 480,
+ 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
+ 491, 492, 0, 493, 494, 495, 496, 497, 498, 499,
+ 500, 501, 502, 503, 504, 505, 0, 506, 507, 0,
+ 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
+ 519, 520, 521, 522, 523, 0, 524, 525, 526, 527,
+ 528, 0, 529, 530, 531, 532, 533, 0, 535, 536,
+ 537, 538, 0, 539, 540, 541, 542, 543, 544, 545,
+ 546, 547, 548, 549, 550, 551, 552, 553, 0, 554,
+ 555, 0, 556, 0, 558, 559, 560, 561, 562, 0,
+ 563, 564, 565, 0, 0, 566, 567, 568, 569, 570,
+ 0, 571, 572, 573, 574, 575, 576, 577, 578, 0,
+ 0, 579, 580, 581, 582, 583, 0, 0, 584, 585,
+ 586, 587, 588, 589, 590, 0, 591, 0, 593, 594,
+ 595, 596, 0, 0, 597, 0, 0, 598, 599, 600,
+ 601, 602, 603, 604, 605, 606, 607, 608, 609, 610,
+ 611, 612, 613, 614, 615, 616, 617, 625, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
+ 241, 242, 1559, 243, 244, 245, 0, 0, 0, 0,
+ 0, 0, 0, 246, 247, 248, 0, 249, 250, 251,
+ 252, 0, 254, 255, 256, 257, 258, 0, 260, 261,
+ 0, 262, 263, 264, 265, 266, 267, 268, 0, 0,
+ 269, 270, 271, 272, 273, 0, 274, 275, 276, 277,
+ 278, 0, 0, 0, 280, 281, 282, 283, 284, 285,
+ 0, 287, 288, 289, 0, 290, 291, 292, 293, 294,
+ 295, 0, 0, 297, 298, 299, 0, 0, 0, 0,
+ 0, 0, 0, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, 0, 310, 0, 311, 312, 313, 314, 315,
+ 316, 317, 0, 318, 319, 320, 321, 0, 0, 322,
+ 323, 324, 325, 326, 0, 327, 328, 329, 0, 330,
+ 331, 332, 0, 333, 334, 335, 336, 337, 338, 339,
+ 340, 341, 342, 0, 343, 0, 344, 345, 346, 347,
+ 348, 0, 349, 0, 350, 0, 0, 0, 353, 354,
+ 355, 356, 0, 357, 358, 0, 359, 360, 361, 0,
+ 362, 363, 364, 365, 1560, 0, 368, 369, 370, 371,
+ 0, 372, 373, 374, 375, 376, 377, 378, 0, 379,
+ 0, 381, 382, 383, 384, 385, 386, 387, 0, 388,
+ 0, 389, 0, 0, 392, 0, 394, 395, 396, 397,
+ 398, 0, 0, 399, 400, 0, 402, 0, 0, 404,
+ 405, 406, 0, 0, 407, 408, 409, 410, 411, 412,
+ 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
+ 423, 424, 425, 0, 427, 428, 429, 430, 431, 432,
+ 433, 434, 435, 436, 437, 0, 438, 439, 0, 441,
+ 0, 442, 443, 444, 445, 446, 447, 0, 448, 449,
+ 0, 0, 450, 451, 452, 0, 0, 453, 454, 455,
+ 0, 457, 0, 459, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 0, 470, 471, 472, 473, 474,
+ 475, 476, 477, 0, 478, 479, 480, 481, 482, 483,
+ 484, 485, 486, 487, 488, 489, 490, 491, 492, 0,
+ 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
+ 503, 504, 505, 0, 506, 507, 0, 509, 510, 511,
+ 512, 513, 514, 515, 516, 517, 518, 519, 520, 521,
+ 522, 523, 0, 524, 525, 526, 527, 528, 0, 529,
+ 530, 531, 532, 533, 0, 535, 536, 537, 538, 0,
+ 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
+ 549, 550, 551, 552, 553, 0, 554, 555, 0, 556,
+ 0, 558, 559, 560, 561, 562, 0, 563, 564, 565,
+ 0, 0, 566, 567, 568, 569, 570, 0, 571, 572,
+ 573, 574, 575, 576, 577, 578, 0, 0, 579, 580,
+ 581, 582, 583, 0, 0, 584, 585, 586, 587, 588,
+ 589, 590, 0, 591, 0, 593, 594, 595, 596, 0,
+ 0, 597, 0, 0, 598, 599, 600, 601, 602, 603,
+ 604, 605, 606, 607, 608, 609, 610, 611, 612, 613,
+ 614, 615, 616, 617, 625, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 235, 236, 237, 238, 239, 240, 241, 242, 795,
+ 243, 244, 245, 0, 0, 0, 0, 0, 0, 0,
+ 246, 247, 248, 0, 249, 250, 251, 252, 0, 254,
+ 255, 256, 257, 258, 0, 260, 261, 0, 262, 263,
+ 264, 265, 266, 267, 268, 0, 0, 269, 270, 271,
+ 272, 273, 0, 274, 275, 276, 277, 278, 0, 0,
+ 0, 280, 281, 282, 283, 284, 285, 0, 287, 288,
+ 289, 0, 290, 291, 292, 293, 294, 295, 0, 0,
+ 297, 298, 299, 0, 0, 0, 0, 0, 0, 0,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, 0,
+ 310, 0, 311, 312, 313, 314, 315, 316, 317, 0,
+ 318, 319, 320, 321, 0, 0, 322, 323, 324, 325,
+ 326, 0, 327, 328, 329, 0, 330, 331, 332, 0,
+ 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
+ 0, 343, 0, 344, 345, 346, 347, 348, 0, 349,
+ 0, 350, 0, 0, 0, 353, 354, 355, 356, 0,
+ 357, 358, 0, 359, 360, 361, 0, 362, 363, 364,
+ 365, 366, 0, 368, 369, 370, 371, 0, 372, 373,
+ 374, 375, 376, 377, 378, 0, 379, 0, 381, 382,
+ 383, 384, 385, 386, 387, 0, 388, 0, 389, 0,
+ 0, 392, 0, 394, 395, 396, 397, 398, 0, 0,
+ 399, 400, 0, 402, 0, 0, 404, 405, 406, 0,
+ 0, 407, 408, 409, 410, 411, 412, 413, 414, 415,
+ 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
+ 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
+ 436, 437, 0, 438, 439, 0, 441, 0, 442, 443,
+ 444, 445, 446, 447, 0, 448, 449, 0, 0, 450,
+ 451, 452, 0, 0, 453, 454, 455, 0, 457, 0,
+ 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 0, 470, 471, 472, 473, 474, 475, 476, 477,
+ 0, 478, 479, 480, 481, 482, 483, 484, 485, 486,
+ 487, 488, 489, 490, 491, 492, 0, 493, 494, 495,
+ 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
+ 0, 506, 507, 0, 509, 510, 511, 512, 513, 514,
+ 515, 516, 517, 518, 519, 520, 521, 522, 523, 0,
+ 524, 525, 526, 527, 528, 0, 529, 530, 531, 532,
+ 533, 0, 535, 536, 537, 538, 0, 539, 540, 541,
+ 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
+ 552, 553, 0, 554, 555, 0, 556, 0, 558, 559,
+ 560, 561, 562, 0, 563, 564, 565, 0, 0, 566,
+ 567, 568, 569, 570, 0, 571, 572, 573, 574, 575,
+ 576, 577, 578, 0, 0, 579, 580, 581, 582, 583,
+ 0, 0, 584, 585, 586, 587, 588, 589, 590, 0,
+ 591, 0, 593, 594, 595, 596, 0, 0, 597, 0,
+ 0, 598, 599, 600, 601, 602, 603, 604, 605, 606,
+ 607, 608, 609, 610, 611, 612, 613, 614, 615, 616,
+ 617, 625, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
+ 237, 238, 239, 240, 241, 242, 0, 243, 244, 245,
+ 0, 0, 0, 0, 0, 0, 0, 246, 247, 248,
+ 0, 249, 250, 251, 252, 0, 254, 255, 256, 257,
+ 258, 0, 260, 261, 0, 262, 263, 264, 265, 266,
+ 267, 268, 0, 0, 269, 270, 271, 272, 273, 0,
+ 274, 275, 276, 277, 278, 0, 0, 0, 280, 281,
+ 282, 283, 284, 285, 0, 287, 288, 289, 0, 290,
+ 291, 292, 293, 294, 295, 0, 0, 297, 298, 299,
+ 0, 0, 0, 0, 0, 0, 0, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, 0, 310, 0, 311,
+ 312, 313, 314, 315, 316, 317, 0, 318, 319, 320,
+ 321, 0, 0, 322, 323, 324, 325, 326, 0, 327,
+ 328, 329, 0, 330, 331, 332, 0, 333, 334, 335,
+ 336, 337, 338, 339, 340, 341, 342, 0, 343, 0,
+ 344, 345, 346, 347, 348, 0, 349, 0, 350, 0,
+ 0, 0, 353, 354, 355, 3284, 0, 357, 358, 0,
+ 359, 360, 361, 0, 362, 363, 364, 365, 366, 0,
+ 368, 369, 370, 371, 0, 372, 373, 374, 375, 376,
+ 377, 378, 0, 379, 0, 381, 382, 383, 384, 385,
+ 386, 387, 0, 388, 0, 389, 0, 0, 392, 0,
+ 394, 395, 396, 397, 398, 0, 0, 399, 400, 0,
+ 402, 0, 0, 404, 405, 3285, 0, 0, 407, 408,
+ 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
+ 419, 420, 421, 422, 423, 424, 425, 0, 427, 428,
+ 429, 430, 431, 432, 433, 434, 435, 436, 437, 0,
+ 438, 439, 0, 441, 0, 442, 443, 444, 445, 446,
+ 447, 0, 448, 449, 0, 0, 450, 451, 452, 0,
+ 0, 453, 454, 455, 0, 457, 0, 459, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 0, 470,
+ 471, 472, 473, 474, 475, 476, 477, 0, 478, 479,
+ 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
+ 490, 491, 492, 0, 493, 494, 495, 496, 497, 498,
+ 499, 500, 501, 502, 503, 504, 505, 0, 506, 507,
+ 0, 509, 510, 511, 512, 513, 514, 515, 516, 517,
+ 518, 519, 520, 521, 522, 523, 0, 524, 525, 526,
+ 527, 528, 0, 529, 530, 531, 532, 533, 0, 535,
+ 536, 537, 538, 0, 539, 540, 541, 542, 543, 544,
+ 545, 546, 547, 548, 549, 550, 551, 552, 553, 0,
+ 554, 555, 3286, 556, 0, 558, 3287, 560, 3288, 562,
+ 0, 563, 564, 565, 0, 0, 566, 567, 568, 569,
+ 570, 0, 571, 572, 573, 574, 575, 576, 577, 578,
+ 0, 0, 579, 580, 3289, 582, 583, 0, 0, 584,
+ 585, 586, 587, 588, 589, 590, 0, 591, 0, 593,
+ 594, 595, 596, 0, 0, 597, 0, 0, 598, 599,
+ 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
+ 610, 611, 612, 613, 614, 615, 616, 617, 625, 0,
+ 0, 684, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
+ 240, 241, 242, 0, 243, 244, 245, 0, 0, 0,
+ 0, 0, 0, 0, 246, 247, 248, 0, 249, 250,
+ 251, 252, 0, 254, 255, 256, 257, 258, 0, 260,
+ 261, 0, 262, 263, 264, 265, 266, 267, 268, 0,
+ 0, 269, 270, 271, 272, 273, 0, 274, 275, 276,
+ 277, 278, 0, 0, 0, 280, 281, 282, 283, 284,
+ 285, 0, 287, 288, 289, 0, 290, 291, 292, 293,
+ 294, 295, 0, 0, 297, 298, 299, 0, 0, 0,
+ 0, 0, 0, 0, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, 0, 310, 0, 311, 312, 313, 314,
+ 315, 316, 317, 0, 318, 319, 320, 321, 0, 0,
+ 322, 323, 324, 325, 326, 0, 327, 328, 329, 0,
+ 330, 331, 332, 0, 333, 334, 335, 336, 337, 338,
+ 339, 340, 341, 342, 0, 343, 0, 344, 345, 346,
+ 347, 348, 0, 349, 0, 350, 0, 0, 0, 353,
+ 354, 355, 356, 0, 357, 358, 0, 359, 360, 361,
+ 0, 362, 363, 364, 365, 366, 0, 368, 369, 370,
+ 371, 0, 372, 373, 374, 375, 376, 377, 378, 0,
+ 379, 0, 381, 382, 383, 384, 385, 386, 387, 0,
+ 388, 0, 389, 0, 0, 392, 0, 394, 395, 396,
+ 397, 398, 0, 0, 399, 400, 0, 402, 0, 0,
+ 404, 405, 406, 0, 0, 407, 408, 409, 410, 411,
+ 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
+ 422, 423, 424, 425, 0, 427, 428, 429, 430, 431,
+ 432, 433, 434, 435, 436, 437, 0, 438, 439, 0,
+ 441, 0, 442, 443, 444, 445, 446, 447, 0, 448,
+ 449, 0, 0, 450, 451, 452, 0, 0, 453, 454,
+ 455, 0, 457, 0, 459, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 0, 470, 471, 472, 473,
+ 474, 475, 476, 477, 0, 478, 479, 480, 481, 482,
+ 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
+ 0, 493, 494, 495, 496, 497, 498, 499, 500, 501,
+ 502, 503, 504, 505, 0, 506, 507, 0, 509, 510,
+ 511, 512, 513, 514, 515, 516, 517, 518, 519, 520,
+ 521, 522, 523, 0, 524, 525, 526, 527, 528, 0,
+ 529, 530, 531, 532, 533, 0, 535, 536, 537, 538,
+ 0, 539, 540, 541, 542, 543, 544, 545, 546, 547,
+ 548, 549, 550, 551, 552, 553, 0, 554, 555, 0,
+ 556, 0, 558, 559, 560, 561, 562, 0, 563, 564,
+ 565, 0, 0, 566, 567, 568, 569, 570, 0, 571,
+ 572, 573, 574, 575, 576, 577, 578, 0, 0, 579,
+ 580, 581, 582, 583, 0, 0, 584, 585, 586, 587,
+ 588, 589, 590, 0, 591, 0, 593, 594, 595, 596,
+ 0, 0, 597, 0, 0, 598, 599, 600, 601, 602,
+ 603, 604, 605, 606, 607, 608, 609, 610, 611, 612,
+ 613, 614, 615, 616, 617, 625, 0, 0, 0, 0,
+ 0, 0, 0, 745, 0, 0, 0, 0, 0, 0,
+ 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
+ 0, 243, 244, 245, 0, 0, 0, 0, 0, 0,
+ 0, 246, 247, 248, 0, 249, 250, 251, 252, 0,
+ 254, 255, 256, 257, 258, 0, 260, 261, 0, 262,
+ 263, 264, 265, 266, 267, 268, 0, 0, 269, 270,
+ 271, 272, 273, 0, 274, 275, 276, 277, 278, 0,
+ 0, 0, 280, 281, 282, 283, 284, 285, 0, 287,
+ 288, 289, 0, 290, 291, 292, 293, 294, 295, 0,
+ 0, 297, 298, 299, 0, 0, 0, 0, 0, 0,
+ 0, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ 0, 310, 0, 311, 312, 313, 314, 315, 316, 317,
+ 0, 318, 319, 320, 321, 0, 0, 322, 323, 324,
+ 325, 326, 0, 327, 328, 329, 0, 330, 331, 332,
+ 0, 333, 334, 335, 336, 337, 338, 339, 340, 341,
+ 342, 0, 343, 0, 344, 345, 346, 347, 348, 0,
+ 349, 0, 350, 0, 0, 0, 353, 354, 355, 356,
+ 0, 357, 358, 0, 359, 360, 361, 0, 362, 363,
+ 364, 365, 366, 0, 368, 369, 370, 371, 0, 372,
+ 373, 374, 375, 376, 377, 378, 0, 379, 0, 381,
+ 382, 383, 384, 385, 386, 387, 0, 388, 0, 389,
+ 0, 0, 392, 0, 394, 395, 396, 397, 398, 0,
+ 0, 399, 400, 0, 402, 0, 0, 404, 405, 406,
+ 0, 0, 407, 408, 409, 410, 411, 412, 413, 414,
+ 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
+ 425, 0, 427, 428, 429, 430, 431, 432, 433, 434,
+ 435, 436, 437, 0, 438, 439, 0, 441, 0, 442,
+ 443, 444, 445, 446, 447, 0, 448, 449, 0, 0,
+ 450, 451, 452, 0, 0, 453, 454, 455, 0, 457,
+ 0, 459, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 0, 470, 471, 472, 473, 474, 475, 476,
+ 477, 0, 478, 479, 480, 481, 482, 483, 484, 485,
+ 486, 487, 488, 489, 490, 491, 492, 0, 493, 494,
+ 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
+ 505, 0, 506, 507, 0, 509, 510, 511, 512, 513,
+ 514, 515, 516, 517, 518, 519, 520, 521, 522, 523,
+ 0, 524, 525, 526, 527, 528, 0, 529, 530, 531,
+ 532, 533, 0, 535, 536, 537, 538, 0, 539, 540,
+ 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
+ 551, 552, 553, 0, 554, 555, 0, 556, 0, 558,
+ 559, 560, 561, 562, 0, 563, 564, 565, 0, 0,
+ 566, 567, 568, 569, 570, 0, 571, 572, 573, 574,
+ 575, 576, 577, 578, 0, 0, 579, 580, 581, 582,
+ 583, 0, 0, 584, 585, 586, 587, 588, 589, 590,
+ 0, 591, 0, 593, 594, 595, 596, 0, 0, 597,
+ 0, 0, 598, 599, 600, 601, 602, 603, 604, 605,
+ 606, 607, 608, 609, 610, 611, 612, 613, 614, 615,
+ 616, 617, 625, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
+ 236, 237, 238, 239, 240, 241, 242, 0, 243, 244,
+ 245, 0, 0, 0, 0, 0, 4061, 0, 246, 247,
+ 248, 0, 249, 250, 251, 252, 0, 254, 255, 256,
+ 257, 258, 0, 260, 261, 0, 262, 263, 264, 265,
+ 266, 267, 268, 0, 0, 269, 270, 271, 272, 273,
+ 0, 274, 275, 276, 277, 278, 0, 0, 0, 280,
+ 281, 282, 283, 284, 285, 0, 287, 288, 289, 0,
+ 290, 291, 292, 293, 294, 295, 0, 0, 297, 298,
+ 299, 0, 0, 0, 0, 0, 0, 0, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, 0, 310, 0,
+ 311, 312, 313, 314, 315, 316, 317, 0, 318, 319,
+ 320, 321, 0, 0, 322, 323, 324, 325, 326, 0,
+ 327, 328, 329, 0, 330, 331, 332, 0, 333, 334,
+ 335, 336, 337, 338, 339, 340, 341, 342, 0, 343,
+ 0, 344, 345, 346, 347, 348, 0, 349, 0, 350,
+ 0, 0, 0, 353, 354, 355, 356, 0, 357, 358,
+ 0, 359, 360, 361, 0, 362, 363, 364, 365, 366,
+ 0, 368, 369, 370, 371, 0, 372, 373, 374, 375,
+ 376, 377, 378, 0, 379, 0, 381, 382, 383, 384,
+ 385, 386, 387, 0, 388, 0, 389, 0, 0, 392,
+ 0, 394, 395, 396, 397, 398, 0, 0, 399, 400,
+ 0, 402, 0, 0, 404, 405, 406, 0, 0, 407,
+ 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
+ 418, 419, 420, 421, 422, 423, 424, 425, 0, 427,
+ 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
+ 0, 438, 439, 0, 441, 0, 442, 443, 444, 445,
+ 446, 447, 0, 448, 449, 0, 0, 450, 451, 452,
+ 0, 0, 453, 454, 455, 0, 457, 0, 459, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 0,
+ 470, 471, 472, 473, 474, 475, 476, 477, 0, 478,
+ 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
+ 489, 490, 491, 492, 0, 493, 494, 495, 496, 497,
+ 498, 499, 500, 501, 502, 503, 504, 505, 0, 506,
+ 507, 0, 509, 510, 511, 512, 513, 514, 515, 516,
+ 517, 518, 519, 520, 521, 522, 523, 0, 524, 525,
+ 526, 527, 528, 0, 529, 530, 531, 532, 533, 0,
+ 535, 536, 537, 538, 0, 539, 540, 541, 542, 543,
+ 544, 545, 546, 547, 548, 549, 550, 551, 552, 553,
+ 0, 554, 555, 0, 556, 0, 558, 559, 560, 561,
+ 562, 0, 563, 564, 565, 0, 0, 566, 567, 568,
+ 569, 570, 0, 571, 572, 573, 574, 575, 576, 577,
+ 578, 0, 0, 579, 580, 581, 582, 583, 0, 0,
+ 584, 585, 586, 587, 588, 589, 590, 0, 591, 0,
+ 593, 594, 595, 596, 0, 0, 597, 0, 0, 598,
+ 599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
+ 609, 610, 611, 612, 613, 614, 615, 616, 617, 625,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
+ 239, 240, 241, 242, 0, 243, 244, 245, 0, 0,
+ 0, 0, 0, 4075, 0, 246, 247, 248, 0, 249,
+ 250, 251, 252, 0, 254, 255, 256, 257, 258, 0,
+ 260, 261, 0, 262, 263, 264, 265, 266, 267, 268,
+ 0, 0, 269, 270, 271, 272, 273, 0, 274, 275,
+ 276, 277, 278, 0, 0, 0, 280, 281, 282, 283,
+ 284, 285, 0, 287, 288, 289, 0, 290, 291, 292,
+ 293, 294, 295, 0, 0, 297, 298, 299, 0, 0,
+ 0, 0, 0, 0, 0, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, 0, 310, 0, 311, 312, 313,
+ 314, 315, 316, 317, 0, 318, 319, 320, 321, 0,
+ 0, 322, 323, 324, 325, 326, 0, 327, 328, 329,
+ 0, 330, 331, 332, 0, 333, 334, 335, 336, 337,
+ 338, 339, 340, 341, 342, 0, 343, 0, 344, 345,
+ 346, 347, 348, 0, 349, 0, 350, 0, 0, 0,
+ 353, 354, 355, 356, 0, 357, 358, 0, 359, 360,
+ 361, 0, 362, 363, 364, 365, 366, 0, 368, 369,
+ 370, 371, 0, 372, 373, 374, 375, 376, 377, 378,
+ 0, 379, 0, 381, 382, 383, 384, 385, 386, 387,
+ 0, 388, 0, 389, 0, 0, 392, 0, 394, 395,
+ 396, 397, 398, 0, 0, 399, 400, 0, 402, 0,
+ 0, 404, 405, 406, 0, 0, 407, 408, 409, 410,
+ 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
+ 421, 422, 423, 424, 425, 0, 427, 428, 429, 430,
+ 431, 432, 433, 434, 435, 436, 437, 0, 438, 439,
+ 0, 441, 0, 442, 443, 444, 445, 446, 447, 0,
+ 448, 449, 0, 0, 450, 451, 452, 0, 0, 453,
+ 454, 455, 0, 457, 0, 459, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 0, 470, 471, 472,
+ 473, 474, 475, 476, 477, 0, 478, 479, 480, 481,
+ 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
+ 492, 0, 493, 494, 495, 496, 497, 498, 499, 500,
+ 501, 502, 503, 504, 505, 0, 506, 507, 0, 509,
+ 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
+ 520, 521, 522, 523, 0, 524, 525, 526, 527, 528,
+ 0, 529, 530, 531, 532, 533, 0, 535, 536, 537,
+ 538, 0, 539, 540, 541, 542, 543, 544, 545, 546,
+ 547, 548, 549, 550, 551, 552, 553, 0, 554, 555,
+ 0, 556, 0, 558, 559, 560, 561, 562, 0, 563,
+ 564, 565, 0, 0, 566, 567, 568, 569, 570, 0,
+ 571, 572, 573, 574, 575, 576, 577, 578, 0, 0,
+ 579, 580, 581, 582, 583, 0, 0, 584, 585, 586,
+ 587, 588, 589, 590, 0, 591, 0, 593, 594, 595,
+ 596, 0, 0, 597, 0, 0, 598, 599, 600, 601,
+ 602, 603, 604, 605, 606, 607, 608, 609, 610, 611,
+ 612, 613, 614, 615, 616, 617, 625, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
+ 242, 0, 243, 244, 245, 0, 0, 0, 0, 0,
+ 0, 0, 246, 247, 248, 0, 249, 250, 251, 252,
+ 0, 254, 255, 256, 257, 258, 0, 260, 261, 0,
+ 262, 263, 264, 265, 266, 267, 268, 0, 0, 269,
+ 270, 271, 272, 273, 0, 274, 275, 276, 277, 278,
+ 0, 0, 0, 280, 281, 282, 283, 284, 285, 0,
+ 287, 288, 289, 0, 290, 291, 292, 293, 294, 295,
+ 0, 0, 297, 298, 299, 0, 0, 0, 0, 0,
+ 0, 0, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, 4708, 310, 0, 311, 312, 313, 314, 315, 316,
+ 317, 0, 318, 319, 320, 321, 0, 0, 322, 323,
+ 324, 325, 326, 0, 327, 328, 329, 0, 330, 331,
+ 332, 0, 333, 334, 335, 336, 337, 338, 339, 340,
+ 341, 342, 0, 343, 0, 344, 345, 346, 347, 348,
+ 0, 349, 0, 350, 0, 0, 0, 353, 354, 355,
+ 356, 0, 357, 358, 0, 359, 360, 361, 0, 362,
+ 363, 364, 365, 366, 0, 368, 369, 370, 371, 0,
+ 372, 373, 374, 375, 376, 377, 378, 0, 379, 0,
+ 381, 382, 383, 384, 385, 386, 387, 0, 388, 0,
+ 389, 0, 0, 392, 0, 394, 395, 396, 397, 398,
+ 0, 0, 399, 400, 0, 402, 0, 0, 404, 405,
+ 406, 0, 0, 407, 408, 409, 410, 411, 412, 413,
+ 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
+ 424, 425, 0, 427, 428, 429, 430, 431, 432, 433,
+ 434, 435, 436, 437, 0, 438, 439, 0, 441, 0,
+ 442, 443, 444, 445, 446, 447, 0, 448, 449, 0,
+ 0, 450, 451, 452, 0, 0, 453, 454, 455, 0,
+ 457, 0, 459, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 0, 470, 471, 472, 473, 474, 475,
+ 476, 477, 0, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 488, 489, 490, 491, 492, 0, 493,
+ 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
+ 504, 505, 0, 506, 507, 0, 509, 510, 511, 512,
+ 513, 514, 515, 516, 517, 518, 519, 520, 521, 522,
+ 523, 0, 524, 525, 526, 527, 528, 0, 529, 530,
+ 531, 532, 533, 0, 535, 536, 537, 538, 0, 539,
+ 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
+ 550, 551, 552, 553, 0, 554, 555, 0, 556, 0,
+ 558, 559, 560, 561, 562, 0, 563, 564, 565, 0,
+ 0, 566, 567, 568, 569, 570, 0, 571, 572, 573,
+ 574, 575, 576, 577, 578, 0, 0, 579, 580, 581,
+ 582, 583, 0, 0, 584, 585, 586, 587, 588, 589,
+ 590, 0, 591, 0, 593, 594, 595, 596, 0, 0,
+ 597, 0, 0, 598, 599, 600, 601, 602, 603, 604,
+ 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
+ 615, 616, 617, 625, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 235, 236, 237, 238, 239, 240, 241, 242, 0, 243,
+ 244, 245, 0, 0, 0, 0, 0, 0, 0, 246,
+ 247, 248, 0, 249, 250, 251, 252, 0, 254, 255,
+ 256, 257, 258, 0, 260, 261, 0, 262, 263, 264,
+ 265, 266, 267, 268, 0, 0, 269, 270, 271, 272,
+ 273, 0, 274, 275, 276, 277, 278, 0, 0, 0,
+ 280, 281, 282, 283, 284, 285, 0, 287, 288, 289,
+ 0, 290, 291, 292, 293, 294, 295, 0, 0, 297,
+ 298, 299, 0, 0, 0, 4778, 0, 0, 0, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 0, 310,
+ 0, 311, 312, 313, 314, 315, 316, 317, 0, 318,
+ 319, 320, 321, 0, 0, 322, 323, 324, 325, 326,
+ 0, 327, 328, 329, 0, 330, 331, 332, 0, 333,
+ 334, 335, 336, 337, 338, 339, 340, 341, 342, 0,
+ 343, 0, 344, 345, 346, 347, 348, 0, 349, 0,
+ 350, 0, 0, 0, 353, 354, 355, 356, 0, 357,
+ 358, 0, 359, 360, 361, 0, 362, 363, 364, 365,
+ 366, 0, 368, 369, 370, 371, 0, 372, 373, 374,
+ 375, 376, 377, 378, 0, 379, 0, 381, 382, 383,
+ 384, 385, 386, 387, 0, 388, 0, 389, 0, 0,
+ 392, 0, 394, 395, 396, 397, 398, 0, 0, 399,
+ 400, 0, 402, 0, 0, 404, 405, 406, 0, 0,
+ 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
+ 417, 418, 419, 420, 421, 422, 423, 424, 425, 0,
+ 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
+ 437, 0, 438, 439, 0, 441, 0, 442, 443, 444,
+ 445, 446, 447, 0, 448, 449, 0, 0, 450, 451,
+ 452, 0, 0, 453, 454, 455, 0, 457, 0, 459,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 0, 470, 471, 472, 473, 474, 475, 476, 477, 0,
+ 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
+ 488, 489, 490, 491, 492, 0, 493, 494, 495, 496,
+ 497, 498, 499, 500, 501, 502, 503, 504, 505, 0,
+ 506, 507, 0, 509, 510, 511, 512, 513, 514, 515,
+ 516, 517, 518, 519, 520, 521, 522, 523, 0, 524,
+ 525, 526, 527, 528, 0, 529, 530, 531, 532, 533,
+ 0, 535, 536, 537, 538, 0, 539, 540, 541, 542,
+ 543, 544, 545, 546, 547, 548, 549, 550, 551, 552,
+ 553, 0, 554, 555, 0, 556, 0, 558, 559, 560,
+ 561, 562, 0, 563, 564, 565, 0, 0, 566, 567,
+ 568, 569, 570, 0, 571, 572, 573, 574, 575, 576,
+ 577, 578, 0, 0, 579, 580, 581, 582, 583, 0,
+ 0, 584, 585, 586, 587, 588, 589, 590, 0, 591,
+ 0, 593, 594, 595, 596, 0, 0, 597, 0, 0,
+ 598, 599, 600, 601, 602, 603, 604, 605, 606, 607,
+ 608, 609, 610, 611, 612, 613, 614, 615, 616, 617,
+ 625, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
+ 238, 239, 240, 241, 242, 0, 243, 244, 245, 0,
+ 0, 0, 0, 0, 0, 0, 246, 247, 248, 0,
+ 249, 250, 251, 252, 0, 254, 255, 256, 257, 258,
+ 0, 260, 261, 0, 262, 263, 264, 265, 266, 267,
+ 268, 0, 0, 269, 270, 271, 272, 273, 0, 274,
+ 275, 276, 277, 278, 0, 0, 0, 280, 281, 282,
+ 283, 284, 285, 0, 287, 288, 289, 0, 290, 291,
+ 292, 293, 294, 295, 0, 0, 297, 298, 299, 0,
+ 0, 0, 0, 0, 0, 0, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, 0, 310, 0, 311, 312,
+ 313, 314, 315, 316, 317, 0, 318, 319, 320, 321,
+ 0, 0, 322, 323, 324, 325, 326, 0, 327, 328,
+ 329, 0, 330, 331, 332, 0, 333, 334, 335, 336,
+ 337, 338, 339, 340, 341, 342, 0, 343, 0, 344,
+ 345, 346, 347, 348, 0, 349, 0, 350, 0, 0,
+ 0, 353, 354, 355, 356, 0, 357, 358, 0, 359,
+ 360, 361, 0, 362, 363, 364, 365, 366, 0, 368,
+ 369, 370, 371, 0, 372, 373, 374, 375, 376, 377,
+ 378, 0, 379, 0, 381, 382, 383, 384, 385, 386,
+ 387, 0, 388, 0, 389, 0, 0, 392, 0, 394,
+ 395, 396, 397, 398, 0, 0, 399, 400, 0, 402,
+ 0, 0, 404, 405, 406, 0, 0, 407, 408, 409,
+ 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
+ 420, 421, 422, 423, 424, 425, 0, 427, 428, 429,
+ 430, 431, 432, 433, 434, 435, 436, 437, 0, 438,
+ 439, 0, 441, 0, 442, 443, 444, 445, 446, 447,
+ 0, 448, 449, 0, 0, 450, 451, 452, 0, 0,
+ 453, 454, 455, 0, 457, 0, 459, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 0, 470, 471,
+ 472, 473, 474, 475, 476, 477, 0, 478, 479, 480,
+ 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
+ 491, 492, 0, 493, 494, 495, 496, 497, 498, 499,
+ 500, 501, 502, 503, 504, 505, 0, 506, 507, 0,
+ 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
+ 519, 520, 521, 522, 523, 0, 524, 525, 526, 527,
+ 528, 0, 529, 530, 531, 532, 533, 0, 535, 536,
+ 537, 538, 0, 539, 540, 541, 542, 543, 544, 545,
+ 546, 547, 548, 549, 550, 551, 552, 553, 0, 554,
+ 555, 0, 556, 0, 558, 559, 560, 561, 562, 0,
+ 563, 564, 565, 0, 0, 566, 567, 568, 569, 570,
+ 0, 571, 572, 573, 574, 575, 576, 577, 578, 0,
+ 0, 579, 580, 581, 582, 583, 0, 0, 584, 585,
+ 586, 587, 588, 589, 590, 0, 591, 0, 593, 594,
+ 595, 596, 0, 0, 597, 0, 0, 598, 599, 600,
+ 601, 602, 603, 604, 605, 606, 607, 608, 609, 610,
+ 611, 612, 613, 614, 615, 616, 617, 625, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
+ 241, 242, 0, 243, 244, 245, 0, 0, 0, 0,
+ 0, 0, 0, 246, 247, 248, 0, 249, 250, 251,
+ 252, 0, 254, 255, 256, 257, 258, 0, 260, 261,
+ 0, 262, 263, 264, 265, 266, 267, 268, 0, 0,
+ 269, 270, 271, 272, 273, 0, 274, 275, 276, 277,
+ 278, 0, 0, 0, 280, 281, 282, 283, 284, 285,
+ 0, 287, 288, 289, 0, 290, 291, 292, 293, 294,
+ 295, 0, 0, 297, 298, 299, 0, 0, 0, 0,
+ 0, 0, 0, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, 0, 310, 0, 311, 312, 313, 314, 315,
+ 316, 317, 0, 318, 319, 320, 321, 0, 0, 322,
+ 323, 324, 325, 326, 0, 327, 328, 329, 0, 330,
+ 331, 332, 0, 333, 334, 335, 336, 337, 338, 339,
+ 340, 341, 342, 0, 343, 0, 344, 345, 346, 347,
+ 348, 0, 349, 0, 350, 0, 0, 0, 353, 354,
+ 355, 356, 0, 357, 358, 0, 359, 360, 361, 0,
+ 362, 363, 364, 365, 366, 0, 368, 369, 370, 371,
+ 0, 372, 373, 374, 375, 376, 377, 378, 0, 379,
+ 0, 381, 382, 383, 384, 385, 386, 387, 0, 388,
+ 0, 389, 0, 0, 392, 0, 394, 395, 396, 397,
+ 398, 0, 0, 399, 400, 0, 402, 0, 0, 404,
+ 405, 406, 0, 0, 407, 408, 409, 410, 411, 412,
+ 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
+ 423, 424, 425, 0, 427, 428, 429, 430, 431, 432,
+ 433, 434, 435, 436, 437, 0, 438, 439, 0, 441,
+ 0, 442, 443, 444, 445, 446, 447, 0, 448, 449,
+ 0, 0, 450, 451, 452, 0, 0, 453, 454, 455,
+ 0, 457, 0, 459, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 0, 470, 471, 472, 473, 474,
+ 475, 476, 477, 0, 478, 479, 480, 481, 482, 483,
+ 484, 485, 486, 487, 488, 489, 490, 491, 492, 0,
+ 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
+ 503, 504, 505, 0, 506, 507, 0, 509, 510, 511,
+ 512, 513, 514, 515, 516, 517, 518, 519, 520, 521,
+ 522, 523, 0, 524, 525, 526, 527, 528, 0, 529,
+ 530, 531, 532, 533, 0, 535, 536, 537, 538, 0,
+ 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
+ 549, 550, 551, 552, 553, 0, 554, 555, 0, 556,
+ 0, 558, 559, 560, 561, 562, 0, 563, 564, 565,
+ 0, 0, 781, 567, 568, 569, 570, 0, 571, 572,
+ 573, 574, 575, 576, 577, 578, 0, 0, 579, 580,
+ 581, 582, 583, 0, 0, 584, 585, 586, 587, 588,
+ 589, 590, 0, 591, 0, 593, 594, 595, 596, 0,
+ 0, 597, 0, 0, 598, 599, 600, 601, 602, 603,
+ 604, 605, 606, 607, 608, 609, 610, 611, 612, 613,
+ 614, 615, 616, 617, 625, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 235, 236, 237, 238, 239, 240, 241, 242, 0,
+ 243, 244, 245, 0, 0, 0, 0, 0, 0, 0,
+ 246, 247, 248, 0, 249, 250, 251, 252, 0, 254,
+ 255, 256, 257, 258, 0, 260, 261, 0, 262, 263,
+ 264, 265, 266, 267, 268, 0, 0, 269, 270, 271,
+ 272, 273, 0, 274, 275, 276, 277, 278, 0, 0,
+ 0, 280, 281, 282, 283, 284, 285, 0, 287, 288,
+ 289, 0, 290, 291, 292, 293, 294, 295, 0, 0,
+ 297, 298, 299, 0, 0, 0, 0, 0, 0, 0,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, 0,
+ 310, 0, 311, 312, 313, 314, 315, 316, 317, 0,
+ 318, 319, 320, 321, 0, 0, 322, 323, 324, 325,
+ 326, 0, 327, 328, 329, 0, 330, 331, 332, 0,
+ 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
+ 0, 343, 0, 344, 345, 346, 347, 348, 0, 349,
+ 0, 350, 0, 0, 0, 353, 354, 355, 356, 0,
+ 357, 358, 0, 359, 360, 361, 0, 362, 363, 364,
+ 365, 366, 0, 368, 369, 370, 371, 0, 372, 373,
+ 374, 375, 376, 377, 378, 0, 379, 0, 381, 382,
+ 383, 384, 385, 386, 387, 0, 388, 0, 389, 0,
+ 0, 392, 0, 394, 395, 396, 397, 398, 0, 0,
+ 399, 400, 0, 402, 0, 0, 404, 405, 406, 0,
+ 0, 407, 408, 409, 410, 411, 412, 413, 414, 415,
+ 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
+ 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
+ 436, 437, 0, 438, 439, 0, 441, 0, 442, 443,
+ 444, 445, 446, 447, 0, 448, 449, 0, 0, 450,
+ 451, 452, 0, 0, 453, 454, 455, 0, 457, 0,
+ 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 0, 470, 471, 472, 473, 474, 475, 476, 477,
+ 0, 478, 479, 480, 481, 482, 483, 484, 485, 486,
+ 487, 488, 489, 490, 491, 492, 0, 493, 494, 495,
+ 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
+ 0, 506, 507, 0, 509, 510, 511, 512, 513, 514,
+ 515, 516, 793, 518, 519, 520, 521, 522, 523, 0,
+ 524, 525, 526, 527, 528, 0, 529, 530, 531, 532,
+ 533, 0, 535, 536, 537, 538, 0, 539, 540, 541,
+ 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
+ 552, 553, 0, 554, 555, 0, 556, 0, 558, 559,
+ 560, 561, 562, 0, 563, 564, 565, 0, 0, 566,
+ 567, 568, 569, 570, 0, 571, 572, 573, 574, 575,
+ 576, 577, 578, 0, 0, 579, 580, 581, 582, 583,
+ 0, 0, 584, 585, 586, 587, 588, 589, 590, 0,
+ 591, 0, 593, 594, 595, 596, 0, 0, 597, 0,
+ 0, 598, 599, 600, 601, 602, 603, 604, 605, 606,
+ 607, 608, 609, 610, 611, 612, 613, 614, 615, 616,
+ 617, 625, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
+ 237, 238, 239, 240, 241, 242, 0, 243, 244, 245,
+ 0, 0, 0, 0, 0, 0, 0, 246, 247, 248,
+ 0, 249, 250, 251, 252, 0, 254, 255, 256, 257,
+ 258, 0, 260, 261, 0, 262, 263, 264, 265, 266,
+ 267, 268, 0, 0, 815, 270, 271, 272, 273, 0,
+ 274, 275, 276, 277, 278, 0, 0, 0, 280, 281,
+ 282, 283, 284, 285, 0, 287, 288, 289, 0, 816,
+ 291, 292, 293, 294, 295, 0, 0, 297, 298, 299,
+ 0, 0, 0, 0, 0, 0, 0, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, 0, 310, 0, 311,
+ 312, 313, 314, 315, 316, 317, 0, 318, 319, 320,
+ 321, 0, 0, 322, 323, 324, 325, 326, 0, 327,
+ 328, 329, 0, 330, 331, 332, 0, 333, 334, 335,
+ 336, 337, 338, 339, 340, 341, 342, 0, 343, 0,
+ 344, 345, 346, 347, 348, 0, 349, 0, 350, 0,
+ 0, 0, 353, 354, 355, 356, 0, 357, 358, 0,
+ 359, 360, 361, 0, 362, 363, 364, 365, 366, 0,
+ 368, 369, 370, 371, 0, 372, 373, 374, 375, 376,
+ 377, 378, 0, 379, 0, 381, 382, 383, 384, 385,
+ 386, 387, 0, 388, 0, 389, 0, 0, 392, 0,
+ 394, 395, 396, 397, 398, 0, 0, 399, 400, 0,
+ 402, 0, 0, 404, 405, 817, 0, 0, 407, 408,
+ 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
+ 419, 420, 421, 422, 423, 818, 425, 0, 427, 428,
+ 429, 430, 431, 432, 433, 434, 435, 436, 437, 0,
+ 438, 439, 0, 441, 0, 442, 443, 444, 445, 446,
+ 447, 0, 448, 449, 0, 0, 450, 451, 452, 0,
+ 0, 453, 454, 455, 0, 457, 0, 459, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 0, 470,
+ 471, 472, 473, 474, 475, 476, 477, 0, 478, 479,
+ 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
+ 490, 491, 492, 0, 493, 494, 495, 496, 497, 498,
+ 499, 500, 501, 502, 503, 504, 505, 0, 506, 507,
+ 0, 819, 510, 511, 512, 513, 514, 515, 516, 517,
+ 820, 519, 520, 521, 522, 523, 0, 524, 525, 526,
+ 527, 821, 0, 529, 530, 531, 532, 533, 0, 535,
+ 536, 537, 538, 0, 539, 540, 541, 542, 543, 544,
+ 545, 546, 547, 548, 549, 550, 551, 552, 553, 0,
+ 554, 555, 0, 556, 0, 558, 559, 560, 561, 562,
+ 0, 563, 822, 565, 0, 0, 823, 567, 568, 569,
+ 570, 0, 571, 572, 573, 574, 575, 576, 577, 578,
+ 0, 0, 579, 580, 581, 582, 583, 0, 0, 584,
+ 585, 586, 587, 588, 589, 590, 0, 591, 0, 593,
+ 594, 595, 596, 0, 0, 597, 0, 0, 598, 599,
+ 600, 601, 602, 824, 604, 605, 606, 607, 608, 609,
+ 610, 611, 612, 613, 614, 615, 616, 617, 625, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
+ 240, 241, 242, 0, 243, 244, 245, 0, 0, 0,
+ 0, 0, 0, 0, 246, 247, 248, 0, 249, 250,
+ 251, 252, 0, 254, 255, 256, 257, 258, 0, 260,
+ 261, 0, 262, 263, 264, 265, 266, 267, 268, 0,
+ 0, 269, 270, 271, 272, 273, 0, 274, 275, 276,
+ 277, 278, 0, 0, 0, 280, 281, 282, 283, 284,
+ 285, 0, 287, 288, 289, 0, 290, 291, 292, 293,
+ 294, 295, 0, 0, 297, 298, 299, 0, 0, 0,
+ 0, 0, 0, 0, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, 0, 310, 0, 311, 312, 313, 314,
+ 315, 316, 317, 0, 318, 319, 320, 321, 0, 0,
+ 322, 323, 324, 325, 326, 0, 327, 328, 329, 0,
+ 330, 331, 332, 0, 333, 334, 335, 336, 337, 338,
+ 339, 340, 341, 342, 0, 343, 0, 344, 345, 346,
+ 347, 348, 0, 349, 0, 350, 0, 0, 0, 353,
+ 354, 355, 356, 0, 357, 358, 0, 359, 360, 361,
+ 0, 362, 363, 364, 365, 366, 0, 368, 369, 370,
+ 371, 0, 372, 373, 374, 375, 376, 377, 378, 0,
+ 379, 0, 381, 382, 383, 384, 385, 386, 387, 0,
+ 388, 0, 389, 0, 0, 392, 0, 394, 395, 396,
+ 397, 398, 0, 0, 399, 400, 0, 402, 0, 0,
+ 404, 405, 406, 0, 0, 407, 408, 409, 410, 411,
+ 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
+ 422, 423, 424, 425, 0, 427, 428, 429, 430, 431,
+ 432, 433, 434, 435, 436, 437, 0, 438, 439, 0,
+ 441, 0, 442, 443, 444, 445, 446, 447, 0, 448,
+ 449, 0, 0, 450, 451, 452, 0, 0, 453, 454,
+ 455, 0, 457, 0, 459, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 0, 470, 471, 472, 473,
+ 474, 475, 476, 477, 0, 478, 479, 480, 481, 482,
+ 483, 484, 485, 486, 487, 488, 489, 490, 847, 492,
+ 0, 493, 494, 495, 496, 497, 498, 499, 500, 501,
+ 502, 503, 504, 505, 0, 506, 507, 0, 509, 510,
+ 511, 512, 513, 514, 515, 516, 517, 518, 519, 520,
+ 521, 522, 523, 0, 524, 525, 526, 527, 528, 0,
+ 529, 530, 531, 532, 533, 0, 535, 536, 537, 538,
+ 0, 539, 540, 541, 542, 543, 544, 545, 546, 547,
+ 548, 549, 550, 551, 552, 553, 0, 554, 555, 0,
+ 556, 0, 558, 559, 560, 561, 562, 0, 563, 564,
+ 565, 0, 0, 566, 567, 568, 569, 570, 0, 571,
+ 572, 573, 574, 575, 576, 577, 578, 0, 0, 579,
+ 580, 581, 582, 583, 0, 0, 584, 585, 586, 587,
+ 588, 589, 590, 0, 591, 0, 593, 594, 595, 596,
+ 0, 0, 597, 0, 0, 598, 599, 600, 601, 602,
+ 603, 604, 605, 606, 607, 608, 609, 610, 611, 612,
+ 613, 614, 615, 616, 617, 625, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
+ 0, 243, 244, 245, 0, 0, 0, 0, 0, 0,
+ 0, 246, 247, 248, 0, 249, 250, 251, 252, 0,
+ 254, 255, 256, 257, 258, 0, 260, 261, 0, 262,
+ 263, 264, 265, 266, 267, 268, 0, 0, 269, 270,
+ 271, 272, 273, 0, 274, 275, 276, 277, 278, 0,
+ 0, 0, 280, 281, 282, 283, 284, 285, 0, 287,
+ 288, 289, 0, 290, 291, 292, 293, 294, 295, 0,
+ 0, 297, 298, 299, 0, 0, 0, 0, 0, 0,
+ 0, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ 0, 310, 0, 311, 312, 313, 314, 315, 316, 317,
+ 0, 318, 319, 320, 321, 0, 0, 322, 323, 324,
+ 325, 326, 0, 327, 328, 329, 0, 330, 331, 332,
+ 0, 333, 334, 335, 336, 337, 338, 339, 340, 341,
+ 342, 0, 343, 0, 344, 345, 346, 347, 348, 0,
+ 349, 0, 350, 0, 0, 0, 353, 354, 355, 356,
+ 0, 357, 358, 0, 359, 360, 361, 0, 362, 363,
+ 364, 365, 973, 0, 368, 369, 370, 371, 0, 372,
+ 373, 374, 375, 376, 377, 378, 0, 379, 0, 381,
+ 382, 383, 384, 385, 386, 387, 0, 388, 0, 389,
+ 0, 0, 392, 0, 394, 395, 396, 397, 398, 0,
+ 0, 399, 400, 0, 402, 0, 0, 404, 405, 406,
+ 0, 0, 407, 408, 409, 410, 411, 412, 413, 414,
+ 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
+ 425, 0, 427, 428, 429, 430, 431, 432, 433, 434,
+ 435, 436, 437, 0, 438, 439, 0, 441, 0, 442,
+ 443, 444, 445, 446, 447, 0, 448, 449, 0, 0,
+ 450, 451, 452, 0, 0, 453, 454, 455, 0, 457,
+ 0, 459, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 0, 470, 471, 472, 473, 474, 475, 476,
+ 477, 0, 478, 479, 480, 481, 482, 483, 484, 485,
+ 486, 487, 488, 489, 490, 491, 492, 0, 493, 494,
+ 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
+ 505, 0, 506, 507, 0, 509, 510, 511, 512, 513,
+ 514, 515, 516, 517, 518, 519, 520, 521, 522, 523,
+ 0, 524, 525, 526, 527, 528, 0, 529, 530, 531,
+ 532, 533, 0, 535, 536, 537, 538, 0, 539, 540,
+ 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
+ 551, 552, 553, 0, 554, 555, 0, 556, 0, 558,
+ 559, 560, 561, 562, 0, 563, 564, 565, 0, 0,
+ 566, 567, 568, 569, 570, 0, 571, 572, 573, 574,
+ 575, 576, 577, 578, 0, 0, 579, 580, 581, 582,
+ 583, 0, 0, 584, 585, 586, 587, 588, 589, 590,
+ 0, 591, 0, 593, 594, 595, 596, 0, 0, 597,
+ 0, 0, 598, 599, 600, 601, 602, 603, 604, 605,
+ 606, 607, 608, 609, 610, 611, 612, 613, 614, 615,
+ 616, 617, 625, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
+ 236, 237, 238, 239, 240, 241, 242, 0, 243, 244,
+ 245, 0, 0, 0, 0, 0, 0, 0, 246, 247,
+ 248, 0, 249, 250, 251, 252, 0, 254, 255, 256,
+ 257, 258, 0, 260, 261, 0, 262, 263, 264, 265,
+ 266, 267, 268, 0, 0, 269, 270, 271, 272, 273,
+ 0, 274, 275, 276, 277, 278, 0, 0, 0, 280,
+ 281, 282, 283, 284, 285, 0, 287, 288, 289, 0,
+ 290, 291, 292, 293, 294, 295, 0, 0, 297, 298,
+ 299, 0, 0, 0, 0, 0, 0, 0, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, 0, 310, 0,
+ 311, 312, 313, 314, 315, 316, 317, 0, 318, 319,
+ 320, 321, 0, 0, 322, 323, 324, 325, 326, 0,
+ 327, 328, 329, 0, 330, 331, 332, 0, 333, 334,
+ 335, 336, 337, 338, 339, 340, 341, 342, 0, 343,
+ 0, 344, 345, 346, 347, 348, 0, 349, 0, 350,
+ 0, 0, 0, 353, 354, 355, 356, 0, 357, 358,
+ 0, 359, 360, 361, 0, 362, 363, 364, 365, 983,
+ 0, 368, 369, 370, 371, 0, 372, 373, 374, 375,
+ 376, 377, 378, 0, 379, 0, 381, 382, 383, 384,
+ 385, 386, 387, 0, 388, 0, 389, 0, 0, 392,
+ 0, 394, 395, 396, 397, 398, 0, 0, 399, 400,
+ 0, 402, 0, 0, 404, 405, 406, 0, 0, 407,
+ 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
+ 418, 419, 420, 421, 422, 423, 424, 425, 0, 427,
+ 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
+ 0, 438, 439, 0, 441, 0, 442, 443, 444, 445,
+ 446, 447, 0, 448, 449, 0, 0, 450, 451, 452,
+ 0, 0, 453, 454, 455, 0, 457, 0, 459, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 0,
+ 470, 471, 472, 473, 474, 475, 476, 477, 0, 478,
+ 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
+ 489, 490, 491, 492, 0, 493, 494, 495, 496, 497,
+ 498, 499, 500, 501, 502, 503, 504, 505, 0, 506,
+ 507, 0, 509, 510, 511, 512, 513, 514, 515, 516,
+ 517, 518, 519, 520, 521, 522, 523, 0, 524, 525,
+ 526, 527, 528, 0, 529, 530, 531, 532, 533, 0,
+ 535, 536, 537, 538, 0, 539, 540, 541, 542, 543,
+ 544, 545, 546, 547, 548, 549, 550, 551, 552, 553,
+ 0, 554, 555, 0, 556, 0, 558, 559, 560, 561,
+ 562, 0, 563, 564, 565, 0, 0, 566, 567, 568,
+ 569, 570, 0, 571, 572, 573, 574, 575, 576, 577,
+ 578, 0, 0, 579, 580, 581, 582, 583, 0, 0,
+ 584, 585, 586, 587, 588, 589, 590, 0, 591, 0,
+ 593, 594, 595, 596, 0, 0, 597, 0, 0, 598,
+ 599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
+ 609, 610, 611, 612, 613, 614, 615, 616, 617, 625,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
+ 239, 240, 241, 242, 0, 243, 244, 245, 0, 0,
+ 0, 0, 0, 0, 0, 246, 247, 248, 0, 249,
+ 250, 251, 252, 0, 254, 255, 256, 257, 258, 0,
+ 260, 261, 0, 262, 263, 264, 265, 266, 267, 268,
+ 0, 0, 269, 270, 271, 272, 273, 0, 274, 275,
+ 276, 277, 278, 0, 0, 0, 280, 281, 282, 283,
+ 284, 285, 0, 287, 288, 289, 0, 290, 291, 292,
+ 293, 294, 295, 0, 0, 297, 298, 299, 0, 0,
+ 0, 0, 0, 0, 0, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, 0, 310, 0, 311, 312, 313,
+ 314, 315, 316, 317, 0, 318, 319, 320, 321, 0,
+ 0, 322, 323, 324, 325, 326, 0, 327, 328, 329,
+ 0, 330, 331, 332, 0, 333, 334, 335, 336, 337,
+ 338, 339, 340, 341, 342, 0, 343, 0, 344, 345,
+ 346, 347, 348, 0, 349, 0, 350, 0, 0, 0,
+ 353, 354, 355, 356, 0, 357, 358, 0, 359, 360,
+ 361, 0, 362, 363, 364, 365, 986, 0, 368, 369,
+ 370, 371, 0, 372, 373, 374, 375, 376, 377, 378,
+ 0, 379, 0, 381, 382, 383, 384, 385, 386, 387,
+ 0, 388, 0, 389, 0, 0, 392, 0, 394, 395,
+ 396, 397, 398, 0, 0, 399, 400, 0, 402, 0,
+ 0, 404, 405, 406, 0, 0, 407, 408, 409, 410,
+ 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
+ 421, 422, 423, 424, 425, 0, 427, 428, 429, 430,
+ 431, 432, 433, 434, 435, 436, 437, 0, 438, 439,
+ 0, 441, 0, 442, 443, 444, 445, 446, 447, 0,
+ 448, 449, 0, 0, 450, 451, 452, 0, 0, 453,
+ 454, 455, 0, 457, 0, 459, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 0, 470, 471, 472,
+ 473, 474, 475, 476, 477, 0, 478, 479, 480, 481,
+ 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
+ 492, 0, 493, 494, 495, 496, 497, 498, 499, 500,
+ 501, 502, 503, 504, 505, 0, 506, 507, 0, 509,
+ 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
+ 520, 521, 522, 523, 0, 524, 525, 526, 527, 528,
+ 0, 529, 530, 531, 532, 533, 0, 535, 536, 537,
+ 538, 0, 539, 540, 541, 542, 543, 544, 545, 546,
+ 547, 548, 549, 550, 551, 552, 553, 0, 554, 555,
+ 0, 556, 0, 558, 559, 560, 561, 562, 0, 563,
+ 564, 565, 0, 0, 566, 567, 568, 569, 570, 0,
+ 571, 572, 573, 574, 575, 576, 577, 578, 0, 0,
+ 579, 580, 581, 582, 583, 0, 0, 584, 585, 586,
+ 587, 588, 589, 590, 0, 591, 0, 593, 594, 595,
+ 596, 0, 0, 597, 0, 0, 598, 599, 600, 601,
+ 602, 603, 604, 605, 606, 607, 608, 609, 610, 611,
+ 612, 613, 614, 615, 616, 617, 625, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
+ 242, 0, 243, 244, 245, 0, 0, 0, 0, 0,
+ 0, 0, 246, 247, 248, 0, 249, 250, 251, 252,
+ 0, 254, 255, 256, 257, 258, 0, 260, 261, 0,
+ 262, 263, 264, 265, 266, 267, 268, 0, 0, 269,
+ 270, 271, 272, 273, 0, 274, 275, 276, 277, 278,
+ 0, 0, 0, 280, 281, 282, 283, 284, 285, 0,
+ 287, 288, 289, 0, 290, 291, 292, 293, 294, 295,
+ 0, 0, 297, 298, 299, 0, 0, 0, 0, 0,
+ 0, 0, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, 0, 310, 0, 311, 312, 313, 314, 315, 316,
+ 317, 0, 318, 319, 320, 321, 0, 0, 322, 323,
+ 324, 325, 326, 0, 327, 328, 329, 0, 330, 331,
+ 332, 0, 333, 334, 335, 336, 337, 338, 339, 340,
+ 341, 342, 0, 343, 0, 344, 345, 346, 347, 348,
+ 0, 349, 0, 350, 0, 0, 0, 353, 354, 355,
+ 356, 0, 357, 358, 0, 359, 360, 361, 0, 362,
+ 363, 364, 365, 1002, 0, 368, 369, 370, 371, 0,
+ 372, 373, 374, 375, 376, 377, 378, 0, 379, 0,
+ 381, 382, 383, 384, 385, 386, 387, 0, 388, 0,
+ 389, 0, 0, 392, 0, 394, 395, 396, 397, 398,
+ 0, 0, 399, 400, 0, 402, 0, 0, 404, 405,
+ 406, 0, 0, 407, 408, 409, 410, 411, 412, 413,
+ 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
+ 424, 425, 0, 427, 428, 429, 430, 431, 432, 433,
+ 434, 435, 436, 437, 0, 438, 439, 0, 441, 0,
+ 442, 443, 444, 445, 446, 447, 0, 448, 449, 0,
+ 0, 450, 451, 452, 0, 0, 453, 454, 455, 0,
+ 457, 0, 459, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 0, 470, 471, 472, 473, 474, 475,
+ 476, 477, 0, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 488, 489, 490, 491, 492, 0, 493,
+ 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
+ 504, 505, 0, 506, 507, 0, 509, 510, 511, 512,
+ 513, 514, 515, 516, 517, 518, 519, 520, 521, 522,
+ 523, 0, 524, 525, 526, 527, 528, 0, 529, 530,
+ 531, 532, 533, 0, 535, 536, 537, 538, 0, 539,
+ 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
+ 550, 551, 552, 553, 0, 554, 555, 0, 556, 0,
+ 558, 559, 560, 561, 562, 0, 563, 564, 565, 0,
+ 0, 566, 567, 568, 569, 570, 0, 571, 572, 573,
+ 574, 575, 576, 577, 578, 0, 0, 579, 580, 581,
+ 582, 583, 0, 0, 584, 585, 586, 587, 588, 589,
+ 590, 0, 591, 0, 593, 594, 595, 596, 0, 0,
+ 597, 0, 0, 598, 599, 600, 601, 602, 603, 604,
+ 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
+ 615, 616, 617, 625, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 235, 236, 237, 238, 239, 240, 241, 242, 0, 243,
+ 244, 245, 0, 0, 0, 0, 0, 0, 0, 246,
+ 247, 248, 0, 249, 250, 251, 252, 0, 254, 255,
+ 256, 257, 258, 0, 260, 261, 0, 262, 263, 264,
+ 265, 266, 267, 268, 0, 0, 269, 270, 271, 272,
+ 273, 0, 274, 275, 276, 277, 278, 0, 0, 0,
+ 280, 281, 282, 283, 284, 285, 0, 287, 288, 289,
+ 0, 290, 291, 292, 293, 294, 295, 0, 0, 297,
+ 298, 299, 0, 0, 0, 0, 0, 0, 0, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 0, 310,
+ 0, 311, 312, 313, 314, 315, 316, 317, 0, 318,
+ 319, 320, 321, 0, 0, 322, 323, 324, 325, 326,
+ 0, 327, 328, 329, 0, 330, 331, 332, 0, 333,
+ 334, 335, 336, 337, 338, 339, 340, 341, 342, 0,
+ 343, 0, 344, 345, 346, 347, 348, 0, 349, 0,
+ 350, 0, 0, 0, 353, 354, 355, 356, 0, 357,
+ 358, 0, 359, 360, 361, 0, 362, 363, 364, 365,
+ 1058, 0, 368, 369, 370, 371, 0, 372, 373, 374,
+ 375, 376, 377, 378, 0, 379, 0, 381, 382, 383,
+ 384, 385, 386, 387, 0, 388, 0, 389, 0, 0,
+ 392, 0, 394, 395, 396, 397, 398, 0, 0, 399,
+ 400, 0, 402, 0, 0, 404, 405, 406, 0, 0,
+ 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
+ 417, 418, 419, 420, 421, 422, 423, 424, 425, 0,
+ 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
+ 437, 0, 438, 439, 0, 441, 0, 442, 443, 444,
+ 445, 446, 447, 0, 448, 449, 0, 0, 450, 451,
+ 452, 0, 0, 453, 454, 455, 0, 457, 0, 459,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 0, 470, 471, 472, 473, 474, 475, 476, 477, 0,
+ 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
+ 488, 489, 490, 491, 492, 0, 493, 494, 495, 496,
+ 497, 498, 499, 500, 501, 502, 503, 504, 505, 0,
+ 506, 507, 0, 509, 510, 511, 512, 513, 514, 515,
+ 516, 517, 518, 519, 520, 521, 522, 523, 0, 524,
+ 525, 526, 527, 528, 0, 529, 530, 531, 532, 533,
+ 0, 535, 536, 537, 538, 0, 539, 540, 541, 542,
+ 543, 544, 545, 546, 547, 548, 549, 550, 551, 552,
+ 553, 0, 554, 555, 0, 556, 0, 558, 559, 560,
+ 561, 562, 0, 563, 564, 565, 0, 0, 566, 567,
+ 568, 569, 570, 0, 571, 572, 573, 574, 575, 576,
+ 577, 578, 0, 0, 579, 580, 581, 582, 583, 0,
+ 0, 584, 585, 586, 587, 588, 589, 590, 0, 591,
+ 0, 593, 594, 595, 596, 0, 0, 597, 0, 0,
+ 598, 599, 600, 601, 602, 603, 604, 605, 606, 607,
+ 608, 609, 610, 611, 612, 613, 614, 615, 616, 617,
+ 625, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
+ 238, 239, 240, 241, 242, 0, 243, 244, 245, 0,
+ 0, 0, 0, 0, 0, 0, 246, 247, 248, 0,
+ 249, 250, 251, 252, 0, 254, 255, 256, 257, 258,
+ 0, 260, 261, 0, 262, 263, 264, 265, 266, 267,
+ 268, 0, 0, 269, 270, 271, 272, 273, 0, 274,
+ 275, 276, 277, 278, 0, 0, 0, 280, 281, 282,
+ 283, 284, 285, 0, 287, 288, 289, 0, 290, 291,
+ 292, 293, 294, 295, 0, 0, 297, 298, 299, 0,
+ 0, 0, 0, 0, 0, 0, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, 0, 310, 0, 311, 312,
+ 313, 314, 315, 316, 317, 0, 318, 319, 320, 321,
+ 0, 0, 322, 323, 324, 325, 326, 0, 327, 328,
+ 329, 0, 330, 331, 332, 0, 333, 334, 335, 336,
+ 337, 338, 339, 340, 341, 342, 0, 343, 0, 344,
+ 345, 346, 347, 348, 0, 349, 0, 350, 0, 0,
+ 0, 353, 354, 355, 356, 0, 357, 358, 0, 359,
+ 360, 361, 0, 362, 363, 364, 365, 1063, 0, 368,
+ 369, 370, 371, 0, 372, 373, 374, 375, 376, 377,
+ 378, 0, 379, 0, 381, 382, 383, 384, 385, 386,
+ 387, 0, 388, 0, 389, 0, 0, 392, 0, 394,
+ 395, 396, 397, 398, 0, 0, 399, 400, 0, 402,
+ 0, 0, 404, 405, 406, 0, 0, 407, 408, 409,
+ 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
+ 420, 421, 422, 423, 424, 425, 0, 427, 428, 429,
+ 430, 431, 432, 433, 434, 435, 436, 437, 0, 438,
+ 439, 0, 441, 0, 442, 443, 444, 445, 446, 447,
+ 0, 448, 449, 0, 0, 450, 451, 452, 0, 0,
+ 453, 454, 455, 0, 457, 0, 459, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 0, 470, 471,
+ 472, 473, 474, 475, 476, 477, 0, 478, 479, 480,
+ 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
+ 491, 492, 0, 493, 494, 495, 496, 497, 498, 499,
+ 500, 501, 502, 503, 504, 505, 0, 506, 507, 0,
+ 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
+ 519, 520, 521, 522, 523, 0, 524, 525, 526, 527,
+ 528, 0, 529, 530, 531, 532, 533, 0, 535, 536,
+ 537, 538, 0, 539, 540, 541, 542, 543, 544, 545,
+ 546, 547, 548, 549, 550, 551, 552, 553, 0, 554,
+ 555, 0, 556, 0, 558, 559, 560, 561, 562, 0,
+ 563, 564, 565, 0, 0, 566, 567, 568, 569, 570,
+ 0, 571, 572, 573, 574, 575, 576, 577, 578, 0,
+ 0, 579, 580, 581, 582, 583, 0, 0, 584, 585,
+ 586, 587, 588, 589, 590, 0, 591, 0, 593, 594,
+ 595, 596, 0, 0, 597, 0, 0, 598, 599, 600,
+ 601, 602, 603, 604, 605, 606, 607, 608, 609, 610,
+ 611, 612, 613, 614, 615, 616, 617, 625, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
+ 241, 242, 0, 243, 244, 245, 0, 0, 0, 0,
+ 0, 0, 0, 246, 247, 248, 0, 249, 250, 251,
+ 252, 0, 254, 255, 256, 257, 258, 0, 260, 261,
+ 0, 262, 263, 264, 265, 266, 267, 268, 0, 0,
+ 269, 270, 271, 272, 273, 0, 274, 275, 276, 277,
+ 278, 0, 0, 0, 280, 281, 282, 283, 284, 285,
+ 0, 287, 288, 289, 0, 290, 291, 292, 293, 294,
+ 295, 0, 0, 297, 298, 299, 0, 0, 0, 0,
+ 0, 0, 0, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, 0, 310, 0, 311, 312, 313, 314, 315,
+ 316, 317, 0, 318, 319, 320, 321, 0, 0, 322,
+ 323, 324, 325, 326, 0, 327, 328, 329, 0, 330,
+ 331, 332, 0, 333, 334, 335, 336, 337, 338, 339,
+ 340, 341, 342, 0, 343, 0, 344, 345, 346, 347,
+ 348, 0, 349, 0, 350, 0, 0, 0, 353, 354,
+ 355, 356, 0, 357, 358, 0, 359, 360, 361, 0,
+ 362, 363, 364, 365, 1080, 0, 368, 369, 370, 371,
+ 0, 372, 373, 374, 375, 376, 377, 378, 0, 379,
+ 0, 381, 382, 383, 384, 385, 386, 387, 0, 388,
+ 0, 389, 0, 0, 392, 0, 394, 395, 396, 397,
+ 398, 0, 0, 399, 400, 0, 402, 0, 0, 404,
+ 405, 406, 0, 0, 407, 408, 409, 410, 411, 412,
+ 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
+ 423, 424, 425, 0, 427, 428, 429, 430, 431, 432,
+ 433, 434, 435, 436, 437, 0, 438, 439, 0, 441,
+ 0, 442, 443, 444, 445, 446, 447, 0, 448, 449,
+ 0, 0, 450, 451, 452, 0, 0, 453, 454, 455,
+ 0, 457, 0, 459, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 0, 470, 471, 472, 473, 474,
+ 475, 476, 477, 0, 478, 479, 480, 481, 482, 483,
+ 484, 485, 486, 487, 488, 489, 490, 491, 492, 0,
+ 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
+ 503, 504, 505, 0, 506, 507, 0, 509, 510, 511,
+ 512, 513, 514, 515, 516, 517, 518, 519, 520, 521,
+ 522, 523, 0, 524, 525, 526, 527, 528, 0, 529,
+ 530, 531, 532, 533, 0, 535, 536, 537, 538, 0,
+ 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
+ 549, 550, 551, 552, 553, 0, 554, 555, 0, 556,
+ 0, 558, 559, 560, 561, 562, 0, 563, 564, 565,
+ 0, 0, 566, 567, 568, 569, 570, 0, 571, 572,
+ 573, 574, 575, 576, 577, 578, 0, 0, 579, 580,
+ 581, 582, 583, 0, 0, 584, 585, 586, 587, 588,
+ 589, 590, 0, 591, 0, 593, 594, 595, 596, 0,
+ 0, 597, 0, 0, 598, 599, 600, 601, 602, 603,
+ 604, 605, 606, 607, 608, 609, 610, 611, 612, 613,
+ 614, 615, 616, 617, 625, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 235, 236, 237, 238, 239, 240, 241, 242, 0,
+ 243, 244, 245, 0, 0, 0, 0, 0, 0, 0,
+ 246, 247, 248, 0, 249, 250, 251, 252, 0, 254,
+ 255, 256, 257, 258, 0, 260, 261, 0, 262, 263,
+ 264, 265, 266, 267, 268, 0, 0, 269, 270, 271,
+ 272, 273, 0, 274, 275, 276, 277, 278, 0, 0,
+ 0, 280, 281, 282, 283, 284, 285, 0, 287, 288,
+ 289, 0, 290, 291, 292, 293, 294, 295, 0, 0,
+ 297, 298, 299, 0, 0, 0, 0, 0, 0, 0,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, 0,
+ 310, 0, 311, 312, 313, 314, 315, 316, 317, 0,
+ 318, 319, 320, 321, 0, 0, 322, 323, 324, 325,
+ 326, 0, 327, 328, 329, 0, 330, 331, 332, 0,
+ 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
+ 0, 343, 0, 344, 345, 346, 347, 348, 0, 349,
+ 0, 350, 0, 0, 0, 353, 354, 355, 356, 0,
+ 357, 358, 0, 359, 360, 361, 0, 362, 363, 364,
+ 365, 1083, 0, 368, 369, 370, 371, 0, 372, 373,
+ 374, 375, 376, 377, 378, 0, 379, 0, 381, 382,
+ 383, 384, 385, 386, 387, 0, 388, 0, 389, 0,
+ 0, 392, 0, 394, 395, 396, 397, 398, 0, 0,
+ 399, 400, 0, 402, 0, 0, 404, 405, 406, 0,
+ 0, 407, 408, 409, 410, 411, 412, 413, 414, 415,
+ 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
+ 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
+ 436, 437, 0, 438, 439, 0, 441, 0, 442, 443,
+ 444, 445, 446, 447, 0, 448, 449, 0, 0, 450,
+ 451, 452, 0, 0, 453, 454, 455, 0, 457, 0,
+ 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 0, 470, 471, 472, 473, 474, 475, 476, 477,
+ 0, 478, 479, 480, 481, 482, 483, 484, 485, 486,
+ 487, 488, 489, 490, 491, 492, 0, 493, 494, 495,
+ 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
+ 0, 506, 507, 0, 509, 510, 511, 512, 513, 514,
+ 515, 516, 517, 518, 519, 520, 521, 522, 523, 0,
+ 524, 525, 526, 527, 528, 0, 529, 530, 531, 532,
+ 533, 0, 535, 536, 537, 538, 0, 539, 540, 541,
+ 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
+ 552, 553, 0, 554, 555, 0, 556, 0, 558, 559,
+ 560, 561, 562, 0, 563, 564, 565, 0, 0, 566,
+ 567, 568, 569, 570, 0, 571, 572, 573, 574, 575,
+ 576, 577, 578, 0, 0, 579, 580, 581, 582, 583,
+ 0, 0, 584, 585, 586, 587, 588, 589, 590, 0,
+ 591, 0, 593, 594, 595, 596, 0, 0, 597, 0,
+ 0, 598, 599, 600, 601, 602, 603, 604, 605, 606,
+ 607, 608, 609, 610, 611, 612, 613, 614, 615, 616,
+ 617, 625, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
+ 237, 238, 239, 240, 241, 242, 0, 243, 244, 245,
+ 0, 0, 0, 0, 0, 0, 0, 246, 247, 248,
+ 0, 249, 250, 251, 252, 0, 254, 255, 256, 257,
+ 258, 0, 260, 261, 0, 262, 263, 264, 265, 266,
+ 267, 268, 0, 0, 269, 270, 271, 272, 273, 0,
+ 274, 275, 276, 277, 278, 0, 0, 0, 280, 281,
+ 282, 283, 284, 285, 0, 287, 288, 289, 0, 290,
+ 291, 292, 293, 294, 295, 0, 0, 297, 298, 299,
+ 0, 0, 0, 0, 0, 0, 0, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, 0, 310, 0, 311,
+ 312, 313, 314, 315, 316, 317, 0, 318, 319, 320,
+ 321, 0, 0, 322, 323, 324, 325, 326, 0, 327,
+ 328, 329, 0, 330, 331, 332, 0, 333, 334, 335,
+ 336, 337, 338, 339, 340, 341, 342, 0, 343, 0,
+ 344, 345, 346, 347, 348, 0, 349, 0, 350, 0,
+ 0, 0, 353, 354, 355, 356, 0, 357, 358, 0,
+ 359, 360, 361, 0, 362, 363, 364, 365, 1085, 0,
+ 368, 369, 370, 371, 0, 372, 373, 374, 375, 376,
+ 377, 378, 0, 379, 0, 381, 382, 383, 384, 385,
+ 386, 387, 0, 388, 0, 389, 0, 0, 392, 0,
+ 394, 395, 396, 397, 398, 0, 0, 399, 400, 0,
+ 402, 0, 0, 404, 405, 406, 0, 0, 407, 408,
+ 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
+ 419, 420, 421, 422, 423, 424, 425, 0, 427, 428,
+ 429, 430, 431, 432, 433, 434, 435, 436, 437, 0,
+ 438, 439, 0, 441, 0, 442, 443, 444, 445, 446,
+ 447, 0, 448, 449, 0, 0, 450, 451, 452, 0,
+ 0, 453, 454, 455, 0, 457, 0, 459, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 0, 470,
+ 471, 472, 473, 474, 475, 476, 477, 0, 478, 479,
+ 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
+ 490, 491, 492, 0, 493, 494, 495, 496, 497, 498,
+ 499, 500, 501, 502, 503, 504, 505, 0, 506, 507,
+ 0, 509, 510, 511, 512, 513, 514, 515, 516, 517,
+ 518, 519, 520, 521, 522, 523, 0, 524, 525, 526,
+ 527, 528, 0, 529, 530, 531, 532, 533, 0, 535,
+ 536, 537, 538, 0, 539, 540, 541, 542, 543, 544,
+ 545, 546, 547, 548, 549, 550, 551, 552, 553, 0,
+ 554, 555, 0, 556, 0, 558, 559, 560, 561, 562,
+ 0, 563, 564, 565, 0, 0, 566, 567, 568, 569,
+ 570, 0, 571, 572, 573, 574, 575, 576, 577, 578,
+ 0, 0, 579, 580, 581, 582, 583, 0, 0, 584,
+ 585, 586, 587, 588, 589, 590, 0, 591, 0, 593,
+ 594, 595, 596, 0, 0, 597, 0, 0, 598, 599,
+ 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
+ 610, 611, 612, 613, 614, 615, 616, 617, 625, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
+ 240, 241, 242, 0, 243, 244, 245, 0, 0, 0,
+ 0, 0, 0, 0, 246, 247, 248, 0, 249, 250,
+ 251, 252, 0, 254, 255, 256, 257, 258, 0, 260,
+ 261, 0, 262, 263, 264, 265, 266, 267, 268, 0,
+ 0, 269, 270, 271, 272, 273, 0, 274, 275, 276,
+ 277, 278, 0, 0, 0, 280, 281, 282, 283, 284,
+ 285, 0, 287, 288, 289, 0, 290, 291, 292, 293,
+ 294, 295, 0, 0, 297, 298, 299, 0, 0, 0,
+ 0, 0, 0, 0, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, 0, 310, 0, 311, 312, 313, 314,
+ 315, 316, 317, 0, 318, 319, 320, 321, 0, 0,
+ 322, 323, 324, 325, 326, 0, 327, 328, 329, 0,
+ 330, 331, 332, 0, 333, 334, 335, 336, 337, 338,
+ 339, 340, 341, 342, 0, 343, 0, 344, 345, 346,
+ 347, 348, 0, 349, 0, 350, 0, 0, 0, 353,
+ 354, 355, 356, 0, 357, 358, 0, 359, 360, 361,
+ 0, 362, 363, 364, 365, 1122, 0, 368, 369, 370,
+ 371, 0, 372, 373, 374, 375, 376, 377, 378, 0,
+ 379, 0, 381, 382, 383, 384, 385, 386, 387, 0,
+ 388, 0, 389, 0, 0, 392, 0, 394, 395, 396,
+ 397, 398, 0, 0, 399, 400, 0, 402, 0, 0,
+ 404, 405, 406, 0, 0, 407, 408, 409, 410, 411,
+ 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
+ 422, 423, 424, 425, 0, 427, 428, 429, 430, 431,
+ 432, 433, 434, 435, 436, 437, 0, 438, 439, 0,
+ 441, 0, 442, 443, 444, 445, 446, 447, 0, 448,
+ 449, 0, 0, 450, 451, 452, 0, 0, 453, 454,
+ 455, 0, 457, 0, 459, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 0, 470, 471, 472, 473,
+ 474, 475, 476, 477, 0, 478, 479, 480, 481, 482,
+ 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
+ 0, 493, 494, 495, 496, 497, 498, 499, 500, 501,
+ 502, 503, 504, 505, 0, 506, 507, 0, 509, 510,
+ 511, 512, 513, 514, 515, 516, 517, 518, 519, 520,
+ 521, 522, 523, 0, 524, 525, 526, 527, 528, 0,
+ 529, 530, 531, 532, 533, 0, 535, 536, 537, 538,
+ 0, 539, 540, 541, 542, 543, 544, 545, 546, 547,
+ 548, 549, 550, 551, 552, 553, 0, 554, 555, 0,
+ 556, 0, 558, 559, 560, 561, 562, 0, 563, 564,
+ 565, 0, 0, 566, 567, 568, 569, 570, 0, 571,
+ 572, 573, 574, 575, 576, 577, 578, 0, 0, 579,
+ 580, 581, 582, 583, 0, 0, 584, 585, 586, 587,
+ 588, 589, 590, 0, 591, 0, 593, 594, 595, 596,
+ 0, 0, 597, 0, 0, 598, 599, 600, 601, 602,
+ 603, 604, 605, 606, 607, 608, 609, 610, 611, 612,
+ 613, 614, 615, 616, 617, 625, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
+ 0, 243, 244, 245, 0, 0, 0, 0, 0, 0,
+ 0, 246, 247, 248, 0, 249, 250, 251, 252, 0,
+ 254, 255, 256, 257, 258, 0, 260, 261, 0, 262,
+ 263, 264, 265, 266, 267, 268, 0, 0, 269, 270,
+ 271, 272, 273, 0, 274, 275, 276, 277, 278, 0,
+ 0, 0, 280, 281, 282, 283, 284, 285, 0, 287,
+ 288, 289, 0, 290, 291, 292, 293, 294, 295, 0,
+ 0, 297, 298, 299, 0, 0, 0, 0, 0, 0,
+ 0, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ 0, 310, 0, 311, 312, 313, 314, 315, 316, 317,
+ 0, 318, 319, 320, 321, 0, 0, 322, 323, 324,
+ 325, 326, 0, 327, 328, 329, 0, 330, 331, 332,
+ 0, 333, 334, 335, 336, 337, 338, 339, 340, 341,
+ 342, 0, 343, 0, 344, 345, 346, 347, 348, 0,
+ 349, 0, 350, 0, 0, 0, 353, 354, 355, 356,
+ 0, 357, 358, 0, 359, 360, 361, 0, 362, 363,
+ 364, 365, 1150, 0, 368, 369, 370, 371, 0, 372,
+ 373, 374, 375, 376, 377, 378, 0, 379, 0, 381,
+ 382, 383, 384, 385, 386, 387, 0, 388, 0, 389,
+ 0, 0, 392, 0, 394, 395, 396, 397, 398, 0,
+ 0, 399, 400, 0, 402, 0, 0, 404, 405, 406,
+ 0, 0, 407, 408, 409, 410, 411, 412, 413, 414,
+ 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
+ 425, 0, 427, 428, 429, 430, 431, 432, 433, 434,
+ 435, 436, 437, 0, 438, 439, 0, 441, 0, 442,
+ 443, 444, 445, 446, 447, 0, 448, 449, 0, 0,
+ 450, 451, 452, 0, 0, 453, 454, 455, 0, 457,
+ 0, 459, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 0, 470, 471, 472, 473, 474, 475, 476,
+ 477, 0, 478, 479, 480, 481, 482, 483, 484, 485,
+ 486, 487, 488, 489, 490, 491, 492, 0, 493, 494,
+ 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
+ 505, 0, 506, 507, 0, 509, 510, 511, 512, 513,
+ 514, 515, 516, 517, 518, 519, 520, 521, 522, 523,
+ 0, 524, 525, 526, 527, 528, 0, 529, 530, 531,
+ 532, 533, 0, 535, 536, 537, 538, 0, 539, 540,
+ 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
+ 551, 552, 553, 0, 554, 555, 0, 556, 0, 558,
+ 559, 560, 561, 562, 0, 563, 564, 565, 0, 0,
+ 566, 567, 568, 569, 570, 0, 571, 572, 573, 574,
+ 575, 576, 577, 578, 0, 0, 579, 580, 581, 582,
+ 583, 0, 0, 584, 585, 586, 587, 588, 589, 590,
+ 0, 591, 0, 593, 594, 595, 596, 0, 0, 597,
+ 0, 0, 598, 599, 600, 601, 602, 603, 604, 605,
+ 606, 607, 608, 609, 610, 611, 612, 613, 614, 615,
+ 616, 617, 625, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
+ 236, 237, 238, 239, 240, 241, 242, 0, 243, 244,
+ 245, 0, 0, 0, 0, 0, 0, 0, 246, 247,
+ 248, 0, 249, 250, 251, 252, 0, 254, 255, 256,
+ 257, 258, 0, 260, 261, 0, 262, 263, 264, 265,
+ 266, 267, 268, 0, 0, 269, 270, 271, 272, 273,
+ 0, 274, 275, 276, 277, 278, 0, 0, 0, 280,
+ 281, 282, 283, 284, 285, 0, 287, 288, 289, 0,
+ 290, 291, 292, 293, 294, 295, 0, 0, 297, 298,
+ 299, 0, 0, 0, 0, 0, 0, 0, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, 0, 310, 0,
+ 311, 312, 313, 314, 315, 316, 317, 0, 318, 319,
+ 320, 321, 0, 0, 322, 323, 324, 325, 326, 0,
+ 327, 328, 329, 0, 330, 331, 332, 0, 333, 334,
+ 335, 336, 337, 338, 339, 340, 341, 342, 0, 343,
+ 0, 344, 345, 346, 347, 348, 0, 349, 0, 350,
+ 0, 0, 0, 353, 354, 355, 356, 0, 357, 358,
+ 0, 359, 360, 361, 0, 362, 363, 364, 365, 1152,
+ 0, 368, 369, 370, 371, 0, 372, 373, 374, 375,
+ 376, 377, 378, 0, 379, 0, 381, 382, 383, 384,
+ 385, 386, 387, 0, 388, 0, 389, 0, 0, 392,
+ 0, 394, 395, 396, 397, 398, 0, 0, 399, 400,
+ 0, 402, 0, 0, 404, 405, 406, 0, 0, 407,
+ 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
+ 418, 419, 420, 421, 422, 423, 424, 425, 0, 427,
+ 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
+ 0, 438, 439, 0, 441, 0, 442, 443, 444, 445,
+ 446, 447, 0, 448, 449, 0, 0, 450, 451, 452,
+ 0, 0, 453, 454, 455, 0, 457, 0, 459, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 0,
+ 470, 471, 472, 473, 474, 475, 476, 477, 0, 478,
+ 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
+ 489, 490, 491, 492, 0, 493, 494, 495, 496, 497,
+ 498, 499, 500, 501, 502, 503, 504, 505, 0, 506,
+ 507, 0, 509, 510, 511, 512, 513, 514, 515, 516,
+ 517, 518, 519, 520, 521, 522, 523, 0, 524, 525,
+ 526, 527, 528, 0, 529, 530, 531, 532, 533, 0,
+ 535, 536, 537, 538, 0, 539, 540, 541, 542, 543,
+ 544, 545, 546, 547, 548, 549, 550, 551, 552, 553,
+ 0, 554, 555, 0, 556, 0, 558, 559, 560, 561,
+ 562, 0, 563, 564, 565, 0, 0, 566, 567, 568,
+ 569, 570, 0, 571, 572, 573, 574, 575, 576, 577,
+ 578, 0, 0, 579, 580, 581, 582, 583, 0, 0,
+ 584, 585, 586, 587, 588, 589, 590, 0, 591, 0,
+ 593, 594, 595, 596, 0, 0, 597, 0, 0, 598,
+ 599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
+ 609, 610, 611, 612, 613, 614, 615, 616, 617, 625,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
+ 239, 240, 241, 242, 0, 243, 244, 245, 0, 0,
+ 0, 0, 0, 0, 0, 246, 247, 248, 0, 249,
+ 250, 251, 252, 0, 254, 255, 256, 257, 258, 0,
+ 260, 261, 0, 262, 263, 264, 265, 266, 267, 268,
+ 0, 0, 269, 270, 271, 272, 273, 0, 274, 275,
+ 276, 277, 278, 0, 0, 0, 280, 281, 282, 283,
+ 284, 285, 0, 287, 288, 289, 0, 290, 291, 292,
+ 293, 294, 295, 0, 0, 297, 298, 299, 0, 0,
+ 0, 0, 0, 0, 0, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, 0, 310, 0, 311, 312, 313,
+ 314, 315, 316, 317, 0, 318, 319, 320, 321, 0,
+ 0, 322, 323, 324, 325, 326, 0, 327, 328, 329,
+ 0, 330, 331, 332, 0, 333, 334, 335, 336, 337,
+ 338, 339, 340, 341, 342, 0, 343, 0, 344, 345,
+ 346, 347, 348, 0, 349, 0, 350, 0, 0, 0,
+ 353, 354, 355, 356, 0, 357, 358, 0, 359, 360,
+ 361, 0, 362, 363, 364, 365, 1162, 0, 368, 369,
+ 370, 371, 0, 372, 373, 374, 375, 376, 377, 378,
+ 0, 379, 0, 381, 382, 383, 384, 385, 386, 387,
+ 0, 388, 0, 389, 0, 0, 392, 0, 394, 395,
+ 396, 397, 398, 0, 0, 399, 400, 0, 402, 0,
+ 0, 404, 405, 406, 0, 0, 407, 408, 409, 410,
+ 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
+ 421, 422, 423, 424, 425, 0, 427, 428, 429, 430,
+ 431, 432, 433, 434, 435, 436, 437, 0, 438, 439,
+ 0, 441, 0, 442, 443, 444, 445, 446, 447, 0,
+ 448, 449, 0, 0, 450, 451, 452, 0, 0, 453,
+ 454, 455, 0, 457, 0, 459, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 0, 470, 471, 472,
+ 473, 474, 475, 476, 477, 0, 478, 479, 480, 481,
+ 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
+ 492, 0, 493, 494, 495, 496, 497, 498, 499, 500,
+ 501, 502, 503, 504, 505, 0, 506, 507, 0, 509,
+ 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
+ 520, 521, 522, 523, 0, 524, 525, 526, 527, 528,
+ 0, 529, 530, 531, 532, 533, 0, 535, 536, 537,
+ 538, 0, 539, 540, 541, 542, 543, 544, 545, 546,
+ 547, 548, 549, 550, 551, 552, 553, 0, 554, 555,
+ 0, 556, 0, 558, 559, 560, 561, 562, 0, 563,
+ 564, 565, 0, 0, 566, 567, 568, 569, 570, 0,
+ 571, 572, 573, 574, 575, 576, 577, 578, 0, 0,
+ 579, 580, 581, 582, 583, 0, 0, 584, 585, 586,
+ 587, 588, 589, 590, 0, 591, 0, 593, 594, 595,
+ 596, 0, 0, 597, 0, 0, 598, 599, 600, 601,
+ 602, 603, 604, 605, 606, 607, 608, 609, 610, 611,
+ 612, 613, 614, 615, 616, 617, 625, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
+ 242, 0, 243, 244, 245, 0, 0, 0, 0, 0,
+ 0, 0, 246, 247, 248, 0, 249, 250, 251, 252,
+ 0, 254, 255, 256, 257, 258, 0, 260, 261, 0,
+ 262, 263, 264, 265, 266, 267, 268, 0, 0, 269,
+ 270, 271, 272, 273, 0, 274, 275, 276, 277, 278,
+ 0, 0, 0, 280, 281, 282, 283, 284, 285, 0,
+ 287, 288, 289, 0, 290, 291, 292, 293, 294, 295,
+ 0, 0, 297, 298, 299, 0, 0, 0, 0, 0,
+ 0, 0, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, 0, 310, 0, 311, 312, 313, 314, 315, 316,
+ 317, 0, 318, 319, 320, 321, 0, 0, 322, 323,
+ 324, 325, 326, 0, 327, 328, 329, 0, 330, 331,
+ 332, 0, 333, 334, 335, 336, 337, 338, 339, 340,
+ 341, 342, 0, 343, 0, 344, 345, 346, 347, 348,
+ 0, 349, 0, 350, 0, 0, 0, 353, 354, 355,
+ 356, 0, 357, 358, 0, 359, 360, 361, 0, 362,
+ 363, 364, 365, 1165, 0, 368, 369, 370, 371, 0,
+ 372, 373, 374, 375, 376, 377, 378, 0, 379, 0,
+ 381, 382, 383, 384, 385, 386, 387, 0, 388, 0,
+ 389, 0, 0, 392, 0, 394, 395, 396, 397, 398,
+ 0, 0, 399, 400, 0, 402, 0, 0, 404, 405,
+ 406, 0, 0, 407, 408, 409, 410, 411, 412, 413,
+ 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
+ 424, 425, 0, 427, 428, 429, 430, 431, 432, 433,
+ 434, 435, 436, 437, 0, 438, 439, 0, 441, 0,
+ 442, 443, 444, 445, 446, 447, 0, 448, 449, 0,
+ 0, 450, 451, 452, 0, 0, 453, 454, 455, 0,
+ 457, 0, 459, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 0, 470, 471, 472, 473, 474, 475,
+ 476, 477, 0, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 488, 489, 490, 491, 492, 0, 493,
+ 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
+ 504, 505, 0, 506, 507, 0, 509, 510, 511, 512,
+ 513, 514, 515, 516, 517, 518, 519, 520, 521, 522,
+ 523, 0, 524, 525, 526, 527, 528, 0, 529, 530,
+ 531, 532, 533, 0, 535, 536, 537, 538, 0, 539,
+ 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
+ 550, 551, 552, 553, 0, 554, 555, 0, 556, 0,
+ 558, 559, 560, 561, 562, 0, 563, 564, 565, 0,
+ 0, 566, 567, 568, 569, 570, 0, 571, 572, 573,
+ 574, 575, 576, 577, 578, 0, 0, 579, 580, 581,
+ 582, 583, 0, 0, 584, 585, 586, 587, 588, 589,
+ 590, 0, 591, 0, 593, 594, 595, 596, 0, 0,
+ 597, 0, 0, 598, 599, 600, 601, 602, 603, 604,
+ 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
+ 615, 616, 617, 625, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 235, 236, 237, 238, 239, 240, 241, 242, 0, 243,
+ 244, 245, 0, 0, 0, 0, 0, 0, 0, 246,
+ 247, 248, 0, 249, 250, 251, 252, 0, 254, 255,
+ 256, 257, 258, 0, 260, 261, 0, 262, 263, 264,
+ 265, 266, 267, 268, 0, 0, 269, 270, 271, 272,
+ 273, 0, 274, 275, 276, 277, 278, 0, 0, 0,
+ 280, 281, 282, 283, 284, 285, 0, 287, 288, 289,
+ 0, 290, 291, 292, 293, 294, 295, 0, 0, 297,
+ 298, 299, 0, 0, 0, 0, 0, 0, 0, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 0, 310,
+ 0, 311, 312, 313, 314, 315, 316, 317, 0, 318,
+ 319, 320, 321, 0, 0, 322, 323, 324, 325, 326,
+ 0, 327, 328, 329, 0, 330, 331, 332, 0, 333,
+ 334, 335, 336, 337, 338, 339, 340, 341, 342, 0,
+ 343, 0, 344, 345, 346, 347, 348, 0, 349, 0,
+ 350, 0, 0, 0, 353, 354, 355, 356, 0, 357,
+ 358, 0, 359, 360, 361, 0, 362, 363, 364, 365,
+ 1168, 0, 368, 369, 370, 371, 0, 372, 373, 374,
+ 375, 376, 377, 378, 0, 379, 0, 381, 382, 383,
+ 384, 385, 386, 387, 0, 388, 0, 389, 0, 0,
+ 392, 0, 394, 395, 396, 397, 398, 0, 0, 399,
+ 400, 0, 402, 0, 0, 404, 405, 406, 0, 0,
+ 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
+ 417, 418, 419, 420, 421, 422, 423, 424, 425, 0,
+ 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
+ 437, 0, 438, 439, 0, 441, 0, 442, 443, 444,
+ 445, 446, 447, 0, 448, 449, 0, 0, 450, 451,
+ 452, 0, 0, 453, 454, 455, 0, 457, 0, 459,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 0, 470, 471, 472, 473, 474, 475, 476, 477, 0,
+ 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
+ 488, 489, 490, 491, 492, 0, 493, 494, 495, 496,
+ 497, 498, 499, 500, 501, 502, 503, 504, 505, 0,
+ 506, 507, 0, 509, 510, 511, 512, 513, 514, 515,
+ 516, 517, 518, 519, 520, 521, 522, 523, 0, 524,
+ 525, 526, 527, 528, 0, 529, 530, 531, 532, 533,
+ 0, 535, 536, 537, 538, 0, 539, 540, 541, 542,
+ 543, 544, 545, 546, 547, 548, 549, 550, 551, 552,
+ 553, 0, 554, 555, 0, 556, 0, 558, 559, 560,
+ 561, 562, 0, 563, 564, 565, 0, 0, 566, 567,
+ 568, 569, 570, 0, 571, 572, 573, 574, 575, 576,
+ 577, 578, 0, 0, 579, 580, 581, 582, 583, 0,
+ 0, 584, 585, 586, 587, 588, 589, 590, 0, 591,
+ 0, 593, 594, 595, 596, 0, 0, 597, 0, 0,
+ 598, 599, 600, 601, 602, 603, 604, 605, 606, 607,
+ 608, 609, 610, 611, 612, 613, 614, 615, 616, 617,
+ 625, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
+ 238, 239, 240, 241, 242, 0, 243, 244, 245, 0,
+ 0, 0, 0, 0, 0, 0, 246, 247, 248, 0,
+ 249, 250, 251, 252, 0, 254, 255, 256, 257, 258,
+ 0, 260, 261, 0, 262, 263, 264, 265, 266, 267,
+ 268, 0, 0, 815, 270, 271, 272, 273, 0, 274,
+ 275, 276, 277, 278, 0, 0, 0, 280, 281, 282,
+ 283, 284, 285, 0, 287, 288, 289, 0, 290, 291,
+ 292, 293, 294, 295, 0, 0, 297, 298, 299, 0,
+ 0, 0, 0, 0, 0, 0, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, 0, 310, 0, 311, 312,
+ 313, 314, 315, 316, 317, 0, 318, 319, 320, 321,
+ 0, 0, 322, 323, 324, 325, 326, 0, 327, 328,
+ 329, 0, 330, 331, 332, 0, 333, 334, 335, 336,
+ 337, 338, 339, 340, 341, 342, 0, 343, 0, 344,
+ 345, 346, 347, 348, 0, 349, 0, 350, 0, 0,
+ 0, 353, 354, 355, 356, 0, 357, 358, 0, 359,
+ 360, 361, 0, 362, 363, 364, 365, 366, 0, 368,
+ 369, 370, 371, 0, 372, 373, 374, 375, 376, 377,
+ 378, 0, 379, 0, 381, 382, 383, 384, 385, 386,
+ 387, 0, 388, 0, 389, 0, 0, 392, 0, 394,
+ 395, 396, 397, 398, 0, 0, 399, 400, 0, 402,
+ 0, 0, 404, 405, 406, 0, 0, 407, 408, 409,
+ 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
+ 420, 421, 422, 423, 818, 425, 0, 427, 428, 429,
+ 430, 431, 432, 433, 434, 435, 436, 437, 0, 438,
+ 439, 0, 441, 0, 442, 443, 444, 445, 446, 447,
+ 0, 448, 449, 0, 0, 450, 451, 452, 0, 0,
+ 453, 454, 455, 0, 457, 0, 459, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 0, 470, 471,
+ 472, 473, 474, 475, 476, 477, 0, 478, 479, 480,
+ 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
+ 491, 492, 0, 493, 494, 495, 496, 497, 498, 499,
+ 500, 501, 502, 503, 504, 505, 0, 506, 507, 0,
+ 819, 510, 511, 512, 513, 514, 515, 516, 517, 820,
+ 519, 520, 521, 522, 523, 0, 524, 525, 526, 527,
+ 1345, 0, 529, 530, 531, 532, 533, 0, 535, 536,
+ 537, 538, 0, 539, 540, 541, 542, 543, 544, 545,
+ 546, 547, 548, 549, 550, 551, 552, 553, 0, 554,
+ 555, 0, 556, 0, 558, 559, 560, 561, 562, 0,
+ 563, 822, 565, 0, 0, 823, 567, 568, 569, 570,
+ 0, 571, 572, 573, 574, 575, 576, 577, 578, 0,
+ 0, 579, 580, 581, 582, 583, 0, 0, 584, 585,
+ 586, 587, 588, 589, 590, 0, 591, 0, 593, 594,
+ 595, 596, 0, 0, 597, 0, 0, 598, 599, 600,
+ 601, 602, 824, 604, 605, 606, 607, 608, 609, 610,
+ 611, 612, 613, 614, 615, 616, 617, 625, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
+ 241, 242, 0, 243, 244, 245, 0, 0, 0, 0,
+ 0, 0, 0, 246, 247, 248, 0, 249, 250, 251,
+ 252, 0, 254, 255, 256, 257, 258, 0, 260, 261,
+ 0, 262, 263, 264, 265, 266, 267, 268, 0, 0,
+ 269, 270, 271, 272, 273, 0, 274, 275, 276, 277,
+ 278, 0, 0, 0, 280, 281, 282, 283, 284, 285,
+ 0, 287, 288, 289, 0, 290, 291, 292, 293, 294,
+ 295, 0, 0, 297, 298, 299, 0, 0, 0, 0,
+ 0, 0, 0, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, 0, 310, 0, 311, 312, 313, 314, 315,
+ 316, 317, 0, 318, 319, 320, 321, 0, 0, 322,
+ 323, 324, 325, 326, 0, 327, 328, 329, 0, 330,
+ 331, 332, 0, 333, 334, 335, 336, 337, 338, 339,
+ 340, 341, 342, 0, 343, 0, 344, 345, 346, 347,
+ 348, 0, 349, 0, 350, 0, 0, 0, 353, 354,
+ 355, 356, 0, 357, 358, 0, 359, 360, 361, 0,
+ 362, 363, 364, 365, 1820, 0, 368, 369, 370, 371,
+ 0, 372, 373, 374, 375, 376, 377, 378, 0, 379,
+ 0, 381, 382, 383, 384, 385, 386, 387, 0, 388,
+ 0, 389, 0, 0, 392, 0, 394, 395, 396, 397,
+ 398, 0, 0, 399, 400, 0, 402, 0, 0, 404,
+ 405, 406, 0, 0, 407, 408, 409, 410, 411, 412,
+ 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
+ 423, 424, 425, 0, 427, 428, 429, 430, 431, 432,
+ 433, 434, 435, 436, 437, 0, 438, 439, 0, 441,
+ 0, 442, 443, 444, 445, 446, 447, 0, 448, 449,
+ 0, 0, 450, 451, 452, 0, 0, 453, 454, 455,
+ 0, 457, 0, 459, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 0, 470, 471, 472, 473, 474,
+ 475, 476, 477, 0, 478, 479, 480, 481, 482, 483,
+ 484, 485, 486, 487, 488, 489, 490, 491, 492, 0,
+ 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
+ 503, 504, 505, 0, 506, 507, 0, 509, 510, 511,
+ 512, 513, 514, 515, 516, 517, 518, 519, 520, 521,
+ 522, 523, 0, 524, 525, 526, 527, 528, 0, 529,
+ 530, 531, 532, 533, 0, 535, 536, 537, 538, 0,
+ 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
+ 549, 550, 551, 552, 553, 0, 554, 555, 0, 556,
+ 0, 558, 559, 560, 561, 562, 0, 563, 564, 565,
+ 0, 0, 566, 567, 568, 569, 570, 0, 571, 572,
+ 573, 574, 575, 576, 577, 578, 0, 0, 579, 580,
+ 581, 582, 583, 0, 0, 584, 585, 586, 587, 588,
+ 589, 590, 0, 591, 0, 593, 594, 595, 596, 0,
+ 0, 597, 0, 0, 598, 599, 600, 601, 602, 603,
+ 604, 605, 606, 607, 608, 609, 610, 611, 612, 613,
+ 614, 615, 616, 617, 625, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 235, 236, 237, 238, 239, 240, 241, 242, 0,
+ 243, 244, 245, 0, 0, 0, 0, 0, 0, 0,
+ 246, 247, 248, 0, 249, 250, 251, 252, 0, 254,
+ 255, 256, 257, 258, 0, 260, 261, 0, 262, 263,
+ 264, 265, 266, 267, 268, 0, 0, 269, 270, 271,
+ 272, 273, 0, 274, 275, 276, 277, 278, 0, 0,
+ 0, 280, 281, 282, 283, 284, 285, 0, 287, 288,
+ 289, 0, 290, 291, 292, 293, 294, 295, 0, 0,
+ 297, 298, 299, 0, 0, 0, 0, 0, 0, 0,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, 0,
+ 310, 0, 311, 312, 313, 314, 315, 316, 317, 0,
+ 318, 319, 320, 321, 0, 0, 322, 323, 324, 325,
+ 326, 0, 327, 328, 329, 0, 330, 331, 332, 0,
+ 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
+ 0, 343, 0, 344, 345, 346, 347, 348, 0, 349,
+ 0, 350, 0, 0, 0, 353, 354, 355, 356, 0,
+ 357, 358, 0, 359, 360, 361, 0, 362, 363, 364,
+ 365, 1854, 0, 368, 369, 370, 371, 0, 372, 373,
+ 374, 375, 376, 377, 378, 0, 379, 0, 381, 382,
+ 383, 384, 385, 386, 387, 0, 388, 0, 389, 0,
+ 0, 392, 0, 394, 395, 396, 397, 398, 0, 0,
+ 399, 400, 0, 402, 0, 0, 404, 405, 406, 0,
+ 0, 407, 408, 409, 410, 411, 412, 413, 414, 415,
+ 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
+ 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
+ 436, 437, 0, 438, 439, 0, 441, 0, 442, 443,
+ 444, 445, 446, 447, 0, 448, 449, 0, 0, 450,
+ 451, 452, 0, 0, 453, 454, 455, 0, 457, 0,
+ 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 0, 470, 471, 472, 473, 474, 475, 476, 477,
+ 0, 478, 479, 480, 481, 482, 483, 484, 485, 486,
+ 487, 488, 489, 490, 491, 492, 0, 493, 494, 495,
+ 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
+ 0, 506, 507, 0, 509, 510, 511, 512, 513, 514,
+ 515, 516, 517, 518, 519, 520, 521, 522, 523, 0,
+ 524, 525, 526, 527, 528, 0, 529, 530, 531, 532,
+ 533, 0, 535, 536, 537, 538, 0, 539, 540, 541,
+ 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
+ 552, 553, 0, 554, 555, 0, 556, 0, 558, 559,
+ 560, 561, 562, 0, 563, 564, 565, 0, 0, 566,
+ 567, 568, 569, 570, 0, 571, 572, 573, 574, 575,
+ 576, 577, 578, 0, 0, 579, 580, 581, 582, 583,
+ 0, 0, 584, 585, 586, 587, 588, 589, 590, 0,
+ 591, 0, 593, 594, 595, 596, 0, 0, 597, 0,
+ 0, 598, 599, 600, 601, 602, 603, 604, 605, 606,
+ 607, 608, 609, 610, 611, 612, 613, 614, 615, 616,
+ 617, 625, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
+ 237, 238, 239, 240, 241, 242, 0, 243, 244, 245,
+ 0, 0, 0, 0, 0, 0, 0, 246, 247, 248,
+ 0, 249, 250, 251, 252, 0, 254, 255, 256, 257,
+ 258, 0, 260, 261, 0, 262, 263, 264, 265, 266,
+ 267, 268, 0, 0, 269, 270, 271, 272, 273, 0,
+ 274, 275, 276, 277, 278, 0, 0, 0, 280, 281,
+ 282, 283, 284, 285, 0, 287, 288, 289, 0, 290,
+ 291, 292, 293, 294, 295, 0, 0, 297, 298, 299,
+ 0, 0, 0, 0, 0, 0, 0, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, 0, 310, 0, 311,
+ 312, 313, 314, 315, 316, 317, 0, 318, 319, 320,
+ 321, 0, 0, 322, 323, 324, 325, 326, 0, 327,
+ 328, 329, 0, 330, 331, 332, 0, 333, 334, 335,
+ 336, 337, 338, 339, 340, 341, 342, 0, 343, 0,
+ 344, 345, 346, 347, 348, 0, 349, 0, 350, 0,
+ 0, 0, 353, 354, 355, 356, 0, 357, 358, 0,
+ 359, 360, 361, 0, 362, 363, 364, 365, 1856, 0,
+ 368, 369, 370, 371, 0, 372, 373, 374, 375, 376,
+ 377, 378, 0, 379, 0, 381, 382, 383, 384, 385,
+ 386, 387, 0, 388, 0, 389, 0, 0, 392, 0,
+ 394, 395, 396, 397, 398, 0, 0, 399, 400, 0,
+ 402, 0, 0, 404, 405, 406, 0, 0, 407, 408,
+ 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
+ 419, 420, 421, 422, 423, 424, 425, 0, 427, 428,
+ 429, 430, 431, 432, 433, 434, 435, 436, 437, 0,
+ 438, 439, 0, 441, 0, 442, 443, 444, 445, 446,
+ 447, 0, 448, 449, 0, 0, 450, 451, 452, 0,
+ 0, 453, 454, 455, 0, 457, 0, 459, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 0, 470,
+ 471, 472, 473, 474, 475, 476, 477, 0, 478, 479,
+ 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
+ 490, 491, 492, 0, 493, 494, 495, 496, 497, 498,
+ 499, 500, 501, 502, 503, 504, 505, 0, 506, 507,
+ 0, 509, 510, 511, 512, 513, 514, 515, 516, 517,
+ 518, 519, 520, 521, 522, 523, 0, 524, 525, 526,
+ 527, 528, 0, 529, 530, 531, 532, 533, 0, 535,
+ 536, 537, 538, 0, 539, 540, 541, 542, 543, 544,
+ 545, 546, 547, 548, 549, 550, 551, 552, 553, 0,
+ 554, 555, 0, 556, 0, 558, 559, 560, 561, 562,
+ 0, 563, 564, 565, 0, 0, 566, 567, 568, 569,
+ 570, 0, 571, 572, 573, 574, 575, 576, 577, 578,
+ 0, 0, 579, 580, 581, 582, 583, 0, 0, 584,
+ 585, 586, 587, 588, 589, 590, 0, 591, 0, 593,
+ 594, 595, 596, 0, 0, 597, 0, 0, 598, 599,
+ 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
+ 610, 611, 612, 613, 614, 615, 616, 617, 625, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
+ 240, 241, 242, 0, 243, 244, 245, 0, 0, 0,
+ 0, 0, 0, 0, 246, 247, 248, 0, 249, 250,
+ 251, 252, 0, 254, 255, 256, 257, 258, 0, 260,
+ 261, 0, 262, 263, 264, 265, 266, 267, 268, 0,
+ 0, 269, 270, 271, 272, 273, 0, 274, 275, 276,
+ 277, 278, 0, 0, 0, 280, 281, 282, 283, 284,
+ 285, 0, 287, 288, 289, 0, 290, 291, 292, 293,
+ 294, 295, 0, 0, 297, 298, 299, 0, 0, 0,
+ 0, 0, 0, 0, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, 0, 310, 0, 311, 312, 313, 314,
+ 315, 316, 317, 0, 318, 319, 320, 321, 0, 0,
+ 322, 323, 324, 325, 326, 0, 327, 328, 329, 0,
+ 330, 331, 332, 0, 333, 334, 335, 336, 337, 338,
+ 339, 340, 341, 342, 0, 343, 0, 344, 345, 346,
+ 347, 348, 0, 349, 0, 350, 0, 0, 0, 353,
+ 354, 355, 356, 0, 357, 358, 0, 359, 360, 361,
+ 0, 362, 363, 364, 365, 1895, 0, 368, 369, 370,
+ 371, 0, 372, 373, 374, 375, 376, 377, 378, 0,
+ 379, 0, 381, 382, 383, 384, 385, 386, 387, 0,
+ 388, 0, 389, 0, 0, 392, 0, 394, 395, 396,
+ 397, 398, 0, 0, 399, 400, 0, 402, 0, 0,
+ 404, 405, 406, 0, 0, 407, 408, 409, 410, 411,
+ 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
+ 422, 423, 424, 425, 0, 427, 428, 429, 430, 431,
+ 432, 433, 434, 435, 436, 437, 0, 438, 439, 0,
+ 441, 0, 442, 443, 444, 445, 446, 447, 0, 448,
+ 449, 0, 0, 450, 451, 452, 0, 0, 453, 454,
+ 455, 0, 457, 0, 459, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 0, 470, 471, 472, 473,
+ 474, 475, 476, 477, 0, 478, 479, 480, 481, 482,
+ 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
+ 0, 493, 494, 495, 496, 497, 498, 499, 500, 501,
+ 502, 503, 504, 505, 0, 506, 507, 0, 509, 510,
+ 511, 512, 513, 514, 515, 516, 517, 518, 519, 520,
+ 521, 522, 523, 0, 524, 525, 526, 527, 528, 0,
+ 529, 530, 531, 532, 533, 0, 535, 536, 537, 538,
+ 0, 539, 540, 541, 542, 543, 544, 545, 546, 547,
+ 548, 549, 550, 551, 552, 553, 0, 554, 555, 0,
+ 556, 0, 558, 559, 560, 561, 562, 0, 563, 564,
+ 565, 0, 0, 566, 567, 568, 569, 570, 0, 571,
+ 572, 573, 574, 575, 576, 577, 578, 0, 0, 579,
+ 580, 581, 582, 583, 0, 0, 584, 585, 586, 587,
+ 588, 589, 590, 0, 591, 0, 593, 594, 595, 596,
+ 0, 0, 597, 0, 0, 598, 599, 600, 601, 602,
+ 603, 604, 605, 606, 607, 608, 609, 610, 611, 612,
+ 613, 614, 615, 616, 617, 625, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
+ 0, 243, 244, 245, 0, 0, 0, 0, 0, 0,
+ 0, 246, 247, 248, 0, 249, 250, 251, 252, 0,
+ 254, 255, 256, 257, 258, 0, 260, 261, 0, 262,
+ 263, 264, 265, 266, 267, 268, 0, 0, 269, 270,
+ 271, 272, 273, 0, 274, 275, 276, 277, 278, 0,
+ 0, 0, 280, 281, 282, 283, 284, 285, 0, 287,
+ 288, 289, 0, 290, 291, 292, 293, 294, 295, 0,
+ 0, 297, 298, 299, 0, 0, 0, 0, 0, 0,
+ 0, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ 0, 310, 0, 311, 312, 313, 314, 315, 316, 317,
+ 0, 318, 319, 320, 321, 0, 0, 322, 323, 324,
+ 325, 326, 0, 327, 328, 329, 0, 330, 331, 332,
+ 0, 333, 334, 335, 336, 337, 338, 339, 340, 341,
+ 342, 0, 343, 0, 344, 345, 346, 347, 348, 0,
+ 349, 0, 350, 0, 0, 0, 353, 354, 355, 356,
+ 0, 357, 358, 0, 359, 360, 361, 0, 362, 363,
+ 364, 365, 1897, 0, 368, 369, 370, 371, 0, 372,
+ 373, 374, 375, 376, 377, 378, 0, 379, 0, 381,
+ 382, 383, 384, 385, 386, 387, 0, 388, 0, 389,
+ 0, 0, 392, 0, 394, 395, 396, 397, 398, 0,
+ 0, 399, 400, 0, 402, 0, 0, 404, 405, 406,
+ 0, 0, 407, 408, 409, 410, 411, 412, 413, 414,
+ 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
+ 425, 0, 427, 428, 429, 430, 431, 432, 433, 434,
+ 435, 436, 437, 0, 438, 439, 0, 441, 0, 442,
+ 443, 444, 445, 446, 447, 0, 448, 449, 0, 0,
+ 450, 451, 452, 0, 0, 453, 454, 455, 0, 457,
+ 0, 459, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 0, 470, 471, 472, 473, 474, 475, 476,
+ 477, 0, 478, 479, 480, 481, 482, 483, 484, 485,
+ 486, 487, 488, 489, 490, 491, 492, 0, 493, 494,
+ 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
+ 505, 0, 506, 507, 0, 509, 510, 511, 512, 513,
+ 514, 515, 516, 517, 518, 519, 520, 521, 522, 523,
+ 0, 524, 525, 526, 527, 528, 0, 529, 530, 531,
+ 532, 533, 0, 535, 536, 537, 538, 0, 539, 540,
+ 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
+ 551, 552, 553, 0, 554, 555, 0, 556, 0, 558,
+ 559, 560, 561, 562, 0, 563, 564, 565, 0, 0,
+ 566, 567, 568, 569, 570, 0, 571, 572, 573, 574,
+ 575, 576, 577, 578, 0, 0, 579, 580, 581, 582,
+ 583, 0, 0, 584, 585, 586, 587, 588, 589, 590,
+ 0, 591, 0, 593, 594, 595, 596, 0, 0, 597,
+ 0, 0, 598, 599, 600, 601, 602, 603, 604, 605,
+ 606, 607, 608, 609, 610, 611, 612, 613, 614, 615,
+ 616, 617, 625, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
+ 236, 237, 238, 239, 240, 241, 242, 0, 243, 244,
+ 245, 0, 0, 0, 0, 0, 0, 0, 246, 247,
+ 248, 0, 249, 250, 251, 252, 0, 254, 255, 256,
+ 257, 258, 0, 260, 261, 0, 262, 263, 264, 265,
+ 266, 267, 268, 0, 0, 269, 270, 271, 272, 273,
+ 0, 274, 275, 276, 277, 278, 0, 0, 0, 280,
+ 281, 282, 283, 284, 285, 0, 287, 288, 289, 0,
+ 290, 291, 292, 293, 294, 295, 0, 0, 297, 298,
+ 299, 0, 0, 0, 0, 0, 0, 0, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, 0, 310, 0,
+ 311, 312, 313, 314, 315, 316, 317, 0, 318, 319,
+ 320, 321, 0, 0, 322, 323, 324, 325, 326, 0,
+ 327, 328, 329, 0, 330, 331, 332, 0, 333, 334,
+ 335, 336, 337, 338, 339, 340, 341, 342, 0, 343,
+ 0, 344, 345, 346, 347, 348, 0, 349, 0, 350,
+ 0, 0, 0, 353, 354, 355, 356, 0, 357, 358,
+ 0, 359, 360, 361, 0, 362, 363, 364, 365, 1899,
+ 0, 368, 369, 370, 371, 0, 372, 373, 374, 375,
+ 376, 377, 378, 0, 379, 0, 381, 382, 383, 384,
+ 385, 386, 387, 0, 388, 0, 389, 0, 0, 392,
+ 0, 394, 395, 396, 397, 398, 0, 0, 399, 400,
+ 0, 402, 0, 0, 404, 405, 406, 0, 0, 407,
+ 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
+ 418, 419, 420, 421, 422, 423, 424, 425, 0, 427,
+ 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
+ 0, 438, 439, 0, 441, 0, 442, 443, 444, 445,
+ 446, 447, 0, 448, 449, 0, 0, 450, 451, 452,
+ 0, 0, 453, 454, 455, 0, 457, 0, 459, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 0,
+ 470, 471, 472, 473, 474, 475, 476, 477, 0, 478,
+ 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
+ 489, 490, 491, 492, 0, 493, 494, 495, 496, 497,
+ 498, 499, 500, 501, 502, 503, 504, 505, 0, 506,
+ 507, 0, 509, 510, 511, 512, 513, 514, 515, 516,
+ 517, 518, 519, 520, 521, 522, 523, 0, 524, 525,
+ 526, 527, 528, 0, 529, 530, 531, 532, 533, 0,
+ 535, 536, 537, 538, 0, 539, 540, 541, 542, 543,
+ 544, 545, 546, 547, 548, 549, 550, 551, 552, 553,
+ 0, 554, 555, 0, 556, 0, 558, 559, 560, 561,
+ 562, 0, 563, 564, 565, 0, 0, 566, 567, 568,
+ 569, 570, 0, 571, 572, 573, 574, 575, 576, 577,
+ 578, 0, 0, 579, 580, 581, 582, 583, 0, 0,
+ 584, 585, 586, 587, 588, 589, 590, 0, 591, 0,
+ 593, 594, 595, 596, 0, 0, 597, 0, 0, 598,
+ 599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
+ 609, 610, 611, 612, 613, 614, 615, 616, 617, 625,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
+ 239, 240, 241, 242, 0, 243, 244, 245, 0, 0,
+ 0, 0, 0, 0, 0, 246, 247, 248, 0, 249,
+ 250, 251, 252, 0, 254, 255, 256, 257, 258, 0,
+ 260, 261, 0, 262, 263, 264, 265, 266, 267, 268,
+ 0, 0, 269, 270, 271, 272, 273, 0, 274, 275,
+ 276, 277, 278, 0, 0, 0, 280, 281, 282, 283,
+ 284, 285, 0, 287, 288, 289, 0, 290, 291, 292,
+ 293, 294, 295, 0, 0, 297, 298, 299, 0, 0,
+ 0, 0, 0, 0, 0, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, 0, 310, 0, 311, 312, 313,
+ 314, 315, 316, 317, 0, 318, 319, 320, 321, 0,
+ 0, 322, 323, 324, 325, 326, 0, 327, 328, 329,
+ 0, 330, 331, 332, 0, 333, 334, 335, 336, 337,
+ 338, 339, 340, 341, 342, 0, 343, 0, 344, 345,
+ 346, 347, 348, 0, 349, 0, 350, 0, 0, 0,
+ 353, 354, 355, 356, 0, 357, 358, 0, 359, 360,
+ 361, 0, 362, 363, 364, 365, 366, 0, 368, 369,
+ 370, 371, 0, 372, 373, 374, 375, 376, 377, 378,
+ 0, 379, 0, 381, 382, 383, 384, 385, 386, 387,
+ 0, 388, 0, 389, 0, 0, 392, 0, 394, 395,
+ 396, 397, 398, 0, 0, 399, 400, 0, 402, 0,
+ 0, 404, 405, 406, 0, 0, 407, 408, 409, 410,
+ 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
+ 421, 422, 423, 424, 425, 0, 427, 428, 429, 430,
+ 431, 432, 433, 434, 435, 436, 437, 0, 438, 439,
+ 0, 441, 0, 442, 443, 444, 445, 446, 447, 0,
+ 448, 449, 0, 0, 450, 451, 452, 0, 0, 453,
+ 454, 455, 0, 457, 0, 459, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 0, 470, 471, 472,
+ 473, 474, 475, 476, 477, 0, 478, 479, 480, 481,
+ 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
+ 492, 0, 493, 494, 495, 496, 497, 498, 499, 500,
+ 501, 502, 503, 504, 505, 0, 506, 507, 0, 509,
+ 510, 511, 512, 513, 514, 515, 516, 1992, 518, 519,
+ 520, 521, 522, 523, 0, 524, 525, 526, 527, 528,
+ 0, 529, 530, 531, 532, 533, 0, 535, 536, 537,
+ 538, 0, 539, 540, 541, 542, 543, 544, 545, 546,
+ 547, 548, 549, 550, 551, 552, 553, 0, 554, 555,
+ 0, 556, 0, 558, 559, 560, 561, 562, 0, 563,
+ 564, 565, 0, 0, 566, 567, 568, 569, 570, 0,
+ 571, 572, 573, 574, 575, 576, 577, 578, 0, 0,
+ 579, 580, 581, 582, 583, 0, 0, 584, 585, 586,
+ 587, 588, 589, 590, 0, 591, 0, 593, 594, 595,
+ 596, 0, 0, 597, 0, 0, 598, 599, 600, 601,
+ 602, 603, 604, 605, 606, 607, 608, 609, 610, 611,
+ 612, 613, 614, 615, 616, 617, 625, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
+ 242, 0, 243, 244, 245, 0, 0, 0, 0, 0,
+ 2622, 0, 246, 247, 248, 0, 249, 250, 251, 252,
+ 0, 254, 255, 256, 257, 258, 0, 260, 261, 0,
+ 262, 263, 264, 265, 266, 267, 268, 0, 0, 269,
+ 270, 271, 272, 273, 0, 274, 275, 276, 277, 278,
+ 0, 0, 0, 280, 281, 282, 283, 284, 285, 0,
+ 287, 288, 289, 0, 290, 291, 292, 293, 294, 295,
+ 0, 0, 297, 298, 299, 0, 0, 0, 0, 0,
+ 0, 0, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, 0, 310, 0, 311, 312, 313, 314, 315, 316,
+ 317, 0, 318, 319, 320, 321, 0, 0, 322, 323,
+ 324, 325, 326, 0, 327, 328, 329, 0, 330, 331,
+ 332, 0, 333, 334, 335, 336, 337, 338, 339, 340,
+ 341, 342, 0, 343, 0, 344, 345, 346, 347, 348,
+ 0, 349, 0, 350, 0, 0, 0, 353, 354, 355,
+ 356, 0, 357, 358, 0, 359, 360, 361, 0, 362,
+ 363, 364, 365, 366, 0, 368, 369, 370, 371, 0,
+ 372, 373, 374, 375, 376, 377, 378, 0, 379, 0,
+ 381, 382, 383, 384, 385, 386, 387, 0, 388, 0,
+ 389, 0, 0, 392, 0, 394, 395, 396, 397, 398,
+ 0, 0, 399, 400, 0, 402, 0, 0, 404, 405,
+ 406, 0, 0, 407, 408, 409, 410, 411, 412, 413,
+ 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
+ 424, 425, 0, 427, 428, 429, 430, 431, 432, 433,
+ 434, 435, 436, 437, 0, 438, 439, 0, 441, 0,
+ 442, 443, 444, 445, 446, 447, 0, 448, 449, 0,
+ 0, 450, 451, 452, 0, 0, 453, 454, 455, 0,
+ 457, 0, 459, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 0, 470, 471, 472, 473, 474, 475,
+ 476, 477, 0, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 488, 489, 490, 491, 492, 0, 493,
+ 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
+ 504, 505, 0, 506, 507, 0, 509, 510, 511, 512,
+ 513, 514, 515, 516, 517, 518, 519, 520, 521, 522,
+ 523, 0, 524, 525, 526, 527, 528, 0, 0, 530,
+ 531, 532, 533, 0, 535, 536, 537, 538, 0, 539,
+ 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
+ 550, 551, 552, 553, 0, 554, 555, 0, 556, 0,
+ 558, 559, 560, 561, 562, 0, 563, 564, 565, 0,
+ 0, 566, 567, 568, 569, 570, 0, 571, 572, 573,
+ 574, 575, 576, 577, 578, 0, 0, 579, 580, 581,
+ 582, 583, 0, 0, 584, 585, 586, 587, 588, 589,
+ 590, 0, 591, 0, 593, 594, 595, 596, 0, 0,
+ 597, 0, 0, 598, 599, 600, 601, 602, 603, 604,
+ 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
+ 615, 616, 617, 625, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 235, 236, 237, 238, 239, 240, 241, 242, 0, 243,
+ 244, 245, 0, 0, 0, 0, 0, 0, 0, 246,
+ 247, 248, 0, 249, 250, 251, 252, 0, 254, 255,
+ 256, 257, 258, 0, 260, 261, 0, 262, 263, 264,
+ 265, 266, 267, 268, 0, 0, 815, 270, 271, 272,
+ 273, 0, 274, 275, 276, 277, 278, 0, 0, 0,
+ 280, 281, 282, 283, 284, 285, 0, 287, 288, 289,
+ 0, 290, 291, 292, 293, 294, 295, 0, 0, 297,
+ 298, 299, 0, 0, 0, 0, 0, 0, 0, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 0, 310,
+ 0, 311, 312, 313, 314, 315, 316, 317, 0, 318,
+ 319, 320, 321, 0, 0, 322, 323, 324, 325, 326,
+ 0, 327, 328, 329, 0, 330, 331, 332, 0, 333,
+ 334, 335, 336, 337, 338, 339, 340, 341, 342, 0,
+ 343, 0, 344, 345, 346, 347, 348, 0, 349, 0,
+ 350, 0, 0, 0, 353, 354, 355, 356, 0, 357,
+ 358, 0, 359, 360, 361, 0, 362, 363, 364, 365,
+ 366, 0, 368, 369, 370, 371, 0, 372, 373, 374,
+ 375, 376, 377, 378, 0, 379, 0, 381, 382, 383,
+ 384, 385, 386, 387, 0, 388, 0, 389, 0, 0,
+ 392, 0, 394, 395, 396, 397, 398, 0, 0, 399,
+ 400, 0, 402, 0, 0, 404, 405, 406, 0, 0,
+ 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
+ 417, 418, 419, 420, 421, 422, 423, 818, 425, 0,
+ 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
+ 437, 0, 438, 439, 0, 441, 0, 442, 443, 444,
+ 445, 446, 447, 0, 448, 449, 0, 0, 450, 451,
+ 452, 0, 0, 453, 454, 455, 0, 457, 0, 459,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 0, 470, 471, 472, 473, 474, 475, 476, 477, 0,
+ 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
+ 488, 489, 490, 491, 492, 0, 493, 494, 495, 496,
+ 497, 498, 499, 500, 501, 502, 503, 504, 505, 0,
+ 506, 507, 0, 819, 510, 511, 512, 513, 514, 515,
+ 516, 517, 820, 519, 520, 521, 522, 523, 0, 524,
+ 525, 526, 527, 1345, 0, 529, 530, 531, 532, 533,
+ 0, 535, 536, 537, 538, 0, 539, 540, 541, 542,
+ 543, 544, 545, 546, 547, 548, 549, 550, 551, 552,
+ 553, 0, 554, 555, 0, 556, 0, 2656, 559, 560,
+ 561, 562, 0, 563, 822, 565, 0, 0, 823, 567,
+ 568, 569, 570, 0, 571, 572, 573, 574, 575, 576,
+ 577, 578, 0, 0, 579, 580, 581, 582, 583, 0,
+ 0, 584, 585, 586, 587, 588, 589, 590, 0, 591,
+ 0, 593, 594, 595, 596, 0, 0, 597, 0, 0,
+ 598, 599, 600, 601, 602, 824, 604, 605, 606, 607,
+ 608, 609, 610, 611, 612, 613, 614, 615, 616, 617,
+ 625, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
+ 238, 239, 240, 241, 242, 0, 243, 244, 245, 0,
+ 0, 0, 0, 0, 0, 0, 246, 247, 248, 0,
+ 249, 250, 251, 252, 0, 254, 255, 256, 257, 258,
+ 0, 260, 261, 0, 262, 263, 264, 265, 266, 267,
+ 268, 0, 0, 815, 270, 271, 272, 273, 0, 274,
+ 275, 276, 277, 278, 0, 0, 0, 280, 281, 282,
+ 283, 284, 285, 0, 287, 288, 289, 0, 290, 291,
+ 292, 293, 294, 295, 0, 0, 297, 298, 299, 0,
+ 0, 0, 0, 0, 0, 0, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, 0, 310, 0, 311, 312,
+ 313, 314, 315, 316, 317, 0, 318, 319, 320, 321,
+ 0, 0, 322, 323, 324, 325, 326, 0, 327, 328,
+ 329, 0, 330, 331, 332, 0, 333, 334, 335, 336,
+ 337, 338, 339, 340, 341, 342, 0, 343, 0, 344,
+ 345, 346, 347, 348, 0, 349, 0, 350, 0, 0,
+ 0, 353, 354, 355, 356, 0, 357, 358, 0, 359,
+ 360, 361, 0, 362, 363, 364, 365, 366, 0, 368,
+ 369, 370, 371, 0, 372, 373, 374, 375, 376, 377,
+ 378, 0, 379, 0, 381, 382, 383, 384, 385, 386,
+ 387, 0, 388, 0, 389, 0, 0, 392, 0, 394,
+ 395, 396, 397, 398, 0, 0, 399, 400, 0, 402,
+ 0, 0, 404, 405, 406, 0, 0, 407, 408, 409,
+ 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
+ 420, 421, 422, 423, 818, 425, 0, 427, 428, 429,
+ 430, 431, 432, 433, 434, 435, 436, 437, 0, 438,
+ 439, 0, 441, 0, 442, 443, 444, 445, 446, 447,
+ 0, 448, 449, 0, 0, 450, 451, 452, 0, 0,
+ 453, 454, 455, 0, 457, 0, 459, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 0, 470, 471,
+ 472, 473, 474, 475, 476, 477, 0, 478, 479, 480,
+ 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
+ 491, 492, 0, 493, 494, 495, 496, 497, 498, 499,
+ 500, 501, 502, 503, 504, 505, 0, 506, 507, 0,
+ 819, 510, 511, 512, 513, 514, 515, 516, 517, 2721,
+ 519, 520, 521, 522, 523, 0, 524, 525, 526, 527,
+ 2722, 0, 529, 530, 531, 532, 533, 0, 535, 536,
+ 537, 538, 0, 539, 540, 541, 542, 543, 544, 545,
+ 546, 547, 548, 549, 550, 551, 552, 553, 0, 554,
+ 555, 0, 556, 0, 558, 559, 560, 561, 562, 0,
+ 563, 822, 565, 0, 0, 2723, 567, 568, 569, 570,
+ 0, 571, 572, 573, 574, 575, 576, 577, 578, 0,
+ 0, 579, 580, 581, 582, 583, 0, 0, 584, 585,
+ 586, 587, 588, 589, 590, 0, 591, 0, 593, 594,
+ 595, 596, 0, 0, 597, 0, 0, 598, 599, 600,
+ 601, 602, 824, 604, 605, 606, 607, 608, 609, 610,
+ 611, 612, 613, 614, 615, 616, 617, 625, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
+ 241, 242, 0, 243, 244, 245, 0, 0, 0, 0,
+ 0, 0, 0, 246, 247, 248, 0, 249, 250, 251,
+ 252, 0, 254, 255, 256, 257, 258, 0, 260, 261,
+ 0, 262, 263, 264, 265, 266, 267, 268, 0, 0,
+ 815, 270, 271, 272, 273, 0, 274, 275, 276, 277,
+ 278, 0, 0, 0, 280, 281, 282, 283, 284, 285,
+ 0, 287, 288, 289, 0, 290, 291, 292, 293, 294,
+ 295, 0, 0, 297, 298, 299, 0, 0, 0, 0,
+ 0, 0, 0, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, 0, 310, 0, 311, 312, 313, 314, 315,
+ 316, 317, 0, 318, 319, 320, 321, 0, 0, 322,
+ 323, 324, 325, 326, 0, 327, 328, 329, 0, 330,
+ 331, 332, 0, 333, 334, 335, 336, 337, 338, 339,
+ 340, 341, 342, 0, 343, 0, 344, 345, 346, 347,
+ 348, 0, 349, 0, 350, 0, 0, 0, 353, 354,
+ 355, 356, 0, 357, 358, 0, 359, 360, 361, 0,
+ 362, 363, 364, 365, 366, 0, 368, 369, 370, 371,
+ 0, 372, 373, 374, 375, 376, 377, 378, 0, 379,
+ 0, 381, 382, 383, 384, 385, 386, 387, 0, 388,
+ 0, 389, 0, 0, 392, 0, 394, 395, 396, 397,
+ 398, 0, 0, 399, 400, 0, 402, 0, 0, 404,
+ 405, 406, 0, 0, 407, 408, 409, 410, 411, 412,
+ 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
+ 423, 818, 425, 0, 427, 428, 429, 430, 431, 432,
+ 433, 434, 435, 436, 437, 0, 438, 439, 0, 441,
+ 0, 442, 443, 444, 445, 446, 447, 0, 448, 449,
+ 0, 0, 450, 451, 452, 0, 0, 453, 454, 455,
+ 0, 457, 0, 459, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 0, 470, 471, 472, 473, 474,
+ 475, 476, 477, 0, 478, 479, 480, 481, 482, 483,
+ 484, 485, 486, 487, 488, 489, 490, 491, 492, 0,
+ 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
+ 503, 504, 505, 0, 506, 507, 0, 819, 510, 511,
+ 512, 513, 514, 515, 516, 517, 2801, 519, 520, 521,
+ 522, 523, 0, 524, 525, 526, 527, 2722, 0, 529,
+ 530, 531, 532, 533, 0, 535, 536, 537, 538, 0,
+ 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
+ 549, 550, 551, 552, 553, 0, 554, 555, 0, 556,
+ 0, 558, 559, 560, 561, 562, 0, 563, 822, 565,
+ 0, 0, 2723, 567, 568, 569, 570, 0, 571, 572,
+ 573, 574, 575, 576, 577, 578, 0, 0, 579, 580,
+ 581, 582, 583, 0, 0, 584, 585, 586, 587, 588,
+ 589, 590, 0, 591, 0, 593, 594, 595, 596, 0,
+ 0, 597, 0, 0, 598, 599, 600, 601, 602, 824,
+ 604, 605, 606, 607, 608, 609, 610, 611, 612, 613,
+ 614, 615, 616, 617, 625, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 235, 236, 237, 238, 239, 240, 241, 242, 0,
+ 243, 244, 245, 0, 0, 0, 0, 0, 0, 0,
+ 246, 247, 248, 0, 249, 250, 251, 252, 0, 254,
+ 255, 256, 257, 258, 0, 260, 261, 0, 262, 263,
+ 264, 265, 266, 267, 268, 0, 0, 815, 270, 271,
+ 272, 273, 0, 274, 275, 276, 277, 278, 0, 0,
+ 0, 280, 281, 282, 283, 284, 285, 0, 287, 288,
+ 289, 0, 290, 291, 292, 293, 294, 295, 0, 0,
+ 297, 298, 299, 0, 0, 0, 0, 0, 0, 0,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, 0,
+ 310, 0, 311, 312, 313, 314, 315, 316, 317, 0,
+ 318, 319, 320, 321, 0, 0, 322, 323, 324, 325,
+ 326, 0, 327, 328, 329, 0, 330, 331, 332, 0,
+ 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
+ 0, 343, 0, 344, 345, 346, 347, 348, 0, 349,
+ 0, 350, 0, 0, 0, 353, 354, 355, 356, 0,
+ 357, 358, 0, 359, 360, 361, 0, 362, 363, 364,
+ 365, 366, 0, 368, 369, 370, 371, 0, 372, 373,
+ 374, 375, 376, 377, 378, 0, 379, 0, 381, 382,
+ 383, 384, 385, 386, 387, 0, 388, 0, 389, 0,
+ 0, 392, 0, 394, 395, 396, 397, 398, 0, 0,
+ 399, 400, 0, 402, 0, 0, 404, 405, 406, 0,
+ 0, 407, 408, 409, 410, 411, 412, 413, 414, 415,
+ 416, 417, 418, 419, 420, 421, 422, 423, 818, 425,
+ 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
+ 436, 437, 0, 438, 439, 0, 441, 0, 442, 443,
+ 444, 445, 446, 447, 0, 448, 449, 0, 0, 450,
+ 451, 452, 0, 0, 453, 454, 455, 0, 457, 0,
+ 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 0, 470, 471, 472, 473, 474, 475, 476, 477,
+ 0, 478, 479, 480, 481, 482, 483, 484, 485, 486,
+ 487, 488, 489, 490, 491, 492, 0, 493, 494, 495,
+ 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
+ 0, 506, 507, 0, 819, 510, 511, 512, 513, 514,
+ 515, 516, 517, 2825, 519, 520, 521, 522, 523, 0,
+ 524, 525, 526, 527, 2722, 0, 529, 530, 531, 532,
+ 533, 0, 535, 536, 537, 538, 0, 539, 540, 541,
+ 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
+ 552, 553, 0, 554, 555, 0, 556, 0, 558, 559,
+ 560, 561, 562, 0, 563, 822, 565, 0, 0, 2723,
+ 567, 568, 569, 570, 0, 571, 572, 573, 574, 575,
+ 576, 577, 578, 0, 0, 579, 580, 581, 582, 583,
+ 0, 0, 584, 585, 586, 587, 588, 589, 590, 0,
+ 591, 0, 593, 594, 595, 596, 0, 0, 597, 0,
+ 0, 598, 599, 600, 601, 602, 824, 604, 605, 606,
+ 607, 608, 609, 610, 611, 612, 613, 614, 615, 616,
+ 617, 625, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
+ 237, 238, 239, 240, 241, 242, 0, 243, 244, 245,
+ 0, 0, 0, 0, 0, 0, 0, 246, 247, 248,
+ 0, 249, 250, 251, 252, 0, 254, 255, 256, 257,
+ 258, 0, 260, 261, 0, 262, 263, 264, 265, 266,
+ 267, 268, 0, 0, 269, 270, 271, 272, 273, 0,
+ 274, 275, 276, 277, 278, 0, 0, 0, 280, 281,
+ 282, 283, 284, 285, 0, 287, 288, 289, 0, 290,
+ 291, 292, 293, 294, 295, 0, 0, 297, 298, 299,
+ 0, 0, 0, 0, 0, 0, 0, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, 0, 310, 0, 311,
+ 312, 313, 314, 315, 316, 317, 0, 318, 319, 320,
+ 321, 0, 0, 322, 323, 324, 325, 326, 0, 327,
+ 328, 329, 0, 330, 331, 332, 0, 333, 334, 335,
+ 336, 337, 338, 339, 340, 341, 342, 0, 343, 0,
+ 344, 345, 346, 347, 348, 0, 349, 0, 350, 0,
+ 0, 0, 353, 354, 355, 356, 0, 357, 358, 0,
+ 359, 360, 361, 0, 362, 363, 364, 365, 3018, 0,
+ 368, 369, 370, 371, 0, 372, 373, 374, 375, 376,
+ 377, 378, 0, 379, 0, 381, 382, 383, 384, 385,
+ 386, 387, 0, 388, 0, 389, 0, 0, 392, 0,
+ 394, 395, 396, 397, 398, 0, 0, 399, 400, 0,
+ 402, 0, 0, 404, 405, 406, 0, 0, 407, 408,
+ 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
+ 419, 420, 421, 422, 423, 424, 425, 0, 427, 428,
+ 429, 430, 431, 432, 433, 434, 435, 436, 437, 0,
+ 438, 439, 0, 441, 0, 442, 443, 444, 445, 446,
+ 447, 0, 448, 449, 0, 0, 450, 451, 452, 0,
+ 0, 453, 454, 455, 0, 457, 0, 459, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 0, 470,
+ 471, 472, 473, 474, 475, 476, 477, 0, 478, 479,
+ 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
+ 490, 491, 492, 0, 493, 494, 495, 496, 497, 498,
+ 499, 500, 501, 502, 503, 504, 505, 0, 506, 507,
+ 0, 509, 510, 511, 512, 513, 514, 515, 516, 517,
+ 518, 519, 520, 521, 522, 523, 0, 524, 525, 526,
+ 527, 528, 0, 529, 530, 531, 532, 533, 0, 535,
+ 536, 537, 538, 0, 539, 540, 541, 542, 543, 544,
+ 545, 546, 547, 548, 549, 550, 551, 552, 553, 0,
+ 554, 555, 0, 556, 0, 558, 559, 560, 561, 562,
+ 0, 563, 564, 565, 0, 0, 566, 567, 568, 569,
+ 570, 0, 571, 572, 573, 574, 575, 576, 577, 578,
+ 0, 0, 579, 580, 581, 582, 583, 0, 0, 584,
+ 585, 586, 587, 588, 589, 590, 0, 591, 0, 593,
+ 594, 595, 596, 0, 0, 597, 0, 0, 598, 599,
+ 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
+ 610, 611, 612, 613, 614, 615, 616, 617, 625, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
+ 240, 241, 242, 0, 243, 244, 245, 0, 0, 0,
+ 0, 0, 0, 0, 246, 247, 248, 0, 249, 250,
+ 251, 252, 0, 254, 255, 256, 257, 258, 0, 260,
+ 261, 0, 262, 263, 264, 265, 266, 267, 268, 0,
+ 0, 269, 270, 271, 272, 273, 0, 274, 275, 276,
+ 277, 278, 0, 0, 0, 280, 281, 282, 283, 284,
+ 285, 0, 287, 288, 289, 0, 290, 291, 292, 293,
+ 294, 295, 0, 0, 297, 298, 299, 0, 0, 0,
+ 0, 0, 0, 0, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, 0, 310, 0, 311, 312, 313, 314,
+ 315, 316, 317, 0, 318, 319, 320, 321, 0, 0,
+ 322, 323, 324, 325, 326, 0, 327, 328, 329, 0,
+ 330, 331, 332, 0, 333, 334, 335, 336, 337, 338,
+ 339, 340, 341, 342, 0, 343, 0, 344, 345, 346,
+ 347, 348, 0, 349, 0, 350, 0, 0, 0, 353,
+ 354, 355, 356, 0, 357, 358, 0, 359, 360, 361,
+ 0, 362, 363, 364, 365, 3022, 0, 368, 369, 370,
+ 371, 0, 372, 373, 374, 375, 376, 377, 378, 0,
+ 379, 0, 381, 382, 383, 384, 385, 386, 387, 0,
+ 388, 0, 389, 0, 0, 392, 0, 394, 395, 396,
+ 397, 398, 0, 0, 399, 400, 0, 402, 0, 0,
+ 404, 405, 406, 0, 0, 407, 408, 409, 410, 411,
+ 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
+ 422, 423, 424, 425, 0, 427, 428, 429, 430, 431,
+ 432, 433, 434, 435, 436, 437, 0, 438, 439, 0,
+ 441, 0, 442, 443, 444, 445, 446, 447, 0, 448,
+ 449, 0, 0, 450, 451, 452, 0, 0, 453, 454,
+ 455, 0, 457, 0, 459, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 0, 470, 471, 472, 473,
+ 474, 475, 476, 477, 0, 478, 479, 480, 481, 482,
+ 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
+ 0, 493, 494, 495, 496, 497, 498, 499, 500, 501,
+ 502, 503, 504, 505, 0, 506, 507, 0, 509, 510,
+ 511, 512, 513, 514, 515, 516, 517, 518, 519, 520,
+ 521, 522, 523, 0, 524, 525, 526, 527, 528, 0,
+ 529, 530, 531, 532, 533, 0, 535, 536, 537, 538,
+ 0, 539, 540, 541, 542, 543, 544, 545, 546, 547,
+ 548, 549, 550, 551, 552, 553, 0, 554, 555, 0,
+ 556, 0, 558, 559, 560, 561, 562, 0, 563, 564,
+ 565, 0, 0, 566, 567, 568, 569, 570, 0, 571,
+ 572, 573, 574, 575, 576, 577, 578, 0, 0, 579,
+ 580, 581, 582, 583, 0, 0, 584, 585, 586, 587,
+ 588, 589, 590, 0, 591, 0, 593, 594, 595, 596,
+ 0, 0, 597, 0, 0, 598, 599, 600, 601, 602,
+ 603, 604, 605, 606, 607, 608, 609, 610, 611, 612,
+ 613, 614, 615, 616, 617, 625, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
+ 0, 243, 244, 245, 0, 0, 0, 0, 0, 0,
+ 0, 246, 247, 248, 0, 249, 250, 251, 252, 0,
+ 254, 255, 256, 257, 258, 0, 260, 261, 0, 262,
+ 263, 264, 265, 266, 267, 268, 0, 0, 269, 270,
+ 271, 272, 273, 0, 274, 275, 276, 277, 278, 0,
+ 0, 0, 280, 281, 282, 283, 284, 285, 0, 287,
+ 288, 289, 0, 290, 291, 292, 293, 294, 295, 0,
+ 0, 297, 298, 299, 0, 0, 0, 0, 0, 0,
+ 0, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ 0, 310, 0, 311, 312, 313, 314, 315, 316, 317,
+ 0, 318, 319, 320, 321, 0, 0, 322, 323, 324,
+ 325, 326, 0, 327, 328, 329, 0, 330, 331, 332,
+ 0, 333, 334, 335, 336, 337, 338, 339, 340, 341,
+ 342, 0, 343, 0, 344, 345, 346, 347, 348, 0,
+ 349, 0, 350, 0, 0, 0, 353, 354, 355, 356,
+ 0, 357, 358, 0, 359, 360, 361, 0, 362, 363,
+ 364, 365, 3080, 0, 368, 369, 370, 371, 0, 372,
+ 373, 374, 375, 376, 377, 378, 0, 379, 0, 381,
+ 382, 383, 384, 385, 386, 387, 0, 388, 0, 389,
+ 0, 0, 392, 0, 394, 395, 396, 397, 398, 0,
+ 0, 399, 400, 0, 402, 0, 0, 404, 405, 406,
+ 0, 0, 407, 408, 409, 410, 411, 412, 413, 414,
+ 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
+ 425, 0, 427, 428, 429, 430, 431, 432, 433, 434,
+ 435, 436, 437, 0, 438, 439, 0, 441, 0, 442,
+ 443, 444, 445, 446, 447, 0, 448, 449, 0, 0,
+ 450, 451, 452, 0, 0, 453, 454, 455, 0, 457,
+ 0, 459, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 0, 470, 471, 472, 473, 474, 475, 476,
+ 477, 0, 478, 479, 480, 481, 482, 483, 484, 485,
+ 486, 487, 488, 489, 490, 491, 492, 0, 493, 494,
+ 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
+ 505, 0, 506, 507, 0, 509, 510, 511, 512, 513,
+ 514, 515, 516, 517, 518, 519, 520, 521, 522, 523,
+ 0, 524, 525, 526, 527, 528, 0, 529, 530, 531,
+ 532, 533, 0, 535, 536, 537, 538, 0, 539, 540,
+ 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
+ 551, 552, 553, 0, 554, 555, 0, 556, 0, 558,
+ 559, 560, 561, 562, 0, 563, 564, 565, 0, 0,
+ 566, 567, 568, 569, 570, 0, 571, 572, 573, 574,
+ 575, 576, 577, 578, 0, 0, 579, 580, 581, 582,
+ 583, 0, 0, 584, 585, 586, 587, 588, 589, 590,
+ 0, 591, 0, 593, 594, 595, 596, 0, 0, 597,
+ 0, 0, 598, 599, 600, 601, 602, 603, 604, 605,
+ 606, 607, 608, 609, 610, 611, 612, 613, 614, 615,
+ 616, 617, 625, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
+ 236, 237, 238, 239, 240, 241, 242, 0, 243, 244,
+ 245, 0, 0, 0, 0, 0, 0, 0, 246, 247,
+ 248, 0, 249, 250, 251, 252, 0, 254, 255, 256,
+ 257, 258, 0, 260, 261, 0, 262, 263, 264, 265,
+ 266, 267, 268, 0, 0, 269, 270, 271, 272, 273,
+ 0, 274, 275, 276, 277, 278, 0, 0, 0, 280,
+ 281, 282, 283, 284, 285, 0, 287, 288, 289, 0,
+ 290, 291, 292, 293, 294, 295, 0, 0, 297, 298,
+ 299, 0, 0, 0, 0, 0, 0, 0, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, 0, 310, 0,
+ 311, 312, 313, 314, 315, 316, 317, 0, 318, 319,
+ 320, 321, 0, 0, 322, 323, 324, 325, 326, 0,
+ 327, 328, 329, 0, 330, 331, 332, 0, 333, 334,
+ 335, 336, 337, 338, 339, 340, 341, 342, 0, 343,
+ 0, 344, 345, 346, 347, 348, 0, 349, 0, 350,
+ 0, 0, 0, 353, 354, 355, 356, 0, 357, 358,
+ 0, 359, 360, 361, 0, 362, 363, 364, 365, 3444,
+ 0, 368, 369, 370, 371, 0, 372, 373, 374, 375,
+ 376, 377, 378, 0, 379, 0, 381, 382, 383, 384,
+ 385, 386, 387, 0, 388, 0, 389, 0, 0, 392,
+ 0, 394, 395, 396, 397, 398, 0, 0, 399, 400,
+ 0, 402, 0, 0, 404, 405, 406, 0, 0, 407,
+ 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
+ 418, 419, 420, 421, 422, 423, 424, 425, 0, 427,
+ 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
+ 0, 438, 439, 0, 441, 0, 442, 443, 444, 445,
+ 446, 447, 0, 448, 449, 0, 0, 450, 451, 452,
+ 0, 0, 453, 454, 455, 0, 457, 0, 459, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 0,
+ 470, 471, 472, 473, 474, 475, 476, 477, 0, 478,
+ 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
+ 489, 490, 491, 492, 0, 493, 494, 495, 496, 497,
+ 498, 499, 500, 501, 502, 503, 504, 505, 0, 506,
+ 507, 0, 509, 510, 511, 512, 513, 514, 515, 516,
+ 517, 518, 519, 520, 521, 522, 523, 0, 524, 525,
+ 526, 527, 528, 0, 529, 530, 531, 532, 533, 0,
+ 535, 536, 537, 538, 0, 539, 540, 541, 542, 543,
+ 544, 545, 546, 547, 548, 549, 550, 551, 552, 553,
+ 0, 554, 555, 0, 556, 0, 558, 559, 560, 561,
+ 562, 0, 563, 564, 565, 0, 0, 566, 567, 568,
+ 569, 570, 0, 571, 572, 573, 574, 575, 576, 577,
+ 578, 0, 0, 579, 580, 581, 582, 583, 0, 0,
+ 584, 585, 586, 587, 588, 589, 590, 0, 591, 0,
+ 593, 594, 595, 596, 0, 0, 597, 0, 0, 598,
+ 599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
+ 609, 610, 611, 612, 613, 614, 615, 616, 617, 625,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
+ 239, 240, 241, 242, 0, 243, 244, 245, 0, 0,
+ 0, 0, 0, 0, 0, 246, 247, 248, 0, 249,
+ 250, 251, 252, 0, 254, 255, 256, 257, 258, 0,
+ 260, 261, 0, 262, 263, 264, 265, 266, 267, 268,
+ 0, 0, 815, 270, 271, 272, 273, 0, 274, 275,
+ 276, 277, 278, 0, 0, 0, 280, 281, 282, 283,
+ 284, 285, 0, 287, 288, 289, 0, 290, 291, 292,
+ 293, 294, 295, 0, 0, 297, 298, 299, 0, 0,
+ 0, 0, 0, 0, 0, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, 0, 310, 0, 311, 312, 313,
+ 314, 315, 316, 317, 0, 318, 319, 320, 321, 0,
+ 0, 322, 323, 324, 325, 326, 0, 327, 328, 329,
+ 0, 330, 331, 332, 0, 333, 334, 335, 336, 337,
+ 338, 339, 340, 341, 342, 0, 343, 0, 344, 345,
+ 346, 347, 348, 0, 349, 0, 350, 0, 0, 0,
+ 353, 354, 355, 356, 0, 357, 358, 0, 359, 360,
+ 361, 0, 362, 363, 364, 365, 366, 0, 368, 369,
+ 370, 371, 0, 372, 373, 374, 375, 376, 377, 378,
+ 0, 379, 0, 381, 382, 383, 384, 385, 386, 387,
+ 0, 388, 0, 389, 0, 0, 392, 0, 394, 395,
+ 396, 397, 398, 0, 0, 399, 400, 0, 402, 0,
+ 0, 404, 405, 406, 0, 0, 407, 408, 409, 410,
+ 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
+ 421, 422, 423, 818, 425, 0, 427, 428, 429, 430,
+ 431, 432, 433, 434, 435, 436, 437, 0, 438, 439,
+ 0, 441, 0, 442, 443, 444, 445, 446, 447, 0,
+ 448, 449, 0, 0, 450, 451, 452, 0, 0, 453,
+ 454, 455, 0, 457, 0, 459, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 0, 470, 471, 472,
+ 473, 474, 475, 476, 477, 0, 478, 479, 480, 481,
+ 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
+ 492, 0, 493, 494, 495, 496, 497, 498, 499, 500,
+ 501, 502, 503, 504, 505, 0, 506, 507, 0, 819,
+ 510, 511, 512, 513, 514, 515, 516, 517, 820, 519,
+ 520, 521, 522, 523, 0, 524, 525, 526, 527, 2722,
+ 0, 529, 530, 531, 532, 533, 0, 535, 536, 537,
+ 538, 0, 539, 540, 541, 542, 543, 544, 545, 546,
+ 547, 548, 549, 550, 551, 552, 553, 0, 554, 555,
+ 0, 556, 0, 558, 559, 560, 561, 562, 0, 563,
+ 822, 565, 0, 0, 2723, 567, 568, 569, 570, 0,
+ 571, 572, 573, 574, 575, 576, 577, 578, 0, 0,
+ 579, 580, 581, 582, 583, 0, 0, 584, 585, 586,
+ 587, 588, 589, 590, 0, 591, 0, 593, 594, 595,
+ 596, 0, 0, 597, 0, 0, 598, 599, 600, 601,
+ 602, 824, 604, 605, 606, 607, 608, 609, 610, 611,
+ 612, 613, 614, 615, 616, 617, 625, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
+ 242, 0, 243, 244, 245, 0, 0, 0, 0, 0,
+ 0, 0, 246, 247, 248, 0, 249, 250, 251, 252,
+ 0, 254, 255, 256, 257, 258, 0, 260, 261, 0,
+ 262, 263, 264, 265, 266, 267, 268, 0, 0, 269,
+ 270, 271, 272, 273, 0, 274, 275, 276, 277, 278,
+ 0, 0, 0, 280, 281, 282, 283, 284, 285, 0,
+ 287, 288, 289, 0, 290, 291, 292, 293, 294, 295,
+ 0, 0, 297, 298, 299, 0, 0, 0, 0, 0,
+ 0, 0, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, 0, 310, 0, 311, 312, 313, 314, 315, 316,
+ 317, 0, 318, 319, 320, 321, 0, 0, 322, 323,
+ 324, 325, 326, 0, 327, 328, 329, 0, 330, 331,
+ 332, 0, 333, 334, 335, 336, 337, 338, 339, 340,
+ 341, 342, 0, 343, 0, 344, 345, 346, 347, 348,
+ 0, 349, 0, 350, 0, 0, 0, 353, 354, 355,
+ 356, 0, 357, 358, 0, 359, 360, 361, 0, 362,
+ 363, 364, 365, 3501, 0, 368, 369, 370, 371, 0,
+ 372, 373, 374, 375, 376, 377, 378, 0, 379, 0,
+ 381, 382, 383, 384, 385, 386, 387, 0, 388, 0,
+ 389, 0, 0, 392, 0, 394, 395, 396, 397, 398,
+ 0, 0, 399, 400, 0, 402, 0, 0, 404, 405,
+ 406, 0, 0, 407, 408, 409, 410, 411, 412, 413,
+ 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
+ 424, 425, 0, 427, 428, 429, 430, 431, 432, 433,
+ 434, 435, 436, 437, 0, 438, 439, 0, 441, 0,
+ 442, 443, 444, 445, 446, 447, 0, 448, 449, 0,
+ 0, 450, 451, 452, 0, 0, 453, 454, 455, 0,
+ 457, 0, 459, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 0, 470, 471, 472, 473, 474, 475,
+ 476, 477, 0, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 488, 489, 490, 491, 492, 0, 493,
+ 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
+ 504, 505, 0, 506, 507, 0, 509, 510, 511, 512,
+ 513, 514, 515, 516, 517, 518, 519, 520, 521, 522,
+ 523, 0, 524, 525, 526, 527, 528, 0, 529, 530,
+ 531, 532, 533, 0, 535, 536, 537, 538, 0, 539,
+ 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
+ 550, 551, 552, 553, 0, 554, 555, 0, 556, 0,
+ 558, 559, 560, 561, 562, 0, 563, 564, 565, 0,
+ 0, 566, 567, 568, 569, 570, 0, 571, 572, 573,
+ 574, 575, 576, 577, 578, 0, 0, 579, 580, 581,
+ 582, 583, 0, 0, 584, 585, 586, 587, 588, 589,
+ 590, 0, 591, 0, 593, 594, 595, 596, 0, 0,
+ 597, 0, 0, 598, 599, 600, 601, 602, 603, 604,
+ 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
+ 615, 616, 617, 625, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 235, 236, 237, 238, 239, 240, 241, 242, 0, 243,
+ 244, 245, 0, 0, 0, 0, 0, 0, 0, 246,
+ 247, 248, 0, 249, 250, 251, 252, 0, 254, 255,
+ 256, 257, 258, 0, 260, 261, 0, 262, 263, 264,
+ 265, 266, 267, 268, 0, 0, 269, 270, 271, 272,
+ 273, 0, 274, 275, 276, 277, 278, 0, 0, 0,
+ 280, 281, 282, 283, 284, 285, 0, 287, 288, 289,
+ 0, 290, 291, 292, 293, 294, 295, 0, 0, 297,
+ 298, 299, 0, 0, 0, 0, 0, 0, 0, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 0, 310,
+ 0, 311, 312, 313, 314, 315, 316, 317, 0, 318,
+ 319, 320, 321, 0, 0, 322, 323, 324, 325, 326,
+ 0, 327, 328, 329, 0, 330, 331, 332, 0, 333,
+ 334, 335, 336, 337, 338, 339, 340, 341, 342, 0,
+ 343, 0, 344, 345, 346, 347, 348, 0, 349, 0,
+ 350, 0, 0, 0, 353, 354, 355, 356, 0, 357,
+ 358, 0, 359, 360, 361, 0, 362, 363, 364, 365,
+ 3515, 0, 368, 369, 370, 371, 0, 372, 373, 374,
+ 375, 376, 377, 378, 0, 379, 0, 381, 382, 383,
+ 384, 385, 386, 387, 0, 388, 0, 389, 0, 0,
+ 392, 0, 394, 395, 396, 397, 398, 0, 0, 399,
+ 400, 0, 402, 0, 0, 404, 405, 406, 0, 0,
+ 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
+ 417, 418, 419, 420, 421, 422, 423, 424, 425, 0,
+ 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
+ 437, 0, 438, 439, 0, 441, 0, 442, 443, 444,
+ 445, 446, 447, 0, 448, 449, 0, 0, 450, 451,
+ 452, 0, 0, 453, 454, 455, 0, 457, 0, 459,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 0, 470, 471, 472, 473, 474, 475, 476, 477, 0,
+ 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
+ 488, 489, 490, 491, 492, 0, 493, 494, 495, 496,
+ 497, 498, 499, 500, 501, 502, 503, 504, 505, 0,
+ 506, 507, 0, 509, 510, 511, 512, 513, 514, 515,
+ 516, 517, 518, 519, 520, 521, 522, 523, 0, 524,
+ 525, 526, 527, 528, 0, 529, 530, 531, 532, 533,
+ 0, 535, 536, 537, 538, 0, 539, 540, 541, 542,
+ 543, 544, 545, 546, 547, 548, 549, 550, 551, 552,
+ 553, 0, 554, 555, 0, 556, 0, 558, 559, 560,
+ 561, 562, 0, 563, 564, 565, 0, 0, 566, 567,
+ 568, 569, 570, 0, 571, 572, 573, 574, 575, 576,
+ 577, 578, 0, 0, 579, 580, 581, 582, 583, 0,
+ 0, 584, 585, 586, 587, 588, 589, 590, 0, 591,
+ 0, 593, 594, 595, 596, 0, 0, 597, 0, 0,
+ 598, 599, 600, 601, 602, 603, 604, 605, 606, 607,
+ 608, 609, 610, 611, 612, 613, 614, 615, 616, 617,
+ 625, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
+ 238, 239, 240, 241, 242, 0, 243, 244, 245, 0,
+ 0, 0, 0, 0, 0, 0, 246, 247, 248, 0,
+ 249, 250, 251, 252, 0, 254, 255, 256, 257, 258,
+ 0, 260, 261, 0, 262, 263, 264, 265, 266, 267,
+ 268, 0, 0, 269, 270, 271, 272, 273, 0, 274,
+ 275, 276, 277, 278, 0, 0, 0, 280, 281, 282,
+ 283, 284, 285, 0, 287, 288, 289, 0, 290, 291,
+ 292, 293, 294, 295, 0, 0, 297, 298, 299, 0,
+ 0, 0, 0, 0, 0, 0, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, 0, 310, 0, 311, 312,
+ 313, 314, 315, 316, 317, 0, 318, 319, 320, 321,
+ 0, 0, 322, 323, 324, 325, 326, 0, 327, 328,
+ 329, 0, 330, 331, 332, 0, 333, 334, 335, 336,
+ 337, 338, 339, 340, 341, 342, 0, 343, 0, 344,
+ 345, 346, 347, 348, 0, 349, 0, 350, 0, 0,
+ 0, 353, 354, 355, 356, 0, 357, 358, 0, 359,
+ 360, 361, 0, 362, 363, 364, 365, 3517, 0, 368,
+ 369, 370, 371, 0, 372, 373, 374, 375, 376, 377,
+ 378, 0, 379, 0, 381, 382, 383, 384, 385, 386,
+ 387, 0, 388, 0, 389, 0, 0, 392, 0, 394,
+ 395, 396, 397, 398, 0, 0, 399, 400, 0, 402,
+ 0, 0, 404, 405, 406, 0, 0, 407, 408, 409,
+ 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
+ 420, 421, 422, 423, 424, 425, 0, 427, 428, 429,
+ 430, 431, 432, 433, 434, 435, 436, 437, 0, 438,
+ 439, 0, 441, 0, 442, 443, 444, 445, 446, 447,
+ 0, 448, 449, 0, 0, 450, 451, 452, 0, 0,
+ 453, 454, 455, 0, 457, 0, 459, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 0, 470, 471,
+ 472, 473, 474, 475, 476, 477, 0, 478, 479, 480,
+ 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
+ 491, 492, 0, 493, 494, 495, 496, 497, 498, 499,
+ 500, 501, 502, 503, 504, 505, 0, 506, 507, 0,
+ 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
+ 519, 520, 521, 522, 523, 0, 524, 525, 526, 527,
+ 528, 0, 529, 530, 531, 532, 533, 0, 535, 536,
+ 537, 538, 0, 539, 540, 541, 542, 543, 544, 545,
+ 546, 547, 548, 549, 550, 551, 552, 553, 0, 554,
+ 555, 0, 556, 0, 558, 559, 560, 561, 562, 0,
+ 563, 564, 565, 0, 0, 566, 567, 568, 569, 570,
+ 0, 571, 572, 573, 574, 575, 576, 577, 578, 0,
+ 0, 579, 580, 581, 582, 583, 0, 0, 584, 585,
+ 586, 587, 588, 589, 590, 0, 591, 0, 593, 594,
+ 595, 596, 0, 0, 597, 0, 0, 598, 599, 600,
+ 601, 602, 603, 604, 605, 606, 607, 608, 609, 610,
+ 611, 612, 613, 614, 615, 616, 617, 625, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
+ 241, 242, 0, 243, 244, 245, 0, 0, 0, 0,
+ 0, 0, 0, 246, 247, 248, 0, 249, 250, 251,
+ 252, 0, 254, 255, 256, 257, 258, 0, 260, 261,
+ 0, 262, 263, 264, 265, 266, 267, 268, 0, 0,
+ 269, 270, 271, 272, 273, 0, 274, 275, 276, 277,
+ 278, 0, 0, 0, 280, 281, 282, 283, 284, 285,
+ 0, 287, 288, 289, 0, 290, 291, 292, 293, 294,
+ 295, 0, 0, 297, 298, 299, 0, 0, 0, 0,
+ 0, 0, 0, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, 0, 310, 0, 311, 312, 313, 314, 315,
+ 316, 317, 0, 318, 319, 320, 321, 0, 0, 322,
+ 323, 324, 325, 326, 0, 327, 328, 329, 0, 330,
+ 331, 332, 0, 333, 334, 335, 336, 337, 338, 339,
+ 340, 341, 342, 0, 343, 0, 344, 345, 346, 347,
+ 348, 0, 349, 0, 350, 0, 0, 0, 353, 354,
+ 355, 356, 0, 357, 358, 0, 359, 360, 361, 0,
+ 362, 363, 364, 365, 3665, 0, 368, 369, 370, 371,
+ 0, 372, 373, 374, 375, 376, 377, 378, 0, 379,
+ 0, 381, 382, 383, 384, 385, 386, 387, 0, 388,
+ 0, 389, 0, 0, 392, 0, 394, 395, 396, 397,
+ 398, 0, 0, 399, 400, 0, 402, 0, 0, 404,
+ 405, 406, 0, 0, 407, 408, 409, 410, 411, 412,
+ 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
+ 423, 424, 425, 0, 427, 428, 429, 430, 431, 432,
+ 433, 434, 435, 436, 437, 0, 438, 439, 0, 441,
+ 0, 442, 443, 444, 445, 446, 447, 0, 448, 449,
+ 0, 0, 450, 451, 452, 0, 0, 453, 454, 455,
+ 0, 457, 0, 459, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 0, 470, 471, 472, 473, 474,
+ 475, 476, 477, 0, 478, 479, 480, 481, 482, 483,
+ 484, 485, 486, 487, 488, 489, 490, 491, 492, 0,
+ 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
+ 503, 504, 505, 0, 506, 507, 0, 509, 510, 511,
+ 512, 513, 514, 515, 516, 517, 518, 519, 520, 521,
+ 522, 523, 0, 524, 525, 526, 527, 528, 0, 529,
+ 530, 531, 532, 533, 0, 535, 536, 537, 538, 0,
+ 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
+ 549, 550, 551, 552, 553, 0, 554, 555, 0, 556,
+ 0, 558, 559, 560, 561, 562, 0, 563, 564, 565,
+ 0, 0, 566, 567, 568, 569, 570, 0, 571, 572,
+ 573, 574, 575, 576, 577, 578, 0, 0, 579, 580,
+ 581, 582, 583, 0, 0, 584, 585, 586, 587, 588,
+ 589, 590, 0, 591, 0, 593, 594, 595, 596, 0,
+ 0, 597, 0, 0, 598, 599, 600, 601, 602, 603,
+ 604, 605, 606, 607, 608, 609, 610, 611, 612, 613,
+ 614, 615, 616, 617, 625, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 235, 236, 237, 238, 239, 240, 241, 242, 0,
+ 243, 244, 245, 0, 0, 0, 0, 0, 0, 0,
+ 246, 247, 248, 0, 249, 250, 251, 252, 0, 254,
+ 255, 256, 257, 258, 0, 260, 261, 0, 262, 263,
+ 264, 265, 266, 267, 268, 0, 0, 269, 270, 271,
+ 272, 273, 0, 274, 275, 276, 277, 278, 0, 0,
+ 0, 280, 281, 282, 283, 284, 285, 0, 287, 288,
+ 289, 0, 290, 291, 292, 293, 294, 295, 0, 0,
+ 297, 298, 299, 0, 0, 0, 0, 0, 0, 0,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, 0,
+ 310, 0, 311, 312, 313, 314, 315, 316, 317, 0,
+ 318, 319, 320, 321, 0, 0, 322, 3705, 324, 325,
+ 326, 0, 327, 328, 329, 0, 330, 331, 332, 0,
+ 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
+ 0, 343, 0, 344, 345, 346, 347, 348, 0, 349,
+ 0, 350, 0, 0, 0, 353, 354, 355, 356, 0,
+ 357, 358, 0, 359, 360, 361, 0, 362, 363, 364,
+ 365, 366, 0, 368, 369, 370, 371, 0, 372, 373,
+ 374, 375, 376, 377, 378, 0, 379, 0, 381, 382,
+ 383, 384, 385, 386, 387, 0, 388, 0, 389, 0,
+ 0, 392, 0, 394, 395, 396, 397, 398, 0, 0,
+ 399, 400, 0, 402, 0, 0, 404, 405, 406, 0,
+ 0, 407, 408, 409, 410, 411, 412, 413, 414, 415,
+ 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
+ 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
+ 436, 437, 0, 438, 439, 0, 441, 0, 442, 443,
+ 444, 445, 446, 447, 0, 448, 449, 0, 0, 450,
+ 451, 452, 0, 0, 453, 454, 455, 0, 457, 0,
+ 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 0, 470, 471, 472, 473, 474, 475, 476, 477,
+ 0, 478, 479, 480, 481, 482, 483, 484, 485, 486,
+ 487, 488, 489, 490, 491, 492, 0, 493, 494, 495,
+ 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
+ 0, 506, 507, 0, 509, 510, 511, 512, 513, 514,
+ 515, 516, 517, 518, 519, 520, 521, 522, 523, 0,
+ 524, 525, 526, 527, 528, 0, 529, 530, 531, 532,
+ 533, 0, 535, 536, 537, 538, 0, 539, 540, 541,
+ 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
+ 552, 553, 0, 554, 555, 0, 556, 0, 558, 559,
+ 560, 561, 562, 0, 563, 564, 565, 0, 0, 566,
+ 567, 568, 569, 570, 0, 571, 572, 573, 574, 575,
+ 576, 577, 578, 0, 0, 579, 580, 581, 582, 583,
+ 0, 0, 584, 585, 586, 587, 588, 589, 590, 0,
+ 591, 0, 593, 594, 595, 596, 0, 0, 597, 0,
+ 0, 598, 599, 600, 601, 602, 603, 604, 605, 606,
+ 607, 608, 609, 610, 611, 612, 613, 614, 615, 616,
+ 617, 625, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
+ 237, 238, 239, 240, 241, 242, 0, 243, 244, 245,
+ 0, 0, 0, 0, 0, 0, 0, 246, 247, 248,
+ 0, 249, 250, 251, 252, 0, 254, 255, 256, 257,
+ 258, 0, 260, 261, 0, 262, 263, 264, 265, 266,
+ 267, 268, 0, 0, 269, 270, 271, 272, 273, 0,
+ 274, 275, 276, 277, 278, 0, 0, 0, 280, 281,
+ 282, 283, 284, 285, 0, 287, 288, 289, 0, 290,
+ 291, 292, 293, 294, 295, 0, 0, 297, 298, 299,
+ 0, 0, 0, 0, 0, 0, 0, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, 0, 310, 0, 311,
+ 312, 313, 314, 315, 316, 317, 0, 318, 319, 320,
+ 321, 0, 0, 322, 323, 324, 325, 326, 0, 327,
+ 328, 329, 0, 330, 331, 332, 0, 333, 334, 335,
+ 336, 337, 338, 339, 340, 341, 342, 0, 343, 0,
+ 344, 345, 346, 347, 348, 0, 349, 0, 350, 0,
+ 0, 0, 353, 354, 355, 356, 0, 357, 358, 0,
+ 359, 360, 361, 0, 362, 363, 364, 365, 4891, 0,
+ 368, 369, 370, 371, 0, 372, 373, 374, 375, 376,
+ 377, 378, 0, 379, 0, 381, 382, 383, 384, 385,
+ 386, 387, 0, 388, 0, 389, 0, 0, 392, 0,
+ 394, 395, 396, 397, 398, 0, 0, 399, 400, 0,
+ 402, 0, 0, 404, 405, 406, 0, 0, 407, 408,
+ 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
+ 419, 420, 421, 422, 423, 424, 425, 0, 427, 428,
+ 429, 430, 431, 432, 433, 434, 435, 436, 437, 0,
+ 438, 439, 0, 441, 0, 442, 443, 444, 445, 446,
+ 447, 0, 448, 449, 0, 0, 450, 451, 452, 0,
+ 0, 453, 454, 455, 0, 457, 0, 459, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 0, 470,
+ 471, 472, 473, 474, 475, 476, 477, 0, 478, 479,
+ 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
+ 490, 491, 492, 0, 493, 494, 495, 496, 497, 498,
+ 499, 500, 501, 502, 503, 504, 505, 0, 506, 507,
+ 0, 509, 510, 511, 512, 513, 514, 515, 516, 517,
+ 518, 519, 520, 521, 522, 523, 0, 524, 525, 526,
+ 527, 528, 0, 529, 530, 531, 532, 533, 0, 535,
+ 536, 537, 538, 0, 539, 540, 541, 542, 543, 544,
+ 545, 546, 547, 548, 549, 550, 551, 552, 553, 0,
+ 554, 555, 0, 556, 0, 558, 559, 560, 561, 562,
+ 0, 563, 564, 565, 0, 0, 566, 567, 568, 569,
+ 570, 0, 571, 572, 573, 574, 575, 576, 577, 578,
+ 0, 0, 579, 580, 581, 582, 583, 0, 0, 584,
+ 585, 586, 587, 588, 589, 590, 0, 591, 0, 593,
+ 594, 595, 596, 0, 0, 597, 0, 0, 598, 599,
+ 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
+ 610, 611, 612, 613, 614, 615, 616, 617, 852, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
+ 240, 241, 242, 0, 243, 244, 245, 0, 0, 0,
+ 0, 0, 0, 0, 246, 247, 248, 0, 249, 250,
+ 251, 252, 253, 254, 255, 256, 0, 853, 259, 854,
+ 855, 0, 262, 263, 264, 265, 266, 267, 268, 0,
+ 0, 269, 270, 856, 857, 273, 0, 274, 275, 276,
+ 277, 0, 0, 279, 0, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 0, 290, 291, 292, 293,
+ 294, 295, 0, 296, 297, 298, 299, 0, 0, 0,
+ 300, 0, 0, 0, 301, 302, 303, 304, 305, 306,
+ 858, 859, 309, 0, 310, 0, 311, 312, 313, 314,
+ 315, 316, 317, 0, 318, 319, 320, 321, 0, 0,
+ 322, 323, 860, 325, 326, 0, 327, 328, 329, 0,
+ 330, 331, 332, 0, 333, 334, 335, 336, 0, 338,
+ 339, 340, 341, 0, 0, 343, 0, 344, 345, 346,
+ 861, 348, 0, 349, 0, 350, 351, 0, 352, 353,
+ 354, 355, 356, 0, 357, 0, 0, 0, 360, 361,
+ 0, 362, 363, 364, 365, 366, 367, 368, 369, 370,
+ 371, 2630, 372, 373, 374, 375, 376, 377, 378, 0,
+ 379, 380, 2631, 382, 383, 384, 385, 862, 863, 0,
+ 864, 0, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 0, 0, 399, 0, 401, 402, 403, 0,
+ 404, 405, 406, 0, 0, 407, 408, 409, 410, 411,
+ 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
+ 422, 423, 424, 865, 426, 866, 428, 429, 430, 431,
+ 432, 433, 434, 0, 0, 437, 0, 438, 439, 440,
+ 441, 0, 0, 443, 867, 445, 446, 447, 0, 448,
+ 449, 0, 0, 450, 451, 452, 0, 0, 453, 454,
+ 2633, 456, 457, 458, 0, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 0, 470, 471, 0, 473,
+ 0, 475, 476, 477, 0, 478, 479, 480, 481, 482,
+ 483, 484, 485, 486, 487, 868, 489, 490, 491, 492,
+ 0, 493, 494, 495, 496, 497, 498, 499, 500, 501,
+ 502, 503, 504, 505, 0, 506, 507, 508, 509, 510,
+ 511, 512, 513, 0, 515, 516, 517, 518, 519, 520,
+ 521, 522, 523, 0, 524, 525, 526, 527, 528, 0,
+ 529, 530, 2634, 532, 533, 534, 535, 536, 870, 538,
+ 0, 539, 540, 541, 542, 543, 544, 545, 546, 547,
+ 548, 549, 550, 551, 0, 553, 0, 554, 555, 0,
+ 556, 557, 558, 559, 560, 561, 562, 0, 563, 871,
+ 872, 0, 0, 566, 567, 0, 569, 0, 0, 571,
+ 572, 573, 574, 575, 576, 577, 578, 0, 0, 579,
+ 580, 581, 582, 583, 0, 0, 584, 585, 586, 587,
+ 588, 0, 873, 2635, 591, 592, 593, 594, 595, 596,
+ 0, 0, 597, 0, 0, 598, 599, 600, 601, 602,
+ 603, 625, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 615, 616, 617, 0, 0, 0, 235, 236,
+ 237, 238, 239, 240, 241, 242, 0, 243, 244, 245,
+ 0, 0, 0, 0, 0, 0, 0, 246, 247, 248,
+ 0, 249, 250, 251, 252, 0, 254, 255, 256, 257,
+ 258, 0, 260, 261, 0, 262, 263, 264, 265, 266,
+ 267, 268, 0, 0, 269, 270, 271, 272, 273, 0,
+ 274, 275, 276, 277, 278, 0, 0, 0, 280, 281,
+ 282, 283, 284, 285, 0, 287, 288, 289, 0, 290,
+ 291, 292, 293, 294, 295, 0, 0, 297, 298, 299,
+ 0, 0, 0, 0, 0, 0, 0, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, 0, 310, 0, 311,
+ 312, 313, 314, 315, 316, 317, 0, 318, 319, 320,
+ 321, 0, 0, 322, 323, 324, 325, 326, 0, 327,
+ 328, 329, 0, 330, 331, 332, 0, 333, 334, 335,
+ 336, 337, 338, 339, 340, 341, 342, 0, 343, 0,
+ 344, 345, 346, 347, 348, 0, 349, 0, 350, 0,
+ 0, 0, 353, 354, 355, 356, 0, 357, 358, 0,
+ 359, 0, 361, 0, 362, 363, 364, 365, 366, 0,
+ 368, 369, 370, 371, 0, 372, 373, 374, 375, 376,
+ 377, 378, 0, 379, 0, 381, 382, 383, 384, 385,
+ 386, 387, 0, 388, 0, 389, 0, 0, 392, 0,
+ 394, 395, 396, 397, 398, 0, 0, 399, 400, 0,
+ 402, 0, 0, 404, 405, 406, 0, 0, 407, 408,
+ 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
+ 419, 420, 421, 422, 423, 424, 425, 0, 427, 428,
+ 429, 430, 431, 432, 433, 434, 435, 436, 437, 0,
+ 438, 439, 0, 441, 0, 442, 443, 444, 445, 446,
+ 447, 0, 448, 449, 0, 0, 450, 451, 452, 0,
+ 0, 453, 454, 455, 0, 457, 0, 459, 460, 461,
+ 462, 463, 464, 465, 466, 0, 468, 469, 0, 470,
+ 471, 472, 473, 474, 475, 476, 477, 0, 478, 479,
+ 480, 481, 482, 483, 484, 485, 0, 487, 488, 489,
+ 490, 491, 492, 0, 493, 494, 495, 496, 497, 498,
+ 499, 500, 501, 502, 503, 504, 505, 0, 506, 507,
+ 0, 509, 510, 511, 512, 513, 514, 0, 516, 517,
+ 518, 519, 520, 521, 522, 523, 0, 524, 525, 526,
+ 527, 528, 0, 529, 530, 531, 532, 533, 0, 535,
+ 536, 537, 538, 0, 539, 540, 541, 542, 543, 544,
+ 545, 546, 547, 548, 549, 550, 551, 552, 553, 0,
+ 554, 555, 0, 556, 0, 558, 559, 560, 561, 562,
+ 0, 563, 564, 565, 0, 0, 566, 567, 568, 569,
+ 570, 0, 571, 572, 573, 574, 575, 576, 577, 578,
+ 0, 0, 579, 580, 581, 582, 583, 0, 0, 584,
+ 585, 586, 587, 588, 589, 590, 0, 591, 0, 593,
+ 594, 595, 596, 0, 0, 597, 0, 0, 598, 599,
+ 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
+ 610, 611, 612, 613, 614, 615, 616, 617, 852, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
+ 240, 241, 242, 0, 243, 244, 245, 0, 0, 0,
+ 0, 0, 0, 0, 246, 247, 248, 0, 249, 250,
+ 251, 252, 253, 254, 255, 256, 0, 853, 259, 854,
+ 855, 0, 262, 263, 264, 265, 266, 267, 268, 0,
+ 0, 269, 270, 856, 857, 273, 0, 274, 275, 276,
+ 277, 0, 0, 279, 0, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 0, 290, 291, 292, 293,
+ 294, 295, 0, 296, 297, 298, 299, 0, 0, 0,
+ 300, 0, 0, 0, 301, 302, 303, 304, 305, 306,
+ 858, 859, 309, 0, 310, 0, 311, 312, 313, 314,
+ 315, 316, 317, 0, 318, 319, 320, 321, 0, 0,
+ 322, 323, 860, 325, 326, 0, 327, 328, 329, 0,
+ 330, 331, 332, 0, 333, 334, 335, 336, 0, 338,
+ 339, 340, 341, 0, 0, 343, 0, 344, 345, 346,
+ 861, 348, 0, 349, 0, 350, 351, 0, 352, 353,
+ 354, 355, 356, 0, 357, 0, 0, 0, 360, 361,
+ 0, 362, 363, 364, 365, 366, 367, 368, 369, 370,
+ 371, 0, 372, 373, 374, 375, 376, 377, 378, 0,
+ 379, 380, 0, 382, 383, 384, 385, 862, 863, 0,
+ 864, 0, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 0, 0, 399, 0, 401, 402, 403, 0,
+ 404, 405, 406, 0, 0, 407, 408, 409, 410, 411,
+ 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
+ 422, 423, 424, 865, 426, 866, 428, 429, 430, 431,
+ 432, 433, 434, 0, 0, 437, 0, 438, 439, 440,
+ 441, 2717, 0, 443, 867, 445, 446, 447, 0, 448,
+ 449, 0, 0, 450, 451, 452, 0, 0, 453, 454,
+ 0, 456, 457, 458, 0, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 0, 470, 471, 0, 473,
+ 0, 475, 476, 477, 0, 478, 479, 480, 481, 482,
+ 483, 484, 485, 486, 487, 868, 489, 490, 491, 492,
+ 0, 493, 494, 495, 496, 497, 498, 499, 500, 501,
+ 502, 503, 504, 505, 0, 506, 507, 508, 509, 510,
+ 511, 512, 513, 0, 515, 516, 517, 518, 519, 520,
+ 521, 522, 523, 0, 524, 525, 526, 527, 528, 0,
+ 529, 530, 2634, 532, 533, 534, 535, 536, 870, 538,
+ 0, 539, 540, 541, 542, 543, 544, 545, 546, 547,
+ 548, 549, 550, 551, 0, 553, 0, 554, 555, 4440,
+ 556, 557, 558, 559, 560, 561, 562, 0, 563, 871,
+ 872, 0, 0, 566, 567, 0, 569, 0, 0, 571,
+ 572, 573, 574, 575, 576, 577, 578, 0, 0, 579,
+ 580, 581, 582, 583, 0, 0, 584, 585, 586, 587,
+ 588, 0, 873, 0, 591, 592, 593, 594, 595, 596,
+ 0, 0, 597, 0, 0, 598, 599, 600, 601, 602,
+ 603, 852, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 615, 616, 617, 0, 0, 0, 235, 236,
+ 237, 238, 239, 240, 241, 242, 0, 243, 244, 245,
+ 0, 0, 0, 0, 0, 0, 0, 246, 247, 248,
+ 0, 249, 250, 251, 252, 253, 254, 255, 256, 0,
+ 853, 259, 854, 855, 0, 262, 263, 264, 265, 266,
+ 267, 268, 0, 0, 269, 270, 856, 857, 273, 0,
+ 274, 275, 276, 277, 0, 0, 279, 0, 280, 281,
+ 282, 283, 284, 285, 286, 287, 288, 289, 0, 290,
+ 291, 292, 293, 294, 295, 0, 296, 297, 298, 299,
+ 0, 0, 0, 300, 0, 0, 0, 301, 302, 303,
+ 304, 305, 306, 858, 859, 309, 0, 310, 0, 311,
+ 312, 313, 314, 315, 316, 317, 0, 318, 319, 320,
+ 321, 0, 0, 322, 323, 860, 325, 326, 0, 327,
+ 328, 329, 0, 330, 331, 332, 0, 333, 334, 335,
+ 336, 0, 338, 339, 340, 341, 0, 0, 343, 0,
+ 344, 345, 346, 861, 348, 0, 349, 0, 350, 351,
+ 0, 352, 353, 354, 355, 356, 0, 357, 0, 0,
+ 0, 360, 361, 0, 362, 363, 364, 365, 366, 367,
+ 368, 369, 370, 371, 0, 372, 373, 374, 375, 376,
+ 377, 378, 0, 379, 380, 0, 382, 383, 384, 385,
+ 862, 863, 0, 864, 0, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 0, 0, 399, 0, 401,
+ 402, 403, 0, 404, 405, 406, 0, 0, 407, 408,
+ 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
+ 419, 420, 421, 422, 423, 424, 865, 426, 866, 428,
+ 429, 430, 431, 432, 433, 434, 2791, 0, 437, 0,
+ 438, 439, 440, 441, 0, 0, 443, 867, 445, 446,
+ 447, 0, 448, 449, 0, 0, 450, 451, 452, 0,
+ 0, 453, 454, 0, 456, 457, 458, 0, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 0, 470,
+ 471, 0, 473, 0, 475, 476, 477, 0, 478, 479,
+ 480, 481, 482, 483, 484, 485, 486, 487, 868, 489,
+ 490, 491, 492, 0, 493, 494, 495, 496, 497, 498,
+ 499, 500, 501, 502, 503, 504, 505, 0, 506, 507,
+ 508, 509, 510, 511, 512, 513, 0, 515, 516, 517,
+ 518, 519, 520, 521, 522, 523, 0, 524, 525, 526,
+ 527, 528, 0, 529, 530, 869, 532, 533, 534, 535,
+ 536, 870, 538, 0, 539, 540, 541, 542, 543, 544,
+ 545, 546, 547, 548, 549, 550, 551, 0, 553, 0,
+ 554, 555, 0, 556, 557, 558, 559, 560, 561, 562,
+ 0, 563, 871, 872, 0, 0, 566, 567, 0, 569,
+ 0, 0, 571, 572, 573, 574, 575, 576, 577, 578,
+ 0, 0, 579, 580, 581, 582, 583, 0, 0, 584,
+ 585, 586, 587, 588, 0, 873, 0, 591, 592, 593,
+ 594, 595, 596, 0, 0, 597, 0, 0, 598, 599,
+ 600, 601, 602, 603, 852, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 615, 616, 617, 0, 0,
+ 0, 235, 236, 237, 238, 239, 240, 241, 242, 0,
+ 243, 244, 245, 0, 0, 0, 0, 0, 0, 0,
+ 246, 247, 248, 0, 249, 250, 251, 252, 253, 254,
+ 255, 256, 0, 853, 259, 854, 855, 0, 262, 263,
+ 264, 265, 266, 267, 268, 0, 0, 269, 270, 856,
+ 857, 273, 0, 274, 275, 276, 277, 0, 0, 279,
+ 0, 280, 281, 282, 283, 284, 285, 286, 287, 288,
+ 289, 0, 290, 291, 292, 293, 294, 295, 0, 296,
+ 297, 298, 299, 0, 0, 0, 300, 0, 0, 0,
+ 301, 302, 303, 304, 305, 306, 858, 859, 309, 0,
+ 310, 0, 311, 312, 313, 314, 315, 316, 317, 0,
+ 318, 319, 320, 321, 0, 0, 322, 323, 860, 325,
+ 326, 0, 327, 328, 329, 0, 330, 331, 332, 0,
+ 333, 334, 335, 336, 0, 338, 339, 340, 341, 0,
+ 0, 343, 0, 344, 345, 346, 861, 348, 0, 349,
+ 0, 350, 351, 0, 352, 353, 354, 355, 356, 0,
+ 357, 0, 0, 0, 360, 361, 0, 362, 363, 364,
+ 365, 366, 367, 368, 369, 370, 371, 0, 372, 373,
+ 374, 375, 376, 377, 378, 0, 379, 380, 0, 382,
+ 383, 384, 385, 862, 863, 0, 864, 0, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, 0, 0,
+ 399, 0, 401, 402, 403, 0, 404, 405, 406, 0,
+ 0, 407, 408, 409, 410, 411, 412, 413, 414, 415,
+ 416, 417, 418, 419, 420, 421, 422, 423, 424, 865,
+ 426, 866, 428, 429, 430, 431, 432, 433, 434, 4236,
+ 0, 437, 0, 438, 439, 440, 441, 0, 0, 443,
+ 867, 445, 446, 447, 0, 448, 449, 0, 0, 450,
+ 451, 452, 0, 0, 453, 454, 0, 456, 457, 458,
+ 0, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 0, 470, 471, 0, 473, 0, 475, 476, 477,
+ 0, 478, 479, 480, 481, 482, 483, 484, 485, 486,
+ 487, 868, 489, 490, 491, 492, 0, 493, 494, 495,
+ 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
+ 0, 506, 507, 508, 509, 510, 511, 512, 513, 0,
+ 515, 516, 517, 518, 519, 520, 521, 522, 523, 0,
+ 524, 525, 526, 527, 528, 0, 529, 530, 869, 532,
+ 533, 534, 535, 536, 870, 538, 0, 539, 540, 541,
+ 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
+ 0, 553, 0, 554, 555, 0, 556, 557, 558, 559,
+ 560, 561, 562, 0, 563, 871, 872, 0, 0, 566,
+ 567, 0, 569, 0, 0, 571, 572, 573, 574, 575,
+ 576, 577, 578, 0, 0, 579, 580, 581, 582, 583,
+ 0, 0, 584, 585, 586, 587, 588, 0, 873, 0,
+ 591, 592, 593, 594, 595, 596, 0, 0, 597, 0,
+ 0, 598, 599, 600, 601, 602, 603, 852, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 615, 616,
+ 617, 0, 0, 0, 235, 236, 237, 238, 239, 240,
+ 241, 242, 0, 243, 244, 245, 0, 0, 0, 0,
+ 0, 0, 0, 246, 247, 248, 0, 249, 250, 251,
+ 252, 253, 254, 255, 256, 0, 853, 259, 854, 855,
+ 0, 262, 263, 264, 265, 266, 267, 268, 0, 0,
+ 269, 270, 856, 857, 273, 0, 274, 275, 276, 277,
+ 0, 0, 279, 0, 280, 281, 282, 283, 284, 285,
+ 286, 287, 288, 289, 0, 290, 291, 292, 293, 294,
+ 295, 0, 296, 297, 298, 299, 0, 0, 0, 300,
+ 0, 0, 0, 301, 302, 303, 304, 305, 306, 858,
+ 859, 309, 0, 310, 0, 311, 312, 313, 314, 315,
+ 316, 317, 0, 318, 319, 320, 321, 0, 0, 322,
+ 323, 860, 325, 326, 0, 327, 328, 329, 0, 330,
+ 331, 332, 0, 333, 334, 335, 336, 0, 338, 339,
+ 340, 341, 0, 0, 343, 0, 344, 345, 346, 861,
+ 348, 5707, 349, 0, 350, 351, 0, 352, 353, 354,
+ 355, 356, 0, 357, 0, 0, 0, 360, 361, 0,
+ 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
+ 0, 372, 373, 374, 375, 376, 377, 378, 0, 379,
+ 380, 0, 382, 383, 384, 385, 862, 863, 0, 864,
+ 0, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 0, 0, 399, 0, 401, 402, 403, 0, 404,
+ 405, 406, 0, 0, 407, 408, 409, 410, 411, 412,
+ 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
+ 423, 424, 865, 426, 866, 428, 429, 430, 431, 432,
+ 433, 434, 0, 0, 437, 0, 438, 439, 440, 441,
+ 0, 0, 443, 867, 445, 446, 447, 0, 448, 449,
+ 0, 0, 450, 451, 452, 0, 0, 453, 454, 0,
+ 456, 457, 458, 0, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 0, 470, 471, 0, 473, 0,
+ 475, 476, 477, 0, 478, 479, 480, 481, 482, 483,
+ 484, 485, 486, 487, 868, 489, 490, 491, 492, 0,
+ 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
+ 503, 504, 505, 0, 506, 507, 508, 509, 510, 511,
+ 512, 513, 0, 515, 516, 517, 518, 519, 520, 521,
+ 522, 523, 0, 524, 525, 526, 527, 528, 0, 529,
+ 530, 869, 532, 533, 534, 535, 536, 870, 538, 0,
+ 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
+ 549, 550, 551, 0, 553, 0, 554, 555, 0, 556,
+ 557, 558, 559, 560, 561, 562, 0, 563, 871, 872,
+ 0, 0, 566, 567, 0, 569, 0, 0, 571, 572,
+ 573, 574, 575, 576, 577, 578, 0, 0, 579, 580,
+ 581, 582, 583, 0, 0, 584, 585, 586, 587, 588,
+ 0, 873, 0, 591, 592, 593, 594, 595, 596, 0,
+ 0, 597, 0, 0, 598, 599, 600, 601, 602, 603,
+ 852, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 615, 616, 617, 0, 0, 0, 235, 236, 237,
+ 238, 239, 240, 241, 242, 0, 243, 244, 245, 0,
+ 0, 0, 0, 0, 0, 0, 246, 247, 248, 0,
+ 249, 250, 251, 252, 253, 254, 255, 256, 0, 853,
+ 259, 854, 855, 0, 262, 263, 264, 265, 266, 267,
+ 268, 0, 0, 269, 270, 856, 857, 273, 0, 274,
+ 275, 276, 277, 0, 0, 279, 0, 280, 281, 282,
+ 283, 284, 285, 286, 287, 288, 289, 0, 290, 291,
+ 292, 293, 294, 295, 0, 296, 297, 298, 299, 0,
+ 0, 0, 300, 0, 0, 0, 301, 302, 303, 304,
+ 305, 306, 858, 859, 309, 0, 310, 0, 311, 312,
+ 313, 314, 315, 316, 317, 0, 318, 319, 320, 321,
+ 0, 0, 322, 323, 860, 325, 326, 0, 327, 328,
+ 329, 0, 330, 331, 332, 0, 333, 334, 335, 336,
+ 0, 338, 339, 340, 341, 0, 0, 343, 0, 344,
+ 345, 346, 861, 348, 0, 349, 0, 350, 351, 0,
+ 352, 353, 354, 355, 356, 0, 357, 0, 0, 0,
+ 360, 361, 0, 362, 363, 364, 365, 366, 367, 368,
+ 369, 370, 371, 0, 372, 373, 374, 375, 376, 377,
+ 378, 0, 379, 380, 0, 382, 383, 384, 385, 862,
+ 863, 0, 864, 0, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 0, 0, 399, 0, 401, 402,
+ 403, 0, 404, 405, 406, 0, 0, 407, 408, 409,
+ 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
+ 420, 421, 422, 423, 424, 865, 426, 866, 428, 429,
+ 430, 431, 432, 433, 434, 0, 0, 437, 0, 438,
+ 439, 440, 441, 0, 0, 443, 867, 445, 446, 447,
+ 0, 448, 449, 0, 0, 450, 451, 452, 0, 0,
+ 453, 454, 0, 456, 457, 458, 0, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 0, 470, 471,
+ 0, 473, 0, 475, 476, 477, 0, 478, 479, 480,
+ 481, 482, 483, 484, 485, 486, 487, 868, 489, 490,
+ 491, 492, 0, 493, 494, 495, 496, 497, 498, 499,
+ 500, 501, 502, 503, 504, 505, 0, 506, 507, 508,
+ 509, 510, 511, 512, 513, 0, 515, 516, 517, 518,
+ 519, 520, 521, 522, 523, 0, 524, 525, 526, 527,
+ 528, 0, 529, 530, 869, 532, 533, 534, 535, 536,
+ 870, 538, 0, 539, 540, 541, 542, 543, 544, 545,
+ 546, 547, 548, 549, 550, 551, 0, 553, 0, 554,
+ 555, 0, 556, 557, 558, 559, 560, 561, 562, 0,
+ 563, 871, 872, 0, 0, 566, 567, 0, 569, 0,
+ 0, 571, 572, 573, 574, 575, 576, 577, 578, 0,
+ 0, 579, 580, 581, 582, 583, 0, 0, 584, 585,
+ 586, 587, 588, 0, 873, 0, 591, 592, 593, 594,
+ 595, 596, 0, 0, 597, 0, 0, 598, 599, 600,
+ 601, 602, 603, 852, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 615, 616, 617, 0, 0, 0,
+ 235, 236, 237, 238, 239, 240, 241, 242, 0, 243,
+ 244, 245, 0, 0, 0, 0, 0, 0, 0, 246,
+ 247, 248, 0, 249, 250, 251, 252, 253, 254, 255,
+ 256, 0, 853, 259, 854, 855, 0, 262, 263, 264,
+ 265, 266, 267, 268, 0, 0, 269, 270, 856, 857,
+ 273, 0, 274, 275, 276, 277, 0, 0, 279, 0,
+ 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 0, 290, 291, 292, 293, 294, 295, 0, 296, 297,
+ 298, 299, 0, 0, 0, 300, 0, 0, 0, 301,
+ 302, 303, 304, 305, 306, 858, 859, 309, 0, 310,
+ 0, 311, 312, 313, 314, 315, 316, 317, 0, 318,
+ 319, 320, 321, 0, 0, 322, 323, 860, 325, 326,
+ 0, 327, 328, 329, 0, 330, 331, 332, 0, 333,
+ 334, 335, 336, 0, 338, 339, 340, 341, 0, 0,
+ 343, 0, 344, 345, 346, 861, 348, 0, 349, 0,
+ 350, 351, 0, 352, 353, 354, 355, 356, 0, 357,
+ 0, 0, 0, 360, 361, 0, 362, 363, 364, 365,
+ 1124, 367, 368, 369, 370, 371, 0, 372, 373, 374,
+ 375, 376, 377, 378, 0, 379, 380, 0, 382, 383,
+ 384, 385, 862, 863, 0, 864, 0, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 0, 0, 399,
+ 0, 401, 402, 403, 0, 404, 405, 406, 0, 0,
+ 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
+ 417, 418, 419, 420, 421, 422, 423, 424, 865, 426,
+ 866, 428, 429, 430, 431, 432, 433, 434, 0, 0,
+ 437, 0, 438, 439, 440, 441, 0, 0, 443, 867,
+ 445, 446, 447, 0, 448, 449, 0, 0, 450, 451,
+ 452, 0, 0, 453, 454, 0, 456, 457, 458, 0,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 0, 470, 471, 0, 473, 0, 475, 476, 477, 0,
+ 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
+ 868, 489, 490, 491, 492, 0, 493, 494, 495, 496,
+ 497, 498, 499, 500, 501, 502, 503, 504, 505, 0,
+ 506, 507, 508, 509, 510, 511, 512, 513, 0, 515,
+ 516, 517, 518, 519, 520, 521, 522, 523, 0, 524,
+ 525, 526, 527, 528, 0, 529, 530, 869, 532, 533,
+ 534, 535, 536, 870, 538, 0, 539, 540, 541, 542,
+ 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
+ 553, 0, 554, 555, 0, 556, 557, 558, 559, 560,
+ 561, 562, 0, 563, 871, 872, 0, 0, 566, 567,
+ 0, 569, 0, 0, 571, 572, 573, 574, 575, 576,
+ 577, 578, 0, 0, 579, 580, 581, 582, 583, 0,
+ 0, 584, 585, 586, 587, 588, 0, 873, 0, 591,
+ 592, 593, 594, 595, 596, 0, 0, 597, 0, 0,
+ 598, 599, 600, 601, 602, 603, 852, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 615, 616, 617,
+ 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
+ 242, 0, 243, 244, 245, 0, 0, 0, 0, 0,
+ 0, 0, 246, 247, 248, 0, 249, 250, 251, 252,
+ 253, 254, 255, 256, 0, 853, 259, 854, 855, 0,
+ 262, 263, 264, 265, 266, 267, 268, 0, 0, 269,
+ 270, 856, 857, 273, 0, 274, 275, 276, 277, 0,
+ 0, 279, 0, 280, 281, 282, 283, 284, 285, 286,
+ 287, 288, 289, 0, 290, 291, 292, 293, 294, 295,
+ 0, 296, 297, 298, 299, 0, 0, 0, 300, 0,
+ 0, 0, 301, 302, 303, 304, 305, 306, 858, 859,
+ 309, 0, 310, 0, 311, 312, 313, 314, 315, 316,
+ 317, 0, 318, 319, 320, 321, 0, 0, 322, 323,
+ 860, 325, 326, 0, 327, 328, 329, 0, 330, 331,
+ 332, 0, 333, 334, 335, 336, 0, 338, 339, 340,
+ 341, 0, 0, 343, 0, 344, 345, 346, 861, 348,
+ 0, 349, 0, 350, 351, 0, 352, 353, 354, 355,
+ 356, 0, 357, 0, 0, 0, 360, 361, 0, 362,
+ 363, 364, 365, 1156, 367, 368, 369, 370, 371, 0,
+ 372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
+ 0, 382, 383, 384, 385, 862, 863, 0, 864, 0,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 0, 0, 399, 0, 401, 402, 403, 0, 404, 405,
+ 406, 0, 0, 407, 408, 409, 410, 411, 412, 413,
+ 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
+ 424, 865, 426, 866, 428, 429, 430, 431, 432, 433,
+ 434, 0, 0, 437, 0, 438, 439, 440, 441, 0,
+ 0, 443, 867, 445, 446, 447, 0, 448, 449, 0,
+ 0, 450, 451, 452, 0, 0, 453, 454, 0, 456,
+ 457, 458, 0, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 0, 470, 471, 0, 473, 0, 475,
+ 476, 477, 0, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 868, 489, 490, 491, 492, 0, 493,
+ 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
+ 504, 505, 0, 506, 507, 508, 509, 510, 511, 512,
+ 513, 0, 515, 516, 517, 518, 519, 520, 521, 522,
+ 523, 0, 524, 525, 526, 527, 528, 0, 529, 530,
+ 869, 532, 533, 534, 535, 536, 870, 538, 0, 539,
+ 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
+ 550, 551, 0, 553, 0, 554, 555, 0, 556, 557,
+ 558, 559, 560, 561, 562, 0, 563, 871, 872, 0,
+ 0, 566, 567, 0, 569, 0, 0, 571, 572, 573,
+ 574, 575, 576, 577, 578, 0, 0, 579, 580, 581,
+ 582, 583, 0, 0, 584, 585, 586, 587, 588, 0,
+ 873, 0, 591, 592, 593, 594, 595, 596, 0, 0,
+ 597, 0, 0, 598, 599, 600, 601, 602, 603, 852,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 615, 616, 617, 0, 0, 0, 235, 236, 237, 238,
+ 239, 240, 241, 242, 0, 243, 244, 245, 0, 0,
+ 0, 0, 0, 0, 0, 246, 247, 248, 0, 249,
+ 250, 251, 252, 253, 254, 255, 256, 0, 853, 259,
+ 854, 855, 0, 262, 263, 264, 265, 266, 267, 268,
+ 0, 0, 269, 270, 856, 857, 273, 0, 274, 275,
+ 276, 277, 0, 0, 279, 0, 280, 281, 282, 283,
+ 284, 285, 286, 287, 288, 289, 0, 290, 291, 292,
+ 293, 294, 295, 0, 296, 297, 298, 299, 0, 0,
+ 0, 300, 0, 0, 0, 301, 302, 303, 304, 305,
+ 306, 858, 859, 309, 0, 310, 0, 311, 312, 313,
+ 314, 315, 316, 317, 0, 318, 319, 320, 321, 0,
+ 0, 322, 323, 860, 325, 326, 0, 327, 328, 329,
+ 0, 330, 331, 332, 0, 333, 334, 335, 336, 0,
+ 338, 339, 340, 341, 0, 0, 343, 0, 344, 345,
+ 346, 861, 348, 0, 349, 0, 350, 351, 0, 352,
+ 353, 354, 355, 356, 0, 357, 0, 0, 0, 360,
+ 361, 0, 362, 363, 364, 365, 366, 367, 368, 369,
+ 370, 371, 0, 372, 373, 374, 375, 376, 377, 378,
+ 0, 379, 380, 0, 382, 383, 384, 385, 862, 863,
+ 0, 864, 0, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, 0, 0, 399, 0, 401, 402, 403,
+ 0, 404, 405, 406, 0, 0, 407, 408, 409, 410,
+ 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
+ 421, 422, 423, 424, 865, 426, 866, 428, 429, 430,
+ 431, 432, 433, 434, 0, 0, 437, 0, 438, 439,
+ 440, 441, 0, 0, 443, 867, 445, 446, 447, 0,
+ 448, 449, 0, 0, 450, 451, 452, 0, 0, 453,
+ 454, 0, 456, 457, 458, 0, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 0, 470, 471, 0,
+ 473, 0, 475, 476, 477, 0, 478, 479, 480, 481,
+ 482, 483, 484, 485, 486, 487, 868, 489, 490, 491,
+ 492, 0, 493, 494, 495, 496, 497, 498, 499, 500,
+ 501, 502, 503, 504, 505, 0, 506, 507, 508, 509,
+ 510, 511, 512, 513, 0, 515, 516, 517, 518, 519,
+ 520, 521, 522, 523, 0, 524, 525, 526, 527, 528,
+ 0, 529, 530, 2634, 532, 533, 534, 535, 536, 870,
+ 538, 0, 539, 540, 541, 542, 543, 544, 545, 546,
+ 547, 548, 549, 550, 551, 0, 553, 0, 554, 555,
+ 0, 556, 557, 558, 559, 560, 561, 562, 0, 563,
+ 871, 872, 0, 0, 566, 567, 0, 569, 0, 0,
+ 571, 572, 573, 574, 575, 576, 577, 578, 0, 0,
+ 579, 580, 581, 582, 583, 0, 0, 584, 585, 586,
+ 587, 588, 0, 873, 0, 591, 592, 593, 594, 595,
+ 596, 0, 0, 597, 0, 0, 598, 599, 600, 601,
+ 602, 603, 852, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 615, 616, 617, 0, 0, 0, 235,
+ 236, 237, 238, 239, 240, 241, 242, 0, 243, 244,
+ 245, 0, 0, 0, 0, 0, 0, 0, 246, 247,
+ 248, 0, 249, 250, 251, 252, 253, 254, 255, 256,
+ 0, 853, 259, 854, 855, 0, 262, 263, 264, 265,
+ 266, 267, 268, 0, 0, 269, 270, 856, 857, 273,
+ 0, 274, 275, 276, 277, 0, 0, 279, 0, 280,
+ 281, 282, 283, 284, 285, 286, 287, 288, 289, 0,
+ 290, 291, 292, 293, 294, 295, 0, 296, 297, 298,
+ 299, 0, 0, 0, 300, 0, 0, 0, 301, 302,
+ 303, 304, 305, 306, 858, 859, 309, 0, 310, 0,
+ 311, 312, 313, 314, 315, 316, 317, 0, 318, 319,
+ 320, 321, 0, 0, 322, 323, 860, 325, 326, 0,
+ 327, 328, 329, 0, 330, 331, 332, 0, 333, 334,
+ 335, 336, 0, 338, 339, 340, 341, 0, 0, 343,
+ 0, 344, 345, 346, 861, 348, 0, 349, 0, 350,
+ 351, 0, 352, 353, 354, 355, 356, 0, 357, 0,
+ 0, 0, 360, 361, 0, 362, 363, 364, 365, 366,
+ 367, 368, 369, 370, 371, 0, 372, 373, 374, 375,
+ 376, 377, 378, 0, 379, 380, 0, 382, 383, 384,
+ 385, 862, 863, 0, 864, 0, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 0, 0, 399, 0,
+ 401, 402, 403, 0, 404, 405, 406, 0, 0, 407,
+ 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
+ 418, 419, 420, 421, 422, 423, 424, 865, 426, 866,
+ 428, 429, 430, 431, 432, 433, 434, 0, 0, 437,
+ 0, 438, 439, 440, 441, 0, 0, 443, 867, 445,
+ 446, 447, 0, 448, 449, 0, 0, 450, 451, 452,
+ 0, 0, 453, 454, 0, 456, 457, 458, 0, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 0,
+ 470, 471, 0, 473, 0, 475, 476, 477, 0, 478,
+ 479, 480, 481, 482, 483, 484, 485, 486, 487, 868,
+ 489, 490, 491, 492, 0, 493, 494, 495, 496, 497,
+ 498, 499, 500, 501, 502, 503, 504, 505, 0, 506,
+ 507, 508, 509, 510, 511, 512, 513, 0, 515, 516,
+ 517, 518, 519, 520, 521, 522, 523, 0, 524, 525,
+ 526, 527, 528, 0, 529, 530, 0, 532, 533, 534,
+ 535, 536, 870, 538, 0, 539, 540, 541, 542, 543,
+ 544, 545, 546, 547, 548, 549, 550, 551, 0, 553,
+ 0, 554, 555, 0, 556, 557, 558, 559, 560, 561,
+ 562, 0, 563, 871, 872, 0, 0, 566, 567, 0,
+ 569, 0, 0, 571, 572, 573, 574, 575, 576, 577,
+ 578, 0, 0, 579, 580, 581, 582, 583, 0, 0,
+ 584, 585, 586, 587, 588, 0, 873, 0, 591, 592,
+ 593, 594, 595, 596, 0, 0, 597, 0, 0, 598,
+ 599, 600, 601, 602, 603, 852, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 615, 616, 617, 0,
+ 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
+ 0, 243, 244, 245, 0, 0, 0, 0, 0, 0,
+ 0, 246, 247, 248, 0, 249, 250, 251, 252, 253,
+ 254, 255, 256, 0, 0, 259, 0, 0, 0, 262,
+ 263, 264, 265, 266, 267, 268, 0, 0, 269, 270,
+ 0, 0, 273, 0, 274, 275, 276, 277, 0, 0,
+ 279, 0, 280, 281, 282, 283, 284, 285, 286, 287,
+ 288, 289, 0, 290, 291, 292, 293, 294, 295, 0,
+ 296, 297, 298, 299, 0, 0, 0, 300, 0, 0,
+ 0, 301, 302, 303, 304, 305, 306, 0, 0, 309,
+ 0, 310, 0, 311, 312, 313, 314, 315, 316, 317,
+ 0, 318, 319, 320, 321, 0, 0, 322, 323, 324,
+ 325, 326, 0, 327, 328, 329, 0, 330, 331, 332,
+ 0, 333, 334, 335, 336, 0, 338, 339, 340, 341,
+ 0, 0, 343, 0, 344, 345, 346, 0, 348, 0,
+ 349, 0, 350, 351, 0, 352, 353, 354, 355, 356,
+ 0, 357, 0, 0, 0, 360, 361, 0, 362, 363,
+ 364, 365, 366, 367, 368, 369, 370, 371, 0, 372,
+ 373, 374, 375, 376, 377, 378, 0, 379, 380, 0,
+ 382, 383, 384, 385, 0, 0, 0, 0, 0, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 0,
+ 0, 399, 0, 401, 402, 403, 0, 404, 405, 406,
+ 0, 0, 407, 408, 409, 410, 411, 412, 413, 414,
+ 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
+ 0, 426, 0, 428, 429, 430, 431, 432, 433, 434,
+ 0, 0, 437, 0, 438, 439, 440, 441, 0, 0,
+ 443, 0, 445, 446, 447, 0, 448, 449, 0, 0,
+ 450, 451, 452, 0, 0, 453, 454, 0, 456, 457,
+ 458, 0, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 0, 470, 471, 0, 473, 0, 475, 476,
+ 477, 0, 478, 479, 480, 481, 482, 483, 484, 485,
+ 486, 487, 0, 489, 490, 491, 492, 0, 493, 494,
+ 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
+ 505, 0, 506, 507, 508, 509, 510, 511, 512, 513,
+ 0, 515, 516, 517, 518, 519, 520, 521, 522, 523,
+ 0, 524, 525, 526, 527, 528, 0, 529, 530, 0,
+ 532, 533, 534, 535, 536, 0, 538, 0, 539, 540,
+ 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
+ 551, 0, 553, 0, 554, 555, 0, 556, 557, 558,
+ 559, 560, 561, 562, 0, 563, 0, 0, 0, 0,
+ 566, 567, 0, 569, 0, 0, 571, 572, 573, 574,
+ 575, 576, 577, 578, 0, 0, 579, 580, 581, 582,
+ 583, 0, 0, 584, 585, 586, 587, 588, 0, 0,
+ 0, 591, 592, 593, 594, 595, 596, 0, 0, 597,
+ 0, 0, 598, 599, 600, 601, 602, 603, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 615,
+ 616, 617
+};
+
+static const yytype_int16 yycheck[] =
+{
+ 6, 0, 6, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 211, 0, 44, 0, 206, 0,
+ 56, 0, 653, 0, 951, 1012, 214, 0, 0, 217,
+ 21, 21, 211, 913, 36, 984, 1136, 1484, 22, 887,
+ 766, 767, 768, 189, 28, 51, 772, 813, 632, 1546,
+ 1020, 816, 869, 907, 1611, 909, 1014, 840, 2674, 1530,
+ 1016, 685, 1001, 197, 1456, 1197, 1523, 985, 2616, 1010,
+ 2617, 1240, 792, 3293, 823, 3295, 2993, 925, 858, 859,
+ 1086, 2966, 1228, 1530, 3140, 1850, 730, 867, 2638, 2639,
+ 3031, 216, 3117, 1020, 45, 839, 3478, 3585, 3505, 1980,
+ 3384, 685, 872, 3779, 3806, 230, 4136, 1535, 3795, 23,
+ 846, 3531, 1679, 3533, 950, 1576, 1577, 3828, 726, 1580,
+ 4089, 1060, 36, 1998, 2885, 1064, 634, 3338, 3731, 8,
+ 1069, 1523, 3344, 2978, 3394, 4179, 15, 2044, 1513, 975,
+ 1079, 4132, 191, 706, 980, 4612, 709, 721, 732, 1646,
+ 1647, 191, 175, 1092, 1413, 2, 1921, 4373, 4428, 731,
+ 4411, 3358, 5073, 50, 4416, 4214, 35, 2533, 1075, 4921,
+ 2496, 2863, 4710, 42, 2500, 4628, 5200, 4630, 4872, 2603,
+ 2601, 3392, 41, 1090, 1123, 3343, 3250, 3345, 3793, 4677,
+ 5248, 197, 936, 5476, 4111, 819, 910, 225, 1573, 4415,
+ 206, 207, 5115, 6, 4929, 3404, 790, 1496, 214, 910,
+ 216, 217, 1640, 6, 2580, 1590, 11, 6, 0, 0,
+ 37, 6, 5236, 984, 230, 53, 4920, 934, 0, 11,
+ 0, 77, 993, 6, 120, 819, 46, 4554, 34, 1667,
+ 62, 6, 1003, 118, 5157, 0, 28, 62, 24, 6,
+ 15, 16, 79, 13, 42, 0, 62, 145, 6, 6,
+ 844, 84, 856, 857, 5164, 5165, 11, 6, 975, 6,
+ 62, 6, 866, 980, 172, 6, 2020, 6, 15, 16,
+ 1024, 42, 2974, 28, 6, 2931, 1476, 2933, 2934, 6,
+ 179, 172, 2938, 2939, 2940, 6, 2942, 2943, 2944, 167,
+ 173, 2574, 196, 111, 15, 16, 172, 11, 5, 111,
+ 62, 172, 62, 62, 11, 3, 15, 111, 5189, 5721,
+ 904, 111, 13, 79, 90, 3480, 6, 3, 1054, 5,
+ 6, 6, 5, 118, 220, 11, 172, 62, 11, 286,
+ 151, 281, 1577, 172, 179, 1580, 6, 292, 62, 0,
+ 13, 79, 151, 44, 287, 87, 175, 172, 5460, 267,
+ 29, 4405, 138, 93, 287, 5818, 321, 307, 1829, 5361,
+ 21, 41, 131, 278, 287, 708, 5659, 287, 4916, 1099,
+ 4429, 334, 141, 62, 118, 271, 77, 172, 300, 722,
+ 172, 172, 333, 251, 121, 164, 376, 38, 130, 86,
+ 172, 358, 172, 28, 450, 56, 122, 161, 2821, 416,
+ 35, 118, 122, 1369, 196, 196, 1357, 172, 459, 1425,
+ 79, 403, 31, 345, 196, 300, 196, 172, 1355, 97,
+ 118, 90, 1076, 1360, 1361, 1171, 1020, 341, 302, 5377,
+ 328, 196, 118, 329, 5382, 5383, 490, 501, 79, 58,
+ 504, 196, 46, 375, 500, 1413, 653, 439, 502, 90,
+ 167, 1417, 5375, 504, 5478, 192, 4503, 4504, 4505, 79,
+ 4507, 4508, 4509, 4510, 4511, 90, 163, 341, 1258, 1259,
+ 234, 438, 28, 123, 28, 5237, 13, 128, 2901, 35,
+ 79, 35, 445, 262, 134, 10, 1216, 504, 13, 1279,
+ 189, 217, 17, 18, 19, 324, 703, 217, 366, 79,
+ 178, 452, 416, 120, 10, 5798, 172, 44, 416, 1289,
+ 500, 17, 18, 19, 194, 347, 651, 5980, 172, 283,
+ 172, 464, 657, 152, 446, 440, 459, 22, 357, 215,
+ 191, 347, 211, 302, 669, 500, 459, 362, 5650, 459,
+ 77, 370, 5423, 500, 27, 347, 31, 140, 6, 504,
+ 500, 237, 125, 123, 224, 1309, 13, 378, 36, 1525,
+ 478, 446, 1308, 305, 1501, 13, 5568, 500, 372, 378,
+ 5197, 50, 341, 271, 1511, 3740, 405, 416, 276, 416,
+ 5992, 167, 490, 1337, 1829, 347, 404, 347, 347, 375,
+ 216, 276, 404, 5886, 502, 1177, 44, 430, 5061, 1233,
+ 504, 4214, 500, 401, 404, 504, 346, 90, 504, 500,
+ 416, 10, 347, 1813, 13, 500, 632, 500, 17, 18,
+ 19, 416, 500, 347, 1414, 445, 451, 4240, 504, 77,
+ 401, 638, 638, 504, 5658, 651, 449, 638, 1384, 1233,
+ 118, 657, 498, 1247, 1248, 421, 502, 392, 393, 638,
+ 416, 638, 438, 669, 500, 638, 151, 1606, 347, 504,
+ 1609, 1598, 500, 1580, 1601, 1602, 5959, 409, 10, 685,
+ 1274, 13, 504, 500, 690, 17, 18, 19, 416, 695,
+ 1677, 1678, 5009, 699, 700, 5595, 732, 500, 504, 1617,
+ 706, 174, 708, 709, 499, 490, 1995, 500, 4384, 491,
+ 492, 500, 504, 736, 1450, 721, 722, 502, 5470, 6002,
+ 2993, 503, 503, 1630, 1631, 1561, 732, 500, 1352, 1443,
+ 461, 503, 4139, 503, 1675, 500, 496, 4424, 1499, 4656,
+ 731, 498, 1443, 500, 5802, 502, 491, 492, 503, 4425,
+ 778, 482, 500, 500, 504, 504, 490, 416, 503, 4247,
+ 385, 500, 746, 500, 748, 4253, 750, 913, 1352, 500,
+ 1378, 500, 756, 288, 504, 5789, 1360, 1361, 500, 504,
+ 1597, 461, 5884, 500, 790, 416, 459, 491, 492, 500,
+ 504, 490, 288, 5817, 491, 492, 1390, 1391, 438, 498,
+ 1561, 416, 482, 502, 1684, 496, 416, 813, 814, 482,
+ 1143, 500, 840, 819, 1521, 491, 492, 1949, 491, 492,
+ 500, 5734, 416, 1923, 292, 504, 4429, 416, 276, 218,
+ 493, 494, 495, 496, 5747, 442, 455, 1034, 844, 385,
+ 846, 385, 4054, 1031, 28, 22, 416, 1035, 504, 1037,
+ 323, 445, 901, 1811, 4065, 1034, 1956, 3407, 4069, 3409,
+ 504, 901, 504, 869, 196, 5353, 1793, 1574, 1968, 344,
+ 4475, 1204, 455, 358, 5888, 3939, 31, 440, 438, 348,
+ 3905, 760, 1215, 459, 1591, 891, 218, 360, 504, 286,
+ 918, 1025, 22, 378, 184, 4053, 1229, 4055, 904, 288,
+ 181, 75, 5654, 111, 903, 933, 903, 903, 903, 903,
+ 903, 903, 903, 903, 903, 903, 903, 292, 903, 166,
+ 903, 3766, 903, 1830, 903, 4124, 903, 4334, 927, 87,
+ 903, 903, 5657, 3625, 3626, 184, 5474, 1568, 3630, 123,
+ 3364, 3307, 3363, 5637, 5958, 4982, 419, 5860, 421, 5566,
+ 10, 4333, 425, 13, 5571, 5572, 288, 267, 817, 5653,
+ 847, 326, 821, 174, 491, 492, 493, 494, 495, 496,
+ 167, 118, 130, 488, 489, 490, 491, 492, 493, 494,
+ 495, 496, 172, 6, 44, 113, 6, 638, 1496, 272,
+ 358, 51, 488, 489, 490, 491, 492, 493, 494, 495,
+ 496, 62, 123, 172, 307, 51, 1012, 1013, 1014, 3,
+ 67, 5227, 90, 118, 1020, 6039, 287, 77, 267, 1025,
+ 307, 120, 490, 183, 1030, 1031, 210, 196, 123, 1035,
+ 498, 1037, 500, 501, 502, 1041, 504, 112, 5790, 200,
+ 118, 1997, 174, 4240, 491, 492, 493, 494, 495, 496,
+ 416, 1057, 123, 286, 118, 493, 494, 495, 496, 267,
+ 188, 5091, 3335, 3709, 6, 3338, 243, 314, 173, 3395,
+ 28, 3763, 353, 362, 5799, 22, 22, 288, 4460, 5532,
+ 731, 732, 5131, 123, 10, 2041, 146, 13, 24, 210,
+ 5987, 17, 18, 19, 1100, 89, 1102, 1103, 22, 488,
+ 489, 490, 491, 492, 493, 494, 495, 496, 34, 2067,
+ 284, 3384, 4396, 243, 281, 210, 22, 6028, 22, 3392,
+ 989, 990, 345, 251, 271, 200, 254, 275, 249, 504,
+ 6, 191, 500, 1859, 444, 500, 196, 1143, 504, 210,
+ 307, 408, 22, 410, 177, 191, 343, 305, 459, 143,
+ 196, 169, 375, 6050, 444, 438, 488, 489, 490, 491,
+ 492, 493, 494, 495, 496, 1171, 6077, 272, 328, 5894,
+ 210, 482, 5412, 233, 5414, 133, 5220, 276, 5418, 5419,
+ 318, 3731, 148, 394, 368, 362, 1177, 233, 459, 344,
+ 5442, 323, 1776, 271, 87, 444, 375, 500, 1204, 359,
+ 1965, 1966, 138, 358, 237, 360, 267, 1213, 202, 1215,
+ 267, 500, 276, 500, 247, 362, 4918, 5468, 5488, 4136,
+ 5472, 5795, 5796, 1229, 4911, 5441, 416, 1233, 288, 4905,
+ 407, 4942, 5957, 10, 382, 28, 13, 130, 366, 1245,
+ 17, 18, 19, 404, 5969, 118, 2638, 34, 214, 22,
+ 901, 409, 903, 276, 438, 5471, 276, 34, 26, 436,
+ 1996, 1108, 1998, 22, 4671, 498, 421, 2738, 2004, 502,
+ 1276, 3821, 1308, 368, 2010, 2011, 2012, 407, 6003, 2707,
+ 418, 49, 636, 22, 461, 2021, 347, 362, 112, 101,
+ 459, 2027, 218, 292, 2038, 302, 243, 243, 1304, 1305,
+ 1306, 1180, 1308, 1182, 24, 1184, 436, 1186, 6033, 1188,
+ 1189, 1190, 1886, 2572, 375, 309, 1195, 438, 1926, 243,
+ 380, 197, 1328, 500, 462, 504, 292, 1890, 403, 404,
+ 206, 461, 6057, 500, 380, 440, 173, 243, 214, 243,
+ 148, 217, 1905, 438, 1918, 1908, 1352, 1955, 24, 477,
+ 1373, 1959, 2727, 2920, 1360, 1361, 1964, 2785, 123, 1967,
+ 5351, 1933, 288, 243, 5831, 152, 302, 438, 375, 181,
+ 500, 1568, 500, 138, 728, 408, 200, 410, 1384, 1428,
+ 1429, 71, 1431, 5809, 424, 3, 5960, 2018, 1428, 1429,
+ 71, 1431, 3299, 184, 4654, 1958, 196, 120, 438, 1962,
+ 1963, 4613, 5809, 436, 375, 341, 4617, 1413, 24, 90,
+ 353, 4622, 305, 5457, 4625, 362, 362, 1445, 138, 1447,
+ 480, 133, 5466, 135, 1430, 500, 234, 300, 1434, 1435,
+ 28, 491, 492, 493, 494, 495, 496, 431, 362, 375,
+ 5680, 218, 120, 211, 1450, 439, 3190, 3191, 442, 4869,
+ 1456, 3195, 360, 3010, 808, 267, 362, 24, 362, 149,
+ 407, 407, 138, 4488, 0, 13, 432, 281, 149, 306,
+ 243, 89, 5516, 4498, 358, 5901, 267, 461, 63, 169,
+ 4397, 404, 362, 407, 243, 341, 71, 1995, 169, 436,
+ 436, 3235, 3236, 307, 5901, 368, 439, 220, 482, 290,
+ 4441, 407, 501, 407, 243, 504, 42, 443, 362, 113,
+ 2497, 288, 436, 421, 461, 461, 409, 1523, 311, 375,
+ 404, 281, 138, 167, 142, 5555, 1177, 407, 5131, 77,
+ 436, 404, 436, 504, 178, 133, 5238, 461, 362, 5226,
+ 24, 341, 220, 2499, 381, 345, 30, 307, 271, 301,
+ 188, 316, 196, 500, 500, 461, 436, 461, 1564, 271,
+ 1893, 97, 488, 489, 490, 491, 492, 493, 494, 495,
+ 496, 138, 3029, 446, 1907, 375, 500, 370, 28, 403,
+ 404, 461, 302, 1582, 188, 6011, 459, 1920, 1587, 362,
+ 1241, 1597, 184, 271, 500, 5639, 500, 161, 247, 3,
+ 5569, 413, 6, 362, 6011, 375, 329, 290, 1636, 482,
+ 1261, 267, 148, 251, 2572, 408, 133, 410, 134, 302,
+ 500, 341, 240, 362, 375, 161, 302, 500, 302, 319,
+ 418, 167, 82, 3025, 407, 85, 172, 3029, 319, 223,
+ 375, 91, 178, 4404, 375, 181, 500, 251, 407, 185,
+ 254, 329, 237, 444, 138, 375, 1662, 1308, 341, 459,
+ 121, 384, 1661, 436, 4214, 341, 1665, 341, 407, 119,
+ 234, 1677, 1678, 1679, 290, 267, 4322, 436, 214, 500,
+ 216, 4327, 482, 174, 302, 341, 500, 222, 461, 71,
+ 4240, 301, 2662, 4610, 210, 77, 57, 436, 234, 375,
+ 732, 375, 461, 1891, 1901, 1902, 4398, 351, 90, 113,
+ 302, 488, 489, 490, 491, 492, 493, 494, 495, 496,
+ 0, 416, 461, 1902, 71, 318, 176, 500, 366, 345,
+ 346, 192, 267, 302, 504, 2662, 118, 118, 120, 189,
+ 500, 500, 5786, 433, 4360, 121, 1880, 283, 164, 341,
+ 286, 201, 433, 504, 271, 459, 292, 222, 790, 375,
+ 5729, 500, 366, 5892, 5893, 375, 127, 110, 451, 504,
+ 1776, 118, 341, 504, 155, 5477, 345, 1428, 1429, 24,
+ 1431, 24, 1788, 5459, 188, 30, 341, 30, 302, 407,
+ 360, 409, 4065, 1799, 176, 490, 4069, 288, 450, 5486,
+ 504, 418, 267, 302, 301, 1811, 375, 502, 189, 1815,
+ 226, 2769, 844, 349, 690, 2551, 192, 2634, 302, 343,
+ 375, 2018, 204, 699, 503, 418, 500, 341, 1834, 176,
+ 706, 302, 10, 709, 292, 13, 1842, 2795, 5882, 17,
+ 18, 19, 341, 378, 1850, 462, 5057, 251, 500, 2614,
+ 254, 421, 444, 748, 749, 750, 34, 341, 753, 754,
+ 755, 375, 1868, 4136, 329, 401, 301, 5897, 763, 462,
+ 341, 1877, 904, 477, 1880, 6004, 375, 1883, 375, 4429,
+ 1886, 1887, 2831, 5265, 1890, 1891, 34, 1893, 1894, 271,
+ 271, 375, 362, 138, 276, 138, 432, 173, 152, 1905,
+ 440, 1907, 1908, 438, 375, 248, 175, 365, 2835, 252,
+ 5954, 1917, 1918, 378, 1920, 1921, 2843, 168, 4974, 2846,
+ 456, 391, 458, 459, 271, 10, 459, 504, 13, 276,
+ 206, 440, 17, 18, 19, 459, 2894, 319, 5128, 498,
+ 375, 391, 1933, 502, 394, 221, 302, 1975, 456, 34,
+ 5652, 202, 1958, 335, 3054, 231, 1962, 1963, 482, 5670,
+ 500, 302, 366, 358, 5651, 501, 120, 503, 504, 321,
+ 271, 504, 319, 438, 2881, 276, 2737, 6007, 4895, 421,
+ 504, 120, 5172, 1980, 1980, 341, 4871, 1989, 335, 1980,
+ 1996, 500, 1998, 161, 368, 390, 504, 2003, 2004, 167,
+ 341, 1980, 2960, 1980, 2010, 2011, 2012, 1980, 358, 2015,
+ 360, 2017, 3404, 2019, 2020, 2021, 2022, 2023, 2024, 375,
+ 5440, 2027, 3414, 2029, 2030, 4910, 327, 2033, 167, 5085,
+ 404, 5087, 97, 37, 2914, 2915, 2916, 459, 3495, 5259,
+ 218, 2047, 2048, 2049, 2050, 4890, 3921, 174, 2884, 280,
+ 204, 433, 117, 3610, 3223, 59, 1935, 302, 1937, 2065,
+ 1939, 2067, 1941, 452, 1943, 204, 234, 2811, 1947, 24,
+ 2831, 421, 446, 477, 1988, 161, 352, 150, 2662, 167,
+ 207, 167, 504, 2809, 5491, 2811, 433, 152, 357, 5791,
+ 2997, 2998, 2999, 3000, 363, 3002, 341, 3862, 92, 1832,
+ 302, 370, 190, 3495, 333, 177, 110, 3046, 2869, 365,
+ 288, 333, 246, 267, 368, 283, 346, 271, 224, 1852,
+ 3027, 3688, 3583, 4396, 4397, 198, 500, 3694, 267, 172,
+ 375, 5513, 271, 218, 89, 337, 405, 271, 329, 341,
+ 369, 135, 2903, 459, 133, 375, 135, 369, 234, 1025,
+ 404, 342, 500, 196, 247, 1031, 167, 1582, 427, 1035,
+ 5077, 1037, 1587, 300, 4045, 237, 482, 4859, 501, 4861,
+ 159, 504, 250, 375, 5091, 404, 131, 3104, 271, 190,
+ 371, 5465, 404, 138, 421, 5887, 141, 4833, 504, 4835,
+ 4836, 4837, 446, 499, 13, 199, 39, 283, 504, 32,
+ 33, 5421, 2208, 288, 3632, 459, 3950, 3951, 3952, 3953,
+ 53, 459, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963,
+ 3964, 3965, 5898, 452, 1100, 44, 1102, 1103, 482, 3398,
+ 452, 368, 47, 499, 482, 500, 1661, 3, 504, 5727,
+ 1665, 110, 2248, 1574, 248, 261, 500, 343, 252, 3677,
+ 5275, 2859, 500, 2861, 416, 70, 3214, 2865, 77, 25,
+ 1591, 333, 3220, 267, 97, 365, 109, 404, 461, 285,
+ 4014, 4015, 337, 247, 263, 264, 265, 266, 440, 167,
+ 79, 270, 1933, 1178, 117, 461, 1181, 276, 1183, 482,
+ 1185, 90, 1187, 4712, 3020, 2301, 1191, 301, 26, 168,
+ 4719, 247, 190, 368, 459, 3802, 482, 500, 200, 446,
+ 488, 489, 490, 491, 492, 493, 494, 495, 496, 152,
+ 94, 49, 459, 89, 500, 5732, 5733, 482, 6065, 1980,
+ 6067, 5248, 79, 202, 5554, 2979, 408, 4610, 410, 404,
+ 5, 250, 346, 90, 4617, 482, 11, 302, 979, 4622,
+ 6087, 22, 4625, 286, 19, 5, 10, 28, 291, 13,
+ 6036, 11, 5, 500, 436, 369, 209, 998, 11, 286,
+ 1001, 421, 37, 3300, 291, 2026, 368, 143, 5, 248,
+ 452, 446, 337, 252, 11, 389, 341, 190, 495, 5306,
+ 44, 493, 53, 500, 459, 502, 498, 51, 500, 408,
+ 502, 410, 2735, 488, 489, 490, 491, 492, 493, 494,
+ 495, 496, 404, 452, 3294, 3135, 3136, 482, 90, 501,
+ 375, 495, 504, 77, 267, 58, 500, 382, 502, 148,
+ 196, 500, 493, 502, 423, 500, 202, 498, 99, 500,
+ 2031, 502, 161, 2034, 975, 434, 5853, 501, 167, 980,
+ 504, 498, 10, 500, 446, 13, 3192, 32, 33, 17,
+ 18, 19, 498, 124, 500, 86, 502, 459, 3204, 365,
+ 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 37,
+ 2486, 142, 68, 69, 3203, 146, 3205, 3206, 224, 2495,
+ 482, 2497, 146, 3101, 500, 214, 501, 501, 500, 504,
+ 502, 2698, 450, 3239, 337, 177, 11, 168, 500, 2697,
+ 171, 2699, 2700, 501, 501, 234, 504, 504, 403, 2698,
+ 501, 364, 500, 504, 501, 186, 362, 504, 200, 2535,
+ 459, 5177, 461, 2539, 286, 368, 2542, 191, 2544, 5946,
+ 504, 2547, 196, 309, 2534, 2551, 3282, 500, 3297, 3319,
+ 3320, 58, 5493, 263, 264, 265, 266, 3405, 501, 452,
+ 2694, 504, 2213, 3481, 283, 237, 2572, 86, 2574, 501,
+ 2574, 404, 504, 292, 501, 501, 47, 504, 504, 233,
+ 501, 5131, 408, 504, 410, 2591, 220, 353, 501, 3507,
+ 10, 504, 479, 13, 2600, 2601, 502, 17, 18, 19,
+ 501, 501, 289, 504, 504, 3349, 289, 501, 4352, 2734,
+ 504, 15, 16, 446, 34, 276, 286, 450, 408, 291,
+ 410, 2627, 4895, 2619, 44, 3256, 459, 5847, 2634, 4186,
+ 3586, 51, 2638, 2639, 288, 3415, 402, 10, 5555, 2645,
+ 13, 4406, 167, 2649, 17, 18, 19, 2653, 501, 482,
+ 501, 504, 501, 504, 286, 504, 2662, 77, 289, 3791,
+ 218, 479, 2664, 5355, 2666, 431, 327, 500, 459, 5725,
+ 461, 5363, 5364, 439, 2680, 220, 442, 2683, 2706, 501,
+ 501, 501, 504, 504, 504, 358, 359, 4184, 2694, 4186,
+ 2696, 2697, 152, 2699, 2700, 2820, 2702, 501, 47, 501,
+ 504, 5251, 504, 501, 501, 4176, 504, 504, 2714, 501,
+ 479, 98, 504, 432, 501, 501, 3300, 504, 504, 198,
+ 199, 3482, 501, 202, 501, 504, 380, 504, 2734, 2735,
+ 288, 493, 4124, 459, 4162, 461, 408, 2743, 410, 5656,
+ 171, 501, 501, 222, 504, 504, 358, 359, 501, 421,
+ 229, 504, 501, 501, 504, 504, 504, 500, 3904, 2765,
+ 2766, 433, 501, 2769, 436, 504, 3772, 501, 358, 359,
+ 504, 191, 3730, 358, 359, 2900, 196, 2805, 501, 498,
+ 503, 148, 501, 502, 5057, 449, 173, 2793, 6008, 2795,
+ 36, 5338, 4220, 2799, 161, 3734, 500, 3558, 218, 219,
+ 167, 315, 501, 501, 5077, 504, 504, 2813, 501, 501,
+ 500, 504, 504, 233, 2820, 5098, 5099, 2823, 5091, 206,
+ 500, 3728, 501, 2829, 3432, 504, 480, 501, 37, 133,
+ 504, 135, 501, 501, 221, 3459, 504, 491, 492, 493,
+ 494, 495, 496, 2849, 231, 218, 501, 214, 6068, 2855,
+ 59, 4036, 58, 4038, 274, 3581, 2862, 5695, 5696, 501,
+ 3586, 501, 504, 148, 504, 172, 501, 234, 288, 504,
+ 2876, 291, 259, 216, 2858, 3459, 161, 501, 501, 216,
+ 504, 504, 167, 2889, 501, 5802, 500, 504, 2894, 2540,
+ 501, 463, 501, 504, 2900, 504, 501, 500, 503, 286,
+ 5785, 110, 501, 98, 501, 504, 501, 504, 368, 504,
+ 502, 3, 2918, 2919, 2920, 288, 283, 3637, 2924, 501,
+ 500, 4418, 504, 2574, 501, 292, 4601, 504, 4603, 214,
+ 488, 489, 490, 491, 492, 493, 494, 495, 496, 501,
+ 4109, 4070, 504, 4072, 404, 2951, 2952, 501, 501, 234,
+ 504, 504, 501, 501, 2960, 504, 504, 5824, 5825, 3147,
+ 380, 3149, 3150, 54, 55, 352, 4413, 176, 2619, 1445,
+ 133, 1447, 135, 501, 5891, 5248, 504, 4434, 173, 501,
+ 5897, 501, 504, 500, 504, 3912, 446, 2993, 501, 2993,
+ 199, 504, 501, 341, 196, 504, 159, 89, 283, 459,
+ 5039, 1877, 5041, 5551, 1880, 4137, 4138, 292, 153, 4141,
+ 3144, 206, 500, 502, 1890, 1891, 3012, 501, 501, 3025,
+ 504, 504, 482, 3029, 501, 153, 221, 504, 3986, 1905,
+ 286, 196, 1908, 5306, 3760, 341, 231, 3993, 148, 248,
+ 500, 286, 4434, 252, 501, 501, 501, 504, 504, 504,
+ 142, 161, 501, 440, 153, 504, 153, 167, 267, 3256,
+ 480, 196, 286, 37, 259, 432, 153, 167, 488, 489,
+ 490, 491, 492, 493, 494, 495, 496, 501, 341, 153,
+ 504, 501, 1958, 232, 504, 59, 1962, 1963, 120, 440,
+ 6007, 286, 301, 2565, 2566, 2567, 3429, 3430, 4039, 286,
+ 263, 264, 265, 266, 214, 3888, 500, 270, 271, 3115,
+ 280, 167, 3736, 276, 3738, 488, 489, 490, 491, 492,
+ 493, 494, 495, 496, 234, 3131, 4082, 3133, 71, 501,
+ 501, 501, 504, 504, 3140, 271, 110, 346, 3144, 37,
+ 3146, 3147, 98, 3149, 3150, 3151, 501, 432, 240, 504,
+ 271, 463, 3736, 3159, 3738, 500, 3192, 352, 3164, 286,
+ 369, 3358, 641, 4119, 643, 501, 271, 646, 504, 4726,
+ 3778, 501, 501, 283, 504, 504, 501, 47, 47, 504,
+ 389, 660, 292, 271, 3190, 3191, 3192, 666, 5804, 3195,
+ 501, 501, 5465, 504, 504, 426, 3820, 3203, 3204, 3205,
+ 3206, 501, 501, 3239, 504, 504, 271, 89, 3214, 3945,
+ 302, 452, 501, 3219, 3220, 504, 3222, 173, 3224, 501,
+ 501, 501, 504, 504, 504, 199, 302, 452, 421, 3235,
+ 3236, 167, 322, 3239, 153, 4706, 3820, 153, 500, 153,
+ 153, 463, 3575, 3979, 153, 337, 4185, 153, 153, 341,
+ 206, 4995, 3258, 345, 3260, 4213, 3262, 4215, 153, 153,
+ 423, 504, 153, 153, 3597, 221, 153, 3875, 273, 153,
+ 167, 434, 153, 37, 248, 231, 3282, 153, 252, 153,
+ 153, 4239, 5555, 375, 286, 404, 500, 37, 232, 167,
+ 4026, 286, 167, 267, 3300, 59, 500, 6, 22, 6,
+ 500, 500, 3338, 259, 28, 167, 4154, 6, 500, 500,
+ 500, 500, 500, 4240, 500, 407, 6, 409, 500, 500,
+ 500, 85, 432, 500, 500, 4457, 500, 301, 500, 3335,
+ 6, 3335, 3338, 500, 3338, 6, 3287, 3288, 3289, 500,
+ 500, 4121, 500, 500, 3350, 278, 110, 111, 500, 3355,
+ 500, 460, 3388, 500, 118, 216, 500, 500, 500, 500,
+ 500, 3012, 37, 368, 3370, 272, 273, 459, 298, 101,
+ 504, 504, 346, 232, 37, 500, 36, 414, 3384, 414,
+ 3384, 498, 498, 5656, 172, 416, 3392, 416, 3392, 6005,
+ 4308, 4330, 416, 500, 416, 369, 352, 167, 3404, 404,
+ 504, 3407, 167, 3409, 283, 375, 67, 24, 3414, 281,
+ 416, 362, 176, 30, 362, 389, 416, 416, 3751, 416,
+ 3753, 451, 502, 3429, 3430, 10, 416, 416, 13, 3435,
+ 362, 234, 17, 18, 19, 199, 416, 78, 4318, 416,
+ 490, 446, 90, 416, 362, 153, 286, 367, 229, 34,
+ 3456, 416, 416, 3459, 459, 276, 3462, 126, 75, 44,
+ 439, 368, 416, 307, 3470, 407, 51, 286, 281, 358,
+ 416, 416, 500, 189, 500, 90, 126, 482, 957, 958,
+ 302, 504, 196, 153, 248, 440, 126, 440, 252, 3495,
+ 416, 416, 77, 416, 416, 500, 501, 404, 503, 416,
+ 112, 416, 126, 267, 416, 416, 416, 271, 416, 58,
+ 58, 256, 416, 416, 131, 416, 290, 416, 326, 326,
+ 416, 138, 24, 416, 141, 3531, 3532, 3533, 30, 5802,
+ 326, 416, 307, 416, 3731, 307, 5280, 301, 46, 446,
+ 407, 3192, 46, 45, 504, 416, 505, 286, 1027, 4941,
+ 3556, 168, 459, 416, 501, 4482, 416, 286, 416, 3565,
+ 218, 3567, 218, 1042, 218, 5309, 218, 218, 37, 3575,
+ 3903, 218, 218, 75, 218, 482, 218, 426, 153, 218,
+ 286, 153, 346, 271, 118, 202, 440, 153, 3239, 153,
+ 153, 3597, 286, 500, 1073, 1074, 451, 240, 500, 271,
+ 37, 37, 167, 271, 271, 369, 191, 364, 500, 153,
+ 3261, 196, 500, 224, 500, 153, 440, 153, 5891, 1098,
+ 440, 153, 416, 280, 5897, 389, 3277, 391, 455, 131,
+ 394, 172, 500, 218, 219, 256, 138, 275, 256, 141,
+ 13, 414, 181, 162, 500, 416, 189, 504, 233, 500,
+ 267, 418, 504, 501, 271, 3661, 189, 498, 501, 1138,
+ 1139, 479, 479, 501, 281, 501, 168, 501, 366, 501,
+ 254, 456, 214, 290, 504, 378, 222, 3683, 287, 504,
+ 440, 1435, 3688, 37, 3335, 302, 440, 3338, 3694, 274,
+ 295, 58, 501, 4649, 500, 451, 362, 3703, 2574, 440,
+ 202, 222, 222, 288, 416, 276, 291, 276, 500, 167,
+ 286, 416, 416, 47, 276, 271, 286, 232, 232, 384,
+ 232, 358, 250, 416, 3730, 3731, 286, 344, 345, 407,
+ 3736, 126, 3738, 3384, 6007, 504, 500, 3388, 504, 286,
+ 196, 3392, 341, 375, 459, 3751, 286, 3753, 4880, 4566,
+ 190, 286, 372, 501, 416, 329, 37, 416, 375, 218,
+ 440, 292, 224, 440, 325, 267, 153, 3773, 490, 271,
+ 281, 167, 37, 452, 405, 169, 326, 500, 4632, 281,
+ 372, 3809, 153, 500, 153, 5232, 281, 153, 290, 271,
+ 4717, 440, 37, 3799, 271, 380, 286, 207, 26, 286,
+ 302, 224, 281, 187, 459, 187, 216, 167, 37, 3805,
+ 168, 224, 167, 372, 3820, 3821, 4552, 271, 2694, 286,
+ 230, 2697, 196, 2699, 2700, 25, 443, 463, 196, 502,
+ 504, 196, 196, 196, 179, 416, 172, 3843, 253, 341,
+ 504, 286, 344, 345, 58, 3841, 459, 280, 172, 298,
+ 133, 504, 172, 308, 479, 297, 3862, 247, 10, 504,
+ 3888, 13, 270, 5360, 416, 17, 18, 19, 4476, 4477,
+ 4478, 4479, 4480, 375, 500, 3881, 4022, 504, 4644, 501,
+ 172, 504, 501, 181, 482, 501, 481, 501, 446, 242,
+ 58, 501, 44, 501, 501, 480, 500, 3903, 501, 51,
+ 3906, 501, 4841, 488, 489, 490, 491, 492, 493, 494,
+ 495, 496, 501, 501, 504, 501, 438, 3923, 501, 504,
+ 3926, 500, 500, 500, 504, 77, 3932, 500, 289, 456,
+ 286, 200, 500, 500, 3940, 490, 3942, 286, 286, 3945,
+ 153, 443, 499, 3949, 3950, 3951, 3952, 3953, 499, 208,
+ 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965,
+ 276, 156, 271, 3969, 3970, 3971, 416, 153, 3974, 416,
+ 416, 501, 416, 3979, 500, 500, 500, 85, 3984, 367,
+ 3986, 153, 3988, 375, 4020, 232, 153, 367, 367, 200,
+ 3996, 156, 286, 3999, 490, 4001, 416, 440, 156, 456,
+ 362, 234, 309, 309, 4635, 4011, 437, 156, 4014, 4015,
+ 416, 416, 416, 4019, 4020, 391, 416, 4214, 244, 244,
+ 4026, 244, 746, 416, 748, 416, 750, 362, 126, 362,
+ 416, 416, 756, 757, 758, 416, 362, 1516, 416, 191,
+ 362, 416, 153, 4240, 196, 4378, 4379, 271, 4045, 4045,
+ 375, 4057, 46, 501, 4045, 218, 218, 416, 184, 4065,
+ 501, 4065, 1541, 4069, 416, 4069, 4045, 501, 4045, 416,
+ 499, 501, 4045, 290, 501, 426, 504, 4028, 4029, 4030,
+ 4031, 233, 3, 167, 47, 111, 504, 501, 167, 500,
+ 5834, 5835, 501, 37, 153, 4101, 153, 416, 167, 281,
+ 440, 490, 5494, 184, 153, 362, 362, 362, 440, 362,
+ 362, 289, 4118, 151, 372, 151, 218, 2993, 4124, 218,
+ 144, 504, 218, 500, 218, 218, 218, 218, 218, 218,
+ 4136, 13, 4136, 451, 4860, 172, 288, 298, 270, 1618,
+ 296, 498, 456, 221, 221, 406, 293, 58, 349, 499,
+ 185, 4157, 445, 413, 3805, 88, 426, 501, 504, 501,
+ 501, 504, 501, 501, 501, 167, 37, 440, 440, 1648,
+ 1649, 1650, 1651, 501, 501, 416, 224, 500, 208, 500,
+ 58, 153, 391, 500, 176, 500, 407, 5067, 426, 416,
+ 3841, 367, 4800, 4801, 156, 4803, 416, 416, 362, 501,
+ 416, 416, 4208, 362, 501, 501, 341, 4213, 4214, 4215,
+ 5767, 500, 500, 459, 58, 407, 446, 167, 286, 77,
+ 10, 153, 111, 13, 5182, 501, 500, 951, 380, 426,
+ 218, 218, 4429, 4239, 4240, 218, 218, 222, 500, 203,
+ 286, 651, 416, 37, 307, 463, 500, 657, 3, 426,
+ 501, 284, 286, 372, 44, 504, 504, 500, 43, 669,
+ 504, 51, 416, 500, 178, 501, 2020, 172, 3144, 111,
+ 4254, 3147, 218, 3149, 3150, 2029, 172, 58, 457, 4285,
+ 298, 4265, 4288, 221, 457, 413, 281, 77, 458, 501,
+ 426, 501, 416, 501, 501, 501, 1020, 501, 5398, 504,
+ 5400, 500, 500, 490, 500, 172, 459, 77, 202, 190,
+ 190, 276, 58, 504, 504, 1794, 1795, 276, 71, 490,
+ 407, 416, 153, 156, 125, 218, 501, 174, 480, 118,
+ 416, 1810, 37, 416, 416, 196, 488, 489, 490, 491,
+ 492, 493, 494, 495, 496, 500, 4352, 281, 37, 500,
+ 372, 271, 440, 169, 281, 372, 146, 58, 459, 83,
+ 407, 37, 459, 172, 286, 1844, 1845, 1846, 1847, 4020,
+ 4703, 500, 4378, 4379, 167, 336, 4382, 504, 205, 289,
+ 216, 172, 500, 4389, 445, 388, 501, 501, 307, 365,
+ 4396, 4397, 4396, 4397, 4045, 37, 5528, 80, 501, 90,
+ 4406, 191, 134, 286, 335, 197, 196, 416, 37, 153,
+ 153, 416, 37, 167, 4065, 500, 276, 440, 4069, 5299,
+ 500, 245, 10, 4429, 500, 13, 4422, 501, 4434, 4435,
+ 4436, 501, 372, 5565, 500, 500, 500, 153, 4635, 5409,
+ 4446, 111, 5050, 233, 5209, 1924, 500, 500, 500, 500,
+ 37, 1930, 290, 5061, 172, 426, 44, 501, 4791, 3335,
+ 386, 5092, 3338, 51, 167, 58, 110, 37, 386, 501,
+ 445, 500, 500, 500, 455, 500, 189, 407, 407, 5611,
+ 5612, 4487, 5409, 504, 504, 500, 440, 167, 267, 77,
+ 500, 200, 6, 501, 160, 463, 500, 359, 288, 286,
+ 359, 289, 71, 71, 503, 139, 134, 4513, 3384, 444,
+ 459, 459, 5143, 455, 164, 164, 3392, 445, 4524, 375,
+ 504, 500, 500, 34, 246, 172, 332, 10, 407, 276,
+ 13, 202, 407, 500, 17, 18, 19, 286, 286, 37,
+ 372, 37, 500, 197, 289, 10, 4552, 289, 13, 4555,
+ 5286, 34, 17, 18, 19, 4888, 174, 4563, 4564, 174,
+ 4566, 44, 152, 500, 4570, 4571, 58, 58, 51, 4575,
+ 293, 37, 412, 4579, 342, 416, 4582, 4583, 5536, 44,
+ 58, 4587, 395, 123, 5320, 501, 51, 4593, 501, 438,
+ 380, 5327, 501, 6, 77, 372, 500, 139, 358, 149,
+ 500, 276, 412, 191, 4610, 500, 4610, 23, 196, 34,
+ 80, 4617, 77, 4617, 504, 272, 4622, 358, 4622, 4625,
+ 4626, 4625, 358, 375, 172, 294, 2105, 4633, 5760, 272,
+ 504, 1355, 416, 5603, 500, 152, 1360, 1361, 4644, 118,
+ 504, 446, 459, 5601, 459, 233, 4652, 386, 386, 500,
+ 4646, 4647, 174, 174, 500, 5258, 501, 5393, 5394, 445,
+ 440, 903, 2977, 446, 1388, 943, 4672, 4669, 1664, 445,
+ 1361, 3300, 5621, 1397, 2869, 1399, 3507, 990, 989, 1403,
+ 2778, 4213, 4188, 5751, 4690, 2895, 1410, 2949, 3722, 5185,
+ 480, 5601, 5868, 4376, 5232, 5827, 5828, 4703, 4186, 4850,
+ 288, 491, 492, 493, 494, 495, 496, 5208, 191, 5317,
+ 3436, 3091, 5731, 196, 5091, 5856, 5631, 5630, 5771, 5891,
+ 4895, 3440, 4728, 4397, 4408, 4423, 191, 4711, 5575, 4366,
+ 2963, 196, 4208, 3532, 3770, 218, 219, 4721, 2963, 4745,
+ 4392, 4889, 5215, 5506, 4750, 4396, 985, 3814, 5970, 6080,
+ 233, 4757, 6062, 218, 219, 5199, 4459, 3730, 5783, 4431,
+ 5145, 1823, 5380, 5584, 5148, 18, 634, 4773, 233, 28,
+ 1205, 4422, 3879, 5350, 4780, 4487, 2979, 1501, 5966, 2639,
+ 1866, 4434, 3414, 1877, 1863, 4791, 3825, 1511, 5524, 5258,
+ 5494, 274, 380, 1901, 5402, 686, 719, 3664, 1983, 5132,
+ 1983, 3583, 2894, 4239, 5809, 288, 6011, 4465, 5544, 274,
+ 5546, 5395, 2925, 4463, 1776, 834, 4822, 2581, 6030, 4116,
+ 5347, 5724, 4648, 288, 1377, 5409, 40, 40, 1338, 3355,
+ 2591, 1555, 1556, 3370, 5712, 5548, 1438, 2591, 3338, 1440,
+ 1437, 4054, 4848, 4071, 5570, 1480, 5058, 3335, 5306, 5305,
+ 3335, 4117, 5989, 5706, 5838, 5535, 5284, 1394, 4864, 3988,
+ 5549, 3261, 5550, 4869, 2492, 3160, 2022, 2924, 3259, 2495,
+ 2579, -1, -1, -1, 1598, 891, -1, 1601, 1602, -1,
+ -1, -1, 4888, -1, -1, -1, -1, -1, -1, 4895,
+ -1, 4895, 480, -1, -1, 5092, -1, 380, 5868, -1,
+ -1, -1, -1, 491, 492, 493, 494, 495, 496, -1,
+ -1, 4907, -1, -1, -1, 380, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 5131, 4941, 5567, 4943, -1, -1,
+ -1, 1125, -1, -1, -1, -1, 5143, 1131, -1, -1,
+ -1, -1, -1, -1, 5142, -1, -1, 1141, -1, -1,
+ -1, 1145, -1, -1, 5143, 1149, 4617, 1151, 4974, -1,
+ -1, 4622, -1, 1157, 4625, -1, -1, -1, -1, 1163,
+ -1, -1, 1166, -1, -1, -1, 4992, -1, -1, 4995,
+ -1, -1, 4998, 4999, 5000, 4646, 4647, 480, -1, 5187,
+ -1, -1, -1, -1, -1, 488, 489, 490, 491, 492,
+ 493, 494, 495, 496, -1, 480, -1, 5023, 5024, 5603,
+ -1, 5027, -1, 488, 489, 490, 491, 492, 493, 494,
+ 495, 496, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 5047, -1, -1, -1, -1, -1, 5053, -1, -1,
+ -1, 5057, -1, 5057, -1, -1, 6014, 5063, 5064, 2538,
+ -1, -1, 6049, -1, -1, -1, -1, -1, -1, 1793,
+ -1, 5077, -1, 5077, 5080, -1, -1, -1, -1, 5085,
+ -1, 5087, -1, -1, -1, 5091, -1, 5091, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 6062, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 37, -1, 6080, -1, 6, 5131, 5132, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 5142, -1, -1, -1,
+ -1, 23, -1, 25, 61, -1, -1, 29, -1, -1,
+ -1, -1, 34, 35, 36, -1, 38, -1, -1, 41,
+ 42, -1, 44, -1, 46, -1, -1, 5751, -1, -1,
+ -1, 53, 54, 55, -1, -1, 5182, -1, -1, 96,
+ -1, 5187, -1, 6063, -1, -1, -1, -1, -1, 4065,
+ -1, 5070, -1, 4069, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 0, 5949, -1, -1, -1, 5213, -1, 5247,
+ -1, -1, -1, -1, 2703, -1, 5952, 5953, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 157, -1, 5248, -1, 5248, 5251, -1, -1, 5244, -1,
+ -1, -1, 1662, -1, -1, -1, 4907, -1, -1, 5258,
+ 4136, 5258, 5258, 5258, 5258, 5258, 5258, 5258, 5258, 5258,
+ 5258, 5258, -1, 5258, 5280, 5258, 193, 5258, 5284, 5258,
+ 5286, 5258, 2006, 2007, 5868, 5258, 5258, -1, -1, 2013,
+ 2014, 5327, -1, -1, -1, -1, -1, -1, -1, -1,
+ 5306, -1, 5306, 5309, -1, -1, -1, 224, -1, 97,
+ -1, -1, 229, -1, 5320, 197, 198, 199, 6054, 2043,
+ 202, 5327, -1, -1, 206, -1, 208, -1, -1, 211,
+ -1, -1, 214, -1, -1, 217, -1, -1, 220, -1,
+ 222, -1, -1, 225, -1, -1, -1, 229, -1, 231,
+ -1, -1, -1, -1, 271, -1, -1, -1, -1, -1,
+ 148, -1, 2841, -1, -1, 2844, -1, -1, -1, -1,
+ 5567, 5377, -1, 161, -1, -1, 5382, 5383, -1, 167,
+ -1, 5387, -1, -1, 172, -1, 303, 5393, 5394, 5395,
+ 178, -1, -1, 181, -1, -1, -1, 185, -1, -1,
+ -1, -1, -1, 5409, -1, -1, 5057, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 5429, 1834, -1, 214, -1, 345, -1,
+ -1, 5437, 1842, 350, 5440, -1, 3190, 3191, -1, -1,
+ 1850, 3195, 359, -1, -1, -1, 234, -1, -1, -1,
+ 367, -1, -1, 2932, -1, -1, -1, -1, 375, 5465,
+ -1, 5465, -1, -1, -1, -1, 2945, -1, -1, -1,
+ 387, 5467, -1, -1, 2953, -1, -1, -1, -1, 396,
+ -1, 3235, 3236, 400, 1894, -1, -1, -1, 5494, 5495,
+ -1, -1, -1, -1, -1, 283, -1, -1, 286, -1,
+ -1, -1, 419, -1, 292, -1, -1, -1, -1, -1,
+ -1, 1921, 5518, 2992, -1, -1, -1, -1, 5524, -1,
+ 4396, 4397, -1, -1, -1, -1, -1, -1, -1, 5535,
+ 5536, -1, -1, 5539, 3013, -1, -1, 454, 5544, -1,
+ 5546, 458, 5548, -1, 10, -1, -1, 13, -1, 5555,
+ 5738, 5555, -1, -1, -1, -1, 5552, -1, -1, -1,
+ -1, 349, 5213, -1, -1, -1, -1, -1, -1, -1,
+ 5576, -1, -1, -1, -1, -1, -1, 3056, 44, 3058,
+ -1, -1, -1, -1, -1, 51, -1, -1, -1, -1,
+ -1, -1, -1, 5244, -1, 5601, -1, 5603, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 5258, -1, -1,
+ -1, 77, -1, -1, -1, -1, 404, -1, -1, -1,
+ -1, -1, 5810, 5811, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 432, -1, -1, -1, -1, -1,
+ 5656, -1, 5656, -1, -1, -1, -1, 61, -1, -1,
+ -1, -1, -1, -1, -1, -1, 3145, -1, 456, -1,
+ 458, 459, -1, 3152, -1, -1, 5327, -1, -1, -1,
+ 146, -1, -1, -1, -1, -1, -1, -1, 5694, 5695,
+ 5696, -1, 96, -1, -1, -1, 5702, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 5712, -1, -1, -1,
+ 498, -1, 1896, 501, 502, 503, 5722, -1, -1, 5725,
+ 1904, -1, -1, -1, -1, 191, -1, -1, -1, -1,
+ 196, -1, 5738, -1, 4610, -1, -1, -1, -1, -1,
+ -1, 4617, -1, -1, -1, 5751, 4622, -1, -1, 4625,
+ 4626, 633, -1, 157, -1, -1, -1, 639, -1, 641,
+ -1, 643, -1, -1, 646, -1, -1, 233, -1, -1,
+ -1, 653, -1, -1, 61, -1, 658, -1, 660, -1,
+ -1, -1, -1, -1, 666, -1, 5792, -1, 5784, 193,
+ -1, -1, -1, -1, -1, -1, 5802, -1, 5802, -1,
+ -1, -1, -1, -1, 5810, 5811, -1, -1, 690, 96,
+ 5816, -1, 5818, 5809, 5465, -1, 5467, 699, 5809, -1,
+ -1, 703, 288, -1, 706, 229, -1, 709, 5834, 5835,
+ 5809, -1, 5809, -1, -1, -1, 5809, -1, 2562, 2563,
+ -1, -1, -1, 725, 2568, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 5868, 267, -1, 5901, -1, 271, -1, -1,
+ 157, -1, -1, -1, -1, -1, 2600, 2601, -1, -1,
+ -1, -1, 6070, 6071, -1, 5891, -1, 5891, -1, -1,
+ -1, 5897, -1, 5897, -1, -1, 778, -1, 302, 303,
+ -1, 5552, -1, -1, -1, 5901, 193, -1, -1, 5915,
+ 5901, 793, -1, -1, 380, -1, -1, -1, -1, -1,
+ -1, -1, 5901, -1, 5901, -1, -1, -1, 5901, 5935,
+ -1, 813, 814, -1, 816, 817, -1, 341, 2662, 821,
+ -1, 345, 229, 5949, -1, -1, 350, -1, -1, -1,
+ -1, -1, -1, 835, -1, 359, -1, -1, 840, -1,
+ -1, -1, -1, 367, 846, -1, -1, -1, -1, -1,
+ -1, 375, -1, -1, 5980, -1, -1, -1, -1, -1,
+ -1, 5987, -1, 387, 271, -1, 3465, 3466, 4864, -1,
+ -1, -1, 396, -1, -1, -1, 400, -1, -1, -1,
+ -1, 6007, -1, 6007, -1, -1, -1, -1, 6014, 891,
+ -1, -1, -1, -1, 480, 6011, 303, -1, -1, 4895,
+ 6011, -1, 2746, 905, -1, 491, 492, 493, 494, 495,
+ 496, -1, 6011, -1, 6011, -1, 918, -1, 6011, -1,
+ -1, -1, -1, 6049, 6050, -1, -1, -1, 6054, -1,
+ 454, 933, 6058, -1, -1, -1, 6062, -1, 345, -1,
+ 347, -1, -1, 350, 6070, 6071, -1, -1, -1, -1,
+ 952, -1, 359, -1, 6080, 957, 958, -1, -1, -1,
+ 367, -1, -1, -1, -1, -1, -1, -1, 375, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 387, -1, -1, -1, -1, -1, -1, 989, 990, 396,
+ -1, 2835, -1, 400, -1, -1, -1, -1, -1, 2843,
+ -1, -1, 2846, -1, -1, -1, -1, -1, -1, -1,
+ 1012, 1013, -1, 5784, 2858, -1, -1, -1, 24, -1,
+ -1, -1, -1, 1025, 30, 1027, -1, -1, -1, 1031,
+ -1, -1, 1034, 1035, -1, 1037, -1, -1, 5809, -1,
+ 1042, -1, -1, 37, -1, -1, -1, 454, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 5057, -1, -1, 1066, -1, -1, 61, -1, 75,
+ -1, 1073, 1074, -1, -1, -1, 3950, 3951, 3952, 3953,
+ -1, 5077, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963,
+ 3964, 3965, 1094, 1095, 1096, 5091, 1098, 2627, 1100, -1,
+ 1102, 1103, 96, -1, -1, -1, 3705, -1, -1, -1,
+ 3984, -1, -1, -1, 10, 2645, -1, 13, -1, 2649,
+ -1, -1, -1, 2653, -1, 131, -1, -1, -1, -1,
+ 5901, -1, 138, -1, 1136, 141, 1138, 1139, -1, -1,
+ 4014, 4015, -1, -1, -1, -1, 5142, -1, 44, -1,
+ 2680, -1, -1, -1, -1, 51, -1, -1, -1, -1,
+ -1, -1, 168, 157, -1, -1, -1, -1, -1, 1171,
+ -1, -1, -1, -1, 24, -1, -1, -1, -1, -1,
+ 30, 77, 0, 4057, 2714, -1, -1, -1, -1, -1,
+ -1, 5187, -1, -1, -1, 1197, 202, 1199, -1, 193,
+ -1, 1203, -1, 1205, 2734, -1, -1, -1, -1, 61,
+ -1, -1, -1, -1, -1, -1, -1, 1219, -1, -1,
+ -1, -1, -1, 1225, -1, 75, 1228, -1, 2532, 1231,
+ 224, -1, -1, -1, -1, 229, 2766, -1, -1, -1,
+ 6011, -1, -1, 1245, 96, -1, -1, -1, -1, -1,
+ 146, -1, 5248, -1, -1, -1, -1, -1, -1, -1,
+ 3104, 267, -1, 2793, -1, 271, 3865, -1, -1, 2799,
+ -1, -1, -1, -1, 1276, 281, -1, 271, -1, 97,
+ -1, 131, -1, 2813, 290, -1, -1, -1, 138, -1,
+ 2820, 141, -1, 2823, -1, 191, 302, -1, -1, 2829,
+ 196, -1, 1304, 1305, 1306, 157, 1308, -1, -1, 303,
+ 5306, -1, -1, -1, -1, -1, -1, -1, 168, 2849,
+ -1, -1, -1, -1, -1, 2855, 1328, -1, -1, -1,
+ 148, -1, 2862, -1, -1, 341, -1, 233, 344, 345,
+ -1, 193, -1, 161, -1, -1, 2876, -1, -1, 167,
+ -1, 345, 202, -1, 172, -1, 350, -1, -1, 2889,
+ 178, -1, -1, 181, 1366, 359, -1, 185, -1, 375,
+ 2900, -1, -1, 367, -1, -1, -1, 229, -1, -1,
+ -1, 375, 1384, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 288, 387, -1, -1, 214, -1, -1, -1,
+ -1, -1, 396, -1, -1, -1, 400, -1, -1, -1,
+ -1, -1, -1, -1, -1, 267, 234, 267, -1, 271,
+ -1, 271, -1, -1, -1, 419, -1, -1, 1430, -1,
+ -1, 281, 1434, 1435, -1, -1, -1, 443, -1, -1,
+ 290, 5437, -1, 1445, 1446, 1447, 1448, -1, 1450, -1,
+ 302, 303, 302, -1, 3298, -1, 3300, -1, -1, -1,
+ 454, -1, -1, -1, 458, 283, -1, -1, 286, 5465,
+ -1, 1473, 3316, -1, 292, -1, -1, -1, 4352, -1,
+ -1, -1, -1, -1, 380, -1, -1, -1, -1, 341,
+ -1, 341, -1, 345, 344, 345, -1, -1, 350, -1,
+ -1, -1, -1, -1, -1, -1, 1508, 359, -1, -1,
+ -1, 1513, -1, -1, 1516, 367, -1, -1, 3362, 3363,
+ -1, -1, -1, 375, -1, 375, -1, 1529, 1530, -1,
+ -1, 349, -1, -1, -1, 387, 1538, -1, -1, 1541,
+ -1, -1, -1, -1, 396, -1, -1, -1, 400, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 5555,
+ -1, -1, -1, -1, -1, -1, 1568, -1, 1570, -1,
+ -1, 1573, -1, -1, 1576, 1577, -1, -1, 1580, -1,
+ -1, -1, -1, -1, 480, 3115, 404, -1, 1590, -1,
+ -1, 1593, -1, 443, 1596, 491, 492, 493, 494, 495,
+ 496, -1, 454, 3133, -1, -1, -1, -1, -1, -1,
+ 3140, -1, -1, -1, 432, -1, 1618, 51, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 1636, -1, -1, -1, 456, -1,
+ 458, 459, -1, -1, -1, -1, 1648, 1649, 1650, 1651,
+ 1652, -1, -1, -1, 10, -1, 0, 13, -1, -1,
+ 5656, 17, 18, 19, 1666, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 1677, 1678, 1679, 34, -1,
+ 498, 4555, -1, 501, 502, 503, -1, -1, 44, -1,
+ -1, -1, -1, -1, -1, 51, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 77, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 4336, -1, 3043,
+ -1, -1, 5738, -1, 3048, -1, 3050, -1, -1, -1,
+ -1, 4350, -1, 97, -1, -1, 3060, -1, -1, 3063,
+ -1, 3065, 3066, -1, -1, 3069, -1, -1, -1, 3073,
+ -1, 3075, -1, 1775, 3078, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 1786, -1, -1, -1, -1, -1,
+ -1, -1, 1794, 1795, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 148, -1, 5802, -1, 1810, -1,
+ -1, -1, -1, -1, 5810, 5811, -1, 161, -1, -1,
+ -1, -1, -1, 167, -1, -1, 1828, 1829, 172, -1,
+ -1, -1, -1, -1, 178, 191, -1, 181, 3142, -1,
+ 196, 185, 1844, 1845, 1846, 1847, -1, -1, -1, -1,
+ -1, 1853, -1, -1, -1, -1, -1, -1, 1860, -1,
+ -1, -1, 218, 219, -1, -1, -1, -1, -1, -1,
+ 214, -1, -1, -1, -1, 1877, -1, 233, 1880, -1,
+ -1, -1, -1, -1, -1, -1, -1, 3731, 1890, 1891,
+ 234, -1, -1, -1, -1, 5891, -1, -1, -1, 1901,
+ 1902, 5897, -1, 1905, -1, -1, 1908, -1, -1, -1,
+ 3754, -1, -1, -1, -1, -1, -1, -1, 274, 5915,
+ -1, 1923, 1924, -1, -1, -1, 3456, -1, 1930, -1,
+ 1932, -1, 288, -1, -1, 291, -1, -1, -1, 283,
+ -1, -1, 286, -1, -1, -1, -1, 1949, 292, -1,
+ -1, -1, -1, -1, 1956, -1, 1958, -1, -1, 1961,
+ 1962, 1963, -1, 1965, 1966, -1, 1968, -1, -1, -1,
+ -1, -1, -1, 1975, -1, -1, -1, -1, -1, -1,
+ 1982, -1, -1, -1, -1, -1, 1988, 1989, -1, -1,
+ 1992, 5987, -1, -1, 1996, -1, 1998, -1, -1, 61,
+ -1, 2003, 2004, -1, -1, 349, -1, -1, 2010, 2011,
+ 2012, 6007, -1, 2015, -1, 2017, 2018, 2019, 2020, 2021,
+ 2022, 2023, 2024, -1, 380, 2027, 3556, 2029, 2030, -1,
+ -1, 2033, -1, -1, 96, -1, -1, -1, -1, -1,
+ -1, -1, 10, -1, -1, 13, 2048, 2049, 2050, 17,
+ 18, 19, -1, -1, 6050, -1, -1, -1, -1, -1,
+ 404, -1, 6058, 2065, -1, -1, 34, -1, 3912, -1,
+ 38, -1, -1, -1, 6070, 6071, 44, 10, -1, -1,
+ 13, -1, -1, 51, 17, 18, 19, -1, 432, -1,
+ -1, -1, -1, -1, -1, 157, -1, -1, -1, -1,
+ -1, 34, -1, 2105, -1, -1, -1, -1, -1, 77,
+ -1, 44, 456, -1, 458, 459, -1, -1, 51, -1,
+ -1, 4995, -1, -1, 480, -1, -1, -1, -1, -1,
+ -1, 193, 488, 489, 490, 491, 492, 493, 494, 495,
+ 496, 3445, -1, -1, 77, -1, -1, -1, 504, -1,
+ 24, -1, -1, 3683, 498, -1, 30, 501, 502, 503,
+ 128, -1, -1, -1, -1, -1, -1, 229, -1, -1,
+ -1, 45, -1, 5047, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 17, -1, -1, -1, -1,
+ -1, 75, -1, 4802, 26, 267, 2208, -1, -1, 271,
+ -1, -1, 3516, -1, 3518, -1, -1, -1, 4817, -1,
+ -1, -1, -1, 191, -1, -1, -1, -1, 196, -1,
+ -1, -1, -1, -1, -1, -1, 10, -1, -1, 13,
+ 302, 303, -1, 17, 18, 19, 2248, -1, -1, -1,
+ 218, 219, -1, -1, -1, 129, -1, 131, 191, -1,
+ 34, 695, -1, 196, 138, 233, -1, 141, -1, -1,
+ 44, -1, -1, -1, -1, -1, -1, 51, -1, 341,
+ -1, -1, -1, 345, -1, 218, 219, 721, 350, -1,
+ -1, -1, -1, -1, 168, -1, -1, 359, -1, 2301,
+ 233, -1, -1, 77, -1, 367, 274, -1, -1, 4908,
+ -1, -1, -1, 375, -1, -1, -1, -1, -1, -1,
+ 288, -1, -1, 291, -1, 387, -1, -1, 202, -1,
+ -1, -1, 3862, -1, 396, -1, -1, -1, 400, -1,
+ -1, 274, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 3881, -1, -1, -1, 288, 3660, -1, 291, -1,
+ -1, -1, 3666, -1, -1, -1, -1, -1, -1, -1,
+ 4214, -1, -1, -1, -1, -1, 3906, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 454, 267, -1, -1, 4240, 271, -1, -1,
+ -1, -1, -1, -1, -1, -1, 5280, 281, -1, -1,
+ 4254, -1, 380, -1, -1, -1, 290, 191, -1, -1,
+ -1, 4265, 196, -1, -1, -1, -1, -1, 302, -1,
+ -1, -1, -1, -1, -1, 5309, -1, -1, -1, -1,
+ -1, -1, -1, -1, 218, 219, -1, 380, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 233,
+ -1, -1, -1, -1, -1, -1, -1, 341, -1, -1,
+ 344, 345, 440, -1, 2476, 2477, 2478, 2479, 2480, 2481,
+ 2482, 2483, 2484, -1, 2486, -1, -1, -1, -1, -1,
+ -1, -1, 2494, 2495, 5093, 2497, 5095, 4341, 4342, -1,
+ 274, 375, 2504, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 480, -1, 288, -1, -1, 291, -1, -1,
+ 488, 489, 490, 491, 492, 493, 494, 495, 496, -1,
+ -1, 2533, -1, 2535, -1, -1, 2538, 2539, -1, -1,
+ 2542, -1, 2544, -1, -1, 2547, 3850, 480, 3852, 2551,
+ 3854, -1, -1, -1, -1, 488, 489, 490, 491, 492,
+ 493, 494, 495, 496, -1, -1, -1, -1, 501, 443,
+ -1, -1, 2574, -1, -1, -1, -1, -1, 2580, 2581,
+ -1, -1, -1, -1, -1, 4429, -1, -1, -1, 2591,
+ -1, -1, -1, -1, -1, -1, 1030, -1, 2600, 2601,
+ -1, -1, -1, -1, -1, -1, 380, 1041, -1, -1,
+ 10, -1, 2614, 13, -1, -1, -1, -1, -1, -1,
+ 2622, -1, 2624, 1057, -1, -1, -1, 4157, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 4482, -1,
+ -1, -1, -1, -1, 44, -1, -1, 5246, -1, -1,
+ -1, 51, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 5535, 2664, -1, 2666, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 77, -1, -1,
+ -1, 2683, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 2694, -1, -1, 2697, 2698, 2699, 2700, -1,
+ -1, 2703, -1, -1, 2706, -1, 480, -1, -1, -1,
+ -1, -1, -1, -1, 488, 489, 490, 491, 492, 493,
+ 494, 495, 496, -1, -1, 2727, -1, 501, -1, -1,
+ -1, -1, -1, -1, -1, -1, 2738, -1, -1, -1,
+ -1, -1, -1, -1, 2746, 2747, 146, -1, -1, -1,
+ -1, 2753, -1, -1, -1, 4285, -1, -1, 4288, -1,
+ 2762, -1, -1, -1, -1, -1, -1, 24, -1, -1,
+ -1, -1, -1, 30, -1, -1, -1, -1, -1, 1213,
+ -1, -1, 2784, -1, -1, -1, -1, -1, 45, -1,
+ -1, 191, -1, -1, -1, -1, 196, -1, -1, -1,
+ 5399, -1, 5401, 2805, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 635, -1, -1, 2818, -1, 75, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 5702, -1,
+ -1, -1, -1, 233, -1, -1, -1, -1, -1, 2841,
+ -1, 10, 2844, -1, 13, -1, -1, -1, 17, 18,
+ 19, -1, -1, -1, -1, -1, -1, -1, -1, 4389,
+ -1, -1, -1, 685, 686, 34, -1, 4711, 2870, 2871,
+ -1, -1, 129, 4717, 131, 44, 4406, 4721, -1, -1,
+ -1, 138, 51, 2885, 141, 2887, 2888, -1, 288, -1,
+ -1, 10, -1, -1, 13, -1, -1, -1, 17, 18,
+ 19, -1, -1, -1, 4748, 4749, -1, -1, 77, 4753,
+ 4754, 168, -1, -1, -1, 34, 2918, 2919, 2920, -1,
+ -1, -1, 2924, -1, -1, 44, -1, -1, -1, -1,
+ 2932, -1, 51, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 2945, -1, 202, -1, -1, -1, 2951,
+ -1, 2953, -1, -1, -1, -1, -1, 4487, 77, 781,
+ 5834, 5835, -1, -1, 2966, -1, -1, -1, -1, 2971,
+ -1, -1, -1, -1, -1, 2977, -1, -1, 2980, -1,
+ 380, -1, -1, -1, -1, 807, -1, -1, -1, -1,
+ 2992, 2993, -1, 815, -1, -1, 818, 819, 820, -1,
+ -1, 3003, -1, -1, -1, -1, -1, -1, -1, -1,
+ 267, 3013, -1, 3015, 271, -1, -1, -1, -1, -1,
+ -1, -1, 191, -1, 281, -1, -1, 196, -1, -1,
+ -1, -1, -1, 290, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 5642, -1, 302, -1, -1, -1, 218,
+ 219, -1, 3054, -1, 3056, -1, 3058, -1, -1, -1,
+ -1, -1, -1, -1, 233, -1, -1, 10, -1, -1,
+ 13, -1, 191, -1, 17, 18, 19, 196, -1, -1,
+ 480, -1, -1, -1, 341, -1, -1, 344, 345, 3091,
+ -1, 491, 492, 493, 494, 495, 496, -1, -1, 218,
+ 219, 44, -1, -1, -1, 274, -1, -1, 51, -1,
+ -1, -1, -1, -1, 233, -1, -1, -1, 375, 288,
+ -1, -1, 291, -1, -1, -1, -1, -1, -1, -1,
+ 1564, -1, -1, -1, 77, -1, -1, -1, -1, -1,
+ -1, -1, 3144, 3145, -1, 3147, -1, 3149, 3150, -1,
+ 3152, -1, -1, -1, 5753, 274, -1, 3159, -1, -1,
+ -1, -1, 3164, -1, -1, -1, -1, 4471, -1, 288,
+ 4474, -1, 291, -1, -1, -1, -1, 51, -1, -1,
+ -1, -1, -1, -1, -1, -1, 443, -1, 3190, 3191,
+ 3192, -1, -1, 3195, -1, -1, 4500, -1, 1020, -1,
+ -1, 3203, 3204, 3205, 3206, -1, -1, -1, -1, -1,
+ -1, 380, -1, -1, -1, 4745, -1, 3219, -1, -1,
+ 3222, -1, 3224, -1, -1, -1, -1, 4757, -1, -1,
+ -1, -1, -1, 3235, 3236, -1, -1, 3239, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 191, -1,
+ -1, -1, -1, 196, 3256, -1, 3258, -1, 3260, -1,
+ 3262, 380, -1, 5862, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 218, 219, -1, -1, -1,
+ 3282, -1, -1, -1, 3286, -1, -1, 5131, -1, -1,
+ 233, -1, -1, 5892, 5893, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 3307, -1, -1, -1, -1,
+ -1, 480, -1, -1, -1, -1, -1, -1, -1, 488,
+ 489, 490, 491, 492, 493, 494, 495, 496, -1, -1,
+ -1, 274, 501, 3335, -1, -1, 3338, 3339, -1, -1,
+ -1, 3343, 3344, 3345, -1, 288, -1, -1, 3350, -1,
+ -1, -1, -1, 3355, 1788, -1, -1, -1, -1, -1,
+ -1, 480, -1, -1, -1, 1799, -1, -1, 3370, 488,
+ 489, 490, 491, 492, 493, 494, 495, 496, -1, -1,
+ 499, 1815, 3384, -1, 4688, -1, 3388, -1, 1210, 3391,
+ 3392, -1, 3394, -1, -1, -1, -1, -1, -1, -1,
+ 24, -1, -1, -1, -1, 6004, 30, -1, -1, -1,
+ -1, 1233, -1, 37, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 4729, 4730, -1, -1, -1,
+ -1, -1, -1, 3435, 1868, 59, -1, 380, -1, -1,
+ -1, -1, -1, -1, 4974, -1, -1, -1, -1, 1883,
+ -1, 75, 1886, 1887, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 3465, 3466, -1, -1, -1, 22, -1,
+ -1, -1, -1, 27, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 1917, 1918, -1, 110, -1, 1310, -1,
+ -1, -1, -1, -1, -1, -1, -1, 1319, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 131, -1, -1,
+ -1, 1333, -1, -1, 138, -1, -1, 141, -1, 4823,
+ 4824, -1, -1, -1, 78, 79, -1, -1, -1, -1,
+ 1352, -1, -1, 1355, 1356, -1, -1, 480, 1360, 1361,
+ 94, -1, -1, -1, 168, 488, 489, 490, 491, 492,
+ 493, 494, 495, 496, -1, 5085, -1, 5087, 112, -1,
+ -1, -1, -1, -1, -1, 5409, -1, -1, -1, -1,
+ -1, 3573, -1, -1, -1, 199, -1, -1, 202, -1,
+ -1, 3583, 136, 24, -1, -1, -1, -1, 24, 30,
+ -1, -1, -1, 147, 30, -1, -1, -1, -1, -1,
+ -1, 10, 156, -1, 13, -1, -1, -1, 17, 18,
+ 19, -1, -1, 2047, -1, 169, -1, -1, -1, -1,
+ 174, -1, -1, -1, 248, 34, -1, -1, 252, -1,
+ -1, -1, -1, -1, 75, 44, -1, -1, -1, 75,
+ -1, -1, 51, 267, -1, -1, 200, 271, -1, 4953,
+ -1, -1, 4956, 4957, -1, -1, -1, 281, -1, -1,
+ -1, -1, -1, -1, -1, -1, 290, -1, 77, 4973,
+ -1, 225, -1, -1, -1, -1, -1, 301, 302, -1,
+ -1, -1, -1, -1, -1, -1, 3688, -1, -1, -1,
+ 131, -1, 3694, 247, -1, 131, -1, 138, -1, -1,
+ 141, -1, 138, 3705, -1, 141, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 341, -1, -1,
+ 344, 345, 346, -1, -1, -1, -1, 168, -1, -1,
+ -1, -1, 168, -1, -1, -1, -1, -1, -1, -1,
+ 3742, 3743, 3744, -1, -1, 369, -1, -1, -1, 5593,
+ -1, 375, -1, -1, -1, -1, -1, 3759, -1, -1,
+ -1, 202, -1, -1, -1, 389, 202, -1, 322, 323,
+ -1, 3773, 326, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 191, -1, -1, -1, -1, 196, -1, 3791,
+ 3792, 3793, -1, 1615, -1, 3797, -1, -1, -1, 353,
+ -1, 1623, 356, -1, -1, -1, -1, 3809, 362, 218,
+ 219, -1, -1, -1, -1, 369, -1, -1, 372, 443,
+ -1, 695, -1, -1, 233, -1, 267, -1, -1, -1,
+ 271, 267, -1, -1, -1, 271, -1, 391, -1, -1,
+ 281, -1, -1, -1, 398, 281, -1, 721, -1, 290,
+ 404, -1, -1, 407, 290, -1, -1, 411, -1, -1,
+ -1, 302, -1, 3865, -1, 274, 302, -1, -1, -1,
+ -1, -1, 426, -1, -1, -1, -1, 3879, 3880, 288,
+ -1, -1, 291, -1, -1, -1, 3888, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 452, 3901,
+ 341, -1, 3904, 344, 345, 341, -1, -1, 344, 345,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 3923, -1, -1, -1, -1, -1, -1, -1, -1,
+ 3932, -1, -1, -1, 375, -1, -1, -1, 3940, 375,
+ 3942, -1, -1, 3945, -1, -1, -1, -1, 3950, 3951,
+ 3952, 3953, -1, -1, 3956, 3957, 3958, 3959, 3960, 3961,
+ 3962, 3963, 3964, 3965, -1, -1, -1, 3969, 3970, 3971,
+ -1, 380, -1, -1, -1, -1, -1, 3979, -1, -1,
+ -1, -1, 3984, -1, -1, -1, 3988, -1, -1, -1,
+ -1, -1, -1, -1, 3996, 869, -1, 3999, -1, 4001,
+ -1, -1, 443, -1, -1, -1, -1, 443, -1, 4011,
+ -1, -1, 4014, 4015, -1, 1837, -1, 4019, 4020, 1841,
+ -1, -1, 4024, -1, 4026, -1, -1, -1, -1, -1,
+ -1, 4033, 4034, 4035, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 5352, -1,
+ -1, 4053, 4054, 4055, -1, 4057, 4058, -1, -1, 4061,
+ -1, -1, -1, 4065, 24, -1, -1, 4069, -1, -1,
+ 30, 480, -1, 4075, -1, -1, -1, -1, -1, 488,
+ 489, 490, 491, 492, 493, 494, 495, 496, -1, 24,
+ -1, -1, 501, -1, -1, 30, -1, -1, -1, 4101,
+ 5404, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 4116, 75, 4118, -1, 10, -1,
+ -1, 13, -1, -1, -1, 17, 18, 19, -1, -1,
+ -1, -1, -1, -1, 4136, 4137, 4138, -1, 1012, 4141,
+ 75, -1, 34, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 44, -1, -1, -1, 1030, -1, -1, 51,
+ -1, -1, -1, -1, -1, -1, -1, 1041, -1, -1,
+ 6014, 131, -1, -1, 4176, 4177, -1, -1, 138, -1,
+ -1, 141, -1, 1057, -1, 77, -1, 2009, -1, -1,
+ -1, -1, -1, 4195, -1, 5725, 131, -1, -1, -1,
+ -1, -1, -1, 138, -1, -1, 141, -1, 168, -1,
+ -1, -1, -1, 5517, -1, -1, -1, -1, 6062, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 168, -1, -1, 6080, -1, -1, -1,
+ -1, -1, 202, -1, -1, -1, 4248, -1, -1, 10,
+ -1, -1, 13, -1, -1, -1, 17, 18, 19, -1,
+ -1, -1, 2696, -1, -1, -1, -1, 202, 2702, -1,
+ -1, -1, -1, 34, -1, -1, -1, -1, 10, -1,
+ -1, 13, -1, 44, -1, 17, 18, 19, -1, -1,
+ 51, -1, -1, -1, -1, -1, -1, -1, -1, 191,
+ -1, 4303, 34, -1, 196, -1, -1, 267, -1, 2743,
+ -1, 271, 44, -1, -1, -1, 77, -1, -1, 51,
+ -1, 281, -1, -1, -1, -1, 218, 219, -1, -1,
+ 290, -1, 267, -1, 4336, -1, 271, -1, -1, 1213,
+ -1, 233, 302, -1, -1, 77, 281, -1, 4350, -1,
+ 4352, -1, -1, -1, -1, 290, -1, 4359, -1, -1,
+ -1, -1, -1, 4365, -1, -1, -1, 302, -1, -1,
+ -1, -1, -1, -1, 4376, -1, -1, -1, -1, -1,
+ -1, 341, 274, -1, 344, 345, -1, -1, -1, 4391,
+ -1, -1, -1, -1, 4396, 4397, 288, -1, -1, 291,
+ -1, -1, 4404, -1, -1, -1, 341, -1, -1, 344,
+ 345, 4413, -1, -1, -1, 375, -1, -1, -1, -1,
+ -1, 4423, -1, -1, -1, -1, -1, -1, -1, -1,
+ 191, -1, -1, 4435, 4436, 196, -1, -1, -1, -1,
+ 375, -1, -1, -1, 4446, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 4457, 4458, 218, 219, 191,
+ -1, -1, -1, -1, 196, -1, -1, -1, -1, -1,
+ -1, -1, 233, 4475, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 443, -1, -1, 218, 219, 380, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 233, -1, -1, -1, -1, -1, -1, 443, -1,
+ -1, 4513, -1, 274, -1, -1, -1, -1, 2952, -1,
+ -1, -1, 4524, -1, -1, -1, -1, 288, -1, -1,
+ 291, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 274, -1, -1, -1, -1, 5851, -1, -1,
+ 4552, -1, -1, 4555, -1, -1, 288, -1, -1, 291,
+ -1, 4563, 4564, -1, -1, -1, -1, -1, 4570, 4571,
+ -1, -1, -1, 4575, -1, -1, -1, 4579, -1, -1,
+ 4582, 4583, 1456, -1, -1, 4587, 4588, -1, 480, -1,
+ -1, 4593, 4594, 4595, 4596, 4597, 488, 489, 490, 491,
+ 492, 493, 494, 495, 496, -1, -1, 24, 4610, 501,
+ -1, 4613, -1, 30, -1, 4617, -1, -1, -1, 380,
+ 4622, -1, -1, 4625, 4626, -1, 4628, -1, 4630, -1,
+ -1, 4633, -1, 4635, -1, -1, -1, -1, -1, -1,
+ -1, -1, 4644, -1, -1, -1, 4648, -1, 380, 1523,
+ 4652, -1, 4654, -1, -1, -1, -1, -1, 75, -1,
+ -1, -1, -1, -1, -1, -1, -1, 4669, -1, -1,
+ 4672, -1, 10, -1, -1, 13, -1, -1, -1, 17,
+ 18, 19, -1, -1, -1, -1, -1, -1, -1, -1,
+ 1564, -1, 2514, -1, -1, -1, 34, 3131, -1, -1,
+ -1, -1, -1, -1, 4706, -1, 44, -1, -1, -1,
+ -1, -1, 3146, 51, 131, -1, -1, 3151, -1, 480,
+ 4722, 138, -1, 1597, 141, -1, -1, 488, 489, 490,
+ 491, 492, 493, 494, 495, 496, -1, -1, -1, 77,
+ 501, -1, -1, -1, -1, -1, -1, -1, 480, -1,
+ -1, 168, -1, -1, -1, -1, 488, 489, 490, 491,
+ 492, 493, 494, 495, 496, -1, -1, -1, -1, 501,
+ -1, 4773, -1, -1, -1, -1, -1, -1, 4780, -1,
+ -1, -1, -1, -1, -1, 202, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 4802, -1, -1, 1677, 1678, 1679, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 4817, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 2662, -1, -1, -1, -1, -1, 4848, -1, -1, -1,
+ 267, -1, -1, 191, 271, -1, -1, -1, 196, -1,
+ -1, -1, 4864, -1, 281, -1, -1, -1, -1, 4871,
+ -1, -1, -1, 290, -1, -1, -1, -1, 4880, -1,
+ 218, 219, -1, -1, -1, 302, -1, -1, -1, -1,
+ -1, -1, -1, 4895, -1, 233, -1, -1, -1, 2721,
+ -1, -1, -1, -1, -1, -1, 4908, -1, 4910, -1,
+ -1, -1, -1, -1, 1788, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 341, 1799, -1, 344, 345, -1,
+ -1, -1, -1, -1, 4936, -1, 274, -1, -1, -1,
+ -1, 1815, -1, -1, -1, 4947, -1, -1, -1, -1,
+ 288, -1, -1, 291, -1, -1, -1, -1, 375, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 2801,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 4992, -1, -1, 4995, 1868, -1, 4998, 4999, 5000, -1,
+ -1, -1, -1, 2825, -1, -1, -1, -1, -1, 1883,
+ -1, -1, 1886, 1887, -1, -1, -1, -1, -1, -1,
+ -1, 5023, 5024, -1, -1, 5027, 443, -1, 3462, -1,
+ -1, -1, -1, -1, -1, -1, 3470, -1, -1, -1,
+ -1, -1, 380, 1917, 1918, 5047, -1, -1, -1, -1,
+ -1, 5053, -1, -1, -1, 5057, -1, -1, -1, 5061,
+ -1, -1, 5064, -1, 5066, -1, -1, -1, -1, -1,
+ 2892, -1, -1, -1, -1, 5077, -1, -1, 5080, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 5091,
+ 5092, 5093, -1, 5095, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 2929, -1, 2931,
+ -1, 2933, 2934, -1, -1, -1, 2938, 2939, 2940, -1,
+ 2942, 2943, 2944, 51, -1, -1, -1, -1, -1, -1,
+ -1, 3565, -1, 3567, -1, -1, -1, -1, -1, -1,
+ 5142, 5143, 480, -1, -1, 2019, -1, -1, 2022, -1,
+ 488, 489, 490, 491, 492, 493, 494, 495, 496, -1,
+ -1, -1, -1, 501, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 2047, 2996, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 5187, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 5199, -1, 3021,
+ -1, -1, 5204, -1, -1, -1, -1, 5209, -1, -1,
+ -1, -1, -1, -1, -1, -1, 5218, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 5228, 3661, -1, -1,
+ 5232, -1, -1, 5235, -1, -1, -1, 22, -1, -1,
+ -1, -1, 27, -1, 5246, 5247, 5248, 10, -1, -1,
+ 13, -1, -1, -1, 17, 18, 19, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 3703,
+ -1, 34, -1, -1, -1, -1, -1, -1, 5280, -1,
+ 65, 44, 5284, -1, 5286, -1, -1, -1, 51, -1,
+ -1, -1, -1, 78, 79, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 5306, 90, -1, 5309, -1, 94,
+ -1, 5313, -1, -1, 77, -1, -1, -1, 5320, -1,
+ -1, -1, -1, -1, -1, 5327, -1, 112, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 136, -1, -1, -1, -1, 206, 207, -1, -1,
+ 5362, -1, 147, -1, 214, 3799, 216, 217, -1, -1,
+ -1, 156, -1, -1, -1, -1, -1, -1, -1, -1,
+ 230, -1, -1, -1, 169, 5387, -1, -1, -1, 174,
+ -1, 5393, 5394, -1, -1, -1, 5398, 5399, 5400, 5401,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 3843,
+ -1, -1, -1, -1, -1, 200, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 5429, 191, -1,
+ -1, -1, -1, 196, -1, 5437, -1, -1, -1, -1,
+ 225, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 218, 219, -1, -1, -1,
+ 5462, -1, 247, 5465, -1, -1, -1, -1, -1, -1,
+ 233, -1, -1, -1, -1, -1, -1, -1, 3300, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 5490, -1,
+ -1, -1, 3926, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 288, -1, -1, -1, -1, -1, -1,
+ -1, 274, -1, -1, -1, 3949, 5518, -1, -1, -1,
+ -1, -1, 5524, -1, -1, 288, 5528, 312, 291, -1,
+ 5532, -1, -1, 5535, -1, -1, -1, 322, 323, -1,
+ 3974, 326, 5544, -1, 5546, -1, 5548, 5549, -1, -1,
+ -1, -1, -1, 5555, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 5565, -1, 5567, -1, -1, 353, -1,
+ -1, 356, -1, -1, 5576, 360, -1, 362, -1, -1,
+ -1, -1, -1, -1, 369, -1, -1, 372, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 391, -1, -1, 5611,
+ 5612, -1, -1, 398, -1, -1, -1, 380, -1, 404,
+ -1, -1, 407, 2497, -1, -1, 411, -1, -1, -1,
+ -1, -1, -1, -1, 419, -1, 421, 3459, -1, -1,
+ 5642, 426, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 5656, -1, 10, -1, -1, 13,
+ -1, -1, -1, 17, 18, 19, -1, 452, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 34, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 44, -1, 5694, 5695, 5696, -1, -1, 51, -1, -1,
+ 5702, -1, -1, -1, 5706, -1, -1, -1, -1, -1,
+ 5712, -1, -1, -1, -1, 3537, -1, 480, -1, 5721,
+ 5722, -1, -1, 77, -1, 488, 489, 490, 491, 492,
+ 493, 494, 495, 496, -1, -1, 5738, 10, 501, -1,
+ 13, -1, -1, -1, 17, 18, 19, -1, -1, -1,
+ -1, 5753, -1, -1, -1, -1, -1, -1, 5760, -1,
+ 2634, 34, -1, -1, 2638, 2639, -1, 695, -1, -1,
+ -1, 44, -1, 3595, -1, -1, -1, -1, 51, -1,
+ -1, -1, 632, 5785, -1, -1, -1, -1, -1, -1,
+ 5792, -1, -1, 721, -1, -1, -1, -1, -1, -1,
+ 5802, 651, -1, -1, 77, -1, -1, 657, 5810, 5811,
+ 5812, -1, -1, -1, 5816, -1, 5818, -1, -1, 669,
+ -1, -1, 2696, -1, -1, 5827, 5828, 5829, 2702, -1,
+ -1, -1, 5834, 5835, -1, 685, -1, 191, 5840, -1,
+ -1, 3663, 196, -1, -1, -1, -1, -1, -1, 699,
+ 700, -1, -1, -1, -1, -1, 706, -1, 708, 709,
+ 5862, -1, -1, -1, 218, 219, -1, -1, -1, 2743,
+ -1, -1, 722, -1, -1, -1, -1, -1, -1, 233,
+ -1, -1, 732, -1, -1, -1, -1, 3709, -1, 5891,
+ 5892, 5893, -1, -1, -1, 5897, -1, -1, -1, 3721,
+ 3722, -1, -1, -1, -1, -1, -1, -1, -1, 3731,
+ -1, -1, -1, 5915, 3736, -1, 3738, -1, 191, -1,
+ 274, -1, -1, 196, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 5935, 288, -1, -1, 291, -1, -1,
+ 790, 869, -1, -1, -1, 218, 219, 5949, 4382, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 233, -1, 3784, -1, -1, -1, -1, 22, -1, 819,
+ -1, -1, 27, -1, -1, -1, -1, -1, 5980, -1,
+ -1, -1, -1, 5985, 5986, 5987, 5988, 5989, -1, -1,
+ 5992, -1, -1, -1, 844, -1, -1, 3819, 3820, -1,
+ -1, 274, 6004, -1, -1, 6007, -1, -1, -1, -1,
+ 65, -1, -1, -1, -1, 288, -1, -1, 291, -1,
+ -1, -1, -1, 78, -1, -1, 380, -1, 6030, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 94,
+ -1, -1, -1, -1, -1, -1, 2920, 6049, 6050, -1,
+ -1, -1, 6054, -1, 904, -1, 6058, 112, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 6070, 6071,
+ -1, -1, 6074, -1, -1, -1, -1, -1, 2952, -1,
+ -1, 136, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 147, -1, -1, -1, -1, -1, -1, -1,
+ -1, 156, 1030, -1, -1, -1, -1, 380, -1, -1,
+ -1, -1, -1, 1041, 169, -1, -1, -1, -1, 174,
+ -1, -1, -1, -1, -1, -1, 480, -1, -1, 1057,
+ -1, -1, -1, -1, 488, 489, 490, 491, 492, 493,
+ 494, 495, 496, -1, -1, 200, -1, 501, -1, -1,
+ -1, 3025, -1, -1, -1, 3029, -1, -1, -1, -1,
+ -1, -1, -1, -1, 1014, -1, -1, -1, -1, -1,
+ 1020, -1, -1, 3995, -1, -1, -1, -1, -1, -1,
+ -1, 1031, -1, -1, -1, 1035, -1, 1037, -1, -1,
+ -1, -1, 247, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 480, -1, -1,
+ -1, -1, -1, -1, -1, 488, 489, 490, 491, 492,
+ 493, 494, 495, 496, -1, -1, -1, -1, 501, -1,
+ -1, -1, -1, 288, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 4690, 3131, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 322, 323, -1,
+ -1, 326, 3146, -1, -1, -1, -1, 3151, -1, -1,
+ -1, -1, -1, -1, -1, 1213, -1, -1, -1, -1,
+ -1, -1, -1, 1143, 4728, -1, -1, -1, 353, -1,
+ -1, 356, -1, -1, -1, -1, -1, 362, -1, -1,
+ -1, -1, -1, -1, 369, -1, 4750, 372, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 391, -1, -1, -1,
+ -1, -1, -1, 398, -1, -1, -1, -1, -1, 404,
+ -1, -1, 407, -1, 1204, -1, 411, -1, -1, -1,
+ -1, -1, -1, -1, 419, 1215, -1, 10, -1, -1,
+ 13, 426, -1, -1, 17, 18, 19, -1, -1, 1229,
+ -1, -1, 0, 1233, -1, -1, -1, -1, 4822, -1,
+ -1, 34, 4214, -1, -1, -1, -1, 452, -1, -1,
+ -1, 44, 20, -1, -1, -1, -1, -1, 51, -1,
+ -1, -1, 30, -1, 32, 33, -1, -1, 4240, -1,
+ -1, -1, -1, -1, -1, -1, -1, 1355, -1, -1,
+ -1, -1, 50, 4255, 77, -1, 4258, -1, 4260, -1,
+ -1, -1, 60, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 72, -1, 74, 75, -1, -1,
+ -1, -1, -1, 81, -1, 83, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 95, -1, 97,
+ -1, -1, -1, -1, 4306, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 114, -1, -1, 117,
+ 4322, -1, 1352, -1, -1, 4327, -1, -1, -1, 4943,
+ 1360, 1361, -1, -1, 132, -1, 134, -1, -1, -1,
+ 138, -1, -1, -1, -1, -1, 144, -1, 1456, -1,
+ 3404, -1, -1, 3407, 152, 3409, 154, -1, -1, -1,
+ 3414, -1, -1, 161, -1, -1, -1, -1, 191, -1,
+ -1, -1, -1, 196, -1, -1, -1, -1, -1, -1,
+ 178, -1, -1, 1413, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 218, 219, 195, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 3462, -1,
+ 233, -1, -1, -1, -1, 1523, 3470, -1, -1, -1,
+ -1, -1, -1, -1, 4426, -1, -1, 4429, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 235, 236, -1,
+ -1, 3495, -1, 241, -1, -1, -1, -1, -1, 5063,
+ -1, 274, -1, -1, -1, -1, 1564, 255, -1, -1,
+ -1, -1, -1, -1, -1, 288, -1, -1, 291, -1,
+ -1, -1, -1, -1, -1, 273, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 1597,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 4502, 4503, 4504, 4505, -1, 4507, 4508, 4509, 4510, 4511,
+ -1, 3565, -1, 3567, -1, -1, -1, -1, -1, 317,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 331, -1, -1, -1, 24, -1, 337,
+ 338, -1, 340, 30, -1, -1, -1, 345, -1, -1,
+ 37, -1, -1, 351, -1, -1, 354, 380, -1, -1,
+ -1, -1, -1, 361, -1, -1, -1, -1, -1, 367,
+ 368, -1, 59, -1, -1, -1, -1, 375, -1, -1,
+ -1, 379, -1, -1, -1, -1, -1, -1, 75, -1,
+ -1, 389, -1, -1, -1, -1, -1, -1, -1, -1,
+ 4602, -1, 4604, -1, -1, -1, 404, 3661, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 110, -1, -1, 424, -1, -1, -1,
+ -1, -1, 1662, -1, 3688, -1, -1, 435, -1, -1,
+ 3694, -1, -1, 441, 131, -1, -1, -1, 446, 3703,
+ -1, 138, -1, -1, 141, -1, -1, 480, -1, -1,
+ -1, 459, -1, -1, -1, 488, 489, 490, 491, 492,
+ 493, 494, 495, 496, -1, -1, -1, 3731, 501, -1,
+ 1788, 168, -1, -1, 482, 483, 484, 485, 486, 487,
+ -1, 1799, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 500, -1, -1, 503, -1, 1815, -1, -1,
+ -1, -1, 199, -1, -1, 202, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 3799, 1776, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 1868, 248, -1, 5377, -1, 252, -1, 3821, 5382, 5383,
+ -1, -1, -1, -1, -1, 1883, -1, -1, 1886, 1887,
+ 267, 1811, -1, -1, 271, -1, -1, -1, -1, 3843,
+ -1, -1, -1, -1, 281, -1, -1, -1, -1, -1,
+ -1, -1, -1, 290, 1834, -1, -1, -1, -1, 1917,
+ 1918, -1, 1842, -1, 301, 302, -1, -1, 4820, 4821,
+ 1850, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 4833, -1, 4835, 4836, 4837, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 341, -1, -1, 344, 345, 346,
+ 1890, 1891, -1, 1893, 1894, -1, -1, -1, -1, -1,
+ -1, -1, 3926, -1, -1, 1905, -1, 1907, 1908, -1,
+ -1, 5495, 369, -1, -1, -1, -1, -1, 375, -1,
+ 1920, 1921, -1, -1, -1, 3949, -1, -1, -1, 4901,
+ -1, -1, 389, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 3974, -1, -1, -1, -1, 5539, -1, -1, 1958, -1,
+ -1, -1, 1962, 1963, -1, -1, -1, -1, 4940, 2047,
+ -1, 0, -1, -1, -1, -1, 207, -1, -1, -1,
+ -1, -1, -1, -1, -1, 216, 443, -1, -1, -1,
+ -1, 20, -1, -1, -1, -1, -1, -1, -1, 230,
+ -1, 30, -1, 32, 33, -1, -1, -1, -1, -1,
+ 4982, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 50, -1, -1, -1, -1, -1, -1, -1, 10,
+ -1, 60, 13, -1, -1, -1, 17, 18, 19, -1,
+ -1, -1, -1, 72, -1, 74, 75, -1, -1, -1,
+ -1, -1, 81, 34, 83, -1, -1, -1, -1, -1,
+ -1, -1, -1, 44, -1, -1, 95, 2067, 97, 8,
+ 51, -1, -1, -1, -1, 14, 15, -1, -1, -1,
+ -1, 20, -1, 22, -1, 114, -1, -1, 117, 28,
+ -1, 30, -1, -1, -1, -1, 77, -1, -1, -1,
+ 4124, -1, -1, 132, -1, 134, -1, -1, -1, 138,
+ 49, 50, -1, -1, -1, 144, -1, -1, -1, 10,
+ -1, -1, 13, 152, -1, 154, 17, 18, 19, -1,
+ -1, -1, 161, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 34, -1, -1, -1, -1, -1, 178,
+ -1, -1, -1, 44, -1, -1, -1, -1, -1, 5131,
+ 51, -1, -1, -1, -1, -1, 195, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 77, -1, -1, -1,
+ 4214, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 5177, 235, 236, -1, -1,
+ 191, -1, 241, -1, 5186, 196, 4240, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 255, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 218, 219, -1,
+ -1, -1, -1, -1, 273, -1, -1, -1, -1, -1,
+ -1, -1, 233, -1, -1, -1, -1, -1, -1, -1,
+ -1, 200, -1, -1, -1, 204, -1, -1, -1, -1,
+ -1, -1, -1, 212, -1, -1, 215, -1, -1, 218,
+ 219, -1, 221, -1, 223, -1, -1, 226, 317, 228,
+ -1, -1, -1, 274, -1, -1, -1, -1, -1, -1,
+ 191, -1, 331, -1, -1, 196, -1, 288, 337, 338,
+ 291, 340, -1, -1, -1, -1, 345, -1, -1, -1,
+ -1, -1, 351, -1, -1, 354, -1, 218, 219, -1,
+ -1, -1, 361, -1, -1, -1, -1, -1, 367, 368,
+ -1, -1, 233, -1, -1, -1, 375, -1, -1, -1,
+ 379, -1, -1, -1, -1, -1, -1, -1, 4382, 51,
+ 389, -1, 10, -1, -1, 13, -1, -1, -1, 17,
+ 18, 19, -1, -1, -1, 404, -1, -1, -1, -1,
+ -1, -1, -1, 274, -1, -1, 34, -1, -1, -1,
+ -1, -1, -1, -1, -1, 424, 44, 288, -1, 380,
+ 291, 632, -1, 51, -1, 4429, 435, -1, -1, -1,
+ 4434, -1, 441, -1, -1, -1, -1, 446, -1, -1,
+ 651, -1, -1, -1, -1, -1, 657, -1, -1, 77,
+ 459, -1, -1, -1, -1, -1, -1, 5409, 669, -1,
+ -1, 5413, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 482, 685, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 700,
+ -1, 500, -1, -1, 503, -1, -1, 708, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 380,
+ -1, 722, -1, 51, -1, -1, -1, -1, -1, 480,
+ -1, 732, -1, -1, -1, -1, -1, 488, 489, 490,
+ 491, 492, 493, 494, 495, 496, -1, -1, -1, -1,
+ 501, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 4566, 191, -1, -1, -1, -1, 196, -1,
+ -1, -1, -1, -1, -1, -1, 2634, -1, -1, 790,
+ 2638, 2639, -1, -1, -1, -1, -1, -1, -1, -1,
+ 218, 219, 2572, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 233, -1, -1, 819, 480,
+ -1, -1, -1, -1, -1, -1, -1, 488, 489, 490,
+ 491, 492, 493, 494, 495, 496, -1, -1, -1, -1,
+ 501, -1, -1, 844, -1, -1, -1, -1, 2696, -1,
+ -1, -1, -1, -1, 2702, -1, 274, 2627, -1, -1,
+ -1, 5603, -1, -1, -1, 5607, -1, 5609, -1, -1,
+ 288, 5613, 5614, 291, -1, 2645, -1, -1, -1, 2649,
+ -1, -1, -1, 2653, -1, -1, -1, -1, -1, -1,
+ -1, -1, 2662, -1, -1, 2743, 4690, -1, -1, -1,
+ -1, -1, -1, 904, -1, -1, -1, -1, -1, -1,
+ 2680, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 633, -1, -1, 2697, -1, 2699,
+ 2700, -1, -1, -1, 4728, 644, -1, -1, -1, 648,
+ -1, -1, -1, -1, 2714, -1, 655, 656, -1, -1,
+ 659, -1, 661, 662, -1, -1, 4750, -1, -1, -1,
+ -1, -1, 380, -1, 2734, 2735, -1, 676, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 694, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 2765, 2766, -1, -1, 2769,
+ -1, -1, -1, -1, -1, -1, 715, -1, 717, -1,
+ -1, -1, -1, 1014, -1, -1, -1, -1, 727, 1020,
+ -1, -1, -1, 2793, -1, 2795, -1, -1, 4822, 2799,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 2813, -1, -1, -1, -1, -1, -1,
+ 2820, 760, -1, 2823, -1, -1, -1, -1, -1, 2829,
+ -1, -1, 480, -1, -1, -1, -1, -1, -1, -1,
+ 488, 489, 490, 491, 492, 493, 494, 495, 496, 2849,
+ -1, -1, -1, 501, -1, 2855, -1, -1, -1, -1,
+ -1, -1, 2862, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 2952, -1, 2876, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 2889,
+ 10, -1, -1, 13, 2894, -1, 5868, 17, 18, 19,
+ 2900, -1, -1, -1, -1, -1, -1, -1, 847, -1,
+ -1, -1, 1143, -1, 34, -1, -1, 4941, -1, 4943,
+ -1, -1, -1, -1, 44, -1, -1, -1, -1, -1,
+ -1, 51, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 3025, -1, -1,
+ -1, 3029, -1, -1, -1, -1, -1, 77, -1, -1,
+ 2960, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 1204, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 1215, -1, -1, -1, -1, -1,
+ -1, 930, -1, -1, -1, -1, -1, -1, 1229, -1,
+ -1, -1, 1233, 695, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 10, -1, -1, 13, 721,
+ -1, -1, 17, 18, 19, -1, -1, -1, -1, 5063,
+ -1, -1, 6014, -1, -1, -1, -1, -1, 6020, 34,
+ -1, -1, -1, 3131, -1, -1, -1, -1, -1, 44,
+ -1, -1, -1, -1, -1, 1004, 51, -1, 3146, -1,
+ -1, 191, -1, 3151, -1, -1, 196, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 1028,
+ 6062, -1, 77, -1, -1, -1, -1, -1, 218, 219,
+ -1, -1, -1, -1, 1043, -1, 1045, 5131, 6080, -1,
+ -1, 6083, -1, 233, -1, 3115, 1055, -1, -1, -1,
+ -1, 1352, -1, 1062, -1, -1, -1, -1, -1, 1360,
+ 1361, -1, -1, 3133, -1, -1, -1, 695, -1, -1,
+ 3140, -1, -1, -1, -1, -1, -1, 3147, -1, 3149,
+ 3150, -1, -1, -1, 274, -1, -1, -1, -1, -1,
+ -1, -1, -1, 721, -1, 1104, -1, 1106, 288, -1,
+ -1, 291, -1, -1, -1, -1, -1, 869, -1, -1,
+ -1, -1, 1413, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 191, -1, -1, -1,
+ -1, 196, -1, -1, 3214, -1, -1, -1, -1, -1,
+ 3220, -1, -1, -1, -1, -1, -1, 5251, -1, -1,
+ -1, -1, -1, 218, 219, -1, -1, -1, -1, -1,
+ -1, 1180, -1, 1182, -1, 1184, -1, 1186, 233, 1188,
+ 1189, 1190, -1, -1, -1, -1, 1195, -1, -1, -1,
+ 380, -1, -1, -1, -1, -1, -1, -1, 1207, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 1220, -1, -1, -1, -1, -1, -1, -1, 274,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 3300, -1, -1, 288, -1, -1, 291, -1, -1, -1,
+ -1, 869, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 3404, -1, -1, 3407,
+ -1, 3409, -1, -1, -1, -1, 3414, -1, 1030, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 1041,
+ -1, -1, -1, 5377, -1, -1, -1, -1, 5382, 5383,
+ 480, -1, -1, -1, -1, 1057, -1, -1, 488, 489,
+ 490, 491, 492, 493, 494, 495, 496, -1, -1, -1,
+ -1, 501, -1, -1, 3462, -1, -1, -1, -1, -1,
+ -1, -1, 3470, -1, -1, 380, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 3495, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 3429,
+ 3430, 1662, -1, -1, -1, -1, -1, -1, 1377, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 3456, -1, -1, 3459,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 5494, 5495, 1030, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 1041, -1, -1, -1, 3565, -1, 3567,
+ -1, -1, -1, -1, -1, 480, -1, -1, -1, 1057,
+ -1, -1, -1, 488, 489, 490, 491, 492, 493, 494,
+ 495, 496, -1, -1, -1, 5539, 501, -1, -1, -1,
+ -1, 1213, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 3531, 3532, 3533, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 1776, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 3556, -1, 1497, -1,
+ -1, -1, -1, -1, -1, -1, 51, -1, -1, -1,
+ -1, -1, -1, -1, -1, 3575, -1, -1, -1, -1,
+ 1811, -1, 10, 3661, -1, 13, -1, -1, -1, 17,
+ 18, 19, -1, -1, -1, -1, -1, 3597, -1, -1,
+ -1, -1, -1, 1834, -1, -1, 34, -1, -1, -1,
+ -1, 1842, -1, -1, -1, -1, 44, -1, -1, 1850,
+ -1, -1, -1, 51, -1, 3703, -1, -1, -1, -1,
+ 1569, -1, -1, 10, -1, -1, 13, -1, -1, -1,
+ 17, 18, 19, -1, -1, -1, -1, -1, -1, 77,
+ -1, -1, -1, 3731, -1, 1213, -1, 34, -1, -1,
+ -1, -1, 1893, 1894, -1, -1, -1, 44, -1, -1,
+ -1, -1, -1, -1, 51, -1, 1907, -1, -1, -1,
+ -1, -1, -1, 3683, -1, -1, -1, -1, -1, 1920,
+ 1921, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 77, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 3799, -1, -1, -1, -1, -1, -1, -1, -1,
+ 3730, 51, -1, -1, -1, -1, 3736, -1, 3738, -1,
+ -1, -1, -1, 3821, -1, -1, -1, -1, -1, -1,
+ -1, 3751, -1, 3753, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 191, 1456, 3843, -1, -1, 196, -1,
+ 10, -1, -1, 13, -1, -1, -1, 17, 18, 19,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 218, 219, -1, -1, 34, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 44, 233, -1, -1, -1, -1,
+ -1, 51, -1, -1, 191, -1, -1, -1, -1, 196,
+ 3820, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 1523, -1, -1, -1, -1, 2067, 77, -1, -1,
+ -1, 218, 219, -1, -1, 1784, 274, -1, 3926, -1,
+ -1, -1, -1, -1, -1, -1, 233, -1, -1, -1,
+ 288, -1, 3862, 291, -1, -1, -1, -1, -1, -1,
+ -1, 3949, 1564, -1, -1, -1, -1, -1, -1, -1,
+ 1819, 3881, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 3974, 274, 1456, -1,
+ -1, -1, -1, 3903, -1, 1597, 3906, -1, -1, -1,
+ -1, 288, -1, -1, 291, -1, -1, -1, -1, -1,
+ -1, -1, -1, 1862, -1, 1864, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 1884, -1, -1, -1, -1,
+ -1, 191, 380, -1, -1, -1, 196, -1, -1, -1,
+ -1, -1, -1, -1, -1, 1523, -1, -1, -1, -1,
+ -1, 1910, -1, 1912, -1, -1, -1, -1, 218, 219,
+ -1, -1, -1, -1, -1, -1, 3986, -1, 1927, -1,
+ 1929, -1, -1, 233, -1, -1, 1935, -1, 1937, -1,
+ 1939, -1, 1941, 380, 1943, -1, 1564, -1, 1947, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 6049, -1, -1, -1, -1,
+ -1, -1, -1, -1, 274, 10, -1, -1, 13, 1597,
+ -1, -1, 17, 18, 19, -1, 4124, -1, 288, -1,
+ -1, 291, 480, -1, -1, -1, -1, -1, -1, 34,
+ 488, 489, 490, 491, 492, 493, 494, 495, 496, 44,
+ -1, -1, -1, 501, -1, -1, 51, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 1788, -1, -1, -1,
+ -1, -1, 77, 480, -1, -1, -1, 1799, -1, -1,
+ -1, 488, 489, 490, 491, 492, 493, 494, 495, 496,
+ -1, -1, -1, 1815, 501, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 4214, -1, -1, -1,
+ 380, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 4157, -1, -1,
+ -1, -1, 4240, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 1868, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 1883, -1, -1, 1886, 1887, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 4208, -1,
+ 695, -1, -1, 4213, -1, 4215, 191, -1, -1, -1,
+ -1, 196, -1, -1, -1, 1917, 1918, -1, -1, -1,
+ 1788, -1, -1, -1, -1, -1, 721, -1, -1, 4239,
+ 480, 1799, -1, 218, 219, -1, -1, -1, 488, 489,
+ 490, 491, 492, 493, 494, 495, 496, 1815, 233, -1,
+ -1, 501, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 4285, -1, -1, 4288, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 274,
+ -1, -1, -1, -1, 4382, -1, -1, -1, -1, -1,
+ 1868, -1, -1, 288, -1, -1, 291, -1, -1, -1,
+ -1, -1, -1, -1, -1, 1883, -1, -1, 1886, 1887,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 2572, -1, -1, -1, -1, -1, -1, -1, 51,
+ -1, 4429, -1, -1, -1, 2047, 4434, -1, -1, 1917,
+ 1918, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 695, -1, -1, 4378, 4379,
+ -1, -1, -1, -1, 869, -1, -1, -1, -1, 4389,
+ -1, -1, -1, -1, -1, -1, 2627, -1, -1, -1,
+ -1, 721, -1, -1, -1, 380, 4406, -1, -1, -1,
+ -1, -1, -1, -1, 2645, -1, -1, -1, 2649, -1,
+ -1, -1, 2653, -1, -1, -1, -1, -1, -1, -1,
+ -1, 2662, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 2680,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 2714, -1, -1, -1, 4487, 4566, 2047,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 2734, 2735, 480, -1, -1, -1, -1,
+ -1, -1, -1, 488, 489, 490, 491, 492, 493, 494,
+ 495, 496, -1, -1, -1, -1, 501, -1, -1, -1,
+ -1, -1, -1, -1, 2765, 2766, -1, -1, 2769, -1,
+ -1, -1, -1, -1, -1, 1030, -1, -1, -1, 869,
+ -1, -1, -1, -1, -1, -1, 1041, -1, -1, -1,
+ -1, -1, 2793, -1, 2795, -1, -1, -1, 2799, -1,
+ -1, -1, 1057, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 2813, -1, -1, -1, -1, -1, -1, 2820,
+ -1, -1, 2823, -1, -1, -1, -1, -1, 2829, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 4690, -1, -1, -1, -1, -1, 2849, -1,
+ -1, -1, -1, -1, 2855, -1, -1, -1, -1, -1,
+ -1, 2862, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 2876, -1, -1, -1, -1,
+ 4728, -1, -1, -1, -1, -1, -1, -1, 2889, -1,
+ -1, -1, -1, 2894, -1, -1, -1, -1, -1, 2900,
+ -1, -1, 4750, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 2628,
+ 2629, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 4703, -1, -1, -1, -1, 2647, 2648,
+ 1030, 2650, 2651, -1, -1, -1, 2655, 2656, -1, -1,
+ -1, 1041, -1, -1, -1, -1, -1, -1, 1213, 2960,
+ -1, 2670, -1, -1, -1, -1, -1, 1057, 2677, -1,
+ -1, -1, 2681, 2682, 4822, 4745, 2685, 2686, -1, -1,
+ -1, -1, -1, 2692, -1, -1, -1, 4757, -1, -1,
+ -1, -1, -1, -1, -1, 2704, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 2716, -1, -1,
+ -1, -1, 2721, -1, -1, -1, -1, -1, -1, -1,
+ -1, 4791, -1, -1, -1, -1, -1, 2736, -1, -1,
+ -1, -1, -1, -1, -1, -1, 2745, -1, -1, 2748,
+ -1, 2750, 2751, 2752, -1, -1, -1, -1, 2757, 2758,
+ -1, -1, -1, -1, -1, -1, -1, -1, 2767, -1,
+ -1, -1, -1, 51, 2773, -1, -1, -1, 2777, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 2789, 2790, -1, -1, -1, 2794, -1, -1, -1, -1,
+ -1, 2800, 2801, -1, -1, 4943, -1, -1, -1, 4869,
+ -1, -1, -1, -1, -1, 2814, -1, -1, 2817, -1,
+ -1, -1, -1, -1, 3115, 2824, 2825, -1, 4888, -1,
+ -1, 2830, -1, 1213, -1, -1, -1, -1, -1, -1,
+ -1, -1, 3133, 2842, -1, -1, 2845, -1, -1, 3140,
+ -1, 2850, -1, -1, -1, -1, -1, 2856, 2857, -1,
+ -1, -1, -1, -1, -1, 2864, -1, -1, -1, 2868,
+ -1, -1, -1, 2872, 2873, 2874, 2875, -1, 2877, -1,
+ -1, -1, 2634, -1, -1, -1, 2638, 2639, -1, -1,
+ -1, 2890, 2891, -1, 2893, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 2904, 2905, 2906, -1, -1,
+ -1, 1456, -1, -1, 4974, -1, -1, -1, -1, -1,
+ -1, -1, -1, 3214, -1, 5063, -1, -1, -1, 3220,
+ -1, -1, -1, 695, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 2696, -1, -1, -1, -1, -1,
+ 2702, -1, -1, -1, -1, -1, -1, -1, -1, 721,
+ -1, -1, 2961, -1, -1, -1, -1, -1, -1, -1,
+ 2969, -1, -1, -1, 20, -1, -1, -1, 1523, -1,
+ -1, -1, -1, -1, 30, -1, 32, 33, -1, 2988,
+ -1, 2743, -1, 5131, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 3300,
+ -1, -1, -1, -1, 60, -1, 2634, -1, -1, 1564,
+ 2638, 2639, -1, -1, -1, 5085, 72, 5087, 74, 75,
+ -1, -1, -1, -1, -1, 81, -1, 83, -1, 3038,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
+ -1, 97, 1597, -1, -1, -1, -1, -1, 3057, -1,
+ 3059, -1, -1, -1, -1, -1, -1, -1, 114, -1,
+ -1, 117, 5132, -1, -1, -1, 1456, -1, 2696, -1,
+ -1, -1, 5142, -1, 2702, -1, 132, -1, 134, -1,
+ -1, -1, 138, -1, -1, -1, -1, -1, 144, -1,
+ -1, -1, -1, -1, -1, -1, 152, 869, 154, -1,
+ -1, -1, -1, 5251, -1, 161, -1, -1, -1, -1,
+ -1, -1, 5182, -1, -1, 2743, -1, 5187, -1, -1,
+ -1, -1, 178, -1, -1, -1, -1, -1, 3429, 3430,
+ -1, -1, -1, 1523, -1, -1, -1, -1, -1, 195,
+ -1, -1, -1, -1, 3153, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 3456, -1, -1, 3459, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 1564, -1, -1, -1, -1, 235,
+ 236, -1, -1, -1, -1, 241, -1, -1, -1, -1,
+ 2952, -1, -1, -1, -1, -1, -1, -1, -1, 255,
+ -1, -1, -1, -1, -1, -1, -1, 1597, -1, -1,
+ -1, -1, -1, 10, -1, -1, 13, 273, -1, -1,
+ 17, 18, 19, -1, -1, -1, -1, -1, -1, 5377,
+ 3531, 3532, 3533, 1788, 5382, 5383, -1, 34, -1, -1,
+ 37, -1, -1, -1, 1799, -1, -1, 44, -1, -1,
+ -1, -1, -1, -1, 51, 3556, -1, -1, 1030, -1,
+ 1815, 317, -1, 3025, -1, -1, -1, 3029, -1, 1041,
+ -1, -1, -1, -1, 3575, 331, -1, -1, -1, -1,
+ 77, 337, 338, -1, 340, 1057, -1, -1, -1, 345,
+ -1, -1, 348, -1, -1, 351, 3597, -1, 354, -1,
+ -1, -1, -1, -1, -1, 361, -1, -1, -1, -1,
+ -1, 367, 368, 1868, -1, -1, -1, -1, -1, 375,
+ -1, -1, -1, 379, 2952, 5395, -1, -1, 1883, -1,
+ -1, 1886, 1887, 389, -1, -1, -1, -1, -1, 5409,
+ -1, -1, -1, -1, -1, -1, -1, 5495, 404, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 1917, 1918, -1, -1, -1, -1, 424, 3131,
+ 5440, -1, -1, -1, -1, -1, -1, -1, -1, 435,
+ -1, -1, 3683, -1, 3146, 441, -1, -1, -1, 3151,
+ 446, 5539, -1, -1, 191, -1, -1, 3025, 1788, 196,
+ -1, 3029, -1, 459, -1, -1, -1, 695, -1, 1799,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 218, 219, -1, -1, 1815, 482, -1, 3437, 3730,
+ -1, -1, -1, 721, -1, 3736, 233, 3738, -1, -1,
+ -1, 1213, -1, -1, 500, -1, -1, 503, 3457, -1,
+ 3751, -1, 3753, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 3474, 5536, -1, -1, 3478,
+ -1, -1, -1, -1, 3483, 3484, 3485, 274, 1868, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 288, 2047, 1883, 291, -1, 1886, 1887, -1, -1,
+ -1, -1, -1, 3131, -1, -1, -1, -1, -1, -1,
+ 3519, 3520, 3521, 3522, -1, -1, -1, -1, 3146, 3820,
+ -1, -1, -1, 3151, -1, -1, -1, 1917, 1918, -1,
+ -1, 5601, -1, 5603, -1, -1, -1, -1, -1, -1,
+ 3549, -1, -1, -1, -1, -1, -1, -1, 3557, -1,
+ 3559, 3560, 3561, -1, -1, -1, -1, -1, -1, -1,
+ -1, 3862, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 3881, 869, -1, 380, -1, -1, -1, 10, -1, -1,
+ 13, -1, -1, -1, 17, 18, 19, -1, -1, -1,
+ -1, -1, 3903, -1, -1, 3906, -1, -1, -1, -1,
+ -1, 34, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 44, -1, -1, -1, -1, -1, -1, 51, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 3404, -1, -1, 3407, -1, 3409, -1, -1,
+ -1, -1, 3414, -1, 77, 5725, -1, 2047, -1, -1,
+ -1, -1, -1, -1, -1, -1, 3675, -1, 5738, -1,
+ -1, -1, -1, -1, -1, 3684, -1, -1, -1, -1,
+ -1, 5751, -1, 480, 1456, 3986, -1, -1, -1, -1,
+ -1, 488, 489, 490, 491, 492, 493, 494, 495, 496,
+ 3462, 3710, 3711, -1, -1, -1, 3715, -1, 3470, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 3737, -1,
+ -1, -1, -1, 3495, -1, -1, -1, -1, -1, -1,
+ 5810, 5811, 1030, -1, 167, -1, -1, -1, -1, 172,
+ -1, 1523, -1, 1041, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 191, 1057,
+ -1, -1, -1, 196, -1, -1, 3404, -1, -1, 3407,
+ 3789, 3409, -1, -1, -1, 3794, 3414, -1, -1, -1,
+ -1, 3800, 1564, -1, -1, 218, 219, -1, 5868, -1,
+ -1, -1, -1, 3565, -1, 3567, -1, -1, -1, -1,
+ 233, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 3830, -1, -1, -1, 1597, -1, -1, -1, -1,
+ -1, -1, -1, -1, 3462, -1, -1, -1, -1, -1,
+ -1, -1, 3470, -1, -1, -1, -1, -1, -1, -1,
+ 3859, 274, 3861, -1, -1, -1, 4157, -1, -1, -1,
+ -1, -1, -1, -1, -1, 288, -1, 3495, 291, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 3902, -1, -1, -1, -1, -1, 3661,
+ -1, -1, -1, -1, -1, -1, -1, 4208, -1, -1,
+ -1, -1, 4213, -1, 4215, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 1213, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 3565, 4239, 3567,
+ -1, 3703, -1, -1, 6014, -1, -1, 10, -1, -1,
+ 13, -1, -1, -1, 17, 18, 19, 380, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 3731,
+ -1, 34, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 44, -1, -1, 4285, -1, -1, 4288, 51, -1,
+ -1, -1, 6062, -1, -1, -1, -1, -1, -1, -1,
+ 6070, 6071, -1, -1, -1, -1, -1, -1, -1, -1,
+ 6080, -1, -1, -1, 77, -1, 1788, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 1799, -1, -1,
+ -1, -1, -1, 3661, -1, -1, -1, 3799, -1, -1,
+ -1, -1, -1, 1815, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 480, -1, 3821,
+ -1, -1, -1, -1, -1, 488, 489, 490, 491, 492,
+ 493, 494, 495, 496, -1, 3703, -1, 4378, 4379, 2634,
+ -1, 3843, -1, 2638, 2639, -1, -1, -1, 4389, -1,
+ -1, -1, -1, -1, -1, -1, 1868, -1, -1, -1,
+ -1, -1, -1, 3731, -1, 4406, -1, -1, -1, -1,
+ -1, 1883, -1, -1, 1886, 1887, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 191, -1,
+ -1, 4140, -1, 196, 4143, -1, 4145, -1, -1, -1,
+ -1, 2696, -1, -1, -1, 1917, 1918, 2702, -1, 4158,
+ -1, -1, -1, -1, -1, 218, 219, -1, -1, -1,
+ -1, 4170, -1, -1, 3926, 4174, -1, -1, 1456, -1,
+ 233, 3799, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 4193, -1, 4487, 3949, 2743, -1,
+ -1, -1, -1, 3821, -1, -1, -1, -1, -1, -1,
+ -1, -1, 4211, -1, -1, -1, -1, -1, 4217, -1,
+ -1, 274, 3974, -1, -1, 3843, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 288, -1, -1, 291, -1,
+ -1, -1, -1, 4242, -1, 1523, -1, 4246, -1, -1,
+ -1, -1, -1, -1, 2634, -1, -1, 310, 2638, 2639,
+ -1, -1, 4261, 4262, 4263, 4264, -1, -1, -1, -1,
+ -1, -1, 4271, 4272, 4273, 4274, -1, -1, -1, -1,
+ -1, 4280, 4281, -1, -1, 2047, 1564, 4286, 4287, -1,
+ 4289, 4290, 4291, 4292, 4293, 4294, 4295, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 4305, -1, 3926, -1,
+ 4309, 4310, 4311, 4312, -1, -1, 2696, -1, -1, 1597,
+ -1, 10, 2702, -1, 13, -1, -1, 380, 17, 18,
+ 19, 3949, -1, -1, 4333, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
+ 10, -1, 4351, 13, -1, 44, 3974, 17, 18, 19,
+ -1, -1, 51, 2743, -1, -1, -1, -1, -1, -1,
+ -1, -1, 4124, -1, 34, -1, -1, 37, -1, -1,
+ -1, -1, -1, -1, 44, -1, -1, -1, 77, -1,
+ -1, 51, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 2952, -1, -1,
+ -1, -1, 4703, -1, -1, -1, -1, 77, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 480, 4427, -1,
+ -1, -1, -1, -1, -1, 488, 489, 490, 491, 492,
+ 493, 494, 495, 496, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 4745, -1, -1, -1, -1, -1,
+ -1, 4460, 4214, -1, -1, -1, 4757, -1, 4467, -1,
+ 4469, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 3025, -1, -1, -1, 3029, -1, -1, -1, 4240, -1,
+ -1, -1, 4491, -1, -1, -1, -1, -1, -1, -1,
+ 4791, -1, 191, -1, -1, -1, 4124, 196, -1, 10,
+ 1788, -1, 13, -1, -1, -1, 17, 18, 19, -1,
+ -1, 1799, -1, -1, -1, -1, -1, -1, -1, 218,
+ 219, 191, -1, 34, -1, -1, 196, 1815, -1, -1,
+ -1, -1, -1, 44, 233, -1, -1, -1, -1, -1,
+ 51, -1, -1, -1, -1, -1, -1, -1, 218, 219,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 2952, 233, -1, -1, 77, -1, 4869, -1,
+ -1, -1, -1, -1, -1, 274, 3131, -1, -1, -1,
+ 1868, -1, -1, -1, -1, -1, 4214, 4888, -1, 288,
+ -1, 3146, 291, -1, -1, 1883, 3151, -1, 1886, 1887,
+ -1, -1, -1, -1, 274, -1, -1, -1, -1, -1,
+ -1, -1, 4240, -1, -1, -1, -1, 316, 288, -1,
+ 4382, 291, -1, -1, -1, -1, -1, -1, -1, 1917,
+ 1918, -1, -1, 208, -1, 3025, -1, -1, -1, 3029,
+ -1, -1, -1, -1, -1, 220, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 166, 231, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 4429, -1, -1,
+ -1, -1, 4434, 4974, -1, -1, -1, -1, -1, -1,
+ 191, 380, 4691, 4692, 4693, 196, -1, -1, 4697, 4698,
+ 4699, 4700, -1, -1, -1, 4704, -1, -1, 397, -1,
+ -1, -1, -1, -1, -1, -1, -1, 218, 219, -1,
+ 380, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 233, -1, -1, -1, -1, -1, -1, -1,
+ -1, 4740, 4741, 4742, 4743, 4744, -1, 4746, 4747, -1,
+ -1, 3131, -1, -1, -1, -1, -1, -1, -1, 4758,
+ 4759, -1, -1, -1, 4382, -1, 3146, -1, -1, 2047,
+ -1, 3151, -1, 274, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 288, -1, -1,
+ 291, 480, -1, 4792, 5085, -1, 5087, -1, -1, 488,
+ 489, 490, 491, 492, 493, 494, 495, 496, -1, -1,
+ -1, 4429, -1, 314, 4566, -1, 4434, -1, -1, -1,
+ 480, -1, -1, -1, -1, -1, -1, -1, 488, 489,
+ 490, 491, 492, 493, 494, 495, 496, -1, -1, -1,
+ -1, 5132, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 3404,
+ -1, -1, 3407, -1, 3409, -1, -1, -1, -1, 3414,
+ -1, -1, 2634, -1, -1, -1, 2638, 2639, -1, 380,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 5182, -1, -1, -1, 4894, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 3462, -1, -1,
+ -1, -1, -1, -1, -1, 3470, -1, -1, -1, -1,
+ -1, -1, -1, -1, 2696, -1, -1, -1, 4690, -1,
+ 2702, -1, -1, -1, -1, -1, -1, -1, 4566, -1,
+ 3495, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 4959, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 4728, -1, -1, 480,
+ -1, 2743, -1, -1, -1, -1, -1, 488, 489, 490,
+ 491, 492, 493, 494, 495, 496, -1, -1, 4750, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 10, -1,
+ -1, 13, -1, -1, -1, 17, 18, 19, -1, -1,
+ 3565, -1, 3567, -1, 3404, -1, -1, 3407, -1, 3409,
+ -1, -1, 34, -1, 3414, -1, -1, -1, -1, -1,
+ -1, -1, 44, -1, -1, -1, -1, -1, -1, 51,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 633, -1,
+ 4822, 5070, 4690, -1, 639, 77, -1, -1, -1, -1,
+ -1, -1, 3462, -1, -1, -1, -1, -1, -1, -1,
+ 3470, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 5395, -1, -1, -1, -1, -1,
+ 4728, -1, -1, -1, -1, 3495, 3661, -1, 5409, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 4750, -1, 5133, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 5440,
+ -1, -1, -1, 5152, -1, -1, -1, -1, 3703, 5158,
+ 5159, -1, -1, -1, -1, -1, -1, -1, -1, 5168,
+ 172, -1, -1, -1, -1, -1, 5175, -1, -1, -1,
+ -1, -1, -1, -1, -1, 3565, 3731, 3567, -1, 191,
+ 2952, 4943, -1, -1, 196, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 4822, -1, -1, -1, -1, -1,
+ -1, 5210, 5211, -1, -1, -1, 218, 219, -1, -1,
+ -1, -1, -1, -1, 5223, -1, 5225, -1, -1, -1,
+ -1, 233, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 5240, -1, -1, -1, 5536, -1, -1, -1, -1,
+ -1, 816, -1, -1, 3799, -1, -1, -1, -1, -1,
+ -1, -1, -1, 3025, -1, -1, 5265, 3029, -1, -1,
+ 835, -1, 274, -1, 5273, -1, 3821, -1, -1, -1,
+ -1, 3661, -1, -1, -1, -1, 288, -1, -1, 291,
+ -1, -1, -1, -1, -1, -1, -1, -1, 3843, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 5601, 5063, 5603, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 3703, -1, 4943, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 10,
+ 905, -1, 13, 5342, -1, -1, 17, 18, 19, -1,
+ -1, 3731, -1, -1, -1, -1, 2634, -1, -1, -1,
+ 2638, 2639, -1, 34, -1, -1, 37, 5366, -1, 3131,
+ -1, -1, -1, 44, -1, -1, -1, 5376, 380, 5131,
+ 51, 3926, -1, -1, 3146, -1, -1, 952, -1, 3151,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 813, 814, -1, 3949, -1, 77, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 2696, 3799,
+ -1, -1, -1, -1, 2702, -1, -1, -1, -1, 3974,
+ -1, -1, -1, -1, 5725, -1, -1, -1, -1, -1,
+ -1, 3821, -1, -1, 5443, 5063, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 5751, -1, -1, 3843, -1, 2743, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 480, 891,
+ -1, -1, -1, -1, -1, -1, 488, 489, 490, 491,
+ 492, 493, 494, 495, 496, -1, -1, -1, -1, 5251,
+ -1, 1066, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 5131, 5513, -1, -1, -1, -1, -1,
+ 191, -1, -1, -1, -1, 196, -1, -1, -1, 1094,
+ 1095, 1096, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 3926, 218, 219, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 233, -1, -1, -1, -1, -1, -1, 3949,
+ -1, -1, -1, -1, -1, 5574, -1, 5868, -1, 4124,
+ -1, -1, -1, -1, -1, -1, -1, -1, 10, 5588,
+ -1, 13, -1, -1, 3974, 17, 18, 19, -1, -1,
+ 1012, 1013, -1, 274, -1, -1, -1, -1, -1, -1,
+ -1, -1, 34, -1, -1, -1, -1, 288, -1, -1,
+ 291, -1, 44, -1, -1, 5377, -1, -1, -1, 51,
+ 5382, 5383, -1, 5251, -1, -1, -1, -1, 1203, -1,
+ -1, -1, 3404, -1, -1, 3407, -1, 3409, 5647, -1,
+ -1, -1, 3414, -1, 1219, 77, -1, -1, -1, -1,
+ -1, -1, -1, 1228, -1, -1, -1, -1, -1, 4214,
+ -1, -1, -1, -1, 2952, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 4240, -1, -1, -1, -1,
+ 3462, -1, -1, -1, -1, -1, -1, -1, 3470, 380,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 6014, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 3495, -1, -1, -1, -1, 5737, -1,
+ -1, -1, -1, 5495, 4124, -1, -1, 3025, -1, -1,
+ -1, 3029, -1, -1, -1, -1, -1, -1, -1, 5377,
+ -1, -1, -1, -1, 5382, 5383, -1, -1, -1, 191,
+ 5769, 6062, -1, -1, 196, -1, -1, -1, -1, -1,
+ -1, 5780, -1, -1, -1, -1, -1, 5539, -1, 6080,
+ -1, -1, -1, -1, -1, -1, 218, 219, -1, -1,
+ -1, 1366, -1, 3565, -1, 3567, -1, -1, -1, 480,
+ -1, 233, -1, -1, -1, -1, -1, 488, 489, 490,
+ 491, 492, 493, 494, 495, 496, -1, -1, -1, -1,
+ -1, -1, -1, 1245, 4214, -1, -1, 4382, 10, -1,
+ -1, 13, -1, -1, -1, 17, 18, 19, -1, -1,
+ -1, -1, 274, 3131, -1, -1, -1, -1, -1, -1,
+ 4240, -1, 34, -1, 1276, 37, 288, -1, 3146, 291,
+ -1, -1, 44, 3151, -1, -1, -1, 5495, -1, 51,
+ -1, 1446, 5881, -1, 4429, -1, -1, -1, -1, 4434,
+ -1, -1, 1304, 1305, 1306, -1, 1308, -1, -1, 3661,
+ -1, -1, -1, -1, -1, 77, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 1328, -1, -1, -1,
+ -1, 5539, -1, -1, -1, -1, 10, -1, -1, 13,
+ -1, -1, -1, 17, 18, 19, -1, -1, -1, -1,
+ -1, 3703, -1, -1, -1, -1, -1, -1, -1, -1,
+ 34, -1, -1, -1, -1, -1, -1, -1, 380, -1,
+ 44, -1, -1, -1, 1529, -1, -1, 51, -1, 3731,
+ -1, -1, -1, 1538, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 412, -1, -1, 77, -1, -1, -1, -1, -1, -1,
+ -1, -1, 4382, -1, -1, 1570, -1, -1, -1, -1,
+ -1, 1576, 1577, -1, -1, 1580, -1, -1, 1430, 191,
+ -1, 4566, 1434, 1435, 196, -1, -1, -1, 1593, -1,
+ -1, 1596, -1, -1, -1, -1, -1, 3799, -1, -1,
+ -1, -1, -1, -1, -1, -1, 218, 219, -1, 4429,
+ -1, -1, -1, -1, 4434, -1, -1, -1, 480, 3821,
+ -1, 233, -1, -1, -1, -1, 488, 489, 490, 491,
+ 492, 493, 494, 495, 496, -1, 10, -1, -1, 13,
+ -1, 3843, -1, 17, 18, 19, -1, 1652, 172, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 34, 1666, 274, -1, -1, -1, -1, 191, -1, -1,
+ 44, -1, 196, -1, -1, -1, 288, 51, -1, 291,
+ -1, -1, -1, -1, -1, -1, 3404, -1, -1, 3407,
+ -1, 3409, -1, -1, 218, 219, 3414, -1, -1, -1,
+ -1, -1, -1, 77, -1, 4690, -1, -1, -1, 233,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 3926, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 4728, 3462, -1, 4566, 3949, -1, -1,
+ 274, -1, 3470, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 288, 4750, 10, 291, 380, 13,
+ 1775, -1, 3974, 17, 18, 19, -1, 3495, -1, -1,
+ -1, 1786, -1, -1, -1, -1, -1, -1, -1, -1,
+ 34, -1, -1, -1, -1, -1, -1, -1, 172, -1,
+ 44, -1, -1, -1, -1, -1, -1, 51, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 191, -1, -1,
+ -1, -1, 196, 1828, 1829, 1677, 1678, 1679, -1, -1,
+ -1, -1, -1, 77, -1, -1, -1, 4822, -1, -1,
+ -1, -1, -1, -1, 218, 219, -1, 3565, 1853, 3567,
+ -1, -1, -1, -1, -1, 1860, 380, -1, -1, 233,
+ -1, -1, -1, -1, 10, -1, -1, 13, 480, -1,
+ 4690, 17, 18, 19, -1, -1, 488, 489, 490, 491,
+ 492, 493, 494, 495, 496, -1, -1, -1, 34, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 44, -1,
+ 274, -1, -1, -1, -1, 51, -1, -1, 4728, -1,
+ -1, -1, -1, -1, 288, -1, -1, 291, -1, -1,
+ -1, -1, 4124, 167, -1, -1, -1, 1932, -1, -1,
+ 4750, 77, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 3661, -1, -1, -1, 191, -1, -1,
+ -1, -1, 196, -1, -1, -1, 480, -1, 4943, -1,
+ 1965, 1966, -1, -1, 488, 489, 490, 491, 492, 493,
+ 494, 495, 496, -1, 218, 219, -1, 1982, -1, -1,
+ -1, -1, -1, -1, -1, 3703, -1, -1, -1, 233,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 146, 10, 4822, -1, 13, -1, 380, -1, 17, 18,
+ 19, -1, 4214, 3731, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
+ 274, -1, -1, -1, -1, 44, -1, -1, 4240, -1,
+ -1, -1, 51, -1, 288, 191, -1, 291, -1, -1,
+ 196, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 77, -1,
+ -1, -1, 218, 219, -1, -1, -1, -1, 5063, -1,
+ -1, 3799, -1, -1, -1, -1, -1, 233, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 3821, -1, -1, 480, -1, -1, -1,
+ -1, -1, -1, -1, 488, 489, 490, 491, 492, 493,
+ 494, 495, 496, 4943, -1, 3843, -1, -1, 274, -1,
+ -1, -1, -1, -1, -1, -1, 380, -1, -1, -1,
+ -1, -1, 288, -1, -1, 291, 5131, -1, -1, -1,
+ -1, 2003, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 2015, -1, 2017, -1, 2019, -1, -1,
+ 2022, 2023, 2024, -1, -1, -1, -1, -1, 2030, -1,
+ 4382, 2033, 191, -1, -1, -1, -1, 196, -1, -1,
+ -1, -1, -1, -1, -1, -1, 2048, 2049, 2050, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 3926, 218,
+ 219, -1, -1, 2065, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 233, -1, -1, 4429, -1, -1,
+ -1, 3949, 4434, -1, 380, -1, 480, -1, -1, -1,
+ -1, -1, -1, 5063, 488, 489, 490, 491, 492, 493,
+ 494, 495, 496, -1, -1, -1, 3974, -1, -1, -1,
+ -1, -1, -1, -1, -1, 274, 5251, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 288,
+ -1, -1, 291, -1, -1, -1, 10, -1, -1, 13,
+ -1, -1, -1, 17, 18, 19, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 34, 5131, -1, -1, -1, -1, -1, -1, -1, -1,
+ 44, -1, -1, -1, -1, -1, -1, 51, -1, -1,
+ -1, -1, -1, -1, 480, -1, -1, -1, -1, -1,
+ -1, -1, 488, 489, 490, 491, 492, 493, 494, 495,
+ 496, -1, -1, 77, -1, -1, 2208, -1, -1, -1,
+ -1, -1, -1, -1, 4566, -1, -1, -1, -1, -1,
+ -1, 380, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 5377, -1, -1, -1, 2248, 5382, 5383, -1,
+ -1, -1, -1, -1, -1, -1, 4124, -1, -1, -1,
+ 10, 1320, -1, 13, -1, -1, -1, 17, 18, 19,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 5251, -1, -1, 34, -1, -1, -1, -1, -1,
+ -1, -1, -1, 167, 44, -1, 455, -1, -1, 2301,
+ -1, 51, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 1374, -1, 191, -1, -1,
+ -1, 480, 196, -1, -1, -1, -1, 77, -1, 488,
+ 489, 490, 491, 492, 493, 494, 495, 496, 4690, 2494,
+ -1, -1, -1, -1, 218, 219, 4214, -1, -1, 2504,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 233,
+ 5495, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 4240, -1, -1, -1, 4728, -1, 2533, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 4750, -1,
+ 274, -1, -1, -1, 5539, -1, -1, 5377, -1, -1,
+ -1, -1, 5382, 5383, 288, -1, -1, 291, -1, -1,
+ -1, -1, -1, -1, -1, 2580, 2581, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 191, -1, -1, -1, -1, 196, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 2614,
+ -1, -1, -1, -1, -1, -1, -1, -1, 218, 219,
+ 4822, -1, -1, -1, 2476, 2477, 2478, 2479, 2480, 2481,
+ 2482, 2483, 2484, 233, 2486, -1, -1, -1, -1, -1,
+ -1, -1, -1, 2495, -1, 2497, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 380, -1, -1, -1,
+ -1, -1, -1, -1, 4382, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 274, 5495, -1, -1, -1, -1,
+ -1, -1, -1, 2535, -1, -1, -1, 2539, 288, -1,
+ 2542, 291, 2544, -1, -1, 2547, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 4429, -1, -1, -1, -1, 4434, -1, -1, 5539,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 4943, 2747, -1, -1, -1, -1, -1, 2600, 2601,
+ -1, -1, -1, -1, -1, -1, 480, 2762, -1, -1,
+ -1, -1, -1, -1, 488, 489, 490, 491, 492, 493,
+ 494, 495, 496, -1, 1683, -1, -1, -1, 1687, 2784,
+ 380, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 22, -1, -1,
+ -1, 2683, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 40, -1, -1, 4566, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 5063, -1, -1, -1, 2870, 2871, -1, -1, -1,
+ 65, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 480, -1, -1, 78, -1, -1, -1, -1, 488, 489,
+ 490, 491, 492, 493, 494, 495, 496, -1, -1, 94,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 112, -1, -1,
+ -1, -1, -1, 118, -1, -1, -1, -1, -1, 5131,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 136, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 147, -1, -1, -1, -1, -1, -1, -1,
+ -1, 156, -1, -1, -1, -1, 2971, -1, -1, -1,
+ -1, -1, 4690, -1, 169, -1, -1, -1, -1, -1,
+ -1, -1, 177, -1, -1, -1, 181, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 200, -1, -1, -1, -1,
+ 4728, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 4750, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 237, -1, -1, -1, -1, -1, -1, 5251,
+ -1, -1, 247, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 2918, 2919, 2920, -1,
+ -1, -1, 2924, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 2001, 288, -1, -1, 291, -1, -1, 2951,
+ -1, -1, -1, -1, 4822, -1, -1, 2016, -1, -1,
+ -1, 2020, -1, -1, -1, -1, -1, 312, -1, -1,
+ -1, -1, -1, -1, -1, -1, 2035, 2036, 2037, -1,
+ 2039, 326, -1, -1, -1, -1, -1, -1, 333, 22,
+ -1, -1, -1, -1, 27, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 353, -1,
+ -1, -1, -1, -1, -1, -1, -1, 362, -1, -1,
+ -1, -1, -1, -1, 369, 5377, -1, 372, -1, -1,
+ 5382, 5383, 65, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 78, 391, -1, -1, -1,
+ -1, -1, -1, 398, -1, -1, -1, -1, -1, 404,
+ -1, 94, 407, 408, -1, 410, 411, -1, -1, -1,
+ -1, -1, -1, -1, -1, 4943, -1, -1, -1, 112,
+ -1, 426, -1, -1, -1, -1, -1, -1, 433, -1,
+ -1, 436, -1, -1, 439, -1, -1, -1, -1, -1,
+ -1, -1, -1, 136, -1, -1, -1, 452, -1, -1,
+ -1, -1, -1, -1, 147, -1, -1, -1, -1, -1,
+ -1, -1, -1, 156, -1, -1, -1, -1, -1, -1,
+ -1, 3286, -1, -1, -1, -1, 169, -1, -1, -1,
+ -1, 174, -1, 5495, -1, -1, -1, -1, 181, -1,
+ -1, -1, 3307, -1, -1, -1, -1, 3159, -1, -1,
+ -1, -1, 3164, -1, -1, -1, -1, 200, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 5539, -1, -1,
+ 3192, -1, -1, -1, -1, 5063, -1, -1, -1, -1,
+ -1, 3203, -1, 3205, 3206, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 247, -1, -1, 3219, -1, -1,
+ 3222, -1, 3224, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 27, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 288, 3258, -1, 3260, -1,
+ 3262, -1, -1, 5131, -1, -1, -1, -1, 301, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 312,
+ -1, -1, -1, -1, -1, -1, -1, -1, 78, 322,
+ 323, -1, -1, 326, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 94, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 353, -1, 112, 356, -1, -1, -1, 360, 118, 362,
+ -1, -1, -1, -1, -1, -1, 369, -1, -1, 372,
+ -1, -1, -1, -1, -1, -1, 136, -1, 3350, -1,
+ -1, -1, -1, 3355, -1, -1, -1, 147, 391, -1,
+ -1, -1, -1, -1, -1, 398, 156, -1, 3370, -1,
+ -1, 404, -1, -1, 407, -1, -1, -1, 411, 169,
+ -1, -1, -1, 5251, 174, -1, 419, -1, 421, -1,
+ -1, 181, -1, 426, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 439, -1, -1, -1,
+ 200, -1, -1, -1, -1, -1, -1, -1, 3573, 452,
+ -1, -1, -1, -1, -1, -1, -1, -1, 3583, -1,
+ -1, -1, -1, 3435, 2493, 225, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 247, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 288, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 5377,
+ -1, -1, -1, -1, 5382, 5383, -1, -1, -1, -1,
+ -1, -1, 312, -1, -1, -1, -1, -1, 2587, -1,
+ -1, -1, 322, 323, -1, -1, 326, -1, -1, -1,
+ 2599, -1, -1, -1, -1, 2604, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 353, -1, -1, 356, -1, -1, -1,
+ 360, -1, 362, -1, -1, -1, -1, -1, -1, 369,
+ -1, -1, 372, -1, -1, -1, -1, 3742, 3743, 3744,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 391, -1, -1, 3759, -1, -1, -1, 398, -1,
+ -1, -1, -1, 403, 404, -1, -1, 407, -1, -1,
+ -1, 411, -1, -1, -1, -1, -1, 5495, -1, -1,
+ -1, 421, -1, -1, -1, -1, 426, 3792, 3793, -1,
+ -1, -1, 3797, -1, -1, -1, -1, -1, -1, 439,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 452, -1, -1, -1, -1, -1, -1, -1,
+ -1, 5539, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 3688, -1, -1, -1,
+ -1, -1, 3694, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 3901, -1, -1, 3904,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 3773, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 4033, 4034,
+ 4035, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 3923, -1, -1, -1, -1, -1, -1, -1, -1,
+ 3932, -1, -1, -1, -1, -1, -1, -1, 3940, -1,
+ 3942, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 3969, 3970, 3971,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 3988, -1, -1, -1,
+ -1, -1, -1, -1, 3996, -1, -1, 3999, -1, 4001,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 4011,
+ -1, -1, -1, -1, -1, -1, -1, 4019, 4020, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 4101,
+ -1, -1, -1, 3162, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 4118, -1, -1, -1,
+ -1, -1, -1, 3182, 3183, -1, 3185, -1, -1, -1,
+ -1, 3190, 3191, -1, 3193, -1, 3195, -1, -1, -1,
+ 3199, -1, -1, 3202, -1, -1, -1, -1, 3207, -1,
+ -1, -1, -1, -1, -1, -1, -1, 3216, -1, -1,
+ -1, -1, 3221, -1, -1, -1, -1, -1, -1, 3228,
+ 3229, 3230, 3231, -1, -1, -1, 3235, 3236, -1, 3238,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 3255, -1, 3257, -1,
+ -1, -1, -1, -1, 4359, 3264, 3265, 3266, 3267, 3268,
+ 3269, 3270, 3271, 3272, 3273, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 4391, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 3308,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 4423, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 4458, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 4475, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 3450, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 4435, 4436, -1, -1, -1, -1, 4594,
+ 4595, 4596, 4597, -1, 4446, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 4513, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 4524, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 4563, 4564, -1, -1, -1, -1, -1, 4570, 4571,
+ -1, -1, -1, 4575, -1, -1, -1, 4579, -1, -1,
+ 4582, 4583, -1, -1, -1, 4587, -1, -1, -1, -1,
+ -1, 4593, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 4633, -1, 3692, 3693, -1, -1, -1, 3697, -1,
+ -1, -1, 4644, -1, -1, -1, -1, -1, -1, -1,
+ 4652, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 3726, -1, -1,
+ 4672, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 4773, -1, -1, -1, -1, -1, -1, 4780, -1,
+ -1, 4936, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 4947, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 4848, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 3922, -1, -1, -1, -1, -1, 3928,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 3946, 3947, -1,
+ -1, 3950, 3951, 3952, 3953, -1, -1, 3956, 3957, 3958,
+ 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 3989, -1, -1, 3992, -1, 3994, -1, -1, 3997, 3998,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 4013, 4014, 4015, 4016, -1, 4018,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 4992, -1, -1, -1, -1, -1, 4998, 4999, 5000, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 5023, 5024, -1, 4083, 5027, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 5204,
+ -1, 5053, -1, -1, 5209, -1, -1, -1, -1, -1,
+ -1, -1, 5064, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 5228, 4133, -1, -1, -1, 5080, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 5362, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 5284, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 4352, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 5462, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 5327, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 5490, 4395, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 5387, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 5429, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 4514, -1, -1, -1, 4518,
+ -1, 4520, 4521, -1, -1, -1, -1, 4526, 4527, 4528,
+ 4529, -1, -1, -1, 4533, 4534, 4535, 4536, 4537, 4538,
+ 4539, 4540, 4541, 4542, 4543, 4544, 4545, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 4569, -1, -1, 4572, -1, 4574, 5518, -1, 4577, -1,
+ -1, 4580, 4581, -1, -1, 4584, 4585, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 5548, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 5576, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 4643, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 4657, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 5694, 5695, 5696, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 5712, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 5722, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 5792, -1, 4851, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 5816, -1, 5818, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 4938,
+ 4939, -1, -1, -1, -1, -1, -1, 4946, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 4988,
+ -1, -1, -1, 5935, -1, 4994, 4995, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 5013, -1, 5015, -1, -1, -1,
+ 5019, 5020, 5021, 5022, -1, -1, 5025, 5026, -1, -1,
+ -1, 5030, -1, -1, -1, 5034, -1, -1, 5980, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 5047, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 5065, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 5079, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 5089, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 6049, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 5153, -1, 5155, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 5190, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 5277, -1,
+ 5279, 5280, 5281, 5282, 5283, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 5294, 5295, 5296, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 5309, -1, -1, 5312, -1, -1, -1, 5316, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 5334, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 5349, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 5519, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 5533, -1, 5535, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 5587, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 5623, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 5689, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 5736, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 5821, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 5834, 5835, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 5848,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 5889, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 5914, -1, 3, -1, 5,
+ 6, -1, 8, 9, 10, 11, 12, -1, -1, -1,
+ -1, 5930, 5931, -1, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, -1, -1, -1, -1,
+ 36, -1, -1, 39, 40, 41, -1, 43, 44, 45,
+ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ -1, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, -1, 72, 73, 74, 75,
+ 76, 5990, 78, -1, 80, 81, 82, 83, 84, 85,
+ 86, 87, 88, 89, -1, 91, 92, 93, 94, 95,
+ 96, -1, 98, 99, 100, 101, 102, 103, 104, 105,
+ 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, -1, 121, 122, 123, 124, 125,
+ 126, 127, -1, 129, 130, 131, 132, 133, -1, 135,
+ 136, 137, 138, 139, -1, 141, 142, 143, -1, 145,
+ 146, 147, -1, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, 159, 160, -1, 162, 163, 164, 165,
+ 166, -1, 168, -1, 170, 171, -1, 173, 174, 175,
+ 176, 177, -1, 179, 180, -1, 182, 183, 184, -1,
+ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
+ -1, 197, 198, 199, 200, 201, 202, 203, -1, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, -1, 215,
+ -1, 217, 218, 219, 220, 221, 222, 223, 224, 225,
+ 226, -1, -1, 229, 230, 231, 232, 233, -1, 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, -1, 284, 285,
+ -1, -1, 288, 289, 290, -1, -1, 293, 294, 295,
+ 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, -1, 311, 312, 313, 314, 315,
+ 316, 317, 318, -1, 320, 321, 322, 323, 324, 325,
+ 326, 327, 328, 329, 330, 331, 332, 333, 334, -1,
+ 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,
+ 366, 367, -1, 369, 370, 371, 372, 373, 374, 375,
+ 376, 377, 378, 379, 380, 381, 382, 383, 384, -1,
+ 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, 399, 400, -1, 402, 403, -1, 405,
+ 406, 407, 408, 409, 410, 411, -1, 413, 414, 415,
+ -1, -1, 418, 419, 420, 421, 422, 423, 424, 425,
+ 426, 427, 428, 429, 430, 431, -1, 433, 434, 435,
+ 436, 437, 438, 439, -1, 441, 442, 443, 444, 445,
+ 446, 447, 448, 449, 450, 451, 452, 453, 454, -1,
+ -1, 457, -1, -1, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
+ 476, 477, 478, 479, 480, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 491, 492, 493, -1, -1,
+ -1, -1, -1, -1, 500, 501, 3, -1, 5, 6,
+ -1, 8, 9, 10, 11, 12, -1, -1, -1, -1,
+ -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
+ 27, -1, 29, 30, 31, -1, -1, -1, -1, 36,
+ -1, -1, 39, 40, 41, -1, 43, 44, 45, 46,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, -1,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76,
+ -1, 78, -1, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, -1, 91, 92, 93, 94, 95, 96,
+ -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
+ 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, 118, 119, -1, 121, 122, 123, 124, 125, 126,
+ 127, -1, 129, 130, 131, 132, -1, -1, 135, 136,
+ 137, 138, 139, -1, 141, 142, 143, -1, 145, 146,
+ 147, -1, 149, 150, 151, 152, 153, 154, 155, 156,
+ 157, 158, 159, 160, -1, 162, 163, 164, 165, 166,
+ -1, 168, -1, 170, 171, -1, 173, 174, 175, 176,
+ 177, -1, 179, 180, -1, 182, 183, 184, -1, 186,
+ 187, 188, 189, 190, 191, 192, 193, 194, 195, -1,
+ 197, 198, 199, 200, 201, 202, 203, -1, 205, 206,
+ 207, 208, 209, 210, 211, 212, 213, -1, 215, -1,
+ 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
+ -1, -1, 229, 230, 231, 232, 233, -1, 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, -1, 284, 285, -1,
+ -1, 288, 289, 290, -1, -1, 293, 294, 295, 296,
+ 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, -1, 311, 312, 313, 314, 315, 316,
+ 317, 318, -1, 320, 321, 322, 323, 324, 325, 326,
+ 327, 328, 329, 330, 331, 332, 333, 334, -1, 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, 366,
+ 367, 368, 369, 370, 371, 372, 373, 374, 375, 376,
+ 377, 378, 379, 380, 381, 382, 383, 384, -1, 386,
+ 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 399, 400, -1, 402, 403, 404, 405, 406,
+ 407, 408, 409, 410, 411, -1, 413, 414, 415, -1,
+ -1, 418, 419, 420, 421, 422, 423, 424, 425, 426,
+ 427, 428, 429, 430, 431, -1, 433, 434, 435, 436,
+ 437, 438, 439, -1, 441, 442, 443, 444, 445, 446,
+ 447, -1, 449, 450, 451, 452, 453, 454, -1, -1,
+ 457, -1, 459, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
+ 477, 478, 479, 480, -1, 482, -1, -1, -1, -1,
+ -1, -1, -1, -1, 491, 492, -1, -1, -1, -1,
+ -1, -1, -1, 500, 501, 3, -1, 5, 6, -1,
+ 8, 9, 10, 11, 12, -1, -1, -1, -1, -1,
+ -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
+ -1, 29, 30, 31, -1, -1, -1, -1, 36, -1,
+ -1, 39, 40, 41, -1, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, -1, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, -1, 72, 73, 74, 75, 76, -1,
+ 78, -1, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, -1, 91, 92, 93, 94, 95, 96, -1,
+ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ 118, 119, -1, 121, 122, 123, 124, 125, 126, 127,
+ -1, 129, 130, 131, 132, -1, -1, 135, 136, 137,
+ 138, 139, -1, 141, 142, 143, -1, 145, 146, 147,
+ -1, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, 159, 160, -1, 162, 163, 164, 165, 166, -1,
+ 168, -1, 170, 171, -1, 173, 174, 175, 176, 177,
+ -1, 179, 180, -1, 182, 183, 184, -1, 186, 187,
+ 188, 189, 190, 191, 192, 193, 194, 195, -1, 197,
+ 198, 199, 200, 201, 202, 203, -1, 205, 206, 207,
+ 208, 209, 210, 211, 212, 213, -1, 215, -1, 217,
+ 218, 219, 220, 221, 222, 223, 224, 225, 226, -1,
+ -1, 229, 230, 231, 232, 233, -1, 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, -1, 284, 285, -1, -1,
+ 288, 289, 290, -1, -1, 293, 294, 295, 296, 297,
+ 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, -1, 311, 312, 313, 314, 315, 316, 317,
+ 318, -1, 320, 321, 322, 323, 324, 325, 326, 327,
+ 328, 329, 330, 331, 332, 333, 334, -1, 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, 366, 367,
+ -1, 369, 370, 371, 372, 373, 374, 375, 376, 377,
+ 378, 379, 380, 381, 382, 383, 384, -1, 386, 387,
+ 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 399, 400, -1, 402, 403, -1, 405, 406, 407,
+ 408, 409, 410, 411, -1, 413, 414, 415, -1, -1,
+ 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
+ 428, 429, 430, 431, -1, 433, 434, 435, 436, 437,
+ 438, 439, -1, 441, 442, 443, 444, 445, 446, 447,
+ -1, 449, 450, 451, 452, 453, 454, -1, -1, 457,
+ -1, -1, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
+ 478, 479, 480, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 491, 492, -1, -1, -1, -1, -1,
+ -1, -1, 500, 501, 3, -1, 5, 6, -1, 8,
+ 9, 10, 11, 12, -1, -1, -1, -1, -1, -1,
+ -1, 20, 21, 22, 23, 24, 25, 26, 27, -1,
+ 29, 30, 31, -1, -1, -1, -1, 36, -1, -1,
+ 39, 40, 41, -1, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, -1, 57, 58,
+ 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, -1, 72, 73, 74, 75, 76, -1, 78,
+ -1, 80, 81, 82, 83, 84, 85, 86, 87, 88,
+ 89, -1, 91, 92, 93, 94, 95, 96, -1, 98,
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
+ 119, -1, 121, 122, 123, 124, 125, 126, 127, -1,
+ 129, 130, 131, 132, -1, -1, 135, 136, 137, 138,
+ 139, -1, 141, 142, 143, -1, 145, 146, 147, -1,
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ 159, 160, -1, 162, 163, 164, 165, 166, -1, 168,
+ -1, 170, 171, -1, 173, 174, 175, 176, 177, -1,
+ 179, 180, -1, 182, 183, 184, -1, 186, 187, 188,
+ 189, 190, 191, 192, 193, 194, 195, -1, 197, 198,
+ 199, 200, 201, 202, 203, -1, 205, 206, 207, 208,
+ 209, 210, 211, 212, 213, -1, 215, -1, 217, 218,
+ 219, 220, 221, 222, 223, 224, 225, 226, -1, -1,
+ 229, 230, 231, 232, 233, -1, 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, -1, 284, 285, -1, -1, 288,
+ 289, 290, -1, -1, 293, 294, 295, 296, 297, 298,
+ 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, -1, 311, 312, 313, 314, 315, 316, 317, 318,
+ -1, 320, 321, 322, 323, 324, 325, 326, 327, 328,
+ 329, 330, 331, 332, 333, 334, -1, 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, 366, 367, -1,
+ 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
+ 379, 380, 381, 382, 383, 384, -1, 386, 387, 388,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 399, 400, -1, 402, 403, -1, 405, 406, 407, 408,
+ 409, 410, 411, -1, 413, 414, 415, -1, -1, 418,
+ 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
+ 429, 430, 431, -1, 433, 434, 435, 436, 437, 438,
+ 439, -1, 441, 442, 443, 444, 445, 446, 447, -1,
+ 449, 450, 451, 452, 453, 454, -1, -1, 457, -1,
+ -1, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
+ 479, 480, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 491, 492, -1, -1, -1, -1, -1, -1,
+ -1, 500, 501, 3, -1, 5, 6, -1, 8, 9,
+ 10, 11, 12, -1, -1, -1, -1, -1, -1, -1,
+ 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
+ 30, 31, -1, -1, -1, -1, 36, -1, -1, 39,
+ 40, 41, -1, 43, 44, 45, 46, 47, 48, 49,
+ 50, 51, 52, 53, 54, 55, -1, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, -1, 72, 73, 74, 75, 76, -1, 78, -1,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ -1, 91, 92, 93, 94, 95, 96, -1, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ -1, 121, 122, 123, 124, 125, 126, 127, -1, 129,
+ 130, 131, 132, -1, -1, 135, 136, 137, 138, 139,
+ -1, 141, 142, 143, -1, 145, 146, 147, -1, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, -1, 162, 163, 164, 165, 166, -1, 168, -1,
+ 170, 171, -1, 173, 174, 175, 176, 177, -1, 179,
+ 180, -1, 182, 183, 184, -1, 186, 187, 188, 189,
+ 190, 191, 192, 193, 194, 195, -1, 197, 198, 199,
+ 200, 201, 202, 203, -1, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, -1, 215, -1, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, -1, -1, 229,
+ 230, 231, 232, 233, -1, 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, -1, 284, 285, -1, -1, 288, 289,
+ 290, -1, -1, 293, 294, 295, 296, 297, 298, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ -1, 311, 312, 313, 314, 315, 316, 317, 318, -1,
+ 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
+ 330, 331, 332, 333, 334, -1, 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, 366, 367, -1, 369,
+ 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
+ 380, 381, 382, 383, 384, -1, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
+ 400, -1, 402, 403, -1, 405, 406, 407, 408, 409,
+ 410, 411, -1, 413, 414, 415, -1, -1, 418, 419,
+ 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
+ 430, 431, -1, 433, 434, 435, 436, 437, 438, 439,
+ -1, 441, 442, 443, 444, 445, 446, 447, -1, 449,
+ 450, 451, 452, 453, 454, -1, -1, 457, -1, -1,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
+ 480, -1, -1, -1, -1, 3, -1, -1, -1, -1,
+ -1, 491, 492, -1, -1, -1, -1, -1, -1, -1,
+ 500, 501, 20, 21, 22, 23, 24, 25, 26, 27,
+ -1, 29, 30, 31, -1, -1, -1, -1, -1, 37,
+ -1, 39, 40, 41, -1, 43, 44, 45, 46, -1,
+ 48, 49, 50, 51, 52, -1, 54, 55, -1, 57,
+ 58, 59, 60, 61, 62, 63, -1, -1, 66, 67,
+ 68, 69, 70, -1, 72, 73, 74, 75, 76, -1,
+ -1, -1, 80, 81, 82, 83, 84, 85, -1, 87,
+ 88, 89, -1, 91, 92, 93, 94, 95, 96, -1,
+ 98, 99, 100, 101, -1, -1, -1, -1, -1, -1,
+ -1, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ -1, 119, -1, 121, 122, 123, 124, 125, 126, 127,
+ -1, 129, 130, 131, 132, -1, -1, 135, 136, 137,
+ 138, 139, -1, 141, 142, 143, -1, 145, 146, 147,
+ -1, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, -1, 160, -1, 162, 163, 164, 165, 166, -1,
+ 168, -1, 170, -1, -1, 173, 174, 175, 176, 177,
+ -1, 179, 180, -1, 182, 183, 184, -1, 186, 187,
+ 188, 189, 190, -1, 192, 193, 194, 195, -1, 197,
+ 198, 199, 200, 201, 202, 203, -1, 205, 206, 207,
+ 208, 209, 210, 211, 212, 213, -1, 215, -1, 217,
+ -1, -1, 220, 221, 222, 223, 224, 225, 226, -1,
+ -1, 229, 230, 231, 232, -1, -1, 235, 236, 237,
+ -1, -1, 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, -1, 272, 273, -1, 275, -1, 277,
+ 278, 279, 280, 281, 282, -1, 284, 285, -1, -1,
+ 288, 289, 290, -1, -1, 293, 294, 295, -1, 297,
+ -1, 299, 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, -1, 311, 312, 313, 314, 315, 316, 317,
+ 318, -1, 320, 321, 322, 323, 324, 325, 326, 327,
+ 328, 329, 330, 331, 332, 333, 334, -1, 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, 366, 367,
+ -1, 369, 370, 371, 372, 373, -1, 375, 376, 377,
+ 378, 379, -1, 381, 382, 383, 384, -1, 386, 387,
+ 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 399, 400, -1, 402, 403, -1, 405, -1, 407,
+ 408, 409, 410, 411, -1, 413, 414, 415, -1, -1,
+ 418, 419, 420, 421, 422, -1, 424, 425, 426, 427,
+ 428, 429, 430, 431, -1, -1, 434, 435, 436, 437,
+ 438, -1, -1, 441, 442, 443, 444, 445, 446, 447,
+ -1, 449, -1, 451, 452, 453, 454, -1, -1, 457,
+ -1, -1, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
+ 478, 479, -1, -1, -1, -1, -1, 3, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 501, 20, 21, 22, 23, 24, 25,
+ 26, 27, -1, 29, 30, 31, -1, -1, -1, -1,
+ -1, -1, -1, 39, 40, 41, -1, 43, 44, 45,
+ 46, 47, 48, 49, 50, -1, 52, 53, 54, 55,
+ -1, 57, 58, 59, 60, 61, 62, 63, -1, -1,
+ 66, 67, 68, 69, 70, -1, 72, 73, 74, 75,
+ -1, -1, 78, -1, 80, 81, 82, 83, 84, 85,
+ 86, 87, 88, 89, -1, 91, 92, 93, 94, 95,
+ 96, -1, 98, 99, 100, 101, -1, -1, -1, 105,
+ -1, -1, -1, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, -1, 119, -1, 121, 122, 123, 124, 125,
+ 126, 127, -1, 129, 130, 131, 132, -1, -1, 135,
+ 136, 137, 138, 139, -1, 141, 142, 143, -1, 145,
+ 146, 147, -1, 149, 150, 151, 152, -1, 154, 155,
+ 156, 157, -1, -1, 160, -1, 162, 163, 164, 165,
+ 166, -1, 168, -1, 170, 171, -1, 173, 174, 175,
+ 176, 177, -1, 179, -1, -1, -1, 183, 184, -1,
+ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
+ 196, 197, 198, 199, 200, 201, 202, 203, -1, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, -1, 215,
+ -1, 217, 218, 219, 220, 221, 222, 223, 224, 225,
+ 226, -1, -1, 229, -1, 231, 232, 233, -1, 235,
+ 236, 237, -1, -1, 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, -1, -1, 270, -1, 272, 273, 274, 275,
+ -1, -1, 278, 279, 280, 281, 282, -1, 284, 285,
+ -1, -1, 288, 289, 290, -1, -1, 293, 294, 295,
+ 296, 297, 298, -1, 300, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, -1, 311, 312, -1, 314, -1,
+ 316, 317, 318, -1, 320, 321, 322, 323, 324, 325,
+ 326, 327, 328, 329, 330, 331, 332, 333, 334, -1,
+ 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
+ 346, 347, 348, -1, 350, 351, 352, 353, 354, 355,
+ 356, 357, -1, 359, 360, 361, 362, 363, 364, 365,
+ 366, 367, -1, 369, 370, 371, 372, 373, -1, 375,
+ 376, 377, 378, 379, 380, 381, 382, 383, 384, -1,
+ 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, -1, 400, -1, 402, 403, -1, 405,
+ 406, 407, 408, 409, 410, 411, -1, 413, 414, 415,
+ -1, -1, 418, 419, -1, 421, -1, -1, 424, 425,
+ 426, 427, 428, 429, 430, 431, -1, -1, 434, 435,
+ 436, 437, 438, -1, -1, 441, 442, 443, 444, 445,
+ -1, 447, 448, 449, 450, 451, 452, 453, 454, -1,
+ -1, 457, -1, -1, 460, 461, 462, 463, 464, 465,
+ 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 477, 478, 479, -1, -1, -1, 20, 21, 22,
+ 23, 24, 25, 26, 27, -1, 29, 30, 31, -1,
+ -1, -1, -1, -1, -1, 501, 39, 40, 41, -1,
+ 43, 44, 45, 46, 47, 48, 49, 50, -1, 52,
+ 53, 54, 55, -1, 57, 58, 59, 60, 61, 62,
+ 63, -1, -1, 66, 67, 68, 69, 70, -1, 72,
+ 73, 74, 75, -1, -1, 78, -1, 80, 81, 82,
+ 83, 84, 85, 86, 87, 88, 89, -1, 91, 92,
+ 93, 94, 95, 96, -1, 98, 99, 100, 101, -1,
+ -1, -1, 105, -1, -1, -1, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, -1, 119, -1, 121, 122,
+ 123, 124, 125, 126, 127, -1, 129, 130, 131, 132,
+ -1, -1, 135, 136, 137, 138, 139, -1, 141, 142,
+ 143, -1, 145, 146, 147, -1, 149, 150, 151, 152,
+ -1, 154, 155, 156, 157, -1, -1, 160, -1, 162,
+ 163, 164, 165, 166, -1, 168, -1, 170, 171, -1,
+ 173, 174, 175, 176, 177, -1, 179, -1, -1, -1,
+ 183, 184, -1, 186, 187, 188, 189, 190, 191, 192,
+ 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
+ 203, -1, 205, 206, 207, 208, 209, 210, 211, 212,
+ 213, -1, 215, -1, 217, 218, 219, 220, 221, 222,
+ 223, 224, 225, 226, -1, -1, 229, -1, 231, 232,
+ 233, -1, 235, 236, 237, -1, -1, 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, -1, -1, 270, -1, 272,
+ 273, 274, 275, -1, -1, 278, 279, 280, 281, 282,
+ -1, 284, 285, -1, -1, 288, 289, 290, -1, -1,
+ 293, 294, 295, 296, 297, 298, -1, 300, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, -1, 311, 312,
+ -1, 314, -1, 316, 317, 318, -1, 320, 321, 322,
+ 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
+ 333, 334, -1, 336, 337, 338, 339, 340, 341, 342,
+ 343, 344, 345, 346, 347, 348, -1, 350, 351, 352,
+ 353, 354, 355, 356, 357, -1, 359, 360, 361, 362,
+ 363, 364, 365, 366, 367, -1, 369, 370, 371, 372,
+ 373, -1, 375, 376, 377, 378, 379, 380, 381, 382,
+ 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, -1, 400, -1, 402,
+ 403, -1, 405, 406, 407, 408, 409, 410, 411, -1,
+ 413, 414, 415, -1, -1, 418, 419, -1, 421, -1,
+ -1, 424, 425, 426, 427, 428, 429, 430, 431, -1,
+ -1, 434, 435, 436, 437, 438, -1, -1, 441, 442,
+ 443, 444, 445, -1, 447, 448, 449, 450, 451, 452,
+ 453, 454, -1, -1, 457, -1, -1, 460, 461, 462,
+ 463, 464, 465, 3, -1, 5, 6, -1, 8, 9,
+ 10, 11, 12, -1, 477, 478, 479, -1, -1, -1,
+ 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
+ 30, 31, -1, -1, -1, -1, 36, -1, 501, 39,
+ 40, 41, -1, 43, 44, 45, 46, 47, 48, 49,
+ 50, 51, 52, 53, 54, 55, -1, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, -1, 72, 73, 74, 75, 76, -1, 78, -1,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ -1, 91, 92, 93, 94, 95, 96, -1, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ -1, 121, 122, 123, 124, 125, 126, 127, -1, 129,
+ 130, 131, 132, -1, -1, 135, 136, 137, 138, 139,
+ -1, 141, 142, 143, -1, 145, 146, 147, -1, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, -1, 162, 163, 164, 165, 166, -1, 168, -1,
+ 170, 171, -1, 173, 174, 175, 176, 177, -1, 179,
+ 180, -1, 182, 183, 184, -1, 186, 187, 188, 189,
+ 190, 191, 192, 193, 194, 195, -1, 197, 198, 199,
+ 200, 201, 202, 203, -1, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, -1, 215, -1, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, -1, -1, 229,
+ 230, 231, 232, 233, -1, 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, -1, 284, 285, -1, -1, 288, 289,
+ 290, -1, -1, 293, 294, 295, 296, 297, 298, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ -1, 311, 312, 313, 314, 315, 316, 317, 318, -1,
+ 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
+ 330, 331, 332, 333, 334, -1, 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, 366, 367, 368, 369,
+ 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
+ 380, 381, 382, 383, 384, -1, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
+ 400, -1, 402, 403, 404, 405, 406, 407, 408, 409,
+ 410, 411, -1, 413, 414, 415, -1, -1, 418, 419,
+ 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
+ 430, 431, -1, 433, 434, 435, 436, 437, 438, 439,
+ -1, 441, 442, 443, 444, 445, 446, 447, -1, 449,
+ 450, 451, 452, 453, 454, -1, -1, 457, -1, 459,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
+ 480, -1, 482, -1, -1, -1, -1, -1, -1, -1,
+ -1, 491, 492, -1, -1, -1, 3, -1, 5, 6,
+ 500, 8, 9, 10, 11, 12, -1, -1, -1, -1,
+ -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
+ 27, -1, 29, 30, 31, -1, -1, -1, -1, 36,
+ -1, -1, 39, 40, 41, -1, 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, -1, 72, 73, 74, 75, 76,
+ -1, 78, -1, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, -1, 91, 92, 93, 94, 95, 96,
+ -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
+ 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, 118, 119, -1, 121, 122, 123, 124, 125, 126,
+ 127, -1, 129, 130, 131, 132, -1, -1, 135, 136,
+ 137, 138, 139, -1, 141, 142, 143, -1, 145, 146,
+ 147, -1, 149, 150, 151, 152, 153, 154, 155, 156,
+ 157, 158, 159, 160, -1, 162, 163, 164, 165, 166,
+ -1, 168, -1, 170, 171, 172, 173, 174, 175, 176,
+ 177, -1, 179, 180, -1, 182, 183, 184, -1, 186,
+ 187, 188, 189, 190, 191, 192, 193, 194, 195, -1,
+ 197, 198, 199, 200, 201, 202, 203, -1, 205, 206,
+ 207, 208, 209, 210, 211, 212, 213, -1, 215, -1,
+ 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
+ -1, 228, 229, 230, 231, 232, 233, -1, 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, -1, 284, 285, -1,
+ -1, 288, 289, 290, -1, -1, 293, 294, 295, 296,
+ 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, -1, 311, 312, 313, 314, 315, 316,
+ 317, 318, -1, 320, 321, 322, 323, 324, 325, 326,
+ 327, 328, 329, 330, 331, 332, 333, 334, -1, 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, 366,
+ 367, -1, 369, 370, 371, 372, 373, 374, 375, 376,
+ 377, 378, 379, 380, 381, 382, 383, 384, -1, 386,
+ 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 399, 400, -1, 402, 403, -1, 405, 406,
+ 407, 408, 409, 410, 411, -1, 413, 414, 415, -1,
+ 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
+ 427, 428, 429, 430, 431, -1, 433, 434, 435, 436,
+ 437, 438, 439, -1, 441, 442, 443, 444, 445, 446,
+ 447, -1, 449, 450, 451, 452, 453, 454, -1, -1,
+ 457, -1, -1, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
+ 477, 478, 479, 480, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 491, 492, -1, -1, -1, 3,
+ -1, 5, 6, 500, 8, 9, 10, 11, 12, -1,
+ -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31, -1, -1,
+ -1, 35, 36, -1, -1, 39, 40, 41, -1, 43,
+ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
+ 54, 55, -1, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, -1, 72, 73,
+ 74, 75, 76, -1, 78, -1, 80, 81, 82, 83,
+ 84, 85, 86, 87, 88, 89, -1, 91, 92, 93,
+ 94, 95, 96, -1, 98, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, 118, 119, -1, 121, 122, 123,
+ 124, 125, 126, 127, -1, 129, 130, 131, 132, -1,
+ -1, 135, 136, 137, 138, 139, -1, 141, 142, 143,
+ -1, 145, 146, 147, -1, 149, 150, 151, 152, 153,
+ 154, 155, 156, 157, 158, 159, 160, -1, 162, 163,
+ 164, 165, 166, -1, 168, -1, 170, 171, -1, 173,
+ 174, 175, 176, 177, -1, 179, 180, -1, 182, 183,
+ 184, -1, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, -1, 197, 198, 199, 200, 201, 202, 203,
+ -1, 205, 206, 207, 208, 209, 210, 211, 212, 213,
+ -1, 215, -1, 217, 218, 219, 220, 221, 222, 223,
+ 224, 225, 226, -1, -1, 229, 230, 231, 232, 233,
+ -1, 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, -1,
+ 284, 285, -1, -1, 288, 289, 290, -1, -1, 293,
+ 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, -1, 311, 312, 313,
+ 314, 315, 316, 317, 318, -1, 320, 321, 322, 323,
+ 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
+ 334, -1, 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, 366, 367, -1, 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, -1, 402, 403,
+ -1, 405, 406, 407, 408, 409, 410, 411, -1, 413,
+ 414, 415, -1, -1, 418, 419, 420, 421, 422, 423,
+ 424, 425, 426, 427, 428, 429, 430, 431, -1, 433,
+ 434, 435, 436, 437, 438, 439, -1, 441, 442, 443,
+ 444, 445, 446, 447, -1, 449, 450, 451, 452, 453,
+ 454, -1, -1, 457, -1, -1, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
+ 474, 475, 476, 477, 478, 479, 480, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 491, 492, -1,
+ -1, -1, 3, -1, 5, 6, 500, 8, 9, 10,
+ 11, 12, -1, -1, -1, -1, -1, -1, -1, 20,
+ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, -1, -1, -1, 35, 36, -1, -1, 39, 40,
+ 41, -1, 43, 44, 45, 46, 47, 48, 49, 50,
+ 51, 52, 53, 54, 55, -1, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ -1, 72, 73, 74, 75, 76, -1, 78, -1, 80,
+ 81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
+ 91, 92, 93, 94, 95, 96, -1, 98, 99, 100,
+ 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
+ 121, 122, 123, 124, 125, 126, 127, -1, 129, 130,
+ 131, 132, -1, -1, 135, 136, 137, 138, 139, -1,
+ 141, 142, 143, -1, 145, 146, 147, -1, 149, 150,
+ 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
+ -1, 162, 163, 164, 165, 166, -1, 168, -1, 170,
+ 171, -1, 173, 174, 175, 176, 177, -1, 179, 180,
+ -1, 182, 183, 184, -1, 186, 187, 188, 189, 190,
+ 191, 192, 193, 194, 195, -1, 197, 198, 199, 200,
+ 201, 202, 203, -1, 205, 206, 207, 208, 209, 210,
+ 211, 212, 213, -1, 215, -1, 217, 218, 219, 220,
+ 221, 222, 223, 224, 225, 226, -1, -1, 229, 230,
+ 231, 232, 233, -1, 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, -1, 284, 285, -1, -1, 288, 289, 290,
+ -1, -1, 293, 294, 295, 296, 297, 298, 299, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, -1,
+ 311, 312, 313, 314, 315, 316, 317, 318, -1, 320,
+ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 334, -1, 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, 366, 367, -1, 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,
+ -1, 402, 403, -1, 405, 406, 407, 408, 409, 410,
+ 411, -1, 413, 414, 415, -1, -1, 418, 419, 420,
+ 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
+ 431, -1, 433, 434, 435, 436, 437, 438, 439, -1,
+ 441, 442, 443, 444, 445, 446, 447, -1, 449, 450,
+ 451, 452, 453, 454, -1, -1, 457, -1, -1, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
+ 471, 472, 473, 474, 475, 476, 477, 478, 479, 480,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 491, 492, -1, -1, -1, 3, -1, 5, 6, 500,
+ 8, 9, 10, 11, 12, -1, -1, -1, -1, -1,
+ -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
+ -1, 29, 30, 31, -1, -1, -1, -1, 36, -1,
+ -1, 39, 40, 41, -1, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, -1, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, -1, 72, 73, 74, 75, 76, -1,
+ 78, -1, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, -1, 91, 92, 93, 94, 95, 96, -1,
+ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ 118, 119, -1, 121, 122, 123, 124, 125, 126, 127,
+ -1, 129, 130, 131, 132, -1, -1, 135, 136, 137,
+ 138, 139, -1, 141, 142, 143, -1, 145, 146, 147,
+ -1, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, 159, 160, -1, 162, 163, 164, 165, 166, -1,
+ 168, -1, 170, 171, -1, 173, 174, 175, 176, 177,
+ -1, 179, 180, -1, 182, 183, 184, -1, 186, 187,
+ 188, 189, 190, 191, 192, 193, 194, 195, -1, 197,
+ 198, 199, 200, 201, 202, 203, -1, 205, 206, 207,
+ 208, 209, 210, 211, 212, 213, -1, 215, -1, 217,
+ 218, 219, 220, 221, 222, 223, 224, 225, 226, -1,
+ -1, 229, 230, 231, 232, 233, -1, 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, -1, 284, 285, -1, -1,
+ 288, 289, 290, -1, -1, 293, 294, 295, 296, 297,
+ 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, -1, 311, 312, 313, 314, 315, 316, 317,
+ 318, -1, 320, 321, 322, 323, 324, 325, 326, 327,
+ 328, 329, 330, 331, 332, 333, 334, -1, 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, 366, 367,
+ -1, 369, 370, 371, 372, 373, 374, 375, 376, 377,
+ 378, 379, 380, 381, 382, 383, 384, -1, 386, 387,
+ 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 399, 400, -1, 402, 403, -1, 405, 406, 407,
+ 408, 409, 410, 411, -1, 413, 414, 415, -1, -1,
+ 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
+ 428, 429, 430, 431, -1, 433, 434, 435, 436, 437,
+ 438, 439, -1, 441, 442, 443, 444, 445, 446, 447,
+ -1, 449, 450, 451, 452, 453, 454, -1, -1, 457,
+ -1, -1, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
+ 478, 479, 480, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 491, 492, -1, -1, -1, -1, -1,
+ 498, 499, 500, 3, -1, 5, 6, -1, 8, 9,
+ 10, 11, 12, -1, -1, -1, -1, -1, -1, -1,
+ 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
+ 30, 31, -1, -1, -1, -1, 36, -1, -1, 39,
+ 40, 41, -1, 43, 44, 45, 46, 47, 48, 49,
+ 50, 51, 52, 53, 54, 55, -1, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, -1, 72, 73, 74, 75, 76, -1, 78, -1,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ -1, 91, 92, 93, 94, 95, 96, -1, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ -1, 121, 122, 123, 124, 125, 126, 127, -1, 129,
+ 130, 131, 132, -1, -1, 135, 136, 137, 138, 139,
+ -1, 141, 142, 143, -1, 145, 146, 147, -1, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, -1, 162, 163, 164, 165, 166, -1, 168, -1,
+ 170, 171, -1, 173, 174, 175, 176, 177, -1, 179,
+ 180, -1, 182, 183, 184, -1, 186, 187, 188, 189,
+ 190, 191, 192, 193, 194, 195, -1, 197, 198, 199,
+ 200, 201, 202, 203, -1, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, -1, 215, -1, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, -1, -1, 229,
+ 230, 231, 232, 233, -1, 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, -1, 284, 285, -1, -1, 288, 289,
+ 290, -1, -1, 293, 294, 295, 296, 297, 298, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ -1, 311, 312, 313, 314, 315, 316, 317, 318, -1,
+ 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
+ 330, 331, 332, 333, 334, -1, 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, 366, 367, -1, 369,
+ 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
+ 380, 381, 382, 383, 384, -1, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
+ 400, -1, 402, 403, -1, 405, 406, 407, 408, 409,
+ 410, 411, -1, 413, 414, 415, -1, -1, 418, 419,
+ 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
+ 430, 431, -1, 433, 434, 435, 436, 437, 438, 439,
+ -1, 441, 442, 443, 444, 445, 446, 447, -1, 449,
+ 450, 451, 452, 453, 454, -1, -1, 457, -1, -1,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
+ 480, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 491, 492, 493, -1, -1, 3, -1, 5, 6,
+ 500, 8, 9, 10, 11, 12, -1, -1, -1, -1,
+ -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, -1, -1, -1, -1, 36,
+ -1, -1, 39, 40, 41, -1, 43, 44, 45, 46,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, -1,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76,
+ -1, 78, -1, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, -1, 91, 92, 93, 94, 95, 96,
+ -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
+ 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, 118, 119, -1, 121, 122, 123, 124, 125, 126,
+ 127, -1, 129, 130, 131, 132, -1, -1, 135, 136,
+ 137, 138, 139, -1, 141, 142, 143, -1, 145, 146,
+ 147, -1, 149, 150, 151, 152, 153, 154, 155, 156,
+ 157, 158, 159, 160, -1, 162, 163, 164, 165, 166,
+ -1, 168, -1, 170, 171, -1, 173, 174, 175, 176,
+ 177, -1, 179, 180, -1, 182, 183, 184, -1, 186,
+ 187, 188, 189, 190, 191, 192, 193, 194, 195, -1,
+ 197, 198, 199, 200, 201, 202, 203, -1, 205, 206,
+ 207, 208, 209, 210, 211, 212, 213, -1, 215, -1,
+ 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
+ -1, -1, 229, 230, 231, 232, 233, -1, 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, -1, 284, 285, -1,
+ -1, 288, 289, 290, -1, -1, 293, 294, 295, 296,
+ 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, -1, 311, 312, 313, 314, 315, 316,
+ 317, 318, -1, 320, 321, 322, 323, 324, 325, 326,
+ 327, 328, 329, 330, 331, 332, 333, 334, -1, 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, 366,
+ 367, -1, 369, 370, 371, 372, 373, 374, 375, 376,
+ 377, 378, 379, 380, 381, 382, 383, 384, -1, 386,
+ 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 399, 400, -1, 402, 403, -1, 405, 406,
+ 407, 408, 409, 410, 411, -1, 413, 414, 415, -1,
+ -1, 418, 419, 420, 421, 422, 423, 424, 425, 426,
+ 427, 428, 429, 430, 431, -1, 433, 434, 435, 436,
+ 437, 438, 439, -1, 441, 442, 443, 444, 445, 446,
+ 447, -1, 449, 450, 451, 452, 453, 454, -1, -1,
+ 457, -1, -1, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
+ 477, 478, 479, 480, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 491, 492, -1, -1, -1, 3,
+ -1, 5, 6, 500, 8, 9, 10, 11, 12, -1,
+ -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
+ 24, 25, 26, 27, -1, 29, 30, 31, -1, -1,
+ -1, -1, 36, -1, -1, 39, 40, 41, -1, 43,
+ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
+ 54, 55, -1, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, -1, 72, 73,
+ 74, 75, 76, -1, 78, -1, 80, 81, 82, 83,
+ 84, 85, 86, 87, 88, 89, -1, 91, 92, 93,
+ 94, 95, 96, -1, 98, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, 118, 119, -1, 121, 122, 123,
+ 124, 125, 126, 127, -1, 129, 130, 131, 132, -1,
+ -1, 135, 136, 137, 138, 139, -1, 141, 142, 143,
+ -1, 145, 146, 147, -1, 149, 150, 151, 152, 153,
+ 154, 155, 156, 157, 158, 159, 160, -1, 162, 163,
+ 164, 165, 166, -1, 168, -1, 170, 171, -1, 173,
+ 174, 175, 176, 177, -1, 179, 180, -1, 182, 183,
+ 184, -1, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, -1, 197, 198, 199, 200, 201, 202, 203,
+ -1, 205, 206, 207, 208, 209, 210, 211, 212, 213,
+ -1, 215, -1, 217, 218, 219, 220, 221, 222, 223,
+ 224, 225, 226, -1, -1, 229, 230, 231, 232, 233,
+ -1, 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, -1,
+ 284, 285, -1, -1, 288, 289, 290, -1, -1, 293,
+ 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, -1, 311, 312, 313,
+ 314, 315, 316, 317, 318, -1, 320, 321, 322, 323,
+ 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
+ 334, -1, 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, 366, 367, -1, 369, 370, 371, 372, 373,
+ 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
+ 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 399, 400, -1, 402, 403,
+ -1, 405, 406, 407, 408, 409, 410, 411, -1, 413,
+ 414, 415, -1, -1, 418, 419, 420, 421, 422, 423,
+ 424, 425, 426, 427, 428, 429, 430, 431, -1, 433,
+ 434, 435, 436, 437, 438, 439, -1, 441, 442, 443,
+ 444, 445, 446, 447, 448, 449, 450, 451, 452, 453,
+ 454, -1, -1, 457, -1, -1, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
+ 474, 475, 476, 477, 478, 479, 480, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 491, 492, -1,
+ -1, -1, 3, -1, 5, 6, 500, 8, 9, 10,
+ 11, 12, -1, -1, -1, -1, -1, -1, -1, 20,
+ 21, 22, 23, 24, 25, 26, 27, -1, 29, 30,
+ 31, -1, -1, -1, -1, 36, -1, -1, 39, 40,
+ 41, -1, 43, 44, 45, 46, 47, 48, 49, 50,
+ 51, 52, 53, 54, 55, -1, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ -1, 72, 73, 74, 75, 76, -1, 78, -1, 80,
+ 81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
+ 91, 92, 93, 94, 95, 96, -1, 98, 99, 100,
+ 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
+ 121, 122, 123, 124, 125, 126, 127, -1, 129, 130,
+ 131, 132, -1, -1, 135, 136, 137, 138, 139, -1,
+ 141, 142, 143, -1, 145, 146, 147, -1, 149, 150,
+ 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
+ -1, 162, 163, 164, 165, 166, -1, 168, -1, 170,
+ 171, 172, 173, 174, 175, 176, 177, -1, 179, 180,
+ -1, 182, 183, 184, -1, 186, 187, 188, 189, 190,
+ 191, 192, 193, 194, 195, -1, 197, 198, 199, 200,
+ 201, 202, 203, -1, 205, 206, 207, 208, 209, 210,
+ 211, 212, 213, -1, 215, -1, 217, 218, 219, 220,
+ 221, 222, 223, 224, 225, 226, -1, -1, 229, 230,
+ 231, 232, 233, -1, 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, -1, 284, 285, -1, -1, 288, 289, 290,
+ -1, -1, 293, 294, 295, 296, 297, 298, 299, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, -1,
+ 311, 312, 313, 314, 315, 316, 317, 318, -1, 320,
+ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 334, -1, 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, 366, 367, -1, 369, 370,
+ 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
+ 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
+ -1, 402, 403, -1, 405, 406, 407, 408, 409, 410,
+ 411, -1, 413, 414, 415, -1, -1, 418, 419, 420,
+ 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
+ 431, -1, 433, 434, 435, 436, 437, 438, 439, -1,
+ 441, 442, 443, 444, 445, 446, 447, -1, 449, 450,
+ 451, 452, 453, 454, -1, -1, 457, -1, -1, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
+ 471, 472, 473, 474, 475, 476, 477, 478, 479, 480,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 491, 492, -1, -1, -1, 3, -1, 5, 6, 500,
+ 8, 9, 10, 11, 12, -1, -1, -1, -1, -1,
+ -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
+ -1, 29, 30, 31, -1, -1, -1, -1, 36, -1,
+ -1, 39, 40, 41, -1, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, -1, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, -1, 72, 73, 74, 75, 76, -1,
+ 78, -1, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, -1, 91, 92, 93, 94, 95, 96, -1,
+ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ 118, 119, -1, 121, 122, 123, 124, 125, 126, 127,
+ -1, 129, 130, 131, 132, -1, -1, 135, 136, 137,
+ 138, 139, -1, 141, 142, 143, -1, 145, 146, 147,
+ -1, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, 159, 160, -1, 162, 163, 164, 165, 166, -1,
+ 168, -1, 170, 171, -1, 173, 174, 175, 176, 177,
+ -1, 179, 180, -1, 182, 183, 184, -1, 186, 187,
+ 188, 189, 190, 191, 192, 193, 194, 195, -1, 197,
+ 198, 199, 200, 201, 202, 203, -1, 205, 206, 207,
+ 208, 209, 210, 211, 212, 213, -1, 215, -1, 217,
+ 218, 219, 220, 221, 222, 223, 224, 225, 226, -1,
+ -1, 229, 230, 231, 232, 233, -1, 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, -1, 284, 285, -1, -1,
+ 288, 289, 290, -1, -1, 293, 294, 295, 296, 297,
+ 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, -1, 311, 312, 313, 314, 315, 316, 317,
+ 318, -1, 320, 321, 322, 323, 324, 325, 326, 327,
+ 328, 329, 330, 331, 332, 333, 334, -1, 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, 366, 367,
+ -1, 369, 370, 371, 372, 373, 374, 375, 376, 377,
+ 378, 379, 380, 381, 382, 383, 384, -1, 386, 387,
+ 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 399, 400, -1, 402, 403, -1, 405, 406, 407,
+ 408, 409, 410, 411, -1, 413, 414, 415, 416, -1,
+ 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
+ 428, 429, 430, 431, -1, 433, 434, 435, 436, 437,
+ 438, 439, -1, 441, 442, 443, 444, 445, 446, 447,
+ -1, 449, 450, 451, 452, 453, 454, -1, -1, 457,
+ -1, -1, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
+ 478, 479, 480, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 491, 492, -1, -1, -1, 3, -1,
+ 5, 6, 500, 8, 9, 10, 11, 12, -1, -1,
+ -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
+ 25, 26, 27, -1, 29, 30, 31, -1, -1, -1,
+ -1, 36, -1, -1, 39, 40, 41, -1, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ 55, -1, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, -1, 72, 73, 74,
+ 75, 76, -1, 78, -1, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 89, -1, 91, 92, 93, 94,
+ 95, 96, -1, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, 118, 119, -1, 121, 122, 123, 124,
+ 125, 126, 127, -1, 129, 130, 131, 132, -1, -1,
+ 135, 136, 137, 138, 139, -1, 141, 142, 143, -1,
+ 145, 146, 147, -1, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, -1, 162, 163, 164,
+ 165, 166, -1, 168, -1, 170, 171, -1, 173, 174,
+ 175, 176, 177, -1, 179, 180, -1, 182, 183, 184,
+ -1, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+ 195, -1, 197, 198, 199, 200, 201, 202, 203, -1,
+ 205, 206, 207, 208, 209, 210, 211, 212, 213, -1,
+ 215, -1, 217, 218, 219, 220, 221, 222, 223, 224,
+ 225, 226, -1, -1, 229, 230, 231, 232, 233, -1,
+ 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, -1, 284,
+ 285, -1, -1, 288, 289, 290, -1, -1, 293, 294,
+ 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, -1, 311, 312, 313, 314,
+ 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ -1, 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, 366, 367, -1, 369, 370, 371, 372, 373, 374,
+ 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
+ -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 399, 400, -1, 402, 403, -1,
+ 405, 406, 407, 408, 409, 410, 411, -1, 413, 414,
+ 415, -1, -1, 418, 419, 420, 421, 422, 423, 424,
+ 425, 426, 427, 428, 429, 430, 431, -1, 433, 434,
+ 435, 436, 437, 438, 439, -1, 441, 442, 443, 444,
+ 445, 446, 447, -1, 449, 450, 451, 452, 453, 454,
+ -1, -1, 457, -1, -1, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
+ 475, 476, 477, 478, 479, 480, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 491, 492, -1, -1,
+ -1, 3, -1, 5, 6, 500, 8, 9, 10, 11,
+ 12, -1, -1, -1, -1, -1, -1, -1, 20, 21,
+ 22, 23, 24, 25, 26, 27, -1, 29, 30, 31,
+ -1, -1, -1, -1, 36, -1, -1, 39, 40, 41,
+ -1, 43, 44, 45, 46, 47, 48, 49, 50, 51,
+ 52, 53, 54, 55, -1, 57, 58, 59, 60, 61,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, -1,
+ 72, 73, 74, 75, 76, -1, 78, -1, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, -1, 91,
+ 92, 93, 94, 95, 96, -1, 98, 99, 100, 101,
+ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
+ 122, 123, 124, 125, 126, 127, -1, 129, 130, 131,
+ 132, -1, -1, 135, 136, 137, 138, 139, -1, 141,
+ 142, 143, -1, 145, 146, 147, -1, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, 159, 160, -1,
+ 162, 163, 164, 165, 166, -1, 168, -1, 170, 171,
+ -1, 173, 174, 175, 176, 177, -1, 179, 180, -1,
+ 182, 183, 184, -1, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, -1, 197, 198, 199, 200, 201,
+ 202, 203, -1, 205, 206, 207, 208, 209, 210, 211,
+ 212, 213, -1, 215, -1, 217, 218, 219, 220, 221,
+ 222, 223, 224, 225, 226, -1, -1, 229, 230, 231,
+ 232, 233, -1, 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, -1, 284, 285, -1, -1, 288, 289, 290, -1,
+ -1, 293, 294, 295, 296, 297, 298, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, -1, 311,
+ 312, 313, 314, 315, 316, 317, 318, -1, 320, 321,
+ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
+ 332, 333, 334, -1, 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, 366, 367, -1, 369, 370, 371,
+ 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
+ 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 399, 400, -1,
+ 402, 403, -1, 405, 406, 407, 408, 409, 410, 411,
+ -1, 413, 414, 415, -1, -1, 418, 419, 420, 421,
+ 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
+ -1, 433, 434, 435, 436, 437, 438, 439, -1, 441,
+ 442, 443, 444, 445, 446, 447, -1, 449, 450, 451,
+ 452, 453, 454, -1, -1, 457, -1, -1, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
+ 472, 473, 474, 475, 476, 477, 478, 479, 480, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 491,
+ 492, -1, -1, -1, 3, -1, 5, 6, 500, 8,
+ 9, 10, 11, 12, -1, -1, -1, -1, -1, -1,
+ -1, 20, 21, 22, 23, 24, 25, 26, 27, -1,
+ 29, 30, 31, -1, -1, -1, -1, 36, -1, -1,
+ 39, 40, 41, -1, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, -1, 57, 58,
+ 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, -1, 72, 73, 74, 75, 76, -1, 78,
+ -1, 80, 81, 82, 83, 84, 85, 86, 87, 88,
+ 89, -1, 91, 92, 93, 94, 95, 96, -1, 98,
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
+ 119, -1, 121, 122, 123, 124, 125, 126, 127, -1,
+ 129, 130, 131, 132, -1, -1, 135, 136, 137, 138,
+ 139, -1, 141, 142, 143, -1, 145, 146, 147, -1,
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ 159, 160, -1, 162, 163, 164, 165, 166, -1, 168,
+ -1, 170, 171, -1, 173, 174, 175, 176, 177, -1,
+ 179, 180, -1, 182, 183, 184, -1, 186, 187, 188,
+ 189, 190, 191, 192, 193, 194, 195, -1, 197, 198,
+ 199, 200, 201, 202, 203, -1, 205, 206, 207, 208,
+ 209, 210, 211, 212, 213, -1, 215, -1, 217, 218,
+ 219, 220, 221, 222, 223, 224, 225, 226, -1, -1,
+ 229, 230, 231, 232, 233, -1, 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, -1, 284, 285, -1, -1, 288,
+ 289, 290, -1, -1, 293, 294, 295, 296, 297, 298,
+ 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, -1, 311, 312, 313, 314, 315, 316, 317, 318,
+ -1, 320, 321, 322, 323, 324, 325, 326, 327, 328,
+ 329, 330, 331, 332, 333, 334, -1, 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, 366, 367, -1,
+ 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
+ 379, 380, 381, 382, 383, 384, -1, 386, 387, 388,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 399, 400, -1, 402, 403, -1, 405, 406, 407, 408,
+ 409, 410, 411, -1, 413, 414, 415, -1, -1, 418,
+ 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
+ 429, 430, 431, -1, 433, 434, 435, 436, 437, 438,
+ 439, -1, 441, 442, 443, 444, 445, 446, 447, -1,
+ 449, 450, 451, 452, 453, 454, -1, -1, 457, -1,
+ -1, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
+ 479, 480, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 491, 492, -1, -1, -1, 3, -1, 5,
+ 6, 500, 8, 9, 10, 11, 12, -1, -1, -1,
+ -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
+ 26, 27, -1, 29, 30, 31, -1, -1, -1, -1,
+ 36, -1, -1, 39, 40, 41, -1, 43, 44, 45,
+ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ -1, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, -1, 72, 73, 74, 75,
+ 76, -1, 78, -1, 80, 81, 82, 83, 84, 85,
+ 86, 87, 88, 89, -1, 91, 92, 93, 94, 95,
+ 96, -1, 98, 99, 100, 101, 102, 103, 104, 105,
+ 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, -1, 121, 122, 123, 124, 125,
+ 126, 127, -1, 129, 130, 131, 132, -1, -1, 135,
+ 136, 137, 138, 139, -1, 141, 142, 143, -1, 145,
+ 146, 147, -1, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, 159, 160, -1, 162, 163, 164, 165,
+ 166, -1, 168, -1, 170, 171, -1, 173, 174, 175,
+ 176, 177, -1, 179, 180, -1, 182, 183, 184, -1,
+ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
+ -1, 197, 198, 199, 200, 201, 202, 203, -1, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, -1, 215,
+ -1, 217, 218, 219, 220, 221, 222, 223, 224, 225,
+ 226, -1, -1, 229, 230, 231, 232, 233, -1, 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, -1, 284, 285,
+ -1, -1, 288, 289, 290, -1, -1, 293, 294, 295,
+ 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, -1, 311, 312, 313, 314, 315,
+ 316, 317, 318, -1, 320, 321, 322, 323, 324, 325,
+ 326, 327, 328, 329, 330, 331, 332, 333, 334, -1,
+ 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,
+ 366, 367, -1, 369, 370, 371, 372, 373, 374, 375,
+ 376, 377, 378, 379, 380, 381, 382, 383, 384, -1,
+ 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, 399, 400, -1, 402, 403, -1, 405,
+ 406, 407, 408, 409, 410, 411, -1, 413, 414, 415,
+ -1, -1, 418, 419, 420, 421, 422, 423, 424, 425,
+ 426, 427, 428, 429, 430, 431, -1, 433, 434, 435,
+ 436, 437, 438, 439, -1, 441, 442, 443, 444, 445,
+ 446, 447, -1, 449, 450, 451, 452, 453, 454, -1,
+ -1, 457, -1, -1, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
+ 476, 477, 478, 479, 480, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 491, 492, -1, -1, -1,
+ 3, -1, 5, 6, 500, 8, 9, 10, 11, 12,
+ -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
+ 23, 24, 25, 26, 27, -1, 29, 30, 31, -1,
+ -1, -1, -1, 36, -1, -1, 39, 40, 41, -1,
+ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, -1, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, -1, 72,
+ 73, 74, 75, 76, -1, 78, -1, 80, 81, 82,
+ 83, 84, 85, 86, 87, 88, 89, -1, 91, 92,
+ 93, 94, 95, 96, -1, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, 118, 119, -1, 121, 122,
+ 123, 124, 125, 126, 127, -1, 129, 130, 131, 132,
+ -1, -1, 135, 136, 137, 138, 139, -1, 141, 142,
+ 143, -1, 145, 146, 147, -1, 149, 150, 151, 152,
+ 153, 154, 155, 156, 157, 158, 159, 160, -1, 162,
+ 163, 164, 165, 166, -1, 168, -1, 170, 171, -1,
+ 173, 174, 175, 176, 177, -1, 179, 180, -1, 182,
+ 183, 184, -1, 186, 187, 188, 189, 190, 191, 192,
+ 193, 194, 195, -1, 197, 198, 199, 200, 201, 202,
+ 203, -1, 205, 206, 207, 208, 209, 210, 211, 212,
+ 213, -1, 215, -1, 217, 218, 219, 220, 221, 222,
+ 223, 224, 225, 226, -1, -1, 229, 230, 231, 232,
+ 233, -1, 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,
+ -1, 284, 285, -1, -1, 288, 289, 290, -1, -1,
+ 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, -1, 311, 312,
+ 313, 314, 315, 316, 317, 318, -1, 320, 321, 322,
+ 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
+ 333, 334, -1, 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, 366, 367, -1, 369, 370, 371, 372,
+ 373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
+ 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 399, 400, -1, 402,
+ 403, -1, 405, 406, 407, 408, 409, 410, 411, -1,
+ 413, 414, 415, -1, -1, 418, 419, 420, 421, 422,
+ 423, 424, 425, 426, 427, 428, 429, 430, 431, -1,
+ 433, 434, 435, 436, 437, 438, 439, -1, 441, 442,
+ 443, 444, 445, 446, 447, -1, 449, 450, 451, 452,
+ 453, 454, -1, -1, 457, -1, -1, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
+ 473, 474, 475, 476, 477, 478, 479, 480, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 491, 492,
+ -1, -1, -1, 3, -1, 5, 6, 500, 8, 9,
+ 10, 11, 12, -1, -1, -1, -1, -1, -1, -1,
+ 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
+ 30, 31, -1, -1, -1, -1, 36, -1, -1, 39,
+ 40, 41, -1, 43, 44, 45, 46, 47, 48, 49,
+ 50, 51, 52, 53, 54, 55, -1, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, -1, 72, 73, 74, 75, 76, -1, 78, -1,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ -1, 91, 92, 93, 94, 95, 96, -1, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ -1, 121, 122, 123, 124, 125, 126, 127, -1, 129,
+ 130, 131, 132, -1, -1, 135, 136, 137, 138, 139,
+ -1, 141, 142, 143, -1, 145, 146, 147, -1, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, -1, 162, 163, 164, 165, 166, -1, 168, -1,
+ 170, 171, -1, 173, 174, 175, 176, 177, -1, 179,
+ 180, -1, 182, 183, 184, -1, 186, 187, 188, 189,
+ 190, 191, 192, 193, 194, 195, -1, 197, 198, 199,
+ 200, 201, 202, 203, -1, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, -1, 215, -1, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, -1, -1, 229,
+ 230, 231, 232, 233, -1, 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, -1, 284, 285, -1, -1, 288, 289,
+ 290, -1, -1, 293, 294, 295, 296, 297, 298, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ -1, 311, 312, 313, 314, 315, 316, 317, 318, -1,
+ 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
+ 330, 331, 332, 333, 334, -1, 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, 366, 367, -1, 369,
+ 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
+ 380, 381, 382, 383, 384, -1, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
+ 400, -1, 402, 403, -1, 405, 406, 407, 408, 409,
+ 410, 411, -1, 413, 414, 415, -1, -1, 418, 419,
+ 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
+ 430, 431, -1, 433, 434, 435, 436, 437, 438, 439,
+ -1, 441, 442, 443, 444, 445, 446, 447, -1, 449,
+ 450, 451, 452, 453, 454, -1, -1, 457, -1, -1,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
+ 480, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 491, 492, -1, -1, -1, 3, -1, 5, 6,
+ 500, 8, 9, 10, 11, 12, -1, -1, -1, -1,
+ -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
+ 27, -1, 29, 30, 31, -1, -1, -1, -1, 36,
+ -1, -1, 39, 40, 41, -1, 43, 44, 45, 46,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, -1,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76,
+ -1, 78, -1, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, -1, 91, 92, 93, 94, 95, 96,
+ -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
+ 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, 118, 119, -1, 121, 122, 123, 124, 125, 126,
+ 127, -1, 129, 130, 131, 132, -1, -1, 135, 136,
+ 137, 138, 139, -1, 141, 142, 143, -1, 145, 146,
+ 147, -1, 149, 150, 151, 152, 153, 154, 155, 156,
+ 157, 158, 159, 160, -1, 162, 163, 164, 165, 166,
+ -1, 168, -1, 170, 171, -1, 173, 174, 175, 176,
+ 177, -1, 179, 180, -1, 182, 183, 184, -1, 186,
+ 187, 188, 189, 190, 191, 192, 193, 194, 195, -1,
+ 197, 198, 199, 200, 201, 202, 203, -1, 205, 206,
+ 207, 208, 209, 210, 211, 212, 213, -1, 215, -1,
+ 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
+ -1, -1, 229, 230, 231, 232, 233, -1, 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, -1, 284, 285, -1,
+ -1, 288, 289, 290, -1, -1, 293, 294, 295, 296,
+ 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, -1, 311, 312, 313, 314, 315, 316,
+ 317, 318, -1, 320, 321, 322, 323, 324, 325, 326,
+ 327, 328, 329, 330, 331, 332, 333, 334, -1, 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, 366,
+ 367, -1, 369, 370, 371, 372, 373, 374, 375, 376,
+ 377, 378, 379, 380, 381, 382, 383, 384, -1, 386,
+ 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 399, 400, -1, 402, 403, -1, 405, 406,
+ 407, 408, 409, 410, 411, -1, 413, 414, 415, -1,
+ -1, 418, 419, 420, 421, 422, 423, 424, 425, 426,
+ 427, 428, 429, 430, 431, -1, 433, 434, 435, 436,
+ 437, 438, 439, -1, 441, 442, 443, 444, 445, 446,
+ 447, -1, 449, 450, 451, 452, 453, 454, -1, -1,
+ 457, -1, -1, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
+ 477, 478, 479, 480, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 491, 492, -1, -1, -1, 3,
+ -1, 5, 6, 500, 8, 9, 10, 11, 12, -1,
+ -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
+ 24, 25, 26, 27, -1, 29, 30, 31, -1, -1,
+ -1, -1, 36, -1, -1, 39, 40, 41, -1, 43,
+ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
+ 54, 55, -1, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, -1, 72, 73,
+ 74, 75, 76, -1, 78, -1, 80, 81, 82, 83,
+ 84, 85, 86, 87, 88, 89, -1, 91, 92, 93,
+ 94, 95, 96, -1, 98, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, 118, 119, -1, 121, 122, 123,
+ 124, 125, 126, 127, -1, 129, 130, 131, 132, -1,
+ -1, 135, 136, 137, 138, 139, -1, 141, 142, 143,
+ -1, 145, 146, 147, -1, 149, 150, 151, 152, 153,
+ 154, 155, 156, 157, 158, 159, 160, -1, 162, 163,
+ 164, 165, 166, -1, 168, -1, 170, 171, -1, 173,
+ 174, 175, 176, 177, -1, 179, 180, -1, 182, 183,
+ 184, -1, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, -1, 197, 198, 199, 200, 201, 202, 203,
+ -1, 205, 206, 207, 208, 209, 210, 211, 212, 213,
+ -1, 215, -1, 217, 218, 219, 220, 221, 222, 223,
+ 224, 225, 226, -1, -1, 229, 230, 231, 232, 233,
+ -1, 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, -1,
+ 284, 285, -1, -1, 288, 289, 290, -1, -1, 293,
+ 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, -1, 311, 312, 313,
+ 314, 315, 316, 317, 318, -1, 320, 321, 322, 323,
+ 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
+ 334, -1, 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, 366, 367, -1, 369, 370, 371, 372, 373,
+ 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
+ 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 399, 400, -1, 402, 403,
+ -1, 405, 406, 407, 408, 409, 410, 411, -1, 413,
+ 414, 415, -1, -1, 418, 419, 420, 421, 422, 423,
+ 424, 425, 426, 427, 428, 429, 430, 431, -1, 433,
+ 434, 435, 436, 437, 438, 439, -1, 441, 442, 443,
+ 444, 445, 446, 447, -1, 449, 450, 451, 452, 453,
+ 454, -1, -1, 457, -1, -1, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
+ 474, 475, 476, 477, 478, 479, 480, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 491, 492, -1,
+ -1, -1, 3, -1, 5, 6, 500, 8, 9, 10,
+ 11, 12, -1, -1, -1, -1, -1, -1, -1, 20,
+ 21, 22, 23, 24, 25, 26, 27, -1, 29, 30,
+ 31, -1, -1, -1, -1, 36, -1, -1, 39, 40,
+ 41, -1, 43, 44, 45, 46, 47, 48, 49, 50,
+ 51, 52, 53, 54, 55, -1, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ -1, 72, 73, 74, 75, 76, -1, 78, -1, 80,
+ 81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
+ 91, 92, 93, 94, 95, 96, -1, 98, 99, 100,
+ 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
+ 121, 122, 123, 124, 125, 126, 127, -1, 129, 130,
+ 131, 132, -1, -1, 135, 136, 137, 138, 139, -1,
+ 141, 142, 143, -1, 145, 146, 147, -1, 149, 150,
+ 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
+ -1, 162, 163, 164, 165, 166, -1, 168, -1, 170,
+ 171, -1, 173, 174, 175, 176, 177, -1, 179, 180,
+ -1, 182, 183, 184, -1, 186, 187, 188, 189, 190,
+ 191, 192, 193, 194, 195, -1, 197, 198, 199, 200,
+ 201, 202, 203, -1, 205, 206, 207, 208, 209, 210,
+ 211, 212, 213, -1, 215, -1, 217, 218, 219, 220,
+ 221, 222, 223, 224, 225, 226, -1, -1, 229, 230,
+ 231, 232, 233, -1, 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, -1, 284, 285, -1, -1, 288, 289, 290,
+ -1, -1, 293, 294, 295, 296, 297, 298, 299, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, -1,
+ 311, 312, 313, 314, 315, 316, 317, 318, -1, 320,
+ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 334, -1, 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, 366, 367, -1, 369, 370,
+ 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
+ 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
+ -1, 402, 403, -1, 405, 406, 407, 408, 409, 410,
+ 411, -1, 413, 414, 415, -1, -1, 418, 419, 420,
+ 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
+ 431, -1, 433, 434, 435, 436, 437, 438, 439, -1,
+ 441, 442, 443, 444, 445, 446, 447, -1, 449, 450,
+ 451, 452, 453, 454, -1, -1, 457, -1, -1, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
+ 471, 472, 473, 474, 475, 476, 477, 478, 479, 480,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 491, 492, -1, -1, -1, 3, -1, 5, 6, 500,
+ 8, 9, 10, 11, 12, -1, -1, -1, -1, -1,
+ -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
+ -1, 29, 30, 31, -1, -1, -1, -1, 36, -1,
+ -1, 39, 40, 41, -1, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, -1, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, -1, 72, 73, 74, 75, 76, -1,
+ 78, -1, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, -1, 91, 92, 93, 94, 95, 96, -1,
+ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ 118, 119, -1, 121, 122, 123, 124, 125, 126, 127,
+ -1, 129, 130, 131, 132, -1, -1, 135, 136, 137,
+ 138, 139, -1, 141, 142, 143, -1, 145, 146, 147,
+ -1, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, 159, 160, -1, 162, 163, 164, 165, 166, -1,
+ 168, -1, 170, 171, -1, 173, 174, 175, 176, 177,
+ -1, 179, 180, -1, 182, 183, 184, -1, 186, 187,
+ 188, 189, 190, 191, 192, 193, 194, 195, -1, 197,
+ 198, 199, 200, 201, 202, 203, -1, 205, 206, 207,
+ 208, 209, 210, 211, 212, 213, -1, 215, -1, 217,
+ 218, 219, 220, 221, 222, 223, 224, 225, 226, -1,
+ -1, 229, 230, 231, 232, 233, -1, 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, -1, 272, 273, 274, 275, 276, 277,
+ 278, 279, 280, 281, 282, -1, 284, 285, -1, -1,
+ 288, 289, 290, -1, -1, 293, 294, 295, 296, 297,
+ 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, -1, 311, 312, 313, 314, 315, 316, 317,
+ 318, -1, 320, 321, 322, 323, 324, 325, 326, 327,
+ 328, 329, 330, 331, 332, 333, 334, -1, 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, 366, 367,
+ -1, 369, 370, 371, 372, 373, 374, 375, 376, 377,
+ 378, 379, 380, 381, 382, 383, 384, -1, 386, 387,
+ 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 399, 400, -1, 402, 403, -1, 405, 406, 407,
+ 408, 409, 410, 411, -1, 413, 414, 415, -1, -1,
+ 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
+ 428, 429, 430, 431, -1, -1, 434, 435, 436, 437,
+ 438, 439, -1, 441, 442, 443, 444, 445, 446, 447,
+ -1, 449, 450, 451, 452, 453, 454, -1, -1, 457,
+ -1, -1, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
+ 478, 479, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 491, 492, -1, -1, -1, 3, -1,
+ 5, 6, 500, 8, 9, 10, 11, 12, -1, -1,
+ -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
+ 25, 26, 27, -1, 29, 30, 31, -1, -1, -1,
+ -1, 36, -1, -1, 39, 40, 41, -1, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ 55, -1, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, -1, 72, 73, 74,
+ 75, 76, -1, 78, -1, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 89, -1, 91, 92, 93, 94,
+ 95, 96, -1, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, 118, 119, -1, 121, 122, 123, 124,
+ 125, 126, 127, -1, 129, 130, 131, 132, -1, -1,
+ 135, 136, 137, 138, 139, -1, 141, 142, 143, -1,
+ 145, 146, 147, -1, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, -1, 162, 163, 164,
+ 165, 166, -1, 168, -1, 170, 171, -1, 173, 174,
+ 175, 176, 177, -1, 179, 180, -1, 182, 183, 184,
+ -1, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+ 195, -1, 197, 198, 199, 200, 201, 202, 203, -1,
+ 205, 206, 207, 208, 209, 210, 211, 212, 213, -1,
+ 215, -1, 217, -1, -1, 220, 221, 222, 223, 224,
+ 225, 226, -1, -1, 229, 230, 231, 232, 233, -1,
+ 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, -1,
+ 275, 276, 277, 278, 279, 280, 281, 282, -1, 284,
+ 285, -1, -1, 288, 289, 290, -1, -1, 293, 294,
+ 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, -1, 311, 312, 313, 314,
+ 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ -1, 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, 366, 367, -1, 369, 370, 371, 372, 373, 374,
+ 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
+ -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 399, 400, -1, 402, 403, -1,
+ 405, 406, 407, 408, 409, 410, 411, -1, 413, 414,
+ 415, -1, -1, 418, 419, 420, 421, 422, 423, 424,
+ 425, 426, 427, 428, 429, 430, 431, -1, 433, 434,
+ 435, 436, 437, 438, 439, -1, 441, 442, 443, 444,
+ 445, 446, 447, -1, 449, 450, 451, 452, 453, 454,
+ -1, -1, 457, -1, -1, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
+ 475, 476, 477, 478, 479, 480, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 491, 492, -1, -1,
+ -1, 3, -1, 5, 6, 500, 8, 9, 10, 11,
+ 12, -1, -1, -1, -1, -1, -1, -1, 20, 21,
+ 22, 23, 24, 25, 26, 27, -1, 29, 30, 31,
+ -1, -1, -1, -1, 36, -1, -1, 39, 40, 41,
+ -1, 43, 44, 45, 46, 47, 48, 49, 50, 51,
+ 52, 53, 54, 55, -1, 57, 58, 59, 60, 61,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, -1,
+ 72, 73, 74, 75, 76, -1, 78, -1, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, -1, 91,
+ 92, 93, 94, 95, 96, -1, 98, 99, 100, 101,
+ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, -1, 119, -1, 121,
+ 122, 123, 124, 125, 126, 127, -1, 129, 130, 131,
+ 132, -1, -1, 135, 136, 137, 138, 139, -1, 141,
+ 142, 143, -1, 145, 146, 147, -1, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, 159, 160, -1,
+ 162, 163, 164, 165, 166, -1, 168, -1, 170, 171,
+ -1, 173, 174, 175, 176, 177, -1, 179, 180, -1,
+ 182, 183, 184, -1, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, -1, 197, 198, 199, 200, 201,
+ 202, 203, -1, 205, 206, 207, 208, 209, 210, 211,
+ 212, 213, -1, 215, -1, 217, 218, 219, 220, 221,
+ 222, 223, 224, 225, 226, -1, -1, 229, 230, 231,
+ 232, 233, -1, 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, -1,
+ 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
+ 282, -1, 284, 285, -1, -1, 288, 289, 290, -1,
+ -1, 293, 294, 295, 296, 297, 298, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, -1, 311,
+ 312, 313, 314, 315, 316, 317, 318, -1, 320, 321,
+ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
+ 332, 333, 334, -1, 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, 366, 367, -1, 369, 370, 371,
+ 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
+ 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 399, 400, -1,
+ 402, 403, -1, 405, 406, 407, 408, 409, 410, 411,
+ -1, 413, 414, 415, -1, -1, 418, 419, 420, 421,
+ 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
+ -1, -1, 434, 435, 436, 437, 438, 439, -1, 441,
+ 442, 443, 444, 445, 446, 447, -1, 449, 450, 451,
+ 452, 453, 454, -1, -1, 457, -1, -1, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
+ 472, 473, 474, 475, 476, 477, 478, 479, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 491,
+ 492, 3, -1, 5, 6, -1, 8, 9, 500, 11,
+ 12, -1, -1, -1, -1, -1, -1, -1, 20, 21,
+ 22, 23, 24, 25, 26, 27, -1, 29, 30, 31,
+ -1, -1, -1, -1, 36, -1, -1, 39, 40, 41,
+ -1, 43, 44, 45, 46, 47, 48, 49, 50, 51,
+ 52, 53, 54, 55, -1, 57, 58, 59, 60, 61,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, -1,
+ 72, 73, 74, 75, 76, -1, 78, -1, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, -1, 91,
+ 92, 93, 94, 95, 96, -1, 98, 99, 100, 101,
+ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, -1, 119, -1, 121,
+ 122, 123, 124, 125, 126, 127, -1, 129, 130, 131,
+ 132, -1, -1, 135, 136, 137, 138, 139, -1, 141,
+ 142, 143, -1, 145, 146, 147, -1, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, 159, 160, -1,
+ 162, 163, 164, 165, 166, -1, 168, -1, 170, 171,
+ -1, 173, 174, 175, 176, 177, -1, 179, 180, -1,
+ 182, 183, 184, -1, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, -1, 197, 198, 199, 200, 201,
+ 202, 203, -1, 205, 206, 207, 208, 209, 210, 211,
+ 212, 213, -1, 215, -1, 217, 218, 219, 220, 221,
+ 222, 223, 224, 225, 226, -1, -1, 229, 230, 231,
+ 232, 233, -1, 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, -1,
+ 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
+ 282, -1, 284, 285, -1, -1, 288, 289, 290, -1,
+ -1, 293, 294, 295, 296, 297, 298, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, -1, 311,
+ 312, 313, 314, 315, 316, 317, 318, -1, 320, 321,
+ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
+ 332, 333, 334, -1, 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, 366, 367, -1, 369, 370, 371,
+ 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
+ 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 399, 400, -1,
+ 402, 403, -1, 405, 406, 407, 408, 409, 410, 411,
+ -1, 413, 414, 415, -1, -1, 418, 419, 420, 421,
+ 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
+ -1, -1, 434, 435, 436, 437, 438, 439, -1, 441,
+ 442, 443, 444, 445, 446, 447, -1, 449, 450, 451,
+ 452, 453, 454, -1, -1, 457, -1, -1, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
+ 472, 473, 474, 475, 476, 477, 478, 479, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 491,
+ 492, 3, -1, 5, 6, -1, 8, 9, 500, 11,
+ 12, -1, -1, -1, -1, -1, -1, -1, 20, 21,
+ 22, 23, 24, 25, 26, 27, -1, 29, 30, 31,
+ -1, -1, -1, -1, 36, -1, -1, 39, 40, 41,
+ -1, 43, 44, 45, 46, 47, 48, 49, 50, 51,
+ 52, 53, 54, 55, -1, 57, 58, 59, 60, 61,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, -1,
+ 72, 73, 74, 75, 76, -1, 78, -1, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, -1, 91,
+ 92, 93, 94, 95, 96, -1, 98, 99, 100, 101,
+ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, -1, 119, -1, 121,
+ 122, 123, 124, 125, 126, 127, -1, 129, 130, 131,
+ 132, -1, -1, 135, 136, 137, 138, 139, -1, 141,
+ 142, 143, -1, 145, 146, 147, -1, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, 159, 160, -1,
+ 162, 163, 164, 165, 166, -1, 168, -1, 170, 171,
+ -1, 173, 174, 175, 176, 177, -1, 179, 180, -1,
+ 182, 183, 184, -1, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, -1, 197, 198, 199, 200, 201,
+ 202, 203, -1, 205, 206, 207, 208, 209, 210, 211,
+ 212, 213, -1, 215, -1, 217, 218, 219, 220, 221,
+ 222, 223, 224, 225, 226, -1, -1, 229, 230, 231,
+ 232, 233, -1, 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, -1,
+ 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
+ 282, -1, 284, 285, -1, -1, 288, 289, 290, -1,
+ -1, 293, 294, 295, 296, 297, 298, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, -1, 311,
+ 312, 313, 314, 315, 316, 317, 318, -1, 320, 321,
+ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
+ 332, 333, 334, -1, 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, 366, 367, -1, 369, 370, 371,
+ 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
+ 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 399, 400, -1,
+ 402, 403, -1, 405, 406, 407, 408, 409, 410, 411,
+ -1, 413, 414, 415, -1, -1, 418, 419, 420, 421,
+ 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
+ -1, -1, 434, 435, 436, 437, 438, 439, -1, 441,
+ 442, 443, 444, 445, 446, 447, -1, 449, 450, 451,
+ 452, 453, 454, -1, -1, 457, -1, -1, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
+ 472, 473, 474, 475, 476, 477, 478, 479, -1, -1,
+ -1, -1, 3, -1, 5, 6, -1, 8, 9, -1,
+ 11, 12, -1, -1, -1, -1, -1, -1, 500, 20,
+ 21, 22, 23, 24, 25, 26, 27, -1, 29, 30,
+ 31, -1, -1, -1, -1, 36, -1, -1, 39, 40,
+ 41, -1, 43, 44, 45, 46, 47, 48, 49, 50,
+ 51, 52, 53, 54, 55, -1, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ -1, 72, 73, 74, 75, 76, -1, 78, -1, 80,
+ 81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
+ 91, 92, 93, 94, 95, 96, -1, 98, 99, 100,
+ 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, -1, 119, -1,
+ 121, 122, 123, 124, 125, 126, 127, -1, 129, 130,
+ 131, 132, -1, -1, 135, 136, 137, 138, 139, -1,
+ 141, 142, 143, -1, 145, 146, 147, -1, 149, 150,
+ 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
+ -1, 162, 163, 164, 165, 166, -1, 168, -1, 170,
+ 171, -1, 173, 174, 175, 176, 177, -1, 179, 180,
+ -1, 182, 183, 184, -1, 186, 187, 188, 189, 190,
+ 191, 192, 193, 194, 195, -1, 197, 198, 199, 200,
+ 201, 202, 203, -1, 205, 206, 207, 208, 209, 210,
+ 211, 212, 213, -1, 215, -1, 217, 218, 219, 220,
+ 221, 222, 223, 224, 225, 226, -1, -1, 229, 230,
+ 231, 232, 233, -1, 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,
+ -1, 272, 273, 274, 275, 276, 277, 278, 279, 280,
+ 281, 282, -1, 284, 285, -1, -1, 288, 289, 290,
+ -1, -1, 293, 294, 295, 296, 297, 298, 299, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, -1,
+ 311, 312, 313, 314, 315, 316, 317, 318, -1, 320,
+ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 334, -1, 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, 366, 367, -1, 369, 370,
+ 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
+ 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
+ -1, 402, 403, -1, 405, 406, 407, 408, 409, 410,
+ 411, -1, 413, 414, 415, -1, -1, 418, 419, 420,
+ 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
+ 431, -1, -1, 434, 435, 436, 437, 438, 439, -1,
+ 441, 442, 443, 444, 445, 446, 447, -1, 449, 450,
+ 451, 452, 453, 454, -1, -1, 457, -1, -1, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
+ 471, 472, 473, 474, 475, 476, 477, 478, 479, -1,
+ -1, -1, -1, 3, -1, 5, 6, -1, 8, 9,
+ -1, 11, 12, -1, -1, -1, -1, -1, -1, 500,
+ 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
+ 30, 31, -1, -1, -1, -1, 36, -1, -1, 39,
+ 40, 41, -1, 43, 44, 45, 46, 47, 48, 49,
+ 50, 51, 52, 53, 54, 55, -1, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, -1, 72, 73, 74, 75, 76, -1, 78, -1,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ -1, 91, 92, 93, 94, 95, 96, -1, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, -1, 119,
+ -1, 121, 122, 123, 124, 125, 126, 127, -1, 129,
+ 130, 131, 132, -1, -1, 135, 136, 137, 138, 139,
+ -1, 141, 142, 143, -1, 145, 146, 147, -1, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, -1, 162, 163, 164, 165, 166, -1, 168, -1,
+ 170, 171, -1, 173, 174, 175, 176, 177, -1, 179,
+ 180, -1, 182, 183, 184, -1, 186, 187, 188, 189,
+ 190, 191, 192, 193, 194, 195, -1, 197, 198, 199,
+ 200, 201, 202, 203, -1, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, -1, 215, -1, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, -1, -1, 229,
+ 230, 231, 232, 233, -1, 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, -1, 272, 273, 274, 275, 276, 277, 278, 279,
+ 280, 281, 282, -1, 284, 285, -1, -1, 288, 289,
+ 290, -1, -1, 293, 294, 295, 296, 297, 298, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ -1, 311, 312, 313, 314, 315, 316, 317, 318, -1,
+ 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
+ 330, 331, 332, 333, 334, -1, 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, 366, 367, -1, 369,
+ 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
+ 380, 381, 382, 383, 384, -1, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
+ 400, -1, 402, 403, -1, 405, 406, 407, 408, 409,
+ 410, 411, -1, 413, 414, 415, -1, -1, 418, 419,
+ 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
+ 430, 431, -1, -1, 434, 435, 436, 437, 438, 439,
+ -1, 441, 442, 443, 444, 445, 446, 447, -1, 449,
+ 450, 451, 452, 453, 454, -1, -1, 457, -1, -1,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
+ -1, -1, -1, -1, 3, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 500, 20, 21, 22, 23, 24, 25, 26, 27, -1,
+ 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
+ 39, 40, 41, -1, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, -1, 57, 58,
+ 59, 60, 61, 62, 63, -1, 65, 66, 67, 68,
+ 69, 70, -1, 72, 73, 74, 75, 76, -1, 78,
+ -1, 80, 81, 82, 83, 84, 85, 86, 87, 88,
+ 89, -1, 91, 92, 93, 94, 95, 96, -1, 98,
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, -1,
+ 119, -1, 121, 122, 123, 124, 125, 126, 127, -1,
+ 129, 130, 131, 132, -1, -1, 135, 136, 137, 138,
+ 139, -1, 141, 142, 143, -1, 145, 146, 147, -1,
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ -1, 160, -1, 162, 163, 164, 165, 166, -1, 168,
+ -1, 170, 171, -1, 173, 174, 175, 176, 177, -1,
+ 179, 180, -1, 182, 183, 184, -1, 186, 187, 188,
+ 189, 190, 191, 192, 193, 194, 195, -1, 197, 198,
+ 199, 200, 201, 202, 203, -1, 205, 206, 207, 208,
+ 209, 210, 211, 212, 213, -1, 215, -1, 217, 218,
+ 219, 220, 221, 222, 223, 224, 225, 226, 227, -1,
+ 229, 230, 231, 232, 233, -1, 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, -1, 272, 273, 274, 275, -1, 277, 278,
+ 279, 280, 281, 282, -1, 284, 285, -1, 287, 288,
+ 289, 290, -1, -1, 293, 294, 295, 296, 297, 298,
+ 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, -1, 311, 312, 313, 314, 315, 316, 317, 318,
+ -1, 320, 321, 322, 323, 324, 325, 326, 327, 328,
+ 329, 330, 331, 332, 333, 334, -1, 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, 366, 367, 368,
+ 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
+ 379, 380, 381, 382, 383, 384, -1, 386, 387, 388,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 399, 400, -1, 402, 403, 404, 405, 406, 407, 408,
+ 409, 410, 411, -1, 413, 414, 415, -1, -1, 418,
+ 419, 420, 421, 422, -1, 424, 425, 426, 427, 428,
+ 429, 430, 431, -1, -1, 434, 435, 436, 437, 438,
+ 439, -1, 441, 442, 443, 444, 445, 446, 447, -1,
+ 449, 450, 451, 452, 453, 454, -1, -1, 457, -1,
+ 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
+ 479, -1, -1, 482, -1, 3, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 500, 20, 21, 22, 23, 24, 25, 26, 27,
+ -1, 29, 30, 31, -1, -1, -1, -1, -1, -1,
+ -1, 39, 40, 41, -1, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, -1, 57,
+ 58, 59, 60, 61, 62, 63, -1, 65, 66, 67,
+ 68, 69, 70, -1, 72, 73, 74, 75, 76, -1,
+ 78, -1, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, -1, 91, 92, 93, 94, 95, 96, -1,
+ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ -1, 119, -1, 121, 122, 123, 124, 125, 126, 127,
+ -1, 129, 130, 131, 132, -1, -1, 135, 136, 137,
+ 138, 139, -1, 141, 142, 143, -1, 145, 146, 147,
+ -1, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, -1, 160, -1, 162, 163, 164, 165, 166, -1,
+ 168, -1, 170, 171, -1, 173, 174, 175, 176, 177,
+ -1, 179, 180, -1, 182, 183, 184, -1, 186, 187,
+ 188, 189, 190, 191, 192, 193, 194, 195, -1, 197,
+ 198, 199, 200, 201, 202, 203, -1, 205, 206, 207,
+ 208, 209, 210, 211, 212, 213, -1, 215, -1, 217,
+ 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
+ -1, 229, 230, 231, 232, 233, -1, 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, -1, 272, 273, 274, 275, -1, 277,
+ 278, 279, 280, 281, 282, -1, 284, 285, -1, 287,
+ 288, 289, 290, -1, -1, 293, 294, 295, 296, 297,
+ 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, -1, 311, 312, 313, 314, 315, 316, 317,
+ 318, -1, 320, 321, 322, 323, 324, 325, 326, 327,
+ 328, 329, 330, 331, 332, 333, 334, -1, 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, 366, 367,
+ -1, 369, 370, 371, 372, 373, 374, 375, 376, 377,
+ 378, 379, 380, 381, 382, 383, 384, -1, 386, 387,
+ 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 399, 400, -1, 402, 403, -1, 405, 406, 407,
+ 408, 409, 410, 411, -1, 413, 414, 415, -1, -1,
+ 418, 419, 420, 421, 422, -1, 424, 425, 426, 427,
+ 428, 429, 430, 431, -1, -1, 434, 435, 436, 437,
+ 438, 439, -1, 441, 442, 443, 444, 445, 446, 447,
+ -1, 449, 450, 451, 452, 453, 454, -1, -1, 457,
+ -1, -1, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
+ 478, 479, -1, -1, -1, -1, 3, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 500, 20, 21, 22, 23, 24, 25, 26,
+ 27, -1, 29, 30, 31, -1, -1, -1, -1, -1,
+ -1, -1, 39, 40, 41, -1, 43, 44, 45, 46,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, -1,
+ 57, 58, 59, 60, 61, 62, 63, -1, 65, 66,
+ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76,
+ -1, 78, -1, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, -1, 91, 92, 93, 94, 95, 96,
+ -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
+ 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, -1, 119, -1, 121, 122, 123, 124, 125, 126,
+ 127, -1, 129, 130, 131, 132, -1, -1, 135, 136,
+ 137, 138, 139, -1, 141, 142, 143, -1, 145, 146,
+ 147, -1, 149, 150, 151, 152, 153, 154, 155, 156,
+ 157, 158, -1, 160, -1, 162, 163, 164, 165, 166,
+ -1, 168, -1, 170, 171, -1, 173, 174, 175, 176,
+ 177, -1, 179, 180, -1, 182, 183, 184, -1, 186,
+ 187, 188, 189, 190, 191, 192, 193, 194, 195, -1,
+ 197, 198, 199, 200, 201, 202, 203, -1, 205, 206,
+ 207, 208, 209, 210, 211, 212, 213, -1, 215, -1,
+ 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
+ -1, -1, 229, 230, 231, 232, 233, -1, 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, -1, 272, 273, 274, 275, -1,
+ 277, 278, 279, 280, 281, 282, -1, 284, 285, -1,
+ -1, 288, 289, 290, -1, -1, 293, 294, 295, 296,
+ 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, -1, 311, 312, 313, 314, 315, 316,
+ 317, 318, -1, 320, 321, 322, 323, 324, 325, 326,
+ 327, 328, 329, 330, 331, 332, 333, 334, -1, 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, 366,
+ 367, -1, 369, 370, 371, 372, 373, 374, 375, 376,
+ 377, 378, 379, 380, 381, 382, 383, 384, -1, 386,
+ 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 399, 400, -1, 402, 403, -1, 405, 406,
+ 407, 408, 409, 410, 411, -1, 413, 414, 415, -1,
+ -1, 418, 419, 420, 421, 422, -1, 424, 425, 426,
+ 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
+ 437, 438, 439, -1, 441, 442, 443, 444, 445, 446,
+ 447, -1, 449, 450, 451, 452, 453, 454, -1, -1,
+ 457, -1, -1, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
+ 477, 478, 479, -1, -1, -1, -1, 3, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 500, 20, 21, 22, 23, 24, 25,
+ 26, 27, -1, 29, 30, 31, -1, -1, -1, -1,
+ -1, -1, -1, 39, 40, 41, -1, 43, 44, 45,
+ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ -1, 57, 58, 59, 60, 61, 62, 63, -1, 65,
+ 66, 67, 68, 69, 70, -1, 72, 73, 74, 75,
+ 76, -1, 78, -1, 80, 81, 82, 83, 84, 85,
+ 86, 87, 88, 89, -1, 91, 92, 93, 94, 95,
+ 96, -1, 98, 99, 100, 101, 102, 103, 104, 105,
+ 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, -1, 119, -1, 121, 122, 123, 124, 125,
+ 126, 127, -1, 129, 130, 131, 132, -1, -1, 135,
+ 136, 137, 138, 139, -1, 141, 142, 143, -1, 145,
+ 146, 147, -1, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, -1, 160, -1, 162, 163, 164, 165,
+ 166, -1, 168, -1, 170, 171, -1, 173, 174, 175,
+ 176, 177, -1, 179, 180, -1, 182, 183, 184, -1,
+ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
+ -1, 197, 198, 199, 200, 201, 202, 203, -1, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, -1, 215,
+ -1, 217, 218, 219, 220, 221, 222, 223, 224, 225,
+ 226, -1, -1, 229, 230, 231, 232, 233, -1, 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, -1, 272, 273, 274, 275,
+ -1, 277, 278, 279, 280, 281, 282, -1, 284, 285,
+ -1, -1, 288, 289, 290, -1, -1, 293, 294, 295,
+ 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, -1, 311, 312, 313, 314, 315,
+ 316, 317, 318, -1, 320, 321, 322, 323, 324, 325,
+ 326, 327, 328, 329, 330, 331, 332, 333, 334, -1,
+ 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,
+ 366, 367, -1, 369, 370, 371, 372, 373, 374, 375,
+ 376, 377, 378, 379, 380, 381, 382, 383, 384, -1,
+ 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, 399, 400, -1, 402, 403, -1, 405,
+ 406, 407, 408, 409, 410, 411, -1, 413, 414, 415,
+ -1, -1, 418, 419, 420, 421, 422, -1, 424, 425,
+ 426, 427, 428, 429, 430, 431, -1, -1, 434, 435,
+ 436, 437, 438, 439, -1, 441, 442, 443, 444, 445,
+ 446, 447, -1, 449, 450, 451, 452, 453, 454, -1,
+ -1, 457, -1, -1, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
+ 476, 477, 478, 479, -1, -1, -1, -1, 3, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 500, 20, 21, 22, 23, 24,
+ 25, 26, 27, -1, 29, 30, 31, -1, -1, -1,
+ -1, -1, -1, -1, 39, 40, 41, -1, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ 55, -1, 57, 58, 59, 60, 61, 62, 63, -1,
+ 65, 66, 67, 68, 69, 70, -1, 72, 73, 74,
+ 75, 76, -1, 78, -1, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 89, -1, 91, 92, 93, 94,
+ 95, 96, -1, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, -1, 119, -1, 121, 122, 123, 124,
+ 125, 126, 127, -1, 129, 130, 131, 132, -1, -1,
+ 135, 136, 137, 138, 139, -1, 141, 142, 143, -1,
+ 145, 146, 147, -1, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, -1, 160, -1, 162, 163, 164,
+ 165, 166, -1, 168, -1, 170, 171, -1, 173, 174,
+ 175, 176, 177, -1, 179, 180, -1, 182, 183, 184,
+ -1, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+ 195, -1, 197, 198, 199, 200, 201, 202, 203, -1,
+ 205, 206, 207, 208, 209, 210, 211, 212, 213, -1,
+ 215, -1, 217, 218, 219, 220, 221, 222, 223, 224,
+ 225, 226, -1, -1, 229, 230, 231, 232, 233, -1,
+ 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, -1, 272, 273, 274,
+ 275, -1, 277, 278, 279, 280, 281, 282, -1, 284,
+ 285, -1, -1, 288, 289, 290, -1, -1, 293, 294,
+ 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, -1, 311, 312, 313, 314,
+ 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ -1, 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, 366, 367, -1, 369, 370, 371, 372, 373, 374,
+ 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
+ -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 399, 400, -1, 402, 403, -1,
+ 405, 406, 407, 408, 409, 410, 411, -1, 413, 414,
+ 415, -1, -1, 418, 419, 420, 421, 422, -1, 424,
+ 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
+ 435, 436, 437, 438, 439, -1, 441, 442, 443, 444,
+ 445, 446, 447, -1, 449, 450, 451, 452, 453, 454,
+ -1, -1, 457, -1, -1, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
+ 475, 476, 477, 478, 479, -1, -1, -1, -1, 3,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 500, 20, 21, 22, 23,
+ 24, 25, 26, 27, -1, 29, 30, 31, -1, -1,
+ -1, -1, -1, -1, -1, 39, 40, 41, -1, 43,
+ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
+ 54, 55, -1, 57, 58, 59, 60, 61, 62, 63,
+ -1, 65, 66, 67, 68, 69, 70, -1, 72, 73,
+ 74, 75, 76, -1, 78, -1, 80, 81, 82, 83,
+ 84, 85, 86, 87, 88, 89, -1, 91, 92, 93,
+ 94, 95, 96, -1, 98, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, -1, 119, -1, 121, 122, 123,
+ 124, 125, 126, 127, -1, 129, 130, 131, 132, -1,
+ -1, 135, 136, 137, 138, 139, -1, 141, 142, 143,
+ -1, 145, 146, 147, -1, 149, 150, 151, 152, 153,
+ 154, 155, 156, 157, 158, -1, 160, -1, 162, 163,
+ 164, 165, 166, -1, 168, -1, 170, 171, -1, 173,
+ 174, 175, 176, 177, -1, 179, 180, -1, 182, 183,
+ 184, -1, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, -1, 197, 198, 199, 200, 201, 202, 203,
+ -1, 205, 206, 207, 208, 209, 210, 211, 212, 213,
+ -1, 215, -1, 217, 218, 219, 220, 221, 222, 223,
+ 224, 225, 226, -1, -1, 229, 230, 231, 232, 233,
+ -1, 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, -1, 272, 273,
+ 274, 275, -1, 277, 278, 279, 280, 281, 282, -1,
+ 284, 285, -1, -1, 288, 289, 290, -1, -1, 293,
+ 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, -1, 311, 312, 313,
+ 314, 315, 316, 317, 318, -1, 320, 321, 322, 323,
+ 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
+ 334, -1, 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, 366, 367, -1, 369, 370, 371, 372, 373,
+ 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
+ 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 399, 400, -1, 402, 403,
+ -1, 405, 406, 407, 408, 409, 410, 411, -1, 413,
+ 414, 415, -1, -1, 418, 419, 420, 421, 422, -1,
+ 424, 425, 426, 427, 428, 429, 430, 431, -1, -1,
+ 434, 435, 436, 437, 438, 439, -1, 441, 442, 443,
+ 444, 445, 446, 447, -1, 449, 450, 451, 452, 453,
+ 454, -1, -1, 457, -1, -1, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
+ 474, 475, 476, 477, 478, 479, -1, -1, -1, -1,
+ 3, -1, 5, 6, -1, -1, -1, -1, 11, -1,
+ -1, -1, -1, -1, -1, -1, 500, 20, 21, 22,
+ 23, 24, 25, 26, 27, -1, 29, 30, 31, -1,
+ -1, -1, -1, -1, -1, -1, 39, 40, 41, -1,
+ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, -1, 57, 58, 59, 60, 61, 62,
+ 63, -1, -1, 66, 67, 68, 69, 70, -1, 72,
+ 73, 74, 75, 76, -1, 78, -1, 80, 81, 82,
+ 83, 84, 85, 86, 87, 88, 89, -1, 91, 92,
+ 93, 94, 95, 96, -1, 98, 99, 100, 101, -1,
+ -1, -1, 105, -1, -1, -1, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, -1, 119, -1, 121, 122,
+ 123, 124, 125, 126, 127, -1, 129, 130, 131, 132,
+ -1, -1, 135, 136, 137, 138, 139, -1, 141, 142,
+ 143, -1, 145, 146, 147, -1, 149, 150, 151, 152,
+ 153, 154, 155, 156, 157, 158, 159, 160, -1, 162,
+ 163, 164, 165, 166, -1, 168, -1, 170, 171, -1,
+ 173, 174, 175, 176, 177, -1, 179, 180, -1, 182,
+ 183, 184, -1, 186, 187, 188, 189, 190, 191, 192,
+ 193, 194, 195, -1, 197, 198, 199, 200, 201, 202,
+ 203, -1, 205, 206, 207, 208, 209, 210, 211, 212,
+ 213, -1, 215, -1, 217, 218, 219, 220, 221, 222,
+ 223, 224, 225, 226, -1, -1, 229, 230, 231, 232,
+ 233, -1, 235, 236, 237, -1, -1, 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, -1, 272,
+ 273, 274, 275, -1, 277, 278, 279, 280, 281, 282,
+ -1, 284, 285, 286, -1, 288, 289, 290, -1, -1,
+ 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, -1, 311, 312,
+ 313, 314, 315, 316, 317, 318, -1, 320, 321, 322,
+ 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
+ 333, 334, -1, 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, 366, 367, -1, 369, 370, 371, 372,
+ 373, -1, 375, 376, 377, 378, 379, 380, 381, 382,
+ 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 399, 400, -1, 402,
+ 403, -1, 405, 406, 407, 408, 409, 410, 411, -1,
+ 413, 414, 415, -1, -1, 418, 419, 420, 421, 422,
+ 423, 424, 425, 426, 427, 428, 429, 430, 431, -1,
+ -1, 434, 435, 436, 437, 438, -1, -1, 441, 442,
+ 443, 444, 445, 446, 447, -1, 449, 450, 451, 452,
+ 453, 454, -1, -1, 457, -1, -1, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
+ 473, 474, 475, 476, 477, 478, 479, -1, -1, -1,
+ -1, 3, -1, -1, -1, -1, -1, -1, 491, 492,
+ 493, -1, -1, -1, -1, -1, -1, 500, 20, 21,
+ 22, 23, 24, 25, 26, 27, -1, 29, 30, 31,
+ 32, 33, -1, -1, -1, -1, -1, 39, 40, 41,
+ -1, 43, 44, 45, 46, 47, 48, 49, 50, 51,
+ 52, 53, 54, 55, -1, 57, 58, 59, 60, 61,
+ 62, 63, -1, -1, 66, 67, 68, 69, 70, -1,
+ 72, 73, 74, 75, 76, -1, 78, -1, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, -1, 91,
+ 92, 93, 94, 95, 96, -1, 98, 99, 100, 101,
+ -1, -1, -1, 105, -1, -1, -1, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, -1, 119, -1, 121,
+ 122, 123, 124, 125, 126, 127, -1, 129, 130, 131,
+ 132, -1, -1, 135, 136, 137, 138, 139, -1, 141,
+ 142, 143, -1, 145, 146, 147, -1, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, -1, 160, -1,
+ 162, 163, 164, 165, 166, -1, 168, -1, 170, 171,
+ -1, 173, 174, 175, 176, 177, -1, 179, 180, -1,
+ 182, 183, 184, -1, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, -1, 197, 198, 199, 200, 201,
+ 202, 203, -1, 205, 206, 207, 208, 209, 210, 211,
+ 212, 213, -1, 215, -1, 217, 218, 219, 220, 221,
+ 222, 223, 224, 225, 226, -1, -1, 229, 230, 231,
+ 232, 233, -1, 235, 236, 237, -1, -1, 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, -1,
+ 272, 273, 274, 275, -1, 277, 278, 279, 280, 281,
+ 282, -1, 284, 285, -1, -1, 288, 289, 290, -1,
+ -1, 293, 294, 295, 296, 297, 298, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, -1, 311,
+ 312, 313, 314, 315, 316, 317, 318, -1, 320, 321,
+ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
+ 332, 333, 334, -1, 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, 366, 367, 368, 369, 370, 371,
+ 372, 373, -1, 375, 376, 377, 378, 379, 380, 381,
+ 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 399, 400, -1,
+ 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
+ -1, 413, 414, 415, -1, -1, 418, 419, 420, 421,
+ 422, -1, 424, 425, 426, 427, 428, 429, 430, 431,
+ -1, -1, 434, 435, 436, 437, 438, -1, -1, 441,
+ 442, 443, 444, 445, 446, 447, -1, 449, 450, 451,
+ 452, 453, 454, -1, -1, 457, -1, 459, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
+ 472, 473, 474, 475, 476, 477, 478, 479, -1, -1,
+ 482, -1, 3, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 500, 20,
+ 21, 22, 23, 24, 25, 26, 27, -1, 29, 30,
+ 31, -1, -1, -1, -1, -1, -1, -1, 39, 40,
+ 41, -1, 43, 44, 45, 46, 47, 48, 49, 50,
+ 51, 52, 53, 54, 55, -1, 57, 58, 59, 60,
+ 61, 62, 63, -1, -1, 66, 67, 68, 69, 70,
+ -1, 72, 73, 74, 75, 76, -1, 78, -1, 80,
+ 81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
+ 91, 92, 93, 94, 95, 96, -1, 98, 99, 100,
+ 101, -1, -1, -1, 105, -1, -1, -1, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, -1, 119, -1,
+ 121, 122, 123, 124, 125, 126, 127, -1, 129, 130,
+ 131, 132, -1, -1, 135, 136, 137, 138, 139, -1,
+ 141, 142, 143, -1, 145, 146, 147, -1, 149, 150,
+ 151, 152, 153, 154, 155, 156, 157, 158, -1, 160,
+ -1, 162, 163, 164, 165, 166, -1, 168, -1, 170,
+ 171, -1, 173, 174, 175, 176, 177, -1, 179, 180,
+ -1, 182, 183, 184, -1, 186, 187, 188, 189, 190,
+ 191, 192, 193, 194, 195, -1, 197, 198, 199, 200,
+ 201, 202, 203, -1, 205, 206, 207, 208, 209, 210,
+ 211, 212, 213, -1, 215, -1, 217, 218, 219, 220,
+ 221, 222, 223, 224, 225, 226, -1, -1, 229, 230,
+ 231, 232, 233, -1, 235, 236, 237, -1, -1, 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,
+ -1, 272, 273, 274, 275, -1, 277, 278, 279, 280,
+ 281, 282, -1, 284, 285, -1, -1, 288, 289, 290,
+ -1, -1, 293, 294, 295, 296, 297, 298, 299, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, -1,
+ 311, 312, 313, 314, 315, 316, 317, 318, -1, 320,
+ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 334, -1, 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, 366, 367, -1, 369, 370,
+ 371, 372, 373, -1, 375, 376, 377, 378, 379, 380,
+ 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
+ -1, 402, 403, -1, 405, 406, 407, 408, 409, 410,
+ 411, -1, 413, 414, 415, -1, -1, 418, 419, 420,
+ 421, 422, -1, 424, 425, 426, 427, 428, 429, 430,
+ 431, -1, -1, 434, 435, 436, 437, 438, -1, -1,
+ 441, 442, 443, 444, 445, 446, 447, -1, 449, 450,
+ 451, 452, 453, 454, -1, -1, 457, -1, -1, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
+ 471, 472, 473, 474, 475, 476, 477, 478, 479, -1,
+ -1, -1, -1, 3, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 500,
+ 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
+ 30, 31, -1, -1, -1, -1, -1, -1, -1, 39,
+ 40, 41, -1, 43, 44, 45, 46, -1, 48, 49,
+ 50, 51, 52, -1, 54, 55, -1, 57, 58, 59,
+ 60, 61, 62, 63, -1, -1, 66, 67, 68, 69,
+ 70, -1, 72, 73, 74, 75, 76, -1, -1, -1,
+ 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
+ -1, 91, 92, 93, 94, 95, 96, -1, -1, 99,
+ 100, 101, -1, -1, -1, -1, -1, -1, -1, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, -1, 119,
+ -1, 121, 122, 123, 124, 125, 126, 127, -1, 129,
+ 130, 131, 132, -1, -1, 135, 136, 137, 138, 139,
+ -1, 141, 142, 143, -1, 145, 146, 147, -1, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, -1,
+ 160, -1, 162, 163, 164, 165, 166, -1, 168, -1,
+ 170, -1, -1, -1, 174, 175, 176, 177, -1, 179,
+ 180, -1, 182, 183, 184, -1, 186, 187, 188, 189,
+ 190, -1, 192, 193, 194, 195, -1, 197, 198, 199,
+ 200, 201, 202, 203, -1, 205, -1, 207, 208, 209,
+ 210, 211, 212, 213, -1, 215, -1, 217, -1, -1,
+ 220, -1, 222, 223, 224, 225, 226, -1, -1, 229,
+ 230, -1, 232, -1, -1, 235, 236, 237, -1, -1,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, -1,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, -1, 272, 273, -1, 275, -1, 277, 278, 279,
+ 280, 281, 282, -1, 284, 285, -1, -1, 288, 289,
+ 290, -1, -1, 293, 294, 295, -1, 297, -1, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ -1, 311, 312, 313, 314, 315, 316, 317, 318, -1,
+ 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
+ 330, 331, 332, 333, 334, -1, 336, 337, 338, 339,
+ 340, 341, 342, 343, 344, 345, 346, 347, 348, -1,
+ 350, 351, -1, 353, 354, 355, 356, 357, 358, 359,
+ 360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
+ 370, 371, 372, 373, -1, 375, 376, 377, 378, 379,
+ -1, 381, 382, 383, 384, -1, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
+ 400, -1, 402, 403, 404, 405, -1, 407, 408, 409,
+ 410, 411, -1, 413, 414, 415, -1, -1, 418, 419,
+ 420, 421, 422, -1, 424, 425, 426, 427, 428, 429,
+ 430, 431, -1, -1, 434, 435, 436, 437, 438, -1,
+ -1, 441, 442, 443, 444, 445, 446, 447, -1, 449,
+ -1, 451, 452, 453, 454, -1, -1, 457, -1, 459,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
+ -1, -1, 482, -1, 3, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 500, 20, 21, 22, 23, 24, 25, 26, 27, -1,
+ 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
+ 39, 40, 41, -1, 43, 44, 45, 46, -1, 48,
+ 49, 50, 51, 52, -1, 54, 55, -1, 57, 58,
+ 59, 60, 61, 62, 63, -1, -1, 66, 67, 68,
+ 69, 70, -1, 72, 73, 74, 75, 76, -1, -1,
+ -1, 80, 81, 82, 83, 84, 85, -1, 87, 88,
+ 89, -1, 91, 92, 93, 94, 95, 96, -1, -1,
+ 99, 100, 101, -1, -1, -1, 105, -1, -1, -1,
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, -1,
+ 119, -1, 121, 122, 123, 124, 125, 126, 127, -1,
+ 129, 130, 131, 132, -1, -1, 135, 136, 137, 138,
+ 139, -1, 141, 142, 143, -1, 145, 146, 147, -1,
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ -1, 160, -1, 162, 163, 164, 165, 166, -1, 168,
+ -1, 170, -1, -1, -1, 174, 175, 176, 177, -1,
+ 179, 180, -1, 182, 183, 184, -1, 186, 187, 188,
+ 189, 190, -1, 192, 193, 194, 195, -1, 197, 198,
+ 199, 200, 201, 202, 203, -1, 205, -1, 207, 208,
+ 209, 210, 211, 212, 213, -1, 215, -1, 217, -1,
+ -1, 220, -1, 222, 223, 224, 225, 226, -1, -1,
+ 229, 230, -1, 232, -1, -1, 235, 236, 237, -1,
+ -1, 240, 241, 242, 243, 244, 245, 246, 247, 248,
+ 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
+ 269, 270, -1, 272, 273, -1, 275, -1, 277, 278,
+ 279, 280, 281, 282, -1, 284, 285, -1, 287, 288,
+ 289, 290, -1, -1, 293, 294, 295, -1, 297, -1,
+ 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, -1, 311, 312, 313, 314, 315, 316, 317, 318,
+ -1, 320, 321, 322, 323, 324, 325, 326, 327, 328,
+ 329, 330, 331, 332, 333, 334, -1, 336, 337, 338,
+ 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
+ -1, 350, 351, -1, 353, 354, 355, 356, 357, 358,
+ 359, 360, 361, 362, 363, 364, 365, 366, 367, -1,
+ 369, 370, 371, 372, 373, -1, 375, 376, 377, 378,
+ 379, -1, 381, 382, 383, 384, -1, 386, 387, 388,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 399, 400, -1, 402, 403, 404, 405, -1, 407, 408,
+ 409, 410, 411, -1, 413, 414, 415, -1, -1, 418,
+ 419, 420, 421, 422, -1, 424, 425, 426, 427, 428,
+ 429, 430, 431, -1, -1, 434, 435, 436, 437, 438,
+ -1, -1, 441, 442, 443, 444, 445, 446, 447, -1,
+ 449, -1, 451, 452, 453, 454, -1, -1, 457, -1,
+ -1, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
+ 479, -1, -1, -1, -1, 3, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 500, 20, 21, 22, 23, 24, 25, 26, 27,
+ -1, 29, 30, 31, -1, -1, -1, -1, -1, -1,
+ -1, 39, 40, 41, -1, 43, 44, 45, 46, -1,
+ 48, 49, 50, 51, 52, -1, 54, 55, -1, 57,
+ 58, 59, 60, 61, 62, 63, -1, -1, 66, 67,
+ 68, 69, 70, -1, 72, 73, 74, 75, 76, -1,
+ -1, -1, 80, 81, 82, 83, 84, 85, -1, 87,
+ 88, 89, -1, 91, 92, 93, 94, 95, 96, -1,
+ -1, 99, 100, 101, -1, -1, -1, -1, -1, -1,
+ -1, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ -1, 119, -1, 121, 122, 123, 124, 125, 126, 127,
+ -1, 129, 130, 131, 132, -1, -1, 135, 136, 137,
+ 138, 139, -1, 141, 142, 143, -1, 145, 146, 147,
+ -1, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, -1, 160, -1, 162, 163, 164, 165, 166, -1,
+ 168, -1, 170, -1, -1, -1, 174, 175, 176, 177,
+ -1, 179, 180, -1, 182, 183, 184, -1, 186, 187,
+ 188, 189, 190, -1, 192, 193, 194, 195, -1, 197,
+ 198, 199, 200, 201, 202, 203, -1, 205, -1, 207,
+ 208, 209, 210, 211, 212, 213, -1, 215, -1, 217,
+ -1, -1, 220, -1, 222, 223, 224, 225, 226, -1,
+ -1, 229, 230, -1, 232, -1, -1, 235, 236, 237,
+ -1, -1, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
+ 258, -1, 260, 261, 262, 263, 264, 265, 266, 267,
+ 268, 269, 270, -1, 272, 273, -1, 275, -1, 277,
+ 278, 279, 280, 281, 282, -1, 284, 285, -1, -1,
+ 288, 289, 290, -1, -1, 293, 294, 295, -1, 297,
+ -1, 299, 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, -1, 311, 312, 313, 314, 315, 316, 317,
+ 318, -1, 320, 321, 322, 323, 324, 325, 326, 327,
+ 328, 329, 330, 331, 332, 333, 334, -1, 336, 337,
+ 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
+ 348, -1, 350, 351, -1, 353, 354, 355, 356, 357,
+ 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
+ -1, 369, 370, 371, 372, 373, -1, 375, 376, 377,
+ 378, 379, -1, 381, 382, 383, 384, -1, 386, 387,
+ 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 399, 400, -1, 402, 403, -1, 405, -1, 407,
+ 408, 409, 410, 411, -1, 413, 414, 415, -1, -1,
+ 418, 419, 420, 421, 422, -1, 424, 425, 426, 427,
+ 428, 429, 430, 431, -1, -1, 434, 435, 436, 437,
+ 438, -1, -1, 441, 442, 443, 444, 445, 446, 447,
+ -1, 449, -1, 451, 452, 453, 454, -1, -1, 457,
+ -1, -1, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
+ 478, 479, -1, -1, -1, -1, 3, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 500, 20, 21, 22, 23, 24, 25, 26,
+ 27, -1, 29, 30, 31, -1, -1, -1, -1, -1,
+ -1, -1, 39, 40, 41, -1, 43, 44, 45, 46,
+ -1, 48, 49, 50, 51, 52, -1, 54, 55, -1,
+ 57, 58, 59, 60, 61, 62, 63, -1, -1, 66,
+ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76,
+ -1, -1, -1, 80, 81, 82, 83, 84, 85, -1,
+ 87, 88, 89, -1, 91, 92, 93, 94, 95, 96,
+ -1, -1, 99, 100, 101, -1, -1, -1, -1, -1,
+ -1, -1, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, -1, 119, -1, 121, 122, 123, 124, 125, 126,
+ 127, -1, 129, 130, 131, 132, -1, -1, 135, 136,
+ 137, 138, 139, -1, 141, 142, 143, -1, 145, 146,
+ 147, -1, 149, 150, 151, 152, 153, 154, 155, 156,
+ 157, 158, -1, 160, -1, 162, 163, 164, 165, 166,
+ -1, 168, -1, 170, -1, -1, -1, 174, 175, 176,
+ 177, -1, 179, 180, -1, 182, 183, 184, -1, 186,
+ 187, 188, 189, 190, -1, 192, 193, 194, 195, -1,
+ 197, 198, 199, 200, 201, 202, 203, -1, 205, -1,
+ 207, 208, 209, 210, 211, 212, 213, -1, 215, -1,
+ 217, -1, -1, 220, -1, 222, 223, 224, 225, 226,
+ -1, -1, 229, 230, -1, 232, -1, -1, 235, 236,
+ 237, -1, -1, 240, 241, 242, 243, 244, 245, 246,
+ 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
+ 257, 258, -1, 260, 261, 262, 263, 264, 265, 266,
+ 267, 268, 269, 270, -1, 272, 273, -1, 275, -1,
+ 277, 278, 279, 280, 281, 282, -1, 284, 285, -1,
+ -1, 288, 289, 290, -1, -1, 293, 294, 295, -1,
+ 297, -1, 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, -1, 311, 312, 313, 314, 315, 316,
+ 317, 318, -1, 320, 321, 322, 323, 324, 325, 326,
+ 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
+ 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
+ 347, 348, -1, 350, 351, -1, 353, 354, 355, 356,
+ 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
+ 367, -1, 369, 370, 371, 372, 373, -1, 375, 376,
+ 377, 378, 379, -1, 381, 382, 383, 384, -1, 386,
+ 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 399, 400, -1, 402, 403, -1, 405, -1,
+ 407, 408, 409, 410, 411, -1, 413, 414, 415, -1,
+ -1, 418, 419, 420, 421, 422, -1, 424, 425, 426,
+ 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
+ 437, 438, -1, -1, 441, 442, 443, 444, 445, 446,
+ 447, -1, 449, -1, 451, 452, 453, 454, -1, -1,
+ 457, -1, -1, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
+ 477, 478, 479, -1, -1, -1, -1, 3, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 500, 20, 21, 22, 23, 24, 25,
+ 26, 27, -1, 29, 30, 31, -1, -1, -1, -1,
+ -1, -1, -1, 39, 40, 41, -1, 43, 44, 45,
+ 46, -1, 48, 49, 50, 51, 52, -1, 54, 55,
+ -1, 57, 58, 59, 60, 61, 62, 63, -1, -1,
+ 66, 67, 68, 69, 70, -1, 72, 73, 74, 75,
+ 76, -1, -1, -1, 80, 81, 82, 83, 84, 85,
+ -1, 87, 88, 89, -1, 91, 92, 93, 94, 95,
+ 96, -1, -1, 99, 100, 101, -1, -1, -1, -1,
+ -1, -1, -1, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, -1, 119, -1, 121, 122, 123, 124, 125,
+ 126, 127, -1, 129, 130, 131, 132, -1, -1, 135,
+ 136, 137, 138, 139, -1, 141, 142, 143, -1, 145,
+ 146, 147, -1, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, -1, 160, -1, 162, 163, 164, 165,
+ 166, -1, 168, -1, 170, -1, -1, -1, 174, 175,
+ 176, 177, -1, 179, 180, -1, 182, 183, 184, -1,
+ 186, 187, 188, 189, 190, -1, 192, 193, 194, 195,
+ -1, 197, 198, 199, 200, 201, 202, 203, -1, 205,
+ -1, 207, 208, 209, 210, 211, 212, 213, -1, 215,
+ -1, 217, -1, -1, 220, -1, 222, 223, 224, 225,
+ 226, -1, -1, 229, 230, -1, 232, -1, -1, 235,
+ 236, 237, -1, -1, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 258, -1, 260, 261, 262, 263, 264, 265,
+ 266, 267, 268, 269, 270, -1, 272, 273, -1, 275,
+ -1, 277, 278, 279, 280, 281, 282, -1, 284, 285,
+ -1, -1, 288, 289, 290, -1, -1, 293, 294, 295,
+ -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, -1, 311, 312, 313, 314, 315,
+ 316, 317, 318, -1, 320, 321, 322, 323, 324, 325,
+ 326, 327, 328, 329, 330, 331, 332, 333, 334, -1,
+ 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
+ 346, 347, 348, -1, 350, 351, -1, 353, 354, 355,
+ 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
+ 366, 367, -1, 369, 370, 371, 372, 373, -1, 375,
+ 376, 377, 378, 379, -1, 381, 382, 383, 384, -1,
+ 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, 399, 400, -1, 402, 403, -1, 405,
+ -1, 407, 408, 409, 410, 411, -1, 413, 414, 415,
+ -1, -1, 418, 419, 420, 421, 422, -1, 424, 425,
+ 426, 427, 428, 429, 430, 431, -1, -1, 434, 435,
+ 436, 437, 438, -1, -1, 441, 442, 443, 444, 445,
+ 446, 447, -1, 449, -1, 451, 452, 453, 454, -1,
+ -1, 457, -1, -1, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
+ 476, 477, 478, 479, -1, -1, -1, -1, 3, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 500, 20, 21, 22, 23, 24,
+ 25, 26, 27, -1, 29, 30, 31, -1, -1, -1,
+ -1, -1, -1, -1, 39, 40, 41, -1, 43, 44,
+ 45, 46, -1, 48, 49, 50, 51, 52, -1, 54,
+ 55, -1, 57, 58, 59, 60, 61, 62, 63, -1,
+ -1, 66, 67, 68, 69, 70, -1, 72, 73, 74,
+ 75, 76, -1, -1, -1, 80, 81, 82, 83, 84,
+ 85, -1, 87, 88, 89, -1, 91, 92, 93, 94,
+ 95, 96, -1, -1, 99, 100, 101, -1, -1, -1,
+ -1, -1, -1, -1, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, -1, 119, -1, 121, 122, 123, 124,
+ 125, 126, 127, -1, 129, 130, 131, 132, -1, -1,
+ 135, 136, 137, 138, 139, -1, 141, 142, 143, -1,
+ 145, 146, 147, -1, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, -1, 160, -1, 162, 163, 164,
+ 165, 166, -1, 168, -1, 170, -1, -1, -1, 174,
+ 175, 176, 177, -1, 179, 180, -1, 182, 183, 184,
+ -1, 186, 187, 188, 189, 190, -1, 192, 193, 194,
+ 195, -1, 197, 198, 199, 200, 201, 202, 203, -1,
+ 205, -1, 207, 208, 209, 210, 211, 212, 213, -1,
+ 215, -1, 217, -1, -1, 220, -1, 222, 223, 224,
+ 225, 226, -1, -1, 229, 230, -1, 232, -1, -1,
+ 235, 236, 237, -1, -1, 240, 241, 242, 243, 244,
+ 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+ 255, 256, 257, 258, -1, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, -1, 272, 273, -1,
+ 275, -1, 277, 278, 279, 280, 281, 282, -1, 284,
+ 285, -1, -1, 288, 289, 290, -1, -1, 293, 294,
+ 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, -1, 311, 312, 313, 314,
+ 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ -1, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, -1, 350, 351, -1, 353, 354,
+ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
+ 365, 366, 367, -1, 369, 370, 371, 372, 373, -1,
+ 375, 376, 377, 378, 379, -1, 381, 382, 383, 384,
+ -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 399, 400, -1, 402, 403, -1,
+ 405, -1, 407, 408, 409, 410, 411, -1, 413, 414,
+ 415, -1, -1, 418, 419, 420, 421, 422, -1, 424,
+ 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
+ 435, 436, 437, 438, -1, -1, 441, 442, 443, 444,
+ 445, 446, 447, -1, 449, -1, 451, 452, 453, 454,
+ -1, -1, 457, -1, -1, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
+ 475, 476, 477, 478, 479, -1, -1, -1, -1, -1,
+ -1, -1, 3, -1, 5, 6, -1, -1, -1, 10,
+ 11, -1, -1, -1, -1, 500, 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,
+ -1, 52, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, 72, 73, 74, 75, -1, 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, -1, 154, 155, 156, 157, -1, 159, 160,
+ 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
+ 171, 172, 173, 174, 175, 176, 177, 178, 179, -1,
+ 181, -1, 183, 184, 185, 186, 187, 188, 189, 190,
+ 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
+ 201, 202, 203, 204, 205, 206, -1, 208, 209, 210,
+ 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
+ 221, 222, 223, 224, 225, 226, 227, 228, 229, -1,
+ 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, -1, 270,
+ 271, 272, 273, 274, 275, 276, -1, 278, 279, 280,
+ 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
+ 291, 292, 293, 294, -1, 296, 297, 298, -1, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
+ 311, 312, -1, 314, -1, 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, -1, 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, -1, 400,
+ 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
+ 411, 412, 413, 414, 415, 416, 417, 418, 419, -1,
+ 421, -1, 423, 424, 425, 426, 427, 428, 429, 430,
+ 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
+ 441, 442, 443, 444, 445, -1, 447, 448, 449, 450,
+ 451, 452, 453, 454, 455, 456, 457, 458, 459, 460,
+ 461, 462, 463, 464, 465, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 477, 478, 479, -1,
+ -1, -1, -1, -1, -1, -1, -1, 488, 489, 490,
+ 491, 492, 493, 494, 495, 496, 3, -1, 5, 6,
+ -1, -1, -1, 10, 11, -1, -1, -1, -1, -1,
+ 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, -1, 52, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, 72, 73, 74, 75, -1,
+ 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, -1, 154, 155, 156,
+ 157, -1, 159, 160, 161, 162, 163, 164, 165, 166,
+ 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
+ 177, 178, 179, -1, 181, -1, 183, 184, 185, 186,
+ 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
+ 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
+ -1, 208, 209, 210, 211, 212, 213, 214, 215, 216,
+ 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
+ 227, 228, 229, -1, 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, -1, 270, 271, 272, 273, 274, 275, 276,
+ -1, 278, 279, 280, 281, 282, 283, 284, 285, 286,
+ 287, 288, 289, 290, 291, 292, 293, 294, -1, 296,
+ 297, 298, -1, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, 310, 311, 312, -1, 314, -1, 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, -1, 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, -1, 400, 401, 402, 403, 404, 405, 406,
+ 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
+ 417, 418, 419, -1, 421, -1, 423, 424, 425, 426,
+ 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
+ 437, 438, 439, 440, 441, 442, 443, 444, 445, -1,
+ 447, 448, 449, 450, 451, 452, 453, 454, 455, 456,
+ 457, 458, 459, 460, 461, 462, 463, 464, 465, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 477, 478, 479, -1, -1, -1, -1, -1, -1, -1,
+ -1, 488, 489, 490, 491, 492, 493, 494, 495, 496,
+ 3, -1, -1, -1, -1, -1, -1, 10, -1, -1,
+ 13, -1, -1, -1, 17, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ 33, 34, 35, -1, 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, -1, -1, 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, -1, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
+ -1, 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, -1, 149, 150, 151, 152,
+ 153, 154, 155, 156, 157, 158, 159, 160, -1, -1,
+ 163, 164, 165, 166, -1, 168, 169, 170, 171, -1,
+ 173, 174, 175, 176, 177, -1, 179, 180, -1, 182,
+ 183, 184, -1, 186, 187, -1, 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, -1, 215, -1, 217, 218, 219, 220, 221, 222,
+ 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
+ 233, -1, 235, 236, 237, 238, 239, 240, 241, 242,
+ 243, 244, 245, 246, 247, 248, 249, 250, -1, 252,
+ 253, -1, 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,
+ -1, 284, 285, -1, 287, 288, 289, 290, 291, -1,
+ 293, 294, 295, 296, -1, -1, 299, 300, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
+ 313, 314, -1, 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, -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, 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, -1, 417, 418, 419, 420, 421, 422,
+ 423, 424, 425, 426, 427, 428, 429, 430, 431, -1,
+ 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
+ 443, 444, 445, 446, 447, 448, -1, 450, 451, 452,
+ 453, 454, 455, -1, 457, -1, -1, -1, -1, 462,
+ 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
+ 473, 474, 475, 476, -1, 478, 479, 480, -1, -1,
+ -1, -1, -1, -1, -1, 488, 489, 490, 491, 492,
+ 493, 494, 495, 496, 3, -1, -1, -1, -1, -1,
+ -1, 10, -1, -1, -1, -1, -1, -1, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, -1,
+ 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
+ 39, 40, 41, -1, 43, 44, 45, 46, -1, 48,
+ 49, 50, 51, 52, -1, 54, 55, -1, 57, 58,
+ 59, 60, 61, 62, 63, -1, -1, 66, 67, 68,
+ 69, 70, -1, 72, 73, 74, 75, 76, -1, -1,
+ -1, 80, 81, 82, 83, 84, 85, -1, 87, 88,
+ 89, -1, 91, 92, 93, 94, 95, 96, -1, -1,
+ 99, 100, 101, -1, -1, -1, -1, -1, -1, -1,
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, -1,
+ 119, -1, 121, 122, 123, 124, 125, 126, 127, -1,
+ 129, 130, 131, 132, -1, -1, 135, 136, 137, 138,
+ 139, -1, 141, 142, 143, -1, 145, 146, 147, -1,
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ -1, 160, -1, 162, 163, 164, 165, 166, -1, 168,
+ -1, 170, -1, -1, -1, 174, 175, 176, 177, -1,
+ 179, 180, -1, 182, 183, 184, -1, 186, 187, 188,
+ 189, 190, -1, 192, 193, 194, 195, -1, 197, 198,
+ 199, 200, 201, 202, 203, -1, 205, -1, 207, 208,
+ 209, 210, 211, 212, 213, -1, 215, -1, 217, -1,
+ -1, 220, -1, 222, 223, 224, 225, 226, -1, -1,
+ 229, 230, -1, 232, -1, -1, 235, 236, 237, -1,
+ -1, 240, 241, 242, 243, 244, 245, 246, 247, 248,
+ 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
+ 269, 270, -1, 272, 273, -1, 275, -1, 277, 278,
+ 279, 280, 281, 282, -1, 284, 285, -1, -1, 288,
+ 289, 290, -1, -1, 293, 294, 295, -1, 297, -1,
+ 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, -1, 311, 312, 313, 314, 315, 316, 317, 318,
+ -1, 320, 321, 322, 323, 324, 325, 326, 327, 328,
+ 329, 330, 331, 332, 333, 334, -1, 336, 337, 338,
+ 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
+ -1, 350, 351, -1, 353, 354, 355, 356, 357, 358,
+ 359, 360, 361, 362, 363, 364, 365, 366, 367, -1,
+ 369, 370, 371, 372, 373, -1, 375, 376, 377, 378,
+ 379, -1, 381, 382, 383, 384, -1, 386, 387, 388,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 399, 400, -1, 402, 403, -1, 405, -1, 407, 408,
+ 409, 410, 411, -1, 413, 414, 415, -1, -1, 418,
+ 419, 420, 421, 422, -1, 424, 425, 426, 427, 428,
+ 429, 430, 431, -1, -1, 434, 435, 436, 437, 438,
+ -1, -1, 441, 442, 443, 444, 445, 446, 447, -1,
+ 449, -1, 451, 452, 453, 454, -1, -1, 457, -1,
+ -1, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
+ 479, -1, -1, -1, -1, -1, -1, -1, -1, 488,
+ 489, 490, 491, 492, 493, 494, 495, 496, 3, -1,
+ -1, -1, -1, -1, -1, 10, -1, -1, -1, -1,
+ -1, -1, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, -1, 29, 30, 31, -1, -1, -1,
+ -1, -1, -1, -1, 39, 40, 41, -1, 43, 44,
+ 45, 46, -1, 48, 49, 50, 51, 52, -1, 54,
+ 55, -1, 57, 58, 59, 60, 61, 62, 63, -1,
+ -1, 66, 67, 68, 69, 70, -1, 72, 73, 74,
+ 75, 76, -1, -1, -1, 80, 81, 82, 83, 84,
+ 85, -1, 87, 88, 89, -1, 91, 92, 93, 94,
+ 95, 96, -1, -1, 99, 100, 101, -1, -1, -1,
+ -1, -1, -1, -1, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, -1, 119, -1, 121, 122, 123, 124,
+ 125, 126, 127, -1, 129, 130, 131, 132, -1, -1,
+ 135, 136, 137, 138, 139, -1, 141, 142, 143, -1,
+ 145, 146, 147, -1, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, -1, 160, -1, 162, 163, 164,
+ 165, 166, -1, 168, -1, 170, -1, -1, -1, 174,
+ 175, 176, 177, -1, 179, 180, -1, 182, 183, 184,
+ -1, 186, 187, 188, 189, 190, -1, 192, 193, 194,
+ 195, -1, 197, 198, 199, 200, 201, 202, 203, -1,
+ 205, -1, 207, 208, 209, 210, 211, 212, 213, -1,
+ 215, -1, 217, -1, -1, 220, -1, 222, 223, 224,
+ 225, 226, -1, -1, 229, 230, -1, 232, -1, -1,
+ 235, 236, 237, -1, -1, 240, 241, 242, 243, 244,
+ 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+ 255, 256, 257, 258, -1, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, -1, 272, 273, -1,
+ 275, -1, 277, 278, 279, 280, 281, 282, -1, 284,
+ 285, -1, -1, 288, 289, 290, -1, -1, 293, 294,
+ 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, -1, 311, 312, 313, 314,
+ 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ -1, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, -1, 350, 351, -1, 353, 354,
+ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
+ 365, 366, 367, -1, 369, 370, 371, 372, 373, -1,
+ 375, 376, 377, 378, 379, -1, 381, 382, 383, 384,
+ -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 399, 400, -1, 402, 403, -1,
+ 405, -1, 407, 408, 409, 410, 411, -1, 413, 414,
+ 415, -1, -1, 418, 419, 420, 421, 422, -1, 424,
+ 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
+ 435, 436, 437, 438, -1, -1, 441, 442, 443, 444,
+ 445, 446, 447, -1, 449, -1, 451, 452, 453, 454,
+ -1, -1, 457, -1, -1, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
+ 475, 476, 477, 478, 479, -1, -1, -1, -1, -1,
+ -1, -1, -1, 488, 489, 490, 491, 492, 493, 494,
+ 495, 496, 3, -1, -1, -1, -1, -1, -1, 10,
+ -1, -1, -1, -1, -1, -1, 17, 18, 19, 20,
+ 21, 22, 23, 24, 25, 26, 27, -1, 29, 30,
+ 31, -1, -1, -1, -1, -1, -1, -1, 39, 40,
+ 41, -1, 43, 44, 45, 46, -1, 48, 49, 50,
+ 51, 52, -1, 54, 55, -1, 57, 58, 59, 60,
+ 61, 62, 63, -1, -1, 66, 67, 68, 69, 70,
+ -1, 72, 73, 74, 75, 76, -1, -1, -1, 80,
+ 81, 82, 83, 84, 85, -1, 87, 88, 89, -1,
+ 91, 92, 93, 94, 95, 96, -1, -1, 99, 100,
+ 101, -1, -1, -1, -1, -1, -1, -1, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, -1, 119, -1,
+ 121, 122, 123, 124, 125, 126, 127, -1, 129, 130,
+ 131, 132, -1, -1, 135, 136, 137, 138, 139, -1,
+ 141, 142, 143, -1, 145, 146, 147, -1, 149, 150,
+ 151, 152, 153, 154, 155, 156, 157, 158, -1, 160,
+ -1, 162, 163, 164, 165, 166, -1, 168, -1, 170,
+ -1, -1, -1, 174, 175, 176, 177, -1, 179, 180,
+ -1, 182, 183, 184, -1, 186, 187, 188, 189, 190,
+ -1, 192, 193, 194, 195, -1, 197, 198, 199, 200,
+ 201, 202, 203, -1, 205, -1, 207, 208, 209, 210,
+ 211, 212, 213, -1, 215, -1, 217, -1, -1, 220,
+ -1, 222, 223, 224, 225, 226, -1, -1, 229, 230,
+ -1, 232, -1, -1, 235, 236, 237, -1, -1, 240,
+ 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
+ 251, 252, 253, 254, 255, 256, 257, 258, -1, 260,
+ 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
+ -1, 272, 273, -1, 275, -1, 277, 278, 279, 280,
+ 281, 282, -1, 284, 285, -1, -1, 288, 289, 290,
+ -1, -1, 293, 294, 295, -1, 297, -1, 299, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, -1,
+ 311, 312, 313, 314, 315, 316, 317, 318, -1, 320,
+ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 334, -1, 336, 337, 338, 339, 340,
+ 341, 342, 343, 344, 345, 346, 347, 348, -1, 350,
+ 351, -1, 353, 354, 355, 356, 357, 358, 359, 360,
+ 361, 362, 363, 364, 365, 366, 367, -1, 369, 370,
+ 371, 372, 373, -1, 375, 376, 377, 378, 379, -1,
+ 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
+ -1, 402, 403, -1, 405, -1, 407, 408, 409, 410,
+ 411, -1, 413, 414, 415, -1, -1, 418, 419, 420,
+ 421, 422, -1, 424, 425, 426, 427, 428, 429, 430,
+ 431, -1, -1, 434, 435, 436, 437, 438, -1, -1,
+ 441, 442, 443, 444, 445, 446, 447, -1, 449, -1,
+ 451, 452, 453, 454, -1, -1, 457, -1, -1, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
+ 471, 472, 473, 474, 475, 476, 477, 478, 479, -1,
+ -1, -1, -1, -1, -1, -1, -1, 488, 489, 490,
+ 491, 492, 493, 494, 495, 496, 3, -1, -1, -1,
+ -1, -1, -1, 10, -1, -1, -1, -1, -1, -1,
+ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 27, -1, 29, 30, 31, -1, -1, -1, -1, -1,
+ -1, -1, 39, 40, 41, -1, 43, 44, 45, 46,
+ -1, 48, 49, 50, 51, 52, -1, 54, 55, -1,
+ 57, 58, 59, 60, 61, 62, 63, -1, -1, 66,
+ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76,
+ -1, -1, -1, 80, 81, 82, 83, 84, 85, -1,
+ 87, 88, 89, -1, 91, 92, 93, 94, 95, 96,
+ -1, -1, 99, 100, 101, -1, -1, -1, -1, -1,
+ -1, -1, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, -1, 119, -1, 121, 122, 123, 124, 125, 126,
+ 127, -1, 129, 130, 131, 132, -1, -1, 135, 136,
+ 137, 138, 139, -1, 141, 142, 143, -1, 145, 146,
+ 147, -1, 149, 150, 151, 152, 153, 154, 155, 156,
+ 157, 158, -1, 160, -1, 162, 163, 164, 165, 166,
+ -1, 168, -1, 170, -1, -1, -1, 174, 175, 176,
+ 177, -1, 179, 180, -1, 182, 183, 184, -1, 186,
+ 187, 188, 189, 190, -1, 192, 193, 194, 195, -1,
+ 197, 198, 199, 200, 201, 202, 203, -1, 205, -1,
+ 207, 208, 209, 210, 211, 212, 213, -1, 215, -1,
+ 217, -1, -1, 220, -1, 222, 223, 224, 225, 226,
+ -1, -1, 229, 230, -1, 232, -1, -1, 235, 236,
+ 237, -1, -1, 240, 241, 242, 243, 244, 245, 246,
+ 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
+ 257, 258, -1, 260, 261, 262, 263, 264, 265, 266,
+ 267, 268, 269, 270, -1, 272, 273, -1, 275, -1,
+ 277, 278, 279, 280, 281, 282, -1, 284, 285, -1,
+ -1, 288, 289, 290, -1, -1, 293, 294, 295, -1,
+ 297, -1, 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, -1, 311, 312, 313, 314, 315, 316,
+ 317, 318, -1, 320, 321, 322, 323, 324, 325, 326,
+ 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
+ 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
+ 347, 348, -1, 350, 351, -1, 353, 354, 355, 356,
+ 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
+ 367, -1, 369, 370, 371, 372, 373, -1, 375, 376,
+ 377, 378, 379, -1, 381, 382, 383, 384, -1, 386,
+ 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 399, 400, -1, 402, 403, -1, 405, -1,
+ 407, 408, 409, 410, 411, -1, 413, 414, 415, -1,
+ -1, 418, 419, 420, 421, 422, -1, 424, 425, 426,
+ 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
+ 437, 438, -1, -1, 441, 442, 443, 444, 445, 446,
+ 447, -1, 449, -1, 451, 452, 453, 454, -1, -1,
+ 457, -1, -1, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
+ 477, 478, 479, -1, -1, -1, -1, -1, -1, -1,
+ -1, 488, 489, 490, 491, 492, 493, 494, 495, 496,
+ 3, -1, -1, -1, -1, -1, -1, 10, -1, -1,
+ -1, -1, -1, -1, 17, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, 27, -1, 29, 30, 31, -1,
+ -1, -1, -1, -1, -1, -1, 39, 40, 41, -1,
+ 43, 44, 45, 46, -1, 48, 49, 50, 51, 52,
+ -1, 54, 55, -1, 57, 58, 59, 60, 61, 62,
+ 63, -1, -1, 66, 67, 68, 69, 70, -1, 72,
+ 73, 74, 75, 76, -1, -1, -1, 80, 81, 82,
+ 83, 84, 85, -1, 87, 88, 89, -1, 91, 92,
+ 93, 94, 95, 96, -1, -1, 99, 100, 101, -1,
+ -1, -1, -1, -1, -1, -1, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, -1, 119, -1, 121, 122,
+ 123, 124, 125, 126, 127, -1, 129, 130, 131, 132,
+ -1, -1, 135, 136, 137, 138, 139, -1, 141, 142,
+ 143, -1, 145, 146, 147, -1, 149, 150, 151, 152,
+ 153, 154, 155, 156, 157, 158, -1, 160, -1, 162,
+ 163, 164, 165, 166, -1, 168, -1, 170, -1, -1,
+ -1, 174, 175, 176, 177, -1, 179, 180, -1, 182,
+ 183, 184, -1, 186, 187, 188, 189, 190, -1, 192,
+ 193, 194, 195, -1, 197, 198, 199, 200, 201, 202,
+ 203, -1, 205, -1, 207, 208, 209, 210, 211, 212,
+ 213, -1, 215, -1, 217, -1, -1, 220, -1, 222,
+ 223, 224, 225, 226, -1, -1, 229, 230, -1, 232,
+ -1, -1, 235, 236, 237, -1, -1, 240, 241, 242,
+ 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
+ 253, 254, 255, 256, 257, 258, -1, 260, 261, 262,
+ 263, 264, 265, 266, 267, 268, 269, 270, -1, 272,
+ 273, -1, 275, -1, 277, 278, 279, 280, 281, 282,
+ -1, 284, 285, -1, -1, 288, 289, 290, -1, -1,
+ 293, 294, 295, -1, 297, -1, 299, 300, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, -1, 311, 312,
+ 313, 314, 315, 316, 317, 318, -1, 320, 321, 322,
+ 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
+ 333, 334, -1, 336, 337, 338, 339, 340, 341, 342,
+ 343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
+ 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
+ 363, 364, 365, 366, 367, -1, 369, 370, 371, 372,
+ 373, -1, 375, 376, 377, 378, 379, -1, 381, 382,
+ 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 399, 400, -1, 402,
+ 403, -1, 405, -1, 407, 408, 409, 410, 411, -1,
+ 413, 414, 415, -1, -1, 418, 419, 420, 421, 422,
+ -1, 424, 425, 426, 427, 428, 429, 430, 431, -1,
+ -1, 434, 435, 436, 437, 438, -1, -1, 441, 442,
+ 443, 444, 445, 446, 447, -1, 449, -1, 451, 452,
+ 453, 454, -1, -1, 457, -1, -1, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
+ 473, 474, 475, 476, 477, 478, 479, -1, -1, -1,
+ -1, -1, -1, -1, -1, 488, 489, 490, 491, 492,
+ 493, 494, 495, 496, 3, -1, -1, -1, -1, -1,
+ -1, 10, -1, -1, -1, -1, -1, -1, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, -1,
+ 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
+ 39, 40, 41, -1, 43, 44, 45, 46, -1, 48,
+ 49, 50, 51, 52, -1, 54, 55, -1, 57, 58,
+ 59, 60, 61, 62, 63, -1, -1, 66, 67, 68,
+ 69, 70, -1, 72, 73, 74, 75, 76, -1, -1,
+ -1, 80, 81, 82, 83, 84, 85, -1, 87, 88,
+ 89, -1, 91, 92, 93, 94, 95, 96, -1, -1,
+ 99, 100, 101, -1, -1, -1, -1, -1, -1, -1,
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, -1,
+ 119, -1, 121, 122, 123, 124, 125, 126, 127, -1,
+ 129, 130, 131, 132, -1, -1, 135, 136, 137, 138,
+ 139, -1, 141, 142, 143, -1, 145, 146, 147, -1,
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ -1, 160, -1, 162, 163, 164, 165, 166, -1, 168,
+ -1, 170, -1, -1, -1, 174, 175, 176, 177, -1,
+ 179, 180, -1, 182, 183, 184, -1, 186, 187, 188,
+ 189, 190, -1, 192, 193, 194, 195, -1, 197, 198,
+ 199, 200, 201, 202, 203, -1, 205, -1, 207, 208,
+ 209, 210, 211, 212, 213, -1, 215, -1, 217, -1,
+ -1, 220, -1, 222, 223, 224, 225, 226, -1, -1,
+ 229, 230, -1, 232, -1, -1, 235, 236, 237, -1,
+ -1, 240, 241, 242, 243, 244, 245, 246, 247, 248,
+ 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
+ 269, 270, -1, 272, 273, -1, 275, -1, 277, 278,
+ 279, 280, 281, 282, -1, 284, 285, -1, -1, 288,
+ 289, 290, -1, -1, 293, 294, 295, -1, 297, -1,
+ 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, -1, 311, 312, 313, 314, 315, 316, 317, 318,
+ -1, 320, 321, 322, 323, 324, 325, 326, 327, 328,
+ 329, 330, 331, 332, 333, 334, -1, 336, 337, 338,
+ 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
+ -1, 350, 351, -1, 353, 354, 355, 356, 357, 358,
+ 359, 360, 361, 362, 363, 364, 365, 366, 367, -1,
+ 369, 370, 371, 372, 373, -1, 375, 376, 377, 378,
+ 379, -1, 381, 382, 383, 384, -1, 386, 387, 388,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 399, 400, -1, 402, 403, -1, 405, -1, 407, 408,
+ 409, 410, 411, -1, 413, 414, 415, -1, -1, 418,
+ 419, 420, 421, 422, -1, 424, 425, 426, 427, 428,
+ 429, 430, 431, -1, -1, 434, 435, 436, 437, 438,
+ -1, -1, 441, 442, 443, 444, 445, 446, 447, -1,
+ 449, -1, 451, 452, 453, 454, -1, -1, 457, -1,
+ -1, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
+ 479, -1, -1, -1, -1, -1, -1, -1, -1, 488,
+ 489, 490, 491, 492, 493, 494, 495, 496, 3, -1,
+ -1, -1, -1, -1, -1, 10, -1, -1, -1, -1,
+ -1, -1, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, -1, 29, 30, 31, -1, -1, -1,
+ -1, -1, -1, -1, 39, 40, 41, -1, 43, 44,
+ 45, 46, -1, 48, 49, 50, 51, 52, -1, 54,
+ 55, -1, 57, 58, 59, 60, 61, 62, 63, -1,
+ -1, 66, 67, 68, 69, 70, -1, 72, 73, 74,
+ 75, 76, -1, -1, -1, 80, 81, 82, 83, 84,
+ 85, -1, 87, 88, 89, -1, 91, 92, 93, 94,
+ 95, 96, -1, -1, 99, 100, 101, -1, -1, -1,
+ -1, -1, -1, -1, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, -1, 119, -1, 121, 122, 123, 124,
+ 125, 126, 127, -1, 129, 130, 131, 132, -1, -1,
+ 135, 136, 137, 138, 139, -1, 141, 142, 143, -1,
+ 145, 146, 147, -1, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, -1, 160, -1, 162, 163, 164,
+ 165, 166, -1, 168, -1, 170, -1, -1, -1, 174,
+ 175, 176, 177, -1, 179, 180, -1, 182, 183, 184,
+ -1, 186, 187, 188, 189, 190, -1, 192, 193, 194,
+ 195, -1, 197, 198, 199, 200, 201, 202, 203, -1,
+ 205, -1, 207, 208, 209, 210, 211, 212, 213, -1,
+ 215, -1, 217, -1, -1, 220, -1, 222, 223, 224,
+ 225, 226, -1, -1, 229, 230, -1, 232, -1, -1,
+ 235, 236, 237, -1, -1, 240, 241, 242, 243, 244,
+ 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+ 255, 256, 257, 258, -1, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, -1, 272, 273, -1,
+ 275, -1, 277, 278, 279, 280, 281, 282, -1, 284,
+ 285, -1, -1, 288, 289, 290, -1, -1, 293, 294,
+ 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, -1, 311, 312, 313, 314,
+ 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ -1, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, -1, 350, 351, -1, 353, 354,
+ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
+ 365, 366, 367, -1, 369, 370, 371, 372, 373, -1,
+ 375, 376, 377, 378, 379, -1, 381, 382, 383, 384,
+ -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 399, 400, -1, 402, 403, -1,
+ 405, -1, 407, 408, 409, 410, 411, -1, 413, 414,
+ 415, -1, -1, 418, 419, 420, 421, 422, -1, 424,
+ 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
+ 435, 436, 437, 438, -1, -1, 441, 442, 443, 444,
+ 445, 446, 447, -1, 449, -1, 451, 452, 453, 454,
+ -1, -1, 457, -1, -1, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
+ 475, 476, 477, 478, 479, 3, -1, -1, -1, -1,
+ -1, -1, -1, 488, 489, 490, 491, 492, 493, 494,
+ 495, 496, 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, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
+ 478, 479, 3, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 493, -1, -1, -1, 20,
+ 21, 22, 23, 24, 25, 26, 27, -1, 29, 30,
+ 31, -1, -1, -1, -1, -1, -1, -1, 39, 40,
+ 41, -1, 43, 44, 45, 46, -1, 48, 49, 50,
+ 51, 52, -1, 54, 55, -1, 57, 58, 59, 60,
+ 61, 62, 63, -1, -1, 66, 67, 68, 69, 70,
+ -1, 72, 73, 74, 75, 76, -1, -1, -1, 80,
+ 81, 82, 83, 84, 85, -1, 87, 88, 89, -1,
+ 91, 92, 93, 94, 95, 96, -1, -1, 99, 100,
+ 101, -1, -1, -1, -1, -1, -1, -1, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, -1, 119, -1,
+ 121, 122, 123, 124, 125, 126, 127, -1, 129, 130,
+ 131, 132, -1, -1, 135, 136, 137, 138, 139, -1,
+ 141, 142, 143, -1, 145, 146, 147, -1, 149, 150,
+ 151, 152, 153, 154, 155, 156, 157, 158, -1, 160,
+ -1, 162, 163, 164, 165, 166, -1, 168, -1, 170,
+ -1, -1, -1, 174, 175, 176, 177, -1, 179, 180,
+ -1, 182, 183, 184, -1, 186, 187, 188, 189, 190,
+ -1, 192, 193, 194, 195, -1, 197, 198, 199, 200,
+ 201, 202, 203, -1, 205, -1, 207, 208, 209, 210,
+ 211, 212, 213, -1, 215, -1, 217, -1, -1, 220,
+ -1, 222, 223, 224, 225, 226, -1, -1, 229, 230,
+ -1, 232, -1, -1, 235, 236, 237, -1, -1, 240,
+ 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
+ 251, 252, 253, 254, 255, 256, 257, 258, -1, 260,
+ 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
+ -1, 272, 273, -1, 275, -1, 277, 278, 279, 280,
+ 281, 282, -1, 284, 285, -1, -1, 288, 289, 290,
+ -1, -1, 293, 294, 295, -1, 297, -1, 299, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, -1,
+ 311, 312, 313, 314, 315, 316, 317, 318, -1, 320,
+ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 334, -1, 336, 337, 338, 339, 340,
+ 341, 342, 343, 344, 345, 346, 347, 348, -1, 350,
+ 351, -1, 353, 354, 355, 356, 357, 358, 359, 360,
+ 361, 362, 363, 364, 365, 366, 367, -1, 369, 370,
+ 371, 372, 373, -1, 375, 376, 377, 378, 379, -1,
+ 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
+ -1, 402, 403, -1, 405, -1, 407, 408, 409, 410,
+ 411, -1, 413, 414, 415, -1, -1, 418, 419, 420,
+ 421, 422, -1, 424, 425, 426, 427, 428, 429, 430,
+ 431, -1, -1, 434, 435, 436, 437, 438, -1, -1,
+ 441, 442, 443, 444, 445, 446, 447, -1, 449, -1,
+ 451, 452, 453, 454, -1, -1, 457, -1, -1, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
+ 471, 472, 473, 474, 475, 476, 477, 478, 479, 3,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 493, -1, -1, -1, 20, 21, 22, 23,
+ 24, 25, 26, 27, -1, 29, 30, 31, -1, -1,
+ -1, -1, -1, -1, -1, 39, 40, 41, -1, 43,
+ 44, 45, 46, -1, 48, 49, 50, 51, 52, -1,
+ 54, 55, -1, 57, 58, 59, 60, 61, 62, 63,
+ -1, -1, 66, 67, 68, 69, 70, -1, 72, 73,
+ 74, 75, 76, -1, -1, -1, 80, 81, 82, 83,
+ 84, 85, -1, 87, 88, 89, -1, 91, 92, 93,
+ 94, 95, 96, -1, -1, 99, 100, 101, -1, -1,
+ -1, -1, -1, -1, -1, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, -1, 119, -1, 121, 122, 123,
+ 124, 125, 126, 127, -1, 129, 130, 131, 132, -1,
+ -1, 135, 136, 137, 138, 139, -1, 141, 142, 143,
+ -1, 145, 146, 147, -1, 149, 150, 151, 152, 153,
+ 154, 155, 156, 157, 158, -1, 160, -1, 162, 163,
+ 164, 165, 166, -1, 168, -1, 170, -1, -1, -1,
+ 174, 175, 176, 177, -1, 179, 180, -1, 182, 183,
+ 184, -1, 186, 187, 188, 189, 190, -1, 192, 193,
+ 194, 195, -1, 197, 198, 199, 200, 201, 202, 203,
+ -1, 205, -1, 207, 208, 209, 210, 211, 212, 213,
+ -1, 215, -1, 217, -1, -1, 220, -1, 222, 223,
+ 224, 225, 226, -1, -1, 229, 230, -1, 232, -1,
+ -1, 235, 236, 237, -1, -1, 240, 241, 242, 243,
+ 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 258, -1, 260, 261, 262, 263,
+ 264, 265, 266, 267, 268, 269, 270, -1, 272, 273,
+ -1, 275, -1, 277, 278, 279, 280, 281, 282, -1,
+ 284, 285, -1, -1, 288, 289, 290, -1, -1, 293,
+ 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, -1, 311, 312, 313,
+ 314, 315, 316, 317, 318, -1, 320, 321, 322, 323,
+ 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
+ 334, -1, 336, 337, 338, 339, 340, 341, 342, 343,
+ 344, 345, 346, 347, 348, -1, 350, 351, -1, 353,
+ 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
+ 364, 365, 366, 367, -1, 369, 370, 371, 372, 373,
+ -1, 375, 376, 377, 378, 379, -1, 381, 382, 383,
+ 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 399, 400, -1, 402, 403,
+ -1, 405, -1, 407, 408, 409, 410, 411, -1, 413,
+ 414, 415, -1, -1, 418, 419, 420, 421, 422, -1,
+ 424, 425, 426, 427, 428, 429, 430, 431, -1, -1,
+ 434, 435, 436, 437, 438, -1, -1, 441, 442, 443,
+ 444, 445, 446, 447, -1, 449, -1, 451, 452, 453,
+ 454, -1, -1, 457, -1, -1, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
+ 474, 475, 476, 477, 478, 479, 3, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 493,
+ -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
+ 27, -1, 29, 30, 31, -1, -1, -1, -1, -1,
+ -1, -1, 39, 40, 41, -1, 43, 44, 45, 46,
+ 47, 48, 49, 50, -1, 52, 53, 54, 55, -1,
+ 57, 58, 59, 60, 61, 62, 63, -1, -1, 66,
+ 67, 68, 69, 70, -1, 72, 73, 74, 75, -1,
+ -1, 78, -1, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, -1, 91, 92, 93, 94, 95, 96,
+ -1, 98, 99, 100, 101, -1, -1, -1, 105, -1,
+ -1, -1, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, -1, 119, -1, 121, 122, 123, 124, 125, 126,
+ 127, -1, 129, 130, 131, 132, -1, -1, 135, 136,
+ 137, 138, 139, -1, 141, 142, 143, -1, 145, 146,
+ 147, -1, 149, 150, 151, 152, -1, 154, 155, 156,
+ 157, -1, -1, 160, -1, 162, 163, 164, 165, 166,
+ -1, 168, -1, 170, 171, -1, 173, 174, 175, 176,
+ 177, -1, 179, -1, -1, -1, 183, 184, -1, 186,
+ 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
+ 197, 198, 199, 200, 201, 202, 203, -1, 205, 206,
+ 207, 208, 209, 210, 211, 212, 213, -1, 215, -1,
+ 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
+ -1, -1, 229, -1, 231, 232, 233, -1, 235, 236,
+ 237, -1, -1, 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, -1, -1, 270, -1, 272, 273, 274, 275, -1,
+ -1, 278, 279, 280, 281, 282, -1, 284, 285, -1,
+ -1, 288, 289, 290, -1, 292, 293, 294, 295, 296,
+ 297, 298, -1, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, -1, 311, 312, -1, 314, -1, 316,
+ 317, 318, -1, 320, 321, 322, 323, 324, 325, 326,
+ 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
+ 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
+ 347, 348, -1, 350, 351, 352, 353, 354, 355, 356,
+ 357, -1, 359, 360, 361, 362, 363, 364, 365, 366,
+ 367, -1, 369, 370, 371, 372, 373, -1, 375, 376,
+ 377, 378, 379, 380, 381, 382, 383, 384, -1, 386,
+ 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, -1, 400, -1, 402, 403, -1, 405, 406,
+ 407, 408, 409, 410, 411, -1, 413, 414, 415, -1,
+ -1, 418, 419, -1, 421, -1, -1, 424, 425, 426,
+ 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
+ 437, 438, -1, -1, 441, 442, 443, 444, 445, -1,
+ 447, 448, 449, 450, 451, 452, 453, 454, -1, -1,
+ 457, -1, -1, 460, 461, 462, 463, 464, 465, -1,
+ -1, 3, -1, -1, -1, -1, -1, -1, -1, -1,
+ 477, 478, 479, -1, -1, -1, -1, -1, 20, 21,
+ 22, 23, 24, 25, 26, 27, 493, 29, 30, 31,
+ -1, -1, -1, -1, -1, -1, -1, 39, 40, 41,
+ -1, 43, 44, 45, 46, 47, 48, 49, 50, -1,
+ 52, 53, 54, 55, -1, 57, 58, 59, 60, 61,
+ 62, 63, -1, -1, 66, 67, 68, 69, 70, -1,
+ 72, 73, 74, 75, -1, -1, 78, -1, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, -1, 91,
+ 92, 93, 94, 95, 96, -1, 98, 99, 100, 101,
+ -1, -1, -1, 105, -1, -1, -1, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, -1, 119, -1, 121,
+ 122, 123, 124, 125, 126, 127, -1, 129, 130, 131,
+ 132, -1, -1, 135, 136, 137, 138, 139, -1, 141,
+ 142, 143, -1, 145, 146, 147, -1, 149, 150, 151,
+ 152, -1, 154, 155, 156, 157, -1, -1, 160, -1,
+ 162, 163, 164, 165, 166, -1, 168, -1, 170, 171,
+ -1, 173, 174, 175, 176, 177, -1, 179, -1, -1,
+ -1, 183, 184, -1, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
+ 202, 203, -1, 205, 206, 207, 208, 209, 210, 211,
+ 212, 213, -1, 215, -1, 217, 218, 219, 220, 221,
+ 222, 223, 224, 225, 226, -1, -1, 229, -1, 231,
+ 232, 233, -1, 235, 236, 237, -1, -1, 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, -1, -1, 270, -1,
+ 272, 273, 274, 275, -1, -1, 278, 279, 280, 281,
+ 282, -1, 284, 285, -1, -1, 288, 289, 290, -1,
+ 292, 293, 294, 295, 296, 297, 298, -1, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, -1, 311,
+ 312, -1, 314, -1, 316, 317, 318, -1, 320, 321,
+ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
+ 332, 333, 334, -1, 336, 337, 338, 339, 340, 341,
+ 342, 343, 344, 345, 346, 347, 348, -1, 350, 351,
+ 352, 353, 354, 355, 356, 357, -1, 359, 360, 361,
+ 362, 363, 364, 365, 366, 367, -1, 369, 370, 371,
+ 372, 373, -1, 375, 376, 377, 378, 379, 380, 381,
+ 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, -1, 400, -1,
+ 402, 403, -1, 405, 406, 407, 408, 409, 410, 411,
+ -1, 413, 414, 415, -1, -1, 418, 419, -1, 421,
+ -1, -1, 424, 425, 426, 427, 428, 429, 430, 431,
+ -1, -1, 434, 435, 436, 437, 438, -1, -1, 441,
+ 442, 443, 444, 445, -1, 447, 448, 449, 450, 451,
+ 452, 453, 454, -1, -1, 457, -1, -1, 460, 461,
+ 462, 463, 464, 465, -1, -1, 3, -1, 5, 6,
+ -1, -1, -1, -1, 11, 477, 478, 479, -1, -1,
+ -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
+ 27, 493, 29, 30, 31, -1, -1, -1, -1, -1,
+ -1, -1, 39, 40, 41, -1, 43, 44, 45, 46,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, -1,
+ 57, 58, 59, 60, 61, 62, 63, -1, -1, 66,
+ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76,
+ -1, 78, -1, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, -1, 91, 92, 93, 94, 95, 96,
+ -1, 98, 99, 100, 101, -1, -1, -1, 105, -1,
+ -1, -1, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, 118, 119, -1, 121, 122, 123, 124, 125, 126,
+ 127, -1, 129, 130, 131, 132, -1, -1, 135, 136,
+ 137, 138, 139, -1, 141, 142, 143, -1, 145, 146,
+ 147, -1, 149, 150, 151, 152, 153, 154, 155, 156,
+ 157, 158, 159, 160, -1, 162, 163, 164, 165, 166,
+ -1, 168, -1, 170, 171, -1, 173, 174, 175, 176,
+ 177, -1, 179, 180, -1, 182, 183, 184, -1, 186,
+ 187, 188, 189, 190, 191, 192, 193, 194, 195, -1,
+ 197, 198, 199, 200, 201, 202, 203, -1, 205, 206,
+ 207, 208, 209, 210, 211, 212, 213, -1, 215, -1,
+ 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
+ -1, -1, 229, 230, 231, 232, 233, -1, 235, 236,
+ 237, -1, -1, 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, -1, 272, 273, 274, 275, -1,
+ 277, 278, 279, 280, 281, 282, -1, 284, 285, 286,
+ -1, 288, 289, 290, -1, -1, 293, 294, 295, 296,
+ 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, -1, 311, 312, 313, 314, 315, 316,
+ 317, 318, -1, 320, 321, 322, 323, 324, 325, 326,
+ 327, 328, 329, 330, 331, 332, 333, 334, -1, 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, 366,
+ 367, -1, 369, 370, 371, 372, 373, -1, 375, 376,
+ 377, 378, 379, 380, 381, 382, 383, 384, -1, 386,
+ 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 399, 400, -1, 402, 403, -1, 405, 406,
+ 407, 408, 409, 410, 411, -1, 413, 414, 415, -1,
+ -1, 418, 419, 420, 421, 422, 423, 424, 425, 426,
+ 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
+ 437, 438, -1, -1, 441, 442, 443, 444, 445, 446,
+ 447, -1, 449, 450, 451, 452, 453, 454, -1, -1,
+ 457, -1, -1, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
+ 477, 478, 479, 3, -1, 5, 6, -1, -1, -1,
+ -1, 11, -1, -1, 491, 492, -1, -1, -1, -1,
+ 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
+ 30, 31, -1, -1, -1, -1, -1, -1, -1, 39,
+ 40, 41, -1, 43, 44, 45, 46, 47, 48, 49,
+ 50, 51, 52, 53, 54, 55, -1, 57, 58, 59,
+ 60, 61, 62, 63, -1, -1, 66, 67, 68, 69,
+ 70, -1, 72, 73, 74, 75, 76, -1, 78, -1,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ -1, 91, 92, 93, 94, 95, 96, -1, 98, 99,
+ 100, 101, -1, -1, -1, 105, -1, -1, -1, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ -1, 121, 122, 123, 124, 125, 126, 127, -1, 129,
+ 130, 131, 132, -1, -1, 135, 136, 137, 138, 139,
+ -1, 141, 142, 143, -1, 145, 146, 147, -1, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, -1, 162, 163, 164, 165, 166, -1, 168, -1,
+ 170, 171, -1, 173, 174, 175, 176, 177, -1, 179,
+ 180, -1, 182, 183, 184, -1, 186, 187, 188, 189,
+ 190, 191, 192, 193, 194, 195, -1, 197, 198, 199,
+ 200, 201, 202, 203, -1, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, -1, 215, -1, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, -1, -1, 229,
+ 230, 231, 232, 233, -1, 235, 236, 237, -1, -1,
+ 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, -1, 272, 273, 274, 275, -1, 277, 278, 279,
+ 280, 281, 282, -1, 284, 285, 286, -1, 288, 289,
+ 290, -1, -1, 293, 294, 295, 296, 297, 298, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ -1, 311, 312, 313, 314, 315, 316, 317, 318, -1,
+ 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
+ 330, 331, 332, 333, 334, -1, 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, 366, 367, -1, 369,
+ 370, 371, 372, 373, -1, 375, 376, 377, 378, 379,
+ 380, 381, 382, 383, 384, -1, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
+ 400, -1, 402, 403, -1, 405, 406, 407, 408, 409,
+ 410, 411, -1, 413, 414, 415, -1, -1, 418, 419,
+ 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
+ 430, 431, -1, -1, 434, 435, 436, 437, 438, -1,
+ -1, 441, 442, 443, 444, 445, 446, 447, -1, 449,
+ 450, 451, 452, 453, 454, -1, -1, 457, -1, -1,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
+ 3, -1, 5, 6, -1, -1, -1, -1, 11, -1,
+ -1, 491, 492, -1, -1, -1, -1, 20, 21, 22,
+ 23, 24, 25, 26, 27, -1, 29, 30, 31, -1,
+ -1, -1, -1, -1, -1, -1, 39, 40, 41, -1,
+ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, -1, 57, 58, 59, 60, 61, 62,
+ 63, -1, -1, 66, 67, 68, 69, 70, -1, 72,
+ 73, 74, 75, 76, -1, 78, -1, 80, 81, 82,
+ 83, 84, 85, 86, 87, 88, 89, -1, 91, 92,
+ 93, 94, 95, 96, -1, 98, 99, 100, 101, -1,
+ -1, -1, 105, -1, -1, -1, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, 118, 119, -1, 121, 122,
+ 123, 124, 125, 126, 127, -1, 129, 130, 131, 132,
+ -1, -1, 135, 136, 137, 138, 139, -1, 141, 142,
+ 143, -1, 145, 146, 147, -1, 149, 150, 151, 152,
+ 153, 154, 155, 156, 157, 158, 159, 160, -1, 162,
+ 163, 164, 165, 166, -1, 168, -1, 170, 171, -1,
+ 173, 174, 175, 176, 177, -1, 179, 180, -1, 182,
+ 183, 184, -1, 186, 187, 188, 189, 190, 191, 192,
+ 193, 194, 195, -1, 197, 198, 199, 200, 201, 202,
+ 203, -1, 205, 206, 207, 208, 209, 210, 211, 212,
+ 213, -1, 215, -1, 217, 218, 219, 220, 221, 222,
+ 223, 224, 225, 226, -1, -1, 229, 230, 231, 232,
+ 233, -1, 235, 236, 237, -1, -1, 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, -1, 272,
+ 273, 274, 275, -1, 277, 278, 279, 280, 281, 282,
+ -1, 284, 285, 286, -1, 288, 289, 290, -1, -1,
+ 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, -1, 311, 312,
+ 313, 314, 315, 316, 317, 318, -1, 320, 321, 322,
+ 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
+ 333, 334, -1, 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, 366, 367, -1, 369, 370, 371, 372,
+ 373, -1, 375, 376, 377, 378, 379, 380, 381, 382,
+ 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 399, 400, -1, 402,
+ 403, -1, 405, 406, 407, 408, 409, 410, 411, -1,
+ 413, 414, 415, -1, -1, 418, 419, 420, 421, 422,
+ 423, 424, 425, 426, 427, 428, 429, 430, 431, -1,
+ -1, 434, 435, 436, 437, 438, -1, -1, 441, 442,
+ 443, 444, 445, 446, 447, -1, 449, 450, 451, 452,
+ 453, 454, -1, -1, 457, -1, -1, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
+ 473, 474, 475, 476, 477, 478, 479, 3, -1, 5,
+ 6, -1, -1, -1, -1, 11, -1, -1, 491, 492,
+ -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
+ 26, 27, -1, 29, 30, 31, -1, -1, -1, -1,
+ -1, -1, -1, 39, 40, 41, -1, 43, 44, 45,
+ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ -1, 57, 58, 59, 60, 61, 62, 63, -1, -1,
+ 66, 67, 68, 69, 70, -1, 72, 73, 74, 75,
+ 76, -1, 78, -1, 80, 81, 82, 83, 84, 85,
+ 86, 87, 88, 89, -1, 91, 92, 93, 94, 95,
+ 96, -1, 98, 99, 100, 101, -1, -1, -1, 105,
+ -1, -1, -1, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, -1, 119, -1, 121, 122, 123, 124, 125,
+ 126, 127, -1, 129, 130, 131, 132, -1, -1, 135,
+ 136, 137, 138, 139, -1, 141, 142, 143, -1, 145,
+ 146, 147, -1, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, 159, 160, -1, 162, 163, 164, 165,
+ 166, -1, 168, -1, 170, 171, -1, 173, 174, 175,
+ 176, 177, -1, 179, 180, -1, 182, 183, 184, -1,
+ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
+ -1, 197, 198, 199, 200, 201, 202, 203, -1, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, -1, 215,
+ -1, 217, 218, 219, 220, 221, 222, 223, 224, 225,
+ 226, -1, -1, 229, 230, 231, 232, 233, -1, 235,
+ 236, 237, -1, -1, 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, -1, 272, 273, 274, 275,
+ -1, 277, 278, 279, 280, 281, 282, -1, 284, 285,
+ 286, -1, 288, 289, 290, -1, -1, 293, 294, 295,
+ 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, -1, 311, 312, 313, 314, 315,
+ 316, 317, 318, -1, 320, 321, 322, 323, 324, 325,
+ 326, 327, 328, 329, 330, 331, 332, 333, 334, -1,
+ 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,
+ 366, 367, -1, 369, 370, 371, 372, 373, -1, 375,
+ 376, 377, 378, 379, 380, 381, 382, 383, 384, -1,
+ 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, 399, 400, -1, 402, 403, -1, 405,
+ 406, 407, 408, 409, 410, 411, -1, 413, 414, 415,
+ -1, -1, 418, 419, 420, 421, 422, 423, 424, 425,
+ 426, 427, 428, 429, 430, 431, -1, -1, 434, 435,
+ 436, 437, 438, -1, -1, 441, 442, 443, 444, 445,
+ 446, 447, -1, 449, 450, 451, 452, 453, 454, -1,
+ -1, 457, -1, -1, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
+ 476, 477, 478, 479, 3, -1, -1, -1, -1, -1,
+ -1, -1, 11, -1, -1, 491, 492, -1, -1, -1,
+ -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
+ 39, 40, 41, -1, 43, 44, 45, 46, -1, 48,
+ 49, 50, 51, 52, -1, 54, 55, -1, 57, 58,
+ 59, 60, 61, 62, 63, -1, -1, 66, 67, 68,
+ 69, 70, -1, 72, 73, 74, 75, 76, -1, -1,
+ -1, 80, 81, 82, 83, 84, 85, -1, 87, 88,
+ 89, -1, 91, 92, 93, 94, 95, 96, -1, -1,
+ 99, 100, 101, -1, -1, -1, -1, -1, -1, -1,
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, -1,
+ 119, -1, 121, 122, 123, 124, 125, 126, 127, -1,
+ 129, 130, 131, 132, -1, -1, 135, 136, 137, 138,
+ 139, -1, 141, 142, 143, -1, 145, 146, 147, -1,
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ -1, 160, -1, 162, 163, 164, 165, 166, -1, 168,
+ -1, 170, -1, 172, -1, 174, 175, 176, 177, -1,
+ 179, 180, -1, 182, 183, 184, -1, 186, 187, 188,
+ 189, 190, -1, 192, 193, 194, 195, 196, 197, 198,
+ 199, 200, 201, 202, 203, -1, 205, -1, 207, 208,
+ 209, 210, 211, 212, 213, -1, 215, -1, 217, -1,
+ -1, 220, -1, 222, 223, 224, 225, 226, -1, -1,
+ 229, 230, -1, 232, -1, -1, 235, 236, 237, -1,
+ -1, 240, 241, 242, 243, 244, 245, 246, 247, 248,
+ 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
+ 269, 270, -1, 272, 273, -1, 275, -1, 277, 278,
+ 279, 280, 281, 282, -1, 284, 285, -1, -1, 288,
+ 289, 290, -1, -1, 293, 294, 295, -1, 297, -1,
+ 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, -1, 311, 312, 313, 314, 315, 316, 317, 318,
+ -1, 320, 321, 322, 323, 324, 325, 326, 327, 328,
+ 329, 330, 331, 332, 333, 334, -1, 336, 337, 338,
+ 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
+ -1, 350, 351, -1, 353, 354, 355, 356, 357, 358,
+ 359, 360, 361, 362, 363, 364, 365, 366, 367, -1,
+ 369, 370, 371, 372, 373, -1, 375, 376, 377, 378,
+ 379, -1, 381, 382, 383, 384, -1, 386, 387, 388,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 399, 400, -1, 402, 403, -1, 405, -1, 407, 408,
+ 409, 410, 411, -1, 413, 414, 415, -1, -1, 418,
+ 419, 420, 421, 422, -1, 424, 425, 426, 427, 428,
+ 429, 430, 431, -1, -1, 434, 435, 436, 437, 438,
+ -1, -1, 441, 442, 443, 444, 445, 446, 447, -1,
+ 449, -1, 451, 452, 453, 454, -1, -1, 457, -1,
+ -1, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
+ 479, 3, -1, 5, 6, -1, -1, -1, -1, 11,
+ -1, -1, 491, 492, -1, -1, -1, -1, 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, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
+ 472, 473, 474, 475, 476, 477, 478, 479, 3, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 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, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
+ 475, 476, 477, 478, 479, 3, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 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, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
+ 478, 479, 3, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
+ 21, 22, 23, 24, 25, 26, 27, -1, 29, 30,
+ 31, -1, -1, -1, -1, -1, -1, -1, 39, 40,
+ 41, -1, 43, 44, 45, 46, 47, 48, 49, 50,
+ 51, 52, 53, 54, 55, -1, 57, 58, 59, 60,
+ 61, 62, 63, -1, 65, 66, 67, 68, 69, 70,
+ -1, 72, 73, 74, 75, 76, -1, 78, -1, 80,
+ 81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
+ 91, 92, 93, 94, 95, 96, -1, 98, 99, 100,
+ 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, -1, 119, -1,
+ 121, 122, 123, 124, 125, 126, 127, -1, 129, 130,
+ 131, 132, -1, -1, 135, 136, 137, 138, 139, -1,
+ 141, 142, 143, -1, 145, 146, 147, -1, 149, 150,
+ 151, 152, 153, 154, 155, 156, 157, 158, -1, 160,
+ -1, 162, 163, 164, 165, 166, -1, 168, -1, 170,
+ 171, -1, 173, 174, 175, 176, 177, -1, 179, 180,
+ -1, 182, 183, 184, -1, 186, 187, 188, 189, 190,
+ 191, 192, 193, 194, 195, -1, 197, 198, 199, 200,
+ 201, 202, 203, -1, 205, 206, 207, 208, 209, 210,
+ 211, 212, 213, -1, 215, -1, 217, 218, 219, 220,
+ 221, 222, 223, 224, 225, 226, -1, -1, 229, 230,
+ 231, 232, 233, -1, 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,
+ -1, 272, 273, 274, 275, -1, 277, 278, 279, 280,
+ 281, 282, -1, 284, 285, -1, -1, 288, 289, 290,
+ -1, -1, 293, 294, 295, 296, 297, 298, 299, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, -1,
+ 311, 312, 313, 314, 315, 316, 317, 318, -1, 320,
+ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 334, -1, 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, 366, 367, -1, 369, 370,
+ 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
+ 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
+ -1, 402, 403, -1, 405, 406, 407, 408, 409, 410,
+ 411, -1, 413, 414, 415, -1, -1, 418, 419, 420,
+ 421, 422, -1, 424, 425, 426, 427, 428, 429, 430,
+ 431, -1, -1, 434, 435, 436, 437, 438, 439, -1,
+ 441, 442, 443, 444, 445, 446, 447, -1, 449, 450,
+ 451, 452, 453, 454, -1, -1, 457, -1, -1, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
+ 471, 472, 473, 474, 475, 476, 477, 478, 479, 3,
+ -1, 5, 6, -1, 8, 9, -1, 11, -1, -1,
+ -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
+ 24, 25, 26, 27, -1, 29, 30, 31, -1, -1,
+ -1, -1, -1, -1, -1, 39, 40, 41, -1, 43,
+ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
+ 54, 55, -1, 57, 58, 59, 60, 61, 62, 63,
+ -1, -1, 66, 67, 68, 69, 70, -1, 72, 73,
+ 74, 75, 76, -1, 78, -1, 80, 81, 82, 83,
+ 84, 85, 86, 87, 88, 89, -1, 91, 92, 93,
+ 94, 95, 96, -1, 98, 99, 100, 101, -1, -1,
+ -1, 105, -1, -1, -1, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, -1, 119, -1, 121, 122, 123,
+ 124, 125, 126, 127, -1, 129, 130, 131, 132, -1,
+ -1, 135, 136, 137, 138, 139, -1, 141, 142, 143,
+ -1, 145, 146, 147, -1, 149, 150, 151, 152, 153,
+ 154, 155, 156, 157, 158, 159, 160, -1, 162, 163,
+ 164, 165, 166, -1, 168, -1, 170, 171, -1, 173,
+ 174, 175, 176, 177, -1, 179, 180, -1, 182, 183,
+ 184, -1, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, -1, 197, 198, 199, 200, 201, 202, 203,
+ -1, 205, 206, 207, 208, 209, 210, 211, 212, 213,
+ -1, 215, -1, 217, 218, 219, 220, 221, 222, 223,
+ 224, 225, 226, -1, -1, 229, 230, 231, 232, 233,
+ -1, 235, 236, 237, -1, -1, 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, -1, 272, 273,
+ 274, 275, 276, 277, 278, 279, 280, 281, 282, -1,
+ 284, 285, -1, -1, 288, 289, 290, -1, -1, 293,
+ 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, -1, 311, 312, 313,
+ 314, 315, 316, 317, 318, -1, 320, 321, 322, 323,
+ 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
+ 334, -1, 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, 366, 367, -1, 369, 370, 371, 372, 373,
+ -1, 375, 376, 377, 378, 379, 380, 381, 382, 383,
+ 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 399, 400, -1, 402, 403,
+ -1, 405, 406, 407, 408, 409, 410, 411, -1, 413,
+ 414, 415, -1, -1, 418, 419, 420, 421, 422, 423,
+ 424, 425, 426, 427, 428, 429, 430, 431, -1, -1,
+ 434, 435, 436, 437, 438, -1, -1, 441, 442, 443,
+ 444, 445, 446, 447, -1, 449, 450, 451, 452, 453,
+ 454, -1, -1, 457, -1, -1, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
+ 474, 475, 476, 477, 478, 479, 3, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, -1, -1, -1, -1, -1,
+ -1, -1, 39, 40, 41, -1, 43, 44, 45, 46,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, -1,
+ 57, 58, 59, 60, 61, 62, 63, -1, -1, 66,
+ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76,
+ -1, 78, -1, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, -1, 91, 92, 93, 94, 95, 96,
+ -1, 98, 99, 100, 101, -1, -1, 104, 105, -1,
+ -1, 108, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, -1, 119, -1, 121, 122, 123, 124, 125, 126,
+ 127, -1, 129, 130, 131, 132, -1, -1, 135, 136,
+ 137, 138, 139, -1, 141, 142, 143, -1, 145, 146,
+ 147, -1, 149, 150, 151, 152, 153, 154, 155, 156,
+ 157, 158, -1, 160, -1, 162, 163, 164, 165, 166,
+ -1, 168, -1, 170, 171, -1, 173, 174, 175, 176,
+ 177, -1, 179, 180, -1, 182, 183, 184, -1, 186,
+ 187, 188, 189, 190, 191, 192, 193, 194, 195, -1,
+ 197, 198, 199, 200, 201, 202, 203, -1, 205, 206,
+ 207, 208, 209, 210, 211, 212, 213, -1, 215, -1,
+ 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
+ -1, -1, 229, 230, 231, 232, 233, -1, 235, 236,
+ 237, -1, -1, 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, -1, 272, 273, 274, 275, -1,
+ 277, 278, 279, 280, 281, 282, -1, 284, 285, -1,
+ -1, 288, 289, 290, -1, -1, 293, 294, 295, 296,
+ 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, -1, 311, 312, 313, 314, 315, 316,
+ 317, 318, -1, 320, 321, 322, 323, 324, 325, 326,
+ 327, 328, 329, 330, 331, 332, 333, 334, -1, 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, 366,
+ 367, -1, 369, 370, 371, 372, 373, 374, 375, 376,
+ 377, 378, 379, 380, 381, 382, 383, 384, -1, 386,
+ 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 399, 400, -1, 402, 403, -1, 405, 406,
+ 407, 408, 409, 410, 411, -1, 413, 414, 415, -1,
+ -1, 418, 419, 420, 421, 422, -1, 424, 425, 426,
+ 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
+ 437, 438, -1, -1, 441, 442, 443, 444, 445, 446,
+ 447, -1, 449, 450, 451, 452, 453, 454, -1, -1,
+ 457, -1, -1, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
+ 477, 478, 479, 3, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, -1, -1, -1, -1, -1, -1, -1, 39,
+ 40, 41, -1, 43, 44, 45, 46, 47, 48, 49,
+ 50, 51, 52, 53, 54, 55, -1, 57, 58, 59,
+ 60, 61, 62, 63, -1, -1, 66, 67, 68, 69,
+ 70, -1, 72, 73, 74, 75, 76, -1, 78, -1,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ -1, 91, 92, 93, 94, 95, 96, -1, 98, 99,
+ 100, 101, -1, -1, 104, 105, -1, -1, 108, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, -1, 119,
+ -1, 121, 122, 123, 124, 125, 126, 127, -1, 129,
+ 130, 131, 132, -1, -1, 135, 136, 137, 138, 139,
+ -1, 141, 142, 143, -1, 145, 146, 147, -1, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, -1,
+ 160, -1, 162, 163, 164, 165, 166, -1, 168, -1,
+ 170, 171, -1, 173, 174, 175, 176, 177, -1, 179,
+ 180, -1, 182, 183, 184, -1, 186, 187, 188, 189,
+ 190, 191, 192, 193, 194, 195, -1, 197, 198, 199,
+ 200, 201, 202, 203, -1, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, -1, 215, -1, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, -1, -1, 229,
+ 230, 231, 232, 233, -1, 235, 236, 237, -1, -1,
+ 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, -1, 272, 273, 274, 275, -1, 277, 278, 279,
+ 280, 281, 282, -1, 284, 285, -1, -1, 288, 289,
+ 290, -1, -1, 293, 294, 295, 296, 297, 298, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ -1, 311, 312, 313, 314, 315, 316, 317, 318, -1,
+ 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
+ 330, 331, 332, 333, 334, -1, 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, 366, 367, -1, 369,
+ 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
+ 380, 381, 382, 383, 384, -1, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
+ 400, -1, 402, 403, -1, 405, 406, 407, 408, 409,
+ 410, 411, -1, 413, 414, 415, -1, -1, 418, 419,
+ 420, 421, 422, -1, 424, 425, 426, 427, 428, 429,
+ 430, 431, -1, -1, 434, 435, 436, 437, 438, -1,
+ -1, 441, 442, 443, 444, 445, 446, 447, -1, 449,
+ 450, 451, 452, 453, 454, -1, -1, 457, -1, -1,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
+ 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
+ 23, 24, 25, 26, 27, -1, 29, 30, 31, -1,
+ -1, -1, -1, -1, -1, -1, 39, 40, 41, -1,
+ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, -1, 57, 58, 59, 60, 61, 62,
+ 63, -1, -1, 66, 67, 68, 69, 70, -1, 72,
+ 73, 74, 75, 76, -1, 78, -1, 80, 81, 82,
+ 83, 84, 85, 86, 87, 88, 89, -1, 91, 92,
+ 93, 94, 95, 96, -1, 98, 99, 100, 101, -1,
+ -1, 104, 105, -1, -1, 108, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, -1, 119, -1, 121, 122,
+ 123, 124, 125, 126, 127, -1, 129, 130, 131, 132,
+ -1, -1, 135, 136, 137, 138, 139, -1, 141, 142,
+ 143, -1, 145, 146, 147, -1, 149, 150, 151, 152,
+ 153, 154, 155, 156, 157, 158, -1, 160, -1, 162,
+ 163, 164, 165, 166, -1, 168, -1, 170, 171, -1,
+ 173, 174, 175, 176, 177, -1, 179, 180, -1, 182,
+ 183, 184, -1, 186, 187, 188, 189, 190, 191, 192,
+ 193, 194, 195, -1, 197, 198, 199, 200, 201, 202,
+ 203, -1, 205, 206, 207, 208, 209, 210, 211, 212,
+ 213, -1, 215, -1, 217, 218, 219, 220, 221, 222,
+ 223, 224, 225, 226, -1, -1, 229, 230, 231, 232,
+ 233, -1, 235, 236, 237, -1, -1, 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, -1, 272,
+ 273, 274, 275, -1, 277, 278, 279, 280, 281, 282,
+ -1, 284, 285, -1, -1, 288, 289, 290, -1, -1,
+ 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, -1, 311, 312,
+ 313, 314, 315, 316, 317, 318, -1, 320, 321, 322,
+ 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
+ 333, 334, -1, 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, 366, 367, -1, 369, 370, 371, 372,
+ 373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
+ 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 399, 400, -1, 402,
+ 403, -1, 405, 406, 407, 408, 409, 410, 411, -1,
+ 413, 414, 415, -1, -1, 418, 419, 420, 421, 422,
+ -1, 424, 425, 426, 427, 428, 429, 430, 431, -1,
+ -1, 434, 435, 436, 437, 438, 439, -1, 441, 442,
+ 443, 444, 445, 446, 447, -1, 449, 450, 451, 452,
+ 453, 454, -1, -1, 457, -1, -1, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
+ 473, 474, 475, 476, 477, 478, 479, 3, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
+ 26, 27, -1, 29, 30, 31, -1, -1, -1, -1,
+ -1, -1, -1, 39, 40, 41, -1, 43, 44, 45,
+ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ -1, 57, 58, 59, 60, 61, 62, 63, -1, -1,
+ 66, 67, 68, 69, 70, -1, 72, 73, 74, 75,
+ 76, -1, 78, -1, 80, 81, 82, 83, 84, 85,
+ 86, 87, 88, 89, -1, 91, 92, 93, 94, 95,
+ 96, -1, 98, 99, 100, 101, -1, -1, 104, 105,
+ -1, -1, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, -1, 119, -1, 121, 122, 123, 124, 125,
+ 126, 127, -1, 129, 130, 131, 132, -1, -1, 135,
+ 136, 137, 138, 139, -1, 141, 142, 143, -1, 145,
+ 146, 147, -1, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, -1, 160, -1, 162, 163, 164, 165,
+ 166, -1, 168, -1, 170, 171, -1, 173, 174, 175,
+ 176, 177, -1, 179, 180, 181, 182, 183, 184, -1,
+ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
+ -1, 197, 198, 199, 200, 201, 202, 203, -1, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, -1, 215,
+ -1, 217, 218, 219, 220, 221, 222, 223, 224, 225,
+ 226, -1, -1, 229, 230, 231, 232, 233, -1, 235,
+ 236, 237, -1, -1, 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, -1, 272, 273, 274, 275,
+ -1, 277, 278, 279, 280, 281, 282, -1, 284, 285,
+ -1, -1, 288, 289, 290, -1, -1, 293, 294, 295,
+ 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, -1, 311, 312, 313, 314, 315,
+ 316, 317, 318, -1, 320, 321, 322, 323, 324, 325,
+ 326, 327, 328, 329, 330, 331, 332, 333, 334, -1,
+ 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,
+ 366, 367, -1, 369, 370, 371, 372, 373, 374, 375,
+ 376, 377, 378, 379, 380, 381, 382, 383, 384, -1,
+ 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, 399, 400, -1, 402, 403, -1, 405,
+ 406, 407, 408, 409, 410, 411, -1, 413, 414, 415,
+ -1, -1, 418, 419, 420, 421, 422, -1, 424, 425,
+ 426, 427, 428, 429, 430, 431, -1, -1, 434, 435,
+ 436, 437, 438, -1, -1, 441, 442, 443, 444, 445,
+ 446, 447, -1, 449, 450, 451, 452, 453, 454, -1,
+ -1, 457, -1, -1, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
+ 476, 477, 478, 479, 3, -1, -1, 6, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 20, 21, 22, 23, 24, 25, 26, 27, -1,
+ 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
+ 39, 40, 41, -1, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, -1, 57, 58,
+ 59, 60, 61, 62, 63, -1, -1, 66, 67, 68,
+ 69, 70, -1, 72, 73, 74, 75, 76, -1, 78,
+ -1, 80, 81, 82, 83, 84, 85, 86, 87, 88,
+ 89, -1, 91, 92, 93, 94, 95, 96, -1, 98,
+ 99, 100, 101, -1, -1, -1, 105, -1, -1, -1,
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, -1,
+ 119, -1, 121, 122, 123, 124, 125, 126, 127, -1,
+ 129, 130, 131, 132, -1, -1, 135, 136, 137, 138,
+ 139, -1, 141, 142, 143, -1, 145, 146, 147, -1,
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ 159, 160, -1, 162, 163, 164, 165, 166, -1, 168,
+ -1, 170, 171, -1, 173, 174, 175, 176, 177, -1,
+ 179, 180, -1, 182, 183, 184, -1, 186, 187, 188,
+ 189, 190, 191, 192, 193, 194, 195, -1, 197, 198,
+ 199, 200, 201, 202, 203, -1, 205, 206, 207, 208,
+ 209, 210, 211, 212, 213, -1, 215, -1, 217, 218,
+ 219, 220, 221, 222, 223, 224, 225, 226, -1, -1,
+ 229, 230, 231, 232, 233, -1, 235, 236, 237, -1,
+ -1, 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, -1, 272, 273, 274, 275, -1, 277, 278,
+ 279, 280, 281, 282, -1, 284, 285, 286, -1, 288,
+ 289, 290, -1, -1, 293, 294, 295, 296, 297, 298,
+ 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, -1, 311, 312, 313, 314, 315, 316, 317, 318,
+ -1, 320, 321, 322, 323, 324, 325, 326, 327, 328,
+ 329, 330, 331, 332, 333, 334, -1, 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, 366, 367, -1,
+ 369, 370, 371, 372, 373, -1, 375, 376, 377, 378,
+ 379, 380, 381, 382, 383, 384, -1, 386, 387, 388,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 399, 400, -1, 402, 403, -1, 405, 406, 407, 408,
+ 409, 410, 411, -1, 413, 414, 415, -1, -1, 418,
+ 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
+ 429, 430, 431, -1, -1, 434, 435, 436, 437, 438,
+ -1, -1, 441, 442, 443, 444, 445, 446, 447, -1,
+ 449, 450, 451, 452, 453, 454, -1, -1, 457, -1,
+ -1, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
+ 479, 3, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
+ 22, 23, 24, 25, 26, 27, -1, 29, 30, 31,
+ -1, -1, -1, -1, -1, -1, -1, 39, 40, 41,
+ -1, 43, 44, 45, 46, 47, 48, 49, 50, 51,
+ 52, 53, 54, 55, -1, 57, 58, 59, 60, 61,
+ 62, 63, -1, -1, 66, 67, 68, 69, 70, -1,
+ 72, 73, 74, 75, 76, -1, 78, -1, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, -1, 91,
+ 92, 93, 94, 95, 96, -1, 98, 99, 100, 101,
+ -1, -1, 104, 105, -1, -1, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, -1, 119, -1, 121,
+ 122, 123, 124, 125, 126, 127, -1, 129, 130, 131,
+ 132, -1, -1, 135, 136, 137, 138, 139, -1, 141,
+ 142, 143, -1, 145, 146, 147, -1, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, -1, 160, -1,
+ 162, 163, 164, 165, 166, -1, 168, -1, 170, 171,
+ -1, 173, 174, 175, 176, 177, -1, 179, 180, -1,
+ 182, 183, 184, -1, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, -1, 197, 198, 199, 200, 201,
+ 202, 203, -1, 205, 206, 207, 208, 209, 210, 211,
+ 212, 213, -1, 215, -1, 217, 218, 219, 220, 221,
+ 222, 223, 224, 225, 226, -1, -1, 229, 230, 231,
+ 232, 233, -1, 235, 236, 237, -1, -1, 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, -1,
+ 272, 273, 274, 275, -1, 277, 278, 279, 280, 281,
+ 282, -1, 284, 285, -1, -1, 288, 289, 290, -1,
+ -1, 293, 294, 295, 296, 297, 298, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, -1, 311,
+ 312, 313, 314, 315, 316, 317, 318, -1, 320, 321,
+ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
+ 332, 333, 334, -1, 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, 366, 367, -1, 369, 370, 371,
+ 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
+ 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 399, 400, -1,
+ 402, 403, -1, 405, 406, 407, 408, 409, 410, 411,
+ -1, 413, 414, 415, -1, -1, 418, 419, 420, 421,
+ 422, -1, 424, 425, 426, 427, 428, 429, 430, 431,
+ -1, -1, 434, 435, 436, 437, 438, -1, -1, 441,
+ 442, 443, 444, 445, 446, 447, -1, 449, 450, 451,
+ 452, 453, 454, -1, -1, 457, -1, -1, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
+ 472, 473, 474, 475, 476, 477, 478, 479, 3, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
+ 25, 26, 27, -1, 29, 30, 31, -1, -1, -1,
+ -1, -1, -1, -1, 39, 40, 41, -1, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ 55, -1, 57, 58, 59, 60, 61, 62, 63, -1,
+ -1, 66, 67, 68, 69, 70, -1, 72, 73, 74,
+ 75, 76, -1, 78, -1, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 89, -1, 91, 92, 93, 94,
+ 95, 96, -1, 98, 99, 100, 101, -1, -1, 104,
+ 105, -1, -1, 108, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, -1, 119, -1, 121, 122, 123, 124,
+ 125, 126, 127, -1, 129, 130, 131, 132, -1, -1,
+ 135, 136, 137, 138, 139, -1, 141, 142, 143, -1,
+ 145, 146, 147, -1, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, -1, 160, -1, 162, 163, 164,
+ 165, 166, -1, 168, -1, 170, 171, -1, 173, 174,
+ 175, 176, 177, -1, 179, 180, -1, 182, 183, 184,
+ -1, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+ 195, -1, 197, 198, 199, 200, 201, 202, 203, -1,
+ 205, 206, 207, 208, 209, 210, 211, 212, 213, -1,
+ 215, -1, 217, 218, 219, 220, 221, 222, 223, 224,
+ 225, 226, -1, -1, 229, 230, 231, 232, 233, -1,
+ 235, 236, 237, -1, -1, 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, -1, 272, 273, 274,
+ 275, -1, 277, 278, 279, 280, 281, 282, -1, 284,
+ 285, -1, -1, 288, 289, 290, -1, -1, 293, 294,
+ 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, -1, 311, 312, 313, 314,
+ 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ -1, 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, 366, 367, -1, 369, 370, 371, 372, 373, 374,
+ 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
+ -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 399, 400, -1, 402, 403, -1,
+ 405, 406, 407, 408, 409, 410, 411, -1, 413, 414,
+ 415, -1, -1, 418, 419, 420, 421, 422, -1, 424,
+ 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
+ 435, 436, 437, 438, -1, -1, 441, 442, 443, 444,
+ 445, 446, 447, -1, 449, 450, 451, 452, 453, 454,
+ -1, -1, 457, -1, -1, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
+ 475, 476, 477, 478, 479, 3, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
+ -1, 29, 30, 31, -1, -1, -1, -1, -1, -1,
+ -1, 39, 40, 41, -1, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, -1, 57,
+ 58, 59, 60, 61, 62, 63, -1, -1, 66, 67,
+ 68, 69, 70, -1, 72, 73, 74, 75, 76, -1,
+ 78, -1, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, -1, 91, 92, 93, 94, 95, 96, -1,
+ 98, 99, 100, 101, -1, -1, 104, 105, -1, -1,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ -1, 119, -1, 121, 122, 123, 124, 125, 126, 127,
+ -1, 129, 130, 131, 132, -1, -1, 135, 136, 137,
+ 138, 139, -1, 141, 142, 143, -1, 145, 146, 147,
+ -1, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, -1, 160, -1, 162, 163, 164, 165, 166, -1,
+ 168, -1, 170, 171, -1, 173, 174, 175, 176, 177,
+ -1, 179, 180, -1, 182, 183, 184, -1, 186, 187,
+ 188, 189, 190, 191, 192, 193, 194, 195, -1, 197,
+ 198, 199, 200, 201, 202, 203, -1, 205, 206, 207,
+ 208, 209, 210, 211, 212, 213, -1, 215, -1, 217,
+ 218, 219, 220, 221, 222, 223, 224, 225, 226, -1,
+ -1, 229, 230, 231, 232, 233, -1, 235, 236, 237,
+ -1, -1, 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, -1, 272, 273, 274, 275, -1, 277,
+ 278, 279, 280, 281, 282, -1, 284, 285, -1, -1,
+ 288, 289, 290, -1, -1, 293, 294, 295, 296, 297,
+ 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, -1, 311, 312, 313, 314, 315, 316, 317,
+ 318, -1, 320, 321, 322, 323, 324, 325, 326, 327,
+ 328, 329, 330, 331, 332, 333, 334, -1, 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, 366, 367,
+ -1, 369, 370, 371, 372, 373, 374, 375, 376, 377,
+ 378, 379, 380, 381, 382, 383, 384, -1, 386, 387,
+ 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 399, 400, -1, 402, 403, -1, 405, 406, 407,
+ 408, 409, 410, 411, -1, 413, 414, 415, -1, -1,
+ 418, 419, 420, 421, 422, -1, 424, 425, 426, 427,
+ 428, 429, 430, 431, -1, -1, 434, 435, 436, 437,
+ 438, -1, -1, 441, 442, 443, 444, 445, 446, 447,
+ -1, 449, 450, 451, 452, 453, 454, -1, -1, 457,
+ -1, -1, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
+ 478, 479, 3, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
+ 21, 22, 23, 24, 25, 26, 27, -1, 29, 30,
+ 31, -1, -1, -1, -1, -1, -1, -1, 39, 40,
+ 41, -1, 43, 44, 45, 46, 47, 48, 49, 50,
+ 51, 52, 53, 54, 55, -1, 57, 58, 59, 60,
+ 61, 62, 63, -1, -1, 66, 67, 68, 69, 70,
+ -1, 72, 73, 74, 75, 76, -1, 78, -1, 80,
+ 81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
+ 91, 92, 93, 94, 95, 96, -1, 98, 99, 100,
+ 101, -1, -1, 104, 105, -1, -1, 108, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, -1, 119, -1,
+ 121, 122, 123, 124, 125, 126, 127, -1, 129, 130,
+ 131, 132, -1, -1, 135, 136, 137, 138, 139, -1,
+ 141, 142, 143, -1, 145, 146, 147, -1, 149, 150,
+ 151, 152, 153, 154, 155, 156, 157, 158, -1, 160,
+ -1, 162, 163, 164, 165, 166, -1, 168, -1, 170,
+ 171, -1, 173, 174, 175, 176, 177, -1, 179, 180,
+ -1, 182, 183, 184, -1, 186, 187, 188, 189, 190,
+ 191, 192, 193, 194, 195, -1, 197, 198, 199, 200,
+ 201, 202, 203, -1, 205, 206, 207, 208, 209, 210,
+ 211, 212, 213, -1, 215, -1, 217, 218, 219, 220,
+ 221, 222, 223, 224, 225, 226, -1, -1, 229, 230,
+ 231, 232, 233, -1, 235, 236, 237, -1, -1, 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,
+ -1, 272, 273, 274, 275, -1, 277, 278, 279, 280,
+ 281, 282, -1, 284, 285, -1, -1, 288, 289, 290,
+ -1, -1, 293, 294, 295, 296, 297, 298, 299, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, -1,
+ 311, 312, 313, 314, 315, 316, 317, 318, -1, 320,
+ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 334, -1, 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, 366, 367, -1, 369, 370,
+ 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
+ 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
+ -1, 402, 403, -1, 405, 406, 407, 408, 409, 410,
+ 411, -1, 413, 414, 415, -1, -1, 418, 419, 420,
+ 421, 422, -1, 424, 425, 426, 427, 428, 429, 430,
+ 431, -1, -1, 434, 435, 436, 437, 438, -1, -1,
+ 441, 442, 443, 444, 445, 446, 447, -1, 449, 450,
+ 451, 452, 453, 454, -1, -1, 457, -1, -1, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
+ 471, 472, 473, 474, 475, 476, 477, 478, 479, 3,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
+ 24, 25, 26, 27, -1, 29, 30, 31, -1, -1,
+ -1, -1, -1, -1, -1, 39, 40, 41, -1, 43,
+ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
+ 54, 55, -1, 57, 58, 59, 60, 61, 62, 63,
+ -1, -1, 66, 67, 68, 69, 70, -1, 72, 73,
+ 74, 75, 76, -1, 78, -1, 80, 81, 82, 83,
+ 84, 85, 86, 87, 88, 89, -1, 91, 92, 93,
+ 94, 95, 96, -1, 98, 99, 100, 101, -1, -1,
+ 104, 105, -1, -1, 108, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, -1, 119, -1, 121, 122, 123,
+ 124, 125, 126, 127, -1, 129, 130, 131, 132, -1,
+ -1, 135, 136, 137, 138, 139, -1, 141, 142, 143,
+ -1, 145, 146, 147, -1, 149, 150, 151, 152, 153,
+ 154, 155, 156, 157, 158, -1, 160, -1, 162, 163,
+ 164, 165, 166, -1, 168, -1, 170, 171, -1, 173,
+ 174, 175, 176, 177, -1, 179, 180, -1, 182, 183,
+ 184, -1, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, -1, 197, 198, 199, 200, 201, 202, 203,
+ -1, 205, 206, 207, 208, 209, 210, 211, 212, 213,
+ -1, 215, -1, 217, 218, 219, 220, 221, 222, 223,
+ 224, 225, 226, -1, -1, 229, 230, 231, 232, 233,
+ -1, 235, 236, 237, -1, -1, 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, -1, 272, 273,
+ 274, 275, -1, 277, 278, 279, 280, 281, 282, -1,
+ 284, 285, -1, -1, 288, 289, 290, -1, -1, 293,
+ 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, -1, 311, 312, 313,
+ 314, 315, 316, 317, 318, -1, 320, 321, 322, 323,
+ 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
+ 334, -1, 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, 366, 367, -1, 369, 370, 371, 372, 373,
+ 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
+ 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 399, 400, -1, 402, 403,
+ -1, 405, 406, 407, 408, 409, 410, 411, -1, 413,
+ 414, 415, -1, -1, 418, 419, 420, 421, 422, -1,
+ 424, 425, 426, 427, 428, 429, 430, 431, -1, -1,
+ 434, 435, 436, 437, 438, -1, -1, 441, 442, 443,
+ 444, 445, 446, 447, -1, 449, 450, 451, 452, 453,
+ 454, -1, -1, 457, -1, -1, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
+ 474, 475, 476, 477, 478, 479, 3, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
+ 27, -1, 29, 30, 31, 32, 33, -1, -1, -1,
+ -1, -1, 39, 40, 41, -1, 43, 44, 45, 46,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, -1,
+ 57, 58, 59, 60, 61, 62, 63, -1, -1, 66,
+ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76,
+ -1, 78, -1, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, -1, 91, 92, 93, 94, 95, 96,
+ -1, 98, 99, 100, 101, -1, -1, -1, 105, -1,
+ -1, -1, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, -1, 119, -1, 121, 122, 123, 124, 125, 126,
+ 127, -1, 129, 130, 131, 132, -1, -1, 135, 136,
+ 137, 138, 139, -1, 141, 142, 143, -1, 145, 146,
+ 147, -1, 149, 150, 151, 152, 153, 154, 155, 156,
+ 157, 158, -1, 160, -1, 162, 163, 164, 165, 166,
+ -1, 168, -1, 170, 171, -1, 173, 174, 175, 176,
+ 177, -1, 179, 180, -1, 182, 183, 184, -1, 186,
+ 187, 188, 189, 190, 191, 192, 193, 194, 195, -1,
+ 197, 198, 199, 200, 201, 202, 203, -1, 205, 206,
+ 207, 208, 209, 210, 211, 212, 213, -1, 215, -1,
+ 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
+ -1, -1, 229, 230, 231, 232, 233, -1, 235, 236,
+ 237, -1, -1, 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, -1, 272, 273, 274, 275, -1,
+ 277, 278, 279, 280, 281, 282, -1, 284, 285, -1,
+ -1, 288, 289, 290, -1, -1, 293, 294, 295, 296,
+ 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, -1, 311, 312, 313, 314, 315, 316,
+ 317, 318, -1, 320, 321, 322, 323, 324, 325, 326,
+ 327, 328, 329, 330, 331, 332, 333, 334, -1, 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, 366,
+ 367, -1, 369, 370, 371, 372, 373, -1, 375, 376,
+ 377, 378, 379, 380, 381, 382, 383, 384, -1, 386,
+ 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 399, 400, -1, 402, 403, -1, 405, 406,
+ 407, 408, 409, 410, 411, -1, 413, 414, 415, -1,
+ -1, 418, 419, 420, 421, 422, -1, 424, 425, 426,
+ 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
+ 437, 438, -1, -1, 441, 442, 443, 444, 445, 446,
+ 447, -1, 449, 450, 451, 452, 453, 454, -1, -1,
+ 457, -1, -1, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
+ 477, 478, 479, 3, -1, -1, 6, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
+ 30, 31, -1, -1, -1, -1, -1, -1, -1, 39,
+ 40, 41, -1, 43, 44, 45, 46, 47, 48, 49,
+ 50, 51, 52, 53, 54, 55, -1, 57, 58, 59,
+ 60, 61, 62, 63, -1, -1, 66, 67, 68, 69,
+ 70, -1, 72, 73, 74, 75, 76, -1, 78, -1,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ -1, 91, 92, 93, 94, 95, 96, -1, 98, 99,
+ 100, 101, -1, -1, -1, 105, -1, -1, -1, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ -1, 121, 122, 123, 124, 125, 126, 127, -1, 129,
+ 130, 131, 132, -1, -1, 135, 136, 137, 138, 139,
+ -1, 141, 142, 143, -1, 145, 146, 147, -1, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, -1,
+ 160, -1, 162, 163, 164, 165, 166, -1, 168, -1,
+ 170, 171, -1, 173, 174, 175, 176, 177, -1, 179,
+ 180, -1, 182, 183, 184, -1, 186, 187, 188, 189,
+ 190, 191, 192, 193, 194, 195, -1, 197, 198, 199,
+ 200, 201, 202, 203, -1, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, -1, 215, -1, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, -1, -1, 229,
+ 230, 231, 232, 233, -1, 235, 236, 237, -1, -1,
+ 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, -1, 272, 273, 274, 275, -1, 277, 278, 279,
+ 280, 281, 282, -1, 284, 285, -1, -1, 288, 289,
+ 290, -1, -1, 293, 294, 295, 296, 297, 298, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ -1, 311, 312, 313, 314, 315, 316, 317, 318, -1,
+ 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
+ 330, 331, 332, 333, 334, -1, 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, 366, 367, -1, 369,
+ 370, 371, 372, 373, -1, 375, 376, 377, 378, 379,
+ 380, 381, 382, 383, 384, -1, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
+ 400, -1, 402, 403, -1, 405, 406, 407, 408, 409,
+ 410, 411, -1, 413, 414, 415, -1, -1, 418, 419,
+ 420, 421, 422, -1, 424, 425, 426, 427, 428, 429,
+ 430, 431, -1, -1, 434, 435, 436, 437, 438, -1,
+ -1, 441, 442, 443, 444, 445, 446, 447, -1, 449,
+ 450, 451, 452, 453, 454, -1, -1, 457, -1, -1,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
+ 3, -1, -1, 6, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
+ 23, 24, 25, 26, 27, -1, 29, 30, 31, -1,
+ -1, -1, -1, -1, -1, -1, 39, 40, 41, -1,
+ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, -1, 57, 58, 59, 60, 61, 62,
+ 63, -1, -1, 66, 67, 68, 69, 70, -1, 72,
+ 73, 74, 75, 76, -1, 78, -1, 80, 81, 82,
+ 83, 84, 85, 86, 87, 88, 89, -1, 91, 92,
+ 93, 94, 95, 96, -1, 98, 99, 100, 101, -1,
+ -1, -1, 105, -1, -1, -1, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, -1, 119, -1, 121, 122,
+ 123, 124, 125, 126, 127, -1, 129, 130, 131, 132,
+ -1, -1, 135, 136, 137, 138, 139, -1, 141, 142,
+ 143, -1, 145, 146, 147, -1, 149, 150, 151, 152,
+ 153, 154, 155, 156, 157, 158, -1, 160, -1, 162,
+ 163, 164, 165, 166, -1, 168, -1, 170, 171, -1,
+ 173, 174, 175, 176, 177, -1, 179, 180, -1, 182,
+ 183, 184, -1, 186, 187, 188, 189, 190, 191, 192,
+ 193, 194, 195, -1, 197, 198, 199, 200, 201, 202,
+ 203, -1, 205, 206, 207, 208, 209, 210, 211, 212,
+ 213, -1, 215, -1, 217, 218, 219, 220, 221, 222,
+ 223, 224, 225, 226, -1, -1, 229, 230, 231, 232,
+ 233, -1, 235, 236, 237, -1, -1, 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, -1, 272,
+ 273, 274, 275, -1, 277, 278, 279, 280, 281, 282,
+ -1, 284, 285, -1, -1, 288, 289, 290, -1, -1,
+ 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, -1, 311, 312,
+ 313, 314, 315, 316, 317, 318, -1, 320, 321, 322,
+ 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
+ 333, 334, -1, 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, 366, 367, -1, 369, 370, 371, 372,
+ 373, -1, 375, 376, 377, 378, 379, 380, 381, 382,
+ 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 399, 400, -1, 402,
+ 403, -1, 405, 406, 407, 408, 409, 410, 411, -1,
+ 413, 414, 415, -1, -1, 418, 419, 420, 421, 422,
+ -1, 424, 425, 426, 427, 428, 429, 430, 431, -1,
+ -1, 434, 435, 436, 437, 438, -1, -1, 441, 442,
+ 443, 444, 445, 446, 447, -1, 449, 450, 451, 452,
+ 453, 454, -1, -1, 457, -1, -1, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
+ 473, 474, 475, 476, 477, 478, 479, 3, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
+ 26, 27, -1, 29, 30, 31, -1, -1, -1, -1,
+ -1, -1, -1, 39, 40, 41, -1, 43, 44, 45,
+ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ -1, 57, 58, 59, 60, 61, 62, 63, -1, -1,
+ 66, 67, 68, 69, 70, -1, 72, 73, 74, 75,
+ 76, -1, 78, -1, 80, 81, 82, 83, 84, 85,
+ 86, 87, 88, 89, -1, 91, 92, 93, 94, 95,
+ 96, -1, 98, 99, 100, 101, -1, -1, -1, 105,
+ -1, -1, -1, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, -1, 119, -1, 121, 122, 123, 124, 125,
+ 126, 127, -1, 129, 130, 131, 132, -1, -1, 135,
+ 136, 137, 138, 139, -1, 141, 142, 143, -1, 145,
+ 146, 147, -1, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, -1, 160, -1, 162, 163, 164, 165,
+ 166, -1, 168, -1, 170, 171, -1, 173, 174, 175,
+ 176, 177, -1, 179, 180, -1, 182, 183, 184, -1,
+ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
+ -1, 197, 198, 199, 200, 201, 202, 203, -1, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, -1, 215,
+ -1, 217, 218, 219, 220, 221, 222, 223, 224, 225,
+ 226, -1, -1, 229, 230, 231, 232, 233, -1, 235,
+ 236, 237, -1, -1, 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, -1, 272, 273, 274, 275,
+ -1, 277, 278, 279, 280, 281, 282, -1, 284, 285,
+ -1, -1, 288, 289, 290, -1, -1, 293, 294, 295,
+ 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, -1, 311, 312, 313, 314, 315,
+ 316, 317, 318, -1, 320, 321, 322, 323, 324, 325,
+ 326, 327, 328, 329, 330, 331, 332, 333, 334, -1,
+ 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,
+ 366, 367, -1, 369, 370, 371, 372, 373, -1, 375,
+ 376, 377, 378, 379, 380, 381, 382, 383, 384, -1,
+ 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, 399, 400, -1, 402, 403, -1, 405,
+ 406, 407, 408, 409, 410, 411, -1, 413, 414, 415,
+ -1, -1, 418, 419, 420, 421, 422, -1, 424, 425,
+ 426, 427, 428, 429, 430, 431, -1, -1, 434, 435,
+ 436, 437, 438, -1, -1, 441, 442, 443, 444, 445,
+ 446, 447, -1, 449, 450, 451, 452, 453, 454, -1,
+ -1, 457, -1, -1, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
+ 476, 477, 478, 479, 3, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 20, 21, 22, 23, 24, 25, 26, 27, -1,
+ 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
+ 39, 40, 41, -1, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, -1, 57, 58,
+ 59, 60, 61, 62, 63, -1, -1, 66, 67, 68,
+ 69, 70, -1, 72, 73, 74, 75, 76, -1, 78,
+ -1, 80, 81, 82, 83, 84, 85, 86, 87, 88,
+ 89, -1, 91, 92, 93, 94, 95, 96, -1, 98,
+ 99, 100, 101, -1, -1, -1, 105, -1, -1, -1,
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, -1,
+ 119, -1, 121, 122, 123, 124, 125, 126, 127, -1,
+ 129, 130, 131, 132, -1, -1, 135, 136, 137, 138,
+ 139, -1, 141, 142, 143, -1, 145, 146, 147, -1,
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ -1, 160, -1, 162, 163, 164, 165, 166, -1, 168,
+ -1, 170, 171, -1, 173, 174, 175, 176, 177, -1,
+ 179, 180, -1, 182, 183, 184, -1, 186, 187, 188,
+ 189, 190, 191, 192, 193, 194, 195, -1, 197, 198,
+ 199, 200, 201, 202, 203, -1, 205, 206, 207, 208,
+ 209, 210, 211, 212, 213, -1, 215, -1, 217, 218,
+ 219, 220, 221, 222, 223, 224, 225, 226, -1, -1,
+ 229, 230, 231, 232, 233, -1, 235, 236, 237, -1,
+ -1, 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, -1, 272, 273, 274, 275, -1, 277, 278,
+ 279, 280, 281, 282, -1, 284, 285, -1, -1, 288,
+ 289, 290, -1, -1, 293, 294, 295, 296, 297, 298,
+ 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, -1, 311, 312, 313, 314, 315, 316, 317, 318,
+ -1, 320, 321, 322, 323, 324, 325, 326, 327, 328,
+ 329, 330, 331, 332, 333, 334, -1, 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, 366, 367, -1,
+ 369, 370, 371, 372, 373, -1, 375, 376, 377, 378,
+ 379, 380, 381, 382, 383, 384, -1, 386, 387, 388,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 399, 400, -1, 402, 403, -1, 405, 406, 407, 408,
+ 409, 410, 411, -1, 413, 414, 415, -1, -1, 418,
+ 419, 420, 421, 422, -1, 424, 425, 426, 427, 428,
+ 429, 430, 431, -1, -1, 434, 435, 436, 437, 438,
+ -1, -1, 441, 442, 443, 444, 445, 446, 447, -1,
+ 449, 450, 451, 452, 453, 454, -1, -1, 457, -1,
+ -1, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
+ 479, 3, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
+ 22, 23, 24, 25, 26, 27, -1, 29, 30, 31,
+ -1, -1, -1, -1, -1, -1, -1, 39, 40, 41,
+ -1, 43, 44, 45, 46, 47, 48, 49, 50, 51,
+ 52, 53, 54, 55, -1, 57, 58, 59, 60, 61,
+ 62, 63, -1, -1, 66, 67, 68, 69, 70, -1,
+ 72, 73, 74, 75, 76, -1, 78, -1, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, -1, 91,
+ 92, 93, 94, 95, 96, -1, 98, 99, 100, 101,
+ -1, -1, -1, 105, -1, -1, -1, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, -1, 119, -1, 121,
+ 122, 123, 124, 125, 126, 127, -1, 129, 130, 131,
+ 132, -1, -1, 135, 136, 137, 138, 139, -1, 141,
+ 142, 143, -1, 145, 146, 147, -1, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, -1, 160, -1,
+ 162, 163, 164, 165, 166, -1, 168, -1, 170, 171,
+ -1, 173, 174, 175, 176, 177, -1, 179, 180, -1,
+ 182, 183, 184, -1, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, -1, 197, 198, 199, 200, 201,
+ 202, 203, -1, 205, 206, 207, 208, 209, 210, 211,
+ 212, 213, -1, 215, -1, 217, 218, 219, 220, 221,
+ 222, 223, 224, 225, 226, -1, -1, 229, 230, 231,
+ 232, 233, -1, 235, 236, 237, -1, -1, 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, -1,
+ 272, 273, 274, 275, -1, 277, 278, 279, 280, 281,
+ 282, -1, 284, 285, -1, -1, 288, 289, 290, -1,
+ -1, 293, 294, 295, 296, 297, 298, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, -1, 311,
+ 312, 313, 314, 315, 316, 317, 318, -1, 320, 321,
+ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
+ 332, 333, 334, -1, 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, 366, 367, -1, 369, 370, 371,
+ 372, 373, -1, 375, 376, 377, 378, 379, 380, 381,
+ 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 399, 400, -1,
+ 402, 403, -1, 405, 406, 407, 408, 409, 410, 411,
+ -1, 413, 414, 415, -1, -1, 418, 419, 420, 421,
+ 422, -1, 424, 425, 426, 427, 428, 429, 430, 431,
+ -1, -1, 434, 435, 436, 437, 438, -1, -1, 441,
+ 442, 443, 444, 445, 446, 447, -1, 449, 450, 451,
+ 452, 453, 454, -1, -1, 457, -1, -1, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
+ 472, 473, 474, 475, 476, 477, 478, 479, 3, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
+ 25, 26, 27, -1, 29, 30, 31, -1, -1, -1,
+ -1, -1, -1, -1, 39, 40, 41, -1, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ 55, -1, 57, 58, 59, 60, 61, 62, 63, -1,
+ -1, 66, 67, 68, 69, 70, -1, 72, 73, 74,
+ 75, 76, -1, 78, -1, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 89, -1, 91, 92, 93, 94,
+ 95, 96, -1, 98, 99, 100, 101, -1, -1, -1,
+ 105, -1, -1, -1, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, -1, 119, -1, 121, 122, 123, 124,
+ 125, 126, 127, -1, 129, 130, 131, 132, -1, -1,
+ 135, 136, 137, 138, 139, -1, 141, 142, 143, -1,
+ 145, 146, 147, -1, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, -1, 160, -1, 162, 163, 164,
+ 165, 166, -1, 168, -1, 170, 171, -1, 173, 174,
+ 175, 176, 177, -1, 179, 180, -1, 182, 183, 184,
+ -1, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+ 195, -1, 197, 198, 199, 200, 201, 202, 203, -1,
+ 205, 206, 207, 208, 209, 210, 211, 212, 213, -1,
+ 215, -1, 217, 218, 219, 220, 221, 222, 223, 224,
+ 225, 226, -1, -1, 229, 230, 231, 232, 233, -1,
+ 235, 236, 237, -1, -1, 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, -1, 272, 273, 274,
+ 275, -1, 277, 278, 279, 280, 281, 282, -1, 284,
+ 285, -1, -1, 288, 289, 290, -1, -1, 293, 294,
+ 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, -1, 311, 312, 313, 314,
+ 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ -1, 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, 366, 367, -1, 369, 370, 371, 372, 373, -1,
+ 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
+ -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 399, 400, -1, 402, 403, -1,
+ 405, 406, 407, 408, 409, 410, 411, -1, 413, 414,
+ 415, -1, -1, 418, 419, 420, 421, 422, -1, 424,
+ 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
+ 435, 436, 437, 438, -1, -1, 441, 442, 443, 444,
+ 445, 446, 447, -1, 449, 450, 451, 452, 453, 454,
+ -1, -1, 457, -1, -1, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
+ 475, 476, 477, 478, 479, 3, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
+ -1, 29, 30, 31, -1, -1, -1, -1, -1, -1,
+ -1, 39, 40, 41, -1, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, -1, 57,
+ 58, 59, 60, 61, 62, 63, -1, -1, 66, 67,
+ 68, 69, 70, -1, 72, 73, 74, 75, 76, -1,
+ 78, -1, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, -1, 91, 92, 93, 94, 95, 96, -1,
+ 98, 99, 100, 101, -1, -1, -1, 105, -1, -1,
+ -1, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ -1, 119, -1, 121, 122, 123, 124, 125, 126, 127,
+ -1, 129, 130, 131, 132, -1, -1, 135, 136, 137,
+ 138, 139, -1, 141, 142, 143, -1, 145, 146, 147,
+ -1, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, -1, 160, -1, 162, 163, 164, 165, 166, -1,
+ 168, -1, 170, 171, -1, 173, 174, 175, 176, 177,
+ -1, 179, 180, -1, 182, 183, 184, -1, 186, 187,
+ 188, 189, 190, 191, 192, 193, 194, 195, -1, 197,
+ 198, 199, 200, 201, 202, 203, -1, 205, 206, 207,
+ 208, 209, 210, 211, 212, 213, -1, 215, -1, 217,
+ 218, 219, 220, 221, 222, 223, 224, 225, 226, -1,
+ -1, 229, 230, 231, 232, 233, -1, 235, 236, 237,
+ -1, -1, 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, -1, 272, 273, 274, 275, -1, 277,
+ 278, 279, 280, 281, 282, -1, 284, 285, -1, -1,
+ 288, 289, 290, -1, -1, 293, 294, 295, 296, 297,
+ 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, -1, 311, 312, 313, 314, 315, 316, 317,
+ 318, -1, 320, 321, 322, 323, 324, 325, 326, 327,
+ 328, 329, 330, 331, 332, 333, 334, -1, 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, 366, 367,
+ -1, 369, 370, 371, 372, 373, -1, 375, 376, 377,
+ 378, 379, 380, 381, 382, 383, 384, -1, 386, 387,
+ 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 399, 400, -1, 402, 403, -1, 405, 406, 407,
+ 408, 409, 410, 411, -1, 413, 414, 415, -1, -1,
+ 418, 419, 420, 421, 422, -1, 424, 425, 426, 427,
+ 428, 429, 430, 431, -1, -1, 434, 435, 436, 437,
+ 438, -1, -1, 441, 442, 443, 444, 445, 446, 447,
+ -1, 449, 450, 451, 452, 453, 454, -1, -1, 457,
+ -1, -1, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
+ 478, 479, 3, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
+ 21, 22, 23, 24, 25, 26, 27, -1, 29, 30,
+ 31, -1, -1, -1, -1, -1, -1, -1, 39, 40,
+ 41, -1, 43, 44, 45, 46, 47, 48, 49, 50,
+ 51, 52, 53, 54, 55, -1, 57, 58, 59, 60,
+ 61, 62, 63, -1, -1, 66, 67, 68, 69, 70,
+ -1, 72, 73, 74, 75, 76, -1, 78, -1, 80,
+ 81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
+ 91, 92, 93, 94, 95, 96, -1, 98, 99, 100,
+ 101, -1, -1, -1, 105, -1, -1, -1, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, -1, 119, -1,
+ 121, 122, 123, 124, 125, 126, 127, -1, 129, 130,
+ 131, 132, -1, -1, 135, 136, 137, 138, 139, -1,
+ 141, 142, 143, -1, 145, 146, 147, -1, 149, 150,
+ 151, 152, 153, 154, 155, 156, 157, 158, -1, 160,
+ -1, 162, 163, 164, 165, 166, -1, 168, -1, 170,
+ 171, -1, 173, 174, 175, 176, 177, -1, 179, 180,
+ -1, 182, 183, 184, -1, 186, 187, 188, 189, 190,
+ 191, 192, 193, 194, 195, -1, 197, 198, 199, 200,
+ 201, 202, 203, -1, 205, 206, 207, 208, 209, 210,
+ 211, 212, 213, -1, 215, -1, 217, 218, 219, 220,
+ 221, 222, 223, 224, 225, 226, -1, -1, 229, 230,
+ 231, 232, 233, -1, 235, 236, 237, -1, -1, 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,
+ -1, 272, 273, 274, 275, -1, 277, 278, 279, 280,
+ 281, 282, -1, 284, 285, -1, -1, 288, 289, 290,
+ -1, -1, 293, 294, 295, 296, 297, 298, 299, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, -1,
+ 311, 312, 313, 314, 315, 316, 317, 318, -1, 320,
+ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 334, -1, 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, 366, 367, -1, 369, 370,
+ 371, 372, 373, -1, 375, 376, 377, 378, 379, 380,
+ 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
+ -1, 402, 403, -1, 405, 406, 407, 408, 409, 410,
+ 411, -1, 413, 414, 415, -1, -1, 418, 419, 420,
+ 421, 422, -1, 424, 425, 426, 427, 428, 429, 430,
+ 431, -1, -1, 434, 435, 436, 437, 438, -1, -1,
+ 441, 442, 443, 444, 445, 446, 447, -1, 449, 450,
+ 451, 452, 453, 454, -1, -1, 457, -1, -1, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
+ 471, 472, 473, 474, 475, 476, 477, 478, 479, 3,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
+ 24, 25, 26, 27, -1, 29, 30, 31, -1, -1,
+ -1, -1, -1, -1, -1, 39, 40, 41, -1, 43,
+ 44, 45, 46, -1, 48, 49, 50, 51, 52, -1,
+ 54, 55, -1, 57, 58, 59, 60, 61, 62, 63,
+ -1, -1, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, -1, -1, 79, 80, 81, 82, 83,
+ 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
+ 94, 95, 96, -1, -1, 99, 100, 101, -1, -1,
+ -1, -1, -1, -1, -1, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, -1, 119, -1, 121, 122, 123,
+ 124, 125, 126, 127, -1, 129, 130, 131, 132, -1,
+ -1, 135, 136, 137, 138, 139, -1, 141, 142, 143,
+ -1, 145, 146, 147, -1, 149, 150, 151, 152, 153,
+ 154, 155, 156, 157, 158, -1, 160, -1, 162, 163,
+ 164, 165, 166, -1, 168, 169, 170, -1, -1, -1,
+ 174, 175, 176, 177, -1, 179, 180, -1, 182, 183,
+ 184, -1, 186, 187, 188, 189, 190, -1, 192, 193,
+ 194, 195, -1, 197, 198, 199, 200, 201, 202, 203,
+ -1, 205, -1, 207, 208, 209, 210, 211, 212, 213,
+ -1, 215, -1, 217, -1, -1, 220, -1, 222, 223,
+ 224, 225, 226, -1, -1, 229, 230, -1, 232, -1,
+ -1, 235, 236, 237, -1, -1, 240, 241, 242, 243,
+ 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 258, -1, 260, 261, 262, 263,
+ 264, 265, 266, 267, 268, 269, 270, -1, 272, 273,
+ -1, 275, -1, 277, 278, 279, 280, 281, 282, -1,
+ 284, 285, -1, -1, 288, 289, 290, -1, -1, 293,
+ 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, -1, 311, 312, 313,
+ 314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
+ 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
+ 334, -1, 336, 337, 338, 339, 340, 341, 342, 343,
+ 344, 345, 346, 347, 348, -1, 350, 351, -1, 353,
+ 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
+ 364, 365, 366, 367, -1, 369, 370, 371, 372, 373,
+ -1, 375, 376, 377, 378, 379, -1, 381, 382, 383,
+ 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 399, 400, -1, 402, 403,
+ -1, 405, -1, 407, 408, 409, 410, 411, -1, 413,
+ 414, 415, -1, -1, 418, 419, 420, 421, 422, -1,
+ 424, 425, 426, 427, 428, 429, 430, 431, -1, 433,
+ 434, 435, 436, 437, 438, -1, -1, 441, 442, 443,
+ 444, 445, 446, 447, -1, 449, -1, 451, 452, 453,
+ 454, -1, -1, 457, -1, -1, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
+ 474, 475, 476, 477, 478, 479, 3, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
+ 27, -1, 29, 30, 31, -1, -1, -1, -1, -1,
+ -1, -1, 39, 40, 41, -1, 43, 44, 45, 46,
+ -1, 48, 49, 50, 51, 52, -1, 54, 55, -1,
+ 57, 58, 59, 60, 61, 62, 63, -1, -1, 66,
+ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
+ -1, -1, -1, 80, 81, 82, 83, 84, 85, -1,
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
+ -1, -1, 99, 100, 101, -1, -1, -1, -1, -1,
+ -1, -1, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, -1, 119, -1, 121, 122, 123, 124, 125, 126,
+ 127, -1, 129, 130, 131, 132, -1, -1, 135, 136,
+ 137, 138, 139, -1, 141, 142, 143, -1, 145, 146,
+ 147, -1, 149, 150, 151, 152, 153, 154, 155, 156,
+ 157, 158, -1, 160, -1, 162, 163, 164, 165, 166,
+ -1, 168, 169, 170, -1, -1, -1, 174, 175, 176,
+ 177, -1, 179, 180, -1, 182, 183, 184, -1, 186,
+ 187, 188, 189, 190, -1, 192, 193, 194, 195, -1,
+ 197, 198, 199, 200, 201, 202, 203, -1, 205, -1,
+ 207, 208, 209, 210, 211, 212, 213, -1, 215, -1,
+ 217, -1, -1, 220, -1, 222, 223, 224, 225, 226,
+ -1, -1, 229, 230, -1, 232, 233, -1, 235, 236,
+ 237, -1, -1, 240, 241, 242, 243, 244, 245, 246,
+ 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
+ 257, 258, -1, 260, 261, 262, 263, 264, 265, 266,
+ 267, 268, 269, 270, -1, 272, 273, -1, 275, -1,
+ 277, 278, 279, 280, 281, 282, -1, 284, 285, -1,
+ -1, 288, 289, 290, -1, -1, 293, 294, 295, -1,
+ 297, -1, 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, -1, 311, 312, 313, 314, 315, 316,
+ 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
+ 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
+ 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
+ 347, 348, -1, 350, 351, -1, 353, 354, 355, 356,
+ 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
+ 367, -1, 369, 370, 371, 372, 373, -1, 375, 376,
+ 377, 378, 379, -1, 381, 382, 383, 384, -1, 386,
+ 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 399, 400, -1, 402, 403, -1, 405, -1,
+ 407, 408, 409, 410, 411, -1, 413, 414, 415, -1,
+ -1, 418, 419, 420, 421, 422, -1, 424, 425, 426,
+ 427, 428, 429, 430, 431, -1, 433, 434, 435, 436,
+ 437, 438, -1, -1, 441, 442, 443, 444, 445, 446,
+ 447, -1, 449, -1, 451, 452, 453, 454, -1, -1,
+ 457, -1, -1, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
+ 477, 478, 479, 3, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, -1, -1, -1, -1, -1, -1, -1, 39,
+ 40, 41, -1, 43, 44, 45, 46, -1, 48, 49,
+ 50, 51, 52, -1, 54, 55, -1, 57, 58, 59,
+ 60, 61, 62, 63, -1, -1, 66, 67, 68, 69,
+ 70, -1, 72, 73, 74, 75, 76, -1, -1, -1,
+ 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
+ -1, 91, 92, 93, 94, 95, 96, 97, -1, 99,
+ 100, 101, -1, -1, -1, -1, -1, -1, -1, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, -1, 119,
+ -1, 121, 122, 123, 124, 125, 126, 127, -1, 129,
+ 130, 131, 132, -1, -1, 135, 136, 137, 138, 139,
+ -1, 141, 142, 143, -1, 145, 146, 147, -1, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, -1,
+ 160, -1, 162, 163, 164, 165, 166, -1, 168, -1,
+ 170, -1, -1, -1, 174, 175, 176, 177, 178, 179,
+ 180, -1, 182, 183, 184, -1, 186, 187, 188, 189,
+ 190, -1, 192, 193, 194, 195, -1, 197, 198, 199,
+ 200, 201, 202, 203, -1, 205, -1, 207, 208, 209,
+ 210, 211, 212, 213, -1, 215, -1, 217, -1, -1,
+ 220, -1, 222, 223, 224, 225, 226, -1, -1, 229,
+ 230, -1, 232, -1, -1, 235, 236, 237, -1, -1,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, -1,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, -1, 272, 273, -1, 275, -1, 277, 278, 279,
+ 280, 281, 282, -1, 284, 285, -1, -1, 288, 289,
+ 290, -1, -1, 293, 294, 295, -1, 297, -1, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ -1, 311, 312, 313, 314, 315, 316, 317, 318, -1,
+ 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, -1,
+ 350, 351, -1, 353, 354, 355, 356, 357, 358, 359,
+ 360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
+ 370, 371, 372, 373, -1, 375, 376, 377, 378, 379,
+ -1, 381, 382, 383, 384, -1, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
+ 400, -1, 402, 403, -1, 405, -1, 407, 408, 409,
+ 410, 411, -1, 413, 414, 415, -1, -1, 418, 419,
+ 420, 421, 422, -1, 424, 425, 426, 427, 428, 429,
+ 430, 431, -1, -1, 434, 435, 436, 437, 438, -1,
+ -1, 441, 442, 443, 444, 445, 446, 447, -1, 449,
+ -1, 451, 452, 453, 454, -1, -1, 457, -1, -1,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
+ 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
+ -1, -1, -1, -1, -1, -1, 39, 40, 41, -1,
+ 43, 44, 45, 46, -1, 48, 49, 50, 51, 52,
+ -1, 54, 55, -1, 57, 58, 59, 60, 61, 62,
+ 63, -1, -1, 66, 67, 68, 69, 70, -1, 72,
+ 73, 74, 75, 76, -1, -1, -1, 80, 81, 82,
+ 83, 84, 85, -1, 87, 88, 89, -1, 91, 92,
+ 93, 94, 95, 96, 97, -1, 99, 100, 101, -1,
+ -1, -1, -1, -1, -1, -1, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, -1, 119, -1, 121, 122,
+ 123, 124, 125, 126, 127, -1, 129, 130, 131, 132,
+ -1, -1, 135, 136, 137, 138, 139, -1, 141, 142,
+ 143, -1, 145, 146, 147, -1, 149, 150, 151, 152,
+ 153, 154, 155, 156, 157, 158, -1, 160, -1, 162,
+ 163, 164, 165, 166, -1, 168, -1, 170, -1, -1,
+ -1, 174, 175, 176, 177, 178, 179, 180, -1, 182,
+ 183, 184, -1, 186, 187, 188, 189, 190, -1, 192,
+ 193, 194, 195, -1, 197, 198, 199, 200, 201, 202,
+ 203, -1, 205, -1, 207, 208, 209, 210, 211, 212,
+ 213, -1, 215, -1, 217, -1, -1, 220, -1, 222,
+ 223, 224, 225, 226, -1, -1, 229, 230, -1, 232,
+ -1, -1, 235, 236, 237, -1, -1, 240, 241, 242,
+ 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
+ 253, 254, 255, 256, 257, 258, -1, 260, 261, 262,
+ 263, 264, 265, 266, 267, 268, 269, 270, -1, 272,
+ 273, -1, 275, -1, 277, 278, 279, 280, 281, 282,
+ -1, 284, 285, -1, -1, 288, 289, 290, -1, -1,
+ 293, 294, 295, -1, 297, -1, 299, 300, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, -1, 311, 312,
+ 313, 314, 315, 316, 317, 318, -1, 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, -1, 350, 351, -1,
+ 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
+ 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
+ 373, -1, 375, 376, 377, 378, 379, -1, 381, 382,
+ 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 399, 400, -1, 402,
+ 403, -1, 405, -1, 407, 408, 409, 410, 411, -1,
+ 413, 414, 415, -1, -1, 418, 419, 420, 421, 422,
+ -1, 424, 425, 426, 427, 428, 429, 430, 431, -1,
+ -1, 434, 435, 436, 437, 438, -1, -1, 441, 442,
+ 443, 444, 445, 446, 447, -1, 449, -1, 451, 452,
+ 453, 454, -1, -1, 457, -1, -1, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
+ 473, 474, 475, 476, 477, 478, 479, 3, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
+ 26, 27, -1, 29, 30, 31, -1, -1, -1, -1,
+ -1, -1, -1, 39, 40, 41, -1, 43, 44, 45,
+ 46, -1, 48, 49, 50, 51, 52, -1, 54, 55,
+ -1, 57, 58, 59, 60, 61, 62, 63, -1, -1,
+ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
+ 76, -1, -1, -1, 80, 81, 82, 83, 84, 85,
+ -1, 87, 88, 89, 90, 91, 92, 93, 94, 95,
+ 96, -1, -1, 99, 100, 101, -1, -1, -1, -1,
+ -1, -1, -1, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, -1, 119, -1, 121, 122, 123, 124, 125,
+ 126, 127, -1, 129, 130, 131, 132, -1, -1, 135,
+ 136, 137, 138, 139, -1, 141, 142, 143, -1, 145,
+ 146, 147, -1, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, -1, 160, -1, 162, 163, 164, 165,
+ 166, -1, 168, 169, 170, -1, -1, -1, 174, 175,
+ 176, 177, -1, 179, 180, -1, 182, 183, 184, -1,
+ 186, 187, 188, 189, 190, -1, 192, 193, 194, 195,
+ -1, 197, 198, 199, 200, 201, 202, 203, -1, 205,
+ -1, 207, 208, 209, 210, 211, 212, 213, -1, 215,
+ -1, 217, -1, -1, 220, -1, 222, 223, 224, 225,
+ 226, -1, -1, 229, 230, -1, 232, -1, -1, 235,
+ 236, 237, -1, -1, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 258, -1, 260, 261, 262, 263, 264, 265,
+ 266, 267, 268, 269, 270, -1, 272, 273, -1, 275,
+ -1, 277, 278, 279, 280, 281, 282, -1, 284, 285,
+ -1, -1, 288, 289, 290, -1, -1, 293, 294, 295,
+ -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, -1, 311, 312, 313, 314, 315,
+ 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
+ 326, 327, 328, 329, 330, 331, 332, 333, 334, -1,
+ 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
+ 346, 347, 348, -1, 350, 351, -1, 353, 354, 355,
+ 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
+ 366, 367, -1, 369, 370, 371, 372, 373, -1, 375,
+ 376, 377, 378, 379, -1, 381, 382, 383, 384, -1,
+ 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, 399, 400, -1, 402, 403, -1, 405,
+ -1, 407, 408, 409, 410, 411, -1, 413, 414, 415,
+ -1, -1, 418, 419, 420, 421, 422, -1, 424, 425,
+ 426, 427, 428, 429, 430, 431, -1, 433, 434, 435,
+ 436, 437, 438, -1, -1, 441, 442, 443, 444, 445,
+ 446, 447, -1, 449, -1, 451, 452, 453, 454, -1,
+ -1, 457, -1, -1, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
+ 476, 477, 478, 479, 3, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
+ 39, 40, 41, -1, 43, 44, 45, 46, -1, 48,
+ 49, 50, 51, 52, -1, 54, 55, -1, 57, 58,
+ 59, 60, 61, 62, 63, -1, -1, 66, 67, 68,
+ 69, 70, -1, 72, 73, 74, 75, 76, -1, -1,
+ -1, 80, 81, 82, 83, 84, 85, -1, 87, 88,
+ 89, -1, 91, 92, 93, 94, 95, 96, 97, -1,
+ 99, 100, 101, -1, -1, -1, -1, -1, -1, -1,
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, -1,
+ 119, -1, 121, 122, 123, 124, 125, 126, 127, -1,
+ 129, 130, 131, 132, -1, -1, 135, 136, 137, 138,
+ 139, -1, 141, 142, 143, -1, 145, 146, 147, -1,
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ -1, 160, -1, 162, 163, 164, 165, 166, -1, 168,
+ -1, 170, -1, -1, -1, 174, 175, 176, 177, -1,
+ 179, 180, -1, 182, 183, 184, -1, 186, 187, 188,
+ 189, 190, -1, 192, 193, 194, 195, -1, 197, 198,
+ 199, 200, 201, 202, 203, -1, 205, -1, 207, 208,
+ 209, 210, 211, 212, 213, -1, 215, -1, 217, -1,
+ -1, 220, -1, 222, 223, 224, 225, 226, -1, -1,
+ 229, 230, -1, 232, -1, -1, 235, 236, 237, -1,
+ -1, 240, 241, 242, 243, 244, 245, 246, 247, 248,
+ 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
+ 269, 270, -1, 272, 273, -1, 275, -1, 277, 278,
+ 279, 280, 281, 282, -1, 284, 285, -1, -1, 288,
+ 289, 290, -1, -1, 293, 294, 295, -1, 297, -1,
+ 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, -1, 311, 312, 313, 314, 315, 316, 317, 318,
+ -1, 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,
+ -1, 350, 351, -1, 353, 354, 355, 356, 357, 358,
+ 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
+ 369, 370, 371, 372, 373, -1, 375, 376, 377, 378,
+ 379, -1, 381, 382, 383, 384, -1, 386, 387, 388,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 399, 400, -1, 402, 403, -1, 405, -1, 407, 408,
+ 409, 410, 411, -1, 413, 414, 415, -1, -1, 418,
+ 419, 420, 421, 422, -1, 424, 425, 426, 427, 428,
+ 429, 430, 431, -1, -1, 434, 435, 436, 437, 438,
+ -1, -1, 441, 442, 443, 444, 445, 446, 447, -1,
+ 449, -1, 451, 452, 453, 454, -1, -1, 457, -1,
+ -1, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
+ 479, 3, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ -1, -1, -1, -1, -1, -1, -1, 39, 40, 41,
+ -1, 43, 44, 45, 46, -1, 48, 49, 50, 51,
+ 52, -1, 54, 55, -1, 57, 58, 59, 60, 61,
+ 62, 63, -1, -1, 66, 67, 68, 69, 70, -1,
+ 72, 73, 74, 75, 76, -1, -1, -1, 80, 81,
+ 82, 83, 84, 85, -1, 87, 88, 89, -1, 91,
+ 92, 93, 94, 95, 96, -1, -1, 99, 100, 101,
+ -1, -1, -1, 105, -1, -1, -1, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, -1, 119, -1, 121,
+ 122, 123, 124, 125, 126, 127, -1, 129, 130, 131,
+ 132, -1, -1, 135, 136, 137, 138, 139, -1, 141,
+ 142, 143, -1, 145, 146, 147, -1, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, -1, 160, -1,
+ 162, 163, 164, 165, 166, -1, 168, -1, 170, -1,
+ -1, -1, 174, 175, 176, 177, -1, 179, 180, -1,
+ 182, 183, 184, -1, 186, 187, 188, 189, 190, -1,
+ 192, 193, 194, 195, -1, 197, 198, 199, 200, 201,
+ 202, 203, -1, 205, -1, 207, 208, 209, 210, 211,
+ 212, 213, -1, 215, -1, 217, -1, -1, 220, -1,
+ 222, 223, 224, 225, 226, -1, -1, 229, 230, -1,
+ 232, -1, -1, 235, 236, 237, -1, -1, 240, 241,
+ 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
+ 252, 253, 254, 255, 256, 257, 258, -1, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, -1,
+ 272, 273, -1, 275, -1, 277, 278, 279, 280, 281,
+ 282, -1, 284, 285, -1, 287, 288, 289, 290, -1,
+ -1, 293, 294, 295, -1, 297, -1, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, -1, 311,
+ 312, 313, 314, 315, 316, 317, 318, -1, 320, 321,
+ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
+ 332, 333, 334, -1, 336, 337, 338, 339, 340, 341,
+ 342, 343, 344, 345, 346, 347, 348, -1, 350, 351,
+ -1, 353, 354, 355, 356, 357, 358, 359, 360, 361,
+ 362, 363, 364, 365, 366, 367, -1, 369, 370, 371,
+ 372, 373, -1, 375, 376, 377, 378, 379, -1, 381,
+ 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 399, 400, -1,
+ 402, 403, 404, 405, -1, 407, 408, 409, 410, 411,
+ -1, 413, 414, 415, -1, -1, 418, 419, 420, 421,
+ 422, -1, 424, 425, 426, 427, 428, 429, 430, 431,
+ -1, -1, 434, 435, 436, 437, 438, -1, -1, 441,
+ 442, 443, 444, 445, 446, 447, -1, 449, -1, 451,
+ 452, 453, 454, -1, -1, 457, -1, -1, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
+ 472, 473, 474, 475, 476, 477, 478, 479, 3, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, -1, -1, -1,
+ -1, -1, -1, -1, 39, 40, 41, -1, 43, 44,
+ 45, 46, -1, 48, 49, 50, 51, 52, -1, 54,
+ 55, -1, 57, 58, 59, 60, 61, 62, 63, -1,
+ -1, 66, 67, 68, 69, 70, -1, 72, 73, 74,
+ 75, 76, -1, -1, -1, 80, 81, 82, 83, 84,
+ 85, -1, 87, 88, 89, -1, 91, 92, 93, 94,
+ 95, 96, -1, -1, 99, 100, 101, -1, -1, -1,
+ -1, -1, -1, -1, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, -1, 119, -1, 121, 122, 123, 124,
+ 125, 126, 127, -1, 129, 130, 131, 132, -1, -1,
+ 135, 136, 137, 138, 139, -1, 141, 142, 143, -1,
+ 145, 146, 147, -1, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, -1, 160, -1, 162, 163, 164,
+ 165, 166, -1, 168, 169, 170, -1, -1, -1, 174,
+ 175, 176, 177, -1, 179, 180, -1, 182, 183, 184,
+ -1, 186, 187, 188, 189, 190, -1, 192, 193, 194,
+ 195, -1, 197, 198, 199, 200, 201, 202, 203, -1,
+ 205, -1, 207, 208, 209, 210, 211, 212, 213, -1,
+ 215, -1, 217, -1, -1, 220, -1, 222, 223, 224,
+ 225, 226, -1, -1, 229, 230, -1, 232, -1, -1,
+ 235, 236, 237, -1, -1, 240, 241, 242, 243, 244,
+ 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+ 255, 256, 257, 258, -1, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, -1, 272, 273, -1,
+ 275, -1, 277, 278, 279, 280, 281, 282, -1, 284,
+ 285, -1, -1, 288, 289, 290, -1, -1, 293, 294,
+ 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, -1, 311, 312, 313, 314,
+ 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ -1, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, -1, 350, 351, -1, 353, 354,
+ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
+ 365, 366, 367, -1, 369, 370, 371, 372, 373, -1,
+ 375, 376, 377, 378, 379, -1, 381, 382, 383, 384,
+ -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 399, 400, -1, 402, 403, 404,
+ 405, -1, 407, 408, 409, 410, 411, -1, 413, 414,
+ 415, -1, -1, 418, 419, 420, 421, 422, -1, 424,
+ 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
+ 435, 436, 437, 438, -1, -1, 441, 442, 443, 444,
+ 445, 446, 447, -1, 449, -1, 451, 452, 453, 454,
+ -1, -1, 457, -1, -1, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
+ 475, 476, 477, 478, 479, 3, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
+ -1, 29, 30, 31, -1, -1, -1, -1, -1, -1,
+ -1, 39, 40, 41, -1, 43, 44, 45, 46, -1,
+ 48, 49, 50, 51, 52, -1, 54, 55, -1, 57,
+ 58, 59, 60, 61, 62, 63, -1, -1, 66, 67,
+ 68, 69, 70, -1, 72, 73, 74, 75, 76, -1,
+ -1, -1, 80, 81, 82, 83, 84, 85, -1, 87,
+ 88, 89, -1, 91, 92, 93, 94, 95, 96, 97,
+ -1, 99, 100, 101, -1, -1, -1, -1, -1, -1,
+ -1, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ -1, 119, -1, 121, 122, 123, 124, 125, 126, 127,
+ -1, 129, 130, 131, 132, -1, -1, 135, 136, 137,
+ 138, 139, -1, 141, 142, 143, -1, 145, 146, 147,
+ -1, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, -1, 160, -1, 162, 163, 164, 165, 166, -1,
+ 168, -1, 170, -1, -1, -1, 174, 175, 176, 177,
+ -1, 179, 180, -1, 182, 183, 184, -1, 186, 187,
+ 188, 189, 190, -1, 192, 193, 194, 195, -1, 197,
+ 198, 199, 200, 201, 202, 203, -1, 205, -1, 207,
+ 208, 209, 210, 211, 212, 213, -1, 215, -1, 217,
+ -1, -1, 220, -1, 222, 223, 224, 225, 226, -1,
+ -1, 229, 230, -1, 232, -1, -1, 235, 236, 237,
+ -1, -1, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
+ 258, -1, 260, 261, 262, 263, 264, 265, 266, 267,
+ 268, 269, 270, -1, 272, 273, -1, 275, -1, 277,
+ 278, 279, 280, 281, 282, -1, 284, 285, -1, -1,
+ 288, 289, 290, -1, -1, 293, 294, 295, -1, 297,
+ -1, 299, 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, -1, 311, 312, 313, 314, 315, 316, 317,
+ 318, -1, 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, -1, 350, 351, -1, 353, 354, 355, 356, 357,
+ 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
+ 368, 369, 370, 371, 372, 373, -1, 375, 376, 377,
+ 378, 379, -1, 381, 382, 383, 384, -1, 386, 387,
+ 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 399, 400, -1, 402, 403, -1, 405, -1, 407,
+ 408, 409, 410, 411, -1, 413, 414, 415, -1, -1,
+ 418, 419, 420, 421, 422, -1, 424, 425, 426, 427,
+ 428, 429, 430, 431, -1, -1, 434, 435, 436, 437,
+ 438, -1, -1, 441, 442, 443, 444, 445, 446, 447,
+ -1, 449, -1, 451, 452, 453, 454, -1, -1, 457,
+ -1, -1, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
+ 478, 479, 3, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
+ 21, 22, 23, 24, 25, 26, 27, -1, 29, 30,
+ 31, -1, -1, -1, -1, -1, -1, -1, 39, 40,
+ 41, -1, 43, 44, 45, 46, -1, 48, 49, 50,
+ 51, 52, -1, 54, 55, -1, 57, 58, 59, 60,
+ 61, 62, 63, -1, -1, 66, 67, 68, 69, 70,
+ -1, 72, 73, 74, 75, 76, -1, -1, -1, 80,
+ 81, 82, 83, 84, 85, -1, 87, 88, 89, -1,
+ 91, 92, 93, 94, 95, 96, -1, -1, 99, 100,
+ 101, -1, -1, -1, 105, -1, -1, -1, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, -1, 119, -1,
+ 121, 122, 123, 124, 125, 126, 127, -1, 129, 130,
+ 131, 132, -1, -1, 135, 136, 137, 138, 139, -1,
+ 141, 142, 143, -1, 145, 146, 147, -1, 149, 150,
+ 151, 152, 153, 154, 155, 156, 157, 158, -1, 160,
+ -1, 162, 163, 164, 165, 166, -1, 168, -1, 170,
+ -1, -1, -1, 174, 175, 176, 177, -1, 179, 180,
+ -1, 182, 183, 184, -1, 186, 187, 188, 189, 190,
+ -1, 192, 193, 194, 195, -1, 197, 198, 199, 200,
+ 201, 202, 203, -1, 205, -1, 207, 208, 209, 210,
+ 211, 212, 213, -1, 215, -1, 217, -1, -1, 220,
+ -1, 222, 223, 224, 225, 226, -1, -1, 229, 230,
+ -1, 232, -1, -1, 235, 236, 237, -1, -1, 240,
+ 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
+ 251, 252, 253, 254, 255, 256, 257, 258, -1, 260,
+ 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
+ -1, 272, 273, -1, 275, -1, 277, 278, 279, 280,
+ 281, 282, -1, 284, 285, -1, 287, 288, 289, 290,
+ -1, -1, 293, 294, 295, -1, 297, -1, 299, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, -1,
+ 311, 312, 313, 314, 315, 316, 317, 318, -1, 320,
+ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 334, -1, 336, 337, 338, 339, 340,
+ 341, 342, 343, 344, 345, 346, 347, 348, -1, 350,
+ 351, -1, 353, 354, 355, 356, 357, 358, 359, 360,
+ 361, 362, 363, 364, 365, 366, 367, -1, 369, 370,
+ 371, 372, 373, -1, 375, 376, 377, 378, 379, -1,
+ 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
+ -1, 402, 403, 404, 405, -1, 407, 408, 409, 410,
+ 411, -1, 413, 414, 415, -1, -1, 418, 419, 420,
+ 421, 422, -1, 424, 425, 426, 427, 428, 429, 430,
+ 431, -1, -1, 434, 435, 436, 437, 438, -1, -1,
+ 441, 442, 443, 444, 445, 446, 447, -1, 449, -1,
+ 451, 452, 453, 454, -1, -1, 457, -1, -1, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
+ 471, 472, 473, 474, 475, 476, 477, 478, 479, 3,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31, -1, -1,
+ -1, -1, -1, -1, -1, 39, 40, 41, -1, 43,
+ 44, 45, 46, -1, 48, 49, 50, 51, 52, -1,
+ 54, 55, -1, 57, 58, 59, 60, 61, 62, 63,
+ -1, -1, 66, 67, 68, 69, 70, -1, 72, 73,
+ 74, 75, 76, -1, -1, -1, 80, 81, 82, 83,
+ 84, 85, -1, 87, 88, 89, -1, 91, 92, 93,
+ 94, 95, 96, -1, -1, 99, 100, 101, -1, -1,
+ -1, -1, -1, -1, -1, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, -1, 119, -1, 121, 122, 123,
+ 124, 125, 126, 127, -1, 129, 130, 131, 132, -1,
+ -1, 135, 136, 137, 138, 139, -1, 141, 142, 143,
+ -1, 145, 146, 147, -1, 149, 150, 151, 152, 153,
+ 154, 155, 156, 157, 158, -1, 160, -1, 162, 163,
+ 164, 165, 166, -1, 168, -1, 170, -1, -1, -1,
+ 174, 175, 176, 177, -1, 179, 180, -1, 182, 183,
+ 184, -1, 186, 187, 188, 189, 190, -1, 192, 193,
+ 194, 195, -1, 197, 198, 199, 200, 201, 202, 203,
+ -1, 205, -1, 207, 208, 209, 210, 211, 212, 213,
+ -1, 215, -1, 217, -1, -1, 220, -1, 222, 223,
+ 224, 225, 226, -1, -1, 229, 230, -1, 232, -1,
+ -1, 235, 236, 237, -1, -1, 240, 241, 242, 243,
+ 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 258, -1, 260, 261, 262, 263,
+ 264, 265, 266, 267, 268, 269, 270, -1, 272, 273,
+ -1, 275, -1, 277, 278, 279, 280, 281, 282, -1,
+ 284, 285, -1, 287, 288, 289, 290, -1, -1, 293,
+ 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, -1, 311, 312, 313,
+ 314, 315, 316, 317, 318, -1, 320, 321, 322, 323,
+ 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
+ 334, -1, 336, 337, 338, 339, 340, 341, 342, 343,
+ 344, 345, 346, 347, 348, -1, 350, 351, -1, 353,
+ 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
+ 364, 365, 366, 367, -1, 369, 370, 371, 372, 373,
+ -1, 375, 376, 377, 378, 379, -1, 381, 382, 383,
+ 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 399, 400, -1, 402, 403,
+ -1, 405, -1, 407, 408, 409, 410, 411, -1, 413,
+ 414, 415, -1, -1, 418, 419, 420, 421, 422, -1,
+ 424, 425, 426, 427, 428, 429, 430, 431, -1, -1,
+ 434, 435, 436, 437, 438, -1, -1, 441, 442, 443,
+ 444, 445, 446, 447, -1, 449, -1, 451, 452, 453,
+ 454, -1, -1, 457, -1, -1, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
+ 474, 475, 476, 477, 478, 479, 3, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, -1, -1, -1, -1, -1,
+ -1, -1, 39, 40, 41, -1, 43, 44, 45, 46,
+ -1, 48, 49, 50, 51, 52, -1, 54, 55, -1,
+ 57, 58, 59, 60, 61, 62, 63, -1, -1, 66,
+ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76,
+ -1, -1, -1, 80, 81, 82, 83, 84, 85, -1,
+ 87, 88, 89, -1, 91, 92, 93, 94, 95, 96,
+ -1, -1, 99, 100, 101, -1, -1, -1, -1, -1,
+ -1, -1, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, -1, 119, -1, 121, 122, 123, 124, 125, 126,
+ 127, -1, 129, 130, 131, 132, -1, -1, 135, 136,
+ 137, 138, 139, -1, 141, 142, 143, -1, 145, 146,
+ 147, -1, 149, 150, 151, 152, 153, 154, 155, 156,
+ 157, 158, -1, 160, -1, 162, 163, 164, 165, 166,
+ -1, 168, -1, 170, -1, -1, -1, 174, 175, 176,
+ 177, -1, 179, 180, -1, 182, 183, 184, -1, 186,
+ 187, 188, 189, 190, -1, 192, 193, 194, 195, -1,
+ 197, 198, 199, 200, 201, 202, 203, -1, 205, -1,
+ 207, 208, 209, 210, 211, 212, 213, -1, 215, -1,
+ 217, -1, -1, 220, -1, 222, 223, 224, 225, 226,
+ -1, -1, 229, 230, -1, 232, -1, -1, 235, 236,
+ 237, -1, -1, 240, 241, 242, 243, 244, 245, 246,
+ 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
+ 257, 258, -1, 260, 261, 262, 263, 264, 265, 266,
+ 267, 268, 269, 270, -1, 272, 273, -1, 275, -1,
+ 277, 278, 279, 280, 281, 282, -1, 284, 285, -1,
+ -1, 288, 289, 290, -1, -1, 293, 294, 295, -1,
+ 297, -1, 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, -1, 311, 312, 313, 314, 315, 316,
+ 317, 318, -1, 320, 321, 322, 323, 324, 325, 326,
+ 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
+ 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
+ 347, 348, -1, 350, 351, -1, 353, 354, 355, 356,
+ 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
+ 367, -1, 369, 370, 371, 372, 373, -1, 375, 376,
+ 377, 378, 379, -1, 381, 382, 383, 384, -1, 386,
+ 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 399, 400, -1, 402, 403, -1, 405, -1,
+ 407, 408, 409, 410, 411, -1, 413, 414, 415, -1,
+ -1, 418, 419, 420, 421, 422, -1, 424, 425, 426,
+ 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
+ 437, 438, 439, -1, 441, 442, 443, 444, 445, 446,
+ 447, -1, 449, -1, 451, 452, 453, 454, -1, -1,
+ 457, -1, -1, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
+ 477, 478, 479, 3, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, -1, -1, -1, -1, -1, -1, -1, 39,
+ 40, 41, -1, 43, 44, 45, 46, -1, 48, 49,
+ 50, 51, 52, -1, 54, 55, -1, 57, 58, 59,
+ 60, 61, 62, 63, -1, -1, 66, 67, 68, 69,
+ 70, -1, 72, 73, 74, 75, 76, -1, -1, -1,
+ 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
+ -1, 91, 92, 93, 94, 95, 96, -1, -1, 99,
+ 100, 101, -1, -1, -1, -1, -1, -1, -1, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, -1, 119,
+ -1, 121, 122, 123, 124, 125, 126, 127, -1, 129,
+ 130, 131, 132, -1, -1, 135, 136, 137, 138, 139,
+ -1, 141, 142, 143, -1, 145, 146, 147, -1, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, -1,
+ 160, -1, 162, 163, 164, 165, 166, -1, 168, -1,
+ 170, -1, -1, -1, 174, 175, 176, 177, -1, 179,
+ 180, -1, 182, 183, 184, -1, 186, 187, 188, 189,
+ 190, -1, 192, 193, 194, 195, -1, 197, 198, 199,
+ 200, 201, 202, 203, -1, 205, -1, 207, 208, 209,
+ 210, 211, 212, 213, -1, 215, -1, 217, -1, -1,
+ 220, -1, 222, 223, 224, 225, 226, -1, -1, 229,
+ 230, -1, 232, -1, -1, 235, 236, 237, -1, -1,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, -1,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, -1, 272, 273, -1, 275, -1, 277, 278, 279,
+ 280, 281, 282, -1, 284, 285, -1, -1, 288, 289,
+ 290, -1, -1, 293, 294, 295, -1, 297, -1, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ -1, 311, 312, 313, 314, 315, 316, 317, 318, -1,
+ 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
+ 330, 331, 332, 333, 334, -1, 336, 337, 338, 339,
+ 340, 341, 342, 343, 344, 345, 346, 347, 348, -1,
+ 350, 351, -1, 353, 354, 355, 356, 357, 358, 359,
+ 360, 361, 362, 363, 364, 365, 366, 367, -1, 369,
+ 370, 371, 372, 373, -1, 375, 376, 377, 378, 379,
+ -1, 381, 382, 383, 384, -1, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
+ 400, -1, 402, 403, -1, 405, -1, 407, 408, 409,
+ 410, 411, -1, 413, 414, 415, -1, -1, 418, 419,
+ 420, 421, 422, -1, 424, 425, 426, 427, 428, 429,
+ 430, 431, -1, -1, 434, 435, 436, 437, 438, 439,
+ -1, 441, 442, 443, 444, 445, 446, 447, -1, 449,
+ -1, 451, 452, 453, 454, -1, -1, 457, -1, -1,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
+ 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
+ -1, -1, -1, -1, -1, -1, 39, 40, 41, -1,
+ 43, 44, 45, 46, -1, 48, 49, 50, 51, 52,
+ -1, 54, 55, -1, 57, 58, 59, 60, 61, 62,
+ 63, -1, -1, 66, 67, 68, 69, 70, -1, 72,
+ 73, 74, 75, 76, -1, -1, -1, 80, 81, 82,
+ 83, 84, 85, -1, 87, 88, 89, -1, 91, 92,
+ 93, 94, 95, 96, -1, -1, 99, 100, 101, -1,
+ -1, -1, -1, -1, -1, -1, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, -1, 119, -1, 121, 122,
+ 123, 124, 125, 126, 127, -1, 129, 130, 131, 132,
+ -1, -1, 135, 136, 137, 138, 139, -1, 141, 142,
+ 143, -1, 145, 146, 147, -1, 149, 150, 151, 152,
+ 153, 154, 155, 156, 157, 158, -1, 160, -1, 162,
+ 163, 164, 165, 166, -1, 168, -1, 170, -1, -1,
+ -1, 174, 175, 176, 177, -1, 179, 180, -1, 182,
+ 183, 184, -1, 186, 187, 188, 189, 190, -1, 192,
+ 193, 194, 195, -1, 197, 198, 199, 200, 201, 202,
+ 203, -1, 205, -1, 207, 208, 209, 210, 211, 212,
+ 213, -1, 215, -1, 217, -1, -1, 220, -1, 222,
+ 223, 224, 225, 226, -1, -1, 229, 230, -1, 232,
+ -1, -1, 235, 236, 237, -1, -1, 240, 241, 242,
+ 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
+ 253, 254, 255, 256, 257, 258, -1, 260, 261, 262,
+ 263, 264, 265, 266, 267, 268, 269, 270, -1, 272,
+ 273, -1, 275, -1, 277, 278, 279, 280, 281, 282,
+ -1, 284, 285, -1, -1, 288, 289, 290, -1, -1,
+ 293, 294, 295, -1, 297, -1, 299, 300, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, -1, 311, 312,
+ 313, 314, 315, 316, 317, 318, -1, 320, 321, 322,
+ 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
+ 333, 334, -1, 336, 337, 338, 339, 340, 341, 342,
+ 343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
+ 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
+ 363, 364, 365, 366, 367, -1, 369, 370, 371, 372,
+ 373, -1, 375, 376, 377, 378, 379, -1, 381, 382,
+ 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 399, 400, -1, 402,
+ 403, -1, 405, -1, 407, 408, 409, 410, 411, -1,
+ 413, 414, 415, -1, -1, 418, 419, 420, 421, 422,
+ -1, 424, 425, 426, 427, 428, 429, 430, 431, -1,
+ -1, 434, 435, 436, 437, 438, -1, -1, 441, 442,
+ 443, 444, 445, 446, 447, -1, 449, -1, 451, 452,
+ 453, 454, -1, -1, 457, -1, -1, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
+ 473, 474, 475, 476, 477, 478, 479, 3, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, -1, -1, -1, -1,
+ -1, -1, -1, 39, 40, 41, -1, 43, 44, 45,
+ 46, -1, 48, 49, 50, 51, 52, -1, 54, 55,
+ -1, 57, 58, 59, 60, 61, 62, 63, -1, -1,
+ 66, 67, 68, 69, 70, -1, 72, 73, 74, 75,
+ 76, -1, -1, -1, 80, 81, 82, 83, 84, 85,
+ -1, 87, 88, 89, -1, 91, 92, 93, 94, 95,
+ 96, -1, -1, 99, 100, 101, -1, -1, -1, -1,
+ -1, -1, -1, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, -1, 119, -1, 121, 122, 123, 124, 125,
+ 126, 127, -1, 129, 130, 131, 132, -1, -1, 135,
+ 136, 137, 138, 139, -1, 141, 142, 143, -1, 145,
+ 146, 147, -1, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, -1, 160, -1, 162, 163, 164, 165,
+ 166, -1, 168, -1, 170, -1, -1, -1, 174, 175,
+ 176, 177, -1, 179, 180, -1, 182, 183, 184, -1,
+ 186, 187, 188, 189, 190, -1, 192, 193, 194, 195,
+ -1, 197, 198, 199, 200, 201, 202, 203, -1, 205,
+ -1, 207, 208, 209, 210, 211, 212, 213, -1, 215,
+ -1, 217, -1, -1, 220, -1, 222, 223, 224, 225,
+ 226, -1, -1, 229, 230, -1, 232, -1, -1, 235,
+ 236, 237, -1, -1, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 258, -1, 260, 261, 262, 263, 264, 265,
+ 266, 267, 268, 269, 270, -1, 272, 273, -1, 275,
+ -1, 277, 278, 279, 280, 281, 282, -1, 284, 285,
+ -1, -1, 288, 289, 290, -1, -1, 293, 294, 295,
+ -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, -1, 311, 312, 313, 314, 315,
+ 316, 317, 318, -1, 320, 321, 322, 323, 324, 325,
+ 326, 327, 328, 329, 330, 331, 332, 333, 334, -1,
+ 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
+ 346, 347, 348, -1, 350, 351, -1, 353, 354, 355,
+ 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
+ 366, 367, -1, 369, 370, 371, 372, 373, -1, 375,
+ 376, 377, 378, 379, -1, 381, 382, 383, 384, -1,
+ 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, 399, 400, -1, 402, 403, -1, 405,
+ -1, 407, 408, 409, 410, 411, -1, 413, 414, 415,
+ -1, -1, 418, 419, 420, 421, 422, -1, 424, 425,
+ 426, 427, 428, 429, 430, 431, -1, -1, 434, 435,
+ 436, 437, 438, -1, -1, 441, 442, 443, 444, 445,
+ 446, 447, -1, 449, -1, 451, 452, 453, 454, -1,
+ -1, 457, -1, -1, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
+ 476, 477, 478, 479, 3, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
+ 39, 40, 41, -1, 43, 44, 45, 46, -1, 48,
+ 49, 50, 51, 52, -1, 54, 55, -1, 57, 58,
+ 59, 60, 61, 62, 63, -1, -1, 66, 67, 68,
+ 69, 70, -1, 72, 73, 74, 75, 76, -1, -1,
+ -1, 80, 81, 82, 83, 84, 85, -1, 87, 88,
+ 89, -1, 91, 92, 93, 94, 95, 96, -1, -1,
+ 99, 100, 101, -1, -1, -1, -1, -1, -1, -1,
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, -1,
+ 119, -1, 121, 122, 123, 124, 125, 126, 127, -1,
+ 129, 130, 131, 132, -1, -1, 135, 136, 137, 138,
+ 139, -1, 141, 142, 143, -1, 145, 146, 147, -1,
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ -1, 160, -1, 162, 163, 164, 165, 166, -1, 168,
+ -1, 170, -1, -1, -1, 174, 175, 176, 177, -1,
+ 179, 180, -1, 182, 183, 184, -1, 186, 187, 188,
+ 189, 190, -1, 192, 193, 194, 195, -1, 197, 198,
+ 199, 200, 201, 202, 203, -1, 205, -1, 207, 208,
+ 209, 210, 211, 212, 213, -1, 215, -1, 217, -1,
+ -1, 220, -1, 222, 223, 224, 225, 226, -1, -1,
+ 229, 230, -1, 232, -1, -1, 235, 236, 237, -1,
+ -1, 240, 241, 242, 243, 244, 245, 246, 247, 248,
+ 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
+ 269, 270, -1, 272, 273, -1, 275, -1, 277, 278,
+ 279, 280, 281, 282, -1, 284, 285, -1, -1, 288,
+ 289, 290, -1, -1, 293, 294, 295, -1, 297, -1,
+ 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, -1, 311, 312, 313, 314, 315, 316, 317, 318,
+ -1, 320, 321, 322, 323, 324, 325, 326, 327, 328,
+ 329, 330, 331, 332, 333, 334, -1, 336, 337, 338,
+ 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
+ -1, 350, 351, -1, 353, 354, 355, 356, 357, 358,
+ 359, 360, 361, 362, 363, 364, 365, 366, 367, -1,
+ 369, 370, 371, 372, 373, -1, 375, 376, 377, 378,
+ 379, -1, 381, 382, 383, 384, -1, 386, 387, 388,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 399, 400, -1, 402, 403, -1, 405, -1, 407, 408,
+ 409, 410, 411, -1, 413, 414, 415, -1, -1, 418,
+ 419, 420, 421, 422, -1, 424, 425, 426, 427, 428,
+ 429, 430, 431, -1, -1, 434, 435, 436, 437, 438,
+ -1, -1, 441, 442, 443, 444, 445, 446, 447, -1,
+ 449, -1, 451, 452, 453, 454, -1, -1, 457, -1,
+ -1, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
+ 479, 3, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ -1, -1, -1, -1, -1, -1, -1, 39, 40, 41,
+ -1, 43, 44, 45, 46, -1, 48, 49, 50, 51,
+ 52, -1, 54, 55, -1, 57, 58, 59, 60, 61,
+ 62, 63, -1, -1, 66, 67, 68, 69, 70, -1,
+ 72, 73, 74, 75, 76, -1, -1, -1, 80, 81,
+ 82, 83, 84, 85, -1, 87, 88, 89, -1, 91,
+ 92, 93, 94, 95, 96, -1, -1, 99, 100, 101,
+ -1, -1, -1, -1, -1, -1, -1, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, -1, 119, -1, 121,
+ 122, 123, 124, 125, 126, 127, -1, 129, 130, 131,
+ 132, -1, -1, 135, 136, 137, 138, 139, -1, 141,
+ 142, 143, -1, 145, 146, 147, -1, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, -1, 160, -1,
+ 162, 163, 164, 165, 166, -1, 168, -1, 170, -1,
+ -1, -1, 174, 175, 176, 177, -1, 179, 180, -1,
+ 182, 183, 184, -1, 186, 187, 188, 189, 190, -1,
+ 192, 193, 194, 195, -1, 197, 198, 199, 200, 201,
+ 202, 203, -1, 205, -1, 207, 208, 209, 210, 211,
+ 212, 213, -1, 215, -1, 217, -1, -1, 220, -1,
+ 222, 223, 224, 225, 226, -1, -1, 229, 230, -1,
+ 232, -1, -1, 235, 236, 237, -1, -1, 240, 241,
+ 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
+ 252, 253, 254, 255, 256, 257, 258, -1, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, -1,
+ 272, 273, -1, 275, -1, 277, 278, 279, 280, 281,
+ 282, -1, 284, 285, -1, -1, 288, 289, 290, -1,
+ -1, 293, 294, 295, -1, 297, -1, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, -1, 311,
+ 312, 313, 314, 315, 316, 317, 318, -1, 320, 321,
+ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
+ 332, 333, 334, -1, 336, 337, 338, 339, 340, 341,
+ 342, 343, 344, 345, 346, 347, 348, -1, 350, 351,
+ -1, 353, 354, 355, 356, 357, 358, 359, 360, 361,
+ 362, 363, 364, 365, 366, 367, -1, 369, 370, 371,
+ 372, 373, -1, 375, 376, 377, 378, 379, -1, 381,
+ 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 399, 400, -1,
+ 402, 403, -1, 405, -1, 407, 408, 409, 410, 411,
+ -1, 413, 414, 415, -1, -1, 418, 419, 420, 421,
+ 422, -1, 424, 425, 426, 427, 428, 429, 430, 431,
+ -1, -1, 434, 435, 436, 437, 438, -1, -1, 441,
+ 442, 443, 444, 445, 446, 447, -1, 449, -1, 451,
+ 452, 453, 454, -1, -1, 457, -1, -1, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
+ 472, 473, 474, 475, 476, 477, 478, 479, 3, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
+ 25, 26, 27, -1, 29, 30, 31, -1, -1, -1,
+ -1, -1, -1, -1, 39, 40, 41, -1, 43, 44,
+ 45, 46, -1, 48, 49, 50, 51, 52, -1, 54,
+ 55, -1, 57, 58, 59, 60, 61, 62, 63, -1,
+ -1, 66, 67, 68, 69, 70, -1, 72, 73, 74,
+ 75, 76, -1, -1, -1, 80, 81, 82, 83, 84,
+ 85, -1, 87, 88, 89, -1, 91, 92, 93, 94,
+ 95, 96, -1, -1, 99, 100, 101, -1, -1, -1,
+ -1, -1, -1, -1, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, -1, 119, -1, 121, 122, 123, 124,
+ 125, 126, 127, -1, 129, 130, 131, 132, -1, -1,
+ 135, 136, 137, 138, 139, -1, 141, 142, 143, -1,
+ 145, 146, 147, -1, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, -1, 160, -1, 162, 163, 164,
+ 165, 166, -1, 168, -1, 170, -1, -1, -1, 174,
+ 175, 176, 177, -1, 179, 180, -1, 182, 183, 184,
+ -1, 186, 187, 188, 189, 190, -1, 192, 193, 194,
+ 195, -1, 197, 198, 199, 200, 201, 202, 203, -1,
+ 205, -1, 207, 208, 209, 210, 211, 212, 213, -1,
+ 215, -1, 217, -1, -1, 220, -1, 222, 223, 224,
+ 225, 226, -1, -1, 229, 230, -1, 232, -1, -1,
+ 235, 236, 237, -1, -1, 240, 241, 242, 243, 244,
+ 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+ 255, 256, 257, 258, -1, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, -1, 272, 273, -1,
+ 275, -1, 277, 278, 279, 280, 281, 282, -1, 284,
+ 285, -1, 287, 288, 289, 290, -1, -1, 293, 294,
+ 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, -1, 311, 312, 313, 314,
+ 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ -1, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, -1, 350, 351, -1, 353, 354,
+ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
+ 365, 366, 367, -1, 369, 370, 371, 372, 373, -1,
+ 375, 376, 377, 378, 379, -1, 381, 382, 383, 384,
+ -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 399, 400, -1, 402, 403, -1,
+ 405, -1, 407, 408, 409, 410, 411, -1, 413, 414,
+ 415, -1, -1, 418, 419, 420, 421, 422, -1, 424,
+ 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
+ 435, 436, 437, 438, -1, -1, 441, 442, 443, 444,
+ 445, 446, 447, -1, 449, -1, 451, 452, 453, 454,
+ -1, -1, 457, -1, -1, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
+ 475, 476, 477, 478, 479, 3, -1, -1, -1, -1,
+ -1, -1, -1, -1, 12, -1, -1, -1, -1, -1,
+ -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
+ -1, 29, 30, 31, -1, -1, -1, -1, -1, -1,
+ -1, 39, 40, 41, -1, 43, 44, 45, 46, -1,
+ 48, 49, 50, 51, 52, -1, 54, 55, -1, 57,
+ 58, 59, 60, 61, 62, 63, -1, -1, 66, 67,
+ 68, 69, 70, -1, 72, 73, 74, 75, 76, -1,
+ -1, -1, 80, 81, 82, 83, 84, 85, -1, 87,
+ 88, 89, -1, 91, 92, 93, 94, 95, 96, -1,
+ -1, 99, 100, 101, -1, -1, -1, -1, -1, -1,
+ -1, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ -1, 119, -1, 121, 122, 123, 124, 125, 126, 127,
+ -1, 129, 130, 131, 132, -1, -1, 135, 136, 137,
+ 138, 139, -1, 141, 142, 143, -1, 145, 146, 147,
+ -1, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, -1, 160, -1, 162, 163, 164, 165, 166, -1,
+ 168, -1, 170, -1, -1, -1, 174, 175, 176, 177,
+ -1, 179, 180, -1, 182, 183, 184, -1, 186, 187,
+ 188, 189, 190, -1, 192, 193, 194, 195, -1, 197,
+ 198, 199, 200, 201, 202, 203, -1, 205, -1, 207,
+ 208, 209, 210, 211, 212, 213, -1, 215, -1, 217,
+ -1, -1, 220, -1, 222, 223, 224, 225, 226, -1,
+ -1, 229, 230, -1, 232, -1, -1, 235, 236, 237,
+ -1, -1, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
+ 258, -1, 260, 261, 262, 263, 264, 265, 266, 267,
+ 268, 269, 270, -1, 272, 273, -1, 275, -1, 277,
+ 278, 279, 280, 281, 282, -1, 284, 285, -1, -1,
+ 288, 289, 290, -1, -1, 293, 294, 295, -1, 297,
+ -1, 299, 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, -1, 311, 312, 313, 314, 315, 316, 317,
+ 318, -1, 320, 321, 322, 323, 324, 325, 326, 327,
+ 328, 329, 330, 331, 332, 333, 334, -1, 336, 337,
+ 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
+ 348, -1, 350, 351, -1, 353, 354, 355, 356, 357,
+ 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
+ -1, 369, 370, 371, 372, 373, -1, 375, 376, 377,
+ 378, 379, -1, 381, 382, 383, 384, -1, 386, 387,
+ 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 399, 400, -1, 402, 403, -1, 405, -1, 407,
+ 408, 409, 410, 411, -1, 413, 414, 415, -1, -1,
+ 418, 419, 420, 421, 422, -1, 424, 425, 426, 427,
+ 428, 429, 430, 431, -1, -1, 434, 435, 436, 437,
+ 438, -1, -1, 441, 442, 443, 444, 445, 446, 447,
+ -1, 449, -1, 451, 452, 453, 454, -1, -1, 457,
+ -1, -1, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
+ 478, 479, 3, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
+ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, -1, -1, -1, -1, -1, -1, -1, 39, 40,
+ 41, -1, 43, 44, 45, 46, -1, 48, 49, 50,
+ 51, 52, -1, 54, 55, -1, 57, 58, 59, 60,
+ 61, 62, 63, -1, -1, 66, 67, 68, 69, 70,
+ -1, 72, 73, 74, 75, 76, -1, -1, -1, 80,
+ 81, 82, 83, 84, 85, -1, 87, 88, 89, -1,
+ 91, 92, 93, 94, 95, 96, -1, -1, 99, 100,
+ 101, -1, -1, -1, -1, -1, -1, -1, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, -1, 119, -1,
+ 121, 122, 123, 124, 125, 126, 127, -1, 129, 130,
+ 131, 132, -1, -1, 135, 136, 137, 138, 139, -1,
+ 141, 142, 143, -1, 145, 146, 147, -1, 149, 150,
+ 151, 152, 153, 154, 155, 156, 157, 158, -1, 160,
+ -1, 162, 163, 164, 165, 166, -1, 168, -1, 170,
+ -1, -1, -1, 174, 175, 176, 177, -1, 179, 180,
+ -1, 182, 183, 184, -1, 186, 187, 188, 189, 190,
+ -1, 192, 193, 194, 195, -1, 197, 198, 199, 200,
+ 201, 202, 203, -1, 205, -1, 207, 208, 209, 210,
+ 211, 212, 213, -1, 215, -1, 217, -1, -1, 220,
+ -1, 222, 223, 224, 225, 226, -1, -1, 229, 230,
+ -1, 232, -1, -1, 235, 236, 237, -1, -1, 240,
+ 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
+ 251, 252, 253, 254, 255, 256, 257, 258, -1, 260,
+ 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
+ -1, 272, 273, -1, 275, -1, 277, 278, 279, 280,
+ 281, 282, -1, 284, 285, -1, -1, 288, 289, 290,
+ -1, -1, 293, 294, 295, -1, 297, -1, 299, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, -1,
+ 311, 312, 313, 314, 315, 316, 317, 318, -1, 320,
+ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 334, -1, 336, 337, 338, 339, 340,
+ 341, 342, 343, 344, 345, 346, 347, 348, -1, 350,
+ 351, -1, 353, 354, 355, 356, 357, 358, 359, 360,
+ 361, 362, 363, 364, 365, 366, 367, -1, 369, 370,
+ 371, 372, 373, -1, 375, 376, 377, 378, 379, -1,
+ 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
+ -1, 402, 403, -1, 405, -1, 407, 408, 409, 410,
+ 411, -1, 413, 414, 415, -1, -1, 418, 419, 420,
+ 421, 422, -1, 424, 425, 426, 427, 428, 429, 430,
+ 431, -1, -1, 434, 435, 436, 437, 438, -1, -1,
+ 441, 442, 443, 444, 445, 446, 447, -1, 449, -1,
+ 451, 452, 453, 454, -1, -1, 457, -1, -1, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
+ 471, 472, 473, 474, 475, 476, 477, 478, 479, 3,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31, -1, -1,
+ -1, -1, -1, -1, -1, 39, 40, 41, -1, 43,
+ 44, 45, 46, -1, 48, 49, 50, 51, 52, -1,
+ 54, 55, -1, 57, 58, 59, 60, 61, 62, 63,
+ -1, -1, 66, 67, 68, 69, 70, -1, 72, 73,
+ 74, 75, 76, -1, -1, -1, 80, 81, 82, 83,
+ 84, 85, -1, 87, 88, 89, -1, 91, 92, 93,
+ 94, 95, 96, -1, -1, 99, 100, 101, -1, -1,
+ -1, -1, -1, -1, -1, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, -1, 119, -1, 121, 122, 123,
+ 124, 125, 126, 127, -1, 129, 130, 131, 132, -1,
+ -1, 135, 136, 137, 138, 139, -1, 141, 142, 143,
+ -1, 145, 146, 147, -1, 149, 150, 151, 152, 153,
+ 154, 155, 156, 157, 158, -1, 160, -1, 162, 163,
+ 164, 165, 166, -1, 168, -1, 170, -1, -1, -1,
+ 174, 175, 176, 177, -1, 179, 180, -1, 182, 183,
+ 184, -1, 186, 187, 188, 189, 190, -1, 192, 193,
+ 194, 195, -1, 197, 198, 199, 200, 201, 202, 203,
+ -1, 205, -1, 207, 208, 209, 210, 211, 212, 213,
+ -1, 215, -1, 217, -1, -1, 220, -1, 222, 223,
+ 224, 225, 226, -1, -1, 229, 230, -1, 232, -1,
+ -1, 235, 236, 237, -1, -1, 240, 241, 242, 243,
+ 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 258, -1, 260, 261, 262, 263,
+ 264, 265, 266, 267, 268, 269, 270, -1, 272, 273,
+ -1, 275, -1, 277, 278, 279, 280, 281, 282, -1,
+ 284, 285, -1, -1, 288, 289, 290, -1, -1, 293,
+ 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, -1, 311, 312, 313,
+ 314, 315, 316, 317, 318, -1, 320, 321, 322, 323,
+ 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
+ 334, -1, 336, 337, 338, 339, 340, 341, 342, 343,
+ 344, 345, 346, 347, 348, -1, 350, 351, -1, 353,
+ 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
+ 364, 365, 366, 367, -1, 369, 370, 371, 372, 373,
+ -1, 375, 376, 377, 378, 379, -1, 381, 382, 383,
+ 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 399, 400, -1, 402, 403,
+ -1, 405, -1, 407, 408, 409, 410, 411, -1, 413,
+ 414, 415, -1, -1, 418, 419, 420, 421, 422, -1,
+ 424, 425, 426, 427, 428, 429, 430, 431, -1, -1,
+ 434, 435, 436, 437, 438, -1, -1, 441, 442, 443,
+ 444, 445, 446, 447, -1, 449, -1, 451, 452, 453,
+ 454, -1, -1, 457, -1, -1, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
+ 474, 475, 476, 477, 478, 479, 3, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, -1, -1, -1, -1, -1,
+ -1, -1, 39, 40, 41, -1, 43, 44, 45, 46,
+ -1, 48, 49, 50, 51, 52, -1, 54, 55, -1,
+ 57, 58, 59, 60, 61, 62, 63, -1, -1, 66,
+ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76,
+ -1, -1, -1, 80, 81, 82, 83, 84, 85, -1,
+ 87, 88, 89, -1, 91, 92, 93, 94, 95, 96,
+ -1, -1, 99, 100, 101, -1, -1, -1, -1, -1,
+ -1, -1, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, -1, 119, -1, 121, 122, 123, 124, 125, 126,
+ 127, -1, 129, 130, 131, 132, -1, -1, 135, 136,
+ 137, 138, 139, -1, 141, 142, 143, -1, 145, 146,
+ 147, -1, 149, 150, 151, 152, 153, 154, 155, 156,
+ 157, 158, -1, 160, -1, 162, 163, 164, 165, 166,
+ -1, 168, -1, 170, -1, -1, -1, 174, 175, 176,
+ 177, -1, 179, 180, -1, 182, 183, 184, -1, 186,
+ 187, 188, 189, 190, -1, 192, 193, 194, 195, -1,
+ 197, 198, 199, 200, 201, 202, 203, -1, 205, -1,
+ 207, 208, 209, 210, 211, 212, 213, -1, 215, -1,
+ 217, -1, -1, 220, -1, 222, 223, 224, 225, 226,
+ -1, -1, 229, 230, -1, 232, -1, -1, 235, 236,
+ 237, -1, -1, 240, 241, 242, 243, 244, 245, 246,
+ 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
+ 257, 258, -1, 260, 261, 262, 263, 264, 265, 266,
+ 267, 268, 269, 270, -1, 272, 273, -1, 275, -1,
+ 277, 278, 279, 280, 281, 282, -1, 284, 285, -1,
+ -1, 288, 289, 290, -1, -1, 293, 294, 295, -1,
+ 297, -1, 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, -1, 311, 312, 313, 314, 315, 316,
+ 317, 318, -1, 320, 321, 322, 323, 324, 325, 326,
+ 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
+ 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
+ 347, 348, -1, 350, 351, -1, 353, 354, 355, 356,
+ 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
+ 367, -1, 369, 370, 371, 372, 373, -1, 375, 376,
+ 377, 378, 379, -1, 381, 382, 383, 384, -1, 386,
+ 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 399, 400, -1, 402, 403, -1, 405, -1,
+ 407, 408, 409, 410, 411, -1, 413, 414, 415, -1,
+ -1, 418, 419, 420, 421, 422, -1, 424, 425, 426,
+ 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
+ 437, 438, -1, -1, 441, 442, 443, 444, 445, 446,
+ 447, -1, 449, -1, 451, 452, 453, 454, -1, -1,
+ 457, -1, -1, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
+ 477, 478, 479, 3, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
+ 30, 31, -1, -1, -1, -1, -1, -1, -1, 39,
+ 40, 41, -1, 43, 44, 45, 46, 47, 48, 49,
+ 50, 51, 52, -1, 54, 55, -1, 57, 58, 59,
+ 60, 61, 62, 63, -1, -1, 66, 67, 68, 69,
+ 70, -1, 72, 73, 74, 75, 76, -1, -1, -1,
+ 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
+ -1, 91, 92, 93, 94, 95, 96, -1, -1, 99,
+ 100, 101, -1, -1, -1, -1, -1, -1, -1, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, -1, 119,
+ -1, 121, 122, 123, 124, 125, 126, 127, -1, 129,
+ 130, 131, 132, -1, -1, 135, 136, 137, 138, 139,
+ -1, 141, 142, 143, -1, 145, 146, 147, -1, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, -1,
+ 160, -1, 162, 163, 164, 165, 166, -1, 168, -1,
+ 170, -1, -1, -1, 174, 175, 176, 177, -1, 179,
+ 180, -1, 182, 183, 184, -1, 186, 187, 188, 189,
+ 190, -1, 192, 193, 194, 195, -1, 197, 198, 199,
+ 200, 201, 202, 203, -1, 205, -1, 207, 208, 209,
+ 210, 211, 212, 213, -1, 215, -1, 217, -1, -1,
+ 220, -1, 222, 223, 224, 225, 226, -1, -1, 229,
+ 230, -1, 232, -1, -1, 235, 236, 237, -1, -1,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, -1,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, -1, 272, 273, -1, 275, -1, 277, 278, 279,
+ 280, 281, 282, -1, 284, 285, -1, -1, 288, 289,
+ 290, -1, -1, 293, 294, 295, -1, 297, -1, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ -1, 311, 312, 313, 314, 315, 316, 317, 318, -1,
+ 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
+ 330, 331, 332, 333, 334, -1, 336, 337, 338, 339,
+ 340, 341, 342, 343, 344, 345, 346, 347, 348, -1,
+ 350, 351, -1, 353, 354, 355, 356, 357, 358, 359,
+ 360, 361, 362, 363, 364, 365, 366, 367, -1, 369,
+ 370, 371, 372, 373, -1, 375, 376, 377, 378, 379,
+ -1, 381, 382, 383, 384, -1, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
+ 400, -1, 402, 403, -1, 405, -1, 407, 408, 409,
+ 410, 411, -1, 413, 414, 415, -1, -1, 418, 419,
+ 420, 421, 422, -1, 424, 425, 426, 427, 428, 429,
+ 430, 431, -1, -1, 434, 435, 436, 437, 438, -1,
+ -1, 441, 442, 443, 444, 445, 446, 447, -1, 449,
+ -1, 451, 452, 453, 454, -1, -1, 457, -1, -1,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
+ 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
+ 23, 24, 25, 26, 27, -1, 29, 30, 31, -1,
+ -1, -1, -1, -1, -1, -1, 39, 40, 41, -1,
+ 43, 44, 45, 46, -1, 48, 49, 50, 51, 52,
+ -1, 54, 55, -1, 57, 58, 59, 60, 61, 62,
+ 63, -1, -1, 66, 67, 68, 69, 70, -1, 72,
+ 73, 74, 75, 76, -1, -1, -1, 80, 81, 82,
+ 83, 84, 85, -1, 87, 88, 89, -1, 91, 92,
+ 93, 94, 95, 96, -1, -1, 99, 100, 101, -1,
+ -1, -1, -1, -1, -1, -1, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, -1, 119, -1, 121, 122,
+ 123, 124, 125, 126, 127, -1, 129, 130, 131, 132,
+ -1, -1, 135, 136, 137, 138, 139, -1, 141, 142,
+ 143, -1, 145, 146, 147, -1, 149, 150, 151, 152,
+ 153, 154, 155, 156, 157, 158, -1, 160, -1, 162,
+ 163, 164, 165, 166, -1, 168, -1, 170, -1, -1,
+ -1, 174, 175, 176, 177, -1, 179, 180, -1, 182,
+ 183, 184, -1, 186, 187, 188, 189, 190, -1, 192,
+ 193, 194, 195, -1, 197, 198, 199, 200, 201, 202,
+ 203, -1, 205, -1, 207, 208, 209, 210, 211, 212,
+ 213, -1, 215, -1, 217, -1, -1, 220, -1, 222,
+ 223, 224, 225, 226, -1, -1, 229, 230, -1, 232,
+ -1, -1, 235, 236, 237, -1, -1, 240, 241, 242,
+ 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
+ 253, 254, 255, 256, 257, 258, -1, 260, 261, 262,
+ 263, 264, 265, 266, 267, 268, 269, 270, -1, 272,
+ 273, -1, 275, -1, 277, 278, 279, 280, 281, 282,
+ -1, 284, 285, -1, 287, 288, 289, 290, -1, -1,
+ 293, 294, 295, -1, 297, -1, 299, 300, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, -1, 311, 312,
+ 313, 314, 315, 316, 317, 318, -1, 320, 321, 322,
+ 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
+ 333, 334, -1, 336, 337, 338, 339, 340, 341, 342,
+ 343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
+ 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
+ 363, 364, 365, 366, 367, -1, 369, 370, 371, 372,
+ 373, -1, 375, 376, 377, 378, 379, -1, 381, 382,
+ 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 399, 400, -1, 402,
+ 403, -1, 405, -1, 407, 408, 409, 410, 411, -1,
+ 413, 414, 415, -1, -1, 418, 419, 420, 421, 422,
+ -1, 424, 425, 426, 427, 428, 429, 430, 431, -1,
+ -1, 434, 435, 436, 437, 438, -1, -1, 441, 442,
+ 443, 444, 445, 446, 447, -1, 449, -1, 451, 452,
+ 453, 454, -1, -1, 457, -1, -1, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
+ 473, 474, 475, 476, 477, 478, 479, 3, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, -1, -1, -1, -1,
+ -1, -1, -1, 39, 40, 41, -1, 43, 44, 45,
+ 46, -1, 48, 49, 50, 51, 52, -1, 54, 55,
+ -1, 57, 58, 59, 60, 61, 62, 63, -1, -1,
+ 66, 67, 68, 69, 70, -1, 72, 73, 74, 75,
+ 76, -1, -1, -1, 80, 81, 82, 83, 84, 85,
+ -1, 87, 88, 89, -1, 91, 92, 93, 94, 95,
+ 96, -1, -1, 99, 100, 101, -1, -1, -1, -1,
+ -1, -1, -1, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, -1, 119, -1, 121, 122, 123, 124, 125,
+ 126, 127, -1, 129, 130, 131, 132, -1, -1, 135,
+ 136, 137, 138, 139, -1, 141, 142, 143, -1, 145,
+ 146, 147, -1, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, -1, 160, -1, 162, 163, 164, 165,
+ 166, -1, 168, -1, 170, -1, -1, -1, 174, 175,
+ 176, 177, -1, 179, 180, -1, 182, 183, 184, -1,
+ 186, 187, 188, 189, 190, -1, 192, 193, 194, 195,
+ -1, 197, 198, 199, 200, 201, 202, 203, -1, 205,
+ -1, 207, 208, 209, 210, 211, 212, 213, -1, 215,
+ -1, 217, -1, -1, 220, -1, 222, 223, 224, 225,
+ 226, -1, -1, 229, 230, -1, 232, -1, -1, 235,
+ 236, 237, -1, -1, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 258, -1, 260, 261, 262, 263, 264, 265,
+ 266, 267, 268, 269, 270, -1, 272, 273, -1, 275,
+ -1, 277, 278, 279, 280, 281, 282, -1, 284, 285,
+ -1, -1, 288, 289, 290, -1, -1, 293, 294, 295,
+ -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, -1, 311, 312, 313, 314, 315,
+ 316, 317, 318, -1, 320, 321, 322, 323, 324, 325,
+ 326, 327, 328, 329, 330, 331, 332, 333, 334, -1,
+ 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
+ 346, 347, 348, -1, 350, 351, -1, 353, 354, 355,
+ 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
+ 366, 367, -1, 369, 370, 371, 372, 373, -1, 375,
+ 376, 377, 378, 379, -1, 381, 382, 383, 384, -1,
+ 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, 399, 400, -1, 402, 403, -1, 405,
+ -1, 407, 408, 409, 410, 411, -1, 413, 414, 415,
+ -1, -1, 418, 419, 420, 421, 422, -1, 424, 425,
+ 426, 427, 428, 429, 430, 431, -1, -1, 434, 435,
+ 436, 437, 438, -1, -1, 441, 442, 443, 444, 445,
+ 446, 447, -1, 449, -1, 451, 452, 453, 454, -1,
+ -1, 457, -1, -1, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
+ 476, 477, 478, 479, 3, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
+ 39, 40, 41, -1, 43, 44, 45, 46, -1, 48,
+ 49, 50, 51, 52, -1, 54, 55, -1, 57, 58,
+ 59, 60, 61, 62, 63, -1, -1, 66, 67, 68,
+ 69, 70, -1, 72, 73, 74, 75, 76, -1, -1,
+ -1, 80, 81, 82, 83, 84, 85, -1, 87, 88,
+ 89, -1, 91, 92, 93, 94, 95, 96, -1, -1,
+ 99, 100, 101, -1, -1, -1, -1, -1, -1, -1,
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, -1,
+ 119, -1, 121, 122, 123, 124, 125, 126, 127, -1,
+ 129, 130, 131, 132, -1, -1, 135, 136, 137, 138,
+ 139, -1, 141, 142, 143, -1, 145, 146, 147, -1,
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ -1, 160, -1, 162, 163, 164, 165, 166, -1, 168,
+ -1, 170, -1, -1, -1, 174, 175, 176, 177, -1,
+ 179, 180, -1, 182, 183, 184, -1, 186, 187, 188,
+ 189, 190, -1, 192, 193, 194, 195, -1, 197, 198,
+ 199, 200, 201, 202, 203, -1, 205, -1, 207, 208,
+ 209, 210, 211, 212, 213, -1, 215, -1, 217, -1,
+ -1, 220, -1, 222, 223, 224, 225, 226, -1, -1,
+ 229, 230, -1, 232, -1, -1, 235, 236, 237, -1,
+ -1, 240, 241, 242, 243, 244, 245, 246, 247, 248,
+ 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
+ 269, 270, -1, 272, 273, -1, 275, -1, 277, 278,
+ 279, 280, 281, 282, -1, 284, 285, -1, -1, 288,
+ 289, 290, -1, -1, 293, 294, 295, -1, 297, -1,
+ 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, -1, 311, 312, 313, 314, 315, 316, 317, 318,
+ -1, 320, 321, 322, 323, 324, 325, 326, 327, 328,
+ 329, 330, 331, 332, 333, 334, -1, 336, 337, 338,
+ 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
+ -1, 350, 351, -1, 353, 354, 355, 356, 357, 358,
+ 359, 360, 361, 362, 363, 364, 365, 366, 367, -1,
+ 369, 370, 371, 372, 373, -1, 375, 376, 377, 378,
+ 379, -1, 381, 382, 383, 384, -1, 386, 387, 388,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 399, 400, -1, 402, 403, -1, 405, -1, 407, 408,
+ 409, 410, 411, -1, 413, 414, 415, -1, -1, 418,
+ 419, 420, 421, 422, -1, 424, 425, 426, 427, 428,
+ 429, 430, 431, -1, -1, 434, 435, 436, 437, 438,
+ -1, -1, 441, 442, 443, 444, 445, 446, 447, -1,
+ 449, -1, 451, 452, 453, 454, -1, -1, 457, -1,
+ -1, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
+ 479, 3, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
+ 22, 23, 24, 25, 26, 27, -1, 29, 30, 31,
+ -1, -1, -1, -1, -1, -1, -1, 39, 40, 41,
+ -1, 43, 44, 45, 46, -1, 48, 49, 50, 51,
+ 52, -1, 54, 55, -1, 57, 58, 59, 60, 61,
+ 62, 63, -1, -1, 66, 67, 68, 69, 70, -1,
+ 72, 73, 74, 75, 76, -1, -1, -1, 80, 81,
+ 82, 83, 84, 85, -1, 87, 88, 89, -1, 91,
+ 92, 93, 94, 95, 96, -1, -1, 99, 100, 101,
+ -1, -1, -1, -1, -1, -1, -1, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, -1, 119, -1, 121,
+ 122, 123, 124, 125, 126, 127, -1, 129, 130, 131,
+ 132, -1, -1, 135, 136, 137, 138, 139, -1, 141,
+ 142, 143, -1, 145, 146, 147, -1, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, -1, 160, -1,
+ 162, 163, 164, 165, 166, -1, 168, -1, 170, -1,
+ -1, -1, 174, 175, 176, 177, -1, 179, 180, -1,
+ 182, 183, 184, -1, 186, 187, 188, 189, 190, -1,
+ 192, 193, 194, 195, -1, 197, 198, 199, 200, 201,
+ 202, 203, -1, 205, -1, 207, 208, 209, 210, 211,
+ 212, 213, -1, 215, -1, 217, -1, -1, 220, -1,
+ 222, 223, 224, 225, 226, -1, -1, 229, 230, -1,
+ 232, -1, -1, 235, 236, 237, -1, -1, 240, 241,
+ 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
+ 252, 253, 254, 255, 256, 257, 258, -1, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, -1,
+ 272, 273, -1, 275, -1, 277, 278, 279, 280, 281,
+ 282, -1, 284, 285, -1, -1, 288, 289, 290, -1,
+ -1, 293, 294, 295, -1, 297, -1, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, -1, 311,
+ 312, 313, 314, 315, 316, 317, 318, -1, 320, 321,
+ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
+ 332, 333, 334, -1, 336, 337, 338, 339, 340, 341,
+ 342, 343, 344, 345, 346, 347, 348, -1, 350, 351,
+ -1, 353, 354, 355, 356, 357, 358, 359, 360, 361,
+ 362, 363, 364, 365, 366, 367, -1, 369, 370, 371,
+ 372, 373, -1, 375, 376, 377, 378, 379, -1, 381,
+ 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 399, 400, -1,
+ 402, 403, 404, 405, -1, 407, 408, 409, 410, 411,
+ -1, 413, 414, 415, -1, -1, 418, 419, 420, 421,
+ 422, -1, 424, 425, 426, 427, 428, 429, 430, 431,
+ -1, -1, 434, 435, 436, 437, 438, -1, -1, 441,
+ 442, 443, 444, 445, 446, 447, -1, 449, -1, 451,
+ 452, 453, 454, -1, -1, 457, -1, -1, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
+ 472, 473, 474, 475, 476, 477, 478, 479, 3, -1,
+ -1, 6, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
+ 25, 26, 27, -1, 29, 30, 31, -1, -1, -1,
+ -1, -1, -1, -1, 39, 40, 41, -1, 43, 44,
+ 45, 46, -1, 48, 49, 50, 51, 52, -1, 54,
+ 55, -1, 57, 58, 59, 60, 61, 62, 63, -1,
+ -1, 66, 67, 68, 69, 70, -1, 72, 73, 74,
+ 75, 76, -1, -1, -1, 80, 81, 82, 83, 84,
+ 85, -1, 87, 88, 89, -1, 91, 92, 93, 94,
+ 95, 96, -1, -1, 99, 100, 101, -1, -1, -1,
+ -1, -1, -1, -1, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, -1, 119, -1, 121, 122, 123, 124,
+ 125, 126, 127, -1, 129, 130, 131, 132, -1, -1,
+ 135, 136, 137, 138, 139, -1, 141, 142, 143, -1,
+ 145, 146, 147, -1, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, -1, 160, -1, 162, 163, 164,
+ 165, 166, -1, 168, -1, 170, -1, -1, -1, 174,
+ 175, 176, 177, -1, 179, 180, -1, 182, 183, 184,
+ -1, 186, 187, 188, 189, 190, -1, 192, 193, 194,
+ 195, -1, 197, 198, 199, 200, 201, 202, 203, -1,
+ 205, -1, 207, 208, 209, 210, 211, 212, 213, -1,
+ 215, -1, 217, -1, -1, 220, -1, 222, 223, 224,
+ 225, 226, -1, -1, 229, 230, -1, 232, -1, -1,
+ 235, 236, 237, -1, -1, 240, 241, 242, 243, 244,
+ 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+ 255, 256, 257, 258, -1, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, -1, 272, 273, -1,
+ 275, -1, 277, 278, 279, 280, 281, 282, -1, 284,
+ 285, -1, -1, 288, 289, 290, -1, -1, 293, 294,
+ 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, -1, 311, 312, 313, 314,
+ 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ -1, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, -1, 350, 351, -1, 353, 354,
+ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
+ 365, 366, 367, -1, 369, 370, 371, 372, 373, -1,
+ 375, 376, 377, 378, 379, -1, 381, 382, 383, 384,
+ -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 399, 400, -1, 402, 403, -1,
+ 405, -1, 407, 408, 409, 410, 411, -1, 413, 414,
+ 415, -1, -1, 418, 419, 420, 421, 422, -1, 424,
+ 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
+ 435, 436, 437, 438, -1, -1, 441, 442, 443, 444,
+ 445, 446, 447, -1, 449, -1, 451, 452, 453, 454,
+ -1, -1, 457, -1, -1, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
+ 475, 476, 477, 478, 479, 3, -1, -1, -1, -1,
+ -1, -1, -1, 11, -1, -1, -1, -1, -1, -1,
+ -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
+ -1, 29, 30, 31, -1, -1, -1, -1, -1, -1,
+ -1, 39, 40, 41, -1, 43, 44, 45, 46, -1,
+ 48, 49, 50, 51, 52, -1, 54, 55, -1, 57,
+ 58, 59, 60, 61, 62, 63, -1, -1, 66, 67,
+ 68, 69, 70, -1, 72, 73, 74, 75, 76, -1,
+ -1, -1, 80, 81, 82, 83, 84, 85, -1, 87,
+ 88, 89, -1, 91, 92, 93, 94, 95, 96, -1,
+ -1, 99, 100, 101, -1, -1, -1, -1, -1, -1,
+ -1, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ -1, 119, -1, 121, 122, 123, 124, 125, 126, 127,
+ -1, 129, 130, 131, 132, -1, -1, 135, 136, 137,
+ 138, 139, -1, 141, 142, 143, -1, 145, 146, 147,
+ -1, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, -1, 160, -1, 162, 163, 164, 165, 166, -1,
+ 168, -1, 170, -1, -1, -1, 174, 175, 176, 177,
+ -1, 179, 180, -1, 182, 183, 184, -1, 186, 187,
+ 188, 189, 190, -1, 192, 193, 194, 195, -1, 197,
+ 198, 199, 200, 201, 202, 203, -1, 205, -1, 207,
+ 208, 209, 210, 211, 212, 213, -1, 215, -1, 217,
+ -1, -1, 220, -1, 222, 223, 224, 225, 226, -1,
+ -1, 229, 230, -1, 232, -1, -1, 235, 236, 237,
+ -1, -1, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
+ 258, -1, 260, 261, 262, 263, 264, 265, 266, 267,
+ 268, 269, 270, -1, 272, 273, -1, 275, -1, 277,
+ 278, 279, 280, 281, 282, -1, 284, 285, -1, -1,
+ 288, 289, 290, -1, -1, 293, 294, 295, -1, 297,
+ -1, 299, 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, -1, 311, 312, 313, 314, 315, 316, 317,
+ 318, -1, 320, 321, 322, 323, 324, 325, 326, 327,
+ 328, 329, 330, 331, 332, 333, 334, -1, 336, 337,
+ 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
+ 348, -1, 350, 351, -1, 353, 354, 355, 356, 357,
+ 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
+ -1, 369, 370, 371, 372, 373, -1, 375, 376, 377,
+ 378, 379, -1, 381, 382, 383, 384, -1, 386, 387,
+ 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 399, 400, -1, 402, 403, -1, 405, -1, 407,
+ 408, 409, 410, 411, -1, 413, 414, 415, -1, -1,
+ 418, 419, 420, 421, 422, -1, 424, 425, 426, 427,
+ 428, 429, 430, 431, -1, -1, 434, 435, 436, 437,
+ 438, -1, -1, 441, 442, 443, 444, 445, 446, 447,
+ -1, 449, -1, 451, 452, 453, 454, -1, -1, 457,
+ -1, -1, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
+ 478, 479, 3, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
+ 21, 22, 23, 24, 25, 26, 27, -1, 29, 30,
+ 31, -1, -1, -1, -1, -1, 37, -1, 39, 40,
+ 41, -1, 43, 44, 45, 46, -1, 48, 49, 50,
+ 51, 52, -1, 54, 55, -1, 57, 58, 59, 60,
+ 61, 62, 63, -1, -1, 66, 67, 68, 69, 70,
+ -1, 72, 73, 74, 75, 76, -1, -1, -1, 80,
+ 81, 82, 83, 84, 85, -1, 87, 88, 89, -1,
+ 91, 92, 93, 94, 95, 96, -1, -1, 99, 100,
+ 101, -1, -1, -1, -1, -1, -1, -1, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, -1, 119, -1,
+ 121, 122, 123, 124, 125, 126, 127, -1, 129, 130,
+ 131, 132, -1, -1, 135, 136, 137, 138, 139, -1,
+ 141, 142, 143, -1, 145, 146, 147, -1, 149, 150,
+ 151, 152, 153, 154, 155, 156, 157, 158, -1, 160,
+ -1, 162, 163, 164, 165, 166, -1, 168, -1, 170,
+ -1, -1, -1, 174, 175, 176, 177, -1, 179, 180,
+ -1, 182, 183, 184, -1, 186, 187, 188, 189, 190,
+ -1, 192, 193, 194, 195, -1, 197, 198, 199, 200,
+ 201, 202, 203, -1, 205, -1, 207, 208, 209, 210,
+ 211, 212, 213, -1, 215, -1, 217, -1, -1, 220,
+ -1, 222, 223, 224, 225, 226, -1, -1, 229, 230,
+ -1, 232, -1, -1, 235, 236, 237, -1, -1, 240,
+ 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
+ 251, 252, 253, 254, 255, 256, 257, 258, -1, 260,
+ 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
+ -1, 272, 273, -1, 275, -1, 277, 278, 279, 280,
+ 281, 282, -1, 284, 285, -1, -1, 288, 289, 290,
+ -1, -1, 293, 294, 295, -1, 297, -1, 299, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, -1,
+ 311, 312, 313, 314, 315, 316, 317, 318, -1, 320,
+ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 334, -1, 336, 337, 338, 339, 340,
+ 341, 342, 343, 344, 345, 346, 347, 348, -1, 350,
+ 351, -1, 353, 354, 355, 356, 357, 358, 359, 360,
+ 361, 362, 363, 364, 365, 366, 367, -1, 369, 370,
+ 371, 372, 373, -1, 375, 376, 377, 378, 379, -1,
+ 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
+ -1, 402, 403, -1, 405, -1, 407, 408, 409, 410,
+ 411, -1, 413, 414, 415, -1, -1, 418, 419, 420,
+ 421, 422, -1, 424, 425, 426, 427, 428, 429, 430,
+ 431, -1, -1, 434, 435, 436, 437, 438, -1, -1,
+ 441, 442, 443, 444, 445, 446, 447, -1, 449, -1,
+ 451, 452, 453, 454, -1, -1, 457, -1, -1, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
+ 471, 472, 473, 474, 475, 476, 477, 478, 479, 3,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
+ 24, 25, 26, 27, -1, 29, 30, 31, -1, -1,
+ -1, -1, -1, 37, -1, 39, 40, 41, -1, 43,
+ 44, 45, 46, -1, 48, 49, 50, 51, 52, -1,
+ 54, 55, -1, 57, 58, 59, 60, 61, 62, 63,
+ -1, -1, 66, 67, 68, 69, 70, -1, 72, 73,
+ 74, 75, 76, -1, -1, -1, 80, 81, 82, 83,
+ 84, 85, -1, 87, 88, 89, -1, 91, 92, 93,
+ 94, 95, 96, -1, -1, 99, 100, 101, -1, -1,
+ -1, -1, -1, -1, -1, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, -1, 119, -1, 121, 122, 123,
+ 124, 125, 126, 127, -1, 129, 130, 131, 132, -1,
+ -1, 135, 136, 137, 138, 139, -1, 141, 142, 143,
+ -1, 145, 146, 147, -1, 149, 150, 151, 152, 153,
+ 154, 155, 156, 157, 158, -1, 160, -1, 162, 163,
+ 164, 165, 166, -1, 168, -1, 170, -1, -1, -1,
+ 174, 175, 176, 177, -1, 179, 180, -1, 182, 183,
+ 184, -1, 186, 187, 188, 189, 190, -1, 192, 193,
+ 194, 195, -1, 197, 198, 199, 200, 201, 202, 203,
+ -1, 205, -1, 207, 208, 209, 210, 211, 212, 213,
+ -1, 215, -1, 217, -1, -1, 220, -1, 222, 223,
+ 224, 225, 226, -1, -1, 229, 230, -1, 232, -1,
+ -1, 235, 236, 237, -1, -1, 240, 241, 242, 243,
+ 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 258, -1, 260, 261, 262, 263,
+ 264, 265, 266, 267, 268, 269, 270, -1, 272, 273,
+ -1, 275, -1, 277, 278, 279, 280, 281, 282, -1,
+ 284, 285, -1, -1, 288, 289, 290, -1, -1, 293,
+ 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, -1, 311, 312, 313,
+ 314, 315, 316, 317, 318, -1, 320, 321, 322, 323,
+ 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
+ 334, -1, 336, 337, 338, 339, 340, 341, 342, 343,
+ 344, 345, 346, 347, 348, -1, 350, 351, -1, 353,
+ 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
+ 364, 365, 366, 367, -1, 369, 370, 371, 372, 373,
+ -1, 375, 376, 377, 378, 379, -1, 381, 382, 383,
+ 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 399, 400, -1, 402, 403,
+ -1, 405, -1, 407, 408, 409, 410, 411, -1, 413,
+ 414, 415, -1, -1, 418, 419, 420, 421, 422, -1,
+ 424, 425, 426, 427, 428, 429, 430, 431, -1, -1,
+ 434, 435, 436, 437, 438, -1, -1, 441, 442, 443,
+ 444, 445, 446, 447, -1, 449, -1, 451, 452, 453,
+ 454, -1, -1, 457, -1, -1, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
+ 474, 475, 476, 477, 478, 479, 3, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
+ 27, -1, 29, 30, 31, -1, -1, -1, -1, -1,
+ -1, -1, 39, 40, 41, -1, 43, 44, 45, 46,
+ -1, 48, 49, 50, 51, 52, -1, 54, 55, -1,
+ 57, 58, 59, 60, 61, 62, 63, -1, -1, 66,
+ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76,
+ -1, -1, -1, 80, 81, 82, 83, 84, 85, -1,
+ 87, 88, 89, -1, 91, 92, 93, 94, 95, 96,
+ -1, -1, 99, 100, 101, -1, -1, -1, -1, -1,
+ -1, -1, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, 118, 119, -1, 121, 122, 123, 124, 125, 126,
+ 127, -1, 129, 130, 131, 132, -1, -1, 135, 136,
+ 137, 138, 139, -1, 141, 142, 143, -1, 145, 146,
+ 147, -1, 149, 150, 151, 152, 153, 154, 155, 156,
+ 157, 158, -1, 160, -1, 162, 163, 164, 165, 166,
+ -1, 168, -1, 170, -1, -1, -1, 174, 175, 176,
+ 177, -1, 179, 180, -1, 182, 183, 184, -1, 186,
+ 187, 188, 189, 190, -1, 192, 193, 194, 195, -1,
+ 197, 198, 199, 200, 201, 202, 203, -1, 205, -1,
+ 207, 208, 209, 210, 211, 212, 213, -1, 215, -1,
+ 217, -1, -1, 220, -1, 222, 223, 224, 225, 226,
+ -1, -1, 229, 230, -1, 232, -1, -1, 235, 236,
+ 237, -1, -1, 240, 241, 242, 243, 244, 245, 246,
+ 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
+ 257, 258, -1, 260, 261, 262, 263, 264, 265, 266,
+ 267, 268, 269, 270, -1, 272, 273, -1, 275, -1,
+ 277, 278, 279, 280, 281, 282, -1, 284, 285, -1,
+ -1, 288, 289, 290, -1, -1, 293, 294, 295, -1,
+ 297, -1, 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, -1, 311, 312, 313, 314, 315, 316,
+ 317, 318, -1, 320, 321, 322, 323, 324, 325, 326,
+ 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
+ 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
+ 347, 348, -1, 350, 351, -1, 353, 354, 355, 356,
+ 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
+ 367, -1, 369, 370, 371, 372, 373, -1, 375, 376,
+ 377, 378, 379, -1, 381, 382, 383, 384, -1, 386,
+ 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 399, 400, -1, 402, 403, -1, 405, -1,
+ 407, 408, 409, 410, 411, -1, 413, 414, 415, -1,
+ -1, 418, 419, 420, 421, 422, -1, 424, 425, 426,
+ 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
+ 437, 438, -1, -1, 441, 442, 443, 444, 445, 446,
+ 447, -1, 449, -1, 451, 452, 453, 454, -1, -1,
+ 457, -1, -1, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
+ 477, 478, 479, 3, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
+ 30, 31, -1, -1, -1, -1, -1, -1, -1, 39,
+ 40, 41, -1, 43, 44, 45, 46, -1, 48, 49,
+ 50, 51, 52, -1, 54, 55, -1, 57, 58, 59,
+ 60, 61, 62, 63, -1, -1, 66, 67, 68, 69,
+ 70, -1, 72, 73, 74, 75, 76, -1, -1, -1,
+ 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
+ -1, 91, 92, 93, 94, 95, 96, -1, -1, 99,
+ 100, 101, -1, -1, -1, 105, -1, -1, -1, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, -1, 119,
+ -1, 121, 122, 123, 124, 125, 126, 127, -1, 129,
+ 130, 131, 132, -1, -1, 135, 136, 137, 138, 139,
+ -1, 141, 142, 143, -1, 145, 146, 147, -1, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, -1,
+ 160, -1, 162, 163, 164, 165, 166, -1, 168, -1,
+ 170, -1, -1, -1, 174, 175, 176, 177, -1, 179,
+ 180, -1, 182, 183, 184, -1, 186, 187, 188, 189,
+ 190, -1, 192, 193, 194, 195, -1, 197, 198, 199,
+ 200, 201, 202, 203, -1, 205, -1, 207, 208, 209,
+ 210, 211, 212, 213, -1, 215, -1, 217, -1, -1,
+ 220, -1, 222, 223, 224, 225, 226, -1, -1, 229,
+ 230, -1, 232, -1, -1, 235, 236, 237, -1, -1,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, -1,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, -1, 272, 273, -1, 275, -1, 277, 278, 279,
+ 280, 281, 282, -1, 284, 285, -1, -1, 288, 289,
+ 290, -1, -1, 293, 294, 295, -1, 297, -1, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ -1, 311, 312, 313, 314, 315, 316, 317, 318, -1,
+ 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
+ 330, 331, 332, 333, 334, -1, 336, 337, 338, 339,
+ 340, 341, 342, 343, 344, 345, 346, 347, 348, -1,
+ 350, 351, -1, 353, 354, 355, 356, 357, 358, 359,
+ 360, 361, 362, 363, 364, 365, 366, 367, -1, 369,
+ 370, 371, 372, 373, -1, 375, 376, 377, 378, 379,
+ -1, 381, 382, 383, 384, -1, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
+ 400, -1, 402, 403, -1, 405, -1, 407, 408, 409,
+ 410, 411, -1, 413, 414, 415, -1, -1, 418, 419,
+ 420, 421, 422, -1, 424, 425, 426, 427, 428, 429,
+ 430, 431, -1, -1, 434, 435, 436, 437, 438, -1,
+ -1, 441, 442, 443, 444, 445, 446, 447, -1, 449,
+ -1, 451, 452, 453, 454, -1, -1, 457, -1, -1,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
+ 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
+ 23, 24, 25, 26, 27, -1, 29, 30, 31, -1,
+ -1, -1, -1, -1, -1, -1, 39, 40, 41, -1,
+ 43, 44, 45, 46, -1, 48, 49, 50, 51, 52,
+ -1, 54, 55, -1, 57, 58, 59, 60, 61, 62,
+ 63, -1, -1, 66, 67, 68, 69, 70, -1, 72,
+ 73, 74, 75, 76, -1, -1, -1, 80, 81, 82,
+ 83, 84, 85, -1, 87, 88, 89, -1, 91, 92,
+ 93, 94, 95, 96, -1, -1, 99, 100, 101, -1,
+ -1, -1, -1, -1, -1, -1, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, -1, 119, -1, 121, 122,
+ 123, 124, 125, 126, 127, -1, 129, 130, 131, 132,
+ -1, -1, 135, 136, 137, 138, 139, -1, 141, 142,
+ 143, -1, 145, 146, 147, -1, 149, 150, 151, 152,
+ 153, 154, 155, 156, 157, 158, -1, 160, -1, 162,
+ 163, 164, 165, 166, -1, 168, -1, 170, -1, -1,
+ -1, 174, 175, 176, 177, -1, 179, 180, -1, 182,
+ 183, 184, -1, 186, 187, 188, 189, 190, -1, 192,
+ 193, 194, 195, -1, 197, 198, 199, 200, 201, 202,
+ 203, -1, 205, -1, 207, 208, 209, 210, 211, 212,
+ 213, -1, 215, -1, 217, -1, -1, 220, -1, 222,
+ 223, 224, 225, 226, -1, -1, 229, 230, -1, 232,
+ -1, -1, 235, 236, 237, -1, -1, 240, 241, 242,
+ 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
+ 253, 254, 255, 256, 257, 258, -1, 260, 261, 262,
+ 263, 264, 265, 266, 267, 268, 269, 270, -1, 272,
+ 273, -1, 275, -1, 277, 278, 279, 280, 281, 282,
+ -1, 284, 285, -1, -1, 288, 289, 290, -1, -1,
+ 293, 294, 295, -1, 297, -1, 299, 300, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, -1, 311, 312,
+ 313, 314, 315, 316, 317, 318, -1, 320, 321, 322,
+ 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
+ 333, 334, -1, 336, 337, 338, 339, 340, 341, 342,
+ 343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
+ 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
+ 363, 364, 365, 366, 367, -1, 369, 370, 371, 372,
+ 373, -1, 375, 376, 377, 378, 379, -1, 381, 382,
+ 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 399, 400, -1, 402,
+ 403, -1, 405, -1, 407, 408, 409, 410, 411, -1,
+ 413, 414, 415, -1, -1, 418, 419, 420, 421, 422,
+ -1, 424, 425, 426, 427, 428, 429, 430, 431, -1,
+ -1, 434, 435, 436, 437, 438, -1, -1, 441, 442,
+ 443, 444, 445, 446, 447, -1, 449, -1, 451, 452,
+ 453, 454, -1, -1, 457, -1, -1, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
+ 473, 474, 475, 476, 477, 478, 479, 3, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
+ 26, 27, -1, 29, 30, 31, -1, -1, -1, -1,
+ -1, -1, -1, 39, 40, 41, -1, 43, 44, 45,
+ 46, -1, 48, 49, 50, 51, 52, -1, 54, 55,
+ -1, 57, 58, 59, 60, 61, 62, 63, -1, -1,
+ 66, 67, 68, 69, 70, -1, 72, 73, 74, 75,
+ 76, -1, -1, -1, 80, 81, 82, 83, 84, 85,
+ -1, 87, 88, 89, -1, 91, 92, 93, 94, 95,
+ 96, -1, -1, 99, 100, 101, -1, -1, -1, -1,
+ -1, -1, -1, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, -1, 119, -1, 121, 122, 123, 124, 125,
+ 126, 127, -1, 129, 130, 131, 132, -1, -1, 135,
+ 136, 137, 138, 139, -1, 141, 142, 143, -1, 145,
+ 146, 147, -1, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, -1, 160, -1, 162, 163, 164, 165,
+ 166, -1, 168, -1, 170, -1, -1, -1, 174, 175,
+ 176, 177, -1, 179, 180, -1, 182, 183, 184, -1,
+ 186, 187, 188, 189, 190, -1, 192, 193, 194, 195,
+ -1, 197, 198, 199, 200, 201, 202, 203, -1, 205,
+ -1, 207, 208, 209, 210, 211, 212, 213, -1, 215,
+ -1, 217, -1, -1, 220, -1, 222, 223, 224, 225,
+ 226, -1, -1, 229, 230, -1, 232, -1, -1, 235,
+ 236, 237, -1, -1, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 258, -1, 260, 261, 262, 263, 264, 265,
+ 266, 267, 268, 269, 270, -1, 272, 273, -1, 275,
+ -1, 277, 278, 279, 280, 281, 282, -1, 284, 285,
+ -1, -1, 288, 289, 290, -1, -1, 293, 294, 295,
+ -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, -1, 311, 312, 313, 314, 315,
+ 316, 317, 318, -1, 320, 321, 322, 323, 324, 325,
+ 326, 327, 328, 329, 330, 331, 332, 333, 334, -1,
+ 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
+ 346, 347, 348, -1, 350, 351, -1, 353, 354, 355,
+ 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
+ 366, 367, -1, 369, 370, 371, 372, 373, -1, 375,
+ 376, 377, 378, 379, -1, 381, 382, 383, 384, -1,
+ 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, 399, 400, -1, 402, 403, -1, 405,
+ -1, 407, 408, 409, 410, 411, -1, 413, 414, 415,
+ -1, -1, 418, 419, 420, 421, 422, -1, 424, 425,
+ 426, 427, 428, 429, 430, 431, -1, -1, 434, 435,
+ 436, 437, 438, -1, -1, 441, 442, 443, 444, 445,
+ 446, 447, -1, 449, -1, 451, 452, 453, 454, -1,
+ -1, 457, -1, -1, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
+ 476, 477, 478, 479, 3, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 20, 21, 22, 23, 24, 25, 26, 27, -1,
+ 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
+ 39, 40, 41, -1, 43, 44, 45, 46, -1, 48,
+ 49, 50, 51, 52, -1, 54, 55, -1, 57, 58,
+ 59, 60, 61, 62, 63, -1, -1, 66, 67, 68,
+ 69, 70, -1, 72, 73, 74, 75, 76, -1, -1,
+ -1, 80, 81, 82, 83, 84, 85, -1, 87, 88,
+ 89, -1, 91, 92, 93, 94, 95, 96, -1, -1,
+ 99, 100, 101, -1, -1, -1, -1, -1, -1, -1,
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, -1,
+ 119, -1, 121, 122, 123, 124, 125, 126, 127, -1,
+ 129, 130, 131, 132, -1, -1, 135, 136, 137, 138,
+ 139, -1, 141, 142, 143, -1, 145, 146, 147, -1,
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ -1, 160, -1, 162, 163, 164, 165, 166, -1, 168,
+ -1, 170, -1, -1, -1, 174, 175, 176, 177, -1,
+ 179, 180, -1, 182, 183, 184, -1, 186, 187, 188,
+ 189, 190, -1, 192, 193, 194, 195, -1, 197, 198,
+ 199, 200, 201, 202, 203, -1, 205, -1, 207, 208,
+ 209, 210, 211, 212, 213, -1, 215, -1, 217, -1,
+ -1, 220, -1, 222, 223, 224, 225, 226, -1, -1,
+ 229, 230, -1, 232, -1, -1, 235, 236, 237, -1,
+ -1, 240, 241, 242, 243, 244, 245, 246, 247, 248,
+ 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
+ 269, 270, -1, 272, 273, -1, 275, -1, 277, 278,
+ 279, 280, 281, 282, -1, 284, 285, -1, -1, 288,
+ 289, 290, -1, -1, 293, 294, 295, -1, 297, -1,
+ 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, -1, 311, 312, 313, 314, 315, 316, 317, 318,
+ -1, 320, 321, 322, 323, 324, 325, 326, 327, 328,
+ 329, 330, 331, 332, 333, 334, -1, 336, 337, 338,
+ 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
+ -1, 350, 351, -1, 353, 354, 355, 356, 357, 358,
+ 359, 360, 361, 362, 363, 364, 365, 366, 367, -1,
+ 369, 370, 371, 372, 373, -1, 375, 376, 377, 378,
+ 379, -1, 381, 382, 383, 384, -1, 386, 387, 388,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 399, 400, -1, 402, 403, -1, 405, -1, 407, 408,
+ 409, 410, 411, -1, 413, 414, 415, -1, -1, 418,
+ 419, 420, 421, 422, -1, 424, 425, 426, 427, 428,
+ 429, 430, 431, -1, -1, 434, 435, 436, 437, 438,
+ -1, -1, 441, 442, 443, 444, 445, 446, 447, -1,
+ 449, -1, 451, 452, 453, 454, -1, -1, 457, -1,
+ -1, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
+ 479, 3, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
+ 22, 23, 24, 25, 26, 27, -1, 29, 30, 31,
+ -1, -1, -1, -1, -1, -1, -1, 39, 40, 41,
+ -1, 43, 44, 45, 46, -1, 48, 49, 50, 51,
+ 52, -1, 54, 55, -1, 57, 58, 59, 60, 61,
+ 62, 63, -1, -1, 66, 67, 68, 69, 70, -1,
+ 72, 73, 74, 75, 76, -1, -1, -1, 80, 81,
+ 82, 83, 84, 85, -1, 87, 88, 89, -1, 91,
+ 92, 93, 94, 95, 96, -1, -1, 99, 100, 101,
+ -1, -1, -1, -1, -1, -1, -1, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, -1, 119, -1, 121,
+ 122, 123, 124, 125, 126, 127, -1, 129, 130, 131,
+ 132, -1, -1, 135, 136, 137, 138, 139, -1, 141,
+ 142, 143, -1, 145, 146, 147, -1, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, -1, 160, -1,
+ 162, 163, 164, 165, 166, -1, 168, -1, 170, -1,
+ -1, -1, 174, 175, 176, 177, -1, 179, 180, -1,
+ 182, 183, 184, -1, 186, 187, 188, 189, 190, -1,
+ 192, 193, 194, 195, -1, 197, 198, 199, 200, 201,
+ 202, 203, -1, 205, -1, 207, 208, 209, 210, 211,
+ 212, 213, -1, 215, -1, 217, -1, -1, 220, -1,
+ 222, 223, 224, 225, 226, -1, -1, 229, 230, -1,
+ 232, -1, -1, 235, 236, 237, -1, -1, 240, 241,
+ 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
+ 252, 253, 254, 255, 256, 257, 258, -1, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, -1,
+ 272, 273, -1, 275, -1, 277, 278, 279, 280, 281,
+ 282, -1, 284, 285, -1, -1, 288, 289, 290, -1,
+ -1, 293, 294, 295, -1, 297, -1, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, -1, 311,
+ 312, 313, 314, 315, 316, 317, 318, -1, 320, 321,
+ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
+ 332, 333, 334, -1, 336, 337, 338, 339, 340, 341,
+ 342, 343, 344, 345, 346, 347, 348, -1, 350, 351,
+ -1, 353, 354, 355, 356, 357, 358, 359, 360, 361,
+ 362, 363, 364, 365, 366, 367, -1, 369, 370, 371,
+ 372, 373, -1, 375, 376, 377, 378, 379, -1, 381,
+ 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 399, 400, -1,
+ 402, 403, -1, 405, -1, 407, 408, 409, 410, 411,
+ -1, 413, 414, 415, -1, -1, 418, 419, 420, 421,
+ 422, -1, 424, 425, 426, 427, 428, 429, 430, 431,
+ -1, -1, 434, 435, 436, 437, 438, -1, -1, 441,
+ 442, 443, 444, 445, 446, 447, -1, 449, -1, 451,
+ 452, 453, 454, -1, -1, 457, -1, -1, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
+ 472, 473, 474, 475, 476, 477, 478, 479, 3, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
+ 25, 26, 27, -1, 29, 30, 31, -1, -1, -1,
+ -1, -1, -1, -1, 39, 40, 41, -1, 43, 44,
+ 45, 46, -1, 48, 49, 50, 51, 52, -1, 54,
+ 55, -1, 57, 58, 59, 60, 61, 62, 63, -1,
+ -1, 66, 67, 68, 69, 70, -1, 72, 73, 74,
+ 75, 76, -1, -1, -1, 80, 81, 82, 83, 84,
+ 85, -1, 87, 88, 89, -1, 91, 92, 93, 94,
+ 95, 96, -1, -1, 99, 100, 101, -1, -1, -1,
+ -1, -1, -1, -1, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, -1, 119, -1, 121, 122, 123, 124,
+ 125, 126, 127, -1, 129, 130, 131, 132, -1, -1,
+ 135, 136, 137, 138, 139, -1, 141, 142, 143, -1,
+ 145, 146, 147, -1, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, -1, 160, -1, 162, 163, 164,
+ 165, 166, -1, 168, -1, 170, -1, -1, -1, 174,
+ 175, 176, 177, -1, 179, 180, -1, 182, 183, 184,
+ -1, 186, 187, 188, 189, 190, -1, 192, 193, 194,
+ 195, -1, 197, 198, 199, 200, 201, 202, 203, -1,
+ 205, -1, 207, 208, 209, 210, 211, 212, 213, -1,
+ 215, -1, 217, -1, -1, 220, -1, 222, 223, 224,
+ 225, 226, -1, -1, 229, 230, -1, 232, -1, -1,
+ 235, 236, 237, -1, -1, 240, 241, 242, 243, 244,
+ 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+ 255, 256, 257, 258, -1, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, -1, 272, 273, -1,
+ 275, -1, 277, 278, 279, 280, 281, 282, -1, 284,
+ 285, -1, -1, 288, 289, 290, -1, -1, 293, 294,
+ 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, -1, 311, 312, 313, 314,
+ 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ -1, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, -1, 350, 351, -1, 353, 354,
+ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
+ 365, 366, 367, -1, 369, 370, 371, 372, 373, -1,
+ 375, 376, 377, 378, 379, -1, 381, 382, 383, 384,
+ -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 399, 400, -1, 402, 403, -1,
+ 405, -1, 407, 408, 409, 410, 411, -1, 413, 414,
+ 415, -1, -1, 418, 419, 420, 421, 422, -1, 424,
+ 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
+ 435, 436, 437, 438, -1, -1, 441, 442, 443, 444,
+ 445, 446, 447, -1, 449, -1, 451, 452, 453, 454,
+ -1, -1, 457, -1, -1, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
+ 475, 476, 477, 478, 479, 3, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
+ -1, 29, 30, 31, -1, -1, -1, -1, -1, -1,
+ -1, 39, 40, 41, -1, 43, 44, 45, 46, -1,
+ 48, 49, 50, 51, 52, -1, 54, 55, -1, 57,
+ 58, 59, 60, 61, 62, 63, -1, -1, 66, 67,
+ 68, 69, 70, -1, 72, 73, 74, 75, 76, -1,
+ -1, -1, 80, 81, 82, 83, 84, 85, -1, 87,
+ 88, 89, -1, 91, 92, 93, 94, 95, 96, -1,
+ -1, 99, 100, 101, -1, -1, -1, -1, -1, -1,
+ -1, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ -1, 119, -1, 121, 122, 123, 124, 125, 126, 127,
+ -1, 129, 130, 131, 132, -1, -1, 135, 136, 137,
+ 138, 139, -1, 141, 142, 143, -1, 145, 146, 147,
+ -1, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, -1, 160, -1, 162, 163, 164, 165, 166, -1,
+ 168, -1, 170, -1, -1, -1, 174, 175, 176, 177,
+ -1, 179, 180, -1, 182, 183, 184, -1, 186, 187,
+ 188, 189, 190, -1, 192, 193, 194, 195, -1, 197,
+ 198, 199, 200, 201, 202, 203, -1, 205, -1, 207,
+ 208, 209, 210, 211, 212, 213, -1, 215, -1, 217,
+ -1, -1, 220, -1, 222, 223, 224, 225, 226, -1,
+ -1, 229, 230, -1, 232, -1, -1, 235, 236, 237,
+ -1, -1, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
+ 258, -1, 260, 261, 262, 263, 264, 265, 266, 267,
+ 268, 269, 270, -1, 272, 273, -1, 275, -1, 277,
+ 278, 279, 280, 281, 282, -1, 284, 285, -1, -1,
+ 288, 289, 290, -1, -1, 293, 294, 295, -1, 297,
+ -1, 299, 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, -1, 311, 312, 313, 314, 315, 316, 317,
+ 318, -1, 320, 321, 322, 323, 324, 325, 326, 327,
+ 328, 329, 330, 331, 332, 333, 334, -1, 336, 337,
+ 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
+ 348, -1, 350, 351, -1, 353, 354, 355, 356, 357,
+ 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
+ -1, 369, 370, 371, 372, 373, -1, 375, 376, 377,
+ 378, 379, -1, 381, 382, 383, 384, -1, 386, 387,
+ 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 399, 400, -1, 402, 403, -1, 405, -1, 407,
+ 408, 409, 410, 411, -1, 413, 414, 415, -1, -1,
+ 418, 419, 420, 421, 422, -1, 424, 425, 426, 427,
+ 428, 429, 430, 431, -1, -1, 434, 435, 436, 437,
+ 438, -1, -1, 441, 442, 443, 444, 445, 446, 447,
+ -1, 449, -1, 451, 452, 453, 454, -1, -1, 457,
+ -1, -1, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
+ 478, 479, 3, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
+ 21, 22, 23, 24, 25, 26, 27, -1, 29, 30,
+ 31, -1, -1, -1, -1, -1, -1, -1, 39, 40,
+ 41, -1, 43, 44, 45, 46, -1, 48, 49, 50,
+ 51, 52, -1, 54, 55, -1, 57, 58, 59, 60,
+ 61, 62, 63, -1, -1, 66, 67, 68, 69, 70,
+ -1, 72, 73, 74, 75, 76, -1, -1, -1, 80,
+ 81, 82, 83, 84, 85, -1, 87, 88, 89, -1,
+ 91, 92, 93, 94, 95, 96, -1, -1, 99, 100,
+ 101, -1, -1, -1, -1, -1, -1, -1, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, -1, 119, -1,
+ 121, 122, 123, 124, 125, 126, 127, -1, 129, 130,
+ 131, 132, -1, -1, 135, 136, 137, 138, 139, -1,
+ 141, 142, 143, -1, 145, 146, 147, -1, 149, 150,
+ 151, 152, 153, 154, 155, 156, 157, 158, -1, 160,
+ -1, 162, 163, 164, 165, 166, -1, 168, -1, 170,
+ -1, -1, -1, 174, 175, 176, 177, -1, 179, 180,
+ -1, 182, 183, 184, -1, 186, 187, 188, 189, 190,
+ -1, 192, 193, 194, 195, -1, 197, 198, 199, 200,
+ 201, 202, 203, -1, 205, -1, 207, 208, 209, 210,
+ 211, 212, 213, -1, 215, -1, 217, -1, -1, 220,
+ -1, 222, 223, 224, 225, 226, -1, -1, 229, 230,
+ -1, 232, -1, -1, 235, 236, 237, -1, -1, 240,
+ 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
+ 251, 252, 253, 254, 255, 256, 257, 258, -1, 260,
+ 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
+ -1, 272, 273, -1, 275, -1, 277, 278, 279, 280,
+ 281, 282, -1, 284, 285, -1, -1, 288, 289, 290,
+ -1, -1, 293, 294, 295, -1, 297, -1, 299, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, -1,
+ 311, 312, 313, 314, 315, 316, 317, 318, -1, 320,
+ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 334, -1, 336, 337, 338, 339, 340,
+ 341, 342, 343, 344, 345, 346, 347, 348, -1, 350,
+ 351, -1, 353, 354, 355, 356, 357, 358, 359, 360,
+ 361, 362, 363, 364, 365, 366, 367, -1, 369, 370,
+ 371, 372, 373, -1, 375, 376, 377, 378, 379, -1,
+ 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
+ -1, 402, 403, -1, 405, -1, 407, 408, 409, 410,
+ 411, -1, 413, 414, 415, -1, -1, 418, 419, 420,
+ 421, 422, -1, 424, 425, 426, 427, 428, 429, 430,
+ 431, -1, -1, 434, 435, 436, 437, 438, -1, -1,
+ 441, 442, 443, 444, 445, 446, 447, -1, 449, -1,
+ 451, 452, 453, 454, -1, -1, 457, -1, -1, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
+ 471, 472, 473, 474, 475, 476, 477, 478, 479, 3,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
+ 24, 25, 26, 27, -1, 29, 30, 31, -1, -1,
+ -1, -1, -1, -1, -1, 39, 40, 41, -1, 43,
+ 44, 45, 46, -1, 48, 49, 50, 51, 52, -1,
+ 54, 55, -1, 57, 58, 59, 60, 61, 62, 63,
+ -1, -1, 66, 67, 68, 69, 70, -1, 72, 73,
+ 74, 75, 76, -1, -1, -1, 80, 81, 82, 83,
+ 84, 85, -1, 87, 88, 89, -1, 91, 92, 93,
+ 94, 95, 96, -1, -1, 99, 100, 101, -1, -1,
+ -1, -1, -1, -1, -1, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, -1, 119, -1, 121, 122, 123,
+ 124, 125, 126, 127, -1, 129, 130, 131, 132, -1,
+ -1, 135, 136, 137, 138, 139, -1, 141, 142, 143,
+ -1, 145, 146, 147, -1, 149, 150, 151, 152, 153,
+ 154, 155, 156, 157, 158, -1, 160, -1, 162, 163,
+ 164, 165, 166, -1, 168, -1, 170, -1, -1, -1,
+ 174, 175, 176, 177, -1, 179, 180, -1, 182, 183,
+ 184, -1, 186, 187, 188, 189, 190, -1, 192, 193,
+ 194, 195, -1, 197, 198, 199, 200, 201, 202, 203,
+ -1, 205, -1, 207, 208, 209, 210, 211, 212, 213,
+ -1, 215, -1, 217, -1, -1, 220, -1, 222, 223,
+ 224, 225, 226, -1, -1, 229, 230, -1, 232, -1,
+ -1, 235, 236, 237, -1, -1, 240, 241, 242, 243,
+ 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 258, -1, 260, 261, 262, 263,
+ 264, 265, 266, 267, 268, 269, 270, -1, 272, 273,
+ -1, 275, -1, 277, 278, 279, 280, 281, 282, -1,
+ 284, 285, -1, -1, 288, 289, 290, -1, -1, 293,
+ 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, -1, 311, 312, 313,
+ 314, 315, 316, 317, 318, -1, 320, 321, 322, 323,
+ 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
+ 334, -1, 336, 337, 338, 339, 340, 341, 342, 343,
+ 344, 345, 346, 347, 348, -1, 350, 351, -1, 353,
+ 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
+ 364, 365, 366, 367, -1, 369, 370, 371, 372, 373,
+ -1, 375, 376, 377, 378, 379, -1, 381, 382, 383,
+ 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 399, 400, -1, 402, 403,
+ -1, 405, -1, 407, 408, 409, 410, 411, -1, 413,
+ 414, 415, -1, -1, 418, 419, 420, 421, 422, -1,
+ 424, 425, 426, 427, 428, 429, 430, 431, -1, -1,
+ 434, 435, 436, 437, 438, -1, -1, 441, 442, 443,
+ 444, 445, 446, 447, -1, 449, -1, 451, 452, 453,
+ 454, -1, -1, 457, -1, -1, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
+ 474, 475, 476, 477, 478, 479, 3, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
+ 27, -1, 29, 30, 31, -1, -1, -1, -1, -1,
+ -1, -1, 39, 40, 41, -1, 43, 44, 45, 46,
+ -1, 48, 49, 50, 51, 52, -1, 54, 55, -1,
+ 57, 58, 59, 60, 61, 62, 63, -1, -1, 66,
+ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76,
+ -1, -1, -1, 80, 81, 82, 83, 84, 85, -1,
+ 87, 88, 89, -1, 91, 92, 93, 94, 95, 96,
+ -1, -1, 99, 100, 101, -1, -1, -1, -1, -1,
+ -1, -1, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, -1, 119, -1, 121, 122, 123, 124, 125, 126,
+ 127, -1, 129, 130, 131, 132, -1, -1, 135, 136,
+ 137, 138, 139, -1, 141, 142, 143, -1, 145, 146,
+ 147, -1, 149, 150, 151, 152, 153, 154, 155, 156,
+ 157, 158, -1, 160, -1, 162, 163, 164, 165, 166,
+ -1, 168, -1, 170, -1, -1, -1, 174, 175, 176,
+ 177, -1, 179, 180, -1, 182, 183, 184, -1, 186,
+ 187, 188, 189, 190, -1, 192, 193, 194, 195, -1,
+ 197, 198, 199, 200, 201, 202, 203, -1, 205, -1,
+ 207, 208, 209, 210, 211, 212, 213, -1, 215, -1,
+ 217, -1, -1, 220, -1, 222, 223, 224, 225, 226,
+ -1, -1, 229, 230, -1, 232, -1, -1, 235, 236,
+ 237, -1, -1, 240, 241, 242, 243, 244, 245, 246,
+ 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
+ 257, 258, -1, 260, 261, 262, 263, 264, 265, 266,
+ 267, 268, 269, 270, -1, 272, 273, -1, 275, -1,
+ 277, 278, 279, 280, 281, 282, -1, 284, 285, -1,
+ -1, 288, 289, 290, -1, -1, 293, 294, 295, -1,
+ 297, -1, 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, -1, 311, 312, 313, 314, 315, 316,
+ 317, 318, -1, 320, 321, 322, 323, 324, 325, 326,
+ 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
+ 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
+ 347, 348, -1, 350, 351, -1, 353, 354, 355, 356,
+ 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
+ 367, -1, 369, 370, 371, 372, 373, -1, 375, 376,
+ 377, 378, 379, -1, 381, 382, 383, 384, -1, 386,
+ 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 399, 400, -1, 402, 403, -1, 405, -1,
+ 407, 408, 409, 410, 411, -1, 413, 414, 415, -1,
+ -1, 418, 419, 420, 421, 422, -1, 424, 425, 426,
+ 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
+ 437, 438, -1, -1, 441, 442, 443, 444, 445, 446,
+ 447, -1, 449, -1, 451, 452, 453, 454, -1, -1,
+ 457, -1, -1, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
+ 477, 478, 479, 3, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
+ 30, 31, -1, -1, -1, -1, -1, -1, -1, 39,
+ 40, 41, -1, 43, 44, 45, 46, -1, 48, 49,
+ 50, 51, 52, -1, 54, 55, -1, 57, 58, 59,
+ 60, 61, 62, 63, -1, -1, 66, 67, 68, 69,
+ 70, -1, 72, 73, 74, 75, 76, -1, -1, -1,
+ 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
+ -1, 91, 92, 93, 94, 95, 96, -1, -1, 99,
+ 100, 101, -1, -1, -1, -1, -1, -1, -1, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, -1, 119,
+ -1, 121, 122, 123, 124, 125, 126, 127, -1, 129,
+ 130, 131, 132, -1, -1, 135, 136, 137, 138, 139,
+ -1, 141, 142, 143, -1, 145, 146, 147, -1, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, -1,
+ 160, -1, 162, 163, 164, 165, 166, -1, 168, -1,
+ 170, -1, -1, -1, 174, 175, 176, 177, -1, 179,
+ 180, -1, 182, 183, 184, -1, 186, 187, 188, 189,
+ 190, -1, 192, 193, 194, 195, -1, 197, 198, 199,
+ 200, 201, 202, 203, -1, 205, -1, 207, 208, 209,
+ 210, 211, 212, 213, -1, 215, -1, 217, -1, -1,
+ 220, -1, 222, 223, 224, 225, 226, -1, -1, 229,
+ 230, -1, 232, -1, -1, 235, 236, 237, -1, -1,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, -1,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, -1, 272, 273, -1, 275, -1, 277, 278, 279,
+ 280, 281, 282, -1, 284, 285, -1, -1, 288, 289,
+ 290, -1, -1, 293, 294, 295, -1, 297, -1, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ -1, 311, 312, 313, 314, 315, 316, 317, 318, -1,
+ 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
+ 330, 331, 332, 333, 334, -1, 336, 337, 338, 339,
+ 340, 341, 342, 343, 344, 345, 346, 347, 348, -1,
+ 350, 351, -1, 353, 354, 355, 356, 357, 358, 359,
+ 360, 361, 362, 363, 364, 365, 366, 367, -1, 369,
+ 370, 371, 372, 373, -1, 375, 376, 377, 378, 379,
+ -1, 381, 382, 383, 384, -1, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
+ 400, -1, 402, 403, -1, 405, -1, 407, 408, 409,
+ 410, 411, -1, 413, 414, 415, -1, -1, 418, 419,
+ 420, 421, 422, -1, 424, 425, 426, 427, 428, 429,
+ 430, 431, -1, -1, 434, 435, 436, 437, 438, -1,
+ -1, 441, 442, 443, 444, 445, 446, 447, -1, 449,
+ -1, 451, 452, 453, 454, -1, -1, 457, -1, -1,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
+ 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
+ 23, 24, 25, 26, 27, -1, 29, 30, 31, -1,
+ -1, -1, -1, -1, -1, -1, 39, 40, 41, -1,
+ 43, 44, 45, 46, -1, 48, 49, 50, 51, 52,
+ -1, 54, 55, -1, 57, 58, 59, 60, 61, 62,
+ 63, -1, -1, 66, 67, 68, 69, 70, -1, 72,
+ 73, 74, 75, 76, -1, -1, -1, 80, 81, 82,
+ 83, 84, 85, -1, 87, 88, 89, -1, 91, 92,
+ 93, 94, 95, 96, -1, -1, 99, 100, 101, -1,
+ -1, -1, -1, -1, -1, -1, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, -1, 119, -1, 121, 122,
+ 123, 124, 125, 126, 127, -1, 129, 130, 131, 132,
+ -1, -1, 135, 136, 137, 138, 139, -1, 141, 142,
+ 143, -1, 145, 146, 147, -1, 149, 150, 151, 152,
+ 153, 154, 155, 156, 157, 158, -1, 160, -1, 162,
+ 163, 164, 165, 166, -1, 168, -1, 170, -1, -1,
+ -1, 174, 175, 176, 177, -1, 179, 180, -1, 182,
+ 183, 184, -1, 186, 187, 188, 189, 190, -1, 192,
+ 193, 194, 195, -1, 197, 198, 199, 200, 201, 202,
+ 203, -1, 205, -1, 207, 208, 209, 210, 211, 212,
+ 213, -1, 215, -1, 217, -1, -1, 220, -1, 222,
+ 223, 224, 225, 226, -1, -1, 229, 230, -1, 232,
+ -1, -1, 235, 236, 237, -1, -1, 240, 241, 242,
+ 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
+ 253, 254, 255, 256, 257, 258, -1, 260, 261, 262,
+ 263, 264, 265, 266, 267, 268, 269, 270, -1, 272,
+ 273, -1, 275, -1, 277, 278, 279, 280, 281, 282,
+ -1, 284, 285, -1, -1, 288, 289, 290, -1, -1,
+ 293, 294, 295, -1, 297, -1, 299, 300, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, -1, 311, 312,
+ 313, 314, 315, 316, 317, 318, -1, 320, 321, 322,
+ 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
+ 333, 334, -1, 336, 337, 338, 339, 340, 341, 342,
+ 343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
+ 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
+ 363, 364, 365, 366, 367, -1, 369, 370, 371, 372,
+ 373, -1, 375, 376, 377, 378, 379, -1, 381, 382,
+ 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 399, 400, -1, 402,
+ 403, -1, 405, -1, 407, 408, 409, 410, 411, -1,
+ 413, 414, 415, -1, -1, 418, 419, 420, 421, 422,
+ -1, 424, 425, 426, 427, 428, 429, 430, 431, -1,
+ -1, 434, 435, 436, 437, 438, -1, -1, 441, 442,
+ 443, 444, 445, 446, 447, -1, 449, -1, 451, 452,
+ 453, 454, -1, -1, 457, -1, -1, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
+ 473, 474, 475, 476, 477, 478, 479, 3, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
+ 26, 27, -1, 29, 30, 31, -1, -1, -1, -1,
+ -1, -1, -1, 39, 40, 41, -1, 43, 44, 45,
+ 46, -1, 48, 49, 50, 51, 52, -1, 54, 55,
+ -1, 57, 58, 59, 60, 61, 62, 63, -1, -1,
+ 66, 67, 68, 69, 70, -1, 72, 73, 74, 75,
+ 76, -1, -1, -1, 80, 81, 82, 83, 84, 85,
+ -1, 87, 88, 89, -1, 91, 92, 93, 94, 95,
+ 96, -1, -1, 99, 100, 101, -1, -1, -1, -1,
+ -1, -1, -1, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, -1, 119, -1, 121, 122, 123, 124, 125,
+ 126, 127, -1, 129, 130, 131, 132, -1, -1, 135,
+ 136, 137, 138, 139, -1, 141, 142, 143, -1, 145,
+ 146, 147, -1, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, -1, 160, -1, 162, 163, 164, 165,
+ 166, -1, 168, -1, 170, -1, -1, -1, 174, 175,
+ 176, 177, -1, 179, 180, -1, 182, 183, 184, -1,
+ 186, 187, 188, 189, 190, -1, 192, 193, 194, 195,
+ -1, 197, 198, 199, 200, 201, 202, 203, -1, 205,
+ -1, 207, 208, 209, 210, 211, 212, 213, -1, 215,
+ -1, 217, -1, -1, 220, -1, 222, 223, 224, 225,
+ 226, -1, -1, 229, 230, -1, 232, -1, -1, 235,
+ 236, 237, -1, -1, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 258, -1, 260, 261, 262, 263, 264, 265,
+ 266, 267, 268, 269, 270, -1, 272, 273, -1, 275,
+ -1, 277, 278, 279, 280, 281, 282, -1, 284, 285,
+ -1, -1, 288, 289, 290, -1, -1, 293, 294, 295,
+ -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, -1, 311, 312, 313, 314, 315,
+ 316, 317, 318, -1, 320, 321, 322, 323, 324, 325,
+ 326, 327, 328, 329, 330, 331, 332, 333, 334, -1,
+ 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
+ 346, 347, 348, -1, 350, 351, -1, 353, 354, 355,
+ 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
+ 366, 367, -1, 369, 370, 371, 372, 373, -1, 375,
+ 376, 377, 378, 379, -1, 381, 382, 383, 384, -1,
+ 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, 399, 400, -1, 402, 403, -1, 405,
+ -1, 407, 408, 409, 410, 411, -1, 413, 414, 415,
+ -1, -1, 418, 419, 420, 421, 422, -1, 424, 425,
+ 426, 427, 428, 429, 430, 431, -1, -1, 434, 435,
+ 436, 437, 438, -1, -1, 441, 442, 443, 444, 445,
+ 446, 447, -1, 449, -1, 451, 452, 453, 454, -1,
+ -1, 457, -1, -1, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
+ 476, 477, 478, 479, 3, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 20, 21, 22, 23, 24, 25, 26, 27, -1,
+ 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
+ 39, 40, 41, -1, 43, 44, 45, 46, -1, 48,
+ 49, 50, 51, 52, -1, 54, 55, -1, 57, 58,
+ 59, 60, 61, 62, 63, -1, -1, 66, 67, 68,
+ 69, 70, -1, 72, 73, 74, 75, 76, -1, -1,
+ -1, 80, 81, 82, 83, 84, 85, -1, 87, 88,
+ 89, -1, 91, 92, 93, 94, 95, 96, -1, -1,
+ 99, 100, 101, -1, -1, -1, -1, -1, -1, -1,
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, -1,
+ 119, -1, 121, 122, 123, 124, 125, 126, 127, -1,
+ 129, 130, 131, 132, -1, -1, 135, 136, 137, 138,
+ 139, -1, 141, 142, 143, -1, 145, 146, 147, -1,
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ -1, 160, -1, 162, 163, 164, 165, 166, -1, 168,
+ -1, 170, -1, -1, -1, 174, 175, 176, 177, -1,
+ 179, 180, -1, 182, 183, 184, -1, 186, 187, 188,
+ 189, 190, -1, 192, 193, 194, 195, -1, 197, 198,
+ 199, 200, 201, 202, 203, -1, 205, -1, 207, 208,
+ 209, 210, 211, 212, 213, -1, 215, -1, 217, -1,
+ -1, 220, -1, 222, 223, 224, 225, 226, -1, -1,
+ 229, 230, -1, 232, -1, -1, 235, 236, 237, -1,
+ -1, 240, 241, 242, 243, 244, 245, 246, 247, 248,
+ 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
+ 269, 270, -1, 272, 273, -1, 275, -1, 277, 278,
+ 279, 280, 281, 282, -1, 284, 285, -1, -1, 288,
+ 289, 290, -1, -1, 293, 294, 295, -1, 297, -1,
+ 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, -1, 311, 312, 313, 314, 315, 316, 317, 318,
+ -1, 320, 321, 322, 323, 324, 325, 326, 327, 328,
+ 329, 330, 331, 332, 333, 334, -1, 336, 337, 338,
+ 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
+ -1, 350, 351, -1, 353, 354, 355, 356, 357, 358,
+ 359, 360, 361, 362, 363, 364, 365, 366, 367, -1,
+ 369, 370, 371, 372, 373, -1, 375, 376, 377, 378,
+ 379, -1, 381, 382, 383, 384, -1, 386, 387, 388,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 399, 400, -1, 402, 403, -1, 405, -1, 407, 408,
+ 409, 410, 411, -1, 413, 414, 415, -1, -1, 418,
+ 419, 420, 421, 422, -1, 424, 425, 426, 427, 428,
+ 429, 430, 431, -1, -1, 434, 435, 436, 437, 438,
+ -1, -1, 441, 442, 443, 444, 445, 446, 447, -1,
+ 449, -1, 451, 452, 453, 454, -1, -1, 457, -1,
+ -1, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
+ 479, 3, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
+ 22, 23, 24, 25, 26, 27, -1, 29, 30, 31,
+ -1, -1, -1, -1, -1, -1, -1, 39, 40, 41,
+ -1, 43, 44, 45, 46, -1, 48, 49, 50, 51,
+ 52, -1, 54, 55, -1, 57, 58, 59, 60, 61,
+ 62, 63, -1, -1, 66, 67, 68, 69, 70, -1,
+ 72, 73, 74, 75, 76, -1, -1, -1, 80, 81,
+ 82, 83, 84, 85, -1, 87, 88, 89, -1, 91,
+ 92, 93, 94, 95, 96, -1, -1, 99, 100, 101,
+ -1, -1, -1, -1, -1, -1, -1, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, -1, 119, -1, 121,
+ 122, 123, 124, 125, 126, 127, -1, 129, 130, 131,
+ 132, -1, -1, 135, 136, 137, 138, 139, -1, 141,
+ 142, 143, -1, 145, 146, 147, -1, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, -1, 160, -1,
+ 162, 163, 164, 165, 166, -1, 168, -1, 170, -1,
+ -1, -1, 174, 175, 176, 177, -1, 179, 180, -1,
+ 182, 183, 184, -1, 186, 187, 188, 189, 190, -1,
+ 192, 193, 194, 195, -1, 197, 198, 199, 200, 201,
+ 202, 203, -1, 205, -1, 207, 208, 209, 210, 211,
+ 212, 213, -1, 215, -1, 217, -1, -1, 220, -1,
+ 222, 223, 224, 225, 226, -1, -1, 229, 230, -1,
+ 232, -1, -1, 235, 236, 237, -1, -1, 240, 241,
+ 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
+ 252, 253, 254, 255, 256, 257, 258, -1, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, -1,
+ 272, 273, -1, 275, -1, 277, 278, 279, 280, 281,
+ 282, -1, 284, 285, -1, -1, 288, 289, 290, -1,
+ -1, 293, 294, 295, -1, 297, -1, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, -1, 311,
+ 312, 313, 314, 315, 316, 317, 318, -1, 320, 321,
+ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
+ 332, 333, 334, -1, 336, 337, 338, 339, 340, 341,
+ 342, 343, 344, 345, 346, 347, 348, -1, 350, 351,
+ -1, 353, 354, 355, 356, 357, 358, 359, 360, 361,
+ 362, 363, 364, 365, 366, 367, -1, 369, 370, 371,
+ 372, 373, -1, 375, 376, 377, 378, 379, -1, 381,
+ 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 399, 400, -1,
+ 402, 403, -1, 405, -1, 407, 408, 409, 410, 411,
+ -1, 413, 414, 415, -1, -1, 418, 419, 420, 421,
+ 422, -1, 424, 425, 426, 427, 428, 429, 430, 431,
+ -1, -1, 434, 435, 436, 437, 438, -1, -1, 441,
+ 442, 443, 444, 445, 446, 447, -1, 449, -1, 451,
+ 452, 453, 454, -1, -1, 457, -1, -1, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
+ 472, 473, 474, 475, 476, 477, 478, 479, 3, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
+ 25, 26, 27, -1, 29, 30, 31, -1, -1, -1,
+ -1, -1, -1, -1, 39, 40, 41, -1, 43, 44,
+ 45, 46, -1, 48, 49, 50, 51, 52, -1, 54,
+ 55, -1, 57, 58, 59, 60, 61, 62, 63, -1,
+ -1, 66, 67, 68, 69, 70, -1, 72, 73, 74,
+ 75, 76, -1, -1, -1, 80, 81, 82, 83, 84,
+ 85, -1, 87, 88, 89, -1, 91, 92, 93, 94,
+ 95, 96, -1, -1, 99, 100, 101, -1, -1, -1,
+ -1, -1, -1, -1, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, -1, 119, -1, 121, 122, 123, 124,
+ 125, 126, 127, -1, 129, 130, 131, 132, -1, -1,
+ 135, 136, 137, 138, 139, -1, 141, 142, 143, -1,
+ 145, 146, 147, -1, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, -1, 160, -1, 162, 163, 164,
+ 165, 166, -1, 168, -1, 170, -1, -1, -1, 174,
+ 175, 176, 177, -1, 179, 180, -1, 182, 183, 184,
+ -1, 186, 187, 188, 189, 190, -1, 192, 193, 194,
+ 195, -1, 197, 198, 199, 200, 201, 202, 203, -1,
+ 205, -1, 207, 208, 209, 210, 211, 212, 213, -1,
+ 215, -1, 217, -1, -1, 220, -1, 222, 223, 224,
+ 225, 226, -1, -1, 229, 230, -1, 232, -1, -1,
+ 235, 236, 237, -1, -1, 240, 241, 242, 243, 244,
+ 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+ 255, 256, 257, 258, -1, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, -1, 272, 273, -1,
+ 275, -1, 277, 278, 279, 280, 281, 282, -1, 284,
+ 285, -1, -1, 288, 289, 290, -1, -1, 293, 294,
+ 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, -1, 311, 312, 313, 314,
+ 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ -1, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, -1, 350, 351, -1, 353, 354,
+ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
+ 365, 366, 367, -1, 369, 370, 371, 372, 373, -1,
+ 375, 376, 377, 378, 379, -1, 381, 382, 383, 384,
+ -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 399, 400, -1, 402, 403, -1,
+ 405, -1, 407, 408, 409, 410, 411, -1, 413, 414,
+ 415, -1, -1, 418, 419, 420, 421, 422, -1, 424,
+ 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
+ 435, 436, 437, 438, -1, -1, 441, 442, 443, 444,
+ 445, 446, 447, -1, 449, -1, 451, 452, 453, 454,
+ -1, -1, 457, -1, -1, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
+ 475, 476, 477, 478, 479, 3, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
+ -1, 29, 30, 31, -1, -1, -1, -1, -1, -1,
+ -1, 39, 40, 41, -1, 43, 44, 45, 46, -1,
+ 48, 49, 50, 51, 52, -1, 54, 55, -1, 57,
+ 58, 59, 60, 61, 62, 63, -1, -1, 66, 67,
+ 68, 69, 70, -1, 72, 73, 74, 75, 76, -1,
+ -1, -1, 80, 81, 82, 83, 84, 85, -1, 87,
+ 88, 89, -1, 91, 92, 93, 94, 95, 96, -1,
+ -1, 99, 100, 101, -1, -1, -1, -1, -1, -1,
+ -1, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ -1, 119, -1, 121, 122, 123, 124, 125, 126, 127,
+ -1, 129, 130, 131, 132, -1, -1, 135, 136, 137,
+ 138, 139, -1, 141, 142, 143, -1, 145, 146, 147,
+ -1, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, -1, 160, -1, 162, 163, 164, 165, 166, -1,
+ 168, -1, 170, -1, -1, -1, 174, 175, 176, 177,
+ -1, 179, 180, -1, 182, 183, 184, -1, 186, 187,
+ 188, 189, 190, -1, 192, 193, 194, 195, -1, 197,
+ 198, 199, 200, 201, 202, 203, -1, 205, -1, 207,
+ 208, 209, 210, 211, 212, 213, -1, 215, -1, 217,
+ -1, -1, 220, -1, 222, 223, 224, 225, 226, -1,
+ -1, 229, 230, -1, 232, -1, -1, 235, 236, 237,
+ -1, -1, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
+ 258, -1, 260, 261, 262, 263, 264, 265, 266, 267,
+ 268, 269, 270, -1, 272, 273, -1, 275, -1, 277,
+ 278, 279, 280, 281, 282, -1, 284, 285, -1, -1,
+ 288, 289, 290, -1, -1, 293, 294, 295, -1, 297,
+ -1, 299, 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, -1, 311, 312, 313, 314, 315, 316, 317,
+ 318, -1, 320, 321, 322, 323, 324, 325, 326, 327,
+ 328, 329, 330, 331, 332, 333, 334, -1, 336, 337,
+ 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
+ 348, -1, 350, 351, -1, 353, 354, 355, 356, 357,
+ 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
+ -1, 369, 370, 371, 372, 373, -1, 375, 376, 377,
+ 378, 379, -1, 381, 382, 383, 384, -1, 386, 387,
+ 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 399, 400, -1, 402, 403, -1, 405, -1, 407,
+ 408, 409, 410, 411, -1, 413, 414, 415, -1, -1,
+ 418, 419, 420, 421, 422, -1, 424, 425, 426, 427,
+ 428, 429, 430, 431, -1, -1, 434, 435, 436, 437,
+ 438, -1, -1, 441, 442, 443, 444, 445, 446, 447,
+ -1, 449, -1, 451, 452, 453, 454, -1, -1, 457,
+ -1, -1, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
+ 478, 479, 3, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
+ 21, 22, 23, 24, 25, 26, 27, -1, 29, 30,
+ 31, -1, -1, -1, -1, -1, -1, -1, 39, 40,
+ 41, -1, 43, 44, 45, 46, -1, 48, 49, 50,
+ 51, 52, -1, 54, 55, -1, 57, 58, 59, 60,
+ 61, 62, 63, -1, -1, 66, 67, 68, 69, 70,
+ -1, 72, 73, 74, 75, 76, -1, -1, -1, 80,
+ 81, 82, 83, 84, 85, -1, 87, 88, 89, -1,
+ 91, 92, 93, 94, 95, 96, -1, -1, 99, 100,
+ 101, -1, -1, -1, -1, -1, -1, -1, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, -1, 119, -1,
+ 121, 122, 123, 124, 125, 126, 127, -1, 129, 130,
+ 131, 132, -1, -1, 135, 136, 137, 138, 139, -1,
+ 141, 142, 143, -1, 145, 146, 147, -1, 149, 150,
+ 151, 152, 153, 154, 155, 156, 157, 158, -1, 160,
+ -1, 162, 163, 164, 165, 166, -1, 168, -1, 170,
+ -1, -1, -1, 174, 175, 176, 177, -1, 179, 180,
+ -1, 182, 183, 184, -1, 186, 187, 188, 189, 190,
+ -1, 192, 193, 194, 195, -1, 197, 198, 199, 200,
+ 201, 202, 203, -1, 205, -1, 207, 208, 209, 210,
+ 211, 212, 213, -1, 215, -1, 217, -1, -1, 220,
+ -1, 222, 223, 224, 225, 226, -1, -1, 229, 230,
+ -1, 232, -1, -1, 235, 236, 237, -1, -1, 240,
+ 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
+ 251, 252, 253, 254, 255, 256, 257, 258, -1, 260,
+ 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
+ -1, 272, 273, -1, 275, -1, 277, 278, 279, 280,
+ 281, 282, -1, 284, 285, -1, -1, 288, 289, 290,
+ -1, -1, 293, 294, 295, -1, 297, -1, 299, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, -1,
+ 311, 312, 313, 314, 315, 316, 317, 318, -1, 320,
+ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 334, -1, 336, 337, 338, 339, 340,
+ 341, 342, 343, 344, 345, 346, 347, 348, -1, 350,
+ 351, -1, 353, 354, 355, 356, 357, 358, 359, 360,
+ 361, 362, 363, 364, 365, 366, 367, -1, 369, 370,
+ 371, 372, 373, -1, 375, 376, 377, 378, 379, -1,
+ 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
+ -1, 402, 403, -1, 405, -1, 407, 408, 409, 410,
+ 411, -1, 413, 414, 415, -1, -1, 418, 419, 420,
+ 421, 422, -1, 424, 425, 426, 427, 428, 429, 430,
+ 431, -1, -1, 434, 435, 436, 437, 438, -1, -1,
+ 441, 442, 443, 444, 445, 446, 447, -1, 449, -1,
+ 451, 452, 453, 454, -1, -1, 457, -1, -1, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
+ 471, 472, 473, 474, 475, 476, 477, 478, 479, 3,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
+ 24, 25, 26, 27, -1, 29, 30, 31, -1, -1,
+ -1, -1, -1, -1, -1, 39, 40, 41, -1, 43,
+ 44, 45, 46, -1, 48, 49, 50, 51, 52, -1,
+ 54, 55, -1, 57, 58, 59, 60, 61, 62, 63,
+ -1, -1, 66, 67, 68, 69, 70, -1, 72, 73,
+ 74, 75, 76, -1, -1, -1, 80, 81, 82, 83,
+ 84, 85, -1, 87, 88, 89, -1, 91, 92, 93,
+ 94, 95, 96, -1, -1, 99, 100, 101, -1, -1,
+ -1, -1, -1, -1, -1, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, -1, 119, -1, 121, 122, 123,
+ 124, 125, 126, 127, -1, 129, 130, 131, 132, -1,
+ -1, 135, 136, 137, 138, 139, -1, 141, 142, 143,
+ -1, 145, 146, 147, -1, 149, 150, 151, 152, 153,
+ 154, 155, 156, 157, 158, -1, 160, -1, 162, 163,
+ 164, 165, 166, -1, 168, -1, 170, -1, -1, -1,
+ 174, 175, 176, 177, -1, 179, 180, -1, 182, 183,
+ 184, -1, 186, 187, 188, 189, 190, -1, 192, 193,
+ 194, 195, -1, 197, 198, 199, 200, 201, 202, 203,
+ -1, 205, -1, 207, 208, 209, 210, 211, 212, 213,
+ -1, 215, -1, 217, -1, -1, 220, -1, 222, 223,
+ 224, 225, 226, -1, -1, 229, 230, -1, 232, -1,
+ -1, 235, 236, 237, -1, -1, 240, 241, 242, 243,
+ 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 258, -1, 260, 261, 262, 263,
+ 264, 265, 266, 267, 268, 269, 270, -1, 272, 273,
+ -1, 275, -1, 277, 278, 279, 280, 281, 282, -1,
+ 284, 285, -1, -1, 288, 289, 290, -1, -1, 293,
+ 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, -1, 311, 312, 313,
+ 314, 315, 316, 317, 318, -1, 320, 321, 322, 323,
+ 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
+ 334, -1, 336, 337, 338, 339, 340, 341, 342, 343,
+ 344, 345, 346, 347, 348, -1, 350, 351, -1, 353,
+ 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
+ 364, 365, 366, 367, -1, 369, 370, 371, 372, 373,
+ -1, 375, 376, 377, 378, 379, -1, 381, 382, 383,
+ 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 399, 400, -1, 402, 403,
+ -1, 405, -1, 407, 408, 409, 410, 411, -1, 413,
+ 414, 415, -1, -1, 418, 419, 420, 421, 422, -1,
+ 424, 425, 426, 427, 428, 429, 430, 431, -1, -1,
+ 434, 435, 436, 437, 438, -1, -1, 441, 442, 443,
+ 444, 445, 446, 447, -1, 449, -1, 451, 452, 453,
+ 454, -1, -1, 457, -1, -1, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
+ 474, 475, 476, 477, 478, 479, 3, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
+ 27, -1, 29, 30, 31, -1, -1, -1, -1, -1,
+ -1, -1, 39, 40, 41, -1, 43, 44, 45, 46,
+ -1, 48, 49, 50, 51, 52, -1, 54, 55, -1,
+ 57, 58, 59, 60, 61, 62, 63, -1, -1, 66,
+ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76,
+ -1, -1, -1, 80, 81, 82, 83, 84, 85, -1,
+ 87, 88, 89, -1, 91, 92, 93, 94, 95, 96,
+ -1, -1, 99, 100, 101, -1, -1, -1, -1, -1,
+ -1, -1, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, -1, 119, -1, 121, 122, 123, 124, 125, 126,
+ 127, -1, 129, 130, 131, 132, -1, -1, 135, 136,
+ 137, 138, 139, -1, 141, 142, 143, -1, 145, 146,
+ 147, -1, 149, 150, 151, 152, 153, 154, 155, 156,
+ 157, 158, -1, 160, -1, 162, 163, 164, 165, 166,
+ -1, 168, -1, 170, -1, -1, -1, 174, 175, 176,
+ 177, -1, 179, 180, -1, 182, 183, 184, -1, 186,
+ 187, 188, 189, 190, -1, 192, 193, 194, 195, -1,
+ 197, 198, 199, 200, 201, 202, 203, -1, 205, -1,
+ 207, 208, 209, 210, 211, 212, 213, -1, 215, -1,
+ 217, -1, -1, 220, -1, 222, 223, 224, 225, 226,
+ -1, -1, 229, 230, -1, 232, -1, -1, 235, 236,
+ 237, -1, -1, 240, 241, 242, 243, 244, 245, 246,
+ 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
+ 257, 258, -1, 260, 261, 262, 263, 264, 265, 266,
+ 267, 268, 269, 270, -1, 272, 273, -1, 275, -1,
+ 277, 278, 279, 280, 281, 282, -1, 284, 285, -1,
+ -1, 288, 289, 290, -1, -1, 293, 294, 295, -1,
+ 297, -1, 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, -1, 311, 312, 313, 314, 315, 316,
+ 317, 318, -1, 320, 321, 322, 323, 324, 325, 326,
+ 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
+ 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
+ 347, 348, -1, 350, 351, -1, 353, 354, 355, 356,
+ 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
+ 367, -1, 369, 370, 371, 372, 373, -1, 375, 376,
+ 377, 378, 379, -1, 381, 382, 383, 384, -1, 386,
+ 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 399, 400, -1, 402, 403, -1, 405, -1,
+ 407, 408, 409, 410, 411, -1, 413, 414, 415, -1,
+ -1, 418, 419, 420, 421, 422, -1, 424, 425, 426,
+ 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
+ 437, 438, -1, -1, 441, 442, 443, 444, 445, 446,
+ 447, -1, 449, -1, 451, 452, 453, 454, -1, -1,
+ 457, -1, -1, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
+ 477, 478, 479, 3, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
+ 30, 31, -1, -1, -1, -1, -1, -1, -1, 39,
+ 40, 41, -1, 43, 44, 45, 46, -1, 48, 49,
+ 50, 51, 52, -1, 54, 55, -1, 57, 58, 59,
+ 60, 61, 62, 63, -1, -1, 66, 67, 68, 69,
+ 70, -1, 72, 73, 74, 75, 76, -1, -1, -1,
+ 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
+ -1, 91, 92, 93, 94, 95, 96, -1, -1, 99,
+ 100, 101, -1, -1, -1, -1, -1, -1, -1, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, -1, 119,
+ -1, 121, 122, 123, 124, 125, 126, 127, -1, 129,
+ 130, 131, 132, -1, -1, 135, 136, 137, 138, 139,
+ -1, 141, 142, 143, -1, 145, 146, 147, -1, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, -1,
+ 160, -1, 162, 163, 164, 165, 166, -1, 168, -1,
+ 170, -1, -1, -1, 174, 175, 176, 177, -1, 179,
+ 180, -1, 182, 183, 184, -1, 186, 187, 188, 189,
+ 190, -1, 192, 193, 194, 195, -1, 197, 198, 199,
+ 200, 201, 202, 203, -1, 205, -1, 207, 208, 209,
+ 210, 211, 212, 213, -1, 215, -1, 217, -1, -1,
+ 220, -1, 222, 223, 224, 225, 226, -1, -1, 229,
+ 230, -1, 232, -1, -1, 235, 236, 237, -1, -1,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, -1,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, -1, 272, 273, -1, 275, -1, 277, 278, 279,
+ 280, 281, 282, -1, 284, 285, -1, -1, 288, 289,
+ 290, -1, -1, 293, 294, 295, -1, 297, -1, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ -1, 311, 312, 313, 314, 315, 316, 317, 318, -1,
+ 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
+ 330, 331, 332, 333, 334, -1, 336, 337, 338, 339,
+ 340, 341, 342, 343, 344, 345, 346, 347, 348, -1,
+ 350, 351, -1, 353, 354, 355, 356, 357, 358, 359,
+ 360, 361, 362, 363, 364, 365, 366, 367, -1, 369,
+ 370, 371, 372, 373, -1, 375, 376, 377, 378, 379,
+ -1, 381, 382, 383, 384, -1, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
+ 400, -1, 402, 403, -1, 405, -1, 407, 408, 409,
+ 410, 411, -1, 413, 414, 415, -1, -1, 418, 419,
+ 420, 421, 422, -1, 424, 425, 426, 427, 428, 429,
+ 430, 431, -1, -1, 434, 435, 436, 437, 438, -1,
+ -1, 441, 442, 443, 444, 445, 446, 447, -1, 449,
+ -1, 451, 452, 453, 454, -1, -1, 457, -1, -1,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
+ 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
+ 23, 24, 25, 26, 27, -1, 29, 30, 31, -1,
+ -1, -1, -1, -1, -1, -1, 39, 40, 41, -1,
+ 43, 44, 45, 46, -1, 48, 49, 50, 51, 52,
+ -1, 54, 55, -1, 57, 58, 59, 60, 61, 62,
+ 63, -1, -1, 66, 67, 68, 69, 70, -1, 72,
+ 73, 74, 75, 76, -1, -1, -1, 80, 81, 82,
+ 83, 84, 85, -1, 87, 88, 89, -1, 91, 92,
+ 93, 94, 95, 96, -1, -1, 99, 100, 101, -1,
+ -1, -1, -1, -1, -1, -1, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, -1, 119, -1, 121, 122,
+ 123, 124, 125, 126, 127, -1, 129, 130, 131, 132,
+ -1, -1, 135, 136, 137, 138, 139, -1, 141, 142,
+ 143, -1, 145, 146, 147, -1, 149, 150, 151, 152,
+ 153, 154, 155, 156, 157, 158, -1, 160, -1, 162,
+ 163, 164, 165, 166, -1, 168, -1, 170, -1, -1,
+ -1, 174, 175, 176, 177, -1, 179, 180, -1, 182,
+ 183, 184, -1, 186, 187, 188, 189, 190, -1, 192,
+ 193, 194, 195, -1, 197, 198, 199, 200, 201, 202,
+ 203, -1, 205, -1, 207, 208, 209, 210, 211, 212,
+ 213, -1, 215, -1, 217, -1, -1, 220, -1, 222,
+ 223, 224, 225, 226, -1, -1, 229, 230, -1, 232,
+ -1, -1, 235, 236, 237, -1, -1, 240, 241, 242,
+ 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
+ 253, 254, 255, 256, 257, 258, -1, 260, 261, 262,
+ 263, 264, 265, 266, 267, 268, 269, 270, -1, 272,
+ 273, -1, 275, -1, 277, 278, 279, 280, 281, 282,
+ -1, 284, 285, -1, -1, 288, 289, 290, -1, -1,
+ 293, 294, 295, -1, 297, -1, 299, 300, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, -1, 311, 312,
+ 313, 314, 315, 316, 317, 318, -1, 320, 321, 322,
+ 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
+ 333, 334, -1, 336, 337, 338, 339, 340, 341, 342,
+ 343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
+ 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
+ 363, 364, 365, 366, 367, -1, 369, 370, 371, 372,
+ 373, -1, 375, 376, 377, 378, 379, -1, 381, 382,
+ 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 399, 400, -1, 402,
+ 403, -1, 405, -1, 407, 408, 409, 410, 411, -1,
+ 413, 414, 415, -1, -1, 418, 419, 420, 421, 422,
+ -1, 424, 425, 426, 427, 428, 429, 430, 431, -1,
+ -1, 434, 435, 436, 437, 438, -1, -1, 441, 442,
+ 443, 444, 445, 446, 447, -1, 449, -1, 451, 452,
+ 453, 454, -1, -1, 457, -1, -1, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
+ 473, 474, 475, 476, 477, 478, 479, 3, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
+ 26, 27, -1, 29, 30, 31, -1, -1, -1, -1,
+ -1, -1, -1, 39, 40, 41, -1, 43, 44, 45,
+ 46, -1, 48, 49, 50, 51, 52, -1, 54, 55,
+ -1, 57, 58, 59, 60, 61, 62, 63, -1, -1,
+ 66, 67, 68, 69, 70, -1, 72, 73, 74, 75,
+ 76, -1, -1, -1, 80, 81, 82, 83, 84, 85,
+ -1, 87, 88, 89, -1, 91, 92, 93, 94, 95,
+ 96, -1, -1, 99, 100, 101, -1, -1, -1, -1,
+ -1, -1, -1, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, -1, 119, -1, 121, 122, 123, 124, 125,
+ 126, 127, -1, 129, 130, 131, 132, -1, -1, 135,
+ 136, 137, 138, 139, -1, 141, 142, 143, -1, 145,
+ 146, 147, -1, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, -1, 160, -1, 162, 163, 164, 165,
+ 166, -1, 168, -1, 170, -1, -1, -1, 174, 175,
+ 176, 177, -1, 179, 180, -1, 182, 183, 184, -1,
+ 186, 187, 188, 189, 190, -1, 192, 193, 194, 195,
+ -1, 197, 198, 199, 200, 201, 202, 203, -1, 205,
+ -1, 207, 208, 209, 210, 211, 212, 213, -1, 215,
+ -1, 217, -1, -1, 220, -1, 222, 223, 224, 225,
+ 226, -1, -1, 229, 230, -1, 232, -1, -1, 235,
+ 236, 237, -1, -1, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 258, -1, 260, 261, 262, 263, 264, 265,
+ 266, 267, 268, 269, 270, -1, 272, 273, -1, 275,
+ -1, 277, 278, 279, 280, 281, 282, -1, 284, 285,
+ -1, -1, 288, 289, 290, -1, -1, 293, 294, 295,
+ -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, -1, 311, 312, 313, 314, 315,
+ 316, 317, 318, -1, 320, 321, 322, 323, 324, 325,
+ 326, 327, 328, 329, 330, 331, 332, 333, 334, -1,
+ 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
+ 346, 347, 348, -1, 350, 351, -1, 353, 354, 355,
+ 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
+ 366, 367, -1, 369, 370, 371, 372, 373, -1, 375,
+ 376, 377, 378, 379, -1, 381, 382, 383, 384, -1,
+ 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, 399, 400, -1, 402, 403, -1, 405,
+ -1, 407, 408, 409, 410, 411, -1, 413, 414, 415,
+ -1, -1, 418, 419, 420, 421, 422, -1, 424, 425,
+ 426, 427, 428, 429, 430, 431, -1, -1, 434, 435,
+ 436, 437, 438, -1, -1, 441, 442, 443, 444, 445,
+ 446, 447, -1, 449, -1, 451, 452, 453, 454, -1,
+ -1, 457, -1, -1, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
+ 476, 477, 478, 479, 3, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 20, 21, 22, 23, 24, 25, 26, 27, -1,
+ 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
+ 39, 40, 41, -1, 43, 44, 45, 46, -1, 48,
+ 49, 50, 51, 52, -1, 54, 55, -1, 57, 58,
+ 59, 60, 61, 62, 63, -1, -1, 66, 67, 68,
+ 69, 70, -1, 72, 73, 74, 75, 76, -1, -1,
+ -1, 80, 81, 82, 83, 84, 85, -1, 87, 88,
+ 89, -1, 91, 92, 93, 94, 95, 96, -1, -1,
+ 99, 100, 101, -1, -1, -1, -1, -1, -1, -1,
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, -1,
+ 119, -1, 121, 122, 123, 124, 125, 126, 127, -1,
+ 129, 130, 131, 132, -1, -1, 135, 136, 137, 138,
+ 139, -1, 141, 142, 143, -1, 145, 146, 147, -1,
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ -1, 160, -1, 162, 163, 164, 165, 166, -1, 168,
+ -1, 170, -1, -1, -1, 174, 175, 176, 177, -1,
+ 179, 180, -1, 182, 183, 184, -1, 186, 187, 188,
+ 189, 190, -1, 192, 193, 194, 195, -1, 197, 198,
+ 199, 200, 201, 202, 203, -1, 205, -1, 207, 208,
+ 209, 210, 211, 212, 213, -1, 215, -1, 217, -1,
+ -1, 220, -1, 222, 223, 224, 225, 226, -1, -1,
+ 229, 230, -1, 232, -1, -1, 235, 236, 237, -1,
+ -1, 240, 241, 242, 243, 244, 245, 246, 247, 248,
+ 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
+ 269, 270, -1, 272, 273, -1, 275, -1, 277, 278,
+ 279, 280, 281, 282, -1, 284, 285, -1, -1, 288,
+ 289, 290, -1, -1, 293, 294, 295, -1, 297, -1,
+ 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, -1, 311, 312, 313, 314, 315, 316, 317, 318,
+ -1, 320, 321, 322, 323, 324, 325, 326, 327, 328,
+ 329, 330, 331, 332, 333, 334, -1, 336, 337, 338,
+ 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
+ -1, 350, 351, -1, 353, 354, 355, 356, 357, 358,
+ 359, 360, 361, 362, 363, 364, 365, 366, 367, -1,
+ 369, 370, 371, 372, 373, -1, 375, 376, 377, 378,
+ 379, -1, 381, 382, 383, 384, -1, 386, 387, 388,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 399, 400, -1, 402, 403, -1, 405, -1, 407, 408,
+ 409, 410, 411, -1, 413, 414, 415, -1, -1, 418,
+ 419, 420, 421, 422, -1, 424, 425, 426, 427, 428,
+ 429, 430, 431, -1, -1, 434, 435, 436, 437, 438,
+ -1, -1, 441, 442, 443, 444, 445, 446, 447, -1,
+ 449, -1, 451, 452, 453, 454, -1, -1, 457, -1,
+ -1, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
+ 479, 3, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
+ 22, 23, 24, 25, 26, 27, -1, 29, 30, 31,
+ -1, -1, -1, -1, -1, -1, -1, 39, 40, 41,
+ -1, 43, 44, 45, 46, -1, 48, 49, 50, 51,
+ 52, -1, 54, 55, -1, 57, 58, 59, 60, 61,
+ 62, 63, -1, -1, 66, 67, 68, 69, 70, -1,
+ 72, 73, 74, 75, 76, -1, -1, -1, 80, 81,
+ 82, 83, 84, 85, -1, 87, 88, 89, -1, 91,
+ 92, 93, 94, 95, 96, -1, -1, 99, 100, 101,
+ -1, -1, -1, -1, -1, -1, -1, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, -1, 119, -1, 121,
+ 122, 123, 124, 125, 126, 127, -1, 129, 130, 131,
+ 132, -1, -1, 135, 136, 137, 138, 139, -1, 141,
+ 142, 143, -1, 145, 146, 147, -1, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, -1, 160, -1,
+ 162, 163, 164, 165, 166, -1, 168, -1, 170, -1,
+ -1, -1, 174, 175, 176, 177, -1, 179, 180, -1,
+ 182, 183, 184, -1, 186, 187, 188, 189, 190, -1,
+ 192, 193, 194, 195, -1, 197, 198, 199, 200, 201,
+ 202, 203, -1, 205, -1, 207, 208, 209, 210, 211,
+ 212, 213, -1, 215, -1, 217, -1, -1, 220, -1,
+ 222, 223, 224, 225, 226, -1, -1, 229, 230, -1,
+ 232, -1, -1, 235, 236, 237, -1, -1, 240, 241,
+ 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
+ 252, 253, 254, 255, 256, 257, 258, -1, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, -1,
+ 272, 273, -1, 275, -1, 277, 278, 279, 280, 281,
+ 282, -1, 284, 285, -1, -1, 288, 289, 290, -1,
+ -1, 293, 294, 295, -1, 297, -1, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, -1, 311,
+ 312, 313, 314, 315, 316, 317, 318, -1, 320, 321,
+ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
+ 332, 333, 334, -1, 336, 337, 338, 339, 340, 341,
+ 342, 343, 344, 345, 346, 347, 348, -1, 350, 351,
+ -1, 353, 354, 355, 356, 357, 358, 359, 360, 361,
+ 362, 363, 364, 365, 366, 367, -1, 369, 370, 371,
+ 372, 373, -1, 375, 376, 377, 378, 379, -1, 381,
+ 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 399, 400, -1,
+ 402, 403, -1, 405, -1, 407, 408, 409, 410, 411,
+ -1, 413, 414, 415, -1, -1, 418, 419, 420, 421,
+ 422, -1, 424, 425, 426, 427, 428, 429, 430, 431,
+ -1, -1, 434, 435, 436, 437, 438, -1, -1, 441,
+ 442, 443, 444, 445, 446, 447, -1, 449, -1, 451,
+ 452, 453, 454, -1, -1, 457, -1, -1, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
+ 472, 473, 474, 475, 476, 477, 478, 479, 3, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
+ 25, 26, 27, -1, 29, 30, 31, -1, -1, -1,
+ -1, -1, -1, -1, 39, 40, 41, -1, 43, 44,
+ 45, 46, -1, 48, 49, 50, 51, 52, -1, 54,
+ 55, -1, 57, 58, 59, 60, 61, 62, 63, -1,
+ -1, 66, 67, 68, 69, 70, -1, 72, 73, 74,
+ 75, 76, -1, -1, -1, 80, 81, 82, 83, 84,
+ 85, -1, 87, 88, 89, -1, 91, 92, 93, 94,
+ 95, 96, -1, -1, 99, 100, 101, -1, -1, -1,
+ -1, -1, -1, -1, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, -1, 119, -1, 121, 122, 123, 124,
+ 125, 126, 127, -1, 129, 130, 131, 132, -1, -1,
+ 135, 136, 137, 138, 139, -1, 141, 142, 143, -1,
+ 145, 146, 147, -1, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, -1, 160, -1, 162, 163, 164,
+ 165, 166, -1, 168, -1, 170, -1, -1, -1, 174,
+ 175, 176, 177, -1, 179, 180, -1, 182, 183, 184,
+ -1, 186, 187, 188, 189, 190, -1, 192, 193, 194,
+ 195, -1, 197, 198, 199, 200, 201, 202, 203, -1,
+ 205, -1, 207, 208, 209, 210, 211, 212, 213, -1,
+ 215, -1, 217, -1, -1, 220, -1, 222, 223, 224,
+ 225, 226, -1, -1, 229, 230, -1, 232, -1, -1,
+ 235, 236, 237, -1, -1, 240, 241, 242, 243, 244,
+ 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+ 255, 256, 257, 258, -1, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, -1, 272, 273, -1,
+ 275, -1, 277, 278, 279, 280, 281, 282, -1, 284,
+ 285, -1, -1, 288, 289, 290, -1, -1, 293, 294,
+ 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, -1, 311, 312, 313, 314,
+ 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ -1, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, -1, 350, 351, -1, 353, 354,
+ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
+ 365, 366, 367, -1, 369, 370, 371, 372, 373, -1,
+ 375, 376, 377, 378, 379, -1, 381, 382, 383, 384,
+ -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 399, 400, -1, 402, 403, -1,
+ 405, -1, 407, 408, 409, 410, 411, -1, 413, 414,
+ 415, -1, -1, 418, 419, 420, 421, 422, -1, 424,
+ 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
+ 435, 436, 437, 438, -1, -1, 441, 442, 443, 444,
+ 445, 446, 447, -1, 449, -1, 451, 452, 453, 454,
+ -1, -1, 457, -1, -1, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
+ 475, 476, 477, 478, 479, 3, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
+ -1, 29, 30, 31, -1, -1, -1, -1, -1, -1,
+ -1, 39, 40, 41, -1, 43, 44, 45, 46, -1,
+ 48, 49, 50, 51, 52, -1, 54, 55, -1, 57,
+ 58, 59, 60, 61, 62, 63, -1, -1, 66, 67,
+ 68, 69, 70, -1, 72, 73, 74, 75, 76, -1,
+ -1, -1, 80, 81, 82, 83, 84, 85, -1, 87,
+ 88, 89, -1, 91, 92, 93, 94, 95, 96, -1,
+ -1, 99, 100, 101, -1, -1, -1, -1, -1, -1,
+ -1, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ -1, 119, -1, 121, 122, 123, 124, 125, 126, 127,
+ -1, 129, 130, 131, 132, -1, -1, 135, 136, 137,
+ 138, 139, -1, 141, 142, 143, -1, 145, 146, 147,
+ -1, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, -1, 160, -1, 162, 163, 164, 165, 166, -1,
+ 168, -1, 170, -1, -1, -1, 174, 175, 176, 177,
+ -1, 179, 180, -1, 182, 183, 184, -1, 186, 187,
+ 188, 189, 190, -1, 192, 193, 194, 195, -1, 197,
+ 198, 199, 200, 201, 202, 203, -1, 205, -1, 207,
+ 208, 209, 210, 211, 212, 213, -1, 215, -1, 217,
+ -1, -1, 220, -1, 222, 223, 224, 225, 226, -1,
+ -1, 229, 230, -1, 232, -1, -1, 235, 236, 237,
+ -1, -1, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
+ 258, -1, 260, 261, 262, 263, 264, 265, 266, 267,
+ 268, 269, 270, -1, 272, 273, -1, 275, -1, 277,
+ 278, 279, 280, 281, 282, -1, 284, 285, -1, -1,
+ 288, 289, 290, -1, -1, 293, 294, 295, -1, 297,
+ -1, 299, 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, -1, 311, 312, 313, 314, 315, 316, 317,
+ 318, -1, 320, 321, 322, 323, 324, 325, 326, 327,
+ 328, 329, 330, 331, 332, 333, 334, -1, 336, 337,
+ 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
+ 348, -1, 350, 351, -1, 353, 354, 355, 356, 357,
+ 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
+ -1, 369, 370, 371, 372, 373, -1, 375, 376, 377,
+ 378, 379, -1, 381, 382, 383, 384, -1, 386, 387,
+ 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 399, 400, -1, 402, 403, -1, 405, -1, 407,
+ 408, 409, 410, 411, -1, 413, 414, 415, -1, -1,
+ 418, 419, 420, 421, 422, -1, 424, 425, 426, 427,
+ 428, 429, 430, 431, -1, -1, 434, 435, 436, 437,
+ 438, -1, -1, 441, 442, 443, 444, 445, 446, 447,
+ -1, 449, -1, 451, 452, 453, 454, -1, -1, 457,
+ -1, -1, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
+ 478, 479, 3, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
+ 21, 22, 23, 24, 25, 26, 27, -1, 29, 30,
+ 31, -1, -1, -1, -1, -1, -1, -1, 39, 40,
+ 41, -1, 43, 44, 45, 46, -1, 48, 49, 50,
+ 51, 52, -1, 54, 55, -1, 57, 58, 59, 60,
+ 61, 62, 63, -1, -1, 66, 67, 68, 69, 70,
+ -1, 72, 73, 74, 75, 76, -1, -1, -1, 80,
+ 81, 82, 83, 84, 85, -1, 87, 88, 89, -1,
+ 91, 92, 93, 94, 95, 96, -1, -1, 99, 100,
+ 101, -1, -1, -1, -1, -1, -1, -1, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, -1, 119, -1,
+ 121, 122, 123, 124, 125, 126, 127, -1, 129, 130,
+ 131, 132, -1, -1, 135, 136, 137, 138, 139, -1,
+ 141, 142, 143, -1, 145, 146, 147, -1, 149, 150,
+ 151, 152, 153, 154, 155, 156, 157, 158, -1, 160,
+ -1, 162, 163, 164, 165, 166, -1, 168, -1, 170,
+ -1, -1, -1, 174, 175, 176, 177, -1, 179, 180,
+ -1, 182, 183, 184, -1, 186, 187, 188, 189, 190,
+ -1, 192, 193, 194, 195, -1, 197, 198, 199, 200,
+ 201, 202, 203, -1, 205, -1, 207, 208, 209, 210,
+ 211, 212, 213, -1, 215, -1, 217, -1, -1, 220,
+ -1, 222, 223, 224, 225, 226, -1, -1, 229, 230,
+ -1, 232, -1, -1, 235, 236, 237, -1, -1, 240,
+ 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
+ 251, 252, 253, 254, 255, 256, 257, 258, -1, 260,
+ 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
+ -1, 272, 273, -1, 275, -1, 277, 278, 279, 280,
+ 281, 282, -1, 284, 285, -1, -1, 288, 289, 290,
+ -1, -1, 293, 294, 295, -1, 297, -1, 299, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, -1,
+ 311, 312, 313, 314, 315, 316, 317, 318, -1, 320,
+ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 334, -1, 336, 337, 338, 339, 340,
+ 341, 342, 343, 344, 345, 346, 347, 348, -1, 350,
+ 351, -1, 353, 354, 355, 356, 357, 358, 359, 360,
+ 361, 362, 363, 364, 365, 366, 367, -1, 369, 370,
+ 371, 372, 373, -1, 375, 376, 377, 378, 379, -1,
+ 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
+ -1, 402, 403, -1, 405, -1, 407, 408, 409, 410,
+ 411, -1, 413, 414, 415, -1, -1, 418, 419, 420,
+ 421, 422, -1, 424, 425, 426, 427, 428, 429, 430,
+ 431, -1, -1, 434, 435, 436, 437, 438, -1, -1,
+ 441, 442, 443, 444, 445, 446, 447, -1, 449, -1,
+ 451, 452, 453, 454, -1, -1, 457, -1, -1, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
+ 471, 472, 473, 474, 475, 476, 477, 478, 479, 3,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
+ 24, 25, 26, 27, -1, 29, 30, 31, -1, -1,
+ -1, -1, -1, -1, -1, 39, 40, 41, -1, 43,
+ 44, 45, 46, -1, 48, 49, 50, 51, 52, -1,
+ 54, 55, -1, 57, 58, 59, 60, 61, 62, 63,
+ -1, -1, 66, 67, 68, 69, 70, -1, 72, 73,
+ 74, 75, 76, -1, -1, -1, 80, 81, 82, 83,
+ 84, 85, -1, 87, 88, 89, -1, 91, 92, 93,
+ 94, 95, 96, -1, -1, 99, 100, 101, -1, -1,
+ -1, -1, -1, -1, -1, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, -1, 119, -1, 121, 122, 123,
+ 124, 125, 126, 127, -1, 129, 130, 131, 132, -1,
+ -1, 135, 136, 137, 138, 139, -1, 141, 142, 143,
+ -1, 145, 146, 147, -1, 149, 150, 151, 152, 153,
+ 154, 155, 156, 157, 158, -1, 160, -1, 162, 163,
+ 164, 165, 166, -1, 168, -1, 170, -1, -1, -1,
+ 174, 175, 176, 177, -1, 179, 180, -1, 182, 183,
+ 184, -1, 186, 187, 188, 189, 190, -1, 192, 193,
+ 194, 195, -1, 197, 198, 199, 200, 201, 202, 203,
+ -1, 205, -1, 207, 208, 209, 210, 211, 212, 213,
+ -1, 215, -1, 217, -1, -1, 220, -1, 222, 223,
+ 224, 225, 226, -1, -1, 229, 230, -1, 232, -1,
+ -1, 235, 236, 237, -1, -1, 240, 241, 242, 243,
+ 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 258, -1, 260, 261, 262, 263,
+ 264, 265, 266, 267, 268, 269, 270, -1, 272, 273,
+ -1, 275, -1, 277, 278, 279, 280, 281, 282, -1,
+ 284, 285, -1, -1, 288, 289, 290, -1, -1, 293,
+ 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, -1, 311, 312, 313,
+ 314, 315, 316, 317, 318, -1, 320, 321, 322, 323,
+ 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
+ 334, -1, 336, 337, 338, 339, 340, 341, 342, 343,
+ 344, 345, 346, 347, 348, -1, 350, 351, -1, 353,
+ 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
+ 364, 365, 366, 367, -1, 369, 370, 371, 372, 373,
+ -1, 375, 376, 377, 378, 379, -1, 381, 382, 383,
+ 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 399, 400, -1, 402, 403,
+ -1, 405, -1, 407, 408, 409, 410, 411, -1, 413,
+ 414, 415, -1, -1, 418, 419, 420, 421, 422, -1,
+ 424, 425, 426, 427, 428, 429, 430, 431, -1, -1,
+ 434, 435, 436, 437, 438, -1, -1, 441, 442, 443,
+ 444, 445, 446, 447, -1, 449, -1, 451, 452, 453,
+ 454, -1, -1, 457, -1, -1, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
+ 474, 475, 476, 477, 478, 479, 3, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
+ 27, -1, 29, 30, 31, -1, -1, -1, -1, -1,
+ 37, -1, 39, 40, 41, -1, 43, 44, 45, 46,
+ -1, 48, 49, 50, 51, 52, -1, 54, 55, -1,
+ 57, 58, 59, 60, 61, 62, 63, -1, -1, 66,
+ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76,
+ -1, -1, -1, 80, 81, 82, 83, 84, 85, -1,
+ 87, 88, 89, -1, 91, 92, 93, 94, 95, 96,
+ -1, -1, 99, 100, 101, -1, -1, -1, -1, -1,
+ -1, -1, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, -1, 119, -1, 121, 122, 123, 124, 125, 126,
+ 127, -1, 129, 130, 131, 132, -1, -1, 135, 136,
+ 137, 138, 139, -1, 141, 142, 143, -1, 145, 146,
+ 147, -1, 149, 150, 151, 152, 153, 154, 155, 156,
+ 157, 158, -1, 160, -1, 162, 163, 164, 165, 166,
+ -1, 168, -1, 170, -1, -1, -1, 174, 175, 176,
+ 177, -1, 179, 180, -1, 182, 183, 184, -1, 186,
+ 187, 188, 189, 190, -1, 192, 193, 194, 195, -1,
+ 197, 198, 199, 200, 201, 202, 203, -1, 205, -1,
+ 207, 208, 209, 210, 211, 212, 213, -1, 215, -1,
+ 217, -1, -1, 220, -1, 222, 223, 224, 225, 226,
+ -1, -1, 229, 230, -1, 232, -1, -1, 235, 236,
+ 237, -1, -1, 240, 241, 242, 243, 244, 245, 246,
+ 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
+ 257, 258, -1, 260, 261, 262, 263, 264, 265, 266,
+ 267, 268, 269, 270, -1, 272, 273, -1, 275, -1,
+ 277, 278, 279, 280, 281, 282, -1, 284, 285, -1,
+ -1, 288, 289, 290, -1, -1, 293, 294, 295, -1,
+ 297, -1, 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, -1, 311, 312, 313, 314, 315, 316,
+ 317, 318, -1, 320, 321, 322, 323, 324, 325, 326,
+ 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
+ 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
+ 347, 348, -1, 350, 351, -1, 353, 354, 355, 356,
+ 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
+ 367, -1, 369, 370, 371, 372, 373, -1, -1, 376,
+ 377, 378, 379, -1, 381, 382, 383, 384, -1, 386,
+ 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 399, 400, -1, 402, 403, -1, 405, -1,
+ 407, 408, 409, 410, 411, -1, 413, 414, 415, -1,
+ -1, 418, 419, 420, 421, 422, -1, 424, 425, 426,
+ 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
+ 437, 438, -1, -1, 441, 442, 443, 444, 445, 446,
+ 447, -1, 449, -1, 451, 452, 453, 454, -1, -1,
+ 457, -1, -1, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
+ 477, 478, 479, 3, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
+ 30, 31, -1, -1, -1, -1, -1, -1, -1, 39,
+ 40, 41, -1, 43, 44, 45, 46, -1, 48, 49,
+ 50, 51, 52, -1, 54, 55, -1, 57, 58, 59,
+ 60, 61, 62, 63, -1, -1, 66, 67, 68, 69,
+ 70, -1, 72, 73, 74, 75, 76, -1, -1, -1,
+ 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
+ -1, 91, 92, 93, 94, 95, 96, -1, -1, 99,
+ 100, 101, -1, -1, -1, -1, -1, -1, -1, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, -1, 119,
+ -1, 121, 122, 123, 124, 125, 126, 127, -1, 129,
+ 130, 131, 132, -1, -1, 135, 136, 137, 138, 139,
+ -1, 141, 142, 143, -1, 145, 146, 147, -1, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, -1,
+ 160, -1, 162, 163, 164, 165, 166, -1, 168, -1,
+ 170, -1, -1, -1, 174, 175, 176, 177, -1, 179,
+ 180, -1, 182, 183, 184, -1, 186, 187, 188, 189,
+ 190, -1, 192, 193, 194, 195, -1, 197, 198, 199,
+ 200, 201, 202, 203, -1, 205, -1, 207, 208, 209,
+ 210, 211, 212, 213, -1, 215, -1, 217, -1, -1,
+ 220, -1, 222, 223, 224, 225, 226, -1, -1, 229,
+ 230, -1, 232, -1, -1, 235, 236, 237, -1, -1,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, -1,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, -1, 272, 273, -1, 275, -1, 277, 278, 279,
+ 280, 281, 282, -1, 284, 285, -1, -1, 288, 289,
+ 290, -1, -1, 293, 294, 295, -1, 297, -1, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ -1, 311, 312, 313, 314, 315, 316, 317, 318, -1,
+ 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
+ 330, 331, 332, 333, 334, -1, 336, 337, 338, 339,
+ 340, 341, 342, 343, 344, 345, 346, 347, 348, -1,
+ 350, 351, -1, 353, 354, 355, 356, 357, 358, 359,
+ 360, 361, 362, 363, 364, 365, 366, 367, -1, 369,
+ 370, 371, 372, 373, -1, 375, 376, 377, 378, 379,
+ -1, 381, 382, 383, 384, -1, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
+ 400, -1, 402, 403, -1, 405, -1, 407, 408, 409,
+ 410, 411, -1, 413, 414, 415, -1, -1, 418, 419,
+ 420, 421, 422, -1, 424, 425, 426, 427, 428, 429,
+ 430, 431, -1, -1, 434, 435, 436, 437, 438, -1,
+ -1, 441, 442, 443, 444, 445, 446, 447, -1, 449,
+ -1, 451, 452, 453, 454, -1, -1, 457, -1, -1,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
+ 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
+ 23, 24, 25, 26, 27, -1, 29, 30, 31, -1,
+ -1, -1, -1, -1, -1, -1, 39, 40, 41, -1,
+ 43, 44, 45, 46, -1, 48, 49, 50, 51, 52,
+ -1, 54, 55, -1, 57, 58, 59, 60, 61, 62,
+ 63, -1, -1, 66, 67, 68, 69, 70, -1, 72,
+ 73, 74, 75, 76, -1, -1, -1, 80, 81, 82,
+ 83, 84, 85, -1, 87, 88, 89, -1, 91, 92,
+ 93, 94, 95, 96, -1, -1, 99, 100, 101, -1,
+ -1, -1, -1, -1, -1, -1, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, -1, 119, -1, 121, 122,
+ 123, 124, 125, 126, 127, -1, 129, 130, 131, 132,
+ -1, -1, 135, 136, 137, 138, 139, -1, 141, 142,
+ 143, -1, 145, 146, 147, -1, 149, 150, 151, 152,
+ 153, 154, 155, 156, 157, 158, -1, 160, -1, 162,
+ 163, 164, 165, 166, -1, 168, -1, 170, -1, -1,
+ -1, 174, 175, 176, 177, -1, 179, 180, -1, 182,
+ 183, 184, -1, 186, 187, 188, 189, 190, -1, 192,
+ 193, 194, 195, -1, 197, 198, 199, 200, 201, 202,
+ 203, -1, 205, -1, 207, 208, 209, 210, 211, 212,
+ 213, -1, 215, -1, 217, -1, -1, 220, -1, 222,
+ 223, 224, 225, 226, -1, -1, 229, 230, -1, 232,
+ -1, -1, 235, 236, 237, -1, -1, 240, 241, 242,
+ 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
+ 253, 254, 255, 256, 257, 258, -1, 260, 261, 262,
+ 263, 264, 265, 266, 267, 268, 269, 270, -1, 272,
+ 273, -1, 275, -1, 277, 278, 279, 280, 281, 282,
+ -1, 284, 285, -1, -1, 288, 289, 290, -1, -1,
+ 293, 294, 295, -1, 297, -1, 299, 300, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, -1, 311, 312,
+ 313, 314, 315, 316, 317, 318, -1, 320, 321, 322,
+ 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
+ 333, 334, -1, 336, 337, 338, 339, 340, 341, 342,
+ 343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
+ 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
+ 363, 364, 365, 366, 367, -1, 369, 370, 371, 372,
+ 373, -1, 375, 376, 377, 378, 379, -1, 381, 382,
+ 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 399, 400, -1, 402,
+ 403, -1, 405, -1, 407, 408, 409, 410, 411, -1,
+ 413, 414, 415, -1, -1, 418, 419, 420, 421, 422,
+ -1, 424, 425, 426, 427, 428, 429, 430, 431, -1,
+ -1, 434, 435, 436, 437, 438, -1, -1, 441, 442,
+ 443, 444, 445, 446, 447, -1, 449, -1, 451, 452,
+ 453, 454, -1, -1, 457, -1, -1, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
+ 473, 474, 475, 476, 477, 478, 479, 3, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
+ 26, 27, -1, 29, 30, 31, -1, -1, -1, -1,
+ -1, -1, -1, 39, 40, 41, -1, 43, 44, 45,
+ 46, -1, 48, 49, 50, 51, 52, -1, 54, 55,
+ -1, 57, 58, 59, 60, 61, 62, 63, -1, -1,
+ 66, 67, 68, 69, 70, -1, 72, 73, 74, 75,
+ 76, -1, -1, -1, 80, 81, 82, 83, 84, 85,
+ -1, 87, 88, 89, -1, 91, 92, 93, 94, 95,
+ 96, -1, -1, 99, 100, 101, -1, -1, -1, -1,
+ -1, -1, -1, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, -1, 119, -1, 121, 122, 123, 124, 125,
+ 126, 127, -1, 129, 130, 131, 132, -1, -1, 135,
+ 136, 137, 138, 139, -1, 141, 142, 143, -1, 145,
+ 146, 147, -1, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, -1, 160, -1, 162, 163, 164, 165,
+ 166, -1, 168, -1, 170, -1, -1, -1, 174, 175,
+ 176, 177, -1, 179, 180, -1, 182, 183, 184, -1,
+ 186, 187, 188, 189, 190, -1, 192, 193, 194, 195,
+ -1, 197, 198, 199, 200, 201, 202, 203, -1, 205,
+ -1, 207, 208, 209, 210, 211, 212, 213, -1, 215,
+ -1, 217, -1, -1, 220, -1, 222, 223, 224, 225,
+ 226, -1, -1, 229, 230, -1, 232, -1, -1, 235,
+ 236, 237, -1, -1, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 258, -1, 260, 261, 262, 263, 264, 265,
+ 266, 267, 268, 269, 270, -1, 272, 273, -1, 275,
+ -1, 277, 278, 279, 280, 281, 282, -1, 284, 285,
+ -1, -1, 288, 289, 290, -1, -1, 293, 294, 295,
+ -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, -1, 311, 312, 313, 314, 315,
+ 316, 317, 318, -1, 320, 321, 322, 323, 324, 325,
+ 326, 327, 328, 329, 330, 331, 332, 333, 334, -1,
+ 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
+ 346, 347, 348, -1, 350, 351, -1, 353, 354, 355,
+ 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
+ 366, 367, -1, 369, 370, 371, 372, 373, -1, 375,
+ 376, 377, 378, 379, -1, 381, 382, 383, 384, -1,
+ 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, 399, 400, -1, 402, 403, -1, 405,
+ -1, 407, 408, 409, 410, 411, -1, 413, 414, 415,
+ -1, -1, 418, 419, 420, 421, 422, -1, 424, 425,
+ 426, 427, 428, 429, 430, 431, -1, -1, 434, 435,
+ 436, 437, 438, -1, -1, 441, 442, 443, 444, 445,
+ 446, 447, -1, 449, -1, 451, 452, 453, 454, -1,
+ -1, 457, -1, -1, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
+ 476, 477, 478, 479, 3, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 20, 21, 22, 23, 24, 25, 26, 27, -1,
+ 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
+ 39, 40, 41, -1, 43, 44, 45, 46, -1, 48,
+ 49, 50, 51, 52, -1, 54, 55, -1, 57, 58,
+ 59, 60, 61, 62, 63, -1, -1, 66, 67, 68,
+ 69, 70, -1, 72, 73, 74, 75, 76, -1, -1,
+ -1, 80, 81, 82, 83, 84, 85, -1, 87, 88,
+ 89, -1, 91, 92, 93, 94, 95, 96, -1, -1,
+ 99, 100, 101, -1, -1, -1, -1, -1, -1, -1,
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, -1,
+ 119, -1, 121, 122, 123, 124, 125, 126, 127, -1,
+ 129, 130, 131, 132, -1, -1, 135, 136, 137, 138,
+ 139, -1, 141, 142, 143, -1, 145, 146, 147, -1,
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ -1, 160, -1, 162, 163, 164, 165, 166, -1, 168,
+ -1, 170, -1, -1, -1, 174, 175, 176, 177, -1,
+ 179, 180, -1, 182, 183, 184, -1, 186, 187, 188,
+ 189, 190, -1, 192, 193, 194, 195, -1, 197, 198,
+ 199, 200, 201, 202, 203, -1, 205, -1, 207, 208,
+ 209, 210, 211, 212, 213, -1, 215, -1, 217, -1,
+ -1, 220, -1, 222, 223, 224, 225, 226, -1, -1,
+ 229, 230, -1, 232, -1, -1, 235, 236, 237, -1,
+ -1, 240, 241, 242, 243, 244, 245, 246, 247, 248,
+ 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
+ 269, 270, -1, 272, 273, -1, 275, -1, 277, 278,
+ 279, 280, 281, 282, -1, 284, 285, -1, -1, 288,
+ 289, 290, -1, -1, 293, 294, 295, -1, 297, -1,
+ 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, -1, 311, 312, 313, 314, 315, 316, 317, 318,
+ -1, 320, 321, 322, 323, 324, 325, 326, 327, 328,
+ 329, 330, 331, 332, 333, 334, -1, 336, 337, 338,
+ 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
+ -1, 350, 351, -1, 353, 354, 355, 356, 357, 358,
+ 359, 360, 361, 362, 363, 364, 365, 366, 367, -1,
+ 369, 370, 371, 372, 373, -1, 375, 376, 377, 378,
+ 379, -1, 381, 382, 383, 384, -1, 386, 387, 388,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 399, 400, -1, 402, 403, -1, 405, -1, 407, 408,
+ 409, 410, 411, -1, 413, 414, 415, -1, -1, 418,
+ 419, 420, 421, 422, -1, 424, 425, 426, 427, 428,
+ 429, 430, 431, -1, -1, 434, 435, 436, 437, 438,
+ -1, -1, 441, 442, 443, 444, 445, 446, 447, -1,
+ 449, -1, 451, 452, 453, 454, -1, -1, 457, -1,
+ -1, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
+ 479, 3, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
+ 22, 23, 24, 25, 26, 27, -1, 29, 30, 31,
+ -1, -1, -1, -1, -1, -1, -1, 39, 40, 41,
+ -1, 43, 44, 45, 46, -1, 48, 49, 50, 51,
+ 52, -1, 54, 55, -1, 57, 58, 59, 60, 61,
+ 62, 63, -1, -1, 66, 67, 68, 69, 70, -1,
+ 72, 73, 74, 75, 76, -1, -1, -1, 80, 81,
+ 82, 83, 84, 85, -1, 87, 88, 89, -1, 91,
+ 92, 93, 94, 95, 96, -1, -1, 99, 100, 101,
+ -1, -1, -1, -1, -1, -1, -1, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, -1, 119, -1, 121,
+ 122, 123, 124, 125, 126, 127, -1, 129, 130, 131,
+ 132, -1, -1, 135, 136, 137, 138, 139, -1, 141,
+ 142, 143, -1, 145, 146, 147, -1, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, -1, 160, -1,
+ 162, 163, 164, 165, 166, -1, 168, -1, 170, -1,
+ -1, -1, 174, 175, 176, 177, -1, 179, 180, -1,
+ 182, 183, 184, -1, 186, 187, 188, 189, 190, -1,
+ 192, 193, 194, 195, -1, 197, 198, 199, 200, 201,
+ 202, 203, -1, 205, -1, 207, 208, 209, 210, 211,
+ 212, 213, -1, 215, -1, 217, -1, -1, 220, -1,
+ 222, 223, 224, 225, 226, -1, -1, 229, 230, -1,
+ 232, -1, -1, 235, 236, 237, -1, -1, 240, 241,
+ 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
+ 252, 253, 254, 255, 256, 257, 258, -1, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, -1,
+ 272, 273, -1, 275, -1, 277, 278, 279, 280, 281,
+ 282, -1, 284, 285, -1, -1, 288, 289, 290, -1,
+ -1, 293, 294, 295, -1, 297, -1, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, -1, 311,
+ 312, 313, 314, 315, 316, 317, 318, -1, 320, 321,
+ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
+ 332, 333, 334, -1, 336, 337, 338, 339, 340, 341,
+ 342, 343, 344, 345, 346, 347, 348, -1, 350, 351,
+ -1, 353, 354, 355, 356, 357, 358, 359, 360, 361,
+ 362, 363, 364, 365, 366, 367, -1, 369, 370, 371,
+ 372, 373, -1, 375, 376, 377, 378, 379, -1, 381,
+ 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 399, 400, -1,
+ 402, 403, -1, 405, -1, 407, 408, 409, 410, 411,
+ -1, 413, 414, 415, -1, -1, 418, 419, 420, 421,
+ 422, -1, 424, 425, 426, 427, 428, 429, 430, 431,
+ -1, -1, 434, 435, 436, 437, 438, -1, -1, 441,
+ 442, 443, 444, 445, 446, 447, -1, 449, -1, 451,
+ 452, 453, 454, -1, -1, 457, -1, -1, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
+ 472, 473, 474, 475, 476, 477, 478, 479, 3, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
+ 25, 26, 27, -1, 29, 30, 31, -1, -1, -1,
+ -1, -1, -1, -1, 39, 40, 41, -1, 43, 44,
+ 45, 46, -1, 48, 49, 50, 51, 52, -1, 54,
+ 55, -1, 57, 58, 59, 60, 61, 62, 63, -1,
+ -1, 66, 67, 68, 69, 70, -1, 72, 73, 74,
+ 75, 76, -1, -1, -1, 80, 81, 82, 83, 84,
+ 85, -1, 87, 88, 89, -1, 91, 92, 93, 94,
+ 95, 96, -1, -1, 99, 100, 101, -1, -1, -1,
+ -1, -1, -1, -1, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, -1, 119, -1, 121, 122, 123, 124,
+ 125, 126, 127, -1, 129, 130, 131, 132, -1, -1,
+ 135, 136, 137, 138, 139, -1, 141, 142, 143, -1,
+ 145, 146, 147, -1, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, -1, 160, -1, 162, 163, 164,
+ 165, 166, -1, 168, -1, 170, -1, -1, -1, 174,
+ 175, 176, 177, -1, 179, 180, -1, 182, 183, 184,
+ -1, 186, 187, 188, 189, 190, -1, 192, 193, 194,
+ 195, -1, 197, 198, 199, 200, 201, 202, 203, -1,
+ 205, -1, 207, 208, 209, 210, 211, 212, 213, -1,
+ 215, -1, 217, -1, -1, 220, -1, 222, 223, 224,
+ 225, 226, -1, -1, 229, 230, -1, 232, -1, -1,
+ 235, 236, 237, -1, -1, 240, 241, 242, 243, 244,
+ 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+ 255, 256, 257, 258, -1, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, -1, 272, 273, -1,
+ 275, -1, 277, 278, 279, 280, 281, 282, -1, 284,
+ 285, -1, -1, 288, 289, 290, -1, -1, 293, 294,
+ 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, -1, 311, 312, 313, 314,
+ 315, 316, 317, 318, -1, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ -1, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, -1, 350, 351, -1, 353, 354,
+ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
+ 365, 366, 367, -1, 369, 370, 371, 372, 373, -1,
+ 375, 376, 377, 378, 379, -1, 381, 382, 383, 384,
+ -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 399, 400, -1, 402, 403, -1,
+ 405, -1, 407, 408, 409, 410, 411, -1, 413, 414,
+ 415, -1, -1, 418, 419, 420, 421, 422, -1, 424,
+ 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
+ 435, 436, 437, 438, -1, -1, 441, 442, 443, 444,
+ 445, 446, 447, -1, 449, -1, 451, 452, 453, 454,
+ -1, -1, 457, -1, -1, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
+ 475, 476, 477, 478, 479, 3, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
+ -1, 29, 30, 31, -1, -1, -1, -1, -1, -1,
+ -1, 39, 40, 41, -1, 43, 44, 45, 46, -1,
+ 48, 49, 50, 51, 52, -1, 54, 55, -1, 57,
+ 58, 59, 60, 61, 62, 63, -1, -1, 66, 67,
+ 68, 69, 70, -1, 72, 73, 74, 75, 76, -1,
+ -1, -1, 80, 81, 82, 83, 84, 85, -1, 87,
+ 88, 89, -1, 91, 92, 93, 94, 95, 96, -1,
+ -1, 99, 100, 101, -1, -1, -1, -1, -1, -1,
+ -1, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ -1, 119, -1, 121, 122, 123, 124, 125, 126, 127,
+ -1, 129, 130, 131, 132, -1, -1, 135, 136, 137,
+ 138, 139, -1, 141, 142, 143, -1, 145, 146, 147,
+ -1, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, -1, 160, -1, 162, 163, 164, 165, 166, -1,
+ 168, -1, 170, -1, -1, -1, 174, 175, 176, 177,
+ -1, 179, 180, -1, 182, 183, 184, -1, 186, 187,
+ 188, 189, 190, -1, 192, 193, 194, 195, -1, 197,
+ 198, 199, 200, 201, 202, 203, -1, 205, -1, 207,
+ 208, 209, 210, 211, 212, 213, -1, 215, -1, 217,
+ -1, -1, 220, -1, 222, 223, 224, 225, 226, -1,
+ -1, 229, 230, -1, 232, -1, -1, 235, 236, 237,
+ -1, -1, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
+ 258, -1, 260, 261, 262, 263, 264, 265, 266, 267,
+ 268, 269, 270, -1, 272, 273, -1, 275, -1, 277,
+ 278, 279, 280, 281, 282, -1, 284, 285, -1, -1,
+ 288, 289, 290, -1, -1, 293, 294, 295, -1, 297,
+ -1, 299, 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, -1, 311, 312, 313, 314, 315, 316, 317,
+ 318, -1, 320, 321, 322, 323, 324, 325, 326, 327,
+ 328, 329, 330, 331, 332, 333, 334, -1, 336, 337,
+ 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
+ 348, -1, 350, 351, -1, 353, 354, 355, 356, 357,
+ 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
+ -1, 369, 370, 371, 372, 373, -1, 375, 376, 377,
+ 378, 379, -1, 381, 382, 383, 384, -1, 386, 387,
+ 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, 399, 400, -1, 402, 403, -1, 405, -1, 407,
+ 408, 409, 410, 411, -1, 413, 414, 415, -1, -1,
+ 418, 419, 420, 421, 422, -1, 424, 425, 426, 427,
+ 428, 429, 430, 431, -1, -1, 434, 435, 436, 437,
+ 438, -1, -1, 441, 442, 443, 444, 445, 446, 447,
+ -1, 449, -1, 451, 452, 453, 454, -1, -1, 457,
+ -1, -1, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
+ 478, 479, 3, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
+ 21, 22, 23, 24, 25, 26, 27, -1, 29, 30,
+ 31, -1, -1, -1, -1, -1, -1, -1, 39, 40,
+ 41, -1, 43, 44, 45, 46, -1, 48, 49, 50,
+ 51, 52, -1, 54, 55, -1, 57, 58, 59, 60,
+ 61, 62, 63, -1, -1, 66, 67, 68, 69, 70,
+ -1, 72, 73, 74, 75, 76, -1, -1, -1, 80,
+ 81, 82, 83, 84, 85, -1, 87, 88, 89, -1,
+ 91, 92, 93, 94, 95, 96, -1, -1, 99, 100,
+ 101, -1, -1, -1, -1, -1, -1, -1, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, -1, 119, -1,
+ 121, 122, 123, 124, 125, 126, 127, -1, 129, 130,
+ 131, 132, -1, -1, 135, 136, 137, 138, 139, -1,
+ 141, 142, 143, -1, 145, 146, 147, -1, 149, 150,
+ 151, 152, 153, 154, 155, 156, 157, 158, -1, 160,
+ -1, 162, 163, 164, 165, 166, -1, 168, -1, 170,
+ -1, -1, -1, 174, 175, 176, 177, -1, 179, 180,
+ -1, 182, 183, 184, -1, 186, 187, 188, 189, 190,
+ -1, 192, 193, 194, 195, -1, 197, 198, 199, 200,
+ 201, 202, 203, -1, 205, -1, 207, 208, 209, 210,
+ 211, 212, 213, -1, 215, -1, 217, -1, -1, 220,
+ -1, 222, 223, 224, 225, 226, -1, -1, 229, 230,
+ -1, 232, -1, -1, 235, 236, 237, -1, -1, 240,
+ 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
+ 251, 252, 253, 254, 255, 256, 257, 258, -1, 260,
+ 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
+ -1, 272, 273, -1, 275, -1, 277, 278, 279, 280,
+ 281, 282, -1, 284, 285, -1, -1, 288, 289, 290,
+ -1, -1, 293, 294, 295, -1, 297, -1, 299, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, -1,
+ 311, 312, 313, 314, 315, 316, 317, 318, -1, 320,
+ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 334, -1, 336, 337, 338, 339, 340,
+ 341, 342, 343, 344, 345, 346, 347, 348, -1, 350,
+ 351, -1, 353, 354, 355, 356, 357, 358, 359, 360,
+ 361, 362, 363, 364, 365, 366, 367, -1, 369, 370,
+ 371, 372, 373, -1, 375, 376, 377, 378, 379, -1,
+ 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
+ -1, 402, 403, -1, 405, -1, 407, 408, 409, 410,
+ 411, -1, 413, 414, 415, -1, -1, 418, 419, 420,
+ 421, 422, -1, 424, 425, 426, 427, 428, 429, 430,
+ 431, -1, -1, 434, 435, 436, 437, 438, -1, -1,
+ 441, 442, 443, 444, 445, 446, 447, -1, 449, -1,
+ 451, 452, 453, 454, -1, -1, 457, -1, -1, 460,
+ 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
+ 471, 472, 473, 474, 475, 476, 477, 478, 479, 3,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
+ 24, 25, 26, 27, -1, 29, 30, 31, -1, -1,
+ -1, -1, -1, -1, -1, 39, 40, 41, -1, 43,
+ 44, 45, 46, -1, 48, 49, 50, 51, 52, -1,
+ 54, 55, -1, 57, 58, 59, 60, 61, 62, 63,
+ -1, -1, 66, 67, 68, 69, 70, -1, 72, 73,
+ 74, 75, 76, -1, -1, -1, 80, 81, 82, 83,
+ 84, 85, -1, 87, 88, 89, -1, 91, 92, 93,
+ 94, 95, 96, -1, -1, 99, 100, 101, -1, -1,
+ -1, -1, -1, -1, -1, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, -1, 119, -1, 121, 122, 123,
+ 124, 125, 126, 127, -1, 129, 130, 131, 132, -1,
+ -1, 135, 136, 137, 138, 139, -1, 141, 142, 143,
+ -1, 145, 146, 147, -1, 149, 150, 151, 152, 153,
+ 154, 155, 156, 157, 158, -1, 160, -1, 162, 163,
+ 164, 165, 166, -1, 168, -1, 170, -1, -1, -1,
+ 174, 175, 176, 177, -1, 179, 180, -1, 182, 183,
+ 184, -1, 186, 187, 188, 189, 190, -1, 192, 193,
+ 194, 195, -1, 197, 198, 199, 200, 201, 202, 203,
+ -1, 205, -1, 207, 208, 209, 210, 211, 212, 213,
+ -1, 215, -1, 217, -1, -1, 220, -1, 222, 223,
+ 224, 225, 226, -1, -1, 229, 230, -1, 232, -1,
+ -1, 235, 236, 237, -1, -1, 240, 241, 242, 243,
+ 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 258, -1, 260, 261, 262, 263,
+ 264, 265, 266, 267, 268, 269, 270, -1, 272, 273,
+ -1, 275, -1, 277, 278, 279, 280, 281, 282, -1,
+ 284, 285, -1, -1, 288, 289, 290, -1, -1, 293,
+ 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, -1, 311, 312, 313,
+ 314, 315, 316, 317, 318, -1, 320, 321, 322, 323,
+ 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
+ 334, -1, 336, 337, 338, 339, 340, 341, 342, 343,
+ 344, 345, 346, 347, 348, -1, 350, 351, -1, 353,
+ 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
+ 364, 365, 366, 367, -1, 369, 370, 371, 372, 373,
+ -1, 375, 376, 377, 378, 379, -1, 381, 382, 383,
+ 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 399, 400, -1, 402, 403,
+ -1, 405, -1, 407, 408, 409, 410, 411, -1, 413,
+ 414, 415, -1, -1, 418, 419, 420, 421, 422, -1,
+ 424, 425, 426, 427, 428, 429, 430, 431, -1, -1,
+ 434, 435, 436, 437, 438, -1, -1, 441, 442, 443,
+ 444, 445, 446, 447, -1, 449, -1, 451, 452, 453,
+ 454, -1, -1, 457, -1, -1, 460, 461, 462, 463,
+ 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
+ 474, 475, 476, 477, 478, 479, 3, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
+ 27, -1, 29, 30, 31, -1, -1, -1, -1, -1,
+ -1, -1, 39, 40, 41, -1, 43, 44, 45, 46,
+ -1, 48, 49, 50, 51, 52, -1, 54, 55, -1,
+ 57, 58, 59, 60, 61, 62, 63, -1, -1, 66,
+ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76,
+ -1, -1, -1, 80, 81, 82, 83, 84, 85, -1,
+ 87, 88, 89, -1, 91, 92, 93, 94, 95, 96,
+ -1, -1, 99, 100, 101, -1, -1, -1, -1, -1,
+ -1, -1, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, -1, 119, -1, 121, 122, 123, 124, 125, 126,
+ 127, -1, 129, 130, 131, 132, -1, -1, 135, 136,
+ 137, 138, 139, -1, 141, 142, 143, -1, 145, 146,
+ 147, -1, 149, 150, 151, 152, 153, 154, 155, 156,
+ 157, 158, -1, 160, -1, 162, 163, 164, 165, 166,
+ -1, 168, -1, 170, -1, -1, -1, 174, 175, 176,
+ 177, -1, 179, 180, -1, 182, 183, 184, -1, 186,
+ 187, 188, 189, 190, -1, 192, 193, 194, 195, -1,
+ 197, 198, 199, 200, 201, 202, 203, -1, 205, -1,
+ 207, 208, 209, 210, 211, 212, 213, -1, 215, -1,
+ 217, -1, -1, 220, -1, 222, 223, 224, 225, 226,
+ -1, -1, 229, 230, -1, 232, -1, -1, 235, 236,
+ 237, -1, -1, 240, 241, 242, 243, 244, 245, 246,
+ 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
+ 257, 258, -1, 260, 261, 262, 263, 264, 265, 266,
+ 267, 268, 269, 270, -1, 272, 273, -1, 275, -1,
+ 277, 278, 279, 280, 281, 282, -1, 284, 285, -1,
+ -1, 288, 289, 290, -1, -1, 293, 294, 295, -1,
+ 297, -1, 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, -1, 311, 312, 313, 314, 315, 316,
+ 317, 318, -1, 320, 321, 322, 323, 324, 325, 326,
+ 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
+ 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
+ 347, 348, -1, 350, 351, -1, 353, 354, 355, 356,
+ 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
+ 367, -1, 369, 370, 371, 372, 373, -1, 375, 376,
+ 377, 378, 379, -1, 381, 382, 383, 384, -1, 386,
+ 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 399, 400, -1, 402, 403, -1, 405, -1,
+ 407, 408, 409, 410, 411, -1, 413, 414, 415, -1,
+ -1, 418, 419, 420, 421, 422, -1, 424, 425, 426,
+ 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
+ 437, 438, -1, -1, 441, 442, 443, 444, 445, 446,
+ 447, -1, 449, -1, 451, 452, 453, 454, -1, -1,
+ 457, -1, -1, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
+ 477, 478, 479, 3, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
+ 30, 31, -1, -1, -1, -1, -1, -1, -1, 39,
+ 40, 41, -1, 43, 44, 45, 46, -1, 48, 49,
+ 50, 51, 52, -1, 54, 55, -1, 57, 58, 59,
+ 60, 61, 62, 63, -1, -1, 66, 67, 68, 69,
+ 70, -1, 72, 73, 74, 75, 76, -1, -1, -1,
+ 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
+ -1, 91, 92, 93, 94, 95, 96, -1, -1, 99,
+ 100, 101, -1, -1, -1, -1, -1, -1, -1, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, -1, 119,
+ -1, 121, 122, 123, 124, 125, 126, 127, -1, 129,
+ 130, 131, 132, -1, -1, 135, 136, 137, 138, 139,
+ -1, 141, 142, 143, -1, 145, 146, 147, -1, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, -1,
+ 160, -1, 162, 163, 164, 165, 166, -1, 168, -1,
+ 170, -1, -1, -1, 174, 175, 176, 177, -1, 179,
+ 180, -1, 182, 183, 184, -1, 186, 187, 188, 189,
+ 190, -1, 192, 193, 194, 195, -1, 197, 198, 199,
+ 200, 201, 202, 203, -1, 205, -1, 207, 208, 209,
+ 210, 211, 212, 213, -1, 215, -1, 217, -1, -1,
+ 220, -1, 222, 223, 224, 225, 226, -1, -1, 229,
+ 230, -1, 232, -1, -1, 235, 236, 237, -1, -1,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, -1,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, -1, 272, 273, -1, 275, -1, 277, 278, 279,
+ 280, 281, 282, -1, 284, 285, -1, -1, 288, 289,
+ 290, -1, -1, 293, 294, 295, -1, 297, -1, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ -1, 311, 312, 313, 314, 315, 316, 317, 318, -1,
+ 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
+ 330, 331, 332, 333, 334, -1, 336, 337, 338, 339,
+ 340, 341, 342, 343, 344, 345, 346, 347, 348, -1,
+ 350, 351, -1, 353, 354, 355, 356, 357, 358, 359,
+ 360, 361, 362, 363, 364, 365, 366, 367, -1, 369,
+ 370, 371, 372, 373, -1, 375, 376, 377, 378, 379,
+ -1, 381, 382, 383, 384, -1, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
+ 400, -1, 402, 403, -1, 405, -1, 407, 408, 409,
+ 410, 411, -1, 413, 414, 415, -1, -1, 418, 419,
+ 420, 421, 422, -1, 424, 425, 426, 427, 428, 429,
+ 430, 431, -1, -1, 434, 435, 436, 437, 438, -1,
+ -1, 441, 442, 443, 444, 445, 446, 447, -1, 449,
+ -1, 451, 452, 453, 454, -1, -1, 457, -1, -1,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
+ 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
+ 23, 24, 25, 26, 27, -1, 29, 30, 31, -1,
+ -1, -1, -1, -1, -1, -1, 39, 40, 41, -1,
+ 43, 44, 45, 46, -1, 48, 49, 50, 51, 52,
+ -1, 54, 55, -1, 57, 58, 59, 60, 61, 62,
+ 63, -1, -1, 66, 67, 68, 69, 70, -1, 72,
+ 73, 74, 75, 76, -1, -1, -1, 80, 81, 82,
+ 83, 84, 85, -1, 87, 88, 89, -1, 91, 92,
+ 93, 94, 95, 96, -1, -1, 99, 100, 101, -1,
+ -1, -1, -1, -1, -1, -1, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, -1, 119, -1, 121, 122,
+ 123, 124, 125, 126, 127, -1, 129, 130, 131, 132,
+ -1, -1, 135, 136, 137, 138, 139, -1, 141, 142,
+ 143, -1, 145, 146, 147, -1, 149, 150, 151, 152,
+ 153, 154, 155, 156, 157, 158, -1, 160, -1, 162,
+ 163, 164, 165, 166, -1, 168, -1, 170, -1, -1,
+ -1, 174, 175, 176, 177, -1, 179, 180, -1, 182,
+ 183, 184, -1, 186, 187, 188, 189, 190, -1, 192,
+ 193, 194, 195, -1, 197, 198, 199, 200, 201, 202,
+ 203, -1, 205, -1, 207, 208, 209, 210, 211, 212,
+ 213, -1, 215, -1, 217, -1, -1, 220, -1, 222,
+ 223, 224, 225, 226, -1, -1, 229, 230, -1, 232,
+ -1, -1, 235, 236, 237, -1, -1, 240, 241, 242,
+ 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
+ 253, 254, 255, 256, 257, 258, -1, 260, 261, 262,
+ 263, 264, 265, 266, 267, 268, 269, 270, -1, 272,
+ 273, -1, 275, -1, 277, 278, 279, 280, 281, 282,
+ -1, 284, 285, -1, -1, 288, 289, 290, -1, -1,
+ 293, 294, 295, -1, 297, -1, 299, 300, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, -1, 311, 312,
+ 313, 314, 315, 316, 317, 318, -1, 320, 321, 322,
+ 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
+ 333, 334, -1, 336, 337, 338, 339, 340, 341, 342,
+ 343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
+ 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
+ 363, 364, 365, 366, 367, -1, 369, 370, 371, 372,
+ 373, -1, 375, 376, 377, 378, 379, -1, 381, 382,
+ 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 399, 400, -1, 402,
+ 403, -1, 405, -1, 407, 408, 409, 410, 411, -1,
+ 413, 414, 415, -1, -1, 418, 419, 420, 421, 422,
+ -1, 424, 425, 426, 427, 428, 429, 430, 431, -1,
+ -1, 434, 435, 436, 437, 438, -1, -1, 441, 442,
+ 443, 444, 445, 446, 447, -1, 449, -1, 451, 452,
+ 453, 454, -1, -1, 457, -1, -1, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
+ 473, 474, 475, 476, 477, 478, 479, 3, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
+ 26, 27, -1, 29, 30, 31, -1, -1, -1, -1,
+ -1, -1, -1, 39, 40, 41, -1, 43, 44, 45,
+ 46, -1, 48, 49, 50, 51, 52, -1, 54, 55,
+ -1, 57, 58, 59, 60, 61, 62, 63, -1, -1,
+ 66, 67, 68, 69, 70, -1, 72, 73, 74, 75,
+ 76, -1, -1, -1, 80, 81, 82, 83, 84, 85,
+ -1, 87, 88, 89, -1, 91, 92, 93, 94, 95,
+ 96, -1, -1, 99, 100, 101, -1, -1, -1, -1,
+ -1, -1, -1, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, -1, 119, -1, 121, 122, 123, 124, 125,
+ 126, 127, -1, 129, 130, 131, 132, -1, -1, 135,
+ 136, 137, 138, 139, -1, 141, 142, 143, -1, 145,
+ 146, 147, -1, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, -1, 160, -1, 162, 163, 164, 165,
+ 166, -1, 168, -1, 170, -1, -1, -1, 174, 175,
+ 176, 177, -1, 179, 180, -1, 182, 183, 184, -1,
+ 186, 187, 188, 189, 190, -1, 192, 193, 194, 195,
+ -1, 197, 198, 199, 200, 201, 202, 203, -1, 205,
+ -1, 207, 208, 209, 210, 211, 212, 213, -1, 215,
+ -1, 217, -1, -1, 220, -1, 222, 223, 224, 225,
+ 226, -1, -1, 229, 230, -1, 232, -1, -1, 235,
+ 236, 237, -1, -1, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 258, -1, 260, 261, 262, 263, 264, 265,
+ 266, 267, 268, 269, 270, -1, 272, 273, -1, 275,
+ -1, 277, 278, 279, 280, 281, 282, -1, 284, 285,
+ -1, -1, 288, 289, 290, -1, -1, 293, 294, 295,
+ -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, -1, 311, 312, 313, 314, 315,
+ 316, 317, 318, -1, 320, 321, 322, 323, 324, 325,
+ 326, 327, 328, 329, 330, 331, 332, 333, 334, -1,
+ 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
+ 346, 347, 348, -1, 350, 351, -1, 353, 354, 355,
+ 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
+ 366, 367, -1, 369, 370, 371, 372, 373, -1, 375,
+ 376, 377, 378, 379, -1, 381, 382, 383, 384, -1,
+ 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, 399, 400, -1, 402, 403, -1, 405,
+ -1, 407, 408, 409, 410, 411, -1, 413, 414, 415,
+ -1, -1, 418, 419, 420, 421, 422, -1, 424, 425,
+ 426, 427, 428, 429, 430, 431, -1, -1, 434, 435,
+ 436, 437, 438, -1, -1, 441, 442, 443, 444, 445,
+ 446, 447, -1, 449, -1, 451, 452, 453, 454, -1,
+ -1, 457, -1, -1, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
+ 476, 477, 478, 479, 3, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 20, 21, 22, 23, 24, 25, 26, 27, -1,
+ 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
+ 39, 40, 41, -1, 43, 44, 45, 46, -1, 48,
+ 49, 50, 51, 52, -1, 54, 55, -1, 57, 58,
+ 59, 60, 61, 62, 63, -1, -1, 66, 67, 68,
+ 69, 70, -1, 72, 73, 74, 75, 76, -1, -1,
+ -1, 80, 81, 82, 83, 84, 85, -1, 87, 88,
+ 89, -1, 91, 92, 93, 94, 95, 96, -1, -1,
+ 99, 100, 101, -1, -1, -1, -1, -1, -1, -1,
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, -1,
+ 119, -1, 121, 122, 123, 124, 125, 126, 127, -1,
+ 129, 130, 131, 132, -1, -1, 135, 136, 137, 138,
+ 139, -1, 141, 142, 143, -1, 145, 146, 147, -1,
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ -1, 160, -1, 162, 163, 164, 165, 166, -1, 168,
+ -1, 170, -1, -1, -1, 174, 175, 176, 177, -1,
+ 179, 180, -1, 182, 183, 184, -1, 186, 187, 188,
+ 189, 190, -1, 192, 193, 194, 195, -1, 197, 198,
+ 199, 200, 201, 202, 203, -1, 205, -1, 207, 208,
+ 209, 210, 211, 212, 213, -1, 215, -1, 217, -1,
+ -1, 220, -1, 222, 223, 224, 225, 226, -1, -1,
+ 229, 230, -1, 232, -1, -1, 235, 236, 237, -1,
+ -1, 240, 241, 242, 243, 244, 245, 246, 247, 248,
+ 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
+ 269, 270, -1, 272, 273, -1, 275, -1, 277, 278,
+ 279, 280, 281, 282, -1, 284, 285, -1, -1, 288,
+ 289, 290, -1, -1, 293, 294, 295, -1, 297, -1,
+ 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, -1, 311, 312, 313, 314, 315, 316, 317, 318,
+ -1, 320, 321, 322, 323, 324, 325, 326, 327, 328,
+ 329, 330, 331, 332, 333, 334, -1, 336, 337, 338,
+ 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
+ -1, 350, 351, -1, 353, 354, 355, 356, 357, 358,
+ 359, 360, 361, 362, 363, 364, 365, 366, 367, -1,
+ 369, 370, 371, 372, 373, -1, 375, 376, 377, 378,
+ 379, -1, 381, 382, 383, 384, -1, 386, 387, 388,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 399, 400, -1, 402, 403, -1, 405, -1, 407, 408,
+ 409, 410, 411, -1, 413, 414, 415, -1, -1, 418,
+ 419, 420, 421, 422, -1, 424, 425, 426, 427, 428,
+ 429, 430, 431, -1, -1, 434, 435, 436, 437, 438,
+ -1, -1, 441, 442, 443, 444, 445, 446, 447, -1,
+ 449, -1, 451, 452, 453, 454, -1, -1, 457, -1,
+ -1, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
+ 479, 3, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
+ 22, 23, 24, 25, 26, 27, -1, 29, 30, 31,
+ -1, -1, -1, -1, -1, -1, -1, 39, 40, 41,
+ -1, 43, 44, 45, 46, -1, 48, 49, 50, 51,
+ 52, -1, 54, 55, -1, 57, 58, 59, 60, 61,
+ 62, 63, -1, -1, 66, 67, 68, 69, 70, -1,
+ 72, 73, 74, 75, 76, -1, -1, -1, 80, 81,
+ 82, 83, 84, 85, -1, 87, 88, 89, -1, 91,
+ 92, 93, 94, 95, 96, -1, -1, 99, 100, 101,
+ -1, -1, -1, -1, -1, -1, -1, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, -1, 119, -1, 121,
+ 122, 123, 124, 125, 126, 127, -1, 129, 130, 131,
+ 132, -1, -1, 135, 136, 137, 138, 139, -1, 141,
+ 142, 143, -1, 145, 146, 147, -1, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, -1, 160, -1,
+ 162, 163, 164, 165, 166, -1, 168, -1, 170, -1,
+ -1, -1, 174, 175, 176, 177, -1, 179, 180, -1,
+ 182, 183, 184, -1, 186, 187, 188, 189, 190, -1,
+ 192, 193, 194, 195, -1, 197, 198, 199, 200, 201,
+ 202, 203, -1, 205, -1, 207, 208, 209, 210, 211,
+ 212, 213, -1, 215, -1, 217, -1, -1, 220, -1,
+ 222, 223, 224, 225, 226, -1, -1, 229, 230, -1,
+ 232, -1, -1, 235, 236, 237, -1, -1, 240, 241,
+ 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
+ 252, 253, 254, 255, 256, 257, 258, -1, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, -1,
+ 272, 273, -1, 275, -1, 277, 278, 279, 280, 281,
+ 282, -1, 284, 285, -1, -1, 288, 289, 290, -1,
+ -1, 293, 294, 295, -1, 297, -1, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, -1, 311,
+ 312, 313, 314, 315, 316, 317, 318, -1, 320, 321,
+ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
+ 332, 333, 334, -1, 336, 337, 338, 339, 340, 341,
+ 342, 343, 344, 345, 346, 347, 348, -1, 350, 351,
+ -1, 353, 354, 355, 356, 357, 358, 359, 360, 361,
+ 362, 363, 364, 365, 366, 367, -1, 369, 370, 371,
+ 372, 373, -1, 375, 376, 377, 378, 379, -1, 381,
+ 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 399, 400, -1,
+ 402, 403, -1, 405, -1, 407, 408, 409, 410, 411,
+ -1, 413, 414, 415, -1, -1, 418, 419, 420, 421,
+ 422, -1, 424, 425, 426, 427, 428, 429, 430, 431,
+ -1, -1, 434, 435, 436, 437, 438, -1, -1, 441,
+ 442, 443, 444, 445, 446, 447, -1, 449, -1, 451,
+ 452, 453, 454, -1, -1, 457, -1, -1, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
+ 472, 473, 474, 475, 476, 477, 478, 479, 3, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
+ 25, 26, 27, -1, 29, 30, 31, -1, -1, -1,
+ -1, -1, -1, -1, 39, 40, 41, -1, 43, 44,
+ 45, 46, 47, 48, 49, 50, -1, 52, 53, 54,
+ 55, -1, 57, 58, 59, 60, 61, 62, 63, -1,
+ -1, 66, 67, 68, 69, 70, -1, 72, 73, 74,
+ 75, -1, -1, 78, -1, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 89, -1, 91, 92, 93, 94,
+ 95, 96, -1, 98, 99, 100, 101, -1, -1, -1,
+ 105, -1, -1, -1, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, -1, 119, -1, 121, 122, 123, 124,
+ 125, 126, 127, -1, 129, 130, 131, 132, -1, -1,
+ 135, 136, 137, 138, 139, -1, 141, 142, 143, -1,
+ 145, 146, 147, -1, 149, 150, 151, 152, -1, 154,
+ 155, 156, 157, -1, -1, 160, -1, 162, 163, 164,
+ 165, 166, -1, 168, -1, 170, 171, -1, 173, 174,
+ 175, 176, 177, -1, 179, -1, -1, -1, 183, 184,
+ -1, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+ 195, 196, 197, 198, 199, 200, 201, 202, 203, -1,
+ 205, 206, 207, 208, 209, 210, 211, 212, 213, -1,
+ 215, -1, 217, 218, 219, 220, 221, 222, 223, 224,
+ 225, 226, -1, -1, 229, -1, 231, 232, 233, -1,
+ 235, 236, 237, -1, -1, 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, -1, -1, 270, -1, 272, 273, 274,
+ 275, -1, -1, 278, 279, 280, 281, 282, -1, 284,
+ 285, -1, -1, 288, 289, 290, -1, -1, 293, 294,
+ 295, 296, 297, 298, -1, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, -1, 311, 312, -1, 314,
+ -1, 316, 317, 318, -1, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ -1, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, -1, 350, 351, 352, 353, 354,
+ 355, 356, 357, -1, 359, 360, 361, 362, 363, 364,
+ 365, 366, 367, -1, 369, 370, 371, 372, 373, -1,
+ 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
+ -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, -1, 400, -1, 402, 403, -1,
+ 405, 406, 407, 408, 409, 410, 411, -1, 413, 414,
+ 415, -1, -1, 418, 419, -1, 421, -1, -1, 424,
+ 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
+ 435, 436, 437, 438, -1, -1, 441, 442, 443, 444,
+ 445, -1, 447, 448, 449, 450, 451, 452, 453, 454,
+ -1, -1, 457, -1, -1, 460, 461, 462, 463, 464,
+ 465, 3, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 477, 478, 479, -1, -1, -1, 20, 21,
+ 22, 23, 24, 25, 26, 27, -1, 29, 30, 31,
+ -1, -1, -1, -1, -1, -1, -1, 39, 40, 41,
+ -1, 43, 44, 45, 46, -1, 48, 49, 50, 51,
+ 52, -1, 54, 55, -1, 57, 58, 59, 60, 61,
+ 62, 63, -1, -1, 66, 67, 68, 69, 70, -1,
+ 72, 73, 74, 75, 76, -1, -1, -1, 80, 81,
+ 82, 83, 84, 85, -1, 87, 88, 89, -1, 91,
+ 92, 93, 94, 95, 96, -1, -1, 99, 100, 101,
+ -1, -1, -1, -1, -1, -1, -1, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, -1, 119, -1, 121,
+ 122, 123, 124, 125, 126, 127, -1, 129, 130, 131,
+ 132, -1, -1, 135, 136, 137, 138, 139, -1, 141,
+ 142, 143, -1, 145, 146, 147, -1, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, -1, 160, -1,
+ 162, 163, 164, 165, 166, -1, 168, -1, 170, -1,
+ -1, -1, 174, 175, 176, 177, -1, 179, 180, -1,
+ 182, -1, 184, -1, 186, 187, 188, 189, 190, -1,
+ 192, 193, 194, 195, -1, 197, 198, 199, 200, 201,
+ 202, 203, -1, 205, -1, 207, 208, 209, 210, 211,
+ 212, 213, -1, 215, -1, 217, -1, -1, 220, -1,
+ 222, 223, 224, 225, 226, -1, -1, 229, 230, -1,
+ 232, -1, -1, 235, 236, 237, -1, -1, 240, 241,
+ 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
+ 252, 253, 254, 255, 256, 257, 258, -1, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, -1,
+ 272, 273, -1, 275, -1, 277, 278, 279, 280, 281,
+ 282, -1, 284, 285, -1, -1, 288, 289, 290, -1,
+ -1, 293, 294, 295, -1, 297, -1, 299, 300, 301,
+ 302, 303, 304, 305, 306, -1, 308, 309, -1, 311,
+ 312, 313, 314, 315, 316, 317, 318, -1, 320, 321,
+ 322, 323, 324, 325, 326, 327, -1, 329, 330, 331,
+ 332, 333, 334, -1, 336, 337, 338, 339, 340, 341,
+ 342, 343, 344, 345, 346, 347, 348, -1, 350, 351,
+ -1, 353, 354, 355, 356, 357, 358, -1, 360, 361,
+ 362, 363, 364, 365, 366, 367, -1, 369, 370, 371,
+ 372, 373, -1, 375, 376, 377, 378, 379, -1, 381,
+ 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 399, 400, -1,
+ 402, 403, -1, 405, -1, 407, 408, 409, 410, 411,
+ -1, 413, 414, 415, -1, -1, 418, 419, 420, 421,
+ 422, -1, 424, 425, 426, 427, 428, 429, 430, 431,
+ -1, -1, 434, 435, 436, 437, 438, -1, -1, 441,
+ 442, 443, 444, 445, 446, 447, -1, 449, -1, 451,
+ 452, 453, 454, -1, -1, 457, -1, -1, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
+ 472, 473, 474, 475, 476, 477, 478, 479, 3, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
+ 25, 26, 27, -1, 29, 30, 31, -1, -1, -1,
+ -1, -1, -1, -1, 39, 40, 41, -1, 43, 44,
+ 45, 46, 47, 48, 49, 50, -1, 52, 53, 54,
+ 55, -1, 57, 58, 59, 60, 61, 62, 63, -1,
+ -1, 66, 67, 68, 69, 70, -1, 72, 73, 74,
+ 75, -1, -1, 78, -1, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 89, -1, 91, 92, 93, 94,
+ 95, 96, -1, 98, 99, 100, 101, -1, -1, -1,
+ 105, -1, -1, -1, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, -1, 119, -1, 121, 122, 123, 124,
+ 125, 126, 127, -1, 129, 130, 131, 132, -1, -1,
+ 135, 136, 137, 138, 139, -1, 141, 142, 143, -1,
+ 145, 146, 147, -1, 149, 150, 151, 152, -1, 154,
+ 155, 156, 157, -1, -1, 160, -1, 162, 163, 164,
+ 165, 166, -1, 168, -1, 170, 171, -1, 173, 174,
+ 175, 176, 177, -1, 179, -1, -1, -1, 183, 184,
+ -1, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+ 195, -1, 197, 198, 199, 200, 201, 202, 203, -1,
+ 205, 206, -1, 208, 209, 210, 211, 212, 213, -1,
+ 215, -1, 217, 218, 219, 220, 221, 222, 223, 224,
+ 225, 226, -1, -1, 229, -1, 231, 232, 233, -1,
+ 235, 236, 237, -1, -1, 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, -1, -1, 270, -1, 272, 273, 274,
+ 275, 276, -1, 278, 279, 280, 281, 282, -1, 284,
+ 285, -1, -1, 288, 289, 290, -1, -1, 293, 294,
+ -1, 296, 297, 298, -1, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, -1, 311, 312, -1, 314,
+ -1, 316, 317, 318, -1, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ -1, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, -1, 350, 351, 352, 353, 354,
+ 355, 356, 357, -1, 359, 360, 361, 362, 363, 364,
+ 365, 366, 367, -1, 369, 370, 371, 372, 373, -1,
+ 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
+ -1, 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, -1, 413, 414,
+ 415, -1, -1, 418, 419, -1, 421, -1, -1, 424,
+ 425, 426, 427, 428, 429, 430, 431, -1, -1, 434,
+ 435, 436, 437, 438, -1, -1, 441, 442, 443, 444,
+ 445, -1, 447, -1, 449, 450, 451, 452, 453, 454,
+ -1, -1, 457, -1, -1, 460, 461, 462, 463, 464,
+ 465, 3, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 477, 478, 479, -1, -1, -1, 20, 21,
+ 22, 23, 24, 25, 26, 27, -1, 29, 30, 31,
+ -1, -1, -1, -1, -1, -1, -1, 39, 40, 41,
+ -1, 43, 44, 45, 46, 47, 48, 49, 50, -1,
+ 52, 53, 54, 55, -1, 57, 58, 59, 60, 61,
+ 62, 63, -1, -1, 66, 67, 68, 69, 70, -1,
+ 72, 73, 74, 75, -1, -1, 78, -1, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, -1, 91,
+ 92, 93, 94, 95, 96, -1, 98, 99, 100, 101,
+ -1, -1, -1, 105, -1, -1, -1, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, -1, 119, -1, 121,
+ 122, 123, 124, 125, 126, 127, -1, 129, 130, 131,
+ 132, -1, -1, 135, 136, 137, 138, 139, -1, 141,
+ 142, 143, -1, 145, 146, 147, -1, 149, 150, 151,
+ 152, -1, 154, 155, 156, 157, -1, -1, 160, -1,
+ 162, 163, 164, 165, 166, -1, 168, -1, 170, 171,
+ -1, 173, 174, 175, 176, 177, -1, 179, -1, -1,
+ -1, 183, 184, -1, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, -1, 197, 198, 199, 200, 201,
+ 202, 203, -1, 205, 206, -1, 208, 209, 210, 211,
+ 212, 213, -1, 215, -1, 217, 218, 219, 220, 221,
+ 222, 223, 224, 225, 226, -1, -1, 229, -1, 231,
+ 232, 233, -1, 235, 236, 237, -1, -1, 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, -1, 270, -1,
+ 272, 273, 274, 275, -1, -1, 278, 279, 280, 281,
+ 282, -1, 284, 285, -1, -1, 288, 289, 290, -1,
+ -1, 293, 294, -1, 296, 297, 298, -1, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, -1, 311,
+ 312, -1, 314, -1, 316, 317, 318, -1, 320, 321,
+ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
+ 332, 333, 334, -1, 336, 337, 338, 339, 340, 341,
+ 342, 343, 344, 345, 346, 347, 348, -1, 350, 351,
+ 352, 353, 354, 355, 356, 357, -1, 359, 360, 361,
+ 362, 363, 364, 365, 366, 367, -1, 369, 370, 371,
+ 372, 373, -1, 375, 376, 377, 378, 379, 380, 381,
+ 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, -1, 400, -1,
+ 402, 403, -1, 405, 406, 407, 408, 409, 410, 411,
+ -1, 413, 414, 415, -1, -1, 418, 419, -1, 421,
+ -1, -1, 424, 425, 426, 427, 428, 429, 430, 431,
+ -1, -1, 434, 435, 436, 437, 438, -1, -1, 441,
+ 442, 443, 444, 445, -1, 447, -1, 449, 450, 451,
+ 452, 453, 454, -1, -1, 457, -1, -1, 460, 461,
+ 462, 463, 464, 465, 3, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 477, 478, 479, -1, -1,
+ -1, 20, 21, 22, 23, 24, 25, 26, 27, -1,
+ 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
+ 39, 40, 41, -1, 43, 44, 45, 46, 47, 48,
+ 49, 50, -1, 52, 53, 54, 55, -1, 57, 58,
+ 59, 60, 61, 62, 63, -1, -1, 66, 67, 68,
+ 69, 70, -1, 72, 73, 74, 75, -1, -1, 78,
+ -1, 80, 81, 82, 83, 84, 85, 86, 87, 88,
+ 89, -1, 91, 92, 93, 94, 95, 96, -1, 98,
+ 99, 100, 101, -1, -1, -1, 105, -1, -1, -1,
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, -1,
+ 119, -1, 121, 122, 123, 124, 125, 126, 127, -1,
+ 129, 130, 131, 132, -1, -1, 135, 136, 137, 138,
+ 139, -1, 141, 142, 143, -1, 145, 146, 147, -1,
+ 149, 150, 151, 152, -1, 154, 155, 156, 157, -1,
+ -1, 160, -1, 162, 163, 164, 165, 166, -1, 168,
+ -1, 170, 171, -1, 173, 174, 175, 176, 177, -1,
+ 179, -1, -1, -1, 183, 184, -1, 186, 187, 188,
+ 189, 190, 191, 192, 193, 194, 195, -1, 197, 198,
+ 199, 200, 201, 202, 203, -1, 205, 206, -1, 208,
+ 209, 210, 211, 212, 213, -1, 215, -1, 217, 218,
+ 219, 220, 221, 222, 223, 224, 225, 226, -1, -1,
+ 229, -1, 231, 232, 233, -1, 235, 236, 237, -1,
+ -1, 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,
+ -1, 270, -1, 272, 273, 274, 275, -1, -1, 278,
+ 279, 280, 281, 282, -1, 284, 285, -1, -1, 288,
+ 289, 290, -1, -1, 293, 294, -1, 296, 297, 298,
+ -1, 300, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, -1, 311, 312, -1, 314, -1, 316, 317, 318,
+ -1, 320, 321, 322, 323, 324, 325, 326, 327, 328,
+ 329, 330, 331, 332, 333, 334, -1, 336, 337, 338,
+ 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
+ -1, 350, 351, 352, 353, 354, 355, 356, 357, -1,
+ 359, 360, 361, 362, 363, 364, 365, 366, 367, -1,
+ 369, 370, 371, 372, 373, -1, 375, 376, 377, 378,
+ 379, 380, 381, 382, 383, 384, -1, 386, 387, 388,
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ -1, 400, -1, 402, 403, -1, 405, 406, 407, 408,
+ 409, 410, 411, -1, 413, 414, 415, -1, -1, 418,
+ 419, -1, 421, -1, -1, 424, 425, 426, 427, 428,
+ 429, 430, 431, -1, -1, 434, 435, 436, 437, 438,
+ -1, -1, 441, 442, 443, 444, 445, -1, 447, -1,
+ 449, 450, 451, 452, 453, 454, -1, -1, 457, -1,
+ -1, 460, 461, 462, 463, 464, 465, 3, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 477, 478,
+ 479, -1, -1, -1, 20, 21, 22, 23, 24, 25,
+ 26, 27, -1, 29, 30, 31, -1, -1, -1, -1,
+ -1, -1, -1, 39, 40, 41, -1, 43, 44, 45,
+ 46, 47, 48, 49, 50, -1, 52, 53, 54, 55,
+ -1, 57, 58, 59, 60, 61, 62, 63, -1, -1,
+ 66, 67, 68, 69, 70, -1, 72, 73, 74, 75,
+ -1, -1, 78, -1, 80, 81, 82, 83, 84, 85,
+ 86, 87, 88, 89, -1, 91, 92, 93, 94, 95,
+ 96, -1, 98, 99, 100, 101, -1, -1, -1, 105,
+ -1, -1, -1, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, -1, 119, -1, 121, 122, 123, 124, 125,
+ 126, 127, -1, 129, 130, 131, 132, -1, -1, 135,
+ 136, 137, 138, 139, -1, 141, 142, 143, -1, 145,
+ 146, 147, -1, 149, 150, 151, 152, -1, 154, 155,
+ 156, 157, -1, -1, 160, -1, 162, 163, 164, 165,
+ 166, 167, 168, -1, 170, 171, -1, 173, 174, 175,
+ 176, 177, -1, 179, -1, -1, -1, 183, 184, -1,
+ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
+ -1, 197, 198, 199, 200, 201, 202, 203, -1, 205,
+ 206, -1, 208, 209, 210, 211, 212, 213, -1, 215,
+ -1, 217, 218, 219, 220, 221, 222, 223, 224, 225,
+ 226, -1, -1, 229, -1, 231, 232, 233, -1, 235,
+ 236, 237, -1, -1, 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, -1, -1, 270, -1, 272, 273, 274, 275,
+ -1, -1, 278, 279, 280, 281, 282, -1, 284, 285,
+ -1, -1, 288, 289, 290, -1, -1, 293, 294, -1,
+ 296, 297, 298, -1, 300, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, -1, 311, 312, -1, 314, -1,
+ 316, 317, 318, -1, 320, 321, 322, 323, 324, 325,
+ 326, 327, 328, 329, 330, 331, 332, 333, 334, -1,
+ 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
+ 346, 347, 348, -1, 350, 351, 352, 353, 354, 355,
+ 356, 357, -1, 359, 360, 361, 362, 363, 364, 365,
+ 366, 367, -1, 369, 370, 371, 372, 373, -1, 375,
+ 376, 377, 378, 379, 380, 381, 382, 383, 384, -1,
+ 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
+ 396, 397, 398, -1, 400, -1, 402, 403, -1, 405,
+ 406, 407, 408, 409, 410, 411, -1, 413, 414, 415,
+ -1, -1, 418, 419, -1, 421, -1, -1, 424, 425,
+ 426, 427, 428, 429, 430, 431, -1, -1, 434, 435,
+ 436, 437, 438, -1, -1, 441, 442, 443, 444, 445,
+ -1, 447, -1, 449, 450, 451, 452, 453, 454, -1,
+ -1, 457, -1, -1, 460, 461, 462, 463, 464, 465,
+ 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 477, 478, 479, -1, -1, -1, 20, 21, 22,
+ 23, 24, 25, 26, 27, -1, 29, 30, 31, -1,
+ -1, -1, -1, -1, -1, -1, 39, 40, 41, -1,
+ 43, 44, 45, 46, 47, 48, 49, 50, -1, 52,
+ 53, 54, 55, -1, 57, 58, 59, 60, 61, 62,
+ 63, -1, -1, 66, 67, 68, 69, 70, -1, 72,
+ 73, 74, 75, -1, -1, 78, -1, 80, 81, 82,
+ 83, 84, 85, 86, 87, 88, 89, -1, 91, 92,
+ 93, 94, 95, 96, -1, 98, 99, 100, 101, -1,
+ -1, -1, 105, -1, -1, -1, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, -1, 119, -1, 121, 122,
+ 123, 124, 125, 126, 127, -1, 129, 130, 131, 132,
+ -1, -1, 135, 136, 137, 138, 139, -1, 141, 142,
+ 143, -1, 145, 146, 147, -1, 149, 150, 151, 152,
+ -1, 154, 155, 156, 157, -1, -1, 160, -1, 162,
+ 163, 164, 165, 166, -1, 168, -1, 170, 171, -1,
+ 173, 174, 175, 176, 177, -1, 179, -1, -1, -1,
+ 183, 184, -1, 186, 187, 188, 189, 190, 191, 192,
+ 193, 194, 195, -1, 197, 198, 199, 200, 201, 202,
+ 203, -1, 205, 206, -1, 208, 209, 210, 211, 212,
+ 213, -1, 215, -1, 217, 218, 219, 220, 221, 222,
+ 223, 224, 225, 226, -1, -1, 229, -1, 231, 232,
+ 233, -1, 235, 236, 237, -1, -1, 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, -1, -1, 270, -1, 272,
+ 273, 274, 275, -1, -1, 278, 279, 280, 281, 282,
+ -1, 284, 285, -1, -1, 288, 289, 290, -1, -1,
+ 293, 294, -1, 296, 297, 298, -1, 300, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, -1, 311, 312,
+ -1, 314, -1, 316, 317, 318, -1, 320, 321, 322,
+ 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
+ 333, 334, -1, 336, 337, 338, 339, 340, 341, 342,
+ 343, 344, 345, 346, 347, 348, -1, 350, 351, 352,
+ 353, 354, 355, 356, 357, -1, 359, 360, 361, 362,
+ 363, 364, 365, 366, 367, -1, 369, 370, 371, 372,
+ 373, -1, 375, 376, 377, 378, 379, 380, 381, 382,
+ 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, -1, 400, -1, 402,
+ 403, -1, 405, 406, 407, 408, 409, 410, 411, -1,
+ 413, 414, 415, -1, -1, 418, 419, -1, 421, -1,
+ -1, 424, 425, 426, 427, 428, 429, 430, 431, -1,
+ -1, 434, 435, 436, 437, 438, -1, -1, 441, 442,
+ 443, 444, 445, -1, 447, -1, 449, 450, 451, 452,
+ 453, 454, -1, -1, 457, -1, -1, 460, 461, 462,
+ 463, 464, 465, 3, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 477, 478, 479, -1, -1, -1,
+ 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
+ 30, 31, -1, -1, -1, -1, -1, -1, -1, 39,
+ 40, 41, -1, 43, 44, 45, 46, 47, 48, 49,
+ 50, -1, 52, 53, 54, 55, -1, 57, 58, 59,
+ 60, 61, 62, 63, -1, -1, 66, 67, 68, 69,
+ 70, -1, 72, 73, 74, 75, -1, -1, 78, -1,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ -1, 91, 92, 93, 94, 95, 96, -1, 98, 99,
+ 100, 101, -1, -1, -1, 105, -1, -1, -1, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, -1, 119,
+ -1, 121, 122, 123, 124, 125, 126, 127, -1, 129,
+ 130, 131, 132, -1, -1, 135, 136, 137, 138, 139,
+ -1, 141, 142, 143, -1, 145, 146, 147, -1, 149,
+ 150, 151, 152, -1, 154, 155, 156, 157, -1, -1,
+ 160, -1, 162, 163, 164, 165, 166, -1, 168, -1,
+ 170, 171, -1, 173, 174, 175, 176, 177, -1, 179,
+ -1, -1, -1, 183, 184, -1, 186, 187, 188, 189,
+ 190, 191, 192, 193, 194, 195, -1, 197, 198, 199,
+ 200, 201, 202, 203, -1, 205, 206, -1, 208, 209,
+ 210, 211, 212, 213, -1, 215, -1, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, -1, -1, 229,
+ -1, 231, 232, 233, -1, 235, 236, 237, -1, -1,
+ 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, -1, -1,
+ 270, -1, 272, 273, 274, 275, -1, -1, 278, 279,
+ 280, 281, 282, -1, 284, 285, -1, -1, 288, 289,
+ 290, -1, -1, 293, 294, -1, 296, 297, 298, -1,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ -1, 311, 312, -1, 314, -1, 316, 317, 318, -1,
+ 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
+ 330, 331, 332, 333, 334, -1, 336, 337, 338, 339,
+ 340, 341, 342, 343, 344, 345, 346, 347, 348, -1,
+ 350, 351, 352, 353, 354, 355, 356, 357, -1, 359,
+ 360, 361, 362, 363, 364, 365, 366, 367, -1, 369,
+ 370, 371, 372, 373, -1, 375, 376, 377, 378, 379,
+ 380, 381, 382, 383, 384, -1, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, -1,
+ 400, -1, 402, 403, -1, 405, 406, 407, 408, 409,
+ 410, 411, -1, 413, 414, 415, -1, -1, 418, 419,
+ -1, 421, -1, -1, 424, 425, 426, 427, 428, 429,
+ 430, 431, -1, -1, 434, 435, 436, 437, 438, -1,
+ -1, 441, 442, 443, 444, 445, -1, 447, -1, 449,
+ 450, 451, 452, 453, 454, -1, -1, 457, -1, -1,
+ 460, 461, 462, 463, 464, 465, 3, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 477, 478, 479,
+ -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
+ 27, -1, 29, 30, 31, -1, -1, -1, -1, -1,
+ -1, -1, 39, 40, 41, -1, 43, 44, 45, 46,
+ 47, 48, 49, 50, -1, 52, 53, 54, 55, -1,
+ 57, 58, 59, 60, 61, 62, 63, -1, -1, 66,
+ 67, 68, 69, 70, -1, 72, 73, 74, 75, -1,
+ -1, 78, -1, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, -1, 91, 92, 93, 94, 95, 96,
+ -1, 98, 99, 100, 101, -1, -1, -1, 105, -1,
+ -1, -1, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, -1, 119, -1, 121, 122, 123, 124, 125, 126,
+ 127, -1, 129, 130, 131, 132, -1, -1, 135, 136,
+ 137, 138, 139, -1, 141, 142, 143, -1, 145, 146,
+ 147, -1, 149, 150, 151, 152, -1, 154, 155, 156,
+ 157, -1, -1, 160, -1, 162, 163, 164, 165, 166,
+ -1, 168, -1, 170, 171, -1, 173, 174, 175, 176,
+ 177, -1, 179, -1, -1, -1, 183, 184, -1, 186,
+ 187, 188, 189, 190, 191, 192, 193, 194, 195, -1,
+ 197, 198, 199, 200, 201, 202, 203, -1, 205, 206,
+ -1, 208, 209, 210, 211, 212, 213, -1, 215, -1,
+ 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
+ -1, -1, 229, -1, 231, 232, 233, -1, 235, 236,
+ 237, -1, -1, 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, -1, -1, 270, -1, 272, 273, 274, 275, -1,
+ -1, 278, 279, 280, 281, 282, -1, 284, 285, -1,
+ -1, 288, 289, 290, -1, -1, 293, 294, -1, 296,
+ 297, 298, -1, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, -1, 311, 312, -1, 314, -1, 316,
+ 317, 318, -1, 320, 321, 322, 323, 324, 325, 326,
+ 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
+ 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
+ 347, 348, -1, 350, 351, 352, 353, 354, 355, 356,
+ 357, -1, 359, 360, 361, 362, 363, 364, 365, 366,
+ 367, -1, 369, 370, 371, 372, 373, -1, 375, 376,
+ 377, 378, 379, 380, 381, 382, 383, 384, -1, 386,
+ 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, -1, 400, -1, 402, 403, -1, 405, 406,
+ 407, 408, 409, 410, 411, -1, 413, 414, 415, -1,
+ -1, 418, 419, -1, 421, -1, -1, 424, 425, 426,
+ 427, 428, 429, 430, 431, -1, -1, 434, 435, 436,
+ 437, 438, -1, -1, 441, 442, 443, 444, 445, -1,
+ 447, -1, 449, 450, 451, 452, 453, 454, -1, -1,
+ 457, -1, -1, 460, 461, 462, 463, 464, 465, 3,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 477, 478, 479, -1, -1, -1, 20, 21, 22, 23,
+ 24, 25, 26, 27, -1, 29, 30, 31, -1, -1,
+ -1, -1, -1, -1, -1, 39, 40, 41, -1, 43,
+ 44, 45, 46, 47, 48, 49, 50, -1, 52, 53,
+ 54, 55, -1, 57, 58, 59, 60, 61, 62, 63,
+ -1, -1, 66, 67, 68, 69, 70, -1, 72, 73,
+ 74, 75, -1, -1, 78, -1, 80, 81, 82, 83,
+ 84, 85, 86, 87, 88, 89, -1, 91, 92, 93,
+ 94, 95, 96, -1, 98, 99, 100, 101, -1, -1,
+ -1, 105, -1, -1, -1, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, -1, 119, -1, 121, 122, 123,
+ 124, 125, 126, 127, -1, 129, 130, 131, 132, -1,
+ -1, 135, 136, 137, 138, 139, -1, 141, 142, 143,
+ -1, 145, 146, 147, -1, 149, 150, 151, 152, -1,
+ 154, 155, 156, 157, -1, -1, 160, -1, 162, 163,
+ 164, 165, 166, -1, 168, -1, 170, 171, -1, 173,
+ 174, 175, 176, 177, -1, 179, -1, -1, -1, 183,
+ 184, -1, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, -1, 197, 198, 199, 200, 201, 202, 203,
+ -1, 205, 206, -1, 208, 209, 210, 211, 212, 213,
+ -1, 215, -1, 217, 218, 219, 220, 221, 222, 223,
+ 224, 225, 226, -1, -1, 229, -1, 231, 232, 233,
+ -1, 235, 236, 237, -1, -1, 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, -1, -1, 270, -1, 272, 273,
+ 274, 275, -1, -1, 278, 279, 280, 281, 282, -1,
+ 284, 285, -1, -1, 288, 289, 290, -1, -1, 293,
+ 294, -1, 296, 297, 298, -1, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, -1, 311, 312, -1,
+ 314, -1, 316, 317, 318, -1, 320, 321, 322, 323,
+ 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
+ 334, -1, 336, 337, 338, 339, 340, 341, 342, 343,
+ 344, 345, 346, 347, 348, -1, 350, 351, 352, 353,
+ 354, 355, 356, 357, -1, 359, 360, 361, 362, 363,
+ 364, 365, 366, 367, -1, 369, 370, 371, 372, 373,
+ -1, 375, 376, 377, 378, 379, 380, 381, 382, 383,
+ 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, -1, 400, -1, 402, 403,
+ -1, 405, 406, 407, 408, 409, 410, 411, -1, 413,
+ 414, 415, -1, -1, 418, 419, -1, 421, -1, -1,
+ 424, 425, 426, 427, 428, 429, 430, 431, -1, -1,
+ 434, 435, 436, 437, 438, -1, -1, 441, 442, 443,
+ 444, 445, -1, 447, -1, 449, 450, 451, 452, 453,
+ 454, -1, -1, 457, -1, -1, 460, 461, 462, 463,
+ 464, 465, 3, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 477, 478, 479, -1, -1, -1, 20,
+ 21, 22, 23, 24, 25, 26, 27, -1, 29, 30,
+ 31, -1, -1, -1, -1, -1, -1, -1, 39, 40,
+ 41, -1, 43, 44, 45, 46, 47, 48, 49, 50,
+ -1, 52, 53, 54, 55, -1, 57, 58, 59, 60,
+ 61, 62, 63, -1, -1, 66, 67, 68, 69, 70,
+ -1, 72, 73, 74, 75, -1, -1, 78, -1, 80,
+ 81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
+ 91, 92, 93, 94, 95, 96, -1, 98, 99, 100,
+ 101, -1, -1, -1, 105, -1, -1, -1, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, -1, 119, -1,
+ 121, 122, 123, 124, 125, 126, 127, -1, 129, 130,
+ 131, 132, -1, -1, 135, 136, 137, 138, 139, -1,
+ 141, 142, 143, -1, 145, 146, 147, -1, 149, 150,
+ 151, 152, -1, 154, 155, 156, 157, -1, -1, 160,
+ -1, 162, 163, 164, 165, 166, -1, 168, -1, 170,
+ 171, -1, 173, 174, 175, 176, 177, -1, 179, -1,
+ -1, -1, 183, 184, -1, 186, 187, 188, 189, 190,
+ 191, 192, 193, 194, 195, -1, 197, 198, 199, 200,
+ 201, 202, 203, -1, 205, 206, -1, 208, 209, 210,
+ 211, 212, 213, -1, 215, -1, 217, 218, 219, 220,
+ 221, 222, 223, 224, 225, 226, -1, -1, 229, -1,
+ 231, 232, 233, -1, 235, 236, 237, -1, -1, 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, -1, -1, 270,
+ -1, 272, 273, 274, 275, -1, -1, 278, 279, 280,
+ 281, 282, -1, 284, 285, -1, -1, 288, 289, 290,
+ -1, -1, 293, 294, -1, 296, 297, 298, -1, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, -1,
+ 311, 312, -1, 314, -1, 316, 317, 318, -1, 320,
+ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 334, -1, 336, 337, 338, 339, 340,
+ 341, 342, 343, 344, 345, 346, 347, 348, -1, 350,
+ 351, 352, 353, 354, 355, 356, 357, -1, 359, 360,
+ 361, 362, 363, 364, 365, 366, 367, -1, 369, 370,
+ 371, 372, 373, -1, 375, 376, -1, 378, 379, 380,
+ 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, -1, 400,
+ -1, 402, 403, -1, 405, 406, 407, 408, 409, 410,
+ 411, -1, 413, 414, 415, -1, -1, 418, 419, -1,
+ 421, -1, -1, 424, 425, 426, 427, 428, 429, 430,
+ 431, -1, -1, 434, 435, 436, 437, 438, -1, -1,
+ 441, 442, 443, 444, 445, -1, 447, -1, 449, 450,
+ 451, 452, 453, 454, -1, -1, 457, -1, -1, 460,
+ 461, 462, 463, 464, 465, 3, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 477, 478, 479, -1,
+ -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
+ -1, 29, 30, 31, -1, -1, -1, -1, -1, -1,
+ -1, 39, 40, 41, -1, 43, 44, 45, 46, 47,
+ 48, 49, 50, -1, -1, 53, -1, -1, -1, 57,
+ 58, 59, 60, 61, 62, 63, -1, -1, 66, 67,
+ -1, -1, 70, -1, 72, 73, 74, 75, -1, -1,
+ 78, -1, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, -1, 91, 92, 93, 94, 95, 96, -1,
+ 98, 99, 100, 101, -1, -1, -1, 105, -1, -1,
+ -1, 109, 110, 111, 112, 113, 114, -1, -1, 117,
+ -1, 119, -1, 121, 122, 123, 124, 125, 126, 127,
+ -1, 129, 130, 131, 132, -1, -1, 135, 136, 137,
+ 138, 139, -1, 141, 142, 143, -1, 145, 146, 147,
+ -1, 149, 150, 151, 152, -1, 154, 155, 156, 157,
+ -1, -1, 160, -1, 162, 163, 164, -1, 166, -1,
+ 168, -1, 170, 171, -1, 173, 174, 175, 176, 177,
+ -1, 179, -1, -1, -1, 183, 184, -1, 186, 187,
+ 188, 189, 190, 191, 192, 193, 194, 195, -1, 197,
+ 198, 199, 200, 201, 202, 203, -1, 205, 206, -1,
+ 208, 209, 210, 211, -1, -1, -1, -1, -1, 217,
+ 218, 219, 220, 221, 222, 223, 224, 225, 226, -1,
+ -1, 229, -1, 231, 232, 233, -1, 235, 236, 237,
+ -1, -1, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
+ -1, 259, -1, 261, 262, 263, 264, 265, 266, 267,
+ -1, -1, 270, -1, 272, 273, 274, 275, -1, -1,
+ 278, -1, 280, 281, 282, -1, 284, 285, -1, -1,
+ 288, 289, 290, -1, -1, 293, 294, -1, 296, 297,
+ 298, -1, 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, -1, 311, 312, -1, 314, -1, 316, 317,
+ 318, -1, 320, 321, 322, 323, 324, 325, 326, 327,
+ 328, 329, -1, 331, 332, 333, 334, -1, 336, 337,
+ 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
+ 348, -1, 350, 351, 352, 353, 354, 355, 356, 357,
+ -1, 359, 360, 361, 362, 363, 364, 365, 366, 367,
+ -1, 369, 370, 371, 372, 373, -1, 375, 376, -1,
+ 378, 379, 380, 381, 382, -1, 384, -1, 386, 387,
+ 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 398, -1, 400, -1, 402, 403, -1, 405, 406, 407,
+ 408, 409, 410, 411, -1, 413, -1, -1, -1, -1,
+ 418, 419, -1, 421, -1, -1, 424, 425, 426, 427,
+ 428, 429, 430, 431, -1, -1, 434, 435, 436, 437,
+ 438, -1, -1, 441, 442, 443, 444, 445, -1, -1,
+ -1, 449, 450, 451, 452, 453, 454, -1, -1, 457,
+ -1, -1, 460, 461, 462, 463, 464, 465, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 477,
+ 478, 479
+};
+
+ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+static const yytype_int16 yystos[] =
+{
+ 0, 20, 30, 32, 33, 50, 60, 72, 74, 75,
+ 81, 83, 95, 97, 114, 117, 132, 134, 138, 144,
+ 152, 154, 161, 178, 195, 235, 236, 241, 255, 273,
+ 317, 331, 337, 338, 340, 345, 351, 354, 361, 367,
+ 368, 375, 379, 389, 404, 424, 435, 441, 446, 459,
+ 482, 483, 484, 485, 486, 487, 500, 507, 508, 509,
+ 510, 511, 512, 518, 519, 521, 522, 523, 524, 526,
+ 530, 542, 547, 548, 551, 552, 553, 572, 575, 576,
+ 591, 638, 641, 642, 645, 648, 649, 650, 658, 665,
+ 667, 668, 671, 674, 675, 679, 688, 692, 693, 694,
+ 697, 699, 700, 701, 702, 710, 712, 732, 736, 738,
+ 739, 749, 751, 758, 759, 762, 763, 764, 765, 766,
+ 775, 777, 779, 782, 786, 787, 797, 798, 801, 806,
+ 820, 852, 855, 856, 857, 862, 865, 867, 869, 871,
+ 872, 875, 876, 879, 881, 882, 886, 887, 888, 891,
+ 892, 893, 894, 895, 902, 904, 905, 906, 907, 913,
+ 915, 916, 922, 923, 924, 927, 928, 929, 930, 932,
+ 933, 935, 936, 938, 939, 941, 953, 955, 958, 960,
+ 961, 970, 972, 977, 982, 990, 994, 995, 996, 997,
+ 998, 999, 1005, 1041, 418, 462, 908, 27, 78, 94,
+ 112, 118, 136, 147, 156, 169, 174, 181, 200, 225,
+ 247, 288, 312, 322, 323, 326, 353, 356, 360, 362,
+ 369, 372, 391, 398, 403, 404, 407, 411, 421, 426,
+ 439, 452, 664, 908, 3, 20, 21, 22, 23, 24,
+ 25, 26, 27, 29, 30, 31, 39, 40, 41, 43,
+ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
+ 54, 55, 57, 58, 59, 60, 61, 62, 63, 66,
+ 67, 68, 69, 70, 72, 73, 74, 75, 76, 78,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 91, 92, 93, 94, 95, 96, 98, 99, 100, 101,
+ 105, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ 119, 121, 122, 123, 124, 125, 126, 127, 129, 130,
+ 131, 132, 135, 136, 137, 138, 139, 141, 142, 143,
+ 145, 146, 147, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, 160, 162, 163, 164, 165, 166, 168,
+ 170, 171, 173, 174, 175, 176, 177, 179, 180, 182,
+ 183, 184, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, 197, 198, 199, 200, 201, 202, 203, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 215, 217,
+ 218, 219, 220, 221, 222, 223, 224, 225, 226, 229,
+ 230, 231, 232, 233, 235, 236, 237, 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, 272, 273,
+ 274, 275, 277, 278, 279, 280, 281, 282, 284, 285,
+ 288, 289, 290, 293, 294, 295, 296, 297, 298, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ 311, 312, 313, 314, 315, 316, 317, 318, 320, 321,
+ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
+ 332, 333, 334, 336, 337, 338, 339, 340, 341, 342,
+ 343, 344, 345, 346, 347, 348, 350, 351, 352, 353,
+ 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
+ 364, 365, 366, 367, 369, 370, 371, 372, 373, 375,
+ 376, 377, 378, 379, 380, 381, 382, 383, 384, 386,
+ 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
+ 397, 398, 399, 400, 402, 403, 405, 406, 407, 408,
+ 409, 410, 411, 413, 414, 415, 418, 419, 420, 421,
+ 422, 424, 425, 426, 427, 428, 429, 430, 431, 434,
+ 435, 436, 437, 438, 441, 442, 443, 444, 445, 446,
+ 447, 449, 450, 451, 452, 453, 454, 457, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
+ 472, 473, 474, 475, 476, 477, 478, 479, 1102, 1172,
+ 1184, 1185, 1189, 1190, 1191, 3, 28, 991, 1169, 1184,
+ 1189, 450, 500, 946, 286, 318, 908, 53, 500, 583,
+ 22, 40, 65, 78, 112, 118, 136, 147, 156, 169,
+ 177, 181, 237, 288, 291, 312, 326, 353, 362, 372,
+ 391, 398, 407, 408, 410, 411, 426, 433, 436, 439,
+ 592, 647, 754, 807, 821, 28, 317, 1169, 991, 28,
+ 311, 370, 408, 410, 6, 224, 863, 864, 1175, 22,
+ 27, 65, 78, 94, 112, 136, 147, 156, 169, 174,
+ 181, 200, 247, 288, 301, 312, 323, 326, 353, 356,
+ 360, 362, 369, 372, 391, 398, 404, 407, 411, 419,
+ 421, 426, 439, 452, 664, 767, 769, 770, 908, 1169,
+ 97, 450, 500, 642, 645, 648, 941, 954, 958, 961,
+ 970, 977, 982, 990, 994, 11, 21, 28, 48, 164,
+ 170, 172, 196, 226, 262, 320, 339, 491, 492, 783,
+ 784, 991, 1174, 1176, 28, 30, 97, 335, 368, 788,
+ 789, 790, 1184, 169, 1184, 1171, 1175, 404, 1008, 783,
+ 1184, 418, 1169, 301, 247, 112, 200, 362, 403, 404,
+ 500, 873, 874, 361, 1184, 28, 373, 414, 418, 534,
+ 543, 544, 1184, 25, 178, 788, 789, 318, 908, 1184,
+ 223, 28, 133, 1010, 1011, 66, 91, 237, 257, 353,
+ 362, 373, 414, 418, 465, 531, 532, 533, 534, 28,
+ 373, 414, 418, 534, 418, 287, 1053, 1054, 1167, 1184,
+ 1008, 493, 1184, 173, 500, 947, 500, 333, 1000, 1001,
+ 1169, 1000, 3, 52, 54, 55, 68, 69, 115, 116,
+ 137, 165, 212, 213, 215, 258, 260, 279, 330, 377,
+ 383, 414, 415, 447, 1076, 1078, 1080, 1082, 1084, 1086,
+ 1087, 1088, 1090, 1091, 1092, 1094, 1095, 1185, 1189, 1010,
+ 1011, 1012, 1180, 12, 1181, 1182, 1184, 1181, 1181, 995,
+ 996, 999, 0, 503, 500, 946, 148, 214, 292, 432,
+ 1013, 1014, 995, 997, 998, 123, 210, 249, 438, 504,
+ 34, 912, 837, 1172, 772, 1184, 772, 1169, 321, 772,
+ 421, 1169, 111, 404, 825, 1172, 1184, 1191, 3, 104,
+ 108, 374, 1177, 1178, 1186, 1189, 1190, 1191, 28, 190,
+ 1167, 280, 452, 10, 17, 18, 19, 73, 160, 488,
+ 489, 490, 491, 492, 493, 494, 495, 496, 859, 861,
+ 1132, 1133, 1184, 190, 1169, 825, 1169, 28, 1177, 1178,
+ 825, 1169, 1169, 190, 1167, 1169, 190, 772, 1169, 345,
+ 375, 28, 190, 1053, 1169, 365, 1169, 772, 28, 244,
+ 1177, 1178, 190, 1167, 224, 120, 220, 271, 329, 909,
+ 910, 911, 500, 498, 502, 1158, 1160, 940, 941, 942,
+ 943, 1186, 1167, 1169, 1184, 27, 65, 79, 90, 112,
+ 136, 174, 200, 225, 288, 323, 353, 356, 398, 407,
+ 419, 426, 767, 768, 769, 770, 1175, 912, 957, 961,
+ 970, 977, 982, 994, 1167, 250, 772, 500, 190, 772,
+ 1169, 772, 421, 190, 1169, 111, 404, 408, 410, 1177,
+ 1178, 408, 410, 73, 160, 859, 343, 1169, 1169, 1177,
+ 190, 527, 1184, 190, 1169, 190, 772, 1169, 1169, 365,
+ 772, 244, 1177, 333, 369, 404, 452, 247, 94, 200,
+ 27, 90, 174, 323, 360, 419, 421, 425, 659, 28,
+ 1169, 992, 541, 1175, 1186, 864, 250, 190, 837, 838,
+ 190, 868, 190, 1169, 190, 774, 1076, 421, 111, 404,
+ 190, 824, 825, 190, 1178, 1179, 86, 452, 73, 160,
+ 190, 860, 861, 58, 190, 824, 190, 1179, 190, 824,
+ 190, 1169, 190, 1169, 365, 868, 190, 774, 190, 244,
+ 1179, 224, 190, 771, 772, 190, 1168, 1169, 190, 1169,
+ 912, 500, 959, 592, 954, 446, 940, 946, 1176, 784,
+ 785, 28, 785, 1176, 785, 28, 785, 1176, 785, 785,
+ 785, 1176, 1174, 1174, 991, 785, 321, 500, 403, 500,
+ 615, 615, 615, 286, 416, 504, 615, 362, 1053, 1055,
+ 504, 903, 1175, 500, 956, 58, 452, 940, 86, 808,
+ 808, 1184, 47, 479, 220, 502, 289, 289, 286, 172,
+ 1175, 416, 912, 167, 780, 286, 5, 8, 9, 10,
+ 12, 36, 52, 54, 55, 64, 65, 68, 69, 76,
+ 78, 102, 103, 104, 105, 106, 107, 108, 115, 116,
+ 118, 153, 158, 159, 165, 180, 182, 212, 213, 215,
+ 230, 238, 239, 258, 260, 269, 271, 276, 277, 279,
+ 288, 299, 313, 330, 358, 374, 383, 399, 414, 415,
+ 420, 422, 423, 433, 439, 447, 467, 468, 469, 470,
+ 472, 473, 474, 475, 480, 491, 492, 493, 500, 995,
+ 1079, 1082, 1085, 1086, 1087, 1089, 1090, 1091, 1094, 1095,
+ 1099, 1101, 1102, 1103, 1105, 1128, 1129, 1130, 1134, 1152,
+ 1157, 1164, 1165, 1172, 1173, 1174, 1175, 1184, 1163, 1164,
+ 1175, 28, 549, 1166, 1167, 373, 531, 118, 540, 1175,
+ 541, 1175, 47, 70, 531, 479, 384, 910, 289, 172,
+ 416, 490, 47, 479, 220, 911, 500, 1167, 493, 1160,
+ 1055, 940, 171, 948, 1099, 1137, 1000, 504, 500, 949,
+ 449, 1093, 1093, 1093, 500, 1081, 1081, 315, 500, 1083,
+ 68, 69, 1093, 1081, 1078, 461, 482, 500, 1096, 500,
+ 1096, 36, 1077, 500, 113, 188, 251, 254, 366, 477,
+ 500, 1097, 1098, 502, 773, 1081, 1163, 1161, 501, 501,
+ 509, 940, 950, 951, 952, 1167, 28, 133, 1009, 1009,
+ 58, 1009, 161, 167, 234, 283, 1017, 1019, 1020, 1035,
+ 1037, 1038, 1039, 1013, 1014, 172, 216, 216, 1053, 1056,
+ 500, 67, 267, 302, 341, 375, 500, 835, 302, 337,
+ 341, 375, 773, 302, 341, 375, 3, 89, 142, 240,
+ 302, 337, 341, 375, 407, 409, 459, 542, 545, 917,
+ 918, 919, 920, 802, 24, 138, 302, 341, 375, 443,
+ 558, 1169, 24, 138, 375, 438, 525, 463, 190, 1053,
+ 61, 96, 157, 193, 229, 267, 271, 302, 303, 341,
+ 350, 359, 367, 375, 387, 396, 400, 454, 542, 546,
+ 841, 853, 880, 500, 822, 1160, 341, 525, 196, 153,
+ 24, 30, 45, 75, 131, 138, 141, 168, 202, 267,
+ 271, 281, 290, 302, 341, 344, 345, 375, 443, 554,
+ 556, 557, 682, 880, 5, 491, 492, 656, 1176, 28,
+ 190, 1167, 772, 772, 500, 858, 302, 375, 502, 153,
+ 286, 302, 341, 375, 853, 880, 24, 138, 302, 341,
+ 375, 196, 520, 341, 459, 482, 513, 520, 302, 341,
+ 375, 853, 880, 286, 302, 341, 153, 37, 59, 110,
+ 199, 248, 252, 267, 301, 341, 346, 369, 375, 389,
+ 554, 653, 654, 302, 341, 451, 682, 690, 153, 302,
+ 341, 375, 24, 89, 131, 138, 141, 302, 337, 341,
+ 375, 382, 544, 532, 534, 196, 153, 45, 129, 267,
+ 341, 375, 554, 555, 302, 341, 345, 375, 87, 130,
+ 305, 409, 286, 24, 30, 138, 302, 341, 375, 573,
+ 574, 520, 167, 341, 513, 520, 153, 341, 375, 554,
+ 1169, 232, 120, 287, 464, 504, 909, 28, 133, 448,
+ 493, 501, 830, 1099, 1138, 1139, 1185, 1099, 1159, 3,
+ 28, 32, 33, 34, 35, 36, 37, 38, 42, 56,
+ 64, 65, 71, 77, 79, 90, 97, 102, 103, 104,
+ 106, 107, 108, 118, 120, 128, 133, 134, 140, 144,
+ 148, 159, 161, 167, 169, 172, 178, 181, 185, 196,
+ 204, 214, 216, 227, 228, 234, 238, 239, 271, 276,
+ 283, 286, 287, 291, 292, 310, 319, 335, 349, 368,
+ 374, 385, 401, 404, 412, 416, 417, 423, 432, 433,
+ 439, 440, 448, 455, 456, 458, 459, 493, 1170, 1187,
+ 1189, 1190, 1191, 1192, 1158, 501, 504, 159, 286, 423,
+ 538, 541, 656, 944, 440, 937, 286, 837, 500, 772,
+ 1169, 1076, 825, 280, 73, 160, 861, 825, 825, 167,
+ 1076, 772, 1169, 1169, 501, 615, 1169, 71, 1076, 271,
+ 172, 500, 740, 513, 37, 931, 1169, 271, 513, 463,
+ 190, 1167, 513, 772, 772, 740, 436, 592, 286, 167,
+ 459, 849, 513, 271, 47, 528, 271, 426, 689, 271,
+ 949, 89, 302, 666, 87, 130, 305, 409, 37, 740,
+ 167, 190, 513, 452, 190, 1167, 190, 643, 1167, 1167,
+ 452, 772, 808, 1172, 421, 1172, 1172, 1169, 167, 1169,
+ 664, 39, 53, 109, 209, 267, 364, 153, 62, 347,
+ 504, 559, 153, 500, 153, 513, 153, 504, 559, 463,
+ 153, 504, 559, 153, 504, 190, 771, 190, 772, 190,
+ 772, 153, 504, 559, 1179, 153, 559, 153, 153, 559,
+ 153, 559, 153, 87, 130, 305, 409, 167, 153, 559,
+ 153, 167, 190, 153, 504, 559, 153, 504, 559, 153,
+ 286, 1137, 404, 501, 954, 785, 991, 785, 991, 785,
+ 991, 785, 991, 785, 991, 991, 991, 785, 991, 500,
+ 616, 617, 1184, 616, 28, 112, 136, 169, 174, 224,
+ 225, 304, 323, 356, 362, 369, 404, 407, 426, 793,
+ 1166, 1179, 790, 1169, 196, 504, 973, 1175, 1076, 1141,
+ 37, 1179, 808, 501, 1167, 1169, 232, 1184, 167, 167,
+ 793, 1179, 361, 1184, 541, 286, 500, 1161, 498, 995,
+ 1142, 1099, 1156, 500, 500, 167, 500, 500, 995, 500,
+ 500, 500, 500, 500, 500, 500, 1099, 500, 500, 500,
+ 500, 500, 500, 500, 500, 278, 606, 500, 500, 500,
+ 500, 500, 500, 500, 500, 1099, 1099, 1099, 995, 1099,
+ 1137, 1160, 1175, 500, 1175, 3, 10, 13, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, 32, 33, 34, 35, 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, 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, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
+ 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, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 163, 164, 165, 166,
+ 168, 169, 170, 171, 173, 174, 175, 176, 177, 179,
+ 180, 182, 183, 184, 186, 187, 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, 215, 217, 218, 219, 220, 221, 222, 223, 224,
+ 225, 226, 227, 228, 229, 230, 231, 232, 233, 235,
+ 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 252, 253, 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, 284, 285, 287, 288, 289,
+ 290, 291, 293, 294, 295, 296, 299, 300, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
+ 313, 314, 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, 350, 351, 352, 353, 354,
+ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
+ 365, 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,
+ 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
+ 427, 428, 429, 430, 431, 433, 434, 435, 436, 437,
+ 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
+ 448, 450, 451, 452, 453, 454, 455, 457, 462, 463,
+ 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
+ 474, 475, 476, 478, 479, 480, 488, 489, 490, 491,
+ 492, 493, 494, 495, 496, 1132, 1134, 1136, 1188, 1193,
+ 460, 1115, 298, 1099, 216, 504, 1006, 500, 1175, 1160,
+ 1006, 121, 192, 550, 504, 70, 118, 541, 37, 3,
+ 118, 237, 539, 656, 1095, 1175, 1175, 92, 135, 1111,
+ 101, 118, 535, 536, 538, 656, 118, 535, 232, 1167,
+ 93, 346, 776, 501, 946, 34, 44, 51, 77, 191,
+ 196, 218, 233, 288, 291, 380, 501, 504, 1001, 1168,
+ 37, 500, 1137, 1174, 1093, 1093, 36, 1077, 414, 414,
+ 1174, 1174, 498, 498, 1174, 416, 416, 416, 500, 416,
+ 1174, 1170, 502, 1081, 172, 1042, 15, 490, 1158, 1183,
+ 501, 504, 949, 997, 997, 1015, 1016, 1099, 997, 164,
+ 262, 1026, 222, 267, 329, 378, 438, 28, 1021, 1099,
+ 491, 492, 1022, 1023, 1099, 1101, 1035, 1036, 1020, 1019,
+ 1017, 1018, 167, 1038, 281, 1040, 1017, 1035, 1056, 962,
+ 1167, 1056, 37, 1184, 375, 1137, 67, 416, 416, 362,
+ 196, 207, 292, 295, 377, 448, 493, 828, 829, 830,
+ 832, 834, 836, 1076, 1185, 416, 451, 416, 362, 416,
+ 416, 362, 234, 416, 78, 416, 407, 531, 302, 917,
+ 919, 490, 921, 167, 178, 196, 351, 803, 804, 71,
+ 90, 149, 169, 319, 433, 612, 613, 90, 118, 271,
+ 416, 90, 416, 118, 271, 362, 90, 131, 141, 302,
+ 341, 737, 362, 672, 27, 65, 136, 174, 288, 323,
+ 356, 419, 426, 767, 768, 1169, 153, 341, 375, 554,
+ 286, 656, 367, 229, 416, 1184, 416, 276, 656, 122,
+ 217, 362, 373, 418, 533, 772, 347, 375, 841, 854,
+ 126, 501, 823, 828, 416, 439, 407, 1167, 79, 149,
+ 190, 599, 612, 1184, 79, 90, 877, 307, 286, 358,
+ 360, 421, 90, 877, 31, 344, 358, 360, 421, 358,
+ 1167, 168, 202, 281, 772, 500, 416, 416, 189, 500,
+ 563, 22, 243, 407, 436, 461, 563, 90, 504, 126,
+ 5, 5, 302, 196, 153, 341, 375, 554, 880, 440,
+ 440, 268, 1076, 416, 362, 500, 859, 1169, 1167, 416,
+ 416, 362, 854, 126, 105, 404, 405, 889, 890, 1054,
+ 1167, 1184, 890, 416, 416, 740, 890, 112, 375, 545,
+ 416, 515, 545, 416, 416, 362, 854, 126, 1167, 416,
+ 416, 1167, 1078, 656, 58, 655, 656, 656, 110, 248,
+ 252, 58, 416, 513, 256, 362, 513, 267, 654, 416,
+ 416, 276, 1175, 682, 772, 416, 416, 362, 391, 326,
+ 1175, 326, 416, 326, 416, 326, 740, 740, 407, 1053,
+ 307, 307, 90, 416, 877, 362, 416, 416, 563, 563,
+ 772, 772, 772, 772, 1167, 46, 445, 46, 46, 416,
+ 46, 416, 445, 362, 500, 504, 545, 439, 698, 1178,
+ 416, 515, 545, 1167, 416, 877, 362, 302, 341, 329,
+ 342, 371, 537, 909, 1138, 1138, 1139, 501, 15, 16,
+ 504, 1013, 1014, 499, 505, 1167, 942, 1169, 1167, 218,
+ 1076, 218, 286, 218, 218, 656, 772, 772, 218, 218,
+ 218, 1076, 218, 218, 218, 286, 416, 172, 416, 577,
+ 426, 500, 37, 153, 772, 741, 742, 1187, 917, 1076,
+ 286, 153, 669, 1169, 271, 307, 500, 514, 754, 440,
+ 333, 452, 1167, 28, 890, 740, 514, 153, 1178, 97,
+ 178, 529, 591, 649, 712, 786, 806, 913, 153, 1175,
+ 690, 691, 153, 286, 1175, 1178, 240, 772, 772, 772,
+ 772, 145, 328, 500, 698, 271, 514, 1167, 271, 651,
+ 653, 271, 37, 281, 307, 500, 615, 615, 190, 646,
+ 1167, 167, 190, 809, 1169, 500, 744, 835, 1169, 500,
+ 826, 826, 37, 1076, 26, 49, 211, 713, 224, 459,
+ 461, 993, 364, 838, 837, 1076, 1169, 500, 774, 1076,
+ 824, 825, 1179, 1178, 153, 559, 153, 440, 153, 440,
+ 860, 861, 559, 824, 1179, 824, 1169, 1169, 1076, 774,
+ 1179, 698, 153, 771, 772, 1168, 1169, 1169, 772, 501,
+ 190, 1167, 954, 991, 991, 991, 991, 991, 991, 616,
+ 501, 504, 501, 175, 324, 357, 370, 405, 1168, 771,
+ 111, 372, 824, 1168, 280, 791, 792, 1184, 824, 824,
+ 1168, 1166, 1166, 1168, 771, 416, 459, 799, 148, 234,
+ 695, 696, 22, 151, 358, 378, 974, 1053, 275, 975,
+ 501, 504, 957, 416, 1167, 873, 874, 789, 788, 789,
+ 172, 179, 800, 1184, 27, 79, 136, 174, 225, 323,
+ 356, 426, 767, 768, 1137, 499, 1137, 1142, 1143, 455,
+ 1153, 1154, 1099, 1137, 500, 1174, 1174, 3, 113, 188,
+ 251, 254, 366, 477, 1144, 1145, 1175, 1137, 1137, 1137,
+ 1174, 1174, 1099, 1099, 859, 1099, 1138, 1140, 1147, 358,
+ 491, 492, 500, 1100, 1101, 1134, 1148, 501, 1137, 1099,
+ 1140, 1149, 1099, 56, 172, 228, 417, 1099, 1137, 1150,
+ 133, 271, 995, 1137, 256, 1101, 1099, 1109, 1110, 1111,
+ 256, 1099, 1111, 501, 504, 1174, 1097, 1076, 1099, 1099,
+ 1099, 1099, 1187, 414, 42, 401, 1162, 772, 1099, 500,
+ 995, 1151, 133, 135, 159, 263, 264, 265, 266, 270,
+ 271, 276, 423, 434, 1146, 1099, 500, 1099, 416, 51,
+ 191, 196, 233, 380, 1099, 1099, 1099, 1099, 1099, 1099,
+ 1099, 1099, 1099, 1099, 28, 35, 385, 1131, 181, 162,
+ 1116, 358, 500, 1128, 177, 237, 404, 408, 410, 436,
+ 1007, 1167, 1165, 1042, 1138, 1042, 1167, 418, 500, 1175,
+ 504, 501, 189, 189, 559, 952, 941, 945, 1099, 501,
+ 247, 271, 1002, 1137, 501, 501, 498, 479, 479, 501,
+ 501, 1174, 499, 1174, 501, 188, 251, 1098, 251, 1098,
+ 1098, 1174, 254, 501, 1170, 227, 359, 476, 500, 995,
+ 1043, 1044, 1045, 1053, 1059, 1069, 1102, 1104, 1105, 1184,
+ 456, 1064, 1180, 952, 950, 504, 38, 128, 440, 818,
+ 358, 359, 491, 492, 1023, 1025, 1101, 378, 222, 287,
+ 504, 5, 1024, 1174, 1024, 358, 359, 1025, 1166, 275,
+ 382, 976, 1036, 1018, 440, 971, 118, 300, 500, 963,
+ 994, 37, 440, 1184, 500, 978, 979, 980, 1184, 501,
+ 1178, 1169, 1169, 295, 58, 1185, 501, 830, 832, 829,
+ 832, 1185, 292, 501, 504, 773, 1178, 1169, 1169, 1178,
+ 1169, 1169, 1178, 451, 1169, 1169, 118, 538, 656, 353,
+ 439, 788, 362, 178, 788, 500, 1169, 440, 810, 222,
+ 222, 440, 606, 637, 190, 1169, 276, 1178, 1169, 1169,
+ 1099, 276, 1169, 1169, 31, 344, 416, 416, 1169, 416,
+ 673, 837, 500, 1076, 825, 73, 160, 861, 825, 825,
+ 167, 1076, 772, 1169, 184, 267, 302, 341, 444, 676,
+ 677, 678, 1053, 416, 877, 362, 276, 122, 217, 1178,
+ 1169, 286, 1169, 286, 501, 504, 1177, 1179, 1169, 341,
+ 554, 190, 599, 271, 1076, 1169, 1174, 1184, 1167, 1169,
+ 232, 1169, 28, 439, 1169, 190, 1169, 190, 1184, 360,
+ 421, 360, 421, 232, 1169, 28, 439, 1169, 232, 358,
+ 1167, 24, 138, 375, 683, 684, 685, 686, 1187, 1178,
+ 1169, 118, 173, 272, 440, 562, 565, 566, 1187, 250,
+ 1169, 75, 284, 1169, 557, 286, 416, 407, 1167, 416,
+ 877, 362, 126, 1169, 1169, 504, 501, 504, 1178, 1169,
+ 883, 884, 1187, 286, 341, 416, 706, 1178, 1169, 1169,
+ 286, 1053, 196, 504, 615, 615, 1160, 1178, 1169, 1169,
+ 1177, 3, 89, 143, 202, 309, 431, 439, 442, 516,
+ 1178, 1169, 1169, 286, 341, 1178, 1169, 341, 375, 554,
+ 653, 656, 772, 1169, 656, 772, 1169, 656, 1178, 1169,
+ 375, 1178, 1169, 1169, 1176, 1168, 1168, 1178, 849, 1169,
+ 1168, 1169, 341, 375, 554, 555, 1167, 1167, 1169, 1169,
+ 1169, 1169, 1178, 1169, 24, 30, 138, 302, 341, 375,
+ 302, 341, 375, 740, 341, 375, 341, 375, 341, 880,
+ 1068, 1184, 190, 750, 1184, 190, 1184, 1178, 1169, 1169,
+ 1175, 1169, 883, 24, 574, 372, 1177, 341, 375, 554,
+ 1169, 1169, 1169, 416, 416, 84, 430, 329, 504, 1013,
+ 1013, 1013, 1099, 1099, 448, 1139, 501, 1099, 1159, 937,
+ 276, 778, 1175, 37, 778, 136, 772, 778, 778, 218,
+ 440, 440, 778, 778, 778, 224, 778, 778, 778, 772,
+ 325, 578, 578, 200, 404, 711, 1099, 1076, 772, 501,
+ 504, 490, 603, 1187, 1169, 62, 172, 362, 451, 670,
+ 677, 678, 153, 281, 233, 593, 595, 597, 599, 609,
+ 612, 25, 196, 353, 402, 516, 517, 167, 1169, 452,
+ 1167, 37, 707, 405, 849, 527, 1184, 528, 592, 821,
+ 1169, 169, 772, 500, 639, 640, 1104, 1184, 326, 1175,
+ 740, 740, 740, 740, 500, 740, 1066, 1067, 1068, 372,
+ 153, 500, 153, 153, 152, 994, 772, 281, 593, 1184,
+ 440, 632, 459, 564, 271, 37, 615, 1175, 271, 286,
+ 3, 745, 746, 740, 26, 501, 827, 828, 833, 37,
+ 224, 350, 419, 458, 839, 840, 841, 842, 839, 286,
+ 224, 281, 123, 210, 424, 438, 714, 715, 1169, 187,
+ 187, 167, 559, 37, 513, 168, 925, 926, 559, 559,
+ 771, 772, 1169, 772, 1169, 559, 559, 559, 559, 224,
+ 559, 372, 167, 559, 559, 286, 559, 271, 501, 617,
+ 196, 196, 196, 196, 196, 463, 1168, 656, 657, 504,
+ 502, 181, 794, 795, 1178, 25, 800, 416, 500, 172,
+ 151, 378, 151, 378, 358, 438, 253, 1076, 1178, 459,
+ 644, 808, 808, 172, 286, 794, 58, 559, 837, 772,
+ 1076, 825, 280, 825, 825, 1076, 772, 1169, 501, 499,
+ 499, 504, 1099, 140, 1154, 1155, 37, 501, 1099, 501,
+ 501, 501, 172, 501, 501, 501, 501, 501, 501, 504,
+ 504, 501, 310, 501, 501, 500, 1100, 1100, 1137, 13,
+ 17, 18, 19, 196, 218, 288, 488, 489, 490, 491,
+ 492, 493, 494, 495, 496, 1134, 1100, 501, 501, 167,
+ 172, 380, 501, 501, 37, 1150, 1137, 1150, 1150, 172,
+ 501, 133, 501, 1187, 308, 1113, 37, 501, 504, 1099,
+ 1187, 504, 1099, 1161, 1099, 501, 479, 1100, 1100, 146,
+ 1137, 172, 133, 135, 159, 270, 276, 423, 434, 1146,
+ 270, 146, 859, 1099, 401, 1162, 1099, 1151, 1099, 416,
+ 500, 995, 500, 500, 297, 1120, 500, 1137, 408, 410,
+ 408, 410, 1167, 1008, 1008, 1008, 1064, 1013, 1064, 910,
+ 1174, 1097, 536, 952, 247, 500, 501, 1174, 1096, 1096,
+ 499, 499, 501, 995, 1059, 1069, 172, 500, 995, 1044,
+ 1045, 37, 1046, 1047, 1184, 504, 98, 173, 206, 221,
+ 231, 259, 352, 1050, 1047, 37, 1046, 1049, 1184, 1047,
+ 482, 1063, 1160, 1099, 181, 1027, 1016, 288, 1132, 1135,
+ 481, 819, 5, 1174, 1025, 287, 459, 438, 1022, 242,
+ 1043, 456, 1065, 446, 403, 439, 964, 965, 966, 1184,
+ 286, 967, 1184, 1044, 980, 981, 504, 1042, 490, 1161,
+ 836, 773, 832, 832, 58, 834, 495, 1179, 1179, 286,
+ 1168, 289, 286, 1099, 613, 1169, 500, 500, 500, 637,
+ 200, 500, 730, 153, 559, 416, 1178, 1169, 541, 1076,
+ 772, 772, 1076, 660, 1169, 184, 444, 416, 416, 660,
+ 676, 682, 341, 375, 554, 1169, 1169, 1169, 208, 276,
+ 156, 828, 301, 375, 416, 271, 153, 85, 601, 602,
+ 730, 375, 24, 138, 345, 346, 375, 558, 567, 568,
+ 682, 878, 367, 153, 559, 153, 559, 1169, 1169, 1169,
+ 1169, 367, 367, 232, 685, 686, 685, 501, 504, 687,
+ 1175, 200, 501, 504, 490, 502, 1169, 156, 1178, 1169,
+ 341, 375, 554, 1169, 1169, 1169, 286, 302, 341, 375,
+ 24, 138, 302, 341, 375, 1076, 268, 1076, 501, 504,
+ 490, 1167, 416, 1179, 440, 703, 156, 615, 362, 889,
+ 456, 622, 622, 615, 234, 309, 276, 1175, 309, 1179,
+ 437, 156, 416, 416, 362, 391, 849, 849, 849, 301,
+ 375, 90, 416, 877, 362, 118, 167, 569, 163, 808,
+ 416, 416, 244, 244, 244, 416, 416, 362, 416, 416,
+ 362, 416, 362, 416, 362, 416, 126, 559, 1076, 271,
+ 1175, 375, 878, 153, 559, 416, 416, 501, 1169, 416,
+ 877, 362, 416, 1178, 1169, 501, 501, 501, 1139, 499,
+ 1076, 772, 218, 778, 1169, 1169, 1169, 218, 392, 393,
+ 579, 1175, 579, 184, 501, 501, 172, 740, 742, 268,
+ 288, 491, 492, 656, 743, 832, 1135, 1175, 1192, 71,
+ 77, 90, 118, 120, 176, 204, 271, 276, 319, 335,
+ 433, 604, 605, 608, 152, 455, 513, 541, 1169, 541,
+ 290, 680, 1167, 1167, 1167, 501, 504, 1179, 181, 353,
+ 1179, 1174, 426, 1167, 615, 3, 167, 708, 849, 47,
+ 528, 404, 689, 111, 949, 1099, 172, 504, 1168, 564,
+ 747, 748, 1175, 501, 504, 1169, 167, 616, 1167, 643,
+ 1167, 1169, 644, 500, 594, 1167, 501, 1169, 459, 461,
+ 633, 563, 37, 153, 994, 632, 416, 153, 1053, 490,
+ 501, 504, 714, 501, 504, 118, 490, 843, 1175, 541,
+ 404, 831, 832, 167, 848, 50, 348, 844, 845, 842,
+ 845, 123, 210, 368, 438, 900, 1169, 281, 286, 291,
+ 184, 994, 1076, 500, 501, 504, 559, 440, 559, 440,
+ 559, 1169, 1169, 698, 772, 153, 362, 362, 362, 362,
+ 362, 1168, 504, 792, 1184, 1178, 459, 504, 796, 289,
+ 1055, 372, 151, 151, 111, 267, 1167, 1169, 1179, 793,
+ 800, 1178, 218, 218, 218, 218, 656, 218, 218, 218,
+ 218, 218, 1142, 412, 1099, 144, 1076, 501, 1099, 1146,
+ 1099, 1099, 501, 1137, 504, 1076, 1100, 1100, 1100, 1100,
+ 133, 135, 271, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
+ 1100, 1100, 1100, 1099, 1099, 1099, 1076, 501, 501, 501,
+ 1137, 501, 504, 58, 1101, 1114, 501, 1187, 1110, 316,
+ 397, 1112, 501, 504, 451, 1106, 37, 501, 1175, 1099,
+ 34, 34, 1099, 501, 1099, 172, 270, 1099, 501, 146,
+ 1100, 1100, 146, 146, 1099, 1099, 1014, 456, 500, 1121,
+ 1184, 501, 1137, 504, 1008, 1008, 1008, 1008, 1167, 1167,
+ 1167, 1027, 501, 1027, 501, 957, 499, 1047, 1049, 1047,
+ 500, 471, 1101, 501, 1184, 500, 1044, 221, 296, 1051,
+ 1044, 1051, 221, 1050, 1051, 221, 406, 1057, 500, 1184,
+ 500, 293, 58, 185, 1034, 500, 819, 164, 226, 287,
+ 459, 413, 101, 1099, 349, 969, 445, 501, 504, 1161,
+ 88, 969, 286, 501, 504, 979, 1065, 1099, 501, 495,
+ 836, 426, 175, 357, 363, 370, 405, 427, 805, 167,
+ 805, 501, 500, 620, 621, 813, 1104, 1184, 616, 616,
+ 730, 1169, 616, 120, 204, 267, 271, 731, 1169, 1169,
+ 37, 440, 440, 224, 773, 1178, 1169, 416, 877, 362,
+ 416, 208, 1169, 58, 407, 1169, 153, 599, 118, 1184,
+ 680, 391, 176, 155, 189, 271, 563, 513, 111, 176,
+ 271, 391, 394, 563, 601, 654, 375, 568, 426, 1169,
+ 1184, 367, 684, 1169, 566, 743, 1187, 1169, 301, 375,
+ 416, 877, 362, 416, 156, 416, 416, 362, 174, 288,
+ 394, 752, 753, 174, 288, 760, 761, 416, 416, 362,
+ 501, 501, 501, 884, 268, 656, 832, 885, 1135, 1175,
+ 1192, 341, 1169, 500, 459, 704, 1169, 622, 105, 1184,
+ 500, 622, 1176, 1175, 1175, 1175, 1169, 1169, 1169, 1169,
+ 1176, 58, 407, 1169, 1169, 1169, 1169, 446, 1169, 1169,
+ 167, 167, 343, 167, 190, 1178, 1169, 1169, 1178, 1169,
+ 1169, 1169, 1169, 1169, 1169, 1169, 286, 77, 560, 153,
+ 26, 49, 426, 1184, 1169, 1175, 682, 1169, 1169, 1169,
+ 1169, 1013, 501, 218, 778, 218, 218, 218, 778, 513,
+ 440, 584, 585, 660, 730, 459, 461, 772, 500, 772,
+ 1169, 1100, 31, 58, 607, 121, 192, 120, 276, 222,
+ 1167, 606, 174, 323, 726, 733, 734, 1184, 669, 500,
+ 307, 500, 594, 610, 203, 627, 597, 1179, 1179, 1076,
+ 500, 564, 28, 123, 210, 368, 438, 709, 416, 705,
+ 1178, 190, 1167, 691, 463, 286, 501, 1043, 640, 849,
+ 501, 504, 1068, 680, 698, 501, 651, 37, 281, 307,
+ 500, 959, 596, 598, 600, 612, 1184, 307, 628, 629,
+ 594, 627, 563, 284, 286, 634, 994, 646, 644, 564,
+ 1175, 1169, 810, 743, 3, 746, 286, 833, 1099, 1099,
+ 504, 500, 839, 426, 504, 43, 1099, 416, 500, 616,
+ 1167, 715, 660, 501, 925, 926, 1169, 1169, 559, 372,
+ 559, 1168, 1168, 1168, 1168, 1168, 656, 178, 795, 800,
+ 501, 1169, 111, 800, 172, 559, 276, 781, 1175, 781,
+ 781, 781, 218, 781, 781, 781, 781, 781, 1099, 501,
+ 501, 501, 172, 501, 1099, 172, 133, 135, 172, 167,
+ 146, 501, 466, 1108, 1137, 334, 445, 58, 1114, 1101,
+ 457, 457, 501, 1099, 267, 1099, 504, 1107, 1078, 1099,
+ 1099, 1099, 1099, 34, 34, 1099, 1099, 146, 501, 501,
+ 1099, 1122, 1184, 501, 1099, 1167, 1167, 1167, 1167, 1034,
+ 1175, 1034, 1175, 501, 1060, 1061, 1104, 500, 1113, 1046,
+ 500, 1168, 1044, 286, 440, 1052, 1044, 221, 1044, 1172,
+ 1067, 500, 1067, 1184, 1009, 1099, 458, 1117, 859, 413,
+ 281, 1164, 994, 300, 994, 966, 286, 500, 968, 1099,
+ 490, 980, 969, 426, 501, 416, 788, 172, 730, 1099,
+ 501, 504, 459, 77, 812, 816, 812, 501, 501, 501,
+ 121, 192, 202, 120, 442, 559, 1076, 1169, 1169, 1169,
+ 1169, 1169, 1169, 1169, 1179, 1169, 599, 603, 1176, 607,
+ 190, 190, 276, 656, 607, 276, 1176, 1184, 1076, 559,
+ 559, 490, 58, 407, 1169, 1169, 1169, 1169, 1169, 1178,
+ 1169, 1169, 1174, 1174, 1076, 504, 1174, 1174, 504, 1178,
+ 1169, 1169, 416, 1099, 71, 1099, 1179, 1169, 416, 416,
+ 172, 196, 459, 1168, 1168, 772, 1168, 153, 156, 772,
+ 1175, 1175, 1076, 559, 559, 416, 501, 218, 778, 778,
+ 778, 778, 500, 580, 581, 513, 125, 174, 207, 174,
+ 1099, 271, 605, 118, 37, 849, 615, 849, 1172, 34,
+ 152, 196, 681, 685, 281, 593, 569, 150, 198, 500,
+ 372, 440, 616, 37, 1179, 703, 528, 271, 500, 169,
+ 1169, 639, 1175, 372, 564, 152, 994, 772, 281, 593,
+ 644, 501, 504, 459, 603, 58, 632, 569, 628, 83,
+ 407, 635, 459, 914, 37, 635, 172, 286, 500, 1167,
+ 1175, 830, 850, 851, 1185, 845, 1076, 167, 846, 1167,
+ 172, 416, 870, 336, 716, 205, 661, 559, 501, 559,
+ 559, 1169, 289, 216, 559, 794, 781, 1099, 501, 1100,
+ 172, 1099, 1099, 1099, 500, 501, 504, 501, 1114, 501,
+ 445, 388, 501, 501, 1099, 1099, 1099, 501, 307, 1123,
+ 501, 1117, 1117, 365, 1003, 501, 504, 37, 1062, 118,
+ 1074, 1075, 1100, 80, 1168, 501, 1099, 500, 1044, 1052,
+ 500, 501, 1067, 501, 100, 182, 355, 500, 1028, 1029,
+ 1030, 1031, 1032, 1033, 1099, 1118, 1119, 1184, 1013, 501,
+ 991, 964, 90, 811, 813, 134, 455, 983, 984, 1099,
+ 794, 286, 794, 501, 197, 618, 621, 288, 859, 772,
+ 772, 817, 335, 618, 618, 501, 416, 375, 975, 37,
+ 153, 153, 560, 743, 1179, 1169, 416, 500, 825, 859,
+ 861, 753, 500, 500, 761, 1169, 501, 500, 501, 375,
+ 975, 1169, 1169, 500, 500, 500, 459, 482, 934, 343,
+ 934, 934, 167, 1169, 560, 1169, 778, 586, 587, 1187,
+ 53, 99, 124, 142, 146, 168, 171, 186, 276, 327,
+ 582, 580, 1175, 825, 37, 866, 866, 501, 189, 500,
+ 440, 636, 245, 619, 636, 500, 734, 726, 500, 501,
+ 504, 1167, 501, 372, 28, 82, 85, 91, 119, 176,
+ 189, 201, 391, 394, 611, 611, 1166, 1169, 1169, 501,
+ 994, 704, 153, 111, 680, 172, 1169, 37, 1169, 644,
+ 594, 1167, 501, 598, 290, 1184, 633, 628, 632, 123,
+ 138, 316, 1169, 63, 71, 237, 994, 772, 1053, 811,
+ 172, 729, 832, 501, 504, 426, 144, 510, 844, 847,
+ 1064, 386, 386, 501, 261, 285, 717, 718, 719, 167,
+ 722, 660, 267, 444, 662, 663, 1169, 800, 167, 1100,
+ 1109, 1137, 267, 478, 58, 1013, 57, 127, 110, 1004,
+ 1063, 1060, 500, 1100, 501, 504, 37, 1070, 1071, 1184,
+ 501, 1168, 1137, 501, 500, 376, 500, 501, 504, 504,
+ 37, 1018, 445, 1169, 501, 504, 272, 438, 246, 271,
+ 984, 796, 805, 559, 812, 500, 849, 500, 563, 818,
+ 1167, 849, 849, 1169, 407, 189, 440, 561, 375, 975,
+ 1169, 1141, 167, 756, 756, 1141, 1141, 1099, 407, 1137,
+ 1137, 570, 571, 1186, 771, 772, 771, 772, 1168, 559,
+ 501, 504, 493, 500, 538, 588, 656, 931, 1175, 931,
+ 271, 276, 327, 931, 931, 1064, 866, 41, 194, 267,
+ 614, 500, 652, 1099, 200, 173, 306, 381, 286, 623,
+ 624, 625, 501, 1172, 6, 735, 685, 594, 627, 1169,
+ 501, 680, 160, 755, 564, 914, 1167, 463, 1043, 680,
+ 994, 959, 628, 594, 627, 603, 500, 634, 632, 633,
+ 359, 359, 71, 289, 71, 644, 810, 501, 1167, 730,
+ 839, 850, 1076, 503, 134, 459, 459, 718, 358, 404,
+ 720, 139, 723, 455, 725, 444, 660, 680, 559, 1099,
+ 501, 501, 445, 1137, 183, 328, 359, 1124, 164, 164,
+ 616, 1067, 504, 1075, 1187, 501, 504, 167, 1076, 501,
+ 501, 1137, 500, 1137, 1029, 1119, 1121, 1036, 994, 1064,
+ 813, 375, 34, 985, 246, 172, 616, 636, 859, 818,
+ 819, 615, 636, 636, 1169, 652, 1099, 407, 501, 292,
+ 365, 332, 757, 757, 501, 501, 501, 1169, 501, 501,
+ 501, 504, 1174, 934, 587, 538, 589, 590, 1175, 1175,
+ 276, 616, 493, 616, 1175, 1175, 202, 653, 501, 407,
+ 123, 438, 286, 625, 286, 624, 500, 501, 504, 569,
+ 372, 680, 772, 37, 37, 500, 1169, 914, 644, 632,
+ 569, 628, 500, 630, 631, 1104, 1184, 635, 633, 634,
+ 289, 289, 500, 197, 814, 167, 845, 29, 211, 901,
+ 174, 174, 931, 358, 390, 724, 500, 152, 51, 101,
+ 429, 1099, 1125, 1126, 1125, 1125, 501, 58, 58, 375,
+ 501, 1101, 1071, 293, 3, 118, 271, 276, 1072, 1073,
+ 37, 1048, 342, 1058, 501, 1028, 501, 978, 1099, 412,
+ 985, 794, 501, 622, 501, 819, 619, 730, 730, 975,
+ 1169, 825, 58, 975, 416, 570, 772, 501, 504, 616,
+ 501, 395, 1169, 62, 267, 347, 375, 626, 626, 501,
+ 6, 372, 1169, 752, 994, 680, 633, 628, 632, 1099,
+ 501, 504, 816, 816, 634, 635, 811, 500, 606, 139,
+ 272, 500, 896, 898, 902, 961, 970, 977, 994, 1005,
+ 825, 825, 721, 1184, 1099, 726, 1126, 358, 166, 314,
+ 166, 314, 149, 1127, 1127, 1127, 616, 616, 1184, 1113,
+ 1100, 1100, 276, 1073, 1184, 500, 501, 1064, 123, 134,
+ 438, 986, 987, 412, 559, 730, 623, 975, 772, 500,
+ 590, 23, 118, 276, 1169, 680, 914, 634, 632, 633,
+ 501, 631, 772, 817, 817, 635, 501, 813, 815, 564,
+ 358, 897, 898, 899, 995, 996, 504, 504, 501, 1172,
+ 34, 101, 181, 267, 413, 375, 375, 416, 440, 80,
+ 1099, 272, 375, 134, 210, 988, 730, 1137, 615, 615,
+ 680, 635, 633, 634, 816, 814, 501, 504, 635, 725,
+ 501, 503, 416, 172, 500, 1126, 358, 294, 1184, 1184,
+ 1172, 1173, 1184, 1070, 501, 978, 272, 118, 300, 446,
+ 500, 989, 501, 634, 635, 817, 606, 813, 1064, 152,
+ 899, 386, 386, 5, 727, 728, 1174, 1175, 1187, 500,
+ 118, 501, 446, 964, 500, 965, 635, 564, 726, 459,
+ 459, 501, 504, 1138, 1173, 445, 1137, 501, 635, 1172,
+ 174, 174, 728, 1013, 440, 989, 501, 300, 989, 1064,
+ 500, 825, 825, 501, 1184, 964, 727, 445, 501, 989
+};
+
+ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+static const yytype_int16 yyr1[] =
+{
+ 0, 506, 507, 507, 507, 507, 507, 507, 508, 508,
+ 509, 509, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 511, 512, 513,
+ 513, 513, 514, 514, 515, 515, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 517, 517, 517, 517, 517,
+ 517, 518, 519, 519, 520, 520, 521, 521, 521, 521,
+ 522, 522, 522, 522, 522, 522, 523, 524, 525, 525,
+ 526, 526, 526, 526, 527, 527, 528, 528, 529, 529,
+ 529, 529, 529, 529, 530, 530, 530, 531, 531, 531,
+ 532, 532, 532, 532, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 534, 534, 535, 535, 536,
+ 536, 537, 537, 537, 537, 538, 538, 538, 538, 539,
+ 539, 539, 539, 539, 539, 539, 540, 540, 540, 541,
+ 541, 542, 543, 543, 543, 543, 544, 544, 545, 545,
+ 546, 546, 547, 547, 547, 547, 547, 548, 549, 549,
+ 550, 550, 551, 552, 552, 552, 552, 552, 553, 553,
+ 553, 553, 553, 553, 553, 553, 553, 553, 553, 553,
+ 553, 553, 553, 553, 553, 553, 553, 553, 553, 554,
+ 554, 555, 555, 555, 556, 557, 557, 557, 557, 557,
+ 557, 557, 557, 557, 557, 557, 557, 557, 557, 557,
+ 557, 557, 557, 557, 557, 557, 557, 557, 557, 557,
+ 557, 557, 557, 557, 557, 557, 557, 557, 557, 557,
+ 557, 557, 557, 557, 557, 557, 557, 557, 557, 557,
+ 557, 557, 557, 557, 557, 557, 557, 557, 557, 557,
+ 557, 557, 557, 557, 557, 558, 558, 559, 559, 559,
+ 560, 560, 561, 561, 562, 562, 562, 562, 563, 564,
+ 564, 565, 565, 566, 566, 566, 566, 567, 567, 568,
+ 568, 568, 568, 569, 569, 569, 569, 570, 571, 571,
+ 572, 573, 573, 574, 574, 574, 574, 575, 575, 576,
+ 576, 577, 577, 578, 578, 579, 579, 579, 580, 580,
+ 581, 581, 582, 582, 582, 582, 582, 582, 582, 582,
+ 582, 582, 582, 582, 582, 583, 583, 584, 584, 585,
+ 585, 586, 586, 587, 588, 588, 588, 588, 588, 589,
+ 589, 590, 591, 591, 591, 591, 591, 591, 592, 592,
+ 592, 592, 592, 592, 592, 592, 593, 593, 594, 594,
+ 595, 595, 596, 596, 597, 597, 597, 598, 598, 599,
+ 600, 600, 601, 601, 602, 602, 603, 603, 604, 604,
+ 604, 604, 605, 605, 605, 605, 605, 605, 605, 605,
+ 605, 606, 606, 606, 607, 607, 608, 608, 608, 608,
+ 609, 610, 610, 610, 611, 611, 611, 611, 611, 611,
+ 611, 611, 611, 611, 612, 612, 613, 613, 613, 613,
+ 613, 613, 613, 614, 614, 615, 615, 616, 616, 617,
+ 618, 618, 619, 619, 619, 619, 620, 620, 621, 621,
+ 622, 622, 623, 623, 623, 623, 623, 624, 625, 626,
+ 626, 626, 626, 626, 627, 627, 628, 628, 629, 630,
+ 630, 631, 631, 631, 632, 632, 633, 633, 633, 634,
+ 634, 634, 634, 635, 635, 636, 636, 637, 638, 638,
+ 639, 639, 640, 640, 640, 641, 641, 642, 642, 643,
+ 644, 644, 644, 645, 645, 646, 647, 647, 648, 649,
+ 649, 650, 650, 651, 651, 652, 652, 653, 653, 654,
+ 654, 654, 654, 654, 654, 654, 654, 654, 654, 654,
+ 654, 654, 654, 655, 655, 656, 656, 656, 656, 657,
+ 657, 658, 658, 659, 659, 660, 660, 661, 661, 662,
+ 662, 663, 663, 664, 664, 665, 666, 666, 667, 667,
+ 668, 668, 669, 669, 670, 670, 670, 670, 671, 672,
+ 672, 673, 674, 674, 674, 674, 674, 674, 674, 674,
+ 674, 674, 674, 674, 674, 675, 676, 676, 676, 676,
+ 677, 677, 678, 678, 679, 679, 680, 680, 681, 681,
+ 682, 683, 683, 684, 684, 684, 684, 685, 686, 687,
+ 688, 688, 689, 689, 690, 690, 691, 691, 692, 692,
+ 692, 693, 693, 693, 693, 694, 695, 695, 696, 696,
+ 697, 697, 698, 698, 699, 699, 700, 701, 702, 703,
+ 703, 704, 704, 705, 705, 706, 706, 707, 707, 708,
+ 708, 709, 709, 709, 709, 709, 710, 711, 711, 712,
+ 712, 713, 713, 713, 714, 714, 715, 715, 715, 715,
+ 715, 716, 716, 717, 717, 718, 719, 719, 720, 720,
+ 721, 722, 722, 723, 723, 724, 724, 725, 725, 726,
+ 726, 727, 727, 727, 728, 728, 728, 728, 729, 729,
+ 730, 730, 731, 731, 731, 731, 731, 731, 732, 732,
+ 733, 733, 734, 735, 735, 736, 737, 737, 737, 737,
+ 738, 739, 739, 739, 739, 739, 739, 739, 739, 739,
+ 739, 739, 739, 739, 739, 739, 739, 740, 741, 741,
+ 742, 742, 743, 743, 743, 743, 743, 743, 744, 745,
+ 745, 746, 747, 747, 748, 748, 749, 749, 749, 749,
+ 750, 750, 751, 752, 752, 753, 753, 753, 753, 753,
+ 754, 754, 755, 755, 756, 756, 756, 757, 757, 758,
+ 759, 759, 760, 760, 761, 761, 762, 762, 763, 763,
+ 764, 765, 766, 766, 766, 766, 766, 766, 766, 766,
+ 766, 766, 766, 766, 767, 767, 767, 767, 767, 767,
+ 767, 767, 767, 767, 767, 767, 767, 768, 768, 768,
+ 768, 768, 769, 769, 769, 769, 769, 769, 769, 769,
+ 770, 770, 770, 771, 771, 772, 772, 773, 773, 774,
+ 774, 775, 776, 776, 776, 777, 777, 777, 777, 777,
+ 777, 777, 777, 777, 777, 777, 777, 777, 777, 777,
+ 777, 777, 777, 778, 778, 779, 779, 779, 779, 779,
+ 779, 779, 779, 779, 779, 780, 780, 781, 781, 782,
+ 782, 783, 783, 783, 783, 783, 783, 783, 783, 783,
+ 783, 783, 783, 783, 783, 783, 783, 784, 784, 785,
+ 785, 786, 787, 787, 788, 788, 788, 788, 788, 789,
+ 789, 790, 790, 790, 790, 790, 791, 791, 792, 792,
+ 793, 793, 793, 793, 793, 793, 793, 793, 793, 793,
+ 793, 793, 793, 793, 793, 793, 793, 793, 793, 793,
+ 793, 794, 794, 795, 795, 796, 796, 797, 798, 798,
+ 799, 799, 800, 800, 801, 802, 802, 803, 803, 803,
+ 804, 804, 804, 805, 805, 805, 805, 805, 805, 806,
+ 806, 807, 807, 808, 808, 809, 809, 810, 810, 811,
+ 811, 812, 812, 813, 813, 813, 814, 814, 815, 815,
+ 816, 816, 817, 817, 818, 818, 818, 819, 819, 819,
+ 820, 820, 820, 820, 821, 821, 822, 822, 823, 823,
+ 824, 824, 825, 825, 825, 825, 826, 826, 827, 827,
+ 828, 828, 828, 828, 828, 829, 829, 829, 829, 829,
+ 830, 831, 832, 832, 832, 833, 833, 833, 834, 835,
+ 835, 835, 835, 836, 836, 837, 838, 838, 839, 839,
+ 840, 840, 841, 841, 841, 841, 841, 841, 841, 841,
+ 841, 841, 841, 841, 841, 841, 841, 841, 841, 842,
+ 842, 842, 842, 842, 843, 843, 844, 845, 845, 845,
+ 846, 846, 847, 847, 848, 848, 849, 849, 850, 851,
+ 851, 852, 852, 852, 853, 853, 854, 854, 855, 855,
+ 855, 855, 855, 855, 856, 856, 857, 857, 858, 858,
+ 858, 858, 859, 859, 860, 860, 861, 862, 863, 863,
+ 864, 864, 865, 865, 865, 866, 866, 866, 867, 868,
+ 868, 869, 870, 870, 870, 870, 871, 872, 872, 872,
+ 872, 873, 873, 874, 874, 874, 875, 875, 876, 876,
+ 876, 876, 876, 876, 876, 876, 876, 876, 876, 876,
+ 876, 876, 876, 876, 876, 876, 876, 876, 876, 876,
+ 876, 876, 876, 876, 876, 876, 876, 876, 876, 876,
+ 876, 876, 876, 876, 876, 876, 876, 876, 876, 876,
+ 876, 876, 876, 876, 876, 876, 876, 876, 876, 876,
+ 876, 876, 876, 877, 877, 878, 878, 879, 879, 879,
+ 879, 879, 879, 880, 880, 881, 881, 881, 881, 881,
+ 881, 881, 881, 881, 881, 881, 881, 881, 881, 881,
+ 881, 881, 881, 881, 881, 881, 881, 881, 881, 881,
+ 881, 881, 882, 883, 883, 884, 884, 885, 885, 885,
+ 885, 885, 886, 887, 887, 887, 887, 887, 887, 887,
+ 887, 887, 887, 887, 887, 887, 887, 887, 887, 887,
+ 887, 887, 887, 887, 887, 887, 887, 888, 888, 888,
+ 889, 889, 889, 889, 889, 889, 889, 890, 890, 891,
+ 891, 891, 891, 892, 893, 893, 893, 893, 893, 893,
+ 893, 893, 893, 894, 894, 895, 896, 896, 896, 897,
+ 897, 898, 898, 898, 898, 898, 899, 899, 900, 900,
+ 900, 900, 901, 901, 901, 902, 903, 903, 904, 905,
+ 905, 906, 906, 906, 906, 906, 906, 906, 906, 906,
+ 906, 906, 906, 907, 907, 908, 908, 908, 909, 909,
+ 909, 909, 909, 910, 910, 910, 911, 911, 912, 912,
+ 912, 913, 913, 913, 913, 914, 914, 914, 914, 915,
+ 916, 917, 917, 918, 918, 919, 919, 919, 920, 920,
+ 920, 920, 920, 920, 920, 921, 921, 922, 922, 922,
+ 922, 923, 924, 924, 924, 924, 925, 925, 926, 927,
+ 928, 928, 929, 930, 930, 930, 930, 930, 930, 930,
+ 931, 931, 932, 933, 933, 933, 933, 933, 933, 934,
+ 934, 935, 936, 936, 936, 936, 937, 937, 938, 938,
+ 939, 939, 940, 940, 941, 941, 942, 943, 943, 944,
+ 944, 944, 945, 945, 946, 946, 947, 947, 948, 948,
+ 949, 949, 950, 951, 951, 952, 952, 953, 953, 953,
+ 953, 954, 954, 954, 954, 954, 954, 954, 954, 954,
+ 954, 955, 956, 956, 957, 957, 957, 957, 957, 958,
+ 958, 958, 959, 959, 960, 960, 960, 960, 961, 962,
+ 962, 963, 963, 963, 963, 963, 964, 964, 965, 965,
+ 966, 967, 967, 967, 968, 968, 968, 969, 969, 970,
+ 971, 971, 972, 973, 973, 974, 974, 974, 974, 974,
+ 974, 974, 974, 975, 975, 976, 976, 976, 977, 978,
+ 978, 979, 979, 980, 981, 981, 982, 983, 983, 984,
+ 984, 984, 984, 984, 985, 985, 986, 987, 988, 988,
+ 988, 988, 988, 989, 990, 991, 992, 992, 992, 992,
+ 992, 992, 993, 993, 993, 994, 994, 995, 995, 996,
+ 996, 996, 996, 996, 996, 996, 996, 997, 997, 998,
+ 998, 998, 998, 998, 998, 998, 999, 999, 999, 1000,
+ 1000, 1001, 1002, 1002, 1002, 1003, 1003, 1003, 1004, 1004,
+ 1004, 1005, 1005, 1006, 1006, 1007, 1007, 1007, 1007, 1007,
+ 1007, 1007, 1007, 1007, 1008, 1008, 1009, 1009, 1009, 1010,
+ 1010, 1011, 1011, 1012, 1012, 1013, 1013, 1014, 1015, 1015,
+ 1016, 1016, 1017, 1017, 1017, 1017, 1018, 1018, 1019, 1019,
+ 1019, 1019, 1019, 1019, 1020, 1020, 1021, 1021, 1022, 1023,
+ 1023, 1023, 1024, 1024, 1025, 1025, 1026, 1026, 1027, 1027,
+ 1028, 1028, 1029, 1029, 1029, 1029, 1029, 1030, 1031, 1032,
+ 1033, 1034, 1034, 1035, 1035, 1036, 1036, 1037, 1037, 1038,
+ 1039, 1039, 1039, 1039, 1040, 1040, 1041, 1041, 1042, 1042,
+ 1043, 1043, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044,
+ 1044, 1044, 1045, 1045, 1045, 1045, 1045, 1045, 1046, 1046,
+ 1046, 1046, 1047, 1047, 1048, 1048, 1049, 1049, 1049, 1049,
+ 1049, 1050, 1050, 1050, 1050, 1051, 1051, 1052, 1052, 1053,
+ 1053, 1054, 1054, 1054, 1055, 1055, 1056, 1056, 1056, 1057,
+ 1058, 1058, 1059, 1059, 1060, 1061, 1061, 1062, 1062, 1063,
+ 1063, 1064, 1064, 1065, 1065, 1065, 1066, 1066, 1067, 1067,
+ 1068, 1069, 1069, 1070, 1070, 1071, 1071, 1071, 1072, 1072,
+ 1073, 1073, 1073, 1073, 1074, 1074, 1075, 1075, 1076, 1076,
+ 1076, 1076, 1076, 1076, 1077, 1077, 1077, 1078, 1078, 1078,
+ 1078, 1078, 1078, 1078, 1079, 1079, 1079, 1079, 1080, 1080,
+ 1081, 1081, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
+ 1082, 1082, 1082, 1083, 1083, 1084, 1084, 1085, 1085, 1086,
+ 1087, 1088, 1088, 1089, 1089, 1090, 1091, 1092, 1092, 1092,
+ 1092, 1092, 1092, 1093, 1093, 1094, 1094, 1094, 1094, 1095,
+ 1096, 1096, 1096, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
+ 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1098, 1098, 1099,
+ 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
+ 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
+ 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
+ 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
+ 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
+ 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
+ 1099, 1099, 1099, 1099, 1100, 1100, 1100, 1100, 1100, 1100,
+ 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
+ 1100, 1100, 1100, 1100, 1100, 1100, 1101, 1101, 1101, 1101,
+ 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101,
+ 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1103, 1103, 1104,
+ 1104, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105,
+ 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105,
+ 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105,
+ 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105,
+ 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1106, 1106, 1107,
+ 1107, 1107, 1107, 1108, 1109, 1109, 1110, 1110, 1111, 1111,
+ 1112, 1112, 1112, 1113, 1113, 1113, 1113, 1114, 1114, 1115,
+ 1115, 1116, 1116, 1117, 1117, 1118, 1118, 1119, 1120, 1120,
+ 1120, 1121, 1122, 1122, 1123, 1123, 1124, 1124, 1124, 1124,
+ 1125, 1125, 1126, 1126, 1126, 1126, 1126, 1127, 1127, 1127,
+ 1127, 1127, 1128, 1128, 1128, 1129, 1129, 1130, 1131, 1131,
+ 1131, 1132, 1132, 1133, 1133, 1133, 1133, 1133, 1133, 1133,
+ 1133, 1133, 1133, 1133, 1133, 1134, 1134, 1135, 1135, 1136,
+ 1136, 1136, 1136, 1136, 1136, 1137, 1137, 1138, 1138, 1139,
+ 1139, 1139, 1140, 1140, 1141, 1141, 1142, 1142, 1142, 1143,
+ 1143, 1144, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145,
+ 1146, 1146, 1146, 1146, 1147, 1147, 1148, 1149, 1149, 1149,
+ 1149, 1149, 1150, 1150, 1150, 1151, 1151, 1152, 1153, 1153,
+ 1154, 1155, 1155, 1156, 1156, 1157, 1157, 1158, 1158, 1158,
+ 1158, 1159, 1159, 1160, 1160, 1161, 1161, 1162, 1162, 1163,
+ 1163, 1164, 1164, 1165, 1165, 1165, 1165, 1166, 1166, 1167,
+ 1167, 1168, 1168, 1169, 1170, 1171, 1172, 1172, 1173, 1173,
+ 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173,
+ 1173, 1174, 1175, 1176, 1176, 1176, 1177, 1178, 1178, 1178,
+ 1178, 1179, 1179, 1180, 1181, 1182, 1182, 1183, 1183, 1184,
+ 1184, 1184, 1185, 1185, 1185, 1186, 1186, 1186, 1186, 1187,
+ 1187, 1187, 1187, 1187, 1188, 1188, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1190, 1190, 1190, 1190, 1190,
+ 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
+ 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
+ 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
+ 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
+ 1190, 1190, 1190, 1190, 1190, 1190, 1191, 1191, 1191, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1192,
+ 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192,
+ 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192,
+ 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192,
+ 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192,
+ 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192,
+ 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192,
+ 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192,
+ 1192, 1192, 1192, 1192, 1192, 1192, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193
+};
+
+ /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
+static const yytype_int8 yyr2[] =
+{
+ 0, 2, 1, 2, 2, 2, 2, 2, 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, 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, 5, 7, 1,
+ 3, 4, 4, 4, 3, 2, 5, 3, 6, 4,
+ 6, 6, 5, 7, 6, 6, 5, 5, 6, 5,
+ 9, 4, 5, 7, 6, 4, 8, 4, 2, 4,
+ 3, 6, 4, 3, 3, 3, 2, 2, 3, 4,
+ 4, 3, 3, 3, 3, 3, 3, 4, 4, 3,
+ 2, 3, 2, 2, 3, 4, 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,
+ 4, 1, 3, 4, 6, 4, 8, 2, 2, 11,
+ 9, 1, 1, 1, 0, 1, 1, 1, 1, 3,
+ 2, 0, 1, 1, 3, 3, 1, 1, 3, 3,
+ 3, 3, 4, 3, 2, 1, 0, 3, 0, 1,
+ 0, 1, 3, 2, 1, 1, 1, 3, 0, 1,
+ 3, 1, 13, 16, 12, 15, 14, 17, 1, 1,
+ 2, 2, 2, 2, 1, 0, 1, 0, 3, 0,
+ 1, 3, 1, 3, 1, 1, 1, 1, 1, 5,
+ 2, 4, 2, 2, 1, 0, 2, 0, 3, 1,
+ 1, 2, 2, 1, 4, 4, 5, 2, 5, 7,
+ 5, 2, 3, 0, 1, 2, 1, 2, 2, 2,
+ 3, 3, 3, 0, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 3, 1, 5, 9, 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, 3, 3, 4, 0, 1, 0, 6, 1,
+ 3, 3, 3, 5, 2, 0, 2, 2, 0, 3,
+ 4, 4, 0, 2, 0, 4, 0, 3, 8, 11,
+ 1, 3, 1, 1, 3, 6, 8, 7, 10, 6,
+ 2, 3, 0, 8, 11, 5, 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, 1, 0, 7, 2, 0, 3, 5,
+ 5, 8, 2, 0, 2, 2, 2, 1, 5, 2,
+ 0, 2, 6, 6, 6, 10, 6, 6, 6, 9,
+ 9, 6, 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, 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, 1, 1, 17,
+ 21, 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, 6, 5, 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, 1, 1, 1,
+ 1, 1, 2, 2, 1, 3, 2, 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, 6, 8, 9, 8, 6, 6, 9, 9,
+ 9, 7, 10, 1, 1, 8, 8, 8, 8, 8,
+ 8, 8, 9, 8, 8, 2, 0, 1, 1, 2,
+ 2, 1, 2, 3, 3, 3, 3, 4, 4, 3,
+ 3, 3, 4, 4, 3, 4, 4, 1, 1, 1,
+ 0, 8, 8, 11, 1, 1, 2, 4, 5, 1,
+ 3, 2, 2, 2, 2, 2, 1, 3, 1, 3,
+ 1, 2, 2, 4, 3, 2, 2, 2, 2, 2,
+ 2, 3, 2, 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, 16,
+ 19, 1, 0, 1, 0, 1, 0, 2, 0, 1,
+ 3, 4, 5, 2, 2, 4, 4, 0, 1, 3,
+ 2, 0, 1, 0, 1, 1, 0, 2, 2, 0,
+ 9, 12, 7, 7, 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, 0,
+ 1, 2, 4, 5, 1, 1, 1, 1, 3, 3,
+ 2, 2, 1, 2, 2, 2, 2, 1, 2, 2,
+ 2, 2, 1, 1, 1, 3, 2, 1, 4, 0,
+ 3, 0, 1, 1, 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, 4, 4, 7,
+ 7, 1, 1, 1, 1, 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, 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, 8, 8, 8,
+ 10, 9, 8, 1, 0, 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, 7, 6, 6, 6, 6, 6, 6, 7,
+ 7, 6, 9, 9, 6, 6, 6, 6, 6, 6,
+ 8, 8, 8, 6, 7, 6, 6, 4, 7, 6,
+ 4, 4, 4, 3, 4, 3, 1, 1, 3, 5,
+ 5, 5, 5, 8, 5, 5, 6, 7, 7, 7,
+ 4, 4, 5, 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, 3, 3, 3, 3, 2, 3, 2, 5, 4,
+ 3, 3, 3, 3, 3, 1, 1, 0, 3, 2,
+ 2, 1, 2, 1, 3, 2, 1, 0, 2, 3,
+ 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,
+ 6, 4, 3, 5, 7, 9, 1, 3, 1, 5,
+ 4, 4, 6, 4, 6, 6, 5, 7, 9, 6,
+ 1, 0, 6, 11, 11, 11, 13, 9, 11, 1,
+ 1, 10, 4, 6, 2, 5, 2, 0, 6, 5,
+ 3, 5, 1, 3, 1, 1, 2, 1, 1, 1,
+ 1, 0, 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, 5, 3, 0, 1, 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, 9, 1, 2, 5,
+ 5, 6, 6, 7, 2, 0, 3, 1, 2, 5,
+ 5, 8, 3, 4, 7, 1, 0, 3, 2, 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, 9, 1, 2, 0, 7, 7, 0, 10, 6,
+ 0, 1, 0, 2, 0, 3, 3, 4, 4, 4,
+ 4, 3, 2, 1, 1, 0, 1, 1, 0, 1,
+ 5, 1, 0, 1, 1, 1, 0, 3, 1, 3,
+ 4, 3, 2, 2, 1, 1, 1, 0, 2, 4,
+ 5, 6, 4, 5, 2, 3, 1, 1, 1, 1,
+ 2, 2, 1, 1, 1, 1, 1, 1, 4, 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, 2, 0, 1, 4, 5, 4,
+ 0, 2, 2, 2, 1, 1, 0, 5, 2, 1,
+ 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, 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, 3, 4, 4, 6, 3, 3, 4, 3,
+ 4, 4, 5, 1, 1, 3, 2, 2, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 2, 5, 6, 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,
+ 6, 4, 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, 3, 3, 4, 2, 2, 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, 0, 1, 3, 3, 3, 2, 1,
+ 3, 3, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 7, 5, 3, 5, 5, 3,
+ 3, 5, 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, 2, 1, 1,
+ 1, 1, 1, 2, 6, 2, 3, 5, 1, 1,
+ 1, 1, 1, 1, 2, 2, 1, 1, 1, 1,
+ 1, 1, 3, 10, 4, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1
+};
+
+
+enum { YYENOMEM = -2 };
+
+#define yyerrok (yyerrstatus = 0)
+#define yyclearin (yychar = YYEMPTY)
+
+#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)
+
+/* Backward compatibility with an undocumented macro.
+ Use YYerror or YYUNDEF. */
+#define YYERRCODE YYUNDEF
+
+/* 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 <stdio.h> /* 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 /* !defined YY_LOCATION_PRINT */
+
+
+# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
+do { \
+ if (yydebug) \
+ { \
+ YYFPRINTF (stderr, "%s ", Title); \
+ yy_symbol_print (stderr, \
+ Kind, Value, Location, yyscanner); \
+ YYFPRINTF (stderr, "\n"); \
+ } \
+} while (0)
+
+
+/*-----------------------------------.
+| Print this symbol's value on YYO. |
+`-----------------------------------*/
+
+static void
+yy_symbol_value_print (FILE *yyo,
+ yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner)
+{
+ FILE *yyoutput = yyo;
+ YY_USE (yyoutput);
+ YY_USE (yylocationp);
+ YY_USE (yyscanner);
+ if (!yyvaluep)
+ return;
+# ifdef YYPRINT
+ if (yykind < YYNTOKENS)
+ YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
+# endif
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+ YY_USE (yykind);
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
+}
+
+
+/*---------------------------.
+| Print this symbol on YYO. |
+`---------------------------*/
+
+static void
+yy_symbol_print (FILE *yyo,
+ yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner)
+{
+ YYFPRINTF (yyo, "%s %s (",
+ yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
+
+ YY_LOCATION_PRINT (yyo, *yylocationp);
+ YYFPRINTF (yyo, ": ");
+ yy_symbol_value_print (yyo, yykind, 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 (yy_state_t *yybottom, yy_state_t *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 (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp,
+ int yyrule, core_yyscan_t yyscanner)
+{
+ int yylno = yyrline[yyrule];
+ int yynrhs = yyr2[yyrule];
+ int yyi;
+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
+ yyrule - 1, yylno);
+ /* The symbols being reduced. */
+ for (yyi = 0; yyi < yynrhs; yyi++)
+ {
+ YYFPRINTF (stderr, " $%d = ", yyi + 1);
+ yy_symbol_print (stderr,
+ YY_ACCESSING_SYMBOL (+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) ((void) 0)
+# define YY_SYMBOL_PRINT(Title, Kind, 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
+
+
+
+
+
+
+/*-----------------------------------------------.
+| Release the memory associated to this symbol. |
+`-----------------------------------------------*/
+
+static void
+yydestruct (const char *yymsg,
+ yysymbol_kind_t yykind, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, core_yyscan_t yyscanner)
+{
+ YY_USE (yyvaluep);
+ YY_USE (yylocationp);
+ YY_USE (yyscanner);
+ if (!yymsg)
+ yymsg = "Deleting";
+ YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
+
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+ YY_USE (yykind);
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
+}
+
+
+
+
+
+
+/*----------.
+| yyparse. |
+`----------*/
+
+int
+yyparse (core_yyscan_t yyscanner)
+{
+/* Lookahead token kind. */
+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 = 0;
+
+ yy_state_fast_t yystate = 0;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus = 0;
+
+ /* Refer to the stacks through separate pointers, to allow yyoverflow
+ to reallocate them elsewhere. */
+
+ /* Their size. */
+ YYPTRDIFF_T yystacksize = YYINITDEPTH;
+
+ /* The state stack: array, bottom, top. */
+ yy_state_t yyssa[YYINITDEPTH];
+ yy_state_t *yyss = yyssa;
+ yy_state_t *yyssp = yyss;
+
+ /* The semantic value stack: array, bottom, top. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs = yyvsa;
+ YYSTYPE *yyvsp = yyvs;
+
+ /* The location stack: array, bottom, top. */
+ YYLTYPE yylsa[YYINITDEPTH];
+ YYLTYPE *yyls = yylsa;
+ YYLTYPE *yylsp = yyls;
+
+ int yyn;
+ /* The return value of yyparse. */
+ int yyresult;
+ /* Lookahead symbol kind. */
+ yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
+ /* The variables used to return semantic value and location from the
+ action routines. */
+ YYSTYPE yyval;
+ YYLTYPE yyloc;
+
+ /* The locations where the error started and ended. */
+ YYLTYPE yyerror_range[3];
+
+
+
+#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;
+
+ YYDPRINTF ((stderr, "Starting parse\n"));
+
+ 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++;
+
+
+/*--------------------------------------------------------------------.
+| yysetstate -- set current state (the top of the stack) to yystate. |
+`--------------------------------------------------------------------*/
+yysetstate:
+ YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+ YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
+ YY_IGNORE_USELESS_CAST_BEGIN
+ *yyssp = YY_CAST (yy_state_t, yystate);
+ YY_IGNORE_USELESS_CAST_END
+ YY_STACK_PRINT (yyss, yyssp);
+
+ 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. */
+ YYPTRDIFF_T yysize = 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. */
+ yy_state_t *yyss1 = yyss;
+ YYSTYPE *yyvs1 = yyvs;
+ 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 * YYSIZEOF (*yyssp),
+ &yyvs1, yysize * YYSIZEOF (*yyvsp),
+ &yyls1, yysize * YYSIZEOF (*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;
+
+ {
+ yy_state_t *yyss1 = yyss;
+ union yyalloc *yyptr =
+ YY_CAST (union yyalloc *,
+ YYSTACK_ALLOC (YY_CAST (YYSIZE_T, 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;
+
+ YY_IGNORE_USELESS_CAST_BEGIN
+ YYDPRINTF ((stderr, "Stack size increased to %ld\n",
+ YY_CAST (long, yystacksize)));
+ YY_IGNORE_USELESS_CAST_END
+
+ if (yyss + yystacksize - 1 <= yyssp)
+ YYABORT;
+ }
+#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
+
+ 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 empty, or end-of-input, or a valid lookahead. */
+ if (yychar == YYEMPTY)
+ {
+ YYDPRINTF ((stderr, "Reading a token\n"));
+ yychar = yylex (&yylval, &yylloc, yyscanner);
+ }
+
+ if (yychar <= YYEOF)
+ {
+ yychar = YYEOF;
+ yytoken = YYSYMBOL_YYEOF;
+ YYDPRINTF ((stderr, "Now at end of input.\n"));
+ }
+ else if (yychar == YYerror)
+ {
+ /* The scanner already issued an error message, process directly
+ to error recovery. But do not keep the error token as
+ lookahead, it is too special and may lead us to an endless
+ loop in error recovery. */
+ yychar = YYUNDEF;
+ yytoken = YYSYMBOL_YYerror;
+ yyerror_range[1] = yylloc;
+ goto yyerrlab1;
+ }
+ 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);
+ yystate = yyn;
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+ *++yyvsp = yylval;
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
+ *++yylsp = yylloc;
+
+ /* Discard the shifted token. */
+ yychar = YYEMPTY;
+ 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: /* parse_toplevel: stmtmulti */
+#line 860 "gram.y"
+ {
+ pg_yyget_extra(yyscanner)->parsetree = (yyvsp[0].list);
+ (void) yynerrs; /* suppress compiler warning */
+ }
+#line 28102 "gram.c"
+ break;
+
+ case 3: /* parse_toplevel: MODE_TYPE_NAME Typename */
+#line 865 "gram.y"
+ {
+ pg_yyget_extra(yyscanner)->parsetree = list_make1((yyvsp[0].typnam));
+ }
+#line 28110 "gram.c"
+ break;
+
+ case 4: /* parse_toplevel: MODE_PLPGSQL_EXPR PLpgSQL_Expr */
+#line 869 "gram.y"
+ {
+ pg_yyget_extra(yyscanner)->parsetree =
+ list_make1(makeRawStmt((yyvsp[0].node), 0));
+ }
+#line 28119 "gram.c"
+ break;
+
+ case 5: /* parse_toplevel: MODE_PLPGSQL_ASSIGN1 PLAssignStmt */
+#line 874 "gram.y"
+ {
+ PLAssignStmt *n = (PLAssignStmt *) (yyvsp[0].node);
+
+ n->nnames = 1;
+ pg_yyget_extra(yyscanner)->parsetree =
+ list_make1(makeRawStmt((Node *) n, 0));
+ }
+#line 28131 "gram.c"
+ break;
+
+ case 6: /* parse_toplevel: MODE_PLPGSQL_ASSIGN2 PLAssignStmt */
+#line 882 "gram.y"
+ {
+ PLAssignStmt *n = (PLAssignStmt *) (yyvsp[0].node);
+
+ n->nnames = 2;
+ pg_yyget_extra(yyscanner)->parsetree =
+ list_make1(makeRawStmt((Node *) n, 0));
+ }
+#line 28143 "gram.c"
+ break;
+
+ case 7: /* parse_toplevel: MODE_PLPGSQL_ASSIGN3 PLAssignStmt */
+#line 890 "gram.y"
+ {
+ PLAssignStmt *n = (PLAssignStmt *) (yyvsp[0].node);
+
+ n->nnames = 3;
+ pg_yyget_extra(yyscanner)->parsetree =
+ list_make1(makeRawStmt((Node *) n, 0));
+ }
+#line 28155 "gram.c"
+ break;
+
+ case 8: /* stmtmulti: stmtmulti ';' toplevel_stmt */
+#line 910 "gram.y"
+ {
+ 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 28171 "gram.c"
+ break;
+
+ case 9: /* stmtmulti: toplevel_stmt */
+#line 922 "gram.y"
+ {
+ if ((yyvsp[0].node) != NULL)
+ (yyval.list) = list_make1(makeRawStmt((yyvsp[0].node), 0));
+ else
+ (yyval.list) = NIL;
+ }
+#line 28182 "gram.c"
+ break;
+
+ case 136: /* stmt: %empty */
+#line 1065 "gram.y"
+ { (yyval.node) = NULL; }
+#line 28188 "gram.c"
+ break;
+
+ case 137: /* CallStmt: CALL func_application */
+#line 1075 "gram.y"
+ {
+ CallStmt *n = makeNode(CallStmt);
+
+ n->funccall = castNode(FuncCall, (yyvsp[0].node));
+ (yyval.node) = (Node *) n;
+ }
+#line 28199 "gram.c"
+ break;
+
+ case 138: /* CreateRoleStmt: CREATE ROLE RoleId opt_with OptRoleList */
+#line 1091 "gram.y"
+ {
+ CreateRoleStmt *n = makeNode(CreateRoleStmt);
+
+ n->stmt_type = ROLESTMT_ROLE;
+ n->role = (yyvsp[-2].str);
+ n->options = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 28212 "gram.c"
+ break;
+
+ case 142: /* OptRoleList: OptRoleList CreateOptRoleElem */
+#line 1113 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
+#line 28218 "gram.c"
+ break;
+
+ case 143: /* OptRoleList: %empty */
+#line 1114 "gram.y"
+ { (yyval.list) = NIL; }
+#line 28224 "gram.c"
+ break;
+
+ case 144: /* AlterOptRoleList: AlterOptRoleList AlterOptRoleElem */
+#line 1118 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
+#line 28230 "gram.c"
+ break;
+
+ case 145: /* AlterOptRoleList: %empty */
+#line 1119 "gram.y"
+ { (yyval.list) = NIL; }
+#line 28236 "gram.c"
+ break;
+
+ case 146: /* AlterOptRoleElem: PASSWORD Sconst */
+#line 1124 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("password",
+ (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
+ }
+#line 28245 "gram.c"
+ break;
+
+ case 147: /* AlterOptRoleElem: PASSWORD NULL_P */
+#line 1129 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("password", NULL, (yylsp[-1]));
+ }
+#line 28253 "gram.c"
+ break;
+
+ case 148: /* AlterOptRoleElem: ENCRYPTED PASSWORD Sconst */
+#line 1133 "gram.y"
+ {
+ /*
+ * 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 28267 "gram.c"
+ break;
+
+ case 149: /* AlterOptRoleElem: UNENCRYPTED PASSWORD Sconst */
+#line 1143 "gram.y"
+ {
+ 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 28279 "gram.c"
+ break;
+
+ case 150: /* AlterOptRoleElem: INHERIT */
+#line 1151 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("inherit", (Node *) makeBoolean(true), (yylsp[0]));
+ }
+#line 28287 "gram.c"
+ break;
+
+ case 151: /* AlterOptRoleElem: CONNECTION LIMIT SignedIconst */
+#line 1155 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("connectionlimit", (Node *) makeInteger((yyvsp[0].ival)), (yylsp[-2]));
+ }
+#line 28295 "gram.c"
+ break;
+
+ case 152: /* AlterOptRoleElem: VALID UNTIL Sconst */
+#line 1159 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("validUntil", (Node *) makeString((yyvsp[0].str)), (yylsp[-2]));
+ }
+#line 28303 "gram.c"
+ break;
+
+ case 153: /* AlterOptRoleElem: USER role_list */
+#line 1164 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("rolemembers", (Node *) (yyvsp[0].list), (yylsp[-1]));
+ }
+#line 28311 "gram.c"
+ break;
+
+ case 154: /* AlterOptRoleElem: IDENT */
+#line 1168 "gram.y"
+ {
+ /*
+ * 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 *) makeBoolean(true), (yylsp[0]));
+ else if (strcmp((yyvsp[0].str), "nosuperuser") == 0)
+ (yyval.defelt) = makeDefElem("superuser", (Node *) makeBoolean(false), (yylsp[0]));
+ else if (strcmp((yyvsp[0].str), "createrole") == 0)
+ (yyval.defelt) = makeDefElem("createrole", (Node *) makeBoolean(true), (yylsp[0]));
+ else if (strcmp((yyvsp[0].str), "nocreaterole") == 0)
+ (yyval.defelt) = makeDefElem("createrole", (Node *) makeBoolean(false), (yylsp[0]));
+ else if (strcmp((yyvsp[0].str), "replication") == 0)
+ (yyval.defelt) = makeDefElem("isreplication", (Node *) makeBoolean(true), (yylsp[0]));
+ else if (strcmp((yyvsp[0].str), "noreplication") == 0)
+ (yyval.defelt) = makeDefElem("isreplication", (Node *) makeBoolean(false), (yylsp[0]));
+ else if (strcmp((yyvsp[0].str), "createdb") == 0)
+ (yyval.defelt) = makeDefElem("createdb", (Node *) makeBoolean(true), (yylsp[0]));
+ else if (strcmp((yyvsp[0].str), "nocreatedb") == 0)
+ (yyval.defelt) = makeDefElem("createdb", (Node *) makeBoolean(false), (yylsp[0]));
+ else if (strcmp((yyvsp[0].str), "login") == 0)
+ (yyval.defelt) = makeDefElem("canlogin", (Node *) makeBoolean(true), (yylsp[0]));
+ else if (strcmp((yyvsp[0].str), "nologin") == 0)
+ (yyval.defelt) = makeDefElem("canlogin", (Node *) makeBoolean(false), (yylsp[0]));
+ else if (strcmp((yyvsp[0].str), "bypassrls") == 0)
+ (yyval.defelt) = makeDefElem("bypassrls", (Node *) makeBoolean(true), (yylsp[0]));
+ else if (strcmp((yyvsp[0].str), "nobypassrls") == 0)
+ (yyval.defelt) = makeDefElem("bypassrls", (Node *) makeBoolean(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 *) makeBoolean(false), (yylsp[0]));
+ }
+ else
+ ereport(ERROR,
+ (errcode(ERRCODE_SYNTAX_ERROR),
+ errmsg("unrecognized role option \"%s\"", (yyvsp[0].str)),
+ parser_errposition((yylsp[0]))));
+ }
+#line 28360 "gram.c"
+ break;
+
+ case 155: /* CreateOptRoleElem: AlterOptRoleElem */
+#line 1215 "gram.y"
+ { (yyval.defelt) = (yyvsp[0].defelt); }
+#line 28366 "gram.c"
+ break;
+
+ case 156: /* CreateOptRoleElem: SYSID Iconst */
+#line 1218 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("sysid", (Node *) makeInteger((yyvsp[0].ival)), (yylsp[-1]));
+ }
+#line 28374 "gram.c"
+ break;
+
+ case 157: /* CreateOptRoleElem: ADMIN role_list */
+#line 1222 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("adminmembers", (Node *) (yyvsp[0].list), (yylsp[-1]));
+ }
+#line 28382 "gram.c"
+ break;
+
+ case 158: /* CreateOptRoleElem: ROLE role_list */
+#line 1226 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("rolemembers", (Node *) (yyvsp[0].list), (yylsp[-1]));
+ }
+#line 28390 "gram.c"
+ break;
+
+ case 159: /* CreateOptRoleElem: IN_P ROLE role_list */
+#line 1230 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("addroleto", (Node *) (yyvsp[0].list), (yylsp[-2]));
+ }
+#line 28398 "gram.c"
+ break;
+
+ case 160: /* CreateOptRoleElem: IN_P GROUP_P role_list */
+#line 1234 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("addroleto", (Node *) (yyvsp[0].list), (yylsp[-2]));
+ }
+#line 28406 "gram.c"
+ break;
+
+ case 161: /* CreateUserStmt: CREATE USER RoleId opt_with OptRoleList */
+#line 1248 "gram.y"
+ {
+ CreateRoleStmt *n = makeNode(CreateRoleStmt);
+
+ n->stmt_type = ROLESTMT_USER;
+ n->role = (yyvsp[-2].str);
+ n->options = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 28419 "gram.c"
+ break;
+
+ case 162: /* AlterRoleStmt: ALTER ROLE RoleSpec opt_with AlterOptRoleList */
+#line 1267 "gram.y"
+ {
+ 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 28432 "gram.c"
+ break;
+
+ case 163: /* AlterRoleStmt: ALTER USER RoleSpec opt_with AlterOptRoleList */
+#line 1276 "gram.y"
+ {
+ 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 28445 "gram.c"
+ break;
+
+ case 164: /* opt_in_database: %empty */
+#line 1287 "gram.y"
+ { (yyval.str) = NULL; }
+#line 28451 "gram.c"
+ break;
+
+ case 165: /* opt_in_database: IN_P DATABASE name */
+#line 1288 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 28457 "gram.c"
+ break;
+
+ case 166: /* AlterRoleSetStmt: ALTER ROLE RoleSpec opt_in_database SetResetClause */
+#line 1293 "gram.y"
+ {
+ AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
+
+ n->role = (yyvsp[-2].rolespec);
+ n->database = (yyvsp[-1].str);
+ n->setstmt = (yyvsp[0].vsetstmt);
+ (yyval.node) = (Node *) n;
+ }
+#line 28470 "gram.c"
+ break;
+
+ case 167: /* AlterRoleSetStmt: ALTER ROLE ALL opt_in_database SetResetClause */
+#line 1302 "gram.y"
+ {
+ AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
+
+ n->role = NULL;
+ n->database = (yyvsp[-1].str);
+ n->setstmt = (yyvsp[0].vsetstmt);
+ (yyval.node) = (Node *) n;
+ }
+#line 28483 "gram.c"
+ break;
+
+ case 168: /* AlterRoleSetStmt: ALTER USER RoleSpec opt_in_database SetResetClause */
+#line 1311 "gram.y"
+ {
+ AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
+
+ n->role = (yyvsp[-2].rolespec);
+ n->database = (yyvsp[-1].str);
+ n->setstmt = (yyvsp[0].vsetstmt);
+ (yyval.node) = (Node *) n;
+ }
+#line 28496 "gram.c"
+ break;
+
+ case 169: /* AlterRoleSetStmt: ALTER USER ALL opt_in_database SetResetClause */
+#line 1320 "gram.y"
+ {
+ AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
+
+ n->role = NULL;
+ n->database = (yyvsp[-1].str);
+ n->setstmt = (yyvsp[0].vsetstmt);
+ (yyval.node) = (Node *) n;
+ }
+#line 28509 "gram.c"
+ break;
+
+ case 170: /* DropRoleStmt: DROP ROLE role_list */
+#line 1342 "gram.y"
+ {
+ DropRoleStmt *n = makeNode(DropRoleStmt);
+
+ n->missing_ok = false;
+ n->roles = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 28521 "gram.c"
+ break;
+
+ case 171: /* DropRoleStmt: DROP ROLE IF_P EXISTS role_list */
+#line 1350 "gram.y"
+ {
+ DropRoleStmt *n = makeNode(DropRoleStmt);
+
+ n->missing_ok = true;
+ n->roles = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 28533 "gram.c"
+ break;
+
+ case 172: /* DropRoleStmt: DROP USER role_list */
+#line 1358 "gram.y"
+ {
+ DropRoleStmt *n = makeNode(DropRoleStmt);
+
+ n->missing_ok = false;
+ n->roles = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 28545 "gram.c"
+ break;
+
+ case 173: /* DropRoleStmt: DROP USER IF_P EXISTS role_list */
+#line 1366 "gram.y"
+ {
+ DropRoleStmt *n = makeNode(DropRoleStmt);
+
+ n->roles = (yyvsp[0].list);
+ n->missing_ok = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 28557 "gram.c"
+ break;
+
+ case 174: /* DropRoleStmt: DROP GROUP_P role_list */
+#line 1374 "gram.y"
+ {
+ DropRoleStmt *n = makeNode(DropRoleStmt);
+
+ n->missing_ok = false;
+ n->roles = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 28569 "gram.c"
+ break;
+
+ case 175: /* DropRoleStmt: DROP GROUP_P IF_P EXISTS role_list */
+#line 1382 "gram.y"
+ {
+ DropRoleStmt *n = makeNode(DropRoleStmt);
+
+ n->missing_ok = true;
+ n->roles = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 28581 "gram.c"
+ break;
+
+ case 176: /* CreateGroupStmt: CREATE GROUP_P RoleId opt_with OptRoleList */
+#line 1400 "gram.y"
+ {
+ CreateRoleStmt *n = makeNode(CreateRoleStmt);
+
+ n->stmt_type = ROLESTMT_GROUP;
+ n->role = (yyvsp[-2].str);
+ n->options = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 28594 "gram.c"
+ break;
+
+ case 177: /* AlterGroupStmt: ALTER GROUP_P RoleSpec add_drop USER role_list */
+#line 1419 "gram.y"
+ {
+ 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 28608 "gram.c"
+ break;
+
+ case 178: /* add_drop: ADD_P */
+#line 1430 "gram.y"
+ { (yyval.ival) = +1; }
+#line 28614 "gram.c"
+ break;
+
+ case 179: /* add_drop: DROP */
+#line 1431 "gram.y"
+ { (yyval.ival) = -1; }
+#line 28620 "gram.c"
+ break;
+
+ case 180: /* CreateSchemaStmt: CREATE SCHEMA OptSchemaName AUTHORIZATION RoleSpec OptSchemaEltList */
+#line 1443 "gram.y"
+ {
+ 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 28635 "gram.c"
+ break;
+
+ case 181: /* CreateSchemaStmt: CREATE SCHEMA ColId OptSchemaEltList */
+#line 1454 "gram.y"
+ {
+ 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 28650 "gram.c"
+ break;
+
+ case 182: /* CreateSchemaStmt: CREATE SCHEMA IF_P NOT EXISTS OptSchemaName AUTHORIZATION RoleSpec OptSchemaEltList */
+#line 1465 "gram.y"
+ {
+ 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 28670 "gram.c"
+ break;
+
+ case 183: /* CreateSchemaStmt: CREATE SCHEMA IF_P NOT EXISTS ColId OptSchemaEltList */
+#line 1481 "gram.y"
+ {
+ 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 28690 "gram.c"
+ break;
+
+ case 184: /* OptSchemaName: ColId */
+#line 1499 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 28696 "gram.c"
+ break;
+
+ case 185: /* OptSchemaName: %empty */
+#line 1500 "gram.y"
+ { (yyval.str) = NULL; }
+#line 28702 "gram.c"
+ break;
+
+ case 186: /* OptSchemaEltList: OptSchemaEltList schema_stmt */
+#line 1505 "gram.y"
+ {
+ if ((yyloc) < 0) /* see comments for YYLLOC_DEFAULT */
+ (yyloc) = (yylsp[0]);
+ (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node));
+ }
+#line 28712 "gram.c"
+ break;
+
+ case 187: /* OptSchemaEltList: %empty */
+#line 1511 "gram.y"
+ { (yyval.list) = NIL; }
+#line 28718 "gram.c"
+ break;
+
+ case 194: /* VariableSetStmt: SET set_rest */
+#line 1539 "gram.y"
+ {
+ VariableSetStmt *n = (yyvsp[0].vsetstmt);
+
+ n->is_local = false;
+ (yyval.node) = (Node *) n;
+ }
+#line 28729 "gram.c"
+ break;
+
+ case 195: /* VariableSetStmt: SET LOCAL set_rest */
+#line 1546 "gram.y"
+ {
+ VariableSetStmt *n = (yyvsp[0].vsetstmt);
+
+ n->is_local = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 28740 "gram.c"
+ break;
+
+ case 196: /* VariableSetStmt: SET SESSION set_rest */
+#line 1553 "gram.y"
+ {
+ VariableSetStmt *n = (yyvsp[0].vsetstmt);
+
+ n->is_local = false;
+ (yyval.node) = (Node *) n;
+ }
+#line 28751 "gram.c"
+ break;
+
+ case 197: /* set_rest: TRANSACTION transaction_mode_list */
+#line 1563 "gram.y"
+ {
+ VariableSetStmt *n = makeNode(VariableSetStmt);
+
+ n->kind = VAR_SET_MULTI;
+ n->name = "TRANSACTION";
+ n->args = (yyvsp[0].list);
+ (yyval.vsetstmt) = n;
+ }
+#line 28764 "gram.c"
+ break;
+
+ case 198: /* set_rest: SESSION CHARACTERISTICS AS TRANSACTION transaction_mode_list */
+#line 1572 "gram.y"
+ {
+ VariableSetStmt *n = makeNode(VariableSetStmt);
+
+ n->kind = VAR_SET_MULTI;
+ n->name = "SESSION CHARACTERISTICS";
+ n->args = (yyvsp[0].list);
+ (yyval.vsetstmt) = n;
+ }
+#line 28777 "gram.c"
+ break;
+
+ case 200: /* generic_set: var_name TO var_list */
+#line 1585 "gram.y"
+ {
+ VariableSetStmt *n = makeNode(VariableSetStmt);
+
+ n->kind = VAR_SET_VALUE;
+ n->name = (yyvsp[-2].str);
+ n->args = (yyvsp[0].list);
+ (yyval.vsetstmt) = n;
+ }
+#line 28790 "gram.c"
+ break;
+
+ case 201: /* generic_set: var_name '=' var_list */
+#line 1594 "gram.y"
+ {
+ VariableSetStmt *n = makeNode(VariableSetStmt);
+
+ n->kind = VAR_SET_VALUE;
+ n->name = (yyvsp[-2].str);
+ n->args = (yyvsp[0].list);
+ (yyval.vsetstmt) = n;
+ }
+#line 28803 "gram.c"
+ break;
+
+ case 202: /* generic_set: var_name TO DEFAULT */
+#line 1603 "gram.y"
+ {
+ VariableSetStmt *n = makeNode(VariableSetStmt);
+
+ n->kind = VAR_SET_DEFAULT;
+ n->name = (yyvsp[-2].str);
+ (yyval.vsetstmt) = n;
+ }
+#line 28815 "gram.c"
+ break;
+
+ case 203: /* generic_set: var_name '=' DEFAULT */
+#line 1611 "gram.y"
+ {
+ VariableSetStmt *n = makeNode(VariableSetStmt);
+
+ n->kind = VAR_SET_DEFAULT;
+ n->name = (yyvsp[-2].str);
+ (yyval.vsetstmt) = n;
+ }
+#line 28827 "gram.c"
+ break;
+
+ case 204: /* set_rest_more: generic_set */
+#line 1621 "gram.y"
+ {(yyval.vsetstmt) = (yyvsp[0].vsetstmt);}
+#line 28833 "gram.c"
+ break;
+
+ case 205: /* set_rest_more: var_name FROM CURRENT_P */
+#line 1623 "gram.y"
+ {
+ VariableSetStmt *n = makeNode(VariableSetStmt);
+
+ n->kind = VAR_SET_CURRENT;
+ n->name = (yyvsp[-2].str);
+ (yyval.vsetstmt) = n;
+ }
+#line 28845 "gram.c"
+ break;
+
+ case 206: /* set_rest_more: TIME ZONE zone_value */
+#line 1632 "gram.y"
+ {
+ 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 28861 "gram.c"
+ break;
+
+ case 207: /* set_rest_more: CATALOG_P Sconst */
+#line 1644 "gram.y"
+ {
+ ereport(ERROR,
+ (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+ errmsg("current database cannot be changed"),
+ parser_errposition((yylsp[0]))));
+ (yyval.vsetstmt) = NULL; /*not reached*/
+ }
+#line 28873 "gram.c"
+ break;
+
+ case 208: /* set_rest_more: SCHEMA Sconst */
+#line 1652 "gram.y"
+ {
+ 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 28886 "gram.c"
+ break;
+
+ case 209: /* set_rest_more: NAMES opt_encoding */
+#line 1661 "gram.y"
+ {
+ 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 28902 "gram.c"
+ break;
+
+ case 210: /* set_rest_more: ROLE NonReservedWord_or_Sconst */
+#line 1673 "gram.y"
+ {
+ 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 28915 "gram.c"
+ break;
+
+ case 211: /* set_rest_more: SESSION AUTHORIZATION NonReservedWord_or_Sconst */
+#line 1682 "gram.y"
+ {
+ 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 28928 "gram.c"
+ break;
+
+ case 212: /* set_rest_more: SESSION AUTHORIZATION DEFAULT */
+#line 1691 "gram.y"
+ {
+ VariableSetStmt *n = makeNode(VariableSetStmt);
+
+ n->kind = VAR_SET_DEFAULT;
+ n->name = "session_authorization";
+ (yyval.vsetstmt) = n;
+ }
+#line 28940 "gram.c"
+ break;
+
+ case 213: /* set_rest_more: XML_P OPTION document_or_content */
+#line 1699 "gram.y"
+ {
+ 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 28953 "gram.c"
+ break;
+
+ case 214: /* set_rest_more: TRANSACTION SNAPSHOT Sconst */
+#line 1709 "gram.y"
+ {
+ 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 28966 "gram.c"
+ break;
+
+ case 215: /* var_name: ColId */
+#line 1719 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 28972 "gram.c"
+ break;
+
+ case 216: /* var_name: var_name '.' ColId */
+#line 1721 "gram.y"
+ { (yyval.str) = psprintf("%s.%s", (yyvsp[-2].str), (yyvsp[0].str)); }
+#line 28978 "gram.c"
+ break;
+
+ case 217: /* var_list: var_value */
+#line 1724 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].node)); }
+#line 28984 "gram.c"
+ break;
+
+ case 218: /* var_list: var_list ',' var_value */
+#line 1725 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
+#line 28990 "gram.c"
+ break;
+
+ case 219: /* var_value: opt_boolean_or_string */
+#line 1729 "gram.y"
+ { (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); }
+#line 28996 "gram.c"
+ break;
+
+ case 220: /* var_value: NumericOnly */
+#line 1731 "gram.y"
+ { (yyval.node) = makeAConst((yyvsp[0].node), (yylsp[0])); }
+#line 29002 "gram.c"
+ break;
+
+ case 221: /* iso_level: READ UNCOMMITTED */
+#line 1734 "gram.y"
+ { (yyval.str) = "read uncommitted"; }
+#line 29008 "gram.c"
+ break;
+
+ case 222: /* iso_level: READ COMMITTED */
+#line 1735 "gram.y"
+ { (yyval.str) = "read committed"; }
+#line 29014 "gram.c"
+ break;
+
+ case 223: /* iso_level: REPEATABLE READ */
+#line 1736 "gram.y"
+ { (yyval.str) = "repeatable read"; }
+#line 29020 "gram.c"
+ break;
+
+ case 224: /* iso_level: SERIALIZABLE */
+#line 1737 "gram.y"
+ { (yyval.str) = "serializable"; }
+#line 29026 "gram.c"
+ break;
+
+ case 225: /* opt_boolean_or_string: TRUE_P */
+#line 1741 "gram.y"
+ { (yyval.str) = "true"; }
+#line 29032 "gram.c"
+ break;
+
+ case 226: /* opt_boolean_or_string: FALSE_P */
+#line 1742 "gram.y"
+ { (yyval.str) = "false"; }
+#line 29038 "gram.c"
+ break;
+
+ case 227: /* opt_boolean_or_string: ON */
+#line 1743 "gram.y"
+ { (yyval.str) = "on"; }
+#line 29044 "gram.c"
+ break;
+
+ case 228: /* opt_boolean_or_string: NonReservedWord_or_Sconst */
+#line 1749 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 29050 "gram.c"
+ break;
+
+ case 229: /* zone_value: Sconst */
+#line 1762 "gram.y"
+ {
+ (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0]));
+ }
+#line 29058 "gram.c"
+ break;
+
+ case 230: /* zone_value: IDENT */
+#line 1766 "gram.y"
+ {
+ (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0]));
+ }
+#line 29066 "gram.c"
+ break;
+
+ case 231: /* zone_value: ConstInterval Sconst opt_interval */
+#line 1770 "gram.y"
+ {
+ TypeName *t = (yyvsp[-2].typnam);
+
+ if ((yyvsp[0].list) != NIL)
+ {
+ A_Const *n = (A_Const *) linitial((yyvsp[0].list));
+
+ if ((n->val.ival.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 29087 "gram.c"
+ break;
+
+ case 232: /* zone_value: ConstInterval '(' Iconst ')' Sconst */
+#line 1787 "gram.y"
+ {
+ 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 29099 "gram.c"
+ break;
+
+ case 233: /* zone_value: NumericOnly */
+#line 1794 "gram.y"
+ { (yyval.node) = makeAConst((yyvsp[0].node), (yylsp[0])); }
+#line 29105 "gram.c"
+ break;
+
+ case 234: /* zone_value: DEFAULT */
+#line 1795 "gram.y"
+ { (yyval.node) = NULL; }
+#line 29111 "gram.c"
+ break;
+
+ case 235: /* zone_value: LOCAL */
+#line 1796 "gram.y"
+ { (yyval.node) = NULL; }
+#line 29117 "gram.c"
+ break;
+
+ case 236: /* opt_encoding: Sconst */
+#line 1800 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 29123 "gram.c"
+ break;
+
+ case 237: /* opt_encoding: DEFAULT */
+#line 1801 "gram.y"
+ { (yyval.str) = NULL; }
+#line 29129 "gram.c"
+ break;
+
+ case 238: /* opt_encoding: %empty */
+#line 1802 "gram.y"
+ { (yyval.str) = NULL; }
+#line 29135 "gram.c"
+ break;
+
+ case 239: /* NonReservedWord_or_Sconst: NonReservedWord */
+#line 1806 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 29141 "gram.c"
+ break;
+
+ case 240: /* NonReservedWord_or_Sconst: Sconst */
+#line 1807 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 29147 "gram.c"
+ break;
+
+ case 241: /* VariableResetStmt: RESET reset_rest */
+#line 1811 "gram.y"
+ { (yyval.node) = (Node *) (yyvsp[0].vsetstmt); }
+#line 29153 "gram.c"
+ break;
+
+ case 242: /* reset_rest: generic_reset */
+#line 1815 "gram.y"
+ { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); }
+#line 29159 "gram.c"
+ break;
+
+ case 243: /* reset_rest: TIME ZONE */
+#line 1817 "gram.y"
+ {
+ VariableSetStmt *n = makeNode(VariableSetStmt);
+
+ n->kind = VAR_RESET;
+ n->name = "timezone";
+ (yyval.vsetstmt) = n;
+ }
+#line 29171 "gram.c"
+ break;
+
+ case 244: /* reset_rest: TRANSACTION ISOLATION LEVEL */
+#line 1825 "gram.y"
+ {
+ VariableSetStmt *n = makeNode(VariableSetStmt);
+
+ n->kind = VAR_RESET;
+ n->name = "transaction_isolation";
+ (yyval.vsetstmt) = n;
+ }
+#line 29183 "gram.c"
+ break;
+
+ case 245: /* reset_rest: SESSION AUTHORIZATION */
+#line 1833 "gram.y"
+ {
+ VariableSetStmt *n = makeNode(VariableSetStmt);
+
+ n->kind = VAR_RESET;
+ n->name = "session_authorization";
+ (yyval.vsetstmt) = n;
+ }
+#line 29195 "gram.c"
+ break;
+
+ case 246: /* generic_reset: var_name */
+#line 1844 "gram.y"
+ {
+ VariableSetStmt *n = makeNode(VariableSetStmt);
+
+ n->kind = VAR_RESET;
+ n->name = (yyvsp[0].str);
+ (yyval.vsetstmt) = n;
+ }
+#line 29207 "gram.c"
+ break;
+
+ case 247: /* generic_reset: ALL */
+#line 1852 "gram.y"
+ {
+ VariableSetStmt *n = makeNode(VariableSetStmt);
+
+ n->kind = VAR_RESET_ALL;
+ (yyval.vsetstmt) = n;
+ }
+#line 29218 "gram.c"
+ break;
+
+ case 248: /* SetResetClause: SET set_rest */
+#line 1862 "gram.y"
+ { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); }
+#line 29224 "gram.c"
+ break;
+
+ case 249: /* SetResetClause: VariableResetStmt */
+#line 1863 "gram.y"
+ { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[0].node); }
+#line 29230 "gram.c"
+ break;
+
+ case 250: /* FunctionSetResetClause: SET set_rest_more */
+#line 1868 "gram.y"
+ { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); }
+#line 29236 "gram.c"
+ break;
+
+ case 251: /* FunctionSetResetClause: VariableResetStmt */
+#line 1869 "gram.y"
+ { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[0].node); }
+#line 29242 "gram.c"
+ break;
+
+ case 252: /* VariableShowStmt: SHOW var_name */
+#line 1875 "gram.y"
+ {
+ VariableShowStmt *n = makeNode(VariableShowStmt);
+
+ n->name = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 29253 "gram.c"
+ break;
+
+ case 253: /* VariableShowStmt: SHOW TIME ZONE */
+#line 1882 "gram.y"
+ {
+ VariableShowStmt *n = makeNode(VariableShowStmt);
+
+ n->name = "timezone";
+ (yyval.node) = (Node *) n;
+ }
+#line 29264 "gram.c"
+ break;
+
+ case 254: /* VariableShowStmt: SHOW TRANSACTION ISOLATION LEVEL */
+#line 1889 "gram.y"
+ {
+ VariableShowStmt *n = makeNode(VariableShowStmt);
+
+ n->name = "transaction_isolation";
+ (yyval.node) = (Node *) n;
+ }
+#line 29275 "gram.c"
+ break;
+
+ case 255: /* VariableShowStmt: SHOW SESSION AUTHORIZATION */
+#line 1896 "gram.y"
+ {
+ VariableShowStmt *n = makeNode(VariableShowStmt);
+
+ n->name = "session_authorization";
+ (yyval.node) = (Node *) n;
+ }
+#line 29286 "gram.c"
+ break;
+
+ case 256: /* VariableShowStmt: SHOW ALL */
+#line 1903 "gram.y"
+ {
+ VariableShowStmt *n = makeNode(VariableShowStmt);
+
+ n->name = "all";
+ (yyval.node) = (Node *) n;
+ }
+#line 29297 "gram.c"
+ break;
+
+ case 257: /* ConstraintsSetStmt: SET CONSTRAINTS constraints_set_list constraints_set_mode */
+#line 1914 "gram.y"
+ {
+ ConstraintsSetStmt *n = makeNode(ConstraintsSetStmt);
+
+ n->constraints = (yyvsp[-1].list);
+ n->deferred = (yyvsp[0].boolean);
+ (yyval.node) = (Node *) n;
+ }
+#line 29309 "gram.c"
+ break;
+
+ case 258: /* constraints_set_list: ALL */
+#line 1924 "gram.y"
+ { (yyval.list) = NIL; }
+#line 29315 "gram.c"
+ break;
+
+ case 259: /* constraints_set_list: qualified_name_list */
+#line 1925 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 29321 "gram.c"
+ break;
+
+ case 260: /* constraints_set_mode: DEFERRED */
+#line 1929 "gram.y"
+ { (yyval.boolean) = true; }
+#line 29327 "gram.c"
+ break;
+
+ case 261: /* constraints_set_mode: IMMEDIATE */
+#line 1930 "gram.y"
+ { (yyval.boolean) = false; }
+#line 29333 "gram.c"
+ break;
+
+ case 262: /* CheckPointStmt: CHECKPOINT */
+#line 1939 "gram.y"
+ {
+ CheckPointStmt *n = makeNode(CheckPointStmt);
+
+ (yyval.node) = (Node *) n;
+ }
+#line 29343 "gram.c"
+ break;
+
+ case 263: /* DiscardStmt: DISCARD ALL */
+#line 1955 "gram.y"
+ {
+ DiscardStmt *n = makeNode(DiscardStmt);
+
+ n->target = DISCARD_ALL;
+ (yyval.node) = (Node *) n;
+ }
+#line 29354 "gram.c"
+ break;
+
+ case 264: /* DiscardStmt: DISCARD TEMP */
+#line 1962 "gram.y"
+ {
+ DiscardStmt *n = makeNode(DiscardStmt);
+
+ n->target = DISCARD_TEMP;
+ (yyval.node) = (Node *) n;
+ }
+#line 29365 "gram.c"
+ break;
+
+ case 265: /* DiscardStmt: DISCARD TEMPORARY */
+#line 1969 "gram.y"
+ {
+ DiscardStmt *n = makeNode(DiscardStmt);
+
+ n->target = DISCARD_TEMP;
+ (yyval.node) = (Node *) n;
+ }
+#line 29376 "gram.c"
+ break;
+
+ case 266: /* DiscardStmt: DISCARD PLANS */
+#line 1976 "gram.y"
+ {
+ DiscardStmt *n = makeNode(DiscardStmt);
+
+ n->target = DISCARD_PLANS;
+ (yyval.node) = (Node *) n;
+ }
+#line 29387 "gram.c"
+ break;
+
+ case 267: /* DiscardStmt: DISCARD SEQUENCES */
+#line 1983 "gram.y"
+ {
+ DiscardStmt *n = makeNode(DiscardStmt);
+
+ n->target = DISCARD_SEQUENCES;
+ (yyval.node) = (Node *) n;
+ }
+#line 29398 "gram.c"
+ break;
+
+ case 268: /* AlterTableStmt: ALTER TABLE relation_expr alter_table_cmds */
+#line 2003 "gram.y"
+ {
+ AlterTableStmt *n = makeNode(AlterTableStmt);
+
+ n->relation = (yyvsp[-1].range);
+ n->cmds = (yyvsp[0].list);
+ n->objtype = OBJECT_TABLE;
+ n->missing_ok = false;
+ (yyval.node) = (Node *) n;
+ }
+#line 29412 "gram.c"
+ break;
+
+ case 269: /* AlterTableStmt: ALTER TABLE IF_P EXISTS relation_expr alter_table_cmds */
+#line 2013 "gram.y"
+ {
+ AlterTableStmt *n = makeNode(AlterTableStmt);
+
+ n->relation = (yyvsp[-1].range);
+ n->cmds = (yyvsp[0].list);
+ n->objtype = OBJECT_TABLE;
+ n->missing_ok = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 29426 "gram.c"
+ break;
+
+ case 270: /* AlterTableStmt: ALTER TABLE relation_expr partition_cmd */
+#line 2023 "gram.y"
+ {
+ AlterTableStmt *n = makeNode(AlterTableStmt);
+
+ n->relation = (yyvsp[-1].range);
+ n->cmds = list_make1((yyvsp[0].node));
+ n->objtype = OBJECT_TABLE;
+ n->missing_ok = false;
+ (yyval.node) = (Node *) n;
+ }
+#line 29440 "gram.c"
+ break;
+
+ case 271: /* AlterTableStmt: ALTER TABLE IF_P EXISTS relation_expr partition_cmd */
+#line 2033 "gram.y"
+ {
+ AlterTableStmt *n = makeNode(AlterTableStmt);
+
+ n->relation = (yyvsp[-1].range);
+ n->cmds = list_make1((yyvsp[0].node));
+ n->objtype = OBJECT_TABLE;
+ n->missing_ok = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 29454 "gram.c"
+ break;
+
+ case 272: /* AlterTableStmt: ALTER TABLE ALL IN_P TABLESPACE name SET TABLESPACE name opt_nowait */
+#line 2043 "gram.y"
+ {
+ 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 29470 "gram.c"
+ break;
+
+ case 273: /* AlterTableStmt: ALTER TABLE ALL IN_P TABLESPACE name OWNED BY role_list SET TABLESPACE name opt_nowait */
+#line 2055 "gram.y"
+ {
+ 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 29486 "gram.c"
+ break;
+
+ case 274: /* AlterTableStmt: ALTER INDEX qualified_name alter_table_cmds */
+#line 2067 "gram.y"
+ {
+ AlterTableStmt *n = makeNode(AlterTableStmt);
+
+ n->relation = (yyvsp[-1].range);
+ n->cmds = (yyvsp[0].list);
+ n->objtype = OBJECT_INDEX;
+ n->missing_ok = false;
+ (yyval.node) = (Node *) n;
+ }
+#line 29500 "gram.c"
+ break;
+
+ case 275: /* AlterTableStmt: ALTER INDEX IF_P EXISTS qualified_name alter_table_cmds */
+#line 2077 "gram.y"
+ {
+ AlterTableStmt *n = makeNode(AlterTableStmt);
+
+ n->relation = (yyvsp[-1].range);
+ n->cmds = (yyvsp[0].list);
+ n->objtype = OBJECT_INDEX;
+ n->missing_ok = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 29514 "gram.c"
+ break;
+
+ case 276: /* AlterTableStmt: ALTER INDEX qualified_name index_partition_cmd */
+#line 2087 "gram.y"
+ {
+ AlterTableStmt *n = makeNode(AlterTableStmt);
+
+ n->relation = (yyvsp[-1].range);
+ n->cmds = list_make1((yyvsp[0].node));
+ n->objtype = OBJECT_INDEX;
+ n->missing_ok = false;
+ (yyval.node) = (Node *) n;
+ }
+#line 29528 "gram.c"
+ break;
+
+ case 277: /* AlterTableStmt: ALTER INDEX ALL IN_P TABLESPACE name SET TABLESPACE name opt_nowait */
+#line 2097 "gram.y"
+ {
+ 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 29544 "gram.c"
+ break;
+
+ case 278: /* AlterTableStmt: ALTER INDEX ALL IN_P TABLESPACE name OWNED BY role_list SET TABLESPACE name opt_nowait */
+#line 2109 "gram.y"
+ {
+ 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 29560 "gram.c"
+ break;
+
+ case 279: /* AlterTableStmt: ALTER SEQUENCE qualified_name alter_table_cmds */
+#line 2121 "gram.y"
+ {
+ AlterTableStmt *n = makeNode(AlterTableStmt);
+
+ n->relation = (yyvsp[-1].range);
+ n->cmds = (yyvsp[0].list);
+ n->objtype = OBJECT_SEQUENCE;
+ n->missing_ok = false;
+ (yyval.node) = (Node *) n;
+ }
+#line 29574 "gram.c"
+ break;
+
+ case 280: /* AlterTableStmt: ALTER SEQUENCE IF_P EXISTS qualified_name alter_table_cmds */
+#line 2131 "gram.y"
+ {
+ AlterTableStmt *n = makeNode(AlterTableStmt);
+
+ n->relation = (yyvsp[-1].range);
+ n->cmds = (yyvsp[0].list);
+ n->objtype = OBJECT_SEQUENCE;
+ n->missing_ok = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 29588 "gram.c"
+ break;
+
+ case 281: /* AlterTableStmt: ALTER VIEW qualified_name alter_table_cmds */
+#line 2141 "gram.y"
+ {
+ AlterTableStmt *n = makeNode(AlterTableStmt);
+
+ n->relation = (yyvsp[-1].range);
+ n->cmds = (yyvsp[0].list);
+ n->objtype = OBJECT_VIEW;
+ n->missing_ok = false;
+ (yyval.node) = (Node *) n;
+ }
+#line 29602 "gram.c"
+ break;
+
+ case 282: /* AlterTableStmt: ALTER VIEW IF_P EXISTS qualified_name alter_table_cmds */
+#line 2151 "gram.y"
+ {
+ AlterTableStmt *n = makeNode(AlterTableStmt);
+
+ n->relation = (yyvsp[-1].range);
+ n->cmds = (yyvsp[0].list);
+ n->objtype = OBJECT_VIEW;
+ n->missing_ok = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 29616 "gram.c"
+ break;
+
+ case 283: /* AlterTableStmt: ALTER MATERIALIZED VIEW qualified_name alter_table_cmds */
+#line 2161 "gram.y"
+ {
+ AlterTableStmt *n = makeNode(AlterTableStmt);
+
+ n->relation = (yyvsp[-1].range);
+ n->cmds = (yyvsp[0].list);
+ n->objtype = OBJECT_MATVIEW;
+ n->missing_ok = false;
+ (yyval.node) = (Node *) n;
+ }
+#line 29630 "gram.c"
+ break;
+
+ case 284: /* AlterTableStmt: ALTER MATERIALIZED VIEW IF_P EXISTS qualified_name alter_table_cmds */
+#line 2171 "gram.y"
+ {
+ AlterTableStmt *n = makeNode(AlterTableStmt);
+
+ n->relation = (yyvsp[-1].range);
+ n->cmds = (yyvsp[0].list);
+ n->objtype = OBJECT_MATVIEW;
+ n->missing_ok = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 29644 "gram.c"
+ break;
+
+ case 285: /* AlterTableStmt: ALTER MATERIALIZED VIEW ALL IN_P TABLESPACE name SET TABLESPACE name opt_nowait */
+#line 2181 "gram.y"
+ {
+ 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 29660 "gram.c"
+ break;
+
+ case 286: /* AlterTableStmt: ALTER MATERIALIZED VIEW ALL IN_P TABLESPACE name OWNED BY role_list SET TABLESPACE name opt_nowait */
+#line 2193 "gram.y"
+ {
+ 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 29676 "gram.c"
+ break;
+
+ case 287: /* AlterTableStmt: ALTER FOREIGN TABLE relation_expr alter_table_cmds */
+#line 2205 "gram.y"
+ {
+ AlterTableStmt *n = makeNode(AlterTableStmt);
+
+ n->relation = (yyvsp[-1].range);
+ n->cmds = (yyvsp[0].list);
+ n->objtype = OBJECT_FOREIGN_TABLE;
+ n->missing_ok = false;
+ (yyval.node) = (Node *) n;
+ }
+#line 29690 "gram.c"
+ break;
+
+ case 288: /* AlterTableStmt: ALTER FOREIGN TABLE IF_P EXISTS relation_expr alter_table_cmds */
+#line 2215 "gram.y"
+ {
+ AlterTableStmt *n = makeNode(AlterTableStmt);
+
+ n->relation = (yyvsp[-1].range);
+ n->cmds = (yyvsp[0].list);
+ n->objtype = OBJECT_FOREIGN_TABLE;
+ n->missing_ok = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 29704 "gram.c"
+ break;
+
+ case 289: /* alter_table_cmds: alter_table_cmd */
+#line 2227 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].node)); }
+#line 29710 "gram.c"
+ break;
+
+ case 290: /* alter_table_cmds: alter_table_cmds ',' alter_table_cmd */
+#line 2228 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
+#line 29716 "gram.c"
+ break;
+
+ case 291: /* partition_cmd: ATTACH PARTITION qualified_name PartitionBoundSpec */
+#line 2234 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+ PartitionCmd *cmd = makeNode(PartitionCmd);
+
+ n->subtype = AT_AttachPartition;
+ cmd->name = (yyvsp[-1].range);
+ cmd->bound = (yyvsp[0].partboundspec);
+ cmd->concurrent = false;
+ n->def = (Node *) cmd;
+
+ (yyval.node) = (Node *) n;
+ }
+#line 29733 "gram.c"
+ break;
+
+ case 292: /* partition_cmd: DETACH PARTITION qualified_name opt_concurrently */
+#line 2248 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+ PartitionCmd *cmd = makeNode(PartitionCmd);
+
+ n->subtype = AT_DetachPartition;
+ cmd->name = (yyvsp[-1].range);
+ cmd->bound = NULL;
+ cmd->concurrent = (yyvsp[0].boolean);
+ n->def = (Node *) cmd;
+
+ (yyval.node) = (Node *) n;
+ }
+#line 29750 "gram.c"
+ break;
+
+ case 293: /* partition_cmd: DETACH PARTITION qualified_name FINALIZE */
+#line 2261 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+ PartitionCmd *cmd = makeNode(PartitionCmd);
+
+ n->subtype = AT_DetachPartitionFinalize;
+ cmd->name = (yyvsp[-1].range);
+ cmd->bound = NULL;
+ cmd->concurrent = false;
+ n->def = (Node *) cmd;
+ (yyval.node) = (Node *) n;
+ }
+#line 29766 "gram.c"
+ break;
+
+ case 294: /* index_partition_cmd: ATTACH PARTITION qualified_name */
+#line 2277 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+ PartitionCmd *cmd = makeNode(PartitionCmd);
+
+ n->subtype = AT_AttachPartition;
+ cmd->name = (yyvsp[0].range);
+ cmd->bound = NULL;
+ cmd->concurrent = false;
+ n->def = (Node *) cmd;
+
+ (yyval.node) = (Node *) n;
+ }
+#line 29783 "gram.c"
+ break;
+
+ case 295: /* alter_table_cmd: ADD_P columnDef */
+#line 2294 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_AddColumn;
+ n->def = (yyvsp[0].node);
+ n->missing_ok = false;
+ (yyval.node) = (Node *) n;
+ }
+#line 29796 "gram.c"
+ break;
+
+ case 296: /* alter_table_cmd: ADD_P IF_P NOT EXISTS columnDef */
+#line 2304 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_AddColumn;
+ n->def = (yyvsp[0].node);
+ n->missing_ok = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 29809 "gram.c"
+ break;
+
+ case 297: /* alter_table_cmd: ADD_P COLUMN columnDef */
+#line 2314 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_AddColumn;
+ n->def = (yyvsp[0].node);
+ n->missing_ok = false;
+ (yyval.node) = (Node *) n;
+ }
+#line 29822 "gram.c"
+ break;
+
+ case 298: /* alter_table_cmd: ADD_P COLUMN IF_P NOT EXISTS columnDef */
+#line 2324 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_AddColumn;
+ n->def = (yyvsp[0].node);
+ n->missing_ok = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 29835 "gram.c"
+ break;
+
+ case 299: /* alter_table_cmd: ALTER opt_column ColId alter_column_default */
+#line 2334 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_ColumnDefault;
+ n->name = (yyvsp[-1].str);
+ n->def = (yyvsp[0].node);
+ (yyval.node) = (Node *) n;
+ }
+#line 29848 "gram.c"
+ break;
+
+ case 300: /* alter_table_cmd: ALTER opt_column ColId DROP NOT NULL_P */
+#line 2344 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_DropNotNull;
+ n->name = (yyvsp[-3].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 29860 "gram.c"
+ break;
+
+ case 301: /* alter_table_cmd: ALTER opt_column ColId SET NOT NULL_P */
+#line 2353 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_SetNotNull;
+ n->name = (yyvsp[-3].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 29872 "gram.c"
+ break;
+
+ case 302: /* alter_table_cmd: ALTER opt_column ColId DROP EXPRESSION */
+#line 2362 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_DropExpression;
+ n->name = (yyvsp[-2].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 29884 "gram.c"
+ break;
+
+ case 303: /* alter_table_cmd: ALTER opt_column ColId DROP EXPRESSION IF_P EXISTS */
+#line 2371 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_DropExpression;
+ n->name = (yyvsp[-4].str);
+ n->missing_ok = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 29897 "gram.c"
+ break;
+
+ case 304: /* alter_table_cmd: ALTER opt_column ColId SET STATISTICS SignedIconst */
+#line 2381 "gram.y"
+ {
+ 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 29910 "gram.c"
+ break;
+
+ case 305: /* alter_table_cmd: ALTER opt_column Iconst SET STATISTICS SignedIconst */
+#line 2391 "gram.y"
+ {
+ 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 29929 "gram.c"
+ break;
+
+ case 306: /* alter_table_cmd: ALTER opt_column ColId SET reloptions */
+#line 2407 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_SetOptions;
+ n->name = (yyvsp[-2].str);
+ n->def = (Node *) (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 29942 "gram.c"
+ break;
+
+ case 307: /* alter_table_cmd: ALTER opt_column ColId RESET reloptions */
+#line 2417 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_ResetOptions;
+ n->name = (yyvsp[-2].str);
+ n->def = (Node *) (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 29955 "gram.c"
+ break;
+
+ case 308: /* alter_table_cmd: ALTER opt_column ColId SET STORAGE ColId */
+#line 2427 "gram.y"
+ {
+ 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 29968 "gram.c"
+ break;
+
+ case 309: /* alter_table_cmd: ALTER opt_column ColId SET column_compression */
+#line 2437 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_SetCompression;
+ n->name = (yyvsp[-2].str);
+ n->def = (Node *) makeString((yyvsp[0].str));
+ (yyval.node) = (Node *) n;
+ }
+#line 29981 "gram.c"
+ break;
+
+ case 310: /* alter_table_cmd: ALTER opt_column ColId ADD_P GENERATED generated_when AS IDENTITY_P OptParenthesizedSeqOptList */
+#line 2447 "gram.y"
+ {
+ 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 30001 "gram.c"
+ break;
+
+ case 311: /* alter_table_cmd: ALTER opt_column ColId alter_identity_column_option_list */
+#line 2464 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_SetIdentity;
+ n->name = (yyvsp[-1].str);
+ n->def = (Node *) (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 30014 "gram.c"
+ break;
+
+ case 312: /* alter_table_cmd: ALTER opt_column ColId DROP IDENTITY_P */
+#line 2474 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_DropIdentity;
+ n->name = (yyvsp[-2].str);
+ n->missing_ok = false;
+ (yyval.node) = (Node *) n;
+ }
+#line 30027 "gram.c"
+ break;
+
+ case 313: /* alter_table_cmd: ALTER opt_column ColId DROP IDENTITY_P IF_P EXISTS */
+#line 2484 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_DropIdentity;
+ n->name = (yyvsp[-4].str);
+ n->missing_ok = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 30040 "gram.c"
+ break;
+
+ case 314: /* alter_table_cmd: DROP opt_column IF_P EXISTS ColId opt_drop_behavior */
+#line 2494 "gram.y"
+ {
+ 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 30054 "gram.c"
+ break;
+
+ case 315: /* alter_table_cmd: DROP opt_column ColId opt_drop_behavior */
+#line 2505 "gram.y"
+ {
+ 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 30068 "gram.c"
+ break;
+
+ case 316: /* alter_table_cmd: ALTER opt_column ColId opt_set_data TYPE_P Typename opt_collate_clause alter_using */
+#line 2519 "gram.y"
+ {
+ 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 30087 "gram.c"
+ break;
+
+ case 317: /* alter_table_cmd: ALTER opt_column ColId alter_generic_options */
+#line 2535 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_AlterColumnGenericOptions;
+ n->name = (yyvsp[-1].str);
+ n->def = (Node *) (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 30100 "gram.c"
+ break;
+
+ case 318: /* alter_table_cmd: ADD_P TableConstraint */
+#line 2545 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_AddConstraint;
+ n->def = (yyvsp[0].node);
+ (yyval.node) = (Node *) n;
+ }
+#line 30112 "gram.c"
+ break;
+
+ case 319: /* alter_table_cmd: ALTER CONSTRAINT name ConstraintAttributeSpec */
+#line 2554 "gram.y"
+ {
+ 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 30131 "gram.c"
+ break;
+
+ case 320: /* alter_table_cmd: VALIDATE CONSTRAINT name */
+#line 2570 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_ValidateConstraint;
+ n->name = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 30143 "gram.c"
+ break;
+
+ case 321: /* alter_table_cmd: DROP CONSTRAINT IF_P EXISTS name opt_drop_behavior */
+#line 2579 "gram.y"
+ {
+ 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 30157 "gram.c"
+ break;
+
+ case 322: /* alter_table_cmd: DROP CONSTRAINT name opt_drop_behavior */
+#line 2590 "gram.y"
+ {
+ 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 30171 "gram.c"
+ break;
+
+ case 323: /* alter_table_cmd: SET WITHOUT OIDS */
+#line 2601 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_DropOids;
+ (yyval.node) = (Node *) n;
+ }
+#line 30182 "gram.c"
+ break;
+
+ case 324: /* alter_table_cmd: CLUSTER ON name */
+#line 2609 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_ClusterOn;
+ n->name = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 30194 "gram.c"
+ break;
+
+ case 325: /* alter_table_cmd: SET WITHOUT CLUSTER */
+#line 2618 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_DropCluster;
+ n->name = NULL;
+ (yyval.node) = (Node *) n;
+ }
+#line 30206 "gram.c"
+ break;
+
+ case 326: /* alter_table_cmd: SET LOGGED */
+#line 2627 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_SetLogged;
+ (yyval.node) = (Node *) n;
+ }
+#line 30217 "gram.c"
+ break;
+
+ case 327: /* alter_table_cmd: SET UNLOGGED */
+#line 2635 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_SetUnLogged;
+ (yyval.node) = (Node *) n;
+ }
+#line 30228 "gram.c"
+ break;
+
+ case 328: /* alter_table_cmd: ENABLE_P TRIGGER name */
+#line 2643 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_EnableTrig;
+ n->name = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 30240 "gram.c"
+ break;
+
+ case 329: /* alter_table_cmd: ENABLE_P ALWAYS TRIGGER name */
+#line 2652 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_EnableAlwaysTrig;
+ n->name = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 30252 "gram.c"
+ break;
+
+ case 330: /* alter_table_cmd: ENABLE_P REPLICA TRIGGER name */
+#line 2661 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_EnableReplicaTrig;
+ n->name = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 30264 "gram.c"
+ break;
+
+ case 331: /* alter_table_cmd: ENABLE_P TRIGGER ALL */
+#line 2670 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_EnableTrigAll;
+ (yyval.node) = (Node *) n;
+ }
+#line 30275 "gram.c"
+ break;
+
+ case 332: /* alter_table_cmd: ENABLE_P TRIGGER USER */
+#line 2678 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_EnableTrigUser;
+ (yyval.node) = (Node *) n;
+ }
+#line 30286 "gram.c"
+ break;
+
+ case 333: /* alter_table_cmd: DISABLE_P TRIGGER name */
+#line 2686 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_DisableTrig;
+ n->name = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 30298 "gram.c"
+ break;
+
+ case 334: /* alter_table_cmd: DISABLE_P TRIGGER ALL */
+#line 2695 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_DisableTrigAll;
+ (yyval.node) = (Node *) n;
+ }
+#line 30309 "gram.c"
+ break;
+
+ case 335: /* alter_table_cmd: DISABLE_P TRIGGER USER */
+#line 2703 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_DisableTrigUser;
+ (yyval.node) = (Node *) n;
+ }
+#line 30320 "gram.c"
+ break;
+
+ case 336: /* alter_table_cmd: ENABLE_P RULE name */
+#line 2711 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_EnableRule;
+ n->name = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 30332 "gram.c"
+ break;
+
+ case 337: /* alter_table_cmd: ENABLE_P ALWAYS RULE name */
+#line 2720 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_EnableAlwaysRule;
+ n->name = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 30344 "gram.c"
+ break;
+
+ case 338: /* alter_table_cmd: ENABLE_P REPLICA RULE name */
+#line 2729 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_EnableReplicaRule;
+ n->name = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 30356 "gram.c"
+ break;
+
+ case 339: /* alter_table_cmd: DISABLE_P RULE name */
+#line 2738 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_DisableRule;
+ n->name = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 30368 "gram.c"
+ break;
+
+ case 340: /* alter_table_cmd: INHERIT qualified_name */
+#line 2747 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_AddInherit;
+ n->def = (Node *) (yyvsp[0].range);
+ (yyval.node) = (Node *) n;
+ }
+#line 30380 "gram.c"
+ break;
+
+ case 341: /* alter_table_cmd: NO INHERIT qualified_name */
+#line 2756 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_DropInherit;
+ n->def = (Node *) (yyvsp[0].range);
+ (yyval.node) = (Node *) n;
+ }
+#line 30392 "gram.c"
+ break;
+
+ case 342: /* alter_table_cmd: OF any_name */
+#line 2765 "gram.y"
+ {
+ 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 30406 "gram.c"
+ break;
+
+ case 343: /* alter_table_cmd: NOT OF */
+#line 2776 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_DropOf;
+ (yyval.node) = (Node *) n;
+ }
+#line 30417 "gram.c"
+ break;
+
+ case 344: /* alter_table_cmd: OWNER TO RoleSpec */
+#line 2784 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_ChangeOwner;
+ n->newowner = (yyvsp[0].rolespec);
+ (yyval.node) = (Node *) n;
+ }
+#line 30429 "gram.c"
+ break;
+
+ case 345: /* alter_table_cmd: SET ACCESS METHOD name */
+#line 2793 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_SetAccessMethod;
+ n->name = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 30441 "gram.c"
+ break;
+
+ case 346: /* alter_table_cmd: SET TABLESPACE name */
+#line 2802 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_SetTableSpace;
+ n->name = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 30453 "gram.c"
+ break;
+
+ case 347: /* alter_table_cmd: SET reloptions */
+#line 2811 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_SetRelOptions;
+ n->def = (Node *) (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 30465 "gram.c"
+ break;
+
+ case 348: /* alter_table_cmd: RESET reloptions */
+#line 2820 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_ResetRelOptions;
+ n->def = (Node *) (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 30477 "gram.c"
+ break;
+
+ case 349: /* alter_table_cmd: REPLICA IDENTITY_P replica_identity */
+#line 2829 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_ReplicaIdentity;
+ n->def = (yyvsp[0].node);
+ (yyval.node) = (Node *) n;
+ }
+#line 30489 "gram.c"
+ break;
+
+ case 350: /* alter_table_cmd: ENABLE_P ROW LEVEL SECURITY */
+#line 2838 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_EnableRowSecurity;
+ (yyval.node) = (Node *) n;
+ }
+#line 30500 "gram.c"
+ break;
+
+ case 351: /* alter_table_cmd: DISABLE_P ROW LEVEL SECURITY */
+#line 2846 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_DisableRowSecurity;
+ (yyval.node) = (Node *) n;
+ }
+#line 30511 "gram.c"
+ break;
+
+ case 352: /* alter_table_cmd: FORCE ROW LEVEL SECURITY */
+#line 2854 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_ForceRowSecurity;
+ (yyval.node) = (Node *) n;
+ }
+#line 30522 "gram.c"
+ break;
+
+ case 353: /* alter_table_cmd: NO FORCE ROW LEVEL SECURITY */
+#line 2862 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_NoForceRowSecurity;
+ (yyval.node) = (Node *) n;
+ }
+#line 30533 "gram.c"
+ break;
+
+ case 354: /* alter_table_cmd: alter_generic_options */
+#line 2869 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_GenericOptions;
+ n->def = (Node *) (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 30545 "gram.c"
+ break;
+
+ case 355: /* alter_column_default: SET DEFAULT a_expr */
+#line 2879 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 30551 "gram.c"
+ break;
+
+ case 356: /* alter_column_default: DROP DEFAULT */
+#line 2880 "gram.y"
+ { (yyval.node) = NULL; }
+#line 30557 "gram.c"
+ break;
+
+ case 357: /* opt_drop_behavior: CASCADE */
+#line 2884 "gram.y"
+ { (yyval.dbehavior) = DROP_CASCADE; }
+#line 30563 "gram.c"
+ break;
+
+ case 358: /* opt_drop_behavior: RESTRICT */
+#line 2885 "gram.y"
+ { (yyval.dbehavior) = DROP_RESTRICT; }
+#line 30569 "gram.c"
+ break;
+
+ case 359: /* opt_drop_behavior: %empty */
+#line 2886 "gram.y"
+ { (yyval.dbehavior) = DROP_RESTRICT; /* default */ }
+#line 30575 "gram.c"
+ break;
+
+ case 360: /* opt_collate_clause: COLLATE any_name */
+#line 2891 "gram.y"
+ {
+ CollateClause *n = makeNode(CollateClause);
+
+ n->arg = NULL;
+ n->collname = (yyvsp[0].list);
+ n->location = (yylsp[-1]);
+ (yyval.node) = (Node *) n;
+ }
+#line 30588 "gram.c"
+ break;
+
+ case 361: /* opt_collate_clause: %empty */
+#line 2899 "gram.y"
+ { (yyval.node) = NULL; }
+#line 30594 "gram.c"
+ break;
+
+ case 362: /* alter_using: USING a_expr */
+#line 2903 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 30600 "gram.c"
+ break;
+
+ case 363: /* alter_using: %empty */
+#line 2904 "gram.y"
+ { (yyval.node) = NULL; }
+#line 30606 "gram.c"
+ break;
+
+ case 364: /* replica_identity: NOTHING */
+#line 2909 "gram.y"
+ {
+ ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt);
+
+ n->identity_type = REPLICA_IDENTITY_NOTHING;
+ n->name = NULL;
+ (yyval.node) = (Node *) n;
+ }
+#line 30618 "gram.c"
+ break;
+
+ case 365: /* replica_identity: FULL */
+#line 2917 "gram.y"
+ {
+ ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt);
+
+ n->identity_type = REPLICA_IDENTITY_FULL;
+ n->name = NULL;
+ (yyval.node) = (Node *) n;
+ }
+#line 30630 "gram.c"
+ break;
+
+ case 366: /* replica_identity: DEFAULT */
+#line 2925 "gram.y"
+ {
+ ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt);
+
+ n->identity_type = REPLICA_IDENTITY_DEFAULT;
+ n->name = NULL;
+ (yyval.node) = (Node *) n;
+ }
+#line 30642 "gram.c"
+ break;
+
+ case 367: /* replica_identity: USING INDEX name */
+#line 2933 "gram.y"
+ {
+ ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt);
+
+ n->identity_type = REPLICA_IDENTITY_INDEX;
+ n->name = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 30654 "gram.c"
+ break;
+
+ case 368: /* reloptions: '(' reloption_list ')' */
+#line 2943 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 30660 "gram.c"
+ break;
+
+ case 369: /* opt_reloptions: WITH reloptions */
+#line 2946 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 30666 "gram.c"
+ break;
+
+ case 370: /* opt_reloptions: %empty */
+#line 2947 "gram.y"
+ { (yyval.list) = NIL; }
+#line 30672 "gram.c"
+ break;
+
+ case 371: /* reloption_list: reloption_elem */
+#line 2951 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].defelt)); }
+#line 30678 "gram.c"
+ break;
+
+ case 372: /* reloption_list: reloption_list ',' reloption_elem */
+#line 2952 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); }
+#line 30684 "gram.c"
+ break;
+
+ case 373: /* reloption_elem: ColLabel '=' def_arg */
+#line 2958 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2]));
+ }
+#line 30692 "gram.c"
+ break;
+
+ case 374: /* reloption_elem: ColLabel */
+#line 2962 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem((yyvsp[0].str), NULL, (yylsp[0]));
+ }
+#line 30700 "gram.c"
+ break;
+
+ case 375: /* reloption_elem: ColLabel '.' ColLabel '=' def_arg */
+#line 2966 "gram.y"
+ {
+ (yyval.defelt) = makeDefElemExtended((yyvsp[-4].str), (yyvsp[-2].str), (Node *) (yyvsp[0].node),
+ DEFELEM_UNSPEC, (yylsp[-4]));
+ }
+#line 30709 "gram.c"
+ break;
+
+ case 376: /* reloption_elem: ColLabel '.' ColLabel */
+#line 2971 "gram.y"
+ {
+ (yyval.defelt) = makeDefElemExtended((yyvsp[-2].str), (yyvsp[0].str), NULL, DEFELEM_UNSPEC, (yylsp[-2]));
+ }
+#line 30717 "gram.c"
+ break;
+
+ case 377: /* alter_identity_column_option_list: alter_identity_column_option */
+#line 2978 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].defelt)); }
+#line 30723 "gram.c"
+ break;
+
+ case 378: /* alter_identity_column_option_list: alter_identity_column_option_list alter_identity_column_option */
+#line 2980 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
+#line 30729 "gram.c"
+ break;
+
+ case 379: /* alter_identity_column_option: RESTART */
+#line 2985 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[0]));
+ }
+#line 30737 "gram.c"
+ break;
+
+ case 380: /* alter_identity_column_option: RESTART opt_with NumericOnly */
+#line 2989 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("restart", (Node *) (yyvsp[0].node), (yylsp[-2]));
+ }
+#line 30745 "gram.c"
+ break;
+
+ case 381: /* alter_identity_column_option: SET SeqOptElem */
+#line 2993 "gram.y"
+ {
+ 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 30760 "gram.c"
+ break;
+
+ case 382: /* alter_identity_column_option: SET GENERATED generated_when */
+#line 3004 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("generated", (Node *) makeInteger((yyvsp[0].ival)), (yylsp[-2]));
+ }
+#line 30768 "gram.c"
+ break;
+
+ case 383: /* PartitionBoundSpec: FOR VALUES WITH '(' hash_partbound ')' */
+#line 3012 "gram.y"
+ {
+ 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 30823 "gram.c"
+ break;
+
+ case 384: /* PartitionBoundSpec: FOR VALUES IN_P '(' expr_list ')' */
+#line 3065 "gram.y"
+ {
+ 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 30838 "gram.c"
+ break;
+
+ case 385: /* PartitionBoundSpec: FOR VALUES FROM '(' expr_list ')' TO '(' expr_list ')' */
+#line 3078 "gram.y"
+ {
+ 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 30854 "gram.c"
+ break;
+
+ case 386: /* PartitionBoundSpec: DEFAULT */
+#line 3092 "gram.y"
+ {
+ PartitionBoundSpec *n = makeNode(PartitionBoundSpec);
+
+ n->is_default = true;
+ n->location = (yylsp[0]);
+
+ (yyval.partboundspec) = n;
+ }
+#line 30867 "gram.c"
+ break;
+
+ case 387: /* hash_partbound_elem: NonReservedWord Iconst */
+#line 3104 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem((yyvsp[-1].str), (Node *) makeInteger((yyvsp[0].ival)), (yylsp[-1]));
+ }
+#line 30875 "gram.c"
+ break;
+
+ case 388: /* hash_partbound: hash_partbound_elem */
+#line 3111 "gram.y"
+ {
+ (yyval.list) = list_make1((yyvsp[0].defelt));
+ }
+#line 30883 "gram.c"
+ break;
+
+ case 389: /* hash_partbound: hash_partbound ',' hash_partbound_elem */
+#line 3115 "gram.y"
+ {
+ (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt));
+ }
+#line 30891 "gram.c"
+ break;
+
+ case 390: /* AlterCompositeTypeStmt: ALTER TYPE_P any_name alter_type_cmds */
+#line 3129 "gram.y"
+ {
+ 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->objtype = OBJECT_TYPE;
+ (yyval.node) = (Node *) n;
+ }
+#line 30905 "gram.c"
+ break;
+
+ case 391: /* alter_type_cmds: alter_type_cmd */
+#line 3141 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].node)); }
+#line 30911 "gram.c"
+ break;
+
+ case 392: /* alter_type_cmds: alter_type_cmds ',' alter_type_cmd */
+#line 3142 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
+#line 30917 "gram.c"
+ break;
+
+ case 393: /* alter_type_cmd: ADD_P ATTRIBUTE TableFuncElement opt_drop_behavior */
+#line 3148 "gram.y"
+ {
+ AlterTableCmd *n = makeNode(AlterTableCmd);
+
+ n->subtype = AT_AddColumn;
+ n->def = (yyvsp[-1].node);
+ n->behavior = (yyvsp[0].dbehavior);
+ (yyval.node) = (Node *) n;
+ }
+#line 30930 "gram.c"
+ break;
+
+ case 394: /* alter_type_cmd: DROP ATTRIBUTE IF_P EXISTS ColId opt_drop_behavior */
+#line 3158 "gram.y"
+ {
+ 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 30944 "gram.c"
+ break;
+
+ case 395: /* alter_type_cmd: DROP ATTRIBUTE ColId opt_drop_behavior */
+#line 3169 "gram.y"
+ {
+ 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 30958 "gram.c"
+ break;
+
+ case 396: /* alter_type_cmd: ALTER ATTRIBUTE ColId opt_set_data TYPE_P Typename opt_collate_clause opt_drop_behavior */
+#line 3180 "gram.y"
+ {
+ 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 30978 "gram.c"
+ break;
+
+ case 397: /* ClosePortalStmt: CLOSE cursor_name */
+#line 3207 "gram.y"
+ {
+ ClosePortalStmt *n = makeNode(ClosePortalStmt);
+
+ n->portalname = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 30989 "gram.c"
+ break;
+
+ case 398: /* ClosePortalStmt: CLOSE ALL */
+#line 3214 "gram.y"
+ {
+ ClosePortalStmt *n = makeNode(ClosePortalStmt);
+
+ n->portalname = NULL;
+ (yyval.node) = (Node *) n;
+ }
+#line 31000 "gram.c"
+ break;
+
+ case 399: /* CopyStmt: COPY opt_binary qualified_name opt_column_list copy_from opt_program copy_file_name copy_delimiter opt_with copy_options where_clause */
+#line 3250 "gram.y"
+ {
+ CopyStmt *n = makeNode(CopyStmt);
+
+ n->relation = (yyvsp[-8].range);
+ n->query = NULL;
+ n->attlist = (yyvsp[-7].list);
+ n->is_from = (yyvsp[-6].boolean);
+ n->is_program = (yyvsp[-5].boolean);
+ n->filename = (yyvsp[-4].str);
+ n->whereClause = (yyvsp[0].node);
+
+ if (n->is_program && n->filename == NULL)
+ ereport(ERROR,
+ (errcode(ERRCODE_SYNTAX_ERROR),
+ errmsg("STDIN/STDOUT not allowed with PROGRAM"),
+ parser_errposition((yylsp[-3]))));
+
+ if (!n->is_from && n->whereClause != NULL)
+ ereport(ERROR,
+ (errcode(ERRCODE_SYNTAX_ERROR),
+ errmsg("WHERE clause not allowed with COPY TO"),
+ parser_errposition((yylsp[0]))));
+
+ n->options = NIL;
+ /* Concatenate user-supplied flags */
+ if ((yyvsp[-9].defelt))
+ n->options = lappend(n->options, (yyvsp[-9].defelt));
+ if ((yyvsp[-3].defelt))
+ n->options = lappend(n->options, (yyvsp[-3].defelt));
+ if ((yyvsp[-1].list))
+ n->options = list_concat(n->options, (yyvsp[-1].list));
+ (yyval.node) = (Node *) n;
+ }
+#line 31038 "gram.c"
+ break;
+
+ case 400: /* CopyStmt: COPY '(' PreparableStmt ')' TO opt_program copy_file_name opt_with copy_options */
+#line 3284 "gram.y"
+ {
+ 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 31062 "gram.c"
+ break;
+
+ case 401: /* copy_from: FROM */
+#line 3306 "gram.y"
+ { (yyval.boolean) = true; }
+#line 31068 "gram.c"
+ break;
+
+ case 402: /* copy_from: TO */
+#line 3307 "gram.y"
+ { (yyval.boolean) = false; }
+#line 31074 "gram.c"
+ break;
+
+ case 403: /* opt_program: PROGRAM */
+#line 3311 "gram.y"
+ { (yyval.boolean) = true; }
+#line 31080 "gram.c"
+ break;
+
+ case 404: /* opt_program: %empty */
+#line 3312 "gram.y"
+ { (yyval.boolean) = false; }
+#line 31086 "gram.c"
+ break;
+
+ case 405: /* copy_file_name: Sconst */
+#line 3321 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 31092 "gram.c"
+ break;
+
+ case 406: /* copy_file_name: STDIN */
+#line 3322 "gram.y"
+ { (yyval.str) = NULL; }
+#line 31098 "gram.c"
+ break;
+
+ case 407: /* copy_file_name: STDOUT */
+#line 3323 "gram.y"
+ { (yyval.str) = NULL; }
+#line 31104 "gram.c"
+ break;
+
+ case 408: /* copy_options: copy_opt_list */
+#line 3326 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 31110 "gram.c"
+ break;
+
+ case 409: /* copy_options: '(' copy_generic_opt_list ')' */
+#line 3327 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 31116 "gram.c"
+ break;
+
+ case 410: /* copy_opt_list: copy_opt_list copy_opt_item */
+#line 3332 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
+#line 31122 "gram.c"
+ break;
+
+ case 411: /* copy_opt_list: %empty */
+#line 3333 "gram.y"
+ { (yyval.list) = NIL; }
+#line 31128 "gram.c"
+ break;
+
+ case 412: /* copy_opt_item: BINARY */
+#line 3338 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("format", (Node *) makeString("binary"), (yylsp[0]));
+ }
+#line 31136 "gram.c"
+ break;
+
+ case 413: /* copy_opt_item: FREEZE */
+#line 3342 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("freeze", (Node *) makeBoolean(true), (yylsp[0]));
+ }
+#line 31144 "gram.c"
+ break;
+
+ case 414: /* copy_opt_item: DELIMITER opt_as Sconst */
+#line 3346 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("delimiter", (Node *) makeString((yyvsp[0].str)), (yylsp[-2]));
+ }
+#line 31152 "gram.c"
+ break;
+
+ case 415: /* copy_opt_item: NULL_P opt_as Sconst */
+#line 3350 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("null", (Node *) makeString((yyvsp[0].str)), (yylsp[-2]));
+ }
+#line 31160 "gram.c"
+ break;
+
+ case 416: /* copy_opt_item: CSV */
+#line 3354 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("format", (Node *) makeString("csv"), (yylsp[0]));
+ }
+#line 31168 "gram.c"
+ break;
+
+ case 417: /* copy_opt_item: HEADER_P */
+#line 3358 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("header", (Node *) makeBoolean(true), (yylsp[0]));
+ }
+#line 31176 "gram.c"
+ break;
+
+ case 418: /* copy_opt_item: QUOTE opt_as Sconst */
+#line 3362 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("quote", (Node *) makeString((yyvsp[0].str)), (yylsp[-2]));
+ }
+#line 31184 "gram.c"
+ break;
+
+ case 419: /* copy_opt_item: ESCAPE opt_as Sconst */
+#line 3366 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("escape", (Node *) makeString((yyvsp[0].str)), (yylsp[-2]));
+ }
+#line 31192 "gram.c"
+ break;
+
+ case 420: /* copy_opt_item: FORCE QUOTE columnList */
+#line 3370 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("force_quote", (Node *) (yyvsp[0].list), (yylsp[-2]));
+ }
+#line 31200 "gram.c"
+ break;
+
+ case 421: /* copy_opt_item: FORCE QUOTE '*' */
+#line 3374 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("force_quote", (Node *) makeNode(A_Star), (yylsp[-2]));
+ }
+#line 31208 "gram.c"
+ break;
+
+ case 422: /* copy_opt_item: FORCE NOT NULL_P columnList */
+#line 3378 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("force_not_null", (Node *) (yyvsp[0].list), (yylsp[-3]));
+ }
+#line 31216 "gram.c"
+ break;
+
+ case 423: /* copy_opt_item: FORCE NULL_P columnList */
+#line 3382 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("force_null", (Node *) (yyvsp[0].list), (yylsp[-2]));
+ }
+#line 31224 "gram.c"
+ break;
+
+ case 424: /* copy_opt_item: ENCODING Sconst */
+#line 3386 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("encoding", (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
+ }
+#line 31232 "gram.c"
+ break;
+
+ case 425: /* opt_binary: BINARY */
+#line 3395 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("format", (Node *) makeString("binary"), (yylsp[0]));
+ }
+#line 31240 "gram.c"
+ break;
+
+ case 426: /* opt_binary: %empty */
+#line 3398 "gram.y"
+ { (yyval.defelt) = NULL; }
+#line 31246 "gram.c"
+ break;
+
+ case 427: /* copy_delimiter: opt_using DELIMITERS Sconst */
+#line 3403 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("delimiter", (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
+ }
+#line 31254 "gram.c"
+ break;
+
+ case 428: /* copy_delimiter: %empty */
+#line 3406 "gram.y"
+ { (yyval.defelt) = NULL; }
+#line 31260 "gram.c"
+ break;
+
+ case 431: /* copy_generic_opt_list: copy_generic_opt_elem */
+#line 3417 "gram.y"
+ {
+ (yyval.list) = list_make1((yyvsp[0].defelt));
+ }
+#line 31268 "gram.c"
+ break;
+
+ case 432: /* copy_generic_opt_list: copy_generic_opt_list ',' copy_generic_opt_elem */
+#line 3421 "gram.y"
+ {
+ (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt));
+ }
+#line 31276 "gram.c"
+ break;
+
+ case 433: /* copy_generic_opt_elem: ColLabel copy_generic_opt_arg */
+#line 3428 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1]));
+ }
+#line 31284 "gram.c"
+ break;
+
+ case 434: /* copy_generic_opt_arg: opt_boolean_or_string */
+#line 3434 "gram.y"
+ { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
+#line 31290 "gram.c"
+ break;
+
+ case 435: /* copy_generic_opt_arg: NumericOnly */
+#line 3435 "gram.y"
+ { (yyval.node) = (Node *) (yyvsp[0].node); }
+#line 31296 "gram.c"
+ break;
+
+ case 436: /* copy_generic_opt_arg: '*' */
+#line 3436 "gram.y"
+ { (yyval.node) = (Node *) makeNode(A_Star); }
+#line 31302 "gram.c"
+ break;
+
+ case 437: /* copy_generic_opt_arg: '(' copy_generic_opt_arg_list ')' */
+#line 3437 "gram.y"
+ { (yyval.node) = (Node *) (yyvsp[-1].list); }
+#line 31308 "gram.c"
+ break;
+
+ case 438: /* copy_generic_opt_arg: %empty */
+#line 3438 "gram.y"
+ { (yyval.node) = NULL; }
+#line 31314 "gram.c"
+ break;
+
+ case 439: /* copy_generic_opt_arg_list: copy_generic_opt_arg_list_item */
+#line 3443 "gram.y"
+ {
+ (yyval.list) = list_make1((yyvsp[0].node));
+ }
+#line 31322 "gram.c"
+ break;
+
+ case 440: /* copy_generic_opt_arg_list: copy_generic_opt_arg_list ',' copy_generic_opt_arg_list_item */
+#line 3447 "gram.y"
+ {
+ (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node));
+ }
+#line 31330 "gram.c"
+ break;
+
+ case 441: /* copy_generic_opt_arg_list_item: opt_boolean_or_string */
+#line 3454 "gram.y"
+ { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
+#line 31336 "gram.c"
+ break;
+
+ case 442: /* CreateStmt: CREATE OptTemp TABLE qualified_name '(' OptTableElementList ')' OptInherit OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */
+#line 3468 "gram.y"
+ {
+ CreateStmt *n = makeNode(CreateStmt);
+
+ (yyvsp[-9].range)->relpersistence = (yyvsp[-11].ival);
+ n->relation = (yyvsp[-9].range);
+ n->tableElts = (yyvsp[-7].list);
+ n->inhRelations = (yyvsp[-5].list);
+ n->partspec = (yyvsp[-4].partspec);
+ n->ofTypename = NULL;
+ n->constraints = NIL;
+ n->accessMethod = (yyvsp[-3].str);
+ 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 31358 "gram.c"
+ break;
+
+ case 443: /* CreateStmt: CREATE OptTemp TABLE IF_P NOT EXISTS qualified_name '(' OptTableElementList ')' OptInherit OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */
+#line 3488 "gram.y"
+ {
+ CreateStmt *n = makeNode(CreateStmt);
+
+ (yyvsp[-9].range)->relpersistence = (yyvsp[-14].ival);
+ n->relation = (yyvsp[-9].range);
+ n->tableElts = (yyvsp[-7].list);
+ n->inhRelations = (yyvsp[-5].list);
+ n->partspec = (yyvsp[-4].partspec);
+ n->ofTypename = NULL;
+ n->constraints = NIL;
+ n->accessMethod = (yyvsp[-3].str);
+ 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 31380 "gram.c"
+ break;
+
+ case 444: /* CreateStmt: CREATE OptTemp TABLE qualified_name OF any_name OptTypedTableElementList OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */
+#line 3508 "gram.y"
+ {
+ CreateStmt *n = makeNode(CreateStmt);
+
+ (yyvsp[-8].range)->relpersistence = (yyvsp[-10].ival);
+ n->relation = (yyvsp[-8].range);
+ n->tableElts = (yyvsp[-5].list);
+ n->inhRelations = NIL;
+ n->partspec = (yyvsp[-4].partspec);
+ n->ofTypename = makeTypeNameFromNameList((yyvsp[-6].list));
+ n->ofTypename->location = (yylsp[-6]);
+ n->constraints = NIL;
+ n->accessMethod = (yyvsp[-3].str);
+ 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 31403 "gram.c"
+ break;
+
+ case 445: /* CreateStmt: CREATE OptTemp TABLE IF_P NOT EXISTS qualified_name OF any_name OptTypedTableElementList OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */
+#line 3529 "gram.y"
+ {
+ CreateStmt *n = makeNode(CreateStmt);
+
+ (yyvsp[-8].range)->relpersistence = (yyvsp[-13].ival);
+ n->relation = (yyvsp[-8].range);
+ n->tableElts = (yyvsp[-5].list);
+ n->inhRelations = NIL;
+ n->partspec = (yyvsp[-4].partspec);
+ n->ofTypename = makeTypeNameFromNameList((yyvsp[-6].list));
+ n->ofTypename->location = (yylsp[-6]);
+ n->constraints = NIL;
+ n->accessMethod = (yyvsp[-3].str);
+ 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 31426 "gram.c"
+ break;
+
+ case 446: /* CreateStmt: CREATE OptTemp TABLE qualified_name PARTITION OF qualified_name OptTypedTableElementList PartitionBoundSpec OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */
+#line 3550 "gram.y"
+ {
+ CreateStmt *n = makeNode(CreateStmt);
+
+ (yyvsp[-10].range)->relpersistence = (yyvsp[-12].ival);
+ n->relation = (yyvsp[-10].range);
+ n->tableElts = (yyvsp[-6].list);
+ n->inhRelations = list_make1((yyvsp[-7].range));
+ n->partbound = (yyvsp[-5].partboundspec);
+ n->partspec = (yyvsp[-4].partspec);
+ n->ofTypename = NULL;
+ n->constraints = NIL;
+ n->accessMethod = (yyvsp[-3].str);
+ 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 31449 "gram.c"
+ break;
+
+ case 447: /* CreateStmt: CREATE OptTemp TABLE IF_P NOT EXISTS qualified_name PARTITION OF qualified_name OptTypedTableElementList PartitionBoundSpec OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */
+#line 3571 "gram.y"
+ {
+ CreateStmt *n = makeNode(CreateStmt);
+
+ (yyvsp[-10].range)->relpersistence = (yyvsp[-15].ival);
+ n->relation = (yyvsp[-10].range);
+ n->tableElts = (yyvsp[-6].list);
+ n->inhRelations = list_make1((yyvsp[-7].range));
+ n->partbound = (yyvsp[-5].partboundspec);
+ n->partspec = (yyvsp[-4].partspec);
+ n->ofTypename = NULL;
+ n->constraints = NIL;
+ n->accessMethod = (yyvsp[-3].str);
+ 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 31472 "gram.c"
+ break;
+
+ case 448: /* OptTemp: TEMPORARY */
+#line 3602 "gram.y"
+ { (yyval.ival) = RELPERSISTENCE_TEMP; }
+#line 31478 "gram.c"
+ break;
+
+ case 449: /* OptTemp: TEMP */
+#line 3603 "gram.y"
+ { (yyval.ival) = RELPERSISTENCE_TEMP; }
+#line 31484 "gram.c"
+ break;
+
+ case 450: /* OptTemp: LOCAL TEMPORARY */
+#line 3604 "gram.y"
+ { (yyval.ival) = RELPERSISTENCE_TEMP; }
+#line 31490 "gram.c"
+ break;
+
+ case 451: /* OptTemp: LOCAL TEMP */
+#line 3605 "gram.y"
+ { (yyval.ival) = RELPERSISTENCE_TEMP; }
+#line 31496 "gram.c"
+ break;
+
+ case 452: /* OptTemp: GLOBAL TEMPORARY */
+#line 3607 "gram.y"
+ {
+ ereport(WARNING,
+ (errmsg("GLOBAL is deprecated in temporary table creation"),
+ parser_errposition((yylsp[-1]))));
+ (yyval.ival) = RELPERSISTENCE_TEMP;
+ }
+#line 31507 "gram.c"
+ break;
+
+ case 453: /* OptTemp: GLOBAL TEMP */
+#line 3614 "gram.y"
+ {
+ ereport(WARNING,
+ (errmsg("GLOBAL is deprecated in temporary table creation"),
+ parser_errposition((yylsp[-1]))));
+ (yyval.ival) = RELPERSISTENCE_TEMP;
+ }
+#line 31518 "gram.c"
+ break;
+
+ case 454: /* OptTemp: UNLOGGED */
+#line 3620 "gram.y"
+ { (yyval.ival) = RELPERSISTENCE_UNLOGGED; }
+#line 31524 "gram.c"
+ break;
+
+ case 455: /* OptTemp: %empty */
+#line 3621 "gram.y"
+ { (yyval.ival) = RELPERSISTENCE_PERMANENT; }
+#line 31530 "gram.c"
+ break;
+
+ case 456: /* OptTableElementList: TableElementList */
+#line 3625 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 31536 "gram.c"
+ break;
+
+ case 457: /* OptTableElementList: %empty */
+#line 3626 "gram.y"
+ { (yyval.list) = NIL; }
+#line 31542 "gram.c"
+ break;
+
+ case 458: /* OptTypedTableElementList: '(' TypedTableElementList ')' */
+#line 3630 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 31548 "gram.c"
+ break;
+
+ case 459: /* OptTypedTableElementList: %empty */
+#line 3631 "gram.y"
+ { (yyval.list) = NIL; }
+#line 31554 "gram.c"
+ break;
+
+ case 460: /* TableElementList: TableElement */
+#line 3636 "gram.y"
+ {
+ (yyval.list) = list_make1((yyvsp[0].node));
+ }
+#line 31562 "gram.c"
+ break;
+
+ case 461: /* TableElementList: TableElementList ',' TableElement */
+#line 3640 "gram.y"
+ {
+ (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node));
+ }
+#line 31570 "gram.c"
+ break;
+
+ case 462: /* TypedTableElementList: TypedTableElement */
+#line 3647 "gram.y"
+ {
+ (yyval.list) = list_make1((yyvsp[0].node));
+ }
+#line 31578 "gram.c"
+ break;
+
+ case 463: /* TypedTableElementList: TypedTableElementList ',' TypedTableElement */
+#line 3651 "gram.y"
+ {
+ (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node));
+ }
+#line 31586 "gram.c"
+ break;
+
+ case 464: /* TableElement: columnDef */
+#line 3657 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 31592 "gram.c"
+ break;
+
+ case 465: /* TableElement: TableLikeClause */
+#line 3658 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 31598 "gram.c"
+ break;
+
+ case 466: /* TableElement: TableConstraint */
+#line 3659 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 31604 "gram.c"
+ break;
+
+ case 467: /* TypedTableElement: columnOptions */
+#line 3663 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 31610 "gram.c"
+ break;
+
+ case 468: /* TypedTableElement: TableConstraint */
+#line 3664 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 31616 "gram.c"
+ break;
+
+ case 469: /* columnDef: ColId Typename opt_column_compression create_generic_options ColQualList */
+#line 3668 "gram.y"
+ {
+ ColumnDef *n = makeNode(ColumnDef);
+
+ n->colname = (yyvsp[-4].str);
+ n->typeName = (yyvsp[-3].typnam);
+ n->compression = (yyvsp[-2].str);
+ 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[-4]);
+ (yyval.node) = (Node *) n;
+ }
+#line 31641 "gram.c"
+ break;
+
+ case 470: /* columnOptions: ColId ColQualList */
+#line 3691 "gram.y"
+ {
+ 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 31664 "gram.c"
+ break;
+
+ case 471: /* columnOptions: ColId WITH OPTIONS ColQualList */
+#line 3710 "gram.y"
+ {
+ 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 31687 "gram.c"
+ break;
+
+ case 472: /* column_compression: COMPRESSION ColId */
+#line 3731 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 31693 "gram.c"
+ break;
+
+ case 473: /* column_compression: COMPRESSION DEFAULT */
+#line 3732 "gram.y"
+ { (yyval.str) = pstrdup("default"); }
+#line 31699 "gram.c"
+ break;
+
+ case 474: /* opt_column_compression: column_compression */
+#line 3736 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 31705 "gram.c"
+ break;
+
+ case 475: /* opt_column_compression: %empty */
+#line 3737 "gram.y"
+ { (yyval.str) = NULL; }
+#line 31711 "gram.c"
+ break;
+
+ case 476: /* ColQualList: ColQualList ColConstraint */
+#line 3741 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); }
+#line 31717 "gram.c"
+ break;
+
+ case 477: /* ColQualList: %empty */
+#line 3742 "gram.y"
+ { (yyval.list) = NIL; }
+#line 31723 "gram.c"
+ break;
+
+ case 478: /* ColConstraint: CONSTRAINT name ColConstraintElem */
+#line 3747 "gram.y"
+ {
+ Constraint *n = castNode(Constraint, (yyvsp[0].node));
+
+ n->conname = (yyvsp[-1].str);
+ n->location = (yylsp[-2]);
+ (yyval.node) = (Node *) n;
+ }
+#line 31735 "gram.c"
+ break;
+
+ case 479: /* ColConstraint: ColConstraintElem */
+#line 3754 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 31741 "gram.c"
+ break;
+
+ case 480: /* ColConstraint: ConstraintAttr */
+#line 3755 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 31747 "gram.c"
+ break;
+
+ case 481: /* ColConstraint: COLLATE any_name */
+#line 3757 "gram.y"
+ {
+ /*
+ * 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 31765 "gram.c"
+ break;
+
+ case 482: /* ColConstraintElem: NOT NULL_P */
+#line 3789 "gram.y"
+ {
+ Constraint *n = makeNode(Constraint);
+
+ n->contype = CONSTR_NOTNULL;
+ n->location = (yylsp[-1]);
+ (yyval.node) = (Node *) n;
+ }
+#line 31777 "gram.c"
+ break;
+
+ case 483: /* ColConstraintElem: NULL_P */
+#line 3797 "gram.y"
+ {
+ Constraint *n = makeNode(Constraint);
+
+ n->contype = CONSTR_NULL;
+ n->location = (yylsp[0]);
+ (yyval.node) = (Node *) n;
+ }
+#line 31789 "gram.c"
+ break;
+
+ case 484: /* ColConstraintElem: UNIQUE opt_unique_null_treatment opt_definition OptConsTableSpace */
+#line 3805 "gram.y"
+ {
+ Constraint *n = makeNode(Constraint);
+
+ n->contype = CONSTR_UNIQUE;
+ n->location = (yylsp[-3]);
+ n->nulls_not_distinct = !(yyvsp[-2].boolean);
+ n->keys = NULL;
+ n->options = (yyvsp[-1].list);
+ n->indexname = NULL;
+ n->indexspace = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 31806 "gram.c"
+ break;
+
+ case 485: /* ColConstraintElem: PRIMARY KEY opt_definition OptConsTableSpace */
+#line 3818 "gram.y"
+ {
+ 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 31822 "gram.c"
+ break;
+
+ case 486: /* ColConstraintElem: CHECK '(' a_expr ')' opt_no_inherit */
+#line 3830 "gram.y"
+ {
+ 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 31839 "gram.c"
+ break;
+
+ case 487: /* ColConstraintElem: DEFAULT b_expr */
+#line 3843 "gram.y"
+ {
+ 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 31853 "gram.c"
+ break;
+
+ case 488: /* ColConstraintElem: GENERATED generated_when AS IDENTITY_P OptParenthesizedSeqOptList */
+#line 3853 "gram.y"
+ {
+ 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 31867 "gram.c"
+ break;
+
+ case 489: /* ColConstraintElem: GENERATED generated_when AS '(' a_expr ')' STORED */
+#line 3863 "gram.y"
+ {
+ Constraint *n = makeNode(Constraint);
+
+ n->contype = CONSTR_GENERATED;
+ n->generated_when = (yyvsp[-5].ival);
+ n->raw_expr = (yyvsp[-2].node);
+ n->cooked_expr = NULL;
+ n->location = (yylsp[-6]);
+
+ /*
+ * Can't do this in the grammar because of shift/reduce
+ * conflicts. (IDENTITY allows both ALWAYS and BY
+ * DEFAULT, but generated columns only allow ALWAYS.) We
+ * can also give a more useful error message and location.
+ */
+ if ((yyvsp[-5].ival) != ATTRIBUTE_IDENTITY_ALWAYS)
+ ereport(ERROR,
+ (errcode(ERRCODE_SYNTAX_ERROR),
+ errmsg("for a generated column, GENERATED ALWAYS must be specified"),
+ parser_errposition((yylsp[-5]))));
+
+ (yyval.node) = (Node *) n;
+ }
+#line 31895 "gram.c"
+ break;
+
+ case 490: /* ColConstraintElem: REFERENCES qualified_name opt_column_list key_match key_actions */
+#line 3887 "gram.y"
+ {
+ 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 = ((yyvsp[0].keyactions))->updateAction->action;
+ n->fk_del_action = ((yyvsp[0].keyactions))->deleteAction->action;
+ n->fk_del_set_cols = ((yyvsp[0].keyactions))->deleteAction->cols;
+ n->skip_validation = false;
+ n->initially_valid = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 31916 "gram.c"
+ break;
+
+ case 491: /* opt_unique_null_treatment: NULLS_P DISTINCT */
+#line 3906 "gram.y"
+ { (yyval.boolean) = true; }
+#line 31922 "gram.c"
+ break;
+
+ case 492: /* opt_unique_null_treatment: NULLS_P NOT DISTINCT */
+#line 3907 "gram.y"
+ { (yyval.boolean) = false; }
+#line 31928 "gram.c"
+ break;
+
+ case 493: /* opt_unique_null_treatment: %empty */
+#line 3908 "gram.y"
+ { (yyval.boolean) = true; }
+#line 31934 "gram.c"
+ break;
+
+ case 494: /* generated_when: ALWAYS */
+#line 3912 "gram.y"
+ { (yyval.ival) = ATTRIBUTE_IDENTITY_ALWAYS; }
+#line 31940 "gram.c"
+ break;
+
+ case 495: /* generated_when: BY DEFAULT */
+#line 3913 "gram.y"
+ { (yyval.ival) = ATTRIBUTE_IDENTITY_BY_DEFAULT; }
+#line 31946 "gram.c"
+ break;
+
+ case 496: /* ConstraintAttr: DEFERRABLE */
+#line 3933 "gram.y"
+ {
+ Constraint *n = makeNode(Constraint);
+
+ n->contype = CONSTR_ATTR_DEFERRABLE;
+ n->location = (yylsp[0]);
+ (yyval.node) = (Node *) n;
+ }
+#line 31958 "gram.c"
+ break;
+
+ case 497: /* ConstraintAttr: NOT DEFERRABLE */
+#line 3941 "gram.y"
+ {
+ Constraint *n = makeNode(Constraint);
+
+ n->contype = CONSTR_ATTR_NOT_DEFERRABLE;
+ n->location = (yylsp[-1]);
+ (yyval.node) = (Node *) n;
+ }
+#line 31970 "gram.c"
+ break;
+
+ case 498: /* ConstraintAttr: INITIALLY DEFERRED */
+#line 3949 "gram.y"
+ {
+ Constraint *n = makeNode(Constraint);
+
+ n->contype = CONSTR_ATTR_DEFERRED;
+ n->location = (yylsp[-1]);
+ (yyval.node) = (Node *) n;
+ }
+#line 31982 "gram.c"
+ break;
+
+ case 499: /* ConstraintAttr: INITIALLY IMMEDIATE */
+#line 3957 "gram.y"
+ {
+ Constraint *n = makeNode(Constraint);
+
+ n->contype = CONSTR_ATTR_IMMEDIATE;
+ n->location = (yylsp[-1]);
+ (yyval.node) = (Node *) n;
+ }
+#line 31994 "gram.c"
+ break;
+
+ case 500: /* TableLikeClause: LIKE qualified_name TableLikeOptionList */
+#line 3969 "gram.y"
+ {
+ TableLikeClause *n = makeNode(TableLikeClause);
+
+ n->relation = (yyvsp[-1].range);
+ n->options = (yyvsp[0].ival);
+ n->relationOid = InvalidOid;
+ (yyval.node) = (Node *) n;
+ }
+#line 32007 "gram.c"
+ break;
+
+ case 501: /* TableLikeOptionList: TableLikeOptionList INCLUDING TableLikeOption */
+#line 3980 "gram.y"
+ { (yyval.ival) = (yyvsp[-2].ival) | (yyvsp[0].ival); }
+#line 32013 "gram.c"
+ break;
+
+ case 502: /* TableLikeOptionList: TableLikeOptionList EXCLUDING TableLikeOption */
+#line 3981 "gram.y"
+ { (yyval.ival) = (yyvsp[-2].ival) & ~(yyvsp[0].ival); }
+#line 32019 "gram.c"
+ break;
+
+ case 503: /* TableLikeOptionList: %empty */
+#line 3982 "gram.y"
+ { (yyval.ival) = 0; }
+#line 32025 "gram.c"
+ break;
+
+ case 504: /* TableLikeOption: COMMENTS */
+#line 3986 "gram.y"
+ { (yyval.ival) = CREATE_TABLE_LIKE_COMMENTS; }
+#line 32031 "gram.c"
+ break;
+
+ case 505: /* TableLikeOption: COMPRESSION */
+#line 3987 "gram.y"
+ { (yyval.ival) = CREATE_TABLE_LIKE_COMPRESSION; }
+#line 32037 "gram.c"
+ break;
+
+ case 506: /* TableLikeOption: CONSTRAINTS */
+#line 3988 "gram.y"
+ { (yyval.ival) = CREATE_TABLE_LIKE_CONSTRAINTS; }
+#line 32043 "gram.c"
+ break;
+
+ case 507: /* TableLikeOption: DEFAULTS */
+#line 3989 "gram.y"
+ { (yyval.ival) = CREATE_TABLE_LIKE_DEFAULTS; }
+#line 32049 "gram.c"
+ break;
+
+ case 508: /* TableLikeOption: IDENTITY_P */
+#line 3990 "gram.y"
+ { (yyval.ival) = CREATE_TABLE_LIKE_IDENTITY; }
+#line 32055 "gram.c"
+ break;
+
+ case 509: /* TableLikeOption: GENERATED */
+#line 3991 "gram.y"
+ { (yyval.ival) = CREATE_TABLE_LIKE_GENERATED; }
+#line 32061 "gram.c"
+ break;
+
+ case 510: /* TableLikeOption: INDEXES */
+#line 3992 "gram.y"
+ { (yyval.ival) = CREATE_TABLE_LIKE_INDEXES; }
+#line 32067 "gram.c"
+ break;
+
+ case 511: /* TableLikeOption: STATISTICS */
+#line 3993 "gram.y"
+ { (yyval.ival) = CREATE_TABLE_LIKE_STATISTICS; }
+#line 32073 "gram.c"
+ break;
+
+ case 512: /* TableLikeOption: STORAGE */
+#line 3994 "gram.y"
+ { (yyval.ival) = CREATE_TABLE_LIKE_STORAGE; }
+#line 32079 "gram.c"
+ break;
+
+ case 513: /* TableLikeOption: ALL */
+#line 3995 "gram.y"
+ { (yyval.ival) = CREATE_TABLE_LIKE_ALL; }
+#line 32085 "gram.c"
+ break;
+
+ case 514: /* TableConstraint: CONSTRAINT name ConstraintElem */
+#line 4005 "gram.y"
+ {
+ Constraint *n = castNode(Constraint, (yyvsp[0].node));
+
+ n->conname = (yyvsp[-1].str);
+ n->location = (yylsp[-2]);
+ (yyval.node) = (Node *) n;
+ }
+#line 32097 "gram.c"
+ break;
+
+ case 515: /* TableConstraint: ConstraintElem */
+#line 4012 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 32103 "gram.c"
+ break;
+
+ case 516: /* ConstraintElem: CHECK '(' a_expr ')' ConstraintAttributeSpec */
+#line 4017 "gram.y"
+ {
+ 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 32121 "gram.c"
+ break;
+
+ case 517: /* ConstraintElem: UNIQUE opt_unique_null_treatment '(' columnList ')' opt_c_include opt_definition OptConsTableSpace ConstraintAttributeSpec */
+#line 4032 "gram.y"
+ {
+ Constraint *n = makeNode(Constraint);
+
+ n->contype = CONSTR_UNIQUE;
+ n->location = (yylsp[-8]);
+ n->nulls_not_distinct = !(yyvsp[-7].boolean);
+ 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 32142 "gram.c"
+ break;
+
+ case 518: /* ConstraintElem: UNIQUE ExistingIndex ConstraintAttributeSpec */
+#line 4049 "gram.y"
+ {
+ 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 32162 "gram.c"
+ break;
+
+ case 519: /* ConstraintElem: PRIMARY KEY '(' columnList ')' opt_c_include opt_definition OptConsTableSpace ConstraintAttributeSpec */
+#line 4066 "gram.y"
+ {
+ 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 32182 "gram.c"
+ break;
+
+ case 520: /* ConstraintElem: PRIMARY KEY ExistingIndex ConstraintAttributeSpec */
+#line 4082 "gram.y"
+ {
+ 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 32202 "gram.c"
+ break;
+
+ case 521: /* ConstraintElem: EXCLUDE access_method_clause '(' ExclusionConstraintList ')' opt_c_include opt_definition OptConsTableSpace OptWhereClause ConstraintAttributeSpec */
+#line 4100 "gram.y"
+ {
+ 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 32224 "gram.c"
+ break;
+
+ case 522: /* ConstraintElem: FOREIGN KEY '(' columnList ')' REFERENCES qualified_name opt_column_list key_match key_actions ConstraintAttributeSpec */
+#line 4119 "gram.y"
+ {
+ 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 = ((yyvsp[-1].keyactions))->updateAction->action;
+ n->fk_del_action = ((yyvsp[-1].keyactions))->deleteAction->action;
+ n->fk_del_set_cols = ((yyvsp[-1].keyactions))->deleteAction->cols;
+ 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 32248 "gram.c"
+ break;
+
+ case 523: /* opt_no_inherit: NO INHERIT */
+#line 4140 "gram.y"
+ { (yyval.boolean) = true; }
+#line 32254 "gram.c"
+ break;
+
+ case 524: /* opt_no_inherit: %empty */
+#line 4141 "gram.y"
+ { (yyval.boolean) = false; }
+#line 32260 "gram.c"
+ break;
+
+ case 525: /* opt_column_list: '(' columnList ')' */
+#line 4145 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 32266 "gram.c"
+ break;
+
+ case 526: /* opt_column_list: %empty */
+#line 4146 "gram.y"
+ { (yyval.list) = NIL; }
+#line 32272 "gram.c"
+ break;
+
+ case 527: /* columnList: columnElem */
+#line 4150 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].node)); }
+#line 32278 "gram.c"
+ break;
+
+ case 528: /* columnList: columnList ',' columnElem */
+#line 4151 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
+#line 32284 "gram.c"
+ break;
+
+ case 529: /* columnElem: ColId */
+#line 4155 "gram.y"
+ {
+ (yyval.node) = (Node *) makeString((yyvsp[0].str));
+ }
+#line 32292 "gram.c"
+ break;
+
+ case 530: /* opt_c_include: INCLUDE '(' columnList ')' */
+#line 4160 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 32298 "gram.c"
+ break;
+
+ case 531: /* opt_c_include: %empty */
+#line 4161 "gram.y"
+ { (yyval.list) = NIL; }
+#line 32304 "gram.c"
+ break;
+
+ case 532: /* key_match: MATCH FULL */
+#line 4165 "gram.y"
+ {
+ (yyval.ival) = FKCONSTR_MATCH_FULL;
+ }
+#line 32312 "gram.c"
+ break;
+
+ case 533: /* key_match: MATCH PARTIAL */
+#line 4169 "gram.y"
+ {
+ ereport(ERROR,
+ (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+ errmsg("MATCH PARTIAL not yet implemented"),
+ parser_errposition((yylsp[-1]))));
+ (yyval.ival) = FKCONSTR_MATCH_PARTIAL;
+ }
+#line 32324 "gram.c"
+ break;
+
+ case 534: /* key_match: MATCH SIMPLE */
+#line 4177 "gram.y"
+ {
+ (yyval.ival) = FKCONSTR_MATCH_SIMPLE;
+ }
+#line 32332 "gram.c"
+ break;
+
+ case 535: /* key_match: %empty */
+#line 4181 "gram.y"
+ {
+ (yyval.ival) = FKCONSTR_MATCH_SIMPLE;
+ }
+#line 32340 "gram.c"
+ break;
+
+ case 536: /* ExclusionConstraintList: ExclusionConstraintElem */
+#line 4187 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].list)); }
+#line 32346 "gram.c"
+ break;
+
+ case 537: /* ExclusionConstraintList: ExclusionConstraintList ',' ExclusionConstraintElem */
+#line 4189 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); }
+#line 32352 "gram.c"
+ break;
+
+ case 538: /* ExclusionConstraintElem: index_elem WITH any_operator */
+#line 4193 "gram.y"
+ {
+ (yyval.list) = list_make2((yyvsp[-2].ielem), (yyvsp[0].list));
+ }
+#line 32360 "gram.c"
+ break;
+
+ case 539: /* ExclusionConstraintElem: index_elem WITH OPERATOR '(' any_operator ')' */
+#line 4198 "gram.y"
+ {
+ (yyval.list) = list_make2((yyvsp[-5].ielem), (yyvsp[-1].list));
+ }
+#line 32368 "gram.c"
+ break;
+
+ case 540: /* OptWhereClause: WHERE '(' a_expr ')' */
+#line 4204 "gram.y"
+ { (yyval.node) = (yyvsp[-1].node); }
+#line 32374 "gram.c"
+ break;
+
+ case 541: /* OptWhereClause: %empty */
+#line 4205 "gram.y"
+ { (yyval.node) = NULL; }
+#line 32380 "gram.c"
+ break;
+
+ case 542: /* key_actions: key_update */
+#line 4210 "gram.y"
+ {
+ KeyActions *n = palloc(sizeof(KeyActions));
+
+ n->updateAction = (yyvsp[0].keyaction);
+ n->deleteAction = palloc(sizeof(KeyAction));
+ n->deleteAction->action = FKCONSTR_ACTION_NOACTION;
+ n->deleteAction->cols = NIL;
+ (yyval.keyactions) = n;
+ }
+#line 32394 "gram.c"
+ break;
+
+ case 543: /* key_actions: key_delete */
+#line 4220 "gram.y"
+ {
+ KeyActions *n = palloc(sizeof(KeyActions));
+
+ n->updateAction = palloc(sizeof(KeyAction));
+ n->updateAction->action = FKCONSTR_ACTION_NOACTION;
+ n->updateAction->cols = NIL;
+ n->deleteAction = (yyvsp[0].keyaction);
+ (yyval.keyactions) = n;
+ }
+#line 32408 "gram.c"
+ break;
+
+ case 544: /* key_actions: key_update key_delete */
+#line 4230 "gram.y"
+ {
+ KeyActions *n = palloc(sizeof(KeyActions));
+
+ n->updateAction = (yyvsp[-1].keyaction);
+ n->deleteAction = (yyvsp[0].keyaction);
+ (yyval.keyactions) = n;
+ }
+#line 32420 "gram.c"
+ break;
+
+ case 545: /* key_actions: key_delete key_update */
+#line 4238 "gram.y"
+ {
+ KeyActions *n = palloc(sizeof(KeyActions));
+
+ n->updateAction = (yyvsp[0].keyaction);
+ n->deleteAction = (yyvsp[-1].keyaction);
+ (yyval.keyactions) = n;
+ }
+#line 32432 "gram.c"
+ break;
+
+ case 546: /* key_actions: %empty */
+#line 4246 "gram.y"
+ {
+ KeyActions *n = palloc(sizeof(KeyActions));
+
+ n->updateAction = palloc(sizeof(KeyAction));
+ n->updateAction->action = FKCONSTR_ACTION_NOACTION;
+ n->updateAction->cols = NIL;
+ n->deleteAction = palloc(sizeof(KeyAction));
+ n->deleteAction->action = FKCONSTR_ACTION_NOACTION;
+ n->deleteAction->cols = NIL;
+ (yyval.keyactions) = n;
+ }
+#line 32448 "gram.c"
+ break;
+
+ case 547: /* key_update: ON UPDATE key_action */
+#line 4260 "gram.y"
+ {
+ if (((yyvsp[0].keyaction))->cols)
+ ereport(ERROR,
+ (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+ errmsg("a column list with %s is only supported for ON DELETE actions",
+ ((yyvsp[0].keyaction))->action == FKCONSTR_ACTION_SETNULL ? "SET NULL" : "SET DEFAULT"),
+ parser_errposition((yylsp[-2]))));
+ (yyval.keyaction) = (yyvsp[0].keyaction);
+ }
+#line 32462 "gram.c"
+ break;
+
+ case 548: /* key_delete: ON DELETE_P key_action */
+#line 4272 "gram.y"
+ {
+ (yyval.keyaction) = (yyvsp[0].keyaction);
+ }
+#line 32470 "gram.c"
+ break;
+
+ case 549: /* key_action: NO ACTION */
+#line 4279 "gram.y"
+ {
+ KeyAction *n = palloc(sizeof(KeyAction));
+
+ n->action = FKCONSTR_ACTION_NOACTION;
+ n->cols = NIL;
+ (yyval.keyaction) = n;
+ }
+#line 32482 "gram.c"
+ break;
+
+ case 550: /* key_action: RESTRICT */
+#line 4287 "gram.y"
+ {
+ KeyAction *n = palloc(sizeof(KeyAction));
+
+ n->action = FKCONSTR_ACTION_RESTRICT;
+ n->cols = NIL;
+ (yyval.keyaction) = n;
+ }
+#line 32494 "gram.c"
+ break;
+
+ case 551: /* key_action: CASCADE */
+#line 4295 "gram.y"
+ {
+ KeyAction *n = palloc(sizeof(KeyAction));
+
+ n->action = FKCONSTR_ACTION_CASCADE;
+ n->cols = NIL;
+ (yyval.keyaction) = n;
+ }
+#line 32506 "gram.c"
+ break;
+
+ case 552: /* key_action: SET NULL_P opt_column_list */
+#line 4303 "gram.y"
+ {
+ KeyAction *n = palloc(sizeof(KeyAction));
+
+ n->action = FKCONSTR_ACTION_SETNULL;
+ n->cols = (yyvsp[0].list);
+ (yyval.keyaction) = n;
+ }
+#line 32518 "gram.c"
+ break;
+
+ case 553: /* key_action: SET DEFAULT opt_column_list */
+#line 4311 "gram.y"
+ {
+ KeyAction *n = palloc(sizeof(KeyAction));
+
+ n->action = FKCONSTR_ACTION_SETDEFAULT;
+ n->cols = (yyvsp[0].list);
+ (yyval.keyaction) = n;
+ }
+#line 32530 "gram.c"
+ break;
+
+ case 554: /* OptInherit: INHERITS '(' qualified_name_list ')' */
+#line 4320 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 32536 "gram.c"
+ break;
+
+ case 555: /* OptInherit: %empty */
+#line 4321 "gram.y"
+ { (yyval.list) = NIL; }
+#line 32542 "gram.c"
+ break;
+
+ case 556: /* OptPartitionSpec: PartitionSpec */
+#line 4325 "gram.y"
+ { (yyval.partspec) = (yyvsp[0].partspec); }
+#line 32548 "gram.c"
+ break;
+
+ case 557: /* OptPartitionSpec: %empty */
+#line 4326 "gram.y"
+ { (yyval.partspec) = NULL; }
+#line 32554 "gram.c"
+ break;
+
+ case 558: /* PartitionSpec: PARTITION BY ColId '(' part_params ')' */
+#line 4330 "gram.y"
+ {
+ PartitionSpec *n = makeNode(PartitionSpec);
+
+ n->strategy = (yyvsp[-3].str);
+ n->partParams = (yyvsp[-1].list);
+ n->location = (yylsp[-5]);
+
+ (yyval.partspec) = n;
+ }
+#line 32568 "gram.c"
+ break;
+
+ case 559: /* part_params: part_elem */
+#line 4341 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].partelem)); }
+#line 32574 "gram.c"
+ break;
+
+ case 560: /* part_params: part_params ',' part_elem */
+#line 4342 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].partelem)); }
+#line 32580 "gram.c"
+ break;
+
+ case 561: /* part_elem: ColId opt_collate opt_class */
+#line 4346 "gram.y"
+ {
+ 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 32595 "gram.c"
+ break;
+
+ case 562: /* part_elem: func_expr_windowless opt_collate opt_class */
+#line 4357 "gram.y"
+ {
+ 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 32610 "gram.c"
+ break;
+
+ case 563: /* part_elem: '(' a_expr ')' opt_collate opt_class */
+#line 4368 "gram.y"
+ {
+ 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 32625 "gram.c"
+ break;
+
+ case 564: /* table_access_method_clause: USING name */
+#line 4381 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 32631 "gram.c"
+ break;
+
+ case 565: /* table_access_method_clause: %empty */
+#line 4382 "gram.y"
+ { (yyval.str) = NULL; }
+#line 32637 "gram.c"
+ break;
+
+ case 566: /* OptWith: WITH reloptions */
+#line 4387 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 32643 "gram.c"
+ break;
+
+ case 567: /* OptWith: WITHOUT OIDS */
+#line 4388 "gram.y"
+ { (yyval.list) = NIL; }
+#line 32649 "gram.c"
+ break;
+
+ case 568: /* OptWith: %empty */
+#line 4389 "gram.y"
+ { (yyval.list) = NIL; }
+#line 32655 "gram.c"
+ break;
+
+ case 569: /* OnCommitOption: ON COMMIT DROP */
+#line 4392 "gram.y"
+ { (yyval.oncommit) = ONCOMMIT_DROP; }
+#line 32661 "gram.c"
+ break;
+
+ case 570: /* OnCommitOption: ON COMMIT DELETE_P ROWS */
+#line 4393 "gram.y"
+ { (yyval.oncommit) = ONCOMMIT_DELETE_ROWS; }
+#line 32667 "gram.c"
+ break;
+
+ case 571: /* OnCommitOption: ON COMMIT PRESERVE ROWS */
+#line 4394 "gram.y"
+ { (yyval.oncommit) = ONCOMMIT_PRESERVE_ROWS; }
+#line 32673 "gram.c"
+ break;
+
+ case 572: /* OnCommitOption: %empty */
+#line 4395 "gram.y"
+ { (yyval.oncommit) = ONCOMMIT_NOOP; }
+#line 32679 "gram.c"
+ break;
+
+ case 573: /* OptTableSpace: TABLESPACE name */
+#line 4398 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 32685 "gram.c"
+ break;
+
+ case 574: /* OptTableSpace: %empty */
+#line 4399 "gram.y"
+ { (yyval.str) = NULL; }
+#line 32691 "gram.c"
+ break;
+
+ case 575: /* OptConsTableSpace: USING INDEX TABLESPACE name */
+#line 4402 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 32697 "gram.c"
+ break;
+
+ case 576: /* OptConsTableSpace: %empty */
+#line 4403 "gram.y"
+ { (yyval.str) = NULL; }
+#line 32703 "gram.c"
+ break;
+
+ case 577: /* ExistingIndex: USING INDEX name */
+#line 4406 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 32709 "gram.c"
+ break;
+
+ case 578: /* CreateStatsStmt: CREATE STATISTICS any_name opt_name_list ON stats_params FROM from_list */
+#line 4426 "gram.y"
+ {
+ 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 32725 "gram.c"
+ break;
+
+ case 579: /* CreateStatsStmt: CREATE STATISTICS IF_P NOT EXISTS any_name opt_name_list ON stats_params FROM from_list */
+#line 4439 "gram.y"
+ {
+ 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 32741 "gram.c"
+ break;
+
+ case 580: /* stats_params: stats_param */
+#line 4459 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].selem)); }
+#line 32747 "gram.c"
+ break;
+
+ case 581: /* stats_params: stats_params ',' stats_param */
+#line 4460 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].selem)); }
+#line 32753 "gram.c"
+ break;
+
+ case 582: /* stats_param: ColId */
+#line 4464 "gram.y"
+ {
+ (yyval.selem) = makeNode(StatsElem);
+ (yyval.selem)->name = (yyvsp[0].str);
+ (yyval.selem)->expr = NULL;
+ }
+#line 32763 "gram.c"
+ break;
+
+ case 583: /* stats_param: func_expr_windowless */
+#line 4470 "gram.y"
+ {
+ (yyval.selem) = makeNode(StatsElem);
+ (yyval.selem)->name = NULL;
+ (yyval.selem)->expr = (yyvsp[0].node);
+ }
+#line 32773 "gram.c"
+ break;
+
+ case 584: /* stats_param: '(' a_expr ')' */
+#line 4476 "gram.y"
+ {
+ (yyval.selem) = makeNode(StatsElem);
+ (yyval.selem)->name = NULL;
+ (yyval.selem)->expr = (yyvsp[-1].node);
+ }
+#line 32783 "gram.c"
+ break;
+
+ case 585: /* AlterStatsStmt: ALTER STATISTICS any_name SET STATISTICS SignedIconst */
+#line 4493 "gram.y"
+ {
+ AlterStatsStmt *n = makeNode(AlterStatsStmt);
+
+ n->defnames = (yyvsp[-3].list);
+ n->missing_ok = false;
+ n->stxstattarget = (yyvsp[0].ival);
+ (yyval.node) = (Node *) n;
+ }
+#line 32796 "gram.c"
+ break;
+
+ case 586: /* AlterStatsStmt: ALTER STATISTICS IF_P EXISTS any_name SET STATISTICS SignedIconst */
+#line 4502 "gram.y"
+ {
+ AlterStatsStmt *n = makeNode(AlterStatsStmt);
+
+ n->defnames = (yyvsp[-3].list);
+ n->missing_ok = true;
+ n->stxstattarget = (yyvsp[0].ival);
+ (yyval.node) = (Node *) n;
+ }
+#line 32809 "gram.c"
+ break;
+
+ case 587: /* CreateAsStmt: CREATE OptTemp TABLE create_as_target AS SelectStmt opt_with_data */
+#line 4524 "gram.y"
+ {
+ CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt);
+
+ ctas->query = (yyvsp[-1].node);
+ ctas->into = (yyvsp[-3].into);
+ ctas->objtype = 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 32827 "gram.c"
+ break;
+
+ case 588: /* CreateAsStmt: CREATE OptTemp TABLE IF_P NOT EXISTS create_as_target AS SelectStmt opt_with_data */
+#line 4538 "gram.y"
+ {
+ CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt);
+
+ ctas->query = (yyvsp[-1].node);
+ ctas->into = (yyvsp[-3].into);
+ ctas->objtype = 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 32845 "gram.c"
+ break;
+
+ case 589: /* create_as_target: qualified_name opt_column_list table_access_method_clause OptWith OnCommitOption OptTableSpace */
+#line 4556 "gram.y"
+ {
+ (yyval.into) = makeNode(IntoClause);
+ (yyval.into)->rel = (yyvsp[-5].range);
+ (yyval.into)->colNames = (yyvsp[-4].list);
+ (yyval.into)->accessMethod = (yyvsp[-3].str);
+ (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 32861 "gram.c"
+ break;
+
+ case 590: /* opt_with_data: WITH DATA_P */
+#line 4570 "gram.y"
+ { (yyval.boolean) = true; }
+#line 32867 "gram.c"
+ break;
+
+ case 591: /* opt_with_data: WITH NO DATA_P */
+#line 4571 "gram.y"
+ { (yyval.boolean) = false; }
+#line 32873 "gram.c"
+ break;
+
+ case 592: /* opt_with_data: %empty */
+#line 4572 "gram.y"
+ { (yyval.boolean) = true; }
+#line 32879 "gram.c"
+ break;
+
+ case 593: /* CreateMatViewStmt: CREATE OptNoLog MATERIALIZED VIEW create_mv_target AS SelectStmt opt_with_data */
+#line 4585 "gram.y"
+ {
+ CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt);
+
+ ctas->query = (yyvsp[-1].node);
+ ctas->into = (yyvsp[-3].into);
+ ctas->objtype = 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 32897 "gram.c"
+ break;
+
+ case 594: /* CreateMatViewStmt: CREATE OptNoLog MATERIALIZED VIEW IF_P NOT EXISTS create_mv_target AS SelectStmt opt_with_data */
+#line 4599 "gram.y"
+ {
+ CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt);
+
+ ctas->query = (yyvsp[-1].node);
+ ctas->into = (yyvsp[-3].into);
+ ctas->objtype = 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 32915 "gram.c"
+ break;
+
+ case 595: /* create_mv_target: qualified_name opt_column_list table_access_method_clause opt_reloptions OptTableSpace */
+#line 4616 "gram.y"
+ {
+ (yyval.into) = makeNode(IntoClause);
+ (yyval.into)->rel = (yyvsp[-4].range);
+ (yyval.into)->colNames = (yyvsp[-3].list);
+ (yyval.into)->accessMethod = (yyvsp[-2].str);
+ (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 32931 "gram.c"
+ break;
+
+ case 596: /* OptNoLog: UNLOGGED */
+#line 4629 "gram.y"
+ { (yyval.ival) = RELPERSISTENCE_UNLOGGED; }
+#line 32937 "gram.c"
+ break;
+
+ case 597: /* OptNoLog: %empty */
+#line 4630 "gram.y"
+ { (yyval.ival) = RELPERSISTENCE_PERMANENT; }
+#line 32943 "gram.c"
+ break;
+
+ case 598: /* RefreshMatViewStmt: REFRESH MATERIALIZED VIEW opt_concurrently qualified_name opt_with_data */
+#line 4643 "gram.y"
+ {
+ RefreshMatViewStmt *n = makeNode(RefreshMatViewStmt);
+
+ n->concurrent = (yyvsp[-2].boolean);
+ n->relation = (yyvsp[-1].range);
+ n->skipData = !((yyvsp[0].boolean));
+ (yyval.node) = (Node *) n;
+ }
+#line 32956 "gram.c"
+ break;
+
+ case 599: /* CreateSeqStmt: CREATE OptTemp SEQUENCE qualified_name OptSeqOptList */
+#line 4664 "gram.y"
+ {
+ 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 32971 "gram.c"
+ break;
+
+ case 600: /* CreateSeqStmt: CREATE OptTemp SEQUENCE IF_P NOT EXISTS qualified_name OptSeqOptList */
+#line 4675 "gram.y"
+ {
+ 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 32986 "gram.c"
+ break;
+
+ case 601: /* AlterSeqStmt: ALTER SEQUENCE qualified_name SeqOptList */
+#line 4689 "gram.y"
+ {
+ AlterSeqStmt *n = makeNode(AlterSeqStmt);
+
+ n->sequence = (yyvsp[-1].range);
+ n->options = (yyvsp[0].list);
+ n->missing_ok = false;
+ (yyval.node) = (Node *) n;
+ }
+#line 32999 "gram.c"
+ break;
+
+ case 602: /* AlterSeqStmt: ALTER SEQUENCE IF_P EXISTS qualified_name SeqOptList */
+#line 4698 "gram.y"
+ {
+ AlterSeqStmt *n = makeNode(AlterSeqStmt);
+
+ n->sequence = (yyvsp[-1].range);
+ n->options = (yyvsp[0].list);
+ n->missing_ok = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 33012 "gram.c"
+ break;
+
+ case 603: /* OptSeqOptList: SeqOptList */
+#line 4709 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 33018 "gram.c"
+ break;
+
+ case 604: /* OptSeqOptList: %empty */
+#line 4710 "gram.y"
+ { (yyval.list) = NIL; }
+#line 33024 "gram.c"
+ break;
+
+ case 605: /* OptParenthesizedSeqOptList: '(' SeqOptList ')' */
+#line 4713 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 33030 "gram.c"
+ break;
+
+ case 606: /* OptParenthesizedSeqOptList: %empty */
+#line 4714 "gram.y"
+ { (yyval.list) = NIL; }
+#line 33036 "gram.c"
+ break;
+
+ case 607: /* SeqOptList: SeqOptElem */
+#line 4717 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].defelt)); }
+#line 33042 "gram.c"
+ break;
+
+ case 608: /* SeqOptList: SeqOptList SeqOptElem */
+#line 4718 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
+#line 33048 "gram.c"
+ break;
+
+ case 609: /* SeqOptElem: AS SimpleTypename */
+#line 4722 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("as", (Node *) (yyvsp[0].typnam), (yylsp[-1]));
+ }
+#line 33056 "gram.c"
+ break;
+
+ case 610: /* SeqOptElem: CACHE NumericOnly */
+#line 4726 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("cache", (Node *) (yyvsp[0].node), (yylsp[-1]));
+ }
+#line 33064 "gram.c"
+ break;
+
+ case 611: /* SeqOptElem: CYCLE */
+#line 4730 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("cycle", (Node *) makeBoolean(true), (yylsp[0]));
+ }
+#line 33072 "gram.c"
+ break;
+
+ case 612: /* SeqOptElem: NO CYCLE */
+#line 4734 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("cycle", (Node *) makeBoolean(false), (yylsp[-1]));
+ }
+#line 33080 "gram.c"
+ break;
+
+ case 613: /* SeqOptElem: INCREMENT opt_by NumericOnly */
+#line 4738 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("increment", (Node *) (yyvsp[0].node), (yylsp[-2]));
+ }
+#line 33088 "gram.c"
+ break;
+
+ case 614: /* SeqOptElem: MAXVALUE NumericOnly */
+#line 4742 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("maxvalue", (Node *) (yyvsp[0].node), (yylsp[-1]));
+ }
+#line 33096 "gram.c"
+ break;
+
+ case 615: /* SeqOptElem: MINVALUE NumericOnly */
+#line 4746 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("minvalue", (Node *) (yyvsp[0].node), (yylsp[-1]));
+ }
+#line 33104 "gram.c"
+ break;
+
+ case 616: /* SeqOptElem: NO MAXVALUE */
+#line 4750 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("maxvalue", NULL, (yylsp[-1]));
+ }
+#line 33112 "gram.c"
+ break;
+
+ case 617: /* SeqOptElem: NO MINVALUE */
+#line 4754 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("minvalue", NULL, (yylsp[-1]));
+ }
+#line 33120 "gram.c"
+ break;
+
+ case 618: /* SeqOptElem: OWNED BY any_name */
+#line 4758 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("owned_by", (Node *) (yyvsp[0].list), (yylsp[-2]));
+ }
+#line 33128 "gram.c"
+ break;
+
+ case 619: /* SeqOptElem: SEQUENCE NAME_P any_name */
+#line 4762 "gram.y"
+ {
+ /* not documented, only used by pg_dump */
+ (yyval.defelt) = makeDefElem("sequence_name", (Node *) (yyvsp[0].list), (yylsp[-2]));
+ }
+#line 33137 "gram.c"
+ break;
+
+ case 620: /* SeqOptElem: START opt_with NumericOnly */
+#line 4767 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("start", (Node *) (yyvsp[0].node), (yylsp[-2]));
+ }
+#line 33145 "gram.c"
+ break;
+
+ case 621: /* SeqOptElem: RESTART */
+#line 4771 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[0]));
+ }
+#line 33153 "gram.c"
+ break;
+
+ case 622: /* SeqOptElem: RESTART opt_with NumericOnly */
+#line 4775 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("restart", (Node *) (yyvsp[0].node), (yylsp[-2]));
+ }
+#line 33161 "gram.c"
+ break;
+
+ case 625: /* NumericOnly: FCONST */
+#line 4785 "gram.y"
+ { (yyval.node) = (Node *) makeFloat((yyvsp[0].str)); }
+#line 33167 "gram.c"
+ break;
+
+ case 626: /* NumericOnly: '+' FCONST */
+#line 4786 "gram.y"
+ { (yyval.node) = (Node *) makeFloat((yyvsp[0].str)); }
+#line 33173 "gram.c"
+ break;
+
+ case 627: /* NumericOnly: '-' FCONST */
+#line 4788 "gram.y"
+ {
+ Float *f = makeFloat((yyvsp[0].str));
+
+ doNegateFloat(f);
+ (yyval.node) = (Node *) f;
+ }
+#line 33184 "gram.c"
+ break;
+
+ case 628: /* NumericOnly: SignedIconst */
+#line 4794 "gram.y"
+ { (yyval.node) = (Node *) makeInteger((yyvsp[0].ival)); }
+#line 33190 "gram.c"
+ break;
+
+ case 629: /* NumericOnly_list: NumericOnly */
+#line 4797 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].node)); }
+#line 33196 "gram.c"
+ break;
+
+ case 630: /* NumericOnly_list: NumericOnly_list ',' NumericOnly */
+#line 4798 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
+#line 33202 "gram.c"
+ break;
+
+ case 631: /* CreatePLangStmt: CREATE opt_or_replace opt_trusted opt_procedural LANGUAGE name */
+#line 4811 "gram.y"
+ {
+ /*
+ * We now interpret parameterless CREATE LANGUAGE as
+ * CREATE EXTENSION. "OR REPLACE" is silently translated
+ * to "IF NOT EXISTS", which isn't quite the same, but
+ * seems more useful than throwing an error. We just
+ * ignore TRUSTED, as the previous code would have too.
+ */
+ CreateExtensionStmt *n = makeNode(CreateExtensionStmt);
+
+ n->if_not_exists = (yyvsp[-4].boolean);
+ n->extname = (yyvsp[0].str);
+ n->options = NIL;
+ (yyval.node) = (Node *) n;
+ }
+#line 33222 "gram.c"
+ break;
+
+ case 632: /* CreatePLangStmt: CREATE opt_or_replace opt_trusted opt_procedural LANGUAGE name HANDLER handler_name opt_inline_handler opt_validator */
+#line 4828 "gram.y"
+ {
+ 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 33238 "gram.c"
+ break;
+
+ case 633: /* opt_trusted: TRUSTED */
+#line 4842 "gram.y"
+ { (yyval.boolean) = true; }
+#line 33244 "gram.c"
+ break;
+
+ case 634: /* opt_trusted: %empty */
+#line 4843 "gram.y"
+ { (yyval.boolean) = false; }
+#line 33250 "gram.c"
+ break;
+
+ case 635: /* handler_name: name */
+#line 4851 "gram.y"
+ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
+#line 33256 "gram.c"
+ break;
+
+ case 636: /* handler_name: name attrs */
+#line 4852 "gram.y"
+ { (yyval.list) = lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)); }
+#line 33262 "gram.c"
+ break;
+
+ case 637: /* opt_inline_handler: INLINE_P handler_name */
+#line 4856 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 33268 "gram.c"
+ break;
+
+ case 638: /* opt_inline_handler: %empty */
+#line 4857 "gram.y"
+ { (yyval.list) = NIL; }
+#line 33274 "gram.c"
+ break;
+
+ case 639: /* validator_clause: VALIDATOR handler_name */
+#line 4861 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 33280 "gram.c"
+ break;
+
+ case 640: /* validator_clause: NO VALIDATOR */
+#line 4862 "gram.y"
+ { (yyval.list) = NIL; }
+#line 33286 "gram.c"
+ break;
+
+ case 641: /* opt_validator: validator_clause */
+#line 4866 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 33292 "gram.c"
+ break;
+
+ case 642: /* opt_validator: %empty */
+#line 4867 "gram.y"
+ { (yyval.list) = NIL; }
+#line 33298 "gram.c"
+ break;
+
+ case 645: /* CreateTableSpaceStmt: CREATE TABLESPACE name OptTableSpaceOwner LOCATION Sconst opt_reloptions */
+#line 4883 "gram.y"
+ {
+ 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 33312 "gram.c"
+ break;
+
+ case 646: /* OptTableSpaceOwner: OWNER RoleSpec */
+#line 4894 "gram.y"
+ { (yyval.rolespec) = (yyvsp[0].rolespec); }
+#line 33318 "gram.c"
+ break;
+
+ case 647: /* OptTableSpaceOwner: %empty */
+#line 4895 "gram.y"
+ { (yyval.rolespec) = NULL; }
+#line 33324 "gram.c"
+ break;
+
+ case 648: /* DropTableSpaceStmt: DROP TABLESPACE name */
+#line 4909 "gram.y"
+ {
+ DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt);
+
+ n->tablespacename = (yyvsp[0].str);
+ n->missing_ok = false;
+ (yyval.node) = (Node *) n;
+ }
+#line 33336 "gram.c"
+ break;
+
+ case 649: /* DropTableSpaceStmt: DROP TABLESPACE IF_P EXISTS name */
+#line 4917 "gram.y"
+ {
+ DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt);
+
+ n->tablespacename = (yyvsp[0].str);
+ n->missing_ok = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 33348 "gram.c"
+ break;
+
+ case 650: /* CreateExtensionStmt: CREATE EXTENSION name opt_with create_extension_opt_list */
+#line 4935 "gram.y"
+ {
+ CreateExtensionStmt *n = makeNode(CreateExtensionStmt);
+
+ n->extname = (yyvsp[-2].str);
+ n->if_not_exists = false;
+ n->options = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 33361 "gram.c"
+ break;
+
+ case 651: /* CreateExtensionStmt: CREATE EXTENSION IF_P NOT EXISTS name opt_with create_extension_opt_list */
+#line 4944 "gram.y"
+ {
+ CreateExtensionStmt *n = makeNode(CreateExtensionStmt);
+
+ n->extname = (yyvsp[-2].str);
+ n->if_not_exists = true;
+ n->options = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 33374 "gram.c"
+ break;
+
+ case 652: /* create_extension_opt_list: create_extension_opt_list create_extension_opt_item */
+#line 4956 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
+#line 33380 "gram.c"
+ break;
+
+ case 653: /* create_extension_opt_list: %empty */
+#line 4958 "gram.y"
+ { (yyval.list) = NIL; }
+#line 33386 "gram.c"
+ break;
+
+ case 654: /* create_extension_opt_item: SCHEMA name */
+#line 4963 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("schema", (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
+ }
+#line 33394 "gram.c"
+ break;
+
+ case 655: /* create_extension_opt_item: VERSION_P NonReservedWord_or_Sconst */
+#line 4967 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("new_version", (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
+ }
+#line 33402 "gram.c"
+ break;
+
+ case 656: /* create_extension_opt_item: FROM NonReservedWord_or_Sconst */
+#line 4971 "gram.y"
+ {
+ ereport(ERROR,
+ (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+ errmsg("CREATE EXTENSION ... FROM is no longer supported"),
+ parser_errposition((yylsp[-1]))));
+ }
+#line 33413 "gram.c"
+ break;
+
+ case 657: /* create_extension_opt_item: CASCADE */
+#line 4978 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("cascade", (Node *) makeBoolean(true), (yylsp[0]));
+ }
+#line 33421 "gram.c"
+ break;
+
+ case 658: /* AlterExtensionStmt: ALTER EXTENSION name UPDATE alter_extension_opt_list */
+#line 4990 "gram.y"
+ {
+ AlterExtensionStmt *n = makeNode(AlterExtensionStmt);
+
+ n->extname = (yyvsp[-2].str);
+ n->options = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 33433 "gram.c"
+ break;
+
+ case 659: /* alter_extension_opt_list: alter_extension_opt_list alter_extension_opt_item */
+#line 5001 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
+#line 33439 "gram.c"
+ break;
+
+ case 660: /* alter_extension_opt_list: %empty */
+#line 5003 "gram.y"
+ { (yyval.list) = NIL; }
+#line 33445 "gram.c"
+ break;
+
+ case 661: /* alter_extension_opt_item: TO NonReservedWord_or_Sconst */
+#line 5008 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("new_version", (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
+ }
+#line 33453 "gram.c"
+ break;
+
+ case 662: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop object_type_name name */
+#line 5021 "gram.y"
+ {
+ AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
+
+ n->extname = (yyvsp[-3].str);
+ n->action = (yyvsp[-2].ival);
+ n->objtype = (yyvsp[-1].objtype);
+ n->object = (Node *) makeString((yyvsp[0].str));
+ (yyval.node) = (Node *) n;
+ }
+#line 33467 "gram.c"
+ break;
+
+ case 663: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop object_type_any_name any_name */
+#line 5031 "gram.y"
+ {
+ AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
+
+ n->extname = (yyvsp[-3].str);
+ n->action = (yyvsp[-2].ival);
+ n->objtype = (yyvsp[-1].objtype);
+ n->object = (Node *) (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 33481 "gram.c"
+ break;
+
+ case 664: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop AGGREGATE aggregate_with_argtypes */
+#line 5041 "gram.y"
+ {
+ 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 33495 "gram.c"
+ break;
+
+ case 665: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop CAST '(' Typename AS Typename ')' */
+#line 5051 "gram.y"
+ {
+ 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 33509 "gram.c"
+ break;
+
+ case 666: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop DOMAIN_P Typename */
+#line 5061 "gram.y"
+ {
+ 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 33523 "gram.c"
+ break;
+
+ case 667: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop FUNCTION function_with_argtypes */
+#line 5071 "gram.y"
+ {
+ 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 33537 "gram.c"
+ break;
+
+ case 668: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop OPERATOR operator_with_argtypes */
+#line 5081 "gram.y"
+ {
+ 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 33551 "gram.c"
+ break;
+
+ case 669: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop OPERATOR CLASS any_name USING name */
+#line 5091 "gram.y"
+ {
+ 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 33565 "gram.c"
+ break;
+
+ case 670: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop OPERATOR FAMILY any_name USING name */
+#line 5101 "gram.y"
+ {
+ 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 33579 "gram.c"
+ break;
+
+ case 671: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop PROCEDURE function_with_argtypes */
+#line 5111 "gram.y"
+ {
+ 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 33593 "gram.c"
+ break;
+
+ case 672: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop ROUTINE function_with_argtypes */
+#line 5121 "gram.y"
+ {
+ 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 33607 "gram.c"
+ break;
+
+ case 673: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop TRANSFORM FOR Typename LANGUAGE name */
+#line 5131 "gram.y"
+ {
+ 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 33621 "gram.c"
+ break;
+
+ case 674: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop TYPE_P Typename */
+#line 5141 "gram.y"
+ {
+ 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 33635 "gram.c"
+ break;
+
+ case 675: /* CreateFdwStmt: CREATE FOREIGN DATA_P WRAPPER name opt_fdw_options create_generic_options */
+#line 5160 "gram.y"
+ {
+ 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 33648 "gram.c"
+ break;
+
+ case 676: /* fdw_option: HANDLER handler_name */
+#line 5171 "gram.y"
+ { (yyval.defelt) = makeDefElem("handler", (Node *) (yyvsp[0].list), (yylsp[-1])); }
+#line 33654 "gram.c"
+ break;
+
+ case 677: /* fdw_option: NO HANDLER */
+#line 5172 "gram.y"
+ { (yyval.defelt) = makeDefElem("handler", NULL, (yylsp[-1])); }
+#line 33660 "gram.c"
+ break;
+
+ case 678: /* fdw_option: VALIDATOR handler_name */
+#line 5173 "gram.y"
+ { (yyval.defelt) = makeDefElem("validator", (Node *) (yyvsp[0].list), (yylsp[-1])); }
+#line 33666 "gram.c"
+ break;
+
+ case 679: /* fdw_option: NO VALIDATOR */
+#line 5174 "gram.y"
+ { (yyval.defelt) = makeDefElem("validator", NULL, (yylsp[-1])); }
+#line 33672 "gram.c"
+ break;
+
+ case 680: /* fdw_options: fdw_option */
+#line 5178 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].defelt)); }
+#line 33678 "gram.c"
+ break;
+
+ case 681: /* fdw_options: fdw_options fdw_option */
+#line 5179 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
+#line 33684 "gram.c"
+ break;
+
+ case 682: /* opt_fdw_options: fdw_options */
+#line 5183 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 33690 "gram.c"
+ break;
+
+ case 683: /* opt_fdw_options: %empty */
+#line 5184 "gram.y"
+ { (yyval.list) = NIL; }
+#line 33696 "gram.c"
+ break;
+
+ case 684: /* AlterFdwStmt: ALTER FOREIGN DATA_P WRAPPER name opt_fdw_options alter_generic_options */
+#line 5195 "gram.y"
+ {
+ 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 33709 "gram.c"
+ break;
+
+ case 685: /* AlterFdwStmt: ALTER FOREIGN DATA_P WRAPPER name fdw_options */
+#line 5204 "gram.y"
+ {
+ AlterFdwStmt *n = makeNode(AlterFdwStmt);
+
+ n->fdwname = (yyvsp[-1].str);
+ n->func_options = (yyvsp[0].list);
+ n->options = NIL;
+ (yyval.node) = (Node *) n;
+ }
+#line 33722 "gram.c"
+ break;
+
+ case 686: /* create_generic_options: OPTIONS '(' generic_option_list ')' */
+#line 5216 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 33728 "gram.c"
+ break;
+
+ case 687: /* create_generic_options: %empty */
+#line 5217 "gram.y"
+ { (yyval.list) = NIL; }
+#line 33734 "gram.c"
+ break;
+
+ case 688: /* generic_option_list: generic_option_elem */
+#line 5222 "gram.y"
+ {
+ (yyval.list) = list_make1((yyvsp[0].defelt));
+ }
+#line 33742 "gram.c"
+ break;
+
+ case 689: /* generic_option_list: generic_option_list ',' generic_option_elem */
+#line 5226 "gram.y"
+ {
+ (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt));
+ }
+#line 33750 "gram.c"
+ break;
+
+ case 690: /* alter_generic_options: OPTIONS '(' alter_generic_option_list ')' */
+#line 5233 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 33756 "gram.c"
+ break;
+
+ case 691: /* alter_generic_option_list: alter_generic_option_elem */
+#line 5238 "gram.y"
+ {
+ (yyval.list) = list_make1((yyvsp[0].defelt));
+ }
+#line 33764 "gram.c"
+ break;
+
+ case 692: /* alter_generic_option_list: alter_generic_option_list ',' alter_generic_option_elem */
+#line 5242 "gram.y"
+ {
+ (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt));
+ }
+#line 33772 "gram.c"
+ break;
+
+ case 693: /* alter_generic_option_elem: generic_option_elem */
+#line 5249 "gram.y"
+ {
+ (yyval.defelt) = (yyvsp[0].defelt);
+ }
+#line 33780 "gram.c"
+ break;
+
+ case 694: /* alter_generic_option_elem: SET generic_option_elem */
+#line 5253 "gram.y"
+ {
+ (yyval.defelt) = (yyvsp[0].defelt);
+ (yyval.defelt)->defaction = DEFELEM_SET;
+ }
+#line 33789 "gram.c"
+ break;
+
+ case 695: /* alter_generic_option_elem: ADD_P generic_option_elem */
+#line 5258 "gram.y"
+ {
+ (yyval.defelt) = (yyvsp[0].defelt);
+ (yyval.defelt)->defaction = DEFELEM_ADD;
+ }
+#line 33798 "gram.c"
+ break;
+
+ case 696: /* alter_generic_option_elem: DROP generic_option_name */
+#line 5263 "gram.y"
+ {
+ (yyval.defelt) = makeDefElemExtended(NULL, (yyvsp[0].str), NULL, DEFELEM_DROP, (yylsp[0]));
+ }
+#line 33806 "gram.c"
+ break;
+
+ case 697: /* generic_option_elem: generic_option_name generic_option_arg */
+#line 5270 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1]));
+ }
+#line 33814 "gram.c"
+ break;
+
+ case 698: /* generic_option_name: ColLabel */
+#line 5276 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 33820 "gram.c"
+ break;
+
+ case 699: /* generic_option_arg: Sconst */
+#line 5281 "gram.y"
+ { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
+#line 33826 "gram.c"
+ break;
+
+ case 700: /* CreateForeignServerStmt: CREATE SERVER name opt_type opt_foreign_server_version FOREIGN DATA_P WRAPPER name create_generic_options */
+#line 5293 "gram.y"
+ {
+ 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 33842 "gram.c"
+ break;
+
+ case 701: /* CreateForeignServerStmt: CREATE SERVER IF_P NOT EXISTS name opt_type opt_foreign_server_version FOREIGN DATA_P WRAPPER name create_generic_options */
+#line 5306 "gram.y"
+ {
+ 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 33858 "gram.c"
+ break;
+
+ case 702: /* opt_type: TYPE_P Sconst */
+#line 5320 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 33864 "gram.c"
+ break;
+
+ case 703: /* opt_type: %empty */
+#line 5321 "gram.y"
+ { (yyval.str) = NULL; }
+#line 33870 "gram.c"
+ break;
+
+ case 704: /* foreign_server_version: VERSION_P Sconst */
+#line 5326 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 33876 "gram.c"
+ break;
+
+ case 705: /* foreign_server_version: VERSION_P NULL_P */
+#line 5327 "gram.y"
+ { (yyval.str) = NULL; }
+#line 33882 "gram.c"
+ break;
+
+ case 706: /* opt_foreign_server_version: foreign_server_version */
+#line 5331 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 33888 "gram.c"
+ break;
+
+ case 707: /* opt_foreign_server_version: %empty */
+#line 5332 "gram.y"
+ { (yyval.str) = NULL; }
+#line 33894 "gram.c"
+ break;
+
+ case 708: /* AlterForeignServerStmt: ALTER SERVER name foreign_server_version alter_generic_options */
+#line 5343 "gram.y"
+ {
+ 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 33908 "gram.c"
+ break;
+
+ case 709: /* AlterForeignServerStmt: ALTER SERVER name foreign_server_version */
+#line 5353 "gram.y"
+ {
+ AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt);
+
+ n->servername = (yyvsp[-1].str);
+ n->version = (yyvsp[0].str);
+ n->has_version = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 33921 "gram.c"
+ break;
+
+ case 710: /* AlterForeignServerStmt: ALTER SERVER name alter_generic_options */
+#line 5362 "gram.y"
+ {
+ AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt);
+
+ n->servername = (yyvsp[-1].str);
+ n->options = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 33933 "gram.c"
+ break;
+
+ case 711: /* CreateForeignTableStmt: CREATE FOREIGN TABLE qualified_name '(' OptTableElementList ')' OptInherit SERVER name create_generic_options */
+#line 5382 "gram.y"
+ {
+ 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 33956 "gram.c"
+ break;
+
+ case 712: /* CreateForeignTableStmt: CREATE FOREIGN TABLE IF_P NOT EXISTS qualified_name '(' OptTableElementList ')' OptInherit SERVER name create_generic_options */
+#line 5403 "gram.y"
+ {
+ 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 33979 "gram.c"
+ break;
+
+ case 713: /* CreateForeignTableStmt: CREATE FOREIGN TABLE qualified_name PARTITION OF qualified_name OptTypedTableElementList PartitionBoundSpec SERVER name create_generic_options */
+#line 5424 "gram.y"
+ {
+ 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 34003 "gram.c"
+ break;
+
+ case 714: /* CreateForeignTableStmt: CREATE FOREIGN TABLE IF_P NOT EXISTS qualified_name PARTITION OF qualified_name OptTypedTableElementList PartitionBoundSpec SERVER name create_generic_options */
+#line 5446 "gram.y"
+ {
+ 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 34027 "gram.c"
+ break;
+
+ case 715: /* ImportForeignSchemaStmt: IMPORT_P FOREIGN SCHEMA name import_qualification FROM SERVER name INTO name create_generic_options */
+#line 5479 "gram.y"
+ {
+ 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 34043 "gram.c"
+ break;
+
+ case 716: /* import_qualification_type: LIMIT TO */
+#line 5493 "gram.y"
+ { (yyval.ival) = FDW_IMPORT_SCHEMA_LIMIT_TO; }
+#line 34049 "gram.c"
+ break;
+
+ case 717: /* import_qualification_type: EXCEPT */
+#line 5494 "gram.y"
+ { (yyval.ival) = FDW_IMPORT_SCHEMA_EXCEPT; }
+#line 34055 "gram.c"
+ break;
+
+ case 718: /* import_qualification: import_qualification_type '(' relation_expr_list ')' */
+#line 5499 "gram.y"
+ {
+ ImportQual *n = (ImportQual *) palloc(sizeof(ImportQual));
+
+ n->type = (yyvsp[-3].ival);
+ n->table_names = (yyvsp[-1].list);
+ (yyval.importqual) = n;
+ }
+#line 34067 "gram.c"
+ break;
+
+ case 719: /* import_qualification: %empty */
+#line 5507 "gram.y"
+ {
+ ImportQual *n = (ImportQual *) palloc(sizeof(ImportQual));
+ n->type = FDW_IMPORT_SCHEMA_ALL;
+ n->table_names = NIL;
+ (yyval.importqual) = n;
+ }
+#line 34078 "gram.c"
+ break;
+
+ case 720: /* CreateUserMappingStmt: CREATE USER MAPPING FOR auth_ident SERVER name create_generic_options */
+#line 5523 "gram.y"
+ {
+ 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 34092 "gram.c"
+ break;
+
+ case 721: /* CreateUserMappingStmt: CREATE USER MAPPING IF_P NOT EXISTS FOR auth_ident SERVER name create_generic_options */
+#line 5533 "gram.y"
+ {
+ 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 34106 "gram.c"
+ break;
+
+ case 722: /* auth_ident: RoleSpec */
+#line 5545 "gram.y"
+ { (yyval.rolespec) = (yyvsp[0].rolespec); }
+#line 34112 "gram.c"
+ break;
+
+ case 723: /* auth_ident: USER */
+#line 5546 "gram.y"
+ { (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_USER, (yylsp[0])); }
+#line 34118 "gram.c"
+ break;
+
+ case 724: /* DropUserMappingStmt: DROP USER MAPPING FOR auth_ident SERVER name */
+#line 5559 "gram.y"
+ {
+ DropUserMappingStmt *n = makeNode(DropUserMappingStmt);
+
+ n->user = (yyvsp[-2].rolespec);
+ n->servername = (yyvsp[0].str);
+ n->missing_ok = false;
+ (yyval.node) = (Node *) n;
+ }
+#line 34131 "gram.c"
+ break;
+
+ case 725: /* DropUserMappingStmt: DROP USER MAPPING IF_P EXISTS FOR auth_ident SERVER name */
+#line 5568 "gram.y"
+ {
+ DropUserMappingStmt *n = makeNode(DropUserMappingStmt);
+
+ n->user = (yyvsp[-2].rolespec);
+ n->servername = (yyvsp[0].str);
+ n->missing_ok = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 34144 "gram.c"
+ break;
+
+ case 726: /* AlterUserMappingStmt: ALTER USER MAPPING FOR auth_ident SERVER name alter_generic_options */
+#line 5586 "gram.y"
+ {
+ AlterUserMappingStmt *n = makeNode(AlterUserMappingStmt);
+
+ n->user = (yyvsp[-3].rolespec);
+ n->servername = (yyvsp[-1].str);
+ n->options = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 34157 "gram.c"
+ break;
+
+ case 727: /* CreatePolicyStmt: CREATE POLICY name ON qualified_name RowSecurityDefaultPermissive RowSecurityDefaultForCmd RowSecurityDefaultToRole RowSecurityOptionalExpr RowSecurityOptionalWithCheck */
+#line 5613 "gram.y"
+ {
+ 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 34174 "gram.c"
+ break;
+
+ case 728: /* AlterPolicyStmt: ALTER POLICY name ON qualified_name RowSecurityOptionalToRole RowSecurityOptionalExpr RowSecurityOptionalWithCheck */
+#line 5630 "gram.y"
+ {
+ 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 34189 "gram.c"
+ break;
+
+ case 729: /* RowSecurityOptionalExpr: USING '(' a_expr ')' */
+#line 5643 "gram.y"
+ { (yyval.node) = (yyvsp[-1].node); }
+#line 34195 "gram.c"
+ break;
+
+ case 730: /* RowSecurityOptionalExpr: %empty */
+#line 5644 "gram.y"
+ { (yyval.node) = NULL; }
+#line 34201 "gram.c"
+ break;
+
+ case 731: /* RowSecurityOptionalWithCheck: WITH CHECK '(' a_expr ')' */
+#line 5648 "gram.y"
+ { (yyval.node) = (yyvsp[-1].node); }
+#line 34207 "gram.c"
+ break;
+
+ case 732: /* RowSecurityOptionalWithCheck: %empty */
+#line 5649 "gram.y"
+ { (yyval.node) = NULL; }
+#line 34213 "gram.c"
+ break;
+
+ case 733: /* RowSecurityDefaultToRole: TO role_list */
+#line 5653 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 34219 "gram.c"
+ break;
+
+ case 734: /* RowSecurityDefaultToRole: %empty */
+#line 5654 "gram.y"
+ { (yyval.list) = list_make1(makeRoleSpec(ROLESPEC_PUBLIC, -1)); }
+#line 34225 "gram.c"
+ break;
+
+ case 735: /* RowSecurityOptionalToRole: TO role_list */
+#line 5658 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 34231 "gram.c"
+ break;
+
+ case 736: /* RowSecurityOptionalToRole: %empty */
+#line 5659 "gram.y"
+ { (yyval.list) = NULL; }
+#line 34237 "gram.c"
+ break;
+
+ case 737: /* RowSecurityDefaultPermissive: AS IDENT */
+#line 5664 "gram.y"
+ {
+ 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 34255 "gram.c"
+ break;
+
+ case 738: /* RowSecurityDefaultPermissive: %empty */
+#line 5677 "gram.y"
+ { (yyval.boolean) = true; }
+#line 34261 "gram.c"
+ break;
+
+ case 739: /* RowSecurityDefaultForCmd: FOR row_security_cmd */
+#line 5681 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 34267 "gram.c"
+ break;
+
+ case 740: /* RowSecurityDefaultForCmd: %empty */
+#line 5682 "gram.y"
+ { (yyval.str) = "all"; }
+#line 34273 "gram.c"
+ break;
+
+ case 741: /* row_security_cmd: ALL */
+#line 5686 "gram.y"
+ { (yyval.str) = "all"; }
+#line 34279 "gram.c"
+ break;
+
+ case 742: /* row_security_cmd: SELECT */
+#line 5687 "gram.y"
+ { (yyval.str) = "select"; }
+#line 34285 "gram.c"
+ break;
+
+ case 743: /* row_security_cmd: INSERT */
+#line 5688 "gram.y"
+ { (yyval.str) = "insert"; }
+#line 34291 "gram.c"
+ break;
+
+ case 744: /* row_security_cmd: UPDATE */
+#line 5689 "gram.y"
+ { (yyval.str) = "update"; }
+#line 34297 "gram.c"
+ break;
+
+ case 745: /* row_security_cmd: DELETE_P */
+#line 5690 "gram.y"
+ { (yyval.str) = "delete"; }
+#line 34303 "gram.c"
+ break;
+
+ case 746: /* CreateAmStmt: CREATE ACCESS METHOD name TYPE_P am_type HANDLER handler_name */
+#line 5701 "gram.y"
+ {
+ CreateAmStmt *n = makeNode(CreateAmStmt);
+
+ n->amname = (yyvsp[-4].str);
+ n->handler_name = (yyvsp[0].list);
+ n->amtype = (yyvsp[-2].chr);
+ (yyval.node) = (Node *) n;
+ }
+#line 34316 "gram.c"
+ break;
+
+ case 747: /* am_type: INDEX */
+#line 5712 "gram.y"
+ { (yyval.chr) = AMTYPE_INDEX; }
+#line 34322 "gram.c"
+ break;
+
+ case 748: /* am_type: TABLE */
+#line 5713 "gram.y"
+ { (yyval.chr) = AMTYPE_TABLE; }
+#line 34328 "gram.c"
+ break;
+
+ case 749: /* CreateTrigStmt: CREATE opt_or_replace TRIGGER name TriggerActionTime TriggerEvents ON qualified_name TriggerReferencing TriggerForSpec TriggerWhen EXECUTE FUNCTION_or_PROCEDURE func_name '(' TriggerFuncArgs ')' */
+#line 5727 "gram.y"
+ {
+ CreateTrigStmt *n = makeNode(CreateTrigStmt);
+
+ n->replace = (yyvsp[-15].boolean);
+ n->isconstraint = false;
+ 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->deferrable = false;
+ n->initdeferred = false;
+ n->constrrel = NULL;
+ (yyval.node) = (Node *) n;
+ }
+#line 34353 "gram.c"
+ break;
+
+ case 750: /* CreateTrigStmt: CREATE opt_or_replace CONSTRAINT TRIGGER name AFTER TriggerEvents ON qualified_name OptConstrFromTable ConstraintAttributeSpec FOR EACH ROW TriggerWhen EXECUTE FUNCTION_or_PROCEDURE func_name '(' TriggerFuncArgs ')' */
+#line 5751 "gram.y"
+ {
+ CreateTrigStmt *n = makeNode(CreateTrigStmt);
+
+ n->replace = (yyvsp[-19].boolean);
+ if (n->replace) /* not supported, see CreateTrigger */
+ ereport(ERROR,
+ (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+ errmsg("CREATE OR REPLACE CONSTRAINT TRIGGER is not supported")));
+ n->isconstraint = true;
+ 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;
+ processCASbits((yyvsp[-10].ival), (yylsp[-10]), "TRIGGER",
+ &n->deferrable, &n->initdeferred, NULL,
+ NULL, yyscanner);
+ n->constrrel = (yyvsp[-11].range);
+ (yyval.node) = (Node *) n;
+ }
+#line 34383 "gram.c"
+ break;
+
+ case 751: /* TriggerActionTime: BEFORE */
+#line 5779 "gram.y"
+ { (yyval.ival) = TRIGGER_TYPE_BEFORE; }
+#line 34389 "gram.c"
+ break;
+
+ case 752: /* TriggerActionTime: AFTER */
+#line 5780 "gram.y"
+ { (yyval.ival) = TRIGGER_TYPE_AFTER; }
+#line 34395 "gram.c"
+ break;
+
+ case 753: /* TriggerActionTime: INSTEAD OF */
+#line 5781 "gram.y"
+ { (yyval.ival) = TRIGGER_TYPE_INSTEAD; }
+#line 34401 "gram.c"
+ break;
+
+ case 754: /* TriggerEvents: TriggerOneEvent */
+#line 5786 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 34407 "gram.c"
+ break;
+
+ case 755: /* TriggerEvents: TriggerEvents OR TriggerOneEvent */
+#line 5788 "gram.y"
+ {
+ 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 34430 "gram.c"
+ break;
+
+ case 756: /* TriggerOneEvent: INSERT */
+#line 5810 "gram.y"
+ { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_INSERT), NIL); }
+#line 34436 "gram.c"
+ break;
+
+ case 757: /* TriggerOneEvent: DELETE_P */
+#line 5812 "gram.y"
+ { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_DELETE), NIL); }
+#line 34442 "gram.c"
+ break;
+
+ case 758: /* TriggerOneEvent: UPDATE */
+#line 5814 "gram.y"
+ { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), NIL); }
+#line 34448 "gram.c"
+ break;
+
+ case 759: /* TriggerOneEvent: UPDATE OF columnList */
+#line 5816 "gram.y"
+ { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), (yyvsp[0].list)); }
+#line 34454 "gram.c"
+ break;
+
+ case 760: /* TriggerOneEvent: TRUNCATE */
+#line 5818 "gram.y"
+ { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_TRUNCATE), NIL); }
+#line 34460 "gram.c"
+ break;
+
+ case 761: /* TriggerReferencing: REFERENCING TriggerTransitions */
+#line 5822 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 34466 "gram.c"
+ break;
+
+ case 762: /* TriggerReferencing: %empty */
+#line 5823 "gram.y"
+ { (yyval.list) = NIL; }
+#line 34472 "gram.c"
+ break;
+
+ case 763: /* TriggerTransitions: TriggerTransition */
+#line 5827 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].node)); }
+#line 34478 "gram.c"
+ break;
+
+ case 764: /* TriggerTransitions: TriggerTransitions TriggerTransition */
+#line 5828 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); }
+#line 34484 "gram.c"
+ break;
+
+ case 765: /* TriggerTransition: TransitionOldOrNew TransitionRowOrTable opt_as TransitionRelName */
+#line 5833 "gram.y"
+ {
+ TriggerTransition *n = makeNode(TriggerTransition);
+
+ n->name = (yyvsp[0].str);
+ n->isNew = (yyvsp[-3].boolean);
+ n->isTable = (yyvsp[-2].boolean);
+ (yyval.node) = (Node *) n;
+ }
+#line 34497 "gram.c"
+ break;
+
+ case 766: /* TransitionOldOrNew: NEW */
+#line 5844 "gram.y"
+ { (yyval.boolean) = true; }
+#line 34503 "gram.c"
+ break;
+
+ case 767: /* TransitionOldOrNew: OLD */
+#line 5845 "gram.y"
+ { (yyval.boolean) = false; }
+#line 34509 "gram.c"
+ break;
+
+ case 768: /* TransitionRowOrTable: TABLE */
+#line 5849 "gram.y"
+ { (yyval.boolean) = true; }
+#line 34515 "gram.c"
+ break;
+
+ case 769: /* TransitionRowOrTable: ROW */
+#line 5858 "gram.y"
+ { (yyval.boolean) = false; }
+#line 34521 "gram.c"
+ break;
+
+ case 770: /* TransitionRelName: ColId */
+#line 5862 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 34527 "gram.c"
+ break;
+
+ case 771: /* TriggerForSpec: FOR TriggerForOptEach TriggerForType */
+#line 5867 "gram.y"
+ {
+ (yyval.boolean) = (yyvsp[0].boolean);
+ }
+#line 34535 "gram.c"
+ break;
+
+ case 772: /* TriggerForSpec: %empty */
+#line 5871 "gram.y"
+ {
+ /*
+ * If ROW/STATEMENT not specified, default to
+ * STATEMENT, per SQL
+ */
+ (yyval.boolean) = false;
+ }
+#line 34547 "gram.c"
+ break;
+
+ case 775: /* TriggerForType: ROW */
+#line 5886 "gram.y"
+ { (yyval.boolean) = true; }
+#line 34553 "gram.c"
+ break;
+
+ case 776: /* TriggerForType: STATEMENT */
+#line 5887 "gram.y"
+ { (yyval.boolean) = false; }
+#line 34559 "gram.c"
+ break;
+
+ case 777: /* TriggerWhen: WHEN '(' a_expr ')' */
+#line 5891 "gram.y"
+ { (yyval.node) = (yyvsp[-1].node); }
+#line 34565 "gram.c"
+ break;
+
+ case 778: /* TriggerWhen: %empty */
+#line 5892 "gram.y"
+ { (yyval.node) = NULL; }
+#line 34571 "gram.c"
+ break;
+
+ case 781: /* TriggerFuncArgs: TriggerFuncArg */
+#line 5901 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].node)); }
+#line 34577 "gram.c"
+ break;
+
+ case 782: /* TriggerFuncArgs: TriggerFuncArgs ',' TriggerFuncArg */
+#line 5902 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
+#line 34583 "gram.c"
+ break;
+
+ case 783: /* TriggerFuncArgs: %empty */
+#line 5903 "gram.y"
+ { (yyval.list) = NIL; }
+#line 34589 "gram.c"
+ break;
+
+ case 784: /* TriggerFuncArg: Iconst */
+#line 5908 "gram.y"
+ {
+ (yyval.node) = (Node *) makeString(psprintf("%d", (yyvsp[0].ival)));
+ }
+#line 34597 "gram.c"
+ break;
+
+ case 785: /* TriggerFuncArg: FCONST */
+#line 5911 "gram.y"
+ { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
+#line 34603 "gram.c"
+ break;
+
+ case 786: /* TriggerFuncArg: Sconst */
+#line 5912 "gram.y"
+ { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
+#line 34609 "gram.c"
+ break;
+
+ case 787: /* TriggerFuncArg: ColLabel */
+#line 5913 "gram.y"
+ { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
+#line 34615 "gram.c"
+ break;
+
+ case 788: /* OptConstrFromTable: FROM qualified_name */
+#line 5917 "gram.y"
+ { (yyval.range) = (yyvsp[0].range); }
+#line 34621 "gram.c"
+ break;
+
+ case 789: /* OptConstrFromTable: %empty */
+#line 5918 "gram.y"
+ { (yyval.range) = NULL; }
+#line 34627 "gram.c"
+ break;
+
+ case 790: /* ConstraintAttributeSpec: %empty */
+#line 5923 "gram.y"
+ { (yyval.ival) = 0; }
+#line 34633 "gram.c"
+ break;
+
+ case 791: /* ConstraintAttributeSpec: ConstraintAttributeSpec ConstraintAttributeElem */
+#line 5925 "gram.y"
+ {
+ /*
+ * 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 34661 "gram.c"
+ break;
+
+ case 792: /* ConstraintAttributeElem: NOT DEFERRABLE */
+#line 5951 "gram.y"
+ { (yyval.ival) = CAS_NOT_DEFERRABLE; }
+#line 34667 "gram.c"
+ break;
+
+ case 793: /* ConstraintAttributeElem: DEFERRABLE */
+#line 5952 "gram.y"
+ { (yyval.ival) = CAS_DEFERRABLE; }
+#line 34673 "gram.c"
+ break;
+
+ case 794: /* ConstraintAttributeElem: INITIALLY IMMEDIATE */
+#line 5953 "gram.y"
+ { (yyval.ival) = CAS_INITIALLY_IMMEDIATE; }
+#line 34679 "gram.c"
+ break;
+
+ case 795: /* ConstraintAttributeElem: INITIALLY DEFERRED */
+#line 5954 "gram.y"
+ { (yyval.ival) = CAS_INITIALLY_DEFERRED; }
+#line 34685 "gram.c"
+ break;
+
+ case 796: /* ConstraintAttributeElem: NOT VALID */
+#line 5955 "gram.y"
+ { (yyval.ival) = CAS_NOT_VALID; }
+#line 34691 "gram.c"
+ break;
+
+ case 797: /* ConstraintAttributeElem: NO INHERIT */
+#line 5956 "gram.y"
+ { (yyval.ival) = CAS_NO_INHERIT; }
+#line 34697 "gram.c"
+ break;
+
+ case 798: /* CreateEventTrigStmt: CREATE EVENT TRIGGER name ON ColLabel EXECUTE FUNCTION_or_PROCEDURE func_name '(' ')' */
+#line 5971 "gram.y"
+ {
+ 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 34711 "gram.c"
+ break;
+
+ case 799: /* CreateEventTrigStmt: CREATE EVENT TRIGGER name ON ColLabel WHEN event_trigger_when_list EXECUTE FUNCTION_or_PROCEDURE func_name '(' ')' */
+#line 5983 "gram.y"
+ {
+ 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 34725 "gram.c"
+ break;
+
+ case 800: /* event_trigger_when_list: event_trigger_when_item */
+#line 5996 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].defelt)); }
+#line 34731 "gram.c"
+ break;
+
+ case 801: /* event_trigger_when_list: event_trigger_when_list AND event_trigger_when_item */
+#line 5998 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); }
+#line 34737 "gram.c"
+ break;
+
+ case 802: /* event_trigger_when_item: ColId IN_P '(' event_trigger_value_list ')' */
+#line 6003 "gram.y"
+ { (yyval.defelt) = makeDefElem((yyvsp[-4].str), (Node *) (yyvsp[-1].list), (yylsp[-4])); }
+#line 34743 "gram.c"
+ break;
+
+ case 803: /* event_trigger_value_list: SCONST */
+#line 6008 "gram.y"
+ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
+#line 34749 "gram.c"
+ break;
+
+ case 804: /* event_trigger_value_list: event_trigger_value_list ',' SCONST */
+#line 6010 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); }
+#line 34755 "gram.c"
+ break;
+
+ case 805: /* AlterEventTrigStmt: ALTER EVENT TRIGGER name enable_trigger */
+#line 6015 "gram.y"
+ {
+ AlterEventTrigStmt *n = makeNode(AlterEventTrigStmt);
+
+ n->trigname = (yyvsp[-1].str);
+ n->tgenabled = (yyvsp[0].chr);
+ (yyval.node) = (Node *) n;
+ }
+#line 34767 "gram.c"
+ break;
+
+ case 806: /* enable_trigger: ENABLE_P */
+#line 6025 "gram.y"
+ { (yyval.chr) = TRIGGER_FIRES_ON_ORIGIN; }
+#line 34773 "gram.c"
+ break;
+
+ case 807: /* enable_trigger: ENABLE_P REPLICA */
+#line 6026 "gram.y"
+ { (yyval.chr) = TRIGGER_FIRES_ON_REPLICA; }
+#line 34779 "gram.c"
+ break;
+
+ case 808: /* enable_trigger: ENABLE_P ALWAYS */
+#line 6027 "gram.y"
+ { (yyval.chr) = TRIGGER_FIRES_ALWAYS; }
+#line 34785 "gram.c"
+ break;
+
+ case 809: /* enable_trigger: DISABLE_P */
+#line 6028 "gram.y"
+ { (yyval.chr) = TRIGGER_DISABLED; }
+#line 34791 "gram.c"
+ break;
+
+ case 810: /* CreateAssertionStmt: CREATE ASSERTION any_name CHECK '(' a_expr ')' ConstraintAttributeSpec */
+#line 6040 "gram.y"
+ {
+ ereport(ERROR,
+ (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+ errmsg("CREATE ASSERTION is not yet implemented")));
+
+ (yyval.node) = NULL;
+ }
+#line 34803 "gram.c"
+ break;
+
+ case 811: /* DefineStmt: CREATE opt_or_replace AGGREGATE func_name aggr_args definition */
+#line 6059 "gram.y"
+ {
+ DefineStmt *n = makeNode(DefineStmt);
+
+ n->kind = OBJECT_AGGREGATE;
+ n->oldstyle = false;
+ n->replace = (yyvsp[-4].boolean);
+ n->defnames = (yyvsp[-2].list);
+ n->args = (yyvsp[-1].list);
+ n->definition = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 34819 "gram.c"
+ break;
+
+ case 812: /* DefineStmt: CREATE opt_or_replace AGGREGATE func_name old_aggr_definition */
+#line 6071 "gram.y"
+ {
+ /* old-style (pre-8.2) syntax for CREATE AGGREGATE */
+ DefineStmt *n = makeNode(DefineStmt);
+
+ n->kind = OBJECT_AGGREGATE;
+ n->oldstyle = true;
+ n->replace = (yyvsp[-3].boolean);
+ n->defnames = (yyvsp[-1].list);
+ n->args = NIL;
+ n->definition = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 34836 "gram.c"
+ break;
+
+ case 813: /* DefineStmt: CREATE OPERATOR any_operator definition */
+#line 6084 "gram.y"
+ {
+ 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 34851 "gram.c"
+ break;
+
+ case 814: /* DefineStmt: CREATE TYPE_P any_name definition */
+#line 6095 "gram.y"
+ {
+ 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 34866 "gram.c"
+ break;
+
+ case 815: /* DefineStmt: CREATE TYPE_P any_name */
+#line 6106 "gram.y"
+ {
+ /* 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 34882 "gram.c"
+ break;
+
+ case 816: /* DefineStmt: CREATE TYPE_P any_name AS '(' OptTableFuncElementList ')' */
+#line 6118 "gram.y"
+ {
+ 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 34895 "gram.c"
+ break;
+
+ case 817: /* DefineStmt: CREATE TYPE_P any_name AS ENUM_P '(' opt_enum_val_list ')' */
+#line 6127 "gram.y"
+ {
+ CreateEnumStmt *n = makeNode(CreateEnumStmt);
+
+ n->typeName = (yyvsp[-5].list);
+ n->vals = (yyvsp[-1].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 34907 "gram.c"
+ break;
+
+ case 818: /* DefineStmt: CREATE TYPE_P any_name AS RANGE definition */
+#line 6135 "gram.y"
+ {
+ CreateRangeStmt *n = makeNode(CreateRangeStmt);
+
+ n->typeName = (yyvsp[-3].list);
+ n->params = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 34919 "gram.c"
+ break;
+
+ case 819: /* DefineStmt: CREATE TEXT_P SEARCH PARSER any_name definition */
+#line 6143 "gram.y"
+ {
+ 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 34933 "gram.c"
+ break;
+
+ case 820: /* DefineStmt: CREATE TEXT_P SEARCH DICTIONARY any_name definition */
+#line 6153 "gram.y"
+ {
+ 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 34947 "gram.c"
+ break;
+
+ case 821: /* DefineStmt: CREATE TEXT_P SEARCH TEMPLATE any_name definition */
+#line 6163 "gram.y"
+ {
+ 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 34961 "gram.c"
+ break;
+
+ case 822: /* DefineStmt: CREATE TEXT_P SEARCH CONFIGURATION any_name definition */
+#line 6173 "gram.y"
+ {
+ 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 34975 "gram.c"
+ break;
+
+ case 823: /* DefineStmt: CREATE COLLATION any_name definition */
+#line 6183 "gram.y"
+ {
+ 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 34989 "gram.c"
+ break;
+
+ case 824: /* DefineStmt: CREATE COLLATION IF_P NOT EXISTS any_name definition */
+#line 6193 "gram.y"
+ {
+ 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 35004 "gram.c"
+ break;
+
+ case 825: /* DefineStmt: CREATE COLLATION any_name FROM any_name */
+#line 6204 "gram.y"
+ {
+ 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 35018 "gram.c"
+ break;
+
+ case 826: /* DefineStmt: CREATE COLLATION IF_P NOT EXISTS any_name FROM any_name */
+#line 6214 "gram.y"
+ {
+ 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 35033 "gram.c"
+ break;
+
+ case 827: /* definition: '(' def_list ')' */
+#line 6226 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 35039 "gram.c"
+ break;
+
+ case 828: /* def_list: def_elem */
+#line 6229 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].defelt)); }
+#line 35045 "gram.c"
+ break;
+
+ case 829: /* def_list: def_list ',' def_elem */
+#line 6230 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); }
+#line 35051 "gram.c"
+ break;
+
+ case 830: /* def_elem: ColLabel '=' def_arg */
+#line 6234 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2]));
+ }
+#line 35059 "gram.c"
+ break;
+
+ case 831: /* def_elem: ColLabel */
+#line 6238 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem((yyvsp[0].str), NULL, (yylsp[0]));
+ }
+#line 35067 "gram.c"
+ break;
+
+ case 832: /* def_arg: func_type */
+#line 6244 "gram.y"
+ { (yyval.node) = (Node *) (yyvsp[0].typnam); }
+#line 35073 "gram.c"
+ break;
+
+ case 833: /* def_arg: reserved_keyword */
+#line 6245 "gram.y"
+ { (yyval.node) = (Node *) makeString(pstrdup((yyvsp[0].keyword))); }
+#line 35079 "gram.c"
+ break;
+
+ case 834: /* def_arg: qual_all_Op */
+#line 6246 "gram.y"
+ { (yyval.node) = (Node *) (yyvsp[0].list); }
+#line 35085 "gram.c"
+ break;
+
+ case 835: /* def_arg: NumericOnly */
+#line 6247 "gram.y"
+ { (yyval.node) = (Node *) (yyvsp[0].node); }
+#line 35091 "gram.c"
+ break;
+
+ case 836: /* def_arg: Sconst */
+#line 6248 "gram.y"
+ { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
+#line 35097 "gram.c"
+ break;
+
+ case 837: /* def_arg: NONE */
+#line 6249 "gram.y"
+ { (yyval.node) = (Node *) makeString(pstrdup((yyvsp[0].keyword))); }
+#line 35103 "gram.c"
+ break;
+
+ case 838: /* old_aggr_definition: '(' old_aggr_list ')' */
+#line 6252 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 35109 "gram.c"
+ break;
+
+ case 839: /* old_aggr_list: old_aggr_elem */
+#line 6255 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].defelt)); }
+#line 35115 "gram.c"
+ break;
+
+ case 840: /* old_aggr_list: old_aggr_list ',' old_aggr_elem */
+#line 6256 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); }
+#line 35121 "gram.c"
+ break;
+
+ case 841: /* old_aggr_elem: IDENT '=' def_arg */
+#line 6265 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2]));
+ }
+#line 35129 "gram.c"
+ break;
+
+ case 842: /* opt_enum_val_list: enum_val_list */
+#line 6271 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 35135 "gram.c"
+ break;
+
+ case 843: /* opt_enum_val_list: %empty */
+#line 6272 "gram.y"
+ { (yyval.list) = NIL; }
+#line 35141 "gram.c"
+ break;
+
+ case 844: /* enum_val_list: Sconst */
+#line 6276 "gram.y"
+ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
+#line 35147 "gram.c"
+ break;
+
+ case 845: /* enum_val_list: enum_val_list ',' Sconst */
+#line 6278 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); }
+#line 35153 "gram.c"
+ break;
+
+ case 846: /* AlterEnumStmt: ALTER TYPE_P any_name ADD_P VALUE_P opt_if_not_exists Sconst */
+#line 6289 "gram.y"
+ {
+ 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 35169 "gram.c"
+ break;
+
+ case 847: /* AlterEnumStmt: ALTER TYPE_P any_name ADD_P VALUE_P opt_if_not_exists Sconst BEFORE Sconst */
+#line 6301 "gram.y"
+ {
+ 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 35185 "gram.c"
+ break;
+
+ case 848: /* AlterEnumStmt: ALTER TYPE_P any_name ADD_P VALUE_P opt_if_not_exists Sconst AFTER Sconst */
+#line 6313 "gram.y"
+ {
+ 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 35201 "gram.c"
+ break;
+
+ case 849: /* AlterEnumStmt: ALTER TYPE_P any_name RENAME VALUE_P Sconst TO Sconst */
+#line 6325 "gram.y"
+ {
+ 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 35217 "gram.c"
+ break;
+
+ case 850: /* opt_if_not_exists: IF_P NOT EXISTS */
+#line 6338 "gram.y"
+ { (yyval.boolean) = true; }
+#line 35223 "gram.c"
+ break;
+
+ case 851: /* opt_if_not_exists: %empty */
+#line 6339 "gram.y"
+ { (yyval.boolean) = false; }
+#line 35229 "gram.c"
+ break;
+
+ case 852: /* CreateOpClassStmt: CREATE OPERATOR CLASS any_name opt_default FOR TYPE_P Typename USING name opt_opfamily AS opclass_item_list */
+#line 6357 "gram.y"
+ {
+ 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 35245 "gram.c"
+ break;
+
+ case 853: /* opclass_item_list: opclass_item */
+#line 6371 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].node)); }
+#line 35251 "gram.c"
+ break;
+
+ case 854: /* opclass_item_list: opclass_item_list ',' opclass_item */
+#line 6372 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
+#line 35257 "gram.c"
+ break;
+
+ case 855: /* opclass_item: OPERATOR Iconst any_operator opclass_purpose opt_recheck */
+#line 6377 "gram.y"
+ {
+ 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 35274 "gram.c"
+ break;
+
+ case 856: /* opclass_item: OPERATOR Iconst operator_with_argtypes opclass_purpose opt_recheck */
+#line 6391 "gram.y"
+ {
+ 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 35288 "gram.c"
+ break;
+
+ case 857: /* opclass_item: FUNCTION Iconst function_with_argtypes */
+#line 6401 "gram.y"
+ {
+ CreateOpClassItem *n = makeNode(CreateOpClassItem);
+
+ n->itemtype = OPCLASS_ITEM_FUNCTION;
+ n->name = (yyvsp[0].objwithargs);
+ n->number = (yyvsp[-1].ival);
+ (yyval.node) = (Node *) n;
+ }
+#line 35301 "gram.c"
+ break;
+
+ case 858: /* opclass_item: FUNCTION Iconst '(' type_list ')' function_with_argtypes */
+#line 6410 "gram.y"
+ {
+ 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 35315 "gram.c"
+ break;
+
+ case 859: /* opclass_item: STORAGE Typename */
+#line 6420 "gram.y"
+ {
+ CreateOpClassItem *n = makeNode(CreateOpClassItem);
+
+ n->itemtype = OPCLASS_ITEM_STORAGETYPE;
+ n->storedtype = (yyvsp[0].typnam);
+ (yyval.node) = (Node *) n;
+ }
+#line 35327 "gram.c"
+ break;
+
+ case 860: /* opt_default: DEFAULT */
+#line 6429 "gram.y"
+ { (yyval.boolean) = true; }
+#line 35333 "gram.c"
+ break;
+
+ case 861: /* opt_default: %empty */
+#line 6430 "gram.y"
+ { (yyval.boolean) = false; }
+#line 35339 "gram.c"
+ break;
+
+ case 862: /* opt_opfamily: FAMILY any_name */
+#line 6433 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 35345 "gram.c"
+ break;
+
+ case 863: /* opt_opfamily: %empty */
+#line 6434 "gram.y"
+ { (yyval.list) = NIL; }
+#line 35351 "gram.c"
+ break;
+
+ case 864: /* opclass_purpose: FOR SEARCH */
+#line 6437 "gram.y"
+ { (yyval.list) = NIL; }
+#line 35357 "gram.c"
+ break;
+
+ case 865: /* opclass_purpose: FOR ORDER BY any_name */
+#line 6438 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 35363 "gram.c"
+ break;
+
+ case 866: /* opclass_purpose: %empty */
+#line 6439 "gram.y"
+ { (yyval.list) = NIL; }
+#line 35369 "gram.c"
+ break;
+
+ case 867: /* opt_recheck: RECHECK */
+#line 6443 "gram.y"
+ {
+ /*
+ * 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 35387 "gram.c"
+ break;
+
+ case 868: /* opt_recheck: %empty */
+#line 6456 "gram.y"
+ { (yyval.boolean) = false; }
+#line 35393 "gram.c"
+ break;
+
+ case 869: /* CreateOpFamilyStmt: CREATE OPERATOR FAMILY any_name USING name */
+#line 6462 "gram.y"
+ {
+ CreateOpFamilyStmt *n = makeNode(CreateOpFamilyStmt);
+
+ n->opfamilyname = (yyvsp[-2].list);
+ n->amname = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 35405 "gram.c"
+ break;
+
+ case 870: /* AlterOpFamilyStmt: ALTER OPERATOR FAMILY any_name USING name ADD_P opclass_item_list */
+#line 6473 "gram.y"
+ {
+ 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 35419 "gram.c"
+ break;
+
+ case 871: /* AlterOpFamilyStmt: ALTER OPERATOR FAMILY any_name USING name DROP opclass_drop_list */
+#line 6483 "gram.y"
+ {
+ 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 35433 "gram.c"
+ break;
+
+ case 872: /* opclass_drop_list: opclass_drop */
+#line 6495 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].node)); }
+#line 35439 "gram.c"
+ break;
+
+ case 873: /* opclass_drop_list: opclass_drop_list ',' opclass_drop */
+#line 6496 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
+#line 35445 "gram.c"
+ break;
+
+ case 874: /* opclass_drop: OPERATOR Iconst '(' type_list ')' */
+#line 6501 "gram.y"
+ {
+ 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 35458 "gram.c"
+ break;
+
+ case 875: /* opclass_drop: FUNCTION Iconst '(' type_list ')' */
+#line 6510 "gram.y"
+ {
+ 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 35471 "gram.c"
+ break;
+
+ case 876: /* DropOpClassStmt: DROP OPERATOR CLASS any_name USING name opt_drop_behavior */
+#line 6523 "gram.y"
+ {
+ 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 35486 "gram.c"
+ break;
+
+ case 877: /* DropOpClassStmt: DROP OPERATOR CLASS IF_P EXISTS any_name USING name opt_drop_behavior */
+#line 6534 "gram.y"
+ {
+ 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 35501 "gram.c"
+ break;
+
+ case 878: /* DropOpFamilyStmt: DROP OPERATOR FAMILY any_name USING name opt_drop_behavior */
+#line 6548 "gram.y"
+ {
+ 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 35516 "gram.c"
+ break;
+
+ case 879: /* DropOpFamilyStmt: DROP OPERATOR FAMILY IF_P EXISTS any_name USING name opt_drop_behavior */
+#line 6559 "gram.y"
+ {
+ 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 35531 "gram.c"
+ break;
+
+ case 880: /* DropOwnedStmt: DROP OWNED BY role_list opt_drop_behavior */
+#line 6582 "gram.y"
+ {
+ DropOwnedStmt *n = makeNode(DropOwnedStmt);
+
+ n->roles = (yyvsp[-1].list);
+ n->behavior = (yyvsp[0].dbehavior);
+ (yyval.node) = (Node *) n;
+ }
+#line 35543 "gram.c"
+ break;
+
+ case 881: /* ReassignOwnedStmt: REASSIGN OWNED BY role_list TO RoleSpec */
+#line 6593 "gram.y"
+ {
+ ReassignOwnedStmt *n = makeNode(ReassignOwnedStmt);
+
+ n->roles = (yyvsp[-2].list);
+ n->newrole = (yyvsp[0].rolespec);
+ (yyval.node) = (Node *) n;
+ }
+#line 35555 "gram.c"
+ break;
+
+ case 882: /* DropStmt: DROP object_type_any_name IF_P EXISTS any_name_list opt_drop_behavior */
+#line 6612 "gram.y"
+ {
+ 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 35570 "gram.c"
+ break;
+
+ case 883: /* DropStmt: DROP object_type_any_name any_name_list opt_drop_behavior */
+#line 6623 "gram.y"
+ {
+ 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 35585 "gram.c"
+ break;
+
+ case 884: /* DropStmt: DROP drop_type_name IF_P EXISTS name_list opt_drop_behavior */
+#line 6634 "gram.y"
+ {
+ 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 35600 "gram.c"
+ break;
+
+ case 885: /* DropStmt: DROP drop_type_name name_list opt_drop_behavior */
+#line 6645 "gram.y"
+ {
+ 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 35615 "gram.c"
+ break;
+
+ case 886: /* DropStmt: DROP object_type_name_on_any_name name ON any_name opt_drop_behavior */
+#line 6656 "gram.y"
+ {
+ 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 35630 "gram.c"
+ break;
+
+ case 887: /* DropStmt: DROP object_type_name_on_any_name IF_P EXISTS name ON any_name opt_drop_behavior */
+#line 6667 "gram.y"
+ {
+ 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 35645 "gram.c"
+ break;
+
+ case 888: /* DropStmt: DROP TYPE_P type_name_list opt_drop_behavior */
+#line 6678 "gram.y"
+ {
+ 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 35660 "gram.c"
+ break;
+
+ case 889: /* DropStmt: DROP TYPE_P IF_P EXISTS type_name_list opt_drop_behavior */
+#line 6689 "gram.y"
+ {
+ 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 35675 "gram.c"
+ break;
+
+ case 890: /* DropStmt: DROP DOMAIN_P type_name_list opt_drop_behavior */
+#line 6700 "gram.y"
+ {
+ 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 35690 "gram.c"
+ break;
+
+ case 891: /* DropStmt: DROP DOMAIN_P IF_P EXISTS type_name_list opt_drop_behavior */
+#line 6711 "gram.y"
+ {
+ 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 35705 "gram.c"
+ break;
+
+ case 892: /* DropStmt: DROP INDEX CONCURRENTLY any_name_list opt_drop_behavior */
+#line 6722 "gram.y"
+ {
+ 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 35720 "gram.c"
+ break;
+
+ case 893: /* DropStmt: DROP INDEX CONCURRENTLY IF_P EXISTS any_name_list opt_drop_behavior */
+#line 6733 "gram.y"
+ {
+ 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 35735 "gram.c"
+ break;
+
+ case 894: /* object_type_any_name: TABLE */
+#line 6747 "gram.y"
+ { (yyval.objtype) = OBJECT_TABLE; }
+#line 35741 "gram.c"
+ break;
+
+ case 895: /* object_type_any_name: SEQUENCE */
+#line 6748 "gram.y"
+ { (yyval.objtype) = OBJECT_SEQUENCE; }
+#line 35747 "gram.c"
+ break;
+
+ case 896: /* object_type_any_name: VIEW */
+#line 6749 "gram.y"
+ { (yyval.objtype) = OBJECT_VIEW; }
+#line 35753 "gram.c"
+ break;
+
+ case 897: /* object_type_any_name: MATERIALIZED VIEW */
+#line 6750 "gram.y"
+ { (yyval.objtype) = OBJECT_MATVIEW; }
+#line 35759 "gram.c"
+ break;
+
+ case 898: /* object_type_any_name: INDEX */
+#line 6751 "gram.y"
+ { (yyval.objtype) = OBJECT_INDEX; }
+#line 35765 "gram.c"
+ break;
+
+ case 899: /* object_type_any_name: FOREIGN TABLE */
+#line 6752 "gram.y"
+ { (yyval.objtype) = OBJECT_FOREIGN_TABLE; }
+#line 35771 "gram.c"
+ break;
+
+ case 900: /* object_type_any_name: COLLATION */
+#line 6753 "gram.y"
+ { (yyval.objtype) = OBJECT_COLLATION; }
+#line 35777 "gram.c"
+ break;
+
+ case 901: /* object_type_any_name: CONVERSION_P */
+#line 6754 "gram.y"
+ { (yyval.objtype) = OBJECT_CONVERSION; }
+#line 35783 "gram.c"
+ break;
+
+ case 902: /* object_type_any_name: STATISTICS */
+#line 6755 "gram.y"
+ { (yyval.objtype) = OBJECT_STATISTIC_EXT; }
+#line 35789 "gram.c"
+ break;
+
+ case 903: /* object_type_any_name: TEXT_P SEARCH PARSER */
+#line 6756 "gram.y"
+ { (yyval.objtype) = OBJECT_TSPARSER; }
+#line 35795 "gram.c"
+ break;
+
+ case 904: /* object_type_any_name: TEXT_P SEARCH DICTIONARY */
+#line 6757 "gram.y"
+ { (yyval.objtype) = OBJECT_TSDICTIONARY; }
+#line 35801 "gram.c"
+ break;
+
+ case 905: /* object_type_any_name: TEXT_P SEARCH TEMPLATE */
+#line 6758 "gram.y"
+ { (yyval.objtype) = OBJECT_TSTEMPLATE; }
+#line 35807 "gram.c"
+ break;
+
+ case 906: /* object_type_any_name: TEXT_P SEARCH CONFIGURATION */
+#line 6759 "gram.y"
+ { (yyval.objtype) = OBJECT_TSCONFIGURATION; }
+#line 35813 "gram.c"
+ break;
+
+ case 907: /* object_type_name: drop_type_name */
+#line 6769 "gram.y"
+ { (yyval.objtype) = (yyvsp[0].objtype); }
+#line 35819 "gram.c"
+ break;
+
+ case 908: /* object_type_name: DATABASE */
+#line 6770 "gram.y"
+ { (yyval.objtype) = OBJECT_DATABASE; }
+#line 35825 "gram.c"
+ break;
+
+ case 909: /* object_type_name: ROLE */
+#line 6771 "gram.y"
+ { (yyval.objtype) = OBJECT_ROLE; }
+#line 35831 "gram.c"
+ break;
+
+ case 910: /* object_type_name: SUBSCRIPTION */
+#line 6772 "gram.y"
+ { (yyval.objtype) = OBJECT_SUBSCRIPTION; }
+#line 35837 "gram.c"
+ break;
+
+ case 911: /* object_type_name: TABLESPACE */
+#line 6773 "gram.y"
+ { (yyval.objtype) = OBJECT_TABLESPACE; }
+#line 35843 "gram.c"
+ break;
+
+ case 912: /* drop_type_name: ACCESS METHOD */
+#line 6777 "gram.y"
+ { (yyval.objtype) = OBJECT_ACCESS_METHOD; }
+#line 35849 "gram.c"
+ break;
+
+ case 913: /* drop_type_name: EVENT TRIGGER */
+#line 6778 "gram.y"
+ { (yyval.objtype) = OBJECT_EVENT_TRIGGER; }
+#line 35855 "gram.c"
+ break;
+
+ case 914: /* drop_type_name: EXTENSION */
+#line 6779 "gram.y"
+ { (yyval.objtype) = OBJECT_EXTENSION; }
+#line 35861 "gram.c"
+ break;
+
+ case 915: /* drop_type_name: FOREIGN DATA_P WRAPPER */
+#line 6780 "gram.y"
+ { (yyval.objtype) = OBJECT_FDW; }
+#line 35867 "gram.c"
+ break;
+
+ case 916: /* drop_type_name: opt_procedural LANGUAGE */
+#line 6781 "gram.y"
+ { (yyval.objtype) = OBJECT_LANGUAGE; }
+#line 35873 "gram.c"
+ break;
+
+ case 917: /* drop_type_name: PUBLICATION */
+#line 6782 "gram.y"
+ { (yyval.objtype) = OBJECT_PUBLICATION; }
+#line 35879 "gram.c"
+ break;
+
+ case 918: /* drop_type_name: SCHEMA */
+#line 6783 "gram.y"
+ { (yyval.objtype) = OBJECT_SCHEMA; }
+#line 35885 "gram.c"
+ break;
+
+ case 919: /* drop_type_name: SERVER */
+#line 6784 "gram.y"
+ { (yyval.objtype) = OBJECT_FOREIGN_SERVER; }
+#line 35891 "gram.c"
+ break;
+
+ case 920: /* object_type_name_on_any_name: POLICY */
+#line 6789 "gram.y"
+ { (yyval.objtype) = OBJECT_POLICY; }
+#line 35897 "gram.c"
+ break;
+
+ case 921: /* object_type_name_on_any_name: RULE */
+#line 6790 "gram.y"
+ { (yyval.objtype) = OBJECT_RULE; }
+#line 35903 "gram.c"
+ break;
+
+ case 922: /* object_type_name_on_any_name: TRIGGER */
+#line 6791 "gram.y"
+ { (yyval.objtype) = OBJECT_TRIGGER; }
+#line 35909 "gram.c"
+ break;
+
+ case 923: /* any_name_list: any_name */
+#line 6795 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].list)); }
+#line 35915 "gram.c"
+ break;
+
+ case 924: /* any_name_list: any_name_list ',' any_name */
+#line 6796 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); }
+#line 35921 "gram.c"
+ break;
+
+ case 925: /* any_name: ColId */
+#line 6799 "gram.y"
+ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
+#line 35927 "gram.c"
+ break;
+
+ case 926: /* any_name: ColId attrs */
+#line 6800 "gram.y"
+ { (yyval.list) = lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)); }
+#line 35933 "gram.c"
+ break;
+
+ case 927: /* attrs: '.' attr_name */
+#line 6804 "gram.y"
+ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
+#line 35939 "gram.c"
+ break;
+
+ case 928: /* attrs: attrs '.' attr_name */
+#line 6806 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); }
+#line 35945 "gram.c"
+ break;
+
+ case 929: /* type_name_list: Typename */
+#line 6810 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].typnam)); }
+#line 35951 "gram.c"
+ break;
+
+ case 930: /* type_name_list: type_name_list ',' Typename */
+#line 6811 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].typnam)); }
+#line 35957 "gram.c"
+ break;
+
+ case 931: /* TruncateStmt: TRUNCATE opt_table relation_expr_list opt_restart_seqs opt_drop_behavior */
+#line 6823 "gram.y"
+ {
+ 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 35970 "gram.c"
+ break;
+
+ case 932: /* opt_restart_seqs: CONTINUE_P IDENTITY_P */
+#line 6834 "gram.y"
+ { (yyval.boolean) = false; }
+#line 35976 "gram.c"
+ break;
+
+ case 933: /* opt_restart_seqs: RESTART IDENTITY_P */
+#line 6835 "gram.y"
+ { (yyval.boolean) = true; }
+#line 35982 "gram.c"
+ break;
+
+ case 934: /* opt_restart_seqs: %empty */
+#line 6836 "gram.y"
+ { (yyval.boolean) = false; }
+#line 35988 "gram.c"
+ break;
+
+ case 935: /* CommentStmt: COMMENT ON object_type_any_name any_name IS comment_text */
+#line 6847 "gram.y"
+ {
+ 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 36001 "gram.c"
+ break;
+
+ case 936: /* CommentStmt: COMMENT ON COLUMN any_name IS comment_text */
+#line 6856 "gram.y"
+ {
+ CommentStmt *n = makeNode(CommentStmt);
+
+ n->objtype = OBJECT_COLUMN;
+ n->object = (Node *) (yyvsp[-2].list);
+ n->comment = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 36014 "gram.c"
+ break;
+
+ case 937: /* CommentStmt: COMMENT ON object_type_name name IS comment_text */
+#line 6865 "gram.y"
+ {
+ 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 36027 "gram.c"
+ break;
+
+ case 938: /* CommentStmt: COMMENT ON TYPE_P Typename IS comment_text */
+#line 6874 "gram.y"
+ {
+ CommentStmt *n = makeNode(CommentStmt);
+
+ n->objtype = OBJECT_TYPE;
+ n->object = (Node *) (yyvsp[-2].typnam);
+ n->comment = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 36040 "gram.c"
+ break;
+
+ case 939: /* CommentStmt: COMMENT ON DOMAIN_P Typename IS comment_text */
+#line 6883 "gram.y"
+ {
+ CommentStmt *n = makeNode(CommentStmt);
+
+ n->objtype = OBJECT_DOMAIN;
+ n->object = (Node *) (yyvsp[-2].typnam);
+ n->comment = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 36053 "gram.c"
+ break;
+
+ case 940: /* CommentStmt: COMMENT ON AGGREGATE aggregate_with_argtypes IS comment_text */
+#line 6892 "gram.y"
+ {
+ CommentStmt *n = makeNode(CommentStmt);
+
+ n->objtype = OBJECT_AGGREGATE;
+ n->object = (Node *) (yyvsp[-2].objwithargs);
+ n->comment = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 36066 "gram.c"
+ break;
+
+ case 941: /* CommentStmt: COMMENT ON FUNCTION function_with_argtypes IS comment_text */
+#line 6901 "gram.y"
+ {
+ CommentStmt *n = makeNode(CommentStmt);
+
+ n->objtype = OBJECT_FUNCTION;
+ n->object = (Node *) (yyvsp[-2].objwithargs);
+ n->comment = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 36079 "gram.c"
+ break;
+
+ case 942: /* CommentStmt: COMMENT ON OPERATOR operator_with_argtypes IS comment_text */
+#line 6910 "gram.y"
+ {
+ CommentStmt *n = makeNode(CommentStmt);
+
+ n->objtype = OBJECT_OPERATOR;
+ n->object = (Node *) (yyvsp[-2].objwithargs);
+ n->comment = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 36092 "gram.c"
+ break;
+
+ case 943: /* CommentStmt: COMMENT ON CONSTRAINT name ON any_name IS comment_text */
+#line 6919 "gram.y"
+ {
+ 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 36105 "gram.c"
+ break;
+
+ case 944: /* CommentStmt: COMMENT ON CONSTRAINT name ON DOMAIN_P any_name IS comment_text */
+#line 6928 "gram.y"
+ {
+ 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 36123 "gram.c"
+ break;
+
+ case 945: /* CommentStmt: COMMENT ON object_type_name_on_any_name name ON any_name IS comment_text */
+#line 6942 "gram.y"
+ {
+ CommentStmt *n = makeNode(CommentStmt);
+
+ n->objtype = (yyvsp[-5].objtype);
+ n->object = (Node *) lappend((yyvsp[-2].list), makeString((yyvsp[-4].str)));
+ n->comment = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 36136 "gram.c"
+ break;
+
+ case 946: /* CommentStmt: COMMENT ON PROCEDURE function_with_argtypes IS comment_text */
+#line 6951 "gram.y"
+ {
+ CommentStmt *n = makeNode(CommentStmt);
+
+ n->objtype = OBJECT_PROCEDURE;
+ n->object = (Node *) (yyvsp[-2].objwithargs);
+ n->comment = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 36149 "gram.c"
+ break;
+
+ case 947: /* CommentStmt: COMMENT ON ROUTINE function_with_argtypes IS comment_text */
+#line 6960 "gram.y"
+ {
+ CommentStmt *n = makeNode(CommentStmt);
+
+ n->objtype = OBJECT_ROUTINE;
+ n->object = (Node *) (yyvsp[-2].objwithargs);
+ n->comment = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 36162 "gram.c"
+ break;
+
+ case 948: /* CommentStmt: COMMENT ON TRANSFORM FOR Typename LANGUAGE name IS comment_text */
+#line 6969 "gram.y"
+ {
+ 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 36175 "gram.c"
+ break;
+
+ case 949: /* CommentStmt: COMMENT ON OPERATOR CLASS any_name USING name IS comment_text */
+#line 6978 "gram.y"
+ {
+ 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 36188 "gram.c"
+ break;
+
+ case 950: /* CommentStmt: COMMENT ON OPERATOR FAMILY any_name USING name IS comment_text */
+#line 6987 "gram.y"
+ {
+ 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 36201 "gram.c"
+ break;
+
+ case 951: /* CommentStmt: COMMENT ON LARGE_P OBJECT_P NumericOnly IS comment_text */
+#line 6996 "gram.y"
+ {
+ CommentStmt *n = makeNode(CommentStmt);
+
+ n->objtype = OBJECT_LARGEOBJECT;
+ n->object = (Node *) (yyvsp[-2].node);
+ n->comment = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 36214 "gram.c"
+ break;
+
+ case 952: /* CommentStmt: COMMENT ON CAST '(' Typename AS Typename ')' IS comment_text */
+#line 7005 "gram.y"
+ {
+ 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 36227 "gram.c"
+ break;
+
+ case 953: /* comment_text: Sconst */
+#line 7016 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 36233 "gram.c"
+ break;
+
+ case 954: /* comment_text: NULL_P */
+#line 7017 "gram.y"
+ { (yyval.str) = NULL; }
+#line 36239 "gram.c"
+ break;
+
+ case 955: /* SecLabelStmt: SECURITY LABEL opt_provider ON object_type_any_name any_name IS security_label */
+#line 7033 "gram.y"
+ {
+ 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 36253 "gram.c"
+ break;
+
+ case 956: /* SecLabelStmt: SECURITY LABEL opt_provider ON COLUMN any_name IS security_label */
+#line 7044 "gram.y"
+ {
+ SecLabelStmt *n = makeNode(SecLabelStmt);
+
+ n->provider = (yyvsp[-5].str);
+ n->objtype = OBJECT_COLUMN;
+ n->object = (Node *) (yyvsp[-2].list);
+ n->label = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 36267 "gram.c"
+ break;
+
+ case 957: /* SecLabelStmt: SECURITY LABEL opt_provider ON object_type_name name IS security_label */
+#line 7055 "gram.y"
+ {
+ 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 36281 "gram.c"
+ break;
+
+ case 958: /* SecLabelStmt: SECURITY LABEL opt_provider ON TYPE_P Typename IS security_label */
+#line 7066 "gram.y"
+ {
+ 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 36295 "gram.c"
+ break;
+
+ case 959: /* SecLabelStmt: SECURITY LABEL opt_provider ON DOMAIN_P Typename IS security_label */
+#line 7077 "gram.y"
+ {
+ 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 36309 "gram.c"
+ break;
+
+ case 960: /* SecLabelStmt: SECURITY LABEL opt_provider ON AGGREGATE aggregate_with_argtypes IS security_label */
+#line 7088 "gram.y"
+ {
+ 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 36323 "gram.c"
+ break;
+
+ case 961: /* SecLabelStmt: SECURITY LABEL opt_provider ON FUNCTION function_with_argtypes IS security_label */
+#line 7099 "gram.y"
+ {
+ 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 36337 "gram.c"
+ break;
+
+ case 962: /* SecLabelStmt: SECURITY LABEL opt_provider ON LARGE_P OBJECT_P NumericOnly IS security_label */
+#line 7110 "gram.y"
+ {
+ SecLabelStmt *n = makeNode(SecLabelStmt);
+
+ n->provider = (yyvsp[-6].str);
+ n->objtype = OBJECT_LARGEOBJECT;
+ n->object = (Node *) (yyvsp[-2].node);
+ n->label = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 36351 "gram.c"
+ break;
+
+ case 963: /* SecLabelStmt: SECURITY LABEL opt_provider ON PROCEDURE function_with_argtypes IS security_label */
+#line 7121 "gram.y"
+ {
+ 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 36365 "gram.c"
+ break;
+
+ case 964: /* SecLabelStmt: SECURITY LABEL opt_provider ON ROUTINE function_with_argtypes IS security_label */
+#line 7132 "gram.y"
+ {
+ 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 36379 "gram.c"
+ break;
+
+ case 965: /* opt_provider: FOR NonReservedWord_or_Sconst */
+#line 7143 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 36385 "gram.c"
+ break;
+
+ case 966: /* opt_provider: %empty */
+#line 7144 "gram.y"
+ { (yyval.str) = NULL; }
+#line 36391 "gram.c"
+ break;
+
+ case 967: /* security_label: Sconst */
+#line 7147 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 36397 "gram.c"
+ break;
+
+ case 968: /* security_label: NULL_P */
+#line 7148 "gram.y"
+ { (yyval.str) = NULL; }
+#line 36403 "gram.c"
+ break;
+
+ case 969: /* FetchStmt: FETCH fetch_args */
+#line 7159 "gram.y"
+ {
+ FetchStmt *n = (FetchStmt *) (yyvsp[0].node);
+
+ n->ismove = false;
+ (yyval.node) = (Node *) n;
+ }
+#line 36414 "gram.c"
+ break;
+
+ case 970: /* FetchStmt: MOVE fetch_args */
+#line 7166 "gram.y"
+ {
+ FetchStmt *n = (FetchStmt *) (yyvsp[0].node);
+
+ n->ismove = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 36425 "gram.c"
+ break;
+
+ case 971: /* fetch_args: cursor_name */
+#line 7175 "gram.y"
+ {
+ FetchStmt *n = makeNode(FetchStmt);
+
+ n->portalname = (yyvsp[0].str);
+ n->direction = FETCH_FORWARD;
+ n->howMany = 1;
+ (yyval.node) = (Node *) n;
+ }
+#line 36438 "gram.c"
+ break;
+
+ case 972: /* fetch_args: from_in cursor_name */
+#line 7184 "gram.y"
+ {
+ FetchStmt *n = makeNode(FetchStmt);
+
+ n->portalname = (yyvsp[0].str);
+ n->direction = FETCH_FORWARD;
+ n->howMany = 1;
+ (yyval.node) = (Node *) n;
+ }
+#line 36451 "gram.c"
+ break;
+
+ case 973: /* fetch_args: NEXT opt_from_in cursor_name */
+#line 7193 "gram.y"
+ {
+ FetchStmt *n = makeNode(FetchStmt);
+
+ n->portalname = (yyvsp[0].str);
+ n->direction = FETCH_FORWARD;
+ n->howMany = 1;
+ (yyval.node) = (Node *) n;
+ }
+#line 36464 "gram.c"
+ break;
+
+ case 974: /* fetch_args: PRIOR opt_from_in cursor_name */
+#line 7202 "gram.y"
+ {
+ FetchStmt *n = makeNode(FetchStmt);
+
+ n->portalname = (yyvsp[0].str);
+ n->direction = FETCH_BACKWARD;
+ n->howMany = 1;
+ (yyval.node) = (Node *) n;
+ }
+#line 36477 "gram.c"
+ break;
+
+ case 975: /* fetch_args: FIRST_P opt_from_in cursor_name */
+#line 7211 "gram.y"
+ {
+ FetchStmt *n = makeNode(FetchStmt);
+
+ n->portalname = (yyvsp[0].str);
+ n->direction = FETCH_ABSOLUTE;
+ n->howMany = 1;
+ (yyval.node) = (Node *) n;
+ }
+#line 36490 "gram.c"
+ break;
+
+ case 976: /* fetch_args: LAST_P opt_from_in cursor_name */
+#line 7220 "gram.y"
+ {
+ FetchStmt *n = makeNode(FetchStmt);
+
+ n->portalname = (yyvsp[0].str);
+ n->direction = FETCH_ABSOLUTE;
+ n->howMany = -1;
+ (yyval.node) = (Node *) n;
+ }
+#line 36503 "gram.c"
+ break;
+
+ case 977: /* fetch_args: ABSOLUTE_P SignedIconst opt_from_in cursor_name */
+#line 7229 "gram.y"
+ {
+ FetchStmt *n = makeNode(FetchStmt);
+
+ n->portalname = (yyvsp[0].str);
+ n->direction = FETCH_ABSOLUTE;
+ n->howMany = (yyvsp[-2].ival);
+ (yyval.node) = (Node *) n;
+ }
+#line 36516 "gram.c"
+ break;
+
+ case 978: /* fetch_args: RELATIVE_P SignedIconst opt_from_in cursor_name */
+#line 7238 "gram.y"
+ {
+ FetchStmt *n = makeNode(FetchStmt);
+
+ n->portalname = (yyvsp[0].str);
+ n->direction = FETCH_RELATIVE;
+ n->howMany = (yyvsp[-2].ival);
+ (yyval.node) = (Node *) n;
+ }
+#line 36529 "gram.c"
+ break;
+
+ case 979: /* fetch_args: SignedIconst opt_from_in cursor_name */
+#line 7247 "gram.y"
+ {
+ FetchStmt *n = makeNode(FetchStmt);
+
+ n->portalname = (yyvsp[0].str);
+ n->direction = FETCH_FORWARD;
+ n->howMany = (yyvsp[-2].ival);
+ (yyval.node) = (Node *) n;
+ }
+#line 36542 "gram.c"
+ break;
+
+ case 980: /* fetch_args: ALL opt_from_in cursor_name */
+#line 7256 "gram.y"
+ {
+ FetchStmt *n = makeNode(FetchStmt);
+
+ n->portalname = (yyvsp[0].str);
+ n->direction = FETCH_FORWARD;
+ n->howMany = FETCH_ALL;
+ (yyval.node) = (Node *) n;
+ }
+#line 36555 "gram.c"
+ break;
+
+ case 981: /* fetch_args: FORWARD opt_from_in cursor_name */
+#line 7265 "gram.y"
+ {
+ FetchStmt *n = makeNode(FetchStmt);
+
+ n->portalname = (yyvsp[0].str);
+ n->direction = FETCH_FORWARD;
+ n->howMany = 1;
+ (yyval.node) = (Node *) n;
+ }
+#line 36568 "gram.c"
+ break;
+
+ case 982: /* fetch_args: FORWARD SignedIconst opt_from_in cursor_name */
+#line 7274 "gram.y"
+ {
+ FetchStmt *n = makeNode(FetchStmt);
+
+ n->portalname = (yyvsp[0].str);
+ n->direction = FETCH_FORWARD;
+ n->howMany = (yyvsp[-2].ival);
+ (yyval.node) = (Node *) n;
+ }
+#line 36581 "gram.c"
+ break;
+
+ case 983: /* fetch_args: FORWARD ALL opt_from_in cursor_name */
+#line 7283 "gram.y"
+ {
+ FetchStmt *n = makeNode(FetchStmt);
+
+ n->portalname = (yyvsp[0].str);
+ n->direction = FETCH_FORWARD;
+ n->howMany = FETCH_ALL;
+ (yyval.node) = (Node *) n;
+ }
+#line 36594 "gram.c"
+ break;
+
+ case 984: /* fetch_args: BACKWARD opt_from_in cursor_name */
+#line 7292 "gram.y"
+ {
+ FetchStmt *n = makeNode(FetchStmt);
+
+ n->portalname = (yyvsp[0].str);
+ n->direction = FETCH_BACKWARD;
+ n->howMany = 1;
+ (yyval.node) = (Node *) n;
+ }
+#line 36607 "gram.c"
+ break;
+
+ case 985: /* fetch_args: BACKWARD SignedIconst opt_from_in cursor_name */
+#line 7301 "gram.y"
+ {
+ FetchStmt *n = makeNode(FetchStmt);
+
+ n->portalname = (yyvsp[0].str);
+ n->direction = FETCH_BACKWARD;
+ n->howMany = (yyvsp[-2].ival);
+ (yyval.node) = (Node *) n;
+ }
+#line 36620 "gram.c"
+ break;
+
+ case 986: /* fetch_args: BACKWARD ALL opt_from_in cursor_name */
+#line 7310 "gram.y"
+ {
+ FetchStmt *n = makeNode(FetchStmt);
+
+ n->portalname = (yyvsp[0].str);
+ n->direction = FETCH_BACKWARD;
+ n->howMany = FETCH_ALL;
+ (yyval.node) = (Node *) n;
+ }
+#line 36633 "gram.c"
+ break;
+
+ case 991: /* GrantStmt: GRANT privileges ON privilege_target TO grantee_list opt_grant_grant_option opt_granted_by */
+#line 7337 "gram.y"
+ {
+ GrantStmt *n = makeNode(GrantStmt);
+
+ n->is_grant = true;
+ n->privileges = (yyvsp[-6].list);
+ n->targtype = ((yyvsp[-4].privtarget))->targtype;
+ n->objtype = ((yyvsp[-4].privtarget))->objtype;
+ n->objects = ((yyvsp[-4].privtarget))->objs;
+ n->grantees = (yyvsp[-2].list);
+ n->grant_option = (yyvsp[-1].boolean);
+ n->grantor = (yyvsp[0].rolespec);
+ (yyval.node) = (Node *) n;
+ }
+#line 36651 "gram.c"
+ break;
+
+ case 992: /* RevokeStmt: REVOKE privileges ON privilege_target FROM grantee_list opt_granted_by opt_drop_behavior */
+#line 7355 "gram.y"
+ {
+ GrantStmt *n = makeNode(GrantStmt);
+
+ n->is_grant = false;
+ n->grant_option = false;
+ n->privileges = (yyvsp[-6].list);
+ n->targtype = ((yyvsp[-4].privtarget))->targtype;
+ n->objtype = ((yyvsp[-4].privtarget))->objtype;
+ n->objects = ((yyvsp[-4].privtarget))->objs;
+ n->grantees = (yyvsp[-2].list);
+ n->grantor = (yyvsp[-1].rolespec);
+ n->behavior = (yyvsp[0].dbehavior);
+ (yyval.node) = (Node *) n;
+ }
+#line 36670 "gram.c"
+ break;
+
+ case 993: /* RevokeStmt: REVOKE GRANT OPTION FOR privileges ON privilege_target FROM grantee_list opt_granted_by opt_drop_behavior */
+#line 7371 "gram.y"
+ {
+ GrantStmt *n = makeNode(GrantStmt);
+
+ n->is_grant = false;
+ n->grant_option = true;
+ n->privileges = (yyvsp[-6].list);
+ n->targtype = ((yyvsp[-4].privtarget))->targtype;
+ n->objtype = ((yyvsp[-4].privtarget))->objtype;
+ n->objects = ((yyvsp[-4].privtarget))->objs;
+ n->grantees = (yyvsp[-2].list);
+ n->grantor = (yyvsp[-1].rolespec);
+ n->behavior = (yyvsp[0].dbehavior);
+ (yyval.node) = (Node *) n;
+ }
+#line 36689 "gram.c"
+ break;
+
+ case 994: /* privileges: privilege_list */
+#line 7398 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 36695 "gram.c"
+ break;
+
+ case 995: /* privileges: ALL */
+#line 7400 "gram.y"
+ { (yyval.list) = NIL; }
+#line 36701 "gram.c"
+ break;
+
+ case 996: /* privileges: ALL PRIVILEGES */
+#line 7402 "gram.y"
+ { (yyval.list) = NIL; }
+#line 36707 "gram.c"
+ break;
+
+ case 997: /* privileges: ALL '(' columnList ')' */
+#line 7404 "gram.y"
+ {
+ AccessPriv *n = makeNode(AccessPriv);
+
+ n->priv_name = NULL;
+ n->cols = (yyvsp[-1].list);
+ (yyval.list) = list_make1(n);
+ }
+#line 36719 "gram.c"
+ break;
+
+ case 998: /* privileges: ALL PRIVILEGES '(' columnList ')' */
+#line 7412 "gram.y"
+ {
+ AccessPriv *n = makeNode(AccessPriv);
+
+ n->priv_name = NULL;
+ n->cols = (yyvsp[-1].list);
+ (yyval.list) = list_make1(n);
+ }
+#line 36731 "gram.c"
+ break;
+
+ case 999: /* privilege_list: privilege */
+#line 7421 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].accesspriv)); }
+#line 36737 "gram.c"
+ break;
+
+ case 1000: /* privilege_list: privilege_list ',' privilege */
+#line 7422 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].accesspriv)); }
+#line 36743 "gram.c"
+ break;
+
+ case 1001: /* privilege: SELECT opt_column_list */
+#line 7426 "gram.y"
+ {
+ AccessPriv *n = makeNode(AccessPriv);
+
+ n->priv_name = pstrdup((yyvsp[-1].keyword));
+ n->cols = (yyvsp[0].list);
+ (yyval.accesspriv) = n;
+ }
+#line 36755 "gram.c"
+ break;
+
+ case 1002: /* privilege: REFERENCES opt_column_list */
+#line 7434 "gram.y"
+ {
+ AccessPriv *n = makeNode(AccessPriv);
+
+ n->priv_name = pstrdup((yyvsp[-1].keyword));
+ n->cols = (yyvsp[0].list);
+ (yyval.accesspriv) = n;
+ }
+#line 36767 "gram.c"
+ break;
+
+ case 1003: /* privilege: CREATE opt_column_list */
+#line 7442 "gram.y"
+ {
+ AccessPriv *n = makeNode(AccessPriv);
+
+ n->priv_name = pstrdup((yyvsp[-1].keyword));
+ n->cols = (yyvsp[0].list);
+ (yyval.accesspriv) = n;
+ }
+#line 36779 "gram.c"
+ break;
+
+ case 1004: /* privilege: ALTER SYSTEM_P */
+#line 7450 "gram.y"
+ {
+ AccessPriv *n = makeNode(AccessPriv);
+ n->priv_name = pstrdup("alter system");
+ n->cols = NIL;
+ (yyval.accesspriv) = n;
+ }
+#line 36790 "gram.c"
+ break;
+
+ case 1005: /* privilege: ColId opt_column_list */
+#line 7457 "gram.y"
+ {
+ AccessPriv *n = makeNode(AccessPriv);
+
+ n->priv_name = (yyvsp[-1].str);
+ n->cols = (yyvsp[0].list);
+ (yyval.accesspriv) = n;
+ }
+#line 36802 "gram.c"
+ break;
+
+ case 1006: /* parameter_name_list: parameter_name */
+#line 7468 "gram.y"
+ {
+ (yyval.list) = list_make1(makeString((yyvsp[0].str)));
+ }
+#line 36810 "gram.c"
+ break;
+
+ case 1007: /* parameter_name_list: parameter_name_list ',' parameter_name */
+#line 7472 "gram.y"
+ {
+ (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str)));
+ }
+#line 36818 "gram.c"
+ break;
+
+ case 1008: /* parameter_name: ColId */
+#line 7479 "gram.y"
+ {
+ (yyval.str) = (yyvsp[0].str);
+ }
+#line 36826 "gram.c"
+ break;
+
+ case 1009: /* parameter_name: parameter_name '.' ColId */
+#line 7483 "gram.y"
+ {
+ (yyval.str) = psprintf("%s.%s", (yyvsp[-2].str), (yyvsp[0].str));
+ }
+#line 36834 "gram.c"
+ break;
+
+ case 1010: /* privilege_target: qualified_name_list */
+#line 7494 "gram.y"
+ {
+ PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
+
+ n->targtype = ACL_TARGET_OBJECT;
+ n->objtype = OBJECT_TABLE;
+ n->objs = (yyvsp[0].list);
+ (yyval.privtarget) = n;
+ }
+#line 36847 "gram.c"
+ break;
+
+ case 1011: /* privilege_target: TABLE qualified_name_list */
+#line 7503 "gram.y"
+ {
+ PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
+
+ n->targtype = ACL_TARGET_OBJECT;
+ n->objtype = OBJECT_TABLE;
+ n->objs = (yyvsp[0].list);
+ (yyval.privtarget) = n;
+ }
+#line 36860 "gram.c"
+ break;
+
+ case 1012: /* privilege_target: SEQUENCE qualified_name_list */
+#line 7512 "gram.y"
+ {
+ PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
+
+ n->targtype = ACL_TARGET_OBJECT;
+ n->objtype = OBJECT_SEQUENCE;
+ n->objs = (yyvsp[0].list);
+ (yyval.privtarget) = n;
+ }
+#line 36873 "gram.c"
+ break;
+
+ case 1013: /* privilege_target: FOREIGN DATA_P WRAPPER name_list */
+#line 7521 "gram.y"
+ {
+ PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
+
+ n->targtype = ACL_TARGET_OBJECT;
+ n->objtype = OBJECT_FDW;
+ n->objs = (yyvsp[0].list);
+ (yyval.privtarget) = n;
+ }
+#line 36886 "gram.c"
+ break;
+
+ case 1014: /* privilege_target: FOREIGN SERVER name_list */
+#line 7530 "gram.y"
+ {
+ 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 36899 "gram.c"
+ break;
+
+ case 1015: /* privilege_target: FUNCTION function_with_argtypes_list */
+#line 7539 "gram.y"
+ {
+ PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
+
+ n->targtype = ACL_TARGET_OBJECT;
+ n->objtype = OBJECT_FUNCTION;
+ n->objs = (yyvsp[0].list);
+ (yyval.privtarget) = n;
+ }
+#line 36912 "gram.c"
+ break;
+
+ case 1016: /* privilege_target: PROCEDURE function_with_argtypes_list */
+#line 7548 "gram.y"
+ {
+ PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
+
+ n->targtype = ACL_TARGET_OBJECT;
+ n->objtype = OBJECT_PROCEDURE;
+ n->objs = (yyvsp[0].list);
+ (yyval.privtarget) = n;
+ }
+#line 36925 "gram.c"
+ break;
+
+ case 1017: /* privilege_target: ROUTINE function_with_argtypes_list */
+#line 7557 "gram.y"
+ {
+ PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
+
+ n->targtype = ACL_TARGET_OBJECT;
+ n->objtype = OBJECT_ROUTINE;
+ n->objs = (yyvsp[0].list);
+ (yyval.privtarget) = n;
+ }
+#line 36938 "gram.c"
+ break;
+
+ case 1018: /* privilege_target: DATABASE name_list */
+#line 7566 "gram.y"
+ {
+ PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
+
+ n->targtype = ACL_TARGET_OBJECT;
+ n->objtype = OBJECT_DATABASE;
+ n->objs = (yyvsp[0].list);
+ (yyval.privtarget) = n;
+ }
+#line 36951 "gram.c"
+ break;
+
+ case 1019: /* privilege_target: DOMAIN_P any_name_list */
+#line 7575 "gram.y"
+ {
+ PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
+
+ n->targtype = ACL_TARGET_OBJECT;
+ n->objtype = OBJECT_DOMAIN;
+ n->objs = (yyvsp[0].list);
+ (yyval.privtarget) = n;
+ }
+#line 36964 "gram.c"
+ break;
+
+ case 1020: /* privilege_target: LANGUAGE name_list */
+#line 7584 "gram.y"
+ {
+ PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
+
+ n->targtype = ACL_TARGET_OBJECT;
+ n->objtype = OBJECT_LANGUAGE;
+ n->objs = (yyvsp[0].list);
+ (yyval.privtarget) = n;
+ }
+#line 36977 "gram.c"
+ break;
+
+ case 1021: /* privilege_target: LARGE_P OBJECT_P NumericOnly_list */
+#line 7593 "gram.y"
+ {
+ PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
+
+ n->targtype = ACL_TARGET_OBJECT;
+ n->objtype = OBJECT_LARGEOBJECT;
+ n->objs = (yyvsp[0].list);
+ (yyval.privtarget) = n;
+ }
+#line 36990 "gram.c"
+ break;
+
+ case 1022: /* privilege_target: PARAMETER parameter_name_list */
+#line 7602 "gram.y"
+ {
+ PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
+ n->targtype = ACL_TARGET_OBJECT;
+ n->objtype = OBJECT_PARAMETER_ACL;
+ n->objs = (yyvsp[0].list);
+ (yyval.privtarget) = n;
+ }
+#line 37002 "gram.c"
+ break;
+
+ case 1023: /* privilege_target: SCHEMA name_list */
+#line 7610 "gram.y"
+ {
+ PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
+
+ n->targtype = ACL_TARGET_OBJECT;
+ n->objtype = OBJECT_SCHEMA;
+ n->objs = (yyvsp[0].list);
+ (yyval.privtarget) = n;
+ }
+#line 37015 "gram.c"
+ break;
+
+ case 1024: /* privilege_target: TABLESPACE name_list */
+#line 7619 "gram.y"
+ {
+ PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
+
+ n->targtype = ACL_TARGET_OBJECT;
+ n->objtype = OBJECT_TABLESPACE;
+ n->objs = (yyvsp[0].list);
+ (yyval.privtarget) = n;
+ }
+#line 37028 "gram.c"
+ break;
+
+ case 1025: /* privilege_target: TYPE_P any_name_list */
+#line 7628 "gram.y"
+ {
+ PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
+
+ n->targtype = ACL_TARGET_OBJECT;
+ n->objtype = OBJECT_TYPE;
+ n->objs = (yyvsp[0].list);
+ (yyval.privtarget) = n;
+ }
+#line 37041 "gram.c"
+ break;
+
+ case 1026: /* privilege_target: ALL TABLES IN_P SCHEMA name_list */
+#line 7637 "gram.y"
+ {
+ 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 37054 "gram.c"
+ break;
+
+ case 1027: /* privilege_target: ALL SEQUENCES IN_P SCHEMA name_list */
+#line 7646 "gram.y"
+ {
+ 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 37067 "gram.c"
+ break;
+
+ case 1028: /* privilege_target: ALL FUNCTIONS IN_P SCHEMA name_list */
+#line 7655 "gram.y"
+ {
+ 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 37080 "gram.c"
+ break;
+
+ case 1029: /* privilege_target: ALL PROCEDURES IN_P SCHEMA name_list */
+#line 7664 "gram.y"
+ {
+ 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 37093 "gram.c"
+ break;
+
+ case 1030: /* privilege_target: ALL ROUTINES IN_P SCHEMA name_list */
+#line 7673 "gram.y"
+ {
+ 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 37106 "gram.c"
+ break;
+
+ case 1031: /* grantee_list: grantee */
+#line 7685 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].rolespec)); }
+#line 37112 "gram.c"
+ break;
+
+ case 1032: /* grantee_list: grantee_list ',' grantee */
+#line 7686 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].rolespec)); }
+#line 37118 "gram.c"
+ break;
+
+ case 1033: /* grantee: RoleSpec */
+#line 7690 "gram.y"
+ { (yyval.rolespec) = (yyvsp[0].rolespec); }
+#line 37124 "gram.c"
+ break;
+
+ case 1034: /* grantee: GROUP_P RoleSpec */
+#line 7691 "gram.y"
+ { (yyval.rolespec) = (yyvsp[0].rolespec); }
+#line 37130 "gram.c"
+ break;
+
+ case 1035: /* opt_grant_grant_option: WITH GRANT OPTION */
+#line 7696 "gram.y"
+ { (yyval.boolean) = true; }
+#line 37136 "gram.c"
+ break;
+
+ case 1036: /* opt_grant_grant_option: %empty */
+#line 7697 "gram.y"
+ { (yyval.boolean) = false; }
+#line 37142 "gram.c"
+ break;
+
+ case 1037: /* GrantRoleStmt: GRANT privilege_list TO role_list opt_grant_admin_option opt_granted_by */
+#line 7708 "gram.y"
+ {
+ 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 37157 "gram.c"
+ break;
+
+ case 1038: /* RevokeRoleStmt: REVOKE privilege_list FROM role_list opt_granted_by opt_drop_behavior */
+#line 7722 "gram.y"
+ {
+ 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 37172 "gram.c"
+ break;
+
+ case 1039: /* RevokeRoleStmt: REVOKE ADMIN OPTION FOR privilege_list FROM role_list opt_granted_by opt_drop_behavior */
+#line 7733 "gram.y"
+ {
+ 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 37187 "gram.c"
+ break;
+
+ case 1040: /* opt_grant_admin_option: WITH ADMIN OPTION */
+#line 7745 "gram.y"
+ { (yyval.boolean) = true; }
+#line 37193 "gram.c"
+ break;
+
+ case 1041: /* opt_grant_admin_option: %empty */
+#line 7746 "gram.y"
+ { (yyval.boolean) = false; }
+#line 37199 "gram.c"
+ break;
+
+ case 1042: /* opt_granted_by: GRANTED BY RoleSpec */
+#line 7749 "gram.y"
+ { (yyval.rolespec) = (yyvsp[0].rolespec); }
+#line 37205 "gram.c"
+ break;
+
+ case 1043: /* opt_granted_by: %empty */
+#line 7750 "gram.y"
+ { (yyval.rolespec) = NULL; }
+#line 37211 "gram.c"
+ break;
+
+ case 1044: /* AlterDefaultPrivilegesStmt: ALTER DEFAULT PRIVILEGES DefACLOptionList DefACLAction */
+#line 7761 "gram.y"
+ {
+ AlterDefaultPrivilegesStmt *n = makeNode(AlterDefaultPrivilegesStmt);
+
+ n->options = (yyvsp[-1].list);
+ n->action = (GrantStmt *) (yyvsp[0].node);
+ (yyval.node) = (Node *) n;
+ }
+#line 37223 "gram.c"
+ break;
+
+ case 1045: /* DefACLOptionList: DefACLOptionList DefACLOption */
+#line 7771 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
+#line 37229 "gram.c"
+ break;
+
+ case 1046: /* DefACLOptionList: %empty */
+#line 7772 "gram.y"
+ { (yyval.list) = NIL; }
+#line 37235 "gram.c"
+ break;
+
+ case 1047: /* DefACLOption: IN_P SCHEMA name_list */
+#line 7777 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("schemas", (Node *) (yyvsp[0].list), (yylsp[-2]));
+ }
+#line 37243 "gram.c"
+ break;
+
+ case 1048: /* DefACLOption: FOR ROLE role_list */
+#line 7781 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("roles", (Node *) (yyvsp[0].list), (yylsp[-2]));
+ }
+#line 37251 "gram.c"
+ break;
+
+ case 1049: /* DefACLOption: FOR USER role_list */
+#line 7785 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("roles", (Node *) (yyvsp[0].list), (yylsp[-2]));
+ }
+#line 37259 "gram.c"
+ break;
+
+ case 1050: /* DefACLAction: GRANT privileges ON defacl_privilege_target TO grantee_list opt_grant_grant_option */
+#line 7797 "gram.y"
+ {
+ 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 37276 "gram.c"
+ break;
+
+ case 1051: /* DefACLAction: REVOKE privileges ON defacl_privilege_target FROM grantee_list opt_drop_behavior */
+#line 7811 "gram.y"
+ {
+ 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 37294 "gram.c"
+ break;
+
+ case 1052: /* DefACLAction: REVOKE GRANT OPTION FOR privileges ON defacl_privilege_target FROM grantee_list opt_drop_behavior */
+#line 7826 "gram.y"
+ {
+ 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 37312 "gram.c"
+ break;
+
+ case 1053: /* defacl_privilege_target: TABLES */
+#line 7842 "gram.y"
+ { (yyval.ival) = OBJECT_TABLE; }
+#line 37318 "gram.c"
+ break;
+
+ case 1054: /* defacl_privilege_target: FUNCTIONS */
+#line 7843 "gram.y"
+ { (yyval.ival) = OBJECT_FUNCTION; }
+#line 37324 "gram.c"
+ break;
+
+ case 1055: /* defacl_privilege_target: ROUTINES */
+#line 7844 "gram.y"
+ { (yyval.ival) = OBJECT_FUNCTION; }
+#line 37330 "gram.c"
+ break;
+
+ case 1056: /* defacl_privilege_target: SEQUENCES */
+#line 7845 "gram.y"
+ { (yyval.ival) = OBJECT_SEQUENCE; }
+#line 37336 "gram.c"
+ break;
+
+ case 1057: /* defacl_privilege_target: TYPES_P */
+#line 7846 "gram.y"
+ { (yyval.ival) = OBJECT_TYPE; }
+#line 37342 "gram.c"
+ break;
+
+ case 1058: /* defacl_privilege_target: SCHEMAS */
+#line 7847 "gram.y"
+ { (yyval.ival) = OBJECT_SCHEMA; }
+#line 37348 "gram.c"
+ break;
+
+ case 1059: /* IndexStmt: CREATE opt_unique INDEX opt_concurrently opt_index_name ON relation_expr access_method_clause '(' index_params ')' opt_include opt_unique_null_treatment opt_reloptions OptTableSpace where_clause */
+#line 7862 "gram.y"
+ {
+ IndexStmt *n = makeNode(IndexStmt);
+
+ n->unique = (yyvsp[-14].boolean);
+ n->concurrent = (yyvsp[-12].boolean);
+ n->idxname = (yyvsp[-11].str);
+ n->relation = (yyvsp[-9].range);
+ n->accessMethod = (yyvsp[-8].str);
+ n->indexParams = (yyvsp[-6].list);
+ n->indexIncludingParams = (yyvsp[-4].list);
+ n->nulls_not_distinct = !(yyvsp[-3].boolean);
+ 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->oldCreateSubid = InvalidSubTransactionId;
+ n->oldFirstRelfilenodeSubid = InvalidSubTransactionId;
+ n->primary = false;
+ n->isconstraint = false;
+ n->deferrable = false;
+ n->initdeferred = false;
+ n->transformed = false;
+ n->if_not_exists = false;
+ n->reset_default_tblspc = false;
+ (yyval.node) = (Node *) n;
+ }
+#line 37382 "gram.c"
+ break;
+
+ case 1060: /* IndexStmt: CREATE opt_unique INDEX opt_concurrently IF_P NOT EXISTS name ON relation_expr access_method_clause '(' index_params ')' opt_include opt_unique_null_treatment opt_reloptions OptTableSpace where_clause */
+#line 7894 "gram.y"
+ {
+ IndexStmt *n = makeNode(IndexStmt);
+
+ n->unique = (yyvsp[-17].boolean);
+ n->concurrent = (yyvsp[-15].boolean);
+ n->idxname = (yyvsp[-11].str);
+ n->relation = (yyvsp[-9].range);
+ n->accessMethod = (yyvsp[-8].str);
+ n->indexParams = (yyvsp[-6].list);
+ n->indexIncludingParams = (yyvsp[-4].list);
+ n->nulls_not_distinct = !(yyvsp[-3].boolean);
+ 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->oldCreateSubid = InvalidSubTransactionId;
+ n->oldFirstRelfilenodeSubid = InvalidSubTransactionId;
+ n->primary = false;
+ n->isconstraint = false;
+ n->deferrable = false;
+ n->initdeferred = false;
+ n->transformed = false;
+ n->if_not_exists = true;
+ n->reset_default_tblspc = false;
+ (yyval.node) = (Node *) n;
+ }
+#line 37416 "gram.c"
+ break;
+
+ case 1061: /* opt_unique: UNIQUE */
+#line 7926 "gram.y"
+ { (yyval.boolean) = true; }
+#line 37422 "gram.c"
+ break;
+
+ case 1062: /* opt_unique: %empty */
+#line 7927 "gram.y"
+ { (yyval.boolean) = false; }
+#line 37428 "gram.c"
+ break;
+
+ case 1063: /* opt_concurrently: CONCURRENTLY */
+#line 7931 "gram.y"
+ { (yyval.boolean) = true; }
+#line 37434 "gram.c"
+ break;
+
+ case 1064: /* opt_concurrently: %empty */
+#line 7932 "gram.y"
+ { (yyval.boolean) = false; }
+#line 37440 "gram.c"
+ break;
+
+ case 1065: /* opt_index_name: name */
+#line 7936 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 37446 "gram.c"
+ break;
+
+ case 1066: /* opt_index_name: %empty */
+#line 7937 "gram.y"
+ { (yyval.str) = NULL; }
+#line 37452 "gram.c"
+ break;
+
+ case 1067: /* access_method_clause: USING name */
+#line 7941 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 37458 "gram.c"
+ break;
+
+ case 1068: /* access_method_clause: %empty */
+#line 7942 "gram.y"
+ { (yyval.str) = DEFAULT_INDEX_TYPE; }
+#line 37464 "gram.c"
+ break;
+
+ case 1069: /* index_params: index_elem */
+#line 7945 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].ielem)); }
+#line 37470 "gram.c"
+ break;
+
+ case 1070: /* index_params: index_params ',' index_elem */
+#line 7946 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].ielem)); }
+#line 37476 "gram.c"
+ break;
+
+ case 1071: /* index_elem_options: opt_collate opt_class opt_asc_desc opt_nulls_order */
+#line 7952 "gram.y"
+ {
+ (yyval.ielem) = makeNode(IndexElem);
+ (yyval.ielem)->name = NULL;
+ (yyval.ielem)->expr = NULL;
+ (yyval.ielem)->indexcolname = NULL;
+ (yyval.ielem)->collation = (yyvsp[-3].list);
+ (yyval.ielem)->opclass = (yyvsp[-2].list);
+ (yyval.ielem)->opclassopts = NIL;
+ (yyval.ielem)->ordering = (yyvsp[-1].ival);
+ (yyval.ielem)->nulls_ordering = (yyvsp[0].ival);
+ }
+#line 37492 "gram.c"
+ break;
+
+ case 1072: /* index_elem_options: opt_collate any_name reloptions opt_asc_desc opt_nulls_order */
+#line 7964 "gram.y"
+ {
+ (yyval.ielem) = makeNode(IndexElem);
+ (yyval.ielem)->name = NULL;
+ (yyval.ielem)->expr = NULL;
+ (yyval.ielem)->indexcolname = NULL;
+ (yyval.ielem)->collation = (yyvsp[-4].list);
+ (yyval.ielem)->opclass = (yyvsp[-3].list);
+ (yyval.ielem)->opclassopts = (yyvsp[-2].list);
+ (yyval.ielem)->ordering = (yyvsp[-1].ival);
+ (yyval.ielem)->nulls_ordering = (yyvsp[0].ival);
+ }
+#line 37508 "gram.c"
+ break;
+
+ case 1073: /* index_elem: ColId index_elem_options */
+#line 7983 "gram.y"
+ {
+ (yyval.ielem) = (yyvsp[0].ielem);
+ (yyval.ielem)->name = (yyvsp[-1].str);
+ }
+#line 37517 "gram.c"
+ break;
+
+ case 1074: /* index_elem: func_expr_windowless index_elem_options */
+#line 7988 "gram.y"
+ {
+ (yyval.ielem) = (yyvsp[0].ielem);
+ (yyval.ielem)->expr = (yyvsp[-1].node);
+ }
+#line 37526 "gram.c"
+ break;
+
+ case 1075: /* index_elem: '(' a_expr ')' index_elem_options */
+#line 7993 "gram.y"
+ {
+ (yyval.ielem) = (yyvsp[0].ielem);
+ (yyval.ielem)->expr = (yyvsp[-2].node);
+ }
+#line 37535 "gram.c"
+ break;
+
+ case 1076: /* opt_include: INCLUDE '(' index_including_params ')' */
+#line 7999 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 37541 "gram.c"
+ break;
+
+ case 1077: /* opt_include: %empty */
+#line 8000 "gram.y"
+ { (yyval.list) = NIL; }
+#line 37547 "gram.c"
+ break;
+
+ case 1078: /* index_including_params: index_elem */
+#line 8003 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].ielem)); }
+#line 37553 "gram.c"
+ break;
+
+ case 1079: /* index_including_params: index_including_params ',' index_elem */
+#line 8004 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].ielem)); }
+#line 37559 "gram.c"
+ break;
+
+ case 1080: /* opt_collate: COLLATE any_name */
+#line 8007 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 37565 "gram.c"
+ break;
+
+ case 1081: /* opt_collate: %empty */
+#line 8008 "gram.y"
+ { (yyval.list) = NIL; }
+#line 37571 "gram.c"
+ break;
+
+ case 1082: /* opt_class: any_name */
+#line 8011 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 37577 "gram.c"
+ break;
+
+ case 1083: /* opt_class: %empty */
+#line 8012 "gram.y"
+ { (yyval.list) = NIL; }
+#line 37583 "gram.c"
+ break;
+
+ case 1084: /* opt_asc_desc: ASC */
+#line 8015 "gram.y"
+ { (yyval.ival) = SORTBY_ASC; }
+#line 37589 "gram.c"
+ break;
+
+ case 1085: /* opt_asc_desc: DESC */
+#line 8016 "gram.y"
+ { (yyval.ival) = SORTBY_DESC; }
+#line 37595 "gram.c"
+ break;
+
+ case 1086: /* opt_asc_desc: %empty */
+#line 8017 "gram.y"
+ { (yyval.ival) = SORTBY_DEFAULT; }
+#line 37601 "gram.c"
+ break;
+
+ case 1087: /* opt_nulls_order: NULLS_LA FIRST_P */
+#line 8020 "gram.y"
+ { (yyval.ival) = SORTBY_NULLS_FIRST; }
+#line 37607 "gram.c"
+ break;
+
+ case 1088: /* opt_nulls_order: NULLS_LA LAST_P */
+#line 8021 "gram.y"
+ { (yyval.ival) = SORTBY_NULLS_LAST; }
+#line 37613 "gram.c"
+ break;
+
+ case 1089: /* opt_nulls_order: %empty */
+#line 8022 "gram.y"
+ { (yyval.ival) = SORTBY_NULLS_DEFAULT; }
+#line 37619 "gram.c"
+ break;
+
+ case 1090: /* CreateFunctionStmt: CREATE opt_or_replace FUNCTION func_name func_args_with_defaults RETURNS func_return opt_createfunc_opt_list opt_routine_body */
+#line 8040 "gram.y"
+ {
+ CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
+
+ n->is_procedure = false;
+ n->replace = (yyvsp[-7].boolean);
+ n->funcname = (yyvsp[-5].list);
+ n->parameters = (yyvsp[-4].list);
+ n->returnType = (yyvsp[-2].typnam);
+ n->options = (yyvsp[-1].list);
+ n->sql_body = (yyvsp[0].node);
+ (yyval.node) = (Node *) n;
+ }
+#line 37636 "gram.c"
+ break;
+
+ case 1091: /* CreateFunctionStmt: CREATE opt_or_replace FUNCTION func_name func_args_with_defaults RETURNS TABLE '(' table_func_column_list ')' opt_createfunc_opt_list opt_routine_body */
+#line 8054 "gram.y"
+ {
+ CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
+
+ n->is_procedure = false;
+ n->replace = (yyvsp[-10].boolean);
+ n->funcname = (yyvsp[-8].list);
+ n->parameters = mergeTableFuncParameters((yyvsp[-7].list), (yyvsp[-3].list));
+ n->returnType = TableFuncTypeName((yyvsp[-3].list));
+ n->returnType->location = (yylsp[-5]);
+ n->options = (yyvsp[-1].list);
+ n->sql_body = (yyvsp[0].node);
+ (yyval.node) = (Node *) n;
+ }
+#line 37654 "gram.c"
+ break;
+
+ case 1092: /* CreateFunctionStmt: CREATE opt_or_replace FUNCTION func_name func_args_with_defaults opt_createfunc_opt_list opt_routine_body */
+#line 8069 "gram.y"
+ {
+ CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
+
+ n->is_procedure = false;
+ n->replace = (yyvsp[-5].boolean);
+ n->funcname = (yyvsp[-3].list);
+ n->parameters = (yyvsp[-2].list);
+ n->returnType = NULL;
+ n->options = (yyvsp[-1].list);
+ n->sql_body = (yyvsp[0].node);
+ (yyval.node) = (Node *) n;
+ }
+#line 37671 "gram.c"
+ break;
+
+ case 1093: /* CreateFunctionStmt: CREATE opt_or_replace PROCEDURE func_name func_args_with_defaults opt_createfunc_opt_list opt_routine_body */
+#line 8083 "gram.y"
+ {
+ CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
+
+ n->is_procedure = true;
+ n->replace = (yyvsp[-5].boolean);
+ n->funcname = (yyvsp[-3].list);
+ n->parameters = (yyvsp[-2].list);
+ n->returnType = NULL;
+ n->options = (yyvsp[-1].list);
+ n->sql_body = (yyvsp[0].node);
+ (yyval.node) = (Node *) n;
+ }
+#line 37688 "gram.c"
+ break;
+
+ case 1094: /* opt_or_replace: OR REPLACE */
+#line 8098 "gram.y"
+ { (yyval.boolean) = true; }
+#line 37694 "gram.c"
+ break;
+
+ case 1095: /* opt_or_replace: %empty */
+#line 8099 "gram.y"
+ { (yyval.boolean) = false; }
+#line 37700 "gram.c"
+ break;
+
+ case 1096: /* func_args: '(' func_args_list ')' */
+#line 8102 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 37706 "gram.c"
+ break;
+
+ case 1097: /* func_args: '(' ')' */
+#line 8103 "gram.y"
+ { (yyval.list) = NIL; }
+#line 37712 "gram.c"
+ break;
+
+ case 1098: /* func_args_list: func_arg */
+#line 8107 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].fun_param)); }
+#line 37718 "gram.c"
+ break;
+
+ case 1099: /* func_args_list: func_args_list ',' func_arg */
+#line 8108 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); }
+#line 37724 "gram.c"
+ break;
+
+ case 1100: /* function_with_argtypes_list: function_with_argtypes */
+#line 8112 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].objwithargs)); }
+#line 37730 "gram.c"
+ break;
+
+ case 1101: /* function_with_argtypes_list: function_with_argtypes_list ',' function_with_argtypes */
+#line 8114 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].objwithargs)); }
+#line 37736 "gram.c"
+ break;
+
+ case 1102: /* function_with_argtypes: func_name func_args */
+#line 8119 "gram.y"
+ {
+ ObjectWithArgs *n = makeNode(ObjectWithArgs);
+
+ n->objname = (yyvsp[-1].list);
+ n->objargs = extractArgTypes((yyvsp[0].list));
+ n->objfuncargs = (yyvsp[0].list);
+ (yyval.objwithargs) = n;
+ }
+#line 37749 "gram.c"
+ break;
+
+ case 1103: /* function_with_argtypes: type_func_name_keyword */
+#line 8133 "gram.y"
+ {
+ ObjectWithArgs *n = makeNode(ObjectWithArgs);
+
+ n->objname = list_make1(makeString(pstrdup((yyvsp[0].keyword))));
+ n->args_unspecified = true;
+ (yyval.objwithargs) = n;
+ }
+#line 37761 "gram.c"
+ break;
+
+ case 1104: /* function_with_argtypes: ColId */
+#line 8141 "gram.y"
+ {
+ ObjectWithArgs *n = makeNode(ObjectWithArgs);
+
+ n->objname = list_make1(makeString((yyvsp[0].str)));
+ n->args_unspecified = true;
+ (yyval.objwithargs) = n;
+ }
+#line 37773 "gram.c"
+ break;
+
+ case 1105: /* function_with_argtypes: ColId indirection */
+#line 8149 "gram.y"
+ {
+ 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 37786 "gram.c"
+ break;
+
+ case 1106: /* func_args_with_defaults: '(' func_args_with_defaults_list ')' */
+#line 8164 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 37792 "gram.c"
+ break;
+
+ case 1107: /* func_args_with_defaults: '(' ')' */
+#line 8165 "gram.y"
+ { (yyval.list) = NIL; }
+#line 37798 "gram.c"
+ break;
+
+ case 1108: /* func_args_with_defaults_list: func_arg_with_default */
+#line 8169 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].fun_param)); }
+#line 37804 "gram.c"
+ break;
+
+ case 1109: /* func_args_with_defaults_list: func_args_with_defaults_list ',' func_arg_with_default */
+#line 8171 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); }
+#line 37810 "gram.c"
+ break;
+
+ case 1110: /* func_arg: arg_class param_name func_type */
+#line 8186 "gram.y"
+ {
+ 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 37824 "gram.c"
+ break;
+
+ case 1111: /* func_arg: param_name arg_class func_type */
+#line 8196 "gram.y"
+ {
+ 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 37838 "gram.c"
+ break;
+
+ case 1112: /* func_arg: param_name func_type */
+#line 8206 "gram.y"
+ {
+ FunctionParameter *n = makeNode(FunctionParameter);
+
+ n->name = (yyvsp[-1].str);
+ n->argType = (yyvsp[0].typnam);
+ n->mode = FUNC_PARAM_DEFAULT;
+ n->defexpr = NULL;
+ (yyval.fun_param) = n;
+ }
+#line 37852 "gram.c"
+ break;
+
+ case 1113: /* func_arg: arg_class func_type */
+#line 8216 "gram.y"
+ {
+ 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 37866 "gram.c"
+ break;
+
+ case 1114: /* func_arg: func_type */
+#line 8226 "gram.y"
+ {
+ FunctionParameter *n = makeNode(FunctionParameter);
+
+ n->name = NULL;
+ n->argType = (yyvsp[0].typnam);
+ n->mode = FUNC_PARAM_DEFAULT;
+ n->defexpr = NULL;
+ (yyval.fun_param) = n;
+ }
+#line 37880 "gram.c"
+ break;
+
+ case 1115: /* arg_class: IN_P */
+#line 8238 "gram.y"
+ { (yyval.fun_param_mode) = FUNC_PARAM_IN; }
+#line 37886 "gram.c"
+ break;
+
+ case 1116: /* arg_class: OUT_P */
+#line 8239 "gram.y"
+ { (yyval.fun_param_mode) = FUNC_PARAM_OUT; }
+#line 37892 "gram.c"
+ break;
+
+ case 1117: /* arg_class: INOUT */
+#line 8240 "gram.y"
+ { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; }
+#line 37898 "gram.c"
+ break;
+
+ case 1118: /* arg_class: IN_P OUT_P */
+#line 8241 "gram.y"
+ { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; }
+#line 37904 "gram.c"
+ break;
+
+ case 1119: /* arg_class: VARIADIC */
+#line 8242 "gram.y"
+ { (yyval.fun_param_mode) = FUNC_PARAM_VARIADIC; }
+#line 37910 "gram.c"
+ break;
+
+ case 1121: /* func_return: func_type */
+#line 8253 "gram.y"
+ {
+ /* 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 37922 "gram.c"
+ break;
+
+ case 1122: /* func_type: Typename */
+#line 8267 "gram.y"
+ { (yyval.typnam) = (yyvsp[0].typnam); }
+#line 37928 "gram.c"
+ break;
+
+ case 1123: /* func_type: type_function_name attrs '%' TYPE_P */
+#line 8269 "gram.y"
+ {
+ (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[-3].str)), (yyvsp[-2].list)));
+ (yyval.typnam)->pct_type = true;
+ (yyval.typnam)->location = (yylsp[-3]);
+ }
+#line 37938 "gram.c"
+ break;
+
+ case 1124: /* func_type: SETOF type_function_name attrs '%' TYPE_P */
+#line 8275 "gram.y"
+ {
+ (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 37949 "gram.c"
+ break;
+
+ case 1125: /* func_arg_with_default: func_arg */
+#line 8285 "gram.y"
+ {
+ (yyval.fun_param) = (yyvsp[0].fun_param);
+ }
+#line 37957 "gram.c"
+ break;
+
+ case 1126: /* func_arg_with_default: func_arg DEFAULT a_expr */
+#line 8289 "gram.y"
+ {
+ (yyval.fun_param) = (yyvsp[-2].fun_param);
+ (yyval.fun_param)->defexpr = (yyvsp[0].node);
+ }
+#line 37966 "gram.c"
+ break;
+
+ case 1127: /* func_arg_with_default: func_arg '=' a_expr */
+#line 8294 "gram.y"
+ {
+ (yyval.fun_param) = (yyvsp[-2].fun_param);
+ (yyval.fun_param)->defexpr = (yyvsp[0].node);
+ }
+#line 37975 "gram.c"
+ break;
+
+ case 1128: /* aggr_arg: func_arg */
+#line 8302 "gram.y"
+ {
+ if (!((yyvsp[0].fun_param)->mode == FUNC_PARAM_DEFAULT ||
+ (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 37990 "gram.c"
+ break;
+
+ case 1129: /* aggr_args: '(' '*' ')' */
+#line 8344 "gram.y"
+ {
+ (yyval.list) = list_make2(NIL, makeInteger(-1));
+ }
+#line 37998 "gram.c"
+ break;
+
+ case 1130: /* aggr_args: '(' aggr_args_list ')' */
+#line 8348 "gram.y"
+ {
+ (yyval.list) = list_make2((yyvsp[-1].list), makeInteger(-1));
+ }
+#line 38006 "gram.c"
+ break;
+
+ case 1131: /* aggr_args: '(' ORDER BY aggr_args_list ')' */
+#line 8352 "gram.y"
+ {
+ (yyval.list) = list_make2((yyvsp[-1].list), makeInteger(0));
+ }
+#line 38014 "gram.c"
+ break;
+
+ case 1132: /* aggr_args: '(' aggr_args_list ORDER BY aggr_args_list ')' */
+#line 8356 "gram.y"
+ {
+ /* this is the only case requiring consistency checking */
+ (yyval.list) = makeOrderedSetArgs((yyvsp[-4].list), (yyvsp[-1].list), yyscanner);
+ }
+#line 38023 "gram.c"
+ break;
+
+ case 1133: /* aggr_args_list: aggr_arg */
+#line 8363 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].fun_param)); }
+#line 38029 "gram.c"
+ break;
+
+ case 1134: /* aggr_args_list: aggr_args_list ',' aggr_arg */
+#line 8364 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); }
+#line 38035 "gram.c"
+ break;
+
+ case 1135: /* aggregate_with_argtypes: func_name aggr_args */
+#line 8369 "gram.y"
+ {
+ ObjectWithArgs *n = makeNode(ObjectWithArgs);
+
+ n->objname = (yyvsp[-1].list);
+ n->objargs = extractAggrArgTypes((yyvsp[0].list));
+ n->objfuncargs = (List *) linitial((yyvsp[0].list));
+ (yyval.objwithargs) = n;
+ }
+#line 38048 "gram.c"
+ break;
+
+ case 1136: /* aggregate_with_argtypes_list: aggregate_with_argtypes */
+#line 8380 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].objwithargs)); }
+#line 38054 "gram.c"
+ break;
+
+ case 1137: /* aggregate_with_argtypes_list: aggregate_with_argtypes_list ',' aggregate_with_argtypes */
+#line 8382 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].objwithargs)); }
+#line 38060 "gram.c"
+ break;
+
+ case 1139: /* opt_createfunc_opt_list: %empty */
+#line 8387 "gram.y"
+ { (yyval.list) = NIL; }
+#line 38066 "gram.c"
+ break;
+
+ case 1140: /* createfunc_opt_list: createfunc_opt_item */
+#line 8392 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].defelt)); }
+#line 38072 "gram.c"
+ break;
+
+ case 1141: /* createfunc_opt_list: createfunc_opt_list createfunc_opt_item */
+#line 8393 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
+#line 38078 "gram.c"
+ break;
+
+ case 1142: /* common_func_opt_item: CALLED ON NULL_P INPUT_P */
+#line 8401 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("strict", (Node *) makeBoolean(false), (yylsp[-3]));
+ }
+#line 38086 "gram.c"
+ break;
+
+ case 1143: /* common_func_opt_item: RETURNS NULL_P ON NULL_P INPUT_P */
+#line 8405 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("strict", (Node *) makeBoolean(true), (yylsp[-4]));
+ }
+#line 38094 "gram.c"
+ break;
+
+ case 1144: /* common_func_opt_item: STRICT_P */
+#line 8409 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("strict", (Node *) makeBoolean(true), (yylsp[0]));
+ }
+#line 38102 "gram.c"
+ break;
+
+ case 1145: /* common_func_opt_item: IMMUTABLE */
+#line 8413 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("volatility", (Node *) makeString("immutable"), (yylsp[0]));
+ }
+#line 38110 "gram.c"
+ break;
+
+ case 1146: /* common_func_opt_item: STABLE */
+#line 8417 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("volatility", (Node *) makeString("stable"), (yylsp[0]));
+ }
+#line 38118 "gram.c"
+ break;
+
+ case 1147: /* common_func_opt_item: VOLATILE */
+#line 8421 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("volatility", (Node *) makeString("volatile"), (yylsp[0]));
+ }
+#line 38126 "gram.c"
+ break;
+
+ case 1148: /* common_func_opt_item: EXTERNAL SECURITY DEFINER */
+#line 8425 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("security", (Node *) makeBoolean(true), (yylsp[-2]));
+ }
+#line 38134 "gram.c"
+ break;
+
+ case 1149: /* common_func_opt_item: EXTERNAL SECURITY INVOKER */
+#line 8429 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("security", (Node *) makeBoolean(false), (yylsp[-2]));
+ }
+#line 38142 "gram.c"
+ break;
+
+ case 1150: /* common_func_opt_item: SECURITY DEFINER */
+#line 8433 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("security", (Node *) makeBoolean(true), (yylsp[-1]));
+ }
+#line 38150 "gram.c"
+ break;
+
+ case 1151: /* common_func_opt_item: SECURITY INVOKER */
+#line 8437 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("security", (Node *) makeBoolean(false), (yylsp[-1]));
+ }
+#line 38158 "gram.c"
+ break;
+
+ case 1152: /* common_func_opt_item: LEAKPROOF */
+#line 8441 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("leakproof", (Node *) makeBoolean(true), (yylsp[0]));
+ }
+#line 38166 "gram.c"
+ break;
+
+ case 1153: /* common_func_opt_item: NOT LEAKPROOF */
+#line 8445 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("leakproof", (Node *) makeBoolean(false), (yylsp[-1]));
+ }
+#line 38174 "gram.c"
+ break;
+
+ case 1154: /* common_func_opt_item: COST NumericOnly */
+#line 8449 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("cost", (Node *) (yyvsp[0].node), (yylsp[-1]));
+ }
+#line 38182 "gram.c"
+ break;
+
+ case 1155: /* common_func_opt_item: ROWS NumericOnly */
+#line 8453 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("rows", (Node *) (yyvsp[0].node), (yylsp[-1]));
+ }
+#line 38190 "gram.c"
+ break;
+
+ case 1156: /* common_func_opt_item: SUPPORT any_name */
+#line 8457 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("support", (Node *) (yyvsp[0].list), (yylsp[-1]));
+ }
+#line 38198 "gram.c"
+ break;
+
+ case 1157: /* common_func_opt_item: FunctionSetResetClause */
+#line 8461 "gram.y"
+ {
+ /* we abuse the normal content of a DefElem here */
+ (yyval.defelt) = makeDefElem("set", (Node *) (yyvsp[0].vsetstmt), (yylsp[0]));
+ }
+#line 38207 "gram.c"
+ break;
+
+ case 1158: /* common_func_opt_item: PARALLEL ColId */
+#line 8466 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("parallel", (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
+ }
+#line 38215 "gram.c"
+ break;
+
+ case 1159: /* createfunc_opt_item: AS func_as */
+#line 8473 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("as", (Node *) (yyvsp[0].list), (yylsp[-1]));
+ }
+#line 38223 "gram.c"
+ break;
+
+ case 1160: /* createfunc_opt_item: LANGUAGE NonReservedWord_or_Sconst */
+#line 8477 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("language", (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
+ }
+#line 38231 "gram.c"
+ break;
+
+ case 1161: /* createfunc_opt_item: TRANSFORM transform_type_list */
+#line 8481 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("transform", (Node *) (yyvsp[0].list), (yylsp[-1]));
+ }
+#line 38239 "gram.c"
+ break;
+
+ case 1162: /* createfunc_opt_item: WINDOW */
+#line 8485 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("window", (Node *) makeBoolean(true), (yylsp[0]));
+ }
+#line 38247 "gram.c"
+ break;
+
+ case 1163: /* createfunc_opt_item: common_func_opt_item */
+#line 8489 "gram.y"
+ {
+ (yyval.defelt) = (yyvsp[0].defelt);
+ }
+#line 38255 "gram.c"
+ break;
+
+ case 1164: /* func_as: Sconst */
+#line 8494 "gram.y"
+ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
+#line 38261 "gram.c"
+ break;
+
+ case 1165: /* func_as: Sconst ',' Sconst */
+#line 8496 "gram.y"
+ {
+ (yyval.list) = list_make2(makeString((yyvsp[-2].str)), makeString((yyvsp[0].str)));
+ }
+#line 38269 "gram.c"
+ break;
+
+ case 1166: /* ReturnStmt: RETURN a_expr */
+#line 8502 "gram.y"
+ {
+ ReturnStmt *r = makeNode(ReturnStmt);
+
+ r->returnval = (Node *) (yyvsp[0].node);
+ (yyval.node) = (Node *) r;
+ }
+#line 38280 "gram.c"
+ break;
+
+ case 1167: /* opt_routine_body: ReturnStmt */
+#line 8512 "gram.y"
+ {
+ (yyval.node) = (yyvsp[0].node);
+ }
+#line 38288 "gram.c"
+ break;
+
+ case 1168: /* opt_routine_body: BEGIN_P ATOMIC routine_body_stmt_list END_P */
+#line 8516 "gram.y"
+ {
+ /*
+ * A compound statement is stored as a single-item list
+ * containing the list of statements as its member. That
+ * way, the parse analysis code can tell apart an empty
+ * body from no body at all.
+ */
+ (yyval.node) = (Node *) list_make1((yyvsp[-1].list));
+ }
+#line 38302 "gram.c"
+ break;
+
+ case 1169: /* opt_routine_body: %empty */
+#line 8526 "gram.y"
+ {
+ (yyval.node) = NULL;
+ }
+#line 38310 "gram.c"
+ break;
+
+ case 1170: /* routine_body_stmt_list: routine_body_stmt_list routine_body_stmt ';' */
+#line 8533 "gram.y"
+ {
+ /* As in stmtmulti, discard empty statements */
+ if ((yyvsp[-1].node) != NULL)
+ (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[-1].node));
+ else
+ (yyval.list) = (yyvsp[-2].list);
+ }
+#line 38322 "gram.c"
+ break;
+
+ case 1171: /* routine_body_stmt_list: %empty */
+#line 8541 "gram.y"
+ {
+ (yyval.list) = NIL;
+ }
+#line 38330 "gram.c"
+ break;
+
+ case 1174: /* transform_type_list: FOR TYPE_P Typename */
+#line 8552 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].typnam)); }
+#line 38336 "gram.c"
+ break;
+
+ case 1175: /* transform_type_list: transform_type_list ',' FOR TYPE_P Typename */
+#line 8553 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-4].list), (yyvsp[0].typnam)); }
+#line 38342 "gram.c"
+ break;
+
+ case 1176: /* opt_definition: WITH definition */
+#line 8557 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 38348 "gram.c"
+ break;
+
+ case 1177: /* opt_definition: %empty */
+#line 8558 "gram.y"
+ { (yyval.list) = NIL; }
+#line 38354 "gram.c"
+ break;
+
+ case 1178: /* table_func_column: param_name func_type */
+#line 8562 "gram.y"
+ {
+ 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 38368 "gram.c"
+ break;
+
+ case 1179: /* table_func_column_list: table_func_column */
+#line 8575 "gram.y"
+ {
+ (yyval.list) = list_make1((yyvsp[0].fun_param));
+ }
+#line 38376 "gram.c"
+ break;
+
+ case 1180: /* table_func_column_list: table_func_column_list ',' table_func_column */
+#line 8579 "gram.y"
+ {
+ (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param));
+ }
+#line 38384 "gram.c"
+ break;
+
+ case 1181: /* AlterFunctionStmt: ALTER FUNCTION function_with_argtypes alterfunc_opt_list opt_restrict */
+#line 8594 "gram.y"
+ {
+ AlterFunctionStmt *n = makeNode(AlterFunctionStmt);
+
+ n->objtype = OBJECT_FUNCTION;
+ n->func = (yyvsp[-2].objwithargs);
+ n->actions = (yyvsp[-1].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 38397 "gram.c"
+ break;
+
+ case 1182: /* AlterFunctionStmt: ALTER PROCEDURE function_with_argtypes alterfunc_opt_list opt_restrict */
+#line 8603 "gram.y"
+ {
+ AlterFunctionStmt *n = makeNode(AlterFunctionStmt);
+
+ n->objtype = OBJECT_PROCEDURE;
+ n->func = (yyvsp[-2].objwithargs);
+ n->actions = (yyvsp[-1].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 38410 "gram.c"
+ break;
+
+ case 1183: /* AlterFunctionStmt: ALTER ROUTINE function_with_argtypes alterfunc_opt_list opt_restrict */
+#line 8612 "gram.y"
+ {
+ AlterFunctionStmt *n = makeNode(AlterFunctionStmt);
+
+ n->objtype = OBJECT_ROUTINE;
+ n->func = (yyvsp[-2].objwithargs);
+ n->actions = (yyvsp[-1].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 38423 "gram.c"
+ break;
+
+ case 1184: /* alterfunc_opt_list: common_func_opt_item */
+#line 8624 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].defelt)); }
+#line 38429 "gram.c"
+ break;
+
+ case 1185: /* alterfunc_opt_list: alterfunc_opt_list common_func_opt_item */
+#line 8625 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
+#line 38435 "gram.c"
+ break;
+
+ case 1188: /* RemoveFuncStmt: DROP FUNCTION function_with_argtypes_list opt_drop_behavior */
+#line 8649 "gram.y"
+ {
+ 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 38450 "gram.c"
+ break;
+
+ case 1189: /* RemoveFuncStmt: DROP FUNCTION IF_P EXISTS function_with_argtypes_list opt_drop_behavior */
+#line 8660 "gram.y"
+ {
+ 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 38465 "gram.c"
+ break;
+
+ case 1190: /* RemoveFuncStmt: DROP PROCEDURE function_with_argtypes_list opt_drop_behavior */
+#line 8671 "gram.y"
+ {
+ 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 38480 "gram.c"
+ break;
+
+ case 1191: /* RemoveFuncStmt: DROP PROCEDURE IF_P EXISTS function_with_argtypes_list opt_drop_behavior */
+#line 8682 "gram.y"
+ {
+ 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 38495 "gram.c"
+ break;
+
+ case 1192: /* RemoveFuncStmt: DROP ROUTINE function_with_argtypes_list opt_drop_behavior */
+#line 8693 "gram.y"
+ {
+ 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 38510 "gram.c"
+ break;
+
+ case 1193: /* RemoveFuncStmt: DROP ROUTINE IF_P EXISTS function_with_argtypes_list opt_drop_behavior */
+#line 8704 "gram.y"
+ {
+ 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 38525 "gram.c"
+ break;
+
+ case 1194: /* RemoveAggrStmt: DROP AGGREGATE aggregate_with_argtypes_list opt_drop_behavior */
+#line 8718 "gram.y"
+ {
+ 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 38540 "gram.c"
+ break;
+
+ case 1195: /* RemoveAggrStmt: DROP AGGREGATE IF_P EXISTS aggregate_with_argtypes_list opt_drop_behavior */
+#line 8729 "gram.y"
+ {
+ 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 38555 "gram.c"
+ break;
+
+ case 1196: /* RemoveOperStmt: DROP OPERATOR operator_with_argtypes_list opt_drop_behavior */
+#line 8743 "gram.y"
+ {
+ 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 38570 "gram.c"
+ break;
+
+ case 1197: /* RemoveOperStmt: DROP OPERATOR IF_P EXISTS operator_with_argtypes_list opt_drop_behavior */
+#line 8754 "gram.y"
+ {
+ 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 38585 "gram.c"
+ break;
+
+ case 1198: /* oper_argtypes: '(' Typename ')' */
+#line 8768 "gram.y"
+ {
+ 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 38597 "gram.c"
+ break;
+
+ case 1199: /* oper_argtypes: '(' Typename ',' Typename ')' */
+#line 8776 "gram.y"
+ { (yyval.list) = list_make2((yyvsp[-3].typnam), (yyvsp[-1].typnam)); }
+#line 38603 "gram.c"
+ break;
+
+ case 1200: /* oper_argtypes: '(' NONE ',' Typename ')' */
+#line 8778 "gram.y"
+ { (yyval.list) = list_make2(NULL, (yyvsp[-1].typnam)); }
+#line 38609 "gram.c"
+ break;
+
+ case 1201: /* oper_argtypes: '(' Typename ',' NONE ')' */
+#line 8780 "gram.y"
+ { (yyval.list) = list_make2((yyvsp[-3].typnam), NULL); }
+#line 38615 "gram.c"
+ break;
+
+ case 1202: /* any_operator: all_Op */
+#line 8785 "gram.y"
+ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
+#line 38621 "gram.c"
+ break;
+
+ case 1203: /* any_operator: ColId '.' any_operator */
+#line 8787 "gram.y"
+ { (yyval.list) = lcons(makeString((yyvsp[-2].str)), (yyvsp[0].list)); }
+#line 38627 "gram.c"
+ break;
+
+ case 1204: /* operator_with_argtypes_list: operator_with_argtypes */
+#line 8791 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].objwithargs)); }
+#line 38633 "gram.c"
+ break;
+
+ case 1205: /* operator_with_argtypes_list: operator_with_argtypes_list ',' operator_with_argtypes */
+#line 8793 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].objwithargs)); }
+#line 38639 "gram.c"
+ break;
+
+ case 1206: /* operator_with_argtypes: any_operator oper_argtypes */
+#line 8798 "gram.y"
+ {
+ ObjectWithArgs *n = makeNode(ObjectWithArgs);
+
+ n->objname = (yyvsp[-1].list);
+ n->objargs = (yyvsp[0].list);
+ (yyval.objwithargs) = n;
+ }
+#line 38651 "gram.c"
+ break;
+
+ case 1207: /* DoStmt: DO dostmt_opt_list */
+#line 8817 "gram.y"
+ {
+ DoStmt *n = makeNode(DoStmt);
+
+ n->args = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 38662 "gram.c"
+ break;
+
+ case 1208: /* dostmt_opt_list: dostmt_opt_item */
+#line 8826 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].defelt)); }
+#line 38668 "gram.c"
+ break;
+
+ case 1209: /* dostmt_opt_list: dostmt_opt_list dostmt_opt_item */
+#line 8827 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
+#line 38674 "gram.c"
+ break;
+
+ case 1210: /* dostmt_opt_item: Sconst */
+#line 8832 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("as", (Node *) makeString((yyvsp[0].str)), (yylsp[0]));
+ }
+#line 38682 "gram.c"
+ break;
+
+ case 1211: /* dostmt_opt_item: LANGUAGE NonReservedWord_or_Sconst */
+#line 8836 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("language", (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
+ }
+#line 38690 "gram.c"
+ break;
+
+ case 1212: /* CreateCastStmt: CREATE CAST '(' Typename AS Typename ')' WITH FUNCTION function_with_argtypes cast_context */
+#line 8849 "gram.y"
+ {
+ 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 38705 "gram.c"
+ break;
+
+ case 1213: /* CreateCastStmt: CREATE CAST '(' Typename AS Typename ')' WITHOUT FUNCTION cast_context */
+#line 8861 "gram.y"
+ {
+ 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 38720 "gram.c"
+ break;
+
+ case 1214: /* CreateCastStmt: CREATE CAST '(' Typename AS Typename ')' WITH INOUT cast_context */
+#line 8873 "gram.y"
+ {
+ 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 38735 "gram.c"
+ break;
+
+ case 1215: /* cast_context: AS IMPLICIT_P */
+#line 8885 "gram.y"
+ { (yyval.ival) = COERCION_IMPLICIT; }
+#line 38741 "gram.c"
+ break;
+
+ case 1216: /* cast_context: AS ASSIGNMENT */
+#line 8886 "gram.y"
+ { (yyval.ival) = COERCION_ASSIGNMENT; }
+#line 38747 "gram.c"
+ break;
+
+ case 1217: /* cast_context: %empty */
+#line 8887 "gram.y"
+ { (yyval.ival) = COERCION_EXPLICIT; }
+#line 38753 "gram.c"
+ break;
+
+ case 1218: /* DropCastStmt: DROP CAST opt_if_exists '(' Typename AS Typename ')' opt_drop_behavior */
+#line 8892 "gram.y"
+ {
+ 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 38768 "gram.c"
+ break;
+
+ case 1219: /* opt_if_exists: IF_P EXISTS */
+#line 8904 "gram.y"
+ { (yyval.boolean) = true; }
+#line 38774 "gram.c"
+ break;
+
+ case 1220: /* opt_if_exists: %empty */
+#line 8905 "gram.y"
+ { (yyval.boolean) = false; }
+#line 38780 "gram.c"
+ break;
+
+ case 1221: /* CreateTransformStmt: CREATE opt_or_replace TRANSFORM FOR Typename LANGUAGE name '(' transform_element_list ')' */
+#line 8916 "gram.y"
+ {
+ 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 38795 "gram.c"
+ break;
+
+ case 1222: /* transform_element_list: FROM SQL_P WITH FUNCTION function_with_argtypes ',' TO SQL_P WITH FUNCTION function_with_argtypes */
+#line 8929 "gram.y"
+ {
+ (yyval.list) = list_make2((yyvsp[-6].objwithargs), (yyvsp[0].objwithargs));
+ }
+#line 38803 "gram.c"
+ break;
+
+ case 1223: /* transform_element_list: TO SQL_P WITH FUNCTION function_with_argtypes ',' FROM SQL_P WITH FUNCTION function_with_argtypes */
+#line 8933 "gram.y"
+ {
+ (yyval.list) = list_make2((yyvsp[0].objwithargs), (yyvsp[-6].objwithargs));
+ }
+#line 38811 "gram.c"
+ break;
+
+ case 1224: /* transform_element_list: FROM SQL_P WITH FUNCTION function_with_argtypes */
+#line 8937 "gram.y"
+ {
+ (yyval.list) = list_make2((yyvsp[0].objwithargs), NULL);
+ }
+#line 38819 "gram.c"
+ break;
+
+ case 1225: /* transform_element_list: TO SQL_P WITH FUNCTION function_with_argtypes */
+#line 8941 "gram.y"
+ {
+ (yyval.list) = list_make2(NULL, (yyvsp[0].objwithargs));
+ }
+#line 38827 "gram.c"
+ break;
+
+ case 1226: /* DropTransformStmt: DROP TRANSFORM opt_if_exists FOR Typename LANGUAGE name opt_drop_behavior */
+#line 8948 "gram.y"
+ {
+ 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 38841 "gram.c"
+ break;
+
+ case 1227: /* ReindexStmt: REINDEX reindex_target_type opt_concurrently qualified_name */
+#line 8969 "gram.y"
+ {
+ ReindexStmt *n = makeNode(ReindexStmt);
+
+ n->kind = (yyvsp[-2].ival);
+ n->relation = (yyvsp[0].range);
+ n->name = NULL;
+ n->params = NIL;
+ if ((yyvsp[-1].boolean))
+ n->params = lappend(n->params,
+ makeDefElem("concurrently", NULL, (yylsp[-1])));
+ (yyval.node) = (Node *) n;
+ }
+#line 38858 "gram.c"
+ break;
+
+ case 1228: /* ReindexStmt: REINDEX reindex_target_multitable opt_concurrently name */
+#line 8982 "gram.y"
+ {
+ ReindexStmt *n = makeNode(ReindexStmt);
+
+ n->kind = (yyvsp[-2].ival);
+ n->name = (yyvsp[0].str);
+ n->relation = NULL;
+ n->params = NIL;
+ if ((yyvsp[-1].boolean))
+ n->params = lappend(n->params,
+ makeDefElem("concurrently", NULL, (yylsp[-1])));
+ (yyval.node) = (Node *) n;
+ }
+#line 38875 "gram.c"
+ break;
+
+ case 1229: /* ReindexStmt: REINDEX '(' utility_option_list ')' reindex_target_type opt_concurrently qualified_name */
+#line 8995 "gram.y"
+ {
+ ReindexStmt *n = makeNode(ReindexStmt);
+
+ n->kind = (yyvsp[-2].ival);
+ n->relation = (yyvsp[0].range);
+ n->name = NULL;
+ n->params = (yyvsp[-4].list);
+ if ((yyvsp[-1].boolean))
+ n->params = lappend(n->params,
+ makeDefElem("concurrently", NULL, (yylsp[-1])));
+ (yyval.node) = (Node *) n;
+ }
+#line 38892 "gram.c"
+ break;
+
+ case 1230: /* ReindexStmt: REINDEX '(' utility_option_list ')' reindex_target_multitable opt_concurrently name */
+#line 9008 "gram.y"
+ {
+ ReindexStmt *n = makeNode(ReindexStmt);
+
+ n->kind = (yyvsp[-2].ival);
+ n->name = (yyvsp[0].str);
+ n->relation = NULL;
+ n->params = (yyvsp[-4].list);
+ if ((yyvsp[-1].boolean))
+ n->params = lappend(n->params,
+ makeDefElem("concurrently", NULL, (yylsp[-1])));
+ (yyval.node) = (Node *) n;
+ }
+#line 38909 "gram.c"
+ break;
+
+ case 1231: /* reindex_target_type: INDEX */
+#line 9022 "gram.y"
+ { (yyval.ival) = REINDEX_OBJECT_INDEX; }
+#line 38915 "gram.c"
+ break;
+
+ case 1232: /* reindex_target_type: TABLE */
+#line 9023 "gram.y"
+ { (yyval.ival) = REINDEX_OBJECT_TABLE; }
+#line 38921 "gram.c"
+ break;
+
+ case 1233: /* reindex_target_multitable: SCHEMA */
+#line 9026 "gram.y"
+ { (yyval.ival) = REINDEX_OBJECT_SCHEMA; }
+#line 38927 "gram.c"
+ break;
+
+ case 1234: /* reindex_target_multitable: SYSTEM_P */
+#line 9027 "gram.y"
+ { (yyval.ival) = REINDEX_OBJECT_SYSTEM; }
+#line 38933 "gram.c"
+ break;
+
+ case 1235: /* reindex_target_multitable: DATABASE */
+#line 9028 "gram.y"
+ { (yyval.ival) = REINDEX_OBJECT_DATABASE; }
+#line 38939 "gram.c"
+ break;
+
+ case 1236: /* AlterTblSpcStmt: ALTER TABLESPACE name SET reloptions */
+#line 9039 "gram.y"
+ {
+ AlterTableSpaceOptionsStmt *n =
+ makeNode(AlterTableSpaceOptionsStmt);
+
+ n->tablespacename = (yyvsp[-2].str);
+ n->options = (yyvsp[0].list);
+ n->isReset = false;
+ (yyval.node) = (Node *) n;
+ }
+#line 38953 "gram.c"
+ break;
+
+ case 1237: /* AlterTblSpcStmt: ALTER TABLESPACE name RESET reloptions */
+#line 9049 "gram.y"
+ {
+ AlterTableSpaceOptionsStmt *n =
+ makeNode(AlterTableSpaceOptionsStmt);
+
+ n->tablespacename = (yyvsp[-2].str);
+ n->options = (yyvsp[0].list);
+ n->isReset = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 38967 "gram.c"
+ break;
+
+ case 1238: /* RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name */
+#line 9067 "gram.y"
+ {
+ 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 38981 "gram.c"
+ break;
+
+ case 1239: /* RenameStmt: ALTER COLLATION any_name RENAME TO name */
+#line 9077 "gram.y"
+ {
+ 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 38995 "gram.c"
+ break;
+
+ case 1240: /* RenameStmt: ALTER CONVERSION_P any_name RENAME TO name */
+#line 9087 "gram.y"
+ {
+ 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 39009 "gram.c"
+ break;
+
+ case 1241: /* RenameStmt: ALTER DATABASE name RENAME TO name */
+#line 9097 "gram.y"
+ {
+ 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 39023 "gram.c"
+ break;
+
+ case 1242: /* RenameStmt: ALTER DOMAIN_P any_name RENAME TO name */
+#line 9107 "gram.y"
+ {
+ 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 39037 "gram.c"
+ break;
+
+ case 1243: /* RenameStmt: ALTER DOMAIN_P any_name RENAME CONSTRAINT name TO name */
+#line 9117 "gram.y"
+ {
+ 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 39051 "gram.c"
+ break;
+
+ case 1244: /* RenameStmt: ALTER FOREIGN DATA_P WRAPPER name RENAME TO name */
+#line 9127 "gram.y"
+ {
+ 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 39065 "gram.c"
+ break;
+
+ case 1245: /* RenameStmt: ALTER FUNCTION function_with_argtypes RENAME TO name */
+#line 9137 "gram.y"
+ {
+ 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 39079 "gram.c"
+ break;
+
+ case 1246: /* RenameStmt: ALTER GROUP_P RoleId RENAME TO RoleId */
+#line 9147 "gram.y"
+ {
+ 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 39093 "gram.c"
+ break;
+
+ case 1247: /* RenameStmt: ALTER opt_procedural LANGUAGE name RENAME TO name */
+#line 9157 "gram.y"
+ {
+ 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 39107 "gram.c"
+ break;
+
+ case 1248: /* RenameStmt: ALTER OPERATOR CLASS any_name USING name RENAME TO name */
+#line 9167 "gram.y"
+ {
+ 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 39121 "gram.c"
+ break;
+
+ case 1249: /* RenameStmt: ALTER OPERATOR FAMILY any_name USING name RENAME TO name */
+#line 9177 "gram.y"
+ {
+ 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 39135 "gram.c"
+ break;
+
+ case 1250: /* RenameStmt: ALTER POLICY name ON qualified_name RENAME TO name */
+#line 9187 "gram.y"
+ {
+ 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 39150 "gram.c"
+ break;
+
+ case 1251: /* RenameStmt: ALTER POLICY IF_P EXISTS name ON qualified_name RENAME TO name */
+#line 9198 "gram.y"
+ {
+ 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 39165 "gram.c"
+ break;
+
+ case 1252: /* RenameStmt: ALTER PROCEDURE function_with_argtypes RENAME TO name */
+#line 9209 "gram.y"
+ {
+ 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 39179 "gram.c"
+ break;
+
+ case 1253: /* RenameStmt: ALTER PUBLICATION name RENAME TO name */
+#line 9219 "gram.y"
+ {
+ 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 39193 "gram.c"
+ break;
+
+ case 1254: /* RenameStmt: ALTER ROUTINE function_with_argtypes RENAME TO name */
+#line 9229 "gram.y"
+ {
+ 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 39207 "gram.c"
+ break;
+
+ case 1255: /* RenameStmt: ALTER SCHEMA name RENAME TO name */
+#line 9239 "gram.y"
+ {
+ 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 39221 "gram.c"
+ break;
+
+ case 1256: /* RenameStmt: ALTER SERVER name RENAME TO name */
+#line 9249 "gram.y"
+ {
+ 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 39235 "gram.c"
+ break;
+
+ case 1257: /* RenameStmt: ALTER SUBSCRIPTION name RENAME TO name */
+#line 9259 "gram.y"
+ {
+ 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 39249 "gram.c"
+ break;
+
+ case 1258: /* RenameStmt: ALTER TABLE relation_expr RENAME TO name */
+#line 9269 "gram.y"
+ {
+ 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 39264 "gram.c"
+ break;
+
+ case 1259: /* RenameStmt: ALTER TABLE IF_P EXISTS relation_expr RENAME TO name */
+#line 9280 "gram.y"
+ {
+ 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 39279 "gram.c"
+ break;
+
+ case 1260: /* RenameStmt: ALTER SEQUENCE qualified_name RENAME TO name */
+#line 9291 "gram.y"
+ {
+ 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 39294 "gram.c"
+ break;
+
+ case 1261: /* RenameStmt: ALTER SEQUENCE IF_P EXISTS qualified_name RENAME TO name */
+#line 9302 "gram.y"
+ {
+ 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 39309 "gram.c"
+ break;
+
+ case 1262: /* RenameStmt: ALTER VIEW qualified_name RENAME TO name */
+#line 9313 "gram.y"
+ {
+ 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 39324 "gram.c"
+ break;
+
+ case 1263: /* RenameStmt: ALTER VIEW IF_P EXISTS qualified_name RENAME TO name */
+#line 9324 "gram.y"
+ {
+ 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 39339 "gram.c"
+ break;
+
+ case 1264: /* RenameStmt: ALTER MATERIALIZED VIEW qualified_name RENAME TO name */
+#line 9335 "gram.y"
+ {
+ 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 39354 "gram.c"
+ break;
+
+ case 1265: /* RenameStmt: ALTER MATERIALIZED VIEW IF_P EXISTS qualified_name RENAME TO name */
+#line 9346 "gram.y"
+ {
+ 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 39369 "gram.c"
+ break;
+
+ case 1266: /* RenameStmt: ALTER INDEX qualified_name RENAME TO name */
+#line 9357 "gram.y"
+ {
+ 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 39384 "gram.c"
+ break;
+
+ case 1267: /* RenameStmt: ALTER INDEX IF_P EXISTS qualified_name RENAME TO name */
+#line 9368 "gram.y"
+ {
+ 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 39399 "gram.c"
+ break;
+
+ case 1268: /* RenameStmt: ALTER FOREIGN TABLE relation_expr RENAME TO name */
+#line 9379 "gram.y"
+ {
+ 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 39414 "gram.c"
+ break;
+
+ case 1269: /* RenameStmt: ALTER FOREIGN TABLE IF_P EXISTS relation_expr RENAME TO name */
+#line 9390 "gram.y"
+ {
+ 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 39429 "gram.c"
+ break;
+
+ case 1270: /* RenameStmt: ALTER TABLE relation_expr RENAME opt_column name TO name */
+#line 9401 "gram.y"
+ {
+ 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 39445 "gram.c"
+ break;
+
+ case 1271: /* RenameStmt: ALTER TABLE IF_P EXISTS relation_expr RENAME opt_column name TO name */
+#line 9413 "gram.y"
+ {
+ 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 39461 "gram.c"
+ break;
+
+ case 1272: /* RenameStmt: ALTER VIEW qualified_name RENAME opt_column name TO name */
+#line 9425 "gram.y"
+ {
+ RenameStmt *n = makeNode(RenameStmt);
+
+ n->renameType = OBJECT_COLUMN;
+ n->relationType = OBJECT_VIEW;
+ n->relation = (yyvsp[-5].range);
+ n->subname = (yyvsp[-2].str);
+ n->newname = (yyvsp[0].str);
+ n->missing_ok = false;
+ (yyval.node) = (Node *) n;
+ }
+#line 39477 "gram.c"
+ break;
+
+ case 1273: /* RenameStmt: ALTER VIEW IF_P EXISTS qualified_name RENAME opt_column name TO name */
+#line 9437 "gram.y"
+ {
+ RenameStmt *n = makeNode(RenameStmt);
+
+ n->renameType = OBJECT_COLUMN;
+ n->relationType = OBJECT_VIEW;
+ n->relation = (yyvsp[-5].range);
+ n->subname = (yyvsp[-2].str);
+ n->newname = (yyvsp[0].str);
+ n->missing_ok = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 39493 "gram.c"
+ break;
+
+ case 1274: /* RenameStmt: ALTER MATERIALIZED VIEW qualified_name RENAME opt_column name TO name */
+#line 9449 "gram.y"
+ {
+ 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 39509 "gram.c"
+ break;
+
+ case 1275: /* RenameStmt: ALTER MATERIALIZED VIEW IF_P EXISTS qualified_name RENAME opt_column name TO name */
+#line 9461 "gram.y"
+ {
+ 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 39525 "gram.c"
+ break;
+
+ case 1276: /* RenameStmt: ALTER TABLE relation_expr RENAME CONSTRAINT name TO name */
+#line 9473 "gram.y"
+ {
+ 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 39540 "gram.c"
+ break;
+
+ case 1277: /* RenameStmt: ALTER TABLE IF_P EXISTS relation_expr RENAME CONSTRAINT name TO name */
+#line 9484 "gram.y"
+ {
+ 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 39555 "gram.c"
+ break;
+
+ case 1278: /* RenameStmt: ALTER FOREIGN TABLE relation_expr RENAME opt_column name TO name */
+#line 9495 "gram.y"
+ {
+ 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 39571 "gram.c"
+ break;
+
+ case 1279: /* RenameStmt: ALTER FOREIGN TABLE IF_P EXISTS relation_expr RENAME opt_column name TO name */
+#line 9507 "gram.y"
+ {
+ 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 39587 "gram.c"
+ break;
+
+ case 1280: /* RenameStmt: ALTER RULE name ON qualified_name RENAME TO name */
+#line 9519 "gram.y"
+ {
+ 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 39602 "gram.c"
+ break;
+
+ case 1281: /* RenameStmt: ALTER TRIGGER name ON qualified_name RENAME TO name */
+#line 9530 "gram.y"
+ {
+ 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 39617 "gram.c"
+ break;
+
+ case 1282: /* RenameStmt: ALTER EVENT TRIGGER name RENAME TO name */
+#line 9541 "gram.y"
+ {
+ 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 39630 "gram.c"
+ break;
+
+ case 1283: /* RenameStmt: ALTER ROLE RoleId RENAME TO RoleId */
+#line 9550 "gram.y"
+ {
+ 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 39644 "gram.c"
+ break;
+
+ case 1284: /* RenameStmt: ALTER USER RoleId RENAME TO RoleId */
+#line 9560 "gram.y"
+ {
+ 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 39658 "gram.c"
+ break;
+
+ case 1285: /* RenameStmt: ALTER TABLESPACE name RENAME TO name */
+#line 9570 "gram.y"
+ {
+ 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 39672 "gram.c"
+ break;
+
+ case 1286: /* RenameStmt: ALTER STATISTICS any_name RENAME TO name */
+#line 9580 "gram.y"
+ {
+ 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 39686 "gram.c"
+ break;
+
+ case 1287: /* RenameStmt: ALTER TEXT_P SEARCH PARSER any_name RENAME TO name */
+#line 9590 "gram.y"
+ {
+ 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 39700 "gram.c"
+ break;
+
+ case 1288: /* RenameStmt: ALTER TEXT_P SEARCH DICTIONARY any_name RENAME TO name */
+#line 9600 "gram.y"
+ {
+ 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 39714 "gram.c"
+ break;
+
+ case 1289: /* RenameStmt: ALTER TEXT_P SEARCH TEMPLATE any_name RENAME TO name */
+#line 9610 "gram.y"
+ {
+ 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 39728 "gram.c"
+ break;
+
+ case 1290: /* RenameStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name RENAME TO name */
+#line 9620 "gram.y"
+ {
+ 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 39742 "gram.c"
+ break;
+
+ case 1291: /* RenameStmt: ALTER TYPE_P any_name RENAME TO name */
+#line 9630 "gram.y"
+ {
+ 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 39756 "gram.c"
+ break;
+
+ case 1292: /* RenameStmt: ALTER TYPE_P any_name RENAME ATTRIBUTE name TO name opt_drop_behavior */
+#line 9640 "gram.y"
+ {
+ 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 39773 "gram.c"
+ break;
+
+ case 1295: /* opt_set_data: SET DATA_P */
+#line 9658 "gram.y"
+ { (yyval.ival) = 1; }
+#line 39779 "gram.c"
+ break;
+
+ case 1296: /* opt_set_data: %empty */
+#line 9659 "gram.y"
+ { (yyval.ival) = 0; }
+#line 39785 "gram.c"
+ break;
+
+ case 1297: /* AlterObjectDependsStmt: ALTER FUNCTION function_with_argtypes opt_no DEPENDS ON EXTENSION name */
+#line 9670 "gram.y"
+ {
+ AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt);
+
+ n->objectType = OBJECT_FUNCTION;
+ n->object = (Node *) (yyvsp[-5].objwithargs);
+ n->extname = makeString((yyvsp[0].str));
+ n->remove = (yyvsp[-4].boolean);
+ (yyval.node) = (Node *) n;
+ }
+#line 39799 "gram.c"
+ break;
+
+ case 1298: /* AlterObjectDependsStmt: ALTER PROCEDURE function_with_argtypes opt_no DEPENDS ON EXTENSION name */
+#line 9680 "gram.y"
+ {
+ AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt);
+
+ n->objectType = OBJECT_PROCEDURE;
+ n->object = (Node *) (yyvsp[-5].objwithargs);
+ n->extname = makeString((yyvsp[0].str));
+ n->remove = (yyvsp[-4].boolean);
+ (yyval.node) = (Node *) n;
+ }
+#line 39813 "gram.c"
+ break;
+
+ case 1299: /* AlterObjectDependsStmt: ALTER ROUTINE function_with_argtypes opt_no DEPENDS ON EXTENSION name */
+#line 9690 "gram.y"
+ {
+ AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt);
+
+ n->objectType = OBJECT_ROUTINE;
+ n->object = (Node *) (yyvsp[-5].objwithargs);
+ n->extname = makeString((yyvsp[0].str));
+ n->remove = (yyvsp[-4].boolean);
+ (yyval.node) = (Node *) n;
+ }
+#line 39827 "gram.c"
+ break;
+
+ case 1300: /* AlterObjectDependsStmt: ALTER TRIGGER name ON qualified_name opt_no DEPENDS ON EXTENSION name */
+#line 9700 "gram.y"
+ {
+ AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt);
+
+ n->objectType = OBJECT_TRIGGER;
+ n->relation = (yyvsp[-5].range);
+ n->object = (Node *) list_make1(makeString((yyvsp[-7].str)));
+ n->extname = makeString((yyvsp[0].str));
+ n->remove = (yyvsp[-4].boolean);
+ (yyval.node) = (Node *) n;
+ }
+#line 39842 "gram.c"
+ break;
+
+ case 1301: /* AlterObjectDependsStmt: ALTER MATERIALIZED VIEW qualified_name opt_no DEPENDS ON EXTENSION name */
+#line 9711 "gram.y"
+ {
+ AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt);
+
+ n->objectType = OBJECT_MATVIEW;
+ n->relation = (yyvsp[-5].range);
+ n->extname = makeString((yyvsp[0].str));
+ n->remove = (yyvsp[-4].boolean);
+ (yyval.node) = (Node *) n;
+ }
+#line 39856 "gram.c"
+ break;
+
+ case 1302: /* AlterObjectDependsStmt: ALTER INDEX qualified_name opt_no DEPENDS ON EXTENSION name */
+#line 9721 "gram.y"
+ {
+ AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt);
+
+ n->objectType = OBJECT_INDEX;
+ n->relation = (yyvsp[-5].range);
+ n->extname = makeString((yyvsp[0].str));
+ n->remove = (yyvsp[-4].boolean);
+ (yyval.node) = (Node *) n;
+ }
+#line 39870 "gram.c"
+ break;
+
+ case 1303: /* opt_no: NO */
+#line 9732 "gram.y"
+ { (yyval.boolean) = true; }
+#line 39876 "gram.c"
+ break;
+
+ case 1304: /* opt_no: %empty */
+#line 9733 "gram.y"
+ { (yyval.boolean) = false; }
+#line 39882 "gram.c"
+ break;
+
+ case 1305: /* AlterObjectSchemaStmt: ALTER AGGREGATE aggregate_with_argtypes SET SCHEMA name */
+#line 9744 "gram.y"
+ {
+ 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 39896 "gram.c"
+ break;
+
+ case 1306: /* AlterObjectSchemaStmt: ALTER COLLATION any_name SET SCHEMA name */
+#line 9754 "gram.y"
+ {
+ 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 39910 "gram.c"
+ break;
+
+ case 1307: /* AlterObjectSchemaStmt: ALTER CONVERSION_P any_name SET SCHEMA name */
+#line 9764 "gram.y"
+ {
+ 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 39924 "gram.c"
+ break;
+
+ case 1308: /* AlterObjectSchemaStmt: ALTER DOMAIN_P any_name SET SCHEMA name */
+#line 9774 "gram.y"
+ {
+ 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 39938 "gram.c"
+ break;
+
+ case 1309: /* AlterObjectSchemaStmt: ALTER EXTENSION name SET SCHEMA name */
+#line 9784 "gram.y"
+ {
+ 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 39952 "gram.c"
+ break;
+
+ case 1310: /* AlterObjectSchemaStmt: ALTER FUNCTION function_with_argtypes SET SCHEMA name */
+#line 9794 "gram.y"
+ {
+ 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 39966 "gram.c"
+ break;
+
+ case 1311: /* AlterObjectSchemaStmt: ALTER OPERATOR operator_with_argtypes SET SCHEMA name */
+#line 9804 "gram.y"
+ {
+ 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 39980 "gram.c"
+ break;
+
+ case 1312: /* AlterObjectSchemaStmt: ALTER OPERATOR CLASS any_name USING name SET SCHEMA name */
+#line 9814 "gram.y"
+ {
+ 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 39994 "gram.c"
+ break;
+
+ case 1313: /* AlterObjectSchemaStmt: ALTER OPERATOR FAMILY any_name USING name SET SCHEMA name */
+#line 9824 "gram.y"
+ {
+ 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 40008 "gram.c"
+ break;
+
+ case 1314: /* AlterObjectSchemaStmt: ALTER PROCEDURE function_with_argtypes SET SCHEMA name */
+#line 9834 "gram.y"
+ {
+ 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 40022 "gram.c"
+ break;
+
+ case 1315: /* AlterObjectSchemaStmt: ALTER ROUTINE function_with_argtypes SET SCHEMA name */
+#line 9844 "gram.y"
+ {
+ 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 40036 "gram.c"
+ break;
+
+ case 1316: /* AlterObjectSchemaStmt: ALTER TABLE relation_expr SET SCHEMA name */
+#line 9854 "gram.y"
+ {
+ 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 40050 "gram.c"
+ break;
+
+ case 1317: /* AlterObjectSchemaStmt: ALTER TABLE IF_P EXISTS relation_expr SET SCHEMA name */
+#line 9864 "gram.y"
+ {
+ 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 40064 "gram.c"
+ break;
+
+ case 1318: /* AlterObjectSchemaStmt: ALTER STATISTICS any_name SET SCHEMA name */
+#line 9874 "gram.y"
+ {
+ 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 40078 "gram.c"
+ break;
+
+ case 1319: /* AlterObjectSchemaStmt: ALTER TEXT_P SEARCH PARSER any_name SET SCHEMA name */
+#line 9884 "gram.y"
+ {
+ 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 40092 "gram.c"
+ break;
+
+ case 1320: /* AlterObjectSchemaStmt: ALTER TEXT_P SEARCH DICTIONARY any_name SET SCHEMA name */
+#line 9894 "gram.y"
+ {
+ 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 40106 "gram.c"
+ break;
+
+ case 1321: /* AlterObjectSchemaStmt: ALTER TEXT_P SEARCH TEMPLATE any_name SET SCHEMA name */
+#line 9904 "gram.y"
+ {
+ 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 40120 "gram.c"
+ break;
+
+ case 1322: /* AlterObjectSchemaStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name SET SCHEMA name */
+#line 9914 "gram.y"
+ {
+ 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 40134 "gram.c"
+ break;
+
+ case 1323: /* AlterObjectSchemaStmt: ALTER SEQUENCE qualified_name SET SCHEMA name */
+#line 9924 "gram.y"
+ {
+ 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 40148 "gram.c"
+ break;
+
+ case 1324: /* AlterObjectSchemaStmt: ALTER SEQUENCE IF_P EXISTS qualified_name SET SCHEMA name */
+#line 9934 "gram.y"
+ {
+ 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 40162 "gram.c"
+ break;
+
+ case 1325: /* AlterObjectSchemaStmt: ALTER VIEW qualified_name SET SCHEMA name */
+#line 9944 "gram.y"
+ {
+ 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 40176 "gram.c"
+ break;
+
+ case 1326: /* AlterObjectSchemaStmt: ALTER VIEW IF_P EXISTS qualified_name SET SCHEMA name */
+#line 9954 "gram.y"
+ {
+ 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 40190 "gram.c"
+ break;
+
+ case 1327: /* AlterObjectSchemaStmt: ALTER MATERIALIZED VIEW qualified_name SET SCHEMA name */
+#line 9964 "gram.y"
+ {
+ 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 40204 "gram.c"
+ break;
+
+ case 1328: /* AlterObjectSchemaStmt: ALTER MATERIALIZED VIEW IF_P EXISTS qualified_name SET SCHEMA name */
+#line 9974 "gram.y"
+ {
+ 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 40218 "gram.c"
+ break;
+
+ case 1329: /* AlterObjectSchemaStmt: ALTER FOREIGN TABLE relation_expr SET SCHEMA name */
+#line 9984 "gram.y"
+ {
+ 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 40232 "gram.c"
+ break;
+
+ case 1330: /* AlterObjectSchemaStmt: ALTER FOREIGN TABLE IF_P EXISTS relation_expr SET SCHEMA name */
+#line 9994 "gram.y"
+ {
+ 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 40246 "gram.c"
+ break;
+
+ case 1331: /* AlterObjectSchemaStmt: ALTER TYPE_P any_name SET SCHEMA name */
+#line 10004 "gram.y"
+ {
+ 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 40260 "gram.c"
+ break;
+
+ case 1332: /* AlterOperatorStmt: ALTER OPERATOR operator_with_argtypes SET '(' operator_def_list ')' */
+#line 10023 "gram.y"
+ {
+ AlterOperatorStmt *n = makeNode(AlterOperatorStmt);
+
+ n->opername = (yyvsp[-4].objwithargs);
+ n->options = (yyvsp[-1].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 40272 "gram.c"
+ break;
+
+ case 1333: /* operator_def_list: operator_def_elem */
+#line 10032 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].defelt)); }
+#line 40278 "gram.c"
+ break;
+
+ case 1334: /* operator_def_list: operator_def_list ',' operator_def_elem */
+#line 10033 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); }
+#line 40284 "gram.c"
+ break;
+
+ case 1335: /* operator_def_elem: ColLabel '=' NONE */
+#line 10037 "gram.y"
+ { (yyval.defelt) = makeDefElem((yyvsp[-2].str), NULL, (yylsp[-2])); }
+#line 40290 "gram.c"
+ break;
+
+ case 1336: /* operator_def_elem: ColLabel '=' operator_def_arg */
+#line 10039 "gram.y"
+ { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2])); }
+#line 40296 "gram.c"
+ break;
+
+ case 1337: /* operator_def_arg: func_type */
+#line 10044 "gram.y"
+ { (yyval.node) = (Node *) (yyvsp[0].typnam); }
+#line 40302 "gram.c"
+ break;
+
+ case 1338: /* operator_def_arg: reserved_keyword */
+#line 10045 "gram.y"
+ { (yyval.node) = (Node *) makeString(pstrdup((yyvsp[0].keyword))); }
+#line 40308 "gram.c"
+ break;
+
+ case 1339: /* operator_def_arg: qual_all_Op */
+#line 10046 "gram.y"
+ { (yyval.node) = (Node *) (yyvsp[0].list); }
+#line 40314 "gram.c"
+ break;
+
+ case 1340: /* operator_def_arg: NumericOnly */
+#line 10047 "gram.y"
+ { (yyval.node) = (Node *) (yyvsp[0].node); }
+#line 40320 "gram.c"
+ break;
+
+ case 1341: /* operator_def_arg: Sconst */
+#line 10048 "gram.y"
+ { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
+#line 40326 "gram.c"
+ break;
+
+ case 1342: /* AlterTypeStmt: ALTER TYPE_P any_name SET '(' operator_def_list ')' */
+#line 10061 "gram.y"
+ {
+ AlterTypeStmt *n = makeNode(AlterTypeStmt);
+
+ n->typeName = (yyvsp[-4].list);
+ n->options = (yyvsp[-1].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 40338 "gram.c"
+ break;
+
+ case 1343: /* AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec */
+#line 10077 "gram.y"
+ {
+ AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
+
+ n->objectType = OBJECT_AGGREGATE;
+ n->object = (Node *) (yyvsp[-3].objwithargs);
+ n->newowner = (yyvsp[0].rolespec);
+ (yyval.node) = (Node *) n;
+ }
+#line 40351 "gram.c"
+ break;
+
+ case 1344: /* AlterOwnerStmt: ALTER COLLATION any_name OWNER TO RoleSpec */
+#line 10086 "gram.y"
+ {
+ AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
+
+ n->objectType = OBJECT_COLLATION;
+ n->object = (Node *) (yyvsp[-3].list);
+ n->newowner = (yyvsp[0].rolespec);
+ (yyval.node) = (Node *) n;
+ }
+#line 40364 "gram.c"
+ break;
+
+ case 1345: /* AlterOwnerStmt: ALTER CONVERSION_P any_name OWNER TO RoleSpec */
+#line 10095 "gram.y"
+ {
+ AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
+
+ n->objectType = OBJECT_CONVERSION;
+ n->object = (Node *) (yyvsp[-3].list);
+ n->newowner = (yyvsp[0].rolespec);
+ (yyval.node) = (Node *) n;
+ }
+#line 40377 "gram.c"
+ break;
+
+ case 1346: /* AlterOwnerStmt: ALTER DATABASE name OWNER TO RoleSpec */
+#line 10104 "gram.y"
+ {
+ 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 40390 "gram.c"
+ break;
+
+ case 1347: /* AlterOwnerStmt: ALTER DOMAIN_P any_name OWNER TO RoleSpec */
+#line 10113 "gram.y"
+ {
+ AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
+
+ n->objectType = OBJECT_DOMAIN;
+ n->object = (Node *) (yyvsp[-3].list);
+ n->newowner = (yyvsp[0].rolespec);
+ (yyval.node) = (Node *) n;
+ }
+#line 40403 "gram.c"
+ break;
+
+ case 1348: /* AlterOwnerStmt: ALTER FUNCTION function_with_argtypes OWNER TO RoleSpec */
+#line 10122 "gram.y"
+ {
+ AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
+
+ n->objectType = OBJECT_FUNCTION;
+ n->object = (Node *) (yyvsp[-3].objwithargs);
+ n->newowner = (yyvsp[0].rolespec);
+ (yyval.node) = (Node *) n;
+ }
+#line 40416 "gram.c"
+ break;
+
+ case 1349: /* AlterOwnerStmt: ALTER opt_procedural LANGUAGE name OWNER TO RoleSpec */
+#line 10131 "gram.y"
+ {
+ 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 40429 "gram.c"
+ break;
+
+ case 1350: /* AlterOwnerStmt: ALTER LARGE_P OBJECT_P NumericOnly OWNER TO RoleSpec */
+#line 10140 "gram.y"
+ {
+ AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
+
+ n->objectType = OBJECT_LARGEOBJECT;
+ n->object = (Node *) (yyvsp[-3].node);
+ n->newowner = (yyvsp[0].rolespec);
+ (yyval.node) = (Node *) n;
+ }
+#line 40442 "gram.c"
+ break;
+
+ case 1351: /* AlterOwnerStmt: ALTER OPERATOR operator_with_argtypes OWNER TO RoleSpec */
+#line 10149 "gram.y"
+ {
+ AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
+
+ n->objectType = OBJECT_OPERATOR;
+ n->object = (Node *) (yyvsp[-3].objwithargs);
+ n->newowner = (yyvsp[0].rolespec);
+ (yyval.node) = (Node *) n;
+ }
+#line 40455 "gram.c"
+ break;
+
+ case 1352: /* AlterOwnerStmt: ALTER OPERATOR CLASS any_name USING name OWNER TO RoleSpec */
+#line 10158 "gram.y"
+ {
+ 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 40468 "gram.c"
+ break;
+
+ case 1353: /* AlterOwnerStmt: ALTER OPERATOR FAMILY any_name USING name OWNER TO RoleSpec */
+#line 10167 "gram.y"
+ {
+ 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 40481 "gram.c"
+ break;
+
+ case 1354: /* AlterOwnerStmt: ALTER PROCEDURE function_with_argtypes OWNER TO RoleSpec */
+#line 10176 "gram.y"
+ {
+ AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
+
+ n->objectType = OBJECT_PROCEDURE;
+ n->object = (Node *) (yyvsp[-3].objwithargs);
+ n->newowner = (yyvsp[0].rolespec);
+ (yyval.node) = (Node *) n;
+ }
+#line 40494 "gram.c"
+ break;
+
+ case 1355: /* AlterOwnerStmt: ALTER ROUTINE function_with_argtypes OWNER TO RoleSpec */
+#line 10185 "gram.y"
+ {
+ AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
+
+ n->objectType = OBJECT_ROUTINE;
+ n->object = (Node *) (yyvsp[-3].objwithargs);
+ n->newowner = (yyvsp[0].rolespec);
+ (yyval.node) = (Node *) n;
+ }
+#line 40507 "gram.c"
+ break;
+
+ case 1356: /* AlterOwnerStmt: ALTER SCHEMA name OWNER TO RoleSpec */
+#line 10194 "gram.y"
+ {
+ 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 40520 "gram.c"
+ break;
+
+ case 1357: /* AlterOwnerStmt: ALTER TYPE_P any_name OWNER TO RoleSpec */
+#line 10203 "gram.y"
+ {
+ AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
+
+ n->objectType = OBJECT_TYPE;
+ n->object = (Node *) (yyvsp[-3].list);
+ n->newowner = (yyvsp[0].rolespec);
+ (yyval.node) = (Node *) n;
+ }
+#line 40533 "gram.c"
+ break;
+
+ case 1358: /* AlterOwnerStmt: ALTER TABLESPACE name OWNER TO RoleSpec */
+#line 10212 "gram.y"
+ {
+ 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 40546 "gram.c"
+ break;
+
+ case 1359: /* AlterOwnerStmt: ALTER STATISTICS any_name OWNER TO RoleSpec */
+#line 10221 "gram.y"
+ {
+ 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 40559 "gram.c"
+ break;
+
+ case 1360: /* AlterOwnerStmt: ALTER TEXT_P SEARCH DICTIONARY any_name OWNER TO RoleSpec */
+#line 10230 "gram.y"
+ {
+ AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
+
+ n->objectType = OBJECT_TSDICTIONARY;
+ n->object = (Node *) (yyvsp[-3].list);
+ n->newowner = (yyvsp[0].rolespec);
+ (yyval.node) = (Node *) n;
+ }
+#line 40572 "gram.c"
+ break;
+
+ case 1361: /* AlterOwnerStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name OWNER TO RoleSpec */
+#line 10239 "gram.y"
+ {
+ AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
+
+ n->objectType = OBJECT_TSCONFIGURATION;
+ n->object = (Node *) (yyvsp[-3].list);
+ n->newowner = (yyvsp[0].rolespec);
+ (yyval.node) = (Node *) n;
+ }
+#line 40585 "gram.c"
+ break;
+
+ case 1362: /* AlterOwnerStmt: ALTER FOREIGN DATA_P WRAPPER name OWNER TO RoleSpec */
+#line 10248 "gram.y"
+ {
+ 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 40598 "gram.c"
+ break;
+
+ case 1363: /* AlterOwnerStmt: ALTER SERVER name OWNER TO RoleSpec */
+#line 10257 "gram.y"
+ {
+ 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 40611 "gram.c"
+ break;
+
+ case 1364: /* AlterOwnerStmt: ALTER EVENT TRIGGER name OWNER TO RoleSpec */
+#line 10266 "gram.y"
+ {
+ 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 40624 "gram.c"
+ break;
+
+ case 1365: /* AlterOwnerStmt: ALTER PUBLICATION name OWNER TO RoleSpec */
+#line 10275 "gram.y"
+ {
+ 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 40637 "gram.c"
+ break;
+
+ case 1366: /* AlterOwnerStmt: ALTER SUBSCRIPTION name OWNER TO RoleSpec */
+#line 10284 "gram.y"
+ {
+ 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 40650 "gram.c"
+ break;
+
+ case 1367: /* CreatePublicationStmt: CREATE PUBLICATION name opt_definition */
+#line 10312 "gram.y"
+ {
+ CreatePublicationStmt *n = makeNode(CreatePublicationStmt);
+
+ n->pubname = (yyvsp[-1].str);
+ n->options = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 40662 "gram.c"
+ break;
+
+ case 1368: /* CreatePublicationStmt: CREATE PUBLICATION name FOR ALL TABLES opt_definition */
+#line 10320 "gram.y"
+ {
+ CreatePublicationStmt *n = makeNode(CreatePublicationStmt);
+
+ n->pubname = (yyvsp[-4].str);
+ n->options = (yyvsp[0].list);
+ n->for_all_tables = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 40675 "gram.c"
+ break;
+
+ case 1369: /* CreatePublicationStmt: CREATE PUBLICATION name FOR pub_obj_list opt_definition */
+#line 10329 "gram.y"
+ {
+ CreatePublicationStmt *n = makeNode(CreatePublicationStmt);
+
+ n->pubname = (yyvsp[-3].str);
+ n->options = (yyvsp[0].list);
+ n->pubobjects = (List *) (yyvsp[-1].list);
+ preprocess_pubobj_list(n->pubobjects, yyscanner);
+ (yyval.node) = (Node *) n;
+ }
+#line 40689 "gram.c"
+ break;
+
+ case 1370: /* PublicationObjSpec: TABLE relation_expr opt_column_list OptWhereClause */
+#line 10355 "gram.y"
+ {
+ (yyval.publicationobjectspec) = makeNode(PublicationObjSpec);
+ (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_TABLE;
+ (yyval.publicationobjectspec)->pubtable = makeNode(PublicationTable);
+ (yyval.publicationobjectspec)->pubtable->relation = (yyvsp[-2].range);
+ (yyval.publicationobjectspec)->pubtable->columns = (yyvsp[-1].list);
+ (yyval.publicationobjectspec)->pubtable->whereClause = (yyvsp[0].node);
+ }
+#line 40702 "gram.c"
+ break;
+
+ case 1371: /* PublicationObjSpec: TABLES IN_P SCHEMA ColId */
+#line 10364 "gram.y"
+ {
+ (yyval.publicationobjectspec) = makeNode(PublicationObjSpec);
+ (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_TABLES_IN_SCHEMA;
+ (yyval.publicationobjectspec)->name = (yyvsp[0].str);
+ (yyval.publicationobjectspec)->location = (yylsp[0]);
+ }
+#line 40713 "gram.c"
+ break;
+
+ case 1372: /* PublicationObjSpec: TABLES IN_P SCHEMA CURRENT_SCHEMA */
+#line 10371 "gram.y"
+ {
+ (yyval.publicationobjectspec) = makeNode(PublicationObjSpec);
+ (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA;
+ (yyval.publicationobjectspec)->location = (yylsp[0]);
+ }
+#line 40723 "gram.c"
+ break;
+
+ case 1373: /* PublicationObjSpec: ColId opt_column_list OptWhereClause */
+#line 10377 "gram.y"
+ {
+ (yyval.publicationobjectspec) = makeNode(PublicationObjSpec);
+ (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_CONTINUATION;
+ /*
+ * If either a row filter or column list is specified, create
+ * a PublicationTable object.
+ */
+ if ((yyvsp[-1].list) || (yyvsp[0].node))
+ {
+ /*
+ * The OptWhereClause must be stored here but it is
+ * valid only for tables. For non-table objects, an
+ * error will be thrown later via
+ * preprocess_pubobj_list().
+ */
+ (yyval.publicationobjectspec)->pubtable = makeNode(PublicationTable);
+ (yyval.publicationobjectspec)->pubtable->relation = makeRangeVar(NULL, (yyvsp[-2].str), (yylsp[-2]));
+ (yyval.publicationobjectspec)->pubtable->columns = (yyvsp[-1].list);
+ (yyval.publicationobjectspec)->pubtable->whereClause = (yyvsp[0].node);
+ }
+ else
+ {
+ (yyval.publicationobjectspec)->name = (yyvsp[-2].str);
+ }
+ (yyval.publicationobjectspec)->location = (yylsp[-2]);
+ }
+#line 40754 "gram.c"
+ break;
+
+ case 1374: /* PublicationObjSpec: ColId indirection opt_column_list OptWhereClause */
+#line 10404 "gram.y"
+ {
+ (yyval.publicationobjectspec) = makeNode(PublicationObjSpec);
+ (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_CONTINUATION;
+ (yyval.publicationobjectspec)->pubtable = makeNode(PublicationTable);
+ (yyval.publicationobjectspec)->pubtable->relation = makeRangeVarFromQualifiedName((yyvsp[-3].str), (yyvsp[-2].list), (yylsp[-3]), yyscanner);
+ (yyval.publicationobjectspec)->pubtable->columns = (yyvsp[-1].list);
+ (yyval.publicationobjectspec)->pubtable->whereClause = (yyvsp[0].node);
+ (yyval.publicationobjectspec)->location = (yylsp[-3]);
+ }
+#line 40768 "gram.c"
+ break;
+
+ case 1375: /* PublicationObjSpec: extended_relation_expr opt_column_list OptWhereClause */
+#line 10415 "gram.y"
+ {
+ (yyval.publicationobjectspec) = makeNode(PublicationObjSpec);
+ (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_CONTINUATION;
+ (yyval.publicationobjectspec)->pubtable = makeNode(PublicationTable);
+ (yyval.publicationobjectspec)->pubtable->relation = (yyvsp[-2].range);
+ (yyval.publicationobjectspec)->pubtable->columns = (yyvsp[-1].list);
+ (yyval.publicationobjectspec)->pubtable->whereClause = (yyvsp[0].node);
+ }
+#line 40781 "gram.c"
+ break;
+
+ case 1376: /* PublicationObjSpec: CURRENT_SCHEMA */
+#line 10424 "gram.y"
+ {
+ (yyval.publicationobjectspec) = makeNode(PublicationObjSpec);
+ (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_CONTINUATION;
+ (yyval.publicationobjectspec)->location = (yylsp[0]);
+ }
+#line 40791 "gram.c"
+ break;
+
+ case 1377: /* pub_obj_list: PublicationObjSpec */
+#line 10432 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].publicationobjectspec)); }
+#line 40797 "gram.c"
+ break;
+
+ case 1378: /* pub_obj_list: pub_obj_list ',' PublicationObjSpec */
+#line 10434 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].publicationobjectspec)); }
+#line 40803 "gram.c"
+ break;
+
+ case 1379: /* AlterPublicationStmt: ALTER PUBLICATION name SET definition */
+#line 10456 "gram.y"
+ {
+ AlterPublicationStmt *n = makeNode(AlterPublicationStmt);
+
+ n->pubname = (yyvsp[-2].str);
+ n->options = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 40815 "gram.c"
+ break;
+
+ case 1380: /* AlterPublicationStmt: ALTER PUBLICATION name ADD_P pub_obj_list */
+#line 10464 "gram.y"
+ {
+ AlterPublicationStmt *n = makeNode(AlterPublicationStmt);
+
+ n->pubname = (yyvsp[-2].str);
+ n->pubobjects = (yyvsp[0].list);
+ preprocess_pubobj_list(n->pubobjects, yyscanner);
+ n->action = AP_AddObjects;
+ (yyval.node) = (Node *) n;
+ }
+#line 40829 "gram.c"
+ break;
+
+ case 1381: /* AlterPublicationStmt: ALTER PUBLICATION name SET pub_obj_list */
+#line 10474 "gram.y"
+ {
+ AlterPublicationStmt *n = makeNode(AlterPublicationStmt);
+
+ n->pubname = (yyvsp[-2].str);
+ n->pubobjects = (yyvsp[0].list);
+ preprocess_pubobj_list(n->pubobjects, yyscanner);
+ n->action = AP_SetObjects;
+ (yyval.node) = (Node *) n;
+ }
+#line 40843 "gram.c"
+ break;
+
+ case 1382: /* AlterPublicationStmt: ALTER PUBLICATION name DROP pub_obj_list */
+#line 10484 "gram.y"
+ {
+ AlterPublicationStmt *n = makeNode(AlterPublicationStmt);
+
+ n->pubname = (yyvsp[-2].str);
+ n->pubobjects = (yyvsp[0].list);
+ preprocess_pubobj_list(n->pubobjects, yyscanner);
+ n->action = AP_DropObjects;
+ (yyval.node) = (Node *) n;
+ }
+#line 40857 "gram.c"
+ break;
+
+ case 1383: /* CreateSubscriptionStmt: CREATE SUBSCRIPTION name CONNECTION Sconst PUBLICATION name_list opt_definition */
+#line 10503 "gram.y"
+ {
+ 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 40871 "gram.c"
+ break;
+
+ case 1384: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name SET definition */
+#line 10522 "gram.y"
+ {
+ AlterSubscriptionStmt *n =
+ makeNode(AlterSubscriptionStmt);
+
+ n->kind = ALTER_SUBSCRIPTION_OPTIONS;
+ n->subname = (yyvsp[-2].str);
+ n->options = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 40885 "gram.c"
+ break;
+
+ case 1385: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name CONNECTION Sconst */
+#line 10532 "gram.y"
+ {
+ AlterSubscriptionStmt *n =
+ makeNode(AlterSubscriptionStmt);
+
+ n->kind = ALTER_SUBSCRIPTION_CONNECTION;
+ n->subname = (yyvsp[-2].str);
+ n->conninfo = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 40899 "gram.c"
+ break;
+
+ case 1386: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name REFRESH PUBLICATION opt_definition */
+#line 10542 "gram.y"
+ {
+ AlterSubscriptionStmt *n =
+ makeNode(AlterSubscriptionStmt);
+
+ n->kind = ALTER_SUBSCRIPTION_REFRESH;
+ n->subname = (yyvsp[-3].str);
+ n->options = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 40913 "gram.c"
+ break;
+
+ case 1387: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name ADD_P PUBLICATION name_list opt_definition */
+#line 10552 "gram.y"
+ {
+ AlterSubscriptionStmt *n =
+ makeNode(AlterSubscriptionStmt);
+
+ n->kind = ALTER_SUBSCRIPTION_ADD_PUBLICATION;
+ n->subname = (yyvsp[-4].str);
+ n->publication = (yyvsp[-1].list);
+ n->options = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 40928 "gram.c"
+ break;
+
+ case 1388: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name DROP PUBLICATION name_list opt_definition */
+#line 10563 "gram.y"
+ {
+ AlterSubscriptionStmt *n =
+ makeNode(AlterSubscriptionStmt);
+
+ n->kind = ALTER_SUBSCRIPTION_DROP_PUBLICATION;
+ n->subname = (yyvsp[-4].str);
+ n->publication = (yyvsp[-1].list);
+ n->options = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 40943 "gram.c"
+ break;
+
+ case 1389: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name SET PUBLICATION name_list opt_definition */
+#line 10574 "gram.y"
+ {
+ AlterSubscriptionStmt *n =
+ makeNode(AlterSubscriptionStmt);
+
+ n->kind = ALTER_SUBSCRIPTION_SET_PUBLICATION;
+ n->subname = (yyvsp[-4].str);
+ n->publication = (yyvsp[-1].list);
+ n->options = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 40958 "gram.c"
+ break;
+
+ case 1390: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name ENABLE_P */
+#line 10585 "gram.y"
+ {
+ AlterSubscriptionStmt *n =
+ makeNode(AlterSubscriptionStmt);
+
+ n->kind = ALTER_SUBSCRIPTION_ENABLED;
+ n->subname = (yyvsp[-1].str);
+ n->options = list_make1(makeDefElem("enabled",
+ (Node *) makeBoolean(true), (yylsp[-3])));
+ (yyval.node) = (Node *) n;
+ }
+#line 40973 "gram.c"
+ break;
+
+ case 1391: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name DISABLE_P */
+#line 10596 "gram.y"
+ {
+ AlterSubscriptionStmt *n =
+ makeNode(AlterSubscriptionStmt);
+
+ n->kind = ALTER_SUBSCRIPTION_ENABLED;
+ n->subname = (yyvsp[-1].str);
+ n->options = list_make1(makeDefElem("enabled",
+ (Node *) makeBoolean(false), (yylsp[-3])));
+ (yyval.node) = (Node *) n;
+ }
+#line 40988 "gram.c"
+ break;
+
+ case 1392: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name SKIP definition */
+#line 10607 "gram.y"
+ {
+ AlterSubscriptionStmt *n =
+ makeNode(AlterSubscriptionStmt);
+
+ n->kind = ALTER_SUBSCRIPTION_SKIP;
+ n->subname = (yyvsp[-2].str);
+ n->options = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 41002 "gram.c"
+ break;
+
+ case 1393: /* DropSubscriptionStmt: DROP SUBSCRIPTION name opt_drop_behavior */
+#line 10625 "gram.y"
+ {
+ DropSubscriptionStmt *n = makeNode(DropSubscriptionStmt);
+
+ n->subname = (yyvsp[-1].str);
+ n->missing_ok = false;
+ n->behavior = (yyvsp[0].dbehavior);
+ (yyval.node) = (Node *) n;
+ }
+#line 41015 "gram.c"
+ break;
+
+ case 1394: /* DropSubscriptionStmt: DROP SUBSCRIPTION IF_P EXISTS name opt_drop_behavior */
+#line 10634 "gram.y"
+ {
+ DropSubscriptionStmt *n = makeNode(DropSubscriptionStmt);
+
+ n->subname = (yyvsp[-1].str);
+ n->missing_ok = true;
+ n->behavior = (yyvsp[0].dbehavior);
+ (yyval.node) = (Node *) n;
+ }
+#line 41028 "gram.c"
+ break;
+
+ case 1395: /* RuleStmt: CREATE opt_or_replace RULE name AS ON event TO qualified_name where_clause DO opt_instead RuleActionList */
+#line 10653 "gram.y"
+ {
+ 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 41045 "gram.c"
+ break;
+
+ case 1396: /* RuleActionList: NOTHING */
+#line 10668 "gram.y"
+ { (yyval.list) = NIL; }
+#line 41051 "gram.c"
+ break;
+
+ case 1397: /* RuleActionList: RuleActionStmt */
+#line 10669 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].node)); }
+#line 41057 "gram.c"
+ break;
+
+ case 1398: /* RuleActionList: '(' RuleActionMulti ')' */
+#line 10670 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 41063 "gram.c"
+ break;
+
+ case 1399: /* RuleActionMulti: RuleActionMulti ';' RuleActionStmtOrEmpty */
+#line 10676 "gram.y"
+ { if ((yyvsp[0].node) != NULL)
+ (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node));
+ else
+ (yyval.list) = (yyvsp[-2].list);
+ }
+#line 41073 "gram.c"
+ break;
+
+ case 1400: /* RuleActionMulti: RuleActionStmtOrEmpty */
+#line 10682 "gram.y"
+ { if ((yyvsp[0].node) != NULL)
+ (yyval.list) = list_make1((yyvsp[0].node));
+ else
+ (yyval.list) = NIL;
+ }
+#line 41083 "gram.c"
+ break;
+
+ case 1406: /* RuleActionStmtOrEmpty: RuleActionStmt */
+#line 10698 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 41089 "gram.c"
+ break;
+
+ case 1407: /* RuleActionStmtOrEmpty: %empty */
+#line 10699 "gram.y"
+ { (yyval.node) = NULL; }
+#line 41095 "gram.c"
+ break;
+
+ case 1408: /* event: SELECT */
+#line 10702 "gram.y"
+ { (yyval.ival) = CMD_SELECT; }
+#line 41101 "gram.c"
+ break;
+
+ case 1409: /* event: UPDATE */
+#line 10703 "gram.y"
+ { (yyval.ival) = CMD_UPDATE; }
+#line 41107 "gram.c"
+ break;
+
+ case 1410: /* event: DELETE_P */
+#line 10704 "gram.y"
+ { (yyval.ival) = CMD_DELETE; }
+#line 41113 "gram.c"
+ break;
+
+ case 1411: /* event: INSERT */
+#line 10705 "gram.y"
+ { (yyval.ival) = CMD_INSERT; }
+#line 41119 "gram.c"
+ break;
+
+ case 1412: /* opt_instead: INSTEAD */
+#line 10709 "gram.y"
+ { (yyval.boolean) = true; }
+#line 41125 "gram.c"
+ break;
+
+ case 1413: /* opt_instead: ALSO */
+#line 10710 "gram.y"
+ { (yyval.boolean) = false; }
+#line 41131 "gram.c"
+ break;
+
+ case 1414: /* opt_instead: %empty */
+#line 10711 "gram.y"
+ { (yyval.boolean) = false; }
+#line 41137 "gram.c"
+ break;
+
+ case 1415: /* NotifyStmt: NOTIFY ColId notify_payload */
+#line 10724 "gram.y"
+ {
+ NotifyStmt *n = makeNode(NotifyStmt);
+
+ n->conditionname = (yyvsp[-1].str);
+ n->payload = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 41149 "gram.c"
+ break;
+
+ case 1416: /* notify_payload: ',' Sconst */
+#line 10734 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 41155 "gram.c"
+ break;
+
+ case 1417: /* notify_payload: %empty */
+#line 10735 "gram.y"
+ { (yyval.str) = NULL; }
+#line 41161 "gram.c"
+ break;
+
+ case 1418: /* ListenStmt: LISTEN ColId */
+#line 10739 "gram.y"
+ {
+ ListenStmt *n = makeNode(ListenStmt);
+
+ n->conditionname = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 41172 "gram.c"
+ break;
+
+ case 1419: /* UnlistenStmt: UNLISTEN ColId */
+#line 10749 "gram.y"
+ {
+ UnlistenStmt *n = makeNode(UnlistenStmt);
+
+ n->conditionname = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 41183 "gram.c"
+ break;
+
+ case 1420: /* UnlistenStmt: UNLISTEN '*' */
+#line 10756 "gram.y"
+ {
+ UnlistenStmt *n = makeNode(UnlistenStmt);
+
+ n->conditionname = NULL;
+ (yyval.node) = (Node *) n;
+ }
+#line 41194 "gram.c"
+ break;
+
+ case 1421: /* TransactionStmt: ABORT_P opt_transaction opt_transaction_chain */
+#line 10776 "gram.y"
+ {
+ TransactionStmt *n = makeNode(TransactionStmt);
+
+ n->kind = TRANS_STMT_ROLLBACK;
+ n->options = NIL;
+ n->chain = (yyvsp[0].boolean);
+ (yyval.node) = (Node *) n;
+ }
+#line 41207 "gram.c"
+ break;
+
+ case 1422: /* TransactionStmt: START TRANSACTION transaction_mode_list_or_empty */
+#line 10785 "gram.y"
+ {
+ TransactionStmt *n = makeNode(TransactionStmt);
+
+ n->kind = TRANS_STMT_START;
+ n->options = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 41219 "gram.c"
+ break;
+
+ case 1423: /* TransactionStmt: COMMIT opt_transaction opt_transaction_chain */
+#line 10793 "gram.y"
+ {
+ TransactionStmt *n = makeNode(TransactionStmt);
+
+ n->kind = TRANS_STMT_COMMIT;
+ n->options = NIL;
+ n->chain = (yyvsp[0].boolean);
+ (yyval.node) = (Node *) n;
+ }
+#line 41232 "gram.c"
+ break;
+
+ case 1424: /* TransactionStmt: ROLLBACK opt_transaction opt_transaction_chain */
+#line 10802 "gram.y"
+ {
+ TransactionStmt *n = makeNode(TransactionStmt);
+
+ n->kind = TRANS_STMT_ROLLBACK;
+ n->options = NIL;
+ n->chain = (yyvsp[0].boolean);
+ (yyval.node) = (Node *) n;
+ }
+#line 41245 "gram.c"
+ break;
+
+ case 1425: /* TransactionStmt: SAVEPOINT ColId */
+#line 10811 "gram.y"
+ {
+ TransactionStmt *n = makeNode(TransactionStmt);
+
+ n->kind = TRANS_STMT_SAVEPOINT;
+ n->savepoint_name = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 41257 "gram.c"
+ break;
+
+ case 1426: /* TransactionStmt: RELEASE SAVEPOINT ColId */
+#line 10819 "gram.y"
+ {
+ TransactionStmt *n = makeNode(TransactionStmt);
+
+ n->kind = TRANS_STMT_RELEASE;
+ n->savepoint_name = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 41269 "gram.c"
+ break;
+
+ case 1427: /* TransactionStmt: RELEASE ColId */
+#line 10827 "gram.y"
+ {
+ TransactionStmt *n = makeNode(TransactionStmt);
+
+ n->kind = TRANS_STMT_RELEASE;
+ n->savepoint_name = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 41281 "gram.c"
+ break;
+
+ case 1428: /* TransactionStmt: ROLLBACK opt_transaction TO SAVEPOINT ColId */
+#line 10835 "gram.y"
+ {
+ TransactionStmt *n = makeNode(TransactionStmt);
+
+ n->kind = TRANS_STMT_ROLLBACK_TO;
+ n->savepoint_name = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 41293 "gram.c"
+ break;
+
+ case 1429: /* TransactionStmt: ROLLBACK opt_transaction TO ColId */
+#line 10843 "gram.y"
+ {
+ TransactionStmt *n = makeNode(TransactionStmt);
+
+ n->kind = TRANS_STMT_ROLLBACK_TO;
+ n->savepoint_name = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 41305 "gram.c"
+ break;
+
+ case 1430: /* TransactionStmt: PREPARE TRANSACTION Sconst */
+#line 10851 "gram.y"
+ {
+ TransactionStmt *n = makeNode(TransactionStmt);
+
+ n->kind = TRANS_STMT_PREPARE;
+ n->gid = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 41317 "gram.c"
+ break;
+
+ case 1431: /* TransactionStmt: COMMIT PREPARED Sconst */
+#line 10859 "gram.y"
+ {
+ TransactionStmt *n = makeNode(TransactionStmt);
+
+ n->kind = TRANS_STMT_COMMIT_PREPARED;
+ n->gid = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 41329 "gram.c"
+ break;
+
+ case 1432: /* TransactionStmt: ROLLBACK PREPARED Sconst */
+#line 10867 "gram.y"
+ {
+ TransactionStmt *n = makeNode(TransactionStmt);
+
+ n->kind = TRANS_STMT_ROLLBACK_PREPARED;
+ n->gid = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 41341 "gram.c"
+ break;
+
+ case 1433: /* TransactionStmtLegacy: BEGIN_P opt_transaction transaction_mode_list_or_empty */
+#line 10878 "gram.y"
+ {
+ TransactionStmt *n = makeNode(TransactionStmt);
+
+ n->kind = TRANS_STMT_BEGIN;
+ n->options = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 41353 "gram.c"
+ break;
+
+ case 1434: /* TransactionStmtLegacy: END_P opt_transaction opt_transaction_chain */
+#line 10886 "gram.y"
+ {
+ TransactionStmt *n = makeNode(TransactionStmt);
+
+ n->kind = TRANS_STMT_COMMIT;
+ n->options = NIL;
+ n->chain = (yyvsp[0].boolean);
+ (yyval.node) = (Node *) n;
+ }
+#line 41366 "gram.c"
+ break;
+
+ case 1438: /* transaction_mode_item: ISOLATION LEVEL iso_level */
+#line 10903 "gram.y"
+ { (yyval.defelt) = makeDefElem("transaction_isolation",
+ makeStringConst((yyvsp[0].str), (yylsp[0])), (yylsp[-2])); }
+#line 41373 "gram.c"
+ break;
+
+ case 1439: /* transaction_mode_item: READ ONLY */
+#line 10906 "gram.y"
+ { (yyval.defelt) = makeDefElem("transaction_read_only",
+ makeIntConst(true, (yylsp[-1])), (yylsp[-1])); }
+#line 41380 "gram.c"
+ break;
+
+ case 1440: /* transaction_mode_item: READ WRITE */
+#line 10909 "gram.y"
+ { (yyval.defelt) = makeDefElem("transaction_read_only",
+ makeIntConst(false, (yylsp[-1])), (yylsp[-1])); }
+#line 41387 "gram.c"
+ break;
+
+ case 1441: /* transaction_mode_item: DEFERRABLE */
+#line 10912 "gram.y"
+ { (yyval.defelt) = makeDefElem("transaction_deferrable",
+ makeIntConst(true, (yylsp[0])), (yylsp[0])); }
+#line 41394 "gram.c"
+ break;
+
+ case 1442: /* transaction_mode_item: NOT DEFERRABLE */
+#line 10915 "gram.y"
+ { (yyval.defelt) = makeDefElem("transaction_deferrable",
+ makeIntConst(false, (yylsp[-1])), (yylsp[-1])); }
+#line 41401 "gram.c"
+ break;
+
+ case 1443: /* transaction_mode_list: transaction_mode_item */
+#line 10922 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].defelt)); }
+#line 41407 "gram.c"
+ break;
+
+ case 1444: /* transaction_mode_list: transaction_mode_list ',' transaction_mode_item */
+#line 10924 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); }
+#line 41413 "gram.c"
+ break;
+
+ case 1445: /* transaction_mode_list: transaction_mode_list transaction_mode_item */
+#line 10926 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
+#line 41419 "gram.c"
+ break;
+
+ case 1447: /* transaction_mode_list_or_empty: %empty */
+#line 10932 "gram.y"
+ { (yyval.list) = NIL; }
+#line 41425 "gram.c"
+ break;
+
+ case 1448: /* opt_transaction_chain: AND CHAIN */
+#line 10936 "gram.y"
+ { (yyval.boolean) = true; }
+#line 41431 "gram.c"
+ break;
+
+ case 1449: /* opt_transaction_chain: AND NO CHAIN */
+#line 10937 "gram.y"
+ { (yyval.boolean) = false; }
+#line 41437 "gram.c"
+ break;
+
+ case 1450: /* opt_transaction_chain: %empty */
+#line 10938 "gram.y"
+ { (yyval.boolean) = false; }
+#line 41443 "gram.c"
+ break;
+
+ case 1451: /* ViewStmt: CREATE OptTemp VIEW qualified_name opt_column_list opt_reloptions AS SelectStmt opt_check_option */
+#line 10952 "gram.y"
+ {
+ 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 41460 "gram.c"
+ break;
+
+ case 1452: /* ViewStmt: CREATE OR REPLACE OptTemp VIEW qualified_name opt_column_list opt_reloptions AS SelectStmt opt_check_option */
+#line 10966 "gram.y"
+ {
+ 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 41477 "gram.c"
+ break;
+
+ case 1453: /* ViewStmt: CREATE OptTemp RECURSIVE VIEW qualified_name '(' columnList ')' opt_reloptions AS SelectStmt opt_check_option */
+#line 10980 "gram.y"
+ {
+ 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 41499 "gram.c"
+ break;
+
+ case 1454: /* ViewStmt: CREATE OR REPLACE OptTemp RECURSIVE VIEW qualified_name '(' columnList ')' opt_reloptions AS SelectStmt opt_check_option */
+#line 10999 "gram.y"
+ {
+ 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 41521 "gram.c"
+ break;
+
+ case 1455: /* opt_check_option: WITH CHECK OPTION */
+#line 11019 "gram.y"
+ { (yyval.ival) = CASCADED_CHECK_OPTION; }
+#line 41527 "gram.c"
+ break;
+
+ case 1456: /* opt_check_option: WITH CASCADED CHECK OPTION */
+#line 11020 "gram.y"
+ { (yyval.ival) = CASCADED_CHECK_OPTION; }
+#line 41533 "gram.c"
+ break;
+
+ case 1457: /* opt_check_option: WITH LOCAL CHECK OPTION */
+#line 11021 "gram.y"
+ { (yyval.ival) = LOCAL_CHECK_OPTION; }
+#line 41539 "gram.c"
+ break;
+
+ case 1458: /* opt_check_option: %empty */
+#line 11022 "gram.y"
+ { (yyval.ival) = NO_CHECK_OPTION; }
+#line 41545 "gram.c"
+ break;
+
+ case 1459: /* LoadStmt: LOAD file_name */
+#line 11033 "gram.y"
+ {
+ LoadStmt *n = makeNode(LoadStmt);
+
+ n->filename = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 41556 "gram.c"
+ break;
+
+ case 1460: /* CreatedbStmt: CREATE DATABASE name opt_with createdb_opt_list */
+#line 11050 "gram.y"
+ {
+ CreatedbStmt *n = makeNode(CreatedbStmt);
+
+ n->dbname = (yyvsp[-2].str);
+ n->options = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 41568 "gram.c"
+ break;
+
+ case 1461: /* createdb_opt_list: createdb_opt_items */
+#line 11060 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 41574 "gram.c"
+ break;
+
+ case 1462: /* createdb_opt_list: %empty */
+#line 11061 "gram.y"
+ { (yyval.list) = NIL; }
+#line 41580 "gram.c"
+ break;
+
+ case 1463: /* createdb_opt_items: createdb_opt_item */
+#line 11065 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].defelt)); }
+#line 41586 "gram.c"
+ break;
+
+ case 1464: /* createdb_opt_items: createdb_opt_items createdb_opt_item */
+#line 11066 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
+#line 41592 "gram.c"
+ break;
+
+ case 1465: /* createdb_opt_item: createdb_opt_name opt_equal NumericOnly */
+#line 11071 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem((yyvsp[-2].str), (yyvsp[0].node), (yylsp[-2]));
+ }
+#line 41600 "gram.c"
+ break;
+
+ case 1466: /* createdb_opt_item: createdb_opt_name opt_equal opt_boolean_or_string */
+#line 11075 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) makeString((yyvsp[0].str)), (yylsp[-2]));
+ }
+#line 41608 "gram.c"
+ break;
+
+ case 1467: /* createdb_opt_item: createdb_opt_name opt_equal DEFAULT */
+#line 11079 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem((yyvsp[-2].str), NULL, (yylsp[-2]));
+ }
+#line 41616 "gram.c"
+ break;
+
+ case 1468: /* createdb_opt_name: IDENT */
+#line 11096 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 41622 "gram.c"
+ break;
+
+ case 1469: /* createdb_opt_name: CONNECTION LIMIT */
+#line 11097 "gram.y"
+ { (yyval.str) = pstrdup("connection_limit"); }
+#line 41628 "gram.c"
+ break;
+
+ case 1470: /* createdb_opt_name: ENCODING */
+#line 11098 "gram.y"
+ { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
+#line 41634 "gram.c"
+ break;
+
+ case 1471: /* createdb_opt_name: LOCATION */
+#line 11099 "gram.y"
+ { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
+#line 41640 "gram.c"
+ break;
+
+ case 1472: /* createdb_opt_name: OWNER */
+#line 11100 "gram.y"
+ { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
+#line 41646 "gram.c"
+ break;
+
+ case 1473: /* createdb_opt_name: TABLESPACE */
+#line 11101 "gram.y"
+ { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
+#line 41652 "gram.c"
+ break;
+
+ case 1474: /* createdb_opt_name: TEMPLATE */
+#line 11102 "gram.y"
+ { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
+#line 41658 "gram.c"
+ break;
+
+ case 1477: /* AlterDatabaseStmt: ALTER DATABASE name WITH createdb_opt_list */
+#line 11122 "gram.y"
+ {
+ AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt);
+
+ n->dbname = (yyvsp[-2].str);
+ n->options = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 41670 "gram.c"
+ break;
+
+ case 1478: /* AlterDatabaseStmt: ALTER DATABASE name createdb_opt_list */
+#line 11130 "gram.y"
+ {
+ AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt);
+
+ n->dbname = (yyvsp[-1].str);
+ n->options = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 41682 "gram.c"
+ break;
+
+ case 1479: /* AlterDatabaseStmt: ALTER DATABASE name SET TABLESPACE name */
+#line 11138 "gram.y"
+ {
+ 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 41695 "gram.c"
+ break;
+
+ case 1480: /* AlterDatabaseStmt: ALTER DATABASE name REFRESH COLLATION VERSION_P */
+#line 11147 "gram.y"
+ {
+ AlterDatabaseRefreshCollStmt *n = makeNode(AlterDatabaseRefreshCollStmt);
+
+ n->dbname = (yyvsp[-3].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 41706 "gram.c"
+ break;
+
+ case 1481: /* AlterDatabaseSetStmt: ALTER DATABASE name SetResetClause */
+#line 11157 "gram.y"
+ {
+ AlterDatabaseSetStmt *n = makeNode(AlterDatabaseSetStmt);
+
+ n->dbname = (yyvsp[-1].str);
+ n->setstmt = (yyvsp[0].vsetstmt);
+ (yyval.node) = (Node *) n;
+ }
+#line 41718 "gram.c"
+ break;
+
+ case 1482: /* DropdbStmt: DROP DATABASE name */
+#line 11175 "gram.y"
+ {
+ DropdbStmt *n = makeNode(DropdbStmt);
+
+ n->dbname = (yyvsp[0].str);
+ n->missing_ok = false;
+ n->options = NULL;
+ (yyval.node) = (Node *) n;
+ }
+#line 41731 "gram.c"
+ break;
+
+ case 1483: /* DropdbStmt: DROP DATABASE IF_P EXISTS name */
+#line 11184 "gram.y"
+ {
+ DropdbStmt *n = makeNode(DropdbStmt);
+
+ n->dbname = (yyvsp[0].str);
+ n->missing_ok = true;
+ n->options = NULL;
+ (yyval.node) = (Node *) n;
+ }
+#line 41744 "gram.c"
+ break;
+
+ case 1484: /* DropdbStmt: DROP DATABASE name opt_with '(' drop_option_list ')' */
+#line 11193 "gram.y"
+ {
+ DropdbStmt *n = makeNode(DropdbStmt);
+
+ n->dbname = (yyvsp[-4].str);
+ n->missing_ok = false;
+ n->options = (yyvsp[-1].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 41757 "gram.c"
+ break;
+
+ case 1485: /* DropdbStmt: DROP DATABASE IF_P EXISTS name opt_with '(' drop_option_list ')' */
+#line 11202 "gram.y"
+ {
+ DropdbStmt *n = makeNode(DropdbStmt);
+
+ n->dbname = (yyvsp[-4].str);
+ n->missing_ok = true;
+ n->options = (yyvsp[-1].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 41770 "gram.c"
+ break;
+
+ case 1486: /* drop_option_list: drop_option */
+#line 11214 "gram.y"
+ {
+ (yyval.list) = list_make1((Node *) (yyvsp[0].defelt));
+ }
+#line 41778 "gram.c"
+ break;
+
+ case 1487: /* drop_option_list: drop_option_list ',' drop_option */
+#line 11218 "gram.y"
+ {
+ (yyval.list) = lappend((yyvsp[-2].list), (Node *) (yyvsp[0].defelt));
+ }
+#line 41786 "gram.c"
+ break;
+
+ case 1488: /* drop_option: FORCE */
+#line 11229 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem("force", NULL, (yylsp[0]));
+ }
+#line 41794 "gram.c"
+ break;
+
+ case 1489: /* AlterCollationStmt: ALTER COLLATION any_name REFRESH VERSION_P */
+#line 11241 "gram.y"
+ {
+ AlterCollationStmt *n = makeNode(AlterCollationStmt);
+
+ n->collname = (yyvsp[-2].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 41805 "gram.c"
+ break;
+
+ case 1490: /* AlterSystemStmt: ALTER SYSTEM_P SET generic_set */
+#line 11259 "gram.y"
+ {
+ AlterSystemStmt *n = makeNode(AlterSystemStmt);
+
+ n->setstmt = (yyvsp[0].vsetstmt);
+ (yyval.node) = (Node *) n;
+ }
+#line 41816 "gram.c"
+ break;
+
+ case 1491: /* AlterSystemStmt: ALTER SYSTEM_P RESET generic_reset */
+#line 11266 "gram.y"
+ {
+ AlterSystemStmt *n = makeNode(AlterSystemStmt);
+
+ n->setstmt = (yyvsp[0].vsetstmt);
+ (yyval.node) = (Node *) n;
+ }
+#line 41827 "gram.c"
+ break;
+
+ case 1492: /* CreateDomainStmt: CREATE DOMAIN_P any_name opt_as Typename ColQualList */
+#line 11283 "gram.y"
+ {
+ 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 41841 "gram.c"
+ break;
+
+ case 1493: /* AlterDomainStmt: ALTER DOMAIN_P any_name alter_column_default */
+#line 11297 "gram.y"
+ {
+ AlterDomainStmt *n = makeNode(AlterDomainStmt);
+
+ n->subtype = 'T';
+ n->typeName = (yyvsp[-1].list);
+ n->def = (yyvsp[0].node);
+ (yyval.node) = (Node *) n;
+ }
+#line 41854 "gram.c"
+ break;
+
+ case 1494: /* AlterDomainStmt: ALTER DOMAIN_P any_name DROP NOT NULL_P */
+#line 11307 "gram.y"
+ {
+ AlterDomainStmt *n = makeNode(AlterDomainStmt);
+
+ n->subtype = 'N';
+ n->typeName = (yyvsp[-3].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 41866 "gram.c"
+ break;
+
+ case 1495: /* AlterDomainStmt: ALTER DOMAIN_P any_name SET NOT NULL_P */
+#line 11316 "gram.y"
+ {
+ AlterDomainStmt *n = makeNode(AlterDomainStmt);
+
+ n->subtype = 'O';
+ n->typeName = (yyvsp[-3].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 41878 "gram.c"
+ break;
+
+ case 1496: /* AlterDomainStmt: ALTER DOMAIN_P any_name ADD_P TableConstraint */
+#line 11325 "gram.y"
+ {
+ AlterDomainStmt *n = makeNode(AlterDomainStmt);
+
+ n->subtype = 'C';
+ n->typeName = (yyvsp[-2].list);
+ n->def = (yyvsp[0].node);
+ (yyval.node) = (Node *) n;
+ }
+#line 41891 "gram.c"
+ break;
+
+ case 1497: /* AlterDomainStmt: ALTER DOMAIN_P any_name DROP CONSTRAINT name opt_drop_behavior */
+#line 11335 "gram.y"
+ {
+ 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 41906 "gram.c"
+ break;
+
+ case 1498: /* AlterDomainStmt: ALTER DOMAIN_P any_name DROP CONSTRAINT IF_P EXISTS name opt_drop_behavior */
+#line 11347 "gram.y"
+ {
+ 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 41921 "gram.c"
+ break;
+
+ case 1499: /* AlterDomainStmt: ALTER DOMAIN_P any_name VALIDATE CONSTRAINT name */
+#line 11359 "gram.y"
+ {
+ AlterDomainStmt *n = makeNode(AlterDomainStmt);
+
+ n->subtype = 'V';
+ n->typeName = (yyvsp[-3].list);
+ n->name = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 41934 "gram.c"
+ break;
+
+ case 1502: /* AlterTSDictionaryStmt: ALTER TEXT_P SEARCH DICTIONARY any_name definition */
+#line 11382 "gram.y"
+ {
+ AlterTSDictionaryStmt *n = makeNode(AlterTSDictionaryStmt);
+
+ n->dictname = (yyvsp[-1].list);
+ n->options = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 41946 "gram.c"
+ break;
+
+ case 1503: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name ADD_P MAPPING FOR name_list any_with any_name_list */
+#line 11393 "gram.y"
+ {
+ 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 41962 "gram.c"
+ break;
+
+ case 1504: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name ALTER MAPPING FOR name_list any_with any_name_list */
+#line 11405 "gram.y"
+ {
+ 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 41978 "gram.c"
+ break;
+
+ case 1505: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name ALTER MAPPING REPLACE any_name any_with any_name */
+#line 11417 "gram.y"
+ {
+ 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 41994 "gram.c"
+ break;
+
+ case 1506: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name ALTER MAPPING FOR name_list REPLACE any_name any_with any_name */
+#line 11429 "gram.y"
+ {
+ 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 42010 "gram.c"
+ break;
+
+ case 1507: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name DROP MAPPING FOR name_list */
+#line 11441 "gram.y"
+ {
+ 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 42024 "gram.c"
+ break;
+
+ case 1508: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name DROP MAPPING IF_P EXISTS FOR name_list */
+#line 11451 "gram.y"
+ {
+ 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 42038 "gram.c"
+ break;
+
+ case 1511: /* CreateConversionStmt: CREATE opt_default CONVERSION_P any_name FOR Sconst TO Sconst FROM any_name */
+#line 11480 "gram.y"
+ {
+ 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 42053 "gram.c"
+ break;
+
+ case 1512: /* ClusterStmt: CLUSTER opt_verbose qualified_name cluster_index_specification */
+#line 11504 "gram.y"
+ {
+ ClusterStmt *n = makeNode(ClusterStmt);
+
+ n->relation = (yyvsp[-1].range);
+ n->indexname = (yyvsp[0].str);
+ n->params = NIL;
+ if ((yyvsp[-2].boolean))
+ n->params = lappend(n->params, makeDefElem("verbose", NULL, (yylsp[-2])));
+ (yyval.node) = (Node *) n;
+ }
+#line 42068 "gram.c"
+ break;
+
+ case 1513: /* ClusterStmt: CLUSTER '(' utility_option_list ')' qualified_name cluster_index_specification */
+#line 11516 "gram.y"
+ {
+ ClusterStmt *n = makeNode(ClusterStmt);
+
+ n->relation = (yyvsp[-1].range);
+ n->indexname = (yyvsp[0].str);
+ n->params = (yyvsp[-3].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 42081 "gram.c"
+ break;
+
+ case 1514: /* ClusterStmt: CLUSTER opt_verbose */
+#line 11525 "gram.y"
+ {
+ ClusterStmt *n = makeNode(ClusterStmt);
+
+ n->relation = NULL;
+ n->indexname = NULL;
+ n->params = NIL;
+ if ((yyvsp[0].boolean))
+ n->params = lappend(n->params, makeDefElem("verbose", NULL, (yylsp[0])));
+ (yyval.node) = (Node *) n;
+ }
+#line 42096 "gram.c"
+ break;
+
+ case 1515: /* ClusterStmt: CLUSTER opt_verbose name ON qualified_name */
+#line 11537 "gram.y"
+ {
+ ClusterStmt *n = makeNode(ClusterStmt);
+
+ n->relation = (yyvsp[0].range);
+ n->indexname = (yyvsp[-2].str);
+ n->params = NIL;
+ if ((yyvsp[-3].boolean))
+ n->params = lappend(n->params, makeDefElem("verbose", NULL, (yylsp[-3])));
+ (yyval.node) = (Node *) n;
+ }
+#line 42111 "gram.c"
+ break;
+
+ case 1516: /* cluster_index_specification: USING name */
+#line 11550 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 42117 "gram.c"
+ break;
+
+ case 1517: /* cluster_index_specification: %empty */
+#line 11551 "gram.y"
+ { (yyval.str) = NULL; }
+#line 42123 "gram.c"
+ break;
+
+ case 1518: /* VacuumStmt: VACUUM opt_full opt_freeze opt_verbose opt_analyze opt_vacuum_relation_list */
+#line 11564 "gram.y"
+ {
+ VacuumStmt *n = makeNode(VacuumStmt);
+
+ n->options = NIL;
+ if ((yyvsp[-4].boolean))
+ n->options = lappend(n->options,
+ makeDefElem("full", NULL, (yylsp[-4])));
+ if ((yyvsp[-3].boolean))
+ n->options = lappend(n->options,
+ makeDefElem("freeze", NULL, (yylsp[-3])));
+ if ((yyvsp[-2].boolean))
+ n->options = lappend(n->options,
+ makeDefElem("verbose", NULL, (yylsp[-2])));
+ if ((yyvsp[-1].boolean))
+ n->options = lappend(n->options,
+ makeDefElem("analyze", NULL, (yylsp[-1])));
+ n->rels = (yyvsp[0].list);
+ n->is_vacuumcmd = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 42148 "gram.c"
+ break;
+
+ case 1519: /* VacuumStmt: VACUUM '(' utility_option_list ')' opt_vacuum_relation_list */
+#line 11585 "gram.y"
+ {
+ VacuumStmt *n = makeNode(VacuumStmt);
+
+ n->options = (yyvsp[-2].list);
+ n->rels = (yyvsp[0].list);
+ n->is_vacuumcmd = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 42161 "gram.c"
+ break;
+
+ case 1520: /* AnalyzeStmt: analyze_keyword opt_verbose opt_vacuum_relation_list */
+#line 11596 "gram.y"
+ {
+ VacuumStmt *n = makeNode(VacuumStmt);
+
+ n->options = NIL;
+ if ((yyvsp[-1].boolean))
+ n->options = lappend(n->options,
+ makeDefElem("verbose", NULL, (yylsp[-1])));
+ n->rels = (yyvsp[0].list);
+ n->is_vacuumcmd = false;
+ (yyval.node) = (Node *) n;
+ }
+#line 42177 "gram.c"
+ break;
+
+ case 1521: /* AnalyzeStmt: analyze_keyword '(' utility_option_list ')' opt_vacuum_relation_list */
+#line 11608 "gram.y"
+ {
+ VacuumStmt *n = makeNode(VacuumStmt);
+
+ n->options = (yyvsp[-2].list);
+ n->rels = (yyvsp[0].list);
+ n->is_vacuumcmd = false;
+ (yyval.node) = (Node *) n;
+ }
+#line 42190 "gram.c"
+ break;
+
+ case 1522: /* utility_option_list: utility_option_elem */
+#line 11620 "gram.y"
+ {
+ (yyval.list) = list_make1((yyvsp[0].defelt));
+ }
+#line 42198 "gram.c"
+ break;
+
+ case 1523: /* utility_option_list: utility_option_list ',' utility_option_elem */
+#line 11624 "gram.y"
+ {
+ (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt));
+ }
+#line 42206 "gram.c"
+ break;
+
+ case 1526: /* utility_option_elem: utility_option_name utility_option_arg */
+#line 11636 "gram.y"
+ {
+ (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1]));
+ }
+#line 42214 "gram.c"
+ break;
+
+ case 1527: /* utility_option_name: NonReservedWord */
+#line 11642 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 42220 "gram.c"
+ break;
+
+ case 1528: /* utility_option_name: analyze_keyword */
+#line 11643 "gram.y"
+ { (yyval.str) = "analyze"; }
+#line 42226 "gram.c"
+ break;
+
+ case 1529: /* utility_option_arg: opt_boolean_or_string */
+#line 11647 "gram.y"
+ { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
+#line 42232 "gram.c"
+ break;
+
+ case 1530: /* utility_option_arg: NumericOnly */
+#line 11648 "gram.y"
+ { (yyval.node) = (Node *) (yyvsp[0].node); }
+#line 42238 "gram.c"
+ break;
+
+ case 1531: /* utility_option_arg: %empty */
+#line 11649 "gram.y"
+ { (yyval.node) = NULL; }
+#line 42244 "gram.c"
+ break;
+
+ case 1532: /* opt_analyze: analyze_keyword */
+#line 11653 "gram.y"
+ { (yyval.boolean) = true; }
+#line 42250 "gram.c"
+ break;
+
+ case 1533: /* opt_analyze: %empty */
+#line 11654 "gram.y"
+ { (yyval.boolean) = false; }
+#line 42256 "gram.c"
+ break;
+
+ case 1534: /* opt_verbose: VERBOSE */
+#line 11658 "gram.y"
+ { (yyval.boolean) = true; }
+#line 42262 "gram.c"
+ break;
+
+ case 1535: /* opt_verbose: %empty */
+#line 11659 "gram.y"
+ { (yyval.boolean) = false; }
+#line 42268 "gram.c"
+ break;
+
+ case 1536: /* opt_full: FULL */
+#line 11662 "gram.y"
+ { (yyval.boolean) = true; }
+#line 42274 "gram.c"
+ break;
+
+ case 1537: /* opt_full: %empty */
+#line 11663 "gram.y"
+ { (yyval.boolean) = false; }
+#line 42280 "gram.c"
+ break;
+
+ case 1538: /* opt_freeze: FREEZE */
+#line 11666 "gram.y"
+ { (yyval.boolean) = true; }
+#line 42286 "gram.c"
+ break;
+
+ case 1539: /* opt_freeze: %empty */
+#line 11667 "gram.y"
+ { (yyval.boolean) = false; }
+#line 42292 "gram.c"
+ break;
+
+ case 1540: /* opt_name_list: '(' name_list ')' */
+#line 11671 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 42298 "gram.c"
+ break;
+
+ case 1541: /* opt_name_list: %empty */
+#line 11672 "gram.y"
+ { (yyval.list) = NIL; }
+#line 42304 "gram.c"
+ break;
+
+ case 1542: /* vacuum_relation: qualified_name opt_name_list */
+#line 11677 "gram.y"
+ {
+ (yyval.node) = (Node *) makeVacuumRelation((yyvsp[-1].range), InvalidOid, (yyvsp[0].list));
+ }
+#line 42312 "gram.c"
+ break;
+
+ case 1543: /* vacuum_relation_list: vacuum_relation */
+#line 11684 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].node)); }
+#line 42318 "gram.c"
+ break;
+
+ case 1544: /* vacuum_relation_list: vacuum_relation_list ',' vacuum_relation */
+#line 11686 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
+#line 42324 "gram.c"
+ break;
+
+ case 1545: /* opt_vacuum_relation_list: vacuum_relation_list */
+#line 11690 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 42330 "gram.c"
+ break;
+
+ case 1546: /* opt_vacuum_relation_list: %empty */
+#line 11691 "gram.y"
+ { (yyval.list) = NIL; }
+#line 42336 "gram.c"
+ break;
+
+ case 1547: /* ExplainStmt: EXPLAIN ExplainableStmt */
+#line 11705 "gram.y"
+ {
+ ExplainStmt *n = makeNode(ExplainStmt);
+
+ n->query = (yyvsp[0].node);
+ n->options = NIL;
+ (yyval.node) = (Node *) n;
+ }
+#line 42348 "gram.c"
+ break;
+
+ case 1548: /* ExplainStmt: EXPLAIN analyze_keyword opt_verbose ExplainableStmt */
+#line 11713 "gram.y"
+ {
+ 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 42363 "gram.c"
+ break;
+
+ case 1549: /* ExplainStmt: EXPLAIN VERBOSE ExplainableStmt */
+#line 11724 "gram.y"
+ {
+ ExplainStmt *n = makeNode(ExplainStmt);
+
+ n->query = (yyvsp[0].node);
+ n->options = list_make1(makeDefElem("verbose", NULL, (yylsp[-1])));
+ (yyval.node) = (Node *) n;
+ }
+#line 42375 "gram.c"
+ break;
+
+ case 1550: /* ExplainStmt: EXPLAIN '(' utility_option_list ')' ExplainableStmt */
+#line 11732 "gram.y"
+ {
+ ExplainStmt *n = makeNode(ExplainStmt);
+
+ n->query = (yyvsp[0].node);
+ n->options = (yyvsp[-2].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 42387 "gram.c"
+ break;
+
+ case 1561: /* PrepareStmt: PREPARE name prep_type_clause AS PreparableStmt */
+#line 11762 "gram.y"
+ {
+ PrepareStmt *n = makeNode(PrepareStmt);
+
+ n->name = (yyvsp[-3].str);
+ n->argtypes = (yyvsp[-2].list);
+ n->query = (yyvsp[0].node);
+ (yyval.node) = (Node *) n;
+ }
+#line 42400 "gram.c"
+ break;
+
+ case 1562: /* prep_type_clause: '(' type_list ')' */
+#line 11772 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 42406 "gram.c"
+ break;
+
+ case 1563: /* prep_type_clause: %empty */
+#line 11773 "gram.y"
+ { (yyval.list) = NIL; }
+#line 42412 "gram.c"
+ break;
+
+ case 1569: /* ExecuteStmt: EXECUTE name execute_param_clause */
+#line 11792 "gram.y"
+ {
+ ExecuteStmt *n = makeNode(ExecuteStmt);
+
+ n->name = (yyvsp[-1].str);
+ n->params = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 42424 "gram.c"
+ break;
+
+ case 1570: /* ExecuteStmt: CREATE OptTemp TABLE create_as_target AS EXECUTE name execute_param_clause opt_with_data */
+#line 11801 "gram.y"
+ {
+ 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->objtype = 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 42445 "gram.c"
+ break;
+
+ case 1571: /* ExecuteStmt: CREATE OptTemp TABLE IF_P NOT EXISTS create_as_target AS EXECUTE name execute_param_clause opt_with_data */
+#line 11819 "gram.y"
+ {
+ 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->objtype = 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 42466 "gram.c"
+ break;
+
+ case 1572: /* execute_param_clause: '(' expr_list ')' */
+#line 11837 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 42472 "gram.c"
+ break;
+
+ case 1573: /* execute_param_clause: %empty */
+#line 11838 "gram.y"
+ { (yyval.list) = NIL; }
+#line 42478 "gram.c"
+ break;
+
+ case 1574: /* DeallocateStmt: DEALLOCATE name */
+#line 11849 "gram.y"
+ {
+ DeallocateStmt *n = makeNode(DeallocateStmt);
+
+ n->name = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 42489 "gram.c"
+ break;
+
+ case 1575: /* DeallocateStmt: DEALLOCATE PREPARE name */
+#line 11856 "gram.y"
+ {
+ DeallocateStmt *n = makeNode(DeallocateStmt);
+
+ n->name = (yyvsp[0].str);
+ (yyval.node) = (Node *) n;
+ }
+#line 42500 "gram.c"
+ break;
+
+ case 1576: /* DeallocateStmt: DEALLOCATE ALL */
+#line 11863 "gram.y"
+ {
+ DeallocateStmt *n = makeNode(DeallocateStmt);
+
+ n->name = NULL;
+ (yyval.node) = (Node *) n;
+ }
+#line 42511 "gram.c"
+ break;
+
+ case 1577: /* DeallocateStmt: DEALLOCATE PREPARE ALL */
+#line 11870 "gram.y"
+ {
+ DeallocateStmt *n = makeNode(DeallocateStmt);
+
+ n->name = NULL;
+ (yyval.node) = (Node *) n;
+ }
+#line 42522 "gram.c"
+ break;
+
+ case 1578: /* InsertStmt: opt_with_clause INSERT INTO insert_target insert_rest opt_on_conflict returning_clause */
+#line 11888 "gram.y"
+ {
+ (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 42534 "gram.c"
+ break;
+
+ case 1579: /* insert_target: qualified_name */
+#line 11905 "gram.y"
+ {
+ (yyval.range) = (yyvsp[0].range);
+ }
+#line 42542 "gram.c"
+ break;
+
+ case 1580: /* insert_target: qualified_name AS ColId */
+#line 11909 "gram.y"
+ {
+ (yyvsp[-2].range)->alias = makeAlias((yyvsp[0].str), NIL);
+ (yyval.range) = (yyvsp[-2].range);
+ }
+#line 42551 "gram.c"
+ break;
+
+ case 1581: /* insert_rest: SelectStmt */
+#line 11917 "gram.y"
+ {
+ (yyval.istmt) = makeNode(InsertStmt);
+ (yyval.istmt)->cols = NIL;
+ (yyval.istmt)->selectStmt = (yyvsp[0].node);
+ }
+#line 42561 "gram.c"
+ break;
+
+ case 1582: /* insert_rest: OVERRIDING override_kind VALUE_P SelectStmt */
+#line 11923 "gram.y"
+ {
+ (yyval.istmt) = makeNode(InsertStmt);
+ (yyval.istmt)->cols = NIL;
+ (yyval.istmt)->override = (yyvsp[-2].ival);
+ (yyval.istmt)->selectStmt = (yyvsp[0].node);
+ }
+#line 42572 "gram.c"
+ break;
+
+ case 1583: /* insert_rest: '(' insert_column_list ')' SelectStmt */
+#line 11930 "gram.y"
+ {
+ (yyval.istmt) = makeNode(InsertStmt);
+ (yyval.istmt)->cols = (yyvsp[-2].list);
+ (yyval.istmt)->selectStmt = (yyvsp[0].node);
+ }
+#line 42582 "gram.c"
+ break;
+
+ case 1584: /* insert_rest: '(' insert_column_list ')' OVERRIDING override_kind VALUE_P SelectStmt */
+#line 11936 "gram.y"
+ {
+ (yyval.istmt) = makeNode(InsertStmt);
+ (yyval.istmt)->cols = (yyvsp[-5].list);
+ (yyval.istmt)->override = (yyvsp[-2].ival);
+ (yyval.istmt)->selectStmt = (yyvsp[0].node);
+ }
+#line 42593 "gram.c"
+ break;
+
+ case 1585: /* insert_rest: DEFAULT VALUES */
+#line 11943 "gram.y"
+ {
+ (yyval.istmt) = makeNode(InsertStmt);
+ (yyval.istmt)->cols = NIL;
+ (yyval.istmt)->selectStmt = NULL;
+ }
+#line 42603 "gram.c"
+ break;
+
+ case 1586: /* override_kind: USER */
+#line 11951 "gram.y"
+ { (yyval.ival) = OVERRIDING_USER_VALUE; }
+#line 42609 "gram.c"
+ break;
+
+ case 1587: /* override_kind: SYSTEM_P */
+#line 11952 "gram.y"
+ { (yyval.ival) = OVERRIDING_SYSTEM_VALUE; }
+#line 42615 "gram.c"
+ break;
+
+ case 1588: /* insert_column_list: insert_column_item */
+#line 11957 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].target)); }
+#line 42621 "gram.c"
+ break;
+
+ case 1589: /* insert_column_list: insert_column_list ',' insert_column_item */
+#line 11959 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); }
+#line 42627 "gram.c"
+ break;
+
+ case 1590: /* insert_column_item: ColId opt_indirection */
+#line 11964 "gram.y"
+ {
+ (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 42639 "gram.c"
+ break;
+
+ case 1591: /* opt_on_conflict: ON CONFLICT opt_conf_expr DO UPDATE SET set_clause_list where_clause */
+#line 11975 "gram.y"
+ {
+ (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 42652 "gram.c"
+ break;
+
+ case 1592: /* opt_on_conflict: ON CONFLICT opt_conf_expr DO NOTHING */
+#line 11985 "gram.y"
+ {
+ (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 42665 "gram.c"
+ break;
+
+ case 1593: /* opt_on_conflict: %empty */
+#line 11994 "gram.y"
+ {
+ (yyval.onconflict) = NULL;
+ }
+#line 42673 "gram.c"
+ break;
+
+ case 1594: /* opt_conf_expr: '(' index_params ')' where_clause */
+#line 12001 "gram.y"
+ {
+ (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 42685 "gram.c"
+ break;
+
+ case 1595: /* opt_conf_expr: ON CONSTRAINT name */
+#line 12010 "gram.y"
+ {
+ (yyval.infer) = makeNode(InferClause);
+ (yyval.infer)->indexElems = NIL;
+ (yyval.infer)->whereClause = NULL;
+ (yyval.infer)->conname = (yyvsp[0].str);
+ (yyval.infer)->location = (yylsp[-2]);
+ }
+#line 42697 "gram.c"
+ break;
+
+ case 1596: /* opt_conf_expr: %empty */
+#line 12018 "gram.y"
+ {
+ (yyval.infer) = NULL;
+ }
+#line 42705 "gram.c"
+ break;
+
+ case 1597: /* returning_clause: RETURNING target_list */
+#line 12024 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 42711 "gram.c"
+ break;
+
+ case 1598: /* returning_clause: %empty */
+#line 12025 "gram.y"
+ { (yyval.list) = NIL; }
+#line 42717 "gram.c"
+ break;
+
+ case 1599: /* DeleteStmt: opt_with_clause DELETE_P FROM relation_expr_opt_alias using_clause where_or_current_clause returning_clause */
+#line 12038 "gram.y"
+ {
+ 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 42732 "gram.c"
+ break;
+
+ case 1600: /* using_clause: USING from_list */
+#line 12051 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 42738 "gram.c"
+ break;
+
+ case 1601: /* using_clause: %empty */
+#line 12052 "gram.y"
+ { (yyval.list) = NIL; }
+#line 42744 "gram.c"
+ break;
+
+ case 1602: /* LockStmt: LOCK_P opt_table relation_expr_list opt_lock opt_nowait */
+#line 12064 "gram.y"
+ {
+ LockStmt *n = makeNode(LockStmt);
+
+ n->relations = (yyvsp[-2].list);
+ n->mode = (yyvsp[-1].ival);
+ n->nowait = (yyvsp[0].boolean);
+ (yyval.node) = (Node *) n;
+ }
+#line 42757 "gram.c"
+ break;
+
+ case 1603: /* opt_lock: IN_P lock_type MODE */
+#line 12074 "gram.y"
+ { (yyval.ival) = (yyvsp[-1].ival); }
+#line 42763 "gram.c"
+ break;
+
+ case 1604: /* opt_lock: %empty */
+#line 12075 "gram.y"
+ { (yyval.ival) = AccessExclusiveLock; }
+#line 42769 "gram.c"
+ break;
+
+ case 1605: /* lock_type: ACCESS SHARE */
+#line 12078 "gram.y"
+ { (yyval.ival) = AccessShareLock; }
+#line 42775 "gram.c"
+ break;
+
+ case 1606: /* lock_type: ROW SHARE */
+#line 12079 "gram.y"
+ { (yyval.ival) = RowShareLock; }
+#line 42781 "gram.c"
+ break;
+
+ case 1607: /* lock_type: ROW EXCLUSIVE */
+#line 12080 "gram.y"
+ { (yyval.ival) = RowExclusiveLock; }
+#line 42787 "gram.c"
+ break;
+
+ case 1608: /* lock_type: SHARE UPDATE EXCLUSIVE */
+#line 12081 "gram.y"
+ { (yyval.ival) = ShareUpdateExclusiveLock; }
+#line 42793 "gram.c"
+ break;
+
+ case 1609: /* lock_type: SHARE */
+#line 12082 "gram.y"
+ { (yyval.ival) = ShareLock; }
+#line 42799 "gram.c"
+ break;
+
+ case 1610: /* lock_type: SHARE ROW EXCLUSIVE */
+#line 12083 "gram.y"
+ { (yyval.ival) = ShareRowExclusiveLock; }
+#line 42805 "gram.c"
+ break;
+
+ case 1611: /* lock_type: EXCLUSIVE */
+#line 12084 "gram.y"
+ { (yyval.ival) = ExclusiveLock; }
+#line 42811 "gram.c"
+ break;
+
+ case 1612: /* lock_type: ACCESS EXCLUSIVE */
+#line 12085 "gram.y"
+ { (yyval.ival) = AccessExclusiveLock; }
+#line 42817 "gram.c"
+ break;
+
+ case 1613: /* opt_nowait: NOWAIT */
+#line 12088 "gram.y"
+ { (yyval.boolean) = true; }
+#line 42823 "gram.c"
+ break;
+
+ case 1614: /* opt_nowait: %empty */
+#line 12089 "gram.y"
+ { (yyval.boolean) = false; }
+#line 42829 "gram.c"
+ break;
+
+ case 1615: /* opt_nowait_or_skip: NOWAIT */
+#line 12093 "gram.y"
+ { (yyval.ival) = LockWaitError; }
+#line 42835 "gram.c"
+ break;
+
+ case 1616: /* opt_nowait_or_skip: SKIP LOCKED */
+#line 12094 "gram.y"
+ { (yyval.ival) = LockWaitSkip; }
+#line 42841 "gram.c"
+ break;
+
+ case 1617: /* opt_nowait_or_skip: %empty */
+#line 12095 "gram.y"
+ { (yyval.ival) = LockWaitBlock; }
+#line 42847 "gram.c"
+ break;
+
+ case 1618: /* UpdateStmt: opt_with_clause UPDATE relation_expr_opt_alias SET set_clause_list from_clause where_or_current_clause returning_clause */
+#line 12111 "gram.y"
+ {
+ 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 42863 "gram.c"
+ break;
+
+ case 1619: /* set_clause_list: set_clause */
+#line 12125 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 42869 "gram.c"
+ break;
+
+ case 1620: /* set_clause_list: set_clause_list ',' set_clause */
+#line 12126 "gram.y"
+ { (yyval.list) = list_concat((yyvsp[-2].list),(yyvsp[0].list)); }
+#line 42875 "gram.c"
+ break;
+
+ case 1621: /* set_clause: set_target '=' a_expr */
+#line 12131 "gram.y"
+ {
+ (yyvsp[-2].target)->val = (Node *) (yyvsp[0].node);
+ (yyval.list) = list_make1((yyvsp[-2].target));
+ }
+#line 42884 "gram.c"
+ break;
+
+ case 1622: /* set_clause: '(' set_target_list ')' '=' a_expr */
+#line 12136 "gram.y"
+ {
+ 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 42909 "gram.c"
+ break;
+
+ case 1623: /* set_target: ColId opt_indirection */
+#line 12160 "gram.y"
+ {
+ (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 42921 "gram.c"
+ break;
+
+ case 1624: /* set_target_list: set_target */
+#line 12170 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].target)); }
+#line 42927 "gram.c"
+ break;
+
+ case 1625: /* set_target_list: set_target_list ',' set_target */
+#line 12171 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list),(yyvsp[0].target)); }
+#line 42933 "gram.c"
+ break;
+
+ case 1626: /* MergeStmt: opt_with_clause MERGE INTO relation_expr_opt_alias USING table_ref ON a_expr merge_when_list */
+#line 12187 "gram.y"
+ {
+ MergeStmt *m = makeNode(MergeStmt);
+
+ m->withClause = (yyvsp[-8].with);
+ m->relation = (yyvsp[-5].range);
+ m->sourceRelation = (yyvsp[-3].node);
+ m->joinCondition = (yyvsp[-1].node);
+ m->mergeWhenClauses = (yyvsp[0].list);
+
+ (yyval.node) = (Node *) m;
+ }
+#line 42949 "gram.c"
+ break;
+
+ case 1627: /* merge_when_list: merge_when_clause */
+#line 12201 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].node)); }
+#line 42955 "gram.c"
+ break;
+
+ case 1628: /* merge_when_list: merge_when_list merge_when_clause */
+#line 12202 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-1].list),(yyvsp[0].node)); }
+#line 42961 "gram.c"
+ break;
+
+ case 1629: /* merge_when_clause: WHEN MATCHED opt_merge_when_condition THEN merge_update */
+#line 12207 "gram.y"
+ {
+ (yyvsp[0].mergewhen)->matched = true;
+ (yyvsp[0].mergewhen)->condition = (yyvsp[-2].node);
+
+ (yyval.node) = (Node *) (yyvsp[0].mergewhen);
+ }
+#line 42972 "gram.c"
+ break;
+
+ case 1630: /* merge_when_clause: WHEN MATCHED opt_merge_when_condition THEN merge_delete */
+#line 12214 "gram.y"
+ {
+ (yyvsp[0].mergewhen)->matched = true;
+ (yyvsp[0].mergewhen)->condition = (yyvsp[-2].node);
+
+ (yyval.node) = (Node *) (yyvsp[0].mergewhen);
+ }
+#line 42983 "gram.c"
+ break;
+
+ case 1631: /* merge_when_clause: WHEN NOT MATCHED opt_merge_when_condition THEN merge_insert */
+#line 12221 "gram.y"
+ {
+ (yyvsp[0].mergewhen)->matched = false;
+ (yyvsp[0].mergewhen)->condition = (yyvsp[-2].node);
+
+ (yyval.node) = (Node *) (yyvsp[0].mergewhen);
+ }
+#line 42994 "gram.c"
+ break;
+
+ case 1632: /* merge_when_clause: WHEN MATCHED opt_merge_when_condition THEN DO NOTHING */
+#line 12228 "gram.y"
+ {
+ MergeWhenClause *m = makeNode(MergeWhenClause);
+
+ m->matched = true;
+ m->commandType = CMD_NOTHING;
+ m->condition = (yyvsp[-3].node);
+
+ (yyval.node) = (Node *) m;
+ }
+#line 43008 "gram.c"
+ break;
+
+ case 1633: /* merge_when_clause: WHEN NOT MATCHED opt_merge_when_condition THEN DO NOTHING */
+#line 12238 "gram.y"
+ {
+ MergeWhenClause *m = makeNode(MergeWhenClause);
+
+ m->matched = false;
+ m->commandType = CMD_NOTHING;
+ m->condition = (yyvsp[-3].node);
+
+ (yyval.node) = (Node *) m;
+ }
+#line 43022 "gram.c"
+ break;
+
+ case 1634: /* opt_merge_when_condition: AND a_expr */
+#line 12250 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 43028 "gram.c"
+ break;
+
+ case 1635: /* opt_merge_when_condition: %empty */
+#line 12251 "gram.y"
+ { (yyval.node) = NULL; }
+#line 43034 "gram.c"
+ break;
+
+ case 1636: /* merge_update: UPDATE SET set_clause_list */
+#line 12256 "gram.y"
+ {
+ MergeWhenClause *n = makeNode(MergeWhenClause);
+ n->commandType = CMD_UPDATE;
+ n->override = OVERRIDING_NOT_SET;
+ n->targetList = (yyvsp[0].list);
+ n->values = NIL;
+
+ (yyval.mergewhen) = n;
+ }
+#line 43048 "gram.c"
+ break;
+
+ case 1637: /* merge_delete: DELETE_P */
+#line 12269 "gram.y"
+ {
+ MergeWhenClause *n = makeNode(MergeWhenClause);
+ n->commandType = CMD_DELETE;
+ n->override = OVERRIDING_NOT_SET;
+ n->targetList = NIL;
+ n->values = NIL;
+
+ (yyval.mergewhen) = n;
+ }
+#line 43062 "gram.c"
+ break;
+
+ case 1638: /* merge_insert: INSERT merge_values_clause */
+#line 12282 "gram.y"
+ {
+ MergeWhenClause *n = makeNode(MergeWhenClause);
+ n->commandType = CMD_INSERT;
+ n->override = OVERRIDING_NOT_SET;
+ n->targetList = NIL;
+ n->values = (yyvsp[0].list);
+ (yyval.mergewhen) = n;
+ }
+#line 43075 "gram.c"
+ break;
+
+ case 1639: /* merge_insert: INSERT OVERRIDING override_kind VALUE_P merge_values_clause */
+#line 12291 "gram.y"
+ {
+ MergeWhenClause *n = makeNode(MergeWhenClause);
+ n->commandType = CMD_INSERT;
+ n->override = (yyvsp[-2].ival);
+ n->targetList = NIL;
+ n->values = (yyvsp[0].list);
+ (yyval.mergewhen) = n;
+ }
+#line 43088 "gram.c"
+ break;
+
+ case 1640: /* merge_insert: INSERT '(' insert_column_list ')' merge_values_clause */
+#line 12300 "gram.y"
+ {
+ MergeWhenClause *n = makeNode(MergeWhenClause);
+ n->commandType = CMD_INSERT;
+ n->override = OVERRIDING_NOT_SET;
+ n->targetList = (yyvsp[-2].list);
+ n->values = (yyvsp[0].list);
+ (yyval.mergewhen) = n;
+ }
+#line 43101 "gram.c"
+ break;
+
+ case 1641: /* merge_insert: INSERT '(' insert_column_list ')' OVERRIDING override_kind VALUE_P merge_values_clause */
+#line 12309 "gram.y"
+ {
+ MergeWhenClause *n = makeNode(MergeWhenClause);
+ n->commandType = CMD_INSERT;
+ n->override = (yyvsp[-2].ival);
+ n->targetList = (yyvsp[-5].list);
+ n->values = (yyvsp[0].list);
+ (yyval.mergewhen) = n;
+ }
+#line 43114 "gram.c"
+ break;
+
+ case 1642: /* merge_insert: INSERT DEFAULT VALUES */
+#line 12318 "gram.y"
+ {
+ MergeWhenClause *n = makeNode(MergeWhenClause);
+ n->commandType = CMD_INSERT;
+ n->override = OVERRIDING_NOT_SET;
+ n->targetList = NIL;
+ n->values = NIL;
+ (yyval.mergewhen) = n;
+ }
+#line 43127 "gram.c"
+ break;
+
+ case 1643: /* merge_values_clause: VALUES '(' expr_list ')' */
+#line 12330 "gram.y"
+ {
+ (yyval.list) = (yyvsp[-1].list);
+ }
+#line 43135 "gram.c"
+ break;
+
+ case 1644: /* DeclareCursorStmt: DECLARE cursor_name cursor_options CURSOR opt_hold FOR SelectStmt */
+#line 12342 "gram.y"
+ {
+ 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 43149 "gram.c"
+ break;
+
+ case 1645: /* cursor_name: name */
+#line 12353 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 43155 "gram.c"
+ break;
+
+ case 1646: /* cursor_options: %empty */
+#line 12356 "gram.y"
+ { (yyval.ival) = 0; }
+#line 43161 "gram.c"
+ break;
+
+ case 1647: /* cursor_options: cursor_options NO SCROLL */
+#line 12357 "gram.y"
+ { (yyval.ival) = (yyvsp[-2].ival) | CURSOR_OPT_NO_SCROLL; }
+#line 43167 "gram.c"
+ break;
+
+ case 1648: /* cursor_options: cursor_options SCROLL */
+#line 12358 "gram.y"
+ { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_SCROLL; }
+#line 43173 "gram.c"
+ break;
+
+ case 1649: /* cursor_options: cursor_options BINARY */
+#line 12359 "gram.y"
+ { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_BINARY; }
+#line 43179 "gram.c"
+ break;
+
+ case 1650: /* cursor_options: cursor_options ASENSITIVE */
+#line 12360 "gram.y"
+ { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_ASENSITIVE; }
+#line 43185 "gram.c"
+ break;
+
+ case 1651: /* cursor_options: cursor_options INSENSITIVE */
+#line 12361 "gram.y"
+ { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_INSENSITIVE; }
+#line 43191 "gram.c"
+ break;
+
+ case 1652: /* opt_hold: %empty */
+#line 12364 "gram.y"
+ { (yyval.ival) = 0; }
+#line 43197 "gram.c"
+ break;
+
+ case 1653: /* opt_hold: WITH HOLD */
+#line 12365 "gram.y"
+ { (yyval.ival) = CURSOR_OPT_HOLD; }
+#line 43203 "gram.c"
+ break;
+
+ case 1654: /* opt_hold: WITHOUT HOLD */
+#line 12366 "gram.y"
+ { (yyval.ival) = 0; }
+#line 43209 "gram.c"
+ break;
+
+ case 1657: /* select_with_parens: '(' select_no_parens ')' */
+#line 12419 "gram.y"
+ { (yyval.node) = (yyvsp[-1].node); }
+#line 43215 "gram.c"
+ break;
+
+ case 1658: /* select_with_parens: '(' select_with_parens ')' */
+#line 12420 "gram.y"
+ { (yyval.node) = (yyvsp[-1].node); }
+#line 43221 "gram.c"
+ break;
+
+ case 1659: /* select_no_parens: simple_select */
+#line 12435 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 43227 "gram.c"
+ break;
+
+ case 1660: /* select_no_parens: select_clause sort_clause */
+#line 12437 "gram.y"
+ {
+ insertSelectOptions((SelectStmt *) (yyvsp[-1].node), (yyvsp[0].list), NIL,
+ NULL, NULL,
+ yyscanner);
+ (yyval.node) = (yyvsp[-1].node);
+ }
+#line 43238 "gram.c"
+ break;
+
+ case 1661: /* select_no_parens: select_clause opt_sort_clause for_locking_clause opt_select_limit */
+#line 12444 "gram.y"
+ {
+ insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[-1].list),
+ (yyvsp[0].selectlimit),
+ NULL,
+ yyscanner);
+ (yyval.node) = (yyvsp[-3].node);
+ }
+#line 43250 "gram.c"
+ break;
+
+ case 1662: /* select_no_parens: select_clause opt_sort_clause select_limit opt_for_locking_clause */
+#line 12452 "gram.y"
+ {
+ insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[0].list),
+ (yyvsp[-1].selectlimit),
+ NULL,
+ yyscanner);
+ (yyval.node) = (yyvsp[-3].node);
+ }
+#line 43262 "gram.c"
+ break;
+
+ case 1663: /* select_no_parens: with_clause select_clause */
+#line 12460 "gram.y"
+ {
+ insertSelectOptions((SelectStmt *) (yyvsp[0].node), NULL, NIL,
+ NULL,
+ (yyvsp[-1].with),
+ yyscanner);
+ (yyval.node) = (yyvsp[0].node);
+ }
+#line 43274 "gram.c"
+ break;
+
+ case 1664: /* select_no_parens: with_clause select_clause sort_clause */
+#line 12468 "gram.y"
+ {
+ insertSelectOptions((SelectStmt *) (yyvsp[-1].node), (yyvsp[0].list), NIL,
+ NULL,
+ (yyvsp[-2].with),
+ yyscanner);
+ (yyval.node) = (yyvsp[-1].node);
+ }
+#line 43286 "gram.c"
+ break;
+
+ case 1665: /* select_no_parens: with_clause select_clause opt_sort_clause for_locking_clause opt_select_limit */
+#line 12476 "gram.y"
+ {
+ insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[-1].list),
+ (yyvsp[0].selectlimit),
+ (yyvsp[-4].with),
+ yyscanner);
+ (yyval.node) = (yyvsp[-3].node);
+ }
+#line 43298 "gram.c"
+ break;
+
+ case 1666: /* select_no_parens: with_clause select_clause opt_sort_clause select_limit opt_for_locking_clause */
+#line 12484 "gram.y"
+ {
+ insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[0].list),
+ (yyvsp[-1].selectlimit),
+ (yyvsp[-4].with),
+ yyscanner);
+ (yyval.node) = (yyvsp[-3].node);
+ }
+#line 43310 "gram.c"
+ break;
+
+ case 1667: /* select_clause: simple_select */
+#line 12494 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 43316 "gram.c"
+ break;
+
+ case 1668: /* select_clause: select_with_parens */
+#line 12495 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 43322 "gram.c"
+ break;
+
+ case 1669: /* simple_select: SELECT opt_all_clause opt_target_list into_clause from_clause where_clause group_clause having_clause window_clause */
+#line 12530 "gram.y"
+ {
+ 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].groupclause))->list;
+ n->groupDistinct = ((yyvsp[-2].groupclause))->distinct;
+ n->havingClause = (yyvsp[-1].node);
+ n->windowClause = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 43340 "gram.c"
+ break;
+
+ case 1670: /* simple_select: SELECT distinct_clause target_list into_clause from_clause where_clause group_clause having_clause window_clause */
+#line 12546 "gram.y"
+ {
+ 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].groupclause))->list;
+ n->groupDistinct = ((yyvsp[-2].groupclause))->distinct;
+ n->havingClause = (yyvsp[-1].node);
+ n->windowClause = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 43359 "gram.c"
+ break;
+
+ case 1671: /* simple_select: values_clause */
+#line 12560 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 43365 "gram.c"
+ break;
+
+ case 1672: /* simple_select: TABLE relation_expr */
+#line 12562 "gram.y"
+ {
+ /* 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 43388 "gram.c"
+ break;
+
+ case 1673: /* simple_select: select_clause UNION set_quantifier select_clause */
+#line 12581 "gram.y"
+ {
+ (yyval.node) = makeSetOp(SETOP_UNION, (yyvsp[-1].setquantifier) == SET_QUANTIFIER_ALL, (yyvsp[-3].node), (yyvsp[0].node));
+ }
+#line 43396 "gram.c"
+ break;
+
+ case 1674: /* simple_select: select_clause INTERSECT set_quantifier select_clause */
+#line 12585 "gram.y"
+ {
+ (yyval.node) = makeSetOp(SETOP_INTERSECT, (yyvsp[-1].setquantifier) == SET_QUANTIFIER_ALL, (yyvsp[-3].node), (yyvsp[0].node));
+ }
+#line 43404 "gram.c"
+ break;
+
+ case 1675: /* simple_select: select_clause EXCEPT set_quantifier select_clause */
+#line 12589 "gram.y"
+ {
+ (yyval.node) = makeSetOp(SETOP_EXCEPT, (yyvsp[-1].setquantifier) == SET_QUANTIFIER_ALL, (yyvsp[-3].node), (yyvsp[0].node));
+ }
+#line 43412 "gram.c"
+ break;
+
+ case 1676: /* with_clause: WITH cte_list */
+#line 12604 "gram.y"
+ {
+ (yyval.with) = makeNode(WithClause);
+ (yyval.with)->ctes = (yyvsp[0].list);
+ (yyval.with)->recursive = false;
+ (yyval.with)->location = (yylsp[-1]);
+ }
+#line 43423 "gram.c"
+ break;
+
+ case 1677: /* with_clause: WITH_LA cte_list */
+#line 12611 "gram.y"
+ {
+ (yyval.with) = makeNode(WithClause);
+ (yyval.with)->ctes = (yyvsp[0].list);
+ (yyval.with)->recursive = false;
+ (yyval.with)->location = (yylsp[-1]);
+ }
+#line 43434 "gram.c"
+ break;
+
+ case 1678: /* with_clause: WITH RECURSIVE cte_list */
+#line 12618 "gram.y"
+ {
+ (yyval.with) = makeNode(WithClause);
+ (yyval.with)->ctes = (yyvsp[0].list);
+ (yyval.with)->recursive = true;
+ (yyval.with)->location = (yylsp[-2]);
+ }
+#line 43445 "gram.c"
+ break;
+
+ case 1679: /* cte_list: common_table_expr */
+#line 12627 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].node)); }
+#line 43451 "gram.c"
+ break;
+
+ case 1680: /* cte_list: cte_list ',' common_table_expr */
+#line 12628 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
+#line 43457 "gram.c"
+ break;
+
+ case 1681: /* common_table_expr: name opt_name_list AS opt_materialized '(' PreparableStmt ')' opt_search_clause opt_cycle_clause */
+#line 12632 "gram.y"
+ {
+ CommonTableExpr *n = makeNode(CommonTableExpr);
+
+ n->ctename = (yyvsp[-8].str);
+ n->aliascolnames = (yyvsp[-7].list);
+ n->ctematerialized = (yyvsp[-5].ival);
+ n->ctequery = (yyvsp[-3].node);
+ n->search_clause = castNode(CTESearchClause, (yyvsp[-1].node));
+ n->cycle_clause = castNode(CTECycleClause, (yyvsp[0].node));
+ n->location = (yylsp[-8]);
+ (yyval.node) = (Node *) n;
+ }
+#line 43474 "gram.c"
+ break;
+
+ case 1682: /* opt_materialized: MATERIALIZED */
+#line 12647 "gram.y"
+ { (yyval.ival) = CTEMaterializeAlways; }
+#line 43480 "gram.c"
+ break;
+
+ case 1683: /* opt_materialized: NOT MATERIALIZED */
+#line 12648 "gram.y"
+ { (yyval.ival) = CTEMaterializeNever; }
+#line 43486 "gram.c"
+ break;
+
+ case 1684: /* opt_materialized: %empty */
+#line 12649 "gram.y"
+ { (yyval.ival) = CTEMaterializeDefault; }
+#line 43492 "gram.c"
+ break;
+
+ case 1685: /* opt_search_clause: SEARCH DEPTH FIRST_P BY columnList SET ColId */
+#line 12654 "gram.y"
+ {
+ CTESearchClause *n = makeNode(CTESearchClause);
+
+ n->search_col_list = (yyvsp[-2].list);
+ n->search_breadth_first = false;
+ n->search_seq_column = (yyvsp[0].str);
+ n->location = (yylsp[-6]);
+ (yyval.node) = (Node *) n;
+ }
+#line 43506 "gram.c"
+ break;
+
+ case 1686: /* opt_search_clause: SEARCH BREADTH FIRST_P BY columnList SET ColId */
+#line 12664 "gram.y"
+ {
+ CTESearchClause *n = makeNode(CTESearchClause);
+
+ n->search_col_list = (yyvsp[-2].list);
+ n->search_breadth_first = true;
+ n->search_seq_column = (yyvsp[0].str);
+ n->location = (yylsp[-6]);
+ (yyval.node) = (Node *) n;
+ }
+#line 43520 "gram.c"
+ break;
+
+ case 1687: /* opt_search_clause: %empty */
+#line 12674 "gram.y"
+ {
+ (yyval.node) = NULL;
+ }
+#line 43528 "gram.c"
+ break;
+
+ case 1688: /* opt_cycle_clause: CYCLE columnList SET ColId TO AexprConst DEFAULT AexprConst USING ColId */
+#line 12681 "gram.y"
+ {
+ CTECycleClause *n = makeNode(CTECycleClause);
+
+ n->cycle_col_list = (yyvsp[-8].list);
+ n->cycle_mark_column = (yyvsp[-6].str);
+ n->cycle_mark_value = (yyvsp[-4].node);
+ n->cycle_mark_default = (yyvsp[-2].node);
+ n->cycle_path_column = (yyvsp[0].str);
+ n->location = (yylsp[-9]);
+ (yyval.node) = (Node *) n;
+ }
+#line 43544 "gram.c"
+ break;
+
+ case 1689: /* opt_cycle_clause: CYCLE columnList SET ColId USING ColId */
+#line 12693 "gram.y"
+ {
+ CTECycleClause *n = makeNode(CTECycleClause);
+
+ n->cycle_col_list = (yyvsp[-4].list);
+ n->cycle_mark_column = (yyvsp[-2].str);
+ n->cycle_mark_value = makeBoolAConst(true, -1);
+ n->cycle_mark_default = makeBoolAConst(false, -1);
+ n->cycle_path_column = (yyvsp[0].str);
+ n->location = (yylsp[-5]);
+ (yyval.node) = (Node *) n;
+ }
+#line 43560 "gram.c"
+ break;
+
+ case 1690: /* opt_cycle_clause: %empty */
+#line 12705 "gram.y"
+ {
+ (yyval.node) = NULL;
+ }
+#line 43568 "gram.c"
+ break;
+
+ case 1691: /* opt_with_clause: with_clause */
+#line 12711 "gram.y"
+ { (yyval.with) = (yyvsp[0].with); }
+#line 43574 "gram.c"
+ break;
+
+ case 1692: /* opt_with_clause: %empty */
+#line 12712 "gram.y"
+ { (yyval.with) = NULL; }
+#line 43580 "gram.c"
+ break;
+
+ case 1693: /* into_clause: INTO OptTempTableName */
+#line 12717 "gram.y"
+ {
+ (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 43595 "gram.c"
+ break;
+
+ case 1694: /* into_clause: %empty */
+#line 12728 "gram.y"
+ { (yyval.into) = NULL; }
+#line 43601 "gram.c"
+ break;
+
+ case 1695: /* OptTempTableName: TEMPORARY opt_table qualified_name */
+#line 12737 "gram.y"
+ {
+ (yyval.range) = (yyvsp[0].range);
+ (yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
+ }
+#line 43610 "gram.c"
+ break;
+
+ case 1696: /* OptTempTableName: TEMP opt_table qualified_name */
+#line 12742 "gram.y"
+ {
+ (yyval.range) = (yyvsp[0].range);
+ (yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
+ }
+#line 43619 "gram.c"
+ break;
+
+ case 1697: /* OptTempTableName: LOCAL TEMPORARY opt_table qualified_name */
+#line 12747 "gram.y"
+ {
+ (yyval.range) = (yyvsp[0].range);
+ (yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
+ }
+#line 43628 "gram.c"
+ break;
+
+ case 1698: /* OptTempTableName: LOCAL TEMP opt_table qualified_name */
+#line 12752 "gram.y"
+ {
+ (yyval.range) = (yyvsp[0].range);
+ (yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
+ }
+#line 43637 "gram.c"
+ break;
+
+ case 1699: /* OptTempTableName: GLOBAL TEMPORARY opt_table qualified_name */
+#line 12757 "gram.y"
+ {
+ 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 43649 "gram.c"
+ break;
+
+ case 1700: /* OptTempTableName: GLOBAL TEMP opt_table qualified_name */
+#line 12765 "gram.y"
+ {
+ 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 43661 "gram.c"
+ break;
+
+ case 1701: /* OptTempTableName: UNLOGGED opt_table qualified_name */
+#line 12773 "gram.y"
+ {
+ (yyval.range) = (yyvsp[0].range);
+ (yyval.range)->relpersistence = RELPERSISTENCE_UNLOGGED;
+ }
+#line 43670 "gram.c"
+ break;
+
+ case 1702: /* OptTempTableName: TABLE qualified_name */
+#line 12778 "gram.y"
+ {
+ (yyval.range) = (yyvsp[0].range);
+ (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT;
+ }
+#line 43679 "gram.c"
+ break;
+
+ case 1703: /* OptTempTableName: qualified_name */
+#line 12783 "gram.y"
+ {
+ (yyval.range) = (yyvsp[0].range);
+ (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT;
+ }
+#line 43688 "gram.c"
+ break;
+
+ case 1706: /* set_quantifier: ALL */
+#line 12794 "gram.y"
+ { (yyval.setquantifier) = SET_QUANTIFIER_ALL; }
+#line 43694 "gram.c"
+ break;
+
+ case 1707: /* set_quantifier: DISTINCT */
+#line 12795 "gram.y"
+ { (yyval.setquantifier) = SET_QUANTIFIER_DISTINCT; }
+#line 43700 "gram.c"
+ break;
+
+ case 1708: /* set_quantifier: %empty */
+#line 12796 "gram.y"
+ { (yyval.setquantifier) = SET_QUANTIFIER_DEFAULT; }
+#line 43706 "gram.c"
+ break;
+
+ case 1709: /* distinct_clause: DISTINCT */
+#line 12803 "gram.y"
+ { (yyval.list) = list_make1(NIL); }
+#line 43712 "gram.c"
+ break;
+
+ case 1710: /* distinct_clause: DISTINCT ON '(' expr_list ')' */
+#line 12804 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 43718 "gram.c"
+ break;
+
+ case 1713: /* opt_distinct_clause: distinct_clause */
+#line 12813 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 43724 "gram.c"
+ break;
+
+ case 1714: /* opt_distinct_clause: opt_all_clause */
+#line 12814 "gram.y"
+ { (yyval.list) = NIL; }
+#line 43730 "gram.c"
+ break;
+
+ case 1715: /* opt_sort_clause: sort_clause */
+#line 12818 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 43736 "gram.c"
+ break;
+
+ case 1716: /* opt_sort_clause: %empty */
+#line 12819 "gram.y"
+ { (yyval.list) = NIL; }
+#line 43742 "gram.c"
+ break;
+
+ case 1717: /* sort_clause: ORDER BY sortby_list */
+#line 12823 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 43748 "gram.c"
+ break;
+
+ case 1718: /* sortby_list: sortby */
+#line 12827 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].sortby)); }
+#line 43754 "gram.c"
+ break;
+
+ case 1719: /* sortby_list: sortby_list ',' sortby */
+#line 12828 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].sortby)); }
+#line 43760 "gram.c"
+ break;
+
+ case 1720: /* sortby: a_expr USING qual_all_Op opt_nulls_order */
+#line 12832 "gram.y"
+ {
+ (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 43773 "gram.c"
+ break;
+
+ case 1721: /* sortby: a_expr opt_asc_desc opt_nulls_order */
+#line 12841 "gram.y"
+ {
+ (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 43786 "gram.c"
+ break;
+
+ case 1722: /* select_limit: limit_clause offset_clause */
+#line 12854 "gram.y"
+ {
+ (yyval.selectlimit) = (yyvsp[-1].selectlimit);
+ ((yyval.selectlimit))->limitOffset = (yyvsp[0].node);
+ }
+#line 43795 "gram.c"
+ break;
+
+ case 1723: /* select_limit: offset_clause limit_clause */
+#line 12859 "gram.y"
+ {
+ (yyval.selectlimit) = (yyvsp[0].selectlimit);
+ ((yyval.selectlimit))->limitOffset = (yyvsp[-1].node);
+ }
+#line 43804 "gram.c"
+ break;
+
+ case 1724: /* select_limit: limit_clause */
+#line 12864 "gram.y"
+ {
+ (yyval.selectlimit) = (yyvsp[0].selectlimit);
+ }
+#line 43812 "gram.c"
+ break;
+
+ case 1725: /* select_limit: offset_clause */
+#line 12868 "gram.y"
+ {
+ SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit));
+
+ n->limitOffset = (yyvsp[0].node);
+ n->limitCount = NULL;
+ n->limitOption = LIMIT_OPTION_COUNT;
+ (yyval.selectlimit) = n;
+ }
+#line 43825 "gram.c"
+ break;
+
+ case 1726: /* opt_select_limit: select_limit */
+#line 12879 "gram.y"
+ { (yyval.selectlimit) = (yyvsp[0].selectlimit); }
+#line 43831 "gram.c"
+ break;
+
+ case 1727: /* opt_select_limit: %empty */
+#line 12880 "gram.y"
+ { (yyval.selectlimit) = NULL; }
+#line 43837 "gram.c"
+ break;
+
+ case 1728: /* limit_clause: LIMIT select_limit_value */
+#line 12885 "gram.y"
+ {
+ SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit));
+
+ n->limitOffset = NULL;
+ n->limitCount = (yyvsp[0].node);
+ n->limitOption = LIMIT_OPTION_COUNT;
+ (yyval.selectlimit) = n;
+ }
+#line 43850 "gram.c"
+ break;
+
+ case 1729: /* limit_clause: LIMIT select_limit_value ',' select_offset_value */
+#line 12894 "gram.y"
+ {
+ /* 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 43863 "gram.c"
+ break;
+
+ case 1730: /* limit_clause: FETCH first_or_next select_fetch_first_value row_or_rows ONLY */
+#line 12910 "gram.y"
+ {
+ SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit));
+
+ n->limitOffset = NULL;
+ n->limitCount = (yyvsp[-2].node);
+ n->limitOption = LIMIT_OPTION_COUNT;
+ (yyval.selectlimit) = n;
+ }
+#line 43876 "gram.c"
+ break;
+
+ case 1731: /* limit_clause: FETCH first_or_next select_fetch_first_value row_or_rows WITH TIES */
+#line 12919 "gram.y"
+ {
+ SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit));
+
+ n->limitOffset = NULL;
+ n->limitCount = (yyvsp[-3].node);
+ n->limitOption = LIMIT_OPTION_WITH_TIES;
+ (yyval.selectlimit) = n;
+ }
+#line 43889 "gram.c"
+ break;
+
+ case 1732: /* limit_clause: FETCH first_or_next row_or_rows ONLY */
+#line 12928 "gram.y"
+ {
+ SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit));
+
+ n->limitOffset = NULL;
+ n->limitCount = makeIntConst(1, -1);
+ n->limitOption = LIMIT_OPTION_COUNT;
+ (yyval.selectlimit) = n;
+ }
+#line 43902 "gram.c"
+ break;
+
+ case 1733: /* limit_clause: FETCH first_or_next row_or_rows WITH TIES */
+#line 12937 "gram.y"
+ {
+ SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit));
+
+ n->limitOffset = NULL;
+ n->limitCount = makeIntConst(1, -1);
+ n->limitOption = LIMIT_OPTION_WITH_TIES;
+ (yyval.selectlimit) = n;
+ }
+#line 43915 "gram.c"
+ break;
+
+ case 1734: /* offset_clause: OFFSET select_offset_value */
+#line 12949 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 43921 "gram.c"
+ break;
+
+ case 1735: /* offset_clause: OFFSET select_fetch_first_value row_or_rows */
+#line 12952 "gram.y"
+ { (yyval.node) = (yyvsp[-1].node); }
+#line 43927 "gram.c"
+ break;
+
+ case 1736: /* select_limit_value: a_expr */
+#line 12956 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 43933 "gram.c"
+ break;
+
+ case 1737: /* select_limit_value: ALL */
+#line 12958 "gram.y"
+ {
+ /* LIMIT ALL is represented as a NULL constant */
+ (yyval.node) = makeNullAConst((yylsp[0]));
+ }
+#line 43942 "gram.c"
+ break;
+
+ case 1738: /* select_offset_value: a_expr */
+#line 12965 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 43948 "gram.c"
+ break;
+
+ case 1739: /* select_fetch_first_value: c_expr */
+#line 12985 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 43954 "gram.c"
+ break;
+
+ case 1740: /* select_fetch_first_value: '+' I_or_F_const */
+#line 12987 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); }
+#line 43960 "gram.c"
+ break;
+
+ case 1741: /* select_fetch_first_value: '-' I_or_F_const */
+#line 12989 "gram.y"
+ { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); }
+#line 43966 "gram.c"
+ break;
+
+ case 1742: /* I_or_F_const: Iconst */
+#line 12993 "gram.y"
+ { (yyval.node) = makeIntConst((yyvsp[0].ival),(yylsp[0])); }
+#line 43972 "gram.c"
+ break;
+
+ case 1743: /* I_or_F_const: FCONST */
+#line 12994 "gram.y"
+ { (yyval.node) = makeFloatConst((yyvsp[0].str),(yylsp[0])); }
+#line 43978 "gram.c"
+ break;
+
+ case 1744: /* row_or_rows: ROW */
+#line 12998 "gram.y"
+ { (yyval.ival) = 0; }
+#line 43984 "gram.c"
+ break;
+
+ case 1745: /* row_or_rows: ROWS */
+#line 12999 "gram.y"
+ { (yyval.ival) = 0; }
+#line 43990 "gram.c"
+ break;
+
+ case 1746: /* first_or_next: FIRST_P */
+#line 13002 "gram.y"
+ { (yyval.ival) = 0; }
+#line 43996 "gram.c"
+ break;
+
+ case 1747: /* first_or_next: NEXT */
+#line 13003 "gram.y"
+ { (yyval.ival) = 0; }
+#line 44002 "gram.c"
+ break;
+
+ case 1748: /* group_clause: GROUP_P BY set_quantifier group_by_list */
+#line 13029 "gram.y"
+ {
+ GroupClause *n = (GroupClause *) palloc(sizeof(GroupClause));
+
+ n->distinct = (yyvsp[-1].setquantifier) == SET_QUANTIFIER_DISTINCT;
+ n->list = (yyvsp[0].list);
+ (yyval.groupclause) = n;
+ }
+#line 44014 "gram.c"
+ break;
+
+ case 1749: /* group_clause: %empty */
+#line 13037 "gram.y"
+ {
+ GroupClause *n = (GroupClause *) palloc(sizeof(GroupClause));
+
+ n->distinct = false;
+ n->list = NIL;
+ (yyval.groupclause) = n;
+ }
+#line 44026 "gram.c"
+ break;
+
+ case 1750: /* group_by_list: group_by_item */
+#line 13047 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].node)); }
+#line 44032 "gram.c"
+ break;
+
+ case 1751: /* group_by_list: group_by_list ',' group_by_item */
+#line 13048 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list),(yyvsp[0].node)); }
+#line 44038 "gram.c"
+ break;
+
+ case 1752: /* group_by_item: a_expr */
+#line 13052 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 44044 "gram.c"
+ break;
+
+ case 1753: /* group_by_item: empty_grouping_set */
+#line 13053 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 44050 "gram.c"
+ break;
+
+ case 1754: /* group_by_item: cube_clause */
+#line 13054 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 44056 "gram.c"
+ break;
+
+ case 1755: /* group_by_item: rollup_clause */
+#line 13055 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 44062 "gram.c"
+ break;
+
+ case 1756: /* group_by_item: grouping_sets_clause */
+#line 13056 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 44068 "gram.c"
+ break;
+
+ case 1757: /* empty_grouping_set: '(' ')' */
+#line 13061 "gram.y"
+ {
+ (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_EMPTY, NIL, (yylsp[-1]));
+ }
+#line 44076 "gram.c"
+ break;
+
+ case 1758: /* rollup_clause: ROLLUP '(' expr_list ')' */
+#line 13074 "gram.y"
+ {
+ (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_ROLLUP, (yyvsp[-1].list), (yylsp[-3]));
+ }
+#line 44084 "gram.c"
+ break;
+
+ case 1759: /* cube_clause: CUBE '(' expr_list ')' */
+#line 13081 "gram.y"
+ {
+ (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_CUBE, (yyvsp[-1].list), (yylsp[-3]));
+ }
+#line 44092 "gram.c"
+ break;
+
+ case 1760: /* grouping_sets_clause: GROUPING SETS '(' group_by_list ')' */
+#line 13088 "gram.y"
+ {
+ (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_SETS, (yyvsp[-1].list), (yylsp[-4]));
+ }
+#line 44100 "gram.c"
+ break;
+
+ case 1761: /* having_clause: HAVING a_expr */
+#line 13094 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 44106 "gram.c"
+ break;
+
+ case 1762: /* having_clause: %empty */
+#line 13095 "gram.y"
+ { (yyval.node) = NULL; }
+#line 44112 "gram.c"
+ break;
+
+ case 1763: /* for_locking_clause: for_locking_items */
+#line 13099 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 44118 "gram.c"
+ break;
+
+ case 1764: /* for_locking_clause: FOR READ ONLY */
+#line 13100 "gram.y"
+ { (yyval.list) = NIL; }
+#line 44124 "gram.c"
+ break;
+
+ case 1765: /* opt_for_locking_clause: for_locking_clause */
+#line 13104 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 44130 "gram.c"
+ break;
+
+ case 1766: /* opt_for_locking_clause: %empty */
+#line 13105 "gram.y"
+ { (yyval.list) = NIL; }
+#line 44136 "gram.c"
+ break;
+
+ case 1767: /* for_locking_items: for_locking_item */
+#line 13109 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].node)); }
+#line 44142 "gram.c"
+ break;
+
+ case 1768: /* for_locking_items: for_locking_items for_locking_item */
+#line 13110 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); }
+#line 44148 "gram.c"
+ break;
+
+ case 1769: /* for_locking_item: for_locking_strength locked_rels_list opt_nowait_or_skip */
+#line 13115 "gram.y"
+ {
+ LockingClause *n = makeNode(LockingClause);
+
+ n->lockedRels = (yyvsp[-1].list);
+ n->strength = (yyvsp[-2].ival);
+ n->waitPolicy = (yyvsp[0].ival);
+ (yyval.node) = (Node *) n;
+ }
+#line 44161 "gram.c"
+ break;
+
+ case 1770: /* for_locking_strength: FOR UPDATE */
+#line 13126 "gram.y"
+ { (yyval.ival) = LCS_FORUPDATE; }
+#line 44167 "gram.c"
+ break;
+
+ case 1771: /* for_locking_strength: FOR NO KEY UPDATE */
+#line 13127 "gram.y"
+ { (yyval.ival) = LCS_FORNOKEYUPDATE; }
+#line 44173 "gram.c"
+ break;
+
+ case 1772: /* for_locking_strength: FOR SHARE */
+#line 13128 "gram.y"
+ { (yyval.ival) = LCS_FORSHARE; }
+#line 44179 "gram.c"
+ break;
+
+ case 1773: /* for_locking_strength: FOR KEY SHARE */
+#line 13129 "gram.y"
+ { (yyval.ival) = LCS_FORKEYSHARE; }
+#line 44185 "gram.c"
+ break;
+
+ case 1774: /* locked_rels_list: OF qualified_name_list */
+#line 13133 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 44191 "gram.c"
+ break;
+
+ case 1775: /* locked_rels_list: %empty */
+#line 13134 "gram.y"
+ { (yyval.list) = NIL; }
+#line 44197 "gram.c"
+ break;
+
+ case 1776: /* values_clause: VALUES '(' expr_list ')' */
+#line 13145 "gram.y"
+ {
+ SelectStmt *n = makeNode(SelectStmt);
+
+ n->valuesLists = list_make1((yyvsp[-1].list));
+ (yyval.node) = (Node *) n;
+ }
+#line 44208 "gram.c"
+ break;
+
+ case 1777: /* values_clause: values_clause ',' '(' expr_list ')' */
+#line 13152 "gram.y"
+ {
+ SelectStmt *n = (SelectStmt *) (yyvsp[-4].node);
+
+ n->valuesLists = lappend(n->valuesLists, (yyvsp[-1].list));
+ (yyval.node) = (Node *) n;
+ }
+#line 44219 "gram.c"
+ break;
+
+ case 1778: /* from_clause: FROM from_list */
+#line 13170 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 44225 "gram.c"
+ break;
+
+ case 1779: /* from_clause: %empty */
+#line 13171 "gram.y"
+ { (yyval.list) = NIL; }
+#line 44231 "gram.c"
+ break;
+
+ case 1780: /* from_list: table_ref */
+#line 13175 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].node)); }
+#line 44237 "gram.c"
+ break;
+
+ case 1781: /* from_list: from_list ',' table_ref */
+#line 13176 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
+#line 44243 "gram.c"
+ break;
+
+ case 1782: /* table_ref: relation_expr opt_alias_clause */
+#line 13183 "gram.y"
+ {
+ (yyvsp[-1].range)->alias = (yyvsp[0].alias);
+ (yyval.node) = (Node *) (yyvsp[-1].range);
+ }
+#line 44252 "gram.c"
+ break;
+
+ case 1783: /* table_ref: relation_expr opt_alias_clause tablesample_clause */
+#line 13188 "gram.y"
+ {
+ 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 44265 "gram.c"
+ break;
+
+ case 1784: /* table_ref: func_table func_alias_clause */
+#line 13197 "gram.y"
+ {
+ RangeFunction *n = (RangeFunction *) (yyvsp[-1].node);
+
+ n->alias = linitial((yyvsp[0].list));
+ n->coldeflist = lsecond((yyvsp[0].list));
+ (yyval.node) = (Node *) n;
+ }
+#line 44277 "gram.c"
+ break;
+
+ case 1785: /* table_ref: LATERAL_P func_table func_alias_clause */
+#line 13205 "gram.y"
+ {
+ 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 44290 "gram.c"
+ break;
+
+ case 1786: /* table_ref: xmltable opt_alias_clause */
+#line 13214 "gram.y"
+ {
+ RangeTableFunc *n = (RangeTableFunc *) (yyvsp[-1].node);
+
+ n->alias = (yyvsp[0].alias);
+ (yyval.node) = (Node *) n;
+ }
+#line 44301 "gram.c"
+ break;
+
+ case 1787: /* table_ref: LATERAL_P xmltable opt_alias_clause */
+#line 13221 "gram.y"
+ {
+ RangeTableFunc *n = (RangeTableFunc *) (yyvsp[-1].node);
+
+ n->lateral = true;
+ n->alias = (yyvsp[0].alias);
+ (yyval.node) = (Node *) n;
+ }
+#line 44313 "gram.c"
+ break;
+
+ case 1788: /* table_ref: select_with_parens opt_alias_clause */
+#line 13229 "gram.y"
+ {
+ 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
+ * (<derived_table>) 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 44353 "gram.c"
+ break;
+
+ case 1789: /* table_ref: LATERAL_P select_with_parens opt_alias_clause */
+#line 13265 "gram.y"
+ {
+ 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 44383 "gram.c"
+ break;
+
+ case 1790: /* table_ref: joined_table */
+#line 13291 "gram.y"
+ {
+ (yyval.node) = (Node *) (yyvsp[0].jexpr);
+ }
+#line 44391 "gram.c"
+ break;
+
+ case 1791: /* table_ref: '(' joined_table ')' alias_clause */
+#line 13295 "gram.y"
+ {
+ (yyvsp[-2].jexpr)->alias = (yyvsp[0].alias);
+ (yyval.node) = (Node *) (yyvsp[-2].jexpr);
+ }
+#line 44400 "gram.c"
+ break;
+
+ case 1792: /* joined_table: '(' joined_table ')' */
+#line 13321 "gram.y"
+ {
+ (yyval.jexpr) = (yyvsp[-1].jexpr);
+ }
+#line 44408 "gram.c"
+ break;
+
+ case 1793: /* joined_table: table_ref CROSS JOIN table_ref */
+#line 13325 "gram.y"
+ {
+ /* 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->join_using_alias = NULL;
+ n->quals = NULL;
+ (yyval.jexpr) = n;
+ }
+#line 44426 "gram.c"
+ break;
+
+ case 1794: /* joined_table: table_ref join_type JOIN table_ref join_qual */
+#line 13339 "gram.y"
+ {
+ 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))
+ {
+ /* USING clause */
+ n->usingClause = linitial_node(List, castNode(List, (yyvsp[0].node)));
+ n->join_using_alias = lsecond_node(Alias, castNode(List, (yyvsp[0].node)));
+ }
+ else
+ {
+ /* ON clause */
+ n->quals = (yyvsp[0].node);
+ }
+ (yyval.jexpr) = n;
+ }
+#line 44451 "gram.c"
+ break;
+
+ case 1795: /* joined_table: table_ref JOIN table_ref join_qual */
+#line 13360 "gram.y"
+ {
+ /* 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))
+ {
+ /* USING clause */
+ n->usingClause = linitial_node(List, castNode(List, (yyvsp[0].node)));
+ n->join_using_alias = lsecond_node(Alias, castNode(List, (yyvsp[0].node)));
+ }
+ else
+ {
+ /* ON clause */
+ n->quals = (yyvsp[0].node);
+ }
+ (yyval.jexpr) = n;
+ }
+#line 44477 "gram.c"
+ break;
+
+ case 1796: /* joined_table: table_ref NATURAL join_type JOIN table_ref */
+#line 13382 "gram.y"
+ {
+ 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->join_using_alias = NULL;
+ n->quals = NULL; /* fill later */
+ (yyval.jexpr) = n;
+ }
+#line 44494 "gram.c"
+ break;
+
+ case 1797: /* joined_table: table_ref NATURAL JOIN table_ref */
+#line 13395 "gram.y"
+ {
+ /* 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->join_using_alias = NULL;
+ n->quals = NULL; /* fill later */
+ (yyval.jexpr) = n;
+ }
+#line 44512 "gram.c"
+ break;
+
+ case 1798: /* alias_clause: AS ColId '(' name_list ')' */
+#line 13412 "gram.y"
+ {
+ (yyval.alias) = makeNode(Alias);
+ (yyval.alias)->aliasname = (yyvsp[-3].str);
+ (yyval.alias)->colnames = (yyvsp[-1].list);
+ }
+#line 44522 "gram.c"
+ break;
+
+ case 1799: /* alias_clause: AS ColId */
+#line 13418 "gram.y"
+ {
+ (yyval.alias) = makeNode(Alias);
+ (yyval.alias)->aliasname = (yyvsp[0].str);
+ }
+#line 44531 "gram.c"
+ break;
+
+ case 1800: /* alias_clause: ColId '(' name_list ')' */
+#line 13423 "gram.y"
+ {
+ (yyval.alias) = makeNode(Alias);
+ (yyval.alias)->aliasname = (yyvsp[-3].str);
+ (yyval.alias)->colnames = (yyvsp[-1].list);
+ }
+#line 44541 "gram.c"
+ break;
+
+ case 1801: /* alias_clause: ColId */
+#line 13429 "gram.y"
+ {
+ (yyval.alias) = makeNode(Alias);
+ (yyval.alias)->aliasname = (yyvsp[0].str);
+ }
+#line 44550 "gram.c"
+ break;
+
+ case 1802: /* opt_alias_clause: alias_clause */
+#line 13435 "gram.y"
+ { (yyval.alias) = (yyvsp[0].alias); }
+#line 44556 "gram.c"
+ break;
+
+ case 1803: /* opt_alias_clause: %empty */
+#line 13436 "gram.y"
+ { (yyval.alias) = NULL; }
+#line 44562 "gram.c"
+ break;
+
+ case 1804: /* opt_alias_clause_for_join_using: AS ColId */
+#line 13447 "gram.y"
+ {
+ (yyval.alias) = makeNode(Alias);
+ (yyval.alias)->aliasname = (yyvsp[0].str);
+ /* the column name list will be inserted later */
+ }
+#line 44572 "gram.c"
+ break;
+
+ case 1805: /* opt_alias_clause_for_join_using: %empty */
+#line 13452 "gram.y"
+ { (yyval.alias) = NULL; }
+#line 44578 "gram.c"
+ break;
+
+ case 1806: /* func_alias_clause: alias_clause */
+#line 13461 "gram.y"
+ {
+ (yyval.list) = list_make2((yyvsp[0].alias), NIL);
+ }
+#line 44586 "gram.c"
+ break;
+
+ case 1807: /* func_alias_clause: AS '(' TableFuncElementList ')' */
+#line 13465 "gram.y"
+ {
+ (yyval.list) = list_make2(NULL, (yyvsp[-1].list));
+ }
+#line 44594 "gram.c"
+ break;
+
+ case 1808: /* func_alias_clause: AS ColId '(' TableFuncElementList ')' */
+#line 13469 "gram.y"
+ {
+ Alias *a = makeNode(Alias);
+
+ a->aliasname = (yyvsp[-3].str);
+ (yyval.list) = list_make2(a, (yyvsp[-1].list));
+ }
+#line 44605 "gram.c"
+ break;
+
+ case 1809: /* func_alias_clause: ColId '(' TableFuncElementList ')' */
+#line 13476 "gram.y"
+ {
+ Alias *a = makeNode(Alias);
+
+ a->aliasname = (yyvsp[-3].str);
+ (yyval.list) = list_make2(a, (yyvsp[-1].list));
+ }
+#line 44616 "gram.c"
+ break;
+
+ case 1810: /* func_alias_clause: %empty */
+#line 13483 "gram.y"
+ {
+ (yyval.list) = list_make2(NULL, NIL);
+ }
+#line 44624 "gram.c"
+ break;
+
+ case 1811: /* join_type: FULL opt_outer */
+#line 13488 "gram.y"
+ { (yyval.jtype) = JOIN_FULL; }
+#line 44630 "gram.c"
+ break;
+
+ case 1812: /* join_type: LEFT opt_outer */
+#line 13489 "gram.y"
+ { (yyval.jtype) = JOIN_LEFT; }
+#line 44636 "gram.c"
+ break;
+
+ case 1813: /* join_type: RIGHT opt_outer */
+#line 13490 "gram.y"
+ { (yyval.jtype) = JOIN_RIGHT; }
+#line 44642 "gram.c"
+ break;
+
+ case 1814: /* join_type: INNER_P */
+#line 13491 "gram.y"
+ { (yyval.jtype) = JOIN_INNER; }
+#line 44648 "gram.c"
+ break;
+
+ case 1817: /* join_qual: USING '(' name_list ')' opt_alias_clause_for_join_using */
+#line 13512 "gram.y"
+ {
+ (yyval.node) = (Node *) list_make2((yyvsp[-2].list), (yyvsp[0].alias));
+ }
+#line 44656 "gram.c"
+ break;
+
+ case 1818: /* join_qual: ON a_expr */
+#line 13516 "gram.y"
+ {
+ (yyval.node) = (yyvsp[0].node);
+ }
+#line 44664 "gram.c"
+ break;
+
+ case 1819: /* relation_expr: qualified_name */
+#line 13524 "gram.y"
+ {
+ /* inheritance query, implicitly */
+ (yyval.range) = (yyvsp[0].range);
+ (yyval.range)->inh = true;
+ (yyval.range)->alias = NULL;
+ }
+#line 44675 "gram.c"
+ break;
+
+ case 1820: /* relation_expr: extended_relation_expr */
+#line 13531 "gram.y"
+ {
+ (yyval.range) = (yyvsp[0].range);
+ }
+#line 44683 "gram.c"
+ break;
+
+ case 1821: /* extended_relation_expr: qualified_name '*' */
+#line 13538 "gram.y"
+ {
+ /* inheritance query, explicitly */
+ (yyval.range) = (yyvsp[-1].range);
+ (yyval.range)->inh = true;
+ (yyval.range)->alias = NULL;
+ }
+#line 44694 "gram.c"
+ break;
+
+ case 1822: /* extended_relation_expr: ONLY qualified_name */
+#line 13545 "gram.y"
+ {
+ /* no inheritance */
+ (yyval.range) = (yyvsp[0].range);
+ (yyval.range)->inh = false;
+ (yyval.range)->alias = NULL;
+ }
+#line 44705 "gram.c"
+ break;
+
+ case 1823: /* extended_relation_expr: ONLY '(' qualified_name ')' */
+#line 13552 "gram.y"
+ {
+ /* no inheritance, SQL99-style syntax */
+ (yyval.range) = (yyvsp[-1].range);
+ (yyval.range)->inh = false;
+ (yyval.range)->alias = NULL;
+ }
+#line 44716 "gram.c"
+ break;
+
+ case 1824: /* relation_expr_list: relation_expr */
+#line 13562 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].range)); }
+#line 44722 "gram.c"
+ break;
+
+ case 1825: /* relation_expr_list: relation_expr_list ',' relation_expr */
+#line 13563 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].range)); }
+#line 44728 "gram.c"
+ break;
+
+ case 1826: /* relation_expr_opt_alias: relation_expr */
+#line 13577 "gram.y"
+ {
+ (yyval.range) = (yyvsp[0].range);
+ }
+#line 44736 "gram.c"
+ break;
+
+ case 1827: /* relation_expr_opt_alias: relation_expr ColId */
+#line 13581 "gram.y"
+ {
+ Alias *alias = makeNode(Alias);
+
+ alias->aliasname = (yyvsp[0].str);
+ (yyvsp[-1].range)->alias = alias;
+ (yyval.range) = (yyvsp[-1].range);
+ }
+#line 44748 "gram.c"
+ break;
+
+ case 1828: /* relation_expr_opt_alias: relation_expr AS ColId */
+#line 13589 "gram.y"
+ {
+ Alias *alias = makeNode(Alias);
+
+ alias->aliasname = (yyvsp[0].str);
+ (yyvsp[-2].range)->alias = alias;
+ (yyval.range) = (yyvsp[-2].range);
+ }
+#line 44760 "gram.c"
+ break;
+
+ case 1829: /* tablesample_clause: TABLESAMPLE func_name '(' expr_list ')' opt_repeatable_clause */
+#line 13603 "gram.y"
+ {
+ 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 44775 "gram.c"
+ break;
+
+ case 1830: /* opt_repeatable_clause: REPEATABLE '(' a_expr ')' */
+#line 13616 "gram.y"
+ { (yyval.node) = (Node *) (yyvsp[-1].node); }
+#line 44781 "gram.c"
+ break;
+
+ case 1831: /* opt_repeatable_clause: %empty */
+#line 13617 "gram.y"
+ { (yyval.node) = NULL; }
+#line 44787 "gram.c"
+ break;
+
+ case 1832: /* func_table: func_expr_windowless opt_ordinality */
+#line 13633 "gram.y"
+ {
+ 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 44802 "gram.c"
+ break;
+
+ case 1833: /* func_table: ROWS FROM '(' rowsfrom_list ')' opt_ordinality */
+#line 13644 "gram.y"
+ {
+ 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 44817 "gram.c"
+ break;
+
+ case 1834: /* rowsfrom_item: func_expr_windowless opt_col_def_list */
+#line 13657 "gram.y"
+ { (yyval.list) = list_make2((yyvsp[-1].node), (yyvsp[0].list)); }
+#line 44823 "gram.c"
+ break;
+
+ case 1835: /* rowsfrom_list: rowsfrom_item */
+#line 13661 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].list)); }
+#line 44829 "gram.c"
+ break;
+
+ case 1836: /* rowsfrom_list: rowsfrom_list ',' rowsfrom_item */
+#line 13662 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); }
+#line 44835 "gram.c"
+ break;
+
+ case 1837: /* opt_col_def_list: AS '(' TableFuncElementList ')' */
+#line 13665 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 44841 "gram.c"
+ break;
+
+ case 1838: /* opt_col_def_list: %empty */
+#line 13666 "gram.y"
+ { (yyval.list) = NIL; }
+#line 44847 "gram.c"
+ break;
+
+ case 1839: /* opt_ordinality: WITH_LA ORDINALITY */
+#line 13669 "gram.y"
+ { (yyval.boolean) = true; }
+#line 44853 "gram.c"
+ break;
+
+ case 1840: /* opt_ordinality: %empty */
+#line 13670 "gram.y"
+ { (yyval.boolean) = false; }
+#line 44859 "gram.c"
+ break;
+
+ case 1841: /* where_clause: WHERE a_expr */
+#line 13675 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 44865 "gram.c"
+ break;
+
+ case 1842: /* where_clause: %empty */
+#line 13676 "gram.y"
+ { (yyval.node) = NULL; }
+#line 44871 "gram.c"
+ break;
+
+ case 1843: /* where_or_current_clause: WHERE a_expr */
+#line 13681 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 44877 "gram.c"
+ break;
+
+ case 1844: /* where_or_current_clause: WHERE CURRENT_P OF cursor_name */
+#line 13683 "gram.y"
+ {
+ 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 44890 "gram.c"
+ break;
+
+ case 1845: /* where_or_current_clause: %empty */
+#line 13691 "gram.y"
+ { (yyval.node) = NULL; }
+#line 44896 "gram.c"
+ break;
+
+ case 1846: /* OptTableFuncElementList: TableFuncElementList */
+#line 13696 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 44902 "gram.c"
+ break;
+
+ case 1847: /* OptTableFuncElementList: %empty */
+#line 13697 "gram.y"
+ { (yyval.list) = NIL; }
+#line 44908 "gram.c"
+ break;
+
+ case 1848: /* TableFuncElementList: TableFuncElement */
+#line 13702 "gram.y"
+ {
+ (yyval.list) = list_make1((yyvsp[0].node));
+ }
+#line 44916 "gram.c"
+ break;
+
+ case 1849: /* TableFuncElementList: TableFuncElementList ',' TableFuncElement */
+#line 13706 "gram.y"
+ {
+ (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node));
+ }
+#line 44924 "gram.c"
+ break;
+
+ case 1850: /* TableFuncElement: ColId Typename opt_collate_clause */
+#line 13712 "gram.y"
+ {
+ 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 44947 "gram.c"
+ break;
+
+ case 1851: /* xmltable: XMLTABLE '(' c_expr xmlexists_argument COLUMNS xmltable_column_list ')' */
+#line 13737 "gram.y"
+ {
+ 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 44962 "gram.c"
+ break;
+
+ case 1852: /* xmltable: XMLTABLE '(' XMLNAMESPACES '(' xml_namespace_list ')' ',' c_expr xmlexists_argument COLUMNS xmltable_column_list ')' */
+#line 13749 "gram.y"
+ {
+ 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 44977 "gram.c"
+ break;
+
+ case 1853: /* xmltable_column_list: xmltable_column_el */
+#line 13761 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].node)); }
+#line 44983 "gram.c"
+ break;
+
+ case 1854: /* xmltable_column_list: xmltable_column_list ',' xmltable_column_el */
+#line 13762 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
+#line 44989 "gram.c"
+ break;
+
+ case 1855: /* xmltable_column_el: ColId Typename */
+#line 13767 "gram.y"
+ {
+ 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 45007 "gram.c"
+ break;
+
+ case 1856: /* xmltable_column_el: ColId Typename xmltable_column_option_list */
+#line 13781 "gram.y"
+ {
+ 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 = boolVal(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 45068 "gram.c"
+ break;
+
+ case 1857: /* xmltable_column_el: ColId FOR ORDINALITY */
+#line 13838 "gram.y"
+ {
+ 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 45083 "gram.c"
+ break;
+
+ case 1858: /* xmltable_column_option_list: xmltable_column_option_el */
+#line 13852 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].defelt)); }
+#line 45089 "gram.c"
+ break;
+
+ case 1859: /* xmltable_column_option_list: xmltable_column_option_list xmltable_column_option_el */
+#line 13854 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
+#line 45095 "gram.c"
+ break;
+
+ case 1860: /* xmltable_column_option_el: IDENT b_expr */
+#line 13859 "gram.y"
+ { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); }
+#line 45101 "gram.c"
+ break;
+
+ case 1861: /* xmltable_column_option_el: DEFAULT b_expr */
+#line 13861 "gram.y"
+ { (yyval.defelt) = makeDefElem("default", (yyvsp[0].node), (yylsp[-1])); }
+#line 45107 "gram.c"
+ break;
+
+ case 1862: /* xmltable_column_option_el: NOT NULL_P */
+#line 13863 "gram.y"
+ { (yyval.defelt) = makeDefElem("is_not_null", (Node *) makeBoolean(true), (yylsp[-1])); }
+#line 45113 "gram.c"
+ break;
+
+ case 1863: /* xmltable_column_option_el: NULL_P */
+#line 13865 "gram.y"
+ { (yyval.defelt) = makeDefElem("is_not_null", (Node *) makeBoolean(false), (yylsp[0])); }
+#line 45119 "gram.c"
+ break;
+
+ case 1864: /* xml_namespace_list: xml_namespace_el */
+#line 13870 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].target)); }
+#line 45125 "gram.c"
+ break;
+
+ case 1865: /* xml_namespace_list: xml_namespace_list ',' xml_namespace_el */
+#line 13872 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); }
+#line 45131 "gram.c"
+ break;
+
+ case 1866: /* xml_namespace_el: b_expr AS ColLabel */
+#line 13877 "gram.y"
+ {
+ (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 45143 "gram.c"
+ break;
+
+ case 1867: /* xml_namespace_el: DEFAULT b_expr */
+#line 13885 "gram.y"
+ {
+ (yyval.target) = makeNode(ResTarget);
+ (yyval.target)->name = NULL;
+ (yyval.target)->indirection = NIL;
+ (yyval.target)->val = (yyvsp[0].node);
+ (yyval.target)->location = (yylsp[-1]);
+ }
+#line 45155 "gram.c"
+ break;
+
+ case 1868: /* Typename: SimpleTypename opt_array_bounds */
+#line 13905 "gram.y"
+ {
+ (yyval.typnam) = (yyvsp[-1].typnam);
+ (yyval.typnam)->arrayBounds = (yyvsp[0].list);
+ }
+#line 45164 "gram.c"
+ break;
+
+ case 1869: /* Typename: SETOF SimpleTypename opt_array_bounds */
+#line 13910 "gram.y"
+ {
+ (yyval.typnam) = (yyvsp[-1].typnam);
+ (yyval.typnam)->arrayBounds = (yyvsp[0].list);
+ (yyval.typnam)->setof = true;
+ }
+#line 45174 "gram.c"
+ break;
+
+ case 1870: /* Typename: SimpleTypename ARRAY '[' Iconst ']' */
+#line 13917 "gram.y"
+ {
+ (yyval.typnam) = (yyvsp[-4].typnam);
+ (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[-1].ival)));
+ }
+#line 45183 "gram.c"
+ break;
+
+ case 1871: /* Typename: SETOF SimpleTypename ARRAY '[' Iconst ']' */
+#line 13922 "gram.y"
+ {
+ (yyval.typnam) = (yyvsp[-4].typnam);
+ (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[-1].ival)));
+ (yyval.typnam)->setof = true;
+ }
+#line 45193 "gram.c"
+ break;
+
+ case 1872: /* Typename: SimpleTypename ARRAY */
+#line 13928 "gram.y"
+ {
+ (yyval.typnam) = (yyvsp[-1].typnam);
+ (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1));
+ }
+#line 45202 "gram.c"
+ break;
+
+ case 1873: /* Typename: SETOF SimpleTypename ARRAY */
+#line 13933 "gram.y"
+ {
+ (yyval.typnam) = (yyvsp[-1].typnam);
+ (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1));
+ (yyval.typnam)->setof = true;
+ }
+#line 45212 "gram.c"
+ break;
+
+ case 1874: /* opt_array_bounds: opt_array_bounds '[' ']' */
+#line 13942 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), makeInteger(-1)); }
+#line 45218 "gram.c"
+ break;
+
+ case 1875: /* opt_array_bounds: opt_array_bounds '[' Iconst ']' */
+#line 13944 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-3].list), makeInteger((yyvsp[-1].ival))); }
+#line 45224 "gram.c"
+ break;
+
+ case 1876: /* opt_array_bounds: %empty */
+#line 13946 "gram.y"
+ { (yyval.list) = NIL; }
+#line 45230 "gram.c"
+ break;
+
+ case 1877: /* SimpleTypename: GenericType */
+#line 13950 "gram.y"
+ { (yyval.typnam) = (yyvsp[0].typnam); }
+#line 45236 "gram.c"
+ break;
+
+ case 1878: /* SimpleTypename: Numeric */
+#line 13951 "gram.y"
+ { (yyval.typnam) = (yyvsp[0].typnam); }
+#line 45242 "gram.c"
+ break;
+
+ case 1879: /* SimpleTypename: Bit */
+#line 13952 "gram.y"
+ { (yyval.typnam) = (yyvsp[0].typnam); }
+#line 45248 "gram.c"
+ break;
+
+ case 1880: /* SimpleTypename: Character */
+#line 13953 "gram.y"
+ { (yyval.typnam) = (yyvsp[0].typnam); }
+#line 45254 "gram.c"
+ break;
+
+ case 1881: /* SimpleTypename: ConstDatetime */
+#line 13954 "gram.y"
+ { (yyval.typnam) = (yyvsp[0].typnam); }
+#line 45260 "gram.c"
+ break;
+
+ case 1882: /* SimpleTypename: ConstInterval opt_interval */
+#line 13956 "gram.y"
+ {
+ (yyval.typnam) = (yyvsp[-1].typnam);
+ (yyval.typnam)->typmods = (yyvsp[0].list);
+ }
+#line 45269 "gram.c"
+ break;
+
+ case 1883: /* SimpleTypename: ConstInterval '(' Iconst ')' */
+#line 13961 "gram.y"
+ {
+ (yyval.typnam) = (yyvsp[-3].typnam);
+ (yyval.typnam)->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
+ makeIntConst((yyvsp[-1].ival), (yylsp[-1])));
+ }
+#line 45279 "gram.c"
+ break;
+
+ case 1884: /* ConstTypename: Numeric */
+#line 13980 "gram.y"
+ { (yyval.typnam) = (yyvsp[0].typnam); }
+#line 45285 "gram.c"
+ break;
+
+ case 1885: /* ConstTypename: ConstBit */
+#line 13981 "gram.y"
+ { (yyval.typnam) = (yyvsp[0].typnam); }
+#line 45291 "gram.c"
+ break;
+
+ case 1886: /* ConstTypename: ConstCharacter */
+#line 13982 "gram.y"
+ { (yyval.typnam) = (yyvsp[0].typnam); }
+#line 45297 "gram.c"
+ break;
+
+ case 1887: /* ConstTypename: ConstDatetime */
+#line 13983 "gram.y"
+ { (yyval.typnam) = (yyvsp[0].typnam); }
+#line 45303 "gram.c"
+ break;
+
+ case 1888: /* GenericType: type_function_name opt_type_modifiers */
+#line 13995 "gram.y"
+ {
+ (yyval.typnam) = makeTypeName((yyvsp[-1].str));
+ (yyval.typnam)->typmods = (yyvsp[0].list);
+ (yyval.typnam)->location = (yylsp[-1]);
+ }
+#line 45313 "gram.c"
+ break;
+
+ case 1889: /* GenericType: type_function_name attrs opt_type_modifiers */
+#line 14001 "gram.y"
+ {
+ (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[-2].str)), (yyvsp[-1].list)));
+ (yyval.typnam)->typmods = (yyvsp[0].list);
+ (yyval.typnam)->location = (yylsp[-2]);
+ }
+#line 45323 "gram.c"
+ break;
+
+ case 1890: /* opt_type_modifiers: '(' expr_list ')' */
+#line 14008 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 45329 "gram.c"
+ break;
+
+ case 1891: /* opt_type_modifiers: %empty */
+#line 14009 "gram.y"
+ { (yyval.list) = NIL; }
+#line 45335 "gram.c"
+ break;
+
+ case 1892: /* Numeric: INT_P */
+#line 14016 "gram.y"
+ {
+ (yyval.typnam) = SystemTypeName("int4");
+ (yyval.typnam)->location = (yylsp[0]);
+ }
+#line 45344 "gram.c"
+ break;
+
+ case 1893: /* Numeric: INTEGER */
+#line 14021 "gram.y"
+ {
+ (yyval.typnam) = SystemTypeName("int4");
+ (yyval.typnam)->location = (yylsp[0]);
+ }
+#line 45353 "gram.c"
+ break;
+
+ case 1894: /* Numeric: SMALLINT */
+#line 14026 "gram.y"
+ {
+ (yyval.typnam) = SystemTypeName("int2");
+ (yyval.typnam)->location = (yylsp[0]);
+ }
+#line 45362 "gram.c"
+ break;
+
+ case 1895: /* Numeric: BIGINT */
+#line 14031 "gram.y"
+ {
+ (yyval.typnam) = SystemTypeName("int8");
+ (yyval.typnam)->location = (yylsp[0]);
+ }
+#line 45371 "gram.c"
+ break;
+
+ case 1896: /* Numeric: REAL */
+#line 14036 "gram.y"
+ {
+ (yyval.typnam) = SystemTypeName("float4");
+ (yyval.typnam)->location = (yylsp[0]);
+ }
+#line 45380 "gram.c"
+ break;
+
+ case 1897: /* Numeric: FLOAT_P opt_float */
+#line 14041 "gram.y"
+ {
+ (yyval.typnam) = (yyvsp[0].typnam);
+ (yyval.typnam)->location = (yylsp[-1]);
+ }
+#line 45389 "gram.c"
+ break;
+
+ case 1898: /* Numeric: DOUBLE_P PRECISION */
+#line 14046 "gram.y"
+ {
+ (yyval.typnam) = SystemTypeName("float8");
+ (yyval.typnam)->location = (yylsp[-1]);
+ }
+#line 45398 "gram.c"
+ break;
+
+ case 1899: /* Numeric: DECIMAL_P opt_type_modifiers */
+#line 14051 "gram.y"
+ {
+ (yyval.typnam) = SystemTypeName("numeric");
+ (yyval.typnam)->typmods = (yyvsp[0].list);
+ (yyval.typnam)->location = (yylsp[-1]);
+ }
+#line 45408 "gram.c"
+ break;
+
+ case 1900: /* Numeric: DEC opt_type_modifiers */
+#line 14057 "gram.y"
+ {
+ (yyval.typnam) = SystemTypeName("numeric");
+ (yyval.typnam)->typmods = (yyvsp[0].list);
+ (yyval.typnam)->location = (yylsp[-1]);
+ }
+#line 45418 "gram.c"
+ break;
+
+ case 1901: /* Numeric: NUMERIC opt_type_modifiers */
+#line 14063 "gram.y"
+ {
+ (yyval.typnam) = SystemTypeName("numeric");
+ (yyval.typnam)->typmods = (yyvsp[0].list);
+ (yyval.typnam)->location = (yylsp[-1]);
+ }
+#line 45428 "gram.c"
+ break;
+
+ case 1902: /* Numeric: BOOLEAN_P */
+#line 14069 "gram.y"
+ {
+ (yyval.typnam) = SystemTypeName("bool");
+ (yyval.typnam)->location = (yylsp[0]);
+ }
+#line 45437 "gram.c"
+ break;
+
+ case 1903: /* opt_float: '(' Iconst ')' */
+#line 14076 "gram.y"
+ {
+ /*
+ * 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 45462 "gram.c"
+ break;
+
+ case 1904: /* opt_float: %empty */
+#line 14097 "gram.y"
+ {
+ (yyval.typnam) = SystemTypeName("float8");
+ }
+#line 45470 "gram.c"
+ break;
+
+ case 1905: /* Bit: BitWithLength */
+#line 14107 "gram.y"
+ {
+ (yyval.typnam) = (yyvsp[0].typnam);
+ }
+#line 45478 "gram.c"
+ break;
+
+ case 1906: /* Bit: BitWithoutLength */
+#line 14111 "gram.y"
+ {
+ (yyval.typnam) = (yyvsp[0].typnam);
+ }
+#line 45486 "gram.c"
+ break;
+
+ case 1907: /* ConstBit: BitWithLength */
+#line 14119 "gram.y"
+ {
+ (yyval.typnam) = (yyvsp[0].typnam);
+ }
+#line 45494 "gram.c"
+ break;
+
+ case 1908: /* ConstBit: BitWithoutLength */
+#line 14123 "gram.y"
+ {
+ (yyval.typnam) = (yyvsp[0].typnam);
+ (yyval.typnam)->typmods = NIL;
+ }
+#line 45503 "gram.c"
+ break;
+
+ case 1909: /* BitWithLength: BIT opt_varying '(' expr_list ')' */
+#line 14131 "gram.y"
+ {
+ char *typname;
+
+ typname = (yyvsp[-3].boolean) ? "varbit" : "bit";
+ (yyval.typnam) = SystemTypeName(typname);
+ (yyval.typnam)->typmods = (yyvsp[-1].list);
+ (yyval.typnam)->location = (yylsp[-4]);
+ }
+#line 45516 "gram.c"
+ break;
+
+ case 1910: /* BitWithoutLength: BIT opt_varying */
+#line 14143 "gram.y"
+ {
+ /* 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 45534 "gram.c"
+ break;
+
+ case 1911: /* Character: CharacterWithLength */
+#line 14164 "gram.y"
+ {
+ (yyval.typnam) = (yyvsp[0].typnam);
+ }
+#line 45542 "gram.c"
+ break;
+
+ case 1912: /* Character: CharacterWithoutLength */
+#line 14168 "gram.y"
+ {
+ (yyval.typnam) = (yyvsp[0].typnam);
+ }
+#line 45550 "gram.c"
+ break;
+
+ case 1913: /* ConstCharacter: CharacterWithLength */
+#line 14174 "gram.y"
+ {
+ (yyval.typnam) = (yyvsp[0].typnam);
+ }
+#line 45558 "gram.c"
+ break;
+
+ case 1914: /* ConstCharacter: CharacterWithoutLength */
+#line 14178 "gram.y"
+ {
+ /* 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 45573 "gram.c"
+ break;
+
+ case 1915: /* CharacterWithLength: character '(' Iconst ')' */
+#line 14191 "gram.y"
+ {
+ (yyval.typnam) = SystemTypeName((yyvsp[-3].str));
+ (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-1].ival), (yylsp[-1])));
+ (yyval.typnam)->location = (yylsp[-3]);
+ }
+#line 45583 "gram.c"
+ break;
+
+ case 1916: /* CharacterWithoutLength: character */
+#line 14199 "gram.y"
+ {
+ (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 45595 "gram.c"
+ break;
+
+ case 1917: /* character: CHARACTER opt_varying */
+#line 14209 "gram.y"
+ { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; }
+#line 45601 "gram.c"
+ break;
+
+ case 1918: /* character: CHAR_P opt_varying */
+#line 14211 "gram.y"
+ { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; }
+#line 45607 "gram.c"
+ break;
+
+ case 1919: /* character: VARCHAR */
+#line 14213 "gram.y"
+ { (yyval.str) = "varchar"; }
+#line 45613 "gram.c"
+ break;
+
+ case 1920: /* character: NATIONAL CHARACTER opt_varying */
+#line 14215 "gram.y"
+ { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; }
+#line 45619 "gram.c"
+ break;
+
+ case 1921: /* character: NATIONAL CHAR_P opt_varying */
+#line 14217 "gram.y"
+ { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; }
+#line 45625 "gram.c"
+ break;
+
+ case 1922: /* character: NCHAR opt_varying */
+#line 14219 "gram.y"
+ { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; }
+#line 45631 "gram.c"
+ break;
+
+ case 1923: /* opt_varying: VARYING */
+#line 14223 "gram.y"
+ { (yyval.boolean) = true; }
+#line 45637 "gram.c"
+ break;
+
+ case 1924: /* opt_varying: %empty */
+#line 14224 "gram.y"
+ { (yyval.boolean) = false; }
+#line 45643 "gram.c"
+ break;
+
+ case 1925: /* ConstDatetime: TIMESTAMP '(' Iconst ')' opt_timezone */
+#line 14232 "gram.y"
+ {
+ 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 45656 "gram.c"
+ break;
+
+ case 1926: /* ConstDatetime: TIMESTAMP opt_timezone */
+#line 14241 "gram.y"
+ {
+ if ((yyvsp[0].boolean))
+ (yyval.typnam) = SystemTypeName("timestamptz");
+ else
+ (yyval.typnam) = SystemTypeName("timestamp");
+ (yyval.typnam)->location = (yylsp[-1]);
+ }
+#line 45668 "gram.c"
+ break;
+
+ case 1927: /* ConstDatetime: TIME '(' Iconst ')' opt_timezone */
+#line 14249 "gram.y"
+ {
+ 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 45681 "gram.c"
+ break;
+
+ case 1928: /* ConstDatetime: TIME opt_timezone */
+#line 14258 "gram.y"
+ {
+ if ((yyvsp[0].boolean))
+ (yyval.typnam) = SystemTypeName("timetz");
+ else
+ (yyval.typnam) = SystemTypeName("time");
+ (yyval.typnam)->location = (yylsp[-1]);
+ }
+#line 45693 "gram.c"
+ break;
+
+ case 1929: /* ConstInterval: INTERVAL */
+#line 14269 "gram.y"
+ {
+ (yyval.typnam) = SystemTypeName("interval");
+ (yyval.typnam)->location = (yylsp[0]);
+ }
+#line 45702 "gram.c"
+ break;
+
+ case 1930: /* opt_timezone: WITH_LA TIME ZONE */
+#line 14276 "gram.y"
+ { (yyval.boolean) = true; }
+#line 45708 "gram.c"
+ break;
+
+ case 1931: /* opt_timezone: WITHOUT TIME ZONE */
+#line 14277 "gram.y"
+ { (yyval.boolean) = false; }
+#line 45714 "gram.c"
+ break;
+
+ case 1932: /* opt_timezone: %empty */
+#line 14278 "gram.y"
+ { (yyval.boolean) = false; }
+#line 45720 "gram.c"
+ break;
+
+ case 1933: /* opt_interval: YEAR_P */
+#line 14283 "gram.y"
+ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[0]))); }
+#line 45726 "gram.c"
+ break;
+
+ case 1934: /* opt_interval: MONTH_P */
+#line 14285 "gram.y"
+ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[0]))); }
+#line 45732 "gram.c"
+ break;
+
+ case 1935: /* opt_interval: DAY_P */
+#line 14287 "gram.y"
+ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[0]))); }
+#line 45738 "gram.c"
+ break;
+
+ case 1936: /* opt_interval: HOUR_P */
+#line 14289 "gram.y"
+ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[0]))); }
+#line 45744 "gram.c"
+ break;
+
+ case 1937: /* opt_interval: MINUTE_P */
+#line 14291 "gram.y"
+ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[0]))); }
+#line 45750 "gram.c"
+ break;
+
+ case 1938: /* opt_interval: interval_second */
+#line 14293 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 45756 "gram.c"
+ break;
+
+ case 1939: /* opt_interval: YEAR_P TO MONTH_P */
+#line 14295 "gram.y"
+ {
+ (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) |
+ INTERVAL_MASK(MONTH), (yylsp[-2])));
+ }
+#line 45765 "gram.c"
+ break;
+
+ case 1940: /* opt_interval: DAY_P TO HOUR_P */
+#line 14300 "gram.y"
+ {
+ (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
+ INTERVAL_MASK(HOUR), (yylsp[-2])));
+ }
+#line 45774 "gram.c"
+ break;
+
+ case 1941: /* opt_interval: DAY_P TO MINUTE_P */
+#line 14305 "gram.y"
+ {
+ (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
+ INTERVAL_MASK(HOUR) |
+ INTERVAL_MASK(MINUTE), (yylsp[-2])));
+ }
+#line 45784 "gram.c"
+ break;
+
+ case 1942: /* opt_interval: DAY_P TO interval_second */
+#line 14311 "gram.y"
+ {
+ (yyval.list) = (yyvsp[0].list);
+ linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(DAY) |
+ INTERVAL_MASK(HOUR) |
+ INTERVAL_MASK(MINUTE) |
+ INTERVAL_MASK(SECOND), (yylsp[-2]));
+ }
+#line 45796 "gram.c"
+ break;
+
+ case 1943: /* opt_interval: HOUR_P TO MINUTE_P */
+#line 14319 "gram.y"
+ {
+ (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) |
+ INTERVAL_MASK(MINUTE), (yylsp[-2])));
+ }
+#line 45805 "gram.c"
+ break;
+
+ case 1944: /* opt_interval: HOUR_P TO interval_second */
+#line 14324 "gram.y"
+ {
+ (yyval.list) = (yyvsp[0].list);
+ linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(HOUR) |
+ INTERVAL_MASK(MINUTE) |
+ INTERVAL_MASK(SECOND), (yylsp[-2]));
+ }
+#line 45816 "gram.c"
+ break;
+
+ case 1945: /* opt_interval: MINUTE_P TO interval_second */
+#line 14331 "gram.y"
+ {
+ (yyval.list) = (yyvsp[0].list);
+ linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(MINUTE) |
+ INTERVAL_MASK(SECOND), (yylsp[-2]));
+ }
+#line 45826 "gram.c"
+ break;
+
+ case 1946: /* opt_interval: %empty */
+#line 14337 "gram.y"
+ { (yyval.list) = NIL; }
+#line 45832 "gram.c"
+ break;
+
+ case 1947: /* interval_second: SECOND_P */
+#line 14342 "gram.y"
+ {
+ (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[0])));
+ }
+#line 45840 "gram.c"
+ break;
+
+ case 1948: /* interval_second: SECOND_P '(' Iconst ')' */
+#line 14346 "gram.y"
+ {
+ (yyval.list) = list_make2(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[-3])),
+ makeIntConst((yyvsp[-1].ival), (yylsp[-1])));
+ }
+#line 45849 "gram.c"
+ break;
+
+ case 1949: /* a_expr: c_expr */
+#line 14381 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 45855 "gram.c"
+ break;
+
+ case 1950: /* a_expr: a_expr TYPECAST Typename */
+#line 14383 "gram.y"
+ { (yyval.node) = makeTypeCast((yyvsp[-2].node), (yyvsp[0].typnam), (yylsp[-1])); }
+#line 45861 "gram.c"
+ break;
+
+ case 1951: /* a_expr: a_expr COLLATE any_name */
+#line 14385 "gram.y"
+ {
+ CollateClause *n = makeNode(CollateClause);
+
+ n->arg = (yyvsp[-2].node);
+ n->collname = (yyvsp[0].list);
+ n->location = (yylsp[-1]);
+ (yyval.node) = (Node *) n;
+ }
+#line 45874 "gram.c"
+ break;
+
+ case 1952: /* a_expr: a_expr AT TIME ZONE a_expr */
+#line 14394 "gram.y"
+ {
+ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("timezone"),
+ list_make2((yyvsp[0].node), (yyvsp[-4].node)),
+ COERCE_SQL_SYNTAX,
+ (yylsp[-3]));
+ }
+#line 45885 "gram.c"
+ break;
+
+ case 1953: /* a_expr: '+' a_expr */
+#line 14410 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); }
+#line 45891 "gram.c"
+ break;
+
+ case 1954: /* a_expr: '-' a_expr */
+#line 14412 "gram.y"
+ { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); }
+#line 45897 "gram.c"
+ break;
+
+ case 1955: /* a_expr: a_expr '+' a_expr */
+#line 14414 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 45903 "gram.c"
+ break;
+
+ case 1956: /* a_expr: a_expr '-' a_expr */
+#line 14416 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 45909 "gram.c"
+ break;
+
+ case 1957: /* a_expr: a_expr '*' a_expr */
+#line 14418 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 45915 "gram.c"
+ break;
+
+ case 1958: /* a_expr: a_expr '/' a_expr */
+#line 14420 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 45921 "gram.c"
+ break;
+
+ case 1959: /* a_expr: a_expr '%' a_expr */
+#line 14422 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 45927 "gram.c"
+ break;
+
+ case 1960: /* a_expr: a_expr '^' a_expr */
+#line 14424 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 45933 "gram.c"
+ break;
+
+ case 1961: /* a_expr: a_expr '<' a_expr */
+#line 14426 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 45939 "gram.c"
+ break;
+
+ case 1962: /* a_expr: a_expr '>' a_expr */
+#line 14428 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 45945 "gram.c"
+ break;
+
+ case 1963: /* a_expr: a_expr '=' a_expr */
+#line 14430 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 45951 "gram.c"
+ break;
+
+ case 1964: /* a_expr: a_expr LESS_EQUALS a_expr */
+#line 14432 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 45957 "gram.c"
+ break;
+
+ case 1965: /* a_expr: a_expr GREATER_EQUALS a_expr */
+#line 14434 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 45963 "gram.c"
+ break;
+
+ case 1966: /* a_expr: a_expr NOT_EQUALS a_expr */
+#line 14436 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 45969 "gram.c"
+ break;
+
+ case 1967: /* a_expr: a_expr qual_Op a_expr */
+#line 14439 "gram.y"
+ { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 45975 "gram.c"
+ break;
+
+ case 1968: /* a_expr: qual_Op a_expr */
+#line 14441 "gram.y"
+ { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), NULL, (yyvsp[0].node), (yylsp[-1])); }
+#line 45981 "gram.c"
+ break;
+
+ case 1969: /* a_expr: a_expr AND a_expr */
+#line 14444 "gram.y"
+ { (yyval.node) = makeAndExpr((yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 45987 "gram.c"
+ break;
+
+ case 1970: /* a_expr: a_expr OR a_expr */
+#line 14446 "gram.y"
+ { (yyval.node) = makeOrExpr((yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 45993 "gram.c"
+ break;
+
+ case 1971: /* a_expr: NOT a_expr */
+#line 14448 "gram.y"
+ { (yyval.node) = makeNotExpr((yyvsp[0].node), (yylsp[-1])); }
+#line 45999 "gram.c"
+ break;
+
+ case 1972: /* a_expr: NOT_LA a_expr */
+#line 14450 "gram.y"
+ { (yyval.node) = makeNotExpr((yyvsp[0].node), (yylsp[-1])); }
+#line 46005 "gram.c"
+ break;
+
+ case 1973: /* a_expr: a_expr LIKE a_expr */
+#line 14453 "gram.y"
+ {
+ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "~~",
+ (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1]));
+ }
+#line 46014 "gram.c"
+ break;
+
+ case 1974: /* a_expr: a_expr LIKE a_expr ESCAPE a_expr */
+#line 14458 "gram.y"
+ {
+ FuncCall *n = makeFuncCall(SystemFuncName("like_escape"),
+ list_make2((yyvsp[-2].node), (yyvsp[0].node)),
+ COERCE_EXPLICIT_CALL,
+ (yylsp[-3]));
+ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "~~",
+ (yyvsp[-4].node), (Node *) n, (yylsp[-3]));
+ }
+#line 46027 "gram.c"
+ break;
+
+ case 1975: /* a_expr: a_expr NOT_LA LIKE a_expr */
+#line 14467 "gram.y"
+ {
+ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "!~~",
+ (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2]));
+ }
+#line 46036 "gram.c"
+ break;
+
+ case 1976: /* a_expr: a_expr NOT_LA LIKE a_expr ESCAPE a_expr */
+#line 14472 "gram.y"
+ {
+ FuncCall *n = makeFuncCall(SystemFuncName("like_escape"),
+ list_make2((yyvsp[-2].node), (yyvsp[0].node)),
+ COERCE_EXPLICIT_CALL,
+ (yylsp[-4]));
+ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "!~~",
+ (yyvsp[-5].node), (Node *) n, (yylsp[-4]));
+ }
+#line 46049 "gram.c"
+ break;
+
+ case 1977: /* a_expr: a_expr ILIKE a_expr */
+#line 14481 "gram.y"
+ {
+ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "~~*",
+ (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1]));
+ }
+#line 46058 "gram.c"
+ break;
+
+ case 1978: /* a_expr: a_expr ILIKE a_expr ESCAPE a_expr */
+#line 14486 "gram.y"
+ {
+ FuncCall *n = makeFuncCall(SystemFuncName("like_escape"),
+ list_make2((yyvsp[-2].node), (yyvsp[0].node)),
+ COERCE_EXPLICIT_CALL,
+ (yylsp[-3]));
+ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "~~*",
+ (yyvsp[-4].node), (Node *) n, (yylsp[-3]));
+ }
+#line 46071 "gram.c"
+ break;
+
+ case 1979: /* a_expr: a_expr NOT_LA ILIKE a_expr */
+#line 14495 "gram.y"
+ {
+ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "!~~*",
+ (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2]));
+ }
+#line 46080 "gram.c"
+ break;
+
+ case 1980: /* a_expr: a_expr NOT_LA ILIKE a_expr ESCAPE a_expr */
+#line 14500 "gram.y"
+ {
+ FuncCall *n = makeFuncCall(SystemFuncName("like_escape"),
+ list_make2((yyvsp[-2].node), (yyvsp[0].node)),
+ COERCE_EXPLICIT_CALL,
+ (yylsp[-4]));
+ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "!~~*",
+ (yyvsp[-5].node), (Node *) n, (yylsp[-4]));
+ }
+#line 46093 "gram.c"
+ break;
+
+ case 1981: /* a_expr: a_expr SIMILAR TO a_expr */
+#line 14510 "gram.y"
+ {
+ FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"),
+ list_make1((yyvsp[0].node)),
+ COERCE_EXPLICIT_CALL,
+ (yylsp[-2]));
+ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "~",
+ (yyvsp[-3].node), (Node *) n, (yylsp[-2]));
+ }
+#line 46106 "gram.c"
+ break;
+
+ case 1982: /* a_expr: a_expr SIMILAR TO a_expr ESCAPE a_expr */
+#line 14519 "gram.y"
+ {
+ FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"),
+ list_make2((yyvsp[-2].node), (yyvsp[0].node)),
+ COERCE_EXPLICIT_CALL,
+ (yylsp[-4]));
+ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "~",
+ (yyvsp[-5].node), (Node *) n, (yylsp[-4]));
+ }
+#line 46119 "gram.c"
+ break;
+
+ case 1983: /* a_expr: a_expr NOT_LA SIMILAR TO a_expr */
+#line 14528 "gram.y"
+ {
+ FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"),
+ list_make1((yyvsp[0].node)),
+ COERCE_EXPLICIT_CALL,
+ (yylsp[-3]));
+ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "!~",
+ (yyvsp[-4].node), (Node *) n, (yylsp[-3]));
+ }
+#line 46132 "gram.c"
+ break;
+
+ case 1984: /* a_expr: a_expr NOT_LA SIMILAR TO a_expr ESCAPE a_expr */
+#line 14537 "gram.y"
+ {
+ FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"),
+ list_make2((yyvsp[-2].node), (yyvsp[0].node)),
+ COERCE_EXPLICIT_CALL,
+ (yylsp[-5]));
+ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "!~",
+ (yyvsp[-6].node), (Node *) n, (yylsp[-5]));
+ }
+#line 46145 "gram.c"
+ break;
+
+ case 1985: /* a_expr: a_expr IS NULL_P */
+#line 14556 "gram.y"
+ {
+ NullTest *n = makeNode(NullTest);
+
+ n->arg = (Expr *) (yyvsp[-2].node);
+ n->nulltesttype = IS_NULL;
+ n->location = (yylsp[-1]);
+ (yyval.node) = (Node *) n;
+ }
+#line 46158 "gram.c"
+ break;
+
+ case 1986: /* a_expr: a_expr ISNULL */
+#line 14565 "gram.y"
+ {
+ NullTest *n = makeNode(NullTest);
+
+ n->arg = (Expr *) (yyvsp[-1].node);
+ n->nulltesttype = IS_NULL;
+ n->location = (yylsp[0]);
+ (yyval.node) = (Node *) n;
+ }
+#line 46171 "gram.c"
+ break;
+
+ case 1987: /* a_expr: a_expr IS NOT NULL_P */
+#line 14574 "gram.y"
+ {
+ NullTest *n = makeNode(NullTest);
+
+ n->arg = (Expr *) (yyvsp[-3].node);
+ n->nulltesttype = IS_NOT_NULL;
+ n->location = (yylsp[-2]);
+ (yyval.node) = (Node *) n;
+ }
+#line 46184 "gram.c"
+ break;
+
+ case 1988: /* a_expr: a_expr NOTNULL */
+#line 14583 "gram.y"
+ {
+ NullTest *n = makeNode(NullTest);
+
+ n->arg = (Expr *) (yyvsp[-1].node);
+ n->nulltesttype = IS_NOT_NULL;
+ n->location = (yylsp[0]);
+ (yyval.node) = (Node *) n;
+ }
+#line 46197 "gram.c"
+ break;
+
+ case 1989: /* a_expr: row OVERLAPS row */
+#line 14592 "gram.y"
+ {
+ 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)),
+ COERCE_SQL_SYNTAX,
+ (yylsp[-1]));
+ }
+#line 46218 "gram.c"
+ break;
+
+ case 1990: /* a_expr: a_expr IS TRUE_P */
+#line 14609 "gram.y"
+ {
+ BooleanTest *b = makeNode(BooleanTest);
+
+ b->arg = (Expr *) (yyvsp[-2].node);
+ b->booltesttype = IS_TRUE;
+ b->location = (yylsp[-1]);
+ (yyval.node) = (Node *) b;
+ }
+#line 46231 "gram.c"
+ break;
+
+ case 1991: /* a_expr: a_expr IS NOT TRUE_P */
+#line 14618 "gram.y"
+ {
+ BooleanTest *b = makeNode(BooleanTest);
+
+ b->arg = (Expr *) (yyvsp[-3].node);
+ b->booltesttype = IS_NOT_TRUE;
+ b->location = (yylsp[-2]);
+ (yyval.node) = (Node *) b;
+ }
+#line 46244 "gram.c"
+ break;
+
+ case 1992: /* a_expr: a_expr IS FALSE_P */
+#line 14627 "gram.y"
+ {
+ BooleanTest *b = makeNode(BooleanTest);
+
+ b->arg = (Expr *) (yyvsp[-2].node);
+ b->booltesttype = IS_FALSE;
+ b->location = (yylsp[-1]);
+ (yyval.node) = (Node *) b;
+ }
+#line 46257 "gram.c"
+ break;
+
+ case 1993: /* a_expr: a_expr IS NOT FALSE_P */
+#line 14636 "gram.y"
+ {
+ BooleanTest *b = makeNode(BooleanTest);
+
+ b->arg = (Expr *) (yyvsp[-3].node);
+ b->booltesttype = IS_NOT_FALSE;
+ b->location = (yylsp[-2]);
+ (yyval.node) = (Node *) b;
+ }
+#line 46270 "gram.c"
+ break;
+
+ case 1994: /* a_expr: a_expr IS UNKNOWN */
+#line 14645 "gram.y"
+ {
+ BooleanTest *b = makeNode(BooleanTest);
+
+ b->arg = (Expr *) (yyvsp[-2].node);
+ b->booltesttype = IS_UNKNOWN;
+ b->location = (yylsp[-1]);
+ (yyval.node) = (Node *) b;
+ }
+#line 46283 "gram.c"
+ break;
+
+ case 1995: /* a_expr: a_expr IS NOT UNKNOWN */
+#line 14654 "gram.y"
+ {
+ BooleanTest *b = makeNode(BooleanTest);
+
+ b->arg = (Expr *) (yyvsp[-3].node);
+ b->booltesttype = IS_NOT_UNKNOWN;
+ b->location = (yylsp[-2]);
+ (yyval.node) = (Node *) b;
+ }
+#line 46296 "gram.c"
+ break;
+
+ case 1996: /* a_expr: a_expr IS DISTINCT FROM a_expr */
+#line 14663 "gram.y"
+ {
+ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[-4].node), (yyvsp[0].node), (yylsp[-3]));
+ }
+#line 46304 "gram.c"
+ break;
+
+ case 1997: /* a_expr: a_expr IS NOT DISTINCT FROM a_expr */
+#line 14667 "gram.y"
+ {
+ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_DISTINCT, "=", (yyvsp[-5].node), (yyvsp[0].node), (yylsp[-4]));
+ }
+#line 46312 "gram.c"
+ break;
+
+ case 1998: /* a_expr: a_expr BETWEEN opt_asymmetric b_expr AND a_expr */
+#line 14671 "gram.y"
+ {
+ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_BETWEEN,
+ "BETWEEN",
+ (yyvsp[-5].node),
+ (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)),
+ (yylsp[-4]));
+ }
+#line 46324 "gram.c"
+ break;
+
+ case 1999: /* a_expr: a_expr NOT_LA BETWEEN opt_asymmetric b_expr AND a_expr */
+#line 14679 "gram.y"
+ {
+ (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 46336 "gram.c"
+ break;
+
+ case 2000: /* a_expr: a_expr BETWEEN SYMMETRIC b_expr AND a_expr */
+#line 14687 "gram.y"
+ {
+ (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 46348 "gram.c"
+ break;
+
+ case 2001: /* a_expr: a_expr NOT_LA BETWEEN SYMMETRIC b_expr AND a_expr */
+#line 14695 "gram.y"
+ {
+ (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 46360 "gram.c"
+ break;
+
+ case 2002: /* a_expr: a_expr IN_P in_expr */
+#line 14703 "gram.y"
+ {
+ /* 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 46385 "gram.c"
+ break;
+
+ case 2003: /* a_expr: a_expr NOT_LA IN_P in_expr */
+#line 14724 "gram.y"
+ {
+ /* 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 46412 "gram.c"
+ break;
+
+ case 2004: /* a_expr: a_expr subquery_Op sub_type select_with_parens */
+#line 14747 "gram.y"
+ {
+ 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 46428 "gram.c"
+ break;
+
+ case 2005: /* a_expr: a_expr subquery_Op sub_type '(' a_expr ')' */
+#line 14759 "gram.y"
+ {
+ 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 46439 "gram.c"
+ break;
+
+ case 2006: /* a_expr: UNIQUE opt_unique_null_treatment select_with_parens */
+#line 14766 "gram.y"
+ {
+ /* 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[-2]))));
+ }
+#line 46459 "gram.c"
+ break;
+
+ case 2007: /* a_expr: a_expr IS DOCUMENT_P */
+#line 14782 "gram.y"
+ {
+ (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL,
+ list_make1((yyvsp[-2].node)), (yylsp[-1]));
+ }
+#line 46468 "gram.c"
+ break;
+
+ case 2008: /* a_expr: a_expr IS NOT DOCUMENT_P */
+#line 14787 "gram.y"
+ {
+ (yyval.node) = makeNotExpr(makeXmlExpr(IS_DOCUMENT, NULL, NIL,
+ list_make1((yyvsp[-3].node)), (yylsp[-2])),
+ (yylsp[-2]));
+ }
+#line 46478 "gram.c"
+ break;
+
+ case 2009: /* a_expr: a_expr IS NORMALIZED */
+#line 14793 "gram.y"
+ {
+ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("is_normalized"),
+ list_make1((yyvsp[-2].node)),
+ COERCE_SQL_SYNTAX,
+ (yylsp[-1]));
+ }
+#line 46489 "gram.c"
+ break;
+
+ case 2010: /* a_expr: a_expr IS unicode_normal_form NORMALIZED */
+#line 14800 "gram.y"
+ {
+ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("is_normalized"),
+ list_make2((yyvsp[-3].node), makeStringConst((yyvsp[-1].str), (yylsp[-1]))),
+ COERCE_SQL_SYNTAX,
+ (yylsp[-2]));
+ }
+#line 46500 "gram.c"
+ break;
+
+ case 2011: /* a_expr: a_expr IS NOT NORMALIZED */
+#line 14807 "gram.y"
+ {
+ (yyval.node) = makeNotExpr((Node *) makeFuncCall(SystemFuncName("is_normalized"),
+ list_make1((yyvsp[-3].node)),
+ COERCE_SQL_SYNTAX,
+ (yylsp[-2])),
+ (yylsp[-2]));
+ }
+#line 46512 "gram.c"
+ break;
+
+ case 2012: /* a_expr: a_expr IS NOT unicode_normal_form NORMALIZED */
+#line 14815 "gram.y"
+ {
+ (yyval.node) = makeNotExpr((Node *) makeFuncCall(SystemFuncName("is_normalized"),
+ list_make2((yyvsp[-4].node), makeStringConst((yyvsp[-1].str), (yylsp[-1]))),
+ COERCE_SQL_SYNTAX,
+ (yylsp[-3])),
+ (yylsp[-3]));
+ }
+#line 46524 "gram.c"
+ break;
+
+ case 2013: /* a_expr: DEFAULT */
+#line 14823 "gram.y"
+ {
+ /*
+ * 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 46543 "gram.c"
+ break;
+
+ case 2014: /* b_expr: c_expr */
+#line 14849 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 46549 "gram.c"
+ break;
+
+ case 2015: /* b_expr: b_expr TYPECAST Typename */
+#line 14851 "gram.y"
+ { (yyval.node) = makeTypeCast((yyvsp[-2].node), (yyvsp[0].typnam), (yylsp[-1])); }
+#line 46555 "gram.c"
+ break;
+
+ case 2016: /* b_expr: '+' b_expr */
+#line 14853 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); }
+#line 46561 "gram.c"
+ break;
+
+ case 2017: /* b_expr: '-' b_expr */
+#line 14855 "gram.y"
+ { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); }
+#line 46567 "gram.c"
+ break;
+
+ case 2018: /* b_expr: b_expr '+' b_expr */
+#line 14857 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 46573 "gram.c"
+ break;
+
+ case 2019: /* b_expr: b_expr '-' b_expr */
+#line 14859 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 46579 "gram.c"
+ break;
+
+ case 2020: /* b_expr: b_expr '*' b_expr */
+#line 14861 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 46585 "gram.c"
+ break;
+
+ case 2021: /* b_expr: b_expr '/' b_expr */
+#line 14863 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 46591 "gram.c"
+ break;
+
+ case 2022: /* b_expr: b_expr '%' b_expr */
+#line 14865 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 46597 "gram.c"
+ break;
+
+ case 2023: /* b_expr: b_expr '^' b_expr */
+#line 14867 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 46603 "gram.c"
+ break;
+
+ case 2024: /* b_expr: b_expr '<' b_expr */
+#line 14869 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 46609 "gram.c"
+ break;
+
+ case 2025: /* b_expr: b_expr '>' b_expr */
+#line 14871 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 46615 "gram.c"
+ break;
+
+ case 2026: /* b_expr: b_expr '=' b_expr */
+#line 14873 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 46621 "gram.c"
+ break;
+
+ case 2027: /* b_expr: b_expr LESS_EQUALS b_expr */
+#line 14875 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 46627 "gram.c"
+ break;
+
+ case 2028: /* b_expr: b_expr GREATER_EQUALS b_expr */
+#line 14877 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 46633 "gram.c"
+ break;
+
+ case 2029: /* b_expr: b_expr NOT_EQUALS b_expr */
+#line 14879 "gram.y"
+ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 46639 "gram.c"
+ break;
+
+ case 2030: /* b_expr: b_expr qual_Op b_expr */
+#line 14881 "gram.y"
+ { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
+#line 46645 "gram.c"
+ break;
+
+ case 2031: /* b_expr: qual_Op b_expr */
+#line 14883 "gram.y"
+ { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), NULL, (yyvsp[0].node), (yylsp[-1])); }
+#line 46651 "gram.c"
+ break;
+
+ case 2032: /* b_expr: b_expr IS DISTINCT FROM b_expr */
+#line 14885 "gram.y"
+ {
+ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[-4].node), (yyvsp[0].node), (yylsp[-3]));
+ }
+#line 46659 "gram.c"
+ break;
+
+ case 2033: /* b_expr: b_expr IS NOT DISTINCT FROM b_expr */
+#line 14889 "gram.y"
+ {
+ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_DISTINCT, "=", (yyvsp[-5].node), (yyvsp[0].node), (yylsp[-4]));
+ }
+#line 46667 "gram.c"
+ break;
+
+ case 2034: /* b_expr: b_expr IS DOCUMENT_P */
+#line 14893 "gram.y"
+ {
+ (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL,
+ list_make1((yyvsp[-2].node)), (yylsp[-1]));
+ }
+#line 46676 "gram.c"
+ break;
+
+ case 2035: /* b_expr: b_expr IS NOT DOCUMENT_P */
+#line 14898 "gram.y"
+ {
+ (yyval.node) = makeNotExpr(makeXmlExpr(IS_DOCUMENT, NULL, NIL,
+ list_make1((yyvsp[-3].node)), (yylsp[-2])),
+ (yylsp[-2]));
+ }
+#line 46686 "gram.c"
+ break;
+
+ case 2036: /* c_expr: columnref */
+#line 14913 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 46692 "gram.c"
+ break;
+
+ case 2037: /* c_expr: AexprConst */
+#line 14914 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 46698 "gram.c"
+ break;
+
+ case 2038: /* c_expr: PARAM opt_indirection */
+#line 14916 "gram.y"
+ {
+ 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 46719 "gram.c"
+ break;
+
+ case 2039: /* c_expr: '(' a_expr ')' opt_indirection */
+#line 14933 "gram.y"
+ {
+ 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
+ (yyval.node) = (yyvsp[-2].node);
+ }
+#line 46736 "gram.c"
+ break;
+
+ case 2040: /* c_expr: case_expr */
+#line 14946 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 46742 "gram.c"
+ break;
+
+ case 2041: /* c_expr: func_expr */
+#line 14948 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 46748 "gram.c"
+ break;
+
+ case 2042: /* c_expr: select_with_parens */
+#line 14950 "gram.y"
+ {
+ 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 46764 "gram.c"
+ break;
+
+ case 2043: /* c_expr: select_with_parens indirection */
+#line 14962 "gram.y"
+ {
+ /*
+ * 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 46793 "gram.c"
+ break;
+
+ case 2044: /* c_expr: EXISTS select_with_parens */
+#line 14987 "gram.y"
+ {
+ 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 46809 "gram.c"
+ break;
+
+ case 2045: /* c_expr: ARRAY select_with_parens */
+#line 14999 "gram.y"
+ {
+ 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 46825 "gram.c"
+ break;
+
+ case 2046: /* c_expr: ARRAY array_expr */
+#line 15011 "gram.y"
+ {
+ 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 46837 "gram.c"
+ break;
+
+ case 2047: /* c_expr: explicit_row */
+#line 15019 "gram.y"
+ {
+ 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 46852 "gram.c"
+ break;
+
+ case 2048: /* c_expr: implicit_row */
+#line 15030 "gram.y"
+ {
+ 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 46867 "gram.c"
+ break;
+
+ case 2049: /* c_expr: GROUPING '(' expr_list ')' */
+#line 15041 "gram.y"
+ {
+ GroupingFunc *g = makeNode(GroupingFunc);
+
+ g->args = (yyvsp[-1].list);
+ g->location = (yylsp[-3]);
+ (yyval.node) = (Node *) g;
+ }
+#line 46879 "gram.c"
+ break;
+
+ case 2050: /* func_application: func_name '(' ')' */
+#line 15051 "gram.y"
+ {
+ (yyval.node) = (Node *) makeFuncCall((yyvsp[-2].list), NIL,
+ COERCE_EXPLICIT_CALL,
+ (yylsp[-2]));
+ }
+#line 46889 "gram.c"
+ break;
+
+ case 2051: /* func_application: func_name '(' func_arg_list opt_sort_clause ')' */
+#line 15057 "gram.y"
+ {
+ FuncCall *n = makeFuncCall((yyvsp[-4].list), (yyvsp[-2].list),
+ COERCE_EXPLICIT_CALL,
+ (yylsp[-4]));
+
+ n->agg_order = (yyvsp[-1].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 46902 "gram.c"
+ break;
+
+ case 2052: /* func_application: func_name '(' VARIADIC func_arg_expr opt_sort_clause ')' */
+#line 15066 "gram.y"
+ {
+ FuncCall *n = makeFuncCall((yyvsp[-5].list), list_make1((yyvsp[-2].node)),
+ COERCE_EXPLICIT_CALL,
+ (yylsp[-5]));
+
+ n->func_variadic = true;
+ n->agg_order = (yyvsp[-1].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 46916 "gram.c"
+ break;
+
+ case 2053: /* func_application: func_name '(' func_arg_list ',' VARIADIC func_arg_expr opt_sort_clause ')' */
+#line 15076 "gram.y"
+ {
+ FuncCall *n = makeFuncCall((yyvsp[-7].list), lappend((yyvsp[-5].list), (yyvsp[-2].node)),
+ COERCE_EXPLICIT_CALL,
+ (yylsp[-7]));
+
+ n->func_variadic = true;
+ n->agg_order = (yyvsp[-1].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 46930 "gram.c"
+ break;
+
+ case 2054: /* func_application: func_name '(' ALL func_arg_list opt_sort_clause ')' */
+#line 15086 "gram.y"
+ {
+ FuncCall *n = makeFuncCall((yyvsp[-5].list), (yyvsp[-2].list),
+ COERCE_EXPLICIT_CALL,
+ (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 46947 "gram.c"
+ break;
+
+ case 2055: /* func_application: func_name '(' DISTINCT func_arg_list opt_sort_clause ')' */
+#line 15099 "gram.y"
+ {
+ FuncCall *n = makeFuncCall((yyvsp[-5].list), (yyvsp[-2].list),
+ COERCE_EXPLICIT_CALL,
+ (yylsp[-5]));
+
+ n->agg_order = (yyvsp[-1].list);
+ n->agg_distinct = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 46961 "gram.c"
+ break;
+
+ case 2056: /* func_application: func_name '(' '*' ')' */
+#line 15109 "gram.y"
+ {
+ /*
+ * 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,
+ COERCE_EXPLICIT_CALL,
+ (yylsp[-3]));
+
+ n->agg_star = true;
+ (yyval.node) = (Node *) n;
+ }
+#line 46984 "gram.c"
+ break;
+
+ case 2057: /* func_expr: func_application within_group_clause filter_clause over_clause */
+#line 15140 "gram.y"
+ {
+ 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 47024 "gram.c"
+ break;
+
+ case 2058: /* func_expr: func_expr_common_subexpr */
+#line 15176 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 47030 "gram.c"
+ break;
+
+ case 2059: /* func_expr_windowless: func_application */
+#line 15186 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 47036 "gram.c"
+ break;
+
+ case 2060: /* func_expr_windowless: func_expr_common_subexpr */
+#line 15187 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 47042 "gram.c"
+ break;
+
+ case 2061: /* func_expr_common_subexpr: COLLATION FOR '(' a_expr ')' */
+#line 15195 "gram.y"
+ {
+ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("pg_collation_for"),
+ list_make1((yyvsp[-1].node)),
+ COERCE_SQL_SYNTAX,
+ (yylsp[-4]));
+ }
+#line 47053 "gram.c"
+ break;
+
+ case 2062: /* func_expr_common_subexpr: CURRENT_DATE */
+#line 15202 "gram.y"
+ {
+ (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_DATE, -1, (yylsp[0]));
+ }
+#line 47061 "gram.c"
+ break;
+
+ case 2063: /* func_expr_common_subexpr: CURRENT_TIME */
+#line 15206 "gram.y"
+ {
+ (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIME, -1, (yylsp[0]));
+ }
+#line 47069 "gram.c"
+ break;
+
+ case 2064: /* func_expr_common_subexpr: CURRENT_TIME '(' Iconst ')' */
+#line 15210 "gram.y"
+ {
+ (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIME_N, (yyvsp[-1].ival), (yylsp[-3]));
+ }
+#line 47077 "gram.c"
+ break;
+
+ case 2065: /* func_expr_common_subexpr: CURRENT_TIMESTAMP */
+#line 15214 "gram.y"
+ {
+ (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIMESTAMP, -1, (yylsp[0]));
+ }
+#line 47085 "gram.c"
+ break;
+
+ case 2066: /* func_expr_common_subexpr: CURRENT_TIMESTAMP '(' Iconst ')' */
+#line 15218 "gram.y"
+ {
+ (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIMESTAMP_N, (yyvsp[-1].ival), (yylsp[-3]));
+ }
+#line 47093 "gram.c"
+ break;
+
+ case 2067: /* func_expr_common_subexpr: LOCALTIME */
+#line 15222 "gram.y"
+ {
+ (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIME, -1, (yylsp[0]));
+ }
+#line 47101 "gram.c"
+ break;
+
+ case 2068: /* func_expr_common_subexpr: LOCALTIME '(' Iconst ')' */
+#line 15226 "gram.y"
+ {
+ (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIME_N, (yyvsp[-1].ival), (yylsp[-3]));
+ }
+#line 47109 "gram.c"
+ break;
+
+ case 2069: /* func_expr_common_subexpr: LOCALTIMESTAMP */
+#line 15230 "gram.y"
+ {
+ (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIMESTAMP, -1, (yylsp[0]));
+ }
+#line 47117 "gram.c"
+ break;
+
+ case 2070: /* func_expr_common_subexpr: LOCALTIMESTAMP '(' Iconst ')' */
+#line 15234 "gram.y"
+ {
+ (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIMESTAMP_N, (yyvsp[-1].ival), (yylsp[-3]));
+ }
+#line 47125 "gram.c"
+ break;
+
+ case 2071: /* func_expr_common_subexpr: CURRENT_ROLE */
+#line 15238 "gram.y"
+ {
+ (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_ROLE, -1, (yylsp[0]));
+ }
+#line 47133 "gram.c"
+ break;
+
+ case 2072: /* func_expr_common_subexpr: CURRENT_USER */
+#line 15242 "gram.y"
+ {
+ (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_USER, -1, (yylsp[0]));
+ }
+#line 47141 "gram.c"
+ break;
+
+ case 2073: /* func_expr_common_subexpr: SESSION_USER */
+#line 15246 "gram.y"
+ {
+ (yyval.node) = makeSQLValueFunction(SVFOP_SESSION_USER, -1, (yylsp[0]));
+ }
+#line 47149 "gram.c"
+ break;
+
+ case 2074: /* func_expr_common_subexpr: USER */
+#line 15250 "gram.y"
+ {
+ (yyval.node) = makeSQLValueFunction(SVFOP_USER, -1, (yylsp[0]));
+ }
+#line 47157 "gram.c"
+ break;
+
+ case 2075: /* func_expr_common_subexpr: CURRENT_CATALOG */
+#line 15254 "gram.y"
+ {
+ (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_CATALOG, -1, (yylsp[0]));
+ }
+#line 47165 "gram.c"
+ break;
+
+ case 2076: /* func_expr_common_subexpr: CURRENT_SCHEMA */
+#line 15258 "gram.y"
+ {
+ (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_SCHEMA, -1, (yylsp[0]));
+ }
+#line 47173 "gram.c"
+ break;
+
+ case 2077: /* func_expr_common_subexpr: CAST '(' a_expr AS Typename ')' */
+#line 15262 "gram.y"
+ { (yyval.node) = makeTypeCast((yyvsp[-3].node), (yyvsp[-1].typnam), (yylsp[-5])); }
+#line 47179 "gram.c"
+ break;
+
+ case 2078: /* func_expr_common_subexpr: EXTRACT '(' extract_list ')' */
+#line 15264 "gram.y"
+ {
+ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("extract"),
+ (yyvsp[-1].list),
+ COERCE_SQL_SYNTAX,
+ (yylsp[-3]));
+ }
+#line 47190 "gram.c"
+ break;
+
+ case 2079: /* func_expr_common_subexpr: NORMALIZE '(' a_expr ')' */
+#line 15271 "gram.y"
+ {
+ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("normalize"),
+ list_make1((yyvsp[-1].node)),
+ COERCE_SQL_SYNTAX,
+ (yylsp[-3]));
+ }
+#line 47201 "gram.c"
+ break;
+
+ case 2080: /* func_expr_common_subexpr: NORMALIZE '(' a_expr ',' unicode_normal_form ')' */
+#line 15278 "gram.y"
+ {
+ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("normalize"),
+ list_make2((yyvsp[-3].node), makeStringConst((yyvsp[-1].str), (yylsp[-1]))),
+ COERCE_SQL_SYNTAX,
+ (yylsp[-5]));
+ }
+#line 47212 "gram.c"
+ break;
+
+ case 2081: /* func_expr_common_subexpr: OVERLAY '(' overlay_list ')' */
+#line 15285 "gram.y"
+ {
+ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("overlay"),
+ (yyvsp[-1].list),
+ COERCE_SQL_SYNTAX,
+ (yylsp[-3]));
+ }
+#line 47223 "gram.c"
+ break;
+
+ case 2082: /* func_expr_common_subexpr: OVERLAY '(' func_arg_list_opt ')' */
+#line 15292 "gram.y"
+ {
+ /*
+ * allow functions named overlay() to be called without
+ * special syntax
+ */
+ (yyval.node) = (Node *) makeFuncCall(list_make1(makeString("overlay")),
+ (yyvsp[-1].list),
+ COERCE_EXPLICIT_CALL,
+ (yylsp[-3]));
+ }
+#line 47238 "gram.c"
+ break;
+
+ case 2083: /* func_expr_common_subexpr: POSITION '(' position_list ')' */
+#line 15303 "gram.y"
+ {
+ /*
+ * position(A in B) is converted to position(B, A)
+ *
+ * We deliberately don't offer a "plain syntax" option
+ * for position(), because the reversal of the arguments
+ * creates too much risk of confusion.
+ */
+ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("position"),
+ (yyvsp[-1].list),
+ COERCE_SQL_SYNTAX,
+ (yylsp[-3]));
+ }
+#line 47256 "gram.c"
+ break;
+
+ case 2084: /* func_expr_common_subexpr: SUBSTRING '(' substr_list ')' */
+#line 15317 "gram.y"
+ {
+ /* 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),
+ COERCE_SQL_SYNTAX,
+ (yylsp[-3]));
+ }
+#line 47270 "gram.c"
+ break;
+
+ case 2085: /* func_expr_common_subexpr: SUBSTRING '(' func_arg_list_opt ')' */
+#line 15327 "gram.y"
+ {
+ /*
+ * allow functions named substring() to be called without
+ * special syntax
+ */
+ (yyval.node) = (Node *) makeFuncCall(list_make1(makeString("substring")),
+ (yyvsp[-1].list),
+ COERCE_EXPLICIT_CALL,
+ (yylsp[-3]));
+ }
+#line 47285 "gram.c"
+ break;
+
+ case 2086: /* func_expr_common_subexpr: TREAT '(' a_expr AS Typename ')' */
+#line 15338 "gram.y"
+ {
+ /* 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(strVal(llast((yyvsp[-1].typnam)->names))),
+ list_make1((yyvsp[-3].node)),
+ COERCE_EXPLICIT_CALL,
+ (yylsp[-5]));
+ }
+#line 47305 "gram.c"
+ break;
+
+ case 2087: /* func_expr_common_subexpr: TRIM '(' BOTH trim_list ')' */
+#line 15354 "gram.y"
+ {
+ /* various trim expressions are defined in SQL
+ * - thomas 1997-07-19
+ */
+ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("btrim"),
+ (yyvsp[-1].list),
+ COERCE_SQL_SYNTAX,
+ (yylsp[-4]));
+ }
+#line 47319 "gram.c"
+ break;
+
+ case 2088: /* func_expr_common_subexpr: TRIM '(' LEADING trim_list ')' */
+#line 15364 "gram.y"
+ {
+ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("ltrim"),
+ (yyvsp[-1].list),
+ COERCE_SQL_SYNTAX,
+ (yylsp[-4]));
+ }
+#line 47330 "gram.c"
+ break;
+
+ case 2089: /* func_expr_common_subexpr: TRIM '(' TRAILING trim_list ')' */
+#line 15371 "gram.y"
+ {
+ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("rtrim"),
+ (yyvsp[-1].list),
+ COERCE_SQL_SYNTAX,
+ (yylsp[-4]));
+ }
+#line 47341 "gram.c"
+ break;
+
+ case 2090: /* func_expr_common_subexpr: TRIM '(' trim_list ')' */
+#line 15378 "gram.y"
+ {
+ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("btrim"),
+ (yyvsp[-1].list),
+ COERCE_SQL_SYNTAX,
+ (yylsp[-3]));
+ }
+#line 47352 "gram.c"
+ break;
+
+ case 2091: /* func_expr_common_subexpr: NULLIF '(' a_expr ',' a_expr ')' */
+#line 15385 "gram.y"
+ {
+ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NULLIF, "=", (yyvsp[-3].node), (yyvsp[-1].node), (yylsp[-5]));
+ }
+#line 47360 "gram.c"
+ break;
+
+ case 2092: /* func_expr_common_subexpr: COALESCE '(' expr_list ')' */
+#line 15389 "gram.y"
+ {
+ CoalesceExpr *c = makeNode(CoalesceExpr);
+
+ c->args = (yyvsp[-1].list);
+ c->location = (yylsp[-3]);
+ (yyval.node) = (Node *) c;
+ }
+#line 47372 "gram.c"
+ break;
+
+ case 2093: /* func_expr_common_subexpr: GREATEST '(' expr_list ')' */
+#line 15397 "gram.y"
+ {
+ MinMaxExpr *v = makeNode(MinMaxExpr);
+
+ v->args = (yyvsp[-1].list);
+ v->op = IS_GREATEST;
+ v->location = (yylsp[-3]);
+ (yyval.node) = (Node *) v;
+ }
+#line 47385 "gram.c"
+ break;
+
+ case 2094: /* func_expr_common_subexpr: LEAST '(' expr_list ')' */
+#line 15406 "gram.y"
+ {
+ MinMaxExpr *v = makeNode(MinMaxExpr);
+
+ v->args = (yyvsp[-1].list);
+ v->op = IS_LEAST;
+ v->location = (yylsp[-3]);
+ (yyval.node) = (Node *) v;
+ }
+#line 47398 "gram.c"
+ break;
+
+ case 2095: /* func_expr_common_subexpr: XMLCONCAT '(' expr_list ')' */
+#line 15415 "gram.y"
+ {
+ (yyval.node) = makeXmlExpr(IS_XMLCONCAT, NULL, NIL, (yyvsp[-1].list), (yylsp[-3]));
+ }
+#line 47406 "gram.c"
+ break;
+
+ case 2096: /* func_expr_common_subexpr: XMLELEMENT '(' NAME_P ColLabel ')' */
+#line 15419 "gram.y"
+ {
+ (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-1].str), NIL, NIL, (yylsp[-4]));
+ }
+#line 47414 "gram.c"
+ break;
+
+ case 2097: /* func_expr_common_subexpr: XMLELEMENT '(' NAME_P ColLabel ',' xml_attributes ')' */
+#line 15423 "gram.y"
+ {
+ (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-3].str), (yyvsp[-1].list), NIL, (yylsp[-6]));
+ }
+#line 47422 "gram.c"
+ break;
+
+ case 2098: /* func_expr_common_subexpr: XMLELEMENT '(' NAME_P ColLabel ',' expr_list ')' */
+#line 15427 "gram.y"
+ {
+ (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-3].str), NIL, (yyvsp[-1].list), (yylsp[-6]));
+ }
+#line 47430 "gram.c"
+ break;
+
+ case 2099: /* func_expr_common_subexpr: XMLELEMENT '(' NAME_P ColLabel ',' xml_attributes ',' expr_list ')' */
+#line 15431 "gram.y"
+ {
+ (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-5].str), (yyvsp[-3].list), (yyvsp[-1].list), (yylsp[-8]));
+ }
+#line 47438 "gram.c"
+ break;
+
+ case 2100: /* func_expr_common_subexpr: XMLEXISTS '(' c_expr xmlexists_argument ')' */
+#line 15435 "gram.y"
+ {
+ /* 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)),
+ COERCE_SQL_SYNTAX,
+ (yylsp[-4]));
+ }
+#line 47451 "gram.c"
+ break;
+
+ case 2101: /* func_expr_common_subexpr: XMLFOREST '(' xml_attribute_list ')' */
+#line 15444 "gram.y"
+ {
+ (yyval.node) = makeXmlExpr(IS_XMLFOREST, NULL, (yyvsp[-1].list), NIL, (yylsp[-3]));
+ }
+#line 47459 "gram.c"
+ break;
+
+ case 2102: /* func_expr_common_subexpr: XMLPARSE '(' document_or_content a_expr xml_whitespace_option ')' */
+#line 15448 "gram.y"
+ {
+ 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 47473 "gram.c"
+ break;
+
+ case 2103: /* func_expr_common_subexpr: XMLPI '(' NAME_P ColLabel ')' */
+#line 15458 "gram.y"
+ {
+ (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[-1].str), NULL, NIL, (yylsp[-4]));
+ }
+#line 47481 "gram.c"
+ break;
+
+ case 2104: /* func_expr_common_subexpr: XMLPI '(' NAME_P ColLabel ',' a_expr ')' */
+#line 15462 "gram.y"
+ {
+ (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[-3].str), NULL, list_make1((yyvsp[-1].node)), (yylsp[-6]));
+ }
+#line 47489 "gram.c"
+ break;
+
+ case 2105: /* func_expr_common_subexpr: XMLROOT '(' a_expr ',' xml_root_version opt_xml_root_standalone ')' */
+#line 15466 "gram.y"
+ {
+ (yyval.node) = makeXmlExpr(IS_XMLROOT, NULL, NIL,
+ list_make3((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[-1].node)), (yylsp[-6]));
+ }
+#line 47498 "gram.c"
+ break;
+
+ case 2106: /* func_expr_common_subexpr: XMLSERIALIZE '(' document_or_content a_expr AS SimpleTypename ')' */
+#line 15471 "gram.y"
+ {
+ 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 47512 "gram.c"
+ break;
+
+ case 2107: /* xml_root_version: VERSION_P a_expr */
+#line 15486 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 47518 "gram.c"
+ break;
+
+ case 2108: /* xml_root_version: VERSION_P NO VALUE_P */
+#line 15488 "gram.y"
+ { (yyval.node) = makeNullAConst(-1); }
+#line 47524 "gram.c"
+ break;
+
+ case 2109: /* opt_xml_root_standalone: ',' STANDALONE_P YES_P */
+#line 15492 "gram.y"
+ { (yyval.node) = makeIntConst(XML_STANDALONE_YES, -1); }
+#line 47530 "gram.c"
+ break;
+
+ case 2110: /* opt_xml_root_standalone: ',' STANDALONE_P NO */
+#line 15494 "gram.y"
+ { (yyval.node) = makeIntConst(XML_STANDALONE_NO, -1); }
+#line 47536 "gram.c"
+ break;
+
+ case 2111: /* opt_xml_root_standalone: ',' STANDALONE_P NO VALUE_P */
+#line 15496 "gram.y"
+ { (yyval.node) = makeIntConst(XML_STANDALONE_NO_VALUE, -1); }
+#line 47542 "gram.c"
+ break;
+
+ case 2112: /* opt_xml_root_standalone: %empty */
+#line 15498 "gram.y"
+ { (yyval.node) = makeIntConst(XML_STANDALONE_OMITTED, -1); }
+#line 47548 "gram.c"
+ break;
+
+ case 2113: /* xml_attributes: XMLATTRIBUTES '(' xml_attribute_list ')' */
+#line 15501 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 47554 "gram.c"
+ break;
+
+ case 2114: /* xml_attribute_list: xml_attribute_el */
+#line 15504 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].target)); }
+#line 47560 "gram.c"
+ break;
+
+ case 2115: /* xml_attribute_list: xml_attribute_list ',' xml_attribute_el */
+#line 15505 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); }
+#line 47566 "gram.c"
+ break;
+
+ case 2116: /* xml_attribute_el: a_expr AS ColLabel */
+#line 15509 "gram.y"
+ {
+ (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 47578 "gram.c"
+ break;
+
+ case 2117: /* xml_attribute_el: a_expr */
+#line 15517 "gram.y"
+ {
+ (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 47590 "gram.c"
+ break;
+
+ case 2118: /* document_or_content: DOCUMENT_P */
+#line 15526 "gram.y"
+ { (yyval.ival) = XMLOPTION_DOCUMENT; }
+#line 47596 "gram.c"
+ break;
+
+ case 2119: /* document_or_content: CONTENT_P */
+#line 15527 "gram.y"
+ { (yyval.ival) = XMLOPTION_CONTENT; }
+#line 47602 "gram.c"
+ break;
+
+ case 2120: /* xml_whitespace_option: PRESERVE WHITESPACE_P */
+#line 15530 "gram.y"
+ { (yyval.boolean) = true; }
+#line 47608 "gram.c"
+ break;
+
+ case 2121: /* xml_whitespace_option: STRIP_P WHITESPACE_P */
+#line 15531 "gram.y"
+ { (yyval.boolean) = false; }
+#line 47614 "gram.c"
+ break;
+
+ case 2122: /* xml_whitespace_option: %empty */
+#line 15532 "gram.y"
+ { (yyval.boolean) = false; }
+#line 47620 "gram.c"
+ break;
+
+ case 2123: /* xmlexists_argument: PASSING c_expr */
+#line 15538 "gram.y"
+ {
+ (yyval.node) = (yyvsp[0].node);
+ }
+#line 47628 "gram.c"
+ break;
+
+ case 2124: /* xmlexists_argument: PASSING c_expr xml_passing_mech */
+#line 15542 "gram.y"
+ {
+ (yyval.node) = (yyvsp[-1].node);
+ }
+#line 47636 "gram.c"
+ break;
+
+ case 2125: /* xmlexists_argument: PASSING xml_passing_mech c_expr */
+#line 15546 "gram.y"
+ {
+ (yyval.node) = (yyvsp[0].node);
+ }
+#line 47644 "gram.c"
+ break;
+
+ case 2126: /* xmlexists_argument: PASSING xml_passing_mech c_expr xml_passing_mech */
+#line 15550 "gram.y"
+ {
+ (yyval.node) = (yyvsp[-1].node);
+ }
+#line 47652 "gram.c"
+ break;
+
+ case 2129: /* within_group_clause: WITHIN GROUP_P '(' sort_clause ')' */
+#line 15565 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 47658 "gram.c"
+ break;
+
+ case 2130: /* within_group_clause: %empty */
+#line 15566 "gram.y"
+ { (yyval.list) = NIL; }
+#line 47664 "gram.c"
+ break;
+
+ case 2131: /* filter_clause: FILTER '(' WHERE a_expr ')' */
+#line 15570 "gram.y"
+ { (yyval.node) = (yyvsp[-1].node); }
+#line 47670 "gram.c"
+ break;
+
+ case 2132: /* filter_clause: %empty */
+#line 15571 "gram.y"
+ { (yyval.node) = NULL; }
+#line 47676 "gram.c"
+ break;
+
+ case 2133: /* window_clause: WINDOW window_definition_list */
+#line 15579 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 47682 "gram.c"
+ break;
+
+ case 2134: /* window_clause: %empty */
+#line 15580 "gram.y"
+ { (yyval.list) = NIL; }
+#line 47688 "gram.c"
+ break;
+
+ case 2135: /* window_definition_list: window_definition */
+#line 15584 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].windef)); }
+#line 47694 "gram.c"
+ break;
+
+ case 2136: /* window_definition_list: window_definition_list ',' window_definition */
+#line 15586 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].windef)); }
+#line 47700 "gram.c"
+ break;
+
+ case 2137: /* window_definition: ColId AS window_specification */
+#line 15591 "gram.y"
+ {
+ WindowDef *n = (yyvsp[0].windef);
+
+ n->name = (yyvsp[-2].str);
+ (yyval.windef) = n;
+ }
+#line 47711 "gram.c"
+ break;
+
+ case 2138: /* over_clause: OVER window_specification */
+#line 15600 "gram.y"
+ { (yyval.windef) = (yyvsp[0].windef); }
+#line 47717 "gram.c"
+ break;
+
+ case 2139: /* over_clause: OVER ColId */
+#line 15602 "gram.y"
+ {
+ 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 47735 "gram.c"
+ break;
+
+ case 2140: /* over_clause: %empty */
+#line 15616 "gram.y"
+ { (yyval.windef) = NULL; }
+#line 47741 "gram.c"
+ break;
+
+ case 2141: /* window_specification: '(' opt_existing_window_name opt_partition_clause opt_sort_clause opt_frame_clause ')' */
+#line 15621 "gram.y"
+ {
+ 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 47760 "gram.c"
+ break;
+
+ case 2142: /* opt_existing_window_name: ColId */
+#line 15647 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 47766 "gram.c"
+ break;
+
+ case 2143: /* opt_existing_window_name: %empty */
+#line 15648 "gram.y"
+ { (yyval.str) = NULL; }
+#line 47772 "gram.c"
+ break;
+
+ case 2144: /* opt_partition_clause: PARTITION BY expr_list */
+#line 15651 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 47778 "gram.c"
+ break;
+
+ case 2145: /* opt_partition_clause: %empty */
+#line 15652 "gram.y"
+ { (yyval.list) = NIL; }
+#line 47784 "gram.c"
+ break;
+
+ case 2146: /* opt_frame_clause: RANGE frame_extent opt_window_exclusion_clause */
+#line 15661 "gram.y"
+ {
+ WindowDef *n = (yyvsp[-1].windef);
+
+ n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE;
+ n->frameOptions |= (yyvsp[0].ival);
+ (yyval.windef) = n;
+ }
+#line 47796 "gram.c"
+ break;
+
+ case 2147: /* opt_frame_clause: ROWS frame_extent opt_window_exclusion_clause */
+#line 15669 "gram.y"
+ {
+ WindowDef *n = (yyvsp[-1].windef);
+
+ n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS;
+ n->frameOptions |= (yyvsp[0].ival);
+ (yyval.windef) = n;
+ }
+#line 47808 "gram.c"
+ break;
+
+ case 2148: /* opt_frame_clause: GROUPS frame_extent opt_window_exclusion_clause */
+#line 15677 "gram.y"
+ {
+ WindowDef *n = (yyvsp[-1].windef);
+
+ n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_GROUPS;
+ n->frameOptions |= (yyvsp[0].ival);
+ (yyval.windef) = n;
+ }
+#line 47820 "gram.c"
+ break;
+
+ case 2149: /* opt_frame_clause: %empty */
+#line 15685 "gram.y"
+ {
+ WindowDef *n = makeNode(WindowDef);
+
+ n->frameOptions = FRAMEOPTION_DEFAULTS;
+ n->startOffset = NULL;
+ n->endOffset = NULL;
+ (yyval.windef) = n;
+ }
+#line 47833 "gram.c"
+ break;
+
+ case 2150: /* frame_extent: frame_bound */
+#line 15696 "gram.y"
+ {
+ 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 47855 "gram.c"
+ break;
+
+ case 2151: /* frame_extent: BETWEEN frame_bound AND frame_bound */
+#line 15714 "gram.y"
+ {
+ 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 47897 "gram.c"
+ break;
+
+ case 2152: /* frame_bound: UNBOUNDED PRECEDING */
+#line 15760 "gram.y"
+ {
+ WindowDef *n = makeNode(WindowDef);
+
+ n->frameOptions = FRAMEOPTION_START_UNBOUNDED_PRECEDING;
+ n->startOffset = NULL;
+ n->endOffset = NULL;
+ (yyval.windef) = n;
+ }
+#line 47910 "gram.c"
+ break;
+
+ case 2153: /* frame_bound: UNBOUNDED FOLLOWING */
+#line 15769 "gram.y"
+ {
+ WindowDef *n = makeNode(WindowDef);
+
+ n->frameOptions = FRAMEOPTION_START_UNBOUNDED_FOLLOWING;
+ n->startOffset = NULL;
+ n->endOffset = NULL;
+ (yyval.windef) = n;
+ }
+#line 47923 "gram.c"
+ break;
+
+ case 2154: /* frame_bound: CURRENT_P ROW */
+#line 15778 "gram.y"
+ {
+ WindowDef *n = makeNode(WindowDef);
+
+ n->frameOptions = FRAMEOPTION_START_CURRENT_ROW;
+ n->startOffset = NULL;
+ n->endOffset = NULL;
+ (yyval.windef) = n;
+ }
+#line 47936 "gram.c"
+ break;
+
+ case 2155: /* frame_bound: a_expr PRECEDING */
+#line 15787 "gram.y"
+ {
+ WindowDef *n = makeNode(WindowDef);
+
+ n->frameOptions = FRAMEOPTION_START_OFFSET_PRECEDING;
+ n->startOffset = (yyvsp[-1].node);
+ n->endOffset = NULL;
+ (yyval.windef) = n;
+ }
+#line 47949 "gram.c"
+ break;
+
+ case 2156: /* frame_bound: a_expr FOLLOWING */
+#line 15796 "gram.y"
+ {
+ WindowDef *n = makeNode(WindowDef);
+
+ n->frameOptions = FRAMEOPTION_START_OFFSET_FOLLOWING;
+ n->startOffset = (yyvsp[-1].node);
+ n->endOffset = NULL;
+ (yyval.windef) = n;
+ }
+#line 47962 "gram.c"
+ break;
+
+ case 2157: /* opt_window_exclusion_clause: EXCLUDE CURRENT_P ROW */
+#line 15807 "gram.y"
+ { (yyval.ival) = FRAMEOPTION_EXCLUDE_CURRENT_ROW; }
+#line 47968 "gram.c"
+ break;
+
+ case 2158: /* opt_window_exclusion_clause: EXCLUDE GROUP_P */
+#line 15808 "gram.y"
+ { (yyval.ival) = FRAMEOPTION_EXCLUDE_GROUP; }
+#line 47974 "gram.c"
+ break;
+
+ case 2159: /* opt_window_exclusion_clause: EXCLUDE TIES */
+#line 15809 "gram.y"
+ { (yyval.ival) = FRAMEOPTION_EXCLUDE_TIES; }
+#line 47980 "gram.c"
+ break;
+
+ case 2160: /* opt_window_exclusion_clause: EXCLUDE NO OTHERS */
+#line 15810 "gram.y"
+ { (yyval.ival) = 0; }
+#line 47986 "gram.c"
+ break;
+
+ case 2161: /* opt_window_exclusion_clause: %empty */
+#line 15811 "gram.y"
+ { (yyval.ival) = 0; }
+#line 47992 "gram.c"
+ break;
+
+ case 2162: /* row: ROW '(' expr_list ')' */
+#line 15825 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 47998 "gram.c"
+ break;
+
+ case 2163: /* row: ROW '(' ')' */
+#line 15826 "gram.y"
+ { (yyval.list) = NIL; }
+#line 48004 "gram.c"
+ break;
+
+ case 2164: /* row: '(' expr_list ',' a_expr ')' */
+#line 15827 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-3].list), (yyvsp[-1].node)); }
+#line 48010 "gram.c"
+ break;
+
+ case 2165: /* explicit_row: ROW '(' expr_list ')' */
+#line 15830 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 48016 "gram.c"
+ break;
+
+ case 2166: /* explicit_row: ROW '(' ')' */
+#line 15831 "gram.y"
+ { (yyval.list) = NIL; }
+#line 48022 "gram.c"
+ break;
+
+ case 2167: /* implicit_row: '(' expr_list ',' a_expr ')' */
+#line 15834 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-3].list), (yyvsp[-1].node)); }
+#line 48028 "gram.c"
+ break;
+
+ case 2168: /* sub_type: ANY */
+#line 15837 "gram.y"
+ { (yyval.ival) = ANY_SUBLINK; }
+#line 48034 "gram.c"
+ break;
+
+ case 2169: /* sub_type: SOME */
+#line 15838 "gram.y"
+ { (yyval.ival) = ANY_SUBLINK; }
+#line 48040 "gram.c"
+ break;
+
+ case 2170: /* sub_type: ALL */
+#line 15839 "gram.y"
+ { (yyval.ival) = ALL_SUBLINK; }
+#line 48046 "gram.c"
+ break;
+
+ case 2171: /* all_Op: Op */
+#line 15842 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 48052 "gram.c"
+ break;
+
+ case 2172: /* all_Op: MathOp */
+#line 15843 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 48058 "gram.c"
+ break;
+
+ case 2173: /* MathOp: '+' */
+#line 15846 "gram.y"
+ { (yyval.str) = "+"; }
+#line 48064 "gram.c"
+ break;
+
+ case 2174: /* MathOp: '-' */
+#line 15847 "gram.y"
+ { (yyval.str) = "-"; }
+#line 48070 "gram.c"
+ break;
+
+ case 2175: /* MathOp: '*' */
+#line 15848 "gram.y"
+ { (yyval.str) = "*"; }
+#line 48076 "gram.c"
+ break;
+
+ case 2176: /* MathOp: '/' */
+#line 15849 "gram.y"
+ { (yyval.str) = "/"; }
+#line 48082 "gram.c"
+ break;
+
+ case 2177: /* MathOp: '%' */
+#line 15850 "gram.y"
+ { (yyval.str) = "%"; }
+#line 48088 "gram.c"
+ break;
+
+ case 2178: /* MathOp: '^' */
+#line 15851 "gram.y"
+ { (yyval.str) = "^"; }
+#line 48094 "gram.c"
+ break;
+
+ case 2179: /* MathOp: '<' */
+#line 15852 "gram.y"
+ { (yyval.str) = "<"; }
+#line 48100 "gram.c"
+ break;
+
+ case 2180: /* MathOp: '>' */
+#line 15853 "gram.y"
+ { (yyval.str) = ">"; }
+#line 48106 "gram.c"
+ break;
+
+ case 2181: /* MathOp: '=' */
+#line 15854 "gram.y"
+ { (yyval.str) = "="; }
+#line 48112 "gram.c"
+ break;
+
+ case 2182: /* MathOp: LESS_EQUALS */
+#line 15855 "gram.y"
+ { (yyval.str) = "<="; }
+#line 48118 "gram.c"
+ break;
+
+ case 2183: /* MathOp: GREATER_EQUALS */
+#line 15856 "gram.y"
+ { (yyval.str) = ">="; }
+#line 48124 "gram.c"
+ break;
+
+ case 2184: /* MathOp: NOT_EQUALS */
+#line 15857 "gram.y"
+ { (yyval.str) = "<>"; }
+#line 48130 "gram.c"
+ break;
+
+ case 2185: /* qual_Op: Op */
+#line 15861 "gram.y"
+ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
+#line 48136 "gram.c"
+ break;
+
+ case 2186: /* qual_Op: OPERATOR '(' any_operator ')' */
+#line 15863 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 48142 "gram.c"
+ break;
+
+ case 2187: /* qual_all_Op: all_Op */
+#line 15868 "gram.y"
+ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
+#line 48148 "gram.c"
+ break;
+
+ case 2188: /* qual_all_Op: OPERATOR '(' any_operator ')' */
+#line 15870 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 48154 "gram.c"
+ break;
+
+ case 2189: /* subquery_Op: all_Op */
+#line 15875 "gram.y"
+ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
+#line 48160 "gram.c"
+ break;
+
+ case 2190: /* subquery_Op: OPERATOR '(' any_operator ')' */
+#line 15877 "gram.y"
+ { (yyval.list) = (yyvsp[-1].list); }
+#line 48166 "gram.c"
+ break;
+
+ case 2191: /* subquery_Op: LIKE */
+#line 15879 "gram.y"
+ { (yyval.list) = list_make1(makeString("~~")); }
+#line 48172 "gram.c"
+ break;
+
+ case 2192: /* subquery_Op: NOT_LA LIKE */
+#line 15881 "gram.y"
+ { (yyval.list) = list_make1(makeString("!~~")); }
+#line 48178 "gram.c"
+ break;
+
+ case 2193: /* subquery_Op: ILIKE */
+#line 15883 "gram.y"
+ { (yyval.list) = list_make1(makeString("~~*")); }
+#line 48184 "gram.c"
+ break;
+
+ case 2194: /* subquery_Op: NOT_LA ILIKE */
+#line 15885 "gram.y"
+ { (yyval.list) = list_make1(makeString("!~~*")); }
+#line 48190 "gram.c"
+ break;
+
+ case 2195: /* expr_list: a_expr */
+#line 15897 "gram.y"
+ {
+ (yyval.list) = list_make1((yyvsp[0].node));
+ }
+#line 48198 "gram.c"
+ break;
+
+ case 2196: /* expr_list: expr_list ',' a_expr */
+#line 15901 "gram.y"
+ {
+ (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node));
+ }
+#line 48206 "gram.c"
+ break;
+
+ case 2197: /* func_arg_list: func_arg_expr */
+#line 15908 "gram.y"
+ {
+ (yyval.list) = list_make1((yyvsp[0].node));
+ }
+#line 48214 "gram.c"
+ break;
+
+ case 2198: /* func_arg_list: func_arg_list ',' func_arg_expr */
+#line 15912 "gram.y"
+ {
+ (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node));
+ }
+#line 48222 "gram.c"
+ break;
+
+ case 2199: /* func_arg_expr: a_expr */
+#line 15918 "gram.y"
+ {
+ (yyval.node) = (yyvsp[0].node);
+ }
+#line 48230 "gram.c"
+ break;
+
+ case 2200: /* func_arg_expr: param_name COLON_EQUALS a_expr */
+#line 15922 "gram.y"
+ {
+ 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 48244 "gram.c"
+ break;
+
+ case 2201: /* func_arg_expr: param_name EQUALS_GREATER a_expr */
+#line 15932 "gram.y"
+ {
+ 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 48258 "gram.c"
+ break;
+
+ case 2202: /* func_arg_list_opt: func_arg_list */
+#line 15943 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 48264 "gram.c"
+ break;
+
+ case 2203: /* func_arg_list_opt: %empty */
+#line 15944 "gram.y"
+ { (yyval.list) = NIL; }
+#line 48270 "gram.c"
+ break;
+
+ case 2204: /* type_list: Typename */
+#line 15947 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].typnam)); }
+#line 48276 "gram.c"
+ break;
+
+ case 2205: /* type_list: type_list ',' Typename */
+#line 15948 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].typnam)); }
+#line 48282 "gram.c"
+ break;
+
+ case 2206: /* array_expr: '[' expr_list ']' */
+#line 15952 "gram.y"
+ {
+ (yyval.node) = makeAArrayExpr((yyvsp[-1].list), (yylsp[-2]));
+ }
+#line 48290 "gram.c"
+ break;
+
+ case 2207: /* array_expr: '[' array_expr_list ']' */
+#line 15956 "gram.y"
+ {
+ (yyval.node) = makeAArrayExpr((yyvsp[-1].list), (yylsp[-2]));
+ }
+#line 48298 "gram.c"
+ break;
+
+ case 2208: /* array_expr: '[' ']' */
+#line 15960 "gram.y"
+ {
+ (yyval.node) = makeAArrayExpr(NIL, (yylsp[-1]));
+ }
+#line 48306 "gram.c"
+ break;
+
+ case 2209: /* array_expr_list: array_expr */
+#line 15965 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].node)); }
+#line 48312 "gram.c"
+ break;
+
+ case 2210: /* array_expr_list: array_expr_list ',' array_expr */
+#line 15966 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
+#line 48318 "gram.c"
+ break;
+
+ case 2211: /* extract_list: extract_arg FROM a_expr */
+#line 15972 "gram.y"
+ {
+ (yyval.list) = list_make2(makeStringConst((yyvsp[-2].str), (yylsp[-2])), (yyvsp[0].node));
+ }
+#line 48326 "gram.c"
+ break;
+
+ case 2212: /* extract_arg: IDENT */
+#line 15981 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 48332 "gram.c"
+ break;
+
+ case 2213: /* extract_arg: YEAR_P */
+#line 15982 "gram.y"
+ { (yyval.str) = "year"; }
+#line 48338 "gram.c"
+ break;
+
+ case 2214: /* extract_arg: MONTH_P */
+#line 15983 "gram.y"
+ { (yyval.str) = "month"; }
+#line 48344 "gram.c"
+ break;
+
+ case 2215: /* extract_arg: DAY_P */
+#line 15984 "gram.y"
+ { (yyval.str) = "day"; }
+#line 48350 "gram.c"
+ break;
+
+ case 2216: /* extract_arg: HOUR_P */
+#line 15985 "gram.y"
+ { (yyval.str) = "hour"; }
+#line 48356 "gram.c"
+ break;
+
+ case 2217: /* extract_arg: MINUTE_P */
+#line 15986 "gram.y"
+ { (yyval.str) = "minute"; }
+#line 48362 "gram.c"
+ break;
+
+ case 2218: /* extract_arg: SECOND_P */
+#line 15987 "gram.y"
+ { (yyval.str) = "second"; }
+#line 48368 "gram.c"
+ break;
+
+ case 2219: /* extract_arg: Sconst */
+#line 15988 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 48374 "gram.c"
+ break;
+
+ case 2220: /* unicode_normal_form: NFC */
+#line 15992 "gram.y"
+ { (yyval.str) = "NFC"; }
+#line 48380 "gram.c"
+ break;
+
+ case 2221: /* unicode_normal_form: NFD */
+#line 15993 "gram.y"
+ { (yyval.str) = "NFD"; }
+#line 48386 "gram.c"
+ break;
+
+ case 2222: /* unicode_normal_form: NFKC */
+#line 15994 "gram.y"
+ { (yyval.str) = "NFKC"; }
+#line 48392 "gram.c"
+ break;
+
+ case 2223: /* unicode_normal_form: NFKD */
+#line 15995 "gram.y"
+ { (yyval.str) = "NFKD"; }
+#line 48398 "gram.c"
+ break;
+
+ case 2224: /* overlay_list: a_expr PLACING a_expr FROM a_expr FOR a_expr */
+#line 16001 "gram.y"
+ {
+ /* overlay(A PLACING B FROM C FOR D) is converted to overlay(A, B, C, D) */
+ (yyval.list) = list_make4((yyvsp[-6].node), (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node));
+ }
+#line 48407 "gram.c"
+ break;
+
+ case 2225: /* overlay_list: a_expr PLACING a_expr FROM a_expr */
+#line 16006 "gram.y"
+ {
+ /* overlay(A PLACING B FROM C) is converted to overlay(A, B, C) */
+ (yyval.list) = list_make3((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node));
+ }
+#line 48416 "gram.c"
+ break;
+
+ case 2226: /* position_list: b_expr IN_P b_expr */
+#line 16014 "gram.y"
+ { (yyval.list) = list_make2((yyvsp[0].node), (yyvsp[-2].node)); }
+#line 48422 "gram.c"
+ break;
+
+ case 2227: /* substr_list: a_expr FROM a_expr FOR a_expr */
+#line 16036 "gram.y"
+ {
+ (yyval.list) = list_make3((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node));
+ }
+#line 48430 "gram.c"
+ break;
+
+ case 2228: /* substr_list: a_expr FOR a_expr FROM a_expr */
+#line 16040 "gram.y"
+ {
+ /* not legal per SQL, but might as well allow it */
+ (yyval.list) = list_make3((yyvsp[-4].node), (yyvsp[0].node), (yyvsp[-2].node));
+ }
+#line 48439 "gram.c"
+ break;
+
+ case 2229: /* substr_list: a_expr FROM a_expr */
+#line 16045 "gram.y"
+ {
+ /*
+ * Because we aren't restricting data types here, this
+ * syntax can end up resolving to textregexsubstr().
+ * We've historically allowed that to happen, so continue
+ * to accept it. However, ruleutils.c will reverse-list
+ * such a call in regular function call syntax.
+ */
+ (yyval.list) = list_make2((yyvsp[-2].node), (yyvsp[0].node));
+ }
+#line 48454 "gram.c"
+ break;
+
+ case 2230: /* substr_list: a_expr FOR a_expr */
+#line 16056 "gram.y"
+ {
+ /* not legal per SQL */
+
+ /*
+ * 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[-2].node), makeIntConst(1, -1),
+ makeTypeCast((yyvsp[0].node),
+ SystemTypeName("int4"), -1));
+ }
+#line 48475 "gram.c"
+ break;
+
+ case 2231: /* substr_list: a_expr SIMILAR a_expr ESCAPE a_expr */
+#line 16073 "gram.y"
+ {
+ (yyval.list) = list_make3((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node));
+ }
+#line 48483 "gram.c"
+ break;
+
+ case 2232: /* trim_list: a_expr FROM expr_list */
+#line 16078 "gram.y"
+ { (yyval.list) = lappend((yyvsp[0].list), (yyvsp[-2].node)); }
+#line 48489 "gram.c"
+ break;
+
+ case 2233: /* trim_list: FROM expr_list */
+#line 16079 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 48495 "gram.c"
+ break;
+
+ case 2234: /* trim_list: expr_list */
+#line 16080 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 48501 "gram.c"
+ break;
+
+ case 2235: /* in_expr: select_with_parens */
+#line 16084 "gram.y"
+ {
+ SubLink *n = makeNode(SubLink);
+
+ n->subselect = (yyvsp[0].node);
+ /* other fields will be filled later */
+ (yyval.node) = (Node *) n;
+ }
+#line 48513 "gram.c"
+ break;
+
+ case 2236: /* in_expr: '(' expr_list ')' */
+#line 16091 "gram.y"
+ { (yyval.node) = (Node *) (yyvsp[-1].list); }
+#line 48519 "gram.c"
+ break;
+
+ case 2237: /* case_expr: CASE case_arg when_clause_list case_default END_P */
+#line 16102 "gram.y"
+ {
+ 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 48534 "gram.c"
+ break;
+
+ case 2238: /* when_clause_list: when_clause */
+#line 16116 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].node)); }
+#line 48540 "gram.c"
+ break;
+
+ case 2239: /* when_clause_list: when_clause_list when_clause */
+#line 16117 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); }
+#line 48546 "gram.c"
+ break;
+
+ case 2240: /* when_clause: WHEN a_expr THEN a_expr */
+#line 16122 "gram.y"
+ {
+ 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 48559 "gram.c"
+ break;
+
+ case 2241: /* case_default: ELSE a_expr */
+#line 16133 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 48565 "gram.c"
+ break;
+
+ case 2242: /* case_default: %empty */
+#line 16134 "gram.y"
+ { (yyval.node) = NULL; }
+#line 48571 "gram.c"
+ break;
+
+ case 2243: /* case_arg: a_expr */
+#line 16137 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 48577 "gram.c"
+ break;
+
+ case 2244: /* case_arg: %empty */
+#line 16138 "gram.y"
+ { (yyval.node) = NULL; }
+#line 48583 "gram.c"
+ break;
+
+ case 2245: /* columnref: ColId */
+#line 16142 "gram.y"
+ {
+ (yyval.node) = makeColumnRef((yyvsp[0].str), NIL, (yylsp[0]), yyscanner);
+ }
+#line 48591 "gram.c"
+ break;
+
+ case 2246: /* columnref: ColId indirection */
+#line 16146 "gram.y"
+ {
+ (yyval.node) = makeColumnRef((yyvsp[-1].str), (yyvsp[0].list), (yylsp[-1]), yyscanner);
+ }
+#line 48599 "gram.c"
+ break;
+
+ case 2247: /* indirection_el: '.' attr_name */
+#line 16153 "gram.y"
+ {
+ (yyval.node) = (Node *) makeString((yyvsp[0].str));
+ }
+#line 48607 "gram.c"
+ break;
+
+ case 2248: /* indirection_el: '.' '*' */
+#line 16157 "gram.y"
+ {
+ (yyval.node) = (Node *) makeNode(A_Star);
+ }
+#line 48615 "gram.c"
+ break;
+
+ case 2249: /* indirection_el: '[' a_expr ']' */
+#line 16161 "gram.y"
+ {
+ A_Indices *ai = makeNode(A_Indices);
+
+ ai->is_slice = false;
+ ai->lidx = NULL;
+ ai->uidx = (yyvsp[-1].node);
+ (yyval.node) = (Node *) ai;
+ }
+#line 48628 "gram.c"
+ break;
+
+ case 2250: /* indirection_el: '[' opt_slice_bound ':' opt_slice_bound ']' */
+#line 16170 "gram.y"
+ {
+ 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 48641 "gram.c"
+ break;
+
+ case 2251: /* opt_slice_bound: a_expr */
+#line 16181 "gram.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 48647 "gram.c"
+ break;
+
+ case 2252: /* opt_slice_bound: %empty */
+#line 16182 "gram.y"
+ { (yyval.node) = NULL; }
+#line 48653 "gram.c"
+ break;
+
+ case 2253: /* indirection: indirection_el */
+#line 16186 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].node)); }
+#line 48659 "gram.c"
+ break;
+
+ case 2254: /* indirection: indirection indirection_el */
+#line 16187 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); }
+#line 48665 "gram.c"
+ break;
+
+ case 2255: /* opt_indirection: %empty */
+#line 16191 "gram.y"
+ { (yyval.list) = NIL; }
+#line 48671 "gram.c"
+ break;
+
+ case 2256: /* opt_indirection: opt_indirection indirection_el */
+#line 16192 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); }
+#line 48677 "gram.c"
+ break;
+
+ case 2259: /* opt_target_list: target_list */
+#line 16206 "gram.y"
+ { (yyval.list) = (yyvsp[0].list); }
+#line 48683 "gram.c"
+ break;
+
+ case 2260: /* opt_target_list: %empty */
+#line 16207 "gram.y"
+ { (yyval.list) = NIL; }
+#line 48689 "gram.c"
+ break;
+
+ case 2261: /* target_list: target_el */
+#line 16211 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].target)); }
+#line 48695 "gram.c"
+ break;
+
+ case 2262: /* target_list: target_list ',' target_el */
+#line 16212 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); }
+#line 48701 "gram.c"
+ break;
+
+ case 2263: /* target_el: a_expr AS ColLabel */
+#line 16216 "gram.y"
+ {
+ (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 48713 "gram.c"
+ break;
+
+ case 2264: /* target_el: a_expr BareColLabel */
+#line 16224 "gram.y"
+ {
+ (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 48725 "gram.c"
+ break;
+
+ case 2265: /* target_el: a_expr */
+#line 16232 "gram.y"
+ {
+ (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 48737 "gram.c"
+ break;
+
+ case 2266: /* target_el: '*' */
+#line 16240 "gram.y"
+ {
+ 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 48754 "gram.c"
+ break;
+
+ case 2267: /* qualified_name_list: qualified_name */
+#line 16262 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].range)); }
+#line 48760 "gram.c"
+ break;
+
+ case 2268: /* qualified_name_list: qualified_name_list ',' qualified_name */
+#line 16263 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].range)); }
+#line 48766 "gram.c"
+ break;
+
+ case 2269: /* qualified_name: ColId */
+#line 16275 "gram.y"
+ {
+ (yyval.range) = makeRangeVar(NULL, (yyvsp[0].str), (yylsp[0]));
+ }
+#line 48774 "gram.c"
+ break;
+
+ case 2270: /* qualified_name: ColId indirection */
+#line 16279 "gram.y"
+ {
+ (yyval.range) = makeRangeVarFromQualifiedName((yyvsp[-1].str), (yyvsp[0].list), (yylsp[-1]), yyscanner);
+ }
+#line 48782 "gram.c"
+ break;
+
+ case 2271: /* name_list: name */
+#line 16285 "gram.y"
+ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
+#line 48788 "gram.c"
+ break;
+
+ case 2272: /* name_list: name_list ',' name */
+#line 16287 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); }
+#line 48794 "gram.c"
+ break;
+
+ case 2273: /* name: ColId */
+#line 16291 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 48800 "gram.c"
+ break;
+
+ case 2274: /* attr_name: ColLabel */
+#line 16293 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 48806 "gram.c"
+ break;
+
+ case 2275: /* file_name: Sconst */
+#line 16295 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 48812 "gram.c"
+ break;
+
+ case 2276: /* func_name: type_function_name */
+#line 16306 "gram.y"
+ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
+#line 48818 "gram.c"
+ break;
+
+ case 2277: /* func_name: ColId indirection */
+#line 16308 "gram.y"
+ {
+ (yyval.list) = check_func_name(lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)),
+ yyscanner);
+ }
+#line 48827 "gram.c"
+ break;
+
+ case 2278: /* AexprConst: Iconst */
+#line 16319 "gram.y"
+ {
+ (yyval.node) = makeIntConst((yyvsp[0].ival), (yylsp[0]));
+ }
+#line 48835 "gram.c"
+ break;
+
+ case 2279: /* AexprConst: FCONST */
+#line 16323 "gram.y"
+ {
+ (yyval.node) = makeFloatConst((yyvsp[0].str), (yylsp[0]));
+ }
+#line 48843 "gram.c"
+ break;
+
+ case 2280: /* AexprConst: Sconst */
+#line 16327 "gram.y"
+ {
+ (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0]));
+ }
+#line 48851 "gram.c"
+ break;
+
+ case 2281: /* AexprConst: BCONST */
+#line 16331 "gram.y"
+ {
+ (yyval.node) = makeBitStringConst((yyvsp[0].str), (yylsp[0]));
+ }
+#line 48859 "gram.c"
+ break;
+
+ case 2282: /* AexprConst: XCONST */
+#line 16335 "gram.y"
+ {
+ /* This is a bit constant per SQL99:
+ * Without Feature F511, "BIT data type",
+ * a <general literal> shall not be a
+ * <bit string literal> or a <hex string literal>.
+ */
+ (yyval.node) = makeBitStringConst((yyvsp[0].str), (yylsp[0]));
+ }
+#line 48872 "gram.c"
+ break;
+
+ case 2283: /* AexprConst: func_name Sconst */
+#line 16344 "gram.y"
+ {
+ /* generic type 'literal' syntax */
+ TypeName *t = makeTypeNameFromNameList((yyvsp[-1].list));
+
+ t->location = (yylsp[-1]);
+ (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t);
+ }
+#line 48884 "gram.c"
+ break;
+
+ case 2284: /* AexprConst: func_name '(' func_arg_list opt_sort_clause ')' Sconst */
+#line 16352 "gram.y"
+ {
+ /* 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 48920 "gram.c"
+ break;
+
+ case 2285: /* AexprConst: ConstTypename Sconst */
+#line 16384 "gram.y"
+ {
+ (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), (yyvsp[-1].typnam));
+ }
+#line 48928 "gram.c"
+ break;
+
+ case 2286: /* AexprConst: ConstInterval Sconst opt_interval */
+#line 16388 "gram.y"
+ {
+ TypeName *t = (yyvsp[-2].typnam);
+
+ t->typmods = (yyvsp[0].list);
+ (yyval.node) = makeStringConstCast((yyvsp[-1].str), (yylsp[-1]), t);
+ }
+#line 48939 "gram.c"
+ break;
+
+ case 2287: /* AexprConst: ConstInterval '(' Iconst ')' Sconst */
+#line 16395 "gram.y"
+ {
+ 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 48951 "gram.c"
+ break;
+
+ case 2288: /* AexprConst: TRUE_P */
+#line 16403 "gram.y"
+ {
+ (yyval.node) = makeBoolAConst(true, (yylsp[0]));
+ }
+#line 48959 "gram.c"
+ break;
+
+ case 2289: /* AexprConst: FALSE_P */
+#line 16407 "gram.y"
+ {
+ (yyval.node) = makeBoolAConst(false, (yylsp[0]));
+ }
+#line 48967 "gram.c"
+ break;
+
+ case 2290: /* AexprConst: NULL_P */
+#line 16411 "gram.y"
+ {
+ (yyval.node) = makeNullAConst((yylsp[0]));
+ }
+#line 48975 "gram.c"
+ break;
+
+ case 2291: /* Iconst: ICONST */
+#line 16416 "gram.y"
+ { (yyval.ival) = (yyvsp[0].ival); }
+#line 48981 "gram.c"
+ break;
+
+ case 2292: /* Sconst: SCONST */
+#line 16417 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 48987 "gram.c"
+ break;
+
+ case 2293: /* SignedIconst: Iconst */
+#line 16419 "gram.y"
+ { (yyval.ival) = (yyvsp[0].ival); }
+#line 48993 "gram.c"
+ break;
+
+ case 2294: /* SignedIconst: '+' Iconst */
+#line 16420 "gram.y"
+ { (yyval.ival) = + (yyvsp[0].ival); }
+#line 48999 "gram.c"
+ break;
+
+ case 2295: /* SignedIconst: '-' Iconst */
+#line 16421 "gram.y"
+ { (yyval.ival) = - (yyvsp[0].ival); }
+#line 49005 "gram.c"
+ break;
+
+ case 2296: /* RoleId: RoleSpec */
+#line 16426 "gram.y"
+ {
+ 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;
+ case ROLESPEC_CURRENT_ROLE:
+ ereport(ERROR,
+ (errcode(ERRCODE_RESERVED_NAME),
+ errmsg("%s cannot be used as a role name here",
+ "CURRENT_ROLE"),
+ parser_errposition((yylsp[0]))));
+ break;
+ }
+ }
+#line 49048 "gram.c"
+ break;
+
+ case 2297: /* RoleSpec: NonReservedWord */
+#line 16467 "gram.y"
+ {
+ /*
+ * "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 49080 "gram.c"
+ break;
+
+ case 2298: /* RoleSpec: CURRENT_ROLE */
+#line 16495 "gram.y"
+ {
+ (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_ROLE, (yylsp[0]));
+ }
+#line 49088 "gram.c"
+ break;
+
+ case 2299: /* RoleSpec: CURRENT_USER */
+#line 16499 "gram.y"
+ {
+ (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_USER, (yylsp[0]));
+ }
+#line 49096 "gram.c"
+ break;
+
+ case 2300: /* RoleSpec: SESSION_USER */
+#line 16503 "gram.y"
+ {
+ (yyval.rolespec) = makeRoleSpec(ROLESPEC_SESSION_USER, (yylsp[0]));
+ }
+#line 49104 "gram.c"
+ break;
+
+ case 2301: /* role_list: RoleSpec */
+#line 16509 "gram.y"
+ { (yyval.list) = list_make1((yyvsp[0].rolespec)); }
+#line 49110 "gram.c"
+ break;
+
+ case 2302: /* role_list: role_list ',' RoleSpec */
+#line 16511 "gram.y"
+ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].rolespec)); }
+#line 49116 "gram.c"
+ break;
+
+ case 2303: /* PLpgSQL_Expr: opt_distinct_clause opt_target_list from_clause where_clause group_clause having_clause window_clause opt_sort_clause opt_select_limit opt_for_locking_clause */
+#line 16528 "gram.y"
+ {
+ SelectStmt *n = makeNode(SelectStmt);
+
+ n->distinctClause = (yyvsp[-9].list);
+ n->targetList = (yyvsp[-8].list);
+ n->fromClause = (yyvsp[-7].list);
+ n->whereClause = (yyvsp[-6].node);
+ n->groupClause = ((yyvsp[-5].groupclause))->list;
+ n->groupDistinct = ((yyvsp[-5].groupclause))->distinct;
+ n->havingClause = (yyvsp[-4].node);
+ n->windowClause = (yyvsp[-3].list);
+ n->sortClause = (yyvsp[-2].list);
+ if ((yyvsp[-1].selectlimit))
+ {
+ n->limitOffset = (yyvsp[-1].selectlimit)->limitOffset;
+ n->limitCount = (yyvsp[-1].selectlimit)->limitCount;
+ if (!n->sortClause &&
+ (yyvsp[-1].selectlimit)->limitOption == LIMIT_OPTION_WITH_TIES)
+ ereport(ERROR,
+ (errcode(ERRCODE_SYNTAX_ERROR),
+ errmsg("WITH TIES cannot be specified without ORDER BY clause")));
+ n->limitOption = (yyvsp[-1].selectlimit)->limitOption;
+ }
+ n->lockingClause = (yyvsp[0].list);
+ (yyval.node) = (Node *) n;
+ }
+#line 49147 "gram.c"
+ break;
+
+ case 2304: /* PLAssignStmt: plassign_target opt_indirection plassign_equals PLpgSQL_Expr */
+#line 16561 "gram.y"
+ {
+ PLAssignStmt *n = makeNode(PLAssignStmt);
+
+ n->name = (yyvsp[-3].str);
+ n->indirection = check_indirection((yyvsp[-2].list), yyscanner);
+ /* nnames will be filled by calling production */
+ n->val = (SelectStmt *) (yyvsp[0].node);
+ n->location = (yylsp[-3]);
+ (yyval.node) = (Node *) n;
+ }
+#line 49162 "gram.c"
+ break;
+
+ case 2305: /* plassign_target: ColId */
+#line 16573 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 49168 "gram.c"
+ break;
+
+ case 2306: /* plassign_target: PARAM */
+#line 16574 "gram.y"
+ { (yyval.str) = psprintf("$%d", (yyvsp[0].ival)); }
+#line 49174 "gram.c"
+ break;
+
+ case 2309: /* ColId: IDENT */
+#line 16595 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 49180 "gram.c"
+ break;
+
+ case 2310: /* ColId: unreserved_keyword */
+#line 16596 "gram.y"
+ { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
+#line 49186 "gram.c"
+ break;
+
+ case 2311: /* ColId: col_name_keyword */
+#line 16597 "gram.y"
+ { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
+#line 49192 "gram.c"
+ break;
+
+ case 2312: /* type_function_name: IDENT */
+#line 16602 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 49198 "gram.c"
+ break;
+
+ case 2313: /* type_function_name: unreserved_keyword */
+#line 16603 "gram.y"
+ { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
+#line 49204 "gram.c"
+ break;
+
+ case 2314: /* type_function_name: type_func_name_keyword */
+#line 16604 "gram.y"
+ { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
+#line 49210 "gram.c"
+ break;
+
+ case 2315: /* NonReservedWord: IDENT */
+#line 16609 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 49216 "gram.c"
+ break;
+
+ case 2316: /* NonReservedWord: unreserved_keyword */
+#line 16610 "gram.y"
+ { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
+#line 49222 "gram.c"
+ break;
+
+ case 2317: /* NonReservedWord: col_name_keyword */
+#line 16611 "gram.y"
+ { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
+#line 49228 "gram.c"
+ break;
+
+ case 2318: /* NonReservedWord: type_func_name_keyword */
+#line 16612 "gram.y"
+ { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
+#line 49234 "gram.c"
+ break;
+
+ case 2319: /* ColLabel: IDENT */
+#line 16618 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 49240 "gram.c"
+ break;
+
+ case 2320: /* ColLabel: unreserved_keyword */
+#line 16619 "gram.y"
+ { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
+#line 49246 "gram.c"
+ break;
+
+ case 2321: /* ColLabel: col_name_keyword */
+#line 16620 "gram.y"
+ { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
+#line 49252 "gram.c"
+ break;
+
+ case 2322: /* ColLabel: type_func_name_keyword */
+#line 16621 "gram.y"
+ { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
+#line 49258 "gram.c"
+ break;
+
+ case 2323: /* ColLabel: reserved_keyword */
+#line 16622 "gram.y"
+ { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
+#line 49264 "gram.c"
+ break;
+
+ case 2324: /* BareColLabel: IDENT */
+#line 16628 "gram.y"
+ { (yyval.str) = (yyvsp[0].str); }
+#line 49270 "gram.c"
+ break;
+
+ case 2325: /* BareColLabel: bare_label_keyword */
+#line 16629 "gram.y"
+ { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
+#line 49276 "gram.c"
+ break;
+
+
+#line 49280 "gram.c"
+
+ 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 ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
+
+ YYPOPSTACK (yylen);
+ yylen = 0;
+
+ *++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 ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
+ /* If not already recovering from an error, report this error. */
+ if (!yyerrstatus)
+ {
+ ++yynerrs;
+ yyerror (&yylloc, yyscanner, YY_("syntax error"));
+ }
+
+ 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. */
+
+ /* Pop stack until we find a state that shifts the error token. */
+ for (;;)
+ {
+ yyn = yypact[yystate];
+ if (!yypact_value_is_default (yyn))
+ {
+ yyn += YYSYMBOL_YYerror;
+ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
+ {
+ 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",
+ YY_ACCESSING_SYMBOL (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;
+ ++yylsp;
+ YYLLOC_DEFAULT (*yylsp, yyerror_range, 2);
+
+ /* Shift the error token. */
+ YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (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
+/*-------------------------------------------------.
+| yyexhaustedlab -- memory exhaustion comes here. |
+`-------------------------------------------------*/
+yyexhaustedlab:
+ yyerror (&yylloc, yyscanner, YY_("memory exhausted"));
+ yyresult = 2;
+ goto yyreturn;
+#endif
+
+
+/*-------------------------------------------------------.
+| yyreturn -- parsing is finished, clean up and return. |
+`-------------------------------------------------------*/
+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",
+ YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, yylsp, yyscanner);
+ YYPOPSTACK (1);
+ }
+#ifndef yyoverflow
+ if (yyss != yyssa)
+ YYSTACK_FREE (yyss);
+#endif
+
+ return yyresult;
+}
+
+#line 17579 "gram.y"
+
+
+/*
+ * 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(indirection, 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.sval.type = T_String;
+ n->val.sval.sval = 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.ival.type = T_Integer;
+ n->val.ival.ival = val;
+ n->location = location;
+
+ return (Node *) n;
+}
+
+static Node *
+makeFloatConst(char *str, int location)
+{
+ A_Const *n = makeNode(A_Const);
+
+ n->val.fval.type = T_Float;
+ n->val.fval.fval = str;
+ n->location = location;
+
+ return (Node *) n;
+}
+
+static Node *
+makeBoolAConst(bool state, int location)
+{
+ A_Const *n = makeNode(A_Const);
+
+ n->val.boolval.type = T_Boolean;
+ n->val.boolval.boolval = state;
+ n->location = location;
+
+ return (Node *) n;
+}
+
+static Node *
+makeBitStringConst(char *str, int location)
+{
+ A_Const *n = makeNode(A_Const);
+
+ n->val.bsval.type = T_BitString;
+ n->val.bsval.bsval = str;
+ n->location = location;
+
+ return (Node *) n;
+}
+
+static Node *
+makeNullAConst(int location)
+{
+ A_Const *n = makeNode(A_Const);
+
+ n->isnull = true;
+ n->location = location;
+
+ return (Node *) n;
+}
+
+static Node *
+makeAConst(Node *v, int location)
+{
+ Node *n;
+
+ switch (v->type)
+ {
+ case T_Float:
+ n = makeFloatConst(castNode(Float, v)->fval, location);
+ break;
+
+ case T_Integer:
+ n = makeIntConst(castNode(Integer, v)->ival, location);
+ break;
+
+ default:
+ /* currently not used */
+ Assert(false);
+ n = NULL;
+ }
+
+ return n;
+}
+
+/* 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(indirection, 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);
+ Integer *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,
+ SelectLimit *limitClause,
+ 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 (limitClause && limitClause->limitOffset)
+ {
+ if (stmt->limitOffset)
+ ereport(ERROR,
+ (errcode(ERRCODE_SYNTAX_ERROR),
+ errmsg("multiple OFFSET clauses not allowed"),
+ parser_errposition(exprLocation(limitClause->limitOffset))));
+ stmt->limitOffset = limitClause->limitOffset;
+ }
+ if (limitClause && limitClause->limitCount)
+ {
+ if (stmt->limitCount)
+ ereport(ERROR,
+ (errcode(ERRCODE_SYNTAX_ERROR),
+ errmsg("multiple LIMIT clauses not allowed"),
+ parser_errposition(exprLocation(limitClause->limitCount))));
+ stmt->limitCount = limitClause->limitCount;
+ }
+ if (limitClause && limitClause->limitOption != LIMIT_OPTION_DEFAULT)
+ {
+ if (stmt->limitOption)
+ ereport(ERROR,
+ (errcode(ERRCODE_SYNTAX_ERROR),
+ errmsg("multiple limit options not allowed")));
+ if (!stmt->sortClause && limitClause->limitOption == LIMIT_OPTION_WITH_TIES)
+ ereport(ERROR,
+ (errcode(ERRCODE_SYNTAX_ERROR),
+ errmsg("WITH TIES cannot be specified without ORDER BY clause")));
+ if (limitClause->limitOption == LIMIT_OPTION_WITH_TIES && stmt->lockingClause)
+ {
+ ListCell *lc;
+
+ foreach(lc, stmt->lockingClause)
+ {
+ LockingClause *lock = lfirst_node(LockingClause, lc);
+
+ if (lock->waitPolicy == LockWaitSkip)
+ ereport(ERROR,
+ (errcode(ERRCODE_SYNTAX_ERROR),
+ errmsg("%s and %s options cannot be used together",
+ "SKIP LOCKED", "WITH TIES")));
+ }
+ }
+ stmt->limitOption = limitClause->limitOption;
+ }
+ 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 (IsA(&con->val, Integer))
+ {
+ con->val.ival.ival = -con->val.ival.ival;
+ return n;
+ }
+ if (IsA(&con->val, Float))
+ {
+ doNegateFloat(&con->val.fval);
+ return n;
+ }
+ }
+
+ return (Node *) makeSimpleA_Expr(AEXPR_OP, "-", NULL, n, location);
+}
+
+static void
+doNegateFloat(Float *v)
+{
+ char *oldval = v->fval;
+
+ if (*oldval == '+')
+ oldval++;
+ if (*oldval == '-')
+ v->fval = oldval+1; /* just strip the '-' */
+ else
+ v->fval = psprintf("-%s", oldval);
+}
+
+static Node *
+makeAndExpr(Node *lexpr, Node *rexpr, int location)
+{
+ /* Flatten "a AND b AND c ..." to a single BoolExpr on sight */
+ if (IsA(lexpr, BoolExpr))
+ {
+ BoolExpr *blexpr = (BoolExpr *) lexpr;
+
+ 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)
+{
+ /* Flatten "a OR b OR c ..." to a single BoolExpr on sight */
+ if (IsA(lexpr, BoolExpr))
+ {
+ BoolExpr *blexpr = (BoolExpr *) lexpr;
+
+ 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_DEFAULT &&
+ 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;
+}
+
+/*
+ * Convert a relation_name with name and namelist to a RangeVar using
+ * makeRangeVar.
+ */
+static RangeVar *
+makeRangeVarFromQualifiedName(char *name, List *namelist, int location,
+ core_yyscan_t yyscanner)
+{
+ RangeVar *r;
+
+ check_qualified_name(namelist, yyscanner);
+ r = makeRangeVar(NULL, NULL, location);
+
+ switch (list_length(namelist))
+ {
+ case 1:
+ r->catalogname = NULL;
+ r->schemaname = name;
+ r->relname = strVal(linitial(namelist));
+ break;
+ case 2:
+ r->catalogname = name;
+ r->schemaname = strVal(linitial(namelist));
+ r->relname = strVal(lsecond(namelist));
+ break;
+ default:
+ ereport(ERROR,
+ errcode(ERRCODE_SYNTAX_ERROR),
+ errmsg("improper qualified name (too many dotted names): %s",
+ NameListToString(lcons(makeString(name), namelist))),
+ parser_errposition(location));
+ break;
+ }
+
+ 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;
+
+ *collClause = NULL;
+ foreach(cell, qualList)
+ {
+ Node *n = (Node *) lfirst(cell);
+
+ if (IsA(n, Constraint))
+ {
+ /* keep it in list */
+ 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 = foreach_delete_current(qualList, cell);
+ }
+ *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)));
+ }
+}
+
+/*
+ * Process pubobjspec_list to check for errors in any of the objects and
+ * convert PUBLICATIONOBJ_CONTINUATION into appropriate PublicationObjSpecType.
+ */
+static void
+preprocess_pubobj_list(List *pubobjspec_list, core_yyscan_t yyscanner)
+{
+ ListCell *cell;
+ PublicationObjSpec *pubobj;
+ PublicationObjSpecType prevobjtype = PUBLICATIONOBJ_CONTINUATION;
+
+ if (!pubobjspec_list)
+ return;
+
+ pubobj = (PublicationObjSpec *) linitial(pubobjspec_list);
+ if (pubobj->pubobjtype == PUBLICATIONOBJ_CONTINUATION)
+ ereport(ERROR,
+ errcode(ERRCODE_SYNTAX_ERROR),
+ errmsg("invalid publication object list"),
+ errdetail("One of TABLE or TABLES IN SCHEMA must be specified before a standalone table or schema name."),
+ parser_errposition(pubobj->location));
+
+ foreach(cell, pubobjspec_list)
+ {
+ pubobj = (PublicationObjSpec *) lfirst(cell);
+
+ if (pubobj->pubobjtype == PUBLICATIONOBJ_CONTINUATION)
+ pubobj->pubobjtype = prevobjtype;
+
+ if (pubobj->pubobjtype == PUBLICATIONOBJ_TABLE)
+ {
+ /* relation name or pubtable must be set for this type of object */
+ if (!pubobj->name && !pubobj->pubtable)
+ ereport(ERROR,
+ errcode(ERRCODE_SYNTAX_ERROR),
+ errmsg("invalid table name"),
+ parser_errposition(pubobj->location));
+
+ if (pubobj->name)
+ {
+ /* convert it to PublicationTable */
+ PublicationTable *pubtable = makeNode(PublicationTable);
+
+ pubtable->relation =
+ makeRangeVar(NULL, pubobj->name, pubobj->location);
+ pubobj->pubtable = pubtable;
+ pubobj->name = NULL;
+ }
+ }
+ else if (pubobj->pubobjtype == PUBLICATIONOBJ_TABLES_IN_SCHEMA ||
+ pubobj->pubobjtype == PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA)
+ {
+ /* WHERE clause is not allowed on a schema object */
+ if (pubobj->pubtable && pubobj->pubtable->whereClause)
+ ereport(ERROR,
+ errcode(ERRCODE_SYNTAX_ERROR),
+ errmsg("WHERE clause not allowed for schema"),
+ parser_errposition(pubobj->location));
+
+ /* Column list is not allowed on a schema object */
+ if (pubobj->pubtable && pubobj->pubtable->columns)
+ ereport(ERROR,
+ errcode(ERRCODE_SYNTAX_ERROR),
+ errmsg("column specification not allowed for schema"),
+ parser_errposition(pubobj->location));
+
+ /*
+ * We can distinguish between the different type of schema
+ * objects based on whether name and pubtable is set.
+ */
+ if (pubobj->name)
+ pubobj->pubobjtype = PUBLICATIONOBJ_TABLES_IN_SCHEMA;
+ else if (!pubobj->name && !pubobj->pubtable)
+ pubobj->pubobjtype = PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA;
+ else
+ ereport(ERROR,
+ errcode(ERRCODE_SYNTAX_ERROR),
+ errmsg("invalid schema name"),
+ parser_errposition(pubobj->location));
+ }
+
+ prevobjtype = pubobj->pubobjtype;
+ }
+}
+
+/*----------
+ * 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->ctematerialized = CTEMaterializeDefault;
+ 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 */
+}