Line data Source code
1 : /* A Bison parser, made by GNU Bison 3.7.5. */
2 :
3 : /* Bison implementation for Yacc-like parsers in C
4 :
5 : Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
6 : Inc.
7 :
8 : This program is free software: you can redistribute it and/or modify
9 : it under the terms of the GNU General Public License as published by
10 : the Free Software Foundation, either version 3 of the License, or
11 : (at your option) any later version.
12 :
13 : This program is distributed in the hope that it will be useful,
14 : but WITHOUT ANY WARRANTY; without even the implied warranty of
15 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 : GNU General Public License for more details.
17 :
18 : You should have received a copy of the GNU General Public License
19 : along with this program. If not, see <http://www.gnu.org/licenses/>. */
20 :
21 : /* As a special exception, you may create a larger work that contains
22 : part or all of the Bison parser skeleton and distribute that work
23 : under terms of your choice, so long as that work isn't itself a
24 : parser generator using the skeleton or a modified version thereof
25 : as a parser skeleton. Alternatively, if you modify or redistribute
26 : the parser skeleton itself, you may (at your option) remove this
27 : special exception, which will cause the skeleton and the resulting
28 : Bison output files to be licensed under the GNU General Public
29 : License without this special exception.
30 :
31 : This special exception was added by the Free Software Foundation in
32 : version 2.2 of Bison. */
33 :
34 : /* C LALR(1) parser skeleton written by Richard Stallman, by
35 : simplifying the original so-called "semantic" parser. */
36 :
37 : /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
38 : especially those whose name start with YY_ or yy_. They are
39 : private implementation details that can be changed or removed. */
40 :
41 : /* All symbols defined below should begin with yy or YY, to avoid
42 : infringing on user name space. This should be done even for local
43 : variables, as they might otherwise be expanded by user macros.
44 : There are some unavoidable exceptions within include files to
45 : define necessary library symbols; they are noted "INFRINGES ON
46 : USER NAME SPACE" below. */
47 :
48 : /* Identify Bison output, and Bison version. */
49 : #define YYBISON 30705
50 :
51 : /* Bison version string. */
52 : #define YYBISON_VERSION "3.7.5"
53 :
54 : /* Skeleton name. */
55 : #define YYSKELETON_NAME "yacc.c"
56 :
57 : /* Pure parsers. */
58 : #define YYPURE 1
59 :
60 : /* Push parsers. */
61 : #define YYPUSH 0
62 :
63 : /* Pull parsers. */
64 : #define YYPULL 1
65 :
66 :
67 : /* Substitute the variable and function names. */
68 : #define yyparse base_yyparse
69 : #define yylex base_yylex
70 : #define yyerror base_yyerror
71 : #define yydebug base_yydebug
72 : #define yynerrs base_yynerrs
73 :
74 : /* First part of user prologue. */
75 : #line 1 "gram.y"
76 :
77 :
78 : /*#define YYDEBUG 1*/
79 : /*-------------------------------------------------------------------------
80 : *
81 : * gram.y
82 : * POSTGRESQL BISON rules/actions
83 : *
84 : * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
85 : * Portions Copyright (c) 1994, Regents of the University of California
86 : *
87 : *
88 : * IDENTIFICATION
89 : * src/backend/parser/gram.y
90 : *
91 : * HISTORY
92 : * AUTHOR DATE MAJOR EVENT
93 : * Andrew Yu Sept, 1994 POSTQUEL to SQL conversion
94 : * Andrew Yu Oct, 1994 lispy code conversion
95 : *
96 : * NOTES
97 : * CAPITALS are used to represent terminal symbols.
98 : * non-capitals are used to represent non-terminals.
99 : *
100 : * In general, nothing in this file should initiate database accesses
101 : * nor depend on changeable state (such as SET variables). If you do
102 : * database accesses, your code will fail when we have aborted the
103 : * current transaction and are just parsing commands to find the next
104 : * ROLLBACK or COMMIT. If you make use of SET variables, then you
105 : * will do the wrong thing in multi-query strings like this:
106 : * SET constraint_exclusion TO off; SELECT * FROM foo;
107 : * because the entire string is parsed by gram.y before the SET gets
108 : * executed. Anything that depends on the database or changeable state
109 : * should be handled during parse analysis so that it happens at the
110 : * right time not the wrong time.
111 : *
112 : * WARNINGS
113 : * If you use a list, make sure the datum is a node so that the printing
114 : * routines work.
115 : *
116 : * Sometimes we assign constants to makeStrings. Make sure we don't free
117 : * those.
118 : *
119 : *-------------------------------------------------------------------------
120 : */
121 : #include "postgres.h"
122 :
123 : #include <ctype.h>
124 : #include <limits.h>
125 :
126 : #include "catalog/index.h"
127 : #include "catalog/namespace.h"
128 : #include "catalog/pg_am.h"
129 : #include "catalog/pg_trigger.h"
130 : #include "commands/defrem.h"
131 : #include "commands/trigger.h"
132 : #include "gramparse.h"
133 : #include "nodes/makefuncs.h"
134 : #include "nodes/nodeFuncs.h"
135 : #include "parser/parser.h"
136 : #include "utils/datetime.h"
137 : #include "utils/xml.h"
138 :
139 :
140 : /*
141 : * Location tracking support. Unlike bison's default, we only want
142 : * to track the start position not the end position of each nonterminal.
143 : * Nonterminals that reduce to empty receive position "-1". Since a
144 : * production's leading RHS nonterminal(s) may have reduced to empty,
145 : * we have to scan to find the first one that's not -1.
146 : */
147 : #define YYLLOC_DEFAULT(Current, Rhs, N) \
148 : do { \
149 : (Current) = (-1); \
150 : for (int _i = 1; _i <= (N); _i++) \
151 : { \
152 : if ((Rhs)[_i] >= 0) \
153 : { \
154 : (Current) = (Rhs)[_i]; \
155 : break; \
156 : } \
157 : } \
158 : } while (0)
159 :
160 : /*
161 : * Bison doesn't allocate anything that needs to live across parser calls,
162 : * so we can easily have it use palloc instead of malloc. This prevents
163 : * memory leaks if we error out during parsing.
164 : */
165 : #define YYMALLOC palloc
166 : #define YYFREE pfree
167 :
168 : /* Private struct for the result of privilege_target production */
169 : typedef struct PrivTarget
170 : {
171 : GrantTargetType targtype;
172 : ObjectType objtype;
173 : List *objs;
174 : } PrivTarget;
175 :
176 : /* Private struct for the result of import_qualification production */
177 : typedef struct ImportQual
178 : {
179 : ImportForeignSchemaType type;
180 : List *table_names;
181 : } ImportQual;
182 :
183 : /* Private struct for the result of select_limit & limit_clause productions */
184 : typedef struct SelectLimit
185 : {
186 : Node *limitOffset;
187 : Node *limitCount;
188 : LimitOption limitOption; /* indicates presence of WITH TIES */
189 : ParseLoc offsetLoc; /* location of OFFSET token, if present */
190 : ParseLoc countLoc; /* location of LIMIT/FETCH token, if present */
191 : ParseLoc optionLoc; /* location of WITH TIES, if present */
192 : } SelectLimit;
193 :
194 : /* Private struct for the result of group_clause production */
195 : typedef struct GroupClause
196 : {
197 : bool distinct;
198 : List *list;
199 : } GroupClause;
200 :
201 : /* Private structs for the result of key_actions and key_action productions */
202 : typedef struct KeyAction
203 : {
204 : char action;
205 : List *cols;
206 : } KeyAction;
207 :
208 : typedef struct KeyActions
209 : {
210 : KeyAction *updateAction;
211 : KeyAction *deleteAction;
212 : } KeyActions;
213 :
214 : /* ConstraintAttributeSpec yields an integer bitmask of these flags: */
215 : #define CAS_NOT_DEFERRABLE 0x01
216 : #define CAS_DEFERRABLE 0x02
217 : #define CAS_INITIALLY_IMMEDIATE 0x04
218 : #define CAS_INITIALLY_DEFERRED 0x08
219 : #define CAS_NOT_VALID 0x10
220 : #define CAS_NO_INHERIT 0x20
221 : #define CAS_NOT_ENFORCED 0x40
222 : #define CAS_ENFORCED 0x80
223 :
224 :
225 : #define parser_yyerror(msg) scanner_yyerror(msg, yyscanner)
226 : #define parser_errposition(pos) scanner_errposition(pos, yyscanner)
227 :
228 : static void base_yyerror(YYLTYPE *yylloc, core_yyscan_t yyscanner,
229 : const char *msg);
230 : static RawStmt *makeRawStmt(Node *stmt, int stmt_location);
231 : static void updateRawStmtEnd(RawStmt *rs, int end_location);
232 : static void updatePreparableStmtEnd(Node *n, int end_location);
233 : static Node *makeColumnRef(char *colname, List *indirection,
234 : int location, core_yyscan_t yyscanner);
235 : static Node *makeTypeCast(Node *arg, TypeName *typename, int location);
236 : static Node *makeStringConstCast(char *str, int location, TypeName *typename);
237 : static Node *makeIntConst(int val, int location);
238 : static Node *makeFloatConst(char *str, int location);
239 : static Node *makeBoolAConst(bool state, int location);
240 : static Node *makeBitStringConst(char *str, int location);
241 : static Node *makeNullAConst(int location);
242 : static Node *makeAConst(Node *v, int location);
243 : static RoleSpec *makeRoleSpec(RoleSpecType type, int location);
244 : static void check_qualified_name(List *names, core_yyscan_t yyscanner);
245 : static List *check_func_name(List *names, core_yyscan_t yyscanner);
246 : static List *check_indirection(List *indirection, core_yyscan_t yyscanner);
247 : static List *extractArgTypes(List *parameters);
248 : static List *extractAggrArgTypes(List *aggrargs);
249 : static List *makeOrderedSetArgs(List *directargs, List *orderedargs,
250 : core_yyscan_t yyscanner);
251 : static void insertSelectOptions(SelectStmt *stmt,
252 : List *sortClause, List *lockingClause,
253 : SelectLimit *limitClause,
254 : WithClause *withClause,
255 : core_yyscan_t yyscanner);
256 : static Node *makeSetOp(SetOperation op, bool all, Node *larg, Node *rarg, int location);
257 : static Node *doNegate(Node *n, int location);
258 : static void doNegateFloat(Float *v);
259 : static Node *makeAndExpr(Node *lexpr, Node *rexpr, int location);
260 : static Node *makeOrExpr(Node *lexpr, Node *rexpr, int location);
261 : static Node *makeNotExpr(Node *expr, int location);
262 : static Node *makeAArrayExpr(List *elements, int location);
263 : static Node *makeSQLValueFunction(SQLValueFunctionOp op, int32 typmod,
264 : int location);
265 : static Node *makeXmlExpr(XmlExprOp op, char *name, List *named_args,
266 : List *args, int location);
267 : static List *mergeTableFuncParameters(List *func_args, List *columns, core_yyscan_t yyscanner);
268 : static TypeName *TableFuncTypeName(List *columns);
269 : static RangeVar *makeRangeVarFromAnyName(List *names, int position, core_yyscan_t yyscanner);
270 : static RangeVar *makeRangeVarFromQualifiedName(char *name, List *namelist, int location,
271 : core_yyscan_t yyscanner);
272 : static void SplitColQualList(List *qualList,
273 : List **constraintList, CollateClause **collClause,
274 : core_yyscan_t yyscanner);
275 : static void processCASbits(int cas_bits, int location, const char *constrType,
276 : bool *deferrable, bool *initdeferred, bool *is_enforced,
277 : bool *not_valid, bool *no_inherit, core_yyscan_t yyscanner);
278 : static PartitionStrategy parsePartitionStrategy(char *strategy, int location,
279 : core_yyscan_t yyscanner);
280 : static void preprocess_pubobj_list(List *pubobjspec_list,
281 : core_yyscan_t yyscanner);
282 : static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
283 :
284 :
285 : #line 286 "gram.c"
286 :
287 : # ifndef YY_CAST
288 : # ifdef __cplusplus
289 : # define YY_CAST(Type, Val) static_cast<Type> (Val)
290 : # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
291 : # else
292 : # define YY_CAST(Type, Val) ((Type) (Val))
293 : # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
294 : # endif
295 : # endif
296 : # ifndef YY_NULLPTR
297 : # if defined __cplusplus
298 : # if 201103L <= __cplusplus
299 : # define YY_NULLPTR nullptr
300 : # else
301 : # define YY_NULLPTR 0
302 : # endif
303 : # else
304 : # define YY_NULLPTR ((void*)0)
305 : # endif
306 : # endif
307 :
308 : #include "gram.h"
309 : /* Symbol kind. */
310 : enum yysymbol_kind_t
311 : {
312 : YYSYMBOL_YYEMPTY = -2,
313 : YYSYMBOL_YYEOF = 0, /* "end of file" */
314 : YYSYMBOL_YYerror = 1, /* error */
315 : YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
316 : YYSYMBOL_IDENT = 3, /* IDENT */
317 : YYSYMBOL_UIDENT = 4, /* UIDENT */
318 : YYSYMBOL_FCONST = 5, /* FCONST */
319 : YYSYMBOL_SCONST = 6, /* SCONST */
320 : YYSYMBOL_USCONST = 7, /* USCONST */
321 : YYSYMBOL_BCONST = 8, /* BCONST */
322 : YYSYMBOL_XCONST = 9, /* XCONST */
323 : YYSYMBOL_Op = 10, /* Op */
324 : YYSYMBOL_ICONST = 11, /* ICONST */
325 : YYSYMBOL_PARAM = 12, /* PARAM */
326 : YYSYMBOL_TYPECAST = 13, /* TYPECAST */
327 : YYSYMBOL_DOT_DOT = 14, /* DOT_DOT */
328 : YYSYMBOL_COLON_EQUALS = 15, /* COLON_EQUALS */
329 : YYSYMBOL_EQUALS_GREATER = 16, /* EQUALS_GREATER */
330 : YYSYMBOL_LESS_EQUALS = 17, /* LESS_EQUALS */
331 : YYSYMBOL_GREATER_EQUALS = 18, /* GREATER_EQUALS */
332 : YYSYMBOL_NOT_EQUALS = 19, /* NOT_EQUALS */
333 : YYSYMBOL_ABORT_P = 20, /* ABORT_P */
334 : YYSYMBOL_ABSENT = 21, /* ABSENT */
335 : YYSYMBOL_ABSOLUTE_P = 22, /* ABSOLUTE_P */
336 : YYSYMBOL_ACCESS = 23, /* ACCESS */
337 : YYSYMBOL_ACTION = 24, /* ACTION */
338 : YYSYMBOL_ADD_P = 25, /* ADD_P */
339 : YYSYMBOL_ADMIN = 26, /* ADMIN */
340 : YYSYMBOL_AFTER = 27, /* AFTER */
341 : YYSYMBOL_AGGREGATE = 28, /* AGGREGATE */
342 : YYSYMBOL_ALL = 29, /* ALL */
343 : YYSYMBOL_ALSO = 30, /* ALSO */
344 : YYSYMBOL_ALTER = 31, /* ALTER */
345 : YYSYMBOL_ALWAYS = 32, /* ALWAYS */
346 : YYSYMBOL_ANALYSE = 33, /* ANALYSE */
347 : YYSYMBOL_ANALYZE = 34, /* ANALYZE */
348 : YYSYMBOL_AND = 35, /* AND */
349 : YYSYMBOL_ANY = 36, /* ANY */
350 : YYSYMBOL_ARRAY = 37, /* ARRAY */
351 : YYSYMBOL_AS = 38, /* AS */
352 : YYSYMBOL_ASC = 39, /* ASC */
353 : YYSYMBOL_ASENSITIVE = 40, /* ASENSITIVE */
354 : YYSYMBOL_ASSERTION = 41, /* ASSERTION */
355 : YYSYMBOL_ASSIGNMENT = 42, /* ASSIGNMENT */
356 : YYSYMBOL_ASYMMETRIC = 43, /* ASYMMETRIC */
357 : YYSYMBOL_ATOMIC = 44, /* ATOMIC */
358 : YYSYMBOL_AT = 45, /* AT */
359 : YYSYMBOL_ATTACH = 46, /* ATTACH */
360 : YYSYMBOL_ATTRIBUTE = 47, /* ATTRIBUTE */
361 : YYSYMBOL_AUTHORIZATION = 48, /* AUTHORIZATION */
362 : YYSYMBOL_BACKWARD = 49, /* BACKWARD */
363 : YYSYMBOL_BEFORE = 50, /* BEFORE */
364 : YYSYMBOL_BEGIN_P = 51, /* BEGIN_P */
365 : YYSYMBOL_BETWEEN = 52, /* BETWEEN */
366 : YYSYMBOL_BIGINT = 53, /* BIGINT */
367 : YYSYMBOL_BINARY = 54, /* BINARY */
368 : YYSYMBOL_BIT = 55, /* BIT */
369 : YYSYMBOL_BOOLEAN_P = 56, /* BOOLEAN_P */
370 : YYSYMBOL_BOTH = 57, /* BOTH */
371 : YYSYMBOL_BREADTH = 58, /* BREADTH */
372 : YYSYMBOL_BY = 59, /* BY */
373 : YYSYMBOL_CACHE = 60, /* CACHE */
374 : YYSYMBOL_CALL = 61, /* CALL */
375 : YYSYMBOL_CALLED = 62, /* CALLED */
376 : YYSYMBOL_CASCADE = 63, /* CASCADE */
377 : YYSYMBOL_CASCADED = 64, /* CASCADED */
378 : YYSYMBOL_CASE = 65, /* CASE */
379 : YYSYMBOL_CAST = 66, /* CAST */
380 : YYSYMBOL_CATALOG_P = 67, /* CATALOG_P */
381 : YYSYMBOL_CHAIN = 68, /* CHAIN */
382 : YYSYMBOL_CHAR_P = 69, /* CHAR_P */
383 : YYSYMBOL_CHARACTER = 70, /* CHARACTER */
384 : YYSYMBOL_CHARACTERISTICS = 71, /* CHARACTERISTICS */
385 : YYSYMBOL_CHECK = 72, /* CHECK */
386 : YYSYMBOL_CHECKPOINT = 73, /* CHECKPOINT */
387 : YYSYMBOL_CLASS = 74, /* CLASS */
388 : YYSYMBOL_CLOSE = 75, /* CLOSE */
389 : YYSYMBOL_CLUSTER = 76, /* CLUSTER */
390 : YYSYMBOL_COALESCE = 77, /* COALESCE */
391 : YYSYMBOL_COLLATE = 78, /* COLLATE */
392 : YYSYMBOL_COLLATION = 79, /* COLLATION */
393 : YYSYMBOL_COLUMN = 80, /* COLUMN */
394 : YYSYMBOL_COLUMNS = 81, /* COLUMNS */
395 : YYSYMBOL_COMMENT = 82, /* COMMENT */
396 : YYSYMBOL_COMMENTS = 83, /* COMMENTS */
397 : YYSYMBOL_COMMIT = 84, /* COMMIT */
398 : YYSYMBOL_COMMITTED = 85, /* COMMITTED */
399 : YYSYMBOL_COMPRESSION = 86, /* COMPRESSION */
400 : YYSYMBOL_CONCURRENTLY = 87, /* CONCURRENTLY */
401 : YYSYMBOL_CONDITIONAL = 88, /* CONDITIONAL */
402 : YYSYMBOL_CONFIGURATION = 89, /* CONFIGURATION */
403 : YYSYMBOL_CONFLICT = 90, /* CONFLICT */
404 : YYSYMBOL_CONNECTION = 91, /* CONNECTION */
405 : YYSYMBOL_CONSTRAINT = 92, /* CONSTRAINT */
406 : YYSYMBOL_CONSTRAINTS = 93, /* CONSTRAINTS */
407 : YYSYMBOL_CONTENT_P = 94, /* CONTENT_P */
408 : YYSYMBOL_CONTINUE_P = 95, /* CONTINUE_P */
409 : YYSYMBOL_CONVERSION_P = 96, /* CONVERSION_P */
410 : YYSYMBOL_COPY = 97, /* COPY */
411 : YYSYMBOL_COST = 98, /* COST */
412 : YYSYMBOL_CREATE = 99, /* CREATE */
413 : YYSYMBOL_CROSS = 100, /* CROSS */
414 : YYSYMBOL_CSV = 101, /* CSV */
415 : YYSYMBOL_CUBE = 102, /* CUBE */
416 : YYSYMBOL_CURRENT_P = 103, /* CURRENT_P */
417 : YYSYMBOL_CURRENT_CATALOG = 104, /* CURRENT_CATALOG */
418 : YYSYMBOL_CURRENT_DATE = 105, /* CURRENT_DATE */
419 : YYSYMBOL_CURRENT_ROLE = 106, /* CURRENT_ROLE */
420 : YYSYMBOL_CURRENT_SCHEMA = 107, /* CURRENT_SCHEMA */
421 : YYSYMBOL_CURRENT_TIME = 108, /* CURRENT_TIME */
422 : YYSYMBOL_CURRENT_TIMESTAMP = 109, /* CURRENT_TIMESTAMP */
423 : YYSYMBOL_CURRENT_USER = 110, /* CURRENT_USER */
424 : YYSYMBOL_CURSOR = 111, /* CURSOR */
425 : YYSYMBOL_CYCLE = 112, /* CYCLE */
426 : YYSYMBOL_DATA_P = 113, /* DATA_P */
427 : YYSYMBOL_DATABASE = 114, /* DATABASE */
428 : YYSYMBOL_DAY_P = 115, /* DAY_P */
429 : YYSYMBOL_DEALLOCATE = 116, /* DEALLOCATE */
430 : YYSYMBOL_DEC = 117, /* DEC */
431 : YYSYMBOL_DECIMAL_P = 118, /* DECIMAL_P */
432 : YYSYMBOL_DECLARE = 119, /* DECLARE */
433 : YYSYMBOL_DEFAULT = 120, /* DEFAULT */
434 : YYSYMBOL_DEFAULTS = 121, /* DEFAULTS */
435 : YYSYMBOL_DEFERRABLE = 122, /* DEFERRABLE */
436 : YYSYMBOL_DEFERRED = 123, /* DEFERRED */
437 : YYSYMBOL_DEFINER = 124, /* DEFINER */
438 : YYSYMBOL_DELETE_P = 125, /* DELETE_P */
439 : YYSYMBOL_DELIMITER = 126, /* DELIMITER */
440 : YYSYMBOL_DELIMITERS = 127, /* DELIMITERS */
441 : YYSYMBOL_DEPENDS = 128, /* DEPENDS */
442 : YYSYMBOL_DEPTH = 129, /* DEPTH */
443 : YYSYMBOL_DESC = 130, /* DESC */
444 : YYSYMBOL_DETACH = 131, /* DETACH */
445 : YYSYMBOL_DICTIONARY = 132, /* DICTIONARY */
446 : YYSYMBOL_DISABLE_P = 133, /* DISABLE_P */
447 : YYSYMBOL_DISCARD = 134, /* DISCARD */
448 : YYSYMBOL_DISTINCT = 135, /* DISTINCT */
449 : YYSYMBOL_DO = 136, /* DO */
450 : YYSYMBOL_DOCUMENT_P = 137, /* DOCUMENT_P */
451 : YYSYMBOL_DOMAIN_P = 138, /* DOMAIN_P */
452 : YYSYMBOL_DOUBLE_P = 139, /* DOUBLE_P */
453 : YYSYMBOL_DROP = 140, /* DROP */
454 : YYSYMBOL_EACH = 141, /* EACH */
455 : YYSYMBOL_ELSE = 142, /* ELSE */
456 : YYSYMBOL_EMPTY_P = 143, /* EMPTY_P */
457 : YYSYMBOL_ENABLE_P = 144, /* ENABLE_P */
458 : YYSYMBOL_ENCODING = 145, /* ENCODING */
459 : YYSYMBOL_ENCRYPTED = 146, /* ENCRYPTED */
460 : YYSYMBOL_END_P = 147, /* END_P */
461 : YYSYMBOL_ENFORCED = 148, /* ENFORCED */
462 : YYSYMBOL_ENUM_P = 149, /* ENUM_P */
463 : YYSYMBOL_ERROR_P = 150, /* ERROR_P */
464 : YYSYMBOL_ESCAPE = 151, /* ESCAPE */
465 : YYSYMBOL_EVENT = 152, /* EVENT */
466 : YYSYMBOL_EXCEPT = 153, /* EXCEPT */
467 : YYSYMBOL_EXCLUDE = 154, /* EXCLUDE */
468 : YYSYMBOL_EXCLUDING = 155, /* EXCLUDING */
469 : YYSYMBOL_EXCLUSIVE = 156, /* EXCLUSIVE */
470 : YYSYMBOL_EXECUTE = 157, /* EXECUTE */
471 : YYSYMBOL_EXISTS = 158, /* EXISTS */
472 : YYSYMBOL_EXPLAIN = 159, /* EXPLAIN */
473 : YYSYMBOL_EXPRESSION = 160, /* EXPRESSION */
474 : YYSYMBOL_EXTENSION = 161, /* EXTENSION */
475 : YYSYMBOL_EXTERNAL = 162, /* EXTERNAL */
476 : YYSYMBOL_EXTRACT = 163, /* EXTRACT */
477 : YYSYMBOL_FALSE_P = 164, /* FALSE_P */
478 : YYSYMBOL_FAMILY = 165, /* FAMILY */
479 : YYSYMBOL_FETCH = 166, /* FETCH */
480 : YYSYMBOL_FILTER = 167, /* FILTER */
481 : YYSYMBOL_FINALIZE = 168, /* FINALIZE */
482 : YYSYMBOL_FIRST_P = 169, /* FIRST_P */
483 : YYSYMBOL_FLOAT_P = 170, /* FLOAT_P */
484 : YYSYMBOL_FOLLOWING = 171, /* FOLLOWING */
485 : YYSYMBOL_FOR = 172, /* FOR */
486 : YYSYMBOL_FORCE = 173, /* FORCE */
487 : YYSYMBOL_FOREIGN = 174, /* FOREIGN */
488 : YYSYMBOL_FORMAT = 175, /* FORMAT */
489 : YYSYMBOL_FORWARD = 176, /* FORWARD */
490 : YYSYMBOL_FREEZE = 177, /* FREEZE */
491 : YYSYMBOL_FROM = 178, /* FROM */
492 : YYSYMBOL_FULL = 179, /* FULL */
493 : YYSYMBOL_FUNCTION = 180, /* FUNCTION */
494 : YYSYMBOL_FUNCTIONS = 181, /* FUNCTIONS */
495 : YYSYMBOL_GENERATED = 182, /* GENERATED */
496 : YYSYMBOL_GLOBAL = 183, /* GLOBAL */
497 : YYSYMBOL_GRANT = 184, /* GRANT */
498 : YYSYMBOL_GRANTED = 185, /* GRANTED */
499 : YYSYMBOL_GREATEST = 186, /* GREATEST */
500 : YYSYMBOL_GROUP_P = 187, /* GROUP_P */
501 : YYSYMBOL_GROUPING = 188, /* GROUPING */
502 : YYSYMBOL_GROUPS = 189, /* GROUPS */
503 : YYSYMBOL_HANDLER = 190, /* HANDLER */
504 : YYSYMBOL_HAVING = 191, /* HAVING */
505 : YYSYMBOL_HEADER_P = 192, /* HEADER_P */
506 : YYSYMBOL_HOLD = 193, /* HOLD */
507 : YYSYMBOL_HOUR_P = 194, /* HOUR_P */
508 : YYSYMBOL_IDENTITY_P = 195, /* IDENTITY_P */
509 : YYSYMBOL_IF_P = 196, /* IF_P */
510 : YYSYMBOL_ILIKE = 197, /* ILIKE */
511 : YYSYMBOL_IMMEDIATE = 198, /* IMMEDIATE */
512 : YYSYMBOL_IMMUTABLE = 199, /* IMMUTABLE */
513 : YYSYMBOL_IMPLICIT_P = 200, /* IMPLICIT_P */
514 : YYSYMBOL_IMPORT_P = 201, /* IMPORT_P */
515 : YYSYMBOL_IN_P = 202, /* IN_P */
516 : YYSYMBOL_INCLUDE = 203, /* INCLUDE */
517 : YYSYMBOL_INCLUDING = 204, /* INCLUDING */
518 : YYSYMBOL_INCREMENT = 205, /* INCREMENT */
519 : YYSYMBOL_INDENT = 206, /* INDENT */
520 : YYSYMBOL_INDEX = 207, /* INDEX */
521 : YYSYMBOL_INDEXES = 208, /* INDEXES */
522 : YYSYMBOL_INHERIT = 209, /* INHERIT */
523 : YYSYMBOL_INHERITS = 210, /* INHERITS */
524 : YYSYMBOL_INITIALLY = 211, /* INITIALLY */
525 : YYSYMBOL_INLINE_P = 212, /* INLINE_P */
526 : YYSYMBOL_INNER_P = 213, /* INNER_P */
527 : YYSYMBOL_INOUT = 214, /* INOUT */
528 : YYSYMBOL_INPUT_P = 215, /* INPUT_P */
529 : YYSYMBOL_INSENSITIVE = 216, /* INSENSITIVE */
530 : YYSYMBOL_INSERT = 217, /* INSERT */
531 : YYSYMBOL_INSTEAD = 218, /* INSTEAD */
532 : YYSYMBOL_INT_P = 219, /* INT_P */
533 : YYSYMBOL_INTEGER = 220, /* INTEGER */
534 : YYSYMBOL_INTERSECT = 221, /* INTERSECT */
535 : YYSYMBOL_INTERVAL = 222, /* INTERVAL */
536 : YYSYMBOL_INTO = 223, /* INTO */
537 : YYSYMBOL_INVOKER = 224, /* INVOKER */
538 : YYSYMBOL_IS = 225, /* IS */
539 : YYSYMBOL_ISNULL = 226, /* ISNULL */
540 : YYSYMBOL_ISOLATION = 227, /* ISOLATION */
541 : YYSYMBOL_JOIN = 228, /* JOIN */
542 : YYSYMBOL_JSON = 229, /* JSON */
543 : YYSYMBOL_JSON_ARRAY = 230, /* JSON_ARRAY */
544 : YYSYMBOL_JSON_ARRAYAGG = 231, /* JSON_ARRAYAGG */
545 : YYSYMBOL_JSON_EXISTS = 232, /* JSON_EXISTS */
546 : YYSYMBOL_JSON_OBJECT = 233, /* JSON_OBJECT */
547 : YYSYMBOL_JSON_OBJECTAGG = 234, /* JSON_OBJECTAGG */
548 : YYSYMBOL_JSON_QUERY = 235, /* JSON_QUERY */
549 : YYSYMBOL_JSON_SCALAR = 236, /* JSON_SCALAR */
550 : YYSYMBOL_JSON_SERIALIZE = 237, /* JSON_SERIALIZE */
551 : YYSYMBOL_JSON_TABLE = 238, /* JSON_TABLE */
552 : YYSYMBOL_JSON_VALUE = 239, /* JSON_VALUE */
553 : YYSYMBOL_KEEP = 240, /* KEEP */
554 : YYSYMBOL_KEY = 241, /* KEY */
555 : YYSYMBOL_KEYS = 242, /* KEYS */
556 : YYSYMBOL_LABEL = 243, /* LABEL */
557 : YYSYMBOL_LANGUAGE = 244, /* LANGUAGE */
558 : YYSYMBOL_LARGE_P = 245, /* LARGE_P */
559 : YYSYMBOL_LAST_P = 246, /* LAST_P */
560 : YYSYMBOL_LATERAL_P = 247, /* LATERAL_P */
561 : YYSYMBOL_LEADING = 248, /* LEADING */
562 : YYSYMBOL_LEAKPROOF = 249, /* LEAKPROOF */
563 : YYSYMBOL_LEAST = 250, /* LEAST */
564 : YYSYMBOL_LEFT = 251, /* LEFT */
565 : YYSYMBOL_LEVEL = 252, /* LEVEL */
566 : YYSYMBOL_LIKE = 253, /* LIKE */
567 : YYSYMBOL_LIMIT = 254, /* LIMIT */
568 : YYSYMBOL_LISTEN = 255, /* LISTEN */
569 : YYSYMBOL_LOAD = 256, /* LOAD */
570 : YYSYMBOL_LOCAL = 257, /* LOCAL */
571 : YYSYMBOL_LOCALTIME = 258, /* LOCALTIME */
572 : YYSYMBOL_LOCALTIMESTAMP = 259, /* LOCALTIMESTAMP */
573 : YYSYMBOL_LOCATION = 260, /* LOCATION */
574 : YYSYMBOL_LOCK_P = 261, /* LOCK_P */
575 : YYSYMBOL_LOCKED = 262, /* LOCKED */
576 : YYSYMBOL_LOGGED = 263, /* LOGGED */
577 : YYSYMBOL_MAPPING = 264, /* MAPPING */
578 : YYSYMBOL_MATCH = 265, /* MATCH */
579 : YYSYMBOL_MATCHED = 266, /* MATCHED */
580 : YYSYMBOL_MATERIALIZED = 267, /* MATERIALIZED */
581 : YYSYMBOL_MAXVALUE = 268, /* MAXVALUE */
582 : YYSYMBOL_MERGE = 269, /* MERGE */
583 : YYSYMBOL_MERGE_ACTION = 270, /* MERGE_ACTION */
584 : YYSYMBOL_METHOD = 271, /* METHOD */
585 : YYSYMBOL_MINUTE_P = 272, /* MINUTE_P */
586 : YYSYMBOL_MINVALUE = 273, /* MINVALUE */
587 : YYSYMBOL_MODE = 274, /* MODE */
588 : YYSYMBOL_MONTH_P = 275, /* MONTH_P */
589 : YYSYMBOL_MOVE = 276, /* MOVE */
590 : YYSYMBOL_NAME_P = 277, /* NAME_P */
591 : YYSYMBOL_NAMES = 278, /* NAMES */
592 : YYSYMBOL_NATIONAL = 279, /* NATIONAL */
593 : YYSYMBOL_NATURAL = 280, /* NATURAL */
594 : YYSYMBOL_NCHAR = 281, /* NCHAR */
595 : YYSYMBOL_NESTED = 282, /* NESTED */
596 : YYSYMBOL_NEW = 283, /* NEW */
597 : YYSYMBOL_NEXT = 284, /* NEXT */
598 : YYSYMBOL_NFC = 285, /* NFC */
599 : YYSYMBOL_NFD = 286, /* NFD */
600 : YYSYMBOL_NFKC = 287, /* NFKC */
601 : YYSYMBOL_NFKD = 288, /* NFKD */
602 : YYSYMBOL_NO = 289, /* NO */
603 : YYSYMBOL_NONE = 290, /* NONE */
604 : YYSYMBOL_NORMALIZE = 291, /* NORMALIZE */
605 : YYSYMBOL_NORMALIZED = 292, /* NORMALIZED */
606 : YYSYMBOL_NOT = 293, /* NOT */
607 : YYSYMBOL_NOTHING = 294, /* NOTHING */
608 : YYSYMBOL_NOTIFY = 295, /* NOTIFY */
609 : YYSYMBOL_NOTNULL = 296, /* NOTNULL */
610 : YYSYMBOL_NOWAIT = 297, /* NOWAIT */
611 : YYSYMBOL_NULL_P = 298, /* NULL_P */
612 : YYSYMBOL_NULLIF = 299, /* NULLIF */
613 : YYSYMBOL_NULLS_P = 300, /* NULLS_P */
614 : YYSYMBOL_NUMERIC = 301, /* NUMERIC */
615 : YYSYMBOL_OBJECT_P = 302, /* OBJECT_P */
616 : YYSYMBOL_OBJECTS_P = 303, /* OBJECTS_P */
617 : YYSYMBOL_OF = 304, /* OF */
618 : YYSYMBOL_OFF = 305, /* OFF */
619 : YYSYMBOL_OFFSET = 306, /* OFFSET */
620 : YYSYMBOL_OIDS = 307, /* OIDS */
621 : YYSYMBOL_OLD = 308, /* OLD */
622 : YYSYMBOL_OMIT = 309, /* OMIT */
623 : YYSYMBOL_ON = 310, /* ON */
624 : YYSYMBOL_ONLY = 311, /* ONLY */
625 : YYSYMBOL_OPERATOR = 312, /* OPERATOR */
626 : YYSYMBOL_OPTION = 313, /* OPTION */
627 : YYSYMBOL_OPTIONS = 314, /* OPTIONS */
628 : YYSYMBOL_OR = 315, /* OR */
629 : YYSYMBOL_ORDER = 316, /* ORDER */
630 : YYSYMBOL_ORDINALITY = 317, /* ORDINALITY */
631 : YYSYMBOL_OTHERS = 318, /* OTHERS */
632 : YYSYMBOL_OUT_P = 319, /* OUT_P */
633 : YYSYMBOL_OUTER_P = 320, /* OUTER_P */
634 : YYSYMBOL_OVER = 321, /* OVER */
635 : YYSYMBOL_OVERLAPS = 322, /* OVERLAPS */
636 : YYSYMBOL_OVERLAY = 323, /* OVERLAY */
637 : YYSYMBOL_OVERRIDING = 324, /* OVERRIDING */
638 : YYSYMBOL_OWNED = 325, /* OWNED */
639 : YYSYMBOL_OWNER = 326, /* OWNER */
640 : YYSYMBOL_PARALLEL = 327, /* PARALLEL */
641 : YYSYMBOL_PARAMETER = 328, /* PARAMETER */
642 : YYSYMBOL_PARSER = 329, /* PARSER */
643 : YYSYMBOL_PARTIAL = 330, /* PARTIAL */
644 : YYSYMBOL_PARTITION = 331, /* PARTITION */
645 : YYSYMBOL_PASSING = 332, /* PASSING */
646 : YYSYMBOL_PASSWORD = 333, /* PASSWORD */
647 : YYSYMBOL_PATH = 334, /* PATH */
648 : YYSYMBOL_PERIOD = 335, /* PERIOD */
649 : YYSYMBOL_PLACING = 336, /* PLACING */
650 : YYSYMBOL_PLAN = 337, /* PLAN */
651 : YYSYMBOL_PLANS = 338, /* PLANS */
652 : YYSYMBOL_POLICY = 339, /* POLICY */
653 : YYSYMBOL_POSITION = 340, /* POSITION */
654 : YYSYMBOL_PRECEDING = 341, /* PRECEDING */
655 : YYSYMBOL_PRECISION = 342, /* PRECISION */
656 : YYSYMBOL_PRESERVE = 343, /* PRESERVE */
657 : YYSYMBOL_PREPARE = 344, /* PREPARE */
658 : YYSYMBOL_PREPARED = 345, /* PREPARED */
659 : YYSYMBOL_PRIMARY = 346, /* PRIMARY */
660 : YYSYMBOL_PRIOR = 347, /* PRIOR */
661 : YYSYMBOL_PRIVILEGES = 348, /* PRIVILEGES */
662 : YYSYMBOL_PROCEDURAL = 349, /* PROCEDURAL */
663 : YYSYMBOL_PROCEDURE = 350, /* PROCEDURE */
664 : YYSYMBOL_PROCEDURES = 351, /* PROCEDURES */
665 : YYSYMBOL_PROGRAM = 352, /* PROGRAM */
666 : YYSYMBOL_PUBLICATION = 353, /* PUBLICATION */
667 : YYSYMBOL_QUOTE = 354, /* QUOTE */
668 : YYSYMBOL_QUOTES = 355, /* QUOTES */
669 : YYSYMBOL_RANGE = 356, /* RANGE */
670 : YYSYMBOL_READ = 357, /* READ */
671 : YYSYMBOL_REAL = 358, /* REAL */
672 : YYSYMBOL_REASSIGN = 359, /* REASSIGN */
673 : YYSYMBOL_RECURSIVE = 360, /* RECURSIVE */
674 : YYSYMBOL_REF_P = 361, /* REF_P */
675 : YYSYMBOL_REFERENCES = 362, /* REFERENCES */
676 : YYSYMBOL_REFERENCING = 363, /* REFERENCING */
677 : YYSYMBOL_REFRESH = 364, /* REFRESH */
678 : YYSYMBOL_REINDEX = 365, /* REINDEX */
679 : YYSYMBOL_RELATIVE_P = 366, /* RELATIVE_P */
680 : YYSYMBOL_RELEASE = 367, /* RELEASE */
681 : YYSYMBOL_RENAME = 368, /* RENAME */
682 : YYSYMBOL_REPEATABLE = 369, /* REPEATABLE */
683 : YYSYMBOL_REPLACE = 370, /* REPLACE */
684 : YYSYMBOL_REPLICA = 371, /* REPLICA */
685 : YYSYMBOL_RESET = 372, /* RESET */
686 : YYSYMBOL_RESTART = 373, /* RESTART */
687 : YYSYMBOL_RESTRICT = 374, /* RESTRICT */
688 : YYSYMBOL_RETURN = 375, /* RETURN */
689 : YYSYMBOL_RETURNING = 376, /* RETURNING */
690 : YYSYMBOL_RETURNS = 377, /* RETURNS */
691 : YYSYMBOL_REVOKE = 378, /* REVOKE */
692 : YYSYMBOL_RIGHT = 379, /* RIGHT */
693 : YYSYMBOL_ROLE = 380, /* ROLE */
694 : YYSYMBOL_ROLLBACK = 381, /* ROLLBACK */
695 : YYSYMBOL_ROLLUP = 382, /* ROLLUP */
696 : YYSYMBOL_ROUTINE = 383, /* ROUTINE */
697 : YYSYMBOL_ROUTINES = 384, /* ROUTINES */
698 : YYSYMBOL_ROW = 385, /* ROW */
699 : YYSYMBOL_ROWS = 386, /* ROWS */
700 : YYSYMBOL_RULE = 387, /* RULE */
701 : YYSYMBOL_SAVEPOINT = 388, /* SAVEPOINT */
702 : YYSYMBOL_SCALAR = 389, /* SCALAR */
703 : YYSYMBOL_SCHEMA = 390, /* SCHEMA */
704 : YYSYMBOL_SCHEMAS = 391, /* SCHEMAS */
705 : YYSYMBOL_SCROLL = 392, /* SCROLL */
706 : YYSYMBOL_SEARCH = 393, /* SEARCH */
707 : YYSYMBOL_SECOND_P = 394, /* SECOND_P */
708 : YYSYMBOL_SECURITY = 395, /* SECURITY */
709 : YYSYMBOL_SELECT = 396, /* SELECT */
710 : YYSYMBOL_SEQUENCE = 397, /* SEQUENCE */
711 : YYSYMBOL_SEQUENCES = 398, /* SEQUENCES */
712 : YYSYMBOL_SERIALIZABLE = 399, /* SERIALIZABLE */
713 : YYSYMBOL_SERVER = 400, /* SERVER */
714 : YYSYMBOL_SESSION = 401, /* SESSION */
715 : YYSYMBOL_SESSION_USER = 402, /* SESSION_USER */
716 : YYSYMBOL_SET = 403, /* SET */
717 : YYSYMBOL_SETS = 404, /* SETS */
718 : YYSYMBOL_SETOF = 405, /* SETOF */
719 : YYSYMBOL_SHARE = 406, /* SHARE */
720 : YYSYMBOL_SHOW = 407, /* SHOW */
721 : YYSYMBOL_SIMILAR = 408, /* SIMILAR */
722 : YYSYMBOL_SIMPLE = 409, /* SIMPLE */
723 : YYSYMBOL_SKIP = 410, /* SKIP */
724 : YYSYMBOL_SMALLINT = 411, /* SMALLINT */
725 : YYSYMBOL_SNAPSHOT = 412, /* SNAPSHOT */
726 : YYSYMBOL_SOME = 413, /* SOME */
727 : YYSYMBOL_SOURCE = 414, /* SOURCE */
728 : YYSYMBOL_SQL_P = 415, /* SQL_P */
729 : YYSYMBOL_STABLE = 416, /* STABLE */
730 : YYSYMBOL_STANDALONE_P = 417, /* STANDALONE_P */
731 : YYSYMBOL_START = 418, /* START */
732 : YYSYMBOL_STATEMENT = 419, /* STATEMENT */
733 : YYSYMBOL_STATISTICS = 420, /* STATISTICS */
734 : YYSYMBOL_STDIN = 421, /* STDIN */
735 : YYSYMBOL_STDOUT = 422, /* STDOUT */
736 : YYSYMBOL_STORAGE = 423, /* STORAGE */
737 : YYSYMBOL_STORED = 424, /* STORED */
738 : YYSYMBOL_STRICT_P = 425, /* STRICT_P */
739 : YYSYMBOL_STRING_P = 426, /* STRING_P */
740 : YYSYMBOL_STRIP_P = 427, /* STRIP_P */
741 : YYSYMBOL_SUBSCRIPTION = 428, /* SUBSCRIPTION */
742 : YYSYMBOL_SUBSTRING = 429, /* SUBSTRING */
743 : YYSYMBOL_SUPPORT = 430, /* SUPPORT */
744 : YYSYMBOL_SYMMETRIC = 431, /* SYMMETRIC */
745 : YYSYMBOL_SYSID = 432, /* SYSID */
746 : YYSYMBOL_SYSTEM_P = 433, /* SYSTEM_P */
747 : YYSYMBOL_SYSTEM_USER = 434, /* SYSTEM_USER */
748 : YYSYMBOL_TABLE = 435, /* TABLE */
749 : YYSYMBOL_TABLES = 436, /* TABLES */
750 : YYSYMBOL_TABLESAMPLE = 437, /* TABLESAMPLE */
751 : YYSYMBOL_TABLESPACE = 438, /* TABLESPACE */
752 : YYSYMBOL_TARGET = 439, /* TARGET */
753 : YYSYMBOL_TEMP = 440, /* TEMP */
754 : YYSYMBOL_TEMPLATE = 441, /* TEMPLATE */
755 : YYSYMBOL_TEMPORARY = 442, /* TEMPORARY */
756 : YYSYMBOL_TEXT_P = 443, /* TEXT_P */
757 : YYSYMBOL_THEN = 444, /* THEN */
758 : YYSYMBOL_TIES = 445, /* TIES */
759 : YYSYMBOL_TIME = 446, /* TIME */
760 : YYSYMBOL_TIMESTAMP = 447, /* TIMESTAMP */
761 : YYSYMBOL_TO = 448, /* TO */
762 : YYSYMBOL_TRAILING = 449, /* TRAILING */
763 : YYSYMBOL_TRANSACTION = 450, /* TRANSACTION */
764 : YYSYMBOL_TRANSFORM = 451, /* TRANSFORM */
765 : YYSYMBOL_TREAT = 452, /* TREAT */
766 : YYSYMBOL_TRIGGER = 453, /* TRIGGER */
767 : YYSYMBOL_TRIM = 454, /* TRIM */
768 : YYSYMBOL_TRUE_P = 455, /* TRUE_P */
769 : YYSYMBOL_TRUNCATE = 456, /* TRUNCATE */
770 : YYSYMBOL_TRUSTED = 457, /* TRUSTED */
771 : YYSYMBOL_TYPE_P = 458, /* TYPE_P */
772 : YYSYMBOL_TYPES_P = 459, /* TYPES_P */
773 : YYSYMBOL_UESCAPE = 460, /* UESCAPE */
774 : YYSYMBOL_UNBOUNDED = 461, /* UNBOUNDED */
775 : YYSYMBOL_UNCONDITIONAL = 462, /* UNCONDITIONAL */
776 : YYSYMBOL_UNCOMMITTED = 463, /* UNCOMMITTED */
777 : YYSYMBOL_UNENCRYPTED = 464, /* UNENCRYPTED */
778 : YYSYMBOL_UNION = 465, /* UNION */
779 : YYSYMBOL_UNIQUE = 466, /* UNIQUE */
780 : YYSYMBOL_UNKNOWN = 467, /* UNKNOWN */
781 : YYSYMBOL_UNLISTEN = 468, /* UNLISTEN */
782 : YYSYMBOL_UNLOGGED = 469, /* UNLOGGED */
783 : YYSYMBOL_UNTIL = 470, /* UNTIL */
784 : YYSYMBOL_UPDATE = 471, /* UPDATE */
785 : YYSYMBOL_USER = 472, /* USER */
786 : YYSYMBOL_USING = 473, /* USING */
787 : YYSYMBOL_VACUUM = 474, /* VACUUM */
788 : YYSYMBOL_VALID = 475, /* VALID */
789 : YYSYMBOL_VALIDATE = 476, /* VALIDATE */
790 : YYSYMBOL_VALIDATOR = 477, /* VALIDATOR */
791 : YYSYMBOL_VALUE_P = 478, /* VALUE_P */
792 : YYSYMBOL_VALUES = 479, /* VALUES */
793 : YYSYMBOL_VARCHAR = 480, /* VARCHAR */
794 : YYSYMBOL_VARIADIC = 481, /* VARIADIC */
795 : YYSYMBOL_VARYING = 482, /* VARYING */
796 : YYSYMBOL_VERBOSE = 483, /* VERBOSE */
797 : YYSYMBOL_VERSION_P = 484, /* VERSION_P */
798 : YYSYMBOL_VIEW = 485, /* VIEW */
799 : YYSYMBOL_VIEWS = 486, /* VIEWS */
800 : YYSYMBOL_VIRTUAL = 487, /* VIRTUAL */
801 : YYSYMBOL_VOLATILE = 488, /* VOLATILE */
802 : YYSYMBOL_WHEN = 489, /* WHEN */
803 : YYSYMBOL_WHERE = 490, /* WHERE */
804 : YYSYMBOL_WHITESPACE_P = 491, /* WHITESPACE_P */
805 : YYSYMBOL_WINDOW = 492, /* WINDOW */
806 : YYSYMBOL_WITH = 493, /* WITH */
807 : YYSYMBOL_WITHIN = 494, /* WITHIN */
808 : YYSYMBOL_WITHOUT = 495, /* WITHOUT */
809 : YYSYMBOL_WORK = 496, /* WORK */
810 : YYSYMBOL_WRAPPER = 497, /* WRAPPER */
811 : YYSYMBOL_WRITE = 498, /* WRITE */
812 : YYSYMBOL_XML_P = 499, /* XML_P */
813 : YYSYMBOL_XMLATTRIBUTES = 500, /* XMLATTRIBUTES */
814 : YYSYMBOL_XMLCONCAT = 501, /* XMLCONCAT */
815 : YYSYMBOL_XMLELEMENT = 502, /* XMLELEMENT */
816 : YYSYMBOL_XMLEXISTS = 503, /* XMLEXISTS */
817 : YYSYMBOL_XMLFOREST = 504, /* XMLFOREST */
818 : YYSYMBOL_XMLNAMESPACES = 505, /* XMLNAMESPACES */
819 : YYSYMBOL_XMLPARSE = 506, /* XMLPARSE */
820 : YYSYMBOL_XMLPI = 507, /* XMLPI */
821 : YYSYMBOL_XMLROOT = 508, /* XMLROOT */
822 : YYSYMBOL_XMLSERIALIZE = 509, /* XMLSERIALIZE */
823 : YYSYMBOL_XMLTABLE = 510, /* XMLTABLE */
824 : YYSYMBOL_YEAR_P = 511, /* YEAR_P */
825 : YYSYMBOL_YES_P = 512, /* YES_P */
826 : YYSYMBOL_ZONE = 513, /* ZONE */
827 : YYSYMBOL_FORMAT_LA = 514, /* FORMAT_LA */
828 : YYSYMBOL_NOT_LA = 515, /* NOT_LA */
829 : YYSYMBOL_NULLS_LA = 516, /* NULLS_LA */
830 : YYSYMBOL_WITH_LA = 517, /* WITH_LA */
831 : YYSYMBOL_WITHOUT_LA = 518, /* WITHOUT_LA */
832 : YYSYMBOL_MODE_TYPE_NAME = 519, /* MODE_TYPE_NAME */
833 : YYSYMBOL_MODE_PLPGSQL_EXPR = 520, /* MODE_PLPGSQL_EXPR */
834 : YYSYMBOL_MODE_PLPGSQL_ASSIGN1 = 521, /* MODE_PLPGSQL_ASSIGN1 */
835 : YYSYMBOL_MODE_PLPGSQL_ASSIGN2 = 522, /* MODE_PLPGSQL_ASSIGN2 */
836 : YYSYMBOL_MODE_PLPGSQL_ASSIGN3 = 523, /* MODE_PLPGSQL_ASSIGN3 */
837 : YYSYMBOL_524_ = 524, /* '<' */
838 : YYSYMBOL_525_ = 525, /* '>' */
839 : YYSYMBOL_526_ = 526, /* '=' */
840 : YYSYMBOL_527_ = 527, /* '+' */
841 : YYSYMBOL_528_ = 528, /* '-' */
842 : YYSYMBOL_529_ = 529, /* '*' */
843 : YYSYMBOL_530_ = 530, /* '/' */
844 : YYSYMBOL_531_ = 531, /* '%' */
845 : YYSYMBOL_532_ = 532, /* '^' */
846 : YYSYMBOL_UMINUS = 533, /* UMINUS */
847 : YYSYMBOL_534_ = 534, /* '[' */
848 : YYSYMBOL_535_ = 535, /* ']' */
849 : YYSYMBOL_536_ = 536, /* '(' */
850 : YYSYMBOL_537_ = 537, /* ')' */
851 : YYSYMBOL_538_ = 538, /* '.' */
852 : YYSYMBOL_539_ = 539, /* ';' */
853 : YYSYMBOL_540_ = 540, /* ',' */
854 : YYSYMBOL_541_ = 541, /* ':' */
855 : YYSYMBOL_YYACCEPT = 542, /* $accept */
856 : YYSYMBOL_parse_toplevel = 543, /* parse_toplevel */
857 : YYSYMBOL_stmtmulti = 544, /* stmtmulti */
858 : YYSYMBOL_toplevel_stmt = 545, /* toplevel_stmt */
859 : YYSYMBOL_stmt = 546, /* stmt */
860 : YYSYMBOL_opt_single_name = 547, /* opt_single_name */
861 : YYSYMBOL_opt_qualified_name = 548, /* opt_qualified_name */
862 : YYSYMBOL_opt_concurrently = 549, /* opt_concurrently */
863 : YYSYMBOL_opt_drop_behavior = 550, /* opt_drop_behavior */
864 : YYSYMBOL_CallStmt = 551, /* CallStmt */
865 : YYSYMBOL_CreateRoleStmt = 552, /* CreateRoleStmt */
866 : YYSYMBOL_opt_with = 553, /* opt_with */
867 : YYSYMBOL_OptRoleList = 554, /* OptRoleList */
868 : YYSYMBOL_AlterOptRoleList = 555, /* AlterOptRoleList */
869 : YYSYMBOL_AlterOptRoleElem = 556, /* AlterOptRoleElem */
870 : YYSYMBOL_CreateOptRoleElem = 557, /* CreateOptRoleElem */
871 : YYSYMBOL_CreateUserStmt = 558, /* CreateUserStmt */
872 : YYSYMBOL_AlterRoleStmt = 559, /* AlterRoleStmt */
873 : YYSYMBOL_opt_in_database = 560, /* opt_in_database */
874 : YYSYMBOL_AlterRoleSetStmt = 561, /* AlterRoleSetStmt */
875 : YYSYMBOL_DropRoleStmt = 562, /* DropRoleStmt */
876 : YYSYMBOL_CreateGroupStmt = 563, /* CreateGroupStmt */
877 : YYSYMBOL_AlterGroupStmt = 564, /* AlterGroupStmt */
878 : YYSYMBOL_add_drop = 565, /* add_drop */
879 : YYSYMBOL_CreateSchemaStmt = 566, /* CreateSchemaStmt */
880 : YYSYMBOL_OptSchemaEltList = 567, /* OptSchemaEltList */
881 : YYSYMBOL_schema_stmt = 568, /* schema_stmt */
882 : YYSYMBOL_VariableSetStmt = 569, /* VariableSetStmt */
883 : YYSYMBOL_set_rest = 570, /* set_rest */
884 : YYSYMBOL_generic_set = 571, /* generic_set */
885 : YYSYMBOL_set_rest_more = 572, /* set_rest_more */
886 : YYSYMBOL_var_name = 573, /* var_name */
887 : YYSYMBOL_var_list = 574, /* var_list */
888 : YYSYMBOL_var_value = 575, /* var_value */
889 : YYSYMBOL_iso_level = 576, /* iso_level */
890 : YYSYMBOL_opt_boolean_or_string = 577, /* opt_boolean_or_string */
891 : YYSYMBOL_zone_value = 578, /* zone_value */
892 : YYSYMBOL_opt_encoding = 579, /* opt_encoding */
893 : YYSYMBOL_NonReservedWord_or_Sconst = 580, /* NonReservedWord_or_Sconst */
894 : YYSYMBOL_VariableResetStmt = 581, /* VariableResetStmt */
895 : YYSYMBOL_reset_rest = 582, /* reset_rest */
896 : YYSYMBOL_generic_reset = 583, /* generic_reset */
897 : YYSYMBOL_SetResetClause = 584, /* SetResetClause */
898 : YYSYMBOL_FunctionSetResetClause = 585, /* FunctionSetResetClause */
899 : YYSYMBOL_VariableShowStmt = 586, /* VariableShowStmt */
900 : YYSYMBOL_ConstraintsSetStmt = 587, /* ConstraintsSetStmt */
901 : YYSYMBOL_constraints_set_list = 588, /* constraints_set_list */
902 : YYSYMBOL_constraints_set_mode = 589, /* constraints_set_mode */
903 : YYSYMBOL_CheckPointStmt = 590, /* CheckPointStmt */
904 : YYSYMBOL_DiscardStmt = 591, /* DiscardStmt */
905 : YYSYMBOL_AlterTableStmt = 592, /* AlterTableStmt */
906 : YYSYMBOL_alter_table_cmds = 593, /* alter_table_cmds */
907 : YYSYMBOL_partition_cmd = 594, /* partition_cmd */
908 : YYSYMBOL_index_partition_cmd = 595, /* index_partition_cmd */
909 : YYSYMBOL_alter_table_cmd = 596, /* alter_table_cmd */
910 : YYSYMBOL_alter_column_default = 597, /* alter_column_default */
911 : YYSYMBOL_opt_collate_clause = 598, /* opt_collate_clause */
912 : YYSYMBOL_alter_using = 599, /* alter_using */
913 : YYSYMBOL_replica_identity = 600, /* replica_identity */
914 : YYSYMBOL_reloptions = 601, /* reloptions */
915 : YYSYMBOL_opt_reloptions = 602, /* opt_reloptions */
916 : YYSYMBOL_reloption_list = 603, /* reloption_list */
917 : YYSYMBOL_reloption_elem = 604, /* reloption_elem */
918 : YYSYMBOL_alter_identity_column_option_list = 605, /* alter_identity_column_option_list */
919 : YYSYMBOL_alter_identity_column_option = 606, /* alter_identity_column_option */
920 : YYSYMBOL_set_statistics_value = 607, /* set_statistics_value */
921 : YYSYMBOL_set_access_method_name = 608, /* set_access_method_name */
922 : YYSYMBOL_PartitionBoundSpec = 609, /* PartitionBoundSpec */
923 : YYSYMBOL_hash_partbound_elem = 610, /* hash_partbound_elem */
924 : YYSYMBOL_hash_partbound = 611, /* hash_partbound */
925 : YYSYMBOL_AlterCompositeTypeStmt = 612, /* AlterCompositeTypeStmt */
926 : YYSYMBOL_alter_type_cmds = 613, /* alter_type_cmds */
927 : YYSYMBOL_alter_type_cmd = 614, /* alter_type_cmd */
928 : YYSYMBOL_ClosePortalStmt = 615, /* ClosePortalStmt */
929 : YYSYMBOL_CopyStmt = 616, /* CopyStmt */
930 : YYSYMBOL_copy_from = 617, /* copy_from */
931 : YYSYMBOL_opt_program = 618, /* opt_program */
932 : YYSYMBOL_copy_file_name = 619, /* copy_file_name */
933 : YYSYMBOL_copy_options = 620, /* copy_options */
934 : YYSYMBOL_copy_opt_list = 621, /* copy_opt_list */
935 : YYSYMBOL_copy_opt_item = 622, /* copy_opt_item */
936 : YYSYMBOL_opt_binary = 623, /* opt_binary */
937 : YYSYMBOL_copy_delimiter = 624, /* copy_delimiter */
938 : YYSYMBOL_opt_using = 625, /* opt_using */
939 : YYSYMBOL_copy_generic_opt_list = 626, /* copy_generic_opt_list */
940 : YYSYMBOL_copy_generic_opt_elem = 627, /* copy_generic_opt_elem */
941 : YYSYMBOL_copy_generic_opt_arg = 628, /* copy_generic_opt_arg */
942 : YYSYMBOL_copy_generic_opt_arg_list = 629, /* copy_generic_opt_arg_list */
943 : YYSYMBOL_copy_generic_opt_arg_list_item = 630, /* copy_generic_opt_arg_list_item */
944 : YYSYMBOL_CreateStmt = 631, /* CreateStmt */
945 : YYSYMBOL_OptTemp = 632, /* OptTemp */
946 : YYSYMBOL_OptTableElementList = 633, /* OptTableElementList */
947 : YYSYMBOL_OptTypedTableElementList = 634, /* OptTypedTableElementList */
948 : YYSYMBOL_TableElementList = 635, /* TableElementList */
949 : YYSYMBOL_TypedTableElementList = 636, /* TypedTableElementList */
950 : YYSYMBOL_TableElement = 637, /* TableElement */
951 : YYSYMBOL_TypedTableElement = 638, /* TypedTableElement */
952 : YYSYMBOL_columnDef = 639, /* columnDef */
953 : YYSYMBOL_columnOptions = 640, /* columnOptions */
954 : YYSYMBOL_column_compression = 641, /* column_compression */
955 : YYSYMBOL_opt_column_compression = 642, /* opt_column_compression */
956 : YYSYMBOL_column_storage = 643, /* column_storage */
957 : YYSYMBOL_opt_column_storage = 644, /* opt_column_storage */
958 : YYSYMBOL_ColQualList = 645, /* ColQualList */
959 : YYSYMBOL_ColConstraint = 646, /* ColConstraint */
960 : YYSYMBOL_ColConstraintElem = 647, /* ColConstraintElem */
961 : YYSYMBOL_opt_unique_null_treatment = 648, /* opt_unique_null_treatment */
962 : YYSYMBOL_generated_when = 649, /* generated_when */
963 : YYSYMBOL_opt_virtual_or_stored = 650, /* opt_virtual_or_stored */
964 : YYSYMBOL_ConstraintAttr = 651, /* ConstraintAttr */
965 : YYSYMBOL_TableLikeClause = 652, /* TableLikeClause */
966 : YYSYMBOL_TableLikeOptionList = 653, /* TableLikeOptionList */
967 : YYSYMBOL_TableLikeOption = 654, /* TableLikeOption */
968 : YYSYMBOL_TableConstraint = 655, /* TableConstraint */
969 : YYSYMBOL_ConstraintElem = 656, /* ConstraintElem */
970 : YYSYMBOL_DomainConstraint = 657, /* DomainConstraint */
971 : YYSYMBOL_DomainConstraintElem = 658, /* DomainConstraintElem */
972 : YYSYMBOL_opt_no_inherit = 659, /* opt_no_inherit */
973 : YYSYMBOL_opt_without_overlaps = 660, /* opt_without_overlaps */
974 : YYSYMBOL_opt_column_list = 661, /* opt_column_list */
975 : YYSYMBOL_columnList = 662, /* columnList */
976 : YYSYMBOL_optionalPeriodName = 663, /* optionalPeriodName */
977 : YYSYMBOL_opt_column_and_period_list = 664, /* opt_column_and_period_list */
978 : YYSYMBOL_columnElem = 665, /* columnElem */
979 : YYSYMBOL_opt_c_include = 666, /* opt_c_include */
980 : YYSYMBOL_key_match = 667, /* key_match */
981 : YYSYMBOL_ExclusionConstraintList = 668, /* ExclusionConstraintList */
982 : YYSYMBOL_ExclusionConstraintElem = 669, /* ExclusionConstraintElem */
983 : YYSYMBOL_OptWhereClause = 670, /* OptWhereClause */
984 : YYSYMBOL_key_actions = 671, /* key_actions */
985 : YYSYMBOL_key_update = 672, /* key_update */
986 : YYSYMBOL_key_delete = 673, /* key_delete */
987 : YYSYMBOL_key_action = 674, /* key_action */
988 : YYSYMBOL_OptInherit = 675, /* OptInherit */
989 : YYSYMBOL_OptPartitionSpec = 676, /* OptPartitionSpec */
990 : YYSYMBOL_PartitionSpec = 677, /* PartitionSpec */
991 : YYSYMBOL_part_params = 678, /* part_params */
992 : YYSYMBOL_part_elem = 679, /* part_elem */
993 : YYSYMBOL_table_access_method_clause = 680, /* table_access_method_clause */
994 : YYSYMBOL_OptWith = 681, /* OptWith */
995 : YYSYMBOL_OnCommitOption = 682, /* OnCommitOption */
996 : YYSYMBOL_OptTableSpace = 683, /* OptTableSpace */
997 : YYSYMBOL_OptConsTableSpace = 684, /* OptConsTableSpace */
998 : YYSYMBOL_ExistingIndex = 685, /* ExistingIndex */
999 : YYSYMBOL_CreateStatsStmt = 686, /* CreateStatsStmt */
1000 : YYSYMBOL_stats_params = 687, /* stats_params */
1001 : YYSYMBOL_stats_param = 688, /* stats_param */
1002 : YYSYMBOL_AlterStatsStmt = 689, /* AlterStatsStmt */
1003 : YYSYMBOL_CreateAsStmt = 690, /* CreateAsStmt */
1004 : YYSYMBOL_create_as_target = 691, /* create_as_target */
1005 : YYSYMBOL_opt_with_data = 692, /* opt_with_data */
1006 : YYSYMBOL_CreateMatViewStmt = 693, /* CreateMatViewStmt */
1007 : YYSYMBOL_create_mv_target = 694, /* create_mv_target */
1008 : YYSYMBOL_OptNoLog = 695, /* OptNoLog */
1009 : YYSYMBOL_RefreshMatViewStmt = 696, /* RefreshMatViewStmt */
1010 : YYSYMBOL_CreateSeqStmt = 697, /* CreateSeqStmt */
1011 : YYSYMBOL_AlterSeqStmt = 698, /* AlterSeqStmt */
1012 : YYSYMBOL_OptSeqOptList = 699, /* OptSeqOptList */
1013 : YYSYMBOL_OptParenthesizedSeqOptList = 700, /* OptParenthesizedSeqOptList */
1014 : YYSYMBOL_SeqOptList = 701, /* SeqOptList */
1015 : YYSYMBOL_SeqOptElem = 702, /* SeqOptElem */
1016 : YYSYMBOL_opt_by = 703, /* opt_by */
1017 : YYSYMBOL_NumericOnly = 704, /* NumericOnly */
1018 : YYSYMBOL_NumericOnly_list = 705, /* NumericOnly_list */
1019 : YYSYMBOL_CreatePLangStmt = 706, /* CreatePLangStmt */
1020 : YYSYMBOL_opt_trusted = 707, /* opt_trusted */
1021 : YYSYMBOL_handler_name = 708, /* handler_name */
1022 : YYSYMBOL_opt_inline_handler = 709, /* opt_inline_handler */
1023 : YYSYMBOL_validator_clause = 710, /* validator_clause */
1024 : YYSYMBOL_opt_validator = 711, /* opt_validator */
1025 : YYSYMBOL_opt_procedural = 712, /* opt_procedural */
1026 : YYSYMBOL_CreateTableSpaceStmt = 713, /* CreateTableSpaceStmt */
1027 : YYSYMBOL_OptTableSpaceOwner = 714, /* OptTableSpaceOwner */
1028 : YYSYMBOL_DropTableSpaceStmt = 715, /* DropTableSpaceStmt */
1029 : YYSYMBOL_CreateExtensionStmt = 716, /* CreateExtensionStmt */
1030 : YYSYMBOL_create_extension_opt_list = 717, /* create_extension_opt_list */
1031 : YYSYMBOL_create_extension_opt_item = 718, /* create_extension_opt_item */
1032 : YYSYMBOL_AlterExtensionStmt = 719, /* AlterExtensionStmt */
1033 : YYSYMBOL_alter_extension_opt_list = 720, /* alter_extension_opt_list */
1034 : YYSYMBOL_alter_extension_opt_item = 721, /* alter_extension_opt_item */
1035 : YYSYMBOL_AlterExtensionContentsStmt = 722, /* AlterExtensionContentsStmt */
1036 : YYSYMBOL_CreateFdwStmt = 723, /* CreateFdwStmt */
1037 : YYSYMBOL_fdw_option = 724, /* fdw_option */
1038 : YYSYMBOL_fdw_options = 725, /* fdw_options */
1039 : YYSYMBOL_opt_fdw_options = 726, /* opt_fdw_options */
1040 : YYSYMBOL_AlterFdwStmt = 727, /* AlterFdwStmt */
1041 : YYSYMBOL_create_generic_options = 728, /* create_generic_options */
1042 : YYSYMBOL_generic_option_list = 729, /* generic_option_list */
1043 : YYSYMBOL_alter_generic_options = 730, /* alter_generic_options */
1044 : YYSYMBOL_alter_generic_option_list = 731, /* alter_generic_option_list */
1045 : YYSYMBOL_alter_generic_option_elem = 732, /* alter_generic_option_elem */
1046 : YYSYMBOL_generic_option_elem = 733, /* generic_option_elem */
1047 : YYSYMBOL_generic_option_name = 734, /* generic_option_name */
1048 : YYSYMBOL_generic_option_arg = 735, /* generic_option_arg */
1049 : YYSYMBOL_CreateForeignServerStmt = 736, /* CreateForeignServerStmt */
1050 : YYSYMBOL_opt_type = 737, /* opt_type */
1051 : YYSYMBOL_foreign_server_version = 738, /* foreign_server_version */
1052 : YYSYMBOL_opt_foreign_server_version = 739, /* opt_foreign_server_version */
1053 : YYSYMBOL_AlterForeignServerStmt = 740, /* AlterForeignServerStmt */
1054 : YYSYMBOL_CreateForeignTableStmt = 741, /* CreateForeignTableStmt */
1055 : YYSYMBOL_ImportForeignSchemaStmt = 742, /* ImportForeignSchemaStmt */
1056 : YYSYMBOL_import_qualification_type = 743, /* import_qualification_type */
1057 : YYSYMBOL_import_qualification = 744, /* import_qualification */
1058 : YYSYMBOL_CreateUserMappingStmt = 745, /* CreateUserMappingStmt */
1059 : YYSYMBOL_auth_ident = 746, /* auth_ident */
1060 : YYSYMBOL_DropUserMappingStmt = 747, /* DropUserMappingStmt */
1061 : YYSYMBOL_AlterUserMappingStmt = 748, /* AlterUserMappingStmt */
1062 : YYSYMBOL_CreatePolicyStmt = 749, /* CreatePolicyStmt */
1063 : YYSYMBOL_AlterPolicyStmt = 750, /* AlterPolicyStmt */
1064 : YYSYMBOL_RowSecurityOptionalExpr = 751, /* RowSecurityOptionalExpr */
1065 : YYSYMBOL_RowSecurityOptionalWithCheck = 752, /* RowSecurityOptionalWithCheck */
1066 : YYSYMBOL_RowSecurityDefaultToRole = 753, /* RowSecurityDefaultToRole */
1067 : YYSYMBOL_RowSecurityOptionalToRole = 754, /* RowSecurityOptionalToRole */
1068 : YYSYMBOL_RowSecurityDefaultPermissive = 755, /* RowSecurityDefaultPermissive */
1069 : YYSYMBOL_RowSecurityDefaultForCmd = 756, /* RowSecurityDefaultForCmd */
1070 : YYSYMBOL_row_security_cmd = 757, /* row_security_cmd */
1071 : YYSYMBOL_CreateAmStmt = 758, /* CreateAmStmt */
1072 : YYSYMBOL_am_type = 759, /* am_type */
1073 : YYSYMBOL_CreateTrigStmt = 760, /* CreateTrigStmt */
1074 : YYSYMBOL_TriggerActionTime = 761, /* TriggerActionTime */
1075 : YYSYMBOL_TriggerEvents = 762, /* TriggerEvents */
1076 : YYSYMBOL_TriggerOneEvent = 763, /* TriggerOneEvent */
1077 : YYSYMBOL_TriggerReferencing = 764, /* TriggerReferencing */
1078 : YYSYMBOL_TriggerTransitions = 765, /* TriggerTransitions */
1079 : YYSYMBOL_TriggerTransition = 766, /* TriggerTransition */
1080 : YYSYMBOL_TransitionOldOrNew = 767, /* TransitionOldOrNew */
1081 : YYSYMBOL_TransitionRowOrTable = 768, /* TransitionRowOrTable */
1082 : YYSYMBOL_TransitionRelName = 769, /* TransitionRelName */
1083 : YYSYMBOL_TriggerForSpec = 770, /* TriggerForSpec */
1084 : YYSYMBOL_TriggerForOptEach = 771, /* TriggerForOptEach */
1085 : YYSYMBOL_TriggerForType = 772, /* TriggerForType */
1086 : YYSYMBOL_TriggerWhen = 773, /* TriggerWhen */
1087 : YYSYMBOL_FUNCTION_or_PROCEDURE = 774, /* FUNCTION_or_PROCEDURE */
1088 : YYSYMBOL_TriggerFuncArgs = 775, /* TriggerFuncArgs */
1089 : YYSYMBOL_TriggerFuncArg = 776, /* TriggerFuncArg */
1090 : YYSYMBOL_OptConstrFromTable = 777, /* OptConstrFromTable */
1091 : YYSYMBOL_ConstraintAttributeSpec = 778, /* ConstraintAttributeSpec */
1092 : YYSYMBOL_ConstraintAttributeElem = 779, /* ConstraintAttributeElem */
1093 : YYSYMBOL_CreateEventTrigStmt = 780, /* CreateEventTrigStmt */
1094 : YYSYMBOL_event_trigger_when_list = 781, /* event_trigger_when_list */
1095 : YYSYMBOL_event_trigger_when_item = 782, /* event_trigger_when_item */
1096 : YYSYMBOL_event_trigger_value_list = 783, /* event_trigger_value_list */
1097 : YYSYMBOL_AlterEventTrigStmt = 784, /* AlterEventTrigStmt */
1098 : YYSYMBOL_enable_trigger = 785, /* enable_trigger */
1099 : YYSYMBOL_CreateAssertionStmt = 786, /* CreateAssertionStmt */
1100 : YYSYMBOL_DefineStmt = 787, /* DefineStmt */
1101 : YYSYMBOL_definition = 788, /* definition */
1102 : YYSYMBOL_def_list = 789, /* def_list */
1103 : YYSYMBOL_def_elem = 790, /* def_elem */
1104 : YYSYMBOL_def_arg = 791, /* def_arg */
1105 : YYSYMBOL_old_aggr_definition = 792, /* old_aggr_definition */
1106 : YYSYMBOL_old_aggr_list = 793, /* old_aggr_list */
1107 : YYSYMBOL_old_aggr_elem = 794, /* old_aggr_elem */
1108 : YYSYMBOL_opt_enum_val_list = 795, /* opt_enum_val_list */
1109 : YYSYMBOL_enum_val_list = 796, /* enum_val_list */
1110 : YYSYMBOL_AlterEnumStmt = 797, /* AlterEnumStmt */
1111 : YYSYMBOL_opt_if_not_exists = 798, /* opt_if_not_exists */
1112 : YYSYMBOL_CreateOpClassStmt = 799, /* CreateOpClassStmt */
1113 : YYSYMBOL_opclass_item_list = 800, /* opclass_item_list */
1114 : YYSYMBOL_opclass_item = 801, /* opclass_item */
1115 : YYSYMBOL_opt_default = 802, /* opt_default */
1116 : YYSYMBOL_opt_opfamily = 803, /* opt_opfamily */
1117 : YYSYMBOL_opclass_purpose = 804, /* opclass_purpose */
1118 : YYSYMBOL_CreateOpFamilyStmt = 805, /* CreateOpFamilyStmt */
1119 : YYSYMBOL_AlterOpFamilyStmt = 806, /* AlterOpFamilyStmt */
1120 : YYSYMBOL_opclass_drop_list = 807, /* opclass_drop_list */
1121 : YYSYMBOL_opclass_drop = 808, /* opclass_drop */
1122 : YYSYMBOL_DropOpClassStmt = 809, /* DropOpClassStmt */
1123 : YYSYMBOL_DropOpFamilyStmt = 810, /* DropOpFamilyStmt */
1124 : YYSYMBOL_DropOwnedStmt = 811, /* DropOwnedStmt */
1125 : YYSYMBOL_ReassignOwnedStmt = 812, /* ReassignOwnedStmt */
1126 : YYSYMBOL_DropStmt = 813, /* DropStmt */
1127 : YYSYMBOL_object_type_any_name = 814, /* object_type_any_name */
1128 : YYSYMBOL_object_type_name = 815, /* object_type_name */
1129 : YYSYMBOL_drop_type_name = 816, /* drop_type_name */
1130 : YYSYMBOL_object_type_name_on_any_name = 817, /* object_type_name_on_any_name */
1131 : YYSYMBOL_any_name_list = 818, /* any_name_list */
1132 : YYSYMBOL_any_name = 819, /* any_name */
1133 : YYSYMBOL_attrs = 820, /* attrs */
1134 : YYSYMBOL_type_name_list = 821, /* type_name_list */
1135 : YYSYMBOL_TruncateStmt = 822, /* TruncateStmt */
1136 : YYSYMBOL_opt_restart_seqs = 823, /* opt_restart_seqs */
1137 : YYSYMBOL_CommentStmt = 824, /* CommentStmt */
1138 : YYSYMBOL_comment_text = 825, /* comment_text */
1139 : YYSYMBOL_SecLabelStmt = 826, /* SecLabelStmt */
1140 : YYSYMBOL_opt_provider = 827, /* opt_provider */
1141 : YYSYMBOL_security_label = 828, /* security_label */
1142 : YYSYMBOL_FetchStmt = 829, /* FetchStmt */
1143 : YYSYMBOL_fetch_args = 830, /* fetch_args */
1144 : YYSYMBOL_from_in = 831, /* from_in */
1145 : YYSYMBOL_opt_from_in = 832, /* opt_from_in */
1146 : YYSYMBOL_GrantStmt = 833, /* GrantStmt */
1147 : YYSYMBOL_RevokeStmt = 834, /* RevokeStmt */
1148 : YYSYMBOL_privileges = 835, /* privileges */
1149 : YYSYMBOL_privilege_list = 836, /* privilege_list */
1150 : YYSYMBOL_privilege = 837, /* privilege */
1151 : YYSYMBOL_parameter_name_list = 838, /* parameter_name_list */
1152 : YYSYMBOL_parameter_name = 839, /* parameter_name */
1153 : YYSYMBOL_privilege_target = 840, /* privilege_target */
1154 : YYSYMBOL_grantee_list = 841, /* grantee_list */
1155 : YYSYMBOL_grantee = 842, /* grantee */
1156 : YYSYMBOL_opt_grant_grant_option = 843, /* opt_grant_grant_option */
1157 : YYSYMBOL_GrantRoleStmt = 844, /* GrantRoleStmt */
1158 : YYSYMBOL_RevokeRoleStmt = 845, /* RevokeRoleStmt */
1159 : YYSYMBOL_grant_role_opt_list = 846, /* grant_role_opt_list */
1160 : YYSYMBOL_grant_role_opt = 847, /* grant_role_opt */
1161 : YYSYMBOL_grant_role_opt_value = 848, /* grant_role_opt_value */
1162 : YYSYMBOL_opt_granted_by = 849, /* opt_granted_by */
1163 : YYSYMBOL_AlterDefaultPrivilegesStmt = 850, /* AlterDefaultPrivilegesStmt */
1164 : YYSYMBOL_DefACLOptionList = 851, /* DefACLOptionList */
1165 : YYSYMBOL_DefACLOption = 852, /* DefACLOption */
1166 : YYSYMBOL_DefACLAction = 853, /* DefACLAction */
1167 : YYSYMBOL_defacl_privilege_target = 854, /* defacl_privilege_target */
1168 : YYSYMBOL_IndexStmt = 855, /* IndexStmt */
1169 : YYSYMBOL_opt_unique = 856, /* opt_unique */
1170 : YYSYMBOL_access_method_clause = 857, /* access_method_clause */
1171 : YYSYMBOL_index_params = 858, /* index_params */
1172 : YYSYMBOL_index_elem_options = 859, /* index_elem_options */
1173 : YYSYMBOL_index_elem = 860, /* index_elem */
1174 : YYSYMBOL_opt_include = 861, /* opt_include */
1175 : YYSYMBOL_index_including_params = 862, /* index_including_params */
1176 : YYSYMBOL_opt_collate = 863, /* opt_collate */
1177 : YYSYMBOL_opt_asc_desc = 864, /* opt_asc_desc */
1178 : YYSYMBOL_opt_nulls_order = 865, /* opt_nulls_order */
1179 : YYSYMBOL_CreateFunctionStmt = 866, /* CreateFunctionStmt */
1180 : YYSYMBOL_opt_or_replace = 867, /* opt_or_replace */
1181 : YYSYMBOL_func_args = 868, /* func_args */
1182 : YYSYMBOL_func_args_list = 869, /* func_args_list */
1183 : YYSYMBOL_function_with_argtypes_list = 870, /* function_with_argtypes_list */
1184 : YYSYMBOL_function_with_argtypes = 871, /* function_with_argtypes */
1185 : YYSYMBOL_func_args_with_defaults = 872, /* func_args_with_defaults */
1186 : YYSYMBOL_func_args_with_defaults_list = 873, /* func_args_with_defaults_list */
1187 : YYSYMBOL_func_arg = 874, /* func_arg */
1188 : YYSYMBOL_arg_class = 875, /* arg_class */
1189 : YYSYMBOL_param_name = 876, /* param_name */
1190 : YYSYMBOL_func_return = 877, /* func_return */
1191 : YYSYMBOL_func_type = 878, /* func_type */
1192 : YYSYMBOL_func_arg_with_default = 879, /* func_arg_with_default */
1193 : YYSYMBOL_aggr_arg = 880, /* aggr_arg */
1194 : YYSYMBOL_aggr_args = 881, /* aggr_args */
1195 : YYSYMBOL_aggr_args_list = 882, /* aggr_args_list */
1196 : YYSYMBOL_aggregate_with_argtypes = 883, /* aggregate_with_argtypes */
1197 : YYSYMBOL_aggregate_with_argtypes_list = 884, /* aggregate_with_argtypes_list */
1198 : YYSYMBOL_opt_createfunc_opt_list = 885, /* opt_createfunc_opt_list */
1199 : YYSYMBOL_createfunc_opt_list = 886, /* createfunc_opt_list */
1200 : YYSYMBOL_common_func_opt_item = 887, /* common_func_opt_item */
1201 : YYSYMBOL_createfunc_opt_item = 888, /* createfunc_opt_item */
1202 : YYSYMBOL_func_as = 889, /* func_as */
1203 : YYSYMBOL_ReturnStmt = 890, /* ReturnStmt */
1204 : YYSYMBOL_opt_routine_body = 891, /* opt_routine_body */
1205 : YYSYMBOL_routine_body_stmt_list = 892, /* routine_body_stmt_list */
1206 : YYSYMBOL_routine_body_stmt = 893, /* routine_body_stmt */
1207 : YYSYMBOL_transform_type_list = 894, /* transform_type_list */
1208 : YYSYMBOL_opt_definition = 895, /* opt_definition */
1209 : YYSYMBOL_table_func_column = 896, /* table_func_column */
1210 : YYSYMBOL_table_func_column_list = 897, /* table_func_column_list */
1211 : YYSYMBOL_AlterFunctionStmt = 898, /* AlterFunctionStmt */
1212 : YYSYMBOL_alterfunc_opt_list = 899, /* alterfunc_opt_list */
1213 : YYSYMBOL_opt_restrict = 900, /* opt_restrict */
1214 : YYSYMBOL_RemoveFuncStmt = 901, /* RemoveFuncStmt */
1215 : YYSYMBOL_RemoveAggrStmt = 902, /* RemoveAggrStmt */
1216 : YYSYMBOL_RemoveOperStmt = 903, /* RemoveOperStmt */
1217 : YYSYMBOL_oper_argtypes = 904, /* oper_argtypes */
1218 : YYSYMBOL_any_operator = 905, /* any_operator */
1219 : YYSYMBOL_operator_with_argtypes_list = 906, /* operator_with_argtypes_list */
1220 : YYSYMBOL_operator_with_argtypes = 907, /* operator_with_argtypes */
1221 : YYSYMBOL_DoStmt = 908, /* DoStmt */
1222 : YYSYMBOL_dostmt_opt_list = 909, /* dostmt_opt_list */
1223 : YYSYMBOL_dostmt_opt_item = 910, /* dostmt_opt_item */
1224 : YYSYMBOL_CreateCastStmt = 911, /* CreateCastStmt */
1225 : YYSYMBOL_cast_context = 912, /* cast_context */
1226 : YYSYMBOL_DropCastStmt = 913, /* DropCastStmt */
1227 : YYSYMBOL_opt_if_exists = 914, /* opt_if_exists */
1228 : YYSYMBOL_CreateTransformStmt = 915, /* CreateTransformStmt */
1229 : YYSYMBOL_transform_element_list = 916, /* transform_element_list */
1230 : YYSYMBOL_DropTransformStmt = 917, /* DropTransformStmt */
1231 : YYSYMBOL_ReindexStmt = 918, /* ReindexStmt */
1232 : YYSYMBOL_reindex_target_relation = 919, /* reindex_target_relation */
1233 : YYSYMBOL_reindex_target_all = 920, /* reindex_target_all */
1234 : YYSYMBOL_opt_reindex_option_list = 921, /* opt_reindex_option_list */
1235 : YYSYMBOL_AlterTblSpcStmt = 922, /* AlterTblSpcStmt */
1236 : YYSYMBOL_RenameStmt = 923, /* RenameStmt */
1237 : YYSYMBOL_opt_column = 924, /* opt_column */
1238 : YYSYMBOL_opt_set_data = 925, /* opt_set_data */
1239 : YYSYMBOL_AlterObjectDependsStmt = 926, /* AlterObjectDependsStmt */
1240 : YYSYMBOL_opt_no = 927, /* opt_no */
1241 : YYSYMBOL_AlterObjectSchemaStmt = 928, /* AlterObjectSchemaStmt */
1242 : YYSYMBOL_AlterOperatorStmt = 929, /* AlterOperatorStmt */
1243 : YYSYMBOL_operator_def_list = 930, /* operator_def_list */
1244 : YYSYMBOL_operator_def_elem = 931, /* operator_def_elem */
1245 : YYSYMBOL_operator_def_arg = 932, /* operator_def_arg */
1246 : YYSYMBOL_AlterTypeStmt = 933, /* AlterTypeStmt */
1247 : YYSYMBOL_AlterOwnerStmt = 934, /* AlterOwnerStmt */
1248 : YYSYMBOL_CreatePublicationStmt = 935, /* CreatePublicationStmt */
1249 : YYSYMBOL_PublicationObjSpec = 936, /* PublicationObjSpec */
1250 : YYSYMBOL_pub_obj_list = 937, /* pub_obj_list */
1251 : YYSYMBOL_AlterPublicationStmt = 938, /* AlterPublicationStmt */
1252 : YYSYMBOL_CreateSubscriptionStmt = 939, /* CreateSubscriptionStmt */
1253 : YYSYMBOL_AlterSubscriptionStmt = 940, /* AlterSubscriptionStmt */
1254 : YYSYMBOL_DropSubscriptionStmt = 941, /* DropSubscriptionStmt */
1255 : YYSYMBOL_RuleStmt = 942, /* RuleStmt */
1256 : YYSYMBOL_RuleActionList = 943, /* RuleActionList */
1257 : YYSYMBOL_RuleActionMulti = 944, /* RuleActionMulti */
1258 : YYSYMBOL_RuleActionStmt = 945, /* RuleActionStmt */
1259 : YYSYMBOL_RuleActionStmtOrEmpty = 946, /* RuleActionStmtOrEmpty */
1260 : YYSYMBOL_event = 947, /* event */
1261 : YYSYMBOL_opt_instead = 948, /* opt_instead */
1262 : YYSYMBOL_NotifyStmt = 949, /* NotifyStmt */
1263 : YYSYMBOL_notify_payload = 950, /* notify_payload */
1264 : YYSYMBOL_ListenStmt = 951, /* ListenStmt */
1265 : YYSYMBOL_UnlistenStmt = 952, /* UnlistenStmt */
1266 : YYSYMBOL_TransactionStmt = 953, /* TransactionStmt */
1267 : YYSYMBOL_TransactionStmtLegacy = 954, /* TransactionStmtLegacy */
1268 : YYSYMBOL_opt_transaction = 955, /* opt_transaction */
1269 : YYSYMBOL_transaction_mode_item = 956, /* transaction_mode_item */
1270 : YYSYMBOL_transaction_mode_list = 957, /* transaction_mode_list */
1271 : YYSYMBOL_transaction_mode_list_or_empty = 958, /* transaction_mode_list_or_empty */
1272 : YYSYMBOL_opt_transaction_chain = 959, /* opt_transaction_chain */
1273 : YYSYMBOL_ViewStmt = 960, /* ViewStmt */
1274 : YYSYMBOL_opt_check_option = 961, /* opt_check_option */
1275 : YYSYMBOL_LoadStmt = 962, /* LoadStmt */
1276 : YYSYMBOL_CreatedbStmt = 963, /* CreatedbStmt */
1277 : YYSYMBOL_createdb_opt_list = 964, /* createdb_opt_list */
1278 : YYSYMBOL_createdb_opt_items = 965, /* createdb_opt_items */
1279 : YYSYMBOL_createdb_opt_item = 966, /* createdb_opt_item */
1280 : YYSYMBOL_createdb_opt_name = 967, /* createdb_opt_name */
1281 : YYSYMBOL_opt_equal = 968, /* opt_equal */
1282 : YYSYMBOL_AlterDatabaseStmt = 969, /* AlterDatabaseStmt */
1283 : YYSYMBOL_AlterDatabaseSetStmt = 970, /* AlterDatabaseSetStmt */
1284 : YYSYMBOL_DropdbStmt = 971, /* DropdbStmt */
1285 : YYSYMBOL_drop_option_list = 972, /* drop_option_list */
1286 : YYSYMBOL_drop_option = 973, /* drop_option */
1287 : YYSYMBOL_AlterCollationStmt = 974, /* AlterCollationStmt */
1288 : YYSYMBOL_AlterSystemStmt = 975, /* AlterSystemStmt */
1289 : YYSYMBOL_CreateDomainStmt = 976, /* CreateDomainStmt */
1290 : YYSYMBOL_AlterDomainStmt = 977, /* AlterDomainStmt */
1291 : YYSYMBOL_opt_as = 978, /* opt_as */
1292 : YYSYMBOL_AlterTSDictionaryStmt = 979, /* AlterTSDictionaryStmt */
1293 : YYSYMBOL_AlterTSConfigurationStmt = 980, /* AlterTSConfigurationStmt */
1294 : YYSYMBOL_any_with = 981, /* any_with */
1295 : YYSYMBOL_CreateConversionStmt = 982, /* CreateConversionStmt */
1296 : YYSYMBOL_ClusterStmt = 983, /* ClusterStmt */
1297 : YYSYMBOL_cluster_index_specification = 984, /* cluster_index_specification */
1298 : YYSYMBOL_VacuumStmt = 985, /* VacuumStmt */
1299 : YYSYMBOL_AnalyzeStmt = 986, /* AnalyzeStmt */
1300 : YYSYMBOL_utility_option_list = 987, /* utility_option_list */
1301 : YYSYMBOL_analyze_keyword = 988, /* analyze_keyword */
1302 : YYSYMBOL_utility_option_elem = 989, /* utility_option_elem */
1303 : YYSYMBOL_utility_option_name = 990, /* utility_option_name */
1304 : YYSYMBOL_utility_option_arg = 991, /* utility_option_arg */
1305 : YYSYMBOL_opt_analyze = 992, /* opt_analyze */
1306 : YYSYMBOL_opt_verbose = 993, /* opt_verbose */
1307 : YYSYMBOL_opt_full = 994, /* opt_full */
1308 : YYSYMBOL_opt_freeze = 995, /* opt_freeze */
1309 : YYSYMBOL_opt_name_list = 996, /* opt_name_list */
1310 : YYSYMBOL_vacuum_relation = 997, /* vacuum_relation */
1311 : YYSYMBOL_vacuum_relation_list = 998, /* vacuum_relation_list */
1312 : YYSYMBOL_opt_vacuum_relation_list = 999, /* opt_vacuum_relation_list */
1313 : YYSYMBOL_ExplainStmt = 1000, /* ExplainStmt */
1314 : YYSYMBOL_ExplainableStmt = 1001, /* ExplainableStmt */
1315 : YYSYMBOL_PrepareStmt = 1002, /* PrepareStmt */
1316 : YYSYMBOL_prep_type_clause = 1003, /* prep_type_clause */
1317 : YYSYMBOL_PreparableStmt = 1004, /* PreparableStmt */
1318 : YYSYMBOL_ExecuteStmt = 1005, /* ExecuteStmt */
1319 : YYSYMBOL_execute_param_clause = 1006, /* execute_param_clause */
1320 : YYSYMBOL_DeallocateStmt = 1007, /* DeallocateStmt */
1321 : YYSYMBOL_InsertStmt = 1008, /* InsertStmt */
1322 : YYSYMBOL_insert_target = 1009, /* insert_target */
1323 : YYSYMBOL_insert_rest = 1010, /* insert_rest */
1324 : YYSYMBOL_override_kind = 1011, /* override_kind */
1325 : YYSYMBOL_insert_column_list = 1012, /* insert_column_list */
1326 : YYSYMBOL_insert_column_item = 1013, /* insert_column_item */
1327 : YYSYMBOL_opt_on_conflict = 1014, /* opt_on_conflict */
1328 : YYSYMBOL_opt_conf_expr = 1015, /* opt_conf_expr */
1329 : YYSYMBOL_returning_clause = 1016, /* returning_clause */
1330 : YYSYMBOL_returning_with_clause = 1017, /* returning_with_clause */
1331 : YYSYMBOL_returning_options = 1018, /* returning_options */
1332 : YYSYMBOL_returning_option = 1019, /* returning_option */
1333 : YYSYMBOL_returning_option_kind = 1020, /* returning_option_kind */
1334 : YYSYMBOL_DeleteStmt = 1021, /* DeleteStmt */
1335 : YYSYMBOL_using_clause = 1022, /* using_clause */
1336 : YYSYMBOL_LockStmt = 1023, /* LockStmt */
1337 : YYSYMBOL_opt_lock = 1024, /* opt_lock */
1338 : YYSYMBOL_lock_type = 1025, /* lock_type */
1339 : YYSYMBOL_opt_nowait = 1026, /* opt_nowait */
1340 : YYSYMBOL_opt_nowait_or_skip = 1027, /* opt_nowait_or_skip */
1341 : YYSYMBOL_UpdateStmt = 1028, /* UpdateStmt */
1342 : YYSYMBOL_set_clause_list = 1029, /* set_clause_list */
1343 : YYSYMBOL_set_clause = 1030, /* set_clause */
1344 : YYSYMBOL_set_target = 1031, /* set_target */
1345 : YYSYMBOL_set_target_list = 1032, /* set_target_list */
1346 : YYSYMBOL_MergeStmt = 1033, /* MergeStmt */
1347 : YYSYMBOL_merge_when_list = 1034, /* merge_when_list */
1348 : YYSYMBOL_merge_when_clause = 1035, /* merge_when_clause */
1349 : YYSYMBOL_merge_when_tgt_matched = 1036, /* merge_when_tgt_matched */
1350 : YYSYMBOL_merge_when_tgt_not_matched = 1037, /* merge_when_tgt_not_matched */
1351 : YYSYMBOL_opt_merge_when_condition = 1038, /* opt_merge_when_condition */
1352 : YYSYMBOL_merge_update = 1039, /* merge_update */
1353 : YYSYMBOL_merge_delete = 1040, /* merge_delete */
1354 : YYSYMBOL_merge_insert = 1041, /* merge_insert */
1355 : YYSYMBOL_merge_values_clause = 1042, /* merge_values_clause */
1356 : YYSYMBOL_DeclareCursorStmt = 1043, /* DeclareCursorStmt */
1357 : YYSYMBOL_cursor_name = 1044, /* cursor_name */
1358 : YYSYMBOL_cursor_options = 1045, /* cursor_options */
1359 : YYSYMBOL_opt_hold = 1046, /* opt_hold */
1360 : YYSYMBOL_SelectStmt = 1047, /* SelectStmt */
1361 : YYSYMBOL_select_with_parens = 1048, /* select_with_parens */
1362 : YYSYMBOL_select_no_parens = 1049, /* select_no_parens */
1363 : YYSYMBOL_select_clause = 1050, /* select_clause */
1364 : YYSYMBOL_simple_select = 1051, /* simple_select */
1365 : YYSYMBOL_with_clause = 1052, /* with_clause */
1366 : YYSYMBOL_cte_list = 1053, /* cte_list */
1367 : YYSYMBOL_common_table_expr = 1054, /* common_table_expr */
1368 : YYSYMBOL_opt_materialized = 1055, /* opt_materialized */
1369 : YYSYMBOL_opt_search_clause = 1056, /* opt_search_clause */
1370 : YYSYMBOL_opt_cycle_clause = 1057, /* opt_cycle_clause */
1371 : YYSYMBOL_opt_with_clause = 1058, /* opt_with_clause */
1372 : YYSYMBOL_into_clause = 1059, /* into_clause */
1373 : YYSYMBOL_OptTempTableName = 1060, /* OptTempTableName */
1374 : YYSYMBOL_opt_table = 1061, /* opt_table */
1375 : YYSYMBOL_set_quantifier = 1062, /* set_quantifier */
1376 : YYSYMBOL_distinct_clause = 1063, /* distinct_clause */
1377 : YYSYMBOL_opt_all_clause = 1064, /* opt_all_clause */
1378 : YYSYMBOL_opt_distinct_clause = 1065, /* opt_distinct_clause */
1379 : YYSYMBOL_opt_sort_clause = 1066, /* opt_sort_clause */
1380 : YYSYMBOL_sort_clause = 1067, /* sort_clause */
1381 : YYSYMBOL_sortby_list = 1068, /* sortby_list */
1382 : YYSYMBOL_sortby = 1069, /* sortby */
1383 : YYSYMBOL_select_limit = 1070, /* select_limit */
1384 : YYSYMBOL_opt_select_limit = 1071, /* opt_select_limit */
1385 : YYSYMBOL_limit_clause = 1072, /* limit_clause */
1386 : YYSYMBOL_offset_clause = 1073, /* offset_clause */
1387 : YYSYMBOL_select_limit_value = 1074, /* select_limit_value */
1388 : YYSYMBOL_select_offset_value = 1075, /* select_offset_value */
1389 : YYSYMBOL_select_fetch_first_value = 1076, /* select_fetch_first_value */
1390 : YYSYMBOL_I_or_F_const = 1077, /* I_or_F_const */
1391 : YYSYMBOL_row_or_rows = 1078, /* row_or_rows */
1392 : YYSYMBOL_first_or_next = 1079, /* first_or_next */
1393 : YYSYMBOL_group_clause = 1080, /* group_clause */
1394 : YYSYMBOL_group_by_list = 1081, /* group_by_list */
1395 : YYSYMBOL_group_by_item = 1082, /* group_by_item */
1396 : YYSYMBOL_empty_grouping_set = 1083, /* empty_grouping_set */
1397 : YYSYMBOL_rollup_clause = 1084, /* rollup_clause */
1398 : YYSYMBOL_cube_clause = 1085, /* cube_clause */
1399 : YYSYMBOL_grouping_sets_clause = 1086, /* grouping_sets_clause */
1400 : YYSYMBOL_having_clause = 1087, /* having_clause */
1401 : YYSYMBOL_for_locking_clause = 1088, /* for_locking_clause */
1402 : YYSYMBOL_opt_for_locking_clause = 1089, /* opt_for_locking_clause */
1403 : YYSYMBOL_for_locking_items = 1090, /* for_locking_items */
1404 : YYSYMBOL_for_locking_item = 1091, /* for_locking_item */
1405 : YYSYMBOL_for_locking_strength = 1092, /* for_locking_strength */
1406 : YYSYMBOL_locked_rels_list = 1093, /* locked_rels_list */
1407 : YYSYMBOL_values_clause = 1094, /* values_clause */
1408 : YYSYMBOL_from_clause = 1095, /* from_clause */
1409 : YYSYMBOL_from_list = 1096, /* from_list */
1410 : YYSYMBOL_table_ref = 1097, /* table_ref */
1411 : YYSYMBOL_joined_table = 1098, /* joined_table */
1412 : YYSYMBOL_alias_clause = 1099, /* alias_clause */
1413 : YYSYMBOL_opt_alias_clause = 1100, /* opt_alias_clause */
1414 : YYSYMBOL_opt_alias_clause_for_join_using = 1101, /* opt_alias_clause_for_join_using */
1415 : YYSYMBOL_func_alias_clause = 1102, /* func_alias_clause */
1416 : YYSYMBOL_join_type = 1103, /* join_type */
1417 : YYSYMBOL_opt_outer = 1104, /* opt_outer */
1418 : YYSYMBOL_join_qual = 1105, /* join_qual */
1419 : YYSYMBOL_relation_expr = 1106, /* relation_expr */
1420 : YYSYMBOL_extended_relation_expr = 1107, /* extended_relation_expr */
1421 : YYSYMBOL_relation_expr_list = 1108, /* relation_expr_list */
1422 : YYSYMBOL_relation_expr_opt_alias = 1109, /* relation_expr_opt_alias */
1423 : YYSYMBOL_tablesample_clause = 1110, /* tablesample_clause */
1424 : YYSYMBOL_opt_repeatable_clause = 1111, /* opt_repeatable_clause */
1425 : YYSYMBOL_func_table = 1112, /* func_table */
1426 : YYSYMBOL_rowsfrom_item = 1113, /* rowsfrom_item */
1427 : YYSYMBOL_rowsfrom_list = 1114, /* rowsfrom_list */
1428 : YYSYMBOL_opt_col_def_list = 1115, /* opt_col_def_list */
1429 : YYSYMBOL_opt_ordinality = 1116, /* opt_ordinality */
1430 : YYSYMBOL_where_clause = 1117, /* where_clause */
1431 : YYSYMBOL_where_or_current_clause = 1118, /* where_or_current_clause */
1432 : YYSYMBOL_OptTableFuncElementList = 1119, /* OptTableFuncElementList */
1433 : YYSYMBOL_TableFuncElementList = 1120, /* TableFuncElementList */
1434 : YYSYMBOL_TableFuncElement = 1121, /* TableFuncElement */
1435 : YYSYMBOL_xmltable = 1122, /* xmltable */
1436 : YYSYMBOL_xmltable_column_list = 1123, /* xmltable_column_list */
1437 : YYSYMBOL_xmltable_column_el = 1124, /* xmltable_column_el */
1438 : YYSYMBOL_xmltable_column_option_list = 1125, /* xmltable_column_option_list */
1439 : YYSYMBOL_xmltable_column_option_el = 1126, /* xmltable_column_option_el */
1440 : YYSYMBOL_xml_namespace_list = 1127, /* xml_namespace_list */
1441 : YYSYMBOL_xml_namespace_el = 1128, /* xml_namespace_el */
1442 : YYSYMBOL_json_table = 1129, /* json_table */
1443 : YYSYMBOL_json_table_path_name_opt = 1130, /* json_table_path_name_opt */
1444 : YYSYMBOL_json_table_column_definition_list = 1131, /* json_table_column_definition_list */
1445 : YYSYMBOL_json_table_column_definition = 1132, /* json_table_column_definition */
1446 : YYSYMBOL_path_opt = 1133, /* path_opt */
1447 : YYSYMBOL_json_table_column_path_clause_opt = 1134, /* json_table_column_path_clause_opt */
1448 : YYSYMBOL_Typename = 1135, /* Typename */
1449 : YYSYMBOL_opt_array_bounds = 1136, /* opt_array_bounds */
1450 : YYSYMBOL_SimpleTypename = 1137, /* SimpleTypename */
1451 : YYSYMBOL_ConstTypename = 1138, /* ConstTypename */
1452 : YYSYMBOL_GenericType = 1139, /* GenericType */
1453 : YYSYMBOL_opt_type_modifiers = 1140, /* opt_type_modifiers */
1454 : YYSYMBOL_Numeric = 1141, /* Numeric */
1455 : YYSYMBOL_opt_float = 1142, /* opt_float */
1456 : YYSYMBOL_Bit = 1143, /* Bit */
1457 : YYSYMBOL_ConstBit = 1144, /* ConstBit */
1458 : YYSYMBOL_BitWithLength = 1145, /* BitWithLength */
1459 : YYSYMBOL_BitWithoutLength = 1146, /* BitWithoutLength */
1460 : YYSYMBOL_Character = 1147, /* Character */
1461 : YYSYMBOL_ConstCharacter = 1148, /* ConstCharacter */
1462 : YYSYMBOL_CharacterWithLength = 1149, /* CharacterWithLength */
1463 : YYSYMBOL_CharacterWithoutLength = 1150, /* CharacterWithoutLength */
1464 : YYSYMBOL_character = 1151, /* character */
1465 : YYSYMBOL_opt_varying = 1152, /* opt_varying */
1466 : YYSYMBOL_ConstDatetime = 1153, /* ConstDatetime */
1467 : YYSYMBOL_ConstInterval = 1154, /* ConstInterval */
1468 : YYSYMBOL_opt_timezone = 1155, /* opt_timezone */
1469 : YYSYMBOL_opt_interval = 1156, /* opt_interval */
1470 : YYSYMBOL_interval_second = 1157, /* interval_second */
1471 : YYSYMBOL_JsonType = 1158, /* JsonType */
1472 : YYSYMBOL_a_expr = 1159, /* a_expr */
1473 : YYSYMBOL_b_expr = 1160, /* b_expr */
1474 : YYSYMBOL_c_expr = 1161, /* c_expr */
1475 : YYSYMBOL_func_application = 1162, /* func_application */
1476 : YYSYMBOL_func_expr = 1163, /* func_expr */
1477 : YYSYMBOL_func_expr_windowless = 1164, /* func_expr_windowless */
1478 : YYSYMBOL_func_expr_common_subexpr = 1165, /* func_expr_common_subexpr */
1479 : YYSYMBOL_xml_root_version = 1166, /* xml_root_version */
1480 : YYSYMBOL_opt_xml_root_standalone = 1167, /* opt_xml_root_standalone */
1481 : YYSYMBOL_xml_attributes = 1168, /* xml_attributes */
1482 : YYSYMBOL_xml_attribute_list = 1169, /* xml_attribute_list */
1483 : YYSYMBOL_xml_attribute_el = 1170, /* xml_attribute_el */
1484 : YYSYMBOL_document_or_content = 1171, /* document_or_content */
1485 : YYSYMBOL_xml_indent_option = 1172, /* xml_indent_option */
1486 : YYSYMBOL_xml_whitespace_option = 1173, /* xml_whitespace_option */
1487 : YYSYMBOL_xmlexists_argument = 1174, /* xmlexists_argument */
1488 : YYSYMBOL_xml_passing_mech = 1175, /* xml_passing_mech */
1489 : YYSYMBOL_within_group_clause = 1176, /* within_group_clause */
1490 : YYSYMBOL_filter_clause = 1177, /* filter_clause */
1491 : YYSYMBOL_window_clause = 1178, /* window_clause */
1492 : YYSYMBOL_window_definition_list = 1179, /* window_definition_list */
1493 : YYSYMBOL_window_definition = 1180, /* window_definition */
1494 : YYSYMBOL_over_clause = 1181, /* over_clause */
1495 : YYSYMBOL_window_specification = 1182, /* window_specification */
1496 : YYSYMBOL_opt_existing_window_name = 1183, /* opt_existing_window_name */
1497 : YYSYMBOL_opt_partition_clause = 1184, /* opt_partition_clause */
1498 : YYSYMBOL_opt_frame_clause = 1185, /* opt_frame_clause */
1499 : YYSYMBOL_frame_extent = 1186, /* frame_extent */
1500 : YYSYMBOL_frame_bound = 1187, /* frame_bound */
1501 : YYSYMBOL_opt_window_exclusion_clause = 1188, /* opt_window_exclusion_clause */
1502 : YYSYMBOL_row = 1189, /* row */
1503 : YYSYMBOL_explicit_row = 1190, /* explicit_row */
1504 : YYSYMBOL_implicit_row = 1191, /* implicit_row */
1505 : YYSYMBOL_sub_type = 1192, /* sub_type */
1506 : YYSYMBOL_all_Op = 1193, /* all_Op */
1507 : YYSYMBOL_MathOp = 1194, /* MathOp */
1508 : YYSYMBOL_qual_Op = 1195, /* qual_Op */
1509 : YYSYMBOL_qual_all_Op = 1196, /* qual_all_Op */
1510 : YYSYMBOL_subquery_Op = 1197, /* subquery_Op */
1511 : YYSYMBOL_expr_list = 1198, /* expr_list */
1512 : YYSYMBOL_func_arg_list = 1199, /* func_arg_list */
1513 : YYSYMBOL_func_arg_expr = 1200, /* func_arg_expr */
1514 : YYSYMBOL_func_arg_list_opt = 1201, /* func_arg_list_opt */
1515 : YYSYMBOL_type_list = 1202, /* type_list */
1516 : YYSYMBOL_array_expr = 1203, /* array_expr */
1517 : YYSYMBOL_array_expr_list = 1204, /* array_expr_list */
1518 : YYSYMBOL_extract_list = 1205, /* extract_list */
1519 : YYSYMBOL_extract_arg = 1206, /* extract_arg */
1520 : YYSYMBOL_unicode_normal_form = 1207, /* unicode_normal_form */
1521 : YYSYMBOL_overlay_list = 1208, /* overlay_list */
1522 : YYSYMBOL_position_list = 1209, /* position_list */
1523 : YYSYMBOL_substr_list = 1210, /* substr_list */
1524 : YYSYMBOL_trim_list = 1211, /* trim_list */
1525 : YYSYMBOL_in_expr = 1212, /* in_expr */
1526 : YYSYMBOL_case_expr = 1213, /* case_expr */
1527 : YYSYMBOL_when_clause_list = 1214, /* when_clause_list */
1528 : YYSYMBOL_when_clause = 1215, /* when_clause */
1529 : YYSYMBOL_case_default = 1216, /* case_default */
1530 : YYSYMBOL_case_arg = 1217, /* case_arg */
1531 : YYSYMBOL_columnref = 1218, /* columnref */
1532 : YYSYMBOL_indirection_el = 1219, /* indirection_el */
1533 : YYSYMBOL_opt_slice_bound = 1220, /* opt_slice_bound */
1534 : YYSYMBOL_indirection = 1221, /* indirection */
1535 : YYSYMBOL_opt_indirection = 1222, /* opt_indirection */
1536 : YYSYMBOL_opt_asymmetric = 1223, /* opt_asymmetric */
1537 : YYSYMBOL_json_passing_clause_opt = 1224, /* json_passing_clause_opt */
1538 : YYSYMBOL_json_arguments = 1225, /* json_arguments */
1539 : YYSYMBOL_json_argument = 1226, /* json_argument */
1540 : YYSYMBOL_json_wrapper_behavior = 1227, /* json_wrapper_behavior */
1541 : YYSYMBOL_json_behavior = 1228, /* json_behavior */
1542 : YYSYMBOL_json_behavior_type = 1229, /* json_behavior_type */
1543 : YYSYMBOL_json_behavior_clause_opt = 1230, /* json_behavior_clause_opt */
1544 : YYSYMBOL_json_on_error_clause_opt = 1231, /* json_on_error_clause_opt */
1545 : YYSYMBOL_json_value_expr = 1232, /* json_value_expr */
1546 : YYSYMBOL_json_format_clause = 1233, /* json_format_clause */
1547 : YYSYMBOL_json_format_clause_opt = 1234, /* json_format_clause_opt */
1548 : YYSYMBOL_json_quotes_clause_opt = 1235, /* json_quotes_clause_opt */
1549 : YYSYMBOL_json_returning_clause_opt = 1236, /* json_returning_clause_opt */
1550 : YYSYMBOL_json_predicate_type_constraint = 1237, /* json_predicate_type_constraint */
1551 : YYSYMBOL_json_key_uniqueness_constraint_opt = 1238, /* json_key_uniqueness_constraint_opt */
1552 : YYSYMBOL_json_name_and_value_list = 1239, /* json_name_and_value_list */
1553 : YYSYMBOL_json_name_and_value = 1240, /* json_name_and_value */
1554 : YYSYMBOL_json_object_constructor_null_clause_opt = 1241, /* json_object_constructor_null_clause_opt */
1555 : YYSYMBOL_json_array_constructor_null_clause_opt = 1242, /* json_array_constructor_null_clause_opt */
1556 : YYSYMBOL_json_value_expr_list = 1243, /* json_value_expr_list */
1557 : YYSYMBOL_json_aggregate_func = 1244, /* json_aggregate_func */
1558 : YYSYMBOL_json_array_aggregate_order_by_clause_opt = 1245, /* json_array_aggregate_order_by_clause_opt */
1559 : YYSYMBOL_opt_target_list = 1246, /* opt_target_list */
1560 : YYSYMBOL_target_list = 1247, /* target_list */
1561 : YYSYMBOL_target_el = 1248, /* target_el */
1562 : YYSYMBOL_qualified_name_list = 1249, /* qualified_name_list */
1563 : YYSYMBOL_qualified_name = 1250, /* qualified_name */
1564 : YYSYMBOL_name_list = 1251, /* name_list */
1565 : YYSYMBOL_name = 1252, /* name */
1566 : YYSYMBOL_attr_name = 1253, /* attr_name */
1567 : YYSYMBOL_file_name = 1254, /* file_name */
1568 : YYSYMBOL_func_name = 1255, /* func_name */
1569 : YYSYMBOL_AexprConst = 1256, /* AexprConst */
1570 : YYSYMBOL_Iconst = 1257, /* Iconst */
1571 : YYSYMBOL_Sconst = 1258, /* Sconst */
1572 : YYSYMBOL_SignedIconst = 1259, /* SignedIconst */
1573 : YYSYMBOL_RoleId = 1260, /* RoleId */
1574 : YYSYMBOL_RoleSpec = 1261, /* RoleSpec */
1575 : YYSYMBOL_role_list = 1262, /* role_list */
1576 : YYSYMBOL_PLpgSQL_Expr = 1263, /* PLpgSQL_Expr */
1577 : YYSYMBOL_PLAssignStmt = 1264, /* PLAssignStmt */
1578 : YYSYMBOL_plassign_target = 1265, /* plassign_target */
1579 : YYSYMBOL_plassign_equals = 1266, /* plassign_equals */
1580 : YYSYMBOL_ColId = 1267, /* ColId */
1581 : YYSYMBOL_type_function_name = 1268, /* type_function_name */
1582 : YYSYMBOL_NonReservedWord = 1269, /* NonReservedWord */
1583 : YYSYMBOL_ColLabel = 1270, /* ColLabel */
1584 : YYSYMBOL_BareColLabel = 1271, /* BareColLabel */
1585 : YYSYMBOL_unreserved_keyword = 1272, /* unreserved_keyword */
1586 : YYSYMBOL_col_name_keyword = 1273, /* col_name_keyword */
1587 : YYSYMBOL_type_func_name_keyword = 1274, /* type_func_name_keyword */
1588 : YYSYMBOL_reserved_keyword = 1275, /* reserved_keyword */
1589 : YYSYMBOL_bare_label_keyword = 1276 /* bare_label_keyword */
1590 : };
1591 : typedef enum yysymbol_kind_t yysymbol_kind_t;
1592 :
1593 :
1594 :
1595 :
1596 : #ifdef short
1597 : # undef short
1598 : #endif
1599 :
1600 : /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
1601 : <limits.h> and (if available) <stdint.h> are included
1602 : so that the code can choose integer types of a good width. */
1603 :
1604 : #ifndef __PTRDIFF_MAX__
1605 : # include <limits.h> /* INFRINGES ON USER NAME SPACE */
1606 : # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
1607 : # include <stdint.h> /* INFRINGES ON USER NAME SPACE */
1608 : # define YY_STDINT_H
1609 : # endif
1610 : #endif
1611 :
1612 : /* Narrow types that promote to a signed type and that can represent a
1613 : signed or unsigned integer of at least N bits. In tables they can
1614 : save space and decrease cache pressure. Promoting to a signed type
1615 : helps avoid bugs in integer arithmetic. */
1616 :
1617 : #ifdef __INT_LEAST8_MAX__
1618 : typedef __INT_LEAST8_TYPE__ yytype_int8;
1619 : #elif defined YY_STDINT_H
1620 : typedef int_least8_t yytype_int8;
1621 : #else
1622 : typedef signed char yytype_int8;
1623 : #endif
1624 :
1625 : #ifdef __INT_LEAST16_MAX__
1626 : typedef __INT_LEAST16_TYPE__ yytype_int16;
1627 : #elif defined YY_STDINT_H
1628 : typedef int_least16_t yytype_int16;
1629 : #else
1630 : typedef short yytype_int16;
1631 : #endif
1632 :
1633 : /* Work around bug in HP-UX 11.23, which defines these macros
1634 : incorrectly for preprocessor constants. This workaround can likely
1635 : be removed in 2023, as HPE has promised support for HP-UX 11.23
1636 : (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
1637 : <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */
1638 : #ifdef __hpux
1639 : # undef UINT_LEAST8_MAX
1640 : # undef UINT_LEAST16_MAX
1641 : # define UINT_LEAST8_MAX 255
1642 : # define UINT_LEAST16_MAX 65535
1643 : #endif
1644 :
1645 : #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
1646 : typedef __UINT_LEAST8_TYPE__ yytype_uint8;
1647 : #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
1648 : && UINT_LEAST8_MAX <= INT_MAX)
1649 : typedef uint_least8_t yytype_uint8;
1650 : #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
1651 : typedef unsigned char yytype_uint8;
1652 : #else
1653 : typedef short yytype_uint8;
1654 : #endif
1655 :
1656 : #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
1657 : typedef __UINT_LEAST16_TYPE__ yytype_uint16;
1658 : #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
1659 : && UINT_LEAST16_MAX <= INT_MAX)
1660 : typedef uint_least16_t yytype_uint16;
1661 : #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
1662 : typedef unsigned short yytype_uint16;
1663 : #else
1664 : typedef int yytype_uint16;
1665 : #endif
1666 :
1667 : #ifndef YYPTRDIFF_T
1668 : # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
1669 : # define YYPTRDIFF_T __PTRDIFF_TYPE__
1670 : # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
1671 : # elif defined PTRDIFF_MAX
1672 : # ifndef ptrdiff_t
1673 : # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1674 : # endif
1675 : # define YYPTRDIFF_T ptrdiff_t
1676 : # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
1677 : # else
1678 : # define YYPTRDIFF_T long
1679 : # define YYPTRDIFF_MAXIMUM LONG_MAX
1680 : # endif
1681 : #endif
1682 :
1683 : #ifndef YYSIZE_T
1684 : # ifdef __SIZE_TYPE__
1685 : # define YYSIZE_T __SIZE_TYPE__
1686 : # elif defined size_t
1687 : # define YYSIZE_T size_t
1688 : # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
1689 : # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1690 : # define YYSIZE_T size_t
1691 : # else
1692 : # define YYSIZE_T unsigned
1693 : # endif
1694 : #endif
1695 :
1696 : #define YYSIZE_MAXIMUM \
1697 : YY_CAST (YYPTRDIFF_T, \
1698 : (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
1699 : ? YYPTRDIFF_MAXIMUM \
1700 : : YY_CAST (YYSIZE_T, -1)))
1701 :
1702 : #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
1703 :
1704 :
1705 : /* Stored state numbers (used for stacks). */
1706 : typedef yytype_int16 yy_state_t;
1707 :
1708 : /* State numbers in computations. */
1709 : typedef int yy_state_fast_t;
1710 :
1711 : #ifndef YY_
1712 : # if defined YYENABLE_NLS && YYENABLE_NLS
1713 : # if ENABLE_NLS
1714 : # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
1715 : # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
1716 : # endif
1717 : # endif
1718 : # ifndef YY_
1719 : # define YY_(Msgid) Msgid
1720 : # endif
1721 : #endif
1722 :
1723 :
1724 : #ifndef YY_ATTRIBUTE_PURE
1725 : # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
1726 : # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
1727 : # else
1728 : # define YY_ATTRIBUTE_PURE
1729 : # endif
1730 : #endif
1731 :
1732 : #ifndef YY_ATTRIBUTE_UNUSED
1733 : # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
1734 : # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
1735 : # else
1736 : # define YY_ATTRIBUTE_UNUSED
1737 : # endif
1738 : #endif
1739 :
1740 : /* Suppress unused-variable warnings by "using" E. */
1741 : #if ! defined lint || defined __GNUC__
1742 : # define YY_USE(E) ((void) (E))
1743 : #else
1744 : # define YY_USE(E) /* empty */
1745 : #endif
1746 :
1747 : #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
1748 : /* Suppress an incorrect diagnostic about yylval being uninitialized. */
1749 : # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
1750 : _Pragma ("GCC diagnostic push") \
1751 : _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
1752 : _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
1753 : # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
1754 : _Pragma ("GCC diagnostic pop")
1755 : #else
1756 : # define YY_INITIAL_VALUE(Value) Value
1757 : #endif
1758 : #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1759 : # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1760 : # define YY_IGNORE_MAYBE_UNINITIALIZED_END
1761 : #endif
1762 : #ifndef YY_INITIAL_VALUE
1763 : # define YY_INITIAL_VALUE(Value) /* Nothing. */
1764 : #endif
1765 :
1766 : #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
1767 : # define YY_IGNORE_USELESS_CAST_BEGIN \
1768 : _Pragma ("GCC diagnostic push") \
1769 : _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
1770 : # define YY_IGNORE_USELESS_CAST_END \
1771 : _Pragma ("GCC diagnostic pop")
1772 : #endif
1773 : #ifndef YY_IGNORE_USELESS_CAST_BEGIN
1774 : # define YY_IGNORE_USELESS_CAST_BEGIN
1775 : # define YY_IGNORE_USELESS_CAST_END
1776 : #endif
1777 :
1778 :
1779 : #define YY_ASSERT(E) ((void) (0 && (E)))
1780 :
1781 : #if !defined yyoverflow
1782 :
1783 : /* The parser invokes alloca or malloc; define the necessary symbols. */
1784 :
1785 : # ifdef YYSTACK_USE_ALLOCA
1786 : # if YYSTACK_USE_ALLOCA
1787 : # ifdef __GNUC__
1788 : # define YYSTACK_ALLOC __builtin_alloca
1789 : # elif defined __BUILTIN_VA_ARG_INCR
1790 : # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
1791 : # elif defined _AIX
1792 : # define YYSTACK_ALLOC __alloca
1793 : # elif defined _MSC_VER
1794 : # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
1795 : # define alloca _alloca
1796 : # else
1797 : # define YYSTACK_ALLOC alloca
1798 : # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
1799 : # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1800 : /* Use EXIT_SUCCESS as a witness for stdlib.h. */
1801 : # ifndef EXIT_SUCCESS
1802 : # define EXIT_SUCCESS 0
1803 : # endif
1804 : # endif
1805 : # endif
1806 : # endif
1807 : # endif
1808 :
1809 : # ifdef YYSTACK_ALLOC
1810 : /* Pacify GCC's 'empty if-body' warning. */
1811 : # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
1812 : # ifndef YYSTACK_ALLOC_MAXIMUM
1813 : /* The OS might guarantee only one guard page at the bottom of the stack,
1814 : and a page size can be as small as 4096 bytes. So we cannot safely
1815 : invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
1816 : to allow for a few compiler-allocated temporary stack slots. */
1817 : # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
1818 : # endif
1819 : # else
1820 : # define YYSTACK_ALLOC YYMALLOC
1821 : # define YYSTACK_FREE YYFREE
1822 : # ifndef YYSTACK_ALLOC_MAXIMUM
1823 : # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1824 : # endif
1825 : # if (defined __cplusplus && ! defined EXIT_SUCCESS \
1826 : && ! ((defined YYMALLOC || defined malloc) \
1827 : && (defined YYFREE || defined free)))
1828 : # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1829 : # ifndef EXIT_SUCCESS
1830 : # define EXIT_SUCCESS 0
1831 : # endif
1832 : # endif
1833 : # ifndef YYMALLOC
1834 : # define YYMALLOC malloc
1835 : # if ! defined malloc && ! defined EXIT_SUCCESS
1836 : void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
1837 : # endif
1838 : # endif
1839 : # ifndef YYFREE
1840 : # define YYFREE free
1841 : # if ! defined free && ! defined EXIT_SUCCESS
1842 : void free (void *); /* INFRINGES ON USER NAME SPACE */
1843 : # endif
1844 : # endif
1845 : # endif
1846 : #endif /* !defined yyoverflow */
1847 :
1848 : #if (! defined yyoverflow \
1849 : && (! defined __cplusplus \
1850 : || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
1851 : && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1852 :
1853 : /* A type that is properly aligned for any stack member. */
1854 : union yyalloc
1855 : {
1856 : yy_state_t yyss_alloc;
1857 : YYSTYPE yyvs_alloc;
1858 : YYLTYPE yyls_alloc;
1859 : };
1860 :
1861 : /* The size of the maximum gap between one aligned stack and the next. */
1862 : # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
1863 :
1864 : /* The size of an array large to enough to hold all stacks, each with
1865 : N elements. */
1866 : # define YYSTACK_BYTES(N) \
1867 : ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \
1868 : + YYSIZEOF (YYLTYPE)) \
1869 : + 2 * YYSTACK_GAP_MAXIMUM)
1870 :
1871 : # define YYCOPY_NEEDED 1
1872 :
1873 : /* Relocate STACK from its old location to the new one. The
1874 : local variables YYSIZE and YYSTACKSIZE give the old and new number of
1875 : elements in the stack, and YYPTR gives the new location of the
1876 : stack. Advance YYPTR to a properly aligned location for the next
1877 : stack. */
1878 : # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
1879 : do \
1880 : { \
1881 : YYPTRDIFF_T yynewbytes; \
1882 : YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
1883 : Stack = &yyptr->Stack_alloc; \
1884 : yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
1885 : yyptr += yynewbytes / YYSIZEOF (*yyptr); \
1886 : } \
1887 : while (0)
1888 :
1889 : #endif
1890 :
1891 : #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1892 : /* Copy COUNT objects from SRC to DST. The source and destination do
1893 : not overlap. */
1894 : # ifndef YYCOPY
1895 : # if defined __GNUC__ && 1 < __GNUC__
1896 : # define YYCOPY(Dst, Src, Count) \
1897 : __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
1898 : # else
1899 : # define YYCOPY(Dst, Src, Count) \
1900 : do \
1901 : { \
1902 : YYPTRDIFF_T yyi; \
1903 : for (yyi = 0; yyi < (Count); yyi++) \
1904 : (Dst)[yyi] = (Src)[yyi]; \
1905 : } \
1906 : while (0)
1907 : # endif
1908 : # endif
1909 : #endif /* !YYCOPY_NEEDED */
1910 :
1911 : /* YYFINAL -- State number of the termination state. */
1912 : #define YYFINAL 931
1913 : /* YYLAST -- Last index in YYTABLE. */
1914 : #define YYLAST 122812
1915 :
1916 : /* YYNTOKENS -- Number of terminals. */
1917 : #define YYNTOKENS 542
1918 : /* YYNNTS -- Number of nonterminals. */
1919 : #define YYNNTS 735
1920 : /* YYNRULES -- Number of rules. */
1921 : #define YYNRULES 3435
1922 : /* YYNSTATES -- Number of states. */
1923 : #define YYNSTATES 6500
1924 :
1925 : /* YYMAXUTOK -- Last valid token kind. */
1926 : #define YYMAXUTOK 779
1927 :
1928 :
1929 : /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
1930 : as returned by yylex, with out-of-bounds checking. */
1931 : #define YYTRANSLATE(YYX) \
1932 : (0 <= (YYX) && (YYX) <= YYMAXUTOK \
1933 : ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
1934 : : YYSYMBOL_YYUNDEF)
1935 :
1936 : /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
1937 : as returned by yylex. */
1938 : static const yytype_int16 yytranslate[] =
1939 : {
1940 : 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1941 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1942 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1943 : 2, 2, 2, 2, 2, 2, 2, 531, 2, 2,
1944 : 536, 537, 529, 527, 540, 528, 538, 530, 2, 2,
1945 : 2, 2, 2, 2, 2, 2, 2, 2, 541, 539,
1946 : 524, 526, 525, 2, 2, 2, 2, 2, 2, 2,
1947 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1948 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1949 : 2, 534, 2, 535, 532, 2, 2, 2, 2, 2,
1950 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1951 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1952 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1953 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1954 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1955 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1956 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1957 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1958 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1959 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1960 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1961 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1962 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1963 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1964 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1965 : 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1966 : 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1967 : 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1968 : 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1969 : 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1970 : 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1971 : 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1972 : 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1973 : 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1974 : 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1975 : 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1976 : 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1977 : 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1978 : 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1979 : 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1980 : 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1981 : 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1982 : 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1983 : 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1984 : 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1985 : 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1986 : 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1987 : 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
1988 : 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
1989 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1990 : 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
1991 : 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1992 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1993 : 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1994 : 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1995 : 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1996 : 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1997 : 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1998 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1999 : 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
2000 : 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
2001 : 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
2002 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
2003 : 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
2004 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
2005 : 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
2006 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
2007 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
2008 : 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
2009 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
2010 : 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
2011 : 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
2012 : 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
2013 : 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
2014 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
2015 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
2016 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
2017 : 515, 516, 517, 518, 519, 520, 521, 522, 523, 533
2018 : };
2019 :
2020 : #if YYDEBUG
2021 : /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
2022 : static const yytype_int16 yyrline[] =
2023 : {
2024 : 0, 916, 916, 921, 925, 930, 938, 946, 962, 974,
2025 : 988, 989, 993, 994, 995, 996, 997, 998, 999, 1000,
2026 : 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010,
2027 : 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020,
2028 : 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030,
2029 : 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040,
2030 : 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050,
2031 : 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060,
2032 : 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070,
2033 : 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080,
2034 : 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090,
2035 : 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100,
2036 : 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110,
2037 : 1111, 1112, 1113, 1114, 1115, 1116, 1118, 1125, 1126, 1130,
2038 : 1131, 1135, 1136, 1140, 1141, 1142, 1151, 1167, 1179, 1180,
2039 : 1181, 1190, 1191, 1195, 1196, 1200, 1205, 1209, 1219, 1227,
2040 : 1231, 1235, 1240, 1244, 1292, 1294, 1298, 1302, 1306, 1310,
2041 : 1324, 1343, 1352, 1364, 1365, 1369, 1378, 1387, 1396, 1418,
2042 : 1426, 1434, 1442, 1450, 1458, 1476, 1495, 1507, 1508, 1519,
2043 : 1530, 1541, 1557, 1576, 1581, 1589, 1590, 1591, 1592, 1593,
2044 : 1594, 1608, 1615, 1622, 1632, 1643, 1654, 1658, 1668, 1678,
2045 : 1687, 1699, 1700, 1710, 1724, 1732, 1742, 1755, 1765, 1775,
2046 : 1784, 1796, 1808, 1809, 1813, 1814, 1817, 1819, 1823, 1824,
2047 : 1825, 1826, 1830, 1831, 1832, 1838, 1850, 1854, 1858, 1875,
2048 : 1883, 1884, 1885, 1889, 1890, 1891, 1895, 1896, 1900, 1904,
2049 : 1905, 1914, 1923, 1935, 1944, 1956, 1957, 1962, 1963, 1968,
2050 : 1975, 1982, 1989, 1996, 2007, 2018, 2019, 2023, 2024, 2032,
2051 : 2048, 2055, 2062, 2069, 2076, 2096, 2106, 2116, 2126, 2136,
2052 : 2148, 2160, 2170, 2180, 2190, 2202, 2214, 2224, 2234, 2244,
2053 : 2254, 2264, 2274, 2286, 2298, 2308, 2321, 2322, 2327, 2341,
2054 : 2354, 2370, 2387, 2397, 2407, 2417, 2427, 2437, 2446, 2455,
2055 : 2465, 2474, 2484, 2494, 2510, 2520, 2530, 2540, 2550, 2567,
2056 : 2577, 2587, 2597, 2608, 2622, 2638, 2648, 2657, 2682, 2696,
2057 : 2705, 2716, 2727, 2735, 2744, 2753, 2761, 2769, 2778, 2787,
2058 : 2796, 2804, 2812, 2821, 2829, 2837, 2846, 2855, 2864, 2873,
2059 : 2882, 2891, 2902, 2910, 2919, 2928, 2937, 2946, 2955, 2964,
2060 : 2972, 2980, 2988, 2995, 3006, 3007, 3011, 3020, 3024, 3025,
2061 : 3029, 3037, 3045, 3053, 3064, 3067, 3068, 3072, 3073, 3078,
2062 : 3082, 3086, 3091, 3098, 3100, 3105, 3109, 3113, 3124, 3131,
2063 : 3132, 3136, 3137, 3142, 3197, 3210, 3224, 3236, 3243, 3247,
2064 : 3261, 3274, 3275, 3280, 3290, 3301, 3312, 3339, 3346, 3380,
2065 : 3416, 3440, 3441, 3445, 3446, 3455, 3456, 3457, 3460, 3461,
2066 : 3466, 3467, 3471, 3475, 3479, 3483, 3487, 3491, 3495, 3499,
2067 : 3503, 3507, 3511, 3515, 3519, 3523, 3527, 3536, 3540, 3544,
2068 : 3548, 3552, 3553, 3558, 3562, 3569, 3576, 3577, 3578, 3579,
2069 : 3580, 3581, 3585, 3589, 3597, 3608, 3628, 3648, 3669, 3690,
2070 : 3711, 3745, 3746, 3747, 3748, 3749, 3756, 3763, 3764, 3768,
2071 : 3769, 3773, 3774, 3778, 3782, 3789, 3793, 3800, 3801, 3802,
2072 : 3806, 3807, 3810, 3834, 3853, 3875, 3876, 3880, 3881, 3885,
2073 : 3886, 3890, 3891, 3895, 3896, 3900, 3908, 3909, 3910, 3942,
2074 : 3954, 3962, 3975, 3987, 4001, 4011, 4021, 4046, 4067, 4068,
2075 : 4069, 4073, 4074, 4078, 4079, 4080, 4099, 4107, 4115, 4123,
2076 : 4131, 4139, 4151, 4163, 4164, 4165, 4169, 4170, 4171, 4172,
2077 : 4173, 4174, 4175, 4176, 4177, 4178, 4187, 4195, 4199, 4213,
2078 : 4226, 4245, 4261, 4279, 4295, 4315, 4360, 4368, 4372, 4387,
2079 : 4403, 4404, 4408, 4409, 4413, 4414, 4418, 4419, 4423, 4424,
2080 : 4428, 4429, 4432, 4438, 4439, 4442, 4446, 4454, 4459, 4465,
2081 : 4466, 4470, 4475, 4482, 4483, 4487, 4497, 4507, 4515, 4524,
2082 : 4537, 4549, 4556, 4564, 4572, 4580, 4588, 4598, 4599, 4603,
2083 : 4604, 4607, 4619, 4620, 4623, 4634, 4645, 4659, 4660, 4665,
2084 : 4666, 4667, 4670, 4671, 4672, 4673, 4676, 4677, 4680, 4681,
2085 : 4684, 4704, 4717, 4739, 4740, 4743, 4749, 4755, 4772, 4781,
2086 : 4803, 4817, 4834, 4850, 4851, 4852, 4864, 4878, 4895, 4909,
2087 : 4910, 4922, 4943, 4954, 4968, 4977, 4989, 4990, 4993, 4994,
2088 : 4997, 4998, 5001, 5005, 5009, 5013, 5017, 5021, 5025, 5029,
2089 : 5033, 5037, 5041, 5045, 5049, 5053, 5057, 5061, 5067, 5068,
2090 : 5072, 5073, 5074, 5081, 5084, 5085, 5097, 5113, 5129, 5130,
2091 : 5138, 5139, 5143, 5144, 5148, 5149, 5153, 5154, 5158, 5159,
2092 : 5169, 5181, 5182, 5195, 5203, 5221, 5230, 5242, 5245, 5249,
2093 : 5253, 5257, 5264, 5276, 5287, 5290, 5294, 5307, 5317, 5327,
2094 : 5337, 5347, 5357, 5367, 5377, 5387, 5397, 5407, 5417, 5427,
2095 : 5446, 5458, 5459, 5460, 5461, 5465, 5466, 5470, 5471, 5481,
2096 : 5490, 5503, 5504, 5508, 5512, 5520, 5524, 5528, 5535, 5539,
2097 : 5544, 5549, 5556, 5563, 5568, 5578, 5591, 5607, 5608, 5613,
2098 : 5614, 5618, 5619, 5629, 5639, 5648, 5666, 5687, 5708, 5730,
2099 : 5764, 5780, 5781, 5785, 5794, 5809, 5819, 5832, 5833, 5845,
2100 : 5854, 5872, 5897, 5915, 5930, 5931, 5935, 5936, 5940, 5941,
2101 : 5945, 5946, 5950, 5964, 5968, 5969, 5973, 5974, 5975, 5976,
2102 : 5977, 5987, 5999, 6000, 6011, 6034, 6067, 6068, 6069, 6073,
2103 : 6075, 6097, 6099, 6101, 6103, 6105, 6110, 6111, 6115, 6116,
2104 : 6120, 6132, 6133, 6137, 6146, 6150, 6154, 6159, 6169, 6170,
2105 : 6174, 6175, 6179, 6180, 6184, 6185, 6189, 6190, 6191, 6195,
2106 : 6199, 6200, 6201, 6205, 6206, 6211, 6212, 6240, 6241, 6242,
2107 : 6243, 6244, 6245, 6246, 6247, 6260, 6271, 6286, 6288, 6293,
2108 : 6298, 6300, 6305, 6316, 6317, 6318, 6319, 6330, 6350, 6362,
2109 : 6375, 6386, 6397, 6409, 6418, 6426, 6434, 6444, 6454, 6464,
2110 : 6474, 6484, 6495, 6505, 6518, 6521, 6522, 6525, 6529, 6536,
2111 : 6537, 6538, 6539, 6540, 6541, 6544, 6547, 6548, 6556, 6563,
2112 : 6564, 6567, 6569, 6580, 6592, 6604, 6616, 6628, 6657, 6658,
2113 : 6674, 6690, 6691, 6695, 6708, 6718, 6727, 6737, 6747, 6748,
2114 : 6751, 6752, 6755, 6756, 6757, 6762, 6773, 6783, 6796, 6797,
2115 : 6801, 6810, 6823, 6834, 6848, 6859, 6882, 6893, 6912, 6923,
2116 : 6934, 6945, 6956, 6967, 6978, 6989, 7000, 7011, 7022, 7033,
2117 : 7048, 7049, 7050, 7051, 7052, 7053, 7054, 7055, 7056, 7057,
2118 : 7058, 7059, 7060, 7070, 7071, 7072, 7073, 7074, 7078, 7079,
2119 : 7080, 7081, 7082, 7083, 7084, 7085, 7090, 7091, 7092, 7096,
2120 : 7097, 7100, 7101, 7104, 7106, 7111, 7112, 7123, 7135, 7136,
2121 : 7137, 7147, 7156, 7165, 7174, 7183, 7192, 7201, 7210, 7219,
2122 : 7228, 7242, 7251, 7260, 7269, 7278, 7287, 7296, 7305, 7317,
2123 : 7318, 7332, 7343, 7354, 7365, 7376, 7387, 7398, 7409, 7420,
2124 : 7431, 7444, 7445, 7448, 7449, 7459, 7466, 7475, 7484, 7493,
2125 : 7502, 7511, 7520, 7529, 7538, 7547, 7556, 7565, 7574, 7583,
2126 : 7592, 7601, 7610, 7621, 7622, 7625, 7626, 7636, 7654, 7670,
2127 : 7698, 7700, 7702, 7704, 7712, 7722, 7723, 7726, 7734, 7742,
2128 : 7750, 7757, 7768, 7772, 7779, 7783, 7794, 7803, 7812, 7821,
2129 : 7830, 7839, 7848, 7857, 7866, 7875, 7884, 7893, 7902, 7910,
2130 : 7919, 7928, 7937, 7946, 7955, 7964, 7973, 7986, 7987, 7991,
2131 : 7992, 7997, 7998, 8008, 8019, 8033, 8045, 8063, 8064, 8068,
2132 : 8075, 8076, 8077, 8080, 8081, 8091, 8102, 8103, 8107, 8111,
2133 : 8115, 8126, 8140, 8155, 8173, 8174, 8175, 8176, 8177, 8178,
2134 : 8179, 8191, 8223, 8258, 8259, 8263, 8264, 8267, 8268, 8273,
2135 : 8285, 8304, 8309, 8314, 8321, 8322, 8325, 8326, 8329, 8330,
2136 : 8334, 8335, 8336, 8339, 8340, 8341, 8357, 8371, 8386, 8400,
2137 : 8417, 8418, 8421, 8422, 8426, 8427, 8431, 8432, 8437, 8451,
2138 : 8459, 8467, 8483, 8484, 8488, 8489, 8504, 8515, 8526, 8537,
2139 : 8548, 8562, 8563, 8564, 8565, 8566, 8572, 8576, 8591, 8592,
2140 : 8598, 8608, 8612, 8617, 8625, 8667, 8671, 8675, 8679, 8687,
2141 : 8688, 8692, 8704, 8705, 8710, 8711, 8716, 8717, 8724, 8728,
2142 : 8732, 8736, 8740, 8744, 8748, 8752, 8756, 8760, 8764, 8768,
2143 : 8772, 8776, 8780, 8784, 8789, 8796, 8800, 8804, 8808, 8812,
2144 : 8818, 8819, 8825, 8835, 8839, 8850, 8856, 8865, 8871, 8872,
2145 : 8876, 8877, 8881, 8882, 8885, 8899, 8903, 8918, 8927, 8936,
2146 : 8949, 8950, 8955, 8956, 8973, 8984, 8995, 9006, 9017, 9028,
2147 : 9042, 9053, 9067, 9078, 9092, 9100, 9102, 9104, 9109, 9111,
2148 : 9116, 9117, 9122, 9141, 9151, 9152, 9156, 9160, 9172, 9184,
2149 : 9196, 9210, 9211, 9212, 9216, 9229, 9230, 9240, 9253, 9257,
2150 : 9261, 9265, 9272, 9294, 9307, 9320, 9335, 9336, 9339, 9340,
2151 : 9343, 9344, 9354, 9364, 9382, 9392, 9402, 9412, 9422, 9432,
2152 : 9442, 9452, 9462, 9472, 9482, 9492, 9502, 9513, 9524, 9534,
2153 : 9544, 9554, 9564, 9574, 9584, 9595, 9606, 9617, 9628, 9639,
2154 : 9650, 9661, 9672, 9683, 9694, 9705, 9716, 9728, 9740, 9752,
2155 : 9764, 9776, 9788, 9799, 9810, 9822, 9834, 9845, 9856, 9865,
2156 : 9875, 9885, 9895, 9905, 9915, 9925, 9935, 9945, 9955, 9970,
2157 : 9971, 9974, 9975, 9985, 9995, 10005, 10015, 10026, 10036, 10048,
2158 : 10049, 10059, 10069, 10079, 10089, 10099, 10109, 10119, 10129, 10139,
2159 : 10149, 10159, 10169, 10179, 10189, 10199, 10209, 10219, 10229, 10239,
2160 : 10249, 10259, 10269, 10279, 10289, 10299, 10309, 10319, 10338, 10348,
2161 : 10349, 10352, 10354, 10356, 10362, 10363, 10364, 10365, 10366, 10378,
2162 : 10394, 10403, 10412, 10421, 10430, 10439, 10448, 10457, 10466, 10475,
2163 : 10484, 10493, 10502, 10511, 10520, 10529, 10538, 10547, 10556, 10565,
2164 : 10574, 10583, 10592, 10601, 10629, 10637, 10646, 10672, 10681, 10688,
2165 : 10694, 10721, 10732, 10741, 10749, 10751, 10773, 10781, 10791, 10801,
2166 : 10820, 10839, 10849, 10859, 10869, 10880, 10891, 10902, 10913, 10924,
2167 : 10942, 10951, 10968, 10986, 10987, 10988, 10993, 10999, 11008, 11009,
2168 : 11010, 11011, 11012, 11016, 11017, 11020, 11021, 11022, 11023, 11027,
2169 : 11028, 11029, 11041, 11052, 11053, 11056, 11066, 11073, 11093, 11103,
2170 : 11112, 11122, 11132, 11141, 11150, 11159, 11168, 11177, 11186, 11195,
2171 : 11207, 11216, 11228, 11229, 11230, 11234, 11237, 11240, 11243, 11246,
2172 : 11253, 11255, 11257, 11262, 11264, 11268, 11269, 11270, 11282, 11296,
2173 : 11310, 11329, 11351, 11352, 11353, 11354, 11364, 11381, 11392, 11393,
2174 : 11397, 11398, 11402, 11406, 11410, 11428, 11429, 11430, 11431, 11432,
2175 : 11433, 11434, 11441, 11442, 11453, 11461, 11469, 11478, 11488, 11506,
2176 : 11515, 11524, 11533, 11545, 11549, 11560, 11572, 11590, 11597, 11614,
2177 : 11628, 11638, 11647, 11656, 11666, 11678, 11690, 11701, 11702, 11713,
2178 : 11724, 11736, 11748, 11760, 11772, 11782, 11795, 11796, 11810, 11834,
2179 : 11843, 11853, 11865, 11877, 11891, 11892, 11904, 11925, 11936, 11948,
2180 : 11960, 11964, 11971, 11972, 11976, 11983, 11984, 11985, 11989, 11990,
2181 : 11991, 11995, 11996, 12000, 12001, 12004, 12005, 12008, 12009, 12013,
2182 : 12014, 12018, 12025, 12027, 12032, 12033, 12046, 12054, 12065, 12073,
2183 : 12084, 12085, 12086, 12087, 12088, 12089, 12090, 12091, 12092, 12093,
2184 : 12103, 12114, 12115, 12119, 12120, 12121, 12122, 12123, 12133, 12141,
2185 : 12159, 12179, 12180, 12190, 12199, 12208, 12217, 12236, 12255, 12259,
2186 : 12267, 12273, 12280, 12286, 12293, 12302, 12303, 12307, 12309, 12314,
2187 : 12325, 12335, 12345, 12351, 12360, 12369, 12375, 12384, 12390, 12391,
2188 : 12395, 12396, 12400, 12412, 12413, 12424, 12440, 12441, 12452, 12463,
2189 : 12464, 12467, 12468, 12469, 12470, 12471, 12472, 12473, 12474, 12477,
2190 : 12478, 12482, 12483, 12484, 12495, 12515, 12516, 12520, 12525, 12549,
2191 : 12560, 12561, 12573, 12594, 12595, 12605, 12612, 12619, 12626, 12636,
2192 : 12649, 12650, 12654, 12655, 12659, 12660, 12664, 12677, 12690, 12699,
2193 : 12708, 12717, 12726, 12738, 12750, 12762, 12765, 12766, 12767, 12768,
2194 : 12769, 12770, 12773, 12774, 12775, 12823, 12824, 12828, 12842, 12857,
2195 : 12858, 12865, 12873, 12881, 12889, 12897, 12905, 12916, 12917, 12949,
2196 : 12966, 12984, 12985, 13005, 13009, 13013, 13028, 13035, 13042, 13052,
2197 : 13053, 13056, 13072, 13073, 13074, 13078, 13088, 13099, 13105, 13117,
2198 : 13130, 13136, 13137, 13141, 13153, 13161, 13166, 13171, 13176, 13181,
2199 : 13189, 13197, 13202, 13207, 13214, 13215, 13219, 13220, 13221, 13228,
2200 : 13229, 13233, 13234, 13238, 13239, 13243, 13244, 13248, 13252, 13253,
2201 : 13256, 13265, 13278, 13284, 13290, 13294, 13309, 13310, 13314, 13326,
2202 : 13342, 13354, 13366, 13378, 13393, 13396, 13401, 13402, 13410, 13430,
2203 : 13431, 13433, 13438, 13439, 13443, 13444, 13447, 13448, 13473, 13482,
2204 : 13492, 13493, 13497, 13498, 13499, 13500, 13501, 13505, 13518, 13525,
2205 : 13532, 13539, 13540, 13544, 13545, 13549, 13550, 13554, 13555, 13559,
2206 : 13571, 13572, 13573, 13574, 13578, 13579, 13589, 13597, 13616, 13617,
2207 : 13621, 13622, 13628, 13633, 13642, 13650, 13659, 13666, 13674, 13683,
2208 : 13692, 13696, 13701, 13708, 13737, 13741, 13755, 13776, 13798, 13811,
2209 : 13828, 13834, 13839, 13845, 13852, 13853, 13863, 13869, 13877, 13881,
2210 : 13885, 13892, 13900, 13905, 13906, 13907, 13908, 13912, 13913, 13928,
2211 : 13932, 13940, 13947, 13954, 13961, 13968, 13979, 13980, 13993, 13997,
2212 : 14005, 14019, 14033, 14034, 14049, 14060, 14073, 14078, 14079, 14082,
2213 : 14083, 14086, 14087, 14092, 14093, 14098, 14099, 14108, 14113, 14114,
2214 : 14118, 14122, 14128, 14153, 14164, 14178, 14179, 14183, 14197, 14254,
2215 : 14268, 14270, 14275, 14277, 14279, 14281, 14283, 14288, 14290, 14295,
2216 : 14303, 14314, 14342, 14343, 14347, 14349, 14354, 14363, 14383, 14403,
2217 : 14421, 14433, 14448, 14449, 14453, 14456, 14469, 14474, 14481, 14486,
2218 : 14492, 14497, 14506, 14508, 14511, 14515, 14516, 14517, 14518, 14519,
2219 : 14520, 14525, 14531, 14546, 14547, 14548, 14549, 14550, 14561, 14567,
2220 : 14575, 14576, 14582, 14587, 14592, 14597, 14602, 14607, 14612, 14617,
2221 : 14623, 14629, 14635, 14642, 14664, 14673, 14677, 14685, 14689, 14697,
2222 : 14709, 14730, 14734, 14740, 14744, 14757, 14765, 14775, 14777, 14779,
2223 : 14781, 14783, 14785, 14790, 14791, 14798, 14807, 14815, 14824, 14835,
2224 : 14843, 14844, 14845, 14849, 14851, 14853, 14855, 14857, 14859, 14861,
2225 : 14866, 14871, 14877, 14885, 14890, 14897, 14904, 14908, 14912, 14920,
2226 : 14955, 14956, 14958, 14967, 14974, 14990, 14992, 14994, 14996, 14998,
2227 : 15000, 15002, 15004, 15006, 15008, 15010, 15012, 15014, 15016, 15019,
2228 : 15021, 15024, 15026, 15028, 15030, 15033, 15038, 15047, 15052, 15061,
2229 : 15066, 15075, 15080, 15090, 15099, 15108, 15117, 15136, 15145, 15154,
2230 : 15163, 15172, 15189, 15198, 15207, 15216, 15225, 15234, 15243, 15247,
2231 : 15251, 15259, 15267, 15275, 15283, 15304, 15327, 15339, 15346, 15362,
2232 : 15367, 15373, 15380, 15387, 15395, 15403, 15420, 15439, 15465, 15467,
2233 : 15469, 15471, 15473, 15475, 15477, 15479, 15481, 15483, 15485, 15487,
2234 : 15489, 15491, 15493, 15495, 15497, 15499, 15501, 15505, 15509, 15514,
2235 : 15530, 15531, 15532, 15549, 15562, 15564, 15566, 15578, 15603, 15615,
2236 : 15627, 15635, 15646, 15657, 15667, 15673, 15682, 15692, 15702, 15715,
2237 : 15725, 15756, 15792, 15802, 15813, 15814, 15815, 15822, 15829, 15833,
2238 : 15837, 15841, 15845, 15849, 15853, 15857, 15861, 15865, 15869, 15873,
2239 : 15877, 15884, 15888, 15892, 15896, 15898, 15905, 15912, 15919, 15926,
2240 : 15937, 15951, 15961, 15972, 15988, 15998, 16005, 16012, 16019, 16023,
2241 : 16031, 16040, 16049, 16053, 16057, 16061, 16065, 16069, 16078, 16082,
2242 : 16092, 16096, 16100, 16105, 16116, 16122, 16136, 16147, 16161, 16177,
2243 : 16189, 16199, 16208, 16217, 16225, 16247, 16263, 16287, 16289, 16293,
2244 : 16295, 16297, 16300, 16303, 16306, 16307, 16310, 16318, 16328, 16329,
2245 : 16332, 16333, 16334, 16337, 16338, 16339, 16344, 16348, 16352, 16356,
2246 : 16363, 16364, 16372, 16373, 16377, 16378, 16386, 16387, 16391, 16392,
2247 : 16397, 16406, 16408, 16423, 16426, 16454, 16455, 16458, 16459, 16467,
2248 : 16475, 16483, 16492, 16502, 16520, 16566, 16575, 16584, 16593, 16602,
2249 : 16614, 16615, 16616, 16617, 16618, 16632, 16633, 16634, 16637, 16638,
2250 : 16641, 16644, 16645, 16646, 16649, 16650, 16653, 16654, 16655, 16656,
2251 : 16657, 16658, 16659, 16660, 16661, 16662, 16663, 16664, 16667, 16669,
2252 : 16674, 16676, 16681, 16683, 16685, 16687, 16689, 16691, 16703, 16707,
2253 : 16714, 16718, 16724, 16728, 16738, 16750, 16751, 16754, 16755, 16758,
2254 : 16762, 16766, 16772, 16773, 16778, 16788, 16789, 16790, 16791, 16792,
2255 : 16793, 16794, 16795, 16799, 16800, 16801, 16802, 16807, 16812, 16821,
2256 : 16842, 16846, 16851, 16862, 16879, 16885, 16886, 16887, 16890, 16898,
2257 : 16908, 16923, 16924, 16928, 16940, 16941, 16944, 16945, 16948, 16952,
2258 : 16959, 16963, 16967, 16976, 16988, 16989, 16993, 16994, 16998, 16999,
2259 : 17002, 17003, 17008, 17009, 17013, 17014, 17018, 17030, 17031, 17032,
2260 : 17033, 17034, 17035, 17036, 17037, 17038, 17042, 17044, 17049, 17050,
2261 : 17051, 17052, 17053, 17054, 17055, 17057, 17061, 17063, 17065, 17068,
2262 : 17072, 17075, 17079, 17088, 17106, 17113, 17118, 17124, 17125, 17126,
2263 : 17127, 17128, 17132, 17141, 17155, 17156, 17157, 17158, 17159, 17168,
2264 : 17169, 17170, 17171, 17172, 17176, 17178, 17188, 17191, 17197, 17198,
2265 : 17199, 17203, 17204, 17205, 17209, 17210, 17214, 17232, 17252, 17253,
2266 : 17262, 17263, 17267, 17268, 17271, 17279, 17287, 17295, 17318, 17319,
2267 : 17330, 17334, 17340, 17342, 17347, 17349, 17351, 17361, 17363, 17374,
2268 : 17378, 17382, 17386, 17390, 17399, 17407, 17439, 17443, 17450, 17458,
2269 : 17462, 17466, 17472, 17473, 17475, 17476, 17477, 17481, 17522, 17550,
2270 : 17554, 17558, 17564, 17566, 17580, 17617, 17630, 17631, 17634, 17635,
2271 : 17652, 17653, 17654, 17659, 17660, 17661, 17666, 17667, 17668, 17669,
2272 : 17675, 17676, 17677, 17678, 17679, 17685, 17686, 17706, 17707, 17708,
2273 : 17709, 17710, 17711, 17712, 17713, 17714, 17715, 17716, 17717, 17718,
2274 : 17719, 17720, 17721, 17722, 17723, 17724, 17725, 17726, 17727, 17728,
2275 : 17729, 17730, 17731, 17732, 17733, 17734, 17735, 17736, 17737, 17738,
2276 : 17739, 17740, 17741, 17742, 17743, 17744, 17745, 17746, 17747, 17748,
2277 : 17749, 17750, 17751, 17752, 17753, 17754, 17755, 17756, 17757, 17758,
2278 : 17759, 17760, 17761, 17762, 17763, 17764, 17765, 17766, 17767, 17768,
2279 : 17769, 17770, 17771, 17772, 17773, 17774, 17775, 17776, 17777, 17778,
2280 : 17779, 17780, 17781, 17782, 17783, 17784, 17785, 17786, 17787, 17788,
2281 : 17789, 17790, 17791, 17792, 17793, 17794, 17795, 17796, 17797, 17798,
2282 : 17799, 17800, 17801, 17802, 17803, 17804, 17805, 17806, 17807, 17808,
2283 : 17809, 17810, 17811, 17812, 17813, 17814, 17815, 17816, 17817, 17818,
2284 : 17819, 17820, 17821, 17822, 17823, 17824, 17825, 17826, 17827, 17828,
2285 : 17829, 17830, 17831, 17832, 17833, 17834, 17835, 17836, 17837, 17838,
2286 : 17839, 17840, 17841, 17842, 17843, 17844, 17845, 17846, 17847, 17848,
2287 : 17849, 17850, 17851, 17852, 17853, 17854, 17855, 17856, 17857, 17858,
2288 : 17859, 17860, 17861, 17862, 17863, 17864, 17865, 17866, 17867, 17868,
2289 : 17869, 17870, 17871, 17872, 17873, 17874, 17875, 17876, 17877, 17878,
2290 : 17879, 17880, 17881, 17882, 17883, 17884, 17885, 17886, 17887, 17888,
2291 : 17889, 17890, 17891, 17892, 17893, 17894, 17895, 17896, 17897, 17898,
2292 : 17899, 17900, 17901, 17902, 17903, 17904, 17905, 17906, 17907, 17908,
2293 : 17909, 17910, 17911, 17912, 17913, 17914, 17915, 17916, 17917, 17918,
2294 : 17919, 17920, 17921, 17922, 17923, 17924, 17925, 17926, 17927, 17928,
2295 : 17929, 17930, 17931, 17932, 17933, 17934, 17935, 17936, 17937, 17938,
2296 : 17939, 17940, 17941, 17942, 17943, 17944, 17945, 17946, 17947, 17948,
2297 : 17949, 17950, 17951, 17952, 17953, 17954, 17955, 17956, 17957, 17958,
2298 : 17959, 17960, 17961, 17962, 17963, 17964, 17965, 17966, 17967, 17968,
2299 : 17969, 17970, 17971, 17972, 17973, 17974, 17975, 17976, 17977, 17978,
2300 : 17979, 17980, 17981, 17982, 17983, 17984, 17985, 17986, 17987, 17988,
2301 : 17989, 17990, 17991, 17992, 17993, 17994, 17995, 17996, 17997, 17998,
2302 : 17999, 18000, 18001, 18002, 18003, 18004, 18005, 18006, 18007, 18008,
2303 : 18009, 18010, 18011, 18012, 18013, 18014, 18015, 18016, 18017, 18018,
2304 : 18019, 18020, 18021, 18022, 18023, 18024, 18025, 18026, 18027, 18028,
2305 : 18029, 18030, 18031, 18032, 18033, 18034, 18035, 18049, 18050, 18051,
2306 : 18052, 18053, 18054, 18055, 18056, 18057, 18058, 18059, 18060, 18061,
2307 : 18062, 18063, 18064, 18065, 18066, 18067, 18068, 18069, 18070, 18071,
2308 : 18072, 18073, 18074, 18075, 18076, 18077, 18078, 18079, 18080, 18081,
2309 : 18082, 18083, 18084, 18085, 18086, 18087, 18088, 18089, 18090, 18091,
2310 : 18092, 18093, 18094, 18095, 18096, 18097, 18098, 18099, 18100, 18101,
2311 : 18102, 18103, 18104, 18105, 18106, 18107, 18108, 18109, 18110, 18111,
2312 : 18125, 18126, 18127, 18128, 18129, 18130, 18131, 18132, 18133, 18134,
2313 : 18135, 18136, 18137, 18138, 18139, 18140, 18141, 18142, 18143, 18144,
2314 : 18145, 18146, 18147, 18157, 18158, 18159, 18160, 18161, 18162, 18163,
2315 : 18164, 18165, 18166, 18167, 18168, 18169, 18170, 18171, 18172, 18173,
2316 : 18174, 18175, 18176, 18177, 18178, 18179, 18180, 18181, 18182, 18183,
2317 : 18184, 18185, 18186, 18187, 18188, 18189, 18190, 18191, 18192, 18193,
2318 : 18194, 18195, 18196, 18197, 18198, 18199, 18200, 18201, 18202, 18203,
2319 : 18204, 18205, 18206, 18207, 18208, 18209, 18210, 18211, 18212, 18213,
2320 : 18214, 18215, 18216, 18217, 18218, 18219, 18220, 18221, 18222, 18223,
2321 : 18224, 18225, 18226, 18227, 18228, 18229, 18230, 18231, 18232, 18233,
2322 : 18234, 18247, 18248, 18249, 18250, 18251, 18252, 18253, 18254, 18255,
2323 : 18256, 18257, 18258, 18259, 18260, 18261, 18262, 18263, 18264, 18265,
2324 : 18266, 18267, 18268, 18269, 18270, 18271, 18272, 18273, 18274, 18275,
2325 : 18276, 18277, 18278, 18279, 18280, 18281, 18282, 18283, 18284, 18285,
2326 : 18286, 18287, 18288, 18289, 18290, 18291, 18292, 18293, 18294, 18295,
2327 : 18296, 18297, 18298, 18299, 18300, 18301, 18302, 18303, 18304, 18305,
2328 : 18306, 18307, 18308, 18309, 18310, 18311, 18312, 18313, 18314, 18315,
2329 : 18316, 18317, 18318, 18319, 18320, 18321, 18322, 18323, 18324, 18325,
2330 : 18326, 18327, 18328, 18329, 18330, 18331, 18332, 18333, 18334, 18335,
2331 : 18336, 18337, 18338, 18339, 18340, 18341, 18342, 18343, 18344, 18345,
2332 : 18346, 18347, 18348, 18349, 18350, 18351, 18352, 18353, 18354, 18355,
2333 : 18356, 18357, 18358, 18359, 18360, 18361, 18362, 18363, 18364, 18365,
2334 : 18366, 18367, 18368, 18369, 18370, 18371, 18372, 18373, 18374, 18375,
2335 : 18376, 18377, 18378, 18379, 18380, 18381, 18382, 18383, 18384, 18385,
2336 : 18386, 18387, 18388, 18389, 18390, 18391, 18392, 18393, 18394, 18395,
2337 : 18396, 18397, 18398, 18399, 18400, 18401, 18402, 18403, 18404, 18405,
2338 : 18406, 18407, 18408, 18409, 18410, 18411, 18412, 18413, 18414, 18415,
2339 : 18416, 18417, 18418, 18419, 18420, 18421, 18422, 18423, 18424, 18425,
2340 : 18426, 18427, 18428, 18429, 18430, 18431, 18432, 18433, 18434, 18435,
2341 : 18436, 18437, 18438, 18439, 18440, 18441, 18442, 18443, 18444, 18445,
2342 : 18446, 18447, 18448, 18449, 18450, 18451, 18452, 18453, 18454, 18455,
2343 : 18456, 18457, 18458, 18459, 18460, 18461, 18462, 18463, 18464, 18465,
2344 : 18466, 18467, 18468, 18469, 18470, 18471, 18472, 18473, 18474, 18475,
2345 : 18476, 18477, 18478, 18479, 18480, 18481, 18482, 18483, 18484, 18485,
2346 : 18486, 18487, 18488, 18489, 18490, 18491, 18492, 18493, 18494, 18495,
2347 : 18496, 18497, 18498, 18499, 18500, 18501, 18502, 18503, 18504, 18505,
2348 : 18506, 18507, 18508, 18509, 18510, 18511, 18512, 18513, 18514, 18515,
2349 : 18516, 18517, 18518, 18519, 18520, 18521, 18522, 18523, 18524, 18525,
2350 : 18526, 18527, 18528, 18529, 18530, 18531, 18532, 18533, 18534, 18535,
2351 : 18536, 18537, 18538, 18539, 18540, 18541, 18542, 18543, 18544, 18545,
2352 : 18546, 18547, 18548, 18549, 18550, 18551, 18552, 18553, 18554, 18555,
2353 : 18556, 18557, 18558, 18559, 18560, 18561, 18562, 18563, 18564, 18565,
2354 : 18566, 18567, 18568, 18569, 18570, 18571, 18572, 18573, 18574, 18575,
2355 : 18576, 18577, 18578, 18579, 18580, 18581, 18582, 18583, 18584, 18585,
2356 : 18586, 18587, 18588, 18589, 18590, 18591, 18592, 18593, 18594, 18595,
2357 : 18596, 18597, 18598, 18599, 18600, 18601, 18602, 18603, 18604, 18605,
2358 : 18606, 18607, 18608, 18609, 18610, 18611, 18612, 18613, 18614, 18615,
2359 : 18616, 18617, 18618, 18619, 18620, 18621, 18622, 18623, 18624, 18625,
2360 : 18626, 18627, 18628, 18629, 18630, 18631, 18632, 18633, 18634, 18635,
2361 : 18636, 18637, 18638, 18639, 18640, 18641, 18642, 18643, 18644, 18645,
2362 : 18646, 18647, 18648, 18649, 18650, 18651, 18652, 18653, 18654, 18655,
2363 : 18656, 18657, 18658, 18659, 18660, 18661, 18662, 18663, 18664, 18665,
2364 : 18666, 18667, 18668, 18669, 18670, 18671, 18672, 18673, 18674, 18675,
2365 : 18676, 18677, 18678, 18679, 18680, 18681, 18682, 18683, 18684, 18685,
2366 : 18686, 18687, 18688, 18689, 18690, 18691, 18692, 18693, 18694, 18695,
2367 : 18696, 18697, 18698, 18699, 18700, 18701
2368 : };
2369 : #endif
2370 :
2371 : /** Accessing symbol of state STATE. */
2372 : #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
2373 :
2374 : #if YYDEBUG || 0
2375 : /* The user-facing name of the symbol whose (internal) number is
2376 : YYSYMBOL. No bounds checking. */
2377 : static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
2378 :
2379 : /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
2380 : First, the terminals, then, starting at YYNTOKENS, nonterminals. */
2381 : static const char *const yytname[] =
2382 : {
2383 : "\"end of file\"", "error", "\"invalid token\"", "IDENT", "UIDENT",
2384 : "FCONST", "SCONST", "USCONST", "BCONST", "XCONST", "Op", "ICONST",
2385 : "PARAM", "TYPECAST", "DOT_DOT", "COLON_EQUALS", "EQUALS_GREATER",
2386 : "LESS_EQUALS", "GREATER_EQUALS", "NOT_EQUALS", "ABORT_P", "ABSENT",
2387 : "ABSOLUTE_P", "ACCESS", "ACTION", "ADD_P", "ADMIN", "AFTER", "AGGREGATE",
2388 : "ALL", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", "AND", "ANY",
2389 : "ARRAY", "AS", "ASC", "ASENSITIVE", "ASSERTION", "ASSIGNMENT",
2390 : "ASYMMETRIC", "ATOMIC", "AT", "ATTACH", "ATTRIBUTE", "AUTHORIZATION",
2391 : "BACKWARD", "BEFORE", "BEGIN_P", "BETWEEN", "BIGINT", "BINARY", "BIT",
2392 : "BOOLEAN_P", "BOTH", "BREADTH", "BY", "CACHE", "CALL", "CALLED",
2393 : "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG_P", "CHAIN", "CHAR_P",
2394 : "CHARACTER", "CHARACTERISTICS", "CHECK", "CHECKPOINT", "CLASS", "CLOSE",
2395 : "CLUSTER", "COALESCE", "COLLATE", "COLLATION", "COLUMN", "COLUMNS",
2396 : "COMMENT", "COMMENTS", "COMMIT", "COMMITTED", "COMPRESSION",
2397 : "CONCURRENTLY", "CONDITIONAL", "CONFIGURATION", "CONFLICT", "CONNECTION",
2398 : "CONSTRAINT", "CONSTRAINTS", "CONTENT_P", "CONTINUE_P", "CONVERSION_P",
2399 : "COPY", "COST", "CREATE", "CROSS", "CSV", "CUBE", "CURRENT_P",
2400 : "CURRENT_CATALOG", "CURRENT_DATE", "CURRENT_ROLE", "CURRENT_SCHEMA",
2401 : "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", "CURSOR", "CYCLE",
2402 : "DATA_P", "DATABASE", "DAY_P", "DEALLOCATE", "DEC", "DECIMAL_P",
2403 : "DECLARE", "DEFAULT", "DEFAULTS", "DEFERRABLE", "DEFERRED", "DEFINER",
2404 : "DELETE_P", "DELIMITER", "DELIMITERS", "DEPENDS", "DEPTH", "DESC",
2405 : "DETACH", "DICTIONARY", "DISABLE_P", "DISCARD", "DISTINCT", "DO",
2406 : "DOCUMENT_P", "DOMAIN_P", "DOUBLE_P", "DROP", "EACH", "ELSE", "EMPTY_P",
2407 : "ENABLE_P", "ENCODING", "ENCRYPTED", "END_P", "ENFORCED", "ENUM_P",
2408 : "ERROR_P", "ESCAPE", "EVENT", "EXCEPT", "EXCLUDE", "EXCLUDING",
2409 : "EXCLUSIVE", "EXECUTE", "EXISTS", "EXPLAIN", "EXPRESSION", "EXTENSION",
2410 : "EXTERNAL", "EXTRACT", "FALSE_P", "FAMILY", "FETCH", "FILTER",
2411 : "FINALIZE", "FIRST_P", "FLOAT_P", "FOLLOWING", "FOR", "FORCE", "FOREIGN",
2412 : "FORMAT", "FORWARD", "FREEZE", "FROM", "FULL", "FUNCTION", "FUNCTIONS",
2413 : "GENERATED", "GLOBAL", "GRANT", "GRANTED", "GREATEST", "GROUP_P",
2414 : "GROUPING", "GROUPS", "HANDLER", "HAVING", "HEADER_P", "HOLD", "HOUR_P",
2415 : "IDENTITY_P", "IF_P", "ILIKE", "IMMEDIATE", "IMMUTABLE", "IMPLICIT_P",
2416 : "IMPORT_P", "IN_P", "INCLUDE", "INCLUDING", "INCREMENT", "INDENT",
2417 : "INDEX", "INDEXES", "INHERIT", "INHERITS", "INITIALLY", "INLINE_P",
2418 : "INNER_P", "INOUT", "INPUT_P", "INSENSITIVE", "INSERT", "INSTEAD",
2419 : "INT_P", "INTEGER", "INTERSECT", "INTERVAL", "INTO", "INVOKER", "IS",
2420 : "ISNULL", "ISOLATION", "JOIN", "JSON", "JSON_ARRAY", "JSON_ARRAYAGG",
2421 : "JSON_EXISTS", "JSON_OBJECT", "JSON_OBJECTAGG", "JSON_QUERY",
2422 : "JSON_SCALAR", "JSON_SERIALIZE", "JSON_TABLE", "JSON_VALUE", "KEEP",
2423 : "KEY", "KEYS", "LABEL", "LANGUAGE", "LARGE_P", "LAST_P", "LATERAL_P",
2424 : "LEADING", "LEAKPROOF", "LEAST", "LEFT", "LEVEL", "LIKE", "LIMIT",
2425 : "LISTEN", "LOAD", "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", "LOCATION",
2426 : "LOCK_P", "LOCKED", "LOGGED", "MAPPING", "MATCH", "MATCHED",
2427 : "MATERIALIZED", "MAXVALUE", "MERGE", "MERGE_ACTION", "METHOD",
2428 : "MINUTE_P", "MINVALUE", "MODE", "MONTH_P", "MOVE", "NAME_P", "NAMES",
2429 : "NATIONAL", "NATURAL", "NCHAR", "NESTED", "NEW", "NEXT", "NFC", "NFD",
2430 : "NFKC", "NFKD", "NO", "NONE", "NORMALIZE", "NORMALIZED", "NOT",
2431 : "NOTHING", "NOTIFY", "NOTNULL", "NOWAIT", "NULL_P", "NULLIF", "NULLS_P",
2432 : "NUMERIC", "OBJECT_P", "OBJECTS_P", "OF", "OFF", "OFFSET", "OIDS", "OLD",
2433 : "OMIT", "ON", "ONLY", "OPERATOR", "OPTION", "OPTIONS", "OR", "ORDER",
2434 : "ORDINALITY", "OTHERS", "OUT_P", "OUTER_P", "OVER", "OVERLAPS",
2435 : "OVERLAY", "OVERRIDING", "OWNED", "OWNER", "PARALLEL", "PARAMETER",
2436 : "PARSER", "PARTIAL", "PARTITION", "PASSING", "PASSWORD", "PATH",
2437 : "PERIOD", "PLACING", "PLAN", "PLANS", "POLICY", "POSITION", "PRECEDING",
2438 : "PRECISION", "PRESERVE", "PREPARE", "PREPARED", "PRIMARY", "PRIOR",
2439 : "PRIVILEGES", "PROCEDURAL", "PROCEDURE", "PROCEDURES", "PROGRAM",
2440 : "PUBLICATION", "QUOTE", "QUOTES", "RANGE", "READ", "REAL", "REASSIGN",
2441 : "RECURSIVE", "REF_P", "REFERENCES", "REFERENCING", "REFRESH", "REINDEX",
2442 : "RELATIVE_P", "RELEASE", "RENAME", "REPEATABLE", "REPLACE", "REPLICA",
2443 : "RESET", "RESTART", "RESTRICT", "RETURN", "RETURNING", "RETURNS",
2444 : "REVOKE", "RIGHT", "ROLE", "ROLLBACK", "ROLLUP", "ROUTINE", "ROUTINES",
2445 : "ROW", "ROWS", "RULE", "SAVEPOINT", "SCALAR", "SCHEMA", "SCHEMAS",
2446 : "SCROLL", "SEARCH", "SECOND_P", "SECURITY", "SELECT", "SEQUENCE",
2447 : "SEQUENCES", "SERIALIZABLE", "SERVER", "SESSION", "SESSION_USER", "SET",
2448 : "SETS", "SETOF", "SHARE", "SHOW", "SIMILAR", "SIMPLE", "SKIP",
2449 : "SMALLINT", "SNAPSHOT", "SOME", "SOURCE", "SQL_P", "STABLE",
2450 : "STANDALONE_P", "START", "STATEMENT", "STATISTICS", "STDIN", "STDOUT",
2451 : "STORAGE", "STORED", "STRICT_P", "STRING_P", "STRIP_P", "SUBSCRIPTION",
2452 : "SUBSTRING", "SUPPORT", "SYMMETRIC", "SYSID", "SYSTEM_P", "SYSTEM_USER",
2453 : "TABLE", "TABLES", "TABLESAMPLE", "TABLESPACE", "TARGET", "TEMP",
2454 : "TEMPLATE", "TEMPORARY", "TEXT_P", "THEN", "TIES", "TIME", "TIMESTAMP",
2455 : "TO", "TRAILING", "TRANSACTION", "TRANSFORM", "TREAT", "TRIGGER", "TRIM",
2456 : "TRUE_P", "TRUNCATE", "TRUSTED", "TYPE_P", "TYPES_P", "UESCAPE",
2457 : "UNBOUNDED", "UNCONDITIONAL", "UNCOMMITTED", "UNENCRYPTED", "UNION",
2458 : "UNIQUE", "UNKNOWN", "UNLISTEN", "UNLOGGED", "UNTIL", "UPDATE", "USER",
2459 : "USING", "VACUUM", "VALID", "VALIDATE", "VALIDATOR", "VALUE_P", "VALUES",
2460 : "VARCHAR", "VARIADIC", "VARYING", "VERBOSE", "VERSION_P", "VIEW",
2461 : "VIEWS", "VIRTUAL", "VOLATILE", "WHEN", "WHERE", "WHITESPACE_P",
2462 : "WINDOW", "WITH", "WITHIN", "WITHOUT", "WORK", "WRAPPER", "WRITE",
2463 : "XML_P", "XMLATTRIBUTES", "XMLCONCAT", "XMLELEMENT", "XMLEXISTS",
2464 : "XMLFOREST", "XMLNAMESPACES", "XMLPARSE", "XMLPI", "XMLROOT",
2465 : "XMLSERIALIZE", "XMLTABLE", "YEAR_P", "YES_P", "ZONE", "FORMAT_LA",
2466 : "NOT_LA", "NULLS_LA", "WITH_LA", "WITHOUT_LA", "MODE_TYPE_NAME",
2467 : "MODE_PLPGSQL_EXPR", "MODE_PLPGSQL_ASSIGN1", "MODE_PLPGSQL_ASSIGN2",
2468 : "MODE_PLPGSQL_ASSIGN3", "'<'", "'>'", "'='", "'+'", "'-'", "'*'", "'/'",
2469 : "'%'", "'^'", "UMINUS", "'['", "']'", "'('", "')'", "'.'", "';'", "','",
2470 : "':'", "$accept", "parse_toplevel", "stmtmulti", "toplevel_stmt", "stmt",
2471 : "opt_single_name", "opt_qualified_name", "opt_concurrently",
2472 : "opt_drop_behavior", "CallStmt", "CreateRoleStmt", "opt_with",
2473 : "OptRoleList", "AlterOptRoleList", "AlterOptRoleElem",
2474 : "CreateOptRoleElem", "CreateUserStmt", "AlterRoleStmt",
2475 : "opt_in_database", "AlterRoleSetStmt", "DropRoleStmt", "CreateGroupStmt",
2476 : "AlterGroupStmt", "add_drop", "CreateSchemaStmt", "OptSchemaEltList",
2477 : "schema_stmt", "VariableSetStmt", "set_rest", "generic_set",
2478 : "set_rest_more", "var_name", "var_list", "var_value", "iso_level",
2479 : "opt_boolean_or_string", "zone_value", "opt_encoding",
2480 : "NonReservedWord_or_Sconst", "VariableResetStmt", "reset_rest",
2481 : "generic_reset", "SetResetClause", "FunctionSetResetClause",
2482 : "VariableShowStmt", "ConstraintsSetStmt", "constraints_set_list",
2483 : "constraints_set_mode", "CheckPointStmt", "DiscardStmt",
2484 : "AlterTableStmt", "alter_table_cmds", "partition_cmd",
2485 : "index_partition_cmd", "alter_table_cmd", "alter_column_default",
2486 : "opt_collate_clause", "alter_using", "replica_identity", "reloptions",
2487 : "opt_reloptions", "reloption_list", "reloption_elem",
2488 : "alter_identity_column_option_list", "alter_identity_column_option",
2489 : "set_statistics_value", "set_access_method_name", "PartitionBoundSpec",
2490 : "hash_partbound_elem", "hash_partbound", "AlterCompositeTypeStmt",
2491 : "alter_type_cmds", "alter_type_cmd", "ClosePortalStmt", "CopyStmt",
2492 : "copy_from", "opt_program", "copy_file_name", "copy_options",
2493 : "copy_opt_list", "copy_opt_item", "opt_binary", "copy_delimiter",
2494 : "opt_using", "copy_generic_opt_list", "copy_generic_opt_elem",
2495 : "copy_generic_opt_arg", "copy_generic_opt_arg_list",
2496 : "copy_generic_opt_arg_list_item", "CreateStmt", "OptTemp",
2497 : "OptTableElementList", "OptTypedTableElementList", "TableElementList",
2498 : "TypedTableElementList", "TableElement", "TypedTableElement",
2499 : "columnDef", "columnOptions", "column_compression",
2500 : "opt_column_compression", "column_storage", "opt_column_storage",
2501 : "ColQualList", "ColConstraint", "ColConstraintElem",
2502 : "opt_unique_null_treatment", "generated_when", "opt_virtual_or_stored",
2503 : "ConstraintAttr", "TableLikeClause", "TableLikeOptionList",
2504 : "TableLikeOption", "TableConstraint", "ConstraintElem",
2505 : "DomainConstraint", "DomainConstraintElem", "opt_no_inherit",
2506 : "opt_without_overlaps", "opt_column_list", "columnList",
2507 : "optionalPeriodName", "opt_column_and_period_list", "columnElem",
2508 : "opt_c_include", "key_match", "ExclusionConstraintList",
2509 : "ExclusionConstraintElem", "OptWhereClause", "key_actions", "key_update",
2510 : "key_delete", "key_action", "OptInherit", "OptPartitionSpec",
2511 : "PartitionSpec", "part_params", "part_elem",
2512 : "table_access_method_clause", "OptWith", "OnCommitOption",
2513 : "OptTableSpace", "OptConsTableSpace", "ExistingIndex", "CreateStatsStmt",
2514 : "stats_params", "stats_param", "AlterStatsStmt", "CreateAsStmt",
2515 : "create_as_target", "opt_with_data", "CreateMatViewStmt",
2516 : "create_mv_target", "OptNoLog", "RefreshMatViewStmt", "CreateSeqStmt",
2517 : "AlterSeqStmt", "OptSeqOptList", "OptParenthesizedSeqOptList",
2518 : "SeqOptList", "SeqOptElem", "opt_by", "NumericOnly", "NumericOnly_list",
2519 : "CreatePLangStmt", "opt_trusted", "handler_name", "opt_inline_handler",
2520 : "validator_clause", "opt_validator", "opt_procedural",
2521 : "CreateTableSpaceStmt", "OptTableSpaceOwner", "DropTableSpaceStmt",
2522 : "CreateExtensionStmt", "create_extension_opt_list",
2523 : "create_extension_opt_item", "AlterExtensionStmt",
2524 : "alter_extension_opt_list", "alter_extension_opt_item",
2525 : "AlterExtensionContentsStmt", "CreateFdwStmt", "fdw_option",
2526 : "fdw_options", "opt_fdw_options", "AlterFdwStmt",
2527 : "create_generic_options", "generic_option_list", "alter_generic_options",
2528 : "alter_generic_option_list", "alter_generic_option_elem",
2529 : "generic_option_elem", "generic_option_name", "generic_option_arg",
2530 : "CreateForeignServerStmt", "opt_type", "foreign_server_version",
2531 : "opt_foreign_server_version", "AlterForeignServerStmt",
2532 : "CreateForeignTableStmt", "ImportForeignSchemaStmt",
2533 : "import_qualification_type", "import_qualification",
2534 : "CreateUserMappingStmt", "auth_ident", "DropUserMappingStmt",
2535 : "AlterUserMappingStmt", "CreatePolicyStmt", "AlterPolicyStmt",
2536 : "RowSecurityOptionalExpr", "RowSecurityOptionalWithCheck",
2537 : "RowSecurityDefaultToRole", "RowSecurityOptionalToRole",
2538 : "RowSecurityDefaultPermissive", "RowSecurityDefaultForCmd",
2539 : "row_security_cmd", "CreateAmStmt", "am_type", "CreateTrigStmt",
2540 : "TriggerActionTime", "TriggerEvents", "TriggerOneEvent",
2541 : "TriggerReferencing", "TriggerTransitions", "TriggerTransition",
2542 : "TransitionOldOrNew", "TransitionRowOrTable", "TransitionRelName",
2543 : "TriggerForSpec", "TriggerForOptEach", "TriggerForType", "TriggerWhen",
2544 : "FUNCTION_or_PROCEDURE", "TriggerFuncArgs", "TriggerFuncArg",
2545 : "OptConstrFromTable", "ConstraintAttributeSpec",
2546 : "ConstraintAttributeElem", "CreateEventTrigStmt",
2547 : "event_trigger_when_list", "event_trigger_when_item",
2548 : "event_trigger_value_list", "AlterEventTrigStmt", "enable_trigger",
2549 : "CreateAssertionStmt", "DefineStmt", "definition", "def_list",
2550 : "def_elem", "def_arg", "old_aggr_definition", "old_aggr_list",
2551 : "old_aggr_elem", "opt_enum_val_list", "enum_val_list", "AlterEnumStmt",
2552 : "opt_if_not_exists", "CreateOpClassStmt", "opclass_item_list",
2553 : "opclass_item", "opt_default", "opt_opfamily", "opclass_purpose",
2554 : "CreateOpFamilyStmt", "AlterOpFamilyStmt", "opclass_drop_list",
2555 : "opclass_drop", "DropOpClassStmt", "DropOpFamilyStmt", "DropOwnedStmt",
2556 : "ReassignOwnedStmt", "DropStmt", "object_type_any_name",
2557 : "object_type_name", "drop_type_name", "object_type_name_on_any_name",
2558 : "any_name_list", "any_name", "attrs", "type_name_list", "TruncateStmt",
2559 : "opt_restart_seqs", "CommentStmt", "comment_text", "SecLabelStmt",
2560 : "opt_provider", "security_label", "FetchStmt", "fetch_args", "from_in",
2561 : "opt_from_in", "GrantStmt", "RevokeStmt", "privileges", "privilege_list",
2562 : "privilege", "parameter_name_list", "parameter_name", "privilege_target",
2563 : "grantee_list", "grantee", "opt_grant_grant_option", "GrantRoleStmt",
2564 : "RevokeRoleStmt", "grant_role_opt_list", "grant_role_opt",
2565 : "grant_role_opt_value", "opt_granted_by", "AlterDefaultPrivilegesStmt",
2566 : "DefACLOptionList", "DefACLOption", "DefACLAction",
2567 : "defacl_privilege_target", "IndexStmt", "opt_unique",
2568 : "access_method_clause", "index_params", "index_elem_options",
2569 : "index_elem", "opt_include", "index_including_params", "opt_collate",
2570 : "opt_asc_desc", "opt_nulls_order", "CreateFunctionStmt",
2571 : "opt_or_replace", "func_args", "func_args_list",
2572 : "function_with_argtypes_list", "function_with_argtypes",
2573 : "func_args_with_defaults", "func_args_with_defaults_list", "func_arg",
2574 : "arg_class", "param_name", "func_return", "func_type",
2575 : "func_arg_with_default", "aggr_arg", "aggr_args", "aggr_args_list",
2576 : "aggregate_with_argtypes", "aggregate_with_argtypes_list",
2577 : "opt_createfunc_opt_list", "createfunc_opt_list", "common_func_opt_item",
2578 : "createfunc_opt_item", "func_as", "ReturnStmt", "opt_routine_body",
2579 : "routine_body_stmt_list", "routine_body_stmt", "transform_type_list",
2580 : "opt_definition", "table_func_column", "table_func_column_list",
2581 : "AlterFunctionStmt", "alterfunc_opt_list", "opt_restrict",
2582 : "RemoveFuncStmt", "RemoveAggrStmt", "RemoveOperStmt", "oper_argtypes",
2583 : "any_operator", "operator_with_argtypes_list", "operator_with_argtypes",
2584 : "DoStmt", "dostmt_opt_list", "dostmt_opt_item", "CreateCastStmt",
2585 : "cast_context", "DropCastStmt", "opt_if_exists", "CreateTransformStmt",
2586 : "transform_element_list", "DropTransformStmt", "ReindexStmt",
2587 : "reindex_target_relation", "reindex_target_all",
2588 : "opt_reindex_option_list", "AlterTblSpcStmt", "RenameStmt", "opt_column",
2589 : "opt_set_data", "AlterObjectDependsStmt", "opt_no",
2590 : "AlterObjectSchemaStmt", "AlterOperatorStmt", "operator_def_list",
2591 : "operator_def_elem", "operator_def_arg", "AlterTypeStmt",
2592 : "AlterOwnerStmt", "CreatePublicationStmt", "PublicationObjSpec",
2593 : "pub_obj_list", "AlterPublicationStmt", "CreateSubscriptionStmt",
2594 : "AlterSubscriptionStmt", "DropSubscriptionStmt", "RuleStmt",
2595 : "RuleActionList", "RuleActionMulti", "RuleActionStmt",
2596 : "RuleActionStmtOrEmpty", "event", "opt_instead", "NotifyStmt",
2597 : "notify_payload", "ListenStmt", "UnlistenStmt", "TransactionStmt",
2598 : "TransactionStmtLegacy", "opt_transaction", "transaction_mode_item",
2599 : "transaction_mode_list", "transaction_mode_list_or_empty",
2600 : "opt_transaction_chain", "ViewStmt", "opt_check_option", "LoadStmt",
2601 : "CreatedbStmt", "createdb_opt_list", "createdb_opt_items",
2602 : "createdb_opt_item", "createdb_opt_name", "opt_equal",
2603 : "AlterDatabaseStmt", "AlterDatabaseSetStmt", "DropdbStmt",
2604 : "drop_option_list", "drop_option", "AlterCollationStmt",
2605 : "AlterSystemStmt", "CreateDomainStmt", "AlterDomainStmt", "opt_as",
2606 : "AlterTSDictionaryStmt", "AlterTSConfigurationStmt", "any_with",
2607 : "CreateConversionStmt", "ClusterStmt", "cluster_index_specification",
2608 : "VacuumStmt", "AnalyzeStmt", "utility_option_list", "analyze_keyword",
2609 : "utility_option_elem", "utility_option_name", "utility_option_arg",
2610 : "opt_analyze", "opt_verbose", "opt_full", "opt_freeze", "opt_name_list",
2611 : "vacuum_relation", "vacuum_relation_list", "opt_vacuum_relation_list",
2612 : "ExplainStmt", "ExplainableStmt", "PrepareStmt", "prep_type_clause",
2613 : "PreparableStmt", "ExecuteStmt", "execute_param_clause",
2614 : "DeallocateStmt", "InsertStmt", "insert_target", "insert_rest",
2615 : "override_kind", "insert_column_list", "insert_column_item",
2616 : "opt_on_conflict", "opt_conf_expr", "returning_clause",
2617 : "returning_with_clause", "returning_options", "returning_option",
2618 : "returning_option_kind", "DeleteStmt", "using_clause", "LockStmt",
2619 : "opt_lock", "lock_type", "opt_nowait", "opt_nowait_or_skip",
2620 : "UpdateStmt", "set_clause_list", "set_clause", "set_target",
2621 : "set_target_list", "MergeStmt", "merge_when_list", "merge_when_clause",
2622 : "merge_when_tgt_matched", "merge_when_tgt_not_matched",
2623 : "opt_merge_when_condition", "merge_update", "merge_delete",
2624 : "merge_insert", "merge_values_clause", "DeclareCursorStmt",
2625 : "cursor_name", "cursor_options", "opt_hold", "SelectStmt",
2626 : "select_with_parens", "select_no_parens", "select_clause",
2627 : "simple_select", "with_clause", "cte_list", "common_table_expr",
2628 : "opt_materialized", "opt_search_clause", "opt_cycle_clause",
2629 : "opt_with_clause", "into_clause", "OptTempTableName", "opt_table",
2630 : "set_quantifier", "distinct_clause", "opt_all_clause",
2631 : "opt_distinct_clause", "opt_sort_clause", "sort_clause", "sortby_list",
2632 : "sortby", "select_limit", "opt_select_limit", "limit_clause",
2633 : "offset_clause", "select_limit_value", "select_offset_value",
2634 : "select_fetch_first_value", "I_or_F_const", "row_or_rows",
2635 : "first_or_next", "group_clause", "group_by_list", "group_by_item",
2636 : "empty_grouping_set", "rollup_clause", "cube_clause",
2637 : "grouping_sets_clause", "having_clause", "for_locking_clause",
2638 : "opt_for_locking_clause", "for_locking_items", "for_locking_item",
2639 : "for_locking_strength", "locked_rels_list", "values_clause",
2640 : "from_clause", "from_list", "table_ref", "joined_table", "alias_clause",
2641 : "opt_alias_clause", "opt_alias_clause_for_join_using",
2642 : "func_alias_clause", "join_type", "opt_outer", "join_qual",
2643 : "relation_expr", "extended_relation_expr", "relation_expr_list",
2644 : "relation_expr_opt_alias", "tablesample_clause", "opt_repeatable_clause",
2645 : "func_table", "rowsfrom_item", "rowsfrom_list", "opt_col_def_list",
2646 : "opt_ordinality", "where_clause", "where_or_current_clause",
2647 : "OptTableFuncElementList", "TableFuncElementList", "TableFuncElement",
2648 : "xmltable", "xmltable_column_list", "xmltable_column_el",
2649 : "xmltable_column_option_list", "xmltable_column_option_el",
2650 : "xml_namespace_list", "xml_namespace_el", "json_table",
2651 : "json_table_path_name_opt", "json_table_column_definition_list",
2652 : "json_table_column_definition", "path_opt",
2653 : "json_table_column_path_clause_opt", "Typename", "opt_array_bounds",
2654 : "SimpleTypename", "ConstTypename", "GenericType", "opt_type_modifiers",
2655 : "Numeric", "opt_float", "Bit", "ConstBit", "BitWithLength",
2656 : "BitWithoutLength", "Character", "ConstCharacter", "CharacterWithLength",
2657 : "CharacterWithoutLength", "character", "opt_varying", "ConstDatetime",
2658 : "ConstInterval", "opt_timezone", "opt_interval", "interval_second",
2659 : "JsonType", "a_expr", "b_expr", "c_expr", "func_application",
2660 : "func_expr", "func_expr_windowless", "func_expr_common_subexpr",
2661 : "xml_root_version", "opt_xml_root_standalone", "xml_attributes",
2662 : "xml_attribute_list", "xml_attribute_el", "document_or_content",
2663 : "xml_indent_option", "xml_whitespace_option", "xmlexists_argument",
2664 : "xml_passing_mech", "within_group_clause", "filter_clause",
2665 : "window_clause", "window_definition_list", "window_definition",
2666 : "over_clause", "window_specification", "opt_existing_window_name",
2667 : "opt_partition_clause", "opt_frame_clause", "frame_extent",
2668 : "frame_bound", "opt_window_exclusion_clause", "row", "explicit_row",
2669 : "implicit_row", "sub_type", "all_Op", "MathOp", "qual_Op", "qual_all_Op",
2670 : "subquery_Op", "expr_list", "func_arg_list", "func_arg_expr",
2671 : "func_arg_list_opt", "type_list", "array_expr", "array_expr_list",
2672 : "extract_list", "extract_arg", "unicode_normal_form", "overlay_list",
2673 : "position_list", "substr_list", "trim_list", "in_expr", "case_expr",
2674 : "when_clause_list", "when_clause", "case_default", "case_arg",
2675 : "columnref", "indirection_el", "opt_slice_bound", "indirection",
2676 : "opt_indirection", "opt_asymmetric", "json_passing_clause_opt",
2677 : "json_arguments", "json_argument", "json_wrapper_behavior",
2678 : "json_behavior", "json_behavior_type", "json_behavior_clause_opt",
2679 : "json_on_error_clause_opt", "json_value_expr", "json_format_clause",
2680 : "json_format_clause_opt", "json_quotes_clause_opt",
2681 : "json_returning_clause_opt", "json_predicate_type_constraint",
2682 : "json_key_uniqueness_constraint_opt", "json_name_and_value_list",
2683 : "json_name_and_value", "json_object_constructor_null_clause_opt",
2684 : "json_array_constructor_null_clause_opt", "json_value_expr_list",
2685 : "json_aggregate_func", "json_array_aggregate_order_by_clause_opt",
2686 : "opt_target_list", "target_list", "target_el", "qualified_name_list",
2687 : "qualified_name", "name_list", "name", "attr_name", "file_name",
2688 : "func_name", "AexprConst", "Iconst", "Sconst", "SignedIconst", "RoleId",
2689 : "RoleSpec", "role_list", "PLpgSQL_Expr", "PLAssignStmt",
2690 : "plassign_target", "plassign_equals", "ColId", "type_function_name",
2691 : "NonReservedWord", "ColLabel", "BareColLabel", "unreserved_keyword",
2692 : "col_name_keyword", "type_func_name_keyword", "reserved_keyword",
2693 : "bare_label_keyword", YY_NULLPTR
2694 : };
2695 :
2696 : static const char *
2697 : yysymbol_name (yysymbol_kind_t yysymbol)
2698 : {
2699 : return yytname[yysymbol];
2700 : }
2701 : #endif
2702 :
2703 : #ifdef YYPRINT
2704 : /* YYTOKNUM[NUM] -- (External) token number corresponding to the
2705 : (internal) symbol number NUM (which must be that of a token). */
2706 : static const yytype_int16 yytoknum[] =
2707 : {
2708 : 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2709 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2710 : 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2711 : 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2712 : 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2713 : 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2714 : 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
2715 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
2716 : 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
2717 : 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
2718 : 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
2719 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
2720 : 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
2721 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
2722 : 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
2723 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
2724 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
2725 : 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
2726 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
2727 : 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
2728 : 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
2729 : 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
2730 : 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
2731 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
2732 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
2733 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
2734 : 515, 516, 517, 518, 519, 520, 521, 522, 523, 524,
2735 : 525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
2736 : 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
2737 : 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
2738 : 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
2739 : 565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
2740 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 584,
2741 : 585, 586, 587, 588, 589, 590, 591, 592, 593, 594,
2742 : 595, 596, 597, 598, 599, 600, 601, 602, 603, 604,
2743 : 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
2744 : 615, 616, 617, 618, 619, 620, 621, 622, 623, 624,
2745 : 625, 626, 627, 628, 629, 630, 631, 632, 633, 634,
2746 : 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
2747 : 645, 646, 647, 648, 649, 650, 651, 652, 653, 654,
2748 : 655, 656, 657, 658, 659, 660, 661, 662, 663, 664,
2749 : 665, 666, 667, 668, 669, 670, 671, 672, 673, 674,
2750 : 675, 676, 677, 678, 679, 680, 681, 682, 683, 684,
2751 : 685, 686, 687, 688, 689, 690, 691, 692, 693, 694,
2752 : 695, 696, 697, 698, 699, 700, 701, 702, 703, 704,
2753 : 705, 706, 707, 708, 709, 710, 711, 712, 713, 714,
2754 : 715, 716, 717, 718, 719, 720, 721, 722, 723, 724,
2755 : 725, 726, 727, 728, 729, 730, 731, 732, 733, 734,
2756 : 735, 736, 737, 738, 739, 740, 741, 742, 743, 744,
2757 : 745, 746, 747, 748, 749, 750, 751, 752, 753, 754,
2758 : 755, 756, 757, 758, 759, 760, 761, 762, 763, 764,
2759 : 765, 766, 767, 768, 769, 770, 771, 772, 773, 774,
2760 : 775, 776, 777, 778, 60, 62, 61, 43, 45, 42,
2761 : 47, 37, 94, 779, 91, 93, 40, 41, 46, 59,
2762 : 44, 58
2763 : };
2764 : #endif
2765 :
2766 : #define YYPACT_NINF (-5950)
2767 :
2768 : #define yypact_value_is_default(Yyn) \
2769 : ((Yyn) == YYPACT_NINF)
2770 :
2771 : #define YYTABLE_NINF (-3012)
2772 :
2773 : #define yytable_value_is_error(Yyn) \
2774 : ((Yyn) == YYTABLE_NINF)
2775 :
2776 : /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
2777 : STATE-NUM. */
2778 : static const int yypact[] =
2779 : {
2780 : 18907, 57, 22319, -5950, -5950, 57, 71864, -5950, 81573, 1501,
2781 : 903, 105, 239, 21650, 82084, 92815, 591, 402, 9883, 57,
2782 : 92815, 1074, 62154, 77485, 1029, 92815, 1518, 1161, 62154, 92815,
2783 : 93326, 1410, 1637, 1377, 93837, 82595, 76463, 113, 92815, 1692,
2784 : 463, 94348, 83106, 1625, 83617, 1161, 57055, 213, 1567, 94859,
2785 : 92815,119814, 463, 84128, 84128, 84128, 2431, 2279, 1783, -5950,
2786 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2787 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2788 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2789 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2790 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2791 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2792 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2793 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2794 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2795 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2796 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2797 : -5950, -5950, -5950, -5950, -5950, 1537, -5950, -5950, -5950, -5950,
2798 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, 2925, -5950, 212,
2799 : 3240, 1417, 1229, 1710, -5950, -5950, 2426, 71864, 92815, 92815,
2800 : 92815, 2196, 92815, 2105, 92815, 964, 71864, 68287, 84639, 2265,
2801 : 2110, 52851, 95370, -5950, 71864, 92815, 65732, 71864, 92815, 92815,
2802 : 95881, 92815, 96392, 92815, 139, 80040, 92815, 2251, 92815, 92815,
2803 : 66243, 96903, 2357, 1649, 273, -5950, -5950, -5950, -5950, -5950,
2804 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2805 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2806 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2807 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2808 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2809 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2810 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2811 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2812 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2813 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2814 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2815 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2816 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2817 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2818 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2819 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2820 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2821 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2822 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2823 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2824 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2825 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2826 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2827 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2828 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2829 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2830 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2831 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2832 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2833 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2834 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2835 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2836 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2837 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2838 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2839 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2840 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2841 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2842 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2843 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2844 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2845 : -5950, -5950, 2119, 2066, -5950, 285, -5950, -5950, -5950, -5950,
2846 : -5950, -5950, -5950, -5950, -5950, 62665, 92815, 13260, 1518, 2426,
2847 : -5950, 2431, 92815, 2390, 92815, 2136, 97414, 92815, -5950, 92815,
2848 : 2178, 97925, 976, 84, 68287, 1824, 53381, 2308, 92815, 92815,
2849 : 68287, 98436, 98947, 99458, 92815, 92815, -5950, -5950, 2294, 92815,
2850 : -5950, 2415, 68798, 1855, 2437, 2627, 2511, 1493, -5950, 85150,
2851 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, 71353, 402,
2852 : -5950, -5950, 2473, 72375, 2568, -5950, -5950, 99969,120311, 2323,
2853 : -5950, 999, 72886, 69309, 2707, 2372, 53911, 2754, -5950, 73397,
2854 : -5950, 69820, 73908, -5950, -5950, -5950, -5950, -5950,100480, -5950,
2855 : 100991, 2455, 2568, -5950,120808, 70331, -5950, 2636,101502,102013,
2856 : 102524, 2426, 2353, 1557, 2441, 47122, -5950, -5950, -5950, 2366,
2857 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, 457,
2858 : 1802, 319, 264, 332, -5950, -5950, 274, 277, 283, 457,
2859 : 2873, 2873, -5950, 92815, -5950, -5950, 1802, 106, 2474, 2397,
2860 : 2397, 2397, 2598, 22, -5950, 2397, 2503, -5950, -5950, -5950,
2861 : -5950, 83617, -5950, 2387, 1518, 2401, 2883, 2465, 62665, 1189,
2862 : 92815, -5950, -5950, 2930, 2476, 2766, 2452, -5950, -5950, -5950,
2863 : 2709, 2711, 166, 782, 1518, 302, -5950, 2864, -5950, 2731,
2864 : 31907, 31907, 1518, 85661,103035, 340, 71353, 1518, 86172, 2534,
2865 : 276, 2735, -5950, -5950, -5950, 184, -5950, 3007, 2548, 2847,
2866 : 2452, 1649, 49190, -5950, -5950, 2566, 2066, 83617, -5950, -5950,
2867 : -5950, 62665, 2898, 35081, 92815, 2560, -5950, 2580, 2560, -5950,
2868 : -5950, 2647, -5950, 2647, 2647, 2625, 2625, 2798, 2644, -5950,
2869 : -5950, -5950, -5950, 2061, 2647, 2625, -5950,121802, -5950, 2012,
2870 : 2017, -5950, -5950, 3147, -5950, -5950, -5950, -5950, -5950, -5950,
2871 : -5950, -5950, 2649, -5950, 1392, -5950, 2044, -5950, -5950, -5950,
2872 : 31907, -5950, -5950, -5950, -5950, -5950, -5950, -5950, 2661, 2681,
2873 : 1417, -5950, 8270, 62665, 83617, 1729, 1729, 3165, 1729, 2070,
2874 : 2082, -5950, 3333, -5950, 3050, 3010, 3014, 83617, 2752, 339,
2875 : -5950, 1927, 2758, 2090, 2700, 1942, 3306, -5950, 745, 92815,
2876 : 295, 2765, 86683, 4056, 2759, 2066, 2776, -5950, -5950, -5950,
2877 : -5950, 2875, 449, -5950, -5950, -5950, -5950, 3045, 3113, 5946,
2878 : 369, 87194, -5950, -5950, -5950, -5950, 92815, 92815, -5950, -5950,
2879 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, 2790, 1560, -5950,
2880 : -5950, 2799, 3124, 3032, 9757, 1077, 3148, 2981, 2085, 10312,
2881 : 3044, 1859, 3200, 15841, 1643, 3204, 1970, 2541, 87705, 92815,
2882 : 3174, 3230, 5628, 1963, 948, 3081, 1513, 3148, 3223, 3035,
2883 : 2085, 3247, 2746, 92815, -5950, 3155, 3292, 832, -5950, 358,
2884 : -5950, 24556, 35081, 56544, -5950, 2066, -5950, 2072, -5950, -5950,
2885 : 61643, -5950, 2936, 3106, 131, 71864, 2882, 92815, 92815, -5950,
2886 : 119814, 71864, -5950, 3117, 54441, 71864, -5950, 71864, -5950, -5950,
2887 : 3249,119814, 92815, 92815, -5950, 92815, -5950, -5950, 2885, -5950,
2888 : -5950, -5950, -5950, -5950, 2397, 92815, 3351,119814, 3131, 180,
2889 : 1827, 3388, 92815, 3134, 1827, 2931,103546, -5950, -5950, 1827,
2890 : -5950, -5950, -5950, 92815, 92815, 2894, 2289, 3125, 928, 1827,
2891 : 3141, 3389, 3391, 3149, 2983, 3151, 2580, -5950, 3357, 3120,
2892 : 953, 247, 2205, 1827, 2965,104057,104568, 92815, 2977, 92815,
2893 : 3376, 71864, 3012, 71864, 71864, 92815, 3296, 92815, -5950, 3122,
2894 : -5950, -5950, 1471, -5950, -5950, -5950, -5950, -5950, 3314, -5950,
2895 : 240, 3315, 2942, 3321, 1946, 3324, 241, -5950, -5950, 2990,
2896 : -5950, 3335, 244, -5950, 3338, -5950, 2957,105079, -5950,105590,
2897 : 106101, 3340, 290, -5950, 68287, 3343, 244, 3344, 2957, 3346,
2898 : 244, 3348, 1007, 3350, -5950, 1028, 3337, 3352, 241, 3353,
2899 : 2250, 2957, -5950, 3354, 309, -5950, 3358, 390, -5950, 3360,
2900 : 3203, -5950, 35081, -5950, 3080, -5950, 1567, 2122, 2441, 1802,
2901 : -5950, 92815, 1802, 92815, 1802, 92815, 1802, 92815, 1802, 92815,
2902 : 92815, 92815, 1802, -5950, -5950, -5950, 92815, 2984, 92815, -5950,
2903 : 92815, -5950, -5950, -5950, 78507, 68287, 79018, -5950, 92815, -5950,
2904 : 858, 1518, -5950, -5950,119814, 3484, 68287, 3376, 2123, -5950,
2905 : -5950, 3376, -5950, -5950, 3376, 3376, -5950, -5950, -5950, 3271,
2906 : 92815, 3356, 78507, 68287, 3362, -5950,106612, -5950, 71353, 3216,
2907 : 2999, -5950, -5950, -5950, -5950, -5950, 2086, 3531, 292, 3532,
2908 : 35081, 3008, 292, 292, 3011, 3371, -5950, -5950, -5950, 300,
2909 : 3015, 3017, -5950, 303, 303, -5950, 3019, 3024, -5950, 308,
2910 : 3025, 3026, 3542, 3561, 321, 327, 3033, 3034, 3038, 3039,
2911 : 3042, 3046, 3047, 3049, 3053, 3055, 3059, 3060, 3064, 2061,
2912 : 292, 3065, 35081, -5950, 3067, 303, 3068, 3070, 3071, 3565,
2913 : 3072, -5950, 3575, 3073, -5950, 272, 315, 3074, 3075, -5950,
2914 : 3322, -5950, 328, 3085, 3087, 3090, 3091, 3093, 3094, 3095,
2915 : 3097, 35081, 35081, 35081, -5950, 29257, 2066, 1518, -5950, -5950,
2916 : -5950, -5950, -5950, -5950, -5950, -5950, 334, -5950, 51261, -5950,
2917 : 3140, -5950, -5950, 3323, -5950, -5950, 35081, -5950, -5950, 3470,
2918 : 860, -5950, 346, -5950, -5950, -5950, 2066, 3421, 3108, -5950,
2919 : -5950, 1699, 3111, -5950, 1152, -5950, -5950, -5950, -5950, -5950,
2920 : -5950, 70842, 3612, -5950, 380, 1518, 358, 1484, 3549, 60110,
2921 : 60621, -5950, -5950, 3402, -5950, 92815, -5950, -5950, 2066, 231,
2922 : 2130, -5950, 2366, 21127, 2143, 2560, 92815, 92815, 3617, -5950,
2923 : 3123, -5950, -5950, 35081, -5950, -5950, -5950, 2873, -5950, 2647,
2924 : 2647, -5950, -5950, 3619, 3214, 3217, 2873, -5950, 2873, -5950,
2925 : 3130, 3135, 2873, 3220, 3224, 3225, -5950, 3139, 3228, 2873,
2926 : -5950, -5950, 63688, 2112, -5950, 3499, 375, -5950, -5950, -5950,
2927 : 2151, -5950, 3150, -5950, 2580, -5950, -5950, 1417, 1417, 35081,
2928 : 1417, 965, 1313, 32436, 35610, 3508, 3379, 307, 1601, 3515,
2929 : -5950, 3384, 2070, 2082, 83617, 92815, 83617,107123, 3286, 35081,
2930 : -5950, 3624, 3246, 3248, 3307, 59099, -5950, 3250, 3215, 3253,
2931 : 3312, 3168, 3255, 3259, 3318, -5950, 3458, -5950, -5950, 3265,
2932 : 3635, 3267,107634, -5950, -5950, 985, -5950, -5950, -5950, 985,
2933 : -5950, 3195, 1334, 1441, 1390, 3275, 414, 255, 3632, -5950,
2934 : 1401, -5950, -5950, 3339, -5950, 22178, 92815, 3567, 6817, 3417,
2935 : 369, 3336, -5950, -5950, -5950, 3479, 3282, 92815, 3284, 3435,
2936 : 369, 992,108145, -5950, -5950, 92815, -5950, -5950, -5950, -5950,
2937 : 6180, 3606, 27732, -5950, 1951, 3288, 3263, 3299, 92815, 74930,
2938 : 440, 3407, 3429, 1660, 2236, 291, 3361, 92815, 1912, 3437,
2939 : 92815, 3206, 3295, 3297, 3553, 3213, 1166, 3658, 3211, -5950,
2940 : -5950, -5950, 3626, -5950, 1530, 1897, 3433, -5950, 3562, 3597,
2941 : 7471, 3298, 3301,117826, -5950, 3320, 772, 54971, 92815, 92815,
2942 : 3327, 3329,108656, 6180, 3641, 79529, 79529, 3332, 3341, 48673,
2943 : 3656, 829, 3342, -5950, -5950, -5950, 829, 3345, 3349,109167,
2944 : 6180, 3644, 92815, 3359, 3363, 92815,121802, 369, -5950, 3722,
2945 : -5950, 369, 369, 2260, 3723, 3364, 399, 3506, 636, 1827,
2946 : -5950, 3211, 2453, -5950, 3372, 3375, 1024, -5950, 3471, 92815,
2947 : 3377, 3378, 1847, 3431, 1518, -5950, 3434, -5950, 3380, 3438,
2948 : 3382, 86, 2894, -5950, -5950, 1311, 3365, 83617, 3455, 3463,
2949 : 1912, 496, 1034, 3211, -5950, 3383, 3385, 3213, 3213, 92815,
2950 : 92815, 92815, 92815, 92815, 281, 3749, 326, 3386, 298, 1069,
2951 : 3260, -5950, 829, 66754, 3390, -5950, 829, 92815, 289, 1130,
2952 : 3211, 1870, 2095, -5950, -5950, -5950, 1649, -5950, 35081, 35081,
2953 : 35081, 3264, -5950, 2432, 21127, 112, -5950, 348, 17010, 3283,
2954 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2955 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2956 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2957 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2958 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2959 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2960 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2961 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2962 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, 92815, 62665, -5950,
2963 : -5950, -5950, -5950, -5950, -5950, -5950, 92815, -5950, 92815, 3579,
2964 : 119814, 3580, 3496, 3583, 3602, 369, 92815, 92815, 3611, 3614,
2965 : 3616,119814, 3618, 3622, 3623, 3534, 3394, 219, 3393, 3313,
2966 : 3814, 3697, 92815, 63688, -5950, 985, -5950,119814, 3546, 3709,
2967 : -5950, 92815, 3576, 98, -5950, 3748, 3397, -5950, -5950, 111,
2968 : 92815, 77996, 2894, -5950, -5950, 3713, 68287, 1737, 3714, 1518,
2969 : 3392, 3717, 3569, 1518, 68287, 3620, 92815, 92815, 92815, 92815,
2970 : 189, -5950, 66754, 3584, -5950, 92815, 3588, 2453, 3589, 3848,
2971 : 921, 2397,109678, 3715, -5950,110189, 3367, 92815, 3368, 3368,
2972 : 3851,119814, 1492, 3647, -5950, -5950, 2337, -5950, 3501, -5950,
2973 : 71864, -5950, -5950, 71864, -5950, -5950,119814, 92815, 3370,119814,
2974 : 119814, -5950, -5950, 71864, 71864, -5950, 68287, 68287, 3736, 309,
2975 : 3737, 3424, 3740, 3439, 54971, 54971, -5950, 394, 71864, -5950,
2976 : 68287, 71864, -5950, 92815, -5950, 92815, -5950, -5950, -5950, -5950,
2977 : 119814,119814, -5950, 68287, 66754, 3750, 92815, 92815, -5950, 92815,
2978 : 92815, -5950, 92815, 92815, 2157,110700, 2441, -5950, 92815, -5950,
2979 : 92815, -5950, 92815, -5950, 92815, -5950, 92815, -5950, -5950, -5950,
2980 : 92815, -5950, 92815, 2163, -5950, -5950, 2174, 1592, 92815, 92815,
2981 : 1095, 71864, 92815, 3605, 92815, 71864, 71864, 92815, 92815, 92815,
2982 : 92815, 92815, 3462, 3111, 893, -5950, 349, 977, 83617, 3621,
2983 : -5950, -5950, 2175, 2431, 50, 92815, -5950, 92815, 92815, 92815,
2984 : -5950, -5950, 77485, 3733, 446, 79018, 92815, -5950, -5950, 4223,
2985 : 35081, 2066, 31373, -5950, -5950, 21127, 3426, 35081, 35081, 3381,
2986 : 2873, 2873, -5950, 1003, 35081, 35081, 35081, 28728, 35081, 35081,
2987 : 32965, 35081, 35081, 35081, 35081, 35081, 35081, 2873, 2873, 3387,
2988 : 35081, 6186, 35081, 54971, 35081, 40900, 25626, 35081, 35081, 29786,
2989 : 314, 3019, 35081, 3639, 41952, 35081, 1484, 3642, 35081, 1484,
2990 : 6186, 3907, 3907, 2278, 8894, 3395, 2066, -5950, 2873, 1089,
2991 : -5950, 545,119814, 35081, 35081, 35081, -5950, -5950, -5950, -5950,
2992 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2993 : -5950, 35081, -5950, 63688, -5950, -5950, -5950, -5950, -5950, -5950,
2994 : 183, -5950, -5950, -5950, -5950, -5950, -5950, 3226, -5950, -5950,
2995 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2996 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2997 : -5950, 92815, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2998 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2999 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3000 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3001 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3002 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3003 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3004 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3005 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3006 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3007 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, 30315,
3008 : -5950, -5950, -5950, -5950, 3400, -5950, -5950, -5950, -5950, -5950,
3009 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3010 : -5950, -5950, -5950, -5950, -5950, 2890, -5950, -5950, -5950, -5950,
3011 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3012 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3013 : -5950, -5950, -5950, 30844, -5950, -5950, -5950, -5950, -5950, -5950,
3014 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3015 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3016 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3017 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3018 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, 3401, -5950, -5950,
3019 : 35081, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3020 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3021 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3022 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3023 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3024 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3025 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3026 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3027 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, 3473, -5950, -5950,
3028 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3029 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3030 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3031 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3032 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3033 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3034 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3035 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3036 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3037 : -5950, -5950, -5950, -5950, 942, 35081, 35081, 35081, 35081, 35081,
3038 : 35081, 35081, 35081, 35081, -5950, 35081, 548, -5950, -5950, 3735,
3039 : 3470, 719, 627, 3403, 3604, 88216, 31907, 3499, 24556, -5950,
3040 : 293, 3499, -5950, -5950, -5950, 92815, 3612, -5950, -5950, 3476,
3041 : -5950, -5950, -5950, -5950, -5950, 351, -5950, -5950, -5950, -5950,
3042 : -5950, -5950, -5950, 3406, -5950, -5950, -5950, -5950, 3406, -5950,
3043 : 3405, 3728, 3732, 1007, 83617, 2517, 35081, 183, 282, 92815,
3044 : 35081, 3400, 2890, 35081, 3401, 35081, 3473, -5950, 35081, -5950,
3045 : 2208, 245, 35081, 2228, 3410, -5950, -5950, 3396, 3135, 3416,
3046 : 3430, 3411, 3412, 2873, 262, 3414, 1434, 203, 3558, 2873,
3047 : 3678, 3418, -5950, 63688, -5950, 44020, 3466, -5950, -5950, -5950,
3048 : 463, 83617, 83617, -5950, 3741, -5950, 3427, -5950, 17325, 3741,
3049 : -5950, -5950, 41426, 3551, 3720, 3653, -5950, -5950, -5950, 3432,
3050 : 21127, 36139, 36139, -5950, 2342, 21127, 2347, -5950, -5950, -5950,
3051 : -5950, -5950, -5950, 1629, -5950, 92815, 848, 3508, 1601, 3485,
3052 : 1333, 3933, 3504, 92815, -5950, 49707, 2229, -5950, 68287, 92815,
3053 : 92815, 3655, -5950, 3919, -5950,121802, -5950, 3442, -5950,121305,
3054 : 116832, -5950, -5950, 1151, -5950, 1449, 68287, -5950, 92815, 92815,
3055 : 68287, 92815, 92815, -5950, 68287, 3497, 92815, 92815, -5950, -5950,
3056 : -5950, -5950, -5950, 61132, 1099, 77485, 3590, 76974, -5950, -5950,
3057 : 3451, 92815, 3691, -5950, -5950,111211, -5950, 3692, 68287, 92815,
3058 : 92815, 35081, 3693, 92815, 92815, -5950, 411, 3545, 3547, -5950,
3059 : 92815, 3550, 71864, 3461,119814, 71864, 55501, 71864, 71864, 3822,
3060 : 119814, 92815, 92815, 1485, 83617, 514, 1165, 3211, 3702, -5950,
3061 : 1483, -5950, 68287, -5950, 92815, 3694, -5950, -5950, -5950, 88727,
3062 : 3953, 3591, -5950, -5950, -5950,111722, -5950, -5950, 3695, -5950,
3063 : 2243, -5950, 68287, 68287, 92815, 7629, 3472,112233, 92815, 1102,
3064 : 3761, 3716, 3712, 3766, 1142, -5950, -5950, -5950,119814, -5950,
3065 : 92815, 89238, 92815, 92815, 3759, 92815, 80551,112744,113255, 1564,
3066 : 1638, 3760, 92815, 81062, 3762, -5950, 3628, 92815, -5950, -5950,
3067 : 64199, 68287, 92815, 221, 63688, -5950, 3744, -5950, 92815, -5950,
3068 : 956, -5950, 92815, 8086, 3706, -5950, -5950, 3570, 3581, 92815,
3069 : 520, 1236, 3211, 3889, 92815, 92815, 3482, 2245, 68287, 92815,
3070 : 63688, -5950, 3718, 799, 68287, 92815, 88727, -5950, 3719, -5950,
3071 : 83617, 3821, -5950, 3486, 2397, 2566, 2079, 3486, 68287, 92815,
3072 : -5950, 3486, 92815,103035, -5950, 68287, 1207, -5950, 68287, 92815,
3073 : 88727, -5950, 3726, 3657, 68287, 92815, 18461, -5950, -5950, -5950,
3074 : 369, -5950, -5950, -5950, -5950, -5950, 92815, 92815, 369, 92815,
3075 : 92815, 369, 1746, -5950, 68287, 92815, -5950, -5950, -5950, 3627,
3076 : 68287, 92815, 92815, 366, 92815, -5950, 92815, 68287, 3539, 92815,
3077 : 92815, -5950, -5950, 92815, 7036, 92815, 92815, 92815, 92815, 92815,
3078 : 92815, 68287, 92815, -5950, -5950, 2338, 1140, 830, 1162, 207,
3079 : 92815, 3828, 92815,113766, 1518, 68287, 92815, 92815, 1518, 92815,
3080 : 63688, 1794, -5950, -5950, 3633, -5950, 68287, 1207, -5950, 8066,
3081 : 92815, 92815, 92815, 3592, 3593, 278, 3670, -5950, -5950, -5950,
3082 : 935, 935, 3721, -5950, 35081, 35081, 33494, 3505, -5950, -5950,
3083 : 35081, 2936, -5950, -5950, -5950, 1075, 4005, 1075,114277, 1075,
3084 : 1075, 3820, 3573, 3587, 1075, 1075, 1075, 3809, 1075, 1075,
3085 : 1075, 92815, 3705, -5950, -5950, 3705, 865, 35081,119814, 92815,
3086 : -5950, 2259, -5950, 3528, -5950, -5950, 63688, 92815, 234, 987,
3087 : 3903, 3758, 75441, 2288, 3892, 92815, 3582, 92815, 4027, 3630,
3088 : 1498, -5950, 2288, 92815, -5950, 3110, 77485, -5950, -5950, -5950,
3089 : -5950, -5950, -5950, -5950, 92815, -5950, -5950, 3894, 92815, 44537,
3090 : 3724, -5950, 1518, 2894, 2894, 2894, 2894, 3533, 2894, 92815,
3091 : 3671, 3915, 2288, 3538, 3917, -5950, 2453, 3918, 2007, 92815,
3092 : 3774, 75441, 3608, 3586, 3789, 4045, 2397, 1518, 3791, 3775,
3093 : -5950, 59599, -5950, 2894, 4060, 28230, 4657, 5328, 3778, 3845,
3094 : -5950, -5950, 3790, 959, 92815, 3900, 3902, 3926, -5950, 240,
3095 : -5950, 4061, 1946, 3928, 241, -5950, 244, -5950, 2957, -5950,
3096 : 92815, -5950, 92815, 92815, 92815, 92815, 290, -5950, -5950, 244,
3097 : 2957, 244, 1007, -5950, 3858, 241, 2957, 3704, 3934, 309,
3098 : -5950, 390, -5950, 3795, 1007, -5950, 3815, 2397, -5950, -5950,
3099 : -5950, -5950, -5950, -5950, -5950, 2267, -5950, 92815, -5950, 3908,
3100 : 3910, 3911, 3913, 3914, 3577, 3596, 3640, 92815, 3601, 3577,
3101 : 369, 3603, 3585, -5950, 3601, 3601, 3577, 3111, 3111, 3577,
3102 : 3596, 67265, 4065, 63688, -5950, -5950, 3696, 3609, 3964, 878,
3103 : -5950, 883, 87, 3872, -5950, -5950, -5950, -5950,119814, -5950,
3104 : 68287, 3659, -5950, -5950, -5950, 3839, 3610, 67265, 1007, 172,
3105 : -5950, 71864, 92815,119814, 71864, 3854, 71864, 71864,119814, 92815,
3106 : 92815, 2277, -5950, -13, -5950, 2019, 35081, 558, -5950, 18188,
3107 : 2281, 35081, 3625, 3629, -5950, -5950, -5950, -5950, -5950, -5950,
3108 : -5950, 3634, 3980, -5950, 2283, 2299, 18294, 2360,119814, 2518,
3109 : 3645, -5950, 3646, 261, 3844, 3651, 3743, 3683, 2322, 3650,
3110 : 301, -5950, 3743, 1114, 3660, 9087, 3788, 3663, 2328, 3661,
3111 : 3667, -5950, 7001, 7654, 3668, 18825, 3669, 3676, 3677, 3631,
3112 : 40900, 40900, 29257, 1119, -5950, 40900, 3679, 3847, 2332, 17083,
3113 : 3680, 3682, 19001, 34023, 35081, 34023, 34023, 19139, 3686, 3701,
3114 : -5950, 4046, -5950, 2348, 63688, 3850, 19531, 2361, -5950, 35081,
3115 : 63688, 8492, 35081, -5950, 35081, 3708, -5950, -5950, 2928, 2928,
3116 : 2928, 6186, -5950, -5950, 3672, -5950, 40900, 40900, -5950, 1676,
3117 : 29257, -5950, -5950, 4006, -5950, -5950, 265, -5950, -5950, -5950,
3118 : -5950, -5950, 3355, -5950, -5950, -5950, 3896, 2360, 3287, 54971,
3119 : 3648, 35081, 368, 35081, 3400, 35081, 3781, 2928, 2928, 2928,
3120 : 389, 389, 336, 336, 336, 2131, 627, -5950, -5950, -5950,
3121 : 3703, 3711, 3604, 3725, 35081, -5950, 3707, 50224, -5950, 2526,
3122 : 2654, 92815, 4741, 4878, 6450, -5950, -5950, -5950, 3466, 112,
3123 : 3466, -5950, 1649, 2873, 1089, 61643, -5950, -5950, -5950, -5950,
3124 : -5950, -5950, 83617, 21127, -5950, -5950, 3929, 3727, 2362, -5950,
3125 : -5950, 2873, -5950, -5950, 2181, 2181, 3673, -5950, 3729, -5950,
3126 : -5950, -5950, -5950, -5950, -5950, -5950, 3739, -5950, -5950, -5950,
3127 : 3730, 3742, 45054, 4063, 3746, 43503, 89749, 3710, 2684, -5950,
3128 : 89749, 90260, 89749, 89749, -5950, 3745, -5950, -5950, 2066, 35081,
3129 : 4055, -5950, -5950, -5950, 35081, -5950, -5950, 1828, 3763, 1056,
3130 : 1250, 2321, 2321, 2342, 1298, -5950, -5950, 3782, -5950, 35081,
3131 : 2364, -5950, 2371, -5950, -5950, -5950, -5950, 3111, -5950, 3990,
3132 : -5950, -5950, -5950, 44020, 3767, 3777, 75, 48156, 3949, -5950,
3133 : 92815, 44020, -5950, 92815, 223, -5950, 3734, -5950, -5950, -5950,
3134 : -5950, -5950, -5950,116832, 2044, -5950,121305, -5950,121305, -5950,
3135 : 2044, 4206, -5950,116832, 1939, -5950, -5950, -5950, -5950, -5950,
3136 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, 68287, 68287,
3137 : 3970, 92815, 3972, 3973, 35081, 1172, -5950, 4132, 1007, -5950,
3138 : -5950, 3843, -5950, 21127, -5950, -5950, -5950, -5950, -5950, 68287,
3139 : 92815, -5950, 71353, -5950, -5950,119814, -5950, -5950, 92815, 92815,
3140 : -5950, -5950, -5950,119814, -5950, -5950, -5950, 92815, 197, 3846,
3141 : 3852, 92815, -5950, 1338, 3471, 8116, 92815, 92815, 92815, 4077,
3142 : -5950, -5950, -5950, -5950, 3995, -5950, 4134, -5950,116832, -5950,
3143 : 2957, 153, 3853, 3211, 35081, 4011, -5950, 925, 92815, 3770,
3144 : 3771, 4141, 92815, 1653, 4101, 3776, -5950, 3888, 4104, 3912,
3145 : 2107, -5950, -5950, 3922, -5950, -5950, -5950, -5950, 4156, 1007,
3146 : 4160, 1007, 92815, 92815, 92815, 92815, 3927, -5950, -5950, -5950,
3147 : -5950, 3930, 4069, -5950, 63688, 63688, 63688, 2376, -5950, -5950,
3148 : 1518, -5950, -5950, -5950, -5950, -5950, -5950, 4116, -5950, 2381,
3149 : -5950, 668, 90771, -5950, -5950, -5950, -5950, -5950, 4163, 68287,
3150 : 92815, 9411, 92815, 92815, 92815, 4016, 2068, 1155,119814, -5950,
3151 : 118323, -5950, -5950, 2386, -5950, 3801, 92815, 3880, 68287, 3856,
3152 : -5950, -5950, -5950, 4169, 2397, 3941, 79529, 3842, 3842, 2109,
3153 : -5950, -5950, -5950, -5950, -5950, 4079, 4002, -5950, 1080, 4003,
3154 : 68287, 3868, -5950, -5950, -5950, -5950, 4178, 3895, -5950, -5950,
3155 : 3898, 1349, 3211, 2453, -5950, -5950, -5950, -5950, -5950, -5950,
3156 : -5950, -5950, -5950, 3920, -5950, -5950, -5950, -5950, -5950, -5950,
3157 : 1700, 1700, -5950, -5950, -5950, 1700, 1239, 543, 1445, 3211,
3158 : -5950, 371, 1487, 3899, -5950, 3904, -5950, -5950, -5950, 4084,
3159 : 4086, 4087, 3916, 3923, 3966, 3924, 3925, 3975, -5950, 3931,
3160 : 3976, 3932, 3977, 3937, 4235, 1007,119814, 4075, 1518, 3971,
3161 : 4218, 1007, -5950, -5950, 3938, -5950, 3939, -5950, 2391, 4330,
3162 : 4331, -5950, 92815, -5950, 550, 1854, 3211, -5950, 3940, -5950,
3163 : 68287, 92815, -5950, -5950, -5950, 35081, 3855, 3857, 3859, 21127,
3164 : 21127, 35081, -5950, -5950, 21127, 3860, -5950, -5950, -5950, -5950,
3165 : 119814, -5950, 92815, 4164, -5950, -5950, 1075, 92815, 92815, -5950,
3166 : -5950, -5950, 92815, -5950, -5950, -5950, 4165, -5950, 533, 533,
3167 : -5950, -5950, 4201, 9159, 3861, 355, -5950, 63688, 51791, 4522,
3168 : 202, 1827, -5950, 71353, 92815, 71353, -5950, 987, 4085, 92815,
3169 : 92815, 92815, 3863, 3862, -5950, -5950, -5950, -5950, 68287, 901,
3170 : 68287, 2873, -5950, -5950, 3943, -5950, 92815, 2397, 4401, 4233,
3171 : 3539, -5950, 4358, 3391, 1737, 1911, 529, 2983, 4294, 2580,
3172 : 35081, 362, -5950, -5950, 2066, 92815, 3586, -5950, -5950, -5950,
3173 : -5950, 1518, -5950, 3871, 3869, -5950, 92815, 4238, 92815, 92815,
3174 : 92815, 92815, 3659, 3875, 92815, 3877,119814, 92815, 2640, 3213,
3175 : 4374, 4257, 2431, 3608, 3968, 4260, 83617, 3893, 2392, -5950,
3176 : -5950, 959, -5950, 2412, 209, -5950, 1518, 71353,117329, 4250,
3177 : -5950, 333, 5328, -5950, -5950, 333, 1026, 92815, -5950, -5950,
3178 : -5950, -5950, 4119, 2232, -5950, 4236, -5950, -5950, 2431, -5950,
3179 : 119814, 3901, -5950, 2417, -5950, -5950, -5950, 309, 3958, 1007,
3180 : 3965, 1007, -5950, -5950, -5950, -5950, 92815, -5950, 92815, 66754,
3181 : -5950, -5950, 92815, -5950, 4281, -5950, -5950, 4051, 4053, 4054,
3182 : 4057, 4058, 92815, 3577, -5950, 3905, 92815, 92815, 68287, 1785,
3183 : -5950, -5950, 68287, 456, -5950, 206, -5950, 83617, 4049, -5950,
3184 : -5950, -5950, -5950, 4290, 4296, -5950, -5950, -5950, 983, -5950,
3185 : 78507, 468, -5950, 68287, 4225, 4228, 4229, 4230, 369, 4231,
3186 : 4232, 4237, 4239, 4240, -5950, -5950, -5950, 3935, 19388, 35081,
3187 : -5950, 4311,119814, -5950, 9689, -5950, -5950, -5950, 35081, -5950,
3188 : -5950, 4234, -5950, -5950, 3994, 4000, 3936, 3645, 3788, -5950,
3189 : 4151, 4157, 35081, 3788, 4411, 1121, 35081, 35081, 35081, -5950,
3190 : -5950, 4161, 4166, 35081, 2360, 2360, 35081, -5950, 3942, 35081,
3191 : -5950, -5950, -5950, -5950, 2339, 35081, -5950, 35081, -5950, -5950,
3192 : 26161, 4461, 4461, 3945,119814, 40900, 40900, 40900, 40900, 1830,
3193 : 3068, 40900, 40900, 40900, 40900, 40900, 40900, 40900, 40900, 40900,
3194 : 40900, 488, -5950, 4153, 35081, 35081, 34552, -5950, -5950,119814,
3195 : 3946, 3686, 3950, 3951, 35081, -5950, -5950, -5950, 2419, 42469,
3196 : 3952, 63688, -5950, 35081, 18125, 2425, 3993, 19669, 2066, 10506,
3197 : 1518, 35081, 1251, 1731, 35081, 2434, 35081, -5950, -5950, -5950,
3198 : -5950, 4300, -5950, -5950, -5950, -5950, -5950, -5950, 4188, 2360,
3199 : -5950, -5950, 35081, 3955, 3520, 40900, 40900, 4869, -5950, 4983,
3200 : 35081, 29257, -5950, 3721, -5950, 26696, 3954, 35081,116321, -5950,
3201 : -5950, 1161, 1161, 1161, 1161, -5950, 92815, 92815, 92815, 4055,
3202 : 3959, 4055, 358, 3960, -5950, -5950, -5950, -5950, 2431, -5950,
3203 : 3947, -5950, -5950, -5950, -5950, -5950, 35081, 89749, 90260, 89749,
3204 : 89749, 3962, 42986, 27214, 2684, 3963, 92815, -5950, -5950, 3967,
3205 : 44020, 4271, 4181, -5950, 44020, 4181, 1644, 4181, 4274, 4067,
3206 : 50741, -5950, -5950, 3969, -5950, -5950, 4189, -5950, 1951, 21127,
3207 : 4448, 4317, -5950, 3974, -5950, 3763, 1976, -5950, -5950, -5950,
3208 : 1303, -5950, 4064, -5950, -5950, -5950, 3710, 36668, 4136, -5950,
3209 : -5950, -5950, 4035, 2435, -5950, -5950, 4424, 4136, -5950, 2313,
3210 : -5950, 2439, 49707, 3767, 35081, 2066, 2458, 1985, -5950, -5950,
3211 : 116832, -5950, 4059, 2957, 2957, 2813, 3577, 4343, 2813, 10814,
3212 : -5950, 1909, 92815, -5950, 92815, -5950, -5950, -5950, 4478, 4047,
3213 : 4048, 4275, -5950, 2700, -5950, -5950, 68287, 92815, -5950, -5950,
3214 : -5950, 556, 1971, 3211, -5950, 4070, -5950, -5950, 4307, 92815,
3215 : -5950, 4464, 4089, 92815, 10914, 4367, 4062, -5950, -5950, 45571,
3216 : 92815, 92815, -5950, 92815, -5950, 92815, 92815, 1909, 91282, -5950,
3217 : 4442, -5950, 1909, 4109, 4348, 1858, 3213, 399, 6846, -5950,
3218 : 1978, -5950, -5950, 4073, -5950, 92815, -5950, 92815, -5950, -5950,
3219 : -5950, -5950, -5950, -5950, -5950, 4137, -5950, -5950, -5950, -5950,
3220 : 64199, -5950, -5950, 92815, -5950, 63688, 51791, 63688, -5950, -5950,
3221 : -5950, 92815, -5950, 1563, 559, 1972, 3211, -5950, 4088, -5950,
3222 : 4372, 4091, 4093, 4144, 252, 1380, 4094, 4095, 4147, 4008,
3223 : 4009, 4010, -5950, 63688, 52321, 4182, 92815, 2957, 4013, 4066,
3224 : 92815, 3842, 91793, -5950, 4015, -5950, -5950, 3842, 457, 1518,
3225 : -5950, -5950, 1518, 2957, 1518, 92815, 92815, 92815, 92815, 366,
3226 : -5950, -5950, -5950, 4493, 4115, 92815, 92815, 92815, 92815, -5950,
3227 : 4076, -5950, -5950, -5950, 92815, 92815, 4384, 1090, 2287, 68287,
3228 : 92815, 92815, 68287, 92815, 92815, 92815, 92815, 92815, 92815, 92815,
3229 : 4247, -5950, 4480, 4402, 2315, 4449, 4108, 92815, -5950, 92815,
3230 : 1518, -5950, 3471, 92815, 92815, 92815, 92815, -5950, -5950, -5950,
3231 : -5950, -5950, 3721, -5950, 4030, 4344, 1075, -5950, 4345, 4346,
3232 : 4349, 1075, -5950, -5950, 1827, -5950, 552, 92815, -5950, 2678,
3233 : 92815, -5950, -5950, -5950, 3974, 1530, 1897, -5950, -5950, -5950,
3234 : -5950, -5950, -5950, 4032, 92815, 92815, 40900, -5950, -5950, 477,
3235 : 1738, 1550, -5950, 4334, 92815, 3322, -5950, -5950, -5950, 267,
3236 : 92815, -5950, -5950, -5950, -5950, 4041, -5950, 779, 3875, -5950,
3237 : 4368, 75441, 2957, 68287, 68287, 2957, -5950,119814, 4043, 3586,
3238 : -5950, 306, 4133, -5950, 68287, 1737,114788, 3392, 4090, 4272,
3239 : 11350, 44020, 44537, 1700, -5950, 4052, 4044, -5950, -5950, 92815,
3240 : 4085, 66754, 2460, 2453, 4550, 1411, 2353, -5950, 75952, 4259,
3241 : 3875, 4368, -5950, 3213, 4284, 4282, -5950, 2431, 92815, 3659,
3242 : 3586, 1518, 92815, 4062, 51791, -5950, 4593, 2273, -5950,116832,
3243 : 35081, 35081, -5950, 4068, -5950, 4071, 5328, -5950, 4139, 4078,
3244 : 4554, 35081, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3245 : 4168, 4081, 92815, 92815, 959, 92815, -5950, 4072, 3928, -5950,
3246 : 3928, -5950, 92815, -5950, 92815, -5950, 1007, -5950, 4199, 1007,
3247 : 92815, 92815, 92815, 92815, 92815, 92815, 3577, 369, 3585, -5950,
3248 : -5950, 4417, 67265, 4419, -5950, 63688, -5950, -5950, -5950, -5950,
3249 : -5950, 2467, 92815, -5950, -5950, -5950, 4492, 4443, 1007, 446,
3250 : 1143, 1143, 1143, 1143, 4403, 1143, 1143, 1143, 1143, 1143,
3251 : -5950, 35081, 21127, -5950, 4092, -5950, 21127, 4481, 4385, 4388,
3252 : -5950, -5950, 4096, 4333, 4340, -5950, 4102, 35081, 3788, 19757,
3253 : -5950, -5950, 4342, 4347, -5950, 3788, 3788, 19757, -5950, 19757,
3254 : 4111, 11371, 19915, -5950, 2468, 35081, -5950, 1275, 1275, 1275,
3255 : 710, 4463, -5950, 2377, 1275, 1275, 1275, 393, 393, 311,
3256 : 311, 311, 4461, 488, 20066, 20169, 20477, 4112, -5950, -5950,
3257 : -5950, 3686, -5950, 37197, 101, 4595, 41952, -5950, -5950, -5950,
3258 : 4171, 4172, 4118, -5950, 35081, 37726, 4117,121802, 4338, -5950,
3259 : 1852, 35081, 35081, 4624, -5950, 6335, 35081, -5950, -5950, 4624,
3260 : 551, 35081, 1775, 2485, 35081, 35081, 5096, 11637, 4130, -5950,
3261 : 2489, 35081, 11692, 4321, -5950, 92815, 92815, 92815, 92815, -5950,
3262 : -5950, -5950, 4317, 1518, 4317, 1518, 4131, -5950, 4135, -5950,
3263 : -5950, -5950, -5950, 64710, 4120, 3850, 89749, 4138, 92815, 2684,
3264 : 44020, -5950, -5950, 1452, -5950, 44020, 4444, -5950, 44020, 71864,
3265 : -5950, 92815, 4143, 92815, -5950, 1729, 35081, 4179, 54971, -5950,
3266 : -5950, -5950, -5950, 4241, -5950, 4369, 21127, 4184, -5950, 2431,
3267 : 2446, 92815, 2066, 784, -5950, 35081, 4154, 92815, -5950, 4136,
3268 : 21127, -5950, 4226, 2491, -5950, -5950, 4380, -5950, -5950, -5950,
3269 : -5950, -5950, 4242, 77485, 4507, -5950, -5950, -5950, 1818, 4479,
3270 : 902, -5950, 1007, -5950,119814, 92815, 92815, 92815, 3168, -5950,
3271 : -5950, 92815, 92815, 92815, 92815, -5950, -5950, 68287, 92815, -5950,
3272 : -5950, 92815, 35081, 2493, -5950, 4194, 4613, 412, 4158, -5950,
3273 : 1909, 10, 1909, -5950, 10, -5950, -5950, 92304, -5950, 4085,
3274 : 366, 477, 4497, 4498, 4398, -5950, 369, -5950, 4659, 477,
3275 : 4405, 366, -5950, -5950, -5950, -5950, 2238, -5950,119814, 1007,
3276 : 1007, -5950, -5950, -5950, -5950, -5950, 4174, -5950, 4647, 4269,
3277 : 92815, 92815, 92815, 92815, 92815, 68287, 92815, 92815, 2873, 2873,
3278 : 119814, 4173, -5950, 2873, 2873, 4175, -5950, 68287, 92815, 92815,
3279 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3280 : -5950, 4263, -5950, 35081, 4640, -5950, -5950, -5950, -5950, -5950,
3281 : 35081, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3282 : -5950, 68287, 92815, 4266, -5950, 4270, -5950, 963, -5950, -5950,
3283 : 92815, 92815, 92815, 92815, 4559, -5950, -5950, -5950, -5950, -5950,
3284 : -5950, -5950, -5950, -5950, -5950, -5950, 4561, 92815, -5950, -5950,
3285 : 1518, 1518,119814, 1007, 1007, -5950, -5950, -5950, 4277, -5950,
3286 : -5950, 4186, 4501, 1075, -5950, 1075, 1075, 1075, -5950, 4191,
3287 : -5950, 1827, 4603, -5950, 1909, 2014, 4551, -5950, 35081, -5950,
3288 : 1536, 710, -5950, 4612, 4696, -5950, -5950, -5950, -5950, 4446,
3289 : 3539, 2397, 3539, -5950, -5950, 71864, 434, -5950, 4534, 234,
3290 : 63688, 4433, 75441, 371, 2065, 4202, 4350, -5950, 2957, 2957,
3291 : 4273, 92815, 4704, -5950, -5950, -5950, -5950, -5950, -5950, 68287,
3292 : 3856, -5950, 4450, 1422, 4570, 92815, 44537, -5950, 3710, -5950,
3293 : -5950, -5950, 1518, -5950, -5950, 4351, 3586, -5950, 2172, 92815,
3294 : 4441, 75441, 3659, 2497, -5950, -5950, -5950, 4254, 4690, 3608,
3295 : -5950, 371, 4259, -5950, -5950, 4668, 4315, 4261, 4718, -5950,
3296 : 4315, 4579, 4451, 4224, -5950, 3893, -5950, 92815, -5950, 21127,
3297 : 21127, 1518,122299, 333,119814, 4587, -5950, 21127, 92815, 991,
3298 : 4222, 4400, -5950, 4552, 1007, 2509, -5950, 1007, 1007, -5950,
3299 : 92815, -5950, 3577, 3577, 3577, 3577, 3577, -5950, 4452, -5950,
3300 : -5950, -5950, -5950, 4543, -5950, 67265, -5950, 1007, -5950, -5950,
3301 : -5950, -5950, -5950, -5950, 1143, -5950, -5950, -5950, -5950, -5950,
3302 : 21127, -5950, 92815, -5950, -5950, -5950, -5950, -5950, -5950, 3427,
3303 : 4244, 35081, 2312, -5950, -5950, 4246, 4251, 3788, 3788, -5950,
3304 : -5950, 35081, -5950, 11767, 40900, 4590, -5950, 35081, 35081, 35081,
3305 : -5950, 4248, 2536, 2544, -5950, -5950, 101, -5950, 4595, -5950,
3306 : -5950, -5950, 12353, 4291, 21127, 4354, 4252, 271, 4624, 4624,
3307 : 6335, 4624, 35081, 35081, 4624, 4624, 35081, -5950, -5950, -5950,
3308 : 12456, -5950, 4713, 3721, -5950, -5950, -5950, -5950, 4179, -5950,
3309 : 4179, -5950, 4394, 35081, -5950, 2545, 4735, 39842, 4710, -5950,
3310 : 92815, 2546, -5950, 35081, 4256, -5950, -5950, 44020, 1452, 4264,
3311 : 2550, 92815, 2572,119814, 38255, 21127, 92815, 3721, 4265, -5950,
3312 : 92815, 4267, 31907, -5950, 75, -5950, -5950, 4685, 45571, 4660,
3313 : 20591, 35081, -5950, -5950, -5950, -5950, -5950, 67265, 4483, 67265,
3314 : 1909, -5950, -5950, -5950, -5950, -5950, -5950, -5950, 4280, -5950,
3315 : -5950, -5950, -5950, 4353, -5950, -5950, 53, 3621, 1909, -5950,
3316 : 12712, 4594, 45571, 56031, 92815, -5950, 92815, -5950,115299, 4285,
3317 : 4482, 4287, 4288, -5950, -5950, -5950, -5950, 4768, 4649, 4650,
3318 : -5950, -5950, 4293, -5950, -5950, -5950, 4480, -5950, -5950, 51791,
3319 : 68287, 92815, -5950, 4370, -5950, -5950, -5950, -5950, -5950, -5950,
3320 : 47639, 54971, -5950, 252, 4295, 4297, 1380, -5950, -5950, -5950,
3321 : 92815, 13556, 4299, 13702, 1058, 3621, 92815, 92815, 4302, 4308,
3322 : 4310, 1777, 1602, 1967, 3577, 4664, 92815, -5950, -5950, -5950,
3323 : 4480, -5950, -5950, 92815, -5950, 1075, -5950, -5950, -5950, -5950,
3324 : 63688, -5950, 3413, 4191, 1518, 71864, 4794, 4794, 14397, 4553,
3325 : -5950, -5950, 173, 4639, -5950, 4376, 4588, 4376, 4318, 92815,
3326 : 267, 4319, 2583, -5950, 92815, 4320, 4458, 2314, 2314, 92815,
3327 : 92815, 92815, 2587, 2431, 2957, 4066, 1737, 4701, 75441, 4747,
3328 : 4085, 438, -5950, 92815, 4823, 92815, 3659, 3875, 92815, 4325,
3329 : -5950, -5950, 75952, 4549, 4522, 92815, 2640, 4259, 3608, 1455,
3330 : 92815, -5950, 1929, -5950, 2431, -5950, 92815, 83617, 45571, 4686,
3331 : -5950,121305, -5950, 2591, -5950, -5950, -5950, 4408, 21565, 3466,
3332 : 4457, 4459, 4336, 233, 4695, 92815, 1237, -5950, -5950, -5950,
3333 : -5950, -5950, -5950, 92815, 468, -5950, -5950, -5950, -5950, 4335,
3334 : -5950, 4838, 35081, 342, -5950, -5950, -5950, -5950, -5950, 4573,
3335 : -5950, 4352, -5950, -5950, 2763, 2312, 20725, -5950, 3334, 40900,
3336 : 21127, 21127, 21127, 35081, -5950, 35081, -5950, -5950, -5950, -5950,
3337 : 851, -5950, -5950, 4674, 4355, 4624, 4624, 4624, -5950, 35081,
3338 : 1190, -5950, -5950, 1454, 4773, 21016, 3745, 64710, 4357, -5950,
3339 : 40900, 2604, -5950, 3088, 92815, 2605, -5950, 21127, 92815, -5950,
3340 : -5950, 35081, -5950, 2610, -5950, 4359, 59, 4360, 25091, 4362,
3341 : -5950, -5950, -5950, -5950, -5950, 21127, 4363, -5950, 4848, 1601,
3342 : -5950, -5950, 919, 3108, 4410, 92815, 2611, -5950, 828, 933,
3343 : 89, -5950, 4855, 4855, 21127, 1785, 2813, 432, -5950, 92815,
3344 : 4453, -5950, 4613, 4364, 3539, -5950, 4375, -5950, -5950, 442,
3345 : 3213, 92815, 4542, -5950, 4594, 4594, 4522, 4715, -5950, -5950,
3346 : 35081, 4432, -5950, 1128, 3621, 92815,119814, -5950, 167, 4740,
3347 : -5950,119814,119814, -5950, -5950, -5950, 35081, -5950, 4484, -5950,
3348 : -5950, -5950, 35081, 35081, 74419, -5950, -5950, 92815, 92815, 92815,
3349 : 92815, 92815, -5950, 1007, -5950, -5950, 2615, -5950, 46605, -5950,
3350 : -5950, 3388, 1518, 3388, 1931, -5950, -5950, 3388, 3388, -5950,
3351 : 3466, -5950, 4794, 1490, -5950, -5950, 4446, 4381, 35081, -5950,
3352 : 4711, -5950, 199, 4614, -5950, 4386, -5950, 71864, 4921, -5950,
3353 : 63688, 3875, 4368, 92815, -5950, -5950, -5950, -5950, -5950, -5950,
3354 : -5950, -5950, -5950, -5950, -5950, -5950, 2620, 4085, 4769, 3586,
3355 : 4261, -5950, 92815, 4438, -5950, 44020, 4085, 2431, 2353, -5950,
3356 : 4259, 3875, 4368, -5950, -5950, 4406, 4282, 3608, 2640, 4555,
3357 : -5950, 4557, -5950, 4866, 4631, 4874, 3659, -5950, 4062, 2622,
3358 : 92815, -5950, -5950, 5328,122299,119814, -5950, -5950, -5950, 4409,
3359 : 4813, 4462, 4465, -5950, -5950, -5950, 233, -5950, 114, 4818,
3360 : 4471, -5950, 4477, 92815, -5950, -5950, 4085, 1007, 35081, 63688,
3361 : 21127, -5950, -5950, 4811, -5950, 259, 275, 248, 4653, 4427,
3362 : 35081, 3334, 2626, 2628, 4488, -5950, -5950, -5950, 3686, 38784,
3363 : 38784, 38784, 4430, 4799, 4801, 92815, -5950, 92815, 4642, -5950,
3364 : -5950, 92815, 710, 4431, 39842, 63688, 2630, -5950,118820, -5950,
3365 : 2632, 2655, -5950, 35081, 4436, 35081, -5950, 38255, 92815, 4439,
3366 : 3508, -5950, -5950, 2659, -5950, 4940, 2431, -5950, 3466, 45571,
3367 : -5950, 4576, -5950, 4714, -5950, -5950, 35081, 4537, 4538, -5950,
3368 : 4805, -5950, -5950, 92815, -5950, 92815, 4376, 54971, 3763, 442,
3369 : -5950, 92815, 3539, 3539, 4381, 14596, 35081, -5950, 4547, -5950,
3370 : -5950, 2668, 1711, -5950, -5950, 2670, 2675, 15151, 92815, 2676,
3371 : 2680, -5950, 2702, 2873, 3596, 1967, 3596, -5950, 3577, -5950,
3372 : -5950, 63688, -5950, -5950, 67776, -5950, -5950, -5950, 1518, -5950,
3373 : 1518, 4688, 57566, 58077, 1518, 1518, -5950, -5950, -5950, -5950,
3374 : -5950, 2453, -5950, 15198, 4556, -5950, -5950, -5950, 557, -5950,
3375 : 4679, 4680, -5950, 4455, -5950, 2715, -5950, 371, 4592, 4085,
3376 : -5950, -5950, 92815, 4960, 4962, -5950, 1432, 92815, 3710, -5950,
3377 : 4261, 3659, 3608, 371, 4259, 4522, 46088, 4315, 2640, 4282,
3378 : -5950, -5950, 4692, -5950, 4693, -5950, 4467, 4798, -5950, 2226,
3379 : 333, -5950, -5950, -5950, 1218, 4827, 4828, -5950, -5950, -5950,
3380 : 3388, -5950, 1948, 4473, 4853, -5950, -5950, -5950, -5950, -5950,
3381 : -5950, -5950, 4514, 294, 299, -5950, 4515, -5950, 4658, 4661,
3382 : 2312, 2395, -5950, 21127, -5950, -5950, -5950, 40371, 4629, 1344,
3383 : 17868, 4861, -5950, 4861, 4861, -5950, 4958, 4959, 1144, -5950,
3384 : 4938, 2717, 41952, -5950, -5950, -5950, 92815, 4706, 1813, 4989,
3385 : 4652, 2726, 38255, 2727, -5950, -5950, -5950, -5950, -5950, 919,
3386 : 92815, -5950, -5950, -5950, 49707, 4971, 21127, 939, 1634, 67265,
3387 : 3621, 2733, 3842, 4496, -5950, 3763, 4502, 4376, 4376, -5950,
3388 : -5950, 21127, 92815, 71864, 4978, -5950, -5950, -5950, -5950, 3621,
3389 : 4591, -5950, -5950, 74419, -5950, 92815, -5950, -5950, 2738, -5950,
3390 : -5950, -5950, 58588, -5950, 4222, -5950, 4222, -5950, -5950, 1436,
3391 : 65, 92815, 1203, 1203, 4917, -5950, 4575, -5950, 4511, -5950,
3392 : 5043, 4654, 92815, -5950, -5950, 252, 2431, 75441, 4085, -5950,
3393 : -5950, 2640, 4259, 3608, 35081, 2740, -5950, 4613, 412, -5950,
3394 : 4282, 4315, -5950, -5950, 45571, 4517, 3322, 4914, -5950, -5950,
3395 : -5950, 2708, 71864, 71864, 92815, -5950, -5950, -5950, 35081, 267,
3396 : -5950, 4562, -5950, 4566, -5950, -5950, 4748, 4757, 4539, 2312,
3397 : -5950, 5039, -5950, -5950, -5950, -5950, -5950, 998, -5950, -5950,
3398 : -5950, 92815, 92815, 92815, 4541, -5950, 3850, -5950, -5950, 40900,
3399 : 40900, 4777, -5950, 40900, 1813, -5950, 92815, -5950, 4544, -5950,
3400 : -5950, 2764, -5950, -5950, -5950, 1502, 1480, -5950, 4784, 4676,
3401 : -5950, -5950, 4787, 222, -5950, 432, -5950, -5950, -5950, -5950,
3402 : -5950, 92815, 4588, -5950, -5950, 3621, -5950, 92815, -5950, 4548,
3403 : -5950, -5950, -5950, 67776, -5950, 4222, -5950, -5950, -5950, -5950,
3404 : -5950, -5950, 5059, -5950, 1497, -5950, -5950, -5950, -5950, 92815,
3405 : 4085, 4173, 4261, -5950, 4282, 3608, 2640, 15863, -5950, 46088,
3406 : 92815, 92815, 4315, -5950, 2770, 45571, 3586, 4700, -5950, 3145,
3407 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, 966, 4546, 4558,
3408 : -5950, -5950, 16222, 71864, -5950, -5950, 4699, 4702, -5950, 4780,
3409 : 39313, 4707, -5950, 4775, -5950, 1405, 1414, 1922,115810, 5013,
3410 : 710, 710, -5950, 710, -5950, -5950, 35081, -5950, -5950, -5950,
3411 : -5950, -5950, 49707, -5950, 4616, 75, 4564, 92815, -5950, -5950,
3412 : 1909, 4158, 4614, 1909, 1909, -5950, -5950, 35081, -5950, -5950,
3413 : 2397, 2397, 4085, -5950, -5950, 4315, 2640, 4282, 4613, -5950,
3414 : -5950, -5950, -5950, 4798, -5950, 2781, 4315, 4471, 2744, -5950,
3415 : -5950, 2750, 2681, 4655, 4919, -5950, 4565, 4678, 4681, 4952,
3416 : -5950, -5950, -5950, 92815, 92815, 65221, 92815, 361, 2794, -5950,
3417 : 119317, 92815, 16487, 4571, -5950, 4632, 35081, 2801, 4577, -5950,
3418 : 2819, -5950, -5950, -5950, -5950, 4282, 4315, 92815, 3322, -5950,
3419 : 45571, 3466, 4955, -5950, 3145, 4698, 4703, 63177, -5950, -5950,
3420 : -5950, -5950, -5950, 5109, 354, 4996, -5950, -5950, 1518, 2312,
3421 : 115810, 4802, 279, 2826, -5950, 4644, 2831, 1198, -5950, 1909,
3422 : -5950, 4315, -5950, -5950, 3586, -5950, -5950, 267, -5950, 4628,
3423 : 4633, -5950, 2833, -5950, -5950, -5950, -5950, 35081, 65221, 2118,
3424 : 4599, -5950, -5950, 4790, 1518, 2763, 4790, -5950, -5950, -5950,
3425 : 75, -5950, -5950, 4315, 71864, 4945, 4947, -5950, 63177, 935,
3426 : 4656, 92815, 4601, -5950, 2312, -5950, 248, 2763, 4662, 3466,
3427 : 4602, 71864, 71864, -5950, 4605, 92815, 5047,115810, -5950, 2312,
3428 : 248, 4644, -5950, 63177, -5950, -5950, 1518, -5950, 4607, 2835,
3429 : -5950, 2312, -5950, 2837,115810, -5950, -5950, -5950, 2841, -5950
3430 : };
3431 :
3432 : /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
3433 : Performed when YYTABLE does not specify something else to do. Zero
3434 : means the default is an error. */
3435 : static const yytype_int16 yydefact[] =
3436 : {
3437 : 1742, 1474, 679, 1563, 1562, 1474, 0, 269, 0, 1574,
3438 : 0, 1474, 438, 1131, 0, 0, 0, 0, 679, 1474,
3439 : 0, 1742, 0, 0, 0, 0, 0, 1755, 0, 0,
3440 : 0, 0, 0, 1271, 0, 0, 0, 1474, 0, 0,
3441 : 1762, 0, 0, 0, 0, 1755, 0, 1576, 0, 0,
3442 : 0, 0, 1762, 0, 0, 0, 0, 0, 2, 9,
3443 : 10, 45, 80, 81, 38, 37, 98, 63, 24, 71,
3444 : 133, 132, 134, 50, 46, 88, 33, 35, 47, 51,
3445 : 73, 75, 40, 53, 64, 110, 72, 31, 70, 76,
3446 : 96, 58, 19, 20, 59, 21, 60, 22, 61, 106,
3447 : 82, 99, 43, 69, 30, 52, 78, 79, 12, 54,
3448 : 86, 18, 65, 66, 68, 91, 92, 93, 116, 94,
3449 : 128, 49, 125, 103, 104, 122, 105, 123, 16, 107,
3450 : 62, 23, 119, 118, 120, 89, 55, 90, 77, 97,
3451 : 117, 34, 121, 25, 26, 28, 29, 27, 67, 36,
3452 : 74, 39, 95, 124, 114, 109, 129, 127, 11, 135,
3453 : 111, 83, 14, 15, 100, 13, 32, 57, 17, 42,
3454 : 41, 56, 48, 131, 44, 1574, 102, 115, 101, 84,
3455 : 108, 87, 112, 130, 113, 85, 126, 1706, 1705, 1766,
3456 : 1709, 1741, 0, 1721, 1473, 1472, 1487, 0, 0, 0,
3457 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3458 : 0, 0, 0, 678, 0, 0, 0, 0, 0, 0,
3459 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3460 : 0, 0, 0, 1484, 2470, 2487, 2488, 2489, 2490, 2491,
3461 : 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501,
3462 : 2503, 2502, 2504, 2505, 2880, 2506, 2507, 2508, 2817, 2818,
3463 : 2881, 2819, 2820, 2509, 2510, 2511, 2512, 2513, 2514, 2515,
3464 : 2516, 2517, 2821, 2822, 2518, 2519, 2520, 2521, 2522, 2823,
3465 : 2882, 2523, 2524, 2525, 2526, 2527, 2528, 2883, 2529, 2530,
3466 : 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2884, 2539,
3467 : 2540, 2541, 2885, 2542, 2543, 2544, 2545, 2546, 2547, 2824,
3468 : 2825, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556,
3469 : 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566,
3470 : 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576,
3471 : 2577, 2578, 2826, 2579, 2580, 2581, 2582, 2827, 2583, 2584,
3472 : 2585, 2586, 2828, 2587, 2588, 2589, 2590, 2886, 2887, 2591,
3473 : 2592, 2593, 2594, 2595, 2829, 2830, 2596, 2597, 2598, 2599,
3474 : 2600, 2601, 2602, 2888, 2603, 2604, 2605, 2606, 2607, 2608,
3475 : 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2889, 2831, 2616,
3476 : 2617, 2618, 2619, 2832, 2833, 2834, 2620, 2890, 2891, 2621,
3477 : 2892, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843,
3478 : 2844, 2845, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629,
3479 : 2846, 2893, 2630, 2894, 2631, 2632, 2633, 2634, 2635, 2636,
3480 : 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2847, 2644, 2645,
3481 : 2646, 2647, 2648, 2649, 2650, 2651, 2848, 2895, 2849, 2652,
3482 : 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2850, 2851, 2660,
3483 : 2661, 2662, 2896, 2663, 2852, 2664, 2853, 2665, 2666, 2667,
3484 : 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2854,
3485 : 2897, 2677, 2898, 2855, 2678, 2679, 2680, 2681, 2682, 2683,
3486 : 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2856,
3487 : 2693, 2857, 2696, 2694, 2695, 2697, 2698, 2699, 2700, 2701,
3488 : 2702, 2703, 2704, 2705, 2706, 2707, 2858, 2708, 2709, 2710,
3489 : 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720,
3490 : 2721, 2722, 2723, 2724, 2725, 2899, 2726, 2727, 2728, 2729,
3491 : 2730, 2859, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738,
3492 : 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2860,
3493 : 2748, 2749, 2900, 2750, 2751, 2861, 2752, 2753, 2754, 2755,
3494 : 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765,
3495 : 2766, 2767, 2862, 2768, 2769, 2770, 2771, 2901, 2772, 2773,
3496 : 2774, 2775, 2776, 2777, 2778, 2863, 2864, 2779, 2780, 2865,
3497 : 2781, 2866, 2782, 2783, 2784, 2785, 2786, 2787, 2789, 2788,
3498 : 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799,
3499 : 2800, 2867, 2868, 2801, 2902, 2802, 2803, 2804, 2805, 2806,
3500 : 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2869, 2870, 2871,
3501 : 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2814, 2815,
3502 : 2816, 146, 0, 0, 2437, 2471, 2472, 2475, 2470, 408,
3503 : 407, 1695, 2434, 2471, 1573, 0, 1552, 679, 0, 1487,
3504 : 437, 1742, 0, 0, 0, 0, 0, 0, 898, 0,
3505 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3506 : 0, 138, 0, 140, 0, 0, 462, 461, 0, 0,
3507 : 1103, 467, 0, 0, 0, 0, 0, 669, 1615, 2694,
3508 : 1613, 1696, 270, 273, 274, 271, 272, 2453, 0, 1243,
3509 : 1244, 1246, 0, 0, 1256, 936, 937, 0, 0, 0,
3510 : 950, 0, 0, 0, 934, 0, 0, 0, 956, 0,
3511 : 953, 0, 0, 957, 954, 931, 955, 938, 0, 930,
3512 : 0, 0, 1256, 958, 0, 0, 932, 0, 0, 0,
3513 : 0, 1487, 1612, 468, 1742, 0, 1596, 1597, 1598, 1574,
3514 : 1586, 1599, 1591, 1593, 1592, 1594, 1595, 1590, 2452, 2489,
3515 : 1026, 1026, 1026, 1026, 1023, 1024, 1026, 1026, 1026, 2714,
3516 : 0, 0, 1005, 0, 1007, 2454, 1026, 1031, 2497, 555,
3517 : 555, 555, 0, 1030, 1035, 555, 0, 1455, 1496, 2436,
3518 : 1754, 0, 1006, 1454, 2779, 1602, 0, 0, 0, 0,
3519 : 2733, 1464, 254, 2745, 2863, 2779, 253, 248, 249, 222,
3520 : 0, 0, 1030, 555, 0, 1487, 1462, 1002, 1761, 1759,
3521 : 0, 2421, 2516, 2533, 2633, 245, 2726, 2735, 2745, 2863,
3522 : 2779, 2813, 201, 211, 206, 0, 263, 2745, 2863, 2779,
3523 : 259, 1484, 0, 1722, 1872, 1871, 2430, 0, 1457, 1456,
3524 : 1575, 0, 1578, 0, 2709, 1726, 1729, 1580, 1727, 2473,
3525 : 1965, 1994, 1972, 1994, 1994, 1961, 1961, 2563, 1974, 1962,
3526 : 1963, 1999, 2019, 0, 1994, 1961, 1966, 0, 1964, 2002,
3527 : 2002, 1989, 3, 1944, 1945, 1946, 1947, 1975, 1976, 1948,
3528 : 1981, 1982, 1986, 1949, 2016, 1952, 1961, 2474, 1763, 1764,
3529 : 2421, 4, 2467, 5, 2348, 2466, 6, 7, 1718, 0,
3530 : 0, 1, 1742, 0, 1585, 1758, 1758, 0, 1758, 0,
3531 : 1710, 1718, 1713, 1717, 0, 0, 0, 0, 0, 0,
3532 : 1458, 0, 0, 0, 961, 0, 1499, 1087, 0, 0,
3533 : 0, 0, 0, 1340, 0, 1140, 1139, 2476, 2459, 2460,
3534 : 2461, 0, 2457, 2458, 2477, 2478, 2479, 0, 2602, 1340,
3535 : 0, 0, 2264, 2275, 2276, 2277, 2520, 2583, 2272, 2273,
3536 : 2274, 2266, 2267, 2268, 2269, 2270, 2271, 0, 0, 1238,
3537 : 2265, 0, 2602, 0, 1340, 0, 173, 0, 150, 1340,
3538 : 0, 0, 2602, 0, 0, 2602, 0, 0, 0, 0,
3539 : 0, 2602, 0, 0, 0, 0, 0, 173, 2638, 0,
3540 : 150, 2602, 0, 0, 1478, 0, 0, 0, 1480, 1483,
3541 : 1470, 0, 2345, 0, 2346, 2438, 1567, 0, 1566, 1560,
3542 : 1570, 1565, 1555, 0, 2430, 0, 0, 0, 0, 944,
3543 : 0, 0, 934, 0, 0, 0, 945, 0, 946, 947,
3544 : 0, 0, 0, 0, 943, 0, 1468, 1460, 0, 1604,
3545 : 1606, 1605, 1607, 1603, 555, 0, 0, 0, 2602, 0,
3546 : 150, 1538, 0, 2602, 150, 0, 0, 466, 465, 150,
3547 : 2457, 464, 463, 2520, 2583, 0, 1130, 0, 1213, 150,
3548 : 2602, 0, 194, 2602, 738, 2602, 1580, 139, 0, 682,
3549 : 0, 852, 2638, 150, 0, 0, 0, 0, 0, 0,
3550 : 142, 0, 0, 0, 0, 0, 0, 0, 668, 679,
3551 : 1616, 1614, 0, 1247, 247, 246, 1245, 948, 2602, 1172,
3552 : 145, 0, 0, 2602, 1519, 2602, 145, 965, 949, 0,
3553 : 935, 2602, 145, 1136, 2602, 2462, 183, 0, 933, 2520,
3554 : 2583, 2602, 145, 1240, 0, 2602, 145, 2602, 179, 2602,
3555 : 145, 2602, 145, 2602, 683, 0, 0, 2602, 145, 2602,
3556 : 2638, 181, 952, 2602, 145, 959, 2602, 145, 2432, 2602,
3557 : 0, 1471, 0, 1608, 0, 1588, 2867, 0, 1742, 1026,
3558 : 1025, 0, 1026, 0, 1026, 0, 1026, 0, 1026, 0,
3559 : 0, 0, 1026, 2455, 2456, 1008, 0, 1032, 0, 1040,
3560 : 0, 1039, 1038, 1037, 0, 0, 0, 1041, 0, 1876,
3561 : 1650, 0, 1452, 1467, 0, 0, 0, 142, 0, 1269,
3562 : 1266, 142, 1268, 1267, 142, 142, 1463, 252, 250, 0,
3563 : 0, 0, 0, 0, 0, 1469, 0, 1461, 0, 0,
3564 : 0, 2440, 2442, 2443, 2278, 2348, 0, 2818, 2819, 2820,
3565 : 2337, 0, 2821, 2822, 2823, 2882, 2152, 2138, 2147, 2153,
3566 : 2139, 2141, 2148, 2824, 2825, 2087, 2826, 2827, 2450, 2828,
3567 : 2829, 2830, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839,
3568 : 2840, 2841, 2842, 2843, 2845, 2846, 2143, 2145, 2847, 2848,
3569 : 2849, 2851, 0, 2451, 2852, 2853, 2672, 2855, 2856, 2858,
3570 : 2859, 2149, 2861, 2862, 2150, 2863, 2864, 2865, 2866, 2449,
3571 : 510, 2151, 2868, 2870, 2871, 2872, 2873, 2875, 2876, 2877,
3572 : 2878, 0, 0, 0, 2427, 0, 2116, 0, 1953, 1954,
3573 : 1977, 1978, 1955, 1983, 1984, 1956, 0, 1957, 2426, 2020,
3574 : 2223, 2115, 2133, 0, 2121, 2122, 0, 2114, 2110, 2225,
3575 : 1744, 2422, 0, 2111, 2439, 2441, 2338, 1744, 2420, 214,
3576 : 265, 0, 266, 2428, 2745, 202, 244, 216, 243, 217,
3577 : 215, 0, 2518, 203, 0, 0, 204, 0, 0, 0,
3578 : 0, 262, 260, 0, 1459, 0, 1874, 1873, 2431, 970,
3579 : 0, 1577, 1574, 2288, 0, 1728, 0, 0, 0, 1993,
3580 : 1980, 1988, 1987, 0, 1970, 1969, 1968, 0, 1967, 1994,
3581 : 1994, 1992, 1971, 1944, 0, 0, 0, 1998, 0, 1996,
3582 : 1940, 1936, 0, 2005, 2006, 2007, 2004, 2017, 2003, 0,
3583 : 1950, 2008, 0, 1961, 1958, 1829, 0, 1708, 1707, 8,
3584 : 0, 1582, 1584, 1558, 1580, 1756, 1757, 0, 0, 0,
3585 : 0, 0, 0, 0, 0, 1816, 1774, 1775, 1777, 1813,
3586 : 1817, 1825, 0, 1714, 0, 0, 0, 1878, 0, 0,
3587 : 1485, 0, 0, 0, 0, 0, 1171, 0, 0, 0,
3588 : 0, 962, 0, 0, 0, 1505, 0, 1507, 1508, 1509,
3589 : 0, 0, 0, 1510, 1511, 1499, 256, 1518, 1515, 1498,
3590 : 1500, 1513, 0, 0, 0, 0, 0, 0, 0, 1530,
3591 : 0, 187, 188, 0, 695, 679, 0, 2602, 0, 0,
3592 : 0, 0, 1181, 1188, 1339, 0, 0, 0, 0, 0,
3593 : 0, 0, 0, 1182, 1180, 0, 1183, 258, 1193, 1220,
3594 : 1223, 0, 0, 1138, 1141, 0, 0, 0, 0, 0,
3595 : 1330, 0, 0, 0, 1330, 0, 0, 0, 1339, 0,
3596 : 0, 0, 0, 0, 0, 0, 0, 0, 281, 283,
3597 : 296, 363, 0, 660, 0, 0, 0, 663, 0, 2602,
3598 : 1340, 0, 0, 0, 1242, 0, 0, 0, 0, 0,
3599 : 0, 0, 0, 1223, 0, 0, 0, 0, 0, 0,
3600 : 0, 0, 0, 148, 149, 154, 0, 0, 0, 0,
3601 : 1223, 0, 0, 0, 0, 0, 0, 0, 644, 659,
3602 : 647, 0, 0, 0, 0, 0, 655, 0, 0, 150,
3603 : 657, 286, 634, 640, 0, 0, 0, 745, 744, 0,
3604 : 0, 0, 0, 0, 0, 1428, 0, 1427, 0, 0,
3605 : 0, 0, 0, 1528, 1527, 0, 0, 0, 0, 0,
3606 : 0, 1330, 0, 275, 277, 0, 0, 0, 0, 0,
3607 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3608 : 400, 401, 0, 0, 0, 154, 0, 0, 1330, 0,
3609 : 288, 0, 0, 1479, 1476, 1477, 0, 1482, 0, 0,
3610 : 0, 0, 2124, 0, 2292, 1766, 2290, 1156, 2344, 0,
3611 : 2480, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911,
3612 : 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921,
3613 : 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931,
3614 : 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941,
3615 : 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951,
3616 : 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961,
3617 : 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971,
3618 : 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2341,
3619 : 2340, 2435, 2481, 2482, 2483, 2484, 2347, 1550, 0, 233,
3620 : 234, 232, 1568, 235, 1569, 1564, 0, 1551, 0, 0,
3621 : 0, 0, 0, 0, 0, 0, 2520, 2583, 0, 0,
3622 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3623 : 0, 0, 0, 0, 860, 1499, 1537, 0, 0, 0,
3624 : 688, 0, 2602, 0, 152, 899, 0, 850, 467, 0,
3625 : 0, 0, 0, 1404, 152, 0, 0, 190, 0, 0,
3626 : 742, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3627 : 0, 851, 0, 0, 152, 0, 2602, 637, 2602, 0,
3628 : 555, 555, 0, 0, 141, 138, 0, 0, 0, 0,
3629 : 0, 0, 0, 0, 1700, 1699, 1702, 1701, 0, 1698,
3630 : 0, 143, 144, 0, 1230, 1255, 0, 0, 0, 0,
3631 : 0, 926, 951, 0, 0, 1224, 0, 0, 2602, 145,
3632 : 2602, 0, 2602, 0, 0, 0, 1232, 145, 0, 1226,
3633 : 0, 0, 1228, 0, 1430, 0, 942, 940, 939, 941,
3634 : 0, 0, 924, 0, 0, 0, 0, 0, 919, 0,
3635 : 0, 921, 0, 0, 0, 0, 1742, 1587, 0, 1016,
3636 : 0, 1020, 0, 1011, 0, 1017, 0, 1012, 1009, 1010,
3637 : 0, 1015, 0, 0, 556, 562, 0, 0, 2545, 2562,
3638 : 0, 2591, 2626, 2627, 2682, 2700, 2729, 2735, 2741, 0,
3639 : 2772, 2784, 0, 1046, 1084, 1036, 754, 0, 0, 1660,
3640 : 1453, 2297, 0, 1742, 0, 0, 1270, 0, 0, 138,
3641 : 251, 223, 0, 0, 1084, 0, 2733, 1466, 1001, 679,
3642 : 0, 2112, 0, 2119, 2120, 2336, 0, 0, 0, 0,
3643 : 0, 0, 2118, 0, 0, 0, 0, 2393, 0, 0,
3644 : 2393, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3645 : 0, 2043, 0, 0, 2296, 0, 0, 2296, 0, 0,
3646 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3647 : 2044, 2025, 2026, 2116, 2288, 0, 2117, 2446, 0, 2016,
3648 : 2485, 2278, 0, 2275, 2276, 2277, 2981, 2982, 2983, 2984,
3649 : 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994,
3650 : 2995, 2996, 2997, 0, 2998, 2999, 3000, 3001, 3002, 3004,
3651 : 3003, 3005, 3006, 3007, 3008, 3009, 3010, 2351, 3012, 3013,
3652 : 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023,
3653 : 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033,
3654 : 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043,
3655 : 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053,
3656 : 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063,
3657 : 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073,
3658 : 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083,
3659 : 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093,
3660 : 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103,
3661 : 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113,
3662 : 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123,
3663 : 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133,
3664 : 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143,
3665 : 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153,
3666 : 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163,
3667 : 3164, 3165, 3166, 3167, 3168, 3169, 2058, 3170, 3171, 3172,
3668 : 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182,
3669 : 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192,
3670 : 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202,
3671 : 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212,
3672 : 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222,
3673 : 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232,
3674 : 3233, 3234, 3235, 2060, 3236, 3237, 3238, 3239, 3240, 3241,
3675 : 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251,
3676 : 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261,
3677 : 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271,
3678 : 3272, 3273, 3274, 3275, 3278, 3276, 3277, 3279, 3280, 3281,
3679 : 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291,
3680 : 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301,
3681 : 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311,
3682 : 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321,
3683 : 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331,
3684 : 3332, 3333, 3334, 3336, 3335, 3337, 3338, 3339, 3340, 3341,
3685 : 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351,
3686 : 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361,
3687 : 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371,
3688 : 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381,
3689 : 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391,
3690 : 3393, 3392, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401,
3691 : 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411,
3692 : 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421,
3693 : 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431,
3694 : 3432, 3433, 3434, 3435, 0, 2272, 2273, 2274, 2266, 2267,
3695 : 2268, 2269, 2270, 2271, 2282, 0, 0, 2425, 2486, 0,
3696 : 2225, 0, 2040, 0, 2233, 0, 0, 1829, 0, 2444,
3697 : 2339, 1829, 267, 268, 264, 0, 0, 219, 218, 0,
3698 : 237, 241, 242, 213, 240, 0, 236, 221, 2209, 2208,
3699 : 220, 212, 209, 207, 224, 226, 227, 210, 208, 261,
3700 : 0, 0, 0, 145, 1585, 1572, 0, 0, 2351, 0,
3701 : 2286, 0, 0, 2284, 0, 0, 0, 1826, 0, 1730,
3702 : 0, 1734, 0, 0, 0, 1991, 1990, 1941, 1937, 0,
3703 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3704 : 0, 0, 963, 0, 1959, 0, 1894, 2468, 2469, 2349,
3705 : 1762, 1585, 0, 1581, 1725, 1724, 1767, 1768, 1122, 1723,
3706 : 1796, 1797, 0, 0, 0, 0, 1822, 1820, 1787, 1778,
3707 : 1786, 0, 0, 1784, 0, 1788, 2020, 1815, 1712, 1772,
3708 : 1773, 1776, 1711, 0, 1818, 0, 1663, 1816, 1777, 1647,
3709 : 0, 1618, 0, 0, 1879, 0, 0, 1486, 0, 0,
3710 : 0, 1151, 1153, 0, 1152, 0, 1155, 0, 1164, 0,
3711 : 0, 1150, 1169, 0, 1158, 1156, 0, 1526, 0, 0,
3712 : 0, 0, 0, 1506, 0, 0, 0, 2772, 255, 1509,
3713 : 1514, 1501, 1512, 0, 0, 0, 0, 0, 1086, 1085,
3714 : 0, 0, 0, 1533, 547, 0, 365, 0, 0, 0,
3715 : 0, 0, 0, 0, 0, 846, 843, 0, 0, 842,
3716 : 0, 693, 0, 0, 0, 0, 0, 0, 0, 0,
3717 : 0, 0, 0, 718, 0, 1330, 0, 294, 0, 1190,
3718 : 0, 1189, 0, 1194, 0, 0, 1191, 1186, 1187, 2735,
3719 : 2745, 2779, 257, 1192, 1222, 0, 1221, 1217, 0, 1133,
3720 : 0, 1134, 0, 0, 0, 0, 0, 0, 0, 2575,
3721 : 0, 2602, 0, 0, 510, 302, 326, 537, 0, 1329,
3722 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3723 : 0, 0, 0, 0, 0, 349, 0, 0, 352, 351,
3724 : 0, 0, 0, 0, 0, 357, 0, 335, 0, 336,
3725 : 0, 356, 0, 0, 0, 661, 662, 0, 0, 0,
3726 : 1330, 0, 290, 0, 0, 0, 0, 0, 0, 0,
3727 : 0, 1239, 0, 771, 0, 0, 2735, 1218, 0, 1413,
3728 : 0, 2771, 1414, 1417, 555, 0, 555, 1419, 0, 0,
3729 : 1416, 1418, 0, 0, 176, 0, 171, 175, 0, 0,
3730 : 2735, 1219, 0, 0, 0, 0, 0, 642, 643, 658,
3731 : 0, 648, 649, 645, 650, 651, 0, 0, 0, 0,
3732 : 0, 0, 0, 641, 0, 0, 740, 739, 743, 0,
3733 : 0, 0, 0, 0, 0, 1422, 0, 0, 1213, 0,
3734 : 0, 1421, 1429, 0, 0, 0, 0, 0, 0, 0,
3735 : 0, 0, 0, 1273, 1272, 0, 0, 0, 0, 1340,
3736 : 0, 889, 0, 0, 0, 0, 0, 0, 0, 0,
3737 : 0, 0, 178, 758, 0, 757, 0, 172, 177, 0,
3738 : 0, 0, 0, 0, 0, 0, 0, 231, 1475, 1481,
3739 : 1766, 1766, 1766, 2130, 0, 0, 0, 0, 1765, 2342,
3740 : 2345, 1555, 1561, 1554, 1553, 0, 0, 0, 0, 0,
3741 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3742 : 0, 0, 414, 411, 412, 414, 0, 0, 0, 0,
3743 : 862, 0, 865, 868, 1497, 494, 0, 0, 685, 718,
3744 : 0, 0, 470, 185, 0, 0, 0, 0, 773, 0,
3745 : 1213, 1212, 147, 138, 194, 468, 0, 193, 195, 197,
3746 : 198, 199, 196, 200, 0, 737, 741, 0, 0, 0,
3747 : 0, 681, 0, 0, 0, 0, 0, 0, 0, 1899,
3748 : 0, 0, 170, 0, 0, 632, 636, 0, 0, 0,
3749 : 0, 470, 598, 376, 2602, 0, 555, 0, 2602, 0,
3750 : 137, 0, 849, 0, 0, 0, 1175, 1175, 0, 0,
3751 : 787, 786, 0, 0, 0, 0, 0, 0, 1697, 145,
3752 : 1173, 0, 1520, 0, 145, 966, 145, 1137, 184, 2463,
3753 : 0, 928, 0, 0, 0, 0, 145, 1241, 916, 145,
3754 : 180, 145, 145, 684, 0, 145, 182, 0, 0, 145,
3755 : 960, 145, 2433, 0, 145, 1611, 2602, 555, 1589, 1013,
3756 : 1022, 1021, 1019, 1018, 1014, 0, 1033, 0, 554, 0,
3757 : 0, 0, 0, 0, 1054, 1055, 0, 0, 1051, 1056,
3758 : 0, 1058, 1042, 1044, 1052, 1053, 1059, 1048, 1047, 1060,
3759 : 1061, 0, 0, 0, 1073, 752, 0, 0, 0, 0,
3760 : 1657, 0, 1655, 0, 1877, 1659, 1648, 1601, 0, 1600,
3761 : 0, 625, 1264, 1263, 1265, 0, 1030, 0, 145, 0,
3762 : 1465, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3763 : 0, 0, 2301, 0, 2302, 0, 0, 2335, 2331, 0,
3764 : 0, 0, 0, 0, 2305, 2308, 2309, 2310, 2307, 2311,
3765 : 2306, 0, 0, 2312, 0, 0, 2386, 2403, 0, 2116,
3766 : 2386, 2414, 0, 2413, 2419, 0, 2292, 2020, 0, 0,
3767 : 2410, 2404, 0, 2410, 0, 0, 2393, 0, 0, 0,
3768 : 0, 2193, 0, 0, 0, 2292, 2295, 0, 0, 2859,
3769 : 0, 0, 0, 0, 2088, 0, 0, 2259, 0, 2292,
3770 : 0, 0, 0, 0, 0, 0, 0, 2288, 2327, 0,
3771 : 508, 0, 2078, 0, 0, 0, 2207, 0, 2204, 0,
3772 : 0, 0, 0, 2348, 0, 0, 2447, 2021, 2036, 2037,
3773 : 2038, 2041, 2424, 2024, 0, 2350, 0, 0, 2022, 2049,
3774 : 0, 2328, 2074, 0, 2079, 2064, 2394, 2313, 2314, 2315,
3775 : 2316, 2081, 0, 2057, 2062, 2066, 0, 2403, 2045, 0,
3776 : 2042, 0, 2351, 2287, 0, 2285, 0, 2033, 2034, 2035,
3777 : 2027, 2028, 2029, 2030, 2031, 2032, 2039, 2263, 2261, 2262,
3778 : 0, 0, 2233, 0, 0, 2061, 0, 0, 2132, 2594,
3779 : 2633, 0, 1755, 1755, 1755, 1743, 1753, 2423, 1894, 1766,
3780 : 1894, 2429, 0, 0, 2016, 0, 1875, 968, 969, 967,
3781 : 1557, 1571, 1585, 2289, 1579, 1732, 0, 0, 0, 1960,
3782 : 1973, 0, 2000, 2001, 2002, 2002, 0, 1942, 0, 1985,
3783 : 2010, 2011, 2012, 2013, 2014, 2015, 0, 2009, 1951, 964,
3784 : 2835, 2844, 0, 2731, 2879, 0, 1855, 1828, 1830, 1840,
3785 : 1855, 1862, 1855, 1855, 2134, 1892, 2135, 2136, 2430, 0,
3786 : 1799, 2465, 1559, 1583, 0, 1120, 1121, 0, 1125, 2859,
3787 : 2731, 0, 0, 0, 0, 1789, 1823, 0, 1814, 0,
3788 : 2440, 1790, 2439, 1791, 1794, 1795, 1785, 1824, 1661, 0,
3789 : 1819, 1716, 1715, 0, 1897, 0, 0, 0, 1632, 1620,
3790 : 0, 0, 1880, 0, 1829, 1665, 0, 2348, 1827, 1380,
3791 : 1274, 1341, 1154, 0, 1961, 1165, 0, 1149, 0, 1148,
3792 : 1961, 0, 1166, 0, 1961, 1381, 1275, 1342, 1382, 1276,
3793 : 1343, 1383, 1517, 1277, 1516, 1504, 1503, 1502, 0, 0,
3794 : 0, 0, 0, 0, 0, 0, 825, 2602, 145, 1531,
3795 : 1384, 0, 1278, 364, 1532, 1344, 1536, 845, 844, 0,
3796 : 0, 1345, 0, 694, 699, 0, 701, 702, 2520, 2583,
3797 : 703, 706, 707, 0, 709, 698, 697, 0, 0, 0,
3798 : 0, 0, 715, 720, 0, 0, 0, 0, 0, 0,
3799 : 1184, 1185, 1385, 1281, 0, 1346, 0, 1132, 0, 1282,
3800 : 186, 0, 0, 282, 0, 2602, 304, 0, 0, 0,
3801 : 0, 0, 0, 0, 0, 0, 825, 492, 825, 0,
3802 : 1332, 301, 333, 0, 348, 343, 344, 342, 2602, 145,
3803 : 2602, 145, 0, 0, 0, 0, 0, 345, 340, 341,
3804 : 337, 0, 0, 350, 2492, 2564, 2746, 0, 726, 728,
3805 : 0, 733, 353, 1302, 372, 371, 370, 0, 358, 0,
3806 : 377, 380, 0, 355, 334, 332, 329, 297, 0, 0,
3807 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 1234,
3808 : 0, 1388, 1347, 0, 1369, 1373, 0, 0, 0, 765,
3809 : 1391, 1288, 1350, 0, 555, 0, 0, 574, 574, 555,
3810 : 1402, 1289, 174, 1319, 163, 0, 0, 159, 0, 0,
3811 : 0, 0, 153, 1392, 1290, 1351, 0, 0, 1393, 1291,
3812 : 0, 0, 287, 635, 646, 652, 1296, 656, 653, 1359,
3813 : 654, 1400, 1292, 0, 1396, 1322, 1354, 390, 618, 389,
3814 : 1213, 1213, 1403, 1423, 1293, 1213, 0, 1330, 0, 276,
3815 : 278, 0, 142, 0, 1294, 0, 1352, 1395, 1321, 0,
3816 : 0, 0, 0, 0, 0, 0, 0, 0, 1539, 0,
3817 : 0, 0, 0, 0, 0, 145, 0, 0, 0, 1332,
3818 : 2602, 145, 887, 1394, 0, 1327, 0, 1367, 0, 0,
3819 : 0, 402, 0, 1320, 1330, 0, 289, 1298, 0, 1361,
3820 : 0, 0, 229, 228, 230, 0, 0, 0, 0, 2293,
3821 : 2294, 0, 2291, 2125, 2344, 0, 1549, 990, 976, 989,
3822 : 0, 972, 2562, 0, 975, 977, 0, 0, 0, 978,
3823 : 982, 983, 0, 974, 971, 973, 0, 413, 0, 0,
3824 : 782, 783, 0, 0, 0, 0, 864, 0, 0, 1529,
3825 : 0, 150, 692, 0, 0, 0, 687, 717, 722, 0,
3826 : 0, 0, 0, 469, 473, 477, 478, 479, 0, 0,
3827 : 0, 0, 164, 151, 0, 905, 0, 555, 0, 775,
3828 : 1213, 1406, 0, 194, 189, 0, 0, 738, 0, 1580,
3829 : 0, 0, 613, 616, 615, 0, 376, 859, 857, 856,
3830 : 858, 880, 855, 0, 1898, 1900, 0, 0, 0, 0,
3831 : 0, 0, 625, 472, 0, 0, 562, 0, 601, 0,
3832 : 0, 0, 0, 598, 0, 0, 0, 2473, 0, 876,
3833 : 848, 0, 1143, 0, 1161, 1144, 0, 0, 0, 0,
3834 : 1198, 1205, 1174, 1199, 1176, 1205, 0, 0, 788, 792,
3835 : 791, 795, 793, 0, 789, 666, 1703, 1704, 0, 1231,
3836 : 0, 0, 1525, 0, 1523, 927, 1225, 145, 0, 145,
3837 : 0, 145, 1233, 1227, 1229, 1431, 0, 925, 0, 0,
3838 : 918, 920, 0, 922, 0, 1034, 557, 0, 0, 0,
3839 : 0, 0, 0, 1050, 664, 1057, 0, 0, 0, 1072,
3840 : 1067, 1069, 0, 1084, 1078, 0, 751, 0, 0, 1658,
3841 : 1651, 1653, 1652, 0, 0, 1649, 2298, 917, 0, 631,
3842 : 0, 1084, 1075, 0, 0, 0, 0, 0, 0, 0,
3843 : 0, 0, 0, 0, 1760, 2299, 2300, 0, 0, 0,
3844 : 2332, 0, 0, 2169, 0, 2140, 2142, 2155, 0, 2170,
3845 : 2123, 0, 2385, 2382, 0, 0, 0, 2386, 2393, 2189,
3846 : 0, 0, 0, 2393, 0, 2413, 0, 0, 0, 2184,
3847 : 2186, 0, 0, 0, 2403, 2403, 0, 2191, 0, 0,
3848 : 2171, 2144, 2146, 2156, 0, 0, 2279, 0, 2159, 2158,
3849 : 0, 2090, 2091, 0, 0, 0, 0, 0, 0, 0,
3850 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3851 : 0, 2105, 2160, 2258, 0, 0, 0, 2162, 2161, 0,
3852 : 0, 2326, 0, 0, 0, 2167, 509, 2172, 0, 0,
3853 : 0, 0, 2178, 0, 2215, 0, 0, 0, 2113, 2289,
3854 : 0, 0, 0, 0, 0, 0, 0, 2396, 2397, 2398,
3855 : 2395, 0, 2080, 2065, 2083, 2059, 2063, 2067, 0, 2403,
3856 : 2082, 2085, 0, 0, 2053, 0, 0, 2051, 2075, 2047,
3857 : 0, 0, 2076, 0, 2131, 0, 0, 0, 2236, 2231,
3858 : 2232, 1755, 1755, 1755, 1755, 1752, 0, 0, 0, 1799,
3859 : 0, 1799, 205, 0, 238, 225, 1556, 1733, 1742, 1979,
3860 : 0, 1997, 1995, 1938, 1943, 2018, 0, 1855, 1862, 1855,
3861 : 1855, 0, 0, 1718, 0, 1840, 0, 1854, 1838, 1853,
3862 : 0, 0, 1868, 1866, 0, 1868, 0, 1868, 0, 1832,
3863 : 0, 1858, 1834, 1853, 1836, 1842, 0, 1884, 2431, 1893,
3864 : 0, 1812, 1769, 0, 2280, 1125, 0, 1771, 1793, 1792,
3865 : 0, 1782, 0, 1821, 1779, 1662, 1646, 0, 1637, 1624,
3866 : 1626, 1625, 0, 0, 1627, 2348, 0, 1637, 1619, 0,
3867 : 1670, 0, 0, 1897, 0, 1669, 0, 1961, 1146, 1147,
3868 : 0, 1170, 0, 1089, 1090, 0, 1088, 0, 0, 0,
3869 : 546, 549, 0, 1534, 0, 1401, 1318, 696, 0, 0,
3870 : 0, 0, 711, 670, 712, 714, 0, 0, 713, 716,
3871 : 719, 1330, 0, 295, 1304, 0, 1365, 1178, 0, 0,
3872 : 1135, 0, 0, 0, 0, 0, 1106, 536, 1105, 0,
3873 : 0, 0, 825, 0, 825, 0, 0, 541, 0, 491,
3874 : 488, 328, 327, 0, 0, 0, 0, 385, 0, 306,
3875 : 319, 383, 325, 0, 360, 0, 331, 0, 323, 346,
3876 : 338, 347, 339, 359, 361, 0, 730, 731, 729, 725,
3877 : 0, 732, 734, 0, 374, 0, 0, 0, 392, 354,
3878 : 391, 0, 1387, 0, 1330, 0, 291, 1300, 0, 1363,
3879 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3880 : 0, 0, 1368, 0, 0, 0, 0, 770, 0, 767,
3881 : 0, 574, 0, 1415, 0, 1412, 1410, 574, 0, 0,
3882 : 156, 155, 0, 162, 0, 0, 0, 0, 0, 0,
3883 : 1424, 1425, 1426, 0, 0, 0, 0, 0, 0, 396,
3884 : 0, 298, 300, 299, 0, 0, 0, 0, 0, 0,
3885 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3886 : 0, 403, 367, 0, 883, 0, 0, 0, 405, 0,
3887 : 0, 1379, 0, 0, 0, 0, 0, 1386, 1283, 2128,
3888 : 2129, 2126, 1766, 2343, 0, 0, 0, 987, 0, 0,
3889 : 0, 0, 416, 417, 150, 415, 440, 0, 825, 0,
3890 : 0, 861, 866, 874, 2672, 2266, 2267, 872, 867, 869,
3891 : 871, 873, 870, 0, 0, 0, 0, 516, 520, 0,
3892 : 0, 0, 500, 0, 0, 510, 493, 496, 497, 0,
3893 : 0, 688, 691, 689, 690, 0, 710, 0, 472, 525,
3894 : 588, 0, 166, 0, 0, 167, 165, 0, 0, 376,
3895 : 772, 0, 769, 1405, 0, 192, 0, 742, 0, 0,
3896 : 0, 0, 0, 1213, 680, 0, 879, 881, 853, 0,
3897 : 722, 0, 0, 637, 0, 555, 1612, 620, 0, 590,
3898 : 472, 588, 597, 0, 0, 605, 375, 0, 0, 625,
3899 : 376, 0, 0, 1106, 0, 875, 0, 0, 1142, 0,
3900 : 0, 0, 1195, 1200, 1196, 0, 1175, 1157, 0, 1197,
3901 : 0, 0, 1203, 1128, 1177, 1129, 1447, 1448, 1445, 1446,
3902 : 0, 0, 0, 0, 0, 0, 1694, 0, 0, 1521,
3903 : 0, 929, 0, 912, 0, 914, 145, 759, 0, 145,
3904 : 0, 0, 0, 0, 0, 0, 1049, 0, 1043, 1045,
3905 : 1070, 0, 0, 1084, 1083, 0, 1074, 1082, 1080, 1081,
3906 : 1079, 0, 0, 1656, 1654, 623, 0, 0, 145, 1084,
3907 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3908 : 2303, 0, 2334, 2330, 0, 2137, 2304, 2384, 2400, 2402,
3909 : 2190, 2392, 0, 0, 0, 2415, 0, 0, 2393, 2353,
3910 : 2407, 2406, 0, 0, 2405, 2393, 2393, 2353, 2192, 2353,
3911 : 0, 0, 0, 2259, 0, 0, 2089, 2101, 2102, 2103,
3912 : 2319, 0, 2108, 0, 2098, 2099, 2100, 2092, 2093, 2094,
3913 : 2095, 2096, 2097, 2104, 2323, 2322, 0, 0, 2164, 2165,
3914 : 2166, 2325, 2173, 0, 2510, 2216, 0, 2177, 2206, 2205,
3915 : 0, 0, 0, 2180, 0, 0, 2202, 0, 2260, 2448,
3916 : 2023, 0, 0, 2050, 2329, 2068, 0, 2084, 2086, 2046,
3917 : 2279, 0, 0, 0, 0, 0, 2055, 0, 0, 2256,
3918 : 0, 0, 0, 2238, 2235, 0, 0, 0, 0, 1746,
3919 : 1745, 1751, 1812, 2125, 1812, 0, 0, 1939, 0, 1839,
3920 : 1835, 1837, 1843, 0, 2874, 0, 1844, 1851, 0, 1831,
3921 : 0, 1867, 1863, 0, 1864, 0, 0, 1865, 0, 0,
3922 : 1833, 0, 1851, 0, 1891, 1758, 0, 2227, 0, 1770,
3923 : 1123, 1124, 1780, 0, 1783, 2541, 1895, 1639, 1645, 0,
3924 : 0, 0, 1629, 1635, 1617, 0, 0, 0, 1666, 1637,
3925 : 1667, 1167, 0, 0, 1159, 1095, 0, 1096, 1099, 1097,
3926 : 1094, 1098, 0, 0, 0, 825, 828, 834, 0, 0,
3927 : 0, 826, 145, 1279, 0, 0, 0, 0, 671, 1399,
3928 : 1280, 0, 0, 0, 0, 1179, 1333, 0, 0, 1303,
3929 : 825, 0, 0, 0, 569, 0, 1119, 1119, 559, 303,
3930 : 539, 553, 543, 610, 553, 490, 489, 0, 487, 722,
3931 : 0, 0, 310, 320, 0, 315, 0, 1331, 0, 0,
3932 : 0, 0, 314, 317, 316, 387, 0, 384, 0, 145,
3933 : 145, 362, 727, 373, 378, 379, 382, 1338, 0, 0,
3934 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3935 : 0, 906, 891, 0, 0, 907, 908, 0, 0, 0,
3936 : 1236, 1237, 1235, 1370, 1371, 1377, 1374, 1372, 1376, 1378,
3937 : 1375, 0, 1286, 0, 0, 763, 1334, 1407, 1409, 1408,
3938 : 0, 1411, 160, 157, 158, 161, 1335, 1316, 1297, 1360,
3939 : 619, 0, 0, 0, 1295, 0, 1353, 0, 1312, 1306,
3940 : 0, 0, 0, 0, 0, 1398, 1326, 1358, 1397, 1324,
3941 : 1356, 1323, 1355, 1325, 1357, 1317, 0, 0, 1902, 888,
3942 : 0, 0, 0, 145, 145, 886, 761, 1299, 0, 1362,
3943 : 1308, 0, 0, 0, 979, 0, 0, 0, 981, 421,
3944 : 441, 150, 0, 781, 847, 0, 0, 863, 0, 498,
3945 : 0, 504, 511, 0, 0, 518, 519, 517, 521, 551,
3946 : 1213, 555, 1213, 814, 815, 0, 0, 837, 0, 686,
3947 : 0, 0, 470, 0, 522, 0, 0, 474, 169, 168,
3948 : 0, 0, 0, 776, 780, 778, 777, 779, 774, 0,
3949 : 765, 194, 2602, 0, 0, 0, 0, 617, 611, 614,
3950 : 1420, 854, 0, 1901, 755, 0, 376, 633, 0, 0,
3951 : 0, 470, 625, 0, 475, 480, 481, 494, 0, 598,
3952 : 589, 0, 590, 599, 600, 0, 607, 1495, 0, 626,
3953 : 607, 0, 0, 0, 878, 0, 877, 0, 1145, 1162,
3954 : 1163, 0, 0, 1205, 0, 0, 1207, 1202, 0, 0,
3955 : 794, 797, 790, 673, 145, 0, 1524, 145, 145, 1262,
3956 : 0, 923, 1064, 1065, 1066, 1063, 1062, 665, 0, 1068,
3957 : 1027, 1077, 753, 0, 624, 0, 1028, 145, 1004, 996,
3958 : 1003, 992, 995, 997, 0, 999, 1000, 994, 991, 993,
3959 : 2333, 2154, 0, 2399, 2401, 2188, 2412, 2411, 2187, 2418,
3960 : 0, 0, 2381, 2409, 2408, 0, 0, 2393, 2393, 2157,
3961 : 2168, 0, 2258, 2289, 0, 0, 2109, 0, 0, 0,
3962 : 2163, 2869, 0, 0, 2220, 2221, 0, 2217, 2218, 2213,
3963 : 2214, 2179, 0, 2659, 2197, 0, 0, 2212, 2072, 2070,
3964 : 2069, 2054, 0, 0, 2052, 2048, 0, 2077, 2222, 2255,
3965 : 2289, 2224, 0, 1766, 1750, 1749, 1748, 1747, 2227, 2445,
3966 : 2227, 239, 1737, 0, 1887, 0, 1890, 0, 0, 1841,
3967 : 0, 0, 1845, 0, 0, 1847, 1849, 0, 0, 0,
3968 : 0, 0, 0, 2434, 0, 1811, 0, 1766, 0, 1781,
3969 : 0, 0, 0, 1621, 0, 1622, 1628, 0, 0, 0,
3970 : 0, 0, 1671, 1664, 1160, 1168, 1100, 0, 0, 0,
3971 : 548, 830, 829, 832, 827, 833, 831, 1535, 0, 704,
3972 : 705, 708, 1305, 0, 1366, 1314, 0, 1660, 538, 305,
3973 : 0, 564, 0, 0, 0, 1112, 140, 1111, 0, 0,
3974 : 0, 0, 0, 486, 485, 494, 313, 0, 0, 0,
3975 : 307, 386, 0, 388, 308, 312, 367, 330, 322, 0,
3976 : 0, 0, 1301, 0, 1364, 1310, 1337, 1389, 1284, 1348,
3977 : 0, 0, 897, 0, 0, 0, 0, 1390, 1285, 1349,
3978 : 0, 0, 0, 0, 0, 1660, 0, 0, 0, 0,
3979 : 0, 0, 0, 0, 1544, 0, 0, 366, 885, 884,
3980 : 367, 404, 1328, 0, 2127, 0, 980, 985, 986, 984,
3981 : 0, 410, 418, 421, 0, 0, 1253, 1253, 0, 0,
3982 : 495, 512, 0, 0, 499, 609, 568, 609, 0, 0,
3983 : 0, 0, 0, 723, 0, 0, 0, 0, 0, 0,
3984 : 0, 0, 0, 0, 768, 767, 191, 0, 470, 0,
3985 : 722, 0, 882, 0, 0, 0, 625, 472, 0, 0,
3986 : 1609, 471, 0, 0, 483, 0, 601, 590, 598, 0,
3987 : 0, 622, 0, 1488, 0, 628, 0, 0, 0, 824,
3988 : 1201, 0, 1215, 0, 1156, 1126, 1210, 0, 1742, 1894,
3989 : 0, 0, 0, 0, 807, 0, 677, 1254, 1522, 913,
3990 : 915, 760, 1071, 0, 1084, 1076, 998, 2383, 2417, 2352,
3991 : 2354, 0, 0, 2375, 2368, 2371, 2369, 2370, 2372, 0,
3992 : 2367, 0, 2185, 2416, 2365, 2379, 2318, 2260, 2106, 0,
3993 : 2321, 2320, 2324, 0, 2174, 0, 2175, 2219, 2181, 2198,
3994 : 0, 2182, 2210, 0, 0, 2073, 2071, 2056, 2257, 0,
3995 : 2242, 1720, 1719, 0, 1740, 1923, 1892, 0, 0, 1886,
3996 : 0, 0, 1917, 0, 0, 0, 1852, 1870, 0, 1848,
3997 : 1846, 0, 1859, 0, 1861, 2540, 2830, 2728, 0, 1798,
3998 : 1800, 1803, 1805, 1804, 1806, 1802, 2226, 2228, 0, 1777,
3999 : 2281, 1896, 0, 1636, 0, 0, 0, 1107, 0, 0,
4000 : 1637, 1673, 1685, 1685, 1668, 1072, 0, 145, 700, 0,
4001 : 0, 284, 1119, 0, 1213, 570, 2672, 571, 1118, 1122,
4002 : 139, 2689, 0, 552, 564, 564, 482, 0, 311, 321,
4003 : 0, 369, 381, 0, 1660, 0, 0, 895, 904, 904,
4004 : 892, 0, 0, 909, 1287, 764, 0, 573, 0, 279,
4005 : 1313, 1307, 0, 0, 0, 1546, 1547, 0, 0, 0,
4006 : 0, 0, 1336, 145, 1309, 988, 0, 443, 451, 422,
4007 : 426, 1538, 0, 1538, 0, 423, 427, 1538, 1538, 420,
4008 : 1894, 439, 1253, 0, 1250, 1249, 551, 639, 0, 550,
4009 : 0, 502, 0, 579, 501, 0, 838, 0, 0, 721,
4010 : 0, 472, 588, 0, 535, 526, 527, 528, 529, 531,
4011 : 530, 532, 533, 534, 524, 523, 0, 722, 901, 376,
4012 : 1495, 762, 0, 0, 735, 0, 722, 0, 1612, 621,
4013 : 590, 472, 588, 476, 494, 0, 605, 598, 601, 0,
4014 : 602, 0, 606, 0, 0, 0, 625, 1548, 1106, 0,
4015 : 0, 825, 1214, 1175, 0, 0, 1204, 1208, 1209, 0,
4016 : 0, 0, 0, 1257, 801, 802, 796, 798, 0, 809,
4017 : 813, 672, 0, 0, 676, 667, 722, 145, 0, 0,
4018 : 2366, 2373, 2374, 0, 2195, 0, 0, 2391, 0, 0,
4019 : 0, 2107, 0, 0, 2200, 2199, 2211, 2183, 2237, 0,
4020 : 0, 0, 0, 0, 0, 0, 1731, 0, 2353, 1885,
4021 : 1888, 0, 1920, 0, 0, 0, 0, 1905, 0, 1850,
4022 : 0, 0, 1860, 0, 0, 0, 1807, 0, 0, 0,
4023 : 1816, 1644, 1643, 0, 1640, 0, 0, 1634, 1894, 0,
4024 : 1631, 0, 1680, 0, 1672, 1674, 0, 0, 0, 1091,
4025 : 0, 1092, 1315, 0, 1113, 0, 609, 0, 1125, 1122,
4026 : 558, 0, 1213, 1213, 639, 0, 0, 324, 0, 292,
4027 : 1311, 0, 0, 893, 894, 0, 0, 0, 0, 0,
4028 : 0, 398, 0, 0, 1540, 0, 1541, 1542, 1545, 406,
4029 : 419, 0, 449, 448, 0, 446, 445, 447, 0, 436,
4030 : 0, 0, 0, 0, 0, 0, 409, 1248, 1252, 1251,
4031 : 503, 0, 505, 0, 0, 565, 566, 567, 0, 507,
4032 : 575, 576, 835, 0, 840, 0, 724, 0, 0, 722,
4033 : 587, 746, 0, 0, 0, 1489, 0, 0, 612, 756,
4034 : 1495, 625, 598, 0, 590, 484, 0, 607, 601, 605,
4035 : 603, 604, 0, 1492, 0, 627, 0, 1115, 823, 0,
4036 : 1205, 1216, 1211, 1206, 1451, 0, 0, 799, 804, 803,
4037 : 1538, 808, 0, 0, 0, 675, 674, 750, 1029, 2355,
4038 : 2356, 2380, 0, 0, 0, 2359, 0, 2357, 0, 0,
4039 : 2379, 0, 2196, 2317, 2203, 2176, 2201, 2817, 2541, 2787,
4040 : 0, 2254, 2243, 2254, 2254, 2234, 0, 0, 0, 1922,
4041 : 0, 0, 0, 1918, 1919, 1903, 0, 0, 1907, 1857,
4042 : 1883, 0, 0, 0, 1801, 2229, 2230, 2464, 1638, 0,
4043 : 0, 1623, 1633, 1108, 0, 1682, 1684, 0, 0, 0,
4044 : 1660, 0, 574, 0, 1109, 1125, 561, 609, 609, 318,
4045 : 309, 368, 0, 0, 0, 902, 911, 910, 766, 1660,
4046 : 0, 394, 393, 0, 397, 0, 444, 454, 0, 452,
4047 : 424, 429, 0, 435, 434, 431, 430, 425, 428, 0,
4048 : 515, 0, 0, 0, 0, 577, 0, 578, 0, 839,
4049 : 0, 0, 0, 748, 900, 0, 0, 470, 722, 1490,
4050 : 1610, 601, 590, 598, 0, 0, 592, 1119, 1119, 457,
4051 : 605, 607, 1493, 1494, 0, 0, 510, 0, 1127, 1450,
4052 : 1449, 1742, 0, 0, 0, 810, 811, 806, 0, 0,
4053 : 2360, 0, 2363, 0, 2364, 2358, 2388, 2390, 0, 2376,
4054 : 2377, 0, 2247, 2246, 2245, 2249, 2248, 0, 2241, 2239,
4055 : 2240, 0, 0, 0, 0, 1889, 0, 1906, 1909, 0,
4056 : 0, 0, 1915, 0, 1908, 1910, 0, 1869, 0, 1881,
4057 : 1809, 0, 1808, 1641, 1642, 1894, 0, 1687, 0, 0,
4058 : 1675, 1676, 0, 0, 1677, 145, 285, 563, 825, 572,
4059 : 1110, 0, 568, 825, 825, 1660, 896, 0, 280, 0,
4060 : 399, 1543, 450, 0, 433, 432, 638, 513, 514, 506,
4061 : 608, 584, 0, 583, 0, 581, 580, 836, 841, 0,
4062 : 722, 890, 1495, 736, 605, 598, 601, 0, 591, 0,
4063 : 140, 140, 607, 455, 0, 0, 376, 0, 1433, 1742,
4064 : 1432, 1434, 1442, 1439, 1441, 1440, 1438, 0, 1260, 1261,
4065 : 800, 805, 0, 0, 2361, 2362, 0, 0, 2194, 0,
4066 : 0, 0, 2251, 0, 2252, 0, 0, 0, 0, 0,
4067 : 1912, 1913, 1914, 1916, 1911, 1856, 0, 1810, 1630, 1681,
4068 : 1683, 1678, 0, 1679, 0, 0, 0, 0, 1688, 1093,
4069 : 544, 559, 579, 542, 540, 293, 903, 0, 453, 582,
4070 : 555, 555, 722, 747, 1491, 607, 601, 605, 1119, 593,
4071 : 595, 594, 459, 1115, 1116, 0, 607, 813, 0, 1443,
4072 : 1437, 1718, 1705, 0, 0, 812, 0, 0, 0, 0,
4073 : 2244, 2250, 2253, 0, 0, 0, 0, 2652, 0, 1924,
4074 : 0, 0, 0, 1686, 1692, 0, 0, 0, 0, 825,
4075 : 0, 586, 585, 749, 458, 605, 607, 140, 510, 1114,
4076 : 0, 1894, 0, 1435, 1742, 0, 0, 818, 2387, 2389,
4077 : 2378, 1736, 1735, 2835, 0, 0, 1739, 1932, 0, 2381,
4078 : 0, 0, 1935, 0, 1882, 0, 0, 0, 560, 545,
4079 : 395, 607, 456, 596, 376, 1117, 1101, 0, 1436, 0,
4080 : 0, 820, 0, 816, 819, 821, 822, 0, 0, 0,
4081 : 0, 1925, 1926, 1935, 0, 2365, 1935, 1904, 1689, 1693,
4082 : 0, 1690, 460, 607, 0, 0, 0, 784, 0, 1766,
4083 : 0, 0, 0, 1921, 2381, 1934, 2391, 2365, 0, 1894,
4084 : 0, 0, 0, 817, 0, 0, 0, 0, 1929, 2379,
4085 : 2391, 0, 1102, 818, 1258, 1259, 0, 1738, 0, 0,
4086 : 1927, 2379, 1691, 0, 0, 1930, 1928, 785, 0, 1931
4087 : };
4088 :
4089 : /* YYPGOTO[NTERM-NUM]. */
4090 : static const yytype_int16 yypgoto[] =
4091 : {
4092 : -5950, -5950, -5950, 4198, -387, -1747, -5168, -1141, -767, -5950,
4093 : -5950, -975, 561, 3443, -1136, -5950, -5950, -5950, 1356, -5950,
4094 : -5950, -5950, -5950, 4185, -5950, -2962, -5950, -5950, 208, 4125,
4095 : -1400, 168, 3752, 1712, -5950, -1016, -5950, -5950, -656, 1,
4096 : -5950, 4128, 498, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
4097 : -5950, -786, 2176, -5950, 2276, 1510, -3518, -5950, -5950, -1543,
4098 : -3810, -5950, 758, -5950, 785, -4173, -5950, -4870, -927, -5950,
4099 : -5950, -5950, 2166, -5950, -5950, -5950, 2113, 1300, -273, -5950,
4100 : -5950, -5950, -5950, -5950, -5950, -750, -5950, -5950, -1060, 4,
4101 : -658, -2963, -4373, -5950, -5950, 604, -315, -1520, -5950, 800,
4102 : -5950, 801, -5950, -4892, -5950, 102, -2791, -2523, -5950, -5950,
4103 : -5950, -5950, -285, -1529, 1549, -5950, 1612, -527, 257, -733,
4104 : -1157, -1128, -5950, -3096, -2867, -1027, -5950, -166, -3621, -1125,
4105 : -752, -749, -910, -4428, -4953, -5950, -5950, -1059, -3836, -5254,
4106 : -5497, -4966, -5197, 1561, -5950, 81, 617, -5950, 6, -3687,
4107 : -3817, 7, 593, -5950, 8, 11, -5950, 609, -679, -976,
4108 : -1616, -5950, -799, -5950, -5950, -5950, -3484, -5950, -5950, -5950,
4109 : 171, -5950, -5950, -5950, -5950, 653, -5950, -5950, -5950, -5950,
4110 : -5950, -5950, -3237, 2147, 2149, -5950, -4371, -5950, -957, -5950,
4111 : 819, -3538, 1546, -5950, -5950, 1306, 4210, 639, -5950, -5950,
4112 : -5950, -5950, -5950, -5950, -1798, -5950, -5950, -5950, -5950, 108,
4113 : -246, -5950, -5950, -5950, -5950, -5950, -5950, -5950, 13, -5950,
4114 : 1271, 583, -5950, -5950, -556, -5950, -5950, -5950, -5950, -5950,
4115 : -5950, -1108, -5253, -1238, -1212, -5950, -3488, -5950, -5950, -5950,
4116 : -211, -5950, -5950, -5950, -5950, -5950, -887, -5950, 1372, -4180,
4117 : -5950, -5950, 624, -5950, -5950, -5950, -5950, -5950, -869, -146,
4118 : 3398, -5950, -411, -5950, -5950, -5950, -147, -5950, -5950, -5950,
4119 : -5950, -5950, -522, -1270, 5242, 4596, -1126, 16399, -842, -557,
4120 : -5950, -5950, -5950, -2783, -5950, -5950, -4283, -5950, 5233, 2363,
4121 : 1642, 16, -5950, -12, 103, 4028, -5950, 1242, -1173, -3155,
4122 : 587, -370, -5950, -5950, -5950, 586, -5950, -1961, -5950, -5950,
4123 : -5950, -5950, -4165, 20, -5950, -4438, -5258, -4669, -4210, -1071,
4124 : -5950, -4508, -5233, -4143, -5950, 2189, -5950, -5950, -553, -192,
4125 : 3366, -5950, -1495, 2542, -1415, -5950, -2519, 647, 1728, 3373,
4126 : -3300, -113, 3369, -3043, -5950, -691, 1312, -5950, -235, -3844,
4127 : -5950, -5950, -5950, -2804, -498, -5950, -5950, 1582, -1110, -5950,
4128 : -5950, -5950, -5950, -643, 3374, -209, -5950, -5950, 4569, -5950,
4129 : -5054, -5950, 4540, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
4130 : -5950, -5950, -1503, 1481, -5950, -792, -5950, -5950, 2296, 861,
4131 : -5950, -5950, -5950, -5950, 1574, -376, -5950, -5950, -5950, -5950,
4132 : -5950, -5950, -5950, -849, -1091, -5950, -5950, -5687, -5950, -5950,
4133 : -5950, -5950, -5950, 2520, -961, -759, 4445, -210, 27, -5466,
4134 : -5950, -5950, -1161, -5950, 3780, -5950, -5950, -5950, -5950, -5950,
4135 : 646, 651, -5950, -5950, -5950, -5950, -4496, -5950, -5950, -5128,
4136 : -5950, -5950, 2284, -5950, -5950, 1447, 5, 3489, -5950, -5950,
4137 : -5950, -9, -5950, -5950, -1023, 2637, -5950, -2394, -5950, -582,
4138 : -5950, -5950, -1915, 31, -4426, -5950, 60, -5950, -5950, -5123,
4139 : -1010, 441, -5950, -5950, -4145, -5950, -5950, -745, -5950, 61,
4140 : -5950, -5950, -5950, -5950, -5110, -5950, 69, -5665, 1016, -3383,
4141 : -5950, 15, -5950, -310, -5950, -5950, -312, -5950, -5950, -5950,
4142 : -4166, 33, 122, -5950, -5950, 82, 382, -46, -30, -26,
4143 : 21, 188, 3897, -5950, -5950, -5950, -5088, 3944, -5950, 9,
4144 : -863, 5284, 5286, -5950, -924, -144, 600, 1835, -680, -2638,
4145 : 3849, 3864, -5950, 1821, 2641, -2461, -2459, -5950, -913, -720,
4146 : -523, -5950, -5950, -5950, -5950, -1502, -669, -2641, -5950, 3865,
4147 : -5950, -5950, -5950, -2366, -3421, -3251, 1860, -3335, -3172, -5950,
4148 : 1100, 1081, -875, 32, 43, -1485, -802, 1890, -5950, -5950,
4149 : 1867, -245, -5950, -5950, -242, -3332, 1038, -5950, -4621, -2848,
4150 : 1873, -1025, -699, -5950, -843, -5950, -496, 1880, -5950, -4102,
4151 : -1057, -5950, -3618, 10883, 3921, -846, -5950, -5950, -800, 8724,
4152 : -5950, -5950, -5950, 10620, 10665, -5950, -5950, 10916, 12045, -5950,
4153 : -528, 12518, 7144, -801, -1950, 401, 13586, 18285, -1965, 2743,
4154 : 365, -5950, -2991, -1549, -5950, -5950, -5950, -208, 1196, 804,
4155 : -5950, -5950, -4684, -4485, -5950, 2771, -1894, -5950, -495, 1953,
4156 : -492, -5950, -5950, -5950, -3022, -5633, -3190, 2778, -5950, -5950,
4157 : -5950, -199, -5950, 18053, -3284, -5950, -785, -1032, -1609, 3285,
4158 : -3110, -1924, -5950, -5950, -5950, -3138, -5950, -5950, -5950, -717,
4159 : 1979, -5950, -5950, 2108, -5950, -5950, -5950, -982, 2344, -737,
4160 : -1196, 1984, -4533, -5950, -431, -4545, -5058, -5950, -5574, -5218,
4161 : -1897, -1034, -3042, -5949, -1935, 1997, -3135, -5950, -1948, 2077,
4162 : 1286, -5950, 1217, -5950, 4466, -796, 2786, -804, 16099, -689,
4163 : 10414, -1299, -5950, 1178, -4921, 6287, 6555, 36, -119, 6314,
4164 : -608, 2703, 2820, -5950, -5950, -6, 8160, -662, -876, -5950,
4165 : 4723, 14731, 15031, -3735, -5950
4166 : };
4167 :
4168 : /* YYDEFGOTO[NTERM-NUM]. */
4169 : static const yytype_int16 yydefgoto[] =
4170 : {
4171 : 0, 57, 58, 59, 60, 1111, 1116, 1915, 1934, 61,
4172 : 62, 1635, 3073, 2926, 3902, 3903, 63, 64, 1631, 65,
4173 : 66, 67, 68, 1545, 69, 1887, 3087, 70, 2758, 853,
4174 : 854, 855, 2623, 2624, 3018, 2625, 2613, 1397, 1833, 1567,
4175 : 827, 828, 1527, 1568, 72, 73, 1391, 2604, 74, 75,
4176 : 76, 1598, 1694, 1599, 1600, 1539, 5048, 5897, 3688, 2881,
4177 : 3950, 3689, 3690, 4380, 4381, 3768, 4409, 4471, 5911, 5912,
4178 : 77, 1710, 1711, 78, 79, 3055, 3868, 4524, 5441, 5442,
4179 : 5709, 672, 5071, 5072, 5696, 5697, 5926, 6098, 6099, 3088,
4180 : 703, 3945, 4609, 3893, 5143, 3894, 5144, 3895, 5145, 4938,
4181 : 4939, 4369, 4370, 3879, 4556, 4557, 2091, 5084, 6239, 4558,
4182 : 3896, 5104, 5744, 3897, 2847, 2773, 2774, 5454, 5371, 3122,
4183 : 2006, 5369, 6222, 2004, 5644, 5723, 4923, 4924, 4445, 5949,
4184 : 5950, 5951, 6245, 5106, 5149, 5150, 6135, 6136, 3948, 4615,
4185 : 5156, 5501, 5721, 3646, 81, 3921, 3922, 82, 766, 1909,
4186 : 4049, 767, 3125, 704, 768, 3089, 87, 3115, 5942, 3116,
4187 : 1663, 2940, 4537, 4025, 88, 1139, 4332, 5526, 5804, 5805,
4188 : 757, 89, 1895, 90, 91, 3068, 3886, 92, 2791, 3593,
4189 : 93, 94, 3612, 3613, 3614, 95, 4566, 5462, 1601, 3677,
4190 : 3678, 3679, 3680, 4401, 96, 1890, 3096, 3097, 97, 98,
4191 : 99, 3227, 3228, 100, 3004, 101, 102, 103, 104, 4439,
4192 : 5005, 5120, 3719, 3909, 4582, 5118, 105, 3872, 3090, 3143,
4193 : 3983, 3984, 5524, 5796, 5797, 5798, 6000, 6280, 5800, 6002,
4194 : 6157, 6004, 5095, 6432, 6433, 5781, 4321, 4901, 107, 5096,
4195 : 5097, 5955, 108, 2789, 109, 110, 1864, 3061, 3062, 4538,
4196 : 3132, 3958, 3959, 4595, 4596, 111, 3808, 112, 4981, 4982,
4197 : 705, 5963, 5903, 113, 114, 4985, 4986, 115, 116, 117,
4198 : 118, 119, 758, 1073, 1074, 760, 1194, 1195, 3554, 1156,
4199 : 120, 2633, 121, 3848, 122, 1269, 5209, 123, 792, 1210,
4200 : 1211, 3091, 125, 802, 3246, 804, 3211, 3212, 2022, 4029,
4201 : 4030, 4683, 126, 127, 4033, 4034, 4690, 3224, 128, 1532,
4202 : 2768, 2769, 4892, 3092, 706, 3639, 5626, 5365, 5627, 6146,
4203 : 6345, 5366, 3498, 4277, 130, 707, 1573, 2830, 1162, 1163,
4204 : 3136, 3963, 2738, 2739, 1733, 4636, 2741, 3965, 2742, 1506,
4205 : 2743, 1149, 1150, 3971, 3972, 3973, 3974, 4632, 4642, 4643,
4206 : 5518, 5789, 4639, 1883, 5512, 5513, 131, 1570, 2827, 132,
4207 : 133, 134, 1614, 997, 1172, 1173, 135, 719, 720, 136,
4208 : 5714, 137, 1152, 138, 5522, 139, 140, 1254, 1255, 819,
4209 : 141, 142, 2851, 4383, 143, 1571, 144, 145, 3713, 3714,
4210 : 4997, 146, 147, 148, 2912, 2913, 149, 150, 151, 152,
4211 : 153, 6270, 6348, 6349, 6350, 4650, 6151, 154, 1242, 155,
4212 : 156, 157, 158, 196, 1038, 1039, 1040, 950, 3093, 5503,
4213 : 160, 161, 1528, 1529, 1530, 1531, 2763, 162, 163, 164,
4214 : 3993, 3994, 165, 166, 167, 168, 1867, 169, 170, 5687,
4215 : 171, 172, 1837, 173, 174, 1047, 1048, 1049, 1050, 1835,
4216 : 3442, 666, 872, 1422, 1428, 1471, 1472, 1473, 176, 770,
4217 : 177, 1245, 1078, 771, 1203, 179, 772, 2720, 3528, 4292,
4218 : 4293, 4294, 4297, 5329, 4868, 5322, 5863, 5864, 5865, 773,
4219 : 3524, 182, 2029, 3233, 3236, 3520, 774, 3534, 3535, 3536,
4220 : 4301, 775, 5630, 5631, 5632, 5633, 5877, 6210, 6211, 6214,
4221 : 6318, 776, 794, 1142, 3147, 777, 1356, 188, 189, 190,
4222 : 930, 875, 876, 3447, 5584, 5836, 192, 2597, 3425, 811,
4223 : 1477, 918, 919, 920, 939, 3028, 2686, 2687, 2711, 2712,
4224 : 1486, 1487, 2699, 2703, 2704, 3511, 3504, 2692, 4271, 5609,
4225 : 5610, 5611, 5612, 5613, 5614, 4857, 2707, 2708, 1489, 1490,
4226 : 1491, 2716, 193, 2676, 3477, 3478, 3479, 4247, 4248, 6197,
4227 : 4262, 4258, 4842, 5305, 3480, 864, 1240, 1498, 4850, 6199,
4228 : 3481, 5294, 5295, 5589, 4267, 3490, 4288, 3933, 3934, 3935,
4229 : 3482, 5846, 5847, 6194, 6195, 5591, 5592, 3483, 5838, 6368,
4230 : 6369, 6408, 6445, 2744, 1451, 903, 1357, 904, 1464, 1358,
4231 : 1438, 906, 1359, 1360, 1361, 909, 1362, 1363, 1364, 912,
4232 : 1430, 1365, 1366, 1447, 1460, 1461, 1367, 1423, 5593, 1369,
4233 : 1370, 1371, 3485, 1372, 4786, 5266, 5252, 3347, 3348, 2620,
4234 : 5574, 4782, 4160, 4776, 2590, 2594, 5317, 5616, 5617, 3418,
4235 : 4209, 4813, 5283, 5832, 6031, 6032, 6178, 1373, 1374, 1375,
4236 : 3410, 2584, 1000, 1376, 4540, 2586, 3338, 3316, 1736, 3317,
4237 : 2032, 2054, 3265, 3281, 3282, 3386, 3318, 3326, 3331, 3339,
4238 : 3372, 1377, 3267, 3268, 4071, 2056, 1378, 1044, 1739, 1045,
4239 : 1466, 3367, 5232, 5539, 5540, 5817, 5818, 5550, 5819, 5551,
4240 : 5541, 4082, 4083, 6020, 3292, 3387, 4086, 3300, 3301, 4104,
4241 : 4093, 3293, 1379, 4095, 1387, 1388, 1381, 2023, 865, 5301,
4242 : 1198, 1820, 808, 1382, 1383, 1384, 1385, 1607, 971, 1165,
4243 : 1166, 921, 923, 924, 2680, 662, 654, 973, 3681, 2587,
4244 : 663, 656, 657, 1825, 2588
4245 : };
4246 :
4247 : /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
4248 : positive, shift that token. If negative, reduce the rule whose
4249 : number is the opposite. If YYTABLE_NINF, syntax error. */
4250 : static const yytype_int16 yytable[] =
4251 : {
4252 : 653, 71, 998, 1051, 80, 175, 83, 84, 85, 1735,
4253 : 929, 86, 999, 106, 963, 184, 124, 805, 1492, 807,
4254 : 129, 191, 1004, 813, 831, 1009, 769, 159, 821, 829,
4255 : 833, 178, 836, 185, 1832, 829, 829, 1662, 866, 1392,
4256 : 869, 1949, 191, 1105, 1380, 940, 2953, 925, 925, 925,
4257 : 2846, 1443, 2875, 3645, 867, 1715, 1145, 1667, 796, 2845,
4258 : 180, 181, 1143, 1826, 796, 1419, 1231, 1232, 1233, 183,
4259 : 1197, 2003, 1237, 1478, 1463, 1480, 3521, 2831, 1727, 2051,
4260 : 3522, 2858, 186, 3248, 951, 1434, 1435, 863, 1424, 2043,
4261 : 2740, 1406, 4051, 1892, 3975, 1442, 4219, 1007, 4221, 1449,
4262 : 1237, 4016, 4286, 1051, 3110, 1204, 2035, 4446, 3923, 3892,
4263 : 2037, 1029, 1511, 2038, 2039, 1865, 4594, 4620, 3239, 1870,
4264 : 3323, 3022, 3914, 3303, 1874, 4607, 803, 4338, 3264, 1418,
4265 : 660, 4645, 4859, 1178, 1884, 3299, 4396, 711, 4398, 832,
4266 : 2914, 2914, 3805, 4542, 2914, 1072, 4261, 1191, 1904, 4925,
4267 : 4300, 5298, 4874, 4894, 2983, 2984, 1051, 2740, 4367, 3356,
4268 : 4372, 942, 2822, 2672, 3773, 943, 934, 1821, 3129, 3287,
4269 : 3291, 3294, 3295, 232, 5549, 3304, 3177, 3306, 3307, 1938,
4270 : 5142, 1606, 1205, 5152, 1145, 5163, 1176, 1602, 2979, 1180,
4271 : 1399, 653, 954, 954, 5505, 5103, 954, 1188, 5649, 5498,
4272 : 965, 5624, 866, 826, 5237, 1001, 5238, 5727, 965, 1051,
4273 : 860, 965, 1624, 4275, 866, 3011, 954, 1641, 1877, 866,
4274 : 3547, 3549, 2822, 954, 4244, 866, 4965, 1661, 1574, 5134,
4275 : 5310, 3428, 5312, 5466, 1901, 3430, 1693, 5151, 878, 2822,
4276 : 3440, 3513, 5766, 4306, 4188, 3516, 1720, 5641, 4088, 852,
4277 : 5779, 1834, 4191, 4604, 3851, 5494, 3854, 3855, 5367, 1485,
4278 : 5724, 3859, 3860, 3861, -2586, 3863, 3864, 3865, 1022, 5977,
4279 : 1488, 1051, 1569, 778, -2628, 2802, 3911, -2654, -2002, -2473,
4280 : 4299, 5497, 4090, -2697, 5965, 1900, 5020, 3492, -2473, -2473,
4281 : 5257, -2474, 3244, 670, 5689, 5690, 6012, 3882, -1994, -2438,
4282 : -2474, -2474, 4177, 1931, 1931, 5679, -2885, 1931, 4259, -1961,
4283 : 4264, 4265, 6016, 1569, -1974, -2885, -2885, 1418, 1569, -2506,
4284 : 1541, -2002, 4101, 2859, 4124, 3365, 2631, -1999, 2990, 4630,
4285 : 778, 6161, -2590, -2019, -1989, 5113, 6163, 949, 3107, 5902,
4286 : 717, 3684, 6314, 778, 1263, 2996, 717, 6013, 1212, 2112,
4287 : 4053, 1857, 717, 1931, -2437, 1431, 1432, 717, 1862, 4559,
4288 : 717, 1216, 1408, 3832, 2760, 935, 1441, -1933, 5717, 2849,
4289 : 4687, 651, 1931, 2993, 1603, 2781, 4339, 778, 5945, 5811,
4290 : 778, 2637, 187, 2610, 4640, 1603, 717, 4334, 1145, 1941,
4291 : 2677, 778, 870, 5715, 6171, 1945, 2914, 3053, 1034, 6205,
4292 : 3685, 2675, 2112, 187, -150, 1956, 4124, 1500, 717, 1959,
4293 : -150, 3365, 3883, 1962, 2639, 1964, 5888, 1984, 5211, 5212,
4294 : 5213, 1972, 5215, 5216, 5217, 5218, 5219, 1978, 937, 3071,
4295 : 1981, 5114, 4978, 936, 2637, 1542, 1826, 6443, 928, 2970,
4296 : 3363, -2434, 784, 3587, 5164, 1727, 6168, 5093, 1879, 3340,
4297 : 668, 2683, 784, 1931, 1227, 784, 5640, 1931, 834, 1077,
4298 : 1396, 784, 5254, 5854, 6272, 4867, 785, 2639, 778, 5459,
4299 : 1235, 3076, 4043, 1481, 1541, 3463, 785, 5572, 4351, 785,
4300 : 1034, 3495, 6141, 5656, 2679, 785, 3767, 999, 6018, 6237,
4301 : 5364, 4469, 838, 1434, 1435, 1931, 1554, 784, 3240, 5998,
4302 : 2611, 4124, 3225, 1035, 6129, 5370, 2779, 194, 4290, 5082,
4303 : 784, 1018, 3445, 2907, 5979, 3686, 5794, 6479, -2651, 4688,
4304 : 2849, 785, 4065, 5115, 1097, 1442, 1098, 2648, 937, 5946,
4305 : 2931, 6491, 2850, 4530, 785, 1449, 5083, 999, 3446, 717,
4306 : 4591, 5795, 1019, 4470, 5767, 3108, 6315, 4291, 2782, 5999,
4307 : 3197, 1201, 6238, 195, 5899, 194, 4352, 6019, 4044, 4091,
4308 : 5573, 1483, 1236, 194, 4979, 1099, 1957, 4178, 5375, 1036,
4309 : 2105, 1109, 3496, 941, -2264, 3803, 2849, 3407, 5629, 5255,
4310 : -2283, -2264, 6272, 1123, 3408, 1035, 1821, -2283, 2977, 1542,
4311 : 1947, 5460, 1826, 1947, 2849, 2065, 3077, 1457, 839, 4102,
4312 : 2849, 195, 891, 3226, 2632, 2614, 1145, 3341, 5947, 195,
4313 : 2626, 2626, 2048, 6444, 1932, 1932, 5755, 5094, 1932, 2106,
4314 : 712, 1132, 1863, 2849, 3884, 1267, 1987, 2024, 1501, 3364,
4315 : 2849, 3222, 1409, 1037, 3072, 4465, 2849, 2612, 2034, 2849,
4316 : 2112, 3222, 1228, 6262, 5812, 2783, 718, 6373, 2653, 2600,
4317 : 4339, 1036, 3026, 3222, 4179, 2044, 6075, 6360, 5937, 2876,
4318 : 1054, 4689, 2860, 2674, 1932, 1042, 866, 3054, 954, 1043,
4319 : 954, 4542, 2637, 954, 4335, 4980, 2861, 938, 2862, -442,
4320 : 1001, 2948, 6112, 1932, 2951, 1112, 1082, 954, 1405, 6072,
4321 : 5603, 4560, 191, 954, 3687, 6407, 3020, 3021, 1543, 5000,
4322 : 4069, 6316, 5116, 1613, 3064, 2639, 1236, 6272, 4641, 5718,
4323 : 1410, 2958, 1236, 3366, 2726, 1037, 1863, 653, 3885, 929,
4324 : 1274, 6014, 1260, 4124, 6140, 3109, 965, 4125, 4126, 4127,
4325 : 1001, 1079, 1080, 965, 5333, 4631, 965, 3010, 2650, 1145,
4326 : 1081, 3833, 2920, 4180, 2863, 2608, 2997, 1145, 1145, 871,
4327 : 1266, 2809, 954, 1083, 1431, 1432, 6015, 6335, 6317, 2991,
4328 : 1208, 2816, 2807, 4302, 1932, 3019, 1544, 5376, 1932, 5112,
4329 : 1533, 2028, 6017, 5567, 1429, 671, 2998, 5117, 5385, 3260,
4330 : 1933, 1940, 3588, 1863, 1944, 191, 6334, 6095, -2651, 1444,
4331 : 1445, 6162, 1441, 4081, 2971, 2972, 6164, 3457, 1493, 4195,
4332 : 2937, 4092, 5159, -2586, 2994, 866, 1932, 5972, 1446, -2473,
4333 : 5160, 3027, 2717, -2628, 1256, 1209, -2654, 1214, 2893, 1218,
4334 : 5007, -2474, -2697, 2718, 2892, 1222, 5011, 1042, -1994, -2438,
4335 : 1955, 1043, 1444, 1445, 1386, 1386, -2885, 866, 829, 1433,
4336 : 6386, 4103, 829, 4139, 1437, 3195, 790, 791, 2938, 1977,
4337 : 3179, 1448, 2941, 2942, 1239, 1848, 866, -1999, -2506, 790,
4338 : 791, 866, 2780, 2066, -1989, 999, -2651, 1386, 2583, 1844,
4339 : 2108, -2590, 5975, 1849, 4930, 1850, 4932, 6254, -2651, 2826,
4340 : 6223, 6224, 2598, 3205, -2437, 1534, 6264, 3433, 6421, 4542,
4341 : 6437, 1863, 1633, 790, 791, 3220, 1604, 1605, 1726, 2877,
4342 : 942, 2678, 4592, 4261, 943, 6490, 6283, 1604, 1605, 1042,
4343 : 1239, 2655, 2656, 1043, 1386, 1225, 1634, 6496, 2580, 2581,
4344 : 2582, 2583, 4136, 4137, 4138, 4139, -150, -150, 866, 713,
4345 : 1980, 5536, 2826, 71, 1947, 4129, 80, 175, 83, 84,
4346 : 85, 866, 1839, 86, 2978, 106, 1042, 184, 124, 2826,
4347 : 1043, 4585, 129, 191, 4522, 4523, 866, 1526, -2264, 159,
4348 : 6216, 3409, 3616, 178, -2283, 185, 4460, 4461, 3702, 4735,
4349 : 4736, 4462, 4682, 5884, 2901, 866, 4740, 1474, 4592, 6228,
4350 : 954, 954, 1137, 4604, 790, 791, 1947, 3063, 1515, 714,
4351 : 1497, 4466, 180, 181, 3392, 3081, 4685, 2836, 4503, 4839,
4352 : 3229, 183, 6337, 4843, 4911, 1548, 3274, 4970, 4682, 717,
4353 : 4883, 6139, 829, 829, 186, 4134, 4135, 4136, 4137, 4138,
4354 : 4139, 6133, 4130, 2801, 5344, 5070, 2950, 4308, 6113, 4309,
4355 : 717, 715, 3694, 716, 4039, 1386, 1386, 1699, 3298, 4041,
4356 : 5074, 3513, 1896, 5073, 4280, 4721, 3041, 3266, 4226, 653,
4357 : 5345, 954, 1395, 187, 4798, 965, 1403, 2876, 1001, 965,
4358 : 2027, 965, 1425, 6277, 6207, 4829, 954, 4831, 4832, 2679,
4359 : 1931, 1535, 3870, 4517, 2878, 6208, 1516, 961, 3222, 4356,
4360 : 1700, 717, 6385, 2595, 3979, 1897, 717, 6121, 4573, 1095,
4361 : 866, 944, 6340, 6341, 5327, 1264, 4695, 954, 954, 2840,
4362 : 1881, 6291, 1625, 6132, 3413, 2879, 4583, 3, 4, 5754,
4363 : 5101, 6289, 1159, 1536, 5760, 6325, 2817, 1966, 3275, 866,
4364 : 866, 866, 5870, 954, 1826, 653, 3486, 653, 653, 1274,
4365 : 1517, 2880, 4124, 3230, 2690, 4101, 4125, 4126, 4127, 3393,
4366 : 5824, 5418, 4090, 1724, 3394, 3518, 187, 928, 1537, 717,
4367 : 4998, 4646, 4925, 2876, 2578, 2579, 2580, 2581, 2582, 2583,
4368 : 1967, 954, 2899, 954, 954, 5419, 1051, 3717, 4303, 5520,
4369 : 5128, 5183, 2874, 763, 6454, 6263, 3980, 3607, 3123, 6255,
4370 : 4424, 6277, 3161, 945, 652, 6292, 826, 1685, 2876, 2876,
4371 : 3168, 6440, 6375, 15, 4406, 3395, 1386, 3276, 3799, 5872,
4372 : 1401, 35, 5861, 806, 1453, 5928, 4407, 5930, 3206, 5662,
4373 : 3734, 5934, 5935, 667, 3217, 3218, 2818, 1626, 2842, 6423,
4374 : 6041, 1538, 2005, 2606, 2005, 3119, 5873, 5862, 866, 191,
4375 : 805, 20, 2923, 3800, 4131, 4132, 4133, 4134, 4135, 4136,
4376 : 4137, 4138, 4139, 4647, 2770, 1518, 6478, 3718, 6149, 2691,
4377 : 2917, 937, 3120, 2921, 2041, 3414, 866, 3362, 3519, 2876,
4378 : 2047, 1274, 5031, 3695, 4124, 3261, 6241, 3263, 4125, 4126,
4379 : 4127, 2843, 4696, 3270, 1386, 3277, 3608, 1701, 3278, 3284,
4380 : 3285, 4574, 1898, 1454, 4040, 1274, 4791, 6293, 4124, 4042,
4381 : 3181, 3308, -3012, -3012, -3012, 4425, 6342, 2877, 3735, 5871,
4382 : 3871, 3328, 3617, 1249, 5958, 6040, 6277, 3343, 2900, 929,
4383 : 1923, 2759, 941, 5496, 187, 5102, 1386, 3636, 1230, 3204,
4384 : 5328, 4128, 2956, 3209, 3546, 5490, 5484, 6468, 3216, 5515,
4385 : 1725, 3219, 5971, 1989, 5974, 1991, 3912, 1993, 3158, 1995,
4386 : 5986, 1997, 1998, 1999, 4129, 1386, 1386, 1386, 2001, 1386,
4387 : 3396, 5549, 3170, 3736, 944, 4121, 4122, 1968, 5957, 4539,
4388 : 4141, 1455, 3231, 5825, 1456, 3176, 2106, -1794, 4926, 6384,
4389 : 1386, 4108, 2876, 3847, 3469, 952, 5961, 5346, 4450, 5829,
4390 : 6391, 1932, 3154, 3232, 964, 5969, 3223, 3703, 5973, 1702,
4391 : 3156, 2844, 964, 2877, 1899, 964, 1250, 3279, 2028, 962,
4392 : 2596, 4172, 4173, 1627, 3188, 3169, 5549, 5340, 3171, 866,
4393 : 6209, 1096, 4102, 2635, 3175, 3981, 3737, 3842, 999, 4091,
4394 : 6422, 1882, 4648, 1523, 2980, 2822, 1524, 1386, 2877, 2877,
4395 : 3982, 4130, 5358, 1947, 1160, 6007, 6150, 947, 32, 5521,
4396 : 3314, 5208, 2090, 6294, 6405, 1628, 945, 2684, 2685, 4637,
4397 : 2689, 943, 943, 3525, 943, 6452, 5420, 3121, 3208, 2999,
4398 : 5032, 5678, 3214, 3215, 3611, 2772, 3795, 3551, 2876, 1969,
4399 : 40, 5880, 2878, 1386, 1646, 3835, 4129, 1386, 1386, 3568,
4400 : 1629, 4426, 2775, 1457, 4224, 5874, -1961, 6469, 866, 866,
4401 : 866, 2724, 6242, 1386, 5332, 3207, 1647, 4649, 946, 2877,
4402 : 2953, 5299, 6299, 2879, 6154, 3080, 2764, 1453, 3796, 44,
4403 : 2776, 1924, 5833, 2770, 3280, 6173, 829, 6460, 2765, 3140,
4404 : 3012, 1131, 6450, 4427, 717, 1925, 5802, 3259, 3607, 2880,
4405 : 3801, 5898, 5938, 2771, 2785, 2885, 2766, 1497, 1704, 1497,
4406 : 3738, 778, 3141, 3797, 1705, 2786, 5830, 6183, 1648, -1794,
4407 : 3486, 2813, 4251, 48, 2693, 3618, 829, 764, 4428, 954,
4408 : 4983, -1795, 5463, 4130, 4463, 3802, 3429, 49, 2878, -1961,
4409 : 2874, 3569, 866, 2848, 1914, 3638, 5831, 6243, 2618, 1251,
4410 : 5769, 866, 1926, 5834, 954, 1132, 1454, 4130, 6123, 5302,
4411 : 187, 50, 4120, 5173, 5306, 5770, 810, 5308, 1947, 2879,
4412 : 1458, 3923, 2694, 2878, 2878, 3000, 6244, 3620, 4543, 4281,
4413 : 765, 1001, 2877, 866, 4862, 3644, 829, 6330, 1826, 2916,
4414 : 2916, 2619, 1252, 2916, 1253, 2880, 3704, 3608, 3460, 6260,
4415 : 6261, 4252, 1526, 829, 2879, 2879, 866, 1526, -1106, 866,
4416 : 3964, 1649, 4464, 4131, 4132, 4133, 4134, 4135, 4136, 4137,
4417 : 4138, 4139, -717, 1706, 4542, 4472, 4546, 3526, 2053, 6063,
4418 : 2880, 2880, 5768, 954, 1455, 4253, 2874, 1456, 1947, 5759,
4419 : 2695, 3739, 5087, 1133, 2878, 3607, 1863, 6316, 2062, 3740,
4420 : 4254, 866, 3741, 2777, 3197, 6174, 2111, 1927, 3552, 2112,
4421 : 5939, 3553, 4984, 954, 954, 954, 954, 866, 5088, 1650,
4422 : 947, 2874, 2874, 4255, 1651, 2879, 3461, 3621, 2877, 1652,
4423 : 3142, 866, 2767, 1526, 5803, 5139, 2740, 1526, 4549, 2696,
4424 : 2740, 2637, 1386, 1386, 1386, 2952, 3119, 2787, -3012, 40,
4425 : 2974, 2880, 4256, 5064, 2772, 816, 5139, 2103, 5068, 4458,
4426 : 683, 1274, 5140, -1795, 4124, 6074, 3167, 3566, 4125, 4126,
4427 : 4127, 5133, 3157, 3120, 2639, 999, 999, 6253, 1475, 1409,
4428 : 1928, 1654, 5303, 5140, 5092, -1961, 4792, 1481, 44, 2788,
4429 : 6212, 1034, 2874, 3199, 3608, 4131, 4132, 4133, 4134, 4135,
4430 : 4136, 4137, 4138, 4139, 2697, 1274, 1457, 2878, 4124, 5130,
4431 : 3742, 4282, 4125, 4126, 4127, 6331, 4863, 1821, 5771, -3012,
4432 : -3012, -3012, 4134, 4135, 4136, 4137, 4138, 4139, 6363, 1656,
4433 : 5272, 3609, 48, 40, 685, 3611, 6189, 6364, 2879, 3819,
4434 : 3150, 866, 2602, 4252, -630, 1705, 49, 4174, 1457, 5449,
4435 : 6387, 4257, 866, 1657, 4552, 4468, 3085, 1410, 982, 1707,
4436 : 954, 954, 5296, 1134, 2880, 983, 984, 985, 5089, 1260,
4437 : 50, 6213, 44, 3610, 1659, 1483, 954, 4253, 2943, 941,
4438 : 941, 5085, 941, 1929, 1476, 2112, 3439, 3448, 5661, 3527,
4439 : 2693, 3742, 4845, -3012, 866, 2916, 1035, 2876, -3012, 6333,
4440 : 1135, 1708, 4553, 2878, 999, 2874, 1615, 4539, 4968, 1443,
4441 : 954, 954, 954, 954, 6309, 4255, 48, 2603, 4554, 866,
4442 : 6466, 952, 2886, 1458, 817, 1660, 866, 1484, 778, 3130,
4443 : 964, 3517, 5693, 818, 2879, 4996, 1709, 964, 2694, 6310,
4444 : 964, 3086, 6480, 3486, 653, 5304, 3486, 653, 1459, -3012,
4445 : 2639, 5978, 6220, 6190, 3820, 837, 5086, 965, 965, 5964,
4446 : 2880, 5341, 1036, 3200, 1136, 3197, 1137, 5141, 1001, 1001,
4447 : 1138, 3662, 965, 56, 3197, 965, 4129, 1591, 5478, 5985,
4448 : 3753, 6383, 3611, 1616, 3567, 4751, 4969, 4752, 6127, 1664,
4449 : 954, 954, 5688, 6236, 3486, -1961, 3201, 954, 2776, 866,
4450 : 784, 2874, 3486, -1961, 664, 1433, -1961, 1462, 2644, -1961,
4451 : 3202, 1882, 3489, 5773, 2876, 2876, 2005, 696, 3691, 697,
4452 : 4129, 5774, 4555, 954, 785, 965, 1037, 191, 3213, 965,
4453 : 965, 1665, 866, 866, 2944, 954, 5342, 3663, 4942, 2945,
4454 : 664, 3290, 866, 4257, 3715, 3664, 701, 6084, 3203, 866,
4455 : 3245, 4896, 866, 3130, 3997, 2696, 805, 665, 3726, 805,
4456 : 3250, 5801, 4302, 4130, 1386, 2854, 1386, 2855, 1082, 3633,
4457 : 5534, 1386, 1386, 4943, 191, 6344, 5599, 4897, 1386, 1386,
4458 : 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
4459 : 1386, 3234, 4686, 933, 1386, 861, 1386, 1001, 1386, 1386,
4460 : 1386, 1386, 1386, 1386, -3012, 2866, 1386, 4130, 1386, 1386,
4461 : 4698, 3665, 1386, 1079, 1080, 5685, 3836, 3837, 3838, 3798,
4462 : 2697, 1145, 1081, 873, 6085, 4539, 6191, 1386, 1386, 1386,
4463 : 3189, 6192, 3190, 2856, 3191, 1083, 3192, 2877, 3193, 5686,
4464 : 4898, 2867, 3194, 4753, 3715, 1386, 3644, 1666, 2740, 2924,
4465 : 1439, 1440, 4374, 4350, 2927, 3923, 6131, 2953, 2740, 5465,
4466 : 4273, 3754, 1980, 4710, 2112, 4860, 6148, 6193, 3249, 3757,
4467 : 3752, 4944, 3760, 4722, 6130, 4734, 6461, 4168, 4726, 5476,
4468 : 4747, 4748, 4749, 4750, 3941, 954, 4754, 4755, 4756, 4757,
4469 : 4758, 4759, 4760, 4761, 4762, 4763, 2637, 3991, 5489, 3729,
4470 : 6425, 3727, 5635, 3728, 5637, 1643, 5775, 5790, 3779, 4363,
4471 : 3880, -3012, 5956, 1882, 5445, 4725, 3013, 3804, 4899, 6462,
4472 : 4730, 4731, 4900, 2578, 2579, 2580, 2581, 2582, 2583, 2639,
4473 : 3002, 4668, 1207, 2740, 3008, 1124, 3927, 3928, 3929, 3930,
4474 : 5467, 3932, 4861, 3826, 5931, 3630, 3842, 1644, 5446, 5932,
4475 : 4802, 4803, 4512, 952, 2877, 2877, 1481, 2962, 3014, 964,
4476 : 1980, 2914, 1482, 964, 4505, 964, 3960, 4375, -1765, 6448,
4477 : 948, 6451, 1125, 1502, -1765, 4131, 4132, 4133, 4134, 4135,
4478 : 4136, 4137, 4138, 4139, 1101, 1248, 1102, 2963, 1512, 5468,
4479 : 5685, 1124, 4016, 1386, 4467, 3770, 1646, 3771, 4681, 931,
4480 : 5436, 3775, 5437, 5438, 5439, 5933, 5455, 1630, 5457, 1695,
4481 : 1126, 3734, 2878, 5989, 5686, 1503, 1670, 6256, 1647, 4131,
4482 : 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 1125, 1916,
4483 : 1513, 1918, 1919, 4826, 3898, 6492, 2849, 1980, 1420, 6006,
4484 : 1633, 4504, 932, 2879, 1483, 4682, 4278, 1386, 2857, 5485,
4485 : 1504, 1696, 778, 6155, 5968, 1697, -1765, 4926, 1671, 4828,
4486 : 1127, 4305, 5050, 5734, 1634, 1514, 4586, 4035, 4896, 2880,
4487 : 1648, 4377, 988, 989, 990, 991, 992, 993, 994, 995,
4488 : 996, 4913, 4972, 3789, 1636, 5051, 1698, 6156, 187, 3790,
4489 : 6365, 4926, 2943, 1672, 4897, 6489, 1484, 1902, 5936, 3735,
4490 : 1470, 4956, 3989, 1712, 1386, 793, 1716, 3995, -1765, 3996,
4491 : 2874, 793, 6498, 3953, 4421, 6366, 1127, 5735, 6147, 4002,
4492 : 5736, 1903, 4003, 40, 4004, 4005, 4616, 5737, 4007, 2878,
4493 : 2878, 4024, 4010, 4251, 4011, 187, 1507, 4013, 5377, 6336,
4494 : 4949, 1591, 1974, 1213, 1215, 1217, 5383, 3915, 1219, 1220,
4495 : 1221, -1718, 5542, 2866, 3736, 5738, 4422, 4898, 1226, 1633,
4496 : 2879, 2879, 44, 1649, -1718, 3082, 1975, 3024, 3025, 3289,
4497 : -1718, 6218, 3015, -2457, 1508, 5543, 6346, -173, 1509, 5033,
4498 : 5685, 949, 5544, 1634, 3016, 3112, 2880, 2880, 4158, 2867,
4499 : 4312, 4423, 683, 3342, 4165, 1433, 5545, 2673, 3791, 4376,
4500 : 4377, 4052, -150, 5034, 5686, 1042, 48, -2438, -173, 1043,
4501 : 3899, 1646, 4252, 1510, 3017, 1274, 5739, 3737, 4124, -1718,
4502 : 49, 1650, 4125, 4126, 4127, 4220, 1651, 2874, 2874, 5740,
4503 : 4378, 1652, 5245, 1647, 5246, 4899, 4882, 4926, 4023, 4900,
4504 : 5273, 1433, 5741, 2673, 50, 233, 4253, 2952, 2944, 1444,
4505 : 1445, 669, -1718, 2945, 1444, 1445, 6062, 4123, 6169, 761,
4506 : 763, 4254, 4653, 56, 957, 6170, 685, 4654, 1446, 4151,
4507 : 3, 4, 2106, 1448, 4066, 5890, 5901, 835, 959, 4067,
4508 : 15, 5905, 5906, 1654, 4255, 1648, 1673, 980, 40, 1386,
4509 : 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1633, 1386,
4510 : 1433, 5081, 1462, 5167, -1718, 4175, 1623, 3600, 4654, 866,
4511 : 1386, 1640, 1386, 4256, -1718, 981, 5296, 999, 20, 866,
4512 : 1042, 1033, 1634, 3597, 1043, 3601, 3602, 44, -2430, 1827,
4513 : 5546, 1656, 1828, 1042, 6453, 1230, 4150, 1043, 4152, 4153,
4514 : 2052, 3738, 56, 4875, 3377, 3378, 3379, 3380, 866, 4206,
4515 : 1386, 1092, 1674, 954, 1386, 1657, 2626, 1386, -2431, 1386,
4516 : 3441, 4473, 1386, 1042, 1024, 1230, 1386, 1043, 1433, -468,
4517 : 2673, 48, 5695, 4231, 4232, 1041, 1659, 4340, 1649, 1986,
4518 : 2036, 1085, 1828, 1828, 3792, 49, 3371, 2634, 3900, 3488,
4519 : 1828, -1718, 1087, 4222, 1675, 866, 866, 1474, 1106, 3594,
4520 : 2647, 1676, -629, 2648, -1718, 1677, 1386, 1120, 2681, 50,
4521 : -1718, 1828, 4257, 4382, 3185, 1386, 1386, 2648, 1444, 1445,
4522 : 3196, 3486, 4307, 3197, 1128, 3486, 3793, 1660, 56, 866,
4523 : 4129, 3198, 3237, 3629, 3197, 3238, 1650, 3532, 1130, 3537,
4524 : 3901, 1651, 5200, 1129, 1474, 1474, 1652, 3514, 3515, 696,
4525 : 6320, 697, -1789, -1789, 5742, 6323, 6324, 5743, 5207, -1718,
4526 : 5990, 3794, 2952, -1718, 1147, 3444, 4193, 1826, 1980, -1793,
4527 : -1793, 4268, 3739, 3570, 2674, 3573, -1792, -1792, 1878, 805,
4528 : 3740, 805, 4955, 3741, 1151, 3449, 3538, 5547, 2648, 2648,
4529 : 5324, 1579, -1718, 1145, -468, 1386, 1158, 1580, 1654, 5548,
4530 : 3627, 4602, 3709, 3628, 4251, 3710, 653, 5892, 5893, 965,
4531 : 1001, 965, 965, 5230, 1167, 954, 3876, 4130, 866, 3877,
4532 : 5235, 5236, 3529, 5135, 4015, 32, 3733, 3197, 6033, 6034,
4533 : 3486, 4323, 1042, 1174, 4064, 1467, 1043, 2648, 4073, 829,
4534 : 4079, 2648, 1582, 2648, -1718, 6464, 1656, 40, 6467, 4343,
4535 : 3145, 2848, 3146, 4945, -1718, 4952, 4080, 40, 4912, 2648,
4536 : 5886, 4929, 40, 6179, 6180, 3650, 866, 3615, 1185, 664,
4537 : 1657, 1988, 3661, 4084, 1990, 4085, 1992, 1168, 1994, 4099,
4538 : 1996, 866, 3835, 4252, 2000, 4110, 44, 1678, 2648, 4143,
4539 : 4539, 1659, 2648, 6308, 926, 927, 44, 4697, 4926, 1583,
4540 : 1192, 44, 4316, 866, 778, 4157, 1584, 3823, 2648, 1202,
4541 : 1585, 6419, 4386, 1238, 4388, 2740, 4589, 4253, 4162, 4229,
4542 : 3349, 4163, 2648, 3352, 866, 1679, 4561, 1229, 1234, 1680,
4543 : 48, 4971, 4254, 4399, 6215, 4416, 4400, 829, 4404, 1586,
4544 : 48, 4405, 1660, 4432, 49, 48, 4433, 1241, 4501, 4625,
4545 : 1145, 4433, 4626, 1230, 49, 4255, 4327, 1244, 2111, 49,
4546 : 954, 2112, 1246, 954, 1681, -3012, -3012, -3012, 50, 4628,
4547 : 1247, 1682, 4629, 3724, 4659, 1587, 4772, 4660, 50, 4773,
4548 : 4313, 4314, 4783, 50, 4256, 4784, 4211, 56, 4212, 866,
4549 : 866, 4794, 4870, 2637, 2648, 4871, 4876, 56, 1257, 4877,
4550 : 2638, 5860, 56, -1718, 3806, 6137, 3809, 3811, 4531, 1258,
4551 : 1260, 4441, 5782, 1259, 4885, 4881, 4447, 5136, 3553, 3769,
4552 : 3197, 3063, 6268, 29, 5202, 5242, 2639, 2028, 2648, 4131,
4553 : 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 1386, 1386,
4554 : 1386, 1262, 1261, 3371, 1386, 3373, 5279, 3374, 5335, 2648,
4555 : 5361, 3553, 954, 5362, 5491, 1690, 1268, 5492, 4491, 1589,
4556 : 3484, 1270, 3486, 3486, 4498, 954, 5528, 1404, 1407, 4660,
4557 : 1590, 1386, 1042, 954, 3375, 1411, 1043, 3476, 4886, 6426,
4558 : 1591, 1412, 4057, 4257, 4059, 4060, 2848, 3462, 3464, 3465,
4559 : 5153, 866, 1592, 5564, 1413, 1421, 5565, 3913, -1718, 5146,
4560 : 805, 5566, 5586, 5596, 2648, 5587, 1980, 5602, 6077, 6078,
4561 : 4599, -1718, 954, 3924, 4213, 1417, 4214, -1718, 1274, 4872,
4562 : 1426, 4124, 187, 3806, 40, 4125, 4126, 4127, 952, 5604,
4563 : 4437, 952, 4599, 954, 1718, 3946, 1427, 1594, 1595, 3376,
4564 : 5729, 964, 964, 5730, 5749, 2640, 5845, 3197, 5783, 1429,
4565 : 2641, 5784, 4453, 4613, 3964, 4614, 964, 6482, 4054, 964,
4566 : 1436, 5843, 5849, 44, 5844, 1980, -1718, 5852, 5868, 1719,
4567 : 4599, 5869, 5920, 4926, 954, 5921, 954, 5960, 954, 5987,
4568 : 2605, 1433, 5869, 6024, 5489, 6025, 4163, 6045, 2648, 6049,
4569 : 6046, 5075, 1980, 5076, 4579, 3377, 3378, 3379, 3380, -1718,
4570 : 1437, 2643, 3381, 3382, 1450, 1452, 2679, 48, 3383, 964,
4571 : 999, 2005, 6050, 964, 964, 2648, 6058, 4887, 1467, 6059,
4572 : 3942, 49, -1131, 4928, 4888, 6083, 4931, 6086, 3238, 4934,
4573 : 3238, 4889, 6087, 6090, 2740, 3238, 2648, 6091, 1468, 6057,
4574 : 2648, 1145, 1597, 1145, 1479, 50, -3011, 4562, 1494, 4564,
4575 : 4661, -1718, 4663, 1495, 4665, 4691, 4593, 1496, 1462, 6092,
4576 : 2644, -1718, 6093, 1575, 6269, 653, 954, 1577, 965, 4890,
4577 : 965, 965, 6119, 954, 6185, 6120, 5815, 4599, 5816, 4704,
4578 : 1386, 1727, 1546, 6200, 6202, 1386, 2648, 2648, 6137, 3365,
4579 : 6217, 1578, 4891, 3197, 4926, 6232, 929, 6258, 6233, 5558,
4580 : 6259, 6393, 1618, 6394, 3486, 4778, 1826, 1467, 1499, -1706,
4581 : 4572, 3486, 4575, 683, 1505, 1572, 3486, 2111, 4274, 3486,
4582 : 2112, 6307, 5554, 5555, 5857, 1145, 4822, 6343, 4824, 1515,
4583 : 5869, 4634, -2475, 4129, 1386, 1386, 1386, -1104, 6389, 1386,
4584 : 5288, 6390, 5290, 2679, 929, -3011, 1613, 1386, 1386, 1386,
4585 : 1386, 6409, 2637, 4676, 6410, 4744, 2646, 1617, 6417, -3012,
4586 : 4955, 4871, 1619, 1386, 1274, 3384, 1386, 4124, 1386, 1632,
4587 : 1630, 4125, 4126, 4127, 1642, 6266, 6420, 3385, 1645, 2648,
4588 : 1386, 1386, 1669, 6447, 1386, 2639, 6046, 685, 6449, 4771,
4589 : 6457, 2648, 6495, 6458, 6497, 6410, 1686, 6458, 6499, -3011,
4590 : 4844, 6410, 4847, 1001, 2719, 1386, 2722, 1386, 1687, 1386,
4591 : -1718, 1703, -3011, -1717, 5581, 1713, 5582, 1516, -3011, 4926,
4592 : 4130, 5359, 4946, 1714, -3011, 1717, -1717, 1722, 1386, 1836,
4593 : -3011, 4210, -1717, -3011, 1723, 866, 1838, -3011, 1840, 1845,
4594 : 4810, 1851, 1856, 1859, 1861, 687, 1866, 1869, 1871, 929,
4595 : 1863, 4216, 4217, 4218, 1885, 1880, 866, 1886, 4192, -137,
4596 : 29, 1889, 1888, 2574, 1891, 4699, 1894, -3011, 1893, -3011,
4597 : 1905, 1517, -3012, -3012, -3012, 2578, 2579, 2580, 2581, 2582,
4598 : 2583, -1717, 1912, 1914, 3484, 1917, 653, 5699, 1921, 3488,
4599 : 4249, 213, 1930, 1935, 4249, 4263, 4249, 4249, 1936, 1937,
4600 : -3011, 929, 1939, 1386, -3012, 1474, 935, 1942, 1386, -3012,
4601 : 4181, 4908, 4182, 1943, -1717, 5180, 1946, 1947, 1954, -1766,
4602 : 187, 1958, 1960, 1386, 1961, -1766, 1963, 2674, 1965, 1970,
4603 : 1971, 1973, 1976, 1983, 5700, 1985, 1979, 3488, 1982, 4183,
4604 : 2002, 4295, 2033, 2040, 4298, 3488, 2049, 3537, 2042, 3691,
4605 : 2111, 4966, -3011, 2112, 2045, 2050, -3011, -1965, -1972, 5701,
4606 : -3012, 40, -3011, 2059, 2057, 5056, -1717, 2058, -1962, 5069,
4607 : 696, 2060, 697, 2061, 936, 56, -1717, 3715, 5702, -3012,
4608 : 2063, 2064, 2065, -1131, 5703, 2637, 1518, -1963, 1386, 2067,
4609 : 2068, -1966, -3012, 5807, 2069, 2070, 700, 3486, 2071, 1878,
4610 : 44, -1964, 2072, 2073, 3376, 2074, 5704, -1766, 5061, 2075,
4611 : 5705, 2076, 954, 954, 5821, 2077, 2078, 6424, 2639, 2644,
4612 : 2079, 2080, -3011, 2082, 2083, 5706, 2084, 2085, 2086, 2087,
4613 : 2088, 2089, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138,
4614 : 4139, 2092, 2090, 2093, 48, 5842, 2094, 2095, 1386, 2096,
4615 : 2097, 2098, 1519, 2099, 2589, 4995, 4362, 2593, 49, -1766,
4616 : 3377, 3378, 3379, 3380, 2595, 2591, 4130, 4184, 2596, 937,
4617 : 2609, 2605, 2621, 4185, 2629, 2651, 2657, 3366, 2111, 2652,
4618 : 2659, 2112, 50, 2660, 2663, 2113, 2114, 2115, 2666, 2664,
4619 : 1520, 4801, 2667, 2668, 1521, 2669, 2670, 2675, 35, 4274,
4620 : 1482, 56, -1444, 2636, -1444, 1484, 4410, 2713, 2715, 2725,
4621 : 2682, -3011, 2727, 2637, 2728, -3012, 2729, 2730, 2746, 2747,
4622 : 2638, 2748, 2749, 2750, 2103, -1717, 2673, 2751, 2752, 1522,
4623 : 866, 5707, 2753, 2754, 2755, 2756, -3011, -3012, -3011, -3011,
4624 : 2916, 2762, -3012, 2778, 2784, 2804, 2639, 2808, 2811, 2790,
4625 : 2812, 2810, 2814, 2815, 2828, 2833, 2832, 2834, 2852, 2853,
4626 : -3011, 2868, 2870, 2871, 1523, 2872, 2864, 1524, 2873, 2874,
4627 : 2882, 2883, 2103, 2111, 2884, 2889, 2112, 5511, 3486, 2887,
4628 : 2113, 2114, 2115, -3011, 2888, -3011, -3011, 5708, 2898, 2908,
4629 : 2922, 2894, 2932, -3012, 2895, 2904, 3371, 2905, 2636, 3486,
4630 : 2918, 2939, 2946, 2949, 2964, 1591, 2975, 2966, 2637, 2919,
4631 : 2925, 2968, 4202, 2928, 2976, 2638, 2992, 2929, 938, 1525,
4632 : 3001, 3023, -3012, 2973, 3035, 3037, 3038, 2934, 3039, 4035,
4633 : 4186, 2935, 2947, 3486, 2578, 2579, 2580, 2581, 2582, 2583,
4634 : 2954, 2639, 4187, 2955, 3030, 2960, 2961, 3040, 2967, 1386,
4635 : 2969, 2981, 2644, 2982, 2995, 1386, 3044, 3484, 3006, 3045,
4636 : 3484, 3046, 3052, 3048, 3051, 2640, 954, 3049, 3050, 3057,
4637 : 2641, 3056, 3058, 652, 4237, 3059, 3066, 4243, 4131, 4132,
4638 : 4133, 4134, 4135, 4136, 4137, 4138, 4139, 3067, 678, 3070,
4639 : 3075, 3083, 3094, 2642, 2306, 3098, 1666, 3111, 5197, 3099,
4640 : 3102, 3114, 3117, 866, 866, 866, 3118, 3127, 3484, 3138,
4641 : 2679, 3144, 3487, 3148, 3160, 3162, 3484, 3163, 3164, 5189,
4642 : 866, 2643, 5191, 3131, 3135, 3476, 3153, 3210, 3178, 928,
4643 : 3221, 3247, 3165, 3476, 1386, 3266, 3344, 3271, 3235, 3350,
4644 : 2112, 3391, 3411, 3437, 3311, 3417, 3432, 3438, -3012, 3452,
4645 : 3451, 5206, 2005, 866, 866, 3354, 3370, 3389, 866, 3416,
4646 : 2640, 5267, 3436, 3453, 2373, 2641, 3435, 3450, 3454, 3455,
4647 : 866, 3459, 1457, 3467, 5472, 3468, 3489, 3506, 3523, 3486,
4648 : 2644, 3507, 936, 5146, 3508, 5108, 5109, 3494, 2642, 2306,
4649 : 952, 3530, 3509, 964, 3542, 964, 964, 3531, 3543, 3545,
4650 : 3571, 3562, 5192, 5193, 5194, 5195, 5196, 3574, 5253, 3576,
4651 : 3579, 3584, 5314, 3589, 3603, 3590, 2643, 3595, 3592, 4623,
4652 : 3619, 1401, 3640, 1405, 3624, 3626, 954, 3643, 3634, 3641,
4653 : 3642, 3653, 3666, 3672, 3671, 3692, 3698, 3705, 3699, 3700,
4654 : 3213, 4679, 3708, 3725, 3807, 3747, 3726, 3834, 3716, 3723,
4655 : 3763, 866, 1882, 3822, 4619, -3012, 3746, 937, 3486, 2373,
4656 : 3830, 3831, 3843, 3850, 866, 3856, 3857, 2578, 2579, 2580,
4657 : 2581, 2582, 2583, 3862, 3878, 2644, 2646, 3867, 2645, 4808,
4658 : 3858, 3889, 3890, 1386, 3904, 3908, 3910, 3906, 3918, 3931,
4659 : 4656, 3936, 1386, 3937, 3938, 3939, 3940, 3925, 3944, 3949,
4660 : 1239, 3947, 3951, 3952, 3955, 3956, 1386, 3961, 3976, 3977,
4661 : 1386, 1386, 1386, 3986, 3978, 3987, 5443, 1386, 3988, 3990,
4662 : 1386, 3992, 4006, 1386, 4008, 4012, 4009, 5889, 4014, 1386,
4663 : 4017, 1386, 4018, 4019, 1386, 4020, 4021, 1980, 1549, 1386,
4664 : 1386, 1386, 1386, 4027, 4032, 1386, 1386, 1386, 1386, 1386,
4665 : 1386, 1386, 1386, 1386, 1386, 5347, 1977, 4022, 1386, 1386,
4666 : 1386, 1944, 4038, 4026, 4036, 4037, 4045, 5381, 1386, 4050,
4667 : 1236, 2646, 4048, 1386, 1550, 929, 4058, 1386, 4078, 4081,
4668 : 4094, 4098, 4075, 2574, 3288, 1386, 4076, 4120, 1386, -2256,
4669 : 1386, 4077, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582,
4670 : 2583, 4156, 4159, 4089, 4176, 4171, 1386, 4100, 4190, 1386,
4671 : 1386, 4096, 5387, 5388, 1386, 1386, 4227, 4207, 4111, 1386,
4672 : 4106, 1386, 4814, 4109, 4112, 4116, 3486, 4274, 4233, 3835,
4673 : 866, 866, 866, 4118, 4119, 5318, 4142, 4147, 1551, 4148,
4674 : 4815, 4816, 4817, 4818, 6300, 6301, 2648, 2706, 6303, 4200,
4675 : 1386, 4249, 4263, 4249, 4249, 4274, 1386, 4249, 4155, 4201,
4676 : 4837, 4241, 4270, 1082, 3488, 4170, 722, 4203, 3488, 191,
4677 : 4250, 3251, 4285, 4283, 4852, 1552, 4289, 4287, 2574, 4296,
4678 : 4304, 4205, 4266, 4228, 4234, 4310, 2066, 2575, 2576, 2577,
4679 : 2578, 2579, 2580, 2581, 2582, 2583, 4235, 652, 4236, 4276,
4680 : 4315, 1386, 4242, 4318, 4097, 4317, 5431, 5432, 1079, 1080,
4681 : 4322, 4324, 4347, 4348, 4336, 4349, 3537, 1081, 1386, 4361,
4682 : 4337, 4353, 725, 3252, 4355, 1553, 4359, 4360, 4365, 5356,
4683 : 1083, 4368, 4366, 4371, 4385, 4373, 3487, 4384, 4387, 726,
4684 : 3486, 4395, 4393, 4403, 4411, 4394, 4420, 4434, 4436, 4438,
4685 : 4440, 4442, 4444, 4448, 187, 4449, 4452, 1059, 4454, 4455,
4686 : 4459, 5421, 5422, 4456, 5424, 1554, 4457, 4474, 4476, 1555,
4687 : 4477, 4478, 4475, 4927, 2005, 2848, 4481, 2005, 5456, 5580,
4688 : 2005, 3253, 4936, 4490, 4479, 4484, 4486, 4488, 4493, 5511,
4689 : 187, 4480, 4482, 4483, 4495, 729, 4497, 2990, 2993, 4485,
4690 : 4487, 4960, 1556, 1557, 730, 4489, 4499, 4500, 4506, 4516,
4691 : 4521, 4527, 4509, 5619, 4510, 4513, 4511, 731, 4529, 4565,
4692 : 4570, 4577, 4571, 3254, 4580, 4581, 4584, 4588, 4598, 4599,
4693 : 4601, 4608, 4617, 5414, 4611, 4618, 4621, 5527, 4622, 4624,
4694 : 5529, 5530, 4638, 4652, 1558, 4274, 4655, 3486, 35, 952,
4695 : 1062, 4662, 964, 1559, 964, 964, 5009, 4658, 4664, 4670,
4696 : 5535, 4671, 1560, 4672, 4673, 4677, 4693, 4674, 4675, 4692,
4697 : 4700, 1561, 4694, 4701, 4702, 4703, 4705, 4706, 4713, 1562,
4698 : 4718, 4723, 4707, 4717, 4708, 4709, 4719, 4724, 3255, 2052,
4699 : 4727, 4732, 1563, 4720, 4124, -2255, 4733, 4785, 4796, 4738,
4700 : 4797, 1564, 4827, 4768, 5012, 4745, 1565, 4769, 4770, 4777,
4701 : 735, 5053, 4800, 2953, 4811, 3769, 4823, 4825, 4833, 4840,
4702 : 4836, 4841, 4848, 4838, 4849, 4853, 4854, 4855, 4856, 4864,
4703 : 4858, 5474, 4867, 4869, 4873, 4893, 4904, 4884, 4914, 4907,
4704 : 4905, 4906, 4915, 4917, 954, 4921, 5623, 4918, 4937, 4940,
4705 : 4941, 4958, 4961, 4974, 4977, 3638, 4973, 4989, 954, 4975,
4706 : 1386, 4976, 4987, 4988, 1566, 4990, 4991, 4992, 866, 5003,
4707 : 5001, 5010, 5021, 5022, 5098, 5027, 5030, 5046, 5047, 5004,
4708 : 5049, 5914, 4947, 5916, 5698, 2848, 5052, 5062, 5078, 5063,
4709 : 5065, 5066, 213, 3256, 5067, 5090, 740, 5100, 5105, 5111,
4710 : 866, 5119, 5126, 2103, 5132, 3488, 3924, 5125, 5138, 5131,
4711 : 5148, 5154, 5155, 3806, 4543, 3486, 5165, 5174, 5176, 5190,
4712 : 4544, 5198, 5147, 1066, 3222, 5204, 3257, 5172, 5171, 5184,
4713 : 187, 5595, 866, 744, 4545, 3484, 5178, 5179, 5175, 3484,
4714 : 745, 5205, 5595, 746, 1386, 1386, 5222, 5223, 5214, 5221,
4715 : 5224, 5226, 3476, 5225, 2111, 1386, 3476, 2112, 5227, 5228,
4716 : 5233, 5244, 4546, 747, 4547, 5234, 2005, 866, 5239, 5250,
4717 : 652, 1068, 5282, 652, 5256, 5261, 5297, 5265, 749, 999,
4718 : -2257, 1069, 5259, 5260, 866, 5746, 751, 5278, 5292, 2637,
4719 : 4548, 5316, 5307, 5320, 5300, 5293, -3012, 5321, 6038, 5311,
4720 : 5331, 3258, 5925, 5336, 5334, 5339, 5319, 5363, 5343, 3487,
4721 : 5337, 5364, 3487, 5378, 5379, 3966, 5380, 5382, 5368, 5157,
4722 : 5389, 652, 2639, 5384, 4549, 1386, 5390, 5391, 756, 652,
4723 : 3486, 5410, 5412, 5403, 5416, 5406, 3486, 5425, 5417, 1549,
4724 : 5647, 1386, 5426, 5434, 3484, 5433, 5435, 5440, 6071, 655,
4725 : 5444, 5447, 5451, 4550, 5452, 5453, 5461, 5464, 5469, 1386,
4726 : 3487, -2774, 5473, 5477, 5479, 5488, 5471, 5493, 3487, 5495,
4727 : 5470, 5483, 5499, 5500, 5502, 1550, 5504, 5506, 5668, 5517,
4728 : 5508, 5507, 3197, 5523, 5525, 5532, 5533, 1386, 5559, 5569,
4729 : 1386, 5570, 5579, 5588, 917, 6104, 6106, 5625, 1386, 1386,
4730 : 5823, 5538, 5663, 5552, 5563, 1386, 1386, 5583, 5553, 5571,
4731 : 1386, 5594, 5598, 5636, 5828, 1386, 5628, 5643, 1386, 1386,
4732 : 5601, 5639, 5620, 5622, 5653, 1386, 5657, 5658, 5659, 866,
4733 : 866, 866, 866, 3297, 3297, 4551, 5851, 5638, 5665, 1551,
4734 : 4552, -3012, 5652, 2105, 5654, 5655, -3012, 653, 3324, 5660,
4735 : 4249, 5671, 5713, 5672, 3488, 5676, 5691, 3345, 5682, 3488,
4736 : -2774, 3486, 3488, 653, 5683, 3806, 5684, 5313, 5719, 5720,
4737 : 1386, 5089, 1001, 5722, 5725, 5728, 1552, 5732, 5733, 5752,
4738 : 5753, 5757, 5762, 5764, 5780, 4295, 5785, 5799, 4553, 1386,
4739 : 5881, 3537, 5791, 5793, 5792, 5808, 5809, -3012, -2776, 2111,
4740 : 5826, 5338, 2112, 5813, 4554, 5835, 5859, 805, 5866, 5814,
4741 : 5876, 5883, 5827, 5841, -2774, 5853, 5855, 5909, 5910, 5927,
4742 : 5885, 3967, 5857, 5858, 5891, 5896, 1553, -2774, 6097, 5850,
4743 : 5894, 5887, 5902, -2774, 2637, 2848, 1386, 5941, 5944, -2774,
4744 : 655, -3012, 5908, 5952, 5948, -2774, 5919, 5954, -2774, 655,
4745 : 974, 5374, -2774, 6010, 5962, 5967, 2644, 655, 5982, 974,
4746 : 655, 5980, 5976, 5981, 5983, 6235, 5984, 2639, 5993, 5994,
4747 : 1555, 5323, 5325, 974, 6005, 5995, 3484, 3484, 5996, 6001,
4748 : 6003, 6011, -2774, 6021, 6022, 6109, 6026, 6035, 6036, 6044,
4749 : 6037, 6042, 6052, 3476, 5231, 4208, 3769, -2776, 6060, 6064,
4750 : 6065, 6067, 6068, 6069, 1557, 6082, 6102, 3769, 4555, 6114,
4751 : 6116, 6118, 6122, 2111, 6111, -2774, 2112, 1386, 6125, 187,
4752 : 6126, 6145, 5918, 6144, 1386, 6142, 6143, 6152, 6153, 6158,
4753 : 6159, 6160, 6165, 6166, 6172, 6177, 6167, 6181, 6182, 6184,
4754 : 4804, 6198, 5913, 6188, 6295, 6296, 954, 6196, 2637, 35,
4755 : 6206, -2776, -3012, 6219, 3968, -3012, 1145, 6227, 6221, 6229,
4756 : 6008, 954, 6112, 1560, -2776, 5698, 6113, -2774, 6247, 6248,
4757 : -2776, -2774, 1561, 6265, 6249, 6267, -2776, -2774, 6286, 6284,
4758 : 2825, 2639, -2776, 6285, 6321, -2776, -3012, 6287, 6051, -2776,
4759 : 6053, -3012, 1386, 1563, 6290, 6302, 6288, 6298, 6311, 6312,
4760 : 6306, 6313, 1564, 6329, 6327, 6347, 6353, 1565, 6357, 653,
4761 : 6359, 6358, 6361, 6362, 6371, 6374, 2848, 6396, 6354, -2776,
4762 : 6376, 6397, 6400, 6395, 6398, 2005, 2111, 6399, 3969, 2112,
4763 : 6415, 4302, 6427, 6429, 6418, -2019, 6438, -2774, 6430, 6442,
4764 : 3924, 6455, -3012, 6316, 6444, 6471, 6456, 6472, 6488, 6475,
4765 : 1469, 5787, -2776, 954, 4805, 3946, 6463, 6477, 6483, -3012,
4766 : 6481, 2637, 6486, 6494, 1684, 1566, 1683, 4225, -3012, 3970,
4767 : 3780, 2578, 2579, 2580, 2581, 2582, 2583, 1576, 3007, 3697,
4768 : 4379, 866, 2628, 4964, 999, 4957, 6230, 3821, 3869, 4526,
4769 : 5710, 6096, 866, 6328, 2639, 5107, 810, 5763, 4953, 4954,
4770 : -3012, 2644, 5450, 5745, -2776, -3012, 4357, 4320, -2776, 5940,
4771 : 4274, 5372, 5669, 6378, -2776, 6322, 5645, 6379, 3484, 6117,
4772 : 6339, 6115, 999, 6246, 4364, 3484, -2774, 5481, 5667, 5129,
4773 : 3484, 5158, 5137, 3484, 5099, 6079, 3887, 6097, 3888, 4962,
4774 : 5486, 4397, 3476, 4587, 1668, 1386, 5124, 3476, 5475, 5751,
4775 : 3476, -2774, 4627, -2774, -2774, 1386, -3012, 5182, 1386, 6392,
4776 : 5997, 1386, 1386, 1386, 6073, 6493, 6473, 5276, 5726, 4532,
4777 : 5166, 187, 187, 5712, -2776, -2774, 6251, 5670, 5904, 5673,
4778 : 759, 812, 1145, 1075, 2025, 5879, 1386, 1386, 4678, 5199,
4779 : 1386, 5201, 6388, 3074, 3916, -2774, 5168, -3012, -2774, -2774,
4780 : -2774, 4311, 3548, 5788, 4644, 3137, 5991, 1386, 1146, 3133,
4781 : 4496, 1386, 1186, -3012, 4993, 2644, 3818, 1386, -3012, 3149,
4782 : 4443, 3488, 6271, 6428, 5185, 5313, 1414, 6377, 1386, 2761,
4783 : 5618, 5186, 5326, 810, 6203, 3846, 1386, 3032, 4878, 3493,
4784 : 5875, 5878, 4927, 2649, 840, 1386, 841, 5229, 3166, 4272,
4785 : 4284, 2601, 6201, 3503, 6054, 4245, 2710, 4846, 4830, 4238,
4786 : 5600, 4879, 5840, -2776, 5839, 4239, 6413, 6187, 6043, -3012,
4787 : 2709, 6304, 4240, 6441, 2714, 5822, 4927, 1001, 954, 4779,
4788 : 954, 3412, 2005, 6055, 2658, 4204, 3966, 6056, -2776, 3415,
4789 : -2776, -2776, 3330, 4198, 3845, 4070, 4196, 6009, 6446, 4189,
4790 : 4105, 4728, 3427, 3491, -3012, 0, 1465, 0, 974, 0,
4791 : 1549, -3012, -2776, 0, 965, 1001, 2578, 2579, 2580, 2581,
4792 : 2582, 2583, 0, 0, 0, 6459, 0, 974, 2644, 0,
4793 : 0, 0, -2776, 974, 0, -2776, -2776, -2776, 0, 0,
4794 : 0, 0, 0, 0, 0, 974, 1550, 0, 652, 0,
4795 : 0, 5913, 652, 0, 0, 3505, 0, 0, 0, 965,
4796 : 0, 974, 5621, 0, 0, 0, 655, 0, 6319, 0,
4797 : 0, 917, 0, 5098, 0, 655, 974, 0, 866, 0,
4798 : 0, 0, 655, 866, 974, 655, 0, 3487, 0, 0,
4799 : 0, 3487, 2848, 0, 0, 0, 0, 917, 974, 0,
4800 : 0, 0, 866, 0, 0, 0, 5147, 0, 974, 5765,
4801 : 1551, 3484, 0, 0, 0, 0, 0, 0, -3012, 0,
4802 : 954, 866, 4927, 0, -3012, 0, 0, 0, 0, 0,
4803 : 2578, 2579, 2580, 2581, 2582, 2583, 0, 0, 0, 71,
4804 : 187, 6436, 80, 175, 83, 84, 85, 1552, 0, 86,
4805 : 0, 106, 0, 184, 124, 6474, 1386, 652, 129, 191,
4806 : 0, 974, 6380, 0, 0, 159, 0, 0, 0, 178,
4807 : 5778, 185, 0, 1386, 0, 5750, 0, 1386, 0, 1386,
4808 : 0, 0, 929, 655, 655, 0, 0, 0, 0, 974,
4809 : 0, 1145, 3967, 1386, 0, 0, 3487, 1553, 180, 181,
4810 : 0, 653, 6436, 0, 1386, 0, 5776, 183, 5848, 0,
4811 : 0, 6416, 0, 0, 974, 1386, 655, 6381, 6382, 0,
4812 : 186, 0, 1386, 0, 0, 0, 0, 6436, 0, 0,
4813 : 0, -3012, 0, 0, 0, 0, 0, 0, 0, 0,
4814 : 917, 1555, 0, 2578, 2579, 2580, 2581, 2582, 2583, 0,
4815 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4816 : 0, 0, 0, 655, 0, 2005, 0, 0, 0, 0,
4817 : 0, 0, 0, 1579, 1386, 1557, 974, 0, 0, 1580,
4818 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4819 : 1386, 0, 3484, 0, 1688, 0, 1386, 1386, 0, 0,
4820 : 0, 954, 954, 954, 954, 0, 0, 0, 999, 3476,
4821 : 0, 0, 0, 3484, 0, 0, 0, 0, 0, 0,
4822 : 35, 0, 0, 0, 1582, 1559, 0, 0, 0, 0,
4823 : 0, 0, 1386, 0, 1560, 0, 0, 0, 0, 0,
4824 : 0, 653, 0, 1561, 0, 0, 0, 3484, 0, 0,
4825 : 0, 2825, 0, 0, 0, 0, 0, 0, 0, 0,
4826 : 0, 0, 0, 0, 1563, 0, 866, 0, 0, 3488,
4827 : 0, 0, 0, 1564, 0, 0, 0, 0, 1565, 1689,
4828 : 0, 1583, 0, 0, 655, 655, 1822, 0, 1584, 652,
4829 : 652, 0, 1585, 974, 866, 0, 0, 0, 655, 3969,
4830 : 0, 0, 0, 917, 655, 0, 0, 0, 655, 0,
4831 : 655, 0, 0, 0, 917, 0, 0, 0, 0, 0,
4832 : 0, 1586, 1386, 0, 0, 0, 0, 0, 3487, 3487,
4833 : 917, 0, 0, 0, 1386, 0, 1566, 0, 0, 0,
4834 : 3970, 0, 0, 1386, 1386, 1386, 0, 0, 0, 2005,
4835 : 0, 0, 0, 0, 0, 3806, 0, 1587, 1386, 5970,
4836 : 0, 0, 0, 0, 0, 0, 0, 1386, 0, 1386,
4837 : 0, 1386, 5618, 0, 655, 187, 655, 655, 0, 0,
4838 : 0, 0, 0, 4927, 0, 0, 0, 0, 0, 0,
4839 : 1386, 0, 0, 3484, 0, 0, 0, 0, 0, 2005,
4840 : 0, 1001, 0, 0, 0, 866, 187, 0, 0, 0,
4841 : 1386, 6226, 0, 0, 0, 0, 0, 974, 0, 0,
4842 : 187, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4843 : 0, 0, 0, 0, 0, 0, 0, 1690, 0, 0,
4844 : 0, 1589, 0, 0, 0, 655, 2005, 2005, 0, 0,
4845 : 0, 0, 1590, 0, 0, 0, 0, 0, 0, 0,
4846 : 0, 0, 1591, 0, 0, 0, 0, 0, 6061, 0,
4847 : 0, 0, 3484, 0, 1592, 0, 954, 0, 974, 0,
4848 : 6278, 6279, 0, 0, 0, 0, 0, 917, 0, 974,
4849 : 6138, 1579, 0, 0, 0, 0, 0, 1580, 0, 0,
4850 : 0, 0, 0, 0, 0, 0, 974, 0, 0, 0,
4851 : 2103, 974, 1581, 0, 0, 0, 1691, 0, 0, 1594,
4852 : 1595, 0, 0, 655, 0, 0, 0, 0, 0, 0,
4853 : 0, 652, 0, 0, 0, 0, 0, 0, 652, 0,
4854 : 0, 1386, 1582, 652, 0, 0, 652, 5309, 0, 0,
4855 : 0, 1692, 0, 0, 0, 0, 1386, 0, 0, 0,
4856 : 5848, 0, 0, 0, 0, 655, 1386, 0, 0, 0,
4857 : 3487, 0, 0, 0, 6204, 0, 0, 3487, 3537, 0,
4858 : 0, 0, 3487, 3324, 3324, 3487, 0, 0, 3324, 0,
4859 : 0, 0, 0, 0, 655, 655, 655, 965, 655, 1583,
4860 : 0, 0, 0, 0, 0, 0, 1584, 0, 0, 954,
4861 : 1585, 0, 0, 0, 0, 0, 2005, 0, 0, 655,
4862 : 0, 0, 0, 0, 1597, 0, 0, 0, 0, 3324,
4863 : 3324, 0, 0, 0, 0, 0, 0, 0, 0, 1586,
4864 : 3484, 2848, 0, 0, 974, 0, 0, 0, 1386, 0,
4865 : 0, 0, 974, 974, 0, 0, 0, 3476, 4927, 187,
4866 : 0, 0, 0, 0, 0, 0, 965, 965, 6281, 0,
4867 : 0, 0, 1386, 0, 0, 1587, 655, 0, 0, 0,
4868 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4869 : 0, 0, 191, 0, 0, 2005, 2005, 6297, 0, 0,
4870 : 0, 0, 0, 1386, 1386, 1822, 0, 1386, 0, 0,
4871 : 6305, 0, 0, 0, 0, 0, 2111, 0, 0, 2112,
4872 : 0, 0, 655, 2113, 2114, 2115, 655, 655, 6252, 0,
4873 : 0, 6273, 6274, 0, 0, 2005, 0, 0, 0, 0,
4874 : 6275, 954, 655, 6352, 0, 0, 0, 0, 917, 0,
4875 : 0, 2637, 0, 6276, 3484, 1588, 0, 0, 2638, 1589,
4876 : 0, 0, 1549, 0, 0, 0, 0, 0, 187, 0,
4877 : 1590, 0, 0, 6138, 954, 954, 0, 0, 0, 4927,
4878 : 1591, 0, 0, 0, 2639, 0, 0, 0, 0, 0,
4879 : 0, 0, 1592, 5458, 0, 0, 0, 653, 1550, 6484,
4880 : 6485, 0, 0, 0, 1386, 0, 0, 0, 0, 0,
4881 : 191, 0, 6370, 0, 0, 917, 0, 0, 0, 0,
4882 : 1386, 0, 0, 0, 652, 0, 3537, 0, 0, 795,
4883 : 0, 4295, 0, 0, 1593, 795, 0, 1594, 1595, 0,
4884 : 0, 1386, 0, 0, 0, 0, 0, 0, 0, 6273,
4885 : 6274, 0, 0, 0, 0, 0, 917, 0, 6275, 0,
4886 : 0, 3484, 1551, 3487, 0, 2111, 0, 0, 2112, 1596,
4887 : 0, 6276, 2113, 2114, 2115, 0, 0, 6401, 6402, 653,
4888 : 6406, 0, 0, 0, 0, 5848, 0, 0, 0, 917,
4889 : 1386, 0, 0, 0, 0, 0, 0, 0, 0, 1552,
4890 : 2637, 954, 0, 2640, 4927, 0, 0, 2638, 2641, 0,
4891 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4892 : 0, 0, 0, 0, 6370, 0, 0, 0, 0, 0,
4893 : 0, 2642, 2306, 2639, 0, 191, 0, 0, 0, 0,
4894 : 0, 0, 1597, 0, 0, 0, 0, 0, 0, 1553,
4895 : 0, 1386, 653, 0, 0, 0, 974, 0, 0, 2643,
4896 : 0, 0, 0, 0, 0, 0, 0, 0, 653, 0,
4897 : -2793, 655, 655, 655, 6273, 6274, 0, 0, 0, 0,
4898 : 0, 0, 0, 6275, 0, 965, 965, 0, 0, 6487,
4899 : 0, 6370, 0, 1555, 0, 0, 6276, 0, 0, 0,
4900 : 0, 0, 2373, 0, 0, 652, 0, 0, 6370, 0,
4901 : 0, 0, 0, 0, 0, 0, 0, 0, 2644, 0,
4902 : 0, 0, 0, 0, 0, 0, 652, 1557, 187, 3484,
4903 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4904 : 0, 972, 0, 0, 3487, 0, 0, 0, 0, 0,
4905 : 1008, 0, 2640, 187, 0, 0, 0, 2641, 0, 0,
4906 : 652, 0, 0, 0, 1030, 3487, 0, 0, 0, -2793,
4907 : 0, 974, 35, 0, 2824, 0, 0, 1559, 0, 0,
4908 : -3012, -3012, 0, 917, 0, 0, 1560, 0, 0, 0,
4909 : 0, 0, 721, 0, 917, 1561, 0, 0, 964, 3487,
4910 : 0, 809, 0, 2825, 0, 0, 1822, 0, 2643, 0,
4911 : 917, 0, 0, 0, 2646, 0, 1563, 0, 0, 0,
4912 : 0, 0, 0, -2793, 0, 1564, 0, 0, 0, 974,
4913 : 1565, 0, 0, 0, 0, 0, -2793, 974, 0, 0,
4914 : 0, 0, -2793, 964, 3484, 974, 0, 0, -2793, 0,
4915 : 3484, -3012, 0, 0, -2793, 0, 0, -2793, 0, 0,
4916 : 0, -2793, 0, 0, 917, 0, 0, 2644, 0, 0,
4917 : 0, 6351, 0, 655, 0, 0, 655, 0, 0, 917,
4918 : 0, 0, 917, 917, 0, 0, 655, 655, 1566, 974,
4919 : 974, -2793, 0, 0, 0, 0, 0, 0, 0, 0,
4920 : 0, 655, 0, 974, 655, 0, 652, 0, 0, 0,
4921 : 0, 0, 0, 917, 917, 0, 974, 974, 0, 0,
4922 : 0, 2574, 0, 0, -2793, 0, 0, 0, 0, 0,
4923 : 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0,
4924 : 0, 0, 0, 0, 0, 3487, 0, 0, 0, 0,
4925 : 0, 0, 0, 0, 655, 0, 0, 0, 655, 655,
4926 : 0, 0, 0, 2646, 0, 0, 0, 0, 0, 0,
4927 : 0, 0, 0, 0, 0, 3484, -2793, 0, 0, 0,
4928 : -2793, 0, 0, 0, 0, 652, -2793, 0, 0, 0,
4929 : 0, 0, 0, 655, 0, 655, 187, 0, 0, 0,
4930 : 655, 655, 0, 0, 0, 0, 0, 655, 655, 655,
4931 : 655, 655, 655, 655, 655, 655, 655, 655, 655, 655,
4932 : 0, 0, 0, 655, 3487, 655, 0, 655, 655, 655,
4933 : 655, 655, 655, 0, 0, 655, 0, 655, 655, 0,
4934 : 0, 655, 0, 0, 0, 0, -2793, 0, 0, 0,
4935 : 0, 0, 0, 0, 0, 917, 655, 655, 655, 0,
4936 : 0, 0, 1579, 0, 0, 0, 3297, 0, 1580, 0,
4937 : 2574, 0, 0, 0, 655, 0, 1822, 0, 0, 2575,
4938 : 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 3324, 3324,
4939 : 3324, 3324, 0, 0, 3324, 3324, 3324, 3324, 3324, 3324,
4940 : 3324, 3324, 3324, 3324, 1646, 810, 0, 0, 0, 0,
4941 : 0, 0, 0, 1582, 0, 0, 0, 0, 0, 0,
4942 : 0, 0, 4775, 0, 0, 5953, 1647, 0, 0, 0,
4943 : 0, 0, 0, 0, 0, -2793, 0, 0, 0, 0,
4944 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4945 : 0, 0, 4937, 652, 0, 0, 0, 0, 3324, 3324,
4946 : -2793, 0, -2793, -2793, 0, 0, 0, 0, 0, 0,
4947 : 1583, 0, 0, 0, 0, 0, 0, 1584, 1648, 4947,
4948 : 0, 1585, 0, 0, -2793, 0, 2781, 0, 0, 0,
4949 : 0, 0, 3487, 0, 0, 0, 0, 0, 0, 0,
4950 : 0, 0, 0, 0, -2793, 4835, 0, -2793, -2793, -2793,
4951 : 1586, 0, 0, 0, 0, 0, 0, 0, 1100, 0,
4952 : 0, 0, 655, 0, 1100, 0, 4948, 0, 0, 0,
4953 : 0, 2111, 0, 0, 2112, 0, 1100, 0, 2113, 2114,
4954 : 2115, 0, 0, 0, 0, 0, 1587, 0, 4949, 0,
4955 : 0, 0, 0, 0, 0, 0, 2636, 0, 0, 0,
4956 : 0, 0, 0, 0, 0, 0, 2637, 652, 0, 0,
4957 : 0, 1649, 0, 2638, 0, 0, 655, 0, 0, 0,
4958 : 0, 1579, 0, 0, 0, 0, 795, 1580, 795, 0,
4959 : 795, 0, 0, 0, 0, 0, 795, 1223, 1224, 2639,
4960 : 0, 0, 1688, 0, 0, 0, 3487, 0, 0, 0,
4961 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4962 : 0, 0, 0, 0, 0, 0, 1690, 0, 0, 1650,
4963 : 1589, 0, 1582, 655, 1651, 0, 0, 0, 0, 1652,
4964 : 0, 1590, 0, 0, 0, 0, 0, 0, 0, 0,
4965 : 0, 1591, 0, 0, 0, 2952, 0, 0, 0, 4950,
4966 : 0, 0, 0, 1592, 0, 0, 0, 0, 0, 0,
4967 : 0, 0, 0, 0, 652, 0, 0, 0, 0, 0,
4968 : 0, 0, 0, 0, 0, 0, 0, 1689, 0, 1583,
4969 : 0, 1654, 0, 0, 0, 0, 1584, 0, 0, 0,
4970 : 1585, 0, 0, 0, 0, 2805, 0, 0, 1594, 1595,
4971 : 0, 0, 0, 3487, 0, 914, 0, 0, 2640, 0,
4972 : 0, 0, 0, 2641, 0, 0, 0, 0, 0, 1586,
4973 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 1656,
4974 : 2806, 0, 0, 1076, 0, 0, 2642, 2306, 0, 0,
4975 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4976 : 0, 0, 0, 1657, 0, 1587, 0, 0, 0, 0,
4977 : 0, 0, 0, 0, 2643, 0, 0, 0, 0, 0,
4978 : 0, 964, 0, 0, 1659, 0, 4951, 795, 0, 4368,
4979 : 0, 0, 0, 1144, 721, 0, 0, 0, 0, 0,
4980 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 3324,
4981 : 0, 0, 0, 1597, 0, 0, 0, 2373, 655, 655,
4982 : 655, 655, 655, 655, 655, 655, 655, 0, 655, 0,
4983 : 0, 0, 0, 2644, 0, 1660, 2645, 0, 0, 655,
4984 : 0, 655, 652, 0, 0, 1690, 0, 0, 0, 1589,
4985 : 964, 964, 0, 0, 0, 0, 0, 795, 0, 0,
4986 : 1590, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4987 : 1591, 0, 0, 0, 0, 0, 0, 0, 0, 655,
4988 : 0, 3487, 1592, 655, 0, 0, 655, 0, 655, 1243,
4989 : 0, 655, 0, 0, 0, 655, 0, 0, 0, 0,
4990 : 0, 0, 2874, 0, 0, 0, 0, 0, 0, 1265,
4991 : 0, 0, 0, 0, 0, 0, 1822, 1389, 655, 0,
4992 : 1398, 1144, 1400, 0, 3777, 0, 0, 1594, 1595, 2646,
4993 : 0, 0, 0, 0, 0, 655, 0, 0, 0, 0,
4994 : 0, 0, 0, 0, 655, 655, 0, 0, 0, 0,
4995 : 0, 0, 0, 0, 0, 0, 0, 652, 0, 3778,
4996 : 0, 0, 0, 652, 0, 0, 0, 0, 0, 0,
4997 : 0, 974, 0, 0, 0, 0, 0, 0, 917, 0,
4998 : 0, 6356, 917, 917, 0, 0, 0, 0, 0, 974,
4999 : 0, 0, 0, 974, 0, 0, 3487, 974, 0, 0,
5000 : 0, 0, 3487, 0, 0, 0, 974, 0, 0, 0,
5001 : 0, 0, 0, 0, 0, 0, 1579, 0, 0, 0,
5002 : 0, 974, 1580, 0, 655, 0, 0, 0, 0, 0,
5003 : 0, 0, 1597, 0, 0, 655, 2574, 917, 655, 5258,
5004 : 655, 655, 0, 917, 0, 2575, 2576, 2577, 2578, 2579,
5005 : 2580, 2581, 2582, 2583, 0, 974, 0, 0, 4113, 0,
5006 : 0, 4114, 0, 6404, 0, 0, 0, 1582, 0, 0,
5007 : 0, 0, 0, 0, 0, 974, 974, 0, 0, 0,
5008 : 0, 0, 0, 0, 0, 0, 0, 0, 652, 0,
5009 : 0, 917, 0, 0, 0, 0, 0, 0, 0, 0,
5010 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5011 : 0, 0, 0, 1822, 974, 0, 0, 1822, 0, 0,
5012 : 0, 0, 0, 0, 1583, 1144, 0, 3487, 0, 0,
5013 : 0, 1584, 0, 0, 0, 1585, 6404, 0, 0, 0,
5014 : 0, 974, 0, 1822, 0, 0, 0, 974, 0, 0,
5015 : 0, 0, 6470, 0, 0, 0, 0, 0, 0, 0,
5016 : 0, 974, 0, 0, 1586, 0, 0, 0, 974, 964,
5017 : 964, 974, 0, 0, 1579, 0, 0, 974, 0, 0,
5018 : 1580, 0, 0, 0, 2111, 0, 0, 2112, 0, 0,
5019 : 0, 2113, 2114, 2115, 0, 0, 0, 974, 0, 0,
5020 : 1587, 0, 0, 974, 0, 0, 0, 0, 0, 2636,
5021 : 974, 795, 0, 0, 0, 0, 795, 795, 0, 2637,
5022 : 0, 0, 0, 0, 974, 1582, 2638, 0, 0, 0,
5023 : 0, 0, 0, 0, 0, 0, 0, 0, 974, 0,
5024 : 0, 0, 0, 1822, 2654, 0, 0, 0, 0, 974,
5025 : 0, 0, 2639, 2661, 0, 2662, 0, 0, 0, 2665,
5026 : 0, 0, 0, 0, 0, 0, 2671, 655, 655, 655,
5027 : 0, 0, 0, 655, 0, 0, 0, 0, 0, 0,
5028 : 1588, 0, 1583, 0, 1589, 0, 0, 0, 0, 1584,
5029 : 0, 0, 0, 1585, 0, 1590, 0, 0, 0, 0,
5030 : 655, 917, 0, 0, 0, 1591, 0, 0, 0, 1822,
5031 : 0, 0, 0, 0, 0, 0, 2030, 1592, 0, 0,
5032 : 0, 0, 1586, 0, 0, 0, 0, 0, 0, 0,
5033 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5034 : 0, 0, 655, 1144, 0, 0, 0, 0, 0, 0,
5035 : 0, 0, 0, 0, 0, 0, 0, 795, 1587, 2890,
5036 : 0, 0, 1594, 1595, 0, 0, 0, 795, 0, 0,
5037 : 0, 2640, 0, 0, 917, 0, 2641, 0, 917, 0,
5038 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5039 : 0, 0, 914, 0, 2891, 0, 0, 0, 0, 2642,
5040 : 2306, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5041 : 0, 1223, 1224, 0, 0, 0, 0, 0, 914, 0,
5042 : 0, 0, 0, 0, 0, 0, 0, 2643, 0, 0,
5043 : 0, 0, 2107, 0, 0, 0, 0, 0, 1690, 0,
5044 : 0, 2109, 1589, 0, 0, 0, 0, 0, 0, 0,
5045 : 0, 0, 0, 1590, 795, 0, 0, 2599, 795, 795,
5046 : 0, 0, 0, 1591, 974, 0, 1822, 1597, 0, 0,
5047 : 2373, 0, 0, 0, 0, 1592, 1144, 0, 0, 2616,
5048 : 2617, 917, 0, 974, 1144, 1144, 2644, 0, 0, 2645,
5049 : 974, 0, 0, 0, 655, 0, 917, 655, 0, 655,
5050 : 655, 917, 0, 0, 0, 0, 0, 3324, 0, 655,
5051 : 0, 0, 0, 0, 655, 0, 0, 3632, 0, 0,
5052 : 1594, 1595, 0, 0, 0, 0, 0, 0, 0, 0,
5053 : 0, 917, 0, 0, 0, 0, 0, 0, 0, 0,
5054 : 0, 0, 0, 0, 0, 0, 0, 3005, 0, 0,
5055 : 0, 0, 1596, 0, 0, 0, 0, 0, 0, 0,
5056 : 3324, 914, 0, 655, 655, 655, 0, 0, 655, 0,
5057 : 0, 0, 0, 0, 0, 0, 655, 655, 655, 655,
5058 : 0, 0, 2646, 0, 0, 0, 0, 1822, 0, 0,
5059 : 0, 0, 655, 1822, 0, 655, 0, 655, 0, 0,
5060 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 655,
5061 : 655, 1579, 0, 655, 0, 0, 0, 1580, 0, 0,
5062 : 0, 0, 0, 0, 0, 1597, 0, 0, 0, 0,
5063 : 0, 1579, 0, 0, 655, 0, 655, 1580, 655, 0,
5064 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5065 : 0, 0, 795, 0, 0, 0, 0, 655, 0, 0,
5066 : 0, 1579, 1582, 0, 0, 0, 0, 1580, 0, 0,
5067 : 0, 0, 0, 0, 0, 0, 0, 0, 974, 0,
5068 : 0, 0, 1582, 0, 0, 0, 0, 0, 0, 2574,
5069 : 0, 0, 0, 0, 0, 0, 0, 0, 2575, 2576,
5070 : 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0, 0, 0,
5071 : 0, 0, 1582, 0, 4115, 655, 0, 0, 655, 1583,
5072 : 3084, 0, 0, 0, 914, 0, 1584, 0, 3101, 0,
5073 : 1585, 916, 655, 0, 0, 914, 3005, 655, 0, 1583,
5074 : 0, 2957, 0, 0, 0, 0, 1584, 0, 0, 2965,
5075 : 1585, 914, 655, 0, 0, 0, 0, 0, 0, 1586,
5076 : 0, 0, 0, 0, 0, 0, 655, 0, 0, 1583,
5077 : 0, 0, 0, 0, 655, 0, 1584, 0, 0, 1586,
5078 : 1585, 3159, 0, 0, 0, 0, 917, 0, 0, 917,
5079 : -136, 917, 0, 0, 0, 1587, 917, 0, 0, 0,
5080 : 0, 0, 0, 0, 0, 0, 0, 0, 3005, 1586,
5081 : 1, 974, 974, 0, 0, 1587, 0, 655, 0, 0,
5082 : 0, 2, 3324, 3, 4, 0, 0, 0, 0, 0,
5083 : 0, 0, 974, 0, 0, 974, 0, 0, 917, 0,
5084 : 0, 5, 0, 0, 0, 1587, 917, 0, 0, 0,
5085 : 0, 6, 0, 3324, 0, 0, 0, 0, 0, 0,
5086 : 0, 0, 0, 7, 0, 8, 9, 3272, 3273, 0,
5087 : 0, 917, 10, 0, 11, 1690, 0, 655, 0, 1589,
5088 : 0, 0, 0, 0, 3309, 3310, 0, 12, 0, 13,
5089 : 1590, 0, 0, 0, 0, 1690, 0, 0, 0, 1589,
5090 : 1591, 0, 0, 0, 0, 0, 14, 0, 914, 15,
5091 : 1590, 0, 1592, 0, 0, 3355, 0, 1822, 1822, 1822,
5092 : 1591, 0, 0, 0, 16, 1690, 17, 0, 0, 1589,
5093 : 18, 0, 1592, 0, 0, 0, 0, 19, 0, 0,
5094 : 1590, 0, 974, 0, 0, 0, 0, 20, 0, 21,
5095 : 1591, 917, 0, 917, 3824, 0, 22, 1594, 1595, 0,
5096 : 0, 974, 1592, 0, 3095, 0, 0, 0, 3100, 0,
5097 : 0, 0, 0, 0, 23, 0, 0, 1594, 1595, 0,
5098 : 0, 0, 0, 974, 0, 0, 0, 0, 0, 3825,
5099 : 0, 24, 0, 0, 0, 0, 0, 0, 0, 0,
5100 : 0, 0, 0, 0, 4341, 0, 0, 1594, 1595, 1596,
5101 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5102 : 0, 0, 2111, 0, 0, 2112, 0, 0, 0, 2113,
5103 : 2114, 2115, 0, 0, 0, 0, 0, 0, 0, 4342,
5104 : 0, 0, 0, 0, 0, 25, 26, 2636, 0, 917,
5105 : 0, 27, 0, 0, 0, 0, 0, 2637, 0, 0,
5106 : 0, 0, 1597, 0, 2638, 0, 28, 0, 2615, 0,
5107 : 0, 0, 0, 974, 0, 0, 0, 0, 655, 0,
5108 : 0, 0, 1597, 0, 655, 29, 0, 0, 0, 0,
5109 : 2639, 0, 0, 917, 0, 0, 0, 0, 0, 0,
5110 : 0, 0, 0, 0, 0, 0, 0, 3324, 0, 0,
5111 : 0, 0, 1597, 0, 0, 0, 0, 0, 0, 0,
5112 : 1822, 917, 0, 0, 0, 0, 974, 0, 974, 0,
5113 : 0, 0, 0, 0, 30, 0, 0, 0, 3283, 0,
5114 : 0, 974, 0, 974, 0, 0, 0, 0, 0, 31,
5115 : 0, 0, 0, 0, 32, 33, 0, 34, 0, 0,
5116 : 0, 0, 35, 655, 0, 0, 0, 0, 36, 914,
5117 : 0, 37, 0, 0, 0, 0, 0, 0, 38, 0,
5118 : 0, 0, 0, 0, 0, 39, 40, 0, 0, 917,
5119 : 0, 0, 0, 41, 0, 0, 0, 42, 0, 0,
5120 : 0, 0, 0, 0, 0, 0, 0, 0, 43, 2640,
5121 : 974, 917, 0, 0, 2641, 0, 0, 0, 0, 0,
5122 : 0, 0, 0, 0, 0, 44, 0, 0, 0, 0,
5123 : 0, 0, 0, 917, 0, 0, 914, 2642, 2306, 0,
5124 : 0, 0, 0, 0, 0, 0, 45, 0, 0, 0,
5125 : 0, 0, 974, 0, 0, 0, 0, 0, 46, 0,
5126 : 0, 0, 0, 0, 47, 2643, 0, 0, 0, 48,
5127 : 0, 974, 0, 0, 0, 974, 0, 914, 0, 0,
5128 : 0, 0, 0, 49, 0, 0, 0, 0, 0, 0,
5129 : 0, 0, 0, 0, 0, 905, 974, 0, 0, 0,
5130 : 0, 0, 0, 0, 0, 6186, 0, 50, 2373, 0,
5131 : 914, 0, 655, 0, 0, 917, 0, 0, 0, 0,
5132 : 0, 655, 0, 0, 2644, 0, 56, 2645, 0, -136,
5133 : 0, 0, 0, 0, 0, 655, 0, 0, 0, 655,
5134 : 655, 655, 0, 0, 0, 0, 655, 0, 0, 655,
5135 : 0, 0, 655, 0, 0, 0, 0, 0, 655, 0,
5136 : 655, 0, 0, 655, 0, 0, 0, 917, 655, 655,
5137 : 655, 655, 0, 0, 655, 655, 655, 655, 655, 655,
5138 : 655, 655, 655, 655, 0, 0, 0, 655, 655, 655,
5139 : 0, 0, 917, 0, 0, 0, 0, 655, 0, 0,
5140 : 0, 0, 655, 0, 1822, 0, 655, 0, 916, 0,
5141 : 0, 0, 0, 0, 655, 0, 0, 655, 0, 655,
5142 : 2646, 0, 0, 0, 2111, 0, 0, 2112, 0, 0,
5143 : 0, 2113, 2114, 2115, 916, 655, 0, 0, 655, 655,
5144 : 0, 0, 0, 655, 655, 0, 0, 0, 655, 2636,
5145 : 655, 0, 3324, 3324, 0, 0, 3324, 0, 0, 2637,
5146 : 0, 0, 0, 0, 0, 0, 2638, 0, 0, 0,
5147 : 3456, 3458, 0, 0, 0, 0, 3466, 0, 0, 655,
5148 : 0, 0, 0, 0, 0, 655, 0, 0, 0, 0,
5149 : 0, 0, 2639, 655, 0, 0, 0, 655, 0, 0,
5150 : 0, 0, 0, 0, 914, 0, 0, 0, 3512, 3512,
5151 : 0, 0, 0, 0, 0, 914, 0, 0, 0, 0,
5152 : 0, 0, 0, 0, 0, 0, 0, 2574, 0, 0,
5153 : 655, 914, 0, 0, 0, 0, 2575, 2576, 2577, 2578,
5154 : 2579, 2580, 2581, 2582, 2583, 0, 0, 655, 0, 0,
5155 : 0, 0, 4166, 917, 0, 0, 0, 0, 0, 0,
5156 : 0, 0, 3539, 0, 0, 0, 0, 0, 0, 0,
5157 : 795, 0, 0, 0, 0, 0, 0, 916, 0, 974,
5158 : 3555, 0, 0, 0, 3558, 914, 0, 0, 3561, 0,
5159 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5160 : 914, 0, 655, 914, 914, 0, 0, 0, 0, 0,
5161 : 0, 2640, 3580, 0, 0, 0, 2641, 2111, 0, 0,
5162 : 2112, 0, 0, 0, 2113, 2114, 2115, 0, 0, 0,
5163 : 0, 0, 0, 0, 914, 914, 0, 0, 0, 2642,
5164 : 2306, 0, 2636, 1822, 0, 0, 3622, 0, 1822, 917,
5165 : 1822, 0, 2637, 0, 0, 0, 0, 0, 3649, 2638,
5166 : 0, 0, 0, 0, 0, 0, 1100, 2643, 0, 0,
5167 : 0, 0, 0, 0, 0, 0, 1822, 917, 0, 0,
5168 : 0, 0, 0, 0, 0, 2639, 0, 0, 0, 2111,
5169 : 3434, 0, 2112, 0, 0, 0, 2113, 2114, 2115, 0,
5170 : 0, 0, 0, 0, 0, 3682, 0, 0, 0, 0,
5171 : 2373, 0, 0, 0, 2636, 0, 0, 0, 0, 0,
5172 : 0, 1737, 974, 0, 2637, 974, 2644, 0, 0, 2645,
5173 : 0, 2638, 3711, 0, 0, 0, 0, 0, 3720, 0,
5174 : 916, 0, 0, 0, 0, 0, 0, 795, 0, 0,
5175 : 0, 916, 3730, 0, 0, 795, 0, 2639, 795, 1100,
5176 : 0, 0, 3743, 0, 0, 0, 0, 916, 3748, 0,
5177 : 795, 0, 0, 0, 0, 0, 914, 0, 0, 0,
5178 : 0, 0, 0, 0, 0, 0, 0, 0, 3761, 655,
5179 : 0, 0, 0, 0, 3764, 0, 0, 0, 0, 0,
5180 : 0, 3772, 0, 0, 2640, 0, 0, 0, 0, 2641,
5181 : 0, 0, 0, 0, 0, 3787, 974, 974, 0, 0,
5182 : 917, 0, 2646, 0, 0, 0, 0, 974, 0, 3813,
5183 : 0, 0, 2642, 2306, 655, 655, 0, 0, 1144, 0,
5184 : 1100, 0, 0, 0, 974, 0, 0, 0, 0, 0,
5185 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5186 : 2643, 0, 0, 0, 0, 0, 0, 917, 0, 0,
5187 : 0, 0, 917, 655, 655, 0, 2640, 0, 0, 0,
5188 : 0, 2641, 0, 0, 655, 0, 0, 0, 0, 0,
5189 : 0, 0, 0, 0, 1400, 0, 0, 0, 0, 0,
5190 : 0, 0, 0, 2373, 2642, 2306, 0, 0, 0, 0,
5191 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2644,
5192 : 0, 0, 2645, 0, 916, 974, 0, 0, 1822, 2574,
5193 : 0, 0, 2643, 0, 0, 0, 0, 0, 2575, 2576,
5194 : 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0, 0, 0,
5195 : 0, 3353, 0, 0, 655, 0, 1579, 0, 0, 0,
5196 : 0, 0, 1580, 0, 0, 0, 0, 0, 0, 0,
5197 : 655, 0, 905, 0, 0, 2373, 0, 0, 0, 0,
5198 : 0, 1400, 0, 0, 0, 0, 0, 0, 655, 0,
5199 : 0, 2644, 0, 0, 2645, 0, 0, 0, 905, 0,
5200 : 0, 0, 0, 0, 0, 1400, 0, 1582, 0, 0,
5201 : 0, 0, 0, 0, 0, 2646, 655, 795, 0, 655,
5202 : 0, 0, 0, 0, 0, 0, 0, 655, 655, 0,
5203 : 917, 0, 0, 0, 655, 655, 0, 0, 0, 655,
5204 : 0, 0, 0, 0, 655, 0, 0, 655, 655, 0,
5205 : 0, 0, 0, 0, 655, 4031, 0, 0, 0, 0,
5206 : 0, 0, 0, 0, 1583, 0, 0, 0, 0, 3812,
5207 : 0, 1584, 0, 3816, 4047, 1585, 655, 0, 0, 0,
5208 : 0, 4031, 0, 655, 0, 0, 0, 2646, 655, 0,
5209 : 0, 655, 655, 0, 0, 0, 0, 0, 0, 655,
5210 : 0, 0, 0, 0, 1586, 0, 0, 0, 0, 0,
5211 : 3849, 0, 3849, 0, 3849, 3849, 0, 0, 655, 3849,
5212 : 3849, 3849, 2574, 3849, 3849, 3849, 0, 0, 0, 0,
5213 : 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583,
5214 : 1587, 905, 0, 0, 4107, 0, 0, 917, 0, 0,
5215 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5216 : 974, 0, 0, 0, 0, 655, 0, 0, 0, 0,
5217 : 0, 0, 0, 0, 0, 0, 0, 3926, 0, 0,
5218 : 0, 0, 0, 0, 0, 2745, 0, 0, 0, 0,
5219 : 0, 0, 0, 0, 2574, 0, 0, 0, 0, 0,
5220 : 0, 917, 3954, 2575, 2576, 2577, 2578, 2579, 2580, 2581,
5221 : 2582, 2583, 0, 0, 0, 0, 4528, 0, 974, 2111,
5222 : 1690, 0, 2112, 917, 1589, 0, 2113, 2114, 2115, 0,
5223 : 974, 0, 0, 0, 0, 1590, 0, 0, 0, 0,
5224 : 4223, 0, 795, 0, 2636, 1591, 655, 0, 0, 0,
5225 : 0, 0, 2745, 655, 2637, 0, 0, 1592, 4230, 0,
5226 : 0, 2638, 0, 0, 974, 0, 0, 0, 0, 0,
5227 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5228 : 0, 0, 0, 0, 0, 0, 0, 2639, 0, 0,
5229 : 0, 0, 0, 916, 0, 917, 0, 0, 0, 4414,
5230 : 0, 0, 1594, 1595, 905, 0, 0, 0, 4279, 4279,
5231 : 0, 0, 0, 0, 0, 905, 0, 0, 0, 0,
5232 : 0, 655, 0, 0, 0, 0, 916, 0, 0, 0,
5233 : 0, 905, 0, 0, 4415, 0, 0, 0, 655, 1549,
5234 : 0, 0, 0, 1822, 0, 0, 0, 0, 0, 0,
5235 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5236 : 0, 0, 974, 0, 0, 0, 0, 0, 0, 655,
5237 : 0, 0, 0, 0, 0, 1550, 0, 0, 0, 0,
5238 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5239 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 914,
5240 : 0, 0, 0, 914, 914, 0, 2640, 1597, 1737, 1737,
5241 : 1737, 2641, 0, 0, 0, 917, 0, 917, 0, 0,
5242 : 0, 0, 0, 4325, 0, 0, 722, 0, 0, 0,
5243 : 0, 723, 0, 0, 2642, 2306, 0, 0, 0, 1551,
5244 : 0, 0, 0, 0, 0, 0, 0, 0, 974, 0,
5245 : 0, 0, 0, 0, 0, 0, 0, 0, 914, 0,
5246 : 0, 0, 2643, 0, 914, 0, 0, 0, 0, 724,
5247 : 0, 0, 0, 0, 655, 0, 1552, 0, 0, 0,
5248 : 0, 0, 725, 0, 655, 0, 0, 655, 905, 0,
5249 : 655, 655, 655, 0, 0, 0, 0, 0, 0, 726,
5250 : 0, 0, 0, 0, 0, 2373, 0, 0, 0, 0,
5251 : 1144, 0, 914, 0, 0, 655, 655, 727, 0, 655,
5252 : 916, 2644, 0, 0, 2645, 0, 1553, 0, 0, 0,
5253 : 0, 916, 0, 4412, 0, 0, 655, 0, 0, 0,
5254 : 655, 728, 0, 0, 0, 0, 655, 916, 0, 0,
5255 : 655, 0, 0, 0, 0, 729, 917, 655, 0, 0,
5256 : 0, 0, 0, 0, 730, 655, 1554, 0, 0, 0,
5257 : 1555, 655, 0, 0, 655, 0, 0, 731, 0, 0,
5258 : 974, 0, 974, 732, 0, 0, 0, 0, 0, 0,
5259 : 733, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5260 : 0, 916, 0, 1620, 1557, 655, 0, 0, 0, 0,
5261 : 734, 0, 0, 0, 0, 0, 916, 2646, 0, 916,
5262 : 916, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5263 : 0, 0, 917, 974, 0, 0, 0, 0, 0, 0,
5264 : 0, 0, 0, 655, 0, 1621, 0, 0, 0, 35,
5265 : 916, 916, 0, 0, 1559, 0, 0, 0, 0, 0,
5266 : 0, 0, 0, 1560, 4507, 0, 0, 1144, 0, 0,
5267 : 735, 0, 1561, 0, 0, 0, 0, 0, 0, 0,
5268 : 1622, 0, 0, 1822, 0, 795, 0, 0, 655, 0,
5269 : 0, 0, 0, 1563, 0, 0, 0, 0, 0, 0,
5270 : 0, 0, 1564, 0, 0, 0, 0, 1565, 4576, 0,
5271 : 0, 0, 0, 0, 0, 736, 0, 0, 0, 0,
5272 : 0, 0, 914, 0, 2574, 0, 0, 0, 737, 0,
5273 : 0, 0, 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581,
5274 : 2582, 2583, 738, 0, 0, 0, 4715, 0, 0, 905,
5275 : 1737, 655, 213, 739, 917, 4402, 740, 0, 0, 0,
5276 : 0, 0, 0, 0, 1737, 1566, 0, 1737, 0, 0,
5277 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5278 : 0, 0, 0, 741, 0, 655, 742, 0, 0, 0,
5279 : 743, 0, 916, 744, 0, 914, 0, 0, 0, 914,
5280 : 745, 0, 655, 746, 0, 0, 655, 0, 655, 0,
5281 : 0, 0, 0, 4451, 0, 0, 905, 0, 0, 0,
5282 : 0, 0, 655, 747, 0, 0, 0, 0, 0, 0,
5283 : 655, 748, 0, 655, 0, 0, 0, 0, 749, 0,
5284 : 0, 750, 0, 3005, 655, 0, 751, 0, 0, 0,
5285 : 0, 655, 0, 0, 752, 0, 753, 905, 0, 0,
5286 : 0, 754, 4680, 0, 0, 795, 4684, 0, 0, 0,
5287 : 0, 0, 0, 0, 0, 755, 0, 0, 0, 0,
5288 : 0, 0, 0, 4494, 0, 0, 0, 0, 756, 0,
5289 : 905, 0, 0, 0, 1549, 0, 0, 0, 0, 0,
5290 : 0, 0, 914, 655, 0, 0, 0, 0, 0, 917,
5291 : 0, 0, 0, 0, 917, 917, 0, 914, 0, 655,
5292 : 0, 0, 914, 0, 0, 655, 655, 974, 0, 0,
5293 : 1550, 3849, 0, 0, 0, 0, 0, 0, 0, 0,
5294 : 0, 974, 661, 4525, 4525, 0, 0, 0, 710, 661,
5295 : 0, 0, 914, 4541, 762, 0, 661, 0, 1144, 0,
5296 : 1144, 655, 661, 0, 815, 0, 0, 0, 0, 0,
5297 : 655, 0, 0, 1822, 0, 0, 0, 0, 0, 0,
5298 : 0, 0, 0, 877, 877, 0, 0, 0, 0, 0,
5299 : 0, 0, 0, 0, 1551, 0, 0, 0, 655, 0,
5300 : 0, 0, 0, 0, 0, 0, 4597, 0, 0, 0,
5301 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5302 : 0, 0, 0, 0, 0, 0, 0, 917, 917, 0,
5303 : 0, 1552, 0, 0, 0, 0, 2111, 0, 0, 2112,
5304 : 0, 4633, 1144, 2113, 2114, 2115, 0, 0, 0, 0,
5305 : 0, 655, 1822, 0, 0, 0, 0, 0, 0, 0,
5306 : 0, 2636, 0, 655, 0, 0, 0, 0, 0, 0,
5307 : 0, 2637, 655, 655, 655, 0, 0, 0, 2638, 0,
5308 : 0, 1553, 0, 0, 905, 0, 0, 655, 1822, 0,
5309 : 0, 917, 0, 0, 0, 905, 655, 0, 655, 0,
5310 : 655, 0, 0, 0, 2639, 0, 0, 0, 0, 0,
5311 : 0, 905, 655, 0, 0, 0, 0, 0, 0, 655,
5312 : 0, 1554, 0, 0, 0, 1555, 0, 0, 0, 0,
5313 : 0, 0, 0, 0, 956, 0, 0, 0, 960, 655,
5314 : 0, 0, 0, 0, 0, 0, 1003, 0, 0, 1005,
5315 : 0, 0, 1010, 1011, 0, 1014, 0, 1017, 1637, 1557,
5316 : 1023, 0, 1025, 0, 1822, 905, 0, 974, 0, 0,
5317 : 4909, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5318 : 905, 0, 0, 905, 905, 0, 0, 0, 0, 0,
5319 : 0, 907, 0, 0, 0, 0, 0, 0, 0, 0,
5320 : 1638, 0, 0, 0, 35, 0, 0, 914, 0, 1559,
5321 : 914, 0, 914, 795, 905, 905, 0, 914, 1560, 655,
5322 : 0, 0, 0, 2640, 0, 0, 0, 1561, 2641, 0,
5323 : 0, 0, 0, 0, 0, 1639, 908, 0, 0, 0,
5324 : 0, 795, 0, 0, 0, 4789, 0, 0, 1563, 0,
5325 : 0, 2642, 2306, 0, 0, 795, 0, 1564, 0, 914,
5326 : 0, 0, 1565, 0, 0, 0, 795, 914, 0, 0,
5327 : 655, 0, 0, 0, 0, 0, 0, 0, 1737, 2643,
5328 : 0, 0, 0, 0, 0, 655, 0, 0, 0, 0,
5329 : 0, 0, 914, 0, 0, 655, 0, 0, 0, 0,
5330 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5331 : 0, 0, 974, 5035, 0, 0, 5038, 0, 0, 0,
5332 : 1566, 0, 2373, 0, 0, 0, 655, 0, 0, 0,
5333 : 0, 0, 0, 0, 0, 0, 974, 0, 2644, 0,
5334 : 0, 2645, 1223, 1224, 2111, 0, 0, 2112, 0, 0,
5335 : 0, 2113, 2114, 2115, 0, 0, 905, 0, 0, 0,
5336 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2636,
5337 : 0, 0, 914, 0, 914, 0, 0, 655, 0, 2637,
5338 : 0, 0, 0, 0, 0, 0, 2638, 655, 0, 0,
5339 : 0, 0, 0, 0, 0, 655, 655, 0, 0, 0,
5340 : 0, 655, 0, 0, 0, 0, 0, 0, 0, 0,
5341 : 0, 0, 2639, 0, 0, 3544, 0, 0, 5121, 2745,
5342 : 3550, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5343 : 0, 795, 655, 655, 2646, 3005, 655, 0, 0, 0,
5344 : 0, 0, 0, 0, 2111, 0, 0, 2112, 0, 0,
5345 : 0, 2113, 2114, 2115, 902, 0, 0, 0, 0, 0,
5346 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2636,
5347 : 914, 0, 0, 0, 916, 0, 974, 0, 0, 2637,
5348 : 916, 4541, 0, 0, 795, 0, 2638, 910, 0, 0,
5349 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5350 : 0, 0, 655, 0, 0, 0, 0, 0, 655, 4999,
5351 : 0, 0, 2639, 0, 914, 0, 4031, 0, 0, 0,
5352 : 0, 0, 0, 0, 5013, 0, 655, 5014, 916, 5015,
5353 : 0, 2640, 0, 655, 0, 0, 2641, 0, 0, 0,
5354 : 0, 2574, 914, 0, 0, 0, 0, 0, 0, 655,
5355 : 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2642,
5356 : 2306, 0, 0, 4788, 0, 0, 0, 0, 0, 0,
5357 : 655, 0, 0, 0, 0, 5055, 0, 0, 0, 0,
5358 : 0, 0, 0, 0, 0, 0, 0, 2643, 0, 0,
5359 : 0, 3849, 0, 0, 0, 0, 3849, 0, 0, 0,
5360 : 1053, 0, 0, 0, 0, 0, 0, 0, 655, 0,
5361 : 914, 1090, 0, 917, 0, 1094, 0, 0, 0, 655,
5362 : 0, 0, 1107, 1108, 0, 0, 1114, 0, 1118, 1119,
5363 : 2373, 2640, 914, 655, 0, 0, 2641, 0, 0, 0,
5364 : 1822, 0, 0, 1141, 0, 0, 2644, 0, 0, 2645,
5365 : 0, 0, 0, 0, 914, 0, 0, 0, 0, 2642,
5366 : 2306, 1154, 0, 0, 0, 0, 0, 0, 0, 0,
5367 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5368 : 655, 655, 1182, 0, 1184, 0, 0, 2643, 0, 0,
5369 : 0, 0, 0, 0, 1200, 0, 5161, 655, 0, 4541,
5370 : 0, 1822, 0, 0, 0, 0, 1737, 0, 0, 0,
5371 : 0, 0, 0, 0, 655, 655, 0, 0, 0, 0,
5372 : 0, 0, 0, 0, 0, 0, 1822, 661, 0, 0,
5373 : 2373, 0, 0, 0, 0, 0, 914, 0, 916, 0,
5374 : 0, 0, 2646, 0, 0, 0, 2644, 795, 0, 2645,
5375 : 0, 0, 0, 795, 0, 0, 0, 0, 795, 0,
5376 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5377 : 0, 0, 0, 0, 0, 5210, 5210, 5210, 5210, 0,
5378 : 5210, 5210, 5210, 5210, 5210, 5400, 5401, 0, 914, 0,
5379 : 5404, 5405, 0, 0, 0, 0, 0, 0, 0, 0,
5380 : 0, 0, 0, 0, 0, 0, 0, 0, 877, 5397,
5381 : 0, 2745, 0, 914, 0, 2745, 0, 0, 0, 0,
5382 : 0, 5407, 0, 0, 0, 0, 0, 0, 0, 0,
5383 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5384 : 0, 0, 2646, 0, 0, 0, 0, 0, 0, 2574,
5385 : 0, 0, 0, 0, 0, 0, 0, 0, 2575, 2576,
5386 : 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0, 907, 0,
5387 : 0, 4895, 0, 0, 0, 0, 0, 0, 0, 0,
5388 : 2111, 0, 0, 2112, 0, 0, 0, 2113, 2114, 2115,
5389 : 0, 0, 0, 1540, 907, 0, 0, 0, 5289, 0,
5390 : 5291, 2111, 0, 0, 2112, 2636, 0, 0, 2113, 2114,
5391 : 2115, 0, 0, 908, 0, 2637, 0, 0, 916, 0,
5392 : 0, 0, 2638, 0, 0, 0, 2636, 0, 0, 0,
5393 : 0, 0, 0, 916, 0, 0, 2637, 0, 916, 908,
5394 : 0, 0, 0, 2638, 0, 0, 0, 0, 2639, 2574,
5395 : 0, 0, 0, 0, 0, 0, 0, 0, 2575, 2576,
5396 : 2577, 2578, 2579, 2580, 2581, 2582, 2583, 1721, 916, 2639,
5397 : 0, 4920, 0, 0, 914, 0, 0, 0, 0, 905,
5398 : 0, 0, 0, 905, 905, 0, 0, 0, 0, 0,
5399 : 0, 0, 1842, 0, 0, 0, 0, 0, 0, 0,
5400 : 0, 0, 0, 0, 0, 0, 0, 1854, 0, 1855,
5401 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 1858,
5402 : 0, 0, 0, 0, 0, 0, 1868, 0, 0, 0,
5403 : 0, 0, 0, 0, 0, 0, 0, 907, 905, 4031,
5404 : 0, 0, 0, 0, 905, 0, 0, 0, 0, 0,
5405 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5406 : 0, 0, 0, 0, 0, 0, 0, 2640, 0, 1920,
5407 : 914, 1922, 2641, 0, 0, 0, 0, 0, 0, 0,
5408 : 0, 0, 908, 0, 0, 0, 0, 0, 2640, 0,
5409 : 0, 0, 905, 2641, 0, 2642, 2306, 0, 914, 0,
5410 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5411 : 0, 0, 0, 0, 0, 0, 2642, 2306, 0, 0,
5412 : 0, 0, 0, 2643, 0, 5428, 5429, 0, 0, 0,
5413 : 0, 1157, 0, 0, 0, 0, 0, 0, 3849, 0,
5414 : 3849, 3849, 3849, 0, 2643, 661, 0, 661, 0, 661,
5415 : 0, 661, 0, 661, 661, 661, 0, 1157, 0, 0,
5416 : 661, 0, 0, 0, 910, 0, 2373, 2111, 0, 0,
5417 : 2112, 4031, 2026, 4031, 2113, 2114, 2115, 0, 0, 0,
5418 : 0, 0, 2644, 0, 0, 2645, 0, 2373, 0, 0,
5419 : 910, 0, 2636, 0, 0, 0, 795, 0, 0, 0,
5420 : 907, 0, 2637, 2644, 0, 0, 2645, 5482, 0, 2638,
5421 : 0, 907, 0, 0, 0, 0, 0, 0, 0, 0,
5422 : 0, 0, 2111, 2745, 0, 2112, 3550, 907, 3550, 2113,
5423 : 2114, 2115, 0, 2745, 0, 2639, 0, 0, 0, 0,
5424 : 0, 914, 0, 0, 0, 908, 5510, 2636, 0, 0,
5425 : 0, 0, 0, 0, 0, 0, 908, 2637, 0, 0,
5426 : 0, 0, 0, 0, 2638, 0, 0, 0, 0, 0,
5427 : 0, 0, 908, 0, 0, 916, 0, 0, 2646, 0,
5428 : 0, 0, 0, 916, 0, 0, 0, 0, 914, 5210,
5429 : 2639, 0, 0, 914, 0, 0, 0, 2111, 0, 2646,
5430 : 2112, 0, 905, 0, 2113, 2114, 2115, 0, 2745, 0,
5431 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5432 : 0, 0, 2636, 0, 0, 0, 0, 0, 0, 0,
5433 : 0, 0, 2637, 910, 0, 0, 0, 0, 0, 2638,
5434 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5435 : 0, 0, 0, 0, 2640, 0, 0, 0, 0, 2641,
5436 : 877, 0, 0, 0, 0, 2639, 0, 0, 0, 0,
5437 : 0, 0, 0, 0, 0, 905, 0, 0, 0, 905,
5438 : 0, 0, 2642, 2306, 907, 2574, 0, 0, 916, 0,
5439 : 916, 0, 0, 0, 2575, 2576, 2577, 2578, 2579, 2580,
5440 : 2581, 2582, 2583, 0, 0, 0, 2574, 5127, 0, 2640,
5441 : 2643, 0, 0, 0, 2641, 2575, 2576, 2577, 2578, 2579,
5442 : 2580, 2581, 2582, 2583, 0, 0, 0, 0, 5240, 908,
5443 : 0, 0, 0, 0, 0, 0, 0, 2642, 2306, 0,
5444 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5445 : 0, 914, 0, 2373, 0, 0, 0, 0, 0, 0,
5446 : 0, 0, 0, 1843, 4541, 2643, 0, 0, 0, 2644,
5447 : 0, 0, 2645, 0, 1852, 0, 0, 0, 0, 0,
5448 : 2803, 0, 905, 0, 2640, 0, 916, 0, 0, 2641,
5449 : 1860, 0, 0, 0, 0, 0, 910, 905, 0, 0,
5450 : 0, 0, 905, 0, 0, 795, 0, 910, 2373, 0,
5451 : 3849, 0, 2642, 2306, 0, 1737, 0, 0, 0, 5711,
5452 : 0, 1737, 0, 910, 2644, 0, 0, 2645, 0, 0,
5453 : 916, 0, 905, 0, 0, 0, 0, 0, 0, 0,
5454 : 2643, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5455 : 0, 0, 2902, 0, 0, 0, 0, 0, 3550, 0,
5456 : 0, 0, 0, 0, 0, 2646, 0, 0, 914, 0,
5457 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5458 : 0, 0, 0, 2373, 0, 0, 0, 0, 0, 0,
5459 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2644,
5460 : 0, 0, 2645, 0, 0, 0, 0, 0, 0, 0,
5461 : 0, 0, 0, 0, 0, 0, 911, 0, 0, 0,
5462 : 2646, 0, 914, 0, 0, 0, 916, 0, 0, 0,
5463 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5464 : 0, 0, 0, 0, 914, 907, 0, 2031, 3550, 0,
5465 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5466 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5467 : 916, 0, 2574, 0, 0, 0, 0, 0, 0, 0,
5468 : 910, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583,
5469 : 908, 0, 0, 0, 5277, 2646, 0, 0, 0, 0,
5470 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5471 : 0, 0, 907, 0, 0, 0, 914, 0, 0, 0,
5472 : 6094, 0, 0, 0, 0, 0, 0, 2574, 0, 0,
5473 : 0, 0, 0, 0, 0, 0, 2575, 2576, 2577, 2578,
5474 : 2579, 2580, 2581, 2582, 2583, 0, 0, 0, 0, 5281,
5475 : 0, 0, 916, 907, 0, 0, 0, 908, 0, 0,
5476 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5477 : 3033, 0, 0, 1144, 0, 0, 0, 5929, 0, 0,
5478 : 0, 0, 0, 0, 0, 0, 907, 905, 0, 0,
5479 : 905, 0, 905, 0, 0, 0, 0, 905, 908, 0,
5480 : 0, 0, 2574, 0, 916, 3069, 0, 0, 0, 0,
5481 : 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583,
5482 : 0, 0, 0, 0, 5557, 0, 0, 0, 0, 916,
5483 : 0, 908, 0, 0, 0, 0, 0, 0, 914, 905,
5484 : 0, 0, 0, 0, 0, 0, 0, 905, 0, 0,
5485 : 0, 3134, 0, 0, 0, 0, 0, 0, 0, 0,
5486 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5487 : 0, 3152, 905, 0, 0, 0, 0, 0, 0, 0,
5488 : 0, 0, 0, 2111, 0, 0, 2112, 0, 0, 0,
5489 : 2113, 2114, 2115, 0, 0, 0, 0, 3172, 0, 3173,
5490 : 0, 0, 0, 4031, 0, 0, 0, 0, 2636, 0,
5491 : 0, 0, 0, 0, 3182, 0, 3183, 0, 2637, 0,
5492 : 0, 0, 661, 0, 661, 2638, 661, 0, 661, 0,
5493 : 661, 0, 0, 0, 661, 0, 0, 0, 0, 0,
5494 : 0, 910, 0, 0, 0, 0, 0, 0, 0, 0,
5495 : 0, 2639, 905, 0, 905, 0, 0, 0, 0, 0,
5496 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5497 : 0, 3242, 0, 0, 0, 0, 0, 914, 0, 0,
5498 : 907, 0, 0, 0, 0, 0, 2111, 0, 0, 2112,
5499 : 2745, 907, 0, 2113, 2114, 2115, 0, 0, 0, 1144,
5500 : 0, 0, 0, 6100, 0, 6101, 0, 907, 910, 6107,
5501 : 6108, 2636, 0, 0, 0, 0, 2897, 0, 0, 0,
5502 : 0, 2637, 0, 0, 0, 908, 0, 0, 2638, 0,
5503 : 0, 0, 0, 0, 0, 0, 908, 0, 0, 0,
5504 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 910,
5505 : 905, 0, 908, 914, 2639, 0, 0, 0, 0, 0,
5506 : 0, 907, 0, 0, 0, 0, 0, 0, 0, 0,
5507 : 2640, 0, 0, 0, 0, 2641, 907, 0, 0, 907,
5508 : 907, 0, 910, 0, 0, 0, 3550, 0, 0, 913,
5509 : 0, 0, 0, 0, 905, 0, 0, 0, 2642, 2306,
5510 : 0, 0, 0, 0, 0, 0, 908, 0, 0, 0,
5511 : 907, 907, 0, 0, 3550, 0, 0, 0, 0, 0,
5512 : 0, 908, 905, 0, 908, 908, 2643, 0, 0, 0,
5513 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5514 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5515 : 0, 0, 0, 0, 0, 908, 908, 0, 0, 0,
5516 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2373,
5517 : 0, 0, 0, 2640, 0, 914, 0, 0, 2641, 0,
5518 : 0, 0, 0, 0, 0, 2644, 0, 0, 2645, 0,
5519 : 905, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5520 : 0, 2642, 2306, 0, 6434, 0, 0, 0, 0, 0,
5521 : 0, 0, 905, 0, 0, 0, 0, 0, 0, 0,
5522 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2643,
5523 : 0, 0, 0, 0, 905, 0, 0, 0, 0, 0,
5524 : 0, 0, 2111, 3036, 0, 2112, 0, 0, 0, 2113,
5525 : 2114, 2115, 907, 0, 3047, 0, 0, 916, 0, 0,
5526 : 0, 0, 0, 0, 0, 6434, 0, 2636, 0, 0,
5527 : 3065, 0, 2373, 0, 0, 0, 910, 2637, 0, 0,
5528 : 0, 2646, 0, 0, 2638, 0, 0, 910, 2644, 0,
5529 : 6434, 2645, 0, 911, 0, 0, 0, 908, 0, 0,
5530 : 0, 0, 0, 910, 3550, 0, 0, 0, 1144, 2745,
5531 : 2639, 0, 0, 0, 0, 0, 905, 0, 0, 911,
5532 : 0, 0, 0, 0, 3139, 0, 0, 0, 0, 0,
5533 : 914, 0, 0, 0, 0, 914, 914, 0, 0, 3151,
5534 : 0, 0, 1157, 3155, 0, 0, 0, 0, 0, 0,
5535 : 0, 0, 0, 0, 0, 0, 0, 910, 0, 0,
5536 : 0, 0, 0, 0, 0, 0, 0, 0, 905, 0,
5537 : 0, 0, 910, 3174, 1157, 910, 910, 0, 0, 0,
5538 : 0, 0, 0, 0, 2646, 0, 0, 0, 2574, 0,
5539 : 0, 0, 0, 905, 0, 0, 0, 2575, 2576, 2577,
5540 : 2578, 2579, 2580, 2581, 2582, 2583, 910, 910, 0, 0,
5541 : 5568, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5542 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2640,
5543 : 0, 0, 0, 0, 2641, 0, 0, 0, 0, 0,
5544 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 914,
5545 : 0, 0, 0, 0, 0, 0, 0, 2642, 2306, 0,
5546 : 0, 0, 911, 0, 0, 0, 0, 916, 0, 0,
5547 : 0, 0, 6435, 0, 0, 0, 0, 0, 0, 2599,
5548 : 0, 0, 0, 6439, 0, 2643, 0, 0, 0, 0,
5549 : 0, 2574, 0, 0, 0, 0, 0, 0, 0, 0,
5550 : 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0,
5551 : 0, 0, 914, 5578, 0, 3357, 0, 0, 0, 6465,
5552 : 0, 0, 0, 0, 0, 0, 0, 0, 2373, 0,
5553 : 0, 0, 0, 6435, 0, 0, 0, 0, 0, 0,
5554 : 0, 0, 0, 0, 2644, 0, 0, 2645, 910, 0,
5555 : 0, 0, 0, 0, 905, 0, 0, 0, 6435, 0,
5556 : 0, 5289, 0, 0, 0, 0, 0, 0, 0, 0,
5557 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5558 : 0, 0, 0, 0, 916, 0, 0, 0, 0, 0,
5559 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5560 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5561 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5562 : 0, 0, 0, 0, 0, 911, 0, 0, 0, 0,
5563 : 0, 0, 0, 0, 0, 0, 911, 0, 916, 0,
5564 : 2646, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5565 : 905, 0, 911, 0, 0, 0, 0, 0, 0, 0,
5566 : 916, 0, 0, 3540, 3541, 0, 0, 0, 0, 0,
5567 : 0, 0, 0, 0, 0, 0, 0, 0, 905, 0,
5568 : 0, 0, 3556, 3557, 0, 3559, 3560, 0, 0, 0,
5569 : 3563, 3564, 0, 0, 0, 0, 0, 0, 0, 0,
5570 : 0, 0, 0, 0, 0, 3575, 0, 0, 0, 3578,
5571 : 0, 0, 0, 3581, 3582, 0, 0, 3585, 3586, 0,
5572 : 0, 0, 0, 0, 3591, 0, 0, 0, 0, 0,
5573 : 0, 0, 916, 0, 0, 0, 3606, 0, 0, 0,
5574 : 0, 0, 0, 0, 0, 0, 0, 2574, 3623, 0,
5575 : 0, 0, 0, 3625, 0, 0, 2575, 2576, 2577, 2578,
5576 : 2579, 2580, 2581, 2582, 2583, 0, 913, 0, 3631, 5642,
5577 : 0, 0, 3637, 0, 0, 0, 0, 0, 0, 0,
5578 : 0, 0, 0, 0, 3648, 0, 0, 3652, 0, 3654,
5579 : 3657, 3659, 913, 0, 0, 0, 3667, 3670, 0, 0,
5580 : 0, 0, 0, 722, 0, 0, 3683, 0, 1055, 911,
5581 : 0, 0, 3693, 0, 0, 0, 3696, 0, 0, 0,
5582 : 0, 905, 0, 0, 0, 0, 0, 0, 3706, 3707,
5583 : 0, 0, 0, 3712, 0, 0, 0, 0, 0, 3721,
5584 : 3722, 0, 0, 0, 0, 0, 1056, 0, 0, 0,
5585 : 0, 0, 5514, 3731, 916, 0, 3732, 0, 0, 725,
5586 : 1057, 0, 0, 3744, 3745, 0, 0, 0, 905, 3749,
5587 : 0, 0, 1058, 905, 0, 907, 726, 0, 0, 907,
5588 : 907, 3756, 0, 0, 3759, 0, 0, 0, 0, 3762,
5589 : 0, 0, 0, 0, 1059, 3765, 3766, 0, 0, 0,
5590 : 0, 0, 0, 3774, 0, 0, 0, 3776, 0, 0,
5591 : 0, 3783, 3784, 3785, 3786, 0, 3788, 0, 1060, 0,
5592 : 908, 0, 0, 0, 908, 908, 0, 0, 0, 0,
5593 : 3814, 3815, 729, 3817, 907, 913, 0, 0, 0, 0,
5594 : 907, 730, 0, 0, 3827, 3828, 3829, 0, 0, 0,
5595 : 0, 0, 0, 0, 731, 0, 0, 0, 0, 0,
5596 : 1061, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5597 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 908,
5598 : 0, 0, 0, 0, 0, 908, 0, 1062, 907, 0,
5599 : 0, 0, 0, 916, 0, 0, 0, 0, 0, 0,
5600 : 0, 3881, 0, 0, 0, 0, 0, 0, 0, 3905,
5601 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5602 : 0, 0, 0, 0, 0, 1063, 0, 0, 3917, 0,
5603 : 0, 905, 0, 908, 914, 0, 0, 0, 0, 0,
5604 : 0, 0, 0, 0, 0, 0, 0, 735, 0, 0,
5605 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5606 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 3550,
5607 : 911, 0, 0, 0, 0, 0, 0, 0, 3985, 0,
5608 : 0, 0, 0, 0, 0, 0, 2111, 0, 0, 2112,
5609 : 0, 0, 1064, 2113, 2114, 2115, 0, 3999, 913, 4001,
5610 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 913,
5611 : 0, 2636, 0, 0, 0, 0, 0, 0, 0, 738,
5612 : 0, 2637, 0, 0, 0, 913, 0, 0, 2638, 213,
5613 : 1065, 0, 0, 740, 0, 0, 0, 911, 0, 0,
5614 : 0, 0, 0, 0, 0, 0, 0, 0, 905, 0,
5615 : 0, 0, 0, 0, 2639, 0, 0, 915, 0, 0,
5616 : 1066, 0, 0, 1067, 0, 0, 0, 743, 0, 0,
5617 : 744, 910, 0, 0, 0, 910, 910, 745, 911, 0,
5618 : 746, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5619 : 0, 3550, 0, 0, 4063, 0, 0, 3596, 907, 0,
5620 : 747, 0, 905, 3604, 0, 0, 0, 0, 1068, 0,
5621 : 0, 911, 0, 0, 0, 749, 0, 0, 1069, 0,
5622 : 0, 0, 0, 751, 905, 0, 0, 0, 0, 0,
5623 : 910, 1070, 2111, 753, 0, 2112, 910, 0, 1071, 2113,
5624 : 2114, 2115, 0, 908, 0, 0, 0, 0, 0, 0,
5625 : 0, 3647, 0, 0, 0, 0, 0, 2636, 0, 0,
5626 : 0, 0, 0, 0, 0, 756, 0, 2637, 0, 0,
5627 : 0, 907, 0, 2640, 2638, 907, 0, 0, 2641, 0,
5628 : 0, 0, 913, 0, 910, 0, 0, 0, 0, 0,
5629 : 0, 0, 0, 0, 0, 0, 905, 0, 0, 0,
5630 : 2639, 2642, 2306, 0, 0, 0, 0, 0, 0, 0,
5631 : 0, 0, 0, 0, 0, 0, 908, 0, 0, 0,
5632 : 908, 0, 0, 0, 0, 0, 0, 0, 0, 2643,
5633 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5634 : 0, 0, 0, 0, 0, 0, 916, 0, 0, 0,
5635 : 0, 916, 916, 0, 0, 0, 0, 0, 0, 0,
5636 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5637 : 0, 0, 2373, 0, 0, 0, 0, 0, 907, 0,
5638 : 0, 0, 0, 0, 0, 0, 0, 0, 2644, 0,
5639 : 0, 2645, 0, 907, 0, 0, 0, 0, 907, 0,
5640 : 0, 0, 0, 0, 0, 911, 0, 0, 0, 0,
5641 : 0, 0, 0, 0, 0, 0, 911, 0, 905, 2640,
5642 : 0, 0, 0, 908, 2641, 0, 0, 0, 907, 0,
5643 : 0, 0, 911, 0, 0, 0, 0, 0, 908, 0,
5644 : 0, 0, 0, 908, 0, 0, 0, 2642, 2306, 0,
5645 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5646 : 0, 3874, 0, 0, 5514, 916, 0, 0, 0, 0,
5647 : 0, 0, 0, 908, 0, 2643, 0, 0, 0, 0,
5648 : 0, 0, 0, 0, 2646, 0, 911, 0, 0, 0,
5649 : 0, 0, 0, 0, 910, 0, 0, 0, 0, 0,
5650 : 0, 911, 0, 0, 911, 911, 0, 0, 0, 0,
5651 : 0, 0, 0, 0, 0, 0, 0, 0, 2373, 0,
5652 : 0, 0, 0, 0, 4326, 0, 0, 0, 916, 0,
5653 : 0, 0, 0, 0, 2644, 911, 911, 2645, 0, 0,
5654 : 0, 4333, 0, 913, 0, 4333, 0, 0, 0, 0,
5655 : 4344, 4345, 4346, 0, 0, 0, 0, 905, 0, 0,
5656 : 0, 0, 0, 0, 0, 0, 0, 910, 0, 0,
5657 : 0, 910, 4358, 0, 0, 0, 0, 0, 0, 0,
5658 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5659 : 0, 2574, 0, 0, 0, 0, 4389, 4390, 4391, 4392,
5660 : 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0,
5661 : 913, 0, 0, 5675, 0, 0, 0, 0, 0, 0,
5662 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5663 : 2646, 0, 0, 905, 4413, 0, 4417, 4418, 4419, 0,
5664 : 0, 4046, 0, 0, 0, 0, 0, 0, 0, 0,
5665 : 0, 913, 0, 0, 0, 0, 4056, 0, 0, 0,
5666 : 0, 4061, 0, 0, 0, 0, 0, 0, 0, 0,
5667 : 0, 0, 0, 0, 910, 0, 0, 911, 0, 0,
5668 : 0, 0, 0, 907, 913, 0, 907, 0, 907, 910,
5669 : 0, 4087, 0, 907, 910, 0, 0, 0, 0, 0,
5670 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5671 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5672 : 0, 0, 0, 0, 910, 0, 0, 0, 908, 0,
5673 : 0, 908, 0, 908, 0, 907, 0, 2574, 908, 0,
5674 : 0, 0, 0, 907, 0, 0, 2575, 2576, 2577, 2578,
5675 : 2579, 2580, 2581, 2582, 2583, 905, 4502, 0, 0, 5677,
5676 : 0, 0, 0, 0, 0, 4508, 0, 0, 907, 0,
5677 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5678 : 908, 0, 0, 0, 0, 0, 0, 0, 908, 0,
5679 : 0, 4518, 4519, 0, 0, 0, 4520, 0, 0, 0,
5680 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5681 : 0, 0, 0, 908, 0, 0, 0, 0, 4563, 0,
5682 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5683 : 0, 0, 0, 0, 915, 0, 0, 0, 0, 0,
5684 : 0, 0, 0, 0, 0, 0, 0, 0, 907, 0,
5685 : 907, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5686 : 915, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5687 : 4600, 0, 0, 0, 0, 4606, 0, 0, 913, 0,
5688 : 0, 4612, 0, 0, 0, 0, 0, 0, 0, 913,
5689 : 0, 0, 0, 908, 0, 908, 0, 0, 0, 0,
5690 : 0, 0, 0, 0, 0, 913, 0, 0, 0, 0,
5691 : 905, 4651, 0, 0, 0, 905, 905, 0, 0, 0,
5692 : 0, 0, 0, 0, 0, 0, 0, 2111, 0, 0,
5693 : 2112, 0, 0, 0, 2113, 2114, 2115, 0, 0, 0,
5694 : 4666, 0, 4667, 0, 0, 0, 907, 0, 0, 0,
5695 : 0, 0, 2636, 0, 0, 0, 0, 0, 0, 913,
5696 : 0, 0, 2637, 0, 0, 0, 0, 0, 0, 2638,
5697 : 0, 0, 0, 0, 913, 0, 0, 913, 913, 910,
5698 : 0, 0, 910, 0, 910, 0, 0, 0, 0, 910,
5699 : 907, 908, 0, 0, 0, 2639, 0, 0, 4328, 0,
5700 : 0, 0, 0, 915, 0, 0, 4331, 0, 913, 913,
5701 : 0, 0, 0, 0, 0, 0, 0, 0, 907, 0,
5702 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 905,
5703 : 0, 910, 0, 0, 0, 908, 0, 0, 0, 910,
5704 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5705 : 916, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5706 : 0, 0, 0, 908, 910, 0, 0, 0, 0, 0,
5707 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5708 : 0, 0, 0, 0, 0, 0, 907, 0, 0, 0,
5709 : 0, 0, 905, 0, 0, 0, 0, 0, 0, 0,
5710 : 0, 0, 0, 0, 0, 0, 0, 0, 907, 0,
5711 : 0, 4429, 0, 4431, 2640, 0, 0, 1737, 0, 2641,
5712 : 0, 0, 0, 0, 0, 0, 2111, 0, 0, 2112,
5713 : 907, 908, 0, 2113, 2114, 2115, 0, 0, 0, 0,
5714 : 0, 0, 2642, 2306, 910, 0, 910, 0, 0, 0,
5715 : 913, 2636, 0, 908, 0, 0, 0, 0, 0, 0,
5716 : 0, 2637, 0, 0, 0, 0, 915, 0, 2638, 0,
5717 : 2643, 0, 0, 0, 0, 908, 0, 915, 0, 0,
5718 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5719 : 0, 0, 0, 915, 2639, 0, 0, 0, 0, 0,
5720 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 4492,
5721 : 0, 0, 907, 2373, 0, 0, 0, 0, 0, 0,
5722 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2644,
5723 : 0, 0, 2645, 0, 0, 0, 0, 0, 0, 0,
5724 : 0, 0, 910, 0, 0, 0, 0, 0, 0, 0,
5725 : 0, 0, 0, 4514, 0, 0, 4902, 908, 4903, 0,
5726 : 0, 0, 0, 0, 907, 0, 0, 0, 0, 0,
5727 : 0, 4910, 0, 0, 0, 0, 0, 0, 0, 0,
5728 : 0, 0, 0, 4916, 0, 0, 910, 4919, 0, 907,
5729 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 4933,
5730 : 911, 0, 0, 0, 911, 911, 0, 0, 0, 908,
5731 : 0, 0, 0, 2640, 910, 0, 0, 0, 2641, 4959,
5732 : 0, 0, 0, 0, 0, 2646, 0, 0, 0, 0,
5733 : 0, 0, 0, 0, 908, 0, 0, 4963, 0, 0,
5734 : 0, 2642, 2306, 0, 0, 4967, 0, 0, 0, 3647,
5735 : 915, 0, 0, 0, 0, 0, 0, 0, 0, 911,
5736 : 0, 0, 0, 0, 0, 911, 0, 0, 0, 2643,
5737 : 5002, 0, 0, 0, 5006, 0, 0, 0, 0, 0,
5738 : 0, 0, 910, 0, 0, 0, 0, 0, 0, 5016,
5739 : 5017, 5018, 5019, 4657, 0, 0, 0, 0, 0, 5023,
5740 : 5024, 5025, 5026, 0, 910, 0, 0, 0, 5028, 5029,
5741 : 0, 0, 2373, 911, 5036, 5037, 0, 5039, 5040, 5041,
5742 : 5042, 5043, 5044, 5045, 0, 0, 910, 0, 2644, 0,
5743 : 0, 2645, 2574, 5054, 0, 0, 0, 5057, 5058, 5059,
5744 : 5060, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583,
5745 : 907, 0, 0, 0, 5716, 0, 0, 0, 975, 0,
5746 : 0, 4333, 0, 0, 0, 0, 0, 975, 0, 0,
5747 : 0, 0, 0, 0, 0, 4714, 0, 0, 0, 5080,
5748 : 0, 975, 0, 0, 0, 0, 0, 0, 0, 0,
5749 : 0, 0, 0, 0, 0, 908, 0, 0, 0, 0,
5750 : 0, 0, 0, 0, 0, 0, 0, 0, 910, 0,
5751 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5752 : 0, 0, 0, 0, 2646, 0, 0, 4746, 0, 0,
5753 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5754 : 0, 0, 0, 0, 0, 0, 907, 0, 0, 0,
5755 : 0, 0, 4767, 0, 0, 0, 5162, 0, 0, 0,
5756 : 910, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5757 : 0, 0, 0, 0, 907, 0, 0, 0, 0, 0,
5758 : 0, 0, 0, 0, 0, 910, 0, 0, 0, 4333,
5759 : 0, 908, 0, 0, 0, 0, 5187, 0, 5188, 0,
5760 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5761 : 0, 915, 0, 0, 905, 0, 0, 0, 0, 908,
5762 : 0, 0, 0, 911, 0, 0, 5203, 0, 0, 0,
5763 : 0, 2574, 0, 0, 0, 0, 0, 0, 0, 0,
5764 : 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0,
5765 : 0, 0, 0, 6080, 0, 0, 0, 0, 0, 0,
5766 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5767 : 0, 0, 0, 0, 0, 0, 0, 0, 915, 0,
5768 : 0, 2111, 0, 0, 2112, 0, 0, 0, 2113, 2114,
5769 : 2115, 0, 0, 0, 0, 0, 911, 0, 0, 0,
5770 : 911, 0, 0, 0, 0, 0, 2636, 0, 0, 0,
5771 : 0, 0, 0, 0, 0, 0, 2637, 907, 0, 915,
5772 : 0, 0, 0, 2638, 0, 0, 0, 0, 2111, 0,
5773 : 0, 2112, 0, 0, 0, 2113, 2114, 2115, 0, 0,
5774 : 0, 0, 0, 0, 0, 0, 910, 0, 0, 2639,
5775 : 0, 0, 915, 2636, 0, 0, 0, 966, 976, 0,
5776 : 0, 0, 908, 2637, 907, 966, 0, 976, 966, 907,
5777 : 2638, 0, 0, 913, 0, 0, 0, 913, 913, 0,
5778 : 0, 976, 0, 0, 0, 0, 0, 0, 0, 0,
5779 : 0, 0, 0, 0, 0, 0, 2639, 0, 0, 0,
5780 : 0, 0, 0, 911, 0, 0, 0, 0, 0, 908,
5781 : 0, 0, 0, 0, 908, 0, 0, 0, 911, 0,
5782 : 0, 0, 0, 911, 0, 0, 0, 0, 0, 0,
5783 : 0, 0, 913, 0, 0, 0, 0, 0, 913, 5349,
5784 : 5350, 5351, 910, 0, 0, 5352, 5353, 5354, 5355, 0,
5785 : 0, 0, 5357, 911, 0, 0, 0, 0, 0, 0,
5786 : 0, 0, 0, 0, 0, 0, 0, 0, 2640, 0,
5787 : 910, 0, 0, 2641, 0, 0, 0, 0, 0, 0,
5788 : 0, 0, 0, 0, 0, 0, 913, 0, 0, 0,
5789 : 0, 0, 0, 0, 0, 0, 2642, 2306, 0, 0,
5790 : 0, 0, 0, 0, 5392, 5393, 5394, 5395, 5396, 0,
5791 : 5398, 5399, 0, 0, 0, 2640, 975, 0, 0, 0,
5792 : 2641, 0, 5408, 5409, 2643, 0, 0, 907, 0, 0,
5793 : 0, 0, 0, 0, 0, 975, 0, 0, 0, 0,
5794 : 0, 975, 0, 2642, 2306, 0, 915, 0, 0, 0,
5795 : 0, 0, 0, 975, 0, 0, 5415, 915, 0, 0,
5796 : 0, 0, 0, 0, 0, 0, 0, 2373, 0, 975,
5797 : 0, 2643, 908, 915, 0, 0, 0, 0, 0, 0,
5798 : 5110, 0, 0, 2644, 975, 0, 2645, 0, 0, 0,
5799 : 0, 0, 975, 0, 0, 0, 0, 0, 0, 0,
5800 : 0, 0, 0, 0, 0, 0, 975, 0, 0, 0,
5801 : 0, 0, 0, 910, 2373, 0, 975, 0, 0, 0,
5802 : 0, 0, 0, 0, 0, 0, 0, 915, 0, 0,
5803 : 2644, 0, 0, 2645, 0, 0, 0, 0, 0, 0,
5804 : 0, 0, 915, 0, 907, 915, 915, 0, 0, 0,
5805 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 5480,
5806 : 910, 0, 0, 0, 0, 910, 0, 0, 0, 975,
5807 : 0, 0, 0, 0, 0, 0, 915, 915, 0, 2646,
5808 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 908,
5809 : 0, 0, 0, 0, 0, 0, 913, 975, 907, 0,
5810 : 0, 0, 0, 0, 0, 0, 0, 0, 911, 0,
5811 : 0, 911, 0, 911, 0, 0, 0, 0, 911, 0,
5812 : 907, 0, 975, 0, 5531, 0, 2646, 0, 0, 0,
5813 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5814 : 0, 0, 0, 908, 0, 0, 0, 0, 0, 0,
5815 : 0, 0, 0, 0, 0, 0, 5537, 0, 0, 0,
5816 : 911, 0, 0, 0, 0, 908, 0, 0, 911, 913,
5817 : 0, 0, 0, 913, 0, 0, 0, 0, 0, 0,
5818 : 0, 0, 0, 0, 975, 0, 2574, 0, 0, 0,
5819 : 0, 0, 907, 911, 0, 2575, 2576, 2577, 2578, 2579,
5820 : 2580, 2581, 2582, 2583, 0, 0, 0, 0, 6088, 0,
5821 : 0, 0, 0, 0, 0, 0, 976, 0, 915, 0,
5822 : 0, 0, 0, 910, 0, 0, 0, 0, 0, 0,
5823 : 0, 0, 0, 2574, 0, 976, 0, 908, 0, 0,
5824 : 0, 976, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582,
5825 : 2583, 0, 0, 976, 661, 6110, 0, 0, 0, 0,
5826 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 976,
5827 : 0, 0, 0, 911, 0, 911, 913, 0, 0, 0,
5828 : 0, 0, 0, 966, 976, 0, 0, 0, 0, 0,
5829 : 966, 913, 976, 966, 1823, 0, 913, 0, 0, 0,
5830 : 0, 975, 0, 0, 0, 0, 976, 5348, 0, 0,
5831 : 0, 0, 0, 0, 907, 0, 976, 0, 0, 0,
5832 : 0, 0, 0, 0, 0, 5664, 913, 0, 0, 0,
5833 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5834 : 910, 0, 0, 0, 5674, 0, 0, 0, 0, 0,
5835 : 5680, 5681, 0, 0, 0, 0, 0, 0, 0, 908,
5836 : 5692, 5386, 0, 0, 0, 0, 0, 5694, 0, 976,
5837 : 0, 911, 0, 0, 0, 0, 0, 0, 0, 0,
5838 : 0, 0, 0, 5402, 0, 0, 1579, 0, 0, 0,
5839 : 0, 0, 1580, 2111, 910, 0, 2112, 976, 0, 1646,
5840 : 2113, 2114, 2115, 0, 5747, 5748, 0, 0, 0, 0,
5841 : 0, 0, 0, 0, 0, 911, 910, 5756, 2636, 5758,
5842 : 0, 1647, 976, 0, 0, 975, 0, 0, 2637, 0,
5843 : 0, 0, 0, 0, 5772, 2638, 0, 1582, 0, 0,
5844 : 0, 0, 0, 911, 0, 0, 0, 0, 0, 0,
5845 : 0, 0, 0, 907, 0, 5430, 0, 0, 0, 4333,
5846 : 0, 2639, 0, 0, 0, 0, 0, 5806, 0, 0,
5847 : 0, 0, 0, 1648, 0, 0, 0, 0, 0, 0,
5848 : 0, 0, 0, 0, 976, 0, 975, 0, 910, 0,
5849 : 0, 0, 0, 0, 1583, 0, 0, 975, 908, 0,
5850 : 0, 1584, 0, 0, 0, 1585, 0, 0, 0, 0,
5851 : 0, 911, 0, 0, 975, 0, 0, 0, 0, 975,
5852 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 907,
5853 : 0, 0, 0, 911, 1586, 0, 0, 0, 0, 0,
5854 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5855 : 0, 0, 0, 0, 0, 911, 0, 0, 0, 5867,
5856 : 0, 0, 0, 0, 0, 0, 1649, 0, 0, 0,
5857 : 1587, 0, 0, 5882, 908, 0, 0, 5516, 0, 0,
5858 : 2640, 913, 0, 0, 913, 2641, 913, 0, 0, 0,
5859 : 0, 913, 0, 0, 1824, 0, 0, 0, 0, 5900,
5860 : 0, 976, 0, 0, 0, 0, 0, 0, 2642, 2306,
5861 : 910, 0, 966, 0, 0, 0, 966, 0, 966, 0,
5862 : 0, 0, 0, 0, 1650, 0, 0, 0, 0, 1651,
5863 : 0, 0, 0, 913, 1652, 0, 2643, 911, 0, 0,
5864 : 0, 913, 0, 0, 0, 0, 0, 0, 0, 0,
5865 : 1653, 907, 975, 0, 1589, 0, 0, 0, 0, 0,
5866 : 975, 975, 0, 0, 0, 1590, 913, 5959, 0, 0,
5867 : 0, 0, 0, 0, 0, 1591, 0, 0, 0, 2373,
5868 : 0, 0, 0, 0, 0, 0, 1654, 1592, 0, 911,
5869 : 0, 0, 0, 0, 0, 2644, 908, 0, 2645, 0,
5870 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5871 : 0, 0, 0, 1823, 911, 0, 4492, 0, 0, 0,
5872 : 0, 0, 0, 0, 0, 976, 0, 0, 0, 1655,
5873 : 0, 0, 1594, 1595, 1656, 0, 0, 4333, 0, 0,
5874 : 0, 0, 0, 0, 0, 0, 913, 0, 913, 910,
5875 : 0, 0, 2111, 0, 0, 2112, 0, 0, 1657, 2113,
5876 : 2114, 2115, 0, 0, 1658, 0, 0, 0, 0, 0,
5877 : 0, 6039, 0, 0, 0, 0, 0, 2636, 0, 1659,
5878 : 0, 0, 0, 0, 0, 0, 976, 2637, 0, 0,
5879 : 0, 2646, 0, 0, 2638, 0, 0, 976, 0, 0,
5880 : 0, 0, 0, 0, 0, 0, 907, 0, 0, 0,
5881 : 0, 907, 907, 0, 976, 0, 0, 6070, 0, 976,
5882 : 2639, 0, 0, 0, 0, 910, 0, 979, 0, 0,
5883 : 1660, 0, 0, 0, 0, 0, 0, 1597, 0, 1013,
5884 : 0, 915, 6089, 0, 913, 915, 915, 0, 0, 0,
5885 : 1032, 908, 0, 0, 0, 0, 908, 908, 0, 0,
5886 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5887 : 0, 0, 0, 0, 0, 911, 0, 0, 0, 0,
5888 : 0, 0, 0, 0, 0, 0, 0, 0, 913, 0,
5889 : 0, 0, 0, 0, 0, 0, 0, 0, 2574, 0,
5890 : 915, 6128, 0, 0, 0, 0, 915, 2575, 2576, 2577,
5891 : 2578, 2579, 2580, 2581, 2582, 2583, 913, 0, 0, 0,
5892 : 6338, 0, 0, 0, 0, 907, 0, 0, 0, 0,
5893 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2640,
5894 : 0, 0, 0, 0, 2641, 0, 0, 910, 0, 0,
5895 : 0, 0, 976, 0, 915, 0, 0, 0, 0, 0,
5896 : 976, 976, 0, 0, 975, 0, 0, 2642, 2306, 0,
5897 : 908, 911, 0, 0, 0, 0, 0, 0, 0, 0,
5898 : 0, 0, 0, 0, 913, 0, 0, 0, 907, 0,
5899 : 0, 0, 0, 0, 0, 2643, 0, 0, 0, 911,
5900 : 0, 0, 0, 0, 0, 0, 913, 0, 0, 0,
5901 : 0, 0, 0, 1824, 0, 0, 6225, 2111, 0, 0,
5902 : 2112, 0, 0, 0, 2113, 2114, 2115, 0, 913, 0,
5903 : 0, 0, 0, 908, 0, 0, 0, 0, 2373, 0,
5904 : 0, 0, 2636, 0, 0, 6240, 0, 0, 0, 0,
5905 : 0, 0, 2637, 0, 2644, 0, 6250, 2645, 0, 2638,
5906 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2031,
5907 : 0, 0, 0, 0, 2031, 2031, 0, 0, 0, 975,
5908 : 0, 0, 0, 0, 0, 2639, 0, 0, 0, 0,
5909 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5910 : 0, 0, 910, 0, 0, 0, 0, 910, 910, 0,
5911 : 913, 0, 0, 0, 1823, 0, 0, 953, 955, 0,
5912 : 0, 958, 0, 0, 0, 0, 0, 0, 0, 0,
5913 : 0, 0, 0, 0, 0, 0, 0, 975, 0, 0,
5914 : 0, 1016, 911, 0, 0, 975, 0, 0, 1026, 0,
5915 : 2646, 0, 0, 975, 0, 0, 0, 0, 0, 0,
5916 : 0, 0, 913, 0, 915, 0, 0, 0, 0, 0,
5917 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5918 : 0, 0, 0, 6332, 0, 0, 0, 913, 5992, 911,
5919 : 0, 0, 0, 0, 911, 0, 0, 975, 975, 0,
5920 : 0, 0, 0, 0, 2640, 0, 0, 0, 0, 2641,
5921 : 0, 975, 0, 0, 0, 0, 0, 0, 0, 0,
5922 : 0, 910, 0, 0, 975, 975, 0, 0, 0, 0,
5923 : 0, 0, 2642, 2306, 0, 0, 0, 915, 0, 0,
5924 : 0, 915, 0, 0, 0, 0, 0, 0, 0, 0,
5925 : 0, 6048, 0, 0, 0, 0, 0, 2574, 0, 0,
5926 : 2643, 0, 0, 0, 976, 0, 2575, 2576, 2577, 2578,
5927 : 2579, 2580, 2581, 2582, 2583, 0, 0, 0, 0, 6355,
5928 : 0, 0, 0, 0, 910, 1052, 0, 0, 0, 0,
5929 : 0, 1084, 0, 0, 0, 0, 0, 0, 0, 0,
5930 : 0, 0, 0, 2373, 0, 0, 0, 0, 0, 0,
5931 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2644,
5932 : 0, 0, 2645, 0, 0, 0, 0, 0, 0, 0,
5933 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5934 : 0, 0, 0, 0, 915, 0, 0, 0, 913, 0,
5935 : 0, 0, 911, 0, 0, 0, 0, 0, 0, 915,
5936 : 0, 0, 0, 0, 915, 0, 0, 0, 0, 0,
5937 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 976,
5938 : 0, 0, 0, 0, 1823, 0, 0, 0, 0, 0,
5939 : 0, 0, 0, 0, 915, 6476, 0, 0, 0, 0,
5940 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5941 : 0, 0, 0, 0, 1824, 2646, 0, 0, 0, 0,
5942 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5943 : 0, 0, 0, 0, 0, 0, 0, 976, 0, 0,
5944 : 0, 0, 0, 0, 913, 976, 0, 0, 0, 0,
5945 : 0, 0, 0, 976, 0, 0, 0, 0, 0, 0,
5946 : 0, 0, 1393, 0, 0, 0, 0, 0, 0, 911,
5947 : 0, 0, 913, 0, 0, 0, 0, 0, 0, 0,
5948 : 0, 1416, 0, 0, 0, 0, 0, 0, 0, 0,
5949 : 0, 0, 0, 0, 966, 966, 0, 976, 976, 0,
5950 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 966,
5951 : 907, 976, 966, 0, 0, 0, 0, 0, 0, 0,
5952 : 0, 0, 2574, 911, 976, 976, 0, 0, 0, 0,
5953 : 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583,
5954 : 2111, 0, 0, 2112, 6414, 911, 0, 2113, 2114, 2115,
5955 : 0, 0, 0, 0, 0, 908, 0, 0, 0, 0,
5956 : 0, 0, 966, 0, 0, 2636, 966, 966, 0, 0,
5957 : 0, 0, 0, 0, 0, 2637, 0, 0, 0, 0,
5958 : 0, 0, 2638, 0, 0, 0, 0, 0, 0, 0,
5959 : 0, 0, 0, 1086, 0, 1089, 0, 0, 1091, 0,
5960 : 1610, 0, 0, 0, 0, 0, 0, 0, 2639, 0,
5961 : 0, 0, 1117, 2111, 0, 913, 2112, 911, 1121, 0,
5962 : 2113, 2114, 2115, 0, 0, 0, 0, 0, 0, 0,
5963 : 0, 0, 0, 0, 0, 0, 0, 0, 2636, 0,
5964 : 0, 0, 0, 0, 0, 0, 0, 0, 2637, 915,
5965 : 0, 0, 915, 0, 915, 2638, 0, 0, 0, 915,
5966 : 0, 0, 913, 0, 0, 0, 0, 913, 0, 0,
5967 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5968 : 0, 2639, 0, 0, 1824, 0, 0, 0, 0, 0,
5969 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5970 : 0, 915, 0, 0, 0, 0, 0, 0, 0, 915,
5971 : 0, 0, 0, 0, 0, 1873, 0, 0, 0, 0,
5972 : 0, 0, 0, 0, 0, 0, 0, 2640, 0, 0,
5973 : 0, 0, 2641, 0, 915, 0, 0, 0, 0, 911,
5974 : 0, 0, 0, 0, 1907, 1910, 1911, 0, 0, 0,
5975 : 0, 0, 0, 0, 0, 2642, 2306, 0, 0, 0,
5976 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5977 : 0, 0, 0, 6412, 0, 4144, 0, 0, 0, 0,
5978 : 0, 4145, 0, 2643, 0, 0, 0, 0, 0, 0,
5979 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5980 : 2640, 0, 0, 0, 0, 2641, 910, 0, 0, 0,
5981 : 0, 0, 0, 0, 915, 0, 915, 0, 0, 0,
5982 : 0, 0, 0, 0, 0, 913, 2373, 0, 2642, 2306,
5983 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5984 : 0, 0, 2644, 0, 0, 2645, 0, 0, 0, 0,
5985 : 0, 0, 0, 1393, 0, 2111, 2643, 0, 2112, 0,
5986 : 0, 0, 2113, 2114, 2115, 0, 0, 0, 0, 0,
5987 : 0, 0, 0, 0, 0, 0, 0, 0, 911, 0,
5988 : 2636, 1393, 0, 0, 3495, 0, 0, 0, 0, 0,
5989 : 2637, 0, 0, 0, 0, 0, 0, 2638, 0, 2373,
5990 : 0, 0, 0, 0, 0, 1611, 1612, 0, 0, 0,
5991 : 0, 0, 915, 0, 0, 2644, 0, 0, 2645, 0,
5992 : 0, 0, 0, 2639, 1823, 0, 0, 0, 0, 0,
5993 : 0, 0, 0, 0, 0, 0, 0, 0, 2646, 0,
5994 : 0, 0, 913, 0, 0, 0, 0, 0, 0, 0,
5995 : 0, 0, 0, 0, 911, 0, 915, 0, 0, 0,
5996 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5997 : 0, 0, 0, 0, 0, 3496, 1841, 0, 0, 975,
5998 : 0, 0, 0, 0, 915, 0, 0, 0, 0, 0,
5999 : 0, 1853, 0, 0, 0, 0, 913, 975, 0, 0,
6000 : 0, 975, 0, 0, 0, 975, 0, 0, 0, 0,
6001 : 0, 4146, 0, 0, 975, 0, 0, 0, 913, 0,
6002 : 0, 0, 1875, 1876, 0, 0, 0, 0, 0, 975,
6003 : 0, 0, 0, 0, 2630, 0, 0, 0, 0, 0,
6004 : 0, 0, 2640, 0, 0, 2574, 0, 2641, 1913, 0,
6005 : 0, 0, 915, 0, 2575, 2576, 2577, 2578, 2579, 2580,
6006 : 2581, 2582, 2583, 975, 0, 3029, 0, 0, 0, 0,
6007 : 2642, 2306, 0, 0, 915, 0, 911, 0, 0, 0,
6008 : 0, 0, 0, 975, 975, 0, 0, 0, 1951, 1953,
6009 : 913, 0, 0, 0, 0, 0, 915, 0, 2643, 0,
6010 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6011 : 0, 0, 0, 0, 2721, 0, 0, 0, 2574, 0,
6012 : 0, 1823, 975, 0, 0, 1823, 0, 2575, 2576, 2577,
6013 : 2578, 2579, 2580, 2581, 2582, 2583, 0, 0, 0, 0,
6014 : 0, 2373, 0, 0, 0, 0, 0, 0, 0, 975,
6015 : 0, 1823, 0, 0, 0, 975, 0, 2644, 0, 0,
6016 : 2645, 0, 0, 0, 0, 0, 0, 0, 0, 975,
6017 : 0, 0, 0, 0, 0, 0, 975, 0, 915, 975,
6018 : 0, 0, 0, 0, 0, 975, 0, 0, 0, 0,
6019 : 0, 0, 0, 0, 0, 0, 0, 2835, 0, 0,
6020 : 0, 0, 0, 0, 0, 975, 2865, 0, 0, 0,
6021 : 0, 975, 913, 0, 0, 0, 0, 0, 975, 0,
6022 : 0, 0, 0, 0, 1824, 0, 0, 0, 0, 0,
6023 : 915, 911, 975, 0, 0, 0, 911, 911, 2903, 0,
6024 : 0, 0, 0, 0, 2915, 2915, 975, 0, 2915, 0,
6025 : 0, 1823, 0, 2646, 0, 915, 0, 975, 0, 0,
6026 : 0, 2933, 0, 0, 2936, 0, 0, 0, 0, 0,
6027 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 976,
6028 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6029 : 0, 0, 0, 0, 0, 0, 0, 976, 0, 0,
6030 : 0, 976, 0, 0, 0, 976, 0, 0, 0, 0,
6031 : 0, 0, 0, 0, 976, 0, 0, 1823, 3497, 0,
6032 : 0, 0, 2989, 0, 0, 0, 0, 0, 0, 976,
6033 : 0, 0, 0, 0, 0, 0, 3009, 0, 0, 0,
6034 : 0, 0, 0, 0, 0, 0, 966, 0, 966, 966,
6035 : 911, 913, 0, 0, 0, 0, 0, 0, 0, 0,
6036 : 2574, 0, 0, 976, 0, 0, 0, 0, 0, 2575,
6037 : 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0, 0,
6038 : 0, 0, 0, 976, 976, 0, 0, 0, 0, 0,
6039 : 0, 0, 0, 0, 0, 0, 0, 0, 2111, 0,
6040 : 0, 2112, 0, 0, 0, 2113, 2114, 2115, 0, 0,
6041 : 0, 0, 0, 911, 0, 0, 915, 0, 0, 0,
6042 : 0, 1824, 976, 2636, 0, 1824, 0, 913, 0, 0,
6043 : 0, 0, 0, 2637, 0, 0, 0, 0, 0, 0,
6044 : 2638, 0, 0, 0, 0, 0, 3031, 0, 0, 976,
6045 : 0, 1824, 0, 0, 0, 976, 0, 3034, 0, 0,
6046 : 0, 0, 0, 0, 0, 0, 2639, 0, 0, 976,
6047 : 0, 0, 975, 0, 1823, 0, 976, 0, 0, 976,
6048 : 0, 0, 0, 0, 2823, 976, 0, 0, 0, 0,
6049 : 0, 975, 0, 0, 0, 0, 0, 0, 975, 3078,
6050 : 2915, 0, 0, 0, 0, 976, 0, 0, 0, 2869,
6051 : 0, 976, 915, 0, 0, 0, 0, 0, 976, 0,
6052 : 0, 0, 0, 0, 3113, 0, 0, 0, 0, 0,
6053 : 0, 3126, 976, 0, 0, 0, 0, 0, 0, 0,
6054 : 915, 0, 0, 0, 0, 0, 976, 0, 0, 913,
6055 : 0, 1824, 0, 0, 0, 0, 0, 976, 0, 6175,
6056 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6057 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6058 : 0, 0, 0, 0, 0, 2640, 0, 0, 2959, 0,
6059 : 2641, 0, 0, 0, 0, 1823, 0, 0, 0, 0,
6060 : 0, 1823, 0, 0, 3187, 0, 0, 0, 0, 0,
6061 : 0, 0, 0, 2642, 2306, 0, 0, 1824, 2985, 2986,
6062 : 2987, 2988, 0, 0, 0, 0, 0, 0, 0, 0,
6063 : 0, 0, 0, 0, 0, 0, 0, 1393, 1393, 0,
6064 : 0, 2643, 0, 0, 0, 0, 0, 0, 0, 0,
6065 : 0, 0, 0, 0, 3241, 2111, 0, 3243, 2112, 0,
6066 : 0, 0, 2113, 2114, 2115, 0, 0, 0, 0, 0,
6067 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6068 : 2636, 0, 0, 915, 2373, 0, 975, 0, 0, 0,
6069 : 2637, 0, 0, 0, 0, 0, 0, 2638, 0, 0,
6070 : 2644, 0, 0, 2645, 913, 0, 0, 0, 0, 913,
6071 : 913, 0, 0, 0, 0, 0, 0, 0, 2111, 0,
6072 : 0, 2112, 0, 2639, 0, 2113, 2114, 2115, 0, 6176,
6073 : 915, 0, 0, 0, 0, 915, 0, 0, 0, 0,
6074 : 0, 0, 0, 2636, 0, 0, 4072, 0, 0, 0,
6075 : 0, 0, 0, 2637, 0, 0, 0, 0, 0, 0,
6076 : 2638, 0, 0, 0, 0, 3042, 3043, 0, 0, 0,
6077 : 0, 0, 976, 0, 1824, 0, 0, 0, 0, 0,
6078 : 0, 3060, 0, 0, 0, 0, 2639, 0, 0, 0,
6079 : 0, 976, 0, 0, 0, 0, 2646, 0, 976, 0,
6080 : 0, 0, 0, 0, 0, 966, 0, 966, 966, 0,
6081 : 0, 0, 0, 0, 0, 3103, 3104, 3105, 3106, 975,
6082 : 975, 0, 0, 913, 2111, 0, 0, 2112, 0, 0,
6083 : 0, 2113, 2114, 2115, 0, 0, 0, 0, 0, 0,
6084 : 975, 0, 2640, 975, 0, 0, 0, 2641, 0, 2636,
6085 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2637,
6086 : 0, 0, 0, 0, 0, 0, 2638, 0, 0, 0,
6087 : 2642, 2306, 0, 0, 0, 0, 0, 0, 0, 0,
6088 : 0, 0, 0, 0, 0, 0, 913, 0, 0, 0,
6089 : 0, 0, 2639, 915, 0, 1824, 3180, 0, 2643, 0,
6090 : 0, 1824, 3184, 2574, 0, 2640, 0, 0, 0, 0,
6091 : 2641, 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582,
6092 : 2583, 0, 0, 0, 0, 1823, 1823, 1823, 0, 0,
6093 : 0, 0, 0, 2642, 2306, 911, 0, 0, 0, 0,
6094 : 0, 2373, 0, 0, 0, 0, 0, 0, 0, 0,
6095 : 975, 0, 0, 0, 0, 0, 0, 2644, 0, 0,
6096 : 2645, 2643, 0, 0, 0, 0, 0, 0, 0, 975,
6097 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6098 : 0, 0, 0, 0, 0, 0, 976, 0, 4780, 0,
6099 : 0, 975, 0, 0, 0, 0, 0, 0, 0, 0,
6100 : 0, 0, 0, 0, 2373, 0, 1579, 0, 0, 0,
6101 : 915, 2640, 1580, 0, 0, 0, 2641, 0, 0, 1646,
6102 : 2644, 0, 0, 2645, 0, 0, 0, 0, 0, 0,
6103 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2642,
6104 : 2306, 1647, 0, 0, 0, 0, 0, 0, 0, 0,
6105 : 0, 0, 0, 2646, 0, 0, 0, 1582, 0, 0,
6106 : 0, 0, 0, 0, 915, 0, 0, 2643, 0, 0,
6107 : 0, 0, 4781, 0, 0, 0, 0, 0, 0, 0,
6108 : 0, 975, 0, 0, 0, 0, 915, 0, 0, 0,
6109 : 3368, 0, 0, 1648, 0, 0, 0, 0, 0, 0,
6110 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6111 : 2373, 0, 0, 0, 1583, 0, 2646, 0, 0, 976,
6112 : 976, 1584, 0, 0, 0, 1585, 2644, 0, 1823, 2645,
6113 : 0, 0, 0, 0, 975, 0, 975, 0, 0, 0,
6114 : 976, 0, 0, 976, 0, 0, 0, 0, 0, 975,
6115 : 0, 975, 0, 0, 1586, 0, 0, 0, 915, 0,
6116 : 2574, 0, 0, 0, 0, 0, 0, 0, 0, 2575,
6117 : 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0, 0,
6118 : 0, 0, 0, 0, 0, 0, 1649, 0, 0, 0,
6119 : 1587, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6120 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6121 : 0, 0, 0, 0, 3426, 0, 0, 0, 975, 0,
6122 : 0, 0, 2646, 2574, 3431, 1824, 1824, 1824, 0, 0,
6123 : 0, 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582,
6124 : 2583, 0, 0, 0, 1650, 0, 0, 0, 0, 1651,
6125 : 976, 0, 0, 0, 1652, 0, 0, 0, 0, 0,
6126 : 975, 0, 0, 0, 0, 0, 0, 0, 0, 976,
6127 : 1653, 0, 0, 0, 1589, 0, 0, 0, 0, 975,
6128 : 915, 0, 0, 975, 0, 1590, 0, 0, 0, 0,
6129 : 0, 976, 0, 0, 0, 1591, 0, 0, 0, 0,
6130 : 0, 0, 0, 0, 975, 0, 1654, 1592, 0, 0,
6131 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6132 : 0, 0, 0, 0, 0, 0, 0, 0, 4081, 2574,
6133 : 0, 0, 0, 0, 1393, 0, 0, 0, 2575, 2576,
6134 : 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0, 0, 3750,
6135 : 0, 0, 1594, 1595, 1656, 2111, 0, 0, 2112, 0,
6136 : 0, 0, 2113, 2114, 2115, 0, 0, 0, 0, 0,
6137 : 0, 0, 0, 0, 0, 0, 0, 0, 1657, 0,
6138 : 2636, 976, 0, 0, 3751, 0, 0, 0, 0, 0,
6139 : 2637, 0, 0, 0, 0, 0, 0, 2638, 0, 1659,
6140 : 0, 0, 0, 0, 0, 0, 0, 0, 913, 0,
6141 : 0, 0, 1823, 0, 0, 0, 0, 0, 0, 915,
6142 : 0, 0, 0, 2639, 0, 0, 0, -136, 1824, 0,
6143 : 0, 0, 0, 0, 976, 0, 976, 0, 0, 0,
6144 : 0, 0, 0, 0, 0, 0, 0, 1, 0, 976,
6145 : 1660, 976, 0, 0, 0, 0, 0, 1597, 2, 0,
6146 : 3, 4, 0, 0, 0, 0, 0, 0, 0, 0,
6147 : 0, 3651, 0, 0, 0, 0, 0, 0, 5, 0,
6148 : 0, 0, 0, 0, 0, 0, 3673, 0, 6, 0,
6149 : 0, 0, 0, 0, 0, 915, 0, 0, 0, 0,
6150 : 7, 0, 8, 9, 0, 0, 0, 0, 3701, 10,
6151 : 0, 11, 0, 0, 0, 0, 0, 0, 976, 0,
6152 : 0, 0, 0, 0, 12, 0, 13, 0, 0, 0,
6153 : 0, 2111, 0, 0, 2112, 0, 0, 0, 2113, 2114,
6154 : 2115, 0, 2640, 14, 0, 0, 15, 2641, 0, 0,
6155 : 0, 0, 0, 0, 0, 0, 2636, 0, 3368, 4149,
6156 : 976, 16, 0, 17, 0, 0, 2637, 18, 0, 0,
6157 : 2642, 2306, 0, 2638, 19, 0, 0, 0, 0, 976,
6158 : 0, 0, 0, 976, 20, 0, 21, 975, 0, 0,
6159 : 0, 0, 0, 22, 3781, 3782, 0, 0, 2643, 2639,
6160 : 0, 0, 0, 0, 976, 0, 0, 0, 0, 0,
6161 : 0, 23, 0, 0, 0, 0, 0, 915, 0, 0,
6162 : 0, 0, 0, 0, 0, 0, 0, 0, 24, 0,
6163 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6164 : 0, 2373, 0, 0, 0, 1368, 1368, 0, 0, 0,
6165 : 0, 1823, 0, 0, 0, 0, 1823, 2644, 1823, 0,
6166 : 2645, 0, 0, 0, 0, 0, 0, 0, 0, 2111,
6167 : 0, 0, 2112, 0, 0, 0, 2113, 2114, 2115, 0,
6168 : 0, 4117, 25, 26, 1823, 0, 0, 0, 27, 0,
6169 : 0, 0, 0, 0, 2636, 0, 3907, 0, 0, 0,
6170 : 0, 0, 0, 28, 2637, 0, 0, 0, 0, 0,
6171 : 0, 2638, 1824, 0, 0, 0, 0, 0, 2640, 0,
6172 : 3605, 0, 29, 2641, 0, 1368, 0, 0, 0, 0,
6173 : 975, 0, 0, 975, 0, 0, 0, 2639, 0, 0,
6174 : 0, 0, 0, 0, 0, 0, 2642, 2306, 0, 0,
6175 : 0, 0, 0, 2646, 0, 0, 0, 0, 0, 0,
6176 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6177 : 0, 30, 915, 0, 2643, 0, 0, 915, 915, 0,
6178 : 0, 0, 0, 0, 0, 0, 31, 0, 0, 0,
6179 : 0, 32, 33, 0, 34, 0, 0, 0, 0, 35,
6180 : 0, 0, 0, 0, 0, 36, 0, 0, 37, 0,
6181 : 0, 0, 0, 0, 0, 38, 0, 2373, 0, 0,
6182 : 0, 0, 39, 40, 975, 975, 0, 0, 0, 0,
6183 : 41, 0, 0, 2644, 42, 975, 2645, 4154, 0, 0,
6184 : 0, 0, 0, 0, 0, 43, 1734, 1738, 0, 0,
6185 : 0, 0, 975, 0, 0, 0, 2640, 0, 0, 0,
6186 : 2574, 2641, 44, 0, 0, 3755, 0, 0, 3758, 2575,
6187 : 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0, 0,
6188 : 0, 0, 0, 45, 2642, 2306, 0, 976, 0, 0,
6189 : 0, 915, 0, 0, 0, 46, 0, 0, 0, 0,
6190 : 0, 47, 0, 0, 0, 0, 48, 0, 0, 0,
6191 : 0, 0, 2643, 0, 0, 0, 0, 0, 2111, 0,
6192 : 49, 2112, 0, 0, 0, 2113, 2114, 2115, 0, 2646,
6193 : 0, 0, 0, 975, 0, 0, 1823, 0, 0, 0,
6194 : 0, 2585, 0, 2636, 50, 0, 51, 52, 53, 54,
6195 : 55, 1824, 0, 2637, 915, 2373, 1824, 3853, 1824, 0,
6196 : 2638, 0, 0, 56, 0, 0, -136, 0, 0, 0,
6197 : 3866, 2644, 0, 0, 2645, 0, 0, 0, 3875, 0,
6198 : 0, 0, 0, 0, 1824, 0, 2639, 0, 0, 0,
6199 : 0, 0, 0, 0, 0, 0, 2585, 0, 0, 0,
6200 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6201 : 0, 0, 0, 0, 0, 0, 0, 3919, 0, 0,
6202 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6203 : 976, 0, 0, 976, 0, 0, 2574, 0, 3943, 0,
6204 : 4215, 0, 0, 0, 0, 2575, 2576, 2577, 2578, 2579,
6205 : 2580, 2581, 2582, 2583, 0, 0, 0, 0, 0, 0,
6206 : 0, 2111, 0, 0, 2112, 0, 0, 2646, 2113, 2114,
6207 : 2115, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6208 : 0, 3998, 0, 4000, 0, 2055, 2636, 0, 0, 4161,
6209 : 0, 0, 0, 0, 0, 0, 2637, 0, 0, 0,
6210 : 0, 0, 0, 2638, 0, 2640, 0, 0, 0, 0,
6211 : 2641, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6212 : 0, 0, 0, 0, 976, 976, 0, 2081, 0, 2639,
6213 : 0, 0, 0, 2642, 2306, 976, 0, 0, 0, 0,
6214 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6215 : 0, 0, 976, 0, 0, 0, 2100, 2101, 2102, 0,
6216 : 2104, 2643, 0, 0, 0, 0, 0, 0, 975, 0,
6217 : 0, 4055, 0, 0, 2574, 0, 0, 0, 4062, 0,
6218 : 0, 2592, 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581,
6219 : 2582, 2583, 0, 0, 0, 0, 0, 0, 0, 2111,
6220 : 0, 0, 2112, 0, 2373, 0, 2113, 2114, 2115, 0,
6221 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6222 : 2644, 0, 0, 2645, 2636, 0, 975, 4787, 0, 0,
6223 : 0, 0, 0, 976, 2637, 0, 1824, 0, 975, 0,
6224 : 0, 2638, 0, 0, 0, 0, 0, 0, 2640, 0,
6225 : 0, 0, 0, 2641, 0, 0, 0, 0, 0, 0,
6226 : 0, 0, 0, 0, 0, 0, 0, 2639, 0, 0,
6227 : 0, 0, 975, 0, 0, 0, 2642, 2306, 0, 0,
6228 : 0, 0, 0, 0, 2688, 0, 0, 2111, 2700, 2705,
6229 : 2112, 0, 0, 0, 2113, 2114, 2115, 0, 0, 0,
6230 : 0, 0, 0, 0, 2643, 0, 0, 2585, 0, 0,
6231 : 0, 2585, 2636, 0, 0, 0, 2646, 0, 0, 0,
6232 : 0, 0, 2637, 0, 0, 0, 0, 0, 0, 2638,
6233 : 0, 0, 0, 0, 0, 4435, 0, 0, 0, 0,
6234 : 0, 0, 0, 0, 0, 2915, 0, 2373, 0, 0,
6235 : 0, 1823, 4711, 0, 0, 2639, 0, 0, 0, 0,
6236 : 0, 0, 0, 2644, 0, 0, 2645, 0, 0, 0,
6237 : 975, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6238 : 0, 0, 0, 0, 0, 0, 2640, 0, 0, 0,
6239 : 0, 2641, 0, 0, 0, 0, 0, 0, 0, 0,
6240 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6241 : 0, 0, 0, 0, 2642, 2306, 0, 0, 0, 0,
6242 : 0, 0, 0, 2574, 0, 0, 0, 0, 0, 0,
6243 : 0, 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582,
6244 : 2583, 0, 2643, 0, 0, 2111, 0, 0, 2112, 0,
6245 : 0, 0, 2113, 2114, 2115, 0, 975, 0, 0, 2646,
6246 : 0, 0, 0, 0, 0, 0, 0, 0, 976, 0,
6247 : 2636, 0, 0, 0, 2640, 0, 915, 0, 0, 2641,
6248 : 2637, 0, 0, 0, 0, 2373, 0, 2638, 0, 0,
6249 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6250 : 0, 2644, 2642, 2306, 2645, 0, 0, 0, 4567, 4568,
6251 : 4569, 0, 0, 2639, 0, 0, 0, 4329, 4330, 0,
6252 : 0, 0, 0, 0, 0, 4578, 976, 0, 0, 0,
6253 : 2643, 0, 0, 1734, 1734, 1734, 0, 0, 976, 0,
6254 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6255 : 0, 0, 0, 0, 0, 0, 0, 0, 4603, 4605,
6256 : 0, 0, 0, 4610, 0, 0, 2574, 0, 0, 0,
6257 : 0, 0, 976, 2373, 0, 2575, 2576, 2577, 2578, 2579,
6258 : 2580, 2581, 2582, 2583, 0, 0, 0, 0, 975, 2644,
6259 : 975, 0, 2645, 0, 0, 0, 2111, 2646, 0, 2112,
6260 : 0, 0, 0, 2113, 2114, 2115, 0, 0, 0, 5231,
6261 : 0, 0, 0, 5241, 0, 0, 0, 0, 0, 0,
6262 : 0, 2636, 0, 0, 0, 0, 0, 0, 2585, 0,
6263 : 0, 2637, 2640, 0, 0, 0, 0, 2641, 2638, 0,
6264 : 0, 975, 0, 0, 0, 0, 0, 0, 0, 0,
6265 : 0, 1824, 0, 0, 2585, 0, 0, 0, 3325, 0,
6266 : 2642, 2306, 0, 0, 2639, 0, 0, 0, 0, 1393,
6267 : 976, 0, 0, 2585, 2585, 2585, 0, 2585, 0, 0,
6268 : 0, 0, 0, 0, 0, 2646, 0, 0, 2643, 0,
6269 : 0, 1823, 0, 0, 0, 0, 0, 0, 0, 2111,
6270 : 0, 0, 2112, 0, 2574, 0, 2113, 2114, 2115, 0,
6271 : 0, 0, 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581,
6272 : 2582, 2583, 0, 0, 2636, 0, 0, 0, 0, 0,
6273 : 0, 2373, 0, 0, 2637, 0, 0, 0, 0, 0,
6274 : 0, 2638, 0, 0, 0, 0, 0, 2644, 0, 0,
6275 : 2645, 0, 0, 0, 0, 0, 976, 0, 0, 0,
6276 : 0, 0, 0, 0, 5247, 0, 0, 2639, 0, 0,
6277 : 0, 4515, 0, 0, 0, 0, 0, 0, 0, 0,
6278 : 0, 0, 0, 2640, 0, 0, 0, 0, 2641, 0,
6279 : 0, 0, 2574, 0, 0, 0, 0, 0, 0, 0,
6280 : 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583,
6281 : 0, 2642, 2306, 0, 0, 0, 0, 0, 0, 0,
6282 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6283 : 0, 0, 0, 0, 0, 4819, 4820, 4821, 0, 2643,
6284 : 0, 0, 0, 2646, 0, 0, 0, 0, 0, 0,
6285 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6286 : 0, 5248, 3269, 0, 0, 0, 0, 0, 0, 0,
6287 : 0, 3286, 3286, 3286, 3286, 3296, 3302, 3286, 3305, 3286,
6288 : 3286, 0, 2373, 0, 0, 3312, 2640, 3313, 976, 3315,
6289 : 976, 2641, 3329, 3332, 3337, 0, 0, 0, 2644, 0,
6290 : 3346, 2645, 0, 3351, 0, 0, 0, 0, 0, 0,
6291 : 0, 0, 0, 0, 2642, 2306, 0, 0, 3358, 3359,
6292 : 3360, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6293 : 0, 4669, 0, 0, 0, 975, 3361, 0, 0, 0,
6294 : 0, 976, 2643, 0, 0, 0, 0, 0, 0, 975,
6295 : 2574, 966, 0, 0, 0, 0, 0, 0, 0, 2575,
6296 : 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0, 0,
6297 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6298 : 0, 1823, 0, 0, 0, 2373, 0, 0, 0, 0,
6299 : 0, 1824, 0, 0, 2646, 0, 966, 0, 0, 0,
6300 : 0, 2644, 0, 0, 2645, 0, 0, 2111, 0, 0,
6301 : 2112, 0, 0, 0, 2113, 2114, 2115, 0, 0, 0,
6302 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6303 : 0, 0, 2636, 0, 0, 0, 0, 0, 0, 0,
6304 : 0, 0, 2637, 0, 0, 0, 0, 0, 0, 2638,
6305 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6306 : 1823, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6307 : 0, 0, 0, 0, 0, 2639, 0, 0, 0, 0,
6308 : 0, 0, 0, 0, 3369, 0, 0, 0, 0, 0,
6309 : 0, 0, 0, 0, 0, 0, 1823, 2646, 0, 0,
6310 : 0, 2574, 0, 0, 0, 0, 0, 0, 0, 0,
6311 : 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0,
6312 : 0, 2111, 0, 0, 2112, 0, 0, 0, 2113, 2114,
6313 : 2115, 0, 0, 0, 0, 0, 0, 0, 3388, 0,
6314 : 0, 0, 0, 0, 0, 0, 2636, 0, 5249, 0,
6315 : 0, 0, 0, 0, 0, 0, 2637, 0, 0, 0,
6316 : 0, 0, 0, 2638, 0, 2585, 0, 0, 0, 0,
6317 : 0, 0, 1823, 5091, 0, 975, 0, 0, 0, 0,
6318 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2639,
6319 : 0, 0, 0, 0, 2640, 3390, 0, 0, 0, 2641,
6320 : 0, 0, 0, 0, 2574, 5123, 0, 0, 0, 0,
6321 : 0, 0, 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581,
6322 : 2582, 2583, 2642, 2306, 0, 0, 0, 0, 0, 0,
6323 : 0, 0, 0, 0, 0, 976, 0, 3126, 0, 0,
6324 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 976,
6325 : 2643, 0, 0, 0, 0, 2111, 0, 0, 2112, 0,
6326 : 0, 2585, 2113, 2114, 2115, 0, 0, 0, 0, 0,
6327 : 0, 0, 5181, 2585, 0, 0, 0, 0, 2585, 0,
6328 : 2636, 1824, 0, 0, 0, 0, 0, 0, 0, 3187,
6329 : 2637, 0, 0, 2373, 0, 0, 0, 2638, 0, 0,
6330 : 0, 0, 0, 0, 0, 0, 0, 0, 2640, 2644,
6331 : 0, 0, 2645, 2641, 0, 0, 0, 0, 0, 0,
6332 : 975, 0, 0, 2639, 0, 0, 0, 0, 0, 0,
6333 : 0, 0, 0, 0, 0, 0, 2642, 2306, 0, 0,
6334 : 0, 0, 0, 0, 975, 0, 0, 0, 0, 0,
6335 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6336 : 1824, 0, 0, 0, 2643, 0, 0, 0, 0, 0,
6337 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6338 : 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 0,
6339 : 3406, 0, 0, 0, 0, 0, 1824, 0, 0, 0,
6340 : 0, 1368, 0, 1734, 0, 2646, 0, 2373, 0, 0,
6341 : 0, 0, 0, 0, 0, 0, 0, 5820, 0, 0,
6342 : 0, 0, 0, 2644, 0, 0, 2645, 0, 0, 0,
6343 : 0, 0, 0, 0, 5284, 5285, 5286, 5287, 0, 0,
6344 : 0, 3361, 2640, 0, 0, 3369, 0, 2641, 3388, 5077,
6345 : 3390, 0, 0, 3443, 0, 0, 0, 0, 0, 0,
6346 : 0, 0, 0, 5079, 0, 0, 0, 0, 0, 0,
6347 : 2642, 2306, 1824, 0, 0, 976, 0, 0, 0, 0,
6348 : 0, 0, 0, 0, 975, 0, 0, 0, 0, 0,
6349 : 0, 0, 0, 0, 0, 0, 0, 0, 2643, 0,
6350 : 0, 0, 0, 0, 0, 0, 2101, 2102, 0, 0,
6351 : 0, 0, 2574, 0, 0, 0, 0, 0, 0, 2646,
6352 : 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583,
6353 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6354 : 0, 2373, 0, 0, 0, 0, 2111, 0, 0, 2112,
6355 : 0, 0, 0, 2113, 2114, 2115, 0, 2644, 0, 0,
6356 : 2645, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6357 : 0, 2636, 0, 0, 5837, 0, 0, 0, 0, 0,
6358 : 0, 2637, 0, 0, 0, 0, 3583, 0, 2638, 0,
6359 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6360 : 5629, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6361 : 0, 0, 0, 0, 2639, 0, 0, 0, 0, 0,
6362 : 976, 0, 0, 0, 0, 0, 2574, 0, 0, 0,
6363 : 0, 0, 0, 0, 966, 2575, 2576, 2577, 2578, 2579,
6364 : 2580, 2581, 2582, 2583, 976, 0, 0, 0, 1823, 0,
6365 : 0, 0, 0, 2646, 0, 0, 0, 2111, 0, 0,
6366 : 2112, 0, 0, 0, 2113, 2114, 2115, 0, 0, 0,
6367 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6368 : 0, 0, 2636, 0, 0, 0, 0, 0, 0, 0,
6369 : 0, 0, 2637, 0, 0, 0, 0, 0, 0, 2638,
6370 : 0, 0, 0, 966, 966, 0, 0, 0, 0, 1823,
6371 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6372 : 0, 0, 0, 0, 0, 2639, 0, 0, 0, 0,
6373 : 0, 0, 0, 2640, 1823, 0, 0, 0, 2641, 0,
6374 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6375 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6376 : 2574, 2642, 2306, 0, 0, 0, 0, 0, 0, 2575,
6377 : 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0, 0,
6378 : 0, 0, 0, 0, 976, 0, 5509, 0, 0, 2643,
6379 : 0, 0, 0, 0, 0, 0, 0, 5519, 0, 0,
6380 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6381 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6382 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 3839,
6383 : 3840, 1734, 2373, 0, 0, 3844, 0, 0, 0, 0,
6384 : 0, 0, 2585, 0, 2640, 0, 0, 0, 2644, 2641,
6385 : 0, 2645, 0, 0, 0, 0, 0, 0, 0, 2585,
6386 : 0, 0, 3873, 0, 0, 0, 0, 0, 0, 2585,
6387 : 0, 0, 2642, 2306, 0, 2585, 0, 0, 2585, 0,
6388 : 0, 0, 0, 0, 0, 2585, 2585, 0, 2585, 0,
6389 : 0, 0, 0, 3325, 3325, 0, 4140, 0, 3325, 0,
6390 : 2643, 0, 2585, 0, 0, 2585, 0, 0, 0, 0,
6391 : 2585, 0, 0, 0, 0, 0, 0, 0, 0, 2585,
6392 : 0, 0, 0, 0, 2585, 0, 0, 0, 0, 0,
6393 : 0, 2585, 2585, 2585, 2585, 0, 0, 0, 0, 3325,
6394 : 3325, 0, 2585, 2373, 2646, 0, 0, 0, 1824, 0,
6395 : 0, 5423, 0, 0, 0, 0, 0, 0, 0, 2644,
6396 : 0, 2585, 2645, 2585, 0, 0, 5427, 0, 0, 0,
6397 : 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585,
6398 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6399 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6400 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 1824,
6401 : 0, 0, 0, 0, 0, 0, 2585, 0, 0, 0,
6402 : 0, 0, 966, 966, 0, 0, 0, 0, 0, 0,
6403 : 0, 0, 0, 0, 1824, 0, 0, 0, 0, 0,
6404 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6405 : 0, 2574, 0, 0, 0, 2646, 0, 0, 5487, 0,
6406 : 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0,
6407 : 0, 4068, 0, 0, 0, 0, 4074, 0, 0, 0,
6408 : 0, 0, 0, 5731, 0, 0, 0, 0, 1393, 0,
6409 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6410 : 0, 0, 0, 0, 0, 1, 0, 5761, 0, 0,
6411 : 0, 0, 0, 0, 0, 0, 2, 0, 3, 4,
6412 : 0, 0, 0, 0, 0, 0, 0, 2104, 0, 0,
6413 : 0, 0, 0, 0, 0, 0, 0, 0, 3337, 0,
6414 : 3337, 3337, 0, 0, 0, 0, 6, 0, 0, 0,
6415 : 0, 0, 0, 0, 4164, 0, 2585, 4167, 7, 4169,
6416 : 8, 9, 2574, 0, 0, 0, 0, 10, 0, 11,
6417 : 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583,
6418 : 0, 0, 12, 0, 13, 0, 0, 0, 0, 0,
6419 : 0, 0, 0, 673, 0, 0, 4194, 0, 4197, 0,
6420 : 4199, 14, 0, 0, 15, 0, 0, 0, 0, 0,
6421 : 0, 674, 0, 0, 0, 0, 0, 0, 0, 16,
6422 : 0, 17, 0, 0, 0, 18, 0, 0, 0, 0,
6423 : 0, 0, 5786, 0, 0, 0, 675, 0, 0, 0,
6424 : 0, 0, 20, 0, 21, 0, 0, 0, 0, 676,
6425 : 0, 22, 0, 0, 0, 0, 0, 0, 0, 0,
6426 : 0, 0, 0, 0, 0, 0, -899, 0, 0, 23,
6427 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6428 : 0, 0, 0, 5648, 677, 5650, 24, 0, 0, 0,
6429 : 678, 0, 0, 0, 4269, 0, 0, 0, 0, 2688,
6430 : 0, 0, 0, 0, 0, 0, 0, 0, 679, 0,
6431 : 0, 0, 0, 0, 2705, 0, 0, 0, 0, 0,
6432 : 0, 0, 680, 0, 0, 0, 0, 0, 0, 0,
6433 : 0, 681, 0, 0, 0, 0, 0, 0, 0, 0,
6434 : 25, 26, 0, 0, 682, 0, 27, 0, 0, 0,
6435 : 0, 0, 0, 683, 0, 0, 0, 684, 0, 0,
6436 : 0, 28, 0, 0, 0, 0, 0, 0, 0, 0,
6437 : 0, 5966, 0, 0, 0, 0, 0, -1104, 0, 4319,
6438 : 29, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6439 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 5988,
6440 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6441 : 0, 0, 2585, 2585, 0, 0, 0, 2585, 0, 0,
6442 : 0, 0, 0, 0, 0, 5777, 0, 685, 0, 30,
6443 : 0, 0, 0, 0, 0, 0, 0, -630, 0, 4354,
6444 : 0, 0, 0, 0, 31, 0, 2585, 0, 0, 32,
6445 : 33, 0, 34, 0, 0, 0, 0, 35, 0, 0,
6446 : 4641, 0, 0, 36, 0, 0, 37, 0, 0, 0,
6447 : 0, 0, 0, 38, 0, 0, 0, 0, 0, 0,
6448 : 39, 40, 686, 0, 0, 687, 0, 0, 41, 0,
6449 : 0, 0, 42, 0, 0, 0, 0, 0, 0, 0,
6450 : 0, 0, 0, 43, 0, 0, 0, 0, 0, 688,
6451 : 6076, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6452 : 44, 0, 0, 689, 0, 0, 0, 0, 0, 0,
6453 : -468, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6454 : 0, 45, 0, 0, 0, 0, 0, 0, 0, 0,
6455 : 690, 0, 0, 46, 0, 0, 0, 0, 0, 47,
6456 : 691, 0, 0, 0, 48, 0, 0, -468, 0, 0,
6457 : 692, 0, 0, 0, 0, 0, 0, 0, 49, 0,
6458 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6459 : 693, 0, 0, 0, 0, 0, 0, 0, 694, 0,
6460 : 0, 0, 50, 0, 0, -468, 0, 5915, 695, 5917,
6461 : 696, 0, 697, 698, 0, 0, 0, 0, 0, 0,
6462 : 0, 56, 0, 0, -136, 0, 0, 0, 699, 0,
6463 : 0, 0, 0, 0, 0, 0, 700, 0, 0, 701,
6464 : 1734, 2585, 702, 0, 0, 0, 1734, 2585, 0, 0,
6465 : 0, 0, 0, 0, 0, -468, 0, 0, 0, 0,
6466 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6467 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6468 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6469 : 0, 0, 0, 0, 4140, 4140, 0, 0, 3325, 3325,
6470 : 3325, 3325, 0, 0, 3325, 3325, 3325, 3325, 3325, 3325,
6471 : 3325, 3325, 3325, 3325, 4140, 0, 0, 0, 0, 0,
6472 : 0, 722, 0, 0, 0, 4590, 2792, 0, 0, 0,
6473 : 0, 0, 0, 0, 0, 0, 0, 2585, 0, 0,
6474 : 2585, 0, 2585, 0, 0, 4140, 4140, 0, 0, 0,
6475 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6476 : 0, 0, 0, 0, 2793, 0, 0, 2585, 3325, 3325,
6477 : 2585, 0, 2585, 0, 0, 0, 0, 725, 0, 0,
6478 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6479 : 0, 0, 0, 0, 726, 0, 0, 0, 0, 0,
6480 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6481 : 0, 0, 1059, 0, 0, 0, 0, 0, 0, 0,
6482 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6483 : 0, 0, 0, 0, 0, 0, 2794, 0, 0, 0,
6484 : 0, 0, 2585, 0, 0, 0, 0, 0, 0, 0,
6485 : 729, 0, 0, 0, 0, 0, 0, 0, 0, 730,
6486 : 0, 0, 0, 0, 0, 0, 0, 197, 0, 0,
6487 : 0, 0, 731, 0, 4712, 0, 0, 0, 2795, 0,
6488 : 0, 6124, 0, 4716, 0, 0, 0, 0, 0, 0,
6489 : 0, 0, 2585, 0, 0, 0, 0, 3286, 0, 0,
6490 : 0, 4729, 3286, 3286, 0, 1062, 0, 0, 3302, 0,
6491 : 0, 4737, 0, 0, 4739, 0, 0, 0, 198, 0,
6492 : 4741, 0, 4742, 0, 0, 0, 0, 2585, 0, 0,
6493 : 0, 0, 0, 0, 0, 199, 0, 0, 0, 0,
6494 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 4764,
6495 : 4765, 4766, 0, 200, 0, 0, 0, 0, 0, 201,
6496 : 0, 0, 0, 0, 0, 735, 0, 0, 3346, 0,
6497 : 0, 0, 0, 0, 0, 0, 4790, 202, 0, 4793,
6498 : 0, 4795, 0, 0, 0, 0, 0, 0, 0, 0,
6499 : 0, 203, 0, 0, 0, 0, 0, 4799, 0, 0,
6500 : 204, 0, 0, 0, 0, 4806, 4807, 0, 0, 0,
6501 : 2796, 0, 4812, 205, 6231, 0, 0, 0, 0, 206,
6502 : 0, 0, 0, 0, 0, 0, 207, 0, 0, 0,
6503 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6504 : 0, 3286, 0, 0, 0, 0, 208, 213, 2797, 0,
6505 : 0, 740, 0, 0, 0, 0, 0, 0, 0, 0,
6506 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6507 : 0, 0, 0, 0, 0, 0, 0, 0, 1066, 0,
6508 : 0, 2798, 0, 0, 209, 0, 0, 0, 744, 0,
6509 : 0, 0, 4866, 0, 0, 745, 0, 0, 746, 0,
6510 : 0, 0, 0, 0, 0, 0, 210, 0, 0, 4880,
6511 : 0, 0, 0, 0, 0, 0, 0, 0, 747, 3325,
6512 : 0, 0, 0, 0, 0, 0, 1068, 0, 0, 0,
6513 : 0, 0, 0, 749, 0, 0, 1069, 0, 0, 0,
6514 : 0, 751, 0, 0, 0, 0, 6326, 0, 0, 2799,
6515 : 0, 211, 0, 0, 0, 0, 2800, 0, 0, 0,
6516 : 0, 0, 0, 2585, 0, 0, 0, 0, 0, 0,
6517 : 0, 0, 0, 0, 0, 0, 0, 0, 212, 1117,
6518 : 1117, 0, 0, 756, 0, 0, 0, 0, 213, 214,
6519 : 0, 0, 215, 0, 0, 0, 0, 0, 0, 0,
6520 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6521 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 216,
6522 : 0, 0, 217, 0, 0, 0, 218, 0, 0, 219,
6523 : 0, 0, 0, 0, 0, 0, 220, 0, 0, 221,
6524 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6525 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 222,
6526 : 0, 0, 0, 0, 0, 0, 0, 223, 0, 0,
6527 : 0, 0, 224, 0, 225, 0, 0, 226, 0, 0,
6528 : 0, 0, 227, 0, 0, 2585, 0, 0, 0, 2585,
6529 : 0, 0, 228, 0, 0, 0, 0, 229, 0, 0,
6530 : 0, 0, 2585, 0, 0, 0, 1117, 0, 0, 0,
6531 : 2585, 230, 2585, 0, 2585, 2585, 0, 0, 0, 0,
6532 : 4140, 4140, 4140, 4140, 231, 0, 0, 4140, 4140, 4140,
6533 : 4140, 4140, 4140, 4140, 4140, 4140, 4140, 2585, 2585, 2585,
6534 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6535 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6536 : 0, 0, 0, 2585, 0, 0, 2585, 0, 2585, 0,
6537 : 0, 0, 2585, 0, 0, 4140, 4140, 0, 0, 2585,
6538 : 2585, 0, 0, 0, 0, 2585, 0, 0, 0, 0,
6539 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6540 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6541 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6542 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6543 : 0, 0, 0, 0, 0, 5169, 5170, 0, 0, 2585,
6544 : 0, 0, 0, 0, 0, 0, 5177, 0, 0, 0,
6545 : 0, 0, 0, 2585, 0, 0, 0, 0, 0, 0,
6546 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6547 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6548 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6549 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6550 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6551 : 0, 0, 0, 0, 0, 0, 5220, 0, 0, 0,
6552 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6553 : 0, 0, 2688, 0, 0, 0, 0, 0, 0, 0,
6554 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6555 : 5243, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6556 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6557 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6558 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 5262,
6559 : 5264, 0, 0, 0, 0, 0, 5268, 5269, 0, 0,
6560 : 0, 5270, 0, 0, 0, 0, 5271, 0, 0, 5274,
6561 : 5275, 0, 0, 0, 0, 0, 5280, 0, 0, 0,
6562 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6563 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6564 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6565 : 0, 0, 0, 0, 4140, 0, 0, 0, 0, 0,
6566 : 0, 5315, 0, 0, 0, 0, 0, 0, 0, 0,
6567 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6568 : 5330, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6569 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6570 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6571 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6572 : 0, 0, 0, 0, 0, 0, 0, 5360, 0, 0,
6573 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6574 : 0, 0, 2585, 2585, 0, 0, 0, 0, 0, 0,
6575 : 2585, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6576 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6577 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6578 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6579 : 0, 0, 0, 2585, 0, 0, 0, 0, 0, 0,
6580 : 0, 0, 0, 0, 0, 0, 0, 0, 5411, 0,
6581 : 0, 0, 0, 0, 0, 5413, 2585, 3325, 0, 0,
6582 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6583 : 0, 0, 0, 0, 0, 2585, 0, 2585, 0, 0,
6584 : 0, 2585, 2585, 2585, 2585, 0, 0, 2585, 2585, 0,
6585 : 0, 0, 0, 2585, 0, 0, 0, 0, 0, 0,
6586 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6587 : 3325, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6588 : 0, 0, 0, 5448, 0, 0, 0, 0, 2585, 0,
6589 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6590 : 0, 0, 0, 2585, 0, 0, 0, 0, 0, 0,
6591 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6592 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6593 : 0, 0, 0, 2585, 0, 0, 0, 0, 0, 0,
6594 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6595 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6596 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6597 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6598 : 0, 0, 0, 0, 2585, 0, 2585, 0, 0, 0,
6599 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6600 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6601 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6602 : 0, 2585, 0, 0, 0, 0, 0, 0, 0, 0,
6603 : 0, 0, 0, 0, 0, 0, 3286, 0, 0, 0,
6604 : 0, 0, 0, 0, 0, 0, 5556, 0, 0, 0,
6605 : 0, 0, 5560, 5561, 5562, 0, 0, 0, 0, 0,
6606 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6607 : 0, 0, 0, 0, 0, 0, 0, 5575, 5576, 0,
6608 : 0, 5577, 0, 0, 0, 0, 0, 0, 0, 0,
6609 : 0, 0, 0, 0, 0, 0, 0, 0, 5585, 0,
6610 : 0, 0, 0, 0, 0, 0, 0, 0, 5597, 0,
6611 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 5615,
6612 : 0, 0, 0, 0, 0, 0, 0, 1368, 0, 2585,
6613 : 0, 4140, 3325, 2585, 2585, 2585, 5634, 0, 0, 0,
6614 : 0, 0, 0, 0, 0, 0, 0, 0, 2585, 2585,
6615 : 2585, 0, 0, 0, 0, 0, 0, 0, 2585, 0,
6616 : 0, 0, 0, 3325, 0, 0, 4140, 0, 0, 0,
6617 : 2585, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6618 : 0, 0, 0, 0, 0, 0, 0, 0, 2585, 0,
6619 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6620 : 0, 0, 0, 0, 0, 0, 0, 2585, 0, 0,
6621 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6622 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6623 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6624 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6625 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6626 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6627 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6628 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6629 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6630 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6631 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6632 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6633 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6634 : 0, 0, 0, 0, 0, 0, 0, 5810, 0, 0,
6635 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6636 : 0, 0, 0, 0, 0, 0, 0, 0, 3346, 0,
6637 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6638 : 0, 0, 0, 2585, 0, 0, 0, 0, 0, 0,
6639 : 0, 0, 0, 0, 4140, 0, 0, 0, 0, 0,
6640 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6641 : 0, 0, 0, 2104, 0, 4140, 0, 3325, 0, 0,
6642 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6643 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6644 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6645 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6646 : 0, 0, 0, 0, 0, 5895, 0, 0, 2585, 0,
6647 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6648 : 2585, 5907, 0, 0, 0, 0, 0, 0, 0, 0,
6649 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6650 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6651 : 0, 0, 0, 0, 0, 0, 2585, 0, 0, 0,
6652 : 0, 0, 0, 5943, 0, 0, 0, 0, 0, 0,
6653 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6654 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6655 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6656 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6657 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6658 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6659 : 0, 0, 0, 0, 0, 0, 2585, 0, 0, 0,
6660 : 0, 0, 0, 2585, 0, 0, 0, 0, 0, 0,
6661 : 0, 0, 0, 3286, 0, 0, 0, 0, 0, 0,
6662 : 0, 0, 0, 0, 0, 6023, 0, 0, 0, 0,
6663 : 0, 0, 0, 0, 6030, 6030, 6030, 0, 0, 2585,
6664 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6665 : 0, 0, 0, 0, 2585, 0, 0, 0, 0, 0,
6666 : 0, 0, 5615, 0, 0, 0, 0, 0, 0, 0,
6667 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6668 : 0, 6066, 0, 0, 0, 0, 0, 0, 0, 0,
6669 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6670 : 0, 6081, 0, 0, 0, 0, 0, 0, 0, 0,
6671 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6672 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6673 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6674 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6675 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6676 : 0, 0, 3325, 3325, 0, 0, 3325, 0, 0, 0,
6677 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6678 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6679 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6680 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6681 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6682 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6683 : 2585, 0, 6030, 0, 0, 0, 0, 0, 0, 0,
6684 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6685 : 0, 0, 0, 0, 0, 2585, 0, 5615, 0, 0,
6686 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6687 : 0, 0, 0, 4140, 4140, 0, 4140, 0, 0, 0,
6688 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6689 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6690 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6691 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6692 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6693 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 6257,
6694 : 0, 0, 0, 0, 0, 2585, 0, 0, 0, 0,
6695 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6696 : 0, 0, 0, 6282, 0, 0, 0, 0, 0, 0,
6697 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6698 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6699 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6700 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6701 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6702 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6703 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6704 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6705 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6706 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6707 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 234,
6708 : 0, 1271, 717, 0, 1272, 1273, 1274, 778, 1275, 0,
6709 : 0, 0, 0, 0, 0, 6030, 235, 236, 237, 238,
6710 : 239, 240, 241, 242, 243, 1728, 244, 245, 246, 0,
6711 : 0, 6372, 0, 1276, 0, 0, 247, 248, 249, 0,
6712 : 250, 251, 252, 253, 254, 255, 256, 257, 258, 1277,
6713 : 260, 1278, 1279, 0, 263, 264, 265, 266, 267, 268,
6714 : 269, 1280, 1281, 270, 271, 1282, 1283, 274, 0, 275,
6715 : 276, 277, 278, 1284, 0, 1285, 0, 281, 282, 283,
6716 : 284, 285, 286, 287, 288, 289, 290, 291, 0, 292,
6717 : 293, 294, 295, 296, 297, 0, 298, 299, 300, 301,
6718 : 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303, 304, 305,
6719 : 306, 307, 308, 1293, 1294, 311, 1295, 312, 0, 313,
6720 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
6721 : 323, 1729, 0, 324, 325, 887, 327, 328, 0, 329,
6722 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
6723 : 338, 339, 340, 341, 1296, 343, 344, 345, 346, 1297,
6724 : 1298, 348, 1734, 349, 350, 351, 1299, 353, 0, 354,
6725 : 0, 355, 356, 357, 0, 358, 359, 360, 361, 362,
6726 : 0, 363, 1300, 0, 1301, 366, 367, 0, 368, 369,
6727 : 370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
6728 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 387,
6729 : 388, 389, 390, 391, 392, 1302, 1303, 0, 1304, 0,
6730 : 396, 397, 398, 399, 400, 1305, 1306, 1307, 1308, 1309,
6731 : 1310, 1311, 1312, 1313, 410, 1314, 412, 413, 414, 415,
6732 : 416, 417, 418, 0, 0, 419, 1315, 421, 422, 423,
6733 : 0, 424, 425, 426, 1316, 1317, 427, 428, 429, 430,
6734 : 431, 432, 433, 434, 435, 436, 1318, 438, 439, 440,
6735 : 441, 442, 443, 444, 445, 1319, 447, 1320, 449, 450,
6736 : 451, 452, 453, 454, 455, 456, 457, 1321, 459, 1322,
6737 : 460, 461, 462, 463, 1323, 1324, 465, 1325, 467, 468,
6738 : 469, 470, 0, 471, 472, 473, 0, 0, 1326, 475,
6739 : 476, 0, 0, 477, 478, 479, 480, 481, 482, 1327,
6740 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
6741 : 494, 495, 0, 496, 497, 498, 1328, 500, 501, 502,
6742 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
6743 : 512, 513, 514, 515, 1329, 517, 518, 519, 0, 520,
6744 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
6745 : 531, 532, 0, 533, 534, 535, 536, 537, 538, 539,
6746 : 540, 1330, 542, 543, 544, 545, 546, 547, 548, 549,
6747 : 550, 551, 0, 552, 553, 554, 555, 556, 1331, 557,
6748 : 558, 559, 560, 561, 562, 563, 564, 1332, 566, 0,
6749 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
6750 : 577, 578, 579, 580, 581, 1333, 583, 0, 584, 585,
6751 : 1334, 0, 586, 587, 588, 589, 590, 591, 592, 593,
6752 : 0, 594, 1335, 1336, 0, 0, 597, 598, 1337, 600,
6753 : 1338, 1339, 602, 603, 604, 605, 606, 607, 608, 609,
6754 : 610, 0, 1340, 611, 612, 613, 614, 615, 1341, 0,
6755 : 616, 617, 618, 619, 620, 621, 1342, 1730, 623, 624,
6756 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
6757 : 631, 632, 633, 634, 635, 636, 637, 1343, 1344, 1345,
6758 : 1346, 642, 1347, 1348, 1349, 1350, 647, 648, 649, 650,
6759 : 0, 1351, 0, 0, 0, 0, 0, 0, 0, 0,
6760 : 0, 0, 0, 1352, 1353, 1731, 0, 0, 0, 0,
6761 : 0, 0, 1355, 1732, 234, 0, 1271, 717, 0, 1272,
6762 : 1273, 1274, 778, 1275, 0, 0, 0, 0, 0, 0,
6763 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
6764 : 0, 244, 245, 246, 0, 0, 0, 0, 1276, 0,
6765 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 254,
6766 : 255, 256, 257, 258, 1277, 260, 1278, 1279, 0, 263,
6767 : 264, 265, 266, 267, 268, 269, 1280, 1281, 270, 271,
6768 : 1282, 1283, 274, 0, 275, 276, 277, 278, 1284, 0,
6769 : 1285, 0, 281, 282, 283, 284, 285, 286, 287, 288,
6770 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
6771 : 0, 298, 299, 300, 301, 1286, 1287, 1288, 1289, 1290,
6772 : 1291, 1292, 303, 304, 305, 306, 307, 308, 1293, 1294,
6773 : 311, 1295, 312, 0, 313, 314, 315, 316, 317, 318,
6774 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
6775 : 887, 327, 328, 0, 329, 330, 331, 332, 0, 333,
6776 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 1296,
6777 : 343, 344, 345, 346, 1297, 1298, 348, 0, 349, 350,
6778 : 351, 1299, 353, 0, 354, 0, 355, 356, 357, 0,
6779 : 358, 359, 360, 361, 362, 0, 363, 1300, 0, 1301,
6780 : 366, 367, 0, 368, 369, 370, 371, 372, 373, 374,
6781 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
6782 : 384, 385, 0, 386, 387, 388, 389, 390, 391, 392,
6783 : 1302, 1303, 0, 1304, 0, 396, 397, 398, 399, 400,
6784 : 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 410,
6785 : 1314, 412, 413, 414, 415, 416, 417, 418, 0, 0,
6786 : 419, 1315, 421, 422, 423, 0, 424, 425, 426, 1316,
6787 : 1317, 427, 428, 429, 430, 431, 432, 433, 434, 435,
6788 : 436, 1318, 438, 439, 440, 441, 442, 443, 444, 445,
6789 : 1319, 447, 1320, 449, 450, 451, 452, 453, 454, 455,
6790 : 456, 457, 1321, 459, 1322, 460, 461, 462, 463, 1323,
6791 : 1324, 465, 1325, 467, 468, 469, 470, 0, 471, 472,
6792 : 473, 0, 0, 1326, 475, 476, 0, 0, 477, 478,
6793 : 479, 480, 481, 482, 1327, 484, 485, 486, 487, 488,
6794 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
6795 : 498, 1328, 500, 501, 502, 503, 504, 0, 505, 506,
6796 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 1329,
6797 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
6798 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
6799 : 535, 536, 537, 538, 539, 540, 1330, 542, 543, 544,
6800 : 545, 546, 547, 548, 549, 550, 551, 40, 552, 553,
6801 : 554, 555, 556, 1331, 557, 558, 559, 560, 561, 562,
6802 : 563, 564, 1332, 566, 0, 567, 568, 569, 570, 571,
6803 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
6804 : 1333, 583, 0, 584, 585, 1334, 44, 586, 587, 588,
6805 : 589, 590, 591, 592, 593, 0, 594, 1335, 1336, 0,
6806 : 0, 597, 598, 1337, 600, 1338, 1339, 602, 603, 604,
6807 : 605, 606, 607, 608, 609, 610, 0, 1340, 611, 612,
6808 : 613, 614, 615, 1341, 0, 616, 617, 618, 619, 620,
6809 : 1206, 1342, 0, 623, 624, 625, 626, 627, 628, 629,
6810 : 0, 0, 630, 0, 49, 631, 632, 633, 634, 635,
6811 : 636, 637, 1343, 1344, 1345, 1346, 642, 1347, 1348, 1349,
6812 : 1350, 647, 648, 649, 650, 0, 1351, 0, 50, 0,
6813 : 0, 0, 0, 0, 0, 0, 0, 0, 1352, 1353,
6814 : 0, 0, 0, 0, 0, 0, 0, 1355, 5856, 234,
6815 : 0, 1271, 717, 0, 1272, 1273, 1274, 778, 1275, 0,
6816 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
6817 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
6818 : 0, 0, 0, 1276, 0, 0, 247, 248, 249, 0,
6819 : 250, 251, 252, 253, 254, 255, 256, 257, 258, 1277,
6820 : 260, 1278, 1279, 0, 263, 264, 265, 266, 267, 268,
6821 : 269, 1280, 1281, 270, 271, 1282, 1283, 274, 0, 275,
6822 : 276, 277, 278, 1284, 0, 1285, 0, 281, 282, 283,
6823 : 284, 285, 286, 287, 288, 289, 290, 291, 0, 292,
6824 : 293, 294, 295, 296, 297, 0, 298, 299, 300, 301,
6825 : 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303, 304, 305,
6826 : 306, 307, 308, 1293, 1294, 311, 1295, 312, 0, 313,
6827 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
6828 : 323, 0, 0, 324, 325, 887, 327, 328, 0, 329,
6829 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
6830 : 338, 339, 340, 341, 1296, 343, 344, 345, 346, 1297,
6831 : 1298, 348, 0, 349, 350, 351, 1299, 353, 0, 354,
6832 : 0, 355, 356, 357, 0, 358, 359, 360, 361, 362,
6833 : 0, 363, 1300, 0, 1301, 366, 367, 0, 368, 369,
6834 : 370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
6835 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 387,
6836 : 388, 389, 390, 391, 392, 1302, 1303, 0, 1304, 0,
6837 : 396, 397, 398, 399, 400, 1305, 1306, 1307, 1308, 1309,
6838 : 1310, 1311, 1312, 1313, 410, 1314, 412, 413, 414, 415,
6839 : 416, 417, 418, 0, 0, 419, 1315, 421, 422, 423,
6840 : 0, 424, 425, 426, 1316, 1317, 427, 428, 429, 430,
6841 : 431, 432, 433, 434, 435, 436, 1318, 438, 439, 440,
6842 : 441, 442, 443, 444, 445, 1319, 447, 1320, 449, 450,
6843 : 451, 452, 453, 454, 455, 456, 457, 1321, 459, 1322,
6844 : 460, 461, 462, 463, 1323, 1324, 465, 1325, 467, 468,
6845 : 469, 470, 0, 471, 472, 473, 0, 0, 1326, 475,
6846 : 476, 0, 0, 477, 478, 479, 480, 481, 482, 1327,
6847 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
6848 : 494, 495, 0, 496, 497, 498, 1328, 500, 501, 502,
6849 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
6850 : 512, 513, 514, 515, 1329, 517, 518, 519, 0, 520,
6851 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
6852 : 531, 532, 0, 533, 534, 535, 536, 537, 538, 539,
6853 : 540, 1330, 542, 543, 544, 545, 546, 547, 548, 549,
6854 : 550, 551, 0, 552, 553, 554, 555, 556, 1331, 557,
6855 : 558, 559, 560, 561, 562, 563, 564, 1332, 566, 0,
6856 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
6857 : 577, 578, 579, 580, 581, 1333, 583, 0, 584, 585,
6858 : 1334, 0, 586, 587, 588, 589, 590, 591, 592, 593,
6859 : 0, 594, 1335, 1336, 0, 0, 597, 598, 1337, 600,
6860 : 1338, 1339, 602, 603, 604, 605, 606, 607, 608, 609,
6861 : 610, 0, 1340, 611, 612, 613, 614, 615, 1341, 0,
6862 : 616, 617, 618, 619, 620, 621, 1342, 0, 623, 624,
6863 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
6864 : 631, 632, 633, 634, 635, 636, 637, 1343, 1344, 1345,
6865 : 1346, 642, 1347, 1348, 1349, 1350, 647, 648, 649, 650,
6866 : 0, 1351, 0, 0, 0, 0, 0, 0, 0, 0,
6867 : 0, 0, 0, 1352, 1353, 0, 0, 0, 0, 0,
6868 : 0, 0, 1355, 3327, 234, 0, 1271, 717, 0, 1272,
6869 : 1273, 1274, 778, 1275, 0, 0, 0, 0, 0, 0,
6870 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
6871 : 0, 244, 245, 246, 0, 0, 0, 0, 1276, 0,
6872 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 254,
6873 : 255, 256, 257, 258, 1277, 260, 1278, 1279, 0, 263,
6874 : 264, 265, 266, 267, 268, 269, 1280, 1281, 270, 271,
6875 : 1282, 1283, 274, 0, 275, 276, 277, 278, 1284, 0,
6876 : 1285, 0, 281, 282, 283, 284, 285, 286, 287, 288,
6877 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
6878 : 0, 298, 299, 300, 301, 1286, 1287, 1288, 1289, 1290,
6879 : 1291, 1292, 303, 304, 305, 306, 307, 308, 1293, 1294,
6880 : 311, 1295, 312, 0, 313, 314, 315, 316, 317, 318,
6881 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
6882 : 887, 327, 328, 0, 329, 330, 331, 332, 0, 333,
6883 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 1296,
6884 : 343, 344, 345, 346, 1297, 1298, 348, 0, 349, 350,
6885 : 351, 1299, 353, 0, 354, 0, 355, 356, 357, 0,
6886 : 358, 359, 360, 361, 362, 0, 363, 1300, 0, 1301,
6887 : 366, 367, 0, 368, 369, 370, 371, 372, 373, 374,
6888 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
6889 : 384, 385, 0, 386, 387, 388, 389, 390, 391, 392,
6890 : 1302, 1303, 0, 1304, 0, 396, 397, 398, 399, 400,
6891 : 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 410,
6892 : 1314, 412, 413, 414, 415, 416, 417, 418, 0, 0,
6893 : 419, 1315, 421, 422, 423, 0, 424, 425, 426, 1316,
6894 : 1317, 427, 428, 429, 430, 431, 432, 433, 434, 435,
6895 : 436, 1318, 438, 439, 440, 441, 442, 443, 444, 445,
6896 : 1319, 447, 1320, 449, 450, 451, 452, 453, 454, 455,
6897 : 456, 457, 1321, 459, 1322, 460, 461, 462, 463, 1323,
6898 : 1324, 465, 1325, 467, 468, 469, 470, 0, 471, 472,
6899 : 473, 0, 0, 1326, 475, 476, 0, 0, 477, 478,
6900 : 479, 480, 481, 482, 1327, 484, 485, 486, 487, 488,
6901 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
6902 : 498, 1328, 500, 501, 502, 503, 504, 0, 505, 506,
6903 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 1329,
6904 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
6905 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
6906 : 535, 536, 537, 538, 539, 540, 1330, 542, 543, 544,
6907 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
6908 : 554, 555, 556, 1331, 557, 558, 559, 560, 561, 562,
6909 : 563, 564, 1332, 566, 0, 567, 568, 569, 570, 571,
6910 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
6911 : 1333, 583, 0, 584, 585, 1334, 0, 586, 587, 588,
6912 : 589, 590, 591, 592, 593, 0, 594, 1335, 1336, 0,
6913 : 0, 597, 598, 1337, 600, 1338, 1339, 602, 603, 604,
6914 : 605, 606, 607, 608, 609, 610, 0, 1340, 611, 612,
6915 : 613, 614, 615, 1341, 0, 616, 617, 618, 619, 620,
6916 : 621, 1342, 0, 623, 624, 625, 626, 627, 628, 629,
6917 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
6918 : 636, 637, 1343, 1344, 1345, 1346, 642, 1347, 1348, 1349,
6919 : 1350, 647, 648, 649, 650, 0, 1351, 0, 0, 0,
6920 : 0, 0, 0, 0, 0, 0, 0, 0, 1352, 1353,
6921 : 0, 0, 0, 0, 0, 0, 0, 1355, 4743, 234,
6922 : 0, 1271, 717, 0, 1272, 1273, 1274, 778, 1275, 0,
6923 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
6924 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
6925 : 0, 0, 0, 1276, 0, 0, 247, 248, 249, 0,
6926 : 250, 251, 252, 253, 254, 255, 256, 257, 258, 1277,
6927 : 260, 1278, 1279, 0, 263, 264, 265, 266, 267, 268,
6928 : 269, 1280, 1281, 270, 271, 1282, 1283, 274, 0, 275,
6929 : 276, 277, 278, 1284, 0, 1285, 0, 281, 282, 283,
6930 : 284, 285, 286, 287, 288, 289, 290, 291, 0, 292,
6931 : 293, 294, 295, 296, 297, 0, 298, 299, 300, 301,
6932 : 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303, 304, 305,
6933 : 306, 307, 308, 1293, 1294, 311, 1295, 312, 0, 313,
6934 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
6935 : 323, 0, 0, 324, 325, 887, 327, 328, 0, 329,
6936 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
6937 : 338, 339, 340, 341, 1296, 343, 344, 345, 346, 1297,
6938 : 1298, 348, 0, 349, 350, 351, 1299, 353, 0, 354,
6939 : 0, 355, 356, 357, 0, 358, 359, 360, 361, 362,
6940 : 0, 363, 1300, 0, 1301, 366, 367, 0, 368, 369,
6941 : 370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
6942 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 387,
6943 : 388, 389, 390, 391, 392, 1302, 1303, 0, 1304, 0,
6944 : 396, 397, 398, 399, 400, 1305, 1306, 1307, 1308, 1309,
6945 : 1310, 1311, 1312, 1313, 410, 1314, 412, 413, 414, 415,
6946 : 416, 417, 418, 0, 0, 419, 1315, 421, 422, 423,
6947 : 0, 424, 425, 426, 1316, 1317, 427, 428, 429, 430,
6948 : 431, 432, 433, 434, 435, 436, 1318, 438, 439, 440,
6949 : 441, 442, 443, 444, 445, 1319, 447, 1320, 449, 450,
6950 : 451, 452, 453, 454, 455, 456, 457, 1321, 459, 1322,
6951 : 460, 461, 462, 463, 1323, 1324, 465, 1325, 467, 468,
6952 : 469, 470, 0, 471, 472, 473, 0, 0, 1326, 475,
6953 : 476, 0, 0, 477, 478, 479, 480, 481, 482, 1327,
6954 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
6955 : 494, 495, 0, 496, 497, 498, 1328, 500, 501, 502,
6956 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
6957 : 512, 513, 514, 515, 1329, 517, 518, 519, 0, 520,
6958 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
6959 : 531, 532, 0, 533, 534, 535, 536, 537, 538, 539,
6960 : 540, 1330, 542, 543, 544, 545, 546, 547, 548, 549,
6961 : 550, 551, 0, 552, 553, 554, 555, 556, 1331, 557,
6962 : 558, 559, 560, 561, 562, 563, 564, 1332, 566, 0,
6963 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
6964 : 577, 578, 579, 580, 581, 1333, 583, 0, 584, 585,
6965 : 1334, 0, 586, 587, 588, 589, 590, 591, 592, 593,
6966 : 0, 594, 1335, 1336, 0, 0, 597, 598, 1337, 600,
6967 : 1338, 1339, 602, 603, 604, 605, 606, 607, 608, 609,
6968 : 610, 0, 1340, 611, 612, 613, 614, 615, 1341, 0,
6969 : 616, 617, 618, 619, 620, 621, 1342, 0, 623, 624,
6970 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
6971 : 631, 632, 633, 634, 635, 636, 637, 1343, 1344, 1345,
6972 : 1346, 642, 1347, 1348, 1349, 1350, 647, 648, 649, 650,
6973 : 0, 1351, 0, 0, 0, 0, 0, 658, 0, 0,
6974 : 0, 0, 0, 1352, 1353, 0, 0, 0, 0, 0,
6975 : 0, 0, 1355, 4809, 235, 236, 237, 238, 239, 240,
6976 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
6977 : 0, 0, 4246, 0, 247, 248, 249, 0, 250, 251,
6978 : 252, 253, 0, 255, 256, 257, 258, 259, 0, 261,
6979 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
6980 : 0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
6981 : 278, 279, 0, 0, 0, 281, 282, 283, 284, 285,
6982 : 286, 0, 288, 289, 290, 291, 0, 292, 293, 294,
6983 : 295, 296, 297, 0, -1855, 299, 300, 301, 0, 0,
6984 : 0, 0, 0, 0, 0, 303, 304, 305, 306, 307,
6985 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
6986 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
6987 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
6988 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
6989 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
6990 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
6991 : 356, 0, 0, -1855, 359, 360, 361, 362, 0, 363,
6992 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
6993 : 372, 0, 374, 375, 376, 377, 0, 378, 379, 380,
6994 : 381, 382, 383, 384, 385, 0, 386, -1855, 388, 389,
6995 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 0,
6996 : 0, 399, -1855, 401, 402, 403, 404, 405, 406, 407,
6997 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
6998 : 418, 0, 0, 419, 420, -1855, 422, 0, 0, 424,
6999 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
7000 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
7001 : 443, 444, 445, 446, -1855, 448, 449, 450, 451, 452,
7002 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
7003 : 0, 463, 0, 464, 465, 466, 467, 468, 469, 470,
7004 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
7005 : 0, 477, 478, 479, 0, 481, 0, 483, 484, 485,
7006 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
7007 : 0, 496, 497, 498, 499, 500, 501, 502, 503, 504,
7008 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
7009 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
7010 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
7011 : 0, 533, 534, -1855, 536, 537, 538, 539, 540, 541,
7012 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
7013 : 0, 552, 553, 554, 555, 556, 0, 557, 558, 559,
7014 : 560, 561, 0, 563, 564, 565, 566, 0, 567, 568,
7015 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
7016 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
7017 : 586, 0, 588, 589, 590, 591, 592, 593, 0, 594,
7018 : 595, 596, 0, 0, 597, 598, 599, 600, 601, 0,
7019 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
7020 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
7021 : 618, 619, 620, 621, 622, 0, 623, 0, 625, 626,
7022 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
7023 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
7024 : 643, 644, 645, 646, 647, 648, 649, 650, 0, 0,
7025 : 0, 0, 0, 0, 0, 879, 0, 0, 0, 0,
7026 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7027 : 0, 1467, 235, 236, 237, 238, 239, 240, 241, 242,
7028 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 0,
7029 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
7030 : 254, 255, 256, 257, 0, 880, 260, 881, 882, 0,
7031 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
7032 : 271, 883, 884, 274, 0, 275, 276, 277, 278, 0,
7033 : 0, 280, 0, 281, 282, 283, 284, 285, 286, 287,
7034 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
7035 : 297, 0, 298, 299, 300, 301, 0, 0, 0, 302,
7036 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 885,
7037 : 886, 311, 0, 312, 0, 313, 314, 315, 316, 317,
7038 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
7039 : 325, 887, 327, 328, 0, 329, 330, 331, 332, 0,
7040 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
7041 : 0, 343, 344, 345, 346, 0, 0, 348, 0, 349,
7042 : 350, 351, 888, 353, 0, 354, 0, 355, 356, 357,
7043 : 0, 358, 359, 360, 361, 362, 0, 363, 0, 0,
7044 : 0, 366, 367, 0, 368, 369, 370, 371, 372, 373,
7045 : 374, 375, 376, 377, 2731, 378, 379, 380, 381, 382,
7046 : 383, 384, 385, 0, 386, 387, 2732, 389, 390, 391,
7047 : 392, 889, 890, 0, 891, 0, 396, 397, 398, 399,
7048 : 400, 892, 0, 0, 0, 0, 0, 0, 0, 0,
7049 : 0, 0, 412, 413, 414, 415, 416, 417, 418, 0,
7050 : 0, 419, 0, 421, 422, 423, 0, 424, 425, 426,
7051 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
7052 : 435, 436, 0, 438, 439, 440, 441, 442, 443, 444,
7053 : 445, 893, 447, 894, 449, 450, 451, 452, 453, 454,
7054 : 455, 456, 0, 0, 459, 0, 460, 461, 462, 463,
7055 : 0, 0, 465, 895, 467, 468, 469, 470, 0, 471,
7056 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
7057 : 478, 2734, 480, 481, 482, 0, 484, 485, 486, 487,
7058 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
7059 : 497, 498, 0, 500, 0, 502, 503, 504, 0, 505,
7060 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
7061 : 896, 517, 518, 519, 0, 520, 521, 522, 523, 524,
7062 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
7063 : 534, 535, 536, 537, 538, 539, 540, 0, 542, 543,
7064 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
7065 : 553, 554, 555, 556, 0, 557, 558, 2735, 560, 561,
7066 : 562, 563, 564, 898, 566, 0, 567, 568, 569, 570,
7067 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
7068 : 581, 0, 583, 0, 584, 585, 0, 0, 586, 587,
7069 : 588, 589, 590, 591, 592, 593, 0, 594, 899, 900,
7070 : 0, 0, 597, 598, 0, 600, 0, 0, 602, 603,
7071 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
7072 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
7073 : 620, 0, 901, 2736, 623, 624, 625, 626, 627, 628,
7074 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
7075 : 635, 636, 0, 879, 0, 0, 0, 0, 0, 0,
7076 : 0, 0, 0, 648, 649, 650, 0, 0, 0, 0,
7077 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
7078 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 2829,
7079 : 247, 248, 249, 0, 250, 251, 252, 253, 254, 255,
7080 : 256, 257, 0, 880, 260, 881, 882, 0, 263, 264,
7081 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 883,
7082 : 884, 274, 0, 275, 276, 277, 278, 0, 0, 280,
7083 : 0, 281, 282, 283, 284, 285, 286, 287, 288, 289,
7084 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
7085 : 298, 299, 300, 301, 0, 0, 0, 302, 0, 0,
7086 : 0, 303, 304, 305, 306, 307, 308, 885, 886, 311,
7087 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
7088 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 887,
7089 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
7090 : 335, 336, 337, 0, 338, 339, 340, 341, 0, 343,
7091 : 344, 345, 346, 0, 0, 348, 0, 349, 350, 351,
7092 : 888, 353, 0, 354, 0, 355, 356, 357, 0, 358,
7093 : 359, 360, 361, 362, 0, 363, 0, 0, 0, 366,
7094 : 367, 0, 368, 369, 370, 371, 372, 373, 374, 375,
7095 : 376, 377, 2731, 378, 379, 380, 381, 382, 383, 384,
7096 : 385, 0, 386, 387, 2732, 389, 390, 391, 392, 889,
7097 : 890, 0, 891, 0, 396, 397, 398, 399, 400, 892,
7098 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7099 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
7100 : 0, 421, 422, 423, 0, 424, 425, 426, 0, 0,
7101 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
7102 : 0, 438, 439, 440, 441, 442, 443, 444, 445, 893,
7103 : 447, 894, 449, 450, 451, 452, 453, 454, 455, 456,
7104 : 0, 0, 459, 0, 460, 461, 462, 463, 0, 0,
7105 : 465, 895, 467, 468, 469, 470, 0, 471, 472, 473,
7106 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 2734,
7107 : 480, 481, 482, 0, 484, 485, 486, 487, 488, 489,
7108 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
7109 : 0, 500, 0, 502, 503, 504, 0, 505, 506, 507,
7110 : 508, 509, 510, 511, 512, 513, 514, 515, 896, 517,
7111 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
7112 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 535,
7113 : 536, 537, 538, 539, 540, 0, 542, 543, 544, 545,
7114 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
7115 : 555, 556, 0, 557, 558, 2735, 560, 561, 562, 563,
7116 : 564, 898, 566, 0, 567, 568, 569, 570, 571, 572,
7117 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 0,
7118 : 583, 0, 584, 585, 0, 0, 586, 587, 588, 589,
7119 : 590, 591, 592, 593, 0, 594, 899, 900, 0, 0,
7120 : 597, 598, 0, 600, 0, 0, 602, 603, 604, 605,
7121 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
7122 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 0,
7123 : 901, 2736, 623, 624, 625, 626, 627, 628, 629, 0,
7124 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
7125 : 0, 234, 0, 1271, 717, 0, 1272, 1273, 1274, 778,
7126 : 1275, 648, 649, 650, 0, 0, 0, 0, 235, 236,
7127 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
7128 : 246, 0, 0, 0, 0, 1276, 0, 3962, 247, 248,
7129 : 249, 0, 250, 251, 252, 253, 254, 255, 256, 257,
7130 : 258, 1277, 260, 1278, 1279, 0, 263, 264, 265, 266,
7131 : 267, 268, 269, 1280, 1281, 270, 271, 1282, 1283, 274,
7132 : 0, 275, 276, 277, 278, 1284, 0, 1285, 0, 281,
7133 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
7134 : 0, 292, 293, 294, 295, 296, 297, 0, 298, 299,
7135 : 300, 301, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303,
7136 : 304, 305, 306, 307, 308, 1293, 1294, 311, 1295, 312,
7137 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
7138 : 321, 322, 323, 0, 0, 324, 325, 887, 327, 328,
7139 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
7140 : 337, 0, 338, 339, 340, 341, 1296, 343, 344, 345,
7141 : 346, 1297, 1298, 348, 0, 349, 350, 351, 1299, 353,
7142 : 0, 354, 0, 355, 356, 357, 0, 358, 359, 360,
7143 : 361, 362, 0, 363, 1300, 0, 1301, 366, 367, 0,
7144 : 368, 369, 370, 371, 372, 373, 374, 375, 376, 377,
7145 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
7146 : 386, 387, 388, 389, 390, 391, 392, 1302, 1303, 0,
7147 : 1304, 0, 396, 397, 398, 399, 400, 1305, 1306, 1307,
7148 : 1308, 1309, 1310, 1311, 1312, 1313, 410, 1314, 412, 413,
7149 : 414, 415, 416, 417, 418, 0, 0, 419, 1315, 421,
7150 : 422, 423, 0, 424, 425, 426, 1316, 1317, 427, 428,
7151 : 429, 430, 431, 432, 433, 434, 435, 436, 1318, 438,
7152 : 439, 440, 441, 442, 443, 444, 445, 1319, 447, 1320,
7153 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 1321,
7154 : 459, 1322, 460, 461, 462, 463, 1323, 1324, 465, 1325,
7155 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
7156 : 1326, 475, 476, 0, 0, 477, 478, 479, 480, 481,
7157 : 482, 1327, 484, 485, 486, 487, 488, 489, 490, 491,
7158 : 492, 493, 494, 495, 0, 496, 497, 498, 1328, 500,
7159 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
7160 : 510, 511, 512, 513, 514, 515, 1329, 517, 518, 519,
7161 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
7162 : 529, 530, 531, 532, 3288, 533, 534, 535, 536, 537,
7163 : 538, 539, 540, 1330, 542, 543, 544, 545, 546, 547,
7164 : 548, 549, 550, 551, 40, 552, 553, 554, 555, 556,
7165 : 1331, 557, 558, 559, 560, 561, 562, 563, 564, 1332,
7166 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
7167 : 575, 576, 577, 578, 579, 580, 581, 1333, 583, 0,
7168 : 584, 585, 1334, 44, 586, 587, 588, 589, 590, 591,
7169 : 592, 593, 0, 594, 1335, 1336, 0, 0, 597, 598,
7170 : 1337, 600, 1338, 1339, 602, 603, 604, 605, 606, 607,
7171 : 608, 609, 610, 0, 1340, 611, 612, 613, 614, 615,
7172 : 1341, 0, 616, 617, 618, 619, 620, 1206, 1342, 0,
7173 : 623, 624, 625, 626, 627, 628, 629, 0, 0, 630,
7174 : 0, 49, 631, 632, 633, 634, 635, 636, 637, 1343,
7175 : 1344, 1345, 1346, 642, 1347, 1348, 1349, 1350, 647, 648,
7176 : 649, 650, 0, 1351, 0, 50, 0, 0, 0, 0,
7177 : 0, 0, 0, 0, 0, 1352, 1353, 0, 0, 0,
7178 : 234, 0, 1271, 717, 1355, 1272, 1273, 1274, 778, 1275,
7179 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
7180 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
7181 : 0, 0, 0, 0, 1276, 0, 0, 247, 248, 249,
7182 : 0, 250, 251, 252, 253, 254, 255, 256, 257, 258,
7183 : 1277, 260, 1278, 1279, 0, 263, 264, 265, 266, 267,
7184 : 268, 269, 1280, 1281, 270, 271, 1282, 1283, 274, 0,
7185 : 275, 276, 277, 278, 1284, 0, 1285, 0, 281, 282,
7186 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 0,
7187 : 292, 293, 294, 295, 296, 297, 0, 298, 299, 300,
7188 : 301, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303, 304,
7189 : 305, 306, 307, 308, 1293, 1294, 311, 1295, 312, 0,
7190 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
7191 : 322, 323, 0, 0, 324, 325, 887, 327, 328, 0,
7192 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
7193 : 0, 338, 339, 340, 341, 1296, 343, 344, 345, 346,
7194 : 1297, 1298, 348, 0, 349, 350, 351, 1299, 353, 0,
7195 : 354, 0, 355, 356, 357, 0, 358, 359, 360, 361,
7196 : 362, 0, 363, 1300, 0, 1301, 366, 367, 0, 368,
7197 : 369, 370, 371, 372, 373, 374, 375, 376, 377, 0,
7198 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
7199 : 387, 388, 389, 390, 391, 392, 1302, 1303, 0, 1304,
7200 : 0, 396, 397, 398, 399, 400, 1305, 1306, 1307, 1308,
7201 : 1309, 1310, 1311, 1312, 1313, 410, 1314, 412, 413, 414,
7202 : 415, 416, 417, 418, 0, 0, 419, 1315, 421, 422,
7203 : 423, 0, 424, 425, 426, 1316, 1317, 427, 428, 429,
7204 : 430, 431, 432, 433, 434, 435, 436, 1318, 438, 439,
7205 : 440, 441, 442, 443, 444, 445, 1319, 447, 1320, 449,
7206 : 450, 451, 452, 453, 454, 455, 456, 457, 1321, 459,
7207 : 1322, 460, 461, 462, 463, 1323, 1324, 465, 1325, 467,
7208 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 1326,
7209 : 475, 476, 0, 0, 477, 478, 479, 480, 481, 482,
7210 : 1327, 484, 485, 486, 487, 488, 489, 490, 491, 492,
7211 : 493, 494, 495, 0, 496, 497, 498, 1328, 500, 501,
7212 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
7213 : 511, 512, 513, 514, 515, 1329, 517, 518, 519, 0,
7214 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
7215 : 530, 531, 532, 0, 533, 534, 535, 536, 537, 538,
7216 : 539, 540, 1330, 542, 543, 544, 545, 546, 547, 548,
7217 : 549, 550, 551, 40, 552, 553, 554, 555, 556, 1331,
7218 : 557, 558, 559, 560, 561, 562, 563, 564, 1332, 566,
7219 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
7220 : 576, 577, 578, 579, 580, 581, 1333, 583, 0, 584,
7221 : 585, 1334, 44, 586, 587, 588, 589, 590, 591, 592,
7222 : 593, 0, 594, 1335, 1336, 0, 0, 597, 598, 1337,
7223 : 600, 1338, 1339, 602, 603, 604, 605, 606, 607, 608,
7224 : 609, 610, 0, 1340, 611, 612, 613, 614, 615, 1341,
7225 : 0, 616, 617, 618, 619, 620, 1206, 1342, 0, 623,
7226 : 624, 625, 626, 627, 628, 629, 0, 0, 630, 0,
7227 : 49, 631, 632, 633, 634, 635, 636, 637, 1343, 1344,
7228 : 1345, 1346, 642, 1347, 1348, 1349, 1350, 647, 648, 649,
7229 : 650, 0, 1351, 0, 50, 0, 0, 0, 0, 0,
7230 : 0, 0, 0, 0, 1352, 1353, 0, 0, 0, 234,
7231 : 0, 1271, 717, 1355, 1272, 1273, 1274, 778, 1275, 0,
7232 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
7233 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
7234 : 0, 0, 0, 1276, 0, 0, 247, 248, 249, 0,
7235 : 250, 251, 252, 253, 254, 255, 256, 257, 258, 1277,
7236 : 260, 1278, 1279, 3333, 263, 264, 265, 266, 267, 268,
7237 : 269, 1280, 1281, 270, 271, 1282, 1283, 274, 0, 275,
7238 : 276, 277, 278, 1284, 0, 1285, 0, 281, 282, 283,
7239 : 284, 285, 286, 287, 288, 289, 290, 291, 0, 292,
7240 : 293, 294, 295, 296, 297, 0, 298, 299, 300, 301,
7241 : 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303, 304, 305,
7242 : 306, 307, 308, 1293, 1294, 311, 1295, 312, 0, 313,
7243 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
7244 : 323, 0, 0, 324, 325, 887, 327, 328, 0, 329,
7245 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
7246 : 338, 339, 340, 341, 1296, 343, 344, 345, 346, 1297,
7247 : 1298, 348, 0, 349, 350, 351, 1299, 353, 0, 354,
7248 : 0, 355, 356, 357, 3334, 358, 359, 360, 361, 362,
7249 : 0, 363, 1300, 0, 1301, 366, 367, 0, 368, 369,
7250 : 370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
7251 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 387,
7252 : 388, 389, 390, 391, 392, 1302, 1303, 0, 1304, 0,
7253 : 396, 397, 398, 399, 400, 1305, 1306, 1307, 1308, 1309,
7254 : 1310, 1311, 1312, 1313, 410, 1314, 412, 413, 414, 415,
7255 : 416, 417, 418, 0, 3335, 419, 1315, 421, 422, 423,
7256 : 0, 424, 425, 426, 1316, 1317, 427, 428, 429, 430,
7257 : 431, 432, 433, 434, 435, 436, 1318, 438, 439, 440,
7258 : 441, 442, 443, 444, 445, 1319, 447, 1320, 449, 450,
7259 : 451, 452, 453, 454, 455, 456, 457, 1321, 459, 1322,
7260 : 460, 461, 462, 463, 1323, 1324, 465, 1325, 467, 468,
7261 : 469, 470, 0, 471, 472, 473, 0, 0, 1326, 475,
7262 : 476, 0, 0, 477, 478, 479, 480, 481, 482, 1327,
7263 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
7264 : 494, 495, 0, 496, 497, 498, 1328, 500, 501, 502,
7265 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
7266 : 512, 513, 514, 515, 1329, 517, 518, 519, 0, 520,
7267 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
7268 : 531, 532, 0, 533, 534, 535, 536, 537, 538, 539,
7269 : 540, 1330, 542, 543, 544, 545, 546, 547, 548, 549,
7270 : 550, 551, 0, 552, 553, 554, 555, 556, 1331, 557,
7271 : 558, 559, 560, 561, 562, 563, 564, 1332, 566, 0,
7272 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
7273 : 577, 578, 579, 580, 581, 1333, 583, 0, 584, 585,
7274 : 1334, 0, 586, 587, 588, 589, 590, 591, 592, 593,
7275 : 0, 594, 1335, 1336, 0, 3336, 597, 598, 1337, 600,
7276 : 1338, 1339, 602, 603, 604, 605, 606, 607, 608, 609,
7277 : 610, 0, 1340, 611, 612, 613, 614, 615, 1341, 0,
7278 : 616, 617, 618, 619, 620, 621, 1342, 0, 623, 624,
7279 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
7280 : 631, 632, 633, 634, 635, 636, 637, 1343, 1344, 1345,
7281 : 1346, 642, 1347, 1348, 1349, 1350, 647, 648, 649, 650,
7282 : 0, 1351, 0, 0, 0, 0, 0, 0, 0, 0,
7283 : 0, 0, 0, 1352, 1353, 0, 0, 0, 234, 0,
7284 : 1271, 717, 1355, 1272, 1273, 1274, 778, 1275, 0, 0,
7285 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
7286 : 240, 241, 242, 243, -2286, 244, 245, 246, 0, 0,
7287 : 0, -2286, 1276, 0, 0, 247, 248, 249, 0, 250,
7288 : 251, 252, 253, 254, 255, 256, 257, 258, 1277, 260,
7289 : 1278, 1279, 0, 263, 264, 265, 266, 267, 268, 269,
7290 : 1280, 1281, 270, 271, 1282, 1283, 274, 0, 275, 276,
7291 : 277, 278, 1284, 0, 1285, 0, 281, 282, 283, 284,
7292 : 285, 286, 287, 288, 289, 290, 291, 0, 292, 293,
7293 : 294, 295, 296, 297, 0, 298, 299, 300, 301, 1286,
7294 : 1287, 1288, 1289, 1290, 1291, 1292, 303, 304, 305, 306,
7295 : 307, 308, 1293, 1294, 311, 1295, 312, 0, 313, 314,
7296 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
7297 : 0, 0, 324, 325, 887, 327, 328, 0, 329, 330,
7298 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
7299 : 339, 340, 341, 1296, 343, 344, 345, 346, 1297, 1298,
7300 : 348, 0, 349, 350, 351, 1299, 353, 0, 354, 0,
7301 : 355, 356, 357, 0, 358, 359, 360, 361, 362, 0,
7302 : 363, 1300, 0, 1301, 366, 367, 0, 368, 369, 370,
7303 : 371, 372, 373, 374, 375, 376, 377, 0, 378, 379,
7304 : 380, 381, 382, 383, 384, 385, 0, 386, 387, 388,
7305 : 389, 390, 391, 392, 1302, 1303, 0, 1304, 0, 396,
7306 : 397, 398, 399, 400, 1305, 1306, 1307, 1308, 1309, 1310,
7307 : 1311, 1312, 1313, 410, 1314, 412, 413, 414, 415, 416,
7308 : 417, 418, 0, 0, 419, 1315, 421, 422, 423, 0,
7309 : 424, 425, 426, 1316, 1317, 427, 428, 429, 430, 431,
7310 : 432, 433, 434, 435, 436, 1318, 438, 439, 440, 441,
7311 : 442, 443, 444, 445, 1319, 447, 1320, 449, 450, 451,
7312 : 452, 453, 454, 455, 456, 457, 1321, 459, 1322, 460,
7313 : 461, 462, 463, 1323, 1324, 465, 1325, 467, 468, 469,
7314 : 470, 0, 471, 472, 473, 0, 0, 1326, 475, 476,
7315 : 0, 0, 477, 478, 479, 480, 481, 482, 1327, 484,
7316 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
7317 : 495, 0, 496, 497, 498, 1328, 500, 501, 502, 503,
7318 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
7319 : 513, 514, 515, 1329, 517, 518, 519, 0, 520, 521,
7320 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
7321 : 532, 0, 533, 534, 535, 536, 537, 538, 539, 540,
7322 : 1330, 542, 543, 544, 545, 546, 547, 548, 549, 550,
7323 : 551, 0, 552, 553, 554, 555, 556, 1331, 557, 558,
7324 : 559, 560, 561, 562, 563, 564, 1332, 566, -2286, 567,
7325 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
7326 : 578, 579, 580, 581, 1333, 583, 0, 584, 585, 1334,
7327 : 0, 586, 587, 588, 589, 590, 591, 592, 593, 0,
7328 : 594, 1335, 1336, 0, 0, 597, 598, 1337, 600, 1338,
7329 : 1339, 602, 603, 604, 605, 606, 607, 608, 609, 610,
7330 : 0, 1340, 611, 612, 613, 614, 615, 1341, 0, 616,
7331 : 617, 618, 619, 620, 621, 1342, 0, 623, 624, 625,
7332 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
7333 : 632, 633, 634, 635, 636, 637, 1343, 1344, 1345, 1346,
7334 : 642, 1347, 1348, 1349, 1350, 647, 648, 649, 650, 0,
7335 : 1351, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7336 : 0, 0, 1352, 1353, 0, 0, 0, 234, 0, 1271,
7337 : 717, 1355, 1272, 1273, 1274, 778, 1275, 0, 0, 0,
7338 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
7339 : 241, 242, 243, -2284, 244, 245, 246, 0, 0, 0,
7340 : -2284, 1276, 0, 0, 247, 248, 249, 0, 250, 251,
7341 : 252, 253, 254, 255, 256, 257, 258, 1277, 260, 1278,
7342 : 1279, 0, 263, 264, 265, 266, 267, 268, 269, 1280,
7343 : 1281, 270, 271, 1282, 1283, 274, 0, 275, 276, 277,
7344 : 278, 1284, 0, 1285, 0, 281, 282, 283, 284, 285,
7345 : 286, 287, 288, 289, 290, 291, 0, 292, 293, 294,
7346 : 295, 296, 297, 0, 298, 299, 300, 301, 1286, 1287,
7347 : 1288, 1289, 1290, 1291, 1292, 303, 304, 305, 306, 307,
7348 : 308, 1293, 1294, 311, 1295, 312, 0, 313, 314, 315,
7349 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
7350 : 0, 324, 325, 887, 327, 328, 0, 329, 330, 331,
7351 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
7352 : 340, 341, 1296, 343, 344, 345, 346, 1297, 1298, 348,
7353 : 0, 349, 350, 351, 1299, 353, 0, 354, 0, 355,
7354 : 356, 357, 0, 358, 359, 360, 361, 362, 0, 363,
7355 : 1300, 0, 1301, 366, 367, 0, 368, 369, 370, 371,
7356 : 372, 373, 374, 375, 376, 377, 0, 378, 379, 380,
7357 : 381, 382, 383, 384, 385, 0, 386, 387, 388, 389,
7358 : 390, 391, 392, 1302, 1303, 0, 1304, 0, 396, 397,
7359 : 398, 399, 400, 1305, 1306, 1307, 1308, 1309, 1310, 1311,
7360 : 1312, 1313, 410, 1314, 412, 413, 414, 415, 416, 417,
7361 : 418, 0, 0, 419, 1315, 421, 422, 423, 0, 424,
7362 : 425, 426, 1316, 1317, 427, 428, 429, 430, 431, 432,
7363 : 433, 434, 435, 436, 1318, 438, 439, 440, 441, 442,
7364 : 443, 444, 445, 1319, 447, 1320, 449, 450, 451, 452,
7365 : 453, 454, 455, 456, 457, 1321, 459, 1322, 460, 461,
7366 : 462, 463, 1323, 1324, 465, 1325, 467, 468, 469, 470,
7367 : 0, 471, 472, 473, 0, 0, 1326, 475, 476, 0,
7368 : 0, 477, 478, 479, 480, 481, 482, 1327, 484, 485,
7369 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
7370 : 0, 496, 497, 498, 1328, 500, 501, 502, 503, 504,
7371 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
7372 : 514, 515, 1329, 517, 518, 519, 0, 520, 521, 522,
7373 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
7374 : 0, 533, 534, 535, 536, 537, 538, 539, 540, 1330,
7375 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
7376 : 0, 552, 553, 554, 555, 556, 1331, 557, 558, 559,
7377 : 560, 561, 562, 563, 564, 1332, 566, -2284, 567, 568,
7378 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
7379 : 579, 580, 581, 1333, 583, 0, 584, 585, 1334, 0,
7380 : 586, 587, 588, 589, 590, 591, 592, 593, 0, 594,
7381 : 1335, 1336, 0, 0, 597, 598, 1337, 600, 1338, 1339,
7382 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
7383 : 1340, 611, 612, 613, 614, 615, 1341, 0, 616, 617,
7384 : 618, 619, 620, 621, 1342, 0, 623, 624, 625, 626,
7385 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
7386 : 633, 634, 635, 636, 637, 1343, 1344, 1345, 1346, 642,
7387 : 1347, 1348, 1349, 1350, 647, 648, 649, 650, 0, 1351,
7388 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7389 : 0, 1352, 1353, 0, 0, 0, 234, 0, 1271, 717,
7390 : 1355, 1272, 1273, 1274, 778, 1275, 0, 0, 0, 0,
7391 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
7392 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
7393 : 1276, 0, 0, 247, 248, 249, 0, 250, 251, 252,
7394 : 253, 254, 255, 256, 257, 258, 1277, 260, 1278, 1279,
7395 : 0, 263, 264, 265, 266, 267, 268, 269, 1280, 1281,
7396 : 270, 271, 1282, 1283, 274, 0, 275, 276, 277, 278,
7397 : 1284, 0, 1285, 0, 281, 282, 283, 284, 285, 286,
7398 : 287, 288, 289, 290, 291, 0, 292, 293, 294, 295,
7399 : 296, 297, 0, 298, 299, 300, 301, 1286, 1287, 1288,
7400 : 1289, 1290, 1291, 1292, 303, 304, 305, 306, 307, 308,
7401 : 1293, 1294, 311, 1295, 312, 0, 313, 314, 315, 316,
7402 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
7403 : 324, 325, 887, 327, 328, 0, 329, 330, 331, 332,
7404 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
7405 : 341, 1296, 343, 344, 345, 346, 1297, 1298, 348, 0,
7406 : 349, 350, 351, 1299, 353, 0, 354, 0, 355, 356,
7407 : 357, 0, 358, 359, 360, 361, 362, 0, 363, 1300,
7408 : 0, 1301, 366, 367, 0, 368, 369, 370, 371, 372,
7409 : 373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
7410 : 382, 383, 384, 385, 0, 386, 387, 388, 389, 390,
7411 : 391, 392, 1302, 1303, 0, 1304, 0, 396, 397, 398,
7412 : 399, 400, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312,
7413 : 1313, 410, 1314, 412, 413, 414, 415, 416, 417, 418,
7414 : 0, 0, 419, 1315, 421, 422, 423, 0, 424, 425,
7415 : 426, 1316, 1317, 427, 428, 429, 430, 431, 432, 433,
7416 : 434, 435, 436, 1318, 438, 439, 440, 441, 442, 443,
7417 : 444, 445, 1319, 447, 1320, 449, 450, 451, 452, 453,
7418 : 454, 455, 456, 457, 1321, 459, 1322, 460, 461, 462,
7419 : 463, 1323, 1324, 465, 1325, 467, 468, 469, 470, 0,
7420 : 471, 472, 473, 0, 0, 1326, 475, 476, 0, 0,
7421 : 477, 478, 479, 480, 481, 482, 1327, 484, 485, 486,
7422 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
7423 : 496, 497, 498, 1328, 500, 501, 502, 503, 504, 0,
7424 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
7425 : 515, 1329, 517, 518, 519, 0, 520, 521, 522, 523,
7426 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
7427 : 533, 534, 535, 536, 537, 538, 539, 540, 1330, 542,
7428 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
7429 : 552, 553, 554, 555, 556, 1331, 557, 558, 559, 560,
7430 : 561, 562, 563, 564, 1332, 566, 0, 567, 568, 569,
7431 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
7432 : 580, 581, 1333, 583, 0, 584, 585, 1334, 0, 586,
7433 : 587, 588, 589, 590, 591, 592, 593, 0, 594, 1335,
7434 : 1336, 0, 0, 597, 598, 1337, 600, 1338, 1339, 602,
7435 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 1340,
7436 : 611, 612, 613, 614, 615, 1341, 0, 616, 617, 618,
7437 : 619, 620, 621, 1342, 0, 623, 624, 625, 626, 627,
7438 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
7439 : 634, 635, 636, 637, 1343, 1344, 1345, 1346, 642, 1347,
7440 : 1348, 1349, 1350, 647, 648, 649, 650, 0, 1351, 0,
7441 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7442 : 1352, 1353, 0, 0, 0, 0, 0, 2052, 3262, 1355,
7443 : 234, 0, 1271, 717, 0, 1272, 1273, 1274, 778, 1275,
7444 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
7445 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
7446 : 0, 0, 0, 0, 1276, 0, 0, 247, 248, 249,
7447 : 0, 250, 251, 252, 253, 254, 255, 256, 257, 258,
7448 : 1277, 260, 1278, 1279, 0, 263, 264, 265, 266, 267,
7449 : 268, 269, 1280, 1281, 270, 271, 1282, 1283, 274, 0,
7450 : 275, 276, 277, 278, 1284, 0, 1285, 0, 281, 282,
7451 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 0,
7452 : 292, 293, 294, 295, 296, 297, 0, 298, 299, 300,
7453 : 301, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303, 304,
7454 : 305, 306, 307, 308, 1293, 1294, 311, 1295, 312, 0,
7455 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
7456 : 322, 323, 0, 0, 324, 325, 887, 327, 328, 0,
7457 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
7458 : 0, 338, 339, 340, 341, 1296, 343, 344, 345, 346,
7459 : 1297, 1298, 348, 0, 349, 350, 351, 1299, 353, 0,
7460 : 354, 0, 355, 356, 357, 0, 358, 359, 360, 361,
7461 : 362, 0, 363, 1300, 0, 1301, 366, 367, 0, 368,
7462 : 369, 370, 371, 372, 373, 374, 375, 376, 377, 0,
7463 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
7464 : 387, 388, 389, 390, 391, 392, 1302, 1303, 0, 1304,
7465 : 0, 396, 397, 398, 399, 400, 1305, 1306, 1307, 1308,
7466 : 1309, 1310, 1311, 1312, 1313, 410, 1314, 412, 413, 414,
7467 : 415, 416, 417, 418, 0, 0, 419, 1315, 421, 422,
7468 : 423, 0, 424, 425, 426, 1316, 1317, 427, 428, 429,
7469 : 430, 431, 432, 433, 434, 435, 436, 1318, 438, 439,
7470 : 440, 441, 442, 443, 444, 445, 1319, 447, 1320, 449,
7471 : 450, 451, 452, 453, 454, 455, 456, 457, 1321, 459,
7472 : 1322, 460, 461, 462, 463, 1323, 1324, 465, 1325, 467,
7473 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 1326,
7474 : 475, 476, 0, 0, 477, 478, 479, 480, 481, 482,
7475 : 1327, 484, 485, 486, 487, 488, 489, 490, 491, 492,
7476 : 493, 494, 495, 0, 496, 497, 498, 1328, 500, 501,
7477 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
7478 : 511, 512, 513, 514, 515, 1329, 517, 518, 519, 0,
7479 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
7480 : 530, 531, 532, 0, 533, 534, 535, 536, 537, 538,
7481 : 539, 540, 1330, 542, 543, 544, 545, 546, 547, 548,
7482 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 1331,
7483 : 557, 558, 559, 560, 561, 562, 563, 564, 1332, 566,
7484 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
7485 : 576, 577, 578, 579, 580, 581, 1333, 583, 0, 584,
7486 : 585, 1334, 0, 586, 587, 588, 589, 590, 591, 592,
7487 : 593, 0, 594, 1335, 1336, 0, 0, 597, 598, 1337,
7488 : 600, 1338, 1339, 602, 603, 604, 605, 606, 607, 608,
7489 : 609, 610, 0, 1340, 611, 612, 613, 614, 615, 1341,
7490 : 0, 616, 617, 618, 619, 620, 621, 1342, 0, 623,
7491 : 624, 625, 626, 627, 628, 629, 0, 0, 630, 0,
7492 : 0, 631, 632, 633, 634, 635, 636, 637, 1343, 1344,
7493 : 1345, 1346, 642, 1347, 1348, 1349, 1350, 647, 648, 649,
7494 : 650, 0, 1351, 0, 0, 0, 0, 0, 0, 0,
7495 : 0, 0, 0, 0, 1352, 1353, 1354, 0, 0, 234,
7496 : 0, 1271, 717, 1355, 1272, 1273, 1274, 778, 1275, 0,
7497 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
7498 : 239, 240, 241, 242, 243, 2698, 244, 245, 246, 0,
7499 : 0, 0, 0, 1276, 0, 0, 247, 248, 249, 0,
7500 : 250, 251, 252, 253, 254, 255, 256, 257, 258, 1277,
7501 : 260, 1278, 1279, 0, 263, 264, 265, 266, 267, 268,
7502 : 269, 1280, 1281, 270, 271, 1282, 1283, 274, 0, 275,
7503 : 276, 277, 278, 1284, 0, 1285, 0, 281, 282, 283,
7504 : 284, 285, 286, 287, 288, 289, 290, 291, 0, 292,
7505 : 293, 294, 295, 296, 297, 0, 298, 299, 300, 301,
7506 : 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303, 304, 305,
7507 : 306, 307, 308, 1293, 1294, 311, 1295, 312, 0, 313,
7508 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
7509 : 323, 0, 0, 324, 325, 887, 327, 328, 0, 329,
7510 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
7511 : 338, 339, 340, 341, 1296, 343, 344, 345, 346, 1297,
7512 : 1298, 348, 0, 349, 350, 351, 1299, 353, 0, 354,
7513 : 0, 355, 356, 357, 0, 358, 359, 360, 361, 362,
7514 : 0, 363, 1300, 0, 1301, 366, 367, 0, 368, 369,
7515 : 370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
7516 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 387,
7517 : 388, 389, 390, 391, 392, 1302, 1303, 0, 1304, 0,
7518 : 396, 397, 398, 399, 400, 1305, 1306, 1307, 1308, 1309,
7519 : 1310, 1311, 1312, 1313, 410, 1314, 412, 413, 414, 415,
7520 : 416, 417, 418, 0, 0, 419, 1315, 421, 422, 423,
7521 : 0, 424, 425, 426, 1316, 1317, 427, 428, 429, 430,
7522 : 431, 432, 433, 434, 435, 436, 1318, 438, 439, 440,
7523 : 441, 442, 443, 444, 445, 1319, 447, 1320, 449, 450,
7524 : 451, 452, 453, 454, 455, 456, 457, 1321, 459, 1322,
7525 : 460, 461, 462, 463, 1323, 1324, 465, 1325, 467, 468,
7526 : 469, 470, 0, 471, 472, 473, 0, 0, 1326, 475,
7527 : 476, 0, 0, 477, 478, 479, 480, 481, 482, 1327,
7528 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
7529 : 494, 495, 0, 496, 497, 498, 1328, 500, 501, 502,
7530 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
7531 : 512, 513, 514, 515, 1329, 517, 518, 519, 0, 520,
7532 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
7533 : 531, 532, 0, 533, 534, 535, 536, 537, 538, 539,
7534 : 540, 1330, 542, 543, 544, 545, 546, 547, 548, 549,
7535 : 550, 551, 0, 552, 553, 554, 555, 556, 1331, 557,
7536 : 558, 559, 560, 561, 562, 563, 564, 1332, 566, 0,
7537 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
7538 : 577, 578, 579, 580, 581, 1333, 583, 0, 584, 585,
7539 : 1334, 0, 586, 587, 588, 589, 590, 591, 592, 593,
7540 : 0, 594, 1335, 1336, 0, 0, 597, 598, 1337, 600,
7541 : 1338, 1339, 602, 603, 604, 605, 606, 607, 608, 609,
7542 : 610, 0, 1340, 611, 612, 613, 614, 615, 1341, 0,
7543 : 616, 617, 618, 619, 620, 621, 1342, 0, 623, 624,
7544 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
7545 : 631, 632, 633, 634, 635, 636, 637, 1343, 1344, 1345,
7546 : 1346, 642, 1347, 1348, 1349, 1350, 647, 648, 649, 650,
7547 : 0, 1351, 0, 0, 0, 0, 0, 0, 0, 0,
7548 : 0, 0, 0, 1352, 1353, 0, 0, 0, 234, 0,
7549 : 1271, 717, 1355, 1272, 1273, 1274, 778, 1275, 0, 0,
7550 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
7551 : 240, 241, 242, 243, 0, 244, 245, 246, 0, 0,
7552 : 0, 0, 1276, 0, 0, 247, 248, 249, 0, 250,
7553 : 251, 252, 253, 254, 255, 256, 257, 258, 1277, 260,
7554 : 1278, 1279, 0, 263, 264, 265, 266, 267, 268, 269,
7555 : 1280, 1281, 270, 271, 1282, 1283, 274, 0, 275, 276,
7556 : 277, 278, 1284, 0, 1285, 0, 281, 282, 283, 284,
7557 : 285, 286, 287, 288, 289, 290, 291, 0, 292, 293,
7558 : 294, 295, 296, 297, 0, 298, 299, 300, 301, 1286,
7559 : 1287, 1288, 1289, 1290, 1291, 1292, 303, 304, 305, 306,
7560 : 307, 308, 1293, 1294, 311, 1295, 312, 0, 313, 314,
7561 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
7562 : 0, 0, 324, 325, 887, 327, 328, 0, 329, 330,
7563 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
7564 : 339, 340, 341, 1296, 343, 344, 345, 346, 1297, 1298,
7565 : 348, 0, 349, 350, 351, 1299, 353, 0, 354, 0,
7566 : 355, 356, 357, 0, 358, 359, 360, 361, 362, 0,
7567 : 363, 1300, 0, 1301, 366, 367, 0, 368, 369, 370,
7568 : 371, 372, 373, 374, 375, 376, 377, 0, 378, 379,
7569 : 380, 381, 382, 383, 384, 385, 0, 386, 387, 388,
7570 : 389, 390, 391, 392, 1302, 1303, 0, 1304, 0, 396,
7571 : 397, 398, 399, 400, 1305, 1306, 1307, 1308, 1309, 1310,
7572 : 1311, 1312, 1313, 410, 1314, 412, 413, 414, 415, 416,
7573 : 417, 418, 0, 0, 419, 1315, 421, 422, 423, 0,
7574 : 424, 425, 426, 1316, 1317, 427, 428, 429, 430, 431,
7575 : 432, 433, 434, 435, 436, 1318, 438, 439, 440, 441,
7576 : 442, 443, 444, 445, 1319, 447, 1320, 449, 450, 451,
7577 : 452, 453, 454, 455, 456, 457, 1321, 459, 1322, 460,
7578 : 461, 462, 463, 1323, 1324, 465, 1325, 467, 468, 469,
7579 : 470, 0, 471, 472, 473, 0, 0, 1326, 475, 476,
7580 : 0, 0, 477, 478, 479, 480, 481, 482, 1327, 484,
7581 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
7582 : 495, 0, 496, 497, 498, 1328, 500, 501, 502, 503,
7583 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
7584 : 513, 514, 515, 1329, 517, 518, 519, 0, 520, 521,
7585 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
7586 : 532, 3288, 533, 534, 535, 536, 537, 538, 539, 540,
7587 : 1330, 542, 543, 544, 545, 546, 547, 548, 549, 550,
7588 : 551, 0, 552, 553, 554, 555, 556, 1331, 557, 558,
7589 : 559, 560, 561, 562, 563, 564, 1332, 566, 0, 567,
7590 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
7591 : 578, 579, 580, 581, 1333, 583, 0, 584, 585, 1334,
7592 : 0, 586, 587, 588, 589, 590, 591, 592, 593, 0,
7593 : 594, 1335, 1336, 0, 0, 597, 598, 1337, 600, 1338,
7594 : 1339, 602, 603, 604, 605, 606, 607, 608, 609, 610,
7595 : 0, 1340, 611, 612, 613, 614, 615, 1341, 0, 616,
7596 : 617, 618, 619, 620, 621, 1342, 0, 623, 624, 625,
7597 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
7598 : 632, 633, 634, 635, 636, 637, 1343, 1344, 1345, 1346,
7599 : 642, 1347, 1348, 1349, 1350, 647, 648, 649, 650, 0,
7600 : 1351, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7601 : 0, 0, 1352, 1353, 0, 0, 0, 234, 0, 1271,
7602 : 717, 1355, 1272, 1273, 1274, 778, 1275, 0, 0, 0,
7603 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
7604 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
7605 : 0, 1276, 0, 0, 247, 248, 249, 0, 250, 251,
7606 : 252, 253, 254, 255, 256, 257, 258, 1277, 260, 1278,
7607 : 1279, 0, 263, 264, 265, 266, 267, 268, 269, 1280,
7608 : 1281, 270, 271, 1282, 1283, 274, 0, 275, 276, 277,
7609 : 278, 1284, 0, 1285, 0, 281, 282, 283, 284, 285,
7610 : 286, 287, 288, 289, 290, 291, 0, 292, 293, 294,
7611 : 295, 296, 297, 0, 298, 299, 300, 301, 1286, 1287,
7612 : 1288, 1289, 1290, 1291, 1292, 303, 304, 305, 306, 307,
7613 : 308, 1293, 1294, 311, 1295, 312, 0, 313, 314, 315,
7614 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
7615 : 0, 324, 325, 887, 327, 328, 0, 329, 330, 331,
7616 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
7617 : 340, 341, 1296, 343, 344, 345, 346, 1297, 1298, 348,
7618 : 0, 349, 350, 351, 1299, 353, 0, 354, 0, 355,
7619 : 356, 357, 0, 358, 359, 360, 361, 362, 0, 363,
7620 : 1300, 0, 1301, 366, 367, 0, 368, 369, 370, 371,
7621 : 372, 373, 374, 375, 376, 377, 0, 378, 379, 380,
7622 : 381, 382, 383, 384, 385, 0, 386, 387, 388, 389,
7623 : 390, 391, 392, 1302, 1303, 0, 1304, 0, 396, 397,
7624 : 398, 399, 400, 1305, 1306, 1307, 1308, 1309, 1310, 1311,
7625 : 1312, 1313, 410, 1314, 412, 413, 414, 415, 416, 417,
7626 : 418, 0, 0, 419, 1315, 421, 422, 423, 0, 424,
7627 : 425, 426, 1316, 1317, 427, 428, 429, 430, 431, 432,
7628 : 433, 434, 435, 436, 1318, 438, 439, 440, 441, 442,
7629 : 443, 444, 445, 1319, 447, 1320, 449, 450, 451, 452,
7630 : 453, 454, 455, 456, 457, 1321, 459, 1322, 460, 461,
7631 : 462, 463, 1323, 1324, 465, 1325, 467, 468, 469, 470,
7632 : 0, 471, 472, 473, 0, 0, 1326, 475, 476, 0,
7633 : 0, 477, 478, 479, 480, 481, 482, 1327, 484, 485,
7634 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
7635 : 0, 496, 497, 498, 1328, 500, 501, 502, 503, 504,
7636 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
7637 : 514, 515, 1329, 517, 518, 519, 0, 520, 521, 522,
7638 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
7639 : 0, 533, 534, 535, 536, 537, 538, 539, 540, 1330,
7640 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
7641 : 0, 552, 553, 554, 555, 556, 1331, 557, 558, 559,
7642 : 560, 561, 562, 563, 564, 1332, 566, 0, 567, 568,
7643 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
7644 : 579, 580, 581, 1333, 583, 0, 584, 585, 1334, 0,
7645 : 586, 587, 588, 589, 590, 591, 592, 593, 0, 594,
7646 : 1335, 1336, 0, 0, 597, 598, 1337, 600, 1338, 1339,
7647 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
7648 : 1340, 611, 612, 613, 614, 615, 1341, 0, 616, 617,
7649 : 618, 619, 620, 621, 1342, 3841, 623, 624, 625, 626,
7650 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
7651 : 633, 634, 635, 636, 637, 1343, 1344, 1345, 1346, 642,
7652 : 1347, 1348, 1349, 1350, 647, 648, 649, 650, 0, 1351,
7653 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7654 : 0, 1352, 1353, 0, 0, 0, 234, 0, 1271, 717,
7655 : 1355, 1272, 1273, 1274, 778, 1275, 0, 0, 0, 0,
7656 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
7657 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
7658 : 1276, 0, 0, 247, 248, 249, 0, 250, 251, 252,
7659 : 253, 254, 255, 256, 257, 258, 1277, 260, 1278, 1279,
7660 : 0, 263, 264, 265, 266, 267, 268, 269, 1280, 1281,
7661 : 270, 271, 1282, 1283, 274, 0, 275, 276, 277, 278,
7662 : 1284, 0, 1285, 0, 281, 282, 283, 284, 285, 286,
7663 : 287, 288, 289, 290, 291, 0, 292, 293, 294, 295,
7664 : 296, 297, 0, 298, 299, 300, 301, 1286, 1287, 1288,
7665 : 1289, 1290, 1291, 1292, 303, 304, 305, 306, 307, 308,
7666 : 1293, 1294, 311, 1295, 312, 0, 313, 314, 315, 316,
7667 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
7668 : 324, 325, 887, 327, 328, 0, 329, 330, 331, 332,
7669 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
7670 : 341, 1296, 343, 344, 345, 346, 1297, 1298, 348, 0,
7671 : 349, 350, 351, 1299, 353, 0, 354, 0, 355, 356,
7672 : 357, 3334, 358, 359, 360, 361, 362, 0, 363, 1300,
7673 : 0, 1301, 366, 367, 0, 368, 369, 370, 371, 372,
7674 : 373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
7675 : 382, 383, 384, 385, 0, 386, 387, 388, 389, 390,
7676 : 391, 392, 1302, 1303, 0, 1304, 0, 396, 397, 398,
7677 : 399, 400, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312,
7678 : 1313, 410, 1314, 412, 413, 414, 415, 416, 417, 418,
7679 : 0, 0, 419, 1315, 421, 422, 423, 0, 424, 425,
7680 : 426, 1316, 1317, 427, 428, 429, 430, 431, 432, 433,
7681 : 434, 435, 436, 1318, 438, 439, 440, 441, 442, 443,
7682 : 444, 445, 1319, 447, 1320, 449, 450, 451, 452, 453,
7683 : 454, 455, 456, 457, 1321, 459, 1322, 460, 461, 462,
7684 : 463, 1323, 1324, 465, 1325, 467, 468, 469, 470, 0,
7685 : 471, 472, 473, 0, 0, 1326, 475, 476, 0, 0,
7686 : 477, 478, 479, 480, 481, 482, 1327, 484, 485, 486,
7687 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
7688 : 496, 497, 498, 1328, 500, 501, 502, 503, 504, 0,
7689 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
7690 : 515, 1329, 517, 518, 519, 0, 520, 521, 522, 523,
7691 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
7692 : 533, 534, 535, 536, 537, 538, 539, 540, 1330, 542,
7693 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
7694 : 552, 553, 554, 555, 556, 1331, 557, 558, 559, 560,
7695 : 561, 562, 563, 564, 1332, 566, 0, 567, 568, 569,
7696 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
7697 : 580, 581, 1333, 583, 0, 584, 585, 1334, 0, 586,
7698 : 587, 588, 589, 590, 591, 592, 593, 0, 594, 1335,
7699 : 1336, 0, 0, 597, 598, 1337, 600, 1338, 1339, 602,
7700 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 1340,
7701 : 611, 612, 613, 614, 615, 1341, 0, 616, 617, 618,
7702 : 619, 620, 621, 1342, 0, 623, 624, 625, 626, 627,
7703 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
7704 : 634, 635, 636, 637, 1343, 1344, 1345, 1346, 642, 1347,
7705 : 1348, 1349, 1350, 647, 648, 649, 650, 0, 1351, 0,
7706 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7707 : 1352, 1353, 0, 0, 0, 234, 0, 1271, 717, 1355,
7708 : 1272, 1273, 1274, 778, 1275, 0, 0, 0, 0, 0,
7709 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
7710 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 1276,
7711 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
7712 : 254, 255, 256, 257, 258, 1277, 260, 1278, 1279, 0,
7713 : 263, 264, 265, 266, 267, 268, 269, 1280, 1281, 270,
7714 : 271, 1282, 1283, 274, 0, 275, 276, 277, 278, 1284,
7715 : 0, 1285, 0, 281, 282, 283, 284, 285, 286, 287,
7716 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
7717 : 297, 0, 298, 299, 300, 301, 1286, 1287, 1288, 1289,
7718 : 1290, 1291, 1292, 303, 304, 305, 306, 307, 308, 1293,
7719 : 1294, 311, 1295, 312, 0, 313, 314, 315, 316, 317,
7720 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
7721 : 325, 887, 327, 328, 0, 329, 330, 331, 332, 0,
7722 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
7723 : 1296, 343, 344, 345, 346, 1297, 1298, 348, 0, 349,
7724 : 350, 351, 1299, 353, 0, 354, 0, 355, 356, 357,
7725 : 0, 358, 359, 360, 361, 362, 0, 363, 1300, 0,
7726 : 1301, 366, 367, 0, 368, 369, 370, 371, 372, 373,
7727 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
7728 : 383, 384, 385, 0, 386, 387, 388, 389, 390, 391,
7729 : 392, 1302, 1303, 0, 1304, 0, 396, 397, 398, 399,
7730 : 400, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313,
7731 : 410, 1314, 412, 413, 414, 415, 416, 417, 418, 0,
7732 : 0, 419, 1315, 421, 422, 423, 0, 424, 425, 426,
7733 : 1316, 1317, 427, 428, 429, 430, 431, 432, 433, 434,
7734 : 435, 436, 1318, 438, 439, 440, 441, 442, 443, 444,
7735 : 445, 1319, 447, 1320, 449, 450, 451, 452, 453, 454,
7736 : 455, 456, 457, 1321, 459, 1322, 460, 461, 462, 463,
7737 : 1323, 1324, 465, 1325, 467, 468, 469, 470, 0, 471,
7738 : 472, 473, 0, 0, 1326, 475, 476, 0, 0, 477,
7739 : 478, 479, 480, 481, 482, 1327, 484, 485, 486, 487,
7740 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
7741 : 497, 498, 1328, 500, 501, 502, 503, 504, 0, 505,
7742 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
7743 : 1329, 517, 518, 519, 0, 520, 521, 522, 523, 524,
7744 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
7745 : 534, 535, 536, 537, 538, 539, 540, 1330, 542, 543,
7746 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
7747 : 553, 554, 555, 556, 1331, 557, 558, 559, 560, 561,
7748 : 562, 563, 564, 1332, 566, 0, 567, 568, 569, 570,
7749 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
7750 : 581, 1333, 583, 0, 584, 585, 1334, 0, 586, 587,
7751 : 588, 589, 590, 591, 592, 593, 0, 594, 1335, 1336,
7752 : 3391, 0, 597, 598, 1337, 600, 1338, 1339, 602, 603,
7753 : 604, 605, 606, 607, 608, 609, 610, 0, 1340, 611,
7754 : 612, 613, 614, 615, 1341, 0, 616, 617, 618, 619,
7755 : 620, 621, 1342, 0, 623, 624, 625, 626, 627, 628,
7756 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
7757 : 635, 636, 637, 1343, 1344, 1345, 1346, 642, 1347, 1348,
7758 : 1349, 1350, 647, 648, 649, 650, 0, 1351, 0, 0,
7759 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 1352,
7760 : 1353, 0, 0, 0, 234, 0, 1271, 717, 1355, 1272,
7761 : 1273, 1274, 778, 1275, 0, 0, 0, 0, 0, 0,
7762 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
7763 : 0, 244, 245, 246, 0, 0, 0, 0, 1276, 0,
7764 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 254,
7765 : 255, 256, 257, 258, 1277, 260, 1278, 1279, 0, 263,
7766 : 264, 265, 266, 267, 268, 269, 1280, 1281, 270, 271,
7767 : 1282, 1283, 274, 0, 275, 276, 277, 278, 1284, 0,
7768 : 1285, 0, 281, 282, 283, 284, 285, 286, 287, 288,
7769 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
7770 : 0, 298, 299, 300, 301, 1286, 1287, 1288, 1289, 1290,
7771 : 1291, 1292, 303, 304, 305, 306, 307, 308, 1293, 1294,
7772 : 311, 1295, 312, 0, 313, 314, 315, 316, 317, 318,
7773 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
7774 : 887, 327, 328, 0, 329, 330, 331, 332, 0, 333,
7775 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 1296,
7776 : 343, 344, 345, 346, 1297, 1298, 348, 0, 349, 350,
7777 : 351, 1299, 353, 0, 354, 0, 355, 356, 357, 0,
7778 : 358, 359, 360, 361, 362, 0, 363, 1300, 0, 1301,
7779 : 366, 367, 0, 368, 369, 370, 371, 372, 373, 374,
7780 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
7781 : 384, 385, 0, 386, 387, 388, 389, 390, 391, 392,
7782 : 1302, 1303, 0, 1304, 0, 396, 397, 398, 399, 400,
7783 : 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 410,
7784 : 1314, 412, 413, 414, 415, 416, 417, 418, 0, 0,
7785 : 419, 1315, 421, 422, 423, 0, 424, 425, 426, 1316,
7786 : 1317, 427, 428, 429, 430, 431, 432, 433, 434, 435,
7787 : 436, 1318, 438, 439, 440, 441, 442, 443, 444, 445,
7788 : 1319, 447, 1320, 449, 450, 451, 452, 453, 454, 455,
7789 : 456, 457, 1321, 459, 1322, 460, 461, 462, 463, 1323,
7790 : 1324, 465, 1325, 467, 468, 469, 470, 0, 471, 472,
7791 : 473, 0, 0, 1326, 475, 476, 0, 0, 477, 478,
7792 : 479, 480, 481, 482, 1327, 484, 485, 486, 487, 488,
7793 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
7794 : 498, 1328, 500, 501, 502, 503, 504, 0, 505, 506,
7795 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 1329,
7796 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
7797 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
7798 : 535, 536, 537, 538, 539, 540, 1330, 542, 543, 544,
7799 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
7800 : 554, 555, 556, 1331, 557, 558, 559, 560, 561, 562,
7801 : 563, 564, 1332, 566, 0, 567, 568, 569, 570, 571,
7802 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
7803 : 1333, 583, 0, 584, 585, 1334, 0, 586, 587, 588,
7804 : 589, 590, 591, 592, 593, 0, 594, 1335, 1336, 0,
7805 : 0, 597, 598, 1337, 600, 1338, 1339, 602, 603, 604,
7806 : 605, 606, 607, 608, 609, 610, 0, 1340, 611, 612,
7807 : 613, 614, 615, 1341, 0, 616, 617, 618, 619, 620,
7808 : 621, 1342, 0, 623, 624, 625, 626, 627, 628, 629,
7809 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
7810 : 636, 637, 1343, 1344, 1345, 1346, 642, 1347, 1348, 1349,
7811 : 1350, 647, 648, 649, 650, 0, 1351, 0, 0, 0,
7812 : 0, 0, 0, 0, 0, 0, 0, 0, 1352, 1353,
7813 : 0, 0, 0, 234, 0, 1271, 717, 1355, 1272, 1273,
7814 : 1274, 778, 1275, 0, 0, 0, 0, 0, 0, 0,
7815 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
7816 : 244, 245, 246, 0, 0, 0, 0, 1276, 0, 0,
7817 : 247, 248, 249, 0, 250, 251, 252, 253, 254, 255,
7818 : 256, 257, 258, 1277, 260, 1278, 1279, 0, 263, 264,
7819 : 265, 266, 267, 268, 269, 1280, 1281, 270, 271, 1282,
7820 : 1283, 274, 0, 275, 276, 277, 278, 1284, 0, 1285,
7821 : 0, 281, 282, 283, 284, 285, 286, 287, 288, 289,
7822 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
7823 : 298, 299, 300, 301, 1286, 1287, 1288, 1289, 1290, 1291,
7824 : 1292, 303, 304, 305, 306, 307, 308, 1293, 1294, 311,
7825 : 1295, 312, 0, 313, 314, 315, 316, 317, 318, 319,
7826 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 887,
7827 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
7828 : 335, 336, 337, 0, 338, 339, 340, 341, 1296, 343,
7829 : 344, 345, 346, 1297, 1298, 348, 0, 349, 350, 351,
7830 : 1299, 353, 0, 354, 0, 355, 356, 357, 0, 358,
7831 : 359, 360, 361, 362, 0, 363, 1300, 0, 1301, 366,
7832 : 367, 0, 368, 369, 370, 371, 372, 373, 374, 375,
7833 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
7834 : 385, 0, 386, 387, 388, 389, 390, 391, 392, 1302,
7835 : 1303, 0, 1304, 0, 396, 397, 398, 399, 400, 1305,
7836 : 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 410, 1314,
7837 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
7838 : 1315, 421, 422, 423, 0, 424, 425, 426, 1316, 1317,
7839 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
7840 : 1318, 438, 439, 440, 441, 442, 443, 444, 445, 1319,
7841 : 447, 1320, 449, 450, 451, 452, 453, 454, 455, 456,
7842 : 457, 1321, 459, 1322, 460, 461, 462, 463, 1323, 1324,
7843 : 465, 1325, 467, 468, 469, 470, 0, 471, 472, 473,
7844 : 0, 0, 1326, 475, 476, 0, 0, 477, 478, 479,
7845 : 480, 481, 482, 1327, 484, 485, 486, 487, 488, 489,
7846 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
7847 : 1328, 500, 501, 502, 503, 504, 0, 505, 506, 507,
7848 : 508, 509, 510, 511, 512, 513, 514, 515, 1329, 517,
7849 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
7850 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 535,
7851 : 536, 537, 538, 539, 540, 1330, 542, 543, 544, 545,
7852 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
7853 : 555, 556, 1331, 557, 558, 559, 560, 561, 562, 563,
7854 : 564, 1332, 566, 0, 567, 568, 569, 570, 571, 572,
7855 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 1333,
7856 : 583, 0, 584, 585, 1334, 0, 586, 587, 588, 589,
7857 : 590, 591, 592, 593, 0, 594, 1335, 1336, 0, 0,
7858 : 597, 598, 1337, 600, 1338, 1339, 602, 603, 604, 605,
7859 : 606, 607, 608, 609, 610, 0, 1340, 611, 612, 613,
7860 : 614, 615, 1341, 0, 616, 617, 618, 619, 620, 621,
7861 : 1342, 0, 623, 624, 625, 626, 627, 628, 629, 0,
7862 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
7863 : 637, 1343, 1344, 1345, 1346, 642, 1347, 1348, 1349, 1350,
7864 : 647, 648, 649, 650, 0, 1351, 0, 0, 0, 0,
7865 : 0, 0, 0, 0, 0, 0, 0, 2701, 2702, 0,
7866 : 0, 0, 234, 0, 3510, 717, 1355, 1272, 1273, 1274,
7867 : 778, 1275, 0, 0, 0, 0, 0, 0, 0, 235,
7868 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
7869 : 245, 246, 0, 0, 0, 0, 1276, 0, 0, 247,
7870 : 248, 249, 0, 250, 251, 252, 253, 254, 255, 256,
7871 : 257, 258, 1277, 260, 1278, 1279, 0, 263, 264, 265,
7872 : 266, 267, 268, 269, 1280, 1281, 270, 271, 1282, 1283,
7873 : 274, 0, 275, 276, 277, 278, 1284, 0, 1285, 0,
7874 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
7875 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 298,
7876 : 299, 300, 301, 1286, 1287, 1288, 1289, 1290, 1291, 1292,
7877 : 303, 304, 305, 306, 307, 308, 1293, 1294, 311, 1295,
7878 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
7879 : 320, 321, 322, 323, 0, 0, 324, 325, 887, 327,
7880 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
7881 : 336, 337, 0, 338, 339, 340, 341, 1296, 343, 344,
7882 : 345, 346, 1297, 1298, 348, 0, 349, 350, 351, 1299,
7883 : 353, 0, 354, 0, 355, 356, 357, 0, 358, 359,
7884 : 360, 361, 362, 0, 363, 1300, 0, 1301, 366, 367,
7885 : 0, 368, 369, 370, 371, 372, 373, 374, 375, 376,
7886 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
7887 : 0, 386, 387, 388, 389, 390, 391, 392, 1302, 1303,
7888 : 0, 1304, 0, 396, 397, 398, 399, 400, 1305, 1306,
7889 : 1307, 1308, 1309, 1310, 1311, 1312, 1313, 410, 1314, 412,
7890 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 1315,
7891 : 421, 422, 423, 0, 424, 425, 426, 1316, 1317, 427,
7892 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 1318,
7893 : 438, 439, 440, 441, 442, 443, 444, 445, 1319, 447,
7894 : 1320, 449, 450, 451, 452, 453, 454, 455, 456, 457,
7895 : 1321, 459, 1322, 460, 461, 462, 463, 1323, 1324, 465,
7896 : 1325, 467, 468, 469, 470, 0, 471, 472, 473, 0,
7897 : 0, 1326, 475, 476, 0, 0, 477, 478, 479, 480,
7898 : 481, 482, 1327, 484, 485, 486, 487, 488, 489, 490,
7899 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 1328,
7900 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
7901 : 509, 510, 511, 512, 513, 514, 515, 1329, 517, 518,
7902 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
7903 : 528, 529, 530, 531, 532, 0, 533, 534, 535, 536,
7904 : 537, 538, 539, 540, 1330, 542, 543, 544, 545, 546,
7905 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
7906 : 556, 1331, 557, 558, 559, 560, 561, 562, 563, 564,
7907 : 1332, 566, 0, 567, 568, 569, 570, 571, 572, 573,
7908 : 574, 575, 576, 577, 578, 579, 580, 581, 1333, 583,
7909 : 0, 584, 585, 1334, 0, 586, 587, 588, 589, 590,
7910 : 591, 592, 593, 0, 594, 1335, 1336, 0, 0, 597,
7911 : 598, 1337, 600, 1338, 1339, 602, 603, 604, 605, 606,
7912 : 607, 608, 609, 610, 0, 1340, 611, 612, 613, 614,
7913 : 615, 1341, 0, 616, 617, 618, 619, 620, 621, 1342,
7914 : 0, 623, 624, 625, 626, 627, 628, 629, 0, 0,
7915 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
7916 : 1343, 1344, 1345, 1346, 642, 1347, 1348, 1349, 1350, 647,
7917 : 648, 649, 650, 0, 1351, 0, 0, 0, 0, 0,
7918 : 0, 0, 0, 0, 0, 0, 1352, 1353, 0, 0,
7919 : 0, 234, 0, 1271, 717, 1355, 1272, 1273, 1274, 778,
7920 : 1275, 0, 0, 0, 0, 0, 0, 0, 235, 236,
7921 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
7922 : 246, 0, 0, 0, 0, 1276, 0, 0, 247, 248,
7923 : 249, 0, 250, 251, 252, 253, 254, 255, 256, 257,
7924 : 258, 1277, 260, 1278, 1279, 0, 263, 264, 265, 266,
7925 : 267, 268, 269, 1280, 1281, 270, 271, 1282, 1283, 274,
7926 : 0, 275, 276, 277, 278, 1284, 0, 1285, 0, 281,
7927 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
7928 : 0, 292, 293, 294, 295, 296, 297, 0, 298, 299,
7929 : 300, 4865, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303,
7930 : 304, 305, 306, 307, 308, 1293, 1294, 311, 1295, 312,
7931 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
7932 : 321, 322, 323, 0, 0, 324, 325, 887, 327, 328,
7933 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
7934 : 337, 0, 338, 339, 340, 341, 1296, 343, 344, 345,
7935 : 346, 1297, 1298, 348, 0, 349, 350, 351, 1299, 353,
7936 : 0, 354, 0, 355, 356, 357, 0, 358, 359, 360,
7937 : 361, 362, 0, 363, 1300, 0, 1301, 366, 367, 0,
7938 : 368, 369, 370, 371, 372, 373, 374, 375, 376, 377,
7939 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
7940 : 386, 387, 388, 389, 390, 391, 392, 1302, 1303, 0,
7941 : 1304, 0, 396, 397, 398, 399, 400, 1305, 1306, 1307,
7942 : 1308, 1309, 1310, 1311, 1312, 1313, 410, 1314, 412, 413,
7943 : 414, 415, 416, 417, 418, 0, 0, 419, 1315, 421,
7944 : 422, 423, 0, 424, 425, 426, 1316, 1317, 427, 428,
7945 : 429, 430, 431, 432, 433, 434, 435, 436, 1318, 438,
7946 : 439, 440, 441, 442, 443, 444, 445, 1319, 447, 1320,
7947 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 1321,
7948 : 459, 1322, 460, 461, 462, 463, 1323, 1324, 465, 1325,
7949 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
7950 : 1326, 475, 476, 0, 0, 477, 478, 479, 480, 481,
7951 : 482, 1327, 484, 485, 486, 487, 488, 489, 490, 491,
7952 : 492, 493, 494, 495, 0, 496, 497, 498, 1328, 500,
7953 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
7954 : 510, 511, 512, 513, 514, 515, 1329, 517, 518, 519,
7955 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
7956 : 529, 530, 531, 532, 0, 533, 534, 535, 536, 537,
7957 : 538, 539, 540, 1330, 542, 543, 544, 545, 546, 547,
7958 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 556,
7959 : 1331, 557, 558, 559, 560, 561, 562, 563, 564, 1332,
7960 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
7961 : 575, 576, 577, 578, 579, 580, 581, 1333, 583, 0,
7962 : 584, 585, 1334, 0, 586, 587, 588, 589, 590, 591,
7963 : 592, 593, 0, 594, 1335, 1336, 0, 0, 597, 598,
7964 : 1337, 600, 1338, 1339, 602, 603, 604, 605, 606, 607,
7965 : 608, 609, 610, 0, 1340, 611, 612, 613, 614, 615,
7966 : 1341, 0, 616, 617, 618, 619, 620, 621, 1342, 0,
7967 : 623, 624, 625, 626, 627, 628, 629, 0, 0, 630,
7968 : 0, 0, 631, 632, 633, 634, 635, 636, 637, 1343,
7969 : 1344, 1345, 1346, 642, 1347, 1348, 1349, 1350, 647, 648,
7970 : 649, 650, 0, 1351, 0, 0, 0, 0, 0, 0,
7971 : 0, 0, 0, 0, 0, 1352, 1353, 0, 0, 0,
7972 : 234, 0, 1271, 717, 1355, 1272, 1273, 1274, 778, 1275,
7973 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
7974 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
7975 : 0, 0, 0, 0, 1276, 0, 0, 247, 248, 249,
7976 : 0, 250, 251, 252, 253, 254, 255, 256, 257, 258,
7977 : 1277, 260, 1278, 1279, 0, 263, 264, 265, 266, 267,
7978 : 268, 269, 1280, 1281, 270, 271, 1282, 1283, 274, 0,
7979 : 275, 276, 277, 278, 1284, 0, 1285, 0, 281, 282,
7980 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 0,
7981 : 292, 293, 294, 295, 296, 297, 0, 298, 299, 300,
7982 : 301, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303, 304,
7983 : 305, 306, 307, 308, 1293, 1294, 311, 1295, 312, 0,
7984 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
7985 : 322, 323, 0, 0, 324, 325, 887, 327, 328, 0,
7986 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
7987 : 0, 338, 339, 340, 341, 1296, 343, 344, 345, 346,
7988 : 1297, 1298, 348, 0, 349, 350, 351, 1299, 353, 0,
7989 : 354, 0, 355, 356, 357, 0, 358, 359, 360, 361,
7990 : 362, 0, 363, 1300, 0, 1301, 366, 367, 0, 368,
7991 : 369, 370, 371, 372, 373, 374, 375, 376, 377, 0,
7992 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
7993 : 387, 388, 389, 390, 391, 392, 1302, 1303, 0, 1304,
7994 : 0, 396, 397, 398, 399, 400, 1305, 1306, 1307, 1308,
7995 : 1309, 1310, 1311, 1312, 1313, 410, 1314, 412, 413, 414,
7996 : 415, 416, 417, 418, 0, 0, 419, 1315, 421, 422,
7997 : 423, 0, 424, 425, 426, 1316, 1317, 427, 428, 429,
7998 : 430, 431, 432, 433, 434, 435, 436, 1318, 438, 439,
7999 : 440, 441, 442, 443, 444, 445, 1319, 447, 1320, 449,
8000 : 450, 451, 452, 453, 454, 455, 456, 457, 1321, 459,
8001 : 1322, 460, 461, 462, 463, 1323, 1324, 465, 1325, 467,
8002 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 1326,
8003 : 475, 476, 0, 0, 477, 478, 479, 480, 481, 482,
8004 : 1327, 484, 485, 486, 487, 488, 489, 490, 491, 492,
8005 : 493, 494, 495, 0, 496, 497, 498, 1328, 500, 501,
8006 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
8007 : 511, 512, 513, 514, 515, 1329, 517, 518, 519, 0,
8008 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
8009 : 530, 531, 532, 0, 533, 534, 535, 536, 537, 538,
8010 : 539, 540, 1330, 542, 543, 544, 545, 546, 547, 548,
8011 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 1331,
8012 : 557, 558, 559, 560, 561, 562, 563, 564, 1332, 566,
8013 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
8014 : 576, 577, 578, 579, 580, 581, 1333, 583, 0, 584,
8015 : 585, 1334, 0, 586, 587, 588, 589, 590, 591, 592,
8016 : 593, 0, 594, 1335, 1336, 0, 0, 597, 598, 1337,
8017 : 600, 1338, 1339, 602, 603, 604, 605, 606, 607, 608,
8018 : 609, 610, 0, 1340, 611, 612, 613, 614, 615, 1341,
8019 : 0, 616, 617, 618, 619, 620, 621, 1342, 0, 623,
8020 : 624, 625, 626, 627, 628, 629, 0, 0, 630, 0,
8021 : 0, 631, 632, 633, 634, 635, 636, 5251, 1343, 1344,
8022 : 1345, 1346, 642, 1347, 1348, 1349, 1350, 647, 648, 649,
8023 : 650, 0, 1351, 0, 0, 0, 0, 0, 0, 0,
8024 : 0, 0, 0, 0, 1352, 1353, 0, 0, 0, 234,
8025 : 0, 1271, 717, 1355, 1272, 1273, 1274, 778, 1275, 0,
8026 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
8027 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
8028 : 0, 0, 0, 1276, 0, 0, 247, 248, 249, 0,
8029 : 250, 251, 252, 253, 254, 255, 256, 257, 258, 1277,
8030 : 260, 1278, 1279, 0, 263, 264, 265, 266, 267, 268,
8031 : 269, 1280, 1281, 270, 271, 1282, 1283, 274, 0, 275,
8032 : 276, 277, 278, 1284, 0, 1285, 0, 281, 282, 283,
8033 : 284, 285, 286, 287, 288, 289, 290, 291, 0, 292,
8034 : 293, 294, 295, 296, 297, 0, 298, 299, 300, 301,
8035 : 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303, 304, 305,
8036 : 306, 307, 308, 1293, 1294, 311, 1295, 312, 0, 313,
8037 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
8038 : 323, 0, 0, 324, 325, 887, 327, 328, 0, 329,
8039 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
8040 : 338, 339, 340, 341, 1296, 343, 344, 345, 346, 1297,
8041 : 1298, 348, 0, 349, 350, 351, 1299, 353, 0, 354,
8042 : 0, 355, 356, 357, 0, 358, 359, 360, 361, 362,
8043 : 0, 363, 1300, 0, 1301, 366, 367, 0, 368, 369,
8044 : 370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
8045 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 387,
8046 : 388, 389, 390, 391, 392, 1302, 1303, 0, 1304, 0,
8047 : 396, 397, 398, 399, 400, 1305, 1306, 1307, 1308, 1309,
8048 : 1310, 1311, 1312, 1313, 410, 1314, 412, 413, 414, 415,
8049 : 416, 417, 418, 0, 0, 419, 1315, 421, 422, 423,
8050 : 0, 424, 425, 426, 1316, 1317, 427, 428, 429, 430,
8051 : 431, 432, 433, 434, 435, 436, 1318, 438, 439, 440,
8052 : 441, 442, 443, 444, 445, 1319, 447, 1320, 449, 450,
8053 : 451, 452, 453, 454, 455, 5263, 457, 1321, 459, 1322,
8054 : 460, 461, 462, 463, 1323, 1324, 465, 1325, 467, 468,
8055 : 469, 470, 0, 471, 472, 473, 0, 0, 1326, 475,
8056 : 476, 0, 0, 477, 478, 479, 480, 481, 482, 1327,
8057 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
8058 : 494, 495, 0, 496, 497, 498, 1328, 500, 501, 502,
8059 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
8060 : 512, 513, 514, 515, 1329, 517, 518, 519, 0, 520,
8061 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
8062 : 531, 532, 0, 533, 534, 535, 536, 537, 538, 539,
8063 : 540, 1330, 542, 543, 544, 545, 546, 547, 548, 549,
8064 : 550, 551, 0, 552, 553, 554, 555, 556, 1331, 557,
8065 : 558, 559, 560, 561, 562, 563, 564, 1332, 566, 0,
8066 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
8067 : 577, 578, 579, 580, 581, 1333, 583, 0, 584, 585,
8068 : 1334, 0, 586, 587, 588, 589, 590, 591, 592, 593,
8069 : 0, 594, 1335, 1336, 0, 0, 597, 598, 1337, 600,
8070 : 1338, 1339, 602, 603, 604, 605, 606, 607, 608, 609,
8071 : 610, 0, 1340, 611, 612, 613, 614, 615, 1341, 0,
8072 : 616, 617, 618, 619, 620, 621, 1342, 0, 623, 624,
8073 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
8074 : 631, 632, 633, 634, 635, 636, 637, 1343, 1344, 1345,
8075 : 1346, 642, 1347, 1348, 1349, 1350, 647, 648, 649, 650,
8076 : 0, 1351, 0, 0, 0, 0, 0, 0, 0, 0,
8077 : 0, 0, 0, 1352, 1353, 0, 0, 0, 234, 0,
8078 : 1271, 717, 1355, 1272, 1273, 1274, 778, 1275, 0, 0,
8079 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
8080 : 240, 241, 242, 243, 0, 244, 245, 246, 0, 0,
8081 : 0, 0, 1276, 0, 0, 247, 248, 249, 0, 250,
8082 : 251, 252, 253, 254, 255, 256, 257, 258, 1277, 260,
8083 : 1278, 1279, 0, 263, 264, 265, 266, 267, 268, 269,
8084 : 1280, 1281, 270, 271, 1282, 1283, 274, 0, 275, 276,
8085 : 277, 278, 1284, 0, 1285, 0, 281, 282, 283, 284,
8086 : 285, 286, 287, 288, 289, 290, 291, 0, 292, 293,
8087 : 294, 295, 296, 297, 0, 298, 299, 5605, 301, 1286,
8088 : 1287, 1288, 1289, 1290, 1291, 1292, 303, 304, 305, 306,
8089 : 307, 308, 1293, 1294, 311, 1295, 312, 0, 313, 314,
8090 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
8091 : 0, 0, 324, 325, 887, 327, 328, 0, 329, 330,
8092 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
8093 : 339, 340, 341, 1296, 343, 344, 345, 346, 1297, 1298,
8094 : 348, 0, 349, 350, 351, 1299, 353, 0, 354, 0,
8095 : 355, 356, 357, 0, 358, 359, 360, 361, 362, 0,
8096 : 363, 1300, 0, 5606, 366, 367, 0, 368, 369, 370,
8097 : 371, 372, 373, 374, 375, 376, 377, 0, 378, 379,
8098 : 380, 381, 382, 383, 384, 385, 0, 386, 387, 388,
8099 : 389, 390, 391, 392, 1302, 1303, 0, 1304, 0, 396,
8100 : 397, 398, 399, 400, 1305, 1306, 1307, 1308, 1309, 1310,
8101 : 1311, 1312, 1313, 410, 1314, 412, 413, 414, 415, 416,
8102 : 417, 418, 0, 0, 419, 1315, 421, 422, 423, 0,
8103 : 424, 425, 426, 1316, 1317, 427, 428, 429, 430, 431,
8104 : 432, 433, 434, 435, 436, 1318, 438, 439, 440, 441,
8105 : 442, 443, 444, 445, 1319, 447, 1320, 449, 450, 451,
8106 : 452, 453, 454, 455, 456, 457, 1321, 459, 1322, 460,
8107 : 461, 462, 463, 1323, 1324, 465, 1325, 467, 468, 469,
8108 : 470, 0, 471, 472, 473, 0, 0, 1326, 475, 476,
8109 : 0, 0, 477, 478, 479, 480, 481, 482, 1327, 484,
8110 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
8111 : 495, 0, 496, 497, 498, 1328, 500, 501, 502, 503,
8112 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
8113 : 513, 514, 515, 1329, 517, 518, 519, 0, 520, 521,
8114 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
8115 : 532, 0, 533, 534, 535, 536, 537, 5607, 539, 540,
8116 : 1330, 542, 543, 544, 545, 546, 547, 548, 549, 550,
8117 : 551, 0, 552, 553, 554, 555, 556, 1331, 557, 558,
8118 : 559, 560, 561, 562, 563, 564, 1332, 566, 0, 567,
8119 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
8120 : 578, 579, 580, 581, 1333, 583, 0, 584, 585, 1334,
8121 : 0, 586, 587, 588, 589, 590, 591, 592, 593, 0,
8122 : 594, 1335, 1336, 0, 0, 597, 598, 1337, 600, 1338,
8123 : 1339, 602, 603, 604, 605, 606, 607, 608, 609, 610,
8124 : 0, 1340, 611, 612, 613, 614, 615, 1341, 0, 616,
8125 : 617, 618, 619, 620, 621, 1342, 0, 623, 624, 625,
8126 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
8127 : 632, 633, 634, 635, 636, 637, 1343, 1344, 1345, 1346,
8128 : 642, 1347, 1348, 1349, 1350, 647, 648, 649, 650, 0,
8129 : 1351, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8130 : 0, 0, 1352, 1353, 0, 0, 0, 234, 0, 1271,
8131 : 717, 5608, 1272, 1273, 1274, 778, 1275, 0, 0, 0,
8132 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
8133 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
8134 : 0, 1276, 0, 0, 247, 248, 249, 0, 250, 251,
8135 : 252, 253, 254, 255, 256, 257, 6027, 1277, 260, 1278,
8136 : 1279, 0, 263, 264, 265, 266, 267, 268, 269, 1280,
8137 : 1281, 270, 271, 1282, 1283, 274, 0, 275, 276, 277,
8138 : 278, 1284, 0, 1285, 0, 281, 282, 283, 284, 285,
8139 : 286, 287, 288, 289, 290, 291, 0, 292, 293, 294,
8140 : 295, 296, 297, 0, 298, 299, 300, 6028, 1286, 1287,
8141 : 1288, 1289, 1290, 1291, 1292, 303, 304, 305, 306, 307,
8142 : 308, 1293, 1294, 311, 1295, 312, 0, 313, 314, 315,
8143 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
8144 : 0, 324, 325, 887, 327, 328, 0, 329, 330, 331,
8145 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
8146 : 340, 341, 1296, 343, 344, 345, 346, 1297, 1298, 348,
8147 : 0, 349, 350, 351, 1299, 353, 0, 354, 0, 355,
8148 : 356, 357, 0, 358, 359, 360, 361, 362, 0, 363,
8149 : 1300, 0, 1301, 366, 367, 0, 368, 369, 370, 371,
8150 : 372, 373, 374, 375, 376, 377, 0, 378, 379, 380,
8151 : 381, 382, 383, 384, 385, 0, 386, 387, 388, 389,
8152 : 390, 391, 392, 1302, 1303, 0, 1304, 0, 396, 397,
8153 : 398, 399, 400, 1305, 1306, 1307, 1308, 1309, 1310, 1311,
8154 : 1312, 1313, 410, 1314, 412, 413, 414, 415, 416, 417,
8155 : 418, 0, 0, 419, 1315, 421, 422, 423, 0, 424,
8156 : 425, 426, 1316, 1317, 427, 428, 429, 430, 431, 432,
8157 : 433, 434, 435, 436, 1318, 438, 439, 440, 441, 442,
8158 : 443, 444, 445, 1319, 447, 1320, 449, 450, 451, 452,
8159 : 453, 454, 455, 456, 457, 1321, 459, 1322, 460, 461,
8160 : 462, 463, 1323, 1324, 465, 1325, 467, 468, 469, 470,
8161 : 0, 471, 472, 473, 0, 0, 1326, 475, 476, 0,
8162 : 0, 477, 478, 479, 480, 481, 482, 1327, 484, 485,
8163 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
8164 : 0, 496, 497, 498, 1328, 500, 501, 502, 503, 504,
8165 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
8166 : 514, 515, 1329, 517, 518, 519, 0, 520, 521, 522,
8167 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
8168 : 0, 533, 534, 535, 536, 537, 538, 539, 540, 1330,
8169 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
8170 : 0, 552, 553, 554, 555, 556, 1331, 557, 558, 559,
8171 : 560, 561, 562, 563, 564, 1332, 566, 0, 567, 568,
8172 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
8173 : 579, 580, 581, 1333, 583, 0, 584, 585, 1334, 0,
8174 : 586, 587, 588, 589, 590, 591, 592, 593, 0, 594,
8175 : 1335, 1336, 0, 0, 597, 598, 1337, 600, 1338, 1339,
8176 : 602, 603, 604, 605, 606, 6029, 608, 609, 610, 0,
8177 : 1340, 611, 612, 613, 614, 615, 1341, 0, 616, 617,
8178 : 618, 619, 620, 621, 1342, 0, 623, 624, 625, 626,
8179 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
8180 : 633, 634, 635, 636, 637, 1343, 1344, 1345, 1346, 642,
8181 : 1347, 1348, 1349, 1350, 647, 648, 649, 650, 0, 1351,
8182 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8183 : 0, 1352, 1353, 0, 0, 0, 234, 0, 1271, 717,
8184 : 1355, 1272, 1273, 1274, 778, 1275, 0, 0, 0, 0,
8185 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
8186 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
8187 : 1276, 0, 0, 247, 248, 249, 0, 250, 251, 252,
8188 : 253, 254, 255, 256, 257, 258, 1277, 260, 1278, 1279,
8189 : 0, 263, 264, 265, 266, 267, 268, 269, 1280, 1281,
8190 : 270, 271, 1282, 1283, 274, 0, 275, 276, 277, 278,
8191 : 1284, 0, 1285, 0, 281, 282, 283, 284, 285, 286,
8192 : 287, 288, 289, 290, 291, 0, 292, 293, 294, 295,
8193 : 296, 297, 0, 298, 299, 300, 6028, 1286, 1287, 1288,
8194 : 1289, 1290, 1291, 1292, 303, 304, 305, 306, 307, 308,
8195 : 1293, 1294, 311, 1295, 312, 0, 313, 314, 315, 316,
8196 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
8197 : 324, 325, 887, 327, 328, 0, 329, 330, 331, 332,
8198 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
8199 : 341, 1296, 343, 344, 345, 346, 1297, 1298, 348, 0,
8200 : 349, 350, 351, 1299, 353, 0, 354, 0, 355, 356,
8201 : 357, 0, 358, 359, 360, 361, 362, 0, 363, 1300,
8202 : 0, 1301, 366, 367, 0, 368, 369, 370, 371, 372,
8203 : 373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
8204 : 382, 383, 384, 385, 0, 386, 387, 388, 389, 390,
8205 : 391, 392, 1302, 1303, 0, 1304, 0, 396, 397, 398,
8206 : 399, 400, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312,
8207 : 1313, 410, 1314, 412, 413, 414, 415, 416, 417, 418,
8208 : 0, 0, 419, 1315, 421, 422, 423, 0, 424, 425,
8209 : 426, 1316, 1317, 427, 428, 429, 430, 431, 432, 433,
8210 : 434, 435, 436, 1318, 438, 439, 440, 441, 442, 443,
8211 : 444, 445, 1319, 447, 1320, 449, 450, 451, 452, 453,
8212 : 454, 455, 456, 457, 1321, 459, 1322, 460, 461, 462,
8213 : 463, 1323, 1324, 465, 1325, 467, 468, 469, 470, 0,
8214 : 471, 472, 473, 0, 0, 1326, 475, 476, 0, 0,
8215 : 477, 478, 479, 480, 481, 482, 1327, 484, 485, 486,
8216 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
8217 : 496, 497, 498, 1328, 500, 501, 502, 503, 504, 0,
8218 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
8219 : 515, 1329, 517, 518, 519, 0, 520, 521, 522, 523,
8220 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
8221 : 533, 534, 535, 536, 537, 538, 539, 540, 1330, 542,
8222 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
8223 : 552, 553, 554, 555, 556, 1331, 557, 558, 559, 560,
8224 : 561, 562, 563, 564, 1332, 566, 0, 567, 568, 569,
8225 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
8226 : 580, 581, 1333, 583, 0, 584, 585, 1334, 0, 586,
8227 : 587, 588, 589, 590, 591, 592, 593, 0, 594, 1335,
8228 : 1336, 0, 0, 597, 598, 1337, 600, 1338, 1339, 602,
8229 : 603, 604, 605, 606, 6029, 608, 609, 610, 0, 1340,
8230 : 611, 612, 613, 614, 615, 1341, 0, 616, 617, 618,
8231 : 619, 620, 621, 1342, 0, 623, 624, 625, 626, 627,
8232 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
8233 : 634, 635, 636, 637, 1343, 1344, 1345, 1346, 642, 1347,
8234 : 1348, 1349, 1350, 647, 648, 649, 650, 0, 1351, 0,
8235 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8236 : 1352, 1353, 0, 0, 0, 234, 0, 1271, 717, 1355,
8237 : 1272, 1273, 1274, 778, 1275, 0, 0, 0, 0, 0,
8238 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
8239 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 1276,
8240 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
8241 : 254, 255, 256, 257, 258, 1277, 260, 1278, 1279, 0,
8242 : 263, 264, 265, 266, 267, 268, 269, 1280, 1281, 270,
8243 : 271, 1282, 1283, 274, 0, 275, 276, 277, 278, 1284,
8244 : 0, 1285, 0, 281, 282, 283, 284, 285, 286, 287,
8245 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
8246 : 297, 0, 298, 299, 300, 301, 1286, 1287, 1288, 1289,
8247 : 1290, 1291, 1292, 303, 304, 305, 306, 307, 308, 1293,
8248 : 1294, 311, 5590, 312, 0, 313, 314, 315, 316, 317,
8249 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
8250 : 325, 887, 327, 328, 0, 329, 330, 331, 332, 0,
8251 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
8252 : 1296, 343, 344, 345, 346, 1297, 1298, 348, 0, 349,
8253 : 350, 351, 1299, 353, 0, 354, 0, 355, 356, 357,
8254 : 0, 358, 359, 360, 361, 362, 0, 363, 1300, 0,
8255 : 1301, 366, 367, 0, 368, 369, 370, 371, 372, 373,
8256 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
8257 : 383, 384, 385, 0, 386, 387, 388, 389, 390, 391,
8258 : 392, 1302, 1303, 0, 1304, 0, 396, 397, 398, 399,
8259 : 400, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313,
8260 : 410, 1314, 412, 413, 414, 415, 416, 417, 418, 0,
8261 : 0, 419, 1315, 421, 422, 423, 0, 424, 425, 426,
8262 : 1316, 1317, 427, 428, 429, 430, 431, 432, 433, 434,
8263 : 435, 436, 1318, 438, 439, 440, 441, 442, 443, 444,
8264 : 445, 1319, 447, 1320, 449, 450, 451, 452, 453, 454,
8265 : 455, 456, 457, 1321, 459, 0, 460, 461, 462, 463,
8266 : 1323, 1324, 465, 1325, 467, 468, 469, 470, 0, 471,
8267 : 472, 473, 0, 0, 1326, 475, 476, 0, 0, 477,
8268 : 478, 479, 480, 481, 482, 1327, 484, 485, 486, 487,
8269 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
8270 : 497, 498, 1328, 500, 501, 502, 503, 504, 0, 505,
8271 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
8272 : 1329, 517, 518, 519, 0, 520, 521, 522, 523, 524,
8273 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
8274 : 534, 535, 536, 537, 538, 539, 540, 3319, 542, 543,
8275 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
8276 : 553, 554, 555, 556, 1331, 557, 558, 559, 560, 561,
8277 : 562, 563, 564, 1332, 566, 0, 567, 568, 569, 570,
8278 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
8279 : 581, 1333, 583, 0, 584, 585, 1334, 0, 586, 587,
8280 : 588, 589, 590, 591, 592, 593, 0, 594, 1335, 1336,
8281 : 0, 0, 597, 598, 1337, 600, 1338, 1339, 602, 603,
8282 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
8283 : 612, 613, 614, 615, 1341, 0, 616, 617, 618, 619,
8284 : 620, 621, 1342, 0, 623, 624, 625, 626, 627, 628,
8285 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
8286 : 635, 636, 637, 1343, 1344, 1345, 1346, 642, 1347, 1348,
8287 : 1349, 1350, 647, 648, 649, 650, 0, 0, 0, 0,
8288 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 3320,
8289 : 3321, 0, 0, 0, 234, 0, 1271, 717, 3322, 1272,
8290 : 1273, 1274, 778, 1275, 0, 0, 0, 0, 0, 0,
8291 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
8292 : 0, 244, 245, 246, 0, 0, 0, 0, 1276, 0,
8293 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 254,
8294 : 255, 256, 257, -3012, 1277, 260, 1278, 1279, 0, 263,
8295 : 264, 265, 266, 267, 268, 269, 1280, 1281, 270, 271,
8296 : 1282, 1283, 274, 0, 275, 276, 277, 278, 1284, 0,
8297 : 1285, 0, 281, 282, 283, 284, 285, 286, 287, 288,
8298 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
8299 : 0, 298, 299, 300, 6028, 1286, 1287, 1288, 1289, 1290,
8300 : 1291, 1292, 303, 304, 305, 306, 307, 308, 1293, 1294,
8301 : 311, 1295, 312, 0, 313, 314, 315, 316, 317, 318,
8302 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
8303 : 887, 327, 328, 0, 329, 330, 331, 332, 0, 333,
8304 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 1296,
8305 : 343, 344, 345, 346, 1297, 1298, 348, 0, 349, 350,
8306 : 351, 1299, 353, 0, 354, 0, 355, 356, 357, 0,
8307 : 358, 359, 360, 361, 362, 0, 363, 1300, 0, 1301,
8308 : 366, 367, 0, 368, 369, 370, 371, 372, -3012, 374,
8309 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
8310 : 384, 385, 0, 386, 387, 388, 389, 390, 391, 392,
8311 : 1302, 1303, 0, 1304, 0, 396, 0, 0, 399, 400,
8312 : 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 410,
8313 : 1314, 412, 413, 414, 415, 416, 417, 418, 0, 0,
8314 : 419, 1315, 421, 422, -3012, 0, 424, 425, 426, 1316,
8315 : 1317, 427, 428, 429, 430, 431, 432, 433, 434, 435,
8316 : 436, 1318, 438, 439, 440, 441, 442, 443, 444, 445,
8317 : 1319, 447, 1320, 449, 450, 451, 452, 453, 454, 455,
8318 : 456, 457, 1321, 459, 1322, 460, 461, 0, 463, 1323,
8319 : 1324, 465, 1325, 467, 468, 469, 470, 0, 471, 472,
8320 : 473, 0, 0, 1326, 475, 476, 0, 0, 477, 478,
8321 : 479, 480, 481, 482, 1327, 484, 485, 486, 487, 488,
8322 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
8323 : 498, 1328, 500, 501, 502, 503, 504, 0, 505, 506,
8324 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 1329,
8325 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
8326 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
8327 : 535, 536, 537, 538, 539, 540, 1330, 542, 543, 544,
8328 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
8329 : 554, 555, 556, 1331, 557, 558, 559, 560, 561, -3012,
8330 : 563, 564, 1332, 566, 0, 567, 568, 569, 570, 571,
8331 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
8332 : 1333, 583, 0, 584, 585, 1334, 0, 586, 587, 588,
8333 : 589, 590, 591, 592, 593, 0, 594, 1335, 1336, 0,
8334 : 0, 597, 598, 1337, 600, 1338, 1339, 602, 603, 604,
8335 : 605, 606, 6029, 608, 609, 610, 0, 1340, 611, 612,
8336 : 613, 614, 615, 1341, 0, 616, 617, 618, 619, 620,
8337 : 621, 1342, 0, 623, 624, 625, 626, 627, 628, 629,
8338 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
8339 : 636, 637, 1343, 1344, 1345, 1346, 642, 1347, 1348, 1349,
8340 : 1350, 647, 648, 649, 650, 0, -3012, 0, 0, 0,
8341 : 0, 0, 0, 0, 0, 0, 0, 0, 1352, 1353,
8342 : 0, 0, 0, 234, 0, 1271, 717, 1355, 1272, 1273,
8343 : 1274, 778, 1275, 0, 0, 0, 0, 0, 0, 0,
8344 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
8345 : 244, 245, 246, 0, 0, 0, 0, 1276, 0, 0,
8346 : 247, 248, 249, 0, 250, 251, 252, 253, 254, 255,
8347 : 256, 257, 258, 1277, 260, 1278, 1279, 0, 263, 264,
8348 : 265, 266, 267, 268, 269, 1280, 1281, 270, 271, 1282,
8349 : 1283, 274, 0, 275, 276, 277, 278, 1284, 0, 1285,
8350 : 0, 281, 282, 283, 284, 285, 286, 287, 288, 289,
8351 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
8352 : 298, 299, 300, 301, 1286, 1287, 1288, 1289, 1290, 1291,
8353 : 1292, 303, 304, 305, 306, 307, 308, 1293, 1294, 311,
8354 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
8355 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 887,
8356 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
8357 : 335, 336, 337, 0, 338, 339, 340, 341, 1296, 343,
8358 : 344, 345, 346, 1297, 1298, 348, 0, 349, 350, 351,
8359 : 1299, 353, 0, 354, 0, 355, 356, 357, 0, 358,
8360 : 359, 360, 361, 362, 0, 363, 1300, 0, 1301, 366,
8361 : 367, 0, 368, 369, 370, 371, 372, 373, 374, 375,
8362 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
8363 : 385, 0, 386, 387, 388, 389, 390, 391, 392, 1302,
8364 : 1303, 0, 1304, 0, 396, 397, 398, 399, 400, 1305,
8365 : 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 410, 1314,
8366 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
8367 : 1315, 421, 422, 423, 0, 424, 425, 426, 1316, 1317,
8368 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
8369 : 1318, 438, 439, 440, 441, 442, 443, 444, 445, 1319,
8370 : 447, 1320, 449, 450, 451, 452, 453, 454, 455, 456,
8371 : 457, 1321, 459, 0, 460, 461, 462, 463, 1323, 1324,
8372 : 465, 1325, 467, 468, 469, 470, 0, 471, 472, 473,
8373 : 0, 0, 1326, 475, 476, 0, 0, 477, 478, 479,
8374 : 480, 481, 482, 1327, 484, 485, 486, 487, 488, 489,
8375 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
8376 : 1328, 500, 501, 502, 503, 504, 0, 505, 506, 507,
8377 : 508, 509, 510, 511, 512, 513, 514, 515, 1329, 517,
8378 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
8379 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 535,
8380 : 536, 537, 538, 539, 540, 3319, 542, 543, 544, 545,
8381 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
8382 : 555, 556, 1331, 557, 558, 559, 560, 561, 562, 563,
8383 : 564, 1332, 566, 0, 567, 568, 569, 570, 571, 572,
8384 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 1333,
8385 : 583, 0, 584, 585, 1334, 0, 586, 587, 588, 589,
8386 : 590, 591, 592, 593, 0, 594, 1335, 1336, 0, 0,
8387 : 597, 598, 1337, 600, 1338, 1339, 602, 603, 604, 605,
8388 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
8389 : 614, 615, 1341, 0, 616, 617, 618, 619, 620, 621,
8390 : 1342, 0, 623, 624, 625, 626, 627, 628, 629, 0,
8391 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
8392 : 637, 1343, 1344, 1345, 1346, 642, 1347, 1348, 1349, 1350,
8393 : 647, 648, 649, 650, 0, 0, 0, 0, 0, 0,
8394 : 0, 0, 0, 0, 0, 0, 0, 3320, 3321, 234,
8395 : 0, 1271, 717, 0, 1272, 1273, 3322, 778, 1275, 0,
8396 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
8397 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
8398 : 0, 0, 0, 1276, 0, 0, 247, 248, 249, 0,
8399 : 250, 251, 252, 253, 254, 255, 256, 257, 258, 1277,
8400 : 260, 1278, 1279, 0, 263, 264, 265, 266, 267, 268,
8401 : 269, 1280, 1281, 270, 271, 1282, 1283, 274, 0, 275,
8402 : 276, 277, 278, 1284, 0, 1285, 0, 281, 282, 283,
8403 : 284, 285, 286, 287, 288, 289, 290, 291, 0, 292,
8404 : 293, 294, 295, 296, 297, 0, 298, 299, 300, 301,
8405 : 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303, 304, 305,
8406 : 306, 307, 308, 1293, 1294, 311, 0, 312, 0, 313,
8407 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
8408 : 323, 0, 0, 324, 325, 887, 327, 328, 0, 329,
8409 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
8410 : 338, 339, 340, 341, 1296, 343, 344, 345, 346, 1297,
8411 : 1298, 348, 0, 349, 350, 351, 1299, 353, 0, 354,
8412 : 0, 355, 356, 357, 0, 358, 359, 360, 361, 362,
8413 : 0, 363, 1300, 0, 1301, 366, 367, 0, 368, 369,
8414 : 370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
8415 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 387,
8416 : 388, 389, 390, 391, 392, 1302, 1303, 0, 1304, 0,
8417 : 396, 397, 398, 399, 400, 1305, 1306, 1307, 1308, 1309,
8418 : 1310, 1311, 1312, 1313, 410, 1314, 412, 413, 414, 415,
8419 : 416, 417, 418, 0, 0, 419, 1315, 421, 422, 423,
8420 : 0, 424, 425, 426, 1316, 1317, 427, 428, 429, 430,
8421 : 431, 432, 433, 434, 435, 436, 1318, 438, 439, 440,
8422 : 441, 442, 443, 444, 445, 1319, 447, 1320, 449, 450,
8423 : 451, 452, 453, 454, 455, 456, 457, 1321, 459, 0,
8424 : 460, 461, 462, 463, 1323, 1324, 465, 1325, 467, 468,
8425 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
8426 : 476, 0, 0, 477, 478, 479, 480, 481, 482, 1327,
8427 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
8428 : 494, 495, 0, 496, 497, 498, 1328, 500, 501, 502,
8429 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
8430 : 512, 513, 514, 515, 1329, 517, 518, 519, 0, 520,
8431 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
8432 : 531, 532, 0, 533, 534, 535, 536, 537, 538, 539,
8433 : 540, 3499, 3500, 543, 544, 545, 546, 547, 548, 549,
8434 : 550, 551, 0, 552, 553, 554, 555, 556, 1331, 557,
8435 : 558, 559, 560, 561, 562, 563, 564, 1332, 566, 0,
8436 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
8437 : 577, 578, 579, 580, 581, 1333, 583, 0, 584, 585,
8438 : 1334, 0, 586, 587, 588, 589, 590, 591, 592, 593,
8439 : 0, 594, 1335, 1336, 0, 0, 597, 598, 1337, 600,
8440 : 1338, 1339, 602, 603, 604, 605, 606, 607, 608, 609,
8441 : 610, 0, 0, 611, 612, 613, 614, 615, 1341, 0,
8442 : 616, 617, 618, 619, 620, 621, 1342, 0, 623, 624,
8443 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
8444 : 631, 632, 633, 634, 635, 636, 637, 1343, 1344, 1345,
8445 : 1346, 642, 1347, 1348, 1349, 1350, 647, 648, 649, 650,
8446 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8447 : 0, 0, 0, 3501, 3502, 234, 0, 1271, 717, 0,
8448 : 1272, 1273, 3322, 778, 1275, 0, 0, 0, 0, 0,
8449 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
8450 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 1276,
8451 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
8452 : 254, 255, 256, 257, 258, 1277, 260, 1278, 1279, 0,
8453 : 263, 264, 265, 266, 267, 268, 269, 1280, 1281, 270,
8454 : 271, 1282, 1283, 274, 0, 275, 276, 277, 278, 1284,
8455 : 0, 1285, 0, 281, 282, 283, 284, 285, 286, 287,
8456 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
8457 : 297, 0, 298, 299, 300, 301, 1286, 1287, 1288, 1289,
8458 : 1290, 1291, 1292, 303, 304, 305, 306, 307, 308, 1293,
8459 : 1294, 311, 0, 312, 0, 313, 314, 315, 316, 317,
8460 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
8461 : 325, 887, 327, 328, 0, 329, 330, 331, 332, 0,
8462 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
8463 : 1296, 343, 344, 345, 346, 1297, 1298, 348, 0, 349,
8464 : 350, 351, 1299, 353, 0, 354, 0, 355, 356, 357,
8465 : 0, 358, 359, 360, 361, 362, 0, 363, 1300, 0,
8466 : 1301, 366, 367, 0, 368, 369, 370, 371, 372, 373,
8467 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
8468 : 383, 384, 385, 0, 386, 387, 388, 389, 390, 391,
8469 : 392, 1302, 1303, 0, 1304, 0, 396, 397, 398, 399,
8470 : 400, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313,
8471 : 410, 1314, 412, 413, 414, 415, 416, 417, 418, 0,
8472 : 0, 419, 1315, 421, 422, 423, 0, 424, 425, 426,
8473 : 1316, 1317, 427, 428, 429, 430, 431, 432, 433, 434,
8474 : 435, 436, 1318, 438, 439, 440, 441, 442, 443, 444,
8475 : 445, 1319, 447, 1320, 449, 450, 451, 452, 453, 454,
8476 : 455, 456, 457, 1321, 459, 0, 460, 461, 462, 463,
8477 : 1323, 1324, 465, 1325, 467, 468, 469, 470, 0, 471,
8478 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
8479 : 478, 479, 480, 481, 482, 1327, 484, 485, 486, 487,
8480 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
8481 : 497, 498, 1328, 500, 501, 502, 503, 504, 0, 505,
8482 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
8483 : 1329, 517, 518, 519, 0, 520, 521, 522, 523, 524,
8484 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
8485 : 534, 535, 536, 537, 538, 539, 540, 3319, 542, 543,
8486 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
8487 : 553, 554, 555, 556, 1331, 557, 558, 559, 560, 561,
8488 : 562, 563, 564, 1332, 566, 0, 567, 568, 569, 570,
8489 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
8490 : 581, 1333, 583, 0, 584, 585, 1334, 0, 586, 587,
8491 : 588, 589, 590, 591, 592, 593, 0, 594, 1335, 1336,
8492 : 0, 0, 597, 598, 1337, 600, 1338, 1339, 602, 603,
8493 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
8494 : 612, 613, 614, 615, 1341, 0, 616, 617, 618, 619,
8495 : 620, 621, 1342, 0, 623, 624, 625, 626, 627, 628,
8496 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
8497 : 635, 636, 637, 1343, 1344, 1345, 1346, 642, 1347, 1348,
8498 : 1349, 1350, 647, 648, 649, 650, 0, 0, 0, 0,
8499 : 0, 0, 234, 0, 1271, 717, 0, 1272, 1273, 0,
8500 : 778, 1275, 0, 0, 0, 0, 0, 0, 3322, 235,
8501 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
8502 : 245, 246, 0, 0, 0, 0, 1276, 0, 0, 247,
8503 : 248, 249, 0, 250, 251, 252, 253, 254, 255, 256,
8504 : 257, 258, 1277, 260, 1278, 1279, 0, 263, 4774, 265,
8505 : 266, 267, 268, 269, 1280, 1281, 270, 271, 1282, 1283,
8506 : 274, 0, 275, 276, 277, 278, 1284, 0, 1285, 0,
8507 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
8508 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 298,
8509 : 299, 300, 301, 1286, 1287, 1288, 1289, 1290, 1291, 1292,
8510 : 303, 304, 305, 306, 307, 308, 1293, 1294, 311, 0,
8511 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
8512 : 320, 321, 322, 323, 0, 0, 324, 325, 887, 327,
8513 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
8514 : 336, 337, 0, 338, 339, 340, 341, 1296, 343, 344,
8515 : 345, 346, 1297, 1298, 348, 0, 349, 350, 351, 1299,
8516 : 353, 0, 354, 0, 355, 356, 357, 0, 358, 359,
8517 : 360, 361, 362, 0, 363, 1300, 0, 1301, 366, 367,
8518 : 0, 368, 369, 370, 371, 372, 373, 374, 375, 376,
8519 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
8520 : 0, 386, 387, 388, 389, 390, 391, 392, 1302, 1303,
8521 : 0, 1304, 0, 396, 397, 398, 399, 400, 1305, 1306,
8522 : 1307, 1308, 1309, 1310, 1311, 1312, 1313, 410, 1314, 412,
8523 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 1315,
8524 : 421, 422, 423, 0, 424, 425, 426, 1316, 1317, 427,
8525 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 1318,
8526 : 438, 439, 440, 441, 442, 443, 444, 445, 1319, 447,
8527 : 1320, 449, 450, 451, 452, 453, 454, 455, 456, 457,
8528 : 1321, 459, 0, 460, 461, 462, 463, 1323, 1324, 465,
8529 : 1325, 467, 468, 469, 470, 0, 471, 472, 473, 0,
8530 : 0, 474, 475, 476, 0, 0, 477, 478, 479, 480,
8531 : 481, 482, 1327, 484, 485, 486, 487, 488, 489, 490,
8532 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 1328,
8533 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
8534 : 509, 510, 511, 512, 513, 514, 515, 1329, 517, 518,
8535 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
8536 : 528, 529, 530, 531, 532, 0, 533, 534, 535, 536,
8537 : 537, 538, 539, 540, 3319, 542, 543, 544, 545, 546,
8538 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
8539 : 556, 1331, 557, 558, 559, 560, 561, 562, 563, 564,
8540 : 1332, 566, 0, 567, 568, 569, 570, 571, 572, 573,
8541 : 574, 575, 576, 577, 578, 579, 580, 581, 1333, 583,
8542 : 0, 584, 585, 1334, 0, 586, 587, 588, 589, 590,
8543 : 591, 592, 593, 0, 594, 1335, 1336, 0, 0, 597,
8544 : 598, 1337, 600, 1338, 1339, 602, 603, 604, 605, 606,
8545 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
8546 : 615, 1341, 0, 616, 617, 618, 619, 620, 621, 1342,
8547 : 0, 623, 624, 625, 626, 627, 628, 629, 0, 0,
8548 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
8549 : 1343, 1344, 1345, 1346, 642, 1347, 1348, 1349, 1350, 647,
8550 : 648, 649, 650, 0, 0, 0, 0, 0, 0, 234,
8551 : 0, 1271, 717, 0, 1272, 1273, 0, 778, 1275, 0,
8552 : 0, 0, 0, 0, 0, 3322, 235, 236, 237, 238,
8553 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
8554 : 0, 0, 0, 1276, 0, 0, 247, 248, 249, 0,
8555 : 250, 251, 252, 253, 254, 255, 256, 257, 258, 1277,
8556 : 260, 1278, 1279, 0, 263, 264, 265, 266, 267, 268,
8557 : 269, 1280, 1281, 270, 271, 1282, 1283, 274, 0, 275,
8558 : 276, 277, 278, 1284, 0, 1285, 0, 281, 282, 283,
8559 : 284, 285, 286, 287, 288, 289, 290, 291, 0, 292,
8560 : 293, 294, 295, 296, 297, 0, 298, 299, 300, 301,
8561 : 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303, 304, 305,
8562 : 306, 307, 308, 1293, 1294, 311, 0, 312, 0, 313,
8563 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
8564 : 323, 0, 0, 324, 325, 887, 327, 328, 0, 329,
8565 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
8566 : 338, 339, 340, 341, 1296, 343, 344, 345, 346, 1297,
8567 : 1298, 348, 0, 349, 350, 351, 1299, 353, 0, 354,
8568 : 0, 355, 356, 357, 0, 358, 359, 360, 361, 362,
8569 : 0, 363, 1300, 0, 1301, 366, 367, 0, 368, 369,
8570 : 370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
8571 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 387,
8572 : 388, 389, 390, 391, 392, 1302, 1303, 0, 1304, 0,
8573 : 396, 397, 398, 399, 400, 1305, 1306, 1307, 1308, 1309,
8574 : 1310, 1311, 1312, 1313, 410, 1314, 412, 413, 414, 415,
8575 : 416, 417, 418, 0, 0, 419, 1315, 421, 422, 423,
8576 : 0, 424, 425, 426, 1316, 1317, 427, 428, 429, 430,
8577 : 431, 432, 433, 434, 435, 436, 1318, 438, 439, 440,
8578 : 441, 442, 443, 444, 445, 1319, 447, 1320, 449, 450,
8579 : 451, 452, 453, 454, 455, 456, 457, 1321, 459, 0,
8580 : 460, 461, 462, 463, 1323, 1324, 465, 1325, 467, 468,
8581 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
8582 : 476, 0, 0, 477, 478, 479, 480, 481, 482, 1327,
8583 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
8584 : 494, 495, 0, 496, 497, 498, 1328, 500, 501, 502,
8585 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
8586 : 512, 513, 514, 515, 1329, 517, 518, 519, 0, 520,
8587 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
8588 : 531, 532, 0, 533, 534, 535, 536, 537, 538, 539,
8589 : 540, 3319, 542, 543, 544, 545, 546, 547, 548, 549,
8590 : 550, 551, 0, 552, 553, 554, 555, 556, 1331, 557,
8591 : 558, 559, 560, 561, 562, 563, 564, 1332, 566, 0,
8592 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
8593 : 577, 578, 579, 580, 581, 1333, 583, 0, 584, 585,
8594 : 1334, 0, 586, 587, 588, 589, 590, 591, 592, 593,
8595 : 0, 594, 1335, 1336, 0, 0, 597, 598, 1337, 600,
8596 : 1338, 1339, 602, 603, 604, 605, 606, 607, 608, 609,
8597 : 610, 0, 0, 611, 612, 613, 614, 615, 1341, 0,
8598 : 616, 617, 618, 619, 620, 621, 1342, 0, 623, 624,
8599 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
8600 : 631, 632, 633, 634, 635, 636, 637, 1343, 1344, 1345,
8601 : 1346, 4834, 1347, 1348, 1349, 1350, 647, 648, 649, 650,
8602 : 0, 0, 0, 0, 0, 0, 234, 0, 0, 0,
8603 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8604 : 0, 0, 3322, 235, 236, 237, 238, 239, 240, 241,
8605 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
8606 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
8607 : 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
8608 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 1281,
8609 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
8610 : 1284, 0, 1285, 0, 281, 282, 283, 284, 285, 286,
8611 : 287, 288, 289, 290, 291, 0, 292, 293, 294, 295,
8612 : 296, 297, 0, 298, 299, 300, 301, 1286, 1287, 1288,
8613 : 1289, 1290, 1291, 1292, 303, 304, 305, 306, 307, 308,
8614 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
8615 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
8616 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
8617 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
8618 : 341, 342, 343, 344, 345, 346, 1297, 0, 348, 0,
8619 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
8620 : 357, 0, 358, 359, 360, 361, 362, 0, 363, 1300,
8621 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 372,
8622 : 373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
8623 : 382, 383, 384, 385, 0, 386, 387, 388, 389, 390,
8624 : 391, 392, 393, 394, 0, 395, 0, 396, 397, 398,
8625 : 399, 400, 3470, 1306, 1307, 1308, 1309, 1310, 1311, 1312,
8626 : 1313, 3471, 1314, 412, 413, 414, 415, 416, 417, 418,
8627 : 3472, 0, 419, 1315, 421, 422, 423, 0, 424, 425,
8628 : 426, 1316, 1317, 427, 428, 429, 430, 431, 432, 433,
8629 : 434, 435, 436, 1318, 438, 439, 440, 441, 442, 443,
8630 : 444, 445, 446, 447, 448, 449, 450, 451, 452, 453,
8631 : 454, 455, 456, 457, 1321, 459, 0, 460, 461, 462,
8632 : 463, 0, 1324, 465, 466, 467, 468, 469, 470, 0,
8633 : 471, 472, 473, 0, 862, 474, 475, 476, 0, 0,
8634 : 477, 478, 479, 480, 481, 482, 1327, 484, 485, 486,
8635 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
8636 : 496, 497, 498, 1328, 500, 501, 502, 503, 504, 0,
8637 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
8638 : 515, 516, 517, 518, 519, 0, 520, 521, 522, 523,
8639 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
8640 : 533, 534, 535, 536, 537, 538, 539, 540, 541, 3473,
8641 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 40,
8642 : 552, 553, 554, 555, 556, 1331, 557, 558, 559, 560,
8643 : 561, 562, 563, 564, 565, 566, 0, 567, 568, 569,
8644 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
8645 : 580, 581, 1333, 583, 0, 584, 585, 1334, 44, 586,
8646 : 587, 588, 589, 590, 591, 592, 593, 0, 594, 595,
8647 : 596, 0, 0, 597, 598, 1337, 600, 1338, 0, 602,
8648 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
8649 : 611, 612, 613, 614, 615, 1341, 0, 616, 617, 618,
8650 : 619, 620, 1206, 622, 0, 623, 624, 625, 626, 627,
8651 : 628, 629, 0, 0, 630, 0, 49, 631, 632, 633,
8652 : 634, 635, 636, 637, 1343, 1344, 1345, 1346, 642, 1347,
8653 : 1348, 1349, 1350, 3474, 648, 649, 650, 0, 0, 0,
8654 : 50, 0, 0, 234, 0, 0, 0, 0, 0, 0,
8655 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 3475,
8656 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
8657 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
8658 : 247, 248, 249, 0, 250, 251, 252, 253, 254, 255,
8659 : 256, 257, 258, 259, 260, 261, 262, 0, 263, 264,
8660 : 265, 266, 267, 268, 269, 0, 1281, 270, 271, 272,
8661 : 273, 274, 0, 275, 276, 277, 278, 1284, 0, 1285,
8662 : 0, 281, 282, 283, 284, 285, 286, 287, 288, 289,
8663 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
8664 : 298, 299, 300, 301, 1286, 1287, 1288, 1289, 1290, 1291,
8665 : 1292, 303, 304, 305, 306, 307, 308, 309, 310, 311,
8666 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
8667 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
8668 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
8669 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
8670 : 344, 345, 346, 1297, 0, 348, 0, 349, 350, 351,
8671 : 352, 353, 0, 354, 0, 355, 356, 357, 0, 358,
8672 : 359, 360, 361, 362, 0, 363, 1300, 0, 365, 366,
8673 : 367, 0, 368, 369, 370, 371, 372, 373, 374, 375,
8674 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
8675 : 385, 0, 386, 387, 388, 389, 390, 391, 392, 393,
8676 : 394, 0, 395, 0, 396, 397, 398, 399, 400, 3470,
8677 : 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 3471, 1314,
8678 : 412, 413, 414, 415, 416, 417, 418, 3472, 0, 419,
8679 : 1315, 421, 422, 423, 0, 424, 425, 426, 1316, 1317,
8680 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
8681 : 1318, 438, 439, 440, 441, 442, 443, 444, 445, 446,
8682 : 447, 448, 449, 450, 451, 452, 453, 454, 455, 456,
8683 : 457, 1321, 459, 0, 460, 461, 462, 463, 0, 1324,
8684 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
8685 : 0, 862, 474, 475, 476, 0, 0, 477, 478, 479,
8686 : 480, 481, 482, 1327, 484, 485, 486, 487, 488, 489,
8687 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
8688 : 1328, 500, 501, 502, 503, 504, 0, 505, 506, 507,
8689 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
8690 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
8691 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 535,
8692 : 536, 537, 538, 539, 540, 541, 3473, 543, 544, 545,
8693 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
8694 : 555, 556, 1331, 557, 558, 559, 560, 561, 562, 563,
8695 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
8696 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 1333,
8697 : 583, 0, 584, 585, 1334, 0, 586, 587, 588, 589,
8698 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
8699 : 597, 598, 1337, 600, 1338, 0, 602, 603, 604, 605,
8700 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
8701 : 614, 615, 1341, 0, 616, 617, 618, 619, 620, 621,
8702 : 622, 0, 623, 624, 625, 626, 627, 628, 629, 0,
8703 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
8704 : 637, 1343, 1344, 1345, 1346, 642, 1347, 1348, 1349, 1350,
8705 : 3474, 648, 649, 650, 0, 0, 0, 0, 0, 0,
8706 : 234, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8707 : 0, 0, 0, 0, 0, 0, 3475, 235, 236, 237,
8708 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
8709 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
8710 : 0, 250, 251, 252, 253, 254, 255, 256, 257, 258,
8711 : 259, 260, 261, 262, 0, 263, 264, 265, 266, 267,
8712 : 268, 269, 0, 1281, 270, 271, 272, 273, 274, 0,
8713 : 275, 276, 277, 278, 1284, 0, 1285, 0, 281, 282,
8714 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 0,
8715 : 292, 293, 294, 295, 296, 297, 0, 298, 299, 300,
8716 : 301, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303, 304,
8717 : 305, 306, 307, 308, 309, 310, 311, 0, 312, 0,
8718 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
8719 : 322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
8720 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
8721 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
8722 : 1297, 0, 348, 0, 349, 350, 351, 352, 353, 0,
8723 : 354, 0, 355, 356, 357, 0, 358, 359, 360, 361,
8724 : 362, 0, 363, 1300, 0, 365, 366, 367, 0, 368,
8725 : 369, 370, 371, 372, 373, 374, 375, 376, 377, 0,
8726 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
8727 : 387, 388, 389, 390, 391, 392, 393, 394, 0, 395,
8728 : 0, 396, 397, 398, 399, 400, 3470, 1306, 1307, 1308,
8729 : 1309, 1310, 1311, 1312, 1313, 410, 1314, 412, 413, 414,
8730 : 415, 416, 417, 418, 0, 0, 419, 1315, 421, 422,
8731 : 423, 0, 424, 425, 426, 1316, 1317, 427, 428, 429,
8732 : 430, 431, 432, 433, 434, 435, 436, 1318, 438, 439,
8733 : 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
8734 : 450, 451, 452, 453, 454, 455, 456, 457, 1321, 459,
8735 : 0, 460, 461, 462, 463, 0, 1324, 465, 466, 467,
8736 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
8737 : 475, 476, 0, 0, 477, 478, 479, 480, 481, 482,
8738 : 1327, 484, 485, 486, 487, 488, 489, 490, 491, 492,
8739 : 493, 494, 495, 0, 496, 497, 498, 1328, 500, 501,
8740 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
8741 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
8742 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
8743 : 530, 531, 532, 0, 533, 534, 535, 536, 537, 538,
8744 : 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
8745 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 1331,
8746 : 557, 558, 559, 560, 561, 562, 563, 564, 565, 566,
8747 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
8748 : 576, 577, 578, 579, 580, 581, 1333, 583, 0, 584,
8749 : 585, 1334, 0, 586, 587, 588, 589, 590, 591, 592,
8750 : 593, 0, 594, 595, 596, 0, 0, 597, 598, 1337,
8751 : 600, 1338, 0, 602, 603, 604, 605, 606, 607, 608,
8752 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 1341,
8753 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
8754 : 624, 625, 626, 627, 628, 629, 0, 0, 630, 0,
8755 : 0, 631, 632, 633, 634, 635, 636, 637, 1343, 1344,
8756 : 1345, 1346, 642, 1347, 1348, 1349, 1350, 647, 648, 649,
8757 : 650, 0, 0, 0, 0, 0, 0, 234, 0, 0,
8758 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8759 : 0, 0, 0, 3920, 235, 236, 237, 238, 239, 240,
8760 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
8761 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
8762 : 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
8763 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
8764 : 1281, 270, 271, 272, 273, 274, 0, 275, 276, 277,
8765 : 278, 1284, 0, 1285, 0, 281, 282, 283, 284, 285,
8766 : 286, 287, 288, 289, 290, 291, 0, 292, 293, 294,
8767 : 295, 296, 297, 0, 298, 299, 300, 301, 1286, 1287,
8768 : 1288, 1289, 1290, 1291, 1292, 303, 304, 305, 306, 307,
8769 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
8770 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
8771 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
8772 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
8773 : 340, 341, 342, 343, 344, 345, 346, 1297, 0, 348,
8774 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
8775 : 356, 357, 0, 358, 359, 360, 361, 362, 0, 363,
8776 : 1300, 0, 365, 366, 367, 0, 368, 369, 370, 371,
8777 : 372, 373, 374, 375, 376, 377, 0, 378, 379, 380,
8778 : 381, 382, 383, 384, 385, 0, 386, 387, 388, 389,
8779 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 397,
8780 : 398, 399, 400, 3470, 1306, 1307, 1308, 1309, 1310, 1311,
8781 : 1312, 1313, 3471, 1314, 412, 413, 414, 415, 416, 417,
8782 : 418, 0, 0, 419, 1315, 421, 422, 423, 0, 424,
8783 : 425, 426, 1316, 1317, 427, 428, 429, 430, 431, 432,
8784 : 433, 434, 435, 436, 1318, 438, 439, 440, 441, 442,
8785 : 443, 444, 445, 446, 447, 448, 449, 450, 451, 452,
8786 : 453, 454, 455, 456, 457, 1321, 459, 0, 460, 461,
8787 : 462, 463, 0, 1324, 465, 466, 467, 468, 469, 470,
8788 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
8789 : 0, 477, 478, 479, 480, 481, 482, 1327, 484, 485,
8790 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
8791 : 0, 496, 497, 498, 1328, 500, 501, 502, 503, 504,
8792 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
8793 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
8794 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
8795 : 0, 533, 534, 535, 536, 537, 538, 539, 540, 541,
8796 : 3473, 543, 544, 545, 546, 547, 548, 549, 550, 551,
8797 : 0, 552, 553, 554, 555, 556, 1331, 557, 558, 559,
8798 : 560, 561, 562, 563, 564, 565, 566, 0, 567, 568,
8799 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
8800 : 579, 580, 581, 1333, 583, 0, 584, 585, 1334, 0,
8801 : 586, 587, 588, 589, 590, 591, 592, 593, 0, 594,
8802 : 595, 596, 0, 0, 597, 598, 1337, 600, 1338, 0,
8803 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
8804 : 0, 611, 612, 613, 614, 615, 1341, 0, 616, 617,
8805 : 618, 619, 620, 621, 622, 0, 623, 624, 625, 626,
8806 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
8807 : 633, 634, 635, 636, 637, 1343, 1344, 1345, 1346, 642,
8808 : 1347, 1348, 1349, 1350, 3474, 648, 649, 650, 0, 0,
8809 : 0, 0, 0, 0, 234, 0, 0, 0, 0, 0,
8810 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8811 : 56, 235, 236, 237, 238, 239, 240, 241, 242, 243,
8812 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
8813 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 254,
8814 : 255, 256, 257, 258, 259, 260, 261, 262, 0, 263,
8815 : 264, 265, 266, 267, 268, 269, 0, 1281, 270, 271,
8816 : 272, 273, 274, 0, 275, 276, 277, 278, 1284, 0,
8817 : 1285, 0, 281, 282, 283, 284, 285, 286, 287, 288,
8818 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
8819 : 0, 298, 299, 300, 301, 1286, 1287, 1288, 1289, 1290,
8820 : 1291, 1292, 303, 304, 305, 306, 307, 308, 309, 310,
8821 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
8822 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
8823 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
8824 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
8825 : 343, 344, 345, 346, 1297, 0, 348, 0, 349, 350,
8826 : 351, 352, 353, 0, 354, 0, 355, 356, 357, 0,
8827 : 358, 359, 360, 361, 362, 0, 363, 1300, 0, 365,
8828 : 366, 367, 0, 368, 369, 370, 371, 372, 373, 374,
8829 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
8830 : 384, 385, 0, 386, 387, 388, 389, 390, 391, 392,
8831 : 393, 394, 0, 395, 0, 396, 397, 398, 399, 400,
8832 : 3470, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 410,
8833 : 1314, 412, 413, 414, 415, 416, 417, 418, 0, 0,
8834 : 419, 1315, 421, 422, 423, 0, 424, 425, 426, 1316,
8835 : 1317, 427, 428, 429, 430, 431, 432, 433, 434, 435,
8836 : 436, 1318, 438, 439, 440, 441, 442, 443, 444, 445,
8837 : 446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
8838 : 456, 457, 1321, 459, 0, 460, 461, 462, 463, 0,
8839 : 1324, 465, 466, 467, 468, 469, 470, 0, 471, 472,
8840 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
8841 : 479, 480, 481, 482, 1327, 484, 485, 486, 487, 488,
8842 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
8843 : 498, 1328, 500, 501, 502, 503, 504, 0, 505, 506,
8844 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
8845 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
8846 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
8847 : 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
8848 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
8849 : 554, 555, 556, 1331, 557, 558, 559, 560, 561, 562,
8850 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
8851 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
8852 : 1333, 583, 0, 584, 585, 1334, 0, 586, 587, 588,
8853 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
8854 : 0, 597, 598, 1337, 600, 1338, 0, 602, 603, 604,
8855 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
8856 : 613, 614, 615, 1341, 0, 616, 617, 618, 619, 620,
8857 : 621, 622, 0, 623, 624, 625, 626, 627, 628, 629,
8858 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
8859 : 636, 637, 1343, 1344, 1345, 1346, 642, 1347, 1348, 1349,
8860 : 1350, 647, 648, 649, 650, 0, 0, 0, 0, 0,
8861 : 0, 234, 0, 0, 0, 0, 0, 0, 0, 0,
8862 : 0, 0, 0, 0, 0, 0, 0, 4922, 235, 236,
8863 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
8864 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
8865 : 249, 0, 250, 251, 252, 253, 254, 255, 256, 257,
8866 : 258, 259, 260, 261, 262, 0, 263, 264, 265, 266,
8867 : 267, 268, 269, 0, 1281, 270, 271, 272, 273, 274,
8868 : 0, 275, 276, 277, 278, 1284, 0, 1285, 0, 281,
8869 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
8870 : 0, 292, 293, 294, 295, 296, 297, 0, 298, 299,
8871 : 300, 301, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303,
8872 : 304, 305, 306, 307, 308, 309, 310, 311, 0, 312,
8873 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
8874 : 321, 322, 323, 0, 0, 324, 325, 326, 327, 328,
8875 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
8876 : 337, 0, 338, 339, 340, 341, 342, 343, 344, 345,
8877 : 346, 1297, 0, 348, 0, 349, 350, 351, 352, 353,
8878 : 0, 354, 0, 355, 356, 357, 0, 358, 359, 360,
8879 : 361, 362, 0, 363, 1300, 0, 365, 366, 367, 0,
8880 : 368, 369, 370, 371, 372, 373, 374, 375, 376, 377,
8881 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
8882 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 0,
8883 : 395, 0, 396, 397, 398, 399, 400, 3470, 1306, 1307,
8884 : 1308, 1309, 1310, 1311, 1312, 1313, 410, 1314, 412, 413,
8885 : 414, 415, 416, 417, 418, 0, 0, 419, 1315, 421,
8886 : 422, 423, 0, 424, 425, 426, 1316, 1317, 427, 428,
8887 : 429, 430, 431, 432, 433, 434, 435, 436, 1318, 438,
8888 : 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
8889 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 1321,
8890 : 459, 0, 460, 461, 462, 463, 0, 1324, 465, 466,
8891 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
8892 : 474, 475, 476, 0, 0, 477, 478, 479, 480, 481,
8893 : 482, 1327, 484, 485, 486, 487, 488, 489, 490, 491,
8894 : 492, 493, 494, 495, 0, 496, 497, 498, 1328, 500,
8895 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
8896 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
8897 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
8898 : 529, 530, 531, 532, 0, 533, 534, 535, 536, 537,
8899 : 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
8900 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 556,
8901 : 1331, 557, 558, 559, 560, 561, 562, 563, 564, 565,
8902 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
8903 : 575, 576, 577, 578, 579, 580, 581, 1333, 583, 0,
8904 : 584, 585, 1334, 0, 586, 587, 588, 589, 590, 591,
8905 : 592, 593, 0, 594, 595, 596, 0, 0, 597, 598,
8906 : 1337, 600, 1338, 0, 602, 603, 604, 605, 606, 607,
8907 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
8908 : 1341, 0, 616, 617, 618, 619, 620, 621, 622, 0,
8909 : 623, 624, 625, 626, 627, 628, 629, 0, 0, 630,
8910 : 0, 0, 631, 632, 633, 634, 635, 636, 637, 1343,
8911 : 1344, 1345, 1346, 642, 1347, 1348, 1349, 1350, 647, 648,
8912 : 649, 650, 0, 0, 0, 0, 0, 0, 967, 0,
8913 : 1603, 717, 0, 0, 0, 0, 778, 0, 0, 0,
8914 : 0, 0, 0, 0, 6134, 235, 236, 237, 238, 239,
8915 : 240, 241, 242, 243, 0, 244, 245, 246, 0, 0,
8916 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
8917 : 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
8918 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
8919 : 0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
8920 : 277, 278, 279, 0, 280, 0, 281, 282, 283, 284,
8921 : 285, 286, 287, 288, 289, 290, 291, 0, 292, 293,
8922 : 294, 295, 296, 297, 0, 298, 299, 300, 301, 0,
8923 : 0, 0, 302, 0, 0, 0, 303, 304, 305, 306,
8924 : 307, 308, 309, 310, 311, 5922, 312, 0, 313, 314,
8925 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
8926 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
8927 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
8928 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 1829,
8929 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
8930 : 355, 356, 357, 0, 358, 359, 360, 361, 362, 0,
8931 : 363, 364, 0, 365, 366, 367, 0, 368, 369, 370,
8932 : 371, 372, 373, 374, 375, 376, 377, 0, 378, 379,
8933 : 380, 381, 382, 383, 384, 385, 0, 386, 387, 388,
8934 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
8935 : 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
8936 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
8937 : 417, 418, 0, 0, 419, 420, 421, 422, 423, 0,
8938 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
8939 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
8940 : 442, 443, 444, 445, 446, 447, 448, 449, 450, 451,
8941 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
8942 : 461, 462, 463, 0, 464, 465, 466, 467, 468, 469,
8943 : 470, 0, 471, 472, 473, 1830, 0, 474, 475, 476,
8944 : 0, 0, 477, 478, 479, 480, 481, 482, 483, 484,
8945 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
8946 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
8947 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
8948 : 513, 514, 515, 516, 517, 518, 519, 0, 520, 521,
8949 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
8950 : 532, 0, 533, 534, 535, 536, 537, 538, 539, 540,
8951 : 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
8952 : 551, 0, 552, 553, 554, 555, 556, 0, 557, 558,
8953 : 559, 560, 561, 562, 563, 564, 565, 566, 0, 567,
8954 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
8955 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
8956 : 0, 586, 587, 588, 589, 590, 591, 592, 593, 0,
8957 : 594, 595, 596, 0, 0, 597, 598, 599, 600, 601,
8958 : 1831, 602, 603, 604, 605, 606, 607, 608, 609, 610,
8959 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
8960 : 617, 618, 619, 620, 621, 622, 0, 623, 624, 625,
8961 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
8962 : 632, 633, 634, 635, 636, 637, 638, 639, 640, 641,
8963 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 0,
8964 : 0, 0, 0, 0, 0, 967, 0, 0, 0, 0,
8965 : 0, 0, 1604, 1605, 5923, 0, 0, 0, 0, 0,
8966 : 0, 5924, 235, 236, 237, 238, 239, 240, 241, 242,
8967 : 243, 0, 244, 245, 246, 3, 4, 0, 0, 0,
8968 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
8969 : 254, 255, 256, 257, 258, 259, 260, 261, 262, 0,
8970 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
8971 : 271, 272, 273, 274, 0, 275, 276, 277, 278, 279,
8972 : 0, 280, 0, 281, 282, 283, 284, 285, 286, 287,
8973 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
8974 : 297, 0, 298, 299, 300, 301, 0, 0, 0, 302,
8975 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 309,
8976 : 310, 311, 0, 312, 0, 313, 314, 315, 316, 317,
8977 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
8978 : 325, 326, 327, 328, 0, 329, 330, 331, 332, 0,
8979 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
8980 : 342, 343, 344, 345, 346, 347, 0, 348, 0, 349,
8981 : 350, 351, 352, 353, 0, 354, 0, 355, 356, 357,
8982 : 0, 358, 359, 360, 361, 362, 0, 363, 364, 0,
8983 : 365, 366, 367, 0, 368, 369, 370, 371, 372, 373,
8984 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
8985 : 383, 384, 385, 0, 386, 387, 388, 389, 390, 391,
8986 : 392, 393, 394, 0, 395, 0, 396, 397, 398, 399,
8987 : 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
8988 : 410, 411, 412, 413, 414, 415, 416, 417, 418, 0,
8989 : 0, 419, 420, 421, 422, 423, 0, 424, 425, 426,
8990 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
8991 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
8992 : 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
8993 : 455, 456, 457, 458, 459, 0, 460, 461, 462, 463,
8994 : 0, 464, 465, 466, 467, 468, 469, 470, 0, 471,
8995 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
8996 : 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
8997 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
8998 : 497, 498, 499, 500, 501, 502, 503, 504, 0, 505,
8999 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
9000 : 516, 517, 518, 519, 0, 520, 521, 522, 523, 524,
9001 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
9002 : 534, 535, 536, 537, 538, 539, 540, 541, 542, 543,
9003 : 544, 545, 546, 547, 548, 549, 550, 551, 40, 552,
9004 : 553, 554, 555, 556, 0, 557, 558, 559, 560, 561,
9005 : 562, 563, 564, 565, 566, 0, 567, 568, 569, 570,
9006 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
9007 : 581, 582, 583, 0, 584, 585, 0, 44, 586, 587,
9008 : 588, 589, 590, 591, 592, 593, 0, 594, 595, 596,
9009 : 0, 0, 597, 598, 599, 600, 601, 0, 602, 603,
9010 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
9011 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
9012 : 620, 1206, 622, 0, 623, 624, 625, 626, 627, 628,
9013 : 629, 0, 0, 630, 0, 49, 631, 632, 633, 634,
9014 : 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
9015 : 645, 646, 647, 648, 649, 650, 1046, 0, 0, 50,
9016 : 0, 0, 234, 0, 0, 0, 0, 0, 0, 0,
9017 : 0, 0, 0, 0, 0, 0, 0, 0, 56, 235,
9018 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
9019 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
9020 : 248, 249, 0, 250, 251, 252, 253, 254, 255, 256,
9021 : 257, 258, 259, 260, 261, 262, 0, 263, 264, 265,
9022 : 266, 267, 268, 269, 0, 0, 270, 271, 272, 273,
9023 : 274, 0, 275, 276, 277, 278, 279, 0, 280, 0,
9024 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
9025 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 298,
9026 : 299, 300, 301, 0, 0, 0, 302, 0, 0, 0,
9027 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 0,
9028 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
9029 : 320, 321, 322, 323, 0, 0, 324, 325, 326, 327,
9030 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
9031 : 336, 337, 0, 338, 339, 340, 341, 342, 343, 344,
9032 : 345, 346, 347, 0, 348, 0, 349, 350, 351, 352,
9033 : 353, 0, 354, 0, 355, 356, 357, 0, 358, 359,
9034 : 360, 361, 362, 0, 363, 364, 0, 365, 366, 367,
9035 : 0, 368, 369, 370, 371, 372, 373, 374, 375, 376,
9036 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
9037 : 0, 386, 387, 388, 389, 390, 391, 392, 393, 394,
9038 : 0, 395, 0, 396, 397, 398, 399, 400, 401, 402,
9039 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
9040 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 420,
9041 : 421, 422, 423, 0, 424, 425, 426, 0, 0, 427,
9042 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
9043 : 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
9044 : 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
9045 : 458, 459, 0, 460, 461, 462, 463, 0, 464, 465,
9046 : 466, 467, 468, 469, 470, 0, 471, 472, 473, 0,
9047 : 0, 474, 475, 476, 0, 0, 477, 478, 479, 480,
9048 : 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
9049 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 499,
9050 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
9051 : 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
9052 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
9053 : 528, 529, 530, 531, 532, 0, 533, 534, 535, 536,
9054 : 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
9055 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
9056 : 556, 0, 557, 558, 559, 560, 561, 562, 563, 564,
9057 : 565, 566, 0, 567, 568, 569, 570, 571, 572, 573,
9058 : 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
9059 : 0, 584, 585, 0, 0, 586, 587, 588, 589, 590,
9060 : 591, 592, 593, 0, 594, 595, 596, 0, 0, 597,
9061 : 598, 599, 600, 601, 0, 602, 603, 604, 605, 606,
9062 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
9063 : 615, 0, 0, 616, 617, 618, 619, 620, 621, 622,
9064 : 0, 623, 624, 625, 626, 627, 628, 629, 0, 0,
9065 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
9066 : 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
9067 : 648, 649, 650, 0, 0, 0, 0, 0, 0, 658,
9068 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9069 : 0, 0, 0, 0, 0, 5666, 235, 236, 237, 238,
9070 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
9071 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
9072 : 250, 251, 252, 253, 0, 255, 256, 257, 258, 259,
9073 : 0, 261, 262, 0, 263, 264, 265, 266, 267, 268,
9074 : 269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
9075 : 276, 277, 278, 279, 0, 0, 0, 281, 282, 283,
9076 : 284, 285, 286, 0, 288, 289, 290, 291, 0, 292,
9077 : 293, 294, 295, 296, 297, 0, 0, 299, 300, 301,
9078 : 0, 0, 0, 0, 0, 0, 0, 303, 304, 305,
9079 : 306, 307, 308, 309, 310, 311, 0, 312, 0, 313,
9080 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
9081 : 323, 0, 0, 324, 325, 326, 327, 328, 0, 329,
9082 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
9083 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
9084 : 0, 348, 0, 349, 350, 351, 352, 353, 0, 354,
9085 : 0, 355, 356, 0, 0, 0, 359, 360, 361, 362,
9086 : 0, 363, 364, 0, 365, 366, 367, 0, 368, 369,
9087 : 370, 371, 372, 0, 374, 375, 376, 377, 0, 378,
9088 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 0,
9089 : 388, 389, 390, 391, 392, 393, 394, 0, 395, 0,
9090 : 396, 0, 0, 399, 0, 401, 402, 403, 404, 405,
9091 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
9092 : 416, 417, 418, 0, 0, 419, 420, 0, 422, 0,
9093 : 0, 424, 425, 426, 0, 0, 427, 428, 429, 430,
9094 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
9095 : 441, 442, 443, 444, 445, 446, 0, 448, 449, 450,
9096 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 0,
9097 : 460, 461, 0, 463, 0, 464, 465, 466, 467, 468,
9098 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
9099 : 476, 0, 0, 477, 478, 479, 0, 481, 0, 483,
9100 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
9101 : 494, 495, 0, 496, 497, 498, 499, 500, 501, 502,
9102 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
9103 : 512, 513, 514, 515, 516, 517, 518, 519, 0, 520,
9104 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
9105 : 531, 532, 0, 533, 534, 0, 536, 537, 538, 539,
9106 : 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
9107 : 550, 551, 40, 552, 553, 554, 555, 556, 0, 557,
9108 : 558, 559, 560, 561, 0, 563, 564, 565, 566, 0,
9109 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
9110 : 577, 578, 579, 580, 581, 582, 583, 0, 584, 585,
9111 : 0, 44, 586, 0, 588, 589, 590, 591, 592, 593,
9112 : 0, 594, 595, 596, 0, 0, 597, 598, 599, 600,
9113 : 601, 0, 602, 603, 604, 605, 606, 607, 608, 609,
9114 : 610, 0, 0, 611, 612, 613, 614, 615, 0, 0,
9115 : 616, 617, 618, 619, 620, 1206, 622, 0, 623, 0,
9116 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 49,
9117 : 631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
9118 : 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
9119 : 0, 0, 0, 50, 0, 0, 658, 0, 0, 0,
9120 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9121 : 0, 0, 56, 235, 236, 237, 238, 239, 240, 241,
9122 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
9123 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
9124 : 253, 0, 255, 256, 257, 258, 259, 0, 261, 262,
9125 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
9126 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
9127 : 279, 0, 0, 0, 281, 282, 283, 284, 285, 286,
9128 : 0, 288, 289, 290, 291, 0, 292, 293, 294, 295,
9129 : 296, 297, 0, 0, 299, 300, 301, 0, 0, 0,
9130 : 2909, 0, 0, 0, 303, 304, 305, 306, 307, 308,
9131 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
9132 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
9133 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
9134 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
9135 : 341, 342, 343, 344, 345, 346, 347, 0, 348, 0,
9136 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
9137 : 0, 0, 0, 359, 360, 361, 362, 0, 363, 364,
9138 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 372,
9139 : 0, 374, 375, 376, 377, 0, 378, 379, 380, 381,
9140 : 382, 383, 384, 385, 0, 386, 0, 388, 389, 390,
9141 : 391, 392, 393, 394, 0, 395, 0, 396, 0, 0,
9142 : 399, 0, 401, 402, 403, 404, 405, 406, 407, 408,
9143 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
9144 : 0, 0, 419, 420, 0, 422, 0, 0, 424, 425,
9145 : 426, 0, 0, 427, 428, 429, 430, 431, 432, 433,
9146 : 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
9147 : 444, 445, 446, 0, 448, 449, 450, 451, 452, 453,
9148 : 454, 455, 456, 457, 458, 459, 0, 460, 461, 0,
9149 : 463, 0, 464, 465, 466, 467, 468, 469, 470, 0,
9150 : 471, 472, 473, 0, 862, 474, 475, 476, 0, 0,
9151 : 477, 478, 479, 0, 481, 0, 483, 484, 485, 486,
9152 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
9153 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 0,
9154 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
9155 : 515, 516, 517, 518, 519, 0, 520, 521, 522, 523,
9156 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
9157 : 533, 534, 0, 536, 537, 538, 539, 540, 541, 542,
9158 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
9159 : 552, 553, 554, 555, 556, 0, 557, 558, 559, 560,
9160 : 561, 0, 563, 564, 565, 566, 0, 567, 568, 569,
9161 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
9162 : 580, 581, 582, 583, 0, 584, 585, 0, 2910, 2911,
9163 : 0, 588, 589, 590, 591, 592, 593, 0, 594, 595,
9164 : 596, 0, 0, 597, 598, 599, 600, 601, 0, 602,
9165 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
9166 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
9167 : 619, 620, 621, 622, 0, 623, 0, 625, 626, 627,
9168 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
9169 : 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
9170 : 644, 645, 646, 647, 648, 649, 650, 0, 0, 0,
9171 : 0, 0, 0, 658, 0, 0, 0, 0, 0, 0,
9172 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 1863,
9173 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
9174 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
9175 : 247, 248, 249, 0, 250, 251, 252, 253, 0, 255,
9176 : 256, 257, 258, 259, 0, 261, 262, 0, 263, 264,
9177 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 272,
9178 : 273, 274, 0, 275, 276, 277, 278, 279, 0, 0,
9179 : 0, 281, 282, 283, 284, 285, 286, 0, 288, 289,
9180 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
9181 : 0, 299, 300, 301, 0, 0, 0, 0, 0, 0,
9182 : 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
9183 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
9184 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
9185 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
9186 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
9187 : 344, 345, 346, 347, 0, 348, 0, 349, 350, 351,
9188 : 352, 353, 0, 354, 0, 355, 356, 0, 0, 0,
9189 : 359, 360, 361, 362, 0, 363, 364, 0, 365, 366,
9190 : 367, 0, 368, 369, 370, 371, 372, 0, 374, 375,
9191 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
9192 : 385, 0, 386, 0, 388, 389, 390, 391, 392, 393,
9193 : 394, 0, 395, 0, 396, 0, 0, 399, 0, 401,
9194 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
9195 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
9196 : 420, 0, 422, 0, 0, 424, 425, 426, 0, 0,
9197 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
9198 : 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
9199 : 0, 448, 449, 450, 451, 452, 453, 454, 455, 456,
9200 : 457, 458, 459, 0, 460, 461, 0, 463, 0, 464,
9201 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
9202 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 479,
9203 : 0, 481, 0, 483, 484, 485, 486, 487, 488, 489,
9204 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
9205 : 499, 500, 501, 502, 503, 504, 0, 505, 506, 507,
9206 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
9207 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
9208 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 0,
9209 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
9210 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
9211 : 555, 556, 0, 557, 558, 559, 560, 561, 0, 563,
9212 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
9213 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
9214 : 583, 0, 584, 585, 0, 0, 586, 0, 588, 589,
9215 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
9216 : 597, 598, 599, 600, 601, 0, 602, 603, 604, 605,
9217 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
9218 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 621,
9219 : 622, 0, 623, 0, 625, 626, 627, 628, 629, 0,
9220 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
9221 : 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
9222 : 647, 648, 649, 650, 0, 0, 0, 0, 0, 0,
9223 : 658, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9224 : 0, 0, 0, 0, 0, 0, 1415, 235, 236, 237,
9225 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
9226 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
9227 : 0, 250, 251, 252, 253, 0, 255, 256, 257, 258,
9228 : 259, 0, 261, 262, 0, 263, 264, 265, 266, 267,
9229 : 268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
9230 : 275, 276, 277, 278, 279, 0, 0, 0, 281, 282,
9231 : 283, 284, 285, 286, 0, 288, 289, 290, 291, 0,
9232 : 292, 293, 294, 295, 296, 297, 0, 0, 299, 300,
9233 : 301, 0, 0, 0, 0, 0, 0, 0, 303, 304,
9234 : 305, 306, 307, 308, 309, 310, 311, 0, 312, 0,
9235 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
9236 : 322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
9237 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
9238 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
9239 : 347, 0, 348, 0, 349, 350, 351, 352, 353, 0,
9240 : 354, 0, 355, 356, 0, 0, 0, 359, 360, 361,
9241 : 362, 0, 363, 364, 0, 365, 366, 367, 0, 368,
9242 : 369, 370, 371, 372, 0, 374, 375, 376, 377, 0,
9243 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
9244 : 0, 388, 389, 390, 391, 392, 393, 394, 0, 395,
9245 : 0, 396, 0, 0, 399, 0, 401, 402, 403, 404,
9246 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
9247 : 415, 416, 417, 418, 0, 0, 419, 420, 0, 422,
9248 : 0, 0, 424, 425, 426, 0, 0, 427, 428, 429,
9249 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
9250 : 440, 441, 442, 443, 444, 445, 446, 0, 448, 449,
9251 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
9252 : 0, 460, 461, 0, 463, 0, 464, 465, 466, 467,
9253 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
9254 : 475, 476, 0, 0, 477, 478, 479, 0, 481, 0,
9255 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
9256 : 493, 494, 495, 0, 496, 497, 498, 499, 500, 501,
9257 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
9258 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
9259 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
9260 : 530, 531, 532, 0, 533, 534, 0, 536, 537, 538,
9261 : 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
9262 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 0,
9263 : 557, 558, 559, 560, 561, 0, 563, 564, 565, 566,
9264 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
9265 : 576, 577, 578, 579, 580, 581, 582, 583, 0, 584,
9266 : 585, 0, 0, 586, 0, 588, 589, 590, 591, 592,
9267 : 593, 0, 594, 595, 596, 0, 0, 597, 598, 599,
9268 : 600, 601, 0, 602, 603, 604, 605, 606, 607, 608,
9269 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
9270 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
9271 : 0, 625, 626, 627, 628, 629, 0, 0, 630, 0,
9272 : 0, 631, 632, 633, 634, 635, 636, 637, 638, 639,
9273 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
9274 : 650, 0, 0, 0, 0, 0, 0, 658, 0, 0,
9275 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9276 : 0, 0, 0, 3533, 235, 236, 237, 238, 239, 240,
9277 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
9278 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
9279 : 252, 253, 0, 255, 256, 257, 258, 259, 0, 261,
9280 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
9281 : 0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
9282 : 278, 279, 0, 0, 0, 281, 282, 283, 284, 285,
9283 : 286, 0, 288, 289, 290, 291, 0, 292, 293, 294,
9284 : 295, 296, 297, 0, 0, 299, 300, 301, 0, 0,
9285 : 0, 0, 0, 0, 0, 303, 304, 305, 306, 307,
9286 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
9287 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
9288 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
9289 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
9290 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
9291 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
9292 : 356, 0, 0, 0, 359, 360, 361, 362, 0, 363,
9293 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
9294 : 372, 0, 374, 375, 376, 377, 0, 378, 379, 380,
9295 : 381, 382, 383, 384, 385, 0, 386, 0, 388, 389,
9296 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 0,
9297 : 0, 399, 0, 401, 402, 403, 404, 405, 406, 407,
9298 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
9299 : 418, 0, 0, 419, 420, 0, 422, 0, 0, 424,
9300 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
9301 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
9302 : 443, 444, 445, 446, 0, 448, 449, 450, 451, 452,
9303 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
9304 : 0, 463, 0, 464, 465, 466, 467, 468, 469, 470,
9305 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
9306 : 0, 477, 478, 479, 0, 481, 0, 483, 484, 485,
9307 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
9308 : 0, 496, 497, 498, 499, 500, 501, 502, 503, 504,
9309 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
9310 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
9311 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
9312 : 0, 533, 534, 0, 536, 537, 538, 539, 540, 541,
9313 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
9314 : 0, 552, 553, 554, 555, 556, 0, 557, 558, 559,
9315 : 560, 561, 0, 563, 564, 565, 566, 0, 567, 568,
9316 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
9317 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
9318 : 586, 0, 588, 589, 590, 591, 592, 593, 0, 594,
9319 : 595, 596, 0, 0, 597, 598, 599, 600, 601, 0,
9320 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
9321 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
9322 : 618, 619, 620, 621, 622, 0, 623, 0, 625, 626,
9323 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
9324 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
9325 : 643, 644, 645, 646, 647, 648, 649, 650, 0, 0,
9326 : 0, 0, 0, 0, 658, 0, 0, 0, 0, 0,
9327 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9328 : 4208, 235, 236, 237, 238, 239, 240, 241, 242, 243,
9329 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
9330 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
9331 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
9332 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
9333 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
9334 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
9335 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
9336 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
9337 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
9338 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
9339 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
9340 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
9341 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
9342 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
9343 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
9344 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
9345 : 366, 367, 0, 368, 369, 370, 371, 372, 0, 374,
9346 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
9347 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
9348 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
9349 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
9350 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
9351 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
9352 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
9353 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
9354 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
9355 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
9356 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
9357 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
9358 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
9359 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
9360 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
9361 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
9362 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
9363 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
9364 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
9365 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
9366 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
9367 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
9368 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
9369 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
9370 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
9371 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
9372 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
9373 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
9374 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
9375 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
9376 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
9377 : 646, 647, 648, 649, 650, 0, 0, 0, 0, 0,
9378 : 0, 0, 0, 0, 2110, 0, 0, 0, 0, 0,
9379 : 0, 2111, 0, 0, 2112, 0, 0, 4851, 2113, 2114,
9380 : 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124,
9381 : 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 0, 2133,
9382 : 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143,
9383 : 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153,
9384 : 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163,
9385 : 0, 0, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171,
9386 : 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181,
9387 : 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191,
9388 : 0, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200,
9389 : 2201, 2202, 2203, 2204, 2205, 2206, 0, 2207, 2208, 2209,
9390 : 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219,
9391 : 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229,
9392 : 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239,
9393 : 2240, 2241, 2242, 2243, 0, 2244, 2245, 2246, 2247, 2248,
9394 : 2249, 2250, 2251, 2252, 2253, 2254, 2255, 0, 0, 2256,
9395 : 2257, 2258, 2259, 0, 2260, 2261, 2262, 2263, 2264, 0,
9396 : 2265, 2266, 2267, 2268, 2269, 0, 2270, 2271, 0, 2272,
9397 : 2273, 2274, 0, 2275, 2276, 0, 2277, 2278, 2279, 2280,
9398 : 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290,
9399 : 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300,
9400 : 2301, 2302, 0, 2303, 0, 2304, 2305, 2306, 2307, 2308,
9401 : 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318,
9402 : 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328,
9403 : 2329, 2330, 2331, 2332, 2333, 0, 2334, 2335, 2336, 2337,
9404 : 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347,
9405 : 2348, 2349, 2350, 0, 2351, 2352, 0, 2353, 2354, 2355,
9406 : 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365,
9407 : 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375,
9408 : 2376, 2377, 2378, 2379, 2380, 2381, 2382, 0, 2383, 2384,
9409 : 2385, 0, 2386, 2387, 2388, 2389, 2390, 0, 2391, 2392,
9410 : 2393, 2394, 0, 0, 2395, 2396, 2397, 2398, 2399, 2400,
9411 : 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410,
9412 : 2411, 2412, 2413, 0, 2414, 2415, 2416, 2417, 2418, 2419,
9413 : 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429,
9414 : 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439,
9415 : 2440, 2441, 2442, 2443, 2444, 2445, 2446, 0, 2447, 2448,
9416 : 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458,
9417 : 2459, 2460, 2461, 2462, 2463, 0, 2464, 2465, 2466, 2467,
9418 : 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477,
9419 : 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487,
9420 : 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497,
9421 : 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507,
9422 : 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 0,
9423 : 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526,
9424 : 2527, 2528, 2529, 2530, 2531, 2532, 0, 2533, 2534, 2535,
9425 : 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545,
9426 : 2546, 2547, 2548, 0, 2549, 2550, 2551, 2552, 2553, 2554,
9427 : 2555, 0, 2556, 0, 0, 0, 0, 2557, 2558, 2559,
9428 : 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569,
9429 : 2570, 2571, 0, 2572, 2573, 0, 2574, 0, 0, 0,
9430 : 0, 0, 0, 0, 0, 2575, 2576, 2577, 2578, 2579,
9431 : 2580, 2581, 2582, 2583, 879, 0, 1603, 717, 0, 0,
9432 : 0, 982, 778, 0, 0, 0, 0, 0, 983, 984,
9433 : 985, 235, 236, 237, 238, 239, 240, 241, 242, 243,
9434 : 1741, 244, 245, 246, 1742, 1743, 1744, 1745, 1746, 1747,
9435 : 1748, 247, 248, 249, 1749, 250, 251, 252, 253, 254,
9436 : 255, 256, 257, 0, 880, 260, 881, 882, 1750, 263,
9437 : 264, 265, 266, 267, 268, 269, 1751, 1752, 270, 271,
9438 : 883, 884, 274, 1753, 275, 276, 277, 278, 0, 1754,
9439 : 280, 1755, 281, 282, 283, 284, 285, 286, 287, 288,
9440 : 289, 290, 291, 1756, 292, 293, 294, 295, 296, 297,
9441 : 1757, 298, 299, 300, 301, 1758, 1759, 1760, 302, 1761,
9442 : 1762, 1763, 303, 304, 305, 306, 307, 308, 885, 886,
9443 : 311, 1764, 312, 1765, 313, 314, 315, 316, 317, 318,
9444 : 319, 1766, 320, 321, 322, 323, 1767, 1768, 324, 325,
9445 : 887, 327, 328, 1769, 329, 330, 331, 332, 1770, 333,
9446 : 334, 335, 336, 337, 1771, 338, 339, 340, 341, 0,
9447 : 343, 344, 345, 346, 0, 1772, 348, 1773, 349, 350,
9448 : 351, 888, 353, 1774, 354, 1775, 355, 356, 357, 1776,
9449 : 358, 359, 360, 361, 362, 1777, 363, 0, 1778, 0,
9450 : 366, 367, 1779, 368, 369, 370, 371, 372, 373, 374,
9451 : 375, 376, 377, 1780, 378, 379, 380, 381, 382, 383,
9452 : 384, 385, 1781, 386, 387, 0, 389, 390, 391, 392,
9453 : 889, 890, 1782, 891, 1783, 396, 397, 398, 399, 400,
9454 : 892, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9455 : 0, 412, 413, 414, 415, 416, 417, 418, 1784, 1785,
9456 : 419, 0, 421, 422, 423, 1786, 424, 425, 426, 1787,
9457 : 1788, 427, 428, 429, 430, 431, 432, 433, 434, 435,
9458 : 436, 0, 438, 439, 440, 441, 442, 443, 444, 445,
9459 : 893, 447, 894, 449, 450, 451, 452, 453, 454, 455,
9460 : 456, 4533, 0, 459, 1789, 460, 461, 462, 463, 1790,
9461 : 0, 465, 895, 467, 468, 469, 470, 1791, 471, 472,
9462 : 473, 1792, 1793, 4534, 475, 476, 1794, 1795, 477, 478,
9463 : 0, 480, 481, 482, 0, 484, 485, 486, 487, 488,
9464 : 489, 490, 491, 492, 493, 494, 495, 1796, 496, 497,
9465 : 498, 0, 500, 0, 502, 503, 504, 1797, 505, 506,
9466 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 896,
9467 : 517, 518, 519, 1798, 520, 521, 522, 523, 524, 525,
9468 : 526, 527, 528, 529, 530, 531, 532, 1799, 533, 534,
9469 : 535, 536, 537, 538, 539, 540, 0, 542, 543, 544,
9470 : 545, 546, 547, 548, 549, 550, 551, 1800, 552, 553,
9471 : 554, 555, 556, 1801, 557, 558, 2735, 560, 561, 562,
9472 : 563, 564, 898, 566, 1802, 567, 568, 569, 570, 571,
9473 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
9474 : 0, 583, 1803, 584, 585, 1804, 1805, 586, 587, 588,
9475 : 589, 590, 591, 592, 593, 1806, 594, 899, 900, 1807,
9476 : 1808, 597, 598, 0, 600, 0, 1809, 602, 603, 604,
9477 : 605, 606, 607, 608, 609, 610, 1810, 1811, 611, 612,
9478 : 613, 614, 615, 1812, 1813, 616, 617, 618, 619, 620,
9479 : 0, 901, 1814, 623, 624, 625, 626, 627, 628, 629,
9480 : 1815, 1816, 630, 1817, 1818, 631, 632, 633, 634, 635,
9481 : 636, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9482 : 0, 0, 648, 649, 650, 0, 0, 0, 0, 0,
9483 : 0, 0, 0, 0, 0, 988, 989, 990, 4535, 4536,
9484 : 993, 994, 995, 996, 879, 0, 1603, 717, 0, 0,
9485 : 0, 982, 778, 0, 0, 0, 0, 0, 983, 984,
9486 : 985, 235, 236, 237, 238, 239, 240, 241, 242, 243,
9487 : 1741, 244, 245, 246, 1742, 1743, 1744, 1745, 1746, 1747,
9488 : 1748, 247, 248, 249, 1749, 250, 251, 252, 253, 254,
9489 : 255, 256, 257, 0, 880, 260, 881, 882, 1750, 263,
9490 : 264, 265, 266, 267, 268, 269, 1751, 1752, 270, 271,
9491 : 883, 884, 274, 1753, 275, 276, 277, 278, 0, 1754,
9492 : 280, 1755, 281, 282, 283, 284, 285, 286, 287, 288,
9493 : 289, 290, 291, 1756, 292, 293, 294, 295, 296, 297,
9494 : 1757, 298, 299, 300, 301, 1758, 1759, 1760, 302, 1761,
9495 : 1762, 1763, 303, 304, 305, 306, 307, 308, 885, 886,
9496 : 311, 1764, 312, 1765, 313, 314, 315, 316, 317, 318,
9497 : 319, 1766, 320, 321, 322, 323, 1767, 1768, 324, 325,
9498 : 887, 327, 328, 1769, 329, 330, 331, 332, 1770, 333,
9499 : 334, 335, 336, 337, 1771, 338, 339, 340, 341, 0,
9500 : 343, 344, 345, 346, 0, 1772, 348, 1773, 349, 350,
9501 : 351, 888, 353, 1774, 354, 1775, 355, 356, 357, 1776,
9502 : 358, 359, 360, 361, 362, 1777, 363, 0, 1778, 0,
9503 : 366, 367, 1779, 368, 369, 370, 371, 372, 373, 374,
9504 : 375, 376, 377, 1780, 378, 379, 380, 381, 382, 383,
9505 : 384, 385, 1781, 386, 387, 0, 389, 390, 391, 392,
9506 : 889, 890, 1782, 891, 1783, 396, 397, 398, 399, 400,
9507 : 892, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9508 : 0, 412, 413, 414, 415, 416, 417, 418, 1784, 1785,
9509 : 419, 0, 421, 422, 423, 1786, 424, 425, 426, 1787,
9510 : 1788, 427, 428, 429, 430, 431, 432, 433, 434, 435,
9511 : 436, 0, 438, 439, 440, 441, 442, 443, 444, 445,
9512 : 893, 447, 894, 449, 450, 451, 452, 453, 454, 455,
9513 : 456, 4994, 0, 459, 1789, 460, 461, 462, 463, 1790,
9514 : 0, 465, 895, 467, 468, 469, 470, 1791, 471, 472,
9515 : 473, 1792, 1793, 4534, 475, 476, 1794, 1795, 477, 478,
9516 : 0, 480, 481, 482, 0, 484, 485, 486, 487, 488,
9517 : 489, 490, 491, 492, 493, 494, 495, 1796, 496, 497,
9518 : 498, 0, 500, 0, 502, 503, 504, 1797, 505, 506,
9519 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 896,
9520 : 517, 518, 519, 1798, 520, 521, 522, 523, 524, 525,
9521 : 526, 527, 528, 529, 530, 531, 532, 1799, 533, 534,
9522 : 535, 536, 537, 538, 539, 540, 0, 542, 543, 544,
9523 : 545, 546, 547, 548, 549, 550, 551, 1800, 552, 553,
9524 : 554, 555, 556, 1801, 557, 558, 2735, 560, 561, 562,
9525 : 563, 564, 898, 566, 1802, 567, 568, 569, 570, 571,
9526 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
9527 : 0, 583, 1803, 584, 585, 1804, 1805, 586, 587, 588,
9528 : 589, 590, 591, 592, 593, 1806, 594, 899, 900, 1807,
9529 : 1808, 597, 598, 0, 600, 0, 1809, 602, 603, 604,
9530 : 605, 606, 607, 608, 609, 610, 1810, 1811, 611, 612,
9531 : 613, 614, 615, 1812, 1813, 616, 617, 618, 619, 620,
9532 : 0, 901, 1814, 623, 624, 625, 626, 627, 628, 629,
9533 : 1815, 1816, 630, 1817, 1818, 631, 632, 633, 634, 635,
9534 : 636, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9535 : 0, 0, 648, 649, 650, 0, 0, 0, 0, 0,
9536 : 0, 0, 0, 0, 0, 988, 989, 990, 4535, 4536,
9537 : 993, 994, 995, 996, 658, 0, 0, 0, 0, 0,
9538 : 0, 982, 0, 0, 0, 0, 0, 0, 983, 984,
9539 : 985, 235, 236, 237, 238, 239, 240, 241, 242, 243,
9540 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
9541 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
9542 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
9543 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
9544 : 272, 273, 274, 0, 275, 986, 277, 278, 279, 0,
9545 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
9546 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
9547 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
9548 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
9549 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
9550 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
9551 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
9552 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
9553 : 343, 344, 345, 346, 347, 0, 987, 0, 349, 350,
9554 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
9555 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
9556 : 366, 367, 0, 368, 369, 370, 371, 372, 0, 374,
9557 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
9558 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
9559 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
9560 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
9561 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
9562 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
9563 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
9564 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
9565 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
9566 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
9567 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
9568 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
9569 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
9570 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
9571 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
9572 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
9573 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
9574 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
9575 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
9576 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
9577 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
9578 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
9579 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
9580 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
9581 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
9582 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
9583 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
9584 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
9585 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
9586 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
9587 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
9588 : 646, 647, 648, 649, 650, 0, 0, 0, 0, 0,
9589 : 0, 0, 0, 0, 0, 988, 989, 990, 991, 992,
9590 : 993, 994, 995, 996, 658, 0, 0, 0, 0, 0,
9591 : 0, 982, 0, 0, 0, 0, 0, 0, 983, 984,
9592 : 985, 235, 236, 237, 238, 239, 240, 241, 242, 243,
9593 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
9594 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
9595 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
9596 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
9597 : 272, 273, 274, 0, 275, 1103, 277, 278, 279, 0,
9598 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
9599 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
9600 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
9601 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
9602 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
9603 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
9604 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
9605 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
9606 : 343, 344, 345, 346, 347, 0, 1104, 0, 349, 350,
9607 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
9608 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
9609 : 366, 367, 0, 368, 369, 370, 371, 372, 0, 374,
9610 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
9611 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
9612 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
9613 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
9614 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
9615 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
9616 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
9617 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
9618 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
9619 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
9620 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
9621 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
9622 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
9623 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
9624 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
9625 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
9626 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
9627 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
9628 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
9629 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
9630 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
9631 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
9632 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
9633 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
9634 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
9635 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
9636 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
9637 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
9638 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
9639 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
9640 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
9641 : 646, 647, 648, 649, 650, 0, 0, 0, 0, 0,
9642 : 0, 0, 0, 0, 0, 988, 989, 990, 991, 992,
9643 : 993, 994, 995, 996, 658, 0, 0, 0, 0, 0,
9644 : 0, 982, 0, 0, 0, 0, 0, 0, 983, 984,
9645 : 985, 235, 236, 237, 238, 239, 240, 241, 242, 243,
9646 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
9647 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
9648 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
9649 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
9650 : 272, 273, 274, 0, 275, 1169, 277, 278, 279, 0,
9651 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
9652 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
9653 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
9654 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
9655 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
9656 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
9657 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
9658 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
9659 : 343, 344, 345, 346, 347, 0, 1170, 0, 349, 350,
9660 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
9661 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
9662 : 366, 367, 0, 368, 369, 370, 371, 1171, 0, 374,
9663 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
9664 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
9665 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
9666 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
9667 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
9668 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
9669 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
9670 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
9671 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
9672 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
9673 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
9674 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
9675 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
9676 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
9677 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
9678 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
9679 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
9680 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
9681 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
9682 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
9683 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
9684 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
9685 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
9686 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
9687 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
9688 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
9689 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
9690 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
9691 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
9692 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
9693 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
9694 : 646, 647, 648, 649, 650, 0, 0, 0, 0, 0,
9695 : 0, 0, 0, 0, 0, 988, 989, 990, 991, 992,
9696 : 993, 994, 995, 996, 658, 0, 0, 0, 0, 0,
9697 : 0, 982, 0, 0, 0, 0, 0, 0, 983, 984,
9698 : 985, 235, 236, 237, 238, 239, 240, 241, 242, 243,
9699 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
9700 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
9701 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
9702 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
9703 : 272, 273, 274, 0, 275, 1846, 277, 278, 279, 0,
9704 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
9705 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
9706 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
9707 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
9708 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
9709 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
9710 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
9711 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
9712 : 343, 344, 345, 346, 347, 0, 1847, 0, 349, 350,
9713 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
9714 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
9715 : 366, 367, 0, 368, 369, 370, 371, 372, 0, 374,
9716 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
9717 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
9718 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
9719 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
9720 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
9721 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
9722 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
9723 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
9724 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
9725 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
9726 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
9727 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
9728 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
9729 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
9730 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
9731 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
9732 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
9733 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
9734 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
9735 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
9736 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
9737 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
9738 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
9739 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
9740 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
9741 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
9742 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
9743 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
9744 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
9745 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
9746 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
9747 : 646, 647, 648, 649, 650, 0, 0, 0, 0, 0,
9748 : 0, 0, 0, 0, 0, 988, 989, 990, 991, 992,
9749 : 993, 994, 995, 996, 658, 0, 0, 0, 0, 0,
9750 : 0, 982, 0, 0, 0, 0, 0, 0, 983, 984,
9751 : 985, 235, 236, 237, 238, 239, 240, 241, 242, 243,
9752 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
9753 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
9754 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
9755 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
9756 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
9757 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
9758 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
9759 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
9760 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
9761 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
9762 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
9763 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
9764 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
9765 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
9766 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
9767 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
9768 : 366, 367, 0, 368, 369, 370, 371, 372, 0, 374,
9769 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
9770 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
9771 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
9772 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
9773 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
9774 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
9775 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
9776 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
9777 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
9778 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
9779 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
9780 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
9781 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
9782 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
9783 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
9784 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
9785 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
9786 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
9787 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
9788 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
9789 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
9790 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
9791 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
9792 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
9793 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
9794 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
9795 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
9796 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
9797 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
9798 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
9799 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
9800 : 646, 647, 648, 649, 650, 0, 0, 0, 0, 0,
9801 : 0, 0, 0, 0, 0, 988, 989, 990, 991, 992,
9802 : 993, 994, 995, 996, 658, 0, 0, 0, 0, 0,
9803 : 0, 982, 0, 0, 0, 0, 0, 0, 983, 984,
9804 : 985, 235, 236, 237, 238, 239, 240, 241, 242, 243,
9805 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
9806 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
9807 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
9808 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
9809 : 272, 273, 274, 0, 275, 3598, 277, 278, 279, 0,
9810 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
9811 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
9812 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
9813 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
9814 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
9815 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
9816 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
9817 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
9818 : 343, 344, 345, 346, 347, 0, 3599, 0, 349, 350,
9819 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
9820 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
9821 : 366, 367, 0, 368, 369, 370, 371, 372, 0, 374,
9822 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
9823 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
9824 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
9825 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
9826 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
9827 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
9828 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
9829 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
9830 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
9831 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
9832 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
9833 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
9834 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
9835 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
9836 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
9837 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
9838 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
9839 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
9840 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
9841 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
9842 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
9843 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
9844 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
9845 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
9846 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
9847 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
9848 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
9849 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
9850 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
9851 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
9852 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
9853 : 646, 647, 648, 649, 650, 0, 0, 0, 0, 0,
9854 : 0, 0, 0, 0, 0, 988, 989, 990, 991, 992,
9855 : 993, 994, 995, 996, 658, 0, 0, 0, 0, 0,
9856 : 0, 982, 0, 0, 0, 0, 0, 0, 983, 984,
9857 : 985, 235, 236, 237, 238, 239, 240, 241, 242, 243,
9858 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
9859 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
9860 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
9861 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
9862 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
9863 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
9864 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
9865 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
9866 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
9867 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
9868 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
9869 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
9870 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
9871 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
9872 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
9873 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
9874 : 366, 367, 0, 368, 369, 370, 371, 372, 0, 374,
9875 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
9876 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
9877 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
9878 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
9879 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
9880 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
9881 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
9882 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
9883 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
9884 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
9885 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
9886 : 473, 0, 0, 5646, 475, 476, 0, 0, 477, 478,
9887 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
9888 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
9889 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
9890 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
9891 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
9892 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
9893 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
9894 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
9895 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
9896 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
9897 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
9898 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
9899 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
9900 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
9901 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
9902 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
9903 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
9904 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
9905 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
9906 : 646, 647, 648, 649, 650, 0, 0, 1740, 0, 0,
9907 : 0, 0, 0, 0, 0, 988, 989, 990, 991, 992,
9908 : 993, 994, 995, 996, 235, 236, 237, 238, 239, 240,
9909 : 241, 242, 243, 1741, 244, 245, 246, 1742, 1743, 1744,
9910 : 1745, 1746, 1747, 1748, 247, 248, 249, 1749, 250, 251,
9911 : 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
9912 : 262, 1750, 263, 264, 265, 266, 267, 268, 269, 1751,
9913 : 1752, 270, 271, 272, 273, 274, 1753, 275, 276, 277,
9914 : 278, 279, 1754, 280, 1755, 281, 282, 283, 284, 285,
9915 : 286, 287, 288, 289, 290, 291, 1756, 292, 293, 294,
9916 : 295, 296, 297, 1757, 298, 299, 300, 301, 1758, 1759,
9917 : 1760, 302, 1761, 1762, 1763, 303, 304, 305, 306, 307,
9918 : 308, 309, 310, 311, 1764, 312, 1765, 313, 314, 315,
9919 : 316, 317, 318, 319, 1766, 320, 321, 322, 323, 1767,
9920 : 1768, 324, 325, 326, 327, 328, 1769, 329, 330, 331,
9921 : 332, 1770, 333, 334, 335, 336, 337, 1771, 338, 339,
9922 : 340, 341, 342, 343, 344, 345, 346, 347, 1772, 348,
9923 : 1773, 349, 350, 351, 352, 353, 1774, 354, 1775, 355,
9924 : 356, 357, 1776, 358, 359, 360, 361, 362, 1777, 363,
9925 : 364, 1778, 365, 366, 367, 1779, 368, 369, 370, 371,
9926 : 372, 373, 374, 375, 376, 377, 1780, 378, 379, 380,
9927 : 381, 382, 383, 384, 385, 1781, 386, 387, 388, 389,
9928 : 390, 391, 392, 393, 394, 1782, 395, 1783, 396, 397,
9929 : 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
9930 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
9931 : 418, 1784, 1785, 419, 420, 421, 422, 423, 1786, 424,
9932 : 425, 426, 1787, 1788, 427, 428, 429, 430, 431, 432,
9933 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
9934 : 443, 444, 445, 446, 447, 448, 449, 450, 451, 452,
9935 : 453, 454, 455, 456, 457, 458, 459, 1789, 460, 461,
9936 : 462, 463, 1790, 464, 465, 466, 467, 468, 469, 470,
9937 : 1791, 471, 472, 473, 1792, 1793, 474, 475, 476, 1794,
9938 : 1795, 477, 478, 479, 480, 481, 482, 483, 484, 485,
9939 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
9940 : 1796, 496, 497, 498, 499, 500, 501, 502, 503, 504,
9941 : 1797, 505, 506, 507, 508, 509, 510, 511, 512, 513,
9942 : 514, 515, 516, 517, 518, 519, 1798, 520, 521, 522,
9943 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
9944 : 1799, 533, 534, 535, 536, 537, 538, 539, 540, 541,
9945 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
9946 : 1800, 552, 553, 554, 555, 556, 1801, 557, 558, 559,
9947 : 560, 561, 562, 563, 564, 565, 566, 1802, 567, 568,
9948 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
9949 : 579, 580, 581, 582, 583, 1803, 584, 585, 1804, 1805,
9950 : 586, 587, 588, 589, 590, 591, 592, 593, 1806, 594,
9951 : 595, 596, 1807, 1808, 597, 598, 599, 600, 601, 1809,
9952 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 1810,
9953 : 1811, 611, 612, 613, 614, 615, 1812, 1813, 616, 617,
9954 : 618, 619, 620, 621, 622, 1814, 623, 624, 625, 626,
9955 : 627, 628, 629, 1815, 1816, 630, 1817, 1818, 631, 632,
9956 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
9957 : 643, 644, 645, 646, 647, 648, 649, 650, 658, 0,
9958 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9959 : 0, 0, 0, 1819, 0, 235, 236, 237, 238, 239,
9960 : 240, 241, 242, 243, 0, 244, 245, 246, 0, 0,
9961 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
9962 : 251, 252, 253, 0, 255, 256, 257, 258, 259, 0,
9963 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
9964 : 0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
9965 : 277, 278, 279, 0, 0, 0, 281, 282, 283, 284,
9966 : 285, 286, 0, 288, 289, 290, 291, 0, 292, 293,
9967 : 294, 295, 296, 297, 0, 0, 299, 300, 301, 0,
9968 : 0, 0, 0, 0, 0, 0, 303, 304, 305, 306,
9969 : 307, 308, 309, 310, 311, 0, 312, 0, 313, 314,
9970 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
9971 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
9972 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
9973 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 0,
9974 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
9975 : 355, 356, 0, 0, 0, 359, 360, 361, 362, 0,
9976 : 363, 364, 0, 365, 366, 367, 0, 368, 369, 370,
9977 : 371, 372, 0, 374, 375, 376, 377, 0, 378, 379,
9978 : 380, 381, 382, 383, 384, 385, 0, 386, 0, 388,
9979 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
9980 : 0, 0, 399, 0, 401, 402, 403, 404, 405, 406,
9981 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
9982 : 417, 418, 0, 0, 419, 420, 0, 422, 0, 0,
9983 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
9984 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
9985 : 442, 443, 444, 445, 446, 0, 448, 449, 450, 451,
9986 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
9987 : 461, 0, 463, 0, 464, 465, 466, 467, 468, 469,
9988 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
9989 : 0, 0, 477, 478, 479, 0, 481, 0, 483, 484,
9990 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
9991 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
9992 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
9993 : 513, 514, 515, 516, 517, 518, 519, 0, 520, 521,
9994 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
9995 : 532, 0, 533, 534, 0, 536, 537, 538, 539, 540,
9996 : 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
9997 : 551, 0, 552, 553, 554, 555, 556, 0, 557, 558,
9998 : 559, 560, 561, 0, 563, 564, 565, 566, 0, 567,
9999 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
10000 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
10001 : 0, 586, 0, 588, 589, 590, 591, 592, 593, 0,
10002 : 594, 595, 596, 0, 0, 597, 598, 599, 600, 601,
10003 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
10004 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
10005 : 617, 618, 619, 620, 621, 622, 0, 623, 0, 625,
10006 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
10007 : 632, 633, 634, 635, 636, 637, 638, 639, 640, 641,
10008 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 658,
10009 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10010 : 0, 0, 0, 0, 868, 0, 235, 236, 237, 238,
10011 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
10012 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
10013 : 250, 251, 252, 253, 0, 255, 256, 257, 258, 259,
10014 : 0, 261, 262, 0, 263, 264, 265, 266, 267, 268,
10015 : 269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
10016 : 276, 277, 278, 279, 0, 0, 0, 281, 282, 283,
10017 : 284, 285, 286, 0, 288, 289, 290, 291, 0, 292,
10018 : 293, 294, 295, 296, 297, 0, 0, 299, 300, 301,
10019 : 0, 0, 0, 0, 0, 0, 0, 303, 304, 305,
10020 : 306, 307, 308, 309, 310, 311, 0, 312, 0, 313,
10021 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
10022 : 323, 0, 0, 324, 325, 326, 327, 328, 0, 329,
10023 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
10024 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
10025 : 0, 348, 0, 349, 350, 351, 352, 353, 0, 354,
10026 : 0, 355, 356, 0, 0, 0, 359, 360, 361, 362,
10027 : 0, 363, 364, 0, 365, 366, 367, 0, 368, 369,
10028 : 370, 371, 372, 0, 374, 375, 376, 377, 0, 378,
10029 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 0,
10030 : 388, 389, 390, 391, 392, 393, 394, 0, 395, 0,
10031 : 396, 0, 0, 399, 0, 401, 402, 403, 404, 405,
10032 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
10033 : 416, 417, 418, 0, 0, 419, 420, 0, 422, 0,
10034 : 0, 424, 425, 426, 0, 0, 427, 428, 429, 430,
10035 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
10036 : 441, 442, 443, 444, 445, 446, 0, 448, 449, 450,
10037 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 0,
10038 : 460, 461, 0, 463, 0, 464, 465, 466, 467, 468,
10039 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
10040 : 476, 0, 0, 477, 478, 479, 0, 481, 0, 483,
10041 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
10042 : 494, 495, 0, 496, 497, 498, 499, 500, 501, 502,
10043 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
10044 : 512, 513, 514, 515, 516, 517, 518, 519, 0, 520,
10045 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
10046 : 531, 532, 0, 533, 534, 0, 536, 537, 538, 539,
10047 : 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
10048 : 550, 551, 0, 552, 553, 554, 555, 556, 0, 557,
10049 : 558, 559, 560, 561, 0, 563, 564, 565, 566, 0,
10050 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
10051 : 577, 578, 579, 580, 581, 582, 583, 0, 584, 585,
10052 : 0, 0, 586, 0, 588, 589, 590, 591, 592, 593,
10053 : 0, 594, 595, 596, 0, 0, 597, 598, 599, 600,
10054 : 601, 0, 602, 603, 604, 605, 606, 607, 608, 609,
10055 : 610, 0, 0, 611, 612, 613, 614, 615, 0, 0,
10056 : 616, 617, 618, 619, 620, 621, 622, 0, 623, 0,
10057 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
10058 : 631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
10059 : 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
10060 : 658, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10061 : 0, 0, 0, 0, 0, 6103, 0, 235, 236, 237,
10062 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
10063 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
10064 : 0, 250, 251, 252, 253, 0, 255, 256, 257, 258,
10065 : 259, 0, 261, 262, 0, 263, 264, 265, 266, 267,
10066 : 268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
10067 : 275, 276, 277, 278, 279, 0, 0, 0, 281, 282,
10068 : 283, 284, 285, 286, 0, 288, 289, 290, 291, 0,
10069 : 292, 293, 294, 295, 296, 297, 0, 0, 299, 300,
10070 : 301, 0, 0, 0, 0, 0, 0, 0, 303, 304,
10071 : 305, 306, 307, 308, 309, 310, 311, 0, 312, 0,
10072 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
10073 : 322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
10074 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
10075 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
10076 : 347, 0, 348, 0, 349, 350, 351, 352, 353, 0,
10077 : 354, 0, 355, 356, 0, 0, 0, 359, 360, 361,
10078 : 362, 0, 363, 364, 0, 365, 366, 367, 0, 368,
10079 : 369, 370, 371, 372, 0, 374, 375, 376, 377, 0,
10080 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
10081 : 0, 388, 389, 390, 391, 392, 393, 394, 0, 395,
10082 : 0, 396, 0, 0, 399, 0, 401, 402, 403, 404,
10083 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
10084 : 415, 416, 417, 418, 0, 0, 419, 420, 0, 422,
10085 : 0, 0, 424, 425, 426, 0, 0, 427, 428, 429,
10086 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
10087 : 440, 441, 442, 443, 444, 445, 446, 0, 448, 449,
10088 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
10089 : 0, 460, 461, 0, 463, 0, 464, 465, 466, 467,
10090 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
10091 : 475, 476, 0, 0, 477, 478, 479, 0, 481, 0,
10092 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
10093 : 493, 494, 495, 0, 496, 497, 498, 499, 500, 501,
10094 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
10095 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
10096 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
10097 : 530, 531, 532, 0, 533, 534, 0, 536, 537, 538,
10098 : 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
10099 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 0,
10100 : 557, 558, 559, 560, 561, 0, 563, 564, 565, 566,
10101 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
10102 : 576, 577, 578, 579, 580, 581, 582, 583, 0, 584,
10103 : 585, 0, 0, 586, 0, 588, 589, 590, 591, 592,
10104 : 593, 0, 594, 595, 596, 0, 0, 597, 598, 599,
10105 : 600, 601, 0, 602, 603, 604, 605, 606, 607, 608,
10106 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
10107 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
10108 : 0, 625, 626, 627, 628, 629, 0, 0, 630, 0,
10109 : 0, 631, 632, 633, 634, 635, 636, 637, 638, 639,
10110 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
10111 : 650, 658, 0, 0, 0, 0, 0, 0, 0, 0,
10112 : 0, 0, 0, 0, 0, 0, 6105, 0, 235, 236,
10113 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
10114 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
10115 : 249, 0, 250, 251, 252, 253, 0, 255, 256, 257,
10116 : 258, 259, 0, 261, 262, 0, 263, 264, 265, 266,
10117 : 267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
10118 : 0, 275, 276, 277, 278, 279, 0, 0, 0, 281,
10119 : 282, 283, 284, 285, 286, 0, 288, 289, 290, 291,
10120 : 0, 292, 293, 294, 295, 296, 297, 0, 0, 299,
10121 : 300, 301, 0, 0, 0, 0, 0, 0, 0, 303,
10122 : 304, 305, 306, 307, 308, 309, 310, 311, 0, 312,
10123 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
10124 : 321, 322, 323, 0, 0, 324, 325, 326, 327, 328,
10125 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
10126 : 337, 0, 338, 339, 340, 341, 342, 343, 344, 345,
10127 : 346, 347, 0, 348, 0, 349, 350, 351, 352, 353,
10128 : 0, 354, 0, 355, 356, 0, 0, 0, 359, 360,
10129 : 361, 362, 0, 363, 364, 0, 365, 366, 367, 0,
10130 : 368, 369, 370, 371, 372, 0, 374, 375, 376, 377,
10131 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
10132 : 386, 0, 388, 389, 390, 391, 392, 393, 394, 0,
10133 : 395, 0, 396, 0, 0, 399, 0, 401, 402, 403,
10134 : 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
10135 : 414, 415, 416, 417, 418, 0, 0, 419, 420, 0,
10136 : 422, 0, 0, 424, 425, 426, 0, 0, 427, 428,
10137 : 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
10138 : 439, 440, 441, 442, 443, 444, 445, 446, 0, 448,
10139 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
10140 : 459, 0, 460, 461, 0, 463, 0, 464, 465, 466,
10141 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
10142 : 474, 475, 476, 0, 0, 477, 478, 479, 0, 481,
10143 : 0, 483, 484, 485, 486, 487, 488, 489, 490, 491,
10144 : 492, 493, 494, 495, 0, 496, 497, 498, 499, 500,
10145 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
10146 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
10147 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
10148 : 529, 530, 531, 532, 0, 533, 534, 0, 536, 537,
10149 : 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
10150 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 556,
10151 : 0, 557, 558, 559, 560, 561, 0, 563, 564, 565,
10152 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
10153 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 0,
10154 : 584, 585, 0, 0, 586, 0, 588, 589, 590, 591,
10155 : 592, 593, 0, 594, 595, 596, 0, 0, 597, 598,
10156 : 599, 600, 601, 0, 602, 603, 604, 605, 606, 607,
10157 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
10158 : 0, 0, 616, 617, 618, 619, 620, 621, 622, 0,
10159 : 623, 0, 625, 626, 627, 628, 629, 0, 0, 630,
10160 : 0, 0, 631, 632, 633, 634, 635, 636, 637, 638,
10161 : 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
10162 : 649, 650, 879, 0, 0, 0, 0, 0, 0, 0,
10163 : 0, 0, 0, 0, 0, 0, 0, 6234, 0, 235,
10164 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
10165 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
10166 : 248, 249, 0, 250, 251, 252, 253, 254, 255, 256,
10167 : 257, 0, 880, 260, 881, 882, 0, 263, 264, 265,
10168 : 266, 267, 268, 269, 0, 0, 270, 271, 883, 884,
10169 : 274, 0, 275, 276, 277, 278, 0, 0, 280, 0,
10170 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
10171 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 298,
10172 : 299, 300, 301, 0, 0, 0, 302, 0, 0, 0,
10173 : 303, 304, 305, 306, 307, 308, 885, 886, 311, 0,
10174 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
10175 : 320, 321, 322, 323, 0, 0, 324, 325, 887, 327,
10176 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
10177 : 336, 337, 0, 338, 339, 340, 341, 0, 343, 344,
10178 : 345, 346, 0, 0, 348, 0, 349, 350, 351, 888,
10179 : 353, 0, 354, 0, 355, 356, 357, 0, 358, 359,
10180 : 360, 361, 362, 0, 363, 0, 0, 0, 366, 367,
10181 : 0, 368, 369, 370, 371, 372, 373, 374, 375, 376,
10182 : 377, 2731, 378, 379, 380, 381, 382, 383, 384, 385,
10183 : 0, 386, 387, 2732, 389, 390, 391, 392, 889, 890,
10184 : 0, 891, 0, 396, 397, 398, 399, 400, 892, 0,
10185 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 412,
10186 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 0,
10187 : 421, 422, 423, 0, 424, 425, 426, 0, 0, 427,
10188 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 0,
10189 : 438, 439, 440, 441, 442, 443, 444, 445, 893, 447,
10190 : 894, 449, 450, 451, 452, 453, 454, 455, 456, 0,
10191 : 0, 459, 0, 460, 461, 462, 463, 0, 0, 465,
10192 : 895, 467, 468, 469, 470, 0, 471, 472, 473, 0,
10193 : 0, 474, 475, 476, 0, 2733, 477, 478, 2734, 480,
10194 : 481, 482, 0, 484, 485, 486, 487, 488, 489, 490,
10195 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 0,
10196 : 500, 0, 502, 503, 504, 0, 505, 506, 507, 508,
10197 : 509, 510, 511, 512, 513, 514, 515, 896, 517, 518,
10198 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
10199 : 528, 529, 530, 531, 532, 0, 533, 534, 535, 536,
10200 : 537, 538, 539, 540, 0, 542, 543, 544, 545, 546,
10201 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
10202 : 556, 0, 557, 558, 2735, 560, 561, 562, 563, 564,
10203 : 898, 566, 0, 567, 568, 569, 570, 571, 572, 573,
10204 : 574, 575, 576, 577, 578, 579, 580, 581, 0, 583,
10205 : 0, 584, 585, 0, 0, 586, 587, 588, 589, 590,
10206 : 591, 592, 593, 0, 594, 899, 900, 0, 0, 597,
10207 : 598, 0, 600, 0, 0, 602, 603, 604, 605, 606,
10208 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
10209 : 615, 0, 0, 616, 617, 618, 619, 620, 0, 901,
10210 : 2736, 623, 624, 625, 626, 627, 628, 629, 0, 0,
10211 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 0,
10212 : 0, 0, 3957, 0, 0, 0, 0, 0, 0, 0,
10213 : 648, 649, 650, 0, 0, 0, 0, 0, 0, 235,
10214 : 236, 237, 238, 239, 240, 241, 242, 243, 2737, 244,
10215 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
10216 : 248, 249, 0, 250, 251, 252, 253, 254, 255, 256,
10217 : 257, 0, 880, 260, 881, 882, 0, 263, 264, 265,
10218 : 266, 267, 268, 269, 0, 0, 270, 271, 883, 884,
10219 : 274, 0, 275, 276, 277, 278, 0, 0, 280, 0,
10220 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
10221 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 298,
10222 : 299, 300, 301, 0, 0, 0, 302, 0, 0, 0,
10223 : 303, 304, 305, 306, 307, 308, 885, 886, 311, 0,
10224 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
10225 : 320, 321, 322, 323, 0, 0, 324, 325, 887, 327,
10226 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
10227 : 336, 337, 0, 338, 339, 340, 341, 0, 343, 344,
10228 : 345, 346, 0, 0, 348, 0, 349, 350, 351, 888,
10229 : 353, 0, 354, 0, 355, 356, 357, 0, 358, 359,
10230 : 360, 361, 362, 0, 363, 0, 0, 0, 366, 367,
10231 : 0, 368, 369, 370, 371, 372, 373, 374, 375, 376,
10232 : 377, 2731, 378, 379, 380, 381, 382, 383, 384, 385,
10233 : 0, 386, 387, 2732, 389, 390, 391, 392, 889, 890,
10234 : 0, 891, 0, 396, 397, 398, 399, 400, 892, 0,
10235 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 412,
10236 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 0,
10237 : 421, 422, 423, 0, 424, 425, 426, 0, 0, 427,
10238 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 0,
10239 : 438, 439, 440, 441, 442, 443, 444, 445, 893, 447,
10240 : 894, 449, 450, 451, 452, 453, 454, 455, 456, 0,
10241 : 0, 459, 0, 460, 461, 462, 463, 0, 0, 465,
10242 : 895, 467, 468, 469, 470, 0, 471, 472, 473, 0,
10243 : 0, 474, 475, 476, 0, 2733, 477, 478, 2734, 480,
10244 : 481, 482, 0, 484, 485, 486, 487, 488, 489, 490,
10245 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 0,
10246 : 500, 0, 502, 503, 504, 0, 505, 506, 507, 508,
10247 : 509, 510, 511, 512, 513, 514, 515, 896, 517, 518,
10248 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
10249 : 528, 529, 530, 531, 532, 0, 533, 534, 535, 536,
10250 : 537, 538, 539, 540, 0, 542, 543, 544, 545, 546,
10251 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
10252 : 556, 0, 557, 558, 2735, 560, 561, 562, 563, 564,
10253 : 898, 566, 0, 567, 568, 569, 570, 571, 572, 573,
10254 : 574, 575, 576, 577, 578, 579, 580, 581, 0, 583,
10255 : 0, 584, 585, 0, 0, 586, 587, 588, 589, 590,
10256 : 591, 592, 593, 0, 594, 899, 900, 0, 0, 597,
10257 : 598, 0, 600, 0, 0, 602, 603, 604, 605, 606,
10258 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
10259 : 615, 0, 0, 616, 617, 618, 619, 620, 0, 901,
10260 : 2736, 623, 624, 625, 626, 627, 628, 629, 0, 0,
10261 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 0,
10262 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10263 : 648, 649, 650, 967, 0, 1603, 717, 0, 0, 0,
10264 : 0, 778, 0, 0, 0, 0, 0, 0, 2737, 0,
10265 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
10266 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
10267 : 247, 248, 249, 0, 250, 251, 252, 253, 254, 255,
10268 : 256, 257, 258, 259, 260, 261, 262, 0, 263, 264,
10269 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 272,
10270 : 273, 274, 0, 275, 276, 277, 278, 279, 0, 280,
10271 : 0, 281, 282, 283, 284, 285, 286, 287, 288, 289,
10272 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
10273 : 298, 299, 300, 301, 0, 0, 0, 302, 0, 0,
10274 : 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
10275 : 2622, 312, 0, 313, 314, 315, 316, 317, 318, 319,
10276 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
10277 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
10278 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
10279 : 344, 345, 346, 347, 1829, 348, 0, 349, 350, 351,
10280 : 352, 353, 0, 354, 0, 355, 356, 357, 0, 358,
10281 : 359, 360, 361, 362, 0, 363, 364, 0, 365, 366,
10282 : 367, 0, 368, 369, 370, 371, 372, 373, 374, 375,
10283 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
10284 : 385, 0, 386, 387, 388, 389, 390, 391, 392, 393,
10285 : 394, 0, 395, 0, 396, 397, 398, 399, 400, 401,
10286 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
10287 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
10288 : 420, 421, 422, 423, 0, 424, 425, 426, 0, 0,
10289 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
10290 : 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
10291 : 447, 448, 449, 450, 451, 452, 453, 454, 455, 456,
10292 : 457, 458, 459, 0, 460, 461, 462, 463, 0, 464,
10293 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
10294 : 1830, 0, 474, 475, 476, 0, 0, 477, 478, 479,
10295 : 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
10296 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
10297 : 499, 500, 501, 502, 503, 504, 0, 505, 506, 507,
10298 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
10299 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
10300 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 535,
10301 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
10302 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
10303 : 555, 556, 0, 557, 558, 559, 560, 561, 562, 563,
10304 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
10305 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
10306 : 583, 0, 584, 585, 0, 0, 586, 587, 588, 589,
10307 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
10308 : 597, 598, 599, 600, 601, 1831, 602, 603, 604, 605,
10309 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
10310 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 621,
10311 : 622, 0, 623, 624, 625, 626, 627, 628, 629, 0,
10312 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
10313 : 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
10314 : 647, 648, 649, 650, 967, 0, 1603, 717, 0, 0,
10315 : 0, 0, 778, 0, 0, 0, 0, 1604, 1605, 0,
10316 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
10317 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
10318 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 254,
10319 : 255, 256, 257, 258, 259, 260, 261, 262, 0, 263,
10320 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
10321 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
10322 : 280, 0, 281, 282, 283, 284, 285, 286, 287, 288,
10323 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
10324 : 0, 298, 299, 300, 301, 0, 0, 0, 302, 0,
10325 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
10326 : 311, 2627, 312, 0, 313, 314, 315, 316, 317, 318,
10327 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
10328 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
10329 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
10330 : 343, 344, 345, 346, 347, 1829, 348, 0, 349, 350,
10331 : 351, 352, 353, 0, 354, 0, 355, 356, 357, 0,
10332 : 358, 359, 360, 361, 362, 0, 363, 364, 0, 365,
10333 : 366, 367, 0, 368, 369, 370, 371, 372, 373, 374,
10334 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
10335 : 384, 385, 0, 386, 387, 388, 389, 390, 391, 392,
10336 : 393, 394, 0, 395, 0, 396, 397, 398, 399, 400,
10337 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
10338 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
10339 : 419, 420, 421, 422, 423, 0, 424, 425, 426, 0,
10340 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
10341 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
10342 : 446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
10343 : 456, 457, 458, 459, 0, 460, 461, 462, 463, 0,
10344 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
10345 : 473, 1830, 0, 474, 475, 476, 0, 0, 477, 478,
10346 : 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
10347 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
10348 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
10349 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
10350 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
10351 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
10352 : 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
10353 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
10354 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 562,
10355 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
10356 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
10357 : 582, 583, 0, 584, 585, 0, 0, 586, 587, 588,
10358 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
10359 : 0, 597, 598, 599, 600, 601, 1831, 602, 603, 604,
10360 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
10361 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
10362 : 621, 622, 0, 623, 624, 625, 626, 627, 628, 629,
10363 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
10364 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
10365 : 646, 647, 648, 649, 650, 967, 0, 1603, 717, 0,
10366 : 0, 0, 0, 778, 0, 0, 0, 0, 1604, 1605,
10367 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
10368 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 0,
10369 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
10370 : 254, 255, 256, 257, 258, 259, 260, 261, 262, 0,
10371 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
10372 : 271, 272, 273, 274, 0, 275, 276, 277, 278, 279,
10373 : 0, 280, 0, 281, 282, 283, 284, 285, 286, 287,
10374 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
10375 : 297, 0, 298, 299, 300, 301, 0, 0, 0, 302,
10376 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 309,
10377 : 310, 311, 3565, 312, 0, 313, 314, 315, 316, 317,
10378 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
10379 : 325, 326, 327, 328, 0, 329, 330, 331, 332, 0,
10380 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
10381 : 342, 343, 344, 345, 346, 347, 1829, 348, 0, 349,
10382 : 350, 351, 352, 353, 0, 354, 0, 355, 356, 357,
10383 : 0, 358, 359, 360, 361, 362, 0, 363, 364, 0,
10384 : 365, 366, 367, 0, 368, 369, 370, 371, 372, 373,
10385 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
10386 : 383, 384, 385, 0, 386, 387, 388, 389, 390, 391,
10387 : 392, 393, 394, 0, 395, 0, 396, 397, 398, 399,
10388 : 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
10389 : 410, 411, 412, 413, 414, 415, 416, 417, 418, 0,
10390 : 0, 419, 420, 421, 422, 423, 0, 424, 425, 426,
10391 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
10392 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
10393 : 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
10394 : 455, 456, 457, 458, 459, 0, 460, 461, 462, 463,
10395 : 0, 464, 465, 466, 467, 468, 469, 470, 0, 471,
10396 : 472, 473, 1830, 0, 474, 475, 476, 0, 0, 477,
10397 : 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
10398 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
10399 : 497, 498, 499, 500, 501, 502, 503, 504, 0, 505,
10400 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
10401 : 516, 517, 518, 519, 0, 520, 521, 522, 523, 524,
10402 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
10403 : 534, 535, 536, 537, 538, 539, 540, 541, 542, 543,
10404 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
10405 : 553, 554, 555, 556, 0, 557, 558, 559, 560, 561,
10406 : 562, 563, 564, 565, 566, 0, 567, 568, 569, 570,
10407 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
10408 : 581, 582, 583, 0, 584, 585, 0, 0, 586, 587,
10409 : 588, 589, 590, 591, 592, 593, 0, 594, 595, 596,
10410 : 0, 0, 597, 598, 599, 600, 601, 1831, 602, 603,
10411 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
10412 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
10413 : 620, 621, 622, 0, 623, 624, 625, 626, 627, 628,
10414 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
10415 : 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
10416 : 645, 646, 647, 648, 649, 650, 967, 0, 1603, 717,
10417 : 0, 0, 0, 0, 778, 0, 0, 0, 0, 1604,
10418 : 1605, 0, 0, 235, 236, 237, 238, 239, 240, 241,
10419 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
10420 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
10421 : 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
10422 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
10423 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
10424 : 279, 0, 280, 0, 281, 282, 283, 284, 285, 286,
10425 : 287, 288, 289, 290, 291, 0, 292, 293, 294, 295,
10426 : 296, 297, 0, 298, 299, 300, 301, 0, 0, 0,
10427 : 302, 0, 0, 0, 303, 304, 305, 306, 307, 308,
10428 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
10429 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
10430 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
10431 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
10432 : 341, 342, 343, 344, 345, 346, 347, 1829, 348, 0,
10433 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
10434 : 357, 0, 358, 359, 360, 361, 362, 0, 363, 364,
10435 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 372,
10436 : 373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
10437 : 382, 383, 384, 385, 0, 386, 387, 388, 389, 390,
10438 : 391, 392, 393, 394, 0, 395, 0, 396, 397, 398,
10439 : 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
10440 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
10441 : 0, 0, 419, 420, 421, 422, 423, 0, 424, 425,
10442 : 426, 0, 0, 427, 428, 429, 430, 431, 432, 433,
10443 : 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
10444 : 444, 445, 446, 447, 448, 449, 450, 451, 452, 453,
10445 : 454, 455, 456, 457, 458, 459, 0, 460, 461, 462,
10446 : 463, 0, 464, 465, 466, 467, 468, 469, 470, 0,
10447 : 471, 472, 473, 1830, 0, 474, 475, 476, 0, 0,
10448 : 477, 478, 479, 480, 481, 482, 483, 484, 485, 486,
10449 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
10450 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 0,
10451 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
10452 : 515, 516, 517, 518, 519, 0, 520, 521, 522, 523,
10453 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
10454 : 533, 534, 535, 536, 537, 538, 539, 540, 541, 542,
10455 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
10456 : 552, 553, 554, 555, 556, 0, 557, 558, 559, 560,
10457 : 561, 562, 563, 564, 565, 566, 0, 567, 568, 569,
10458 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
10459 : 580, 581, 582, 583, 0, 584, 585, 0, 0, 586,
10460 : 587, 588, 589, 590, 591, 592, 593, 0, 594, 595,
10461 : 596, 0, 0, 597, 598, 599, 600, 601, 1831, 602,
10462 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
10463 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
10464 : 619, 620, 621, 622, 0, 623, 624, 625, 626, 627,
10465 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
10466 : 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
10467 : 644, 645, 646, 647, 648, 649, 650, 658, 0, 0,
10468 : 0, 0, 0, 0, 0, 778, 0, 0, 0, 0,
10469 : 1604, 1605, 0, 0, 235, 236, 779, 238, 239, 240,
10470 : 241, 242, 243, 780, 244, 245, 246, 0, 0, 0,
10471 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
10472 : 252, 253, 0, 781, 256, 257, 258, 259, 0, 261,
10473 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
10474 : 0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
10475 : 278, 279, 0, 0, 0, 281, 282, 283, 284, 285,
10476 : 286, 0, 288, 289, 290, 291, 0, 292, 293, 294,
10477 : 295, 296, 297, 0, 0, 299, 300, 301, 0, 0,
10478 : 0, 0, 0, 0, 0, 303, 304, 305, 306, 307,
10479 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
10480 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
10481 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
10482 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
10483 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
10484 : 0, 349, 350, 782, 352, 353, 0, 354, 0, 355,
10485 : 783, 0, 784, 0, 359, 360, 361, 362, 0, 363,
10486 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
10487 : 372, 0, 374, 375, 376, 377, 785, 378, 379, 380,
10488 : 381, 382, 383, 384, 385, 0, 386, 0, 388, 389,
10489 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 0,
10490 : 0, 399, 0, 401, 402, 403, 404, 405, 406, 407,
10491 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
10492 : 786, 0, 0, 419, 420, 0, 422, 0, 0, 424,
10493 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
10494 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
10495 : 443, 444, 445, 446, 0, 448, 449, 450, 787, 452,
10496 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
10497 : 0, 463, 0, 464, 465, 466, 467, 468, 469, 470,
10498 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
10499 : 0, 477, 478, 479, 0, 481, 0, 483, 484, 485,
10500 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
10501 : 0, 496, 497, 498, 499, 500, 501, 502, 503, 504,
10502 : 0, 788, 506, 507, 508, 509, 510, 511, 512, 513,
10503 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
10504 : 789, 524, 525, 526, 527, 528, 529, 530, 531, 532,
10505 : 0, 533, 534, 0, 536, 537, 538, 539, 540, 541,
10506 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
10507 : 0, 552, 553, 554, 555, 556, 0, 557, 558, 559,
10508 : 560, 561, 0, 563, 564, 565, 566, 0, 567, 568,
10509 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
10510 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
10511 : 586, 0, 588, 589, 590, 591, 592, 593, 0, 594,
10512 : 595, 596, 0, 0, 597, 598, 599, 600, 601, 0,
10513 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
10514 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
10515 : 618, 619, 620, 621, 622, 0, 623, 0, 625, 626,
10516 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
10517 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
10518 : 643, 644, 645, 646, 647, 648, 649, 650, 967, 0,
10519 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10520 : 0, 790, 791, 0, 0, 235, 236, 237, 238, 239,
10521 : 240, 241, 242, 243, 0, 244, 245, 246, 3, 4,
10522 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
10523 : 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
10524 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
10525 : 0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
10526 : 277, 278, 279, 0, 280, 0, 281, 282, 283, 284,
10527 : 285, 286, 287, 288, 289, 290, 291, 0, 292, 293,
10528 : 294, 295, 296, 297, 0, 298, 299, 300, 301, 0,
10529 : 0, 0, 302, 0, 0, 0, 303, 304, 305, 306,
10530 : 307, 308, 309, 310, 311, 0, 312, 0, 313, 314,
10531 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
10532 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
10533 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
10534 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 0,
10535 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
10536 : 355, 356, 357, 0, 358, 359, 360, 361, 362, 0,
10537 : 363, 364, 0, 365, 366, 367, 0, 368, 369, 370,
10538 : 371, 372, 373, 374, 375, 376, 377, 0, 378, 379,
10539 : 380, 381, 382, 383, 384, 385, 0, 386, 387, 388,
10540 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
10541 : 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
10542 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
10543 : 417, 418, 0, 0, 419, 420, 421, 422, 423, 0,
10544 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
10545 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
10546 : 442, 443, 444, 445, 446, 447, 448, 449, 450, 451,
10547 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
10548 : 461, 462, 463, 0, 464, 465, 466, 467, 468, 469,
10549 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
10550 : 0, 0, 477, 478, 479, 480, 481, 482, 483, 484,
10551 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
10552 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
10553 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
10554 : 513, 514, 515, 516, 517, 518, 519, 0, 520, 521,
10555 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
10556 : 532, 0, 533, 534, 535, 536, 537, 538, 539, 540,
10557 : 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
10558 : 551, 0, 552, 553, 554, 555, 556, 0, 557, 558,
10559 : 559, 560, 561, 562, 563, 564, 565, 566, 0, 567,
10560 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
10561 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
10562 : 0, 586, 587, 588, 589, 590, 591, 592, 593, 0,
10563 : 594, 595, 596, 0, 0, 597, 598, 599, 600, 601,
10564 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
10565 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
10566 : 617, 618, 619, 620, 621, 622, 0, 623, 624, 625,
10567 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
10568 : 632, 633, 634, 635, 636, 637, 638, 639, 640, 641,
10569 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 1046,
10570 : 1740, 0, 6431, 717, 0, 0, 0, 0, 778, 0,
10571 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
10572 : 238, 239, 240, 241, 242, 243, 1741, 244, 245, 246,
10573 : 1742, 1743, 1744, 1745, 1746, 1747, 1748, 247, 248, 249,
10574 : 1749, 250, 251, 252, 253, 254, 255, 256, 257, 258,
10575 : 259, 260, 261, 262, 1750, 263, 264, 265, 266, 267,
10576 : 268, 269, 1751, 1752, 270, 271, 272, 273, 274, 1753,
10577 : 275, 276, 277, 278, 279, 1754, 280, 1755, 281, 282,
10578 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 1756,
10579 : 292, 293, 294, 295, 296, 297, 1757, 298, 299, 300,
10580 : 301, 1758, 1759, 1760, 302, 1761, 1762, 1763, 303, 304,
10581 : 305, 306, 307, 308, 309, 310, 311, 1764, 312, 1765,
10582 : 313, 314, 315, 316, 317, 318, 319, 1766, 320, 321,
10583 : 322, 323, 1767, 1768, 324, 325, 326, 327, 328, 1769,
10584 : 329, 330, 331, 332, 1770, 333, 334, 335, 336, 337,
10585 : 1771, 338, 339, 340, 341, 342, 343, 344, 345, 346,
10586 : 347, 1772, 348, 1773, 349, 350, 351, 352, 353, 1774,
10587 : 354, 1775, 355, 356, 357, 1776, 358, 359, 360, 361,
10588 : 362, 1777, 363, 364, 1778, 365, 366, 367, 1779, 368,
10589 : 369, 370, 371, 372, 373, 374, 375, 376, 377, 1780,
10590 : 378, 379, 380, 381, 382, 383, 384, 385, 1781, 386,
10591 : 387, 388, 389, 390, 391, 392, 393, 394, 1782, 395,
10592 : 1783, 396, 397, 398, 399, 400, 401, 402, 403, 404,
10593 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
10594 : 415, 416, 417, 418, 1784, 1785, 419, 420, 421, 422,
10595 : 423, 1786, 424, 425, 426, 1787, 1788, 427, 428, 429,
10596 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
10597 : 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
10598 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
10599 : 1789, 460, 461, 462, 463, 1790, 464, 465, 466, 467,
10600 : 468, 469, 470, 1791, 471, 472, 473, 1792, 1793, 474,
10601 : 475, 476, 1794, 1795, 477, 478, 479, 480, 481, 482,
10602 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
10603 : 493, 494, 495, 1796, 496, 497, 498, 499, 500, 501,
10604 : 502, 503, 504, 1797, 505, 506, 507, 508, 509, 510,
10605 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 1798,
10606 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
10607 : 530, 531, 532, 1799, 533, 534, 535, 536, 537, 538,
10608 : 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
10609 : 549, 550, 551, 1800, 552, 553, 554, 555, 556, 1801,
10610 : 557, 558, 559, 560, 561, 562, 563, 564, 565, 566,
10611 : 1802, 567, 568, 569, 570, 571, 572, 573, 574, 575,
10612 : 576, 577, 578, 579, 580, 581, 582, 583, 1803, 584,
10613 : 585, 1804, 1805, 586, 587, 588, 589, 590, 591, 592,
10614 : 593, 1806, 594, 595, 596, 1807, 1808, 597, 598, 599,
10615 : 600, 601, 1809, 602, 603, 604, 605, 606, 607, 608,
10616 : 609, 610, 1810, 1811, 611, 612, 613, 614, 615, 1812,
10617 : 1813, 616, 617, 618, 619, 620, 621, 622, 1814, 623,
10618 : 624, 625, 626, 627, 628, 629, 1815, 1816, 630, 1817,
10619 : 1818, 631, 632, 633, 634, 635, 636, 637, 638, 639,
10620 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
10621 : 650, 1740, 0, 0, 0, 0, 0, 0, 0, 0,
10622 : 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
10623 : 237, 238, 239, 240, 241, 242, 243, 1741, 244, 245,
10624 : 246, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 247, 248,
10625 : 249, 1749, 250, 251, 252, 253, 254, 255, 256, 257,
10626 : 258, 259, 260, 261, 262, 1750, 263, 264, 265, 266,
10627 : 267, 268, 269, 1751, 1752, 270, 271, 272, 273, 274,
10628 : 1753, 275, 276, 277, 278, 279, 1754, 280, 1755, 281,
10629 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
10630 : 1756, 292, 293, 294, 295, 296, 297, 1757, 298, 299,
10631 : 300, 301, 1758, 1759, 1760, 302, 1761, 1762, 1763, 303,
10632 : 304, 305, 306, 307, 308, 309, 310, 311, 1764, 312,
10633 : 1765, 313, 314, 315, 316, 317, 318, 319, 1766, 320,
10634 : 321, 322, 323, 1767, 1768, 324, 325, 326, 327, 328,
10635 : 1769, 329, 330, 331, 332, 1770, 333, 334, 335, 336,
10636 : 337, 1771, 338, 339, 340, 341, 342, 343, 344, 345,
10637 : 346, 347, 1772, 348, 1773, 349, 350, 351, 352, 353,
10638 : 1774, 354, 1775, 355, 356, 357, 1776, 358, 359, 360,
10639 : 361, 362, 1777, 363, 364, 1778, 365, 366, 367, 1779,
10640 : 368, 369, 370, 371, 372, 373, 374, 375, 376, 377,
10641 : 1780, 378, 379, 380, 381, 382, 383, 384, 385, 1781,
10642 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 1782,
10643 : 395, 1783, 396, 397, 398, 399, 400, 401, 402, 403,
10644 : 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
10645 : 414, 415, 416, 417, 418, 1784, 1785, 419, 420, 421,
10646 : 422, 423, 1786, 424, 425, 426, 1787, 1788, 427, 428,
10647 : 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
10648 : 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
10649 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
10650 : 459, 1789, 460, 461, 462, 463, 1790, 464, 465, 466,
10651 : 467, 468, 469, 470, 1791, 471, 472, 473, 1792, 1793,
10652 : 474, 475, 476, 1794, 1795, 477, 478, 479, 480, 481,
10653 : 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
10654 : 492, 493, 494, 495, 1796, 496, 497, 498, 499, 500,
10655 : 501, 502, 503, 504, 1797, 505, 506, 507, 508, 509,
10656 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
10657 : 1798, 520, 521, 522, 523, 524, 525, 526, 527, 528,
10658 : 529, 530, 531, 532, 1799, 533, 534, 535, 536, 537,
10659 : 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
10660 : 548, 549, 550, 551, 1800, 552, 553, 554, 555, 556,
10661 : 1801, 557, 558, 559, 560, 561, 562, 563, 564, 565,
10662 : 566, 1802, 567, 568, 569, 570, 571, 572, 573, 574,
10663 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 1803,
10664 : 584, 585, 1804, 1805, 586, 587, 588, 589, 590, 591,
10665 : 592, 593, 1806, 594, 595, 596, 1807, 1808, 597, 598,
10666 : 599, 600, 601, 1809, 602, 603, 604, 605, 606, 607,
10667 : 608, 609, 610, 1810, 1811, 611, 612, 613, 614, 615,
10668 : 1812, 1813, 616, 617, 618, 619, 620, 621, 622, 1814,
10669 : 623, 624, 625, 626, 627, 628, 629, 1815, 1816, 630,
10670 : 1817, 1818, 631, 632, 633, 634, 635, 636, 637, 638,
10671 : 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
10672 : 649, 650, 1740, 0, 0, 0, 0, 0, 0, 0,
10673 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
10674 : 236, 237, 238, 239, 3674, 241, 242, 243, 1741, 244,
10675 : 245, 246, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 247,
10676 : 248, 249, 1749, 250, 251, 252, 253, 254, 255, 256,
10677 : 257, 258, 259, 260, 261, 262, 1750, 263, 264, 265,
10678 : 266, 267, 268, 269, 1751, 1752, 270, 271, 272, 273,
10679 : 274, 1753, 275, 276, 277, 278, 279, 1754, 280, 1755,
10680 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
10681 : 291, 1756, 292, 293, 294, 295, 296, 297, 1757, 298,
10682 : 299, 300, 301, 1758, 1759, 1760, 302, 1761, 1762, 1763,
10683 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 1764,
10684 : 312, 1765, 313, 314, 315, 316, 317, 318, 319, 1766,
10685 : 320, 321, 322, 323, 1767, 1768, 324, 325, 326, 3675,
10686 : 328, 1769, 329, 330, 331, 332, 1770, 333, 334, 335,
10687 : 336, 337, 1771, 338, 339, 340, 341, 342, 343, 344,
10688 : 345, 346, 347, 1772, 348, 1773, 349, 350, 351, 352,
10689 : 353, 1774, 354, 1775, 355, 356, 357, 1776, 358, 359,
10690 : 360, 361, 362, 1777, 363, 364, 1778, 365, 366, 367,
10691 : 1779, 368, 369, 370, 371, 372, 373, 374, 375, 376,
10692 : 377, 1780, 378, 379, 380, 381, 382, 383, 384, 385,
10693 : 1781, 386, 387, 388, 389, 390, 391, 392, 393, 394,
10694 : 1782, 395, 1783, 396, 397, 398, 399, 400, 401, 402,
10695 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
10696 : 413, 414, 415, 416, 417, 418, 1784, 1785, 419, 420,
10697 : 421, 422, 423, 1786, 424, 425, 426, 1787, 1788, 427,
10698 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
10699 : 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
10700 : 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
10701 : 458, 459, 1789, 460, 461, 462, 463, 1790, 464, 465,
10702 : 466, 467, 468, 469, 470, 1791, 471, 472, 473, 1792,
10703 : 1793, 474, 475, 476, 1794, 1795, 477, 478, 479, 480,
10704 : 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
10705 : 491, 492, 493, 494, 495, 1796, 496, 497, 498, 499,
10706 : 500, 501, 502, 503, 504, 1797, 505, 506, 507, 508,
10707 : 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
10708 : 519, 1798, 520, 521, 522, 523, 524, 525, 526, 527,
10709 : 528, 529, 530, 531, 532, 1799, 533, 534, 535, 536,
10710 : 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
10711 : 547, 548, 549, 550, 551, 1800, 552, 553, 554, 555,
10712 : 556, 1801, 3676, 558, 559, 560, 561, 562, 563, 564,
10713 : 565, 566, 1802, 567, 568, 569, 570, 571, 572, 573,
10714 : 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
10715 : 1803, 584, 585, 1804, 1805, 586, 587, 588, 589, 590,
10716 : 591, 592, 593, 1806, 594, 595, 596, 1807, 1808, 597,
10717 : 598, 599, 600, 601, 1809, 602, 603, 604, 605, 606,
10718 : 607, 608, 609, 610, 1810, 1811, 611, 612, 613, 614,
10719 : 615, 1812, 1813, 616, 617, 618, 619, 620, 621, 622,
10720 : 1814, 623, 624, 625, 626, 627, 628, 629, 1815, 1816,
10721 : 630, 1817, 1818, 631, 632, 633, 634, 635, 636, 637,
10722 : 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
10723 : 648, 649, 650, 234, 0, 0, 0, 0, 0, 0,
10724 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10725 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
10726 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
10727 : 247, 248, 249, 0, 250, 251, 252, 253, 254, 255,
10728 : 256, 257, 258, 259, 260, 261, 262, 0, 263, 264,
10729 : 265, 266, 267, 268, 269, 0, 1281, 270, 271, 272,
10730 : 273, 274, 0, 275, 276, 277, 278, 1284, 0, 1285,
10731 : 0, 281, 282, 283, 284, 285, 286, 287, 288, 289,
10732 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
10733 : 298, 299, 300, 301, 1286, 1287, 1288, 1289, 1290, 1291,
10734 : 1292, 303, 304, 305, 306, 307, 308, 309, 310, 311,
10735 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
10736 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
10737 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
10738 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
10739 : 344, 345, 346, 1297, 0, 348, 0, 349, 350, 351,
10740 : 352, 353, 0, 354, 0, 355, 356, 357, 0, 358,
10741 : 359, 360, 361, 362, 0, 363, 1300, 0, 365, 366,
10742 : 367, 0, 368, 369, 370, 371, 372, 373, 374, 375,
10743 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
10744 : 385, 0, 386, 387, 388, 389, 390, 391, 392, 393,
10745 : 394, 0, 395, 0, 396, 397, 398, 399, 400, 3470,
10746 : 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 410, 1314,
10747 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
10748 : 1315, 421, 422, 423, 0, 424, 425, 426, 1316, 1317,
10749 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
10750 : 1318, 438, 439, 440, 441, 442, 443, 444, 445, 446,
10751 : 447, 448, 449, 450, 451, 452, 453, 454, 455, 456,
10752 : 457, 1321, 459, 0, 460, 461, 462, 463, 0, 1324,
10753 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
10754 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 479,
10755 : 480, 481, 482, 1327, 484, 485, 486, 487, 488, 489,
10756 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
10757 : 1328, 500, 501, 502, 503, 504, 0, 505, 506, 507,
10758 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
10759 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
10760 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 535,
10761 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
10762 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
10763 : 555, 556, 1331, 557, 558, 559, 560, 561, 562, 563,
10764 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
10765 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 1333,
10766 : 583, 0, 584, 585, 1334, 0, 586, 587, 588, 589,
10767 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
10768 : 597, 598, 1337, 600, 1338, 0, 602, 603, 604, 605,
10769 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
10770 : 614, 615, 1341, 0, 616, 617, 618, 619, 620, 621,
10771 : 622, 0, 623, 624, 625, 626, 627, 628, 629, 0,
10772 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
10773 : 637, 1343, 1344, 1345, 1346, 642, 1347, 1348, 1349, 1350,
10774 : 647, 648, 649, 650, 234, 0, 1271, 717, 0, 1272,
10775 : 1273, 0, 778, 0, 0, 0, 0, 0, 0, 0,
10776 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
10777 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
10778 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 254,
10779 : 255, 256, 257, 258, 1277, 260, 1278, 1279, 0, 263,
10780 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
10781 : 1282, 1283, 274, 0, 275, 276, 277, 278, 279, 0,
10782 : 280, 0, 281, 282, 283, 284, 285, 286, 287, 288,
10783 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
10784 : 0, 298, 299, 300, 301, 0, 0, 0, 302, 0,
10785 : 0, 0, 303, 304, 305, 306, 307, 308, 1293, 1294,
10786 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
10787 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
10788 : 887, 327, 328, 0, 329, 330, 331, 332, 0, 333,
10789 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
10790 : 343, 344, 345, 346, 347, 1298, 348, 0, 349, 350,
10791 : 351, 1299, 353, 0, 354, 0, 355, 356, 357, 0,
10792 : 358, 359, 360, 361, 362, 0, 363, 364, 0, 365,
10793 : 366, 367, 0, 368, 369, 370, 371, 372, 373, 374,
10794 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
10795 : 384, 385, 0, 386, 387, 388, 389, 390, 391, 392,
10796 : 1302, 1303, 0, 1304, 0, 396, 397, 398, 399, 400,
10797 : 6403, 402, 403, 404, 405, 406, 407, 408, 409, 410,
10798 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
10799 : 419, 420, 421, 422, 423, 0, 424, 425, 426, 0,
10800 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
10801 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
10802 : 1319, 447, 1320, 449, 450, 451, 452, 453, 454, 455,
10803 : 456, 457, 458, 459, 0, 460, 461, 462, 463, 1323,
10804 : 464, 465, 1325, 467, 468, 469, 470, 0, 471, 472,
10805 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
10806 : 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
10807 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
10808 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
10809 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 1329,
10810 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
10811 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
10812 : 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
10813 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
10814 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 562,
10815 : 563, 564, 1332, 566, 0, 567, 568, 569, 570, 571,
10816 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
10817 : 582, 583, 0, 584, 585, 0, 0, 586, 587, 588,
10818 : 589, 590, 591, 592, 593, 0, 594, 1335, 1336, 0,
10819 : 0, 597, 598, 599, 600, 601, 1339, 602, 603, 604,
10820 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
10821 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
10822 : 621, 1342, 0, 623, 624, 625, 626, 627, 628, 629,
10823 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
10824 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
10825 : 646, 647, 648, 649, 650, 967, 0, 0, 0, 0,
10826 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10827 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
10828 : 243, 1006, 244, 245, 246, 0, 0, 0, 0, 0,
10829 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
10830 : 254, 255, 256, 257, 258, 259, 260, 261, 262, 0,
10831 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
10832 : 271, 272, 273, 274, 0, 275, 276, 277, 278, 279,
10833 : 0, 280, 0, 281, 282, 283, 284, 285, 286, 287,
10834 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
10835 : 297, 0, 298, 299, 300, 301, 0, 0, 968, 302,
10836 : 0, 0, 969, 303, 304, 305, 306, 307, 308, 309,
10837 : 310, 311, 0, 312, 0, 313, 314, 315, 316, 317,
10838 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
10839 : 325, 326, 327, 328, 0, 329, 330, 331, 332, 0,
10840 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
10841 : 342, 343, 344, 345, 346, 347, 0, 348, 0, 349,
10842 : 350, 351, 352, 353, 0, 354, 0, 355, 356, 357,
10843 : 0, 358, 359, 360, 361, 362, 0, 363, 364, 0,
10844 : 365, 366, 367, 0, 368, 369, 370, 371, 372, 373,
10845 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
10846 : 383, 384, 385, 0, 386, 387, 388, 389, 390, 391,
10847 : 392, 393, 394, 0, 395, 0, 396, 397, 398, 399,
10848 : 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
10849 : 410, 411, 412, 413, 414, 415, 416, 417, 418, 0,
10850 : 0, 419, 420, 421, 422, 423, 0, 424, 425, 426,
10851 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
10852 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
10853 : 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
10854 : 455, 456, 457, 458, 459, 0, 460, 461, 462, 463,
10855 : 0, 464, 465, 466, 467, 468, 469, 470, 0, 471,
10856 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
10857 : 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
10858 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
10859 : 497, 498, 499, 500, 501, 502, 503, 504, 0, 505,
10860 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
10861 : 516, 517, 518, 519, 0, 520, 521, 522, 523, 524,
10862 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
10863 : 534, 535, 536, 537, 538, 539, 540, 541, 542, 543,
10864 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
10865 : 553, 554, 555, 556, 970, 557, 558, 559, 560, 561,
10866 : 562, 563, 564, 565, 566, 0, 567, 568, 569, 570,
10867 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
10868 : 581, 582, 583, 0, 584, 585, 0, 0, 586, 587,
10869 : 588, 589, 590, 591, 592, 593, 0, 594, 595, 596,
10870 : 0, 0, 597, 598, 599, 600, 601, 0, 602, 603,
10871 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
10872 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
10873 : 620, 621, 622, 0, 623, 624, 625, 626, 627, 628,
10874 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
10875 : 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
10876 : 645, 646, 647, 648, 649, 650, 967, 0, 0, 0,
10877 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10878 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
10879 : 242, 243, 1027, 244, 245, 246, 0, 0, 0, 0,
10880 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
10881 : 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
10882 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
10883 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
10884 : 279, 0, 280, 0, 281, 282, 283, 284, 285, 286,
10885 : 287, 288, 289, 290, 291, 0, 292, 293, 294, 295,
10886 : 296, 297, 0, 298, 299, 300, 301, 0, 0, 968,
10887 : 302, 0, 0, 969, 303, 304, 305, 306, 307, 308,
10888 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
10889 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
10890 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
10891 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
10892 : 341, 342, 343, 344, 345, 346, 347, 0, 348, 0,
10893 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
10894 : 357, 0, 358, 359, 360, 361, 362, 0, 363, 364,
10895 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 372,
10896 : 373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
10897 : 382, 383, 384, 385, 0, 386, 387, 388, 389, 390,
10898 : 391, 392, 393, 394, 0, 395, 0, 396, 397, 398,
10899 : 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
10900 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
10901 : 0, 0, 419, 420, 421, 422, 423, 0, 424, 425,
10902 : 426, 0, 0, 427, 428, 429, 430, 1028, 432, 433,
10903 : 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
10904 : 444, 445, 446, 447, 448, 449, 450, 451, 452, 453,
10905 : 454, 455, 456, 457, 458, 459, 0, 460, 461, 462,
10906 : 463, 0, 464, 465, 466, 467, 468, 469, 470, 0,
10907 : 471, 472, 473, 0, 0, 474, 475, 476, 0, 0,
10908 : 477, 478, 479, 480, 481, 482, 483, 484, 485, 486,
10909 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
10910 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 0,
10911 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
10912 : 515, 516, 517, 518, 519, 0, 520, 521, 522, 523,
10913 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
10914 : 533, 534, 535, 536, 537, 538, 539, 540, 541, 542,
10915 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
10916 : 552, 553, 554, 555, 556, 970, 557, 558, 559, 560,
10917 : 561, 562, 563, 564, 565, 566, 0, 567, 568, 569,
10918 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
10919 : 580, 581, 582, 583, 0, 584, 585, 0, 0, 586,
10920 : 587, 588, 589, 590, 591, 592, 593, 0, 594, 595,
10921 : 596, 0, 0, 597, 598, 599, 600, 601, 0, 602,
10922 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
10923 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
10924 : 619, 620, 621, 622, 0, 623, 624, 625, 626, 627,
10925 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
10926 : 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
10927 : 644, 645, 646, 647, 648, 649, 650, 967, 0, 0,
10928 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10929 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
10930 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
10931 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
10932 : 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
10933 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
10934 : 0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
10935 : 278, 279, 0, 280, 0, 281, 282, 283, 284, 285,
10936 : 286, 287, 288, 289, 290, 291, 0, 292, 293, 294,
10937 : 295, 296, 297, 0, 298, 299, 300, 301, 0, 0,
10938 : 968, 302, 0, 0, 969, 303, 304, 305, 306, 307,
10939 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
10940 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
10941 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
10942 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
10943 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
10944 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
10945 : 356, 357, 0, 358, 359, 360, 361, 362, 0, 363,
10946 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
10947 : 372, 373, 374, 375, 376, 377, 0, 378, 379, 380,
10948 : 381, 382, 383, 384, 385, 0, 386, 387, 388, 389,
10949 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 397,
10950 : 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
10951 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
10952 : 418, 0, 0, 419, 420, 421, 422, 423, 0, 424,
10953 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
10954 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
10955 : 443, 444, 445, 446, 447, 448, 449, 450, 451, 452,
10956 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
10957 : 462, 463, 0, 464, 465, 466, 467, 468, 469, 470,
10958 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
10959 : 0, 477, 478, 479, 480, 481, 482, 483, 484, 485,
10960 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
10961 : 0, 496, 497, 498, 499, 500, 501, 502, 503, 504,
10962 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
10963 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
10964 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
10965 : 0, 533, 534, 535, 536, 537, 538, 539, 540, 541,
10966 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
10967 : 0, 552, 553, 554, 555, 556, 970, 557, 558, 559,
10968 : 560, 561, 562, 563, 564, 565, 566, 0, 567, 568,
10969 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
10970 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
10971 : 586, 587, 588, 589, 590, 591, 592, 593, 0, 594,
10972 : 595, 596, 0, 0, 597, 598, 599, 600, 601, 0,
10973 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
10974 : 0, 611, 612, 613, 614, 615, 3003, 0, 616, 617,
10975 : 618, 619, 620, 621, 622, 0, 623, 624, 625, 626,
10976 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
10977 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
10978 : 643, 644, 645, 646, 647, 648, 649, 650, 967, 0,
10979 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10980 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
10981 : 240, 241, 242, 243, 0, 244, 245, 246, 0, 0,
10982 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
10983 : 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
10984 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
10985 : 0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
10986 : 277, 278, 279, 0, 280, 0, 281, 282, 283, 284,
10987 : 285, 286, 287, 288, 289, 290, 291, 0, 292, 293,
10988 : 294, 295, 296, 297, 0, 298, 299, 300, 301, 0,
10989 : 0, 968, 302, 0, 0, 969, 303, 304, 305, 306,
10990 : 307, 308, 309, 310, 311, 0, 312, 0, 313, 314,
10991 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
10992 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
10993 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
10994 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 0,
10995 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
10996 : 355, 356, 357, 0, 358, 359, 360, 361, 362, 0,
10997 : 363, 364, 4028, 365, 366, 367, 0, 368, 369, 370,
10998 : 371, 372, 373, 374, 375, 376, 377, 0, 378, 379,
10999 : 380, 381, 382, 383, 384, 385, 0, 386, 387, 388,
11000 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
11001 : 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
11002 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
11003 : 417, 418, 0, 0, 419, 420, 421, 422, 423, 0,
11004 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
11005 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
11006 : 442, 443, 444, 445, 446, 447, 448, 449, 450, 451,
11007 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
11008 : 461, 462, 463, 0, 464, 465, 466, 467, 468, 469,
11009 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
11010 : 0, 0, 477, 478, 479, 480, 481, 482, 483, 484,
11011 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
11012 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
11013 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
11014 : 513, 514, 515, 516, 517, 518, 519, 0, 520, 521,
11015 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
11016 : 532, 0, 533, 534, 535, 536, 537, 538, 539, 540,
11017 : 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
11018 : 551, 0, 552, 553, 554, 555, 556, 970, 557, 558,
11019 : 559, 560, 561, 562, 563, 564, 565, 566, 0, 567,
11020 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
11021 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
11022 : 0, 586, 587, 588, 589, 590, 591, 592, 593, 0,
11023 : 594, 595, 596, 0, 0, 597, 598, 599, 600, 601,
11024 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
11025 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
11026 : 617, 618, 619, 620, 621, 622, 0, 623, 624, 625,
11027 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
11028 : 632, 633, 634, 635, 636, 637, 638, 639, 640, 641,
11029 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 967,
11030 : 0, 0, 717, 0, 0, 0, 0, 0, 0, 0,
11031 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
11032 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
11033 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
11034 : 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
11035 : 260, 261, 262, 0, 263, 264, 265, 266, 267, 268,
11036 : 269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
11037 : 276, 277, 278, 279, 0, 280, 0, 281, 282, 283,
11038 : 284, 285, 286, 287, 288, 289, 290, 291, 0, 292,
11039 : 293, 294, 295, 296, 297, 0, 298, 299, 300, 301,
11040 : 0, 0, 0, 302, 0, 0, 0, 303, 304, 305,
11041 : 306, 307, 308, 309, 310, 311, 0, 312, 0, 313,
11042 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
11043 : 323, 0, 0, 324, 325, 326, 327, 328, 0, 329,
11044 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
11045 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
11046 : 1829, 348, 0, 349, 350, 351, 352, 353, 0, 354,
11047 : 0, 355, 356, 357, 0, 358, 359, 360, 361, 362,
11048 : 0, 363, 364, 0, 365, 366, 367, 0, 368, 369,
11049 : 370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
11050 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 387,
11051 : 388, 389, 390, 391, 392, 393, 394, 0, 395, 0,
11052 : 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
11053 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
11054 : 416, 417, 418, 0, 0, 419, 420, 421, 422, 423,
11055 : 0, 424, 425, 426, 0, 0, 427, 428, 429, 430,
11056 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
11057 : 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
11058 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 0,
11059 : 460, 461, 462, 463, 0, 464, 465, 466, 467, 468,
11060 : 469, 470, 0, 471, 472, 473, 1830, 0, 474, 475,
11061 : 476, 0, 0, 477, 478, 479, 480, 481, 482, 483,
11062 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
11063 : 494, 495, 0, 496, 497, 498, 499, 500, 501, 502,
11064 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
11065 : 512, 513, 514, 515, 516, 517, 518, 519, 0, 520,
11066 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
11067 : 531, 532, 0, 533, 534, 535, 536, 537, 538, 539,
11068 : 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
11069 : 550, 551, 0, 552, 553, 554, 555, 556, 0, 557,
11070 : 558, 559, 560, 561, 562, 563, 564, 565, 566, 0,
11071 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
11072 : 577, 578, 579, 580, 581, 582, 583, 0, 584, 585,
11073 : 0, 0, 586, 587, 588, 589, 590, 591, 592, 593,
11074 : 0, 594, 595, 596, 0, 0, 597, 598, 599, 600,
11075 : 601, 1831, 602, 603, 604, 605, 606, 607, 608, 609,
11076 : 610, 0, 0, 611, 612, 613, 614, 615, 0, 0,
11077 : 616, 617, 618, 619, 620, 621, 622, 0, 623, 624,
11078 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
11079 : 631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
11080 : 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
11081 : 967, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11082 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
11083 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
11084 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
11085 : 0, 250, 251, 252, 253, 254, 255, 256, 257, 258,
11086 : 259, 260, 261, 262, 0, 263, 264, 265, 266, 267,
11087 : 268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
11088 : 275, 276, 277, 278, 279, 0, 280, 0, 281, 282,
11089 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 0,
11090 : 292, 293, 294, 295, 296, 297, 0, 298, 299, 300,
11091 : 301, 0, 0, 968, 302, 0, 0, 969, 303, 304,
11092 : 305, 306, 307, 308, 309, 310, 311, 0, 312, 0,
11093 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
11094 : 322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
11095 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
11096 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
11097 : 347, 0, 348, 0, 349, 350, 351, 352, 353, 0,
11098 : 354, 0, 355, 356, 357, 0, 358, 359, 360, 361,
11099 : 362, 0, 363, 364, 0, 365, 366, 367, 0, 368,
11100 : 369, 370, 371, 372, 373, 374, 375, 376, 377, 0,
11101 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
11102 : 387, 388, 389, 390, 391, 392, 393, 394, 0, 395,
11103 : 0, 396, 397, 398, 399, 400, 401, 402, 403, 404,
11104 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
11105 : 415, 416, 417, 418, 0, 0, 419, 420, 421, 422,
11106 : 423, 0, 424, 425, 426, 0, 0, 427, 428, 429,
11107 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
11108 : 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
11109 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
11110 : 0, 460, 461, 462, 463, 0, 464, 465, 466, 467,
11111 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
11112 : 475, 476, 0, 0, 477, 478, 479, 480, 481, 482,
11113 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
11114 : 493, 494, 495, 0, 496, 497, 498, 499, 500, 501,
11115 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
11116 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
11117 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
11118 : 530, 531, 532, 0, 533, 534, 535, 536, 537, 538,
11119 : 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
11120 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 970,
11121 : 557, 558, 559, 560, 561, 562, 563, 564, 565, 566,
11122 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
11123 : 576, 577, 578, 579, 580, 581, 582, 583, 0, 584,
11124 : 585, 0, 0, 586, 587, 588, 589, 590, 591, 592,
11125 : 593, 0, 594, 595, 596, 0, 0, 597, 598, 599,
11126 : 600, 601, 0, 602, 603, 604, 605, 606, 607, 608,
11127 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
11128 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
11129 : 624, 625, 626, 627, 628, 629, 0, 0, 630, 0,
11130 : 0, 631, 632, 633, 634, 635, 636, 637, 638, 639,
11131 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
11132 : 650, 967, 0, 0, 0, 0, 0, 0, 0, 0,
11133 : 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
11134 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
11135 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
11136 : 249, 0, 250, 251, 252, 253, 254, 255, 256, 257,
11137 : 258, 259, 260, 261, 262, 0, 263, 264, 265, 266,
11138 : 267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
11139 : 0, 275, 276, 277, 278, 279, 0, 280, 0, 281,
11140 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
11141 : 0, 292, 293, 294, 295, 296, 297, 0, 298, 299,
11142 : 300, 301, 0, 0, 968, 302, 0, 0, 969, 303,
11143 : 304, 305, 306, 307, 308, 309, 310, 311, 0, 312,
11144 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
11145 : 321, 322, 323, 0, 0, 324, 325, 326, 327, 328,
11146 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
11147 : 337, 0, 338, 339, 340, 341, 342, 343, 344, 345,
11148 : 346, 347, 0, 348, 0, 349, 350, 351, 352, 353,
11149 : 0, 354, 0, 355, 356, 357, 0, 358, 359, 360,
11150 : 361, 362, 0, 363, 364, 0, 365, 366, 367, 0,
11151 : 368, 369, 370, 371, 372, 373, 374, 375, 376, 377,
11152 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
11153 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 0,
11154 : 395, 0, 396, 397, 398, 399, 400, 401, 402, 403,
11155 : 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
11156 : 414, 415, 416, 417, 418, 0, 0, 419, 420, 421,
11157 : 422, 423, 0, 424, 425, 426, 0, 0, 427, 428,
11158 : 429, 430, 1122, 432, 433, 434, 435, 436, 437, 438,
11159 : 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
11160 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
11161 : 459, 0, 460, 461, 462, 463, 0, 464, 465, 466,
11162 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
11163 : 474, 475, 476, 0, 0, 477, 478, 479, 480, 481,
11164 : 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
11165 : 492, 493, 494, 495, 0, 496, 497, 498, 499, 500,
11166 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
11167 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
11168 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
11169 : 529, 530, 531, 532, 0, 533, 534, 535, 536, 537,
11170 : 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
11171 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 556,
11172 : 970, 557, 558, 559, 560, 561, 562, 563, 564, 565,
11173 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
11174 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 0,
11175 : 584, 585, 0, 0, 586, 587, 588, 589, 590, 591,
11176 : 592, 593, 0, 594, 595, 596, 0, 0, 597, 598,
11177 : 599, 600, 601, 0, 602, 603, 604, 605, 606, 607,
11178 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
11179 : 0, 0, 616, 617, 618, 619, 620, 621, 622, 0,
11180 : 623, 624, 625, 626, 627, 628, 629, 0, 0, 630,
11181 : 0, 0, 631, 632, 633, 634, 635, 636, 637, 638,
11182 : 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
11183 : 649, 650, 967, 0, 0, 0, 0, 0, 0, 0,
11184 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
11185 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
11186 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
11187 : 248, 249, 0, 250, 251, 252, 253, 254, 255, 256,
11188 : 257, 258, 259, 260, 261, 262, 0, 263, 264, 265,
11189 : 266, 267, 268, 269, 0, 0, 270, 271, 272, 273,
11190 : 274, 0, 275, 276, 277, 278, 279, 0, 280, 0,
11191 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
11192 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 298,
11193 : 299, 300, 301, 0, 0, 968, 302, 0, 0, 969,
11194 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 0,
11195 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
11196 : 320, 321, 322, 323, 0, 0, 324, 325, 326, 327,
11197 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
11198 : 336, 337, 0, 338, 339, 340, 341, 342, 343, 344,
11199 : 345, 346, 347, 0, 348, 0, 349, 350, 351, 352,
11200 : 353, 0, 354, 0, 355, 356, 357, 0, 358, 359,
11201 : 360, 361, 362, 0, 363, 364, 0, 365, 366, 367,
11202 : 0, 368, 369, 370, 371, 1164, 373, 374, 375, 376,
11203 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
11204 : 0, 386, 387, 388, 389, 390, 391, 392, 393, 394,
11205 : 0, 395, 0, 396, 397, 398, 399, 400, 401, 402,
11206 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
11207 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 420,
11208 : 421, 422, 423, 0, 424, 425, 426, 0, 0, 427,
11209 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
11210 : 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
11211 : 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
11212 : 458, 459, 0, 460, 461, 462, 463, 0, 464, 465,
11213 : 466, 467, 468, 469, 470, 0, 471, 472, 473, 0,
11214 : 0, 474, 475, 476, 0, 0, 477, 478, 479, 480,
11215 : 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
11216 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 499,
11217 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
11218 : 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
11219 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
11220 : 528, 529, 530, 531, 532, 0, 533, 534, 535, 536,
11221 : 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
11222 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
11223 : 556, 970, 557, 558, 559, 560, 561, 562, 563, 564,
11224 : 565, 566, 0, 567, 568, 569, 570, 571, 572, 573,
11225 : 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
11226 : 0, 584, 585, 0, 0, 586, 587, 588, 589, 590,
11227 : 591, 592, 593, 0, 594, 595, 596, 0, 0, 597,
11228 : 598, 599, 600, 601, 0, 602, 603, 604, 605, 606,
11229 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
11230 : 615, 0, 0, 616, 617, 618, 619, 620, 621, 622,
11231 : 0, 623, 624, 625, 626, 627, 628, 629, 0, 0,
11232 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
11233 : 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
11234 : 648, 649, 650, 967, 0, 0, 0, 0, 0, 0,
11235 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11236 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
11237 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
11238 : 247, 248, 249, 0, 250, 251, 252, 253, 254, 255,
11239 : 256, 257, 258, 259, 260, 261, 262, 0, 263, 264,
11240 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 272,
11241 : 273, 274, 0, 275, 276, 277, 278, 279, 0, 280,
11242 : 0, 281, 282, 283, 284, 285, 286, 287, 288, 289,
11243 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
11244 : 298, 299, 300, 301, 0, 0, 968, 302, 0, 0,
11245 : 969, 303, 304, 305, 306, 307, 308, 309, 310, 311,
11246 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
11247 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
11248 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
11249 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
11250 : 344, 345, 346, 347, 0, 348, 0, 349, 350, 351,
11251 : 352, 353, 0, 354, 0, 355, 356, 357, 0, 358,
11252 : 359, 360, 361, 362, 0, 363, 364, 0, 365, 366,
11253 : 367, 0, 368, 369, 370, 371, 1177, 373, 374, 375,
11254 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
11255 : 385, 0, 386, 387, 388, 389, 390, 391, 392, 393,
11256 : 394, 0, 395, 0, 396, 397, 398, 399, 400, 401,
11257 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
11258 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
11259 : 420, 421, 422, 423, 0, 424, 425, 426, 0, 0,
11260 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
11261 : 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
11262 : 447, 448, 449, 450, 451, 452, 453, 454, 455, 456,
11263 : 457, 458, 459, 0, 460, 461, 462, 463, 0, 464,
11264 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
11265 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 479,
11266 : 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
11267 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
11268 : 499, 500, 501, 502, 503, 504, 0, 505, 506, 507,
11269 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
11270 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
11271 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 535,
11272 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
11273 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
11274 : 555, 556, 970, 557, 558, 559, 560, 561, 562, 563,
11275 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
11276 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
11277 : 583, 0, 584, 585, 0, 0, 586, 587, 588, 589,
11278 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
11279 : 597, 598, 599, 600, 601, 0, 602, 603, 604, 605,
11280 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
11281 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 621,
11282 : 622, 0, 623, 624, 625, 626, 627, 628, 629, 0,
11283 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
11284 : 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
11285 : 647, 648, 649, 650, 967, 0, 0, 0, 0, 0,
11286 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11287 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
11288 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
11289 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 254,
11290 : 255, 256, 257, 258, 259, 260, 261, 262, 0, 263,
11291 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
11292 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
11293 : 280, 0, 281, 282, 283, 284, 285, 286, 287, 288,
11294 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
11295 : 0, 298, 299, 300, 301, 0, 0, 968, 302, 0,
11296 : 0, 969, 303, 304, 305, 306, 307, 308, 309, 310,
11297 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
11298 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
11299 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
11300 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
11301 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
11302 : 351, 352, 353, 0, 354, 0, 355, 356, 357, 0,
11303 : 358, 359, 360, 361, 362, 0, 363, 364, 0, 365,
11304 : 366, 367, 0, 368, 369, 370, 371, 1189, 373, 374,
11305 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
11306 : 384, 385, 0, 386, 387, 388, 389, 390, 391, 392,
11307 : 393, 394, 0, 395, 0, 396, 397, 398, 399, 400,
11308 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
11309 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
11310 : 419, 420, 421, 422, 423, 0, 424, 425, 426, 0,
11311 : 0, 427, 428, 429, 430, 1190, 432, 433, 434, 435,
11312 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
11313 : 446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
11314 : 456, 457, 458, 459, 0, 460, 461, 462, 463, 0,
11315 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
11316 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
11317 : 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
11318 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
11319 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
11320 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
11321 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
11322 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
11323 : 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
11324 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
11325 : 554, 555, 556, 970, 557, 558, 559, 560, 561, 562,
11326 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
11327 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
11328 : 582, 583, 0, 584, 585, 0, 0, 586, 587, 588,
11329 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
11330 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
11331 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
11332 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
11333 : 621, 622, 0, 623, 624, 625, 626, 627, 628, 629,
11334 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
11335 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
11336 : 646, 647, 648, 649, 650, 967, 0, 0, 717, 0,
11337 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11338 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
11339 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 0,
11340 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
11341 : 254, 255, 256, 257, 258, 259, 260, 261, 262, 0,
11342 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
11343 : 271, 272, 273, 274, 0, 275, 276, 277, 278, 279,
11344 : 0, 280, 0, 281, 282, 283, 284, 285, 286, 287,
11345 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
11346 : 297, 0, 298, 299, 300, 301, 0, 0, 0, 302,
11347 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 309,
11348 : 310, 311, 2607, 312, 0, 313, 314, 315, 316, 317,
11349 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
11350 : 325, 326, 327, 328, 0, 329, 330, 331, 332, 0,
11351 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
11352 : 342, 343, 344, 345, 346, 347, 0, 348, 0, 349,
11353 : 350, 351, 352, 353, 0, 354, 0, 355, 356, 357,
11354 : 0, 358, 359, 360, 361, 362, 0, 363, 364, 0,
11355 : 365, 366, 367, 0, 368, 369, 370, 371, 372, 373,
11356 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
11357 : 383, 384, 385, 0, 386, 387, 388, 389, 390, 391,
11358 : 392, 393, 394, 0, 395, 0, 396, 397, 398, 399,
11359 : 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
11360 : 410, 411, 412, 413, 414, 415, 416, 417, 418, 0,
11361 : 0, 419, 420, 421, 422, 423, 0, 424, 425, 426,
11362 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
11363 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
11364 : 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
11365 : 455, 456, 457, 458, 459, 0, 460, 461, 462, 463,
11366 : 0, 464, 465, 466, 467, 468, 469, 470, 0, 471,
11367 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
11368 : 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
11369 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
11370 : 497, 498, 499, 500, 501, 502, 503, 504, 0, 505,
11371 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
11372 : 516, 517, 518, 519, 0, 520, 521, 522, 523, 524,
11373 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
11374 : 534, 535, 536, 537, 538, 539, 540, 541, 542, 543,
11375 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
11376 : 553, 554, 555, 556, 0, 557, 558, 559, 560, 561,
11377 : 562, 563, 564, 565, 566, 0, 567, 568, 569, 570,
11378 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
11379 : 581, 582, 583, 0, 584, 585, 0, 0, 586, 587,
11380 : 588, 589, 590, 591, 592, 593, 0, 594, 595, 596,
11381 : 0, 0, 597, 598, 599, 600, 601, 0, 602, 603,
11382 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
11383 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
11384 : 620, 621, 622, 0, 623, 624, 625, 626, 627, 628,
11385 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
11386 : 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
11387 : 645, 646, 647, 648, 649, 650, 967, 0, 0, 717,
11388 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11389 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
11390 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
11391 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
11392 : 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
11393 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
11394 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
11395 : 279, 0, 280, 0, 281, 282, 283, 284, 285, 286,
11396 : 287, 288, 289, 290, 291, 0, 292, 293, 294, 295,
11397 : 296, 297, 0, 298, 299, 300, 301, 0, 0, 0,
11398 : 302, 0, 0, 0, 303, 304, 305, 306, 307, 308,
11399 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
11400 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
11401 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
11402 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
11403 : 341, 342, 343, 344, 345, 346, 347, 0, 348, 0,
11404 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
11405 : 357, 0, 358, 359, 360, 361, 362, 0, 363, 364,
11406 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 372,
11407 : 373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
11408 : 382, 383, 384, 385, 0, 386, 387, 388, 389, 390,
11409 : 391, 392, 393, 394, 0, 395, 0, 396, 397, 398,
11410 : 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
11411 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
11412 : 0, 0, 419, 420, 421, 422, 423, 0, 424, 425,
11413 : 426, 0, 0, 427, 428, 429, 430, 431, 432, 433,
11414 : 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
11415 : 444, 445, 446, 447, 448, 449, 450, 451, 452, 453,
11416 : 454, 455, 456, 457, 458, 459, 0, 460, 461, 462,
11417 : 463, 0, 464, 465, 466, 467, 468, 469, 470, 0,
11418 : 471, 472, 473, 0, 0, 474, 475, 476, 0, 0,
11419 : 477, 478, 479, 480, 481, 482, 483, 484, 485, 486,
11420 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
11421 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 0,
11422 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
11423 : 515, 516, 517, 518, 519, 0, 520, 521, 522, 523,
11424 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
11425 : 533, 534, 535, 536, 537, 538, 539, 540, 541, 542,
11426 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
11427 : 552, 553, 554, 555, 556, 0, 557, 558, 559, 560,
11428 : 561, 562, 563, 564, 565, 566, 0, 567, 568, 569,
11429 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
11430 : 580, 581, 582, 583, 0, 584, 585, 0, 0, 586,
11431 : 587, 588, 589, 590, 591, 592, 593, 0, 594, 595,
11432 : 596, 0, 0, 597, 598, 599, 600, 601, 0, 602,
11433 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
11434 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
11435 : 619, 620, 621, 622, 0, 623, 624, 625, 626, 627,
11436 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
11437 : 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
11438 : 644, 645, 646, 647, 648, 649, 650, 234, 0, 0,
11439 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11440 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
11441 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
11442 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
11443 : 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
11444 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
11445 : 0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
11446 : 278, 279, 0, 280, 0, 281, 282, 283, 284, 285,
11447 : 286, 287, 288, 289, 290, 291, 0, 292, 293, 294,
11448 : 295, 296, 297, 0, 298, 299, 300, 301, 0, 0,
11449 : 0, 302, 0, 0, 0, 303, 304, 305, 306, 307,
11450 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
11451 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
11452 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
11453 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
11454 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
11455 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
11456 : 356, 357, 0, 358, 359, 360, 361, 362, 0, 363,
11457 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
11458 : 372, 373, 374, 375, 376, 377, 0, 378, 379, 380,
11459 : 381, 382, 383, 384, 385, 0, 386, 387, 388, 389,
11460 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 397,
11461 : 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
11462 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
11463 : 418, 0, 0, 419, 420, 421, 422, 423, 0, 424,
11464 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
11465 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
11466 : 443, 444, 445, 446, 447, 448, 449, 450, 451, 452,
11467 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
11468 : 462, 463, 0, 464, 465, 466, 467, 468, 469, 470,
11469 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
11470 : 0, 477, 478, 479, 480, 481, 482, 483, 484, 485,
11471 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
11472 : 0, 496, 497, 498, 499, 500, 501, 502, 503, 504,
11473 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
11474 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
11475 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
11476 : 0, 533, 534, 535, 536, 537, 538, 539, 540, 541,
11477 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
11478 : 0, 552, 553, 554, 555, 556, 0, 557, 558, 559,
11479 : 560, 561, 562, 563, 564, 565, 566, 0, 567, 568,
11480 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
11481 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
11482 : 586, 587, 588, 589, 590, 591, 592, 593, 0, 594,
11483 : 595, 596, 0, 0, 597, 598, 599, 600, 601, 0,
11484 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
11485 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
11486 : 618, 619, 620, 621, 622, 0, 623, 624, 625, 626,
11487 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
11488 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
11489 : 643, 644, 645, 646, 647, 648, 649, 650, 234, 0,
11490 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11491 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
11492 : 240, 241, 242, 243, 0, 244, 245, 246, 0, 0,
11493 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
11494 : 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
11495 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
11496 : 0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
11497 : 277, 278, 279, 0, 280, 0, 281, 282, 283, 284,
11498 : 285, 286, 287, 288, 289, 290, 291, 0, 292, 293,
11499 : 294, 295, 296, 297, 0, 298, 299, 300, 301, 0,
11500 : 0, 0, 302, 0, 0, 0, 303, 304, 305, 306,
11501 : 307, 308, 309, 310, 311, 0, 312, 0, 313, 314,
11502 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
11503 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
11504 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
11505 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 0,
11506 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
11507 : 355, 356, 357, 0, 358, 359, 360, 361, 362, 0,
11508 : 363, 364, 0, 365, 366, 367, 0, 368, 369, 370,
11509 : 371, 1148, 373, 374, 375, 376, 377, 0, 378, 379,
11510 : 380, 381, 382, 383, 384, 385, 0, 386, 387, 388,
11511 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
11512 : 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
11513 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
11514 : 417, 418, 0, 0, 419, 420, 421, 422, 423, 0,
11515 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
11516 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
11517 : 442, 443, 444, 445, 446, 447, 448, 449, 450, 451,
11518 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
11519 : 461, 462, 463, 0, 464, 465, 466, 467, 468, 469,
11520 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
11521 : 0, 0, 477, 478, 479, 480, 481, 482, 483, 484,
11522 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
11523 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
11524 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
11525 : 513, 514, 515, 516, 517, 518, 519, 0, 520, 521,
11526 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
11527 : 532, 0, 533, 534, 535, 536, 537, 538, 539, 540,
11528 : 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
11529 : 551, 0, 552, 553, 554, 555, 556, 0, 557, 558,
11530 : 559, 560, 561, 562, 563, 564, 565, 566, 0, 567,
11531 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
11532 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
11533 : 0, 586, 587, 588, 589, 590, 591, 592, 593, 0,
11534 : 594, 595, 596, 0, 0, 597, 598, 599, 600, 601,
11535 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
11536 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
11537 : 617, 618, 619, 620, 621, 622, 0, 623, 624, 625,
11538 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
11539 : 632, 633, 634, 635, 636, 637, 638, 639, 640, 641,
11540 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 234,
11541 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11542 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
11543 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
11544 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
11545 : 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
11546 : 260, 261, 262, 0, 263, 264, 265, 266, 267, 268,
11547 : 269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
11548 : 276, 277, 278, 279, 0, 280, 0, 281, 282, 283,
11549 : 284, 285, 286, 287, 288, 289, 290, 291, 0, 292,
11550 : 293, 294, 295, 296, 297, 0, 298, 299, 300, 301,
11551 : 0, 0, 0, 302, 0, 0, 0, 303, 304, 305,
11552 : 306, 307, 308, 309, 310, 311, 0, 312, 0, 313,
11553 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
11554 : 323, 0, 0, 324, 325, 326, 327, 328, 0, 329,
11555 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
11556 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
11557 : 0, 348, 0, 349, 350, 351, 352, 353, 0, 354,
11558 : 0, 355, 356, 357, 0, 358, 359, 360, 361, 362,
11559 : 0, 363, 364, 0, 365, 366, 367, 0, 368, 369,
11560 : 370, 371, 1161, 373, 374, 375, 376, 377, 0, 378,
11561 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 387,
11562 : 388, 389, 390, 391, 392, 393, 394, 0, 395, 0,
11563 : 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
11564 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
11565 : 416, 417, 418, 0, 0, 419, 420, 421, 422, 423,
11566 : 0, 424, 425, 426, 0, 0, 427, 428, 429, 430,
11567 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
11568 : 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
11569 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 0,
11570 : 460, 461, 462, 463, 0, 464, 465, 466, 467, 468,
11571 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
11572 : 476, 0, 0, 477, 478, 479, 480, 481, 482, 483,
11573 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
11574 : 494, 495, 0, 496, 497, 498, 499, 500, 501, 502,
11575 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
11576 : 512, 513, 514, 515, 516, 517, 518, 519, 0, 520,
11577 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
11578 : 531, 532, 0, 533, 534, 535, 536, 537, 538, 539,
11579 : 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
11580 : 550, 551, 0, 552, 553, 554, 555, 556, 0, 557,
11581 : 558, 559, 560, 561, 562, 563, 564, 565, 566, 0,
11582 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
11583 : 577, 578, 579, 580, 581, 582, 583, 0, 584, 585,
11584 : 0, 0, 586, 587, 588, 589, 590, 591, 592, 593,
11585 : 0, 594, 595, 596, 0, 0, 597, 598, 599, 600,
11586 : 601, 0, 602, 603, 604, 605, 606, 607, 608, 609,
11587 : 610, 0, 0, 611, 612, 613, 614, 615, 0, 0,
11588 : 616, 617, 618, 619, 620, 621, 622, 0, 623, 624,
11589 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
11590 : 631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
11591 : 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
11592 : 234, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11593 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
11594 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
11595 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
11596 : 0, 250, 251, 252, 253, 254, 255, 256, 257, 258,
11597 : 259, 260, 261, 262, 0, 263, 264, 265, 266, 267,
11598 : 268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
11599 : 275, 276, 277, 278, 279, 0, 280, 0, 281, 282,
11600 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 0,
11601 : 292, 293, 294, 295, 296, 297, 0, 298, 299, 300,
11602 : 301, 0, 0, 0, 302, 0, 0, 0, 303, 304,
11603 : 305, 306, 307, 308, 309, 310, 311, 0, 312, 0,
11604 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
11605 : 322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
11606 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
11607 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
11608 : 347, 0, 348, 0, 349, 350, 351, 352, 353, 0,
11609 : 354, 0, 355, 356, 357, 0, 358, 359, 360, 361,
11610 : 362, 0, 363, 364, 0, 365, 366, 367, 0, 368,
11611 : 369, 370, 371, 1175, 373, 374, 375, 376, 377, 0,
11612 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
11613 : 387, 388, 389, 390, 391, 392, 393, 394, 0, 395,
11614 : 0, 396, 397, 398, 399, 400, 401, 402, 403, 404,
11615 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
11616 : 415, 416, 417, 418, 0, 0, 419, 420, 421, 422,
11617 : 423, 0, 424, 425, 426, 0, 0, 427, 428, 429,
11618 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
11619 : 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
11620 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
11621 : 0, 460, 461, 462, 463, 0, 464, 465, 466, 467,
11622 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
11623 : 475, 476, 0, 0, 477, 478, 479, 480, 481, 482,
11624 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
11625 : 493, 494, 495, 0, 496, 497, 498, 499, 500, 501,
11626 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
11627 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
11628 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
11629 : 530, 531, 532, 0, 533, 534, 535, 536, 537, 538,
11630 : 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
11631 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 0,
11632 : 557, 558, 559, 560, 561, 562, 563, 564, 565, 566,
11633 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
11634 : 576, 577, 578, 579, 580, 581, 582, 583, 0, 584,
11635 : 585, 0, 0, 586, 587, 588, 589, 590, 591, 592,
11636 : 593, 0, 594, 595, 596, 0, 0, 597, 598, 599,
11637 : 600, 601, 0, 602, 603, 604, 605, 606, 607, 608,
11638 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
11639 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
11640 : 624, 625, 626, 627, 628, 629, 0, 0, 630, 0,
11641 : 0, 631, 632, 633, 634, 635, 636, 637, 638, 639,
11642 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
11643 : 650, 234, 0, 0, 0, 0, 0, 0, 0, 0,
11644 : 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
11645 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
11646 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
11647 : 249, 0, 250, 251, 252, 253, 254, 255, 256, 257,
11648 : 258, 259, 260, 261, 262, 0, 263, 264, 265, 266,
11649 : 267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
11650 : 0, 275, 276, 277, 278, 279, 0, 280, 0, 281,
11651 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
11652 : 0, 292, 293, 294, 295, 296, 297, 0, 298, 299,
11653 : 300, 301, 0, 0, 0, 302, 0, 0, 0, 303,
11654 : 304, 305, 306, 307, 308, 309, 310, 311, 0, 312,
11655 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
11656 : 321, 322, 323, 0, 0, 324, 325, 326, 327, 328,
11657 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
11658 : 337, 0, 338, 339, 340, 341, 342, 343, 344, 345,
11659 : 346, 347, 0, 348, 0, 349, 350, 351, 352, 353,
11660 : 0, 354, 0, 355, 356, 357, 0, 358, 359, 360,
11661 : 361, 362, 0, 363, 364, 0, 365, 366, 367, 0,
11662 : 368, 369, 370, 371, 1179, 373, 374, 375, 376, 377,
11663 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
11664 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 0,
11665 : 395, 0, 396, 397, 398, 399, 400, 401, 402, 403,
11666 : 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
11667 : 414, 415, 416, 417, 418, 0, 0, 419, 420, 421,
11668 : 422, 423, 0, 424, 425, 426, 0, 0, 427, 428,
11669 : 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
11670 : 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
11671 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
11672 : 459, 0, 460, 461, 462, 463, 0, 464, 465, 466,
11673 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
11674 : 474, 475, 476, 0, 0, 477, 478, 479, 480, 481,
11675 : 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
11676 : 492, 493, 494, 495, 0, 496, 497, 498, 499, 500,
11677 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
11678 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
11679 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
11680 : 529, 530, 531, 532, 0, 533, 534, 535, 536, 537,
11681 : 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
11682 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 556,
11683 : 0, 557, 558, 559, 560, 561, 562, 563, 564, 565,
11684 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
11685 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 0,
11686 : 584, 585, 0, 0, 586, 587, 588, 589, 590, 591,
11687 : 592, 593, 0, 594, 595, 596, 0, 0, 597, 598,
11688 : 599, 600, 601, 0, 602, 603, 604, 605, 606, 607,
11689 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
11690 : 0, 0, 616, 617, 618, 619, 620, 621, 622, 0,
11691 : 623, 624, 625, 626, 627, 628, 629, 0, 0, 630,
11692 : 0, 0, 631, 632, 633, 634, 635, 636, 637, 638,
11693 : 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
11694 : 649, 650, 967, 0, 0, 0, 0, 0, 0, 0,
11695 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
11696 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
11697 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
11698 : 248, 249, 0, 250, 251, 252, 253, 254, 255, 256,
11699 : 257, 258, 259, 260, 261, 262, 0, 263, 264, 265,
11700 : 266, 267, 268, 269, 0, 0, 270, 271, 272, 273,
11701 : 274, 0, 275, 276, 277, 278, 279, 0, 280, 0,
11702 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
11703 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 298,
11704 : 299, 300, 301, 0, 0, 0, 302, 0, 0, 0,
11705 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 0,
11706 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
11707 : 320, 321, 322, 323, 0, 0, 324, 325, 326, 327,
11708 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
11709 : 336, 337, 0, 338, 339, 340, 341, 342, 343, 344,
11710 : 345, 346, 347, 0, 348, 0, 349, 350, 351, 352,
11711 : 353, 0, 354, 0, 355, 356, 357, 0, 358, 359,
11712 : 360, 361, 362, 0, 363, 364, 0, 365, 366, 367,
11713 : 0, 368, 369, 370, 371, 372, 373, 374, 375, 376,
11714 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
11715 : 0, 386, 387, 388, 389, 390, 391, 392, 393, 394,
11716 : 0, 395, 0, 396, 397, 398, 399, 400, 401, 402,
11717 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
11718 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 420,
11719 : 421, 422, 423, 0, 424, 425, 426, 0, 0, 427,
11720 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
11721 : 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
11722 : 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
11723 : 458, 459, 0, 460, 461, 462, 463, 0, 464, 465,
11724 : 466, 467, 468, 469, 470, 0, 471, 472, 473, 0,
11725 : 0, 474, 475, 476, 0, 0, 477, 478, 479, 480,
11726 : 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
11727 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 499,
11728 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
11729 : 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
11730 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
11731 : 528, 529, 530, 531, 532, 0, 533, 534, 535, 536,
11732 : 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
11733 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
11734 : 556, 0, 557, 558, 559, 560, 561, 562, 563, 564,
11735 : 565, 566, 0, 567, 568, 569, 570, 571, 572, 573,
11736 : 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
11737 : 0, 584, 585, 0, 0, 586, 587, 588, 589, 590,
11738 : 591, 592, 593, 0, 594, 595, 596, 0, 0, 597,
11739 : 598, 599, 600, 601, 0, 602, 603, 604, 605, 606,
11740 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
11741 : 615, 0, 0, 616, 617, 618, 619, 620, 621, 622,
11742 : 0, 623, 624, 625, 626, 627, 628, 629, 0, 0,
11743 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
11744 : 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
11745 : 648, 649, 650, 658, 0, 0, 0, 0, 0, 0,
11746 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11747 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
11748 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
11749 : 247, 248, 249, 0, 250, 251, 252, 253, 0, 255,
11750 : 256, 257, 258, 259, 0, 261, 262, 0, 263, 264,
11751 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 272,
11752 : 273, 274, 2836, 275, 276, 277, 278, 279, 0, 0,
11753 : 2837, 281, 282, 283, 284, 285, 286, 0, 288, 289,
11754 : 290, 291, 2838, 292, 293, 294, 295, 296, 297, 0,
11755 : 0, 299, 300, 301, 0, 0, 0, 0, 0, 0,
11756 : 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
11757 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
11758 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
11759 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
11760 : 335, 336, 337, 0, 2839, 339, 340, 341, 342, 343,
11761 : 344, 345, 346, 347, 0, 348, 0, 349, 350, 351,
11762 : 352, 353, 0, 354, 2840, 355, 356, 0, 0, 0,
11763 : 359, 360, 361, 362, 0, 363, 364, 0, 365, 366,
11764 : 367, 0, 368, 369, 370, 371, 2841, 0, 374, 375,
11765 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
11766 : 385, 0, 386, 0, 388, 389, 390, 391, 392, 393,
11767 : 394, 0, 395, 0, 396, 0, 0, 399, 0, 401,
11768 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
11769 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
11770 : 420, 0, 422, 0, 0, 424, 425, 426, 0, 0,
11771 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
11772 : 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
11773 : 0, 448, 449, 450, 451, 452, 453, 454, 455, 456,
11774 : 457, 458, 459, 2842, 460, 461, 0, 463, 0, 464,
11775 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
11776 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 479,
11777 : 0, 481, 0, 483, 484, 485, 486, 487, 488, 489,
11778 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
11779 : 499, 500, 501, 502, 503, 504, 2843, 505, 506, 507,
11780 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
11781 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
11782 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 0,
11783 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
11784 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
11785 : 555, 556, 0, 557, 558, 559, 560, 561, 0, 563,
11786 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
11787 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
11788 : 583, 0, 584, 585, 0, 0, 586, 0, 588, 589,
11789 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
11790 : 597, 598, 599, 600, 601, 0, 602, 603, 604, 605,
11791 : 606, 607, 608, 609, 610, 0, 2844, 611, 612, 613,
11792 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 621,
11793 : 622, 0, 623, 0, 625, 626, 627, 628, 629, 0,
11794 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
11795 : 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
11796 : 647, 648, 649, 650, 658, 0, 0, 0, 0, 0,
11797 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11798 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
11799 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
11800 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
11801 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
11802 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
11803 : 272, 273, 274, 2836, 275, 276, 277, 278, 279, 0,
11804 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
11805 : 289, 290, 291, 2838, 292, 293, 294, 295, 296, 297,
11806 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
11807 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
11808 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
11809 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
11810 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
11811 : 334, 335, 336, 337, 0, 2839, 339, 340, 341, 342,
11812 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
11813 : 351, 352, 353, 0, 354, 2840, 355, 356, 0, 0,
11814 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
11815 : 366, 367, 0, 368, 369, 370, 371, 372, 0, 374,
11816 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
11817 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
11818 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
11819 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
11820 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
11821 : 419, 420, 0, 422, 3891, 0, 424, 425, 426, 0,
11822 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
11823 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
11824 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
11825 : 456, 457, 458, 459, 2842, 460, 461, 0, 463, 0,
11826 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
11827 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
11828 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
11829 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
11830 : 498, 499, 500, 501, 502, 503, 504, 2843, 505, 506,
11831 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
11832 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
11833 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
11834 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
11835 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
11836 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
11837 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
11838 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
11839 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
11840 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
11841 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
11842 : 605, 606, 607, 608, 609, 610, 0, 2844, 611, 612,
11843 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
11844 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
11845 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
11846 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
11847 : 646, 647, 648, 649, 650, 658, 0, 0, 0, 0,
11848 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11849 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
11850 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 0,
11851 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
11852 : 0, 255, 256, 257, 258, 259, 0, 261, 262, 0,
11853 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
11854 : 271, 272, 273, 274, 2836, 275, 276, 277, 278, 279,
11855 : 0, 0, 0, 281, 282, 283, 284, 285, 286, 0,
11856 : 288, 289, 290, 291, 2838, 292, 293, 294, 295, 296,
11857 : 297, 0, 0, 299, 300, 301, 0, 0, 0, 0,
11858 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 309,
11859 : 310, 311, 0, 312, 0, 313, 314, 315, 316, 317,
11860 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
11861 : 325, 326, 327, 328, 0, 329, 330, 331, 332, 0,
11862 : 333, 334, 335, 336, 337, 0, 2839, 339, 340, 341,
11863 : 342, 343, 344, 345, 346, 347, 0, 348, 0, 349,
11864 : 350, 351, 352, 353, 0, 354, 2840, 355, 356, 0,
11865 : 0, 0, 359, 360, 361, 362, 0, 363, 364, 0,
11866 : 365, 366, 367, 0, 368, 369, 370, 371, 372, 0,
11867 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
11868 : 383, 384, 385, 0, 386, 0, 388, 389, 390, 391,
11869 : 392, 393, 394, 0, 395, 0, 396, 0, 0, 399,
11870 : 0, 401, 402, 403, 404, 405, 406, 407, 408, 409,
11871 : 410, 411, 412, 413, 414, 415, 416, 417, 418, 0,
11872 : 0, 419, 420, 0, 422, 0, 0, 424, 425, 426,
11873 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
11874 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
11875 : 445, 446, 0, 448, 449, 450, 451, 452, 453, 454,
11876 : 455, 456, 457, 458, 459, 2842, 460, 461, 0, 463,
11877 : 0, 464, 465, 466, 467, 468, 469, 470, 0, 471,
11878 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
11879 : 478, 479, 0, 481, 0, 483, 484, 485, 486, 487,
11880 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
11881 : 497, 498, 499, 500, 501, 502, 503, 504, 2843, 505,
11882 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
11883 : 516, 517, 518, 519, 0, 520, 521, 522, 523, 524,
11884 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
11885 : 534, 0, 536, 537, 538, 539, 540, 541, 542, 543,
11886 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
11887 : 553, 554, 555, 556, 0, 557, 558, 559, 560, 561,
11888 : 0, 563, 564, 565, 566, 0, 567, 568, 569, 570,
11889 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
11890 : 581, 582, 583, 0, 584, 585, 0, 0, 586, 0,
11891 : 588, 589, 590, 591, 592, 593, 0, 594, 595, 596,
11892 : 0, 0, 597, 598, 599, 600, 601, 0, 602, 603,
11893 : 604, 605, 606, 607, 608, 609, 610, 0, 2844, 611,
11894 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
11895 : 620, 621, 622, 0, 623, 0, 625, 626, 627, 628,
11896 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
11897 : 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
11898 : 645, 646, 647, 648, 649, 650, 658, 0, 0, 0,
11899 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11900 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
11901 : 242, 243, 797, 244, 798, 246, 0, 0, 0, 0,
11902 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
11903 : 253, 0, 255, 256, 257, 258, 259, 0, 261, 262,
11904 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
11905 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
11906 : 279, 0, 0, 0, 281, 282, 283, 284, 285, 286,
11907 : 0, 288, 289, 290, 291, 0, 292, 293, 294, 295,
11908 : 296, 297, 799, 0, 299, 300, 301, 0, 0, 0,
11909 : 0, 0, 0, 0, 303, 304, 305, 306, 307, 308,
11910 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
11911 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
11912 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
11913 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
11914 : 341, 342, 343, 344, 345, 346, 347, 0, 348, 0,
11915 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
11916 : 0, 0, 0, 359, 360, 361, 362, 830, 363, 364,
11917 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 372,
11918 : 0, 374, 375, 376, 377, 0, 378, 379, 380, 381,
11919 : 382, 383, 384, 385, 0, 386, 0, 388, 389, 390,
11920 : 391, 392, 393, 394, 0, 395, 0, 396, 0, 0,
11921 : 399, 0, 401, 402, 403, 404, 405, 406, 407, 408,
11922 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
11923 : 0, 0, 419, 420, 0, 422, 0, 0, 424, 425,
11924 : 426, 0, 0, 427, 428, 429, 430, 431, 432, 433,
11925 : 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
11926 : 444, 445, 446, 0, 448, 449, 450, 451, 452, 453,
11927 : 454, 455, 456, 457, 458, 459, 0, 460, 461, 0,
11928 : 463, 0, 464, 465, 466, 467, 468, 469, 470, 0,
11929 : 471, 472, 473, 0, 0, 474, 475, 476, 0, 0,
11930 : 477, 478, 479, 0, 481, 0, 483, 484, 485, 486,
11931 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
11932 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 0,
11933 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
11934 : 515, 516, 517, 518, 519, 800, 520, 521, 522, 523,
11935 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
11936 : 533, 534, 0, 536, 537, 538, 539, 540, 541, 542,
11937 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 801,
11938 : 552, 553, 554, 555, 556, 0, 557, 558, 559, 560,
11939 : 561, 0, 563, 564, 565, 566, 0, 567, 568, 569,
11940 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
11941 : 580, 581, 582, 583, 0, 584, 585, 0, 0, 586,
11942 : 0, 588, 589, 590, 591, 592, 593, 0, 594, 595,
11943 : 596, 0, 0, 597, 598, 599, 600, 601, 0, 602,
11944 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
11945 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
11946 : 619, 620, 621, 622, 0, 623, 0, 625, 626, 627,
11947 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
11948 : 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
11949 : 644, 645, 646, 647, 648, 649, 650, 658, 0, 0,
11950 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11951 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
11952 : 241, 242, 243, 797, 244, 798, 246, 0, 0, 0,
11953 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
11954 : 252, 253, 0, 255, 256, 257, 258, 259, 0, 261,
11955 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
11956 : 0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
11957 : 278, 279, 0, 0, 0, 281, 282, 283, 284, 285,
11958 : 286, 0, 288, 289, 290, 291, 0, 292, 293, 294,
11959 : 295, 296, 297, 799, 0, 299, 300, 301, 0, 0,
11960 : 0, 0, 0, 0, 0, 303, 304, 305, 306, 307,
11961 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
11962 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
11963 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
11964 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
11965 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
11966 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
11967 : 356, 0, 0, 0, 359, 360, 361, 362, 3572, 363,
11968 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
11969 : 372, 0, 374, 375, 376, 377, 0, 378, 379, 380,
11970 : 381, 382, 383, 384, 385, 0, 386, 0, 388, 389,
11971 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 0,
11972 : 0, 399, 0, 401, 402, 403, 404, 405, 406, 407,
11973 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
11974 : 418, 0, 0, 419, 420, 0, 422, 0, 0, 424,
11975 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
11976 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
11977 : 443, 444, 445, 446, 0, 448, 449, 450, 451, 452,
11978 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
11979 : 0, 463, 0, 464, 465, 466, 467, 468, 469, 470,
11980 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
11981 : 0, 477, 478, 479, 0, 481, 0, 483, 484, 485,
11982 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
11983 : 0, 496, 497, 498, 499, 500, 501, 502, 503, 504,
11984 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
11985 : 514, 515, 516, 517, 518, 519, 800, 520, 521, 522,
11986 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
11987 : 0, 533, 534, 0, 536, 537, 538, 539, 540, 541,
11988 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
11989 : 801, 552, 553, 554, 555, 556, 0, 557, 558, 559,
11990 : 560, 561, 0, 563, 564, 565, 566, 0, 567, 568,
11991 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
11992 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
11993 : 586, 0, 588, 589, 590, 591, 592, 593, 0, 594,
11994 : 595, 596, 0, 0, 597, 598, 599, 600, 601, 0,
11995 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
11996 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
11997 : 618, 619, 620, 621, 622, 0, 623, 0, 625, 626,
11998 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
11999 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
12000 : 643, 644, 645, 646, 647, 648, 649, 650, 658, 0,
12001 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12002 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
12003 : 240, 241, 242, 243, 797, 244, 798, 246, 0, 0,
12004 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
12005 : 251, 252, 253, 0, 255, 256, 257, 258, 259, 0,
12006 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
12007 : 0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
12008 : 277, 278, 279, 0, 0, 0, 281, 282, 283, 284,
12009 : 285, 286, 0, 288, 289, 290, 291, 0, 292, 293,
12010 : 294, 295, 296, 297, 799, 0, 299, 300, 301, 0,
12011 : 0, 0, 0, 0, 0, 0, 303, 304, 305, 306,
12012 : 307, 308, 309, 310, 311, 0, 312, 0, 313, 314,
12013 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
12014 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
12015 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
12016 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 0,
12017 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
12018 : 355, 356, 0, 0, 0, 359, 360, 361, 362, 0,
12019 : 363, 364, 0, 365, 366, 367, 0, 368, 369, 370,
12020 : 371, 372, 0, 374, 375, 376, 377, 0, 378, 379,
12021 : 380, 381, 382, 383, 384, 385, 0, 386, 0, 388,
12022 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
12023 : 0, 0, 399, 0, 401, 402, 403, 404, 405, 406,
12024 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
12025 : 417, 418, 0, 0, 419, 420, 0, 422, 0, 0,
12026 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
12027 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
12028 : 442, 443, 444, 445, 446, 0, 448, 449, 450, 451,
12029 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
12030 : 461, 0, 463, 0, 464, 465, 466, 467, 468, 469,
12031 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
12032 : 0, 0, 477, 478, 479, 0, 481, 0, 483, 484,
12033 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
12034 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
12035 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
12036 : 513, 514, 515, 516, 517, 518, 519, 800, 520, 521,
12037 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
12038 : 532, 0, 533, 534, 0, 536, 537, 538, 539, 540,
12039 : 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
12040 : 551, 801, 552, 553, 554, 555, 556, 0, 557, 558,
12041 : 559, 560, 561, 0, 563, 564, 565, 566, 0, 567,
12042 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
12043 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
12044 : 0, 586, 0, 588, 589, 590, 591, 592, 593, 0,
12045 : 594, 595, 596, 0, 0, 597, 598, 599, 600, 601,
12046 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
12047 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
12048 : 617, 618, 619, 620, 621, 622, 0, 623, 0, 625,
12049 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
12050 : 632, 633, 634, 635, 636, 637, 638, 639, 640, 641,
12051 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 658,
12052 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12053 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
12054 : 239, 240, 241, 242, 243, 3079, 244, 245, 246, 0,
12055 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
12056 : 250, 251, 252, 253, 0, 255, 256, 257, 258, 259,
12057 : 0, 261, 262, 0, 263, 264, 265, 266, 267, 268,
12058 : 269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
12059 : 276, 277, 278, 279, 0, 0, 0, 281, 282, 283,
12060 : 284, 285, 286, 0, 288, 289, 290, 291, 0, 292,
12061 : 293, 294, 295, 296, 297, 0, 0, 299, 300, 301,
12062 : 0, 0, 0, 2909, 0, 0, 0, 303, 304, 305,
12063 : 306, 307, 308, 309, 310, 311, 0, 312, 0, 313,
12064 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
12065 : 323, 0, 0, 324, 325, 326, 327, 328, 0, 329,
12066 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
12067 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
12068 : 0, 348, 0, 349, 350, 351, 352, 353, 0, 354,
12069 : 0, 355, 356, 0, 0, 0, 359, 360, 361, 362,
12070 : 0, 363, 364, 0, 365, 366, 367, 0, 368, 369,
12071 : 370, 371, 372, 0, 374, 375, 376, 377, 0, 378,
12072 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 0,
12073 : 388, 389, 390, 391, 392, 393, 394, 0, 395, 0,
12074 : 396, 0, 0, 399, 0, 401, 402, 403, 404, 405,
12075 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
12076 : 416, 417, 418, 0, 0, 419, 420, 0, 422, 0,
12077 : 0, 424, 425, 426, 0, 0, 427, 428, 429, 430,
12078 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
12079 : 441, 442, 443, 444, 445, 446, 0, 448, 449, 450,
12080 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 0,
12081 : 460, 461, 0, 463, 0, 464, 465, 466, 467, 468,
12082 : 469, 470, 0, 471, 472, 473, 0, 862, 474, 475,
12083 : 476, 0, 0, 477, 478, 479, 0, 481, 0, 483,
12084 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
12085 : 494, 495, 0, 496, 497, 498, 499, 500, 501, 502,
12086 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
12087 : 512, 513, 514, 515, 516, 517, 518, 519, 0, 520,
12088 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
12089 : 531, 532, 0, 533, 534, 0, 536, 537, 538, 539,
12090 : 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
12091 : 550, 551, 0, 552, 553, 554, 555, 556, 0, 557,
12092 : 558, 559, 560, 561, 0, 563, 564, 565, 566, 0,
12093 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
12094 : 577, 578, 579, 580, 581, 582, 583, 0, 584, 585,
12095 : 0, 2910, 2911, 0, 588, 589, 590, 591, 592, 593,
12096 : 0, 594, 595, 596, 0, 0, 597, 598, 599, 600,
12097 : 601, 0, 602, 603, 604, 605, 606, 607, 608, 609,
12098 : 610, 0, 0, 611, 612, 613, 614, 615, 0, 0,
12099 : 616, 617, 618, 619, 620, 621, 622, 0, 623, 0,
12100 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
12101 : 631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
12102 : 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
12103 : 658, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12104 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
12105 : 238, 239, 240, 241, 242, 243, 2007, 244, 245, 246,
12106 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
12107 : 0, 250, 251, 252, 253, 0, 255, 256, 257, 258,
12108 : 259, 0, 261, 262, 0, 263, 264, 265, 266, 267,
12109 : 268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
12110 : 275, 276, 277, 278, 279, 0, 0, 0, 281, 282,
12111 : 283, 284, 285, 286, 0, 288, 289, 290, 291, 0,
12112 : 292, 293, 294, 295, 296, 297, 0, 0, 299, 300,
12113 : 301, 0, 0, 0, 0, 0, 0, 0, 303, 304,
12114 : 305, 2008, 307, 308, 309, 310, 311, 0, 312, 0,
12115 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
12116 : 322, 323, 0, 0, 324, 2009, 326, 327, 328, 0,
12117 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
12118 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
12119 : 347, 0, 348, 0, 349, 350, 351, 352, 353, 0,
12120 : 354, 2010, 355, 356, 0, 0, 0, 2011, 360, 361,
12121 : 362, 0, 363, 364, 0, 365, 366, 367, 0, 368,
12122 : 369, 370, 371, 372, 0, 374, 375, 376, 377, 0,
12123 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
12124 : 0, 388, 389, 390, 391, 392, 393, 394, 0, 395,
12125 : 0, 396, 0, 0, 399, 0, 401, 402, 403, 404,
12126 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
12127 : 415, 2012, 2013, 418, 0, 0, 419, 420, 0, 422,
12128 : 0, 0, 424, 425, 426, 0, 0, 427, 428, 429,
12129 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
12130 : 440, 441, 442, 443, 444, 445, 446, 0, 448, 449,
12131 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
12132 : 0, 460, 461, 0, 463, 0, 464, 465, 466, 467,
12133 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
12134 : 475, 476, 0, 0, 477, 478, 479, 0, 481, 0,
12135 : 483, 484, 485, 486, 487, 2014, 489, 490, 491, 492,
12136 : 493, 494, 495, 0, 496, 497, 498, 499, 500, 501,
12137 : 502, 503, 504, 0, 505, 506, 507, 2015, 509, 510,
12138 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
12139 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
12140 : 530, 531, 532, 0, 533, 534, 0, 536, 537, 538,
12141 : 2016, 540, 541, 542, 543, 544, 545, 2017, 547, 548,
12142 : 549, 550, 551, 0, 2018, 553, 554, 555, 556, 0,
12143 : 557, 558, 559, 560, 561, 0, 563, 564, 565, 566,
12144 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
12145 : 576, 577, 578, 579, 580, 581, 582, 583, 0, 584,
12146 : 585, 0, 2019, 586, 0, 2020, 589, 590, 591, 592,
12147 : 593, 0, 594, 595, 596, 0, 0, 597, 598, 599,
12148 : 600, 601, 0, 602, 603, 2021, 605, 606, 607, 608,
12149 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
12150 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
12151 : 0, 625, 626, 627, 628, 629, 0, 0, 630, 0,
12152 : 0, 631, 632, 633, 634, 635, 636, 637, 638, 639,
12153 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
12154 : 650, 658, 0, 0, 0, 0, 0, 0, 0, 0,
12155 : 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
12156 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 798,
12157 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
12158 : 249, 0, 250, 251, 252, 253, 0, 255, 256, 257,
12159 : 258, 259, 0, 261, 262, 0, 263, 264, 265, 266,
12160 : 267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
12161 : 0, 275, 276, 277, 278, 279, 0, 0, 0, 281,
12162 : 282, 283, 284, 285, 286, 0, 288, 289, 290, 291,
12163 : 0, 292, 293, 294, 295, 296, 297, 799, 0, 299,
12164 : 300, 301, 0, 0, 0, 0, 0, 0, 0, 303,
12165 : 304, 305, 306, 307, 308, 309, 310, 311, 0, 312,
12166 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
12167 : 321, 322, 323, 0, 0, 324, 325, 326, 327, 328,
12168 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
12169 : 337, 0, 338, 339, 340, 341, 342, 343, 344, 345,
12170 : 346, 347, 0, 348, 0, 349, 350, 351, 352, 353,
12171 : 0, 354, 0, 355, 356, 0, 0, 0, 359, 360,
12172 : 361, 362, 0, 363, 364, 0, 365, 366, 367, 0,
12173 : 368, 369, 370, 371, 372, 0, 374, 375, 376, 377,
12174 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
12175 : 386, 0, 388, 389, 390, 391, 392, 393, 394, 0,
12176 : 395, 0, 396, 0, 0, 399, 0, 401, 402, 403,
12177 : 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
12178 : 414, 415, 416, 417, 418, 0, 0, 419, 420, 0,
12179 : 422, 0, 0, 424, 425, 426, 0, 0, 427, 428,
12180 : 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
12181 : 439, 440, 441, 442, 443, 444, 445, 446, 0, 448,
12182 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
12183 : 459, 0, 460, 461, 0, 463, 0, 464, 465, 466,
12184 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
12185 : 474, 475, 476, 0, 0, 477, 478, 479, 0, 481,
12186 : 0, 483, 484, 485, 486, 487, 488, 489, 490, 491,
12187 : 492, 493, 494, 495, 0, 496, 497, 498, 499, 500,
12188 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
12189 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
12190 : 800, 520, 521, 522, 523, 524, 525, 526, 527, 528,
12191 : 529, 530, 531, 532, 0, 533, 534, 0, 536, 537,
12192 : 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
12193 : 548, 549, 550, 551, 801, 552, 553, 554, 555, 556,
12194 : 0, 557, 558, 559, 560, 561, 0, 563, 564, 565,
12195 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
12196 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 0,
12197 : 584, 585, 0, 0, 586, 0, 588, 589, 590, 591,
12198 : 592, 593, 0, 594, 595, 596, 0, 0, 597, 598,
12199 : 599, 600, 601, 0, 602, 603, 604, 605, 606, 607,
12200 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
12201 : 0, 0, 616, 617, 618, 619, 620, 621, 622, 0,
12202 : 623, 0, 625, 626, 627, 628, 629, 0, 0, 630,
12203 : 0, 0, 631, 632, 633, 634, 635, 636, 637, 638,
12204 : 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
12205 : 649, 650, 658, 0, 0, 0, 0, 0, 0, 0,
12206 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
12207 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
12208 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
12209 : 248, 249, 0, 250, 251, 252, 253, 0, 255, 256,
12210 : 257, 258, 259, 0, 261, 262, 0, 263, 264, 265,
12211 : 266, 267, 268, 269, 0, 0, 270, 271, 272, 273,
12212 : 274, 0, 275, 276, 277, 278, 279, 0, 0, 0,
12213 : 281, 282, 283, 284, 285, 286, 0, 288, 289, 290,
12214 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 0,
12215 : 299, 300, 301, 0, 0, 0, 2909, 0, 0, 0,
12216 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 0,
12217 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
12218 : 320, 321, 322, 323, 0, 0, 324, 325, 326, 327,
12219 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
12220 : 336, 337, 0, 338, 339, 340, 341, 342, 343, 344,
12221 : 345, 346, 347, 0, 348, 0, 349, 350, 351, 352,
12222 : 353, 0, 354, 0, 355, 356, 0, 0, 0, 359,
12223 : 360, 361, 362, 0, 363, 364, 0, 365, 366, 367,
12224 : 0, 368, 369, 370, 371, 372, 0, 374, 375, 376,
12225 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
12226 : 0, 386, 0, 388, 389, 390, 391, 392, 393, 394,
12227 : 0, 395, 0, 396, 0, 0, 399, 0, 401, 402,
12228 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
12229 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 420,
12230 : 0, 422, 0, 0, 424, 425, 426, 0, 0, 427,
12231 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
12232 : 438, 439, 440, 441, 442, 443, 444, 445, 446, 0,
12233 : 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
12234 : 458, 459, 0, 460, 461, 0, 463, 0, 464, 465,
12235 : 466, 467, 468, 469, 470, 0, 471, 472, 473, 0,
12236 : 862, 474, 475, 476, 0, 0, 477, 478, 479, 0,
12237 : 481, 0, 483, 484, 485, 486, 487, 488, 489, 490,
12238 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 499,
12239 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
12240 : 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
12241 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
12242 : 528, 529, 530, 531, 532, 0, 533, 534, 0, 536,
12243 : 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
12244 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
12245 : 556, 0, 557, 558, 559, 560, 561, 0, 563, 564,
12246 : 565, 566, 0, 567, 568, 569, 570, 571, 572, 573,
12247 : 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
12248 : 0, 584, 585, 0, 2910, 2911, 0, 588, 589, 590,
12249 : 591, 592, 593, 0, 594, 595, 596, 0, 0, 597,
12250 : 598, 599, 600, 601, 0, 602, 603, 604, 605, 606,
12251 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
12252 : 615, 0, 0, 616, 617, 618, 619, 620, 621, 622,
12253 : 0, 623, 0, 625, 626, 627, 628, 629, 0, 0,
12254 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
12255 : 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
12256 : 648, 649, 650, 658, 0, 0, 0, 0, 0, 0,
12257 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12258 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 1020,
12259 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
12260 : 247, 248, 249, 0, 250, 251, 252, 253, 0, 255,
12261 : 256, 257, 258, 259, 0, 261, 262, 0, 263, 264,
12262 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 272,
12263 : 273, 274, 0, 275, 276, 277, 278, 279, 0, 0,
12264 : 0, 281, 282, 283, 284, 285, 286, 0, 288, 289,
12265 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
12266 : 0, 299, 300, 301, 0, 0, 0, 0, 0, 0,
12267 : 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
12268 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
12269 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
12270 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
12271 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
12272 : 344, 345, 346, 347, 0, 348, 0, 349, 350, 351,
12273 : 352, 353, 0, 354, 0, 355, 356, 0, 0, 0,
12274 : 359, 360, 361, 362, 0, 363, 364, 0, 365, 366,
12275 : 367, 0, 368, 369, 370, 371, 1021, 0, 374, 375,
12276 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
12277 : 385, 0, 386, 0, 388, 389, 390, 391, 392, 393,
12278 : 394, 0, 395, 0, 396, 0, 0, 399, 0, 401,
12279 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
12280 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
12281 : 420, 0, 422, 0, 0, 424, 425, 426, 0, 0,
12282 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
12283 : 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
12284 : 0, 448, 449, 450, 451, 452, 453, 454, 455, 456,
12285 : 457, 458, 459, 0, 460, 461, 0, 463, 0, 464,
12286 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
12287 : 0, 862, 474, 475, 476, 0, 0, 477, 478, 479,
12288 : 0, 481, 0, 483, 484, 485, 486, 487, 488, 489,
12289 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
12290 : 499, 500, 501, 502, 503, 504, 0, 505, 506, 507,
12291 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
12292 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
12293 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 0,
12294 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
12295 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
12296 : 555, 556, 0, 557, 558, 559, 560, 561, 0, 563,
12297 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
12298 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
12299 : 583, 0, 584, 585, 0, 0, 586, 0, 588, 589,
12300 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
12301 : 597, 598, 599, 600, 601, 0, 602, 603, 604, 605,
12302 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
12303 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 621,
12304 : 622, 0, 623, 0, 625, 626, 627, 628, 629, 0,
12305 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
12306 : 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
12307 : 647, 648, 649, 650, 658, 0, 0, 0, 0, 0,
12308 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12309 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
12310 : 3655, 244, 245, 246, 0, 0, 0, 0, 0, 0,
12311 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
12312 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
12313 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
12314 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
12315 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
12316 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
12317 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
12318 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
12319 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
12320 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
12321 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
12322 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
12323 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
12324 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
12325 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
12326 : 366, 367, 0, 368, 369, 370, 371, 372, 0, 374,
12327 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
12328 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
12329 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
12330 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
12331 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
12332 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
12333 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
12334 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
12335 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
12336 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
12337 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
12338 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
12339 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
12340 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
12341 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
12342 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
12343 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
12344 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
12345 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
12346 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
12347 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
12348 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
12349 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
12350 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
12351 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
12352 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
12353 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
12354 : 613, 614, 615, 3656, 0, 616, 617, 618, 619, 620,
12355 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
12356 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
12357 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
12358 : 646, 647, 648, 649, 650, 658, 0, 0, 0, 0,
12359 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12360 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
12361 : 243, 3668, 244, 245, 246, 0, 0, 0, 0, 0,
12362 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
12363 : 0, 255, 256, 257, 258, 259, 0, 261, 262, 0,
12364 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
12365 : 271, 272, 273, 274, 0, 275, 276, 277, 278, 279,
12366 : 0, 0, 0, 281, 282, 283, 284, 285, 286, 0,
12367 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
12368 : 297, 0, 0, 299, 300, 301, 0, 0, 0, 0,
12369 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 309,
12370 : 310, 311, 0, 312, 0, 313, 314, 315, 316, 317,
12371 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
12372 : 325, 326, 327, 328, 0, 329, 330, 331, 332, 0,
12373 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
12374 : 342, 343, 344, 345, 346, 347, 0, 348, 0, 349,
12375 : 350, 351, 352, 353, 0, 354, 0, 355, 356, 0,
12376 : 0, 0, 359, 360, 361, 362, 0, 363, 364, 0,
12377 : 365, 366, 367, 0, 368, 369, 370, 371, 372, 0,
12378 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
12379 : 383, 384, 385, 0, 386, 0, 388, 389, 390, 391,
12380 : 392, 393, 394, 0, 395, 0, 396, 0, 0, 399,
12381 : 0, 401, 402, 403, 404, 405, 406, 407, 408, 409,
12382 : 410, 411, 412, 413, 414, 415, 416, 417, 418, 0,
12383 : 0, 419, 420, 0, 422, 0, 0, 424, 425, 426,
12384 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
12385 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
12386 : 445, 446, 0, 448, 449, 450, 451, 452, 453, 454,
12387 : 455, 456, 457, 458, 459, 0, 460, 461, 0, 463,
12388 : 0, 464, 465, 466, 467, 468, 469, 470, 0, 471,
12389 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
12390 : 478, 479, 0, 481, 0, 483, 484, 485, 486, 487,
12391 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
12392 : 497, 498, 499, 500, 501, 502, 503, 504, 0, 505,
12393 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
12394 : 516, 517, 518, 519, 0, 520, 521, 522, 523, 524,
12395 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
12396 : 534, 0, 536, 537, 538, 539, 540, 541, 542, 543,
12397 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
12398 : 553, 554, 555, 556, 0, 557, 558, 559, 560, 561,
12399 : 0, 563, 564, 565, 566, 0, 567, 568, 569, 570,
12400 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
12401 : 581, 582, 583, 0, 584, 585, 0, 0, 586, 0,
12402 : 588, 589, 590, 591, 592, 593, 0, 594, 595, 596,
12403 : 0, 0, 597, 598, 599, 600, 601, 0, 602, 603,
12404 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
12405 : 612, 613, 614, 615, 3669, 0, 616, 617, 618, 619,
12406 : 620, 621, 622, 0, 623, 0, 625, 626, 627, 628,
12407 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
12408 : 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
12409 : 645, 646, 647, 648, 649, 650, 658, 0, 0, 0,
12410 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12411 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
12412 : 242, 243, 659, 244, 245, 246, 0, 0, 0, 0,
12413 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
12414 : 253, 0, 255, 256, 257, 258, 259, 0, 261, 262,
12415 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
12416 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
12417 : 279, 0, 0, 0, 281, 282, 283, 284, 285, 286,
12418 : 0, 288, 289, 290, 291, 0, 292, 293, 294, 295,
12419 : 296, 297, 0, 0, 299, 300, 301, 0, 0, 0,
12420 : 0, 0, 0, 0, 303, 304, 305, 306, 307, 308,
12421 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
12422 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
12423 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
12424 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
12425 : 341, 342, 343, 344, 345, 346, 347, 0, 348, 0,
12426 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
12427 : 0, 0, 0, 359, 360, 361, 362, 0, 363, 364,
12428 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 372,
12429 : 0, 374, 375, 376, 377, 0, 378, 379, 380, 381,
12430 : 382, 383, 384, 385, 0, 386, 0, 388, 389, 390,
12431 : 391, 392, 393, 394, 0, 395, 0, 396, 0, 0,
12432 : 399, 0, 401, 402, 403, 404, 405, 406, 407, 408,
12433 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
12434 : 0, 0, 419, 420, 0, 422, 0, 0, 424, 425,
12435 : 426, 0, 0, 427, 428, 429, 430, 431, 432, 433,
12436 : 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
12437 : 444, 445, 446, 0, 448, 449, 450, 451, 452, 453,
12438 : 454, 455, 456, 457, 458, 459, 0, 460, 461, 0,
12439 : 463, 0, 464, 465, 466, 467, 468, 469, 470, 0,
12440 : 471, 472, 473, 0, 0, 474, 475, 476, 0, 0,
12441 : 477, 478, 479, 0, 481, 0, 483, 484, 485, 486,
12442 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
12443 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 0,
12444 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
12445 : 515, 516, 517, 518, 519, 0, 520, 521, 522, 523,
12446 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
12447 : 533, 534, 0, 536, 537, 538, 539, 540, 541, 542,
12448 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
12449 : 552, 553, 554, 555, 556, 0, 557, 558, 559, 560,
12450 : 561, 0, 563, 564, 565, 566, 0, 567, 568, 569,
12451 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
12452 : 580, 581, 582, 583, 0, 584, 585, 0, 0, 586,
12453 : 0, 588, 589, 590, 591, 592, 593, 0, 594, 595,
12454 : 596, 0, 0, 597, 598, 599, 600, 601, 0, 602,
12455 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
12456 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
12457 : 619, 620, 621, 622, 0, 623, 0, 625, 626, 627,
12458 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
12459 : 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
12460 : 644, 645, 646, 647, 648, 649, 650, 658, 0, 0,
12461 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12462 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
12463 : 241, 242, 243, 708, 244, 245, 246, 0, 0, 0,
12464 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
12465 : 252, 253, 0, 255, 256, 257, 258, 259, 0, 261,
12466 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
12467 : 0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
12468 : 278, 279, 0, 0, 0, 281, 282, 283, 284, 285,
12469 : 286, 0, 288, 289, 290, 291, 0, 292, 293, 294,
12470 : 295, 296, 297, 0, 0, 299, 300, 301, 0, 0,
12471 : 0, 0, 0, 0, 0, 303, 304, 305, 306, 307,
12472 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
12473 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
12474 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
12475 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
12476 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
12477 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
12478 : 356, 0, 0, 0, 359, 360, 361, 362, 0, 363,
12479 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
12480 : 372, 0, 374, 375, 376, 377, 0, 378, 379, 380,
12481 : 381, 382, 383, 384, 385, 0, 386, 0, 388, 389,
12482 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 0,
12483 : 0, 399, 0, 401, 402, 403, 404, 405, 406, 407,
12484 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
12485 : 418, 0, 0, 419, 420, 0, 422, 0, 0, 424,
12486 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
12487 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
12488 : 443, 444, 445, 446, 0, 448, 449, 450, 451, 452,
12489 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
12490 : 0, 463, 0, 464, 465, 466, 467, 468, 469, 470,
12491 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
12492 : 0, 477, 478, 479, 0, 481, 0, 483, 484, 485,
12493 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
12494 : 0, 496, 497, 498, 499, 500, 501, 502, 709, 504,
12495 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
12496 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
12497 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
12498 : 0, 533, 534, 0, 536, 537, 538, 539, 540, 541,
12499 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
12500 : 0, 552, 553, 554, 555, 556, 0, 557, 558, 559,
12501 : 560, 561, 0, 563, 564, 565, 566, 0, 567, 568,
12502 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
12503 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
12504 : 586, 0, 588, 589, 590, 591, 592, 593, 0, 594,
12505 : 595, 596, 0, 0, 597, 598, 599, 600, 601, 0,
12506 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
12507 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
12508 : 618, 619, 620, 621, 622, 0, 623, 0, 625, 626,
12509 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
12510 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
12511 : 643, 644, 645, 646, 647, 648, 649, 650, 658, 0,
12512 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12513 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
12514 : 240, 241, 242, 243, 822, 244, 245, 246, 0, 0,
12515 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
12516 : 251, 252, 253, 0, 255, 256, 257, 258, 259, 0,
12517 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
12518 : 0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
12519 : 277, 278, 279, 0, 0, 0, 281, 282, 283, 284,
12520 : 285, 286, 0, 288, 289, 290, 291, 0, 292, 293,
12521 : 294, 295, 296, 297, 0, 0, 299, 300, 301, 0,
12522 : 0, 0, 0, 0, 0, 0, 303, 304, 305, 306,
12523 : 307, 308, 309, 310, 311, 0, 312, 0, 313, 314,
12524 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
12525 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
12526 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
12527 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 0,
12528 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
12529 : 355, 356, 0, 0, 0, 359, 360, 361, 362, 0,
12530 : 363, 364, 0, 365, 366, 367, 0, 368, 369, 370,
12531 : 371, 372, 0, 374, 375, 376, 377, 0, 378, 379,
12532 : 380, 381, 382, 383, 384, 385, 0, 386, 0, 388,
12533 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
12534 : 0, 0, 399, 0, 401, 402, 403, 404, 405, 406,
12535 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
12536 : 417, 418, 0, 0, 419, 420, 0, 422, 0, 0,
12537 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
12538 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
12539 : 442, 443, 444, 445, 446, 0, 448, 449, 450, 451,
12540 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
12541 : 461, 0, 463, 0, 464, 465, 466, 467, 468, 469,
12542 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
12543 : 0, 0, 477, 478, 479, 0, 481, 0, 483, 484,
12544 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
12545 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
12546 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
12547 : 513, 514, 515, 516, 517, 518, 519, 0, 520, 521,
12548 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
12549 : 532, 0, 533, 534, 0, 536, 537, 538, 539, 540,
12550 : 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
12551 : 551, 0, 552, 553, 554, 555, 823, 0, 557, 558,
12552 : 559, 560, 561, 0, 563, 564, 565, 566, 0, 567,
12553 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
12554 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
12555 : 0, 586, 0, 588, 589, 590, 591, 592, 593, 0,
12556 : 594, 824, 596, 0, 0, 825, 598, 599, 600, 601,
12557 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
12558 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
12559 : 617, 618, 619, 620, 621, 622, 0, 623, 0, 625,
12560 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
12561 : 632, 633, 634, 635, 636, 637, 638, 639, 640, 641,
12562 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 658,
12563 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12564 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
12565 : 239, 240, 241, 242, 243, 856, 244, 245, 246, 0,
12566 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
12567 : 250, 251, 252, 253, 0, 255, 256, 257, 258, 259,
12568 : 0, 261, 262, 0, 263, 264, 265, 266, 267, 268,
12569 : 269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
12570 : 276, 277, 278, 279, 0, 0, 0, 281, 282, 283,
12571 : 284, 285, 286, 0, 288, 289, 290, 291, 0, 292,
12572 : 293, 294, 295, 296, 297, 0, 0, 299, 300, 301,
12573 : 0, 0, 0, 0, 0, 0, 0, 303, 304, 305,
12574 : 306, 307, 308, 309, 310, 311, 0, 312, 0, 313,
12575 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
12576 : 323, 0, 0, 324, 325, 326, 327, 328, 0, 329,
12577 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
12578 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
12579 : 0, 348, 0, 349, 350, 351, 352, 353, 0, 354,
12580 : 0, 355, 356, 0, 0, 0, 359, 360, 361, 362,
12581 : 0, 363, 364, 0, 365, 366, 367, 0, 368, 369,
12582 : 370, 371, 372, 0, 374, 375, 376, 377, 0, 378,
12583 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 0,
12584 : 388, 389, 390, 391, 392, 393, 394, 0, 395, 0,
12585 : 396, 0, 0, 399, 0, 401, 402, 403, 404, 405,
12586 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
12587 : 416, 417, 418, 0, 0, 419, 420, 0, 422, 0,
12588 : 0, 424, 425, 426, 0, 0, 427, 428, 429, 430,
12589 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
12590 : 441, 442, 443, 444, 445, 446, 0, 448, 449, 450,
12591 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 0,
12592 : 460, 461, 0, 463, 0, 464, 465, 466, 467, 468,
12593 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
12594 : 476, 0, 0, 477, 478, 479, 0, 481, 0, 483,
12595 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
12596 : 494, 495, 0, 496, 497, 498, 499, 500, 501, 502,
12597 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
12598 : 512, 513, 514, 515, 516, 517, 518, 519, 0, 520,
12599 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
12600 : 531, 532, 0, 533, 534, 0, 536, 537, 538, 539,
12601 : 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
12602 : 550, 551, 0, 552, 553, 554, 555, 857, 0, 557,
12603 : 558, 559, 560, 561, 0, 563, 564, 565, 566, 0,
12604 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
12605 : 577, 578, 579, 580, 581, 582, 583, 0, 584, 585,
12606 : 0, 0, 586, 0, 588, 589, 590, 591, 592, 593,
12607 : 0, 594, 858, 596, 0, 0, 859, 598, 599, 600,
12608 : 601, 0, 602, 603, 604, 605, 606, 607, 608, 609,
12609 : 610, 0, 0, 611, 612, 613, 614, 615, 0, 0,
12610 : 616, 617, 618, 619, 620, 621, 622, 0, 623, 0,
12611 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
12612 : 631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
12613 : 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
12614 : 658, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12615 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
12616 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
12617 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
12618 : 0, 250, 251, 252, 253, 0, 255, 256, 257, 258,
12619 : 259, 0, 261, 262, 0, 263, 264, 265, 266, 267,
12620 : 268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
12621 : 275, 276, 277, 278, 279, 0, 0, 0, 281, 282,
12622 : 283, 284, 285, 286, 0, 288, 289, 290, 291, 0,
12623 : 292, 293, 294, 295, 296, 297, 0, 0, 299, 300,
12624 : 301, 0, 0, 0, 0, 0, 0, 0, 303, 304,
12625 : 305, 306, 307, 308, 309, 310, 311, 0, 312, 0,
12626 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
12627 : 322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
12628 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
12629 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
12630 : 347, 0, 348, 0, 349, 350, 351, 352, 353, 0,
12631 : 354, 0, 355, 356, 0, 0, 0, 359, 360, 361,
12632 : 362, 0, 363, 364, 0, 365, 366, 367, 0, 368,
12633 : 369, 370, 371, 372, 0, 374, 375, 376, 377, 0,
12634 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
12635 : 0, 388, 389, 390, 391, 392, 393, 394, 0, 395,
12636 : 0, 396, 0, 0, 399, 0, 401, 402, 403, 404,
12637 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
12638 : 415, 416, 417, 418, 0, 0, 419, 420, 0, 422,
12639 : 0, 0, 424, 425, 426, 0, 0, 427, 428, 429,
12640 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
12641 : 440, 441, 442, 443, 444, 445, 446, 0, 448, 449,
12642 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
12643 : 0, 460, 461, 0, 463, 0, 464, 465, 466, 467,
12644 : 468, 469, 470, 0, 471, 472, 473, 0, 862, 474,
12645 : 475, 476, 0, 0, 477, 478, 479, 0, 481, 0,
12646 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
12647 : 493, 494, 495, 0, 496, 497, 498, 499, 500, 501,
12648 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
12649 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
12650 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
12651 : 530, 531, 532, 0, 533, 534, 0, 536, 537, 538,
12652 : 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
12653 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 0,
12654 : 557, 558, 559, 560, 561, 0, 563, 564, 565, 566,
12655 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
12656 : 576, 577, 578, 579, 580, 581, 582, 583, 0, 584,
12657 : 585, 0, 0, 586, 0, 588, 589, 590, 591, 592,
12658 : 593, 0, 594, 595, 596, 0, 0, 597, 598, 599,
12659 : 600, 601, 0, 602, 603, 604, 605, 606, 607, 608,
12660 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
12661 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
12662 : 0, 625, 626, 627, 628, 629, 0, 0, 630, 0,
12663 : 0, 631, 632, 633, 634, 635, 636, 637, 638, 639,
12664 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
12665 : 650, 658, 0, 0, 0, 0, 0, 0, 0, 0,
12666 : 922, 0, 0, 0, 0, 0, 0, 0, 235, 236,
12667 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
12668 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
12669 : 249, 0, 250, 251, 252, 253, 0, 255, 256, 257,
12670 : 258, 259, 0, 261, 262, 0, 263, 264, 265, 266,
12671 : 267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
12672 : 0, 275, 276, 277, 278, 279, 0, 0, 0, 281,
12673 : 282, 283, 284, 285, 286, 0, 288, 289, 290, 291,
12674 : 0, 292, 293, 294, 295, 296, 297, 0, 0, 299,
12675 : 300, 301, 0, 0, 0, 0, 0, 0, 0, 303,
12676 : 304, 305, 306, 307, 308, 309, 310, 311, 0, 312,
12677 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
12678 : 321, 322, 323, 0, 0, 324, 325, 326, 327, 328,
12679 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
12680 : 337, 0, 338, 339, 340, 341, 342, 343, 344, 345,
12681 : 346, 347, 0, 348, 0, 349, 350, 351, 352, 353,
12682 : 0, 354, 0, 355, 356, 0, 0, 0, 359, 360,
12683 : 361, 362, 0, 363, 364, 0, 365, 366, 367, 0,
12684 : 368, 369, 370, 371, 372, 0, 374, 375, 376, 377,
12685 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
12686 : 386, 0, 388, 389, 390, 391, 392, 393, 394, 0,
12687 : 395, 0, 396, 0, 0, 399, 0, 401, 402, 403,
12688 : 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
12689 : 414, 415, 416, 417, 418, 0, 0, 419, 420, 0,
12690 : 422, 0, 0, 424, 425, 426, 0, 0, 427, 428,
12691 : 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
12692 : 439, 440, 441, 442, 443, 444, 445, 446, 0, 448,
12693 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
12694 : 459, 0, 460, 461, 0, 463, 0, 464, 465, 466,
12695 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
12696 : 474, 475, 476, 0, 0, 477, 478, 479, 0, 481,
12697 : 0, 483, 484, 485, 486, 487, 488, 489, 490, 491,
12698 : 492, 493, 494, 495, 0, 496, 497, 498, 499, 500,
12699 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
12700 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
12701 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
12702 : 529, 530, 531, 532, 0, 533, 534, 0, 536, 537,
12703 : 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
12704 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 556,
12705 : 0, 557, 558, 559, 560, 561, 0, 563, 564, 565,
12706 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
12707 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 0,
12708 : 584, 585, 0, 0, 586, 0, 588, 589, 590, 591,
12709 : 592, 593, 0, 594, 595, 596, 0, 0, 597, 598,
12710 : 599, 600, 601, 0, 602, 603, 604, 605, 606, 607,
12711 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
12712 : 0, 0, 616, 617, 618, 619, 620, 621, 622, 0,
12713 : 623, 0, 625, 626, 627, 628, 629, 0, 0, 630,
12714 : 0, 0, 631, 632, 633, 634, 635, 636, 637, 638,
12715 : 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
12716 : 649, 650, 658, 0, 0, 0, 0, 0, 0, 0,
12717 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
12718 : 236, 237, 238, 239, 240, 241, 242, 243, 977, 244,
12719 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
12720 : 248, 249, 0, 250, 251, 252, 253, 0, 255, 256,
12721 : 257, 258, 259, 0, 261, 262, 0, 263, 264, 265,
12722 : 266, 267, 268, 269, 0, 0, 270, 271, 272, 273,
12723 : 274, 0, 275, 276, 277, 278, 279, 0, 0, 0,
12724 : 281, 282, 283, 284, 285, 286, 0, 288, 289, 290,
12725 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 0,
12726 : 299, 300, 301, 0, 0, 0, 0, 0, 0, 0,
12727 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 0,
12728 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
12729 : 320, 321, 322, 323, 0, 0, 324, 325, 326, 327,
12730 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
12731 : 336, 337, 0, 338, 339, 340, 341, 342, 343, 344,
12732 : 345, 346, 347, 0, 348, 0, 349, 350, 351, 352,
12733 : 353, 0, 354, 0, 355, 356, 0, 0, 0, 359,
12734 : 360, 361, 362, 0, 363, 364, 0, 365, 366, 367,
12735 : 0, 368, 369, 370, 371, 978, 0, 374, 375, 376,
12736 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
12737 : 0, 386, 0, 388, 389, 390, 391, 392, 393, 394,
12738 : 0, 395, 0, 396, 0, 0, 399, 0, 401, 402,
12739 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
12740 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 420,
12741 : 0, 422, 0, 0, 424, 425, 426, 0, 0, 427,
12742 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
12743 : 438, 439, 440, 441, 442, 443, 444, 445, 446, 0,
12744 : 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
12745 : 458, 459, 0, 460, 461, 0, 463, 0, 464, 465,
12746 : 466, 467, 468, 469, 470, 0, 471, 472, 473, 0,
12747 : 0, 474, 475, 476, 0, 0, 477, 478, 479, 0,
12748 : 481, 0, 483, 484, 485, 486, 487, 488, 489, 490,
12749 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 499,
12750 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
12751 : 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
12752 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
12753 : 528, 529, 530, 531, 532, 0, 533, 534, 0, 536,
12754 : 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
12755 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
12756 : 556, 0, 557, 558, 559, 560, 561, 0, 563, 564,
12757 : 565, 566, 0, 567, 568, 569, 570, 571, 572, 573,
12758 : 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
12759 : 0, 584, 585, 0, 0, 586, 0, 588, 589, 590,
12760 : 591, 592, 593, 0, 594, 595, 596, 0, 0, 597,
12761 : 598, 599, 600, 601, 0, 602, 603, 604, 605, 606,
12762 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
12763 : 615, 0, 0, 616, 617, 618, 619, 620, 621, 622,
12764 : 0, 623, 0, 625, 626, 627, 628, 629, 0, 0,
12765 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
12766 : 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
12767 : 648, 649, 650, 658, 0, 0, 0, 0, 0, 0,
12768 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12769 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 1140,
12770 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
12771 : 247, 248, 249, 0, 250, 251, 252, 253, 0, 255,
12772 : 256, 257, 258, 259, 0, 261, 262, 0, 263, 264,
12773 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 272,
12774 : 273, 274, 0, 275, 276, 277, 278, 279, 0, 0,
12775 : 0, 281, 282, 283, 284, 285, 286, 0, 288, 289,
12776 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
12777 : 0, 299, 300, 301, 0, 0, 0, 0, 0, 0,
12778 : 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
12779 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
12780 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
12781 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
12782 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
12783 : 344, 345, 346, 347, 0, 348, 0, 349, 350, 351,
12784 : 352, 353, 0, 354, 0, 355, 356, 0, 0, 0,
12785 : 359, 360, 361, 362, 0, 363, 364, 0, 365, 366,
12786 : 367, 0, 368, 369, 370, 371, 372, 0, 374, 375,
12787 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
12788 : 385, 0, 386, 0, 388, 389, 390, 391, 392, 393,
12789 : 394, 0, 395, 0, 396, 0, 0, 399, 0, 401,
12790 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
12791 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
12792 : 420, 0, 422, 0, 0, 424, 425, 426, 0, 0,
12793 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
12794 : 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
12795 : 0, 448, 449, 450, 451, 452, 453, 454, 455, 456,
12796 : 457, 458, 459, 0, 460, 461, 0, 463, 0, 464,
12797 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
12798 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 479,
12799 : 0, 481, 0, 483, 484, 485, 486, 487, 488, 489,
12800 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
12801 : 499, 500, 501, 502, 503, 504, 0, 505, 506, 507,
12802 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
12803 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
12804 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 0,
12805 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
12806 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
12807 : 555, 556, 0, 557, 558, 559, 560, 561, 0, 563,
12808 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
12809 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
12810 : 583, 0, 584, 585, 0, 0, 586, 0, 588, 589,
12811 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
12812 : 597, 598, 599, 600, 601, 0, 602, 603, 604, 605,
12813 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
12814 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 621,
12815 : 622, 0, 623, 0, 625, 626, 627, 628, 629, 0,
12816 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
12817 : 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
12818 : 647, 648, 649, 650, 658, 0, 0, 0, 0, 0,
12819 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12820 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
12821 : 1390, 244, 245, 246, 0, 0, 0, 0, 0, 0,
12822 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
12823 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
12824 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
12825 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
12826 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
12827 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
12828 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
12829 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
12830 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
12831 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
12832 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
12833 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
12834 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
12835 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
12836 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
12837 : 366, 367, 0, 368, 369, 370, 371, 372, 0, 374,
12838 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
12839 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
12840 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
12841 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
12842 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
12843 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
12844 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
12845 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
12846 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
12847 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
12848 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
12849 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
12850 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
12851 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
12852 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
12853 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
12854 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
12855 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
12856 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
12857 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
12858 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
12859 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
12860 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
12861 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
12862 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
12863 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
12864 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
12865 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
12866 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
12867 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
12868 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
12869 : 646, 647, 648, 649, 650, 658, 0, 0, 0, 0,
12870 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12871 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
12872 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 0,
12873 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
12874 : 1401, 255, 256, 257, 258, 259, 0, 261, 262, 0,
12875 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 842,
12876 : 271, 272, 273, 1402, 0, 275, 276, 277, 278, 279,
12877 : 0, 0, 0, 281, 282, 283, 284, 285, 286, 0,
12878 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
12879 : 297, 0, 0, 299, 300, 301, 0, 0, 0, 0,
12880 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 309,
12881 : 310, 311, 0, 312, 0, 313, 314, 315, 316, 317,
12882 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
12883 : 325, 326, 327, 328, 0, 329, 330, 331, 332, 0,
12884 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
12885 : 342, 343, 344, 345, 346, 347, 0, 348, 0, 349,
12886 : 350, 351, 352, 353, 0, 354, 0, 355, 356, 0,
12887 : 0, 0, 359, 360, 361, 362, 0, 363, 364, 0,
12888 : 365, 366, 367, 0, 368, 369, 370, 371, 372, 0,
12889 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
12890 : 383, 384, 385, 0, 386, 0, 388, 389, 390, 391,
12891 : 392, 393, 394, 0, 395, 0, 396, 0, 0, 399,
12892 : 0, 401, 402, 403, 404, 405, 406, 407, 408, 409,
12893 : 410, 411, 412, 413, 414, 415, 416, 417, 418, 0,
12894 : 0, 419, 420, 0, 422, 0, 0, 424, 425, 426,
12895 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
12896 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
12897 : 845, 446, 0, 448, 449, 450, 451, 452, 453, 454,
12898 : 455, 456, 457, 458, 459, 0, 460, 461, 0, 463,
12899 : 0, 464, 465, 466, 467, 468, 469, 470, 0, 471,
12900 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
12901 : 478, 479, 0, 481, 0, 483, 484, 485, 486, 487,
12902 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
12903 : 497, 498, 499, 500, 501, 502, 503, 504, 0, 505,
12904 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
12905 : 516, 517, 518, 519, 0, 520, 521, 522, 523, 524,
12906 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
12907 : 534, 0, 846, 537, 538, 539, 540, 541, 542, 543,
12908 : 544, 545, 847, 547, 548, 549, 550, 551, 0, 552,
12909 : 553, 554, 555, 1394, 0, 557, 558, 559, 560, 561,
12910 : 0, 563, 564, 565, 566, 0, 567, 568, 569, 570,
12911 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
12912 : 581, 582, 583, 0, 584, 585, 0, 0, 586, 0,
12913 : 588, 589, 590, 591, 592, 593, 0, 594, 849, 596,
12914 : 0, 0, 850, 598, 599, 600, 601, 0, 602, 603,
12915 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
12916 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
12917 : 620, 621, 622, 0, 623, 0, 625, 626, 627, 628,
12918 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
12919 : 635, 851, 637, 638, 639, 640, 641, 642, 643, 644,
12920 : 645, 646, 647, 648, 649, 650, 658, 0, 0, 0,
12921 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12922 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
12923 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
12924 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
12925 : 253, 0, 255, 256, 257, 258, 259, 0, 261, 262,
12926 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
12927 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
12928 : 279, 0, 0, 0, 281, 282, 283, 284, 285, 286,
12929 : 0, 288, 289, 290, 291, 0, 292, 293, 294, 295,
12930 : 296, 297, 0, 0, 299, 300, 301, 0, 0, 0,
12931 : 0, 0, 0, 0, 303, 304, 305, 306, 307, 308,
12932 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
12933 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
12934 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
12935 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
12936 : 341, 342, 343, 344, 345, 346, 347, 0, 348, 0,
12937 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
12938 : 0, 0, 0, 359, 360, 361, 362, 0, 363, 364,
12939 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 1547,
12940 : 0, 374, 375, 376, 377, 0, 378, 379, 380, 381,
12941 : 382, 383, 384, 385, 0, 386, 0, 388, 389, 390,
12942 : 391, 392, 393, 394, 0, 395, 0, 396, 0, 0,
12943 : 399, 0, 401, 402, 403, 404, 405, 406, 407, 408,
12944 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
12945 : 0, 0, 419, 420, 0, 422, 0, 0, 424, 425,
12946 : 426, 0, 0, 427, 428, 429, 430, 431, 432, 433,
12947 : 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
12948 : 444, 445, 446, 0, 448, 449, 450, 451, 452, 453,
12949 : 454, 455, 456, 457, 458, 459, 0, 460, 461, 0,
12950 : 463, 0, 464, 465, 466, 467, 468, 469, 470, 0,
12951 : 471, 472, 473, 0, 862, 474, 475, 476, 0, 0,
12952 : 477, 478, 479, 0, 481, 0, 483, 484, 485, 486,
12953 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
12954 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 0,
12955 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
12956 : 515, 516, 517, 518, 519, 0, 520, 521, 522, 523,
12957 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
12958 : 533, 534, 0, 536, 537, 538, 539, 540, 541, 542,
12959 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
12960 : 552, 553, 554, 555, 556, 0, 557, 558, 559, 560,
12961 : 561, 0, 563, 564, 565, 566, 0, 567, 568, 569,
12962 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
12963 : 580, 581, 582, 583, 0, 584, 585, 0, 0, 586,
12964 : 0, 588, 589, 590, 591, 592, 593, 0, 594, 595,
12965 : 596, 0, 0, 597, 598, 599, 600, 601, 0, 602,
12966 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
12967 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
12968 : 619, 620, 621, 622, 0, 623, 0, 625, 626, 627,
12969 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
12970 : 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
12971 : 644, 645, 646, 647, 648, 649, 650, 658, 0, 0,
12972 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12973 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
12974 : 241, 242, 243, 1608, 244, 245, 246, 0, 0, 0,
12975 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
12976 : 252, 253, 0, 255, 256, 257, 258, 259, 0, 261,
12977 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
12978 : 0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
12979 : 278, 279, 0, 0, 0, 281, 282, 283, 284, 285,
12980 : 286, 0, 288, 289, 290, 291, 0, 292, 293, 294,
12981 : 295, 296, 297, 0, 0, 299, 300, 301, 0, 0,
12982 : 0, 0, 0, 0, 0, 303, 304, 305, 306, 307,
12983 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
12984 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
12985 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
12986 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
12987 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
12988 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
12989 : 356, 0, 0, 0, 359, 360, 361, 362, 0, 363,
12990 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
12991 : 1609, 0, 374, 375, 376, 377, 0, 378, 379, 380,
12992 : 381, 382, 383, 384, 385, 0, 386, 0, 388, 389,
12993 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 0,
12994 : 0, 399, 0, 401, 402, 403, 404, 405, 406, 407,
12995 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
12996 : 418, 0, 0, 419, 420, 0, 422, 0, 0, 424,
12997 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
12998 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
12999 : 443, 444, 445, 446, 0, 448, 449, 450, 451, 452,
13000 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
13001 : 0, 463, 0, 464, 465, 466, 467, 468, 469, 470,
13002 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
13003 : 0, 477, 478, 479, 0, 481, 0, 483, 484, 485,
13004 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
13005 : 0, 496, 497, 498, 499, 500, 501, 502, 503, 504,
13006 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
13007 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
13008 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
13009 : 0, 533, 534, 0, 536, 537, 538, 539, 540, 541,
13010 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
13011 : 0, 552, 553, 554, 555, 556, 0, 557, 558, 559,
13012 : 560, 561, 0, 563, 564, 565, 566, 0, 567, 568,
13013 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
13014 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
13015 : 586, 0, 588, 589, 590, 591, 592, 593, 0, 594,
13016 : 595, 596, 0, 0, 597, 598, 599, 600, 601, 0,
13017 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
13018 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
13019 : 618, 619, 620, 621, 622, 0, 623, 0, 625, 626,
13020 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
13021 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
13022 : 643, 644, 645, 646, 647, 648, 649, 650, 658, 0,
13023 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13024 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
13025 : 240, 241, 242, 243, 822, 244, 245, 246, 0, 0,
13026 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
13027 : 251, 252, 253, 0, 255, 256, 257, 258, 259, 0,
13028 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
13029 : 0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
13030 : 277, 278, 279, 0, 0, 0, 281, 282, 283, 284,
13031 : 285, 286, 0, 288, 289, 290, 291, 0, 292, 293,
13032 : 294, 295, 296, 297, 0, 0, 299, 300, 301, 0,
13033 : 0, 0, 0, 0, 0, 0, 303, 304, 305, 306,
13034 : 307, 308, 309, 310, 311, 0, 312, 0, 313, 314,
13035 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
13036 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
13037 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
13038 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 0,
13039 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
13040 : 355, 356, 0, 0, 0, 359, 360, 361, 362, 0,
13041 : 363, 364, 0, 365, 366, 367, 0, 368, 369, 370,
13042 : 371, 372, 0, 374, 375, 376, 377, 0, 378, 379,
13043 : 380, 381, 382, 383, 384, 385, 0, 386, 0, 388,
13044 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
13045 : 0, 0, 399, 0, 401, 402, 403, 404, 405, 406,
13046 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
13047 : 417, 418, 0, 0, 419, 420, 0, 422, 0, 0,
13048 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
13049 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
13050 : 442, 443, 444, 445, 446, 0, 448, 449, 450, 451,
13051 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
13052 : 461, 0, 463, 0, 464, 465, 466, 467, 468, 469,
13053 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
13054 : 0, 0, 477, 478, 479, 0, 481, 0, 483, 484,
13055 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
13056 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
13057 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
13058 : 513, 514, 515, 516, 517, 518, 519, 0, 520, 521,
13059 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
13060 : 532, 0, 533, 534, 0, 536, 537, 538, 539, 540,
13061 : 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
13062 : 551, 0, 552, 553, 554, 555, 556, 0, 557, 558,
13063 : 559, 560, 561, 0, 563, 564, 565, 566, 0, 567,
13064 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
13065 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
13066 : 0, 586, 0, 588, 589, 590, 591, 592, 593, 0,
13067 : 594, 595, 596, 0, 0, 597, 598, 599, 600, 601,
13068 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
13069 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
13070 : 617, 618, 619, 620, 621, 622, 0, 623, 0, 625,
13071 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
13072 : 632, 633, 634, 635, 636, 637, 638, 639, 640, 641,
13073 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 658,
13074 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13075 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
13076 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
13077 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
13078 : 250, 251, 252, 253, 0, 255, 256, 257, 258, 259,
13079 : 0, 261, 262, 0, 263, 264, 265, 266, 267, 268,
13080 : 269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
13081 : 276, 277, 278, 279, 0, 0, 0, 281, 282, 283,
13082 : 284, 285, 286, 0, 288, 289, 290, 291, 0, 292,
13083 : 293, 294, 295, 296, 297, 0, 0, 299, 300, 301,
13084 : 0, 0, 0, 0, 0, 0, 0, 303, 304, 305,
13085 : 306, 307, 308, 309, 310, 311, 0, 312, 0, 313,
13086 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
13087 : 323, 0, 0, 324, 325, 326, 327, 328, 0, 329,
13088 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
13089 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
13090 : 0, 348, 0, 349, 350, 351, 352, 353, 0, 354,
13091 : 0, 355, 356, 0, 0, 0, 359, 360, 361, 3419,
13092 : 0, 363, 364, 0, 365, 366, 367, 0, 368, 369,
13093 : 370, 371, 372, 0, 374, 375, 376, 377, 0, 378,
13094 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 0,
13095 : 388, 389, 390, 391, 392, 393, 394, 0, 395, 0,
13096 : 396, 0, 0, 399, 0, 401, 402, 403, 404, 405,
13097 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
13098 : 416, 417, 418, 0, 0, 419, 420, 0, 422, 0,
13099 : 0, 424, 425, 3420, 0, 0, 427, 428, 429, 430,
13100 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
13101 : 441, 442, 443, 444, 445, 446, 0, 448, 449, 450,
13102 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 0,
13103 : 460, 461, 0, 463, 0, 464, 465, 466, 467, 468,
13104 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
13105 : 476, 0, 0, 477, 478, 479, 0, 481, 0, 483,
13106 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
13107 : 494, 495, 0, 496, 497, 498, 499, 500, 501, 502,
13108 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
13109 : 512, 513, 514, 515, 516, 517, 518, 519, 0, 520,
13110 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
13111 : 531, 532, 0, 533, 534, 0, 536, 537, 538, 539,
13112 : 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
13113 : 550, 551, 0, 552, 553, 554, 555, 556, 0, 557,
13114 : 558, 559, 560, 561, 0, 563, 564, 565, 566, 0,
13115 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
13116 : 577, 578, 579, 580, 581, 582, 583, 0, 584, 585,
13117 : 0, 3421, 586, 0, 588, 589, 3422, 591, 3423, 593,
13118 : 0, 594, 595, 596, 0, 0, 597, 598, 599, 600,
13119 : 601, 0, 602, 603, 604, 605, 606, 607, 608, 609,
13120 : 610, 0, 0, 611, 612, 3424, 614, 615, 0, 0,
13121 : 616, 617, 618, 619, 620, 621, 622, 0, 623, 0,
13122 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
13123 : 631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
13124 : 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
13125 : 658, 0, 0, 717, 0, 0, 0, 0, 0, 0,
13126 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
13127 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
13128 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
13129 : 0, 250, 251, 252, 253, 0, 255, 256, 257, 258,
13130 : 259, 0, 261, 262, 0, 263, 264, 265, 266, 267,
13131 : 268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
13132 : 275, 276, 277, 278, 279, 0, 0, 0, 281, 282,
13133 : 283, 284, 285, 286, 0, 288, 289, 290, 291, 0,
13134 : 292, 293, 294, 295, 296, 297, 0, 0, 299, 300,
13135 : 301, 0, 0, 0, 0, 0, 0, 0, 303, 304,
13136 : 305, 306, 307, 308, 309, 310, 311, 0, 312, 0,
13137 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
13138 : 322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
13139 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
13140 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
13141 : 347, 0, 348, 0, 349, 350, 351, 352, 353, 0,
13142 : 354, 0, 355, 356, 0, 0, 0, 359, 360, 361,
13143 : 362, 0, 363, 364, 0, 365, 366, 367, 0, 368,
13144 : 369, 370, 371, 372, 0, 374, 375, 376, 377, 0,
13145 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
13146 : 0, 388, 389, 390, 391, 392, 393, 394, 0, 395,
13147 : 0, 396, 0, 0, 399, 0, 401, 402, 403, 404,
13148 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
13149 : 415, 416, 417, 418, 0, 0, 419, 420, 0, 422,
13150 : 0, 0, 424, 425, 426, 0, 0, 427, 428, 429,
13151 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
13152 : 440, 441, 442, 443, 444, 445, 446, 0, 448, 449,
13153 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
13154 : 0, 460, 461, 0, 463, 0, 464, 465, 466, 467,
13155 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
13156 : 475, 476, 0, 0, 477, 478, 479, 0, 481, 0,
13157 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
13158 : 493, 494, 495, 0, 496, 497, 498, 499, 500, 501,
13159 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
13160 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
13161 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
13162 : 530, 531, 532, 0, 533, 534, 0, 536, 537, 538,
13163 : 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
13164 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 0,
13165 : 557, 558, 559, 560, 561, 0, 563, 564, 565, 566,
13166 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
13167 : 576, 577, 578, 579, 580, 581, 582, 583, 0, 584,
13168 : 585, 0, 0, 586, 0, 588, 589, 590, 591, 592,
13169 : 593, 0, 594, 595, 596, 0, 0, 597, 598, 599,
13170 : 600, 601, 0, 602, 603, 604, 605, 606, 607, 608,
13171 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
13172 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
13173 : 0, 625, 626, 627, 628, 629, 0, 0, 630, 0,
13174 : 0, 631, 632, 633, 634, 635, 636, 637, 638, 639,
13175 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
13176 : 650, 658, 0, 0, 0, 0, 0, 0, 0, 778,
13177 : 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
13178 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
13179 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
13180 : 249, 0, 250, 251, 252, 253, 0, 255, 256, 257,
13181 : 258, 259, 0, 261, 262, 0, 263, 264, 265, 266,
13182 : 267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
13183 : 0, 275, 276, 277, 278, 279, 0, 0, 0, 281,
13184 : 282, 283, 284, 285, 286, 0, 288, 289, 290, 291,
13185 : 0, 292, 293, 294, 295, 296, 297, 0, 0, 299,
13186 : 300, 301, 0, 0, 0, 0, 0, 0, 0, 303,
13187 : 304, 305, 306, 307, 308, 309, 310, 311, 0, 312,
13188 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
13189 : 321, 322, 323, 0, 0, 324, 325, 326, 327, 328,
13190 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
13191 : 337, 0, 338, 339, 340, 341, 342, 343, 344, 345,
13192 : 346, 347, 0, 348, 0, 349, 350, 351, 352, 353,
13193 : 0, 354, 0, 355, 356, 0, 0, 0, 359, 360,
13194 : 361, 362, 0, 363, 364, 0, 365, 366, 367, 0,
13195 : 368, 369, 370, 371, 372, 0, 374, 375, 376, 377,
13196 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
13197 : 386, 0, 388, 389, 390, 391, 392, 393, 394, 0,
13198 : 395, 0, 396, 0, 0, 399, 0, 401, 402, 403,
13199 : 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
13200 : 414, 415, 416, 417, 418, 0, 0, 419, 420, 0,
13201 : 422, 0, 0, 424, 425, 426, 0, 0, 427, 428,
13202 : 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
13203 : 439, 440, 441, 442, 443, 444, 445, 446, 0, 448,
13204 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
13205 : 459, 0, 460, 461, 0, 463, 0, 464, 465, 466,
13206 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
13207 : 474, 475, 476, 0, 0, 477, 478, 479, 0, 481,
13208 : 0, 483, 484, 485, 486, 487, 488, 489, 490, 491,
13209 : 492, 493, 494, 495, 0, 496, 497, 498, 499, 500,
13210 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
13211 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
13212 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
13213 : 529, 530, 531, 532, 0, 533, 534, 0, 536, 537,
13214 : 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
13215 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 556,
13216 : 0, 557, 558, 559, 560, 561, 0, 563, 564, 565,
13217 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
13218 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 0,
13219 : 584, 585, 0, 0, 586, 0, 588, 589, 590, 591,
13220 : 592, 593, 0, 594, 595, 596, 0, 0, 597, 598,
13221 : 599, 600, 601, 0, 602, 603, 604, 605, 606, 607,
13222 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
13223 : 0, 0, 616, 617, 618, 619, 620, 621, 622, 0,
13224 : 623, 0, 625, 626, 627, 628, 629, 0, 0, 630,
13225 : 0, 0, 631, 632, 633, 634, 635, 636, 637, 638,
13226 : 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
13227 : 649, 650, 658, 0, 0, 0, 0, 0, 0, 0,
13228 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
13229 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
13230 : 245, 246, 0, 0, 0, 0, 0, 4246, 0, 247,
13231 : 248, 249, 0, 250, 251, 252, 253, 0, 255, 256,
13232 : 257, 258, 259, 0, 261, 262, 0, 263, 264, 265,
13233 : 266, 267, 268, 269, 0, 0, 270, 271, 272, 273,
13234 : 274, 0, 275, 276, 277, 278, 279, 0, 0, 0,
13235 : 281, 282, 283, 284, 285, 286, 0, 288, 289, 290,
13236 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 0,
13237 : 299, 300, 301, 0, 0, 0, 0, 0, 0, 0,
13238 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 0,
13239 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
13240 : 320, 321, 322, 323, 0, 0, 324, 325, 326, 327,
13241 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
13242 : 336, 337, 0, 338, 339, 340, 341, 342, 343, 344,
13243 : 345, 346, 347, 0, 348, 0, 349, 350, 351, 352,
13244 : 353, 0, 354, 0, 355, 356, 0, 0, 0, 359,
13245 : 360, 361, 362, 0, 363, 364, 0, 365, 366, 367,
13246 : 0, 368, 369, 370, 371, 372, 0, 374, 375, 376,
13247 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
13248 : 0, 386, 0, 388, 389, 390, 391, 392, 393, 394,
13249 : 0, 395, 0, 396, 0, 0, 399, 0, 401, 402,
13250 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
13251 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 420,
13252 : 0, 422, 0, 0, 424, 425, 426, 0, 0, 427,
13253 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
13254 : 438, 439, 440, 441, 442, 443, 444, 445, 446, 0,
13255 : 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
13256 : 458, 459, 0, 460, 461, 0, 463, 0, 464, 465,
13257 : 466, 467, 468, 469, 470, 0, 471, 472, 473, 0,
13258 : 0, 474, 475, 476, 0, 0, 477, 478, 479, 0,
13259 : 481, 0, 483, 484, 485, 486, 487, 488, 489, 490,
13260 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 499,
13261 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
13262 : 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
13263 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
13264 : 528, 529, 530, 531, 532, 0, 533, 534, 0, 536,
13265 : 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
13266 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
13267 : 556, 0, 557, 558, 559, 560, 561, 0, 563, 564,
13268 : 565, 566, 0, 567, 568, 569, 570, 571, 572, 573,
13269 : 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
13270 : 0, 584, 585, 0, 0, 586, 0, 588, 589, 590,
13271 : 591, 592, 593, 0, 594, 595, 596, 0, 0, 597,
13272 : 598, 599, 600, 601, 0, 602, 603, 604, 605, 606,
13273 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
13274 : 615, 0, 0, 616, 617, 618, 619, 620, 621, 622,
13275 : 0, 623, 0, 625, 626, 627, 628, 629, 0, 0,
13276 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
13277 : 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
13278 : 648, 649, 650, 658, 0, 0, 0, 0, 0, 0,
13279 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13280 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
13281 : 244, 245, 246, 0, 0, 0, 0, 0, 4260, 0,
13282 : 247, 248, 249, 0, 250, 251, 252, 253, 0, 255,
13283 : 256, 257, 258, 259, 0, 261, 262, 0, 263, 264,
13284 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 272,
13285 : 273, 274, 0, 275, 276, 277, 278, 279, 0, 0,
13286 : 0, 281, 282, 283, 284, 285, 286, 0, 288, 289,
13287 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
13288 : 0, 299, 300, 301, 0, 0, 0, 0, 0, 0,
13289 : 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
13290 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
13291 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
13292 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
13293 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
13294 : 344, 345, 346, 347, 0, 348, 0, 349, 350, 351,
13295 : 352, 353, 0, 354, 0, 355, 356, 0, 0, 0,
13296 : 359, 360, 361, 362, 0, 363, 364, 0, 365, 366,
13297 : 367, 0, 368, 369, 370, 371, 372, 0, 374, 375,
13298 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
13299 : 385, 0, 386, 0, 388, 389, 390, 391, 392, 393,
13300 : 394, 0, 395, 0, 396, 0, 0, 399, 0, 401,
13301 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
13302 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
13303 : 420, 0, 422, 0, 0, 424, 425, 426, 0, 0,
13304 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
13305 : 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
13306 : 0, 448, 449, 450, 451, 452, 453, 454, 455, 456,
13307 : 457, 458, 459, 0, 460, 461, 0, 463, 0, 464,
13308 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
13309 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 479,
13310 : 0, 481, 0, 483, 484, 485, 486, 487, 488, 489,
13311 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
13312 : 499, 500, 501, 502, 503, 504, 0, 505, 506, 507,
13313 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
13314 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
13315 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 0,
13316 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
13317 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
13318 : 555, 556, 0, 557, 558, 559, 560, 561, 0, 563,
13319 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
13320 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
13321 : 583, 0, 584, 585, 0, 0, 586, 0, 588, 589,
13322 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
13323 : 597, 598, 599, 600, 601, 0, 602, 603, 604, 605,
13324 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
13325 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 621,
13326 : 622, 0, 623, 0, 625, 626, 627, 628, 629, 0,
13327 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
13328 : 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
13329 : 647, 648, 649, 650, 658, 0, 0, 0, 0, 0,
13330 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13331 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
13332 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
13333 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
13334 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
13335 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
13336 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
13337 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
13338 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
13339 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
13340 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
13341 : 311, 4408, 312, 0, 313, 314, 315, 316, 317, 318,
13342 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
13343 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
13344 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
13345 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
13346 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
13347 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
13348 : 366, 367, 0, 368, 369, 370, 371, 372, 0, 374,
13349 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
13350 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
13351 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
13352 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
13353 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
13354 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
13355 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
13356 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
13357 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
13358 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
13359 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
13360 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
13361 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
13362 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
13363 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
13364 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
13365 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
13366 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
13367 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
13368 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
13369 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
13370 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
13371 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
13372 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
13373 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
13374 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
13375 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
13376 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
13377 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
13378 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
13379 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
13380 : 646, 647, 648, 649, 650, 658, 0, 0, 0, 0,
13381 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13382 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
13383 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 0,
13384 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
13385 : 0, 255, 256, 257, 258, 259, 0, 261, 262, 0,
13386 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
13387 : 271, 272, 273, 274, 0, 275, 276, 277, 278, 279,
13388 : 0, 0, 0, 281, 282, 283, 284, 285, 286, 0,
13389 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
13390 : 297, 0, 0, 299, 300, 301, 0, 0, 0, 0,
13391 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 309,
13392 : 310, 311, 4935, 312, 0, 313, 314, 315, 316, 317,
13393 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
13394 : 325, 326, 327, 328, 0, 329, 330, 331, 332, 0,
13395 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
13396 : 342, 343, 344, 345, 346, 347, 0, 348, 0, 349,
13397 : 350, 351, 352, 353, 0, 354, 0, 355, 356, 0,
13398 : 0, 0, 359, 360, 361, 362, 0, 363, 364, 0,
13399 : 365, 366, 367, 0, 368, 369, 370, 371, 372, 0,
13400 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
13401 : 383, 384, 385, 0, 386, 0, 388, 389, 390, 391,
13402 : 392, 393, 394, 0, 395, 0, 396, 0, 0, 399,
13403 : 0, 401, 402, 403, 404, 405, 406, 407, 408, 409,
13404 : 410, 411, 412, 413, 414, 415, 416, 417, 418, 0,
13405 : 0, 419, 420, 0, 422, 0, 0, 424, 425, 426,
13406 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
13407 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
13408 : 445, 446, 0, 448, 449, 450, 451, 452, 453, 454,
13409 : 455, 456, 457, 458, 459, 0, 460, 461, 0, 463,
13410 : 0, 464, 465, 466, 467, 468, 469, 470, 0, 471,
13411 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
13412 : 478, 479, 0, 481, 0, 483, 484, 485, 486, 487,
13413 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
13414 : 497, 498, 499, 500, 501, 502, 503, 504, 0, 505,
13415 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
13416 : 516, 517, 518, 519, 0, 520, 521, 522, 523, 524,
13417 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
13418 : 534, 0, 536, 537, 538, 539, 540, 541, 542, 543,
13419 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
13420 : 553, 554, 555, 556, 0, 557, 558, 559, 560, 561,
13421 : 0, 563, 564, 565, 566, 0, 567, 568, 569, 570,
13422 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
13423 : 581, 582, 583, 0, 584, 585, 0, 0, 586, 0,
13424 : 588, 589, 590, 591, 592, 593, 0, 594, 595, 596,
13425 : 0, 0, 597, 598, 599, 600, 601, 0, 602, 603,
13426 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
13427 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
13428 : 620, 621, 622, 0, 623, 0, 625, 626, 627, 628,
13429 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
13430 : 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
13431 : 645, 646, 647, 648, 649, 650, 658, 0, 0, 0,
13432 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13433 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
13434 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
13435 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
13436 : 253, 0, 255, 256, 257, 258, 259, 0, 261, 262,
13437 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
13438 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
13439 : 279, 0, 0, 0, 281, 282, 283, 284, 285, 286,
13440 : 0, 288, 289, 290, 291, 0, 292, 293, 294, 295,
13441 : 296, 297, 0, 0, 299, 300, 301, 0, 0, 0,
13442 : 5008, 0, 0, 0, 303, 304, 305, 306, 307, 308,
13443 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
13444 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
13445 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
13446 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
13447 : 341, 342, 343, 344, 345, 346, 347, 0, 348, 0,
13448 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
13449 : 0, 0, 0, 359, 360, 361, 362, 0, 363, 364,
13450 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 372,
13451 : 0, 374, 375, 376, 377, 0, 378, 379, 380, 381,
13452 : 382, 383, 384, 385, 0, 386, 0, 388, 389, 390,
13453 : 391, 392, 393, 394, 0, 395, 0, 396, 0, 0,
13454 : 399, 0, 401, 402, 403, 404, 405, 406, 407, 408,
13455 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
13456 : 0, 0, 419, 420, 0, 422, 0, 0, 424, 425,
13457 : 426, 0, 0, 427, 428, 429, 430, 431, 432, 433,
13458 : 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
13459 : 444, 445, 446, 0, 448, 449, 450, 451, 452, 453,
13460 : 454, 455, 456, 457, 458, 459, 0, 460, 461, 0,
13461 : 463, 0, 464, 465, 466, 467, 468, 469, 470, 0,
13462 : 471, 472, 473, 0, 0, 474, 475, 476, 0, 0,
13463 : 477, 478, 479, 0, 481, 0, 483, 484, 485, 486,
13464 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
13465 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 0,
13466 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
13467 : 515, 516, 517, 518, 519, 0, 520, 521, 522, 523,
13468 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
13469 : 533, 534, 0, 536, 537, 538, 539, 540, 541, 542,
13470 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
13471 : 552, 553, 554, 555, 556, 0, 557, 558, 559, 560,
13472 : 561, 0, 563, 564, 565, 566, 0, 567, 568, 569,
13473 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
13474 : 580, 581, 582, 583, 0, 584, 585, 0, 0, 586,
13475 : 0, 588, 589, 590, 591, 592, 593, 0, 594, 595,
13476 : 596, 0, 0, 597, 598, 599, 600, 601, 0, 602,
13477 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
13478 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
13479 : 619, 620, 621, 622, 0, 623, 0, 625, 626, 627,
13480 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
13481 : 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
13482 : 644, 645, 646, 647, 648, 649, 650, 658, 0, 0,
13483 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13484 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
13485 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
13486 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
13487 : 252, 253, 0, 255, 256, 257, 258, 259, 0, 261,
13488 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
13489 : 0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
13490 : 278, 279, 0, 0, 0, 281, 282, 283, 284, 285,
13491 : 286, 0, 288, 289, 290, 291, 0, 292, 293, 294,
13492 : 295, 296, 297, 0, 0, 299, 300, 301, 0, 0,
13493 : 0, 0, 0, 0, 0, 303, 304, 305, 306, 307,
13494 : 308, 309, 310, 311, 5373, 312, 0, 313, 314, 315,
13495 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
13496 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
13497 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
13498 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
13499 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
13500 : 356, 0, 0, 0, 359, 360, 361, 362, 0, 363,
13501 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
13502 : 372, 0, 374, 375, 376, 377, 0, 378, 379, 380,
13503 : 381, 382, 383, 384, 385, 0, 386, 0, 388, 389,
13504 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 0,
13505 : 0, 399, 0, 401, 402, 403, 404, 405, 406, 407,
13506 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
13507 : 418, 0, 0, 419, 420, 0, 422, 0, 0, 424,
13508 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
13509 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
13510 : 443, 444, 445, 446, 0, 448, 449, 450, 451, 452,
13511 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
13512 : 0, 463, 0, 464, 465, 466, 467, 468, 469, 470,
13513 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
13514 : 0, 477, 478, 479, 0, 481, 0, 483, 484, 485,
13515 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
13516 : 0, 496, 497, 498, 499, 500, 501, 502, 503, 504,
13517 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
13518 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
13519 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
13520 : 0, 533, 534, 0, 536, 537, 538, 539, 540, 541,
13521 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
13522 : 0, 552, 553, 554, 555, 556, 0, 557, 558, 559,
13523 : 560, 561, 0, 563, 564, 565, 566, 0, 567, 568,
13524 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
13525 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
13526 : 586, 0, 588, 589, 590, 591, 592, 593, 0, 594,
13527 : 595, 596, 0, 0, 597, 598, 599, 600, 601, 0,
13528 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
13529 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
13530 : 618, 619, 620, 621, 622, 0, 623, 0, 625, 626,
13531 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
13532 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
13533 : 643, 644, 645, 646, 647, 648, 649, 650, 658, 0,
13534 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13535 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
13536 : 240, 241, 242, 243, 0, 244, 245, 246, 0, 0,
13537 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
13538 : 251, 252, 253, 0, 255, 256, 257, 258, 259, 0,
13539 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
13540 : 0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
13541 : 277, 278, 279, 0, 0, 0, 281, 282, 283, 284,
13542 : 285, 286, 0, 288, 289, 290, 291, 0, 292, 293,
13543 : 294, 295, 296, 297, 0, 0, 299, 300, 301, 0,
13544 : 0, 0, 0, 0, 0, 0, 303, 304, 305, 306,
13545 : 307, 308, 309, 310, 311, 0, 312, 0, 313, 314,
13546 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
13547 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
13548 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
13549 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 0,
13550 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
13551 : 355, 356, 0, 0, 0, 359, 360, 361, 362, 0,
13552 : 363, 364, 0, 365, 366, 367, 0, 368, 369, 370,
13553 : 371, 372, 0, 374, 375, 376, 377, 0, 378, 379,
13554 : 380, 381, 382, 383, 384, 385, 0, 386, 0, 388,
13555 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
13556 : 0, 0, 399, 0, 401, 402, 403, 404, 405, 406,
13557 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
13558 : 417, 418, 0, 0, 419, 420, 0, 422, 0, 0,
13559 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
13560 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
13561 : 442, 443, 444, 445, 446, 0, 448, 449, 450, 451,
13562 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
13563 : 461, 0, 463, 0, 464, 465, 466, 467, 468, 469,
13564 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
13565 : 0, 0, 477, 478, 479, 0, 481, 0, 483, 484,
13566 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
13567 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
13568 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
13569 : 513, 514, 515, 516, 517, 518, 519, 0, 520, 521,
13570 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
13571 : 532, 0, 533, 534, 0, 536, 537, 538, 539, 540,
13572 : 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
13573 : 551, 0, 552, 553, 554, 555, 556, 0, 557, 558,
13574 : 559, 560, 561, 0, 563, 564, 565, 566, 0, 567,
13575 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
13576 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
13577 : 0, 586, 0, 588, 589, 590, 591, 592, 593, 0,
13578 : 594, 595, 596, 0, 0, 597, 598, 599, 600, 601,
13579 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
13580 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
13581 : 617, 618, 619, 620, 621, 622, 0, 623, 0, 625,
13582 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
13583 : 632, 633, 634, 635, 636, 637, 638, 639, 640, 641,
13584 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 658,
13585 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13586 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
13587 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
13588 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
13589 : 250, 251, 252, 253, 0, 255, 256, 257, 258, 259,
13590 : 0, 261, 262, 0, 263, 264, 265, 266, 267, 268,
13591 : 269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
13592 : 276, 277, 278, 279, 0, 0, 0, 281, 282, 283,
13593 : 284, 285, 286, 0, 288, 289, 290, 291, 0, 292,
13594 : 293, 294, 295, 296, 297, 0, 0, 299, 300, 301,
13595 : 0, 0, 0, 0, 0, 0, 0, 303, 304, 305,
13596 : 306, 307, 308, 309, 310, 311, 0, 312, 0, 313,
13597 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
13598 : 323, 0, 0, 324, 325, 326, 327, 328, 0, 329,
13599 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
13600 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
13601 : 0, 348, 0, 349, 350, 351, 352, 353, 0, 354,
13602 : 0, 355, 356, 0, 0, 0, 359, 360, 361, 362,
13603 : 0, 363, 364, 0, 365, 366, 367, 0, 368, 369,
13604 : 370, 371, 372, 0, 374, 375, 376, 377, 0, 378,
13605 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 0,
13606 : 388, 389, 390, 391, 392, 393, 394, 0, 395, 0,
13607 : 396, 0, 0, 399, 0, 401, 402, 403, 404, 405,
13608 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
13609 : 416, 417, 418, 0, 0, 419, 420, 0, 422, 0,
13610 : 0, 424, 425, 426, 0, 0, 427, 428, 429, 430,
13611 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
13612 : 441, 442, 443, 444, 445, 446, 0, 448, 449, 450,
13613 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 0,
13614 : 460, 461, 0, 463, 0, 464, 465, 466, 467, 468,
13615 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
13616 : 476, 0, 0, 477, 478, 479, 0, 481, 0, 483,
13617 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
13618 : 494, 495, 0, 496, 497, 498, 499, 500, 501, 502,
13619 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
13620 : 512, 513, 514, 515, 516, 517, 518, 519, 0, 520,
13621 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
13622 : 531, 532, 0, 533, 534, 0, 536, 537, 538, 539,
13623 : 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
13624 : 550, 551, 0, 552, 553, 554, 555, 556, 0, 557,
13625 : 558, 559, 560, 561, 0, 563, 564, 565, 566, 0,
13626 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
13627 : 577, 578, 579, 580, 581, 582, 583, 0, 584, 585,
13628 : 0, 0, 586, 0, 588, 589, 590, 591, 592, 593,
13629 : 0, 594, 595, 596, 0, 0, 814, 598, 599, 600,
13630 : 601, 0, 602, 603, 604, 605, 606, 607, 608, 609,
13631 : 610, 0, 0, 611, 612, 613, 614, 615, 0, 0,
13632 : 616, 617, 618, 619, 620, 621, 622, 0, 623, 0,
13633 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
13634 : 631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
13635 : 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
13636 : 658, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13637 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
13638 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
13639 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
13640 : 0, 250, 251, 252, 253, 0, 255, 256, 257, 258,
13641 : 259, 0, 261, 262, 0, 263, 264, 265, 266, 267,
13642 : 268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
13643 : 275, 276, 277, 278, 279, 0, 0, 0, 281, 282,
13644 : 283, 284, 285, 286, 0, 288, 289, 290, 291, 0,
13645 : 292, 293, 294, 295, 296, 297, 0, 0, 299, 300,
13646 : 301, 0, 0, 0, 0, 0, 0, 0, 303, 304,
13647 : 305, 306, 307, 308, 309, 310, 311, 0, 312, 0,
13648 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
13649 : 322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
13650 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
13651 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
13652 : 347, 0, 348, 0, 349, 350, 351, 352, 353, 0,
13653 : 354, 0, 355, 356, 0, 0, 0, 359, 360, 361,
13654 : 362, 0, 363, 364, 0, 365, 366, 367, 0, 368,
13655 : 369, 370, 371, 372, 0, 374, 375, 376, 377, 0,
13656 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
13657 : 0, 388, 389, 390, 391, 392, 393, 394, 0, 395,
13658 : 0, 396, 0, 0, 399, 0, 401, 402, 403, 404,
13659 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
13660 : 415, 416, 417, 418, 0, 0, 419, 420, 0, 422,
13661 : 0, 0, 424, 425, 426, 0, 0, 427, 428, 429,
13662 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
13663 : 440, 441, 442, 443, 444, 445, 446, 0, 448, 449,
13664 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
13665 : 0, 460, 461, 0, 463, 0, 464, 465, 466, 467,
13666 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
13667 : 475, 476, 0, 0, 477, 478, 479, 0, 481, 0,
13668 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
13669 : 493, 494, 495, 0, 496, 497, 498, 499, 500, 501,
13670 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
13671 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
13672 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
13673 : 530, 531, 532, 0, 533, 534, 0, 536, 537, 538,
13674 : 539, 540, 541, 542, 543, 820, 545, 546, 547, 548,
13675 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 0,
13676 : 557, 558, 559, 560, 561, 0, 563, 564, 565, 566,
13677 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
13678 : 576, 577, 578, 579, 580, 581, 582, 583, 0, 584,
13679 : 585, 0, 0, 586, 0, 588, 589, 590, 591, 592,
13680 : 593, 0, 594, 595, 596, 0, 0, 597, 598, 599,
13681 : 600, 601, 0, 602, 603, 604, 605, 606, 607, 608,
13682 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
13683 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
13684 : 0, 625, 626, 627, 628, 629, 0, 0, 630, 0,
13685 : 0, 631, 632, 633, 634, 635, 636, 637, 638, 639,
13686 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
13687 : 650, 658, 0, 0, 0, 0, 0, 0, 0, 0,
13688 : 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
13689 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
13690 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
13691 : 249, 0, 250, 251, 252, 253, 0, 255, 256, 257,
13692 : 258, 259, 0, 261, 262, 0, 263, 264, 265, 266,
13693 : 267, 268, 269, 0, 0, 842, 271, 272, 273, 274,
13694 : 0, 275, 276, 277, 278, 279, 0, 0, 0, 281,
13695 : 282, 283, 284, 285, 286, 0, 288, 289, 290, 291,
13696 : 0, 843, 293, 294, 295, 296, 297, 0, 0, 299,
13697 : 300, 301, 0, 0, 0, 0, 0, 0, 0, 303,
13698 : 304, 305, 306, 307, 308, 309, 310, 311, 0, 312,
13699 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
13700 : 321, 322, 323, 0, 0, 324, 325, 326, 327, 328,
13701 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
13702 : 337, 0, 338, 339, 340, 341, 342, 343, 344, 345,
13703 : 346, 347, 0, 348, 0, 349, 350, 351, 352, 353,
13704 : 0, 354, 0, 355, 356, 0, 0, 0, 359, 360,
13705 : 361, 362, 0, 363, 364, 0, 365, 366, 367, 0,
13706 : 368, 369, 370, 371, 372, 0, 374, 375, 376, 377,
13707 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
13708 : 386, 0, 388, 389, 390, 391, 392, 393, 394, 0,
13709 : 395, 0, 396, 0, 0, 399, 0, 401, 402, 403,
13710 : 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
13711 : 414, 415, 416, 417, 418, 0, 0, 419, 420, 0,
13712 : 422, 0, 0, 424, 425, 844, 0, 0, 427, 428,
13713 : 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
13714 : 439, 440, 441, 442, 443, 444, 845, 446, 0, 448,
13715 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
13716 : 459, 0, 460, 461, 0, 463, 0, 464, 465, 466,
13717 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
13718 : 474, 475, 476, 0, 0, 477, 478, 479, 0, 481,
13719 : 0, 483, 484, 485, 486, 487, 488, 489, 490, 491,
13720 : 492, 493, 494, 495, 0, 496, 497, 498, 499, 500,
13721 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
13722 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
13723 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
13724 : 529, 530, 531, 532, 0, 533, 534, 0, 846, 537,
13725 : 538, 539, 540, 541, 542, 543, 544, 545, 847, 547,
13726 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 848,
13727 : 0, 557, 558, 559, 560, 561, 0, 563, 564, 565,
13728 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
13729 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 0,
13730 : 584, 585, 0, 0, 586, 0, 588, 589, 590, 591,
13731 : 592, 593, 0, 594, 849, 596, 0, 0, 850, 598,
13732 : 599, 600, 601, 0, 602, 603, 604, 605, 606, 607,
13733 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
13734 : 0, 0, 616, 617, 618, 619, 620, 621, 622, 0,
13735 : 623, 0, 625, 626, 627, 628, 629, 0, 0, 630,
13736 : 0, 0, 631, 632, 633, 634, 635, 851, 637, 638,
13737 : 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
13738 : 649, 650, 658, 0, 0, 0, 0, 0, 0, 0,
13739 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
13740 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
13741 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
13742 : 248, 249, 0, 250, 251, 252, 253, 0, 255, 256,
13743 : 257, 258, 259, 0, 261, 262, 0, 263, 264, 265,
13744 : 266, 267, 268, 269, 0, 0, 270, 271, 272, 273,
13745 : 274, 0, 275, 276, 277, 278, 279, 0, 0, 0,
13746 : 281, 282, 283, 284, 285, 286, 0, 288, 289, 290,
13747 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 0,
13748 : 299, 300, 301, 0, 0, 0, 0, 0, 0, 0,
13749 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 0,
13750 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
13751 : 320, 321, 322, 323, 0, 0, 324, 325, 326, 327,
13752 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
13753 : 336, 337, 0, 338, 339, 340, 341, 342, 343, 344,
13754 : 345, 346, 347, 0, 348, 0, 349, 350, 351, 352,
13755 : 353, 0, 354, 0, 355, 356, 0, 0, 0, 359,
13756 : 360, 361, 362, 0, 363, 364, 0, 365, 366, 367,
13757 : 0, 368, 369, 370, 371, 372, 0, 374, 375, 376,
13758 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
13759 : 0, 386, 0, 388, 389, 390, 391, 392, 393, 394,
13760 : 0, 395, 0, 396, 0, 0, 399, 0, 401, 402,
13761 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
13762 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 420,
13763 : 0, 422, 0, 0, 424, 425, 426, 0, 0, 427,
13764 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
13765 : 438, 439, 440, 441, 442, 443, 444, 445, 446, 0,
13766 : 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
13767 : 458, 459, 0, 460, 461, 0, 463, 0, 464, 465,
13768 : 466, 467, 468, 469, 470, 0, 471, 472, 473, 0,
13769 : 0, 474, 475, 476, 0, 0, 477, 478, 479, 0,
13770 : 481, 0, 483, 484, 485, 486, 487, 488, 489, 490,
13771 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 499,
13772 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
13773 : 509, 510, 511, 512, 513, 514, 515, 516, 517, 874,
13774 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
13775 : 528, 529, 530, 531, 532, 0, 533, 534, 0, 536,
13776 : 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
13777 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
13778 : 556, 0, 557, 558, 559, 560, 561, 0, 563, 564,
13779 : 565, 566, 0, 567, 568, 569, 570, 571, 572, 573,
13780 : 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
13781 : 0, 584, 585, 0, 0, 586, 0, 588, 589, 590,
13782 : 591, 592, 593, 0, 594, 595, 596, 0, 0, 597,
13783 : 598, 599, 600, 601, 0, 602, 603, 604, 605, 606,
13784 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
13785 : 615, 0, 0, 616, 617, 618, 619, 620, 621, 622,
13786 : 0, 623, 0, 625, 626, 627, 628, 629, 0, 0,
13787 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
13788 : 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
13789 : 648, 649, 650, 658, 0, 0, 0, 0, 0, 0,
13790 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13791 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
13792 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
13793 : 247, 248, 249, 0, 250, 251, 252, 253, 0, 255,
13794 : 256, 257, 258, 259, 0, 261, 262, 0, 263, 264,
13795 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 272,
13796 : 273, 274, 0, 275, 276, 277, 278, 279, 0, 0,
13797 : 0, 281, 282, 283, 284, 285, 286, 0, 288, 289,
13798 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
13799 : 0, 299, 300, 301, 0, 0, 0, 0, 0, 0,
13800 : 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
13801 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
13802 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
13803 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
13804 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
13805 : 344, 345, 346, 347, 0, 348, 0, 349, 350, 351,
13806 : 352, 353, 0, 354, 0, 355, 356, 0, 0, 0,
13807 : 359, 360, 361, 362, 0, 363, 364, 0, 365, 366,
13808 : 367, 0, 368, 369, 370, 371, 1002, 0, 374, 375,
13809 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
13810 : 385, 0, 386, 0, 388, 389, 390, 391, 392, 393,
13811 : 394, 0, 395, 0, 396, 0, 0, 399, 0, 401,
13812 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
13813 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
13814 : 420, 0, 422, 0, 0, 424, 425, 426, 0, 0,
13815 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
13816 : 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
13817 : 0, 448, 449, 450, 451, 452, 453, 454, 455, 456,
13818 : 457, 458, 459, 0, 460, 461, 0, 463, 0, 464,
13819 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
13820 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 479,
13821 : 0, 481, 0, 483, 484, 485, 486, 487, 488, 489,
13822 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
13823 : 499, 500, 501, 502, 503, 504, 0, 505, 506, 507,
13824 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
13825 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
13826 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 0,
13827 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
13828 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
13829 : 555, 556, 0, 557, 558, 559, 560, 561, 0, 563,
13830 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
13831 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
13832 : 583, 0, 584, 585, 0, 0, 586, 0, 588, 589,
13833 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
13834 : 597, 598, 599, 600, 601, 0, 602, 603, 604, 605,
13835 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
13836 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 621,
13837 : 622, 0, 623, 0, 625, 626, 627, 628, 629, 0,
13838 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
13839 : 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
13840 : 647, 648, 649, 650, 658, 0, 0, 0, 0, 0,
13841 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13842 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
13843 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
13844 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
13845 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
13846 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
13847 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
13848 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
13849 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
13850 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
13851 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
13852 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
13853 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
13854 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
13855 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
13856 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
13857 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
13858 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
13859 : 366, 367, 0, 368, 369, 370, 371, 1012, 0, 374,
13860 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
13861 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
13862 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
13863 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
13864 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
13865 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
13866 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
13867 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
13868 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
13869 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
13870 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
13871 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
13872 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
13873 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
13874 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
13875 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
13876 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
13877 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
13878 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
13879 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
13880 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
13881 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
13882 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
13883 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
13884 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
13885 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
13886 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
13887 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
13888 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
13889 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
13890 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
13891 : 646, 647, 648, 649, 650, 658, 0, 0, 0, 0,
13892 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13893 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
13894 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 0,
13895 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
13896 : 0, 255, 256, 257, 258, 259, 0, 261, 262, 0,
13897 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
13898 : 271, 272, 273, 274, 0, 275, 276, 277, 278, 279,
13899 : 0, 0, 0, 281, 282, 283, 284, 285, 286, 0,
13900 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
13901 : 297, 0, 0, 299, 300, 301, 0, 0, 0, 0,
13902 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 309,
13903 : 310, 311, 0, 312, 0, 313, 314, 315, 316, 317,
13904 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
13905 : 325, 326, 327, 328, 0, 329, 330, 331, 332, 0,
13906 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
13907 : 342, 343, 344, 345, 346, 347, 0, 348, 0, 349,
13908 : 350, 351, 352, 353, 0, 354, 0, 355, 356, 0,
13909 : 0, 0, 359, 360, 361, 362, 0, 363, 364, 0,
13910 : 365, 366, 367, 0, 368, 369, 370, 371, 1015, 0,
13911 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
13912 : 383, 384, 385, 0, 386, 0, 388, 389, 390, 391,
13913 : 392, 393, 394, 0, 395, 0, 396, 0, 0, 399,
13914 : 0, 401, 402, 403, 404, 405, 406, 407, 408, 409,
13915 : 410, 411, 412, 413, 414, 415, 416, 417, 418, 0,
13916 : 0, 419, 420, 0, 422, 0, 0, 424, 425, 426,
13917 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
13918 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
13919 : 445, 446, 0, 448, 449, 450, 451, 452, 453, 454,
13920 : 455, 456, 457, 458, 459, 0, 460, 461, 0, 463,
13921 : 0, 464, 465, 466, 467, 468, 469, 470, 0, 471,
13922 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
13923 : 478, 479, 0, 481, 0, 483, 484, 485, 486, 487,
13924 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
13925 : 497, 498, 499, 500, 501, 502, 503, 504, 0, 505,
13926 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
13927 : 516, 517, 518, 519, 0, 520, 521, 522, 523, 524,
13928 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
13929 : 534, 0, 536, 537, 538, 539, 540, 541, 542, 543,
13930 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
13931 : 553, 554, 555, 556, 0, 557, 558, 559, 560, 561,
13932 : 0, 563, 564, 565, 566, 0, 567, 568, 569, 570,
13933 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
13934 : 581, 582, 583, 0, 584, 585, 0, 0, 586, 0,
13935 : 588, 589, 590, 591, 592, 593, 0, 594, 595, 596,
13936 : 0, 0, 597, 598, 599, 600, 601, 0, 602, 603,
13937 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
13938 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
13939 : 620, 621, 622, 0, 623, 0, 625, 626, 627, 628,
13940 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
13941 : 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
13942 : 645, 646, 647, 648, 649, 650, 658, 0, 0, 0,
13943 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13944 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
13945 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
13946 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
13947 : 253, 0, 255, 256, 257, 258, 259, 0, 261, 262,
13948 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
13949 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
13950 : 279, 0, 0, 0, 281, 282, 283, 284, 285, 286,
13951 : 0, 288, 289, 290, 291, 0, 292, 293, 294, 295,
13952 : 296, 297, 0, 0, 299, 300, 301, 0, 0, 0,
13953 : 0, 0, 0, 0, 303, 304, 305, 306, 307, 308,
13954 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
13955 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
13956 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
13957 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
13958 : 341, 342, 343, 344, 345, 346, 347, 0, 348, 0,
13959 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
13960 : 0, 0, 0, 359, 360, 361, 362, 0, 363, 364,
13961 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 1031,
13962 : 0, 374, 375, 376, 377, 0, 378, 379, 380, 381,
13963 : 382, 383, 384, 385, 0, 386, 0, 388, 389, 390,
13964 : 391, 392, 393, 394, 0, 395, 0, 396, 0, 0,
13965 : 399, 0, 401, 402, 403, 404, 405, 406, 407, 408,
13966 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
13967 : 0, 0, 419, 420, 0, 422, 0, 0, 424, 425,
13968 : 426, 0, 0, 427, 428, 429, 430, 431, 432, 433,
13969 : 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
13970 : 444, 445, 446, 0, 448, 449, 450, 451, 452, 453,
13971 : 454, 455, 456, 457, 458, 459, 0, 460, 461, 0,
13972 : 463, 0, 464, 465, 466, 467, 468, 469, 470, 0,
13973 : 471, 472, 473, 0, 0, 474, 475, 476, 0, 0,
13974 : 477, 478, 479, 0, 481, 0, 483, 484, 485, 486,
13975 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
13976 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 0,
13977 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
13978 : 515, 516, 517, 518, 519, 0, 520, 521, 522, 523,
13979 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
13980 : 533, 534, 0, 536, 537, 538, 539, 540, 541, 542,
13981 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
13982 : 552, 553, 554, 555, 556, 0, 557, 558, 559, 560,
13983 : 561, 0, 563, 564, 565, 566, 0, 567, 568, 569,
13984 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
13985 : 580, 581, 582, 583, 0, 584, 585, 0, 0, 586,
13986 : 0, 588, 589, 590, 591, 592, 593, 0, 594, 595,
13987 : 596, 0, 0, 597, 598, 599, 600, 601, 0, 602,
13988 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
13989 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
13990 : 619, 620, 621, 622, 0, 623, 0, 625, 626, 627,
13991 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
13992 : 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
13993 : 644, 645, 646, 647, 648, 649, 650, 658, 0, 0,
13994 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13995 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
13996 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
13997 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
13998 : 252, 253, 0, 255, 256, 257, 258, 259, 0, 261,
13999 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
14000 : 0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
14001 : 278, 279, 0, 0, 0, 281, 282, 283, 284, 285,
14002 : 286, 0, 288, 289, 290, 291, 0, 292, 293, 294,
14003 : 295, 296, 297, 0, 0, 299, 300, 301, 0, 0,
14004 : 0, 0, 0, 0, 0, 303, 304, 305, 306, 307,
14005 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
14006 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
14007 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
14008 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
14009 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
14010 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
14011 : 356, 0, 0, 0, 359, 360, 361, 362, 0, 363,
14012 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
14013 : 1088, 0, 374, 375, 376, 377, 0, 378, 379, 380,
14014 : 381, 382, 383, 384, 385, 0, 386, 0, 388, 389,
14015 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 0,
14016 : 0, 399, 0, 401, 402, 403, 404, 405, 406, 407,
14017 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
14018 : 418, 0, 0, 419, 420, 0, 422, 0, 0, 424,
14019 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
14020 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
14021 : 443, 444, 445, 446, 0, 448, 449, 450, 451, 452,
14022 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
14023 : 0, 463, 0, 464, 465, 466, 467, 468, 469, 470,
14024 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
14025 : 0, 477, 478, 479, 0, 481, 0, 483, 484, 485,
14026 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
14027 : 0, 496, 497, 498, 499, 500, 501, 502, 503, 504,
14028 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
14029 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
14030 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
14031 : 0, 533, 534, 0, 536, 537, 538, 539, 540, 541,
14032 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
14033 : 0, 552, 553, 554, 555, 556, 0, 557, 558, 559,
14034 : 560, 561, 0, 563, 564, 565, 566, 0, 567, 568,
14035 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
14036 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
14037 : 586, 0, 588, 589, 590, 591, 592, 593, 0, 594,
14038 : 595, 596, 0, 0, 597, 598, 599, 600, 601, 0,
14039 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
14040 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
14041 : 618, 619, 620, 621, 622, 0, 623, 0, 625, 626,
14042 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
14043 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
14044 : 643, 644, 645, 646, 647, 648, 649, 650, 658, 0,
14045 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14046 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
14047 : 240, 241, 242, 243, 0, 244, 245, 246, 0, 0,
14048 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
14049 : 251, 252, 253, 0, 255, 256, 257, 258, 259, 0,
14050 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
14051 : 0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
14052 : 277, 278, 279, 0, 0, 0, 281, 282, 283, 284,
14053 : 285, 286, 0, 288, 289, 290, 291, 0, 292, 293,
14054 : 294, 295, 296, 297, 0, 0, 299, 300, 301, 0,
14055 : 0, 0, 0, 0, 0, 0, 303, 304, 305, 306,
14056 : 307, 308, 309, 310, 311, 0, 312, 0, 313, 314,
14057 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
14058 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
14059 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
14060 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 0,
14061 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
14062 : 355, 356, 0, 0, 0, 359, 360, 361, 362, 0,
14063 : 363, 364, 0, 365, 366, 367, 0, 368, 369, 370,
14064 : 371, 1093, 0, 374, 375, 376, 377, 0, 378, 379,
14065 : 380, 381, 382, 383, 384, 385, 0, 386, 0, 388,
14066 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
14067 : 0, 0, 399, 0, 401, 402, 403, 404, 405, 406,
14068 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
14069 : 417, 418, 0, 0, 419, 420, 0, 422, 0, 0,
14070 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
14071 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
14072 : 442, 443, 444, 445, 446, 0, 448, 449, 450, 451,
14073 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
14074 : 461, 0, 463, 0, 464, 465, 466, 467, 468, 469,
14075 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
14076 : 0, 0, 477, 478, 479, 0, 481, 0, 483, 484,
14077 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
14078 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
14079 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
14080 : 513, 514, 515, 516, 517, 518, 519, 0, 520, 521,
14081 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
14082 : 532, 0, 533, 534, 0, 536, 537, 538, 539, 540,
14083 : 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
14084 : 551, 0, 552, 553, 554, 555, 556, 0, 557, 558,
14085 : 559, 560, 561, 0, 563, 564, 565, 566, 0, 567,
14086 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
14087 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
14088 : 0, 586, 0, 588, 589, 590, 591, 592, 593, 0,
14089 : 594, 595, 596, 0, 0, 597, 598, 599, 600, 601,
14090 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
14091 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
14092 : 617, 618, 619, 620, 621, 622, 0, 623, 0, 625,
14093 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
14094 : 632, 633, 634, 635, 636, 637, 638, 639, 640, 641,
14095 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 658,
14096 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14097 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
14098 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
14099 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
14100 : 250, 251, 252, 253, 0, 255, 256, 257, 258, 259,
14101 : 0, 261, 262, 0, 263, 264, 265, 266, 267, 268,
14102 : 269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
14103 : 276, 277, 278, 279, 0, 0, 0, 281, 282, 283,
14104 : 284, 285, 286, 0, 288, 289, 290, 291, 0, 292,
14105 : 293, 294, 295, 296, 297, 0, 0, 299, 300, 301,
14106 : 0, 0, 0, 0, 0, 0, 0, 303, 304, 305,
14107 : 306, 307, 308, 309, 310, 311, 0, 312, 0, 313,
14108 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
14109 : 323, 0, 0, 324, 325, 326, 327, 328, 0, 329,
14110 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
14111 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
14112 : 0, 348, 0, 349, 350, 351, 352, 353, 0, 354,
14113 : 0, 355, 356, 0, 0, 0, 359, 360, 361, 362,
14114 : 0, 363, 364, 0, 365, 366, 367, 0, 368, 369,
14115 : 370, 371, 1110, 0, 374, 375, 376, 377, 0, 378,
14116 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 0,
14117 : 388, 389, 390, 391, 392, 393, 394, 0, 395, 0,
14118 : 396, 0, 0, 399, 0, 401, 402, 403, 404, 405,
14119 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
14120 : 416, 417, 418, 0, 0, 419, 420, 0, 422, 0,
14121 : 0, 424, 425, 426, 0, 0, 427, 428, 429, 430,
14122 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
14123 : 441, 442, 443, 444, 445, 446, 0, 448, 449, 450,
14124 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 0,
14125 : 460, 461, 0, 463, 0, 464, 465, 466, 467, 468,
14126 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
14127 : 476, 0, 0, 477, 478, 479, 0, 481, 0, 483,
14128 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
14129 : 494, 495, 0, 496, 497, 498, 499, 500, 501, 502,
14130 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
14131 : 512, 513, 514, 515, 516, 517, 518, 519, 0, 520,
14132 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
14133 : 531, 532, 0, 533, 534, 0, 536, 537, 538, 539,
14134 : 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
14135 : 550, 551, 0, 552, 553, 554, 555, 556, 0, 557,
14136 : 558, 559, 560, 561, 0, 563, 564, 565, 566, 0,
14137 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
14138 : 577, 578, 579, 580, 581, 582, 583, 0, 584, 585,
14139 : 0, 0, 586, 0, 588, 589, 590, 591, 592, 593,
14140 : 0, 594, 595, 596, 0, 0, 597, 598, 599, 600,
14141 : 601, 0, 602, 603, 604, 605, 606, 607, 608, 609,
14142 : 610, 0, 0, 611, 612, 613, 614, 615, 0, 0,
14143 : 616, 617, 618, 619, 620, 621, 622, 0, 623, 0,
14144 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
14145 : 631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
14146 : 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
14147 : 658, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14148 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
14149 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
14150 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
14151 : 0, 250, 251, 252, 253, 0, 255, 256, 257, 258,
14152 : 259, 0, 261, 262, 0, 263, 264, 265, 266, 267,
14153 : 268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
14154 : 275, 276, 277, 278, 279, 0, 0, 0, 281, 282,
14155 : 283, 284, 285, 286, 0, 288, 289, 290, 291, 0,
14156 : 292, 293, 294, 295, 296, 297, 0, 0, 299, 300,
14157 : 301, 0, 0, 0, 0, 0, 0, 0, 303, 304,
14158 : 305, 306, 307, 308, 309, 310, 311, 0, 312, 0,
14159 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
14160 : 322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
14161 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
14162 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
14163 : 347, 0, 348, 0, 349, 350, 351, 352, 353, 0,
14164 : 354, 0, 355, 356, 0, 0, 0, 359, 360, 361,
14165 : 362, 0, 363, 364, 0, 365, 366, 367, 0, 368,
14166 : 369, 370, 371, 1113, 0, 374, 375, 376, 377, 0,
14167 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
14168 : 0, 388, 389, 390, 391, 392, 393, 394, 0, 395,
14169 : 0, 396, 0, 0, 399, 0, 401, 402, 403, 404,
14170 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
14171 : 415, 416, 417, 418, 0, 0, 419, 420, 0, 422,
14172 : 0, 0, 424, 425, 426, 0, 0, 427, 428, 429,
14173 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
14174 : 440, 441, 442, 443, 444, 445, 446, 0, 448, 449,
14175 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
14176 : 0, 460, 461, 0, 463, 0, 464, 465, 466, 467,
14177 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
14178 : 475, 476, 0, 0, 477, 478, 479, 0, 481, 0,
14179 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
14180 : 493, 494, 495, 0, 496, 497, 498, 499, 500, 501,
14181 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
14182 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
14183 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
14184 : 530, 531, 532, 0, 533, 534, 0, 536, 537, 538,
14185 : 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
14186 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 0,
14187 : 557, 558, 559, 560, 561, 0, 563, 564, 565, 566,
14188 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
14189 : 576, 577, 578, 579, 580, 581, 582, 583, 0, 584,
14190 : 585, 0, 0, 586, 0, 588, 589, 590, 591, 592,
14191 : 593, 0, 594, 595, 596, 0, 0, 597, 598, 599,
14192 : 600, 601, 0, 602, 603, 604, 605, 606, 607, 608,
14193 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
14194 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
14195 : 0, 625, 626, 627, 628, 629, 0, 0, 630, 0,
14196 : 0, 631, 632, 633, 634, 635, 636, 637, 638, 639,
14197 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
14198 : 650, 658, 0, 0, 0, 0, 0, 0, 0, 0,
14199 : 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
14200 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
14201 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
14202 : 249, 0, 250, 251, 252, 253, 0, 255, 256, 257,
14203 : 258, 259, 0, 261, 262, 0, 263, 264, 265, 266,
14204 : 267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
14205 : 0, 275, 276, 277, 278, 279, 0, 0, 0, 281,
14206 : 282, 283, 284, 285, 286, 0, 288, 289, 290, 291,
14207 : 0, 292, 293, 294, 295, 296, 297, 0, 0, 299,
14208 : 300, 301, 0, 0, 0, 0, 0, 0, 0, 303,
14209 : 304, 305, 306, 307, 308, 309, 310, 311, 0, 312,
14210 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
14211 : 321, 322, 323, 0, 0, 324, 325, 326, 327, 328,
14212 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
14213 : 337, 0, 338, 339, 340, 341, 342, 343, 344, 345,
14214 : 346, 347, 0, 348, 0, 349, 350, 351, 352, 353,
14215 : 0, 354, 0, 355, 356, 0, 0, 0, 359, 360,
14216 : 361, 362, 0, 363, 364, 0, 365, 366, 367, 0,
14217 : 368, 369, 370, 371, 1115, 0, 374, 375, 376, 377,
14218 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
14219 : 386, 0, 388, 389, 390, 391, 392, 393, 394, 0,
14220 : 395, 0, 396, 0, 0, 399, 0, 401, 402, 403,
14221 : 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
14222 : 414, 415, 416, 417, 418, 0, 0, 419, 420, 0,
14223 : 422, 0, 0, 424, 425, 426, 0, 0, 427, 428,
14224 : 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
14225 : 439, 440, 441, 442, 443, 444, 445, 446, 0, 448,
14226 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
14227 : 459, 0, 460, 461, 0, 463, 0, 464, 465, 466,
14228 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
14229 : 474, 475, 476, 0, 0, 477, 478, 479, 0, 481,
14230 : 0, 483, 484, 485, 486, 487, 488, 489, 490, 491,
14231 : 492, 493, 494, 495, 0, 496, 497, 498, 499, 500,
14232 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
14233 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
14234 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
14235 : 529, 530, 531, 532, 0, 533, 534, 0, 536, 537,
14236 : 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
14237 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 556,
14238 : 0, 557, 558, 559, 560, 561, 0, 563, 564, 565,
14239 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
14240 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 0,
14241 : 584, 585, 0, 0, 586, 0, 588, 589, 590, 591,
14242 : 592, 593, 0, 594, 595, 596, 0, 0, 597, 598,
14243 : 599, 600, 601, 0, 602, 603, 604, 605, 606, 607,
14244 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
14245 : 0, 0, 616, 617, 618, 619, 620, 621, 622, 0,
14246 : 623, 0, 625, 626, 627, 628, 629, 0, 0, 630,
14247 : 0, 0, 631, 632, 633, 634, 635, 636, 637, 638,
14248 : 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
14249 : 649, 650, 658, 0, 0, 0, 0, 0, 0, 0,
14250 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
14251 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
14252 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
14253 : 248, 249, 0, 250, 251, 252, 253, 0, 255, 256,
14254 : 257, 258, 259, 0, 261, 262, 0, 263, 264, 265,
14255 : 266, 267, 268, 269, 0, 0, 270, 271, 272, 273,
14256 : 274, 0, 275, 276, 277, 278, 279, 0, 0, 0,
14257 : 281, 282, 283, 284, 285, 286, 0, 288, 289, 290,
14258 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 0,
14259 : 299, 300, 301, 0, 0, 0, 0, 0, 0, 0,
14260 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 0,
14261 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
14262 : 320, 321, 322, 323, 0, 0, 324, 325, 326, 327,
14263 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
14264 : 336, 337, 0, 338, 339, 340, 341, 342, 343, 344,
14265 : 345, 346, 347, 0, 348, 0, 349, 350, 351, 352,
14266 : 353, 0, 354, 0, 355, 356, 0, 0, 0, 359,
14267 : 360, 361, 362, 0, 363, 364, 0, 365, 366, 367,
14268 : 0, 368, 369, 370, 371, 1153, 0, 374, 375, 376,
14269 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
14270 : 0, 386, 0, 388, 389, 390, 391, 392, 393, 394,
14271 : 0, 395, 0, 396, 0, 0, 399, 0, 401, 402,
14272 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
14273 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 420,
14274 : 0, 422, 0, 0, 424, 425, 426, 0, 0, 427,
14275 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
14276 : 438, 439, 440, 441, 442, 443, 444, 445, 446, 0,
14277 : 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
14278 : 458, 459, 0, 460, 461, 0, 463, 0, 464, 465,
14279 : 466, 467, 468, 469, 470, 0, 471, 472, 473, 0,
14280 : 0, 474, 475, 476, 0, 0, 477, 478, 479, 0,
14281 : 481, 0, 483, 484, 485, 486, 487, 488, 489, 490,
14282 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 499,
14283 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
14284 : 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
14285 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
14286 : 528, 529, 530, 531, 532, 0, 533, 534, 0, 536,
14287 : 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
14288 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
14289 : 556, 0, 557, 558, 559, 560, 561, 0, 563, 564,
14290 : 565, 566, 0, 567, 568, 569, 570, 571, 572, 573,
14291 : 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
14292 : 0, 584, 585, 0, 0, 586, 0, 588, 589, 590,
14293 : 591, 592, 593, 0, 594, 595, 596, 0, 0, 597,
14294 : 598, 599, 600, 601, 0, 602, 603, 604, 605, 606,
14295 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
14296 : 615, 0, 0, 616, 617, 618, 619, 620, 621, 622,
14297 : 0, 623, 0, 625, 626, 627, 628, 629, 0, 0,
14298 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
14299 : 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
14300 : 648, 649, 650, 658, 0, 0, 0, 0, 0, 0,
14301 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14302 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
14303 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
14304 : 247, 248, 249, 0, 250, 251, 252, 253, 0, 255,
14305 : 256, 257, 258, 259, 0, 261, 262, 0, 263, 264,
14306 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 272,
14307 : 273, 274, 0, 275, 276, 277, 278, 279, 0, 0,
14308 : 0, 281, 282, 283, 284, 285, 286, 0, 288, 289,
14309 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
14310 : 0, 299, 300, 301, 0, 0, 0, 0, 0, 0,
14311 : 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
14312 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
14313 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
14314 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
14315 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
14316 : 344, 345, 346, 347, 0, 348, 0, 349, 350, 351,
14317 : 352, 353, 0, 354, 0, 355, 356, 0, 0, 0,
14318 : 359, 360, 361, 362, 0, 363, 364, 0, 365, 366,
14319 : 367, 0, 368, 369, 370, 371, 1181, 0, 374, 375,
14320 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
14321 : 385, 0, 386, 0, 388, 389, 390, 391, 392, 393,
14322 : 394, 0, 395, 0, 396, 0, 0, 399, 0, 401,
14323 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
14324 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
14325 : 420, 0, 422, 0, 0, 424, 425, 426, 0, 0,
14326 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
14327 : 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
14328 : 0, 448, 449, 450, 451, 452, 453, 454, 455, 456,
14329 : 457, 458, 459, 0, 460, 461, 0, 463, 0, 464,
14330 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
14331 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 479,
14332 : 0, 481, 0, 483, 484, 485, 486, 487, 488, 489,
14333 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
14334 : 499, 500, 501, 502, 503, 504, 0, 505, 506, 507,
14335 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
14336 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
14337 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 0,
14338 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
14339 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
14340 : 555, 556, 0, 557, 558, 559, 560, 561, 0, 563,
14341 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
14342 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
14343 : 583, 0, 584, 585, 0, 0, 586, 0, 588, 589,
14344 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
14345 : 597, 598, 599, 600, 601, 0, 602, 603, 604, 605,
14346 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
14347 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 621,
14348 : 622, 0, 623, 0, 625, 626, 627, 628, 629, 0,
14349 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
14350 : 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
14351 : 647, 648, 649, 650, 658, 0, 0, 0, 0, 0,
14352 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14353 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
14354 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
14355 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
14356 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
14357 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
14358 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
14359 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
14360 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
14361 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
14362 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
14363 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
14364 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
14365 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
14366 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
14367 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
14368 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
14369 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
14370 : 366, 367, 0, 368, 369, 370, 371, 1183, 0, 374,
14371 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
14372 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
14373 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
14374 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
14375 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
14376 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
14377 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
14378 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
14379 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
14380 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
14381 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
14382 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
14383 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
14384 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
14385 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
14386 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
14387 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
14388 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
14389 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
14390 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
14391 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
14392 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
14393 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
14394 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
14395 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
14396 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
14397 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
14398 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
14399 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
14400 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
14401 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
14402 : 646, 647, 648, 649, 650, 658, 0, 0, 0, 0,
14403 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14404 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
14405 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 0,
14406 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
14407 : 0, 255, 256, 257, 258, 259, 0, 261, 262, 0,
14408 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
14409 : 271, 272, 273, 274, 0, 275, 276, 277, 278, 279,
14410 : 0, 0, 0, 281, 282, 283, 284, 285, 286, 0,
14411 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
14412 : 297, 0, 0, 299, 300, 301, 0, 0, 0, 0,
14413 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 309,
14414 : 310, 311, 0, 312, 0, 313, 314, 315, 316, 317,
14415 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
14416 : 325, 326, 327, 328, 0, 329, 330, 331, 332, 0,
14417 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
14418 : 342, 343, 344, 345, 346, 347, 0, 348, 0, 349,
14419 : 350, 351, 352, 353, 0, 354, 0, 355, 356, 0,
14420 : 0, 0, 359, 360, 361, 362, 0, 363, 364, 0,
14421 : 365, 366, 367, 0, 368, 369, 370, 371, 1193, 0,
14422 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
14423 : 383, 384, 385, 0, 386, 0, 388, 389, 390, 391,
14424 : 392, 393, 394, 0, 395, 0, 396, 0, 0, 399,
14425 : 0, 401, 402, 403, 404, 405, 406, 407, 408, 409,
14426 : 410, 411, 412, 413, 414, 415, 416, 417, 418, 0,
14427 : 0, 419, 420, 0, 422, 0, 0, 424, 425, 426,
14428 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
14429 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
14430 : 445, 446, 0, 448, 449, 450, 451, 452, 453, 454,
14431 : 455, 456, 457, 458, 459, 0, 460, 461, 0, 463,
14432 : 0, 464, 465, 466, 467, 468, 469, 470, 0, 471,
14433 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
14434 : 478, 479, 0, 481, 0, 483, 484, 485, 486, 487,
14435 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
14436 : 497, 498, 499, 500, 501, 502, 503, 504, 0, 505,
14437 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
14438 : 516, 517, 518, 519, 0, 520, 521, 522, 523, 524,
14439 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
14440 : 534, 0, 536, 537, 538, 539, 540, 541, 542, 543,
14441 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
14442 : 553, 554, 555, 556, 0, 557, 558, 559, 560, 561,
14443 : 0, 563, 564, 565, 566, 0, 567, 568, 569, 570,
14444 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
14445 : 581, 582, 583, 0, 584, 585, 0, 0, 586, 0,
14446 : 588, 589, 590, 591, 592, 593, 0, 594, 595, 596,
14447 : 0, 0, 597, 598, 599, 600, 601, 0, 602, 603,
14448 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
14449 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
14450 : 620, 621, 622, 0, 623, 0, 625, 626, 627, 628,
14451 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
14452 : 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
14453 : 645, 646, 647, 648, 649, 650, 658, 0, 0, 0,
14454 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14455 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
14456 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
14457 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
14458 : 253, 0, 255, 256, 257, 258, 259, 0, 261, 262,
14459 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
14460 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
14461 : 279, 0, 0, 0, 281, 282, 283, 284, 285, 286,
14462 : 0, 288, 289, 290, 291, 0, 292, 293, 294, 295,
14463 : 296, 297, 0, 0, 299, 300, 301, 0, 0, 0,
14464 : 0, 0, 0, 0, 303, 304, 305, 306, 307, 308,
14465 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
14466 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
14467 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
14468 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
14469 : 341, 342, 343, 344, 345, 346, 347, 0, 348, 0,
14470 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
14471 : 0, 0, 0, 359, 360, 361, 362, 0, 363, 364,
14472 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 1196,
14473 : 0, 374, 375, 376, 377, 0, 378, 379, 380, 381,
14474 : 382, 383, 384, 385, 0, 386, 0, 388, 389, 390,
14475 : 391, 392, 393, 394, 0, 395, 0, 396, 0, 0,
14476 : 399, 0, 401, 402, 403, 404, 405, 406, 407, 408,
14477 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
14478 : 0, 0, 419, 420, 0, 422, 0, 0, 424, 425,
14479 : 426, 0, 0, 427, 428, 429, 430, 431, 432, 433,
14480 : 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
14481 : 444, 445, 446, 0, 448, 449, 450, 451, 452, 453,
14482 : 454, 455, 456, 457, 458, 459, 0, 460, 461, 0,
14483 : 463, 0, 464, 465, 466, 467, 468, 469, 470, 0,
14484 : 471, 472, 473, 0, 0, 474, 475, 476, 0, 0,
14485 : 477, 478, 479, 0, 481, 0, 483, 484, 485, 486,
14486 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
14487 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 0,
14488 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
14489 : 515, 516, 517, 518, 519, 0, 520, 521, 522, 523,
14490 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
14491 : 533, 534, 0, 536, 537, 538, 539, 540, 541, 542,
14492 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
14493 : 552, 553, 554, 555, 556, 0, 557, 558, 559, 560,
14494 : 561, 0, 563, 564, 565, 566, 0, 567, 568, 569,
14495 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
14496 : 580, 581, 582, 583, 0, 584, 585, 0, 0, 586,
14497 : 0, 588, 589, 590, 591, 592, 593, 0, 594, 595,
14498 : 596, 0, 0, 597, 598, 599, 600, 601, 0, 602,
14499 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
14500 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
14501 : 619, 620, 621, 622, 0, 623, 0, 625, 626, 627,
14502 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
14503 : 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
14504 : 644, 645, 646, 647, 648, 649, 650, 658, 0, 0,
14505 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14506 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
14507 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
14508 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
14509 : 252, 253, 0, 255, 256, 257, 258, 259, 0, 261,
14510 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
14511 : 0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
14512 : 278, 279, 0, 0, 0, 281, 282, 283, 284, 285,
14513 : 286, 0, 288, 289, 290, 291, 0, 292, 293, 294,
14514 : 295, 296, 297, 0, 0, 299, 300, 301, 0, 0,
14515 : 0, 0, 0, 0, 0, 303, 304, 305, 306, 307,
14516 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
14517 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
14518 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
14519 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
14520 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
14521 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
14522 : 356, 0, 0, 0, 359, 360, 361, 362, 0, 363,
14523 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
14524 : 1199, 0, 374, 375, 376, 377, 0, 378, 379, 380,
14525 : 381, 382, 383, 384, 385, 0, 386, 0, 388, 389,
14526 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 0,
14527 : 0, 399, 0, 401, 402, 403, 404, 405, 406, 407,
14528 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
14529 : 418, 0, 0, 419, 420, 0, 422, 0, 0, 424,
14530 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
14531 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
14532 : 443, 444, 445, 446, 0, 448, 449, 450, 451, 452,
14533 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
14534 : 0, 463, 0, 464, 465, 466, 467, 468, 469, 470,
14535 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
14536 : 0, 477, 478, 479, 0, 481, 0, 483, 484, 485,
14537 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
14538 : 0, 496, 497, 498, 499, 500, 501, 502, 503, 504,
14539 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
14540 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
14541 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
14542 : 0, 533, 534, 0, 536, 537, 538, 539, 540, 541,
14543 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
14544 : 0, 552, 553, 554, 555, 556, 0, 557, 558, 559,
14545 : 560, 561, 0, 563, 564, 565, 566, 0, 567, 568,
14546 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
14547 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
14548 : 586, 0, 588, 589, 590, 591, 592, 593, 0, 594,
14549 : 595, 596, 0, 0, 597, 598, 599, 600, 601, 0,
14550 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
14551 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
14552 : 618, 619, 620, 621, 622, 0, 623, 0, 625, 626,
14553 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
14554 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
14555 : 643, 644, 645, 646, 647, 648, 649, 650, 658, 0,
14556 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14557 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
14558 : 240, 241, 242, 243, 0, 244, 245, 246, 0, 0,
14559 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
14560 : 251, 252, 253, 0, 255, 256, 257, 258, 259, 0,
14561 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
14562 : 0, 0, 842, 271, 272, 273, 274, 0, 275, 276,
14563 : 277, 278, 279, 0, 0, 0, 281, 282, 283, 284,
14564 : 285, 286, 0, 288, 289, 290, 291, 0, 292, 293,
14565 : 294, 295, 296, 297, 0, 0, 299, 300, 301, 0,
14566 : 0, 0, 0, 0, 0, 0, 303, 304, 305, 306,
14567 : 307, 308, 309, 310, 311, 0, 312, 0, 313, 314,
14568 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
14569 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
14570 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
14571 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 0,
14572 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
14573 : 355, 356, 0, 0, 0, 359, 360, 361, 362, 0,
14574 : 363, 364, 0, 365, 366, 367, 0, 368, 369, 370,
14575 : 371, 372, 0, 374, 375, 376, 377, 0, 378, 379,
14576 : 380, 381, 382, 383, 384, 385, 0, 386, 0, 388,
14577 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
14578 : 0, 0, 399, 0, 401, 402, 403, 404, 405, 406,
14579 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
14580 : 417, 418, 0, 0, 419, 420, 0, 422, 0, 0,
14581 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
14582 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
14583 : 442, 443, 444, 845, 446, 0, 448, 449, 450, 451,
14584 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
14585 : 461, 0, 463, 0, 464, 465, 466, 467, 468, 469,
14586 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
14587 : 0, 0, 477, 478, 479, 0, 481, 0, 483, 484,
14588 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
14589 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
14590 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
14591 : 513, 514, 515, 516, 517, 518, 519, 0, 520, 521,
14592 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
14593 : 532, 0, 533, 534, 0, 846, 537, 538, 539, 540,
14594 : 541, 542, 543, 544, 545, 847, 547, 548, 549, 550,
14595 : 551, 0, 552, 553, 554, 555, 1394, 0, 557, 558,
14596 : 559, 560, 561, 0, 563, 564, 565, 566, 0, 567,
14597 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
14598 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
14599 : 0, 586, 0, 588, 589, 590, 591, 592, 593, 0,
14600 : 594, 849, 596, 0, 0, 850, 598, 599, 600, 601,
14601 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
14602 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
14603 : 617, 618, 619, 620, 621, 622, 0, 623, 0, 625,
14604 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
14605 : 632, 633, 634, 635, 851, 637, 638, 639, 640, 641,
14606 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 658,
14607 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14608 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
14609 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
14610 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
14611 : 250, 251, 252, 253, 0, 255, 256, 257, 258, 259,
14612 : 0, 261, 262, 0, 263, 264, 265, 266, 267, 268,
14613 : 269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
14614 : 276, 277, 278, 279, 0, 0, 0, 281, 282, 283,
14615 : 284, 285, 286, 0, 288, 289, 290, 291, 0, 292,
14616 : 293, 294, 295, 296, 297, 0, 0, 299, 300, 301,
14617 : 0, 0, 0, 0, 0, 0, 0, 303, 304, 305,
14618 : 306, 307, 308, 309, 310, 311, 0, 312, 0, 313,
14619 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
14620 : 323, 0, 0, 324, 325, 326, 327, 328, 0, 329,
14621 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
14622 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
14623 : 0, 348, 0, 349, 350, 351, 352, 353, 0, 354,
14624 : 0, 355, 356, 0, 0, 0, 359, 360, 361, 362,
14625 : 0, 363, 364, 0, 365, 366, 367, 0, 368, 369,
14626 : 370, 371, 1872, 0, 374, 375, 376, 377, 0, 378,
14627 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 0,
14628 : 388, 389, 390, 391, 392, 393, 394, 0, 395, 0,
14629 : 396, 0, 0, 399, 0, 401, 402, 403, 404, 405,
14630 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
14631 : 416, 417, 418, 0, 0, 419, 420, 0, 422, 0,
14632 : 0, 424, 425, 426, 0, 0, 427, 428, 429, 430,
14633 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
14634 : 441, 442, 443, 444, 445, 446, 0, 448, 449, 450,
14635 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 0,
14636 : 460, 461, 0, 463, 0, 464, 465, 466, 467, 468,
14637 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
14638 : 476, 0, 0, 477, 478, 479, 0, 481, 0, 483,
14639 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
14640 : 494, 495, 0, 496, 497, 498, 499, 500, 501, 502,
14641 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
14642 : 512, 513, 514, 515, 516, 517, 518, 519, 0, 520,
14643 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
14644 : 531, 532, 0, 533, 534, 0, 536, 537, 538, 539,
14645 : 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
14646 : 550, 551, 0, 552, 553, 554, 555, 556, 0, 557,
14647 : 558, 559, 560, 561, 0, 563, 564, 565, 566, 0,
14648 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
14649 : 577, 578, 579, 580, 581, 582, 583, 0, 584, 585,
14650 : 0, 0, 586, 0, 588, 589, 590, 591, 592, 593,
14651 : 0, 594, 595, 596, 0, 0, 597, 598, 599, 600,
14652 : 601, 0, 602, 603, 604, 605, 606, 607, 608, 609,
14653 : 610, 0, 0, 611, 612, 613, 614, 615, 0, 0,
14654 : 616, 617, 618, 619, 620, 621, 622, 0, 623, 0,
14655 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
14656 : 631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
14657 : 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
14658 : 658, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14659 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
14660 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
14661 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
14662 : 0, 250, 251, 252, 253, 0, 255, 256, 257, 258,
14663 : 259, 0, 261, 262, 0, 263, 264, 265, 266, 267,
14664 : 268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
14665 : 275, 276, 277, 278, 279, 0, 0, 0, 281, 282,
14666 : 283, 284, 285, 286, 0, 288, 289, 290, 291, 0,
14667 : 292, 293, 294, 295, 296, 297, 0, 0, 299, 300,
14668 : 301, 0, 0, 0, 0, 0, 0, 0, 303, 304,
14669 : 305, 306, 307, 308, 309, 310, 311, 0, 312, 0,
14670 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
14671 : 322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
14672 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
14673 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
14674 : 347, 0, 348, 0, 349, 350, 351, 352, 353, 0,
14675 : 354, 0, 355, 356, 0, 0, 0, 359, 360, 361,
14676 : 362, 0, 363, 364, 0, 365, 366, 367, 0, 368,
14677 : 369, 370, 371, 1906, 0, 374, 375, 376, 377, 0,
14678 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
14679 : 0, 388, 389, 390, 391, 392, 393, 394, 0, 395,
14680 : 0, 396, 0, 0, 399, 0, 401, 402, 403, 404,
14681 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
14682 : 415, 416, 417, 418, 0, 0, 419, 420, 0, 422,
14683 : 0, 0, 424, 425, 426, 0, 0, 427, 428, 429,
14684 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
14685 : 440, 441, 442, 443, 444, 445, 446, 0, 448, 449,
14686 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
14687 : 0, 460, 461, 0, 463, 0, 464, 465, 466, 467,
14688 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
14689 : 475, 476, 0, 0, 477, 478, 479, 0, 481, 0,
14690 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
14691 : 493, 494, 495, 0, 496, 497, 498, 499, 500, 501,
14692 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
14693 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
14694 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
14695 : 530, 531, 532, 0, 533, 534, 0, 536, 537, 538,
14696 : 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
14697 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 0,
14698 : 557, 558, 559, 560, 561, 0, 563, 564, 565, 566,
14699 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
14700 : 576, 577, 578, 579, 580, 581, 582, 583, 0, 584,
14701 : 585, 0, 0, 586, 0, 588, 589, 590, 591, 592,
14702 : 593, 0, 594, 595, 596, 0, 0, 597, 598, 599,
14703 : 600, 601, 0, 602, 603, 604, 605, 606, 607, 608,
14704 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
14705 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
14706 : 0, 625, 626, 627, 628, 629, 0, 0, 630, 0,
14707 : 0, 631, 632, 633, 634, 635, 636, 637, 638, 639,
14708 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
14709 : 650, 658, 0, 0, 0, 0, 0, 0, 0, 0,
14710 : 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
14711 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
14712 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
14713 : 249, 0, 250, 251, 252, 253, 0, 255, 256, 257,
14714 : 258, 259, 0, 261, 262, 0, 263, 264, 265, 266,
14715 : 267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
14716 : 0, 275, 276, 277, 278, 279, 0, 0, 0, 281,
14717 : 282, 283, 284, 285, 286, 0, 288, 289, 290, 291,
14718 : 0, 292, 293, 294, 295, 296, 297, 0, 0, 299,
14719 : 300, 301, 0, 0, 0, 0, 0, 0, 0, 303,
14720 : 304, 305, 306, 307, 308, 309, 310, 311, 0, 312,
14721 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
14722 : 321, 322, 323, 0, 0, 324, 325, 326, 327, 328,
14723 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
14724 : 337, 0, 338, 339, 340, 341, 342, 343, 344, 345,
14725 : 346, 347, 0, 348, 0, 349, 350, 351, 352, 353,
14726 : 0, 354, 0, 355, 356, 0, 0, 0, 359, 360,
14727 : 361, 362, 0, 363, 364, 0, 365, 366, 367, 0,
14728 : 368, 369, 370, 371, 1908, 0, 374, 375, 376, 377,
14729 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
14730 : 386, 0, 388, 389, 390, 391, 392, 393, 394, 0,
14731 : 395, 0, 396, 0, 0, 399, 0, 401, 402, 403,
14732 : 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
14733 : 414, 415, 416, 417, 418, 0, 0, 419, 420, 0,
14734 : 422, 0, 0, 424, 425, 426, 0, 0, 427, 428,
14735 : 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
14736 : 439, 440, 441, 442, 443, 444, 445, 446, 0, 448,
14737 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
14738 : 459, 0, 460, 461, 0, 463, 0, 464, 465, 466,
14739 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
14740 : 474, 475, 476, 0, 0, 477, 478, 479, 0, 481,
14741 : 0, 483, 484, 485, 486, 487, 488, 489, 490, 491,
14742 : 492, 493, 494, 495, 0, 496, 497, 498, 499, 500,
14743 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
14744 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
14745 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
14746 : 529, 530, 531, 532, 0, 533, 534, 0, 536, 537,
14747 : 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
14748 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 556,
14749 : 0, 557, 558, 559, 560, 561, 0, 563, 564, 565,
14750 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
14751 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 0,
14752 : 584, 585, 0, 0, 586, 0, 588, 589, 590, 591,
14753 : 592, 593, 0, 594, 595, 596, 0, 0, 597, 598,
14754 : 599, 600, 601, 0, 602, 603, 604, 605, 606, 607,
14755 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
14756 : 0, 0, 616, 617, 618, 619, 620, 621, 622, 0,
14757 : 623, 0, 625, 626, 627, 628, 629, 0, 0, 630,
14758 : 0, 0, 631, 632, 633, 634, 635, 636, 637, 638,
14759 : 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
14760 : 649, 650, 658, 0, 0, 0, 0, 0, 0, 0,
14761 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
14762 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
14763 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
14764 : 248, 249, 0, 250, 251, 252, 253, 0, 255, 256,
14765 : 257, 258, 259, 0, 261, 262, 0, 263, 264, 265,
14766 : 266, 267, 268, 269, 0, 0, 270, 271, 272, 273,
14767 : 274, 0, 275, 276, 277, 278, 279, 0, 0, 0,
14768 : 281, 282, 283, 284, 285, 286, 0, 288, 289, 290,
14769 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 0,
14770 : 299, 300, 301, 0, 0, 0, 0, 0, 0, 0,
14771 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 0,
14772 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
14773 : 320, 321, 322, 323, 0, 0, 324, 325, 326, 327,
14774 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
14775 : 336, 337, 0, 338, 339, 340, 341, 342, 343, 344,
14776 : 345, 346, 347, 0, 348, 0, 349, 350, 351, 352,
14777 : 353, 0, 354, 0, 355, 356, 0, 0, 0, 359,
14778 : 360, 361, 362, 0, 363, 364, 0, 365, 366, 367,
14779 : 0, 368, 369, 370, 371, 1948, 0, 374, 375, 376,
14780 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
14781 : 0, 386, 0, 388, 389, 390, 391, 392, 393, 394,
14782 : 0, 395, 0, 396, 0, 0, 399, 0, 401, 402,
14783 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
14784 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 420,
14785 : 0, 422, 0, 0, 424, 425, 426, 0, 0, 427,
14786 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
14787 : 438, 439, 440, 441, 442, 443, 444, 445, 446, 0,
14788 : 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
14789 : 458, 459, 0, 460, 461, 0, 463, 0, 464, 465,
14790 : 466, 467, 468, 469, 470, 0, 471, 472, 473, 0,
14791 : 0, 474, 475, 476, 0, 0, 477, 478, 479, 0,
14792 : 481, 0, 483, 484, 485, 486, 487, 488, 489, 490,
14793 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 499,
14794 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
14795 : 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
14796 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
14797 : 528, 529, 530, 531, 532, 0, 533, 534, 0, 536,
14798 : 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
14799 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
14800 : 556, 0, 557, 558, 559, 560, 561, 0, 563, 564,
14801 : 565, 566, 0, 567, 568, 569, 570, 571, 572, 573,
14802 : 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
14803 : 0, 584, 585, 0, 0, 586, 0, 588, 589, 590,
14804 : 591, 592, 593, 0, 594, 595, 596, 0, 0, 597,
14805 : 598, 599, 600, 601, 0, 602, 603, 604, 605, 606,
14806 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
14807 : 615, 0, 0, 616, 617, 618, 619, 620, 621, 622,
14808 : 0, 623, 0, 625, 626, 627, 628, 629, 0, 0,
14809 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
14810 : 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
14811 : 648, 649, 650, 658, 0, 0, 0, 0, 0, 0,
14812 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14813 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
14814 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
14815 : 247, 248, 249, 0, 250, 251, 252, 253, 0, 255,
14816 : 256, 257, 258, 259, 0, 261, 262, 0, 263, 264,
14817 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 272,
14818 : 273, 274, 0, 275, 276, 277, 278, 279, 0, 0,
14819 : 0, 281, 282, 283, 284, 285, 286, 0, 288, 289,
14820 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
14821 : 0, 299, 300, 301, 0, 0, 0, 0, 0, 0,
14822 : 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
14823 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
14824 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
14825 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
14826 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
14827 : 344, 345, 346, 347, 0, 348, 0, 349, 350, 351,
14828 : 352, 353, 0, 354, 0, 355, 356, 0, 0, 0,
14829 : 359, 360, 361, 362, 0, 363, 364, 0, 365, 366,
14830 : 367, 0, 368, 369, 370, 371, 1950, 0, 374, 375,
14831 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
14832 : 385, 0, 386, 0, 388, 389, 390, 391, 392, 393,
14833 : 394, 0, 395, 0, 396, 0, 0, 399, 0, 401,
14834 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
14835 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
14836 : 420, 0, 422, 0, 0, 424, 425, 426, 0, 0,
14837 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
14838 : 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
14839 : 0, 448, 449, 450, 451, 452, 453, 454, 455, 456,
14840 : 457, 458, 459, 0, 460, 461, 0, 463, 0, 464,
14841 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
14842 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 479,
14843 : 0, 481, 0, 483, 484, 485, 486, 487, 488, 489,
14844 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
14845 : 499, 500, 501, 502, 503, 504, 0, 505, 506, 507,
14846 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
14847 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
14848 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 0,
14849 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
14850 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
14851 : 555, 556, 0, 557, 558, 559, 560, 561, 0, 563,
14852 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
14853 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
14854 : 583, 0, 584, 585, 0, 0, 586, 0, 588, 589,
14855 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
14856 : 597, 598, 599, 600, 601, 0, 602, 603, 604, 605,
14857 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
14858 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 621,
14859 : 622, 0, 623, 0, 625, 626, 627, 628, 629, 0,
14860 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
14861 : 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
14862 : 647, 648, 649, 650, 658, 0, 0, 0, 0, 0,
14863 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14864 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
14865 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
14866 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
14867 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
14868 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
14869 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
14870 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
14871 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
14872 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
14873 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
14874 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
14875 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
14876 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
14877 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
14878 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
14879 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
14880 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
14881 : 366, 367, 0, 368, 369, 370, 371, 1952, 0, 374,
14882 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
14883 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
14884 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
14885 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
14886 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
14887 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
14888 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
14889 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
14890 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
14891 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
14892 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
14893 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
14894 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
14895 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
14896 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
14897 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
14898 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
14899 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
14900 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
14901 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
14902 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
14903 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
14904 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
14905 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
14906 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
14907 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
14908 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
14909 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
14910 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
14911 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
14912 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
14913 : 646, 647, 648, 649, 650, 658, 0, 0, 0, 0,
14914 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14915 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
14916 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 0,
14917 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
14918 : 0, 255, 256, 257, 258, 259, 0, 261, 262, 0,
14919 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
14920 : 271, 272, 273, 274, 0, 275, 276, 277, 278, 279,
14921 : 0, 0, 0, 281, 282, 283, 284, 285, 286, 0,
14922 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
14923 : 297, 0, 0, 299, 300, 301, 0, 0, 0, 0,
14924 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 309,
14925 : 310, 311, 0, 312, 0, 313, 314, 315, 316, 317,
14926 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
14927 : 325, 326, 327, 328, 0, 329, 330, 331, 332, 0,
14928 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
14929 : 342, 343, 344, 345, 346, 347, 0, 348, 0, 349,
14930 : 350, 351, 352, 353, 0, 354, 0, 355, 356, 0,
14931 : 0, 0, 359, 360, 361, 362, 0, 363, 364, 0,
14932 : 365, 366, 367, 0, 368, 369, 370, 371, 372, 0,
14933 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
14934 : 383, 384, 385, 0, 386, 0, 388, 389, 390, 391,
14935 : 392, 393, 394, 0, 395, 0, 396, 0, 0, 399,
14936 : 0, 401, 402, 403, 404, 405, 406, 407, 408, 409,
14937 : 410, 411, 412, 413, 414, 415, 416, 417, 418, 0,
14938 : 0, 419, 420, 0, 422, 0, 0, 424, 425, 426,
14939 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
14940 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
14941 : 445, 446, 0, 448, 449, 450, 451, 452, 453, 454,
14942 : 455, 456, 457, 458, 459, 0, 460, 461, 0, 463,
14943 : 0, 464, 465, 466, 467, 468, 469, 470, 0, 471,
14944 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
14945 : 478, 479, 0, 481, 0, 483, 484, 485, 486, 487,
14946 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
14947 : 497, 498, 499, 500, 501, 502, 503, 504, 0, 505,
14948 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
14949 : 516, 517, 518, 519, 0, 520, 521, 522, 523, 524,
14950 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
14951 : 534, 0, 536, 537, 538, 539, 540, 541, 542, 543,
14952 : 2046, 545, 546, 547, 548, 549, 550, 551, 0, 552,
14953 : 553, 554, 555, 556, 0, 557, 558, 559, 560, 561,
14954 : 0, 563, 564, 565, 566, 0, 567, 568, 569, 570,
14955 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
14956 : 581, 582, 583, 0, 584, 585, 0, 0, 586, 0,
14957 : 588, 589, 590, 591, 592, 593, 0, 594, 595, 596,
14958 : 0, 0, 597, 598, 599, 600, 601, 0, 602, 603,
14959 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
14960 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
14961 : 620, 621, 622, 0, 623, 0, 625, 626, 627, 628,
14962 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
14963 : 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
14964 : 645, 646, 647, 648, 649, 650, 658, 0, 0, 0,
14965 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14966 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
14967 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
14968 : 0, 2723, 0, 247, 248, 249, 0, 250, 251, 252,
14969 : 253, 0, 255, 256, 257, 258, 259, 0, 261, 262,
14970 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
14971 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
14972 : 279, 0, 0, 0, 281, 282, 283, 284, 285, 286,
14973 : 0, 288, 289, 290, 291, 0, 292, 293, 294, 295,
14974 : 296, 297, 0, 0, 299, 300, 301, 0, 0, 0,
14975 : 0, 0, 0, 0, 303, 304, 305, 306, 307, 308,
14976 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
14977 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
14978 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
14979 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
14980 : 341, 342, 343, 344, 345, 346, 347, 0, 348, 0,
14981 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
14982 : 0, 0, 0, 359, 360, 361, 362, 0, 363, 364,
14983 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 372,
14984 : 0, 374, 375, 376, 377, 0, 378, 379, 380, 381,
14985 : 382, 383, 384, 385, 0, 386, 0, 388, 389, 390,
14986 : 391, 392, 393, 394, 0, 395, 0, 396, 0, 0,
14987 : 399, 0, 401, 402, 403, 404, 405, 406, 407, 408,
14988 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
14989 : 0, 0, 419, 420, 0, 422, 0, 0, 424, 425,
14990 : 426, 0, 0, 427, 428, 429, 430, 431, 432, 433,
14991 : 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
14992 : 444, 445, 446, 0, 448, 449, 450, 451, 452, 453,
14993 : 454, 455, 456, 457, 458, 459, 0, 460, 461, 0,
14994 : 463, 0, 464, 465, 466, 467, 468, 469, 470, 0,
14995 : 471, 472, 473, 0, 0, 474, 475, 476, 0, 0,
14996 : 477, 478, 479, 0, 481, 0, 483, 484, 485, 486,
14997 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
14998 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 0,
14999 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
15000 : 515, 516, 517, 518, 519, 0, 520, 521, 522, 523,
15001 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
15002 : 533, 534, 0, 536, 537, 538, 539, 540, 541, 542,
15003 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
15004 : 552, 553, 554, 555, 556, 0, 0, 558, 559, 560,
15005 : 561, 0, 563, 564, 565, 566, 0, 567, 568, 569,
15006 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
15007 : 580, 581, 582, 583, 0, 584, 585, 0, 0, 586,
15008 : 0, 588, 589, 590, 591, 592, 593, 0, 594, 595,
15009 : 596, 0, 0, 597, 598, 599, 600, 601, 0, 602,
15010 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
15011 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
15012 : 619, 620, 621, 622, 0, 623, 0, 625, 626, 627,
15013 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
15014 : 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
15015 : 644, 645, 646, 647, 648, 649, 650, 658, 0, 0,
15016 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15017 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
15018 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
15019 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
15020 : 252, 253, 0, 255, 256, 257, 258, 259, 0, 261,
15021 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
15022 : 0, 842, 271, 272, 273, 274, 0, 275, 276, 277,
15023 : 278, 279, 0, 0, 0, 281, 282, 283, 284, 285,
15024 : 286, 0, 288, 289, 290, 291, 0, 292, 293, 294,
15025 : 295, 296, 297, 0, 0, 299, 300, 301, 0, 0,
15026 : 0, 0, 0, 0, 0, 303, 304, 305, 306, 307,
15027 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
15028 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
15029 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
15030 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
15031 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
15032 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
15033 : 356, 0, 0, 0, 359, 360, 361, 362, 0, 363,
15034 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
15035 : 372, 0, 374, 375, 376, 377, 0, 378, 379, 380,
15036 : 381, 382, 383, 384, 385, 0, 386, 0, 388, 389,
15037 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 0,
15038 : 0, 399, 0, 401, 402, 403, 404, 405, 406, 407,
15039 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
15040 : 418, 0, 0, 419, 420, 0, 422, 0, 0, 424,
15041 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
15042 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
15043 : 443, 444, 845, 446, 0, 448, 449, 450, 451, 452,
15044 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
15045 : 0, 463, 0, 464, 465, 466, 467, 468, 469, 470,
15046 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
15047 : 0, 477, 478, 479, 0, 481, 0, 483, 484, 485,
15048 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
15049 : 0, 496, 497, 498, 499, 500, 501, 502, 503, 504,
15050 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
15051 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
15052 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
15053 : 0, 533, 534, 0, 846, 537, 538, 539, 540, 541,
15054 : 542, 543, 544, 545, 847, 547, 548, 549, 550, 551,
15055 : 0, 552, 553, 554, 555, 1394, 0, 557, 558, 559,
15056 : 560, 561, 0, 563, 564, 565, 566, 0, 567, 568,
15057 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
15058 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
15059 : 586, 0, 2757, 589, 590, 591, 592, 593, 0, 594,
15060 : 849, 596, 0, 0, 850, 598, 599, 600, 601, 0,
15061 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
15062 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
15063 : 618, 619, 620, 621, 622, 0, 623, 0, 625, 626,
15064 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
15065 : 633, 634, 635, 851, 637, 638, 639, 640, 641, 642,
15066 : 643, 644, 645, 646, 647, 648, 649, 650, 658, 0,
15067 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15068 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
15069 : 240, 241, 242, 243, 0, 244, 245, 246, 0, 0,
15070 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
15071 : 251, 252, 253, 0, 255, 256, 257, 258, 259, 0,
15072 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
15073 : 0, 0, 842, 271, 272, 273, 274, 0, 275, 276,
15074 : 277, 278, 279, 0, 0, 0, 281, 282, 283, 284,
15075 : 285, 286, 0, 288, 289, 290, 291, 0, 292, 293,
15076 : 294, 295, 296, 297, 0, 0, 299, 300, 301, 0,
15077 : 0, 0, 0, 0, 0, 0, 303, 304, 305, 306,
15078 : 307, 308, 309, 310, 311, 0, 312, 0, 313, 314,
15079 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
15080 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
15081 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
15082 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 0,
15083 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
15084 : 355, 356, 0, 0, 0, 359, 360, 361, 362, 0,
15085 : 363, 364, 0, 365, 366, 367, 0, 368, 369, 370,
15086 : 371, 372, 0, 374, 375, 376, 377, 0, 378, 379,
15087 : 380, 381, 382, 383, 384, 385, 0, 386, 0, 388,
15088 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
15089 : 0, 0, 399, 0, 401, 402, 403, 404, 405, 406,
15090 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
15091 : 417, 418, 0, 0, 419, 420, 0, 422, 0, 0,
15092 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
15093 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
15094 : 442, 443, 444, 845, 446, 0, 448, 449, 450, 451,
15095 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
15096 : 461, 0, 463, 0, 464, 465, 466, 467, 468, 469,
15097 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
15098 : 0, 0, 477, 478, 479, 0, 481, 0, 483, 484,
15099 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
15100 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
15101 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
15102 : 513, 514, 515, 516, 517, 518, 519, 0, 520, 521,
15103 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
15104 : 532, 0, 533, 534, 0, 846, 537, 538, 539, 540,
15105 : 541, 542, 543, 544, 545, 2819, 547, 548, 549, 550,
15106 : 551, 0, 552, 553, 554, 555, 2820, 0, 557, 558,
15107 : 559, 560, 561, 0, 563, 564, 565, 566, 0, 567,
15108 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
15109 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
15110 : 0, 586, 0, 588, 589, 590, 591, 592, 593, 0,
15111 : 594, 849, 596, 0, 0, 2821, 598, 599, 600, 601,
15112 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
15113 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
15114 : 617, 618, 619, 620, 621, 622, 0, 623, 0, 625,
15115 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
15116 : 632, 633, 634, 635, 851, 637, 638, 639, 640, 641,
15117 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 658,
15118 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15119 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
15120 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
15121 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
15122 : 250, 251, 252, 253, 0, 255, 256, 257, 258, 259,
15123 : 0, 261, 262, 0, 263, 264, 265, 266, 267, 268,
15124 : 269, 0, 0, 842, 271, 272, 273, 274, 0, 275,
15125 : 276, 277, 278, 279, 0, 0, 0, 281, 282, 283,
15126 : 284, 285, 286, 0, 288, 289, 290, 291, 0, 292,
15127 : 293, 294, 295, 296, 297, 0, 0, 299, 300, 301,
15128 : 0, 0, 0, 0, 0, 0, 0, 303, 304, 305,
15129 : 306, 307, 308, 309, 310, 311, 0, 312, 0, 313,
15130 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
15131 : 323, 0, 0, 324, 325, 326, 327, 328, 0, 329,
15132 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
15133 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
15134 : 0, 348, 0, 349, 350, 351, 352, 353, 0, 354,
15135 : 0, 355, 356, 0, 0, 0, 359, 360, 361, 362,
15136 : 0, 363, 364, 0, 365, 366, 367, 0, 368, 369,
15137 : 370, 371, 372, 0, 374, 375, 376, 377, 0, 378,
15138 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 0,
15139 : 388, 389, 390, 391, 392, 393, 394, 0, 395, 0,
15140 : 396, 0, 0, 399, 0, 401, 402, 403, 404, 405,
15141 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
15142 : 416, 417, 418, 0, 0, 419, 420, 0, 422, 0,
15143 : 0, 424, 425, 426, 0, 0, 427, 428, 429, 430,
15144 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
15145 : 441, 442, 443, 444, 845, 446, 0, 448, 449, 450,
15146 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 0,
15147 : 460, 461, 0, 463, 0, 464, 465, 466, 467, 468,
15148 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
15149 : 476, 0, 0, 477, 478, 479, 0, 481, 0, 483,
15150 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
15151 : 494, 495, 0, 496, 497, 498, 499, 500, 501, 502,
15152 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
15153 : 512, 513, 514, 515, 516, 517, 518, 519, 0, 520,
15154 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
15155 : 531, 532, 0, 533, 534, 0, 846, 537, 538, 539,
15156 : 540, 541, 542, 543, 544, 545, 2906, 547, 548, 549,
15157 : 550, 551, 0, 552, 553, 554, 555, 2820, 0, 557,
15158 : 558, 559, 560, 561, 0, 563, 564, 565, 566, 0,
15159 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
15160 : 577, 578, 579, 580, 581, 582, 583, 0, 584, 585,
15161 : 0, 0, 586, 0, 588, 589, 590, 591, 592, 593,
15162 : 0, 594, 849, 596, 0, 0, 2821, 598, 599, 600,
15163 : 601, 0, 602, 603, 604, 605, 606, 607, 608, 609,
15164 : 610, 0, 0, 611, 612, 613, 614, 615, 0, 0,
15165 : 616, 617, 618, 619, 620, 621, 622, 0, 623, 0,
15166 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
15167 : 631, 632, 633, 634, 635, 851, 637, 638, 639, 640,
15168 : 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
15169 : 658, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15170 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
15171 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
15172 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
15173 : 0, 250, 251, 252, 253, 0, 255, 256, 257, 258,
15174 : 259, 0, 261, 262, 0, 263, 264, 265, 266, 267,
15175 : 268, 269, 0, 0, 842, 271, 272, 273, 274, 0,
15176 : 275, 276, 277, 278, 279, 0, 0, 0, 281, 282,
15177 : 283, 284, 285, 286, 0, 288, 289, 290, 291, 0,
15178 : 292, 293, 294, 295, 296, 297, 0, 0, 299, 300,
15179 : 301, 0, 0, 0, 0, 0, 0, 0, 303, 304,
15180 : 305, 306, 307, 308, 309, 310, 311, 0, 312, 0,
15181 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
15182 : 322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
15183 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
15184 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
15185 : 347, 0, 348, 0, 349, 350, 351, 352, 353, 0,
15186 : 354, 0, 355, 356, 0, 0, 0, 359, 360, 361,
15187 : 362, 0, 363, 364, 0, 365, 366, 367, 0, 368,
15188 : 369, 370, 371, 372, 0, 374, 375, 376, 377, 0,
15189 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
15190 : 0, 388, 389, 390, 391, 392, 393, 394, 0, 395,
15191 : 0, 396, 0, 0, 399, 0, 401, 402, 403, 404,
15192 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
15193 : 415, 416, 417, 418, 0, 0, 419, 420, 0, 422,
15194 : 0, 0, 424, 425, 426, 0, 0, 427, 428, 429,
15195 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
15196 : 440, 441, 442, 443, 444, 845, 446, 0, 448, 449,
15197 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
15198 : 0, 460, 461, 0, 463, 0, 464, 465, 466, 467,
15199 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
15200 : 475, 476, 0, 0, 477, 478, 479, 0, 481, 0,
15201 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
15202 : 493, 494, 495, 0, 496, 497, 498, 499, 500, 501,
15203 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
15204 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
15205 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
15206 : 530, 531, 532, 0, 533, 534, 0, 846, 537, 538,
15207 : 539, 540, 541, 542, 543, 544, 545, 2930, 547, 548,
15208 : 549, 550, 551, 0, 552, 553, 554, 555, 2820, 0,
15209 : 557, 558, 559, 560, 561, 0, 563, 564, 565, 566,
15210 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
15211 : 576, 577, 578, 579, 580, 581, 582, 583, 0, 584,
15212 : 585, 0, 0, 586, 0, 588, 589, 590, 591, 592,
15213 : 593, 0, 594, 849, 596, 0, 0, 2821, 598, 599,
15214 : 600, 601, 0, 602, 603, 604, 605, 606, 607, 608,
15215 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
15216 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
15217 : 0, 625, 626, 627, 628, 629, 0, 0, 630, 0,
15218 : 0, 631, 632, 633, 634, 635, 851, 637, 638, 639,
15219 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
15220 : 650, 658, 0, 0, 0, 0, 0, 0, 0, 0,
15221 : 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
15222 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
15223 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
15224 : 249, 0, 250, 251, 252, 253, 0, 255, 256, 257,
15225 : 258, 259, 0, 261, 262, 0, 263, 264, 265, 266,
15226 : 267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
15227 : 0, 275, 276, 277, 278, 279, 0, 0, 0, 281,
15228 : 282, 283, 284, 285, 286, 0, 288, 289, 290, 291,
15229 : 0, 292, 293, 294, 295, 296, 297, 0, 0, 299,
15230 : 300, 301, 0, 0, 0, 0, 0, 0, 0, 303,
15231 : 304, 305, 306, 307, 308, 309, 310, 311, 0, 312,
15232 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
15233 : 321, 322, 323, 0, 0, 324, 325, 326, 327, 328,
15234 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
15235 : 337, 0, 338, 339, 340, 341, 342, 343, 344, 345,
15236 : 346, 347, 0, 348, 0, 349, 350, 351, 352, 353,
15237 : 0, 354, 0, 355, 356, 0, 0, 0, 359, 360,
15238 : 361, 362, 0, 363, 364, 0, 365, 366, 367, 0,
15239 : 368, 369, 370, 371, 3124, 0, 374, 375, 376, 377,
15240 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
15241 : 386, 0, 388, 389, 390, 391, 392, 393, 394, 0,
15242 : 395, 0, 396, 0, 0, 399, 0, 401, 402, 403,
15243 : 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
15244 : 414, 415, 416, 417, 418, 0, 0, 419, 420, 0,
15245 : 422, 0, 0, 424, 425, 426, 0, 0, 427, 428,
15246 : 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
15247 : 439, 440, 441, 442, 443, 444, 445, 446, 0, 448,
15248 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
15249 : 459, 0, 460, 461, 0, 463, 0, 464, 465, 466,
15250 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
15251 : 474, 475, 476, 0, 0, 477, 478, 479, 0, 481,
15252 : 0, 483, 484, 485, 486, 487, 488, 489, 490, 491,
15253 : 492, 493, 494, 495, 0, 496, 497, 498, 499, 500,
15254 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
15255 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
15256 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
15257 : 529, 530, 531, 532, 0, 533, 534, 0, 536, 537,
15258 : 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
15259 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 556,
15260 : 0, 557, 558, 559, 560, 561, 0, 563, 564, 565,
15261 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
15262 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 0,
15263 : 584, 585, 0, 0, 586, 0, 588, 589, 590, 591,
15264 : 592, 593, 0, 594, 595, 596, 0, 0, 597, 598,
15265 : 599, 600, 601, 0, 602, 603, 604, 605, 606, 607,
15266 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
15267 : 0, 0, 616, 617, 618, 619, 620, 621, 622, 0,
15268 : 623, 0, 625, 626, 627, 628, 629, 0, 0, 630,
15269 : 0, 0, 631, 632, 633, 634, 635, 636, 637, 638,
15270 : 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
15271 : 649, 650, 658, 0, 0, 0, 0, 0, 0, 0,
15272 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
15273 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
15274 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
15275 : 248, 249, 0, 250, 251, 252, 253, 0, 255, 256,
15276 : 257, 258, 259, 0, 261, 262, 0, 263, 264, 265,
15277 : 266, 267, 268, 269, 0, 0, 270, 271, 272, 273,
15278 : 274, 0, 275, 276, 277, 278, 279, 0, 0, 0,
15279 : 281, 282, 283, 284, 285, 286, 0, 288, 289, 290,
15280 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 0,
15281 : 299, 300, 301, 0, 0, 0, 0, 0, 0, 0,
15282 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 0,
15283 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
15284 : 320, 321, 322, 323, 0, 0, 324, 325, 326, 327,
15285 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
15286 : 336, 337, 0, 338, 339, 340, 341, 342, 343, 344,
15287 : 345, 346, 347, 0, 348, 0, 349, 350, 351, 352,
15288 : 353, 0, 354, 0, 355, 356, 0, 0, 0, 359,
15289 : 360, 361, 362, 0, 363, 364, 0, 365, 366, 367,
15290 : 0, 368, 369, 370, 371, 3128, 0, 374, 375, 376,
15291 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
15292 : 0, 386, 0, 388, 389, 390, 391, 392, 393, 394,
15293 : 0, 395, 0, 396, 0, 0, 399, 0, 401, 402,
15294 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
15295 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 420,
15296 : 0, 422, 0, 0, 424, 425, 426, 0, 0, 427,
15297 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
15298 : 438, 439, 440, 441, 442, 443, 444, 445, 446, 0,
15299 : 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
15300 : 458, 459, 0, 460, 461, 0, 463, 0, 464, 465,
15301 : 466, 467, 468, 469, 470, 0, 471, 472, 473, 0,
15302 : 0, 474, 475, 476, 0, 0, 477, 478, 479, 0,
15303 : 481, 0, 483, 484, 485, 486, 487, 488, 489, 490,
15304 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 499,
15305 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
15306 : 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
15307 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
15308 : 528, 529, 530, 531, 532, 0, 533, 534, 0, 536,
15309 : 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
15310 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
15311 : 556, 0, 557, 558, 559, 560, 561, 0, 563, 564,
15312 : 565, 566, 0, 567, 568, 569, 570, 571, 572, 573,
15313 : 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
15314 : 0, 584, 585, 0, 0, 586, 0, 588, 589, 590,
15315 : 591, 592, 593, 0, 594, 595, 596, 0, 0, 597,
15316 : 598, 599, 600, 601, 0, 602, 603, 604, 605, 606,
15317 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
15318 : 615, 0, 0, 616, 617, 618, 619, 620, 621, 622,
15319 : 0, 623, 0, 625, 626, 627, 628, 629, 0, 0,
15320 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
15321 : 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
15322 : 648, 649, 650, 658, 0, 0, 0, 0, 0, 0,
15323 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15324 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
15325 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
15326 : 247, 248, 249, 0, 250, 251, 252, 253, 0, 255,
15327 : 256, 257, 258, 259, 0, 261, 262, 0, 263, 264,
15328 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 272,
15329 : 273, 274, 0, 275, 276, 277, 278, 279, 0, 0,
15330 : 0, 281, 282, 283, 284, 285, 286, 0, 288, 289,
15331 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
15332 : 0, 299, 300, 301, 0, 0, 0, 0, 0, 0,
15333 : 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
15334 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
15335 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
15336 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
15337 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
15338 : 344, 345, 346, 347, 0, 348, 0, 349, 350, 351,
15339 : 352, 353, 0, 354, 0, 355, 356, 0, 0, 0,
15340 : 359, 360, 361, 362, 0, 363, 364, 0, 365, 366,
15341 : 367, 0, 368, 369, 370, 371, 3186, 0, 374, 375,
15342 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
15343 : 385, 0, 386, 0, 388, 389, 390, 391, 392, 393,
15344 : 394, 0, 395, 0, 396, 0, 0, 399, 0, 401,
15345 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
15346 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
15347 : 420, 0, 422, 0, 0, 424, 425, 426, 0, 0,
15348 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
15349 : 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
15350 : 0, 448, 449, 450, 451, 452, 453, 454, 455, 456,
15351 : 457, 458, 459, 0, 460, 461, 0, 463, 0, 464,
15352 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
15353 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 479,
15354 : 0, 481, 0, 483, 484, 485, 486, 487, 488, 489,
15355 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
15356 : 499, 500, 501, 502, 503, 504, 0, 505, 506, 507,
15357 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
15358 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
15359 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 0,
15360 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
15361 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
15362 : 555, 556, 0, 557, 558, 559, 560, 561, 0, 563,
15363 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
15364 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
15365 : 583, 0, 584, 585, 0, 0, 586, 0, 588, 589,
15366 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
15367 : 597, 598, 599, 600, 601, 0, 602, 603, 604, 605,
15368 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
15369 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 621,
15370 : 622, 0, 623, 0, 625, 626, 627, 628, 629, 0,
15371 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
15372 : 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
15373 : 647, 648, 649, 650, 658, 0, 0, 0, 0, 0,
15374 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15375 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
15376 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
15377 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
15378 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
15379 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
15380 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
15381 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
15382 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
15383 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
15384 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
15385 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
15386 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
15387 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
15388 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
15389 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
15390 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
15391 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
15392 : 366, 367, 0, 368, 369, 370, 371, 3577, 0, 374,
15393 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
15394 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
15395 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
15396 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
15397 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
15398 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
15399 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
15400 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
15401 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
15402 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
15403 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
15404 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
15405 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
15406 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
15407 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
15408 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
15409 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
15410 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
15411 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
15412 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
15413 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
15414 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
15415 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
15416 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
15417 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
15418 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
15419 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
15420 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
15421 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
15422 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
15423 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
15424 : 646, 647, 648, 649, 650, 658, 0, 0, 0, 0,
15425 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15426 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
15427 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 0,
15428 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
15429 : 0, 255, 256, 257, 258, 259, 0, 261, 262, 0,
15430 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 842,
15431 : 271, 272, 273, 274, 0, 275, 276, 277, 278, 279,
15432 : 0, 0, 0, 281, 282, 283, 284, 285, 286, 0,
15433 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
15434 : 297, 0, 0, 299, 300, 301, 0, 0, 0, 0,
15435 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 309,
15436 : 310, 311, 0, 312, 0, 313, 314, 315, 316, 317,
15437 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
15438 : 325, 326, 327, 328, 0, 329, 330, 331, 332, 0,
15439 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
15440 : 342, 343, 344, 345, 346, 347, 0, 348, 0, 349,
15441 : 350, 351, 352, 353, 0, 354, 0, 355, 356, 0,
15442 : 0, 0, 359, 360, 361, 362, 0, 363, 364, 0,
15443 : 365, 366, 367, 0, 368, 369, 370, 371, 372, 0,
15444 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
15445 : 383, 384, 385, 0, 386, 0, 388, 389, 390, 391,
15446 : 392, 393, 394, 0, 395, 0, 396, 0, 0, 399,
15447 : 0, 401, 402, 403, 404, 405, 406, 407, 408, 409,
15448 : 410, 411, 412, 413, 414, 415, 416, 417, 418, 0,
15449 : 0, 419, 420, 0, 422, 0, 0, 424, 425, 426,
15450 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
15451 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
15452 : 845, 446, 0, 448, 449, 450, 451, 452, 453, 454,
15453 : 455, 456, 457, 458, 459, 0, 460, 461, 0, 463,
15454 : 0, 464, 465, 466, 467, 468, 469, 470, 0, 471,
15455 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
15456 : 478, 479, 0, 481, 0, 483, 484, 485, 486, 487,
15457 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
15458 : 497, 498, 499, 500, 501, 502, 503, 504, 0, 505,
15459 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
15460 : 516, 517, 518, 519, 0, 520, 521, 522, 523, 524,
15461 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
15462 : 534, 0, 846, 537, 538, 539, 540, 541, 542, 543,
15463 : 544, 545, 847, 547, 548, 549, 550, 551, 0, 552,
15464 : 553, 554, 555, 2820, 0, 557, 558, 559, 560, 561,
15465 : 0, 563, 564, 565, 566, 0, 567, 568, 569, 570,
15466 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
15467 : 581, 582, 583, 0, 584, 585, 0, 0, 586, 0,
15468 : 588, 589, 590, 591, 592, 593, 0, 594, 849, 596,
15469 : 0, 0, 2821, 598, 599, 600, 601, 0, 602, 603,
15470 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
15471 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
15472 : 620, 621, 622, 0, 623, 0, 625, 626, 627, 628,
15473 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
15474 : 635, 851, 637, 638, 639, 640, 641, 642, 643, 644,
15475 : 645, 646, 647, 648, 649, 650, 658, 0, 0, 0,
15476 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15477 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
15478 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
15479 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
15480 : 253, 0, 255, 256, 257, 258, 259, 0, 261, 262,
15481 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
15482 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
15483 : 279, 0, 0, 0, 281, 282, 283, 284, 285, 286,
15484 : 0, 288, 289, 290, 291, 0, 292, 293, 294, 295,
15485 : 296, 297, 0, 0, 299, 300, 301, 0, 0, 0,
15486 : 0, 0, 0, 0, 303, 304, 305, 306, 307, 308,
15487 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
15488 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
15489 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
15490 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
15491 : 341, 342, 343, 344, 345, 346, 347, 0, 348, 0,
15492 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
15493 : 0, 0, 0, 359, 360, 361, 362, 0, 363, 364,
15494 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 3635,
15495 : 0, 374, 375, 376, 377, 0, 378, 379, 380, 381,
15496 : 382, 383, 384, 385, 0, 386, 0, 388, 389, 390,
15497 : 391, 392, 393, 394, 0, 395, 0, 396, 0, 0,
15498 : 399, 0, 401, 402, 403, 404, 405, 406, 407, 408,
15499 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
15500 : 0, 0, 419, 420, 0, 422, 0, 0, 424, 425,
15501 : 426, 0, 0, 427, 428, 429, 430, 431, 432, 433,
15502 : 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
15503 : 444, 445, 446, 0, 448, 449, 450, 451, 452, 453,
15504 : 454, 455, 456, 457, 458, 459, 0, 460, 461, 0,
15505 : 463, 0, 464, 465, 466, 467, 468, 469, 470, 0,
15506 : 471, 472, 473, 0, 0, 474, 475, 476, 0, 0,
15507 : 477, 478, 479, 0, 481, 0, 483, 484, 485, 486,
15508 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
15509 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 0,
15510 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
15511 : 515, 516, 517, 518, 519, 0, 520, 521, 522, 523,
15512 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
15513 : 533, 534, 0, 536, 537, 538, 539, 540, 541, 542,
15514 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
15515 : 552, 553, 554, 555, 556, 0, 557, 558, 559, 560,
15516 : 561, 0, 563, 564, 565, 566, 0, 567, 568, 569,
15517 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
15518 : 580, 581, 582, 583, 0, 584, 585, 0, 0, 586,
15519 : 0, 588, 589, 590, 591, 592, 593, 0, 594, 595,
15520 : 596, 0, 0, 597, 598, 599, 600, 601, 0, 602,
15521 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
15522 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
15523 : 619, 620, 621, 622, 0, 623, 0, 625, 626, 627,
15524 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
15525 : 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
15526 : 644, 645, 646, 647, 648, 649, 650, 658, 0, 0,
15527 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15528 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
15529 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
15530 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
15531 : 252, 253, 0, 255, 256, 257, 258, 259, 0, 261,
15532 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
15533 : 0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
15534 : 278, 279, 0, 0, 0, 281, 282, 283, 284, 285,
15535 : 286, 0, 288, 289, 290, 291, 0, 292, 293, 294,
15536 : 295, 296, 297, 0, 0, 299, 300, 301, 0, 0,
15537 : 0, 0, 0, 0, 0, 303, 304, 305, 306, 307,
15538 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
15539 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
15540 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
15541 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
15542 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
15543 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
15544 : 356, 0, 0, 0, 359, 360, 361, 362, 0, 363,
15545 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
15546 : 3658, 0, 374, 375, 376, 377, 0, 378, 379, 380,
15547 : 381, 382, 383, 384, 385, 0, 386, 0, 388, 389,
15548 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 0,
15549 : 0, 399, 0, 401, 402, 403, 404, 405, 406, 407,
15550 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
15551 : 418, 0, 0, 419, 420, 0, 422, 0, 0, 424,
15552 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
15553 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
15554 : 443, 444, 445, 446, 0, 448, 449, 450, 451, 452,
15555 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
15556 : 0, 463, 0, 464, 465, 466, 467, 468, 469, 470,
15557 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
15558 : 0, 477, 478, 479, 0, 481, 0, 483, 484, 485,
15559 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
15560 : 0, 496, 497, 498, 499, 500, 501, 502, 503, 504,
15561 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
15562 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
15563 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
15564 : 0, 533, 534, 0, 536, 537, 538, 539, 540, 541,
15565 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
15566 : 0, 552, 553, 554, 555, 556, 0, 557, 558, 559,
15567 : 560, 561, 0, 563, 564, 565, 566, 0, 567, 568,
15568 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
15569 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
15570 : 586, 0, 588, 589, 590, 591, 592, 593, 0, 594,
15571 : 595, 596, 0, 0, 597, 598, 599, 600, 601, 0,
15572 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
15573 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
15574 : 618, 619, 620, 621, 622, 0, 623, 0, 625, 626,
15575 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
15576 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
15577 : 643, 644, 645, 646, 647, 648, 649, 650, 658, 0,
15578 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15579 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
15580 : 240, 241, 242, 243, 0, 244, 245, 246, 0, 0,
15581 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
15582 : 251, 252, 253, 0, 255, 256, 257, 258, 259, 0,
15583 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
15584 : 0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
15585 : 277, 278, 279, 0, 0, 0, 281, 282, 283, 284,
15586 : 285, 286, 0, 288, 289, 290, 291, 0, 292, 293,
15587 : 294, 295, 296, 297, 0, 0, 299, 300, 301, 0,
15588 : 0, 0, 0, 0, 0, 0, 303, 304, 305, 306,
15589 : 307, 308, 309, 310, 311, 0, 312, 0, 313, 314,
15590 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
15591 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
15592 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
15593 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 0,
15594 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
15595 : 355, 356, 0, 0, 0, 359, 360, 361, 362, 0,
15596 : 363, 364, 0, 365, 366, 367, 0, 368, 369, 370,
15597 : 371, 3660, 0, 374, 375, 376, 377, 0, 378, 379,
15598 : 380, 381, 382, 383, 384, 385, 0, 386, 0, 388,
15599 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
15600 : 0, 0, 399, 0, 401, 402, 403, 404, 405, 406,
15601 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
15602 : 417, 418, 0, 0, 419, 420, 0, 422, 0, 0,
15603 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
15604 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
15605 : 442, 443, 444, 445, 446, 0, 448, 449, 450, 451,
15606 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
15607 : 461, 0, 463, 0, 464, 465, 466, 467, 468, 469,
15608 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
15609 : 0, 0, 477, 478, 479, 0, 481, 0, 483, 484,
15610 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
15611 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
15612 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
15613 : 513, 514, 515, 516, 517, 518, 519, 0, 520, 521,
15614 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
15615 : 532, 0, 533, 534, 0, 536, 537, 538, 539, 540,
15616 : 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
15617 : 551, 0, 552, 553, 554, 555, 556, 0, 557, 558,
15618 : 559, 560, 561, 0, 563, 564, 565, 566, 0, 567,
15619 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
15620 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
15621 : 0, 586, 0, 588, 589, 590, 591, 592, 593, 0,
15622 : 594, 595, 596, 0, 0, 597, 598, 599, 600, 601,
15623 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
15624 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
15625 : 617, 618, 619, 620, 621, 622, 0, 623, 0, 625,
15626 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
15627 : 632, 633, 634, 635, 636, 637, 638, 639, 640, 641,
15628 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 658,
15629 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15630 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
15631 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
15632 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
15633 : 250, 251, 252, 253, 0, 255, 256, 257, 258, 259,
15634 : 0, 261, 262, 0, 263, 264, 265, 266, 267, 268,
15635 : 269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
15636 : 276, 277, 278, 279, 0, 0, 0, 281, 282, 283,
15637 : 284, 285, 286, 0, 288, 289, 290, 291, 0, 292,
15638 : 293, 294, 295, 296, 297, 0, 0, 299, 300, 301,
15639 : 0, 0, 0, 0, 0, 0, 0, 303, 304, 305,
15640 : 306, 307, 308, 309, 310, 311, 0, 312, 0, 313,
15641 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
15642 : 323, 0, 0, 324, 325, 326, 327, 328, 0, 329,
15643 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
15644 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
15645 : 0, 348, 0, 349, 350, 351, 352, 353, 0, 354,
15646 : 0, 355, 356, 0, 0, 0, 359, 360, 361, 362,
15647 : 0, 363, 364, 0, 365, 366, 367, 0, 368, 369,
15648 : 370, 371, 3810, 0, 374, 375, 376, 377, 0, 378,
15649 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 0,
15650 : 388, 389, 390, 391, 392, 393, 394, 0, 395, 0,
15651 : 396, 0, 0, 399, 0, 401, 402, 403, 404, 405,
15652 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
15653 : 416, 417, 418, 0, 0, 419, 420, 0, 422, 0,
15654 : 0, 424, 425, 426, 0, 0, 427, 428, 429, 430,
15655 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
15656 : 441, 442, 443, 444, 445, 446, 0, 448, 449, 450,
15657 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 0,
15658 : 460, 461, 0, 463, 0, 464, 465, 466, 467, 468,
15659 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
15660 : 476, 0, 0, 477, 478, 479, 0, 481, 0, 483,
15661 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
15662 : 494, 495, 0, 496, 497, 498, 499, 500, 501, 502,
15663 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
15664 : 512, 513, 514, 515, 516, 517, 518, 519, 0, 520,
15665 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
15666 : 531, 532, 0, 533, 534, 0, 536, 537, 538, 539,
15667 : 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
15668 : 550, 551, 0, 552, 553, 554, 555, 556, 0, 557,
15669 : 558, 559, 560, 561, 0, 563, 564, 565, 566, 0,
15670 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
15671 : 577, 578, 579, 580, 581, 582, 583, 0, 584, 585,
15672 : 0, 0, 586, 0, 588, 589, 590, 591, 592, 593,
15673 : 0, 594, 595, 596, 0, 0, 597, 598, 599, 600,
15674 : 601, 0, 602, 603, 604, 605, 606, 607, 608, 609,
15675 : 610, 0, 0, 611, 612, 613, 614, 615, 0, 0,
15676 : 616, 617, 618, 619, 620, 621, 622, 0, 623, 0,
15677 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
15678 : 631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
15679 : 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
15680 : 658, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15681 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
15682 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
15683 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
15684 : 0, 250, 251, 252, 253, 0, 255, 256, 257, 258,
15685 : 259, 0, 261, 262, 0, 263, 264, 265, 266, 267,
15686 : 268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
15687 : 275, 276, 277, 278, 279, 0, 0, 0, 281, 282,
15688 : 283, 284, 285, 286, 0, 288, 289, 290, 291, 0,
15689 : 292, 293, 294, 295, 296, 297, 0, 0, 299, 300,
15690 : 301, 0, 0, 0, 0, 0, 0, 0, 303, 304,
15691 : 305, 306, 307, 308, 309, 310, 311, 0, 312, 0,
15692 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
15693 : 322, 323, 0, 0, 324, 3852, 326, 327, 328, 0,
15694 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
15695 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
15696 : 347, 0, 348, 0, 349, 350, 351, 352, 353, 0,
15697 : 354, 0, 355, 356, 0, 0, 0, 359, 360, 361,
15698 : 362, 0, 363, 364, 0, 365, 366, 367, 0, 368,
15699 : 369, 370, 371, 372, 0, 374, 375, 376, 377, 0,
15700 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
15701 : 0, 388, 389, 390, 391, 392, 393, 394, 0, 395,
15702 : 0, 396, 0, 0, 399, 0, 401, 402, 403, 404,
15703 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
15704 : 415, 416, 417, 418, 0, 0, 419, 420, 0, 422,
15705 : 0, 0, 424, 425, 426, 0, 0, 427, 428, 429,
15706 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
15707 : 440, 441, 442, 443, 444, 445, 446, 0, 448, 449,
15708 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
15709 : 0, 460, 461, 0, 463, 0, 464, 465, 466, 467,
15710 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
15711 : 475, 476, 0, 0, 477, 478, 479, 0, 481, 0,
15712 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
15713 : 493, 494, 495, 0, 496, 497, 498, 499, 500, 501,
15714 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
15715 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
15716 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
15717 : 530, 531, 532, 0, 533, 534, 0, 536, 537, 538,
15718 : 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
15719 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 0,
15720 : 557, 558, 559, 560, 561, 0, 563, 564, 565, 566,
15721 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
15722 : 576, 577, 578, 579, 580, 581, 582, 583, 0, 584,
15723 : 585, 0, 0, 586, 0, 588, 589, 590, 591, 592,
15724 : 593, 0, 594, 595, 596, 0, 0, 597, 598, 599,
15725 : 600, 601, 0, 602, 603, 604, 605, 606, 607, 608,
15726 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
15727 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
15728 : 0, 625, 626, 627, 628, 629, 0, 0, 630, 0,
15729 : 0, 631, 632, 633, 634, 635, 636, 637, 638, 639,
15730 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
15731 : 650, 658, 0, 0, 0, 0, 0, 0, 0, 0,
15732 : 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
15733 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
15734 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
15735 : 249, 0, 250, 251, 252, 253, 0, 255, 256, 257,
15736 : 258, 259, 0, 261, 262, 0, 263, 264, 265, 266,
15737 : 267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
15738 : 0, 275, 276, 277, 278, 279, 0, 0, 0, 281,
15739 : 282, 283, 284, 285, 286, 0, 288, 289, 290, 291,
15740 : 0, 292, 293, 294, 295, 296, 297, 0, 0, 299,
15741 : 300, 301, 0, 0, 0, 0, 0, 0, 0, 303,
15742 : 304, 305, 306, 307, 308, 309, 310, 311, 0, 312,
15743 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
15744 : 321, 322, 323, 0, 0, 324, 325, 326, 327, 328,
15745 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
15746 : 337, 0, 338, 339, 340, 341, 342, 343, 344, 345,
15747 : 346, 347, 0, 348, 0, 349, 350, 351, 352, 353,
15748 : 0, 354, 0, 355, 356, 0, 0, 0, 359, 360,
15749 : 361, 362, 0, 363, 364, 0, 365, 366, 367, 0,
15750 : 368, 369, 370, 371, 5122, 0, 374, 375, 376, 377,
15751 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
15752 : 386, 0, 388, 389, 390, 391, 392, 393, 394, 0,
15753 : 395, 0, 396, 0, 0, 399, 0, 401, 402, 403,
15754 : 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
15755 : 414, 415, 416, 417, 418, 0, 0, 419, 420, 0,
15756 : 422, 0, 0, 424, 425, 426, 0, 0, 427, 428,
15757 : 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
15758 : 439, 440, 441, 442, 443, 444, 445, 446, 0, 448,
15759 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
15760 : 459, 0, 460, 461, 0, 463, 0, 464, 465, 466,
15761 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
15762 : 474, 475, 476, 0, 0, 477, 478, 479, 0, 481,
15763 : 0, 483, 484, 485, 486, 487, 488, 489, 490, 491,
15764 : 492, 493, 494, 495, 0, 496, 497, 498, 499, 500,
15765 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
15766 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
15767 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
15768 : 529, 530, 531, 532, 0, 533, 534, 0, 536, 537,
15769 : 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
15770 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 556,
15771 : 0, 557, 558, 559, 560, 561, 0, 563, 564, 565,
15772 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
15773 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 0,
15774 : 584, 585, 0, 0, 586, 0, 588, 589, 590, 591,
15775 : 592, 593, 0, 594, 595, 596, 0, 0, 597, 598,
15776 : 599, 600, 601, 0, 602, 603, 604, 605, 606, 607,
15777 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
15778 : 0, 0, 616, 617, 618, 619, 620, 621, 622, 0,
15779 : 623, 0, 625, 626, 627, 628, 629, 0, 0, 630,
15780 : 0, 0, 631, 632, 633, 634, 635, 636, 637, 638,
15781 : 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
15782 : 649, 650, 658, 0, 0, 0, 0, 0, 0, 0,
15783 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
15784 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
15785 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
15786 : 248, 249, 0, 250, 251, 252, 253, 0, 255, 256,
15787 : 257, 258, 259, 0, 261, 262, 0, 263, 264, 265,
15788 : 266, 267, 268, 269, 0, 0, 270, 271, 272, 273,
15789 : 274, 0, 275, 276, 277, 278, 279, 0, 0, 0,
15790 : 281, 282, 283, 284, 285, 286, 0, 288, 289, 290,
15791 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 0,
15792 : 299, 300, 301, 0, 0, 0, 0, 0, 0, 0,
15793 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 0,
15794 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
15795 : 320, 321, 322, 323, 0, 0, 324, 325, 326, 327,
15796 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
15797 : 336, 337, 0, 338, 339, 340, 341, 342, 343, 344,
15798 : 345, 346, 347, 0, 348, 0, 349, 350, 351, 352,
15799 : 353, 0, 354, 0, 355, 356, 0, 0, 0, 359,
15800 : 360, 361, 362, 0, 363, 364, 0, 365, 366, 367,
15801 : 0, 368, 369, 370, 371, 372, 0, 374, 375, 376,
15802 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
15803 : 0, 386, 0, 388, 389, 390, 391, 392, 393, 394,
15804 : 0, 395, 0, 396, 0, 0, 399, 0, 401, 402,
15805 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
15806 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 420,
15807 : 0, 422, 0, 0, 424, 425, 426, 0, 0, 427,
15808 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
15809 : 438, 439, 440, 441, 442, 443, 444, 445, 446, 0,
15810 : 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
15811 : 458, 459, 0, 460, 461, 0, 463, 0, 464, 465,
15812 : 466, 467, 468, 469, 470, 0, 471, 472, 473, 0,
15813 : 0, 474, 475, 476, 0, 0, 477, 478, 479, 0,
15814 : 481, 0, 483, 484, 485, 486, 487, 488, 489, 490,
15815 : 491, 492, 493, 494, 5651, 0, 496, 497, 498, 499,
15816 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
15817 : 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
15818 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
15819 : 528, 529, 530, 531, 532, 0, 533, 534, 0, 536,
15820 : 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
15821 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
15822 : 556, 0, 557, 558, 559, 560, 561, 0, 563, 564,
15823 : 565, 566, 0, 567, 568, 569, 570, 571, 572, 573,
15824 : 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
15825 : 0, 584, 585, 0, 0, 586, 0, 588, 589, 590,
15826 : 591, 592, 593, 0, 594, 595, 596, 0, 0, 597,
15827 : 598, 599, 600, 601, 0, 602, 603, 604, 605, 606,
15828 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
15829 : 615, 0, 0, 616, 617, 618, 619, 620, 621, 622,
15830 : 0, 623, 0, 625, 626, 627, 628, 629, 0, 0,
15831 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
15832 : 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
15833 : 648, 649, 650, 658, 0, 0, 0, 0, 0, 0,
15834 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15835 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
15836 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
15837 : 247, 248, 249, 0, 250, 251, 252, 253, 0, 255,
15838 : 256, 257, 258, 259, 0, 261, 262, 0, 263, 264,
15839 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 272,
15840 : 273, 274, 0, 275, 276, 277, 278, 279, 0, 0,
15841 : 0, 281, 282, 283, 284, 285, 286, 0, 288, 289,
15842 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
15843 : 0, 299, 300, 301, 0, 0, 0, 0, 0, 0,
15844 : 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
15845 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
15846 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
15847 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
15848 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
15849 : 344, 345, 346, 347, 0, 348, 0, 349, 350, 351,
15850 : 352, 353, 0, 354, 0, 355, 356, 0, 0, 0,
15851 : 359, 360, 361, 362, 0, 363, 364, 0, 365, 366,
15852 : 367, 0, 368, 369, 370, 371, 372, 0, 374, 375,
15853 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
15854 : 385, 0, 386, 0, 388, 389, 390, 391, 392, 393,
15855 : 394, 0, 395, 0, 396, 0, 0, 399, 0, 401,
15856 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
15857 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
15858 : 420, 0, 422, 0, 0, 424, 425, 426, 0, 0,
15859 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
15860 : 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
15861 : 0, 448, 6367, 450, 451, 452, 453, 454, 455, 456,
15862 : 457, 458, 459, 0, 460, 461, 0, 463, 0, 464,
15863 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
15864 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 479,
15865 : 0, 481, 0, 483, 484, 485, 486, 487, 488, 489,
15866 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
15867 : 499, 500, 501, 502, 503, 504, 0, 505, 506, 507,
15868 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
15869 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
15870 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 0,
15871 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
15872 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
15873 : 555, 556, 0, 557, 558, 559, 560, 561, 0, 563,
15874 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
15875 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
15876 : 583, 0, 584, 585, 0, 0, 586, 0, 588, 589,
15877 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
15878 : 597, 598, 599, 600, 601, 0, 602, 603, 604, 605,
15879 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
15880 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 621,
15881 : 622, 0, 623, 0, 625, 626, 627, 628, 629, 0,
15882 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
15883 : 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
15884 : 647, 648, 649, 650, 658, 0, 0, 0, 0, 0,
15885 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15886 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
15887 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
15888 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
15889 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
15890 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
15891 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
15892 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
15893 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
15894 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
15895 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
15896 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
15897 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
15898 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
15899 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
15900 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
15901 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
15902 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
15903 : 0, 367, 0, 368, 369, 370, 371, 372, 0, 374,
15904 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
15905 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
15906 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
15907 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
15908 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
15909 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
15910 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
15911 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
15912 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
15913 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
15914 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
15915 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
15916 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
15917 : 489, 490, 0, 492, 493, 494, 495, 0, 496, 497,
15918 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
15919 : 507, 508, 509, 510, 511, 512, 513, 0, 515, 516,
15920 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
15921 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
15922 : 0, 536, 537, 538, 539, 540, 541, 0, 543, 544,
15923 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
15924 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
15925 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
15926 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
15927 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
15928 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
15929 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
15930 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
15931 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
15932 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
15933 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
15934 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
15935 : 646, 647, 648, 649, 650, 879, 0, 0, 0, 0,
15936 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15937 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
15938 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 0,
15939 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
15940 : 254, 255, 256, 257, 0, 880, 260, 881, 882, 0,
15941 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
15942 : 271, 883, 884, 274, 0, 275, 276, 277, 278, 0,
15943 : 0, 280, 0, 281, 282, 283, 284, 285, 286, 287,
15944 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
15945 : 297, 0, 298, 299, 300, 301, 0, 0, 0, 302,
15946 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 885,
15947 : 886, 311, 0, 312, 0, 313, 314, 315, 316, 317,
15948 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
15949 : 325, 887, 327, 328, 0, 329, 330, 331, 332, 0,
15950 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
15951 : 0, 343, 344, 345, 346, 0, 0, 348, 0, 349,
15952 : 350, 351, 888, 353, 0, 354, 0, 355, 356, 357,
15953 : 0, 358, 359, 360, 361, 362, 0, 363, 0, 0,
15954 : 0, 366, 367, 0, 368, 369, 370, 371, 372, 373,
15955 : 374, 375, 376, 377, 2731, 378, 379, 380, 381, 382,
15956 : 383, 384, 385, 0, 386, 387, 2732, 389, 390, 391,
15957 : 392, 889, 890, 0, 891, 0, 396, 397, 398, 399,
15958 : 400, 892, 0, 0, 0, 0, 0, 0, 0, 0,
15959 : 0, 0, 412, 413, 414, 415, 416, 417, 418, 0,
15960 : 0, 419, 0, 421, 422, 423, 0, 424, 425, 426,
15961 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
15962 : 435, 436, 0, 438, 439, 440, 441, 442, 443, 444,
15963 : 445, 893, 447, 894, 449, 450, 451, 452, 453, 454,
15964 : 455, 456, 0, 0, 459, 0, 460, 461, 462, 463,
15965 : 0, 0, 465, 895, 467, 468, 469, 470, 0, 471,
15966 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
15967 : 478, 2734, 480, 481, 482, 0, 484, 485, 486, 487,
15968 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
15969 : 497, 498, 0, 500, 0, 502, 503, 504, 0, 505,
15970 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
15971 : 896, 517, 518, 519, 0, 520, 521, 522, 523, 524,
15972 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
15973 : 534, 535, 536, 537, 538, 539, 540, 0, 542, 543,
15974 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
15975 : 553, 554, 555, 556, 0, 557, 558, 2735, 560, 561,
15976 : 562, 563, 564, 898, 566, 0, 567, 568, 569, 570,
15977 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
15978 : 581, 0, 583, 0, 584, 585, 0, 0, 586, 587,
15979 : 588, 589, 590, 591, 592, 593, 0, 594, 899, 900,
15980 : 0, 0, 597, 598, 0, 600, 0, 0, 602, 603,
15981 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
15982 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
15983 : 620, 0, 901, 2736, 623, 624, 625, 626, 627, 628,
15984 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
15985 : 635, 636, 879, 0, 0, 0, 0, 0, 0, 0,
15986 : 0, 0, 0, 648, 649, 650, 0, 0, 0, 235,
15987 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
15988 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
15989 : 248, 249, 0, 250, 251, 252, 253, 254, 255, 256,
15990 : 257, 0, 880, 260, 881, 882, 0, 263, 264, 265,
15991 : 266, 267, 268, 269, 0, 0, 270, 271, 883, 884,
15992 : 274, 0, 275, 276, 277, 278, 0, 0, 280, 0,
15993 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
15994 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 298,
15995 : 299, 300, 301, 0, 0, 0, 302, 0, 0, 0,
15996 : 303, 304, 305, 306, 307, 308, 885, 886, 311, 0,
15997 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
15998 : 320, 321, 322, 323, 0, 0, 324, 325, 887, 327,
15999 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
16000 : 336, 337, 0, 338, 339, 340, 341, 0, 343, 344,
16001 : 345, 346, 0, 0, 348, 0, 349, 350, 351, 888,
16002 : 353, 0, 354, 0, 355, 356, 357, 0, 358, 359,
16003 : 360, 361, 362, 0, 363, 0, 0, 0, 366, 367,
16004 : 0, 368, 369, 370, 371, 372, 373, 374, 375, 376,
16005 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
16006 : 0, 386, 387, 0, 389, 390, 391, 392, 889, 890,
16007 : 0, 891, 0, 396, 397, 398, 399, 400, 892, 0,
16008 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 412,
16009 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 0,
16010 : 421, 422, 423, 0, 424, 425, 426, 0, 0, 427,
16011 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 0,
16012 : 438, 439, 440, 441, 442, 443, 444, 445, 893, 447,
16013 : 894, 449, 450, 451, 452, 453, 454, 455, 456, 0,
16014 : 0, 459, 0, 460, 461, 462, 463, 2815, 0, 465,
16015 : 895, 467, 468, 469, 470, 0, 471, 472, 473, 0,
16016 : 0, 474, 475, 476, 0, 0, 477, 478, 0, 480,
16017 : 481, 482, 0, 484, 485, 486, 487, 488, 489, 490,
16018 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 0,
16019 : 500, 0, 502, 503, 504, 0, 505, 506, 507, 508,
16020 : 509, 510, 511, 512, 513, 514, 515, 896, 517, 518,
16021 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
16022 : 528, 529, 530, 531, 532, 0, 533, 534, 535, 536,
16023 : 537, 538, 539, 540, 0, 542, 543, 544, 545, 546,
16024 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
16025 : 556, 0, 557, 558, 2735, 560, 561, 562, 563, 564,
16026 : 898, 566, 0, 567, 568, 569, 570, 571, 572, 573,
16027 : 574, 575, 576, 577, 578, 579, 580, 581, 0, 583,
16028 : 0, 584, 585, 0, 4635, 586, 587, 588, 589, 590,
16029 : 591, 592, 593, 0, 594, 899, 900, 0, 0, 597,
16030 : 598, 0, 600, 0, 0, 602, 603, 604, 605, 606,
16031 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
16032 : 615, 0, 0, 616, 617, 618, 619, 620, 0, 901,
16033 : 0, 623, 624, 625, 626, 627, 628, 629, 0, 0,
16034 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 879,
16035 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
16036 : 648, 649, 650, 0, 0, 0, 235, 236, 237, 238,
16037 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
16038 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
16039 : 250, 251, 252, 253, 254, 255, 256, 257, 0, 880,
16040 : 260, 881, 882, 0, 263, 264, 265, 266, 267, 268,
16041 : 269, 0, 0, 270, 271, 883, 884, 274, 0, 275,
16042 : 276, 277, 278, 0, 0, 280, 0, 281, 282, 283,
16043 : 284, 285, 286, 287, 288, 289, 290, 291, 0, 292,
16044 : 293, 294, 295, 296, 297, 0, 298, 299, 300, 301,
16045 : 0, 0, 0, 302, 0, 0, 0, 303, 304, 305,
16046 : 306, 307, 308, 885, 886, 311, 0, 312, 0, 313,
16047 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
16048 : 323, 0, 0, 324, 325, 887, 327, 328, 0, 329,
16049 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
16050 : 338, 339, 340, 341, 0, 343, 344, 345, 346, 0,
16051 : 0, 348, 0, 349, 350, 351, 888, 353, 0, 354,
16052 : 0, 355, 356, 357, 0, 358, 359, 360, 361, 362,
16053 : 0, 363, 0, 0, 0, 366, 367, 0, 368, 369,
16054 : 370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
16055 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 387,
16056 : 0, 389, 390, 391, 392, 889, 890, 0, 891, 0,
16057 : 396, 397, 398, 399, 400, 892, 0, 0, 0, 0,
16058 : 0, 0, 0, 0, 0, 0, 412, 413, 414, 415,
16059 : 416, 417, 418, 0, 0, 419, 0, 421, 422, 423,
16060 : 0, 424, 425, 426, 0, 0, 427, 428, 429, 430,
16061 : 431, 432, 433, 434, 435, 436, 0, 438, 439, 440,
16062 : 441, 442, 443, 444, 445, 893, 447, 894, 449, 450,
16063 : 451, 452, 453, 454, 455, 456, 2896, 0, 459, 0,
16064 : 460, 461, 462, 463, 0, 0, 465, 895, 467, 468,
16065 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
16066 : 476, 0, 0, 477, 478, 0, 480, 481, 482, 0,
16067 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
16068 : 494, 495, 0, 496, 497, 498, 0, 500, 0, 502,
16069 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
16070 : 512, 513, 514, 515, 896, 517, 518, 519, 0, 520,
16071 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
16072 : 531, 532, 0, 533, 534, 535, 536, 537, 538, 539,
16073 : 540, 0, 542, 543, 544, 545, 546, 547, 548, 549,
16074 : 550, 551, 0, 552, 553, 554, 555, 556, 0, 557,
16075 : 558, 897, 560, 561, 562, 563, 564, 898, 566, 0,
16076 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
16077 : 577, 578, 579, 580, 581, 0, 583, 0, 584, 585,
16078 : 0, 0, 586, 587, 588, 589, 590, 591, 592, 593,
16079 : 0, 594, 899, 900, 0, 0, 597, 598, 0, 600,
16080 : 0, 0, 602, 603, 604, 605, 606, 607, 608, 609,
16081 : 610, 0, 0, 611, 612, 613, 614, 615, 0, 0,
16082 : 616, 617, 618, 619, 620, 0, 901, 0, 623, 624,
16083 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
16084 : 631, 632, 633, 634, 635, 636, 879, 0, 0, 0,
16085 : 0, 0, 0, 0, 0, 0, 0, 648, 649, 650,
16086 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
16087 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
16088 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
16089 : 253, 254, 255, 256, 257, 0, 880, 260, 881, 882,
16090 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
16091 : 270, 271, 883, 884, 274, 0, 275, 276, 277, 278,
16092 : 0, 0, 280, 0, 281, 282, 283, 284, 285, 286,
16093 : 287, 288, 289, 290, 291, 0, 292, 293, 294, 295,
16094 : 296, 297, 0, 298, 299, 300, 301, 0, 0, 0,
16095 : 302, 0, 0, 0, 303, 304, 305, 306, 307, 308,
16096 : 885, 886, 311, 0, 312, 0, 313, 314, 315, 316,
16097 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
16098 : 324, 325, 887, 327, 328, 0, 329, 330, 331, 332,
16099 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
16100 : 341, 0, 343, 344, 345, 346, 0, 0, 348, 0,
16101 : 349, 350, 351, 888, 353, 0, 354, 0, 355, 356,
16102 : 357, 0, 358, 359, 360, 361, 362, 0, 363, 0,
16103 : 0, 0, 366, 367, 0, 368, 369, 370, 371, 372,
16104 : 373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
16105 : 382, 383, 384, 385, 0, 386, 387, 0, 389, 390,
16106 : 391, 392, 889, 890, 0, 891, 0, 396, 397, 398,
16107 : 399, 400, 892, 0, 0, 0, 0, 0, 0, 0,
16108 : 0, 0, 0, 412, 413, 414, 415, 416, 417, 418,
16109 : 0, 0, 419, 0, 421, 422, 423, 0, 424, 425,
16110 : 426, 0, 0, 427, 428, 429, 430, 431, 432, 433,
16111 : 434, 435, 436, 0, 438, 439, 440, 441, 442, 443,
16112 : 444, 445, 893, 447, 894, 449, 450, 451, 452, 453,
16113 : 454, 455, 456, 4430, 0, 459, 0, 460, 461, 462,
16114 : 463, 0, 0, 465, 895, 467, 468, 469, 470, 0,
16115 : 471, 472, 473, 0, 0, 474, 475, 476, 0, 0,
16116 : 477, 478, 0, 480, 481, 482, 0, 484, 485, 486,
16117 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
16118 : 496, 497, 498, 0, 500, 0, 502, 503, 504, 0,
16119 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
16120 : 515, 896, 517, 518, 519, 0, 520, 521, 522, 523,
16121 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
16122 : 533, 534, 535, 536, 537, 538, 539, 540, 0, 542,
16123 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
16124 : 552, 553, 554, 555, 556, 0, 557, 558, 897, 560,
16125 : 561, 562, 563, 564, 898, 566, 0, 567, 568, 569,
16126 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
16127 : 580, 581, 0, 583, 0, 584, 585, 0, 0, 586,
16128 : 587, 588, 589, 590, 591, 592, 593, 0, 594, 899,
16129 : 900, 0, 0, 597, 598, 0, 600, 0, 0, 602,
16130 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
16131 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
16132 : 619, 620, 0, 901, 0, 623, 624, 625, 626, 627,
16133 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
16134 : 634, 635, 636, 879, 0, 0, 0, 0, 0, 0,
16135 : 0, 0, 0, 0, 648, 649, 650, 0, 0, 0,
16136 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
16137 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
16138 : 247, 248, 249, 0, 250, 251, 252, 253, 254, 255,
16139 : 256, 257, 0, 880, 260, 881, 882, 0, 263, 264,
16140 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 883,
16141 : 884, 274, 0, 275, 276, 277, 278, 0, 0, 280,
16142 : 0, 281, 282, 283, 284, 285, 286, 287, 288, 289,
16143 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
16144 : 298, 299, 300, 301, 0, 0, 0, 302, 0, 0,
16145 : 0, 303, 304, 305, 306, 307, 308, 885, 886, 311,
16146 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
16147 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 887,
16148 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
16149 : 335, 336, 337, 0, 338, 339, 340, 341, 0, 343,
16150 : 344, 345, 346, 0, 0, 348, 0, 349, 350, 351,
16151 : 888, 353, 6047, 354, 0, 355, 356, 357, 0, 358,
16152 : 359, 360, 361, 362, 0, 363, 0, 0, 0, 366,
16153 : 367, 0, 368, 369, 370, 371, 372, 373, 374, 375,
16154 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
16155 : 385, 0, 386, 387, 0, 389, 390, 391, 392, 889,
16156 : 890, 0, 891, 0, 396, 397, 398, 399, 400, 892,
16157 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
16158 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
16159 : 0, 421, 422, 423, 0, 424, 425, 426, 0, 0,
16160 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
16161 : 0, 438, 439, 440, 441, 442, 443, 444, 445, 893,
16162 : 447, 894, 449, 450, 451, 452, 453, 454, 455, 456,
16163 : 0, 0, 459, 0, 460, 461, 462, 463, 0, 0,
16164 : 465, 895, 467, 468, 469, 470, 0, 471, 472, 473,
16165 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 0,
16166 : 480, 481, 482, 0, 484, 485, 486, 487, 488, 489,
16167 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
16168 : 0, 500, 0, 502, 503, 504, 0, 505, 506, 507,
16169 : 508, 509, 510, 511, 512, 513, 514, 515, 896, 517,
16170 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
16171 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 535,
16172 : 536, 537, 538, 539, 540, 0, 542, 543, 544, 545,
16173 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
16174 : 555, 556, 0, 557, 558, 897, 560, 561, 562, 563,
16175 : 564, 898, 566, 0, 567, 568, 569, 570, 571, 572,
16176 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 0,
16177 : 583, 0, 584, 585, 0, 0, 586, 587, 588, 589,
16178 : 590, 591, 592, 593, 0, 594, 899, 900, 0, 0,
16179 : 597, 598, 0, 600, 0, 0, 602, 603, 604, 605,
16180 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
16181 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 0,
16182 : 901, 0, 623, 624, 625, 626, 627, 628, 629, 0,
16183 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
16184 : 879, 0, 0, 0, 0, 0, 0, 0, 0, 0,
16185 : 0, 648, 649, 650, 0, 0, 0, 235, 236, 237,
16186 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
16187 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
16188 : 0, 250, 251, 252, 253, 254, 255, 256, 257, 0,
16189 : 880, 260, 881, 882, 0, 263, 264, 265, 266, 267,
16190 : 268, 269, 0, 0, 270, 271, 883, 884, 274, 0,
16191 : 275, 276, 277, 278, 0, 0, 280, 0, 281, 282,
16192 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 0,
16193 : 292, 293, 294, 295, 296, 297, 0, 298, 299, 300,
16194 : 301, 0, 0, 0, 302, 0, 0, 0, 303, 304,
16195 : 305, 306, 307, 308, 885, 886, 311, 0, 312, 0,
16196 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
16197 : 322, 323, 0, 0, 324, 325, 887, 327, 328, 0,
16198 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
16199 : 0, 338, 339, 340, 341, 0, 343, 344, 345, 346,
16200 : 0, 0, 348, 0, 349, 350, 351, 888, 353, 6411,
16201 : 354, 0, 355, 356, 357, 0, 358, 359, 360, 361,
16202 : 362, 0, 363, 0, 0, 0, 366, 367, 0, 368,
16203 : 369, 370, 371, 372, 373, 374, 375, 376, 377, 0,
16204 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
16205 : 387, 0, 389, 390, 391, 392, 889, 890, 0, 891,
16206 : 0, 396, 397, 398, 399, 400, 892, 0, 0, 0,
16207 : 0, 0, 0, 0, 0, 0, 0, 412, 413, 414,
16208 : 415, 416, 417, 418, 0, 0, 419, 0, 421, 422,
16209 : 423, 0, 424, 425, 426, 0, 0, 427, 428, 429,
16210 : 430, 431, 432, 433, 434, 435, 436, 0, 438, 439,
16211 : 440, 441, 442, 443, 444, 445, 893, 447, 894, 449,
16212 : 450, 451, 452, 453, 454, 455, 456, 0, 0, 459,
16213 : 0, 460, 461, 462, 463, 0, 0, 465, 895, 467,
16214 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
16215 : 475, 476, 0, 0, 477, 478, 0, 480, 481, 482,
16216 : 0, 484, 485, 486, 487, 488, 489, 490, 491, 492,
16217 : 493, 494, 495, 0, 496, 497, 498, 0, 500, 0,
16218 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
16219 : 511, 512, 513, 514, 515, 896, 517, 518, 519, 0,
16220 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
16221 : 530, 531, 532, 0, 533, 534, 535, 536, 537, 538,
16222 : 539, 540, 0, 542, 543, 544, 545, 546, 547, 548,
16223 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 0,
16224 : 557, 558, 897, 560, 561, 562, 563, 564, 898, 566,
16225 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
16226 : 576, 577, 578, 579, 580, 581, 0, 583, 0, 584,
16227 : 585, 0, 0, 586, 587, 588, 589, 590, 591, 592,
16228 : 593, 0, 594, 899, 900, 0, 0, 597, 598, 0,
16229 : 600, 0, 0, 602, 603, 604, 605, 606, 607, 608,
16230 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
16231 : 0, 616, 617, 618, 619, 620, 0, 901, 0, 623,
16232 : 624, 625, 626, 627, 628, 629, 0, 0, 630, 0,
16233 : 0, 631, 632, 633, 634, 635, 636, 879, 0, 0,
16234 : 0, 0, 0, 0, 0, 0, 0, 0, 648, 649,
16235 : 650, 0, 0, 0, 235, 236, 237, 238, 239, 240,
16236 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
16237 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
16238 : 252, 253, 254, 255, 256, 257, 0, 880, 260, 881,
16239 : 882, 0, 263, 264, 265, 266, 267, 268, 269, 0,
16240 : 0, 270, 271, 883, 884, 274, 0, 275, 276, 277,
16241 : 278, 0, 0, 280, 0, 281, 282, 283, 284, 285,
16242 : 286, 287, 288, 289, 290, 291, 0, 292, 293, 294,
16243 : 295, 296, 297, 0, 298, 299, 300, 301, 0, 0,
16244 : 0, 302, 0, 0, 0, 303, 304, 305, 306, 307,
16245 : 308, 885, 886, 311, 0, 312, 0, 313, 314, 315,
16246 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
16247 : 0, 324, 325, 887, 327, 328, 0, 329, 330, 331,
16248 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
16249 : 340, 341, 0, 343, 344, 345, 346, 0, 0, 348,
16250 : 0, 349, 350, 351, 888, 353, 0, 354, 0, 355,
16251 : 356, 357, 0, 358, 359, 360, 361, 362, 0, 363,
16252 : 0, 0, 0, 366, 367, 0, 368, 369, 370, 371,
16253 : 372, 373, 374, 375, 376, 377, 0, 378, 379, 380,
16254 : 381, 382, 383, 384, 385, 0, 386, 387, 0, 389,
16255 : 390, 391, 392, 889, 890, 0, 891, 0, 396, 397,
16256 : 398, 399, 400, 892, 0, 0, 0, 0, 0, 0,
16257 : 0, 0, 0, 0, 412, 413, 414, 415, 416, 417,
16258 : 418, 0, 0, 419, 0, 421, 422, 423, 0, 424,
16259 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
16260 : 433, 434, 435, 436, 0, 438, 439, 440, 441, 442,
16261 : 443, 444, 445, 893, 447, 894, 449, 450, 451, 452,
16262 : 453, 454, 455, 456, 0, 0, 459, 0, 460, 461,
16263 : 462, 463, 0, 0, 465, 895, 467, 468, 469, 470,
16264 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
16265 : 0, 477, 478, 0, 480, 481, 482, 0, 484, 485,
16266 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
16267 : 0, 496, 497, 498, 0, 500, 0, 502, 503, 504,
16268 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
16269 : 514, 515, 896, 517, 518, 519, 0, 520, 521, 522,
16270 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
16271 : 0, 533, 534, 535, 536, 537, 538, 539, 540, 0,
16272 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
16273 : 0, 552, 553, 554, 555, 556, 0, 557, 558, 897,
16274 : 560, 561, 562, 563, 564, 898, 566, 0, 567, 568,
16275 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
16276 : 579, 580, 581, 0, 583, 0, 584, 585, 0, 0,
16277 : 586, 587, 588, 589, 590, 591, 592, 593, 0, 594,
16278 : 899, 900, 0, 0, 597, 598, 0, 600, 0, 0,
16279 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
16280 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
16281 : 618, 619, 620, 0, 901, 0, 623, 624, 625, 626,
16282 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
16283 : 633, 634, 635, 636, 879, 0, 0, 0, 0, 0,
16284 : 0, 0, 0, 0, 0, 648, 649, 650, 0, 0,
16285 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
16286 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
16287 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 254,
16288 : 255, 256, 257, 0, 880, 260, 881, 882, 0, 263,
16289 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
16290 : 883, 884, 274, 0, 275, 276, 277, 278, 0, 0,
16291 : 280, 0, 281, 282, 283, 284, 285, 286, 287, 288,
16292 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
16293 : 0, 298, 299, 300, 301, 0, 0, 0, 302, 0,
16294 : 0, 0, 303, 304, 305, 306, 307, 308, 885, 886,
16295 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
16296 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
16297 : 887, 327, 328, 0, 329, 330, 331, 332, 0, 333,
16298 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 0,
16299 : 343, 344, 345, 346, 0, 0, 348, 0, 349, 350,
16300 : 351, 888, 353, 0, 354, 0, 355, 356, 357, 0,
16301 : 358, 359, 360, 361, 362, 0, 363, 0, 0, 0,
16302 : 366, 367, 0, 368, 369, 370, 371, 1155, 373, 374,
16303 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
16304 : 384, 385, 0, 386, 387, 0, 389, 390, 391, 392,
16305 : 889, 890, 0, 891, 0, 396, 397, 398, 399, 400,
16306 : 892, 0, 0, 0, 0, 0, 0, 0, 0, 0,
16307 : 0, 412, 413, 414, 415, 416, 417, 418, 0, 0,
16308 : 419, 0, 421, 422, 423, 0, 424, 425, 426, 0,
16309 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
16310 : 436, 0, 438, 439, 440, 441, 442, 443, 444, 445,
16311 : 893, 447, 894, 449, 450, 451, 452, 453, 454, 455,
16312 : 456, 0, 0, 459, 0, 460, 461, 462, 463, 0,
16313 : 0, 465, 895, 467, 468, 469, 470, 0, 471, 472,
16314 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
16315 : 0, 480, 481, 482, 0, 484, 485, 486, 487, 488,
16316 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
16317 : 498, 0, 500, 0, 502, 503, 504, 0, 505, 506,
16318 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 896,
16319 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
16320 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
16321 : 535, 536, 537, 538, 539, 540, 0, 542, 543, 544,
16322 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
16323 : 554, 555, 556, 0, 557, 558, 897, 560, 561, 562,
16324 : 563, 564, 898, 566, 0, 567, 568, 569, 570, 571,
16325 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
16326 : 0, 583, 0, 584, 585, 0, 0, 586, 587, 588,
16327 : 589, 590, 591, 592, 593, 0, 594, 899, 900, 0,
16328 : 0, 597, 598, 0, 600, 0, 0, 602, 603, 604,
16329 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
16330 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
16331 : 0, 901, 0, 623, 624, 625, 626, 627, 628, 629,
16332 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
16333 : 636, 879, 0, 0, 0, 0, 0, 0, 0, 0,
16334 : 0, 0, 648, 649, 650, 0, 0, 0, 235, 236,
16335 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
16336 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
16337 : 249, 0, 250, 251, 252, 253, 254, 255, 256, 257,
16338 : 0, 880, 260, 881, 882, 0, 263, 264, 265, 266,
16339 : 267, 268, 269, 0, 0, 270, 271, 883, 884, 274,
16340 : 0, 275, 276, 277, 278, 0, 0, 280, 0, 281,
16341 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
16342 : 0, 292, 293, 294, 295, 296, 297, 0, 298, 299,
16343 : 300, 301, 0, 0, 0, 302, 0, 0, 0, 303,
16344 : 304, 305, 306, 307, 308, 885, 886, 311, 0, 312,
16345 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
16346 : 321, 322, 323, 0, 0, 324, 325, 887, 327, 328,
16347 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
16348 : 337, 0, 338, 339, 340, 341, 0, 343, 344, 345,
16349 : 346, 0, 0, 348, 0, 349, 350, 351, 888, 353,
16350 : 0, 354, 0, 355, 356, 357, 0, 358, 359, 360,
16351 : 361, 362, 0, 363, 0, 0, 0, 366, 367, 0,
16352 : 368, 369, 370, 371, 1187, 373, 374, 375, 376, 377,
16353 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
16354 : 386, 387, 0, 389, 390, 391, 392, 889, 890, 0,
16355 : 891, 0, 396, 397, 398, 399, 400, 892, 0, 0,
16356 : 0, 0, 0, 0, 0, 0, 0, 0, 412, 413,
16357 : 414, 415, 416, 417, 418, 0, 0, 419, 0, 421,
16358 : 422, 423, 0, 424, 425, 426, 0, 0, 427, 428,
16359 : 429, 430, 431, 432, 433, 434, 435, 436, 0, 438,
16360 : 439, 440, 441, 442, 443, 444, 445, 893, 447, 894,
16361 : 449, 450, 451, 452, 453, 454, 455, 456, 0, 0,
16362 : 459, 0, 460, 461, 462, 463, 0, 0, 465, 895,
16363 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
16364 : 474, 475, 476, 0, 0, 477, 478, 0, 480, 481,
16365 : 482, 0, 484, 485, 486, 487, 488, 489, 490, 491,
16366 : 492, 493, 494, 495, 0, 496, 497, 498, 0, 500,
16367 : 0, 502, 503, 504, 0, 505, 506, 507, 508, 509,
16368 : 510, 511, 512, 513, 514, 515, 896, 517, 518, 519,
16369 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
16370 : 529, 530, 531, 532, 0, 533, 534, 535, 536, 537,
16371 : 538, 539, 540, 0, 542, 543, 544, 545, 546, 547,
16372 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 556,
16373 : 0, 557, 558, 897, 560, 561, 562, 563, 564, 898,
16374 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
16375 : 575, 576, 577, 578, 579, 580, 581, 0, 583, 0,
16376 : 584, 585, 0, 0, 586, 587, 588, 589, 590, 591,
16377 : 592, 593, 0, 594, 899, 900, 0, 0, 597, 598,
16378 : 0, 600, 0, 0, 602, 603, 604, 605, 606, 607,
16379 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
16380 : 0, 0, 616, 617, 618, 619, 620, 0, 901, 0,
16381 : 623, 624, 625, 626, 627, 628, 629, 0, 0, 630,
16382 : 0, 0, 631, 632, 633, 634, 635, 636, 879, 0,
16383 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 648,
16384 : 649, 650, 0, 0, 0, 235, 236, 237, 238, 239,
16385 : 240, 241, 242, 243, 0, 244, 245, 246, 0, 0,
16386 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
16387 : 251, 252, 253, 254, 255, 256, 257, 0, 880, 260,
16388 : 881, 882, 0, 263, 264, 265, 266, 267, 268, 269,
16389 : 0, 0, 270, 271, 883, 884, 274, 0, 275, 276,
16390 : 277, 278, 0, 0, 280, 0, 281, 282, 283, 284,
16391 : 285, 286, 287, 288, 289, 290, 291, 0, 292, 293,
16392 : 294, 295, 296, 297, 0, 298, 299, 300, 301, 0,
16393 : 0, 0, 302, 0, 0, 0, 303, 304, 305, 306,
16394 : 307, 308, 885, 886, 311, 0, 312, 0, 313, 314,
16395 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
16396 : 0, 0, 324, 325, 887, 327, 328, 0, 329, 330,
16397 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
16398 : 339, 340, 341, 0, 343, 344, 345, 346, 0, 0,
16399 : 348, 0, 349, 350, 351, 888, 353, 0, 354, 0,
16400 : 355, 356, 357, 0, 358, 359, 360, 361, 362, 0,
16401 : 363, 0, 0, 0, 366, 367, 0, 368, 369, 370,
16402 : 371, 372, 373, 374, 375, 376, 377, 0, 378, 379,
16403 : 380, 381, 382, 383, 384, 385, 0, 386, 387, 0,
16404 : 389, 390, 391, 392, 889, 890, 0, 891, 0, 396,
16405 : 397, 398, 399, 400, 892, 0, 0, 0, 0, 0,
16406 : 0, 0, 0, 0, 0, 412, 413, 414, 415, 416,
16407 : 417, 418, 0, 0, 419, 0, 421, 422, 423, 0,
16408 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
16409 : 432, 433, 434, 435, 436, 0, 438, 439, 440, 441,
16410 : 442, 443, 444, 445, 893, 447, 894, 449, 450, 451,
16411 : 452, 453, 454, 455, 456, 0, 0, 459, 0, 460,
16412 : 461, 462, 463, 0, 0, 465, 895, 467, 468, 469,
16413 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
16414 : 0, 0, 477, 478, 0, 480, 481, 482, 0, 484,
16415 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
16416 : 495, 0, 496, 497, 498, 0, 500, 0, 502, 503,
16417 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
16418 : 513, 514, 515, 896, 517, 518, 519, 0, 520, 521,
16419 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
16420 : 532, 0, 533, 534, 535, 536, 537, 538, 539, 540,
16421 : 0, 542, 543, 544, 545, 546, 547, 548, 549, 550,
16422 : 551, 0, 552, 553, 554, 555, 556, 0, 557, 558,
16423 : 2735, 560, 561, 562, 563, 564, 898, 566, 0, 567,
16424 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
16425 : 578, 579, 580, 581, 0, 583, 0, 584, 585, 0,
16426 : 0, 586, 587, 588, 589, 590, 591, 592, 593, 0,
16427 : 594, 899, 900, 0, 0, 597, 598, 0, 600, 0,
16428 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
16429 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
16430 : 617, 618, 619, 620, 0, 901, 0, 623, 624, 625,
16431 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
16432 : 632, 633, 634, 635, 636, 879, 0, 0, 0, 0,
16433 : 0, 0, 0, 0, 0, 0, 648, 649, 650, 0,
16434 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
16435 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 0,
16436 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
16437 : 254, 255, 256, 257, 0, 880, 260, 881, 882, 0,
16438 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
16439 : 271, 883, 884, 274, 0, 275, 276, 277, 278, 0,
16440 : 0, 280, 0, 281, 282, 283, 284, 285, 286, 287,
16441 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
16442 : 297, 0, 298, 299, 300, 301, 0, 0, 0, 302,
16443 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 885,
16444 : 886, 311, 0, 312, 0, 313, 314, 315, 316, 317,
16445 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
16446 : 325, 887, 327, 328, 0, 329, 330, 331, 332, 0,
16447 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
16448 : 0, 343, 344, 345, 346, 0, 0, 348, 0, 349,
16449 : 350, 351, 888, 353, 0, 354, 0, 355, 356, 357,
16450 : 0, 358, 359, 360, 361, 362, 0, 363, 0, 0,
16451 : 0, 366, 367, 0, 368, 369, 370, 371, 372, 373,
16452 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
16453 : 383, 384, 385, 0, 386, 387, 0, 389, 390, 391,
16454 : 392, 889, 890, 0, 891, 0, 396, 397, 398, 399,
16455 : 400, 892, 0, 0, 0, 0, 0, 0, 0, 0,
16456 : 0, 0, 412, 413, 414, 415, 416, 417, 418, 0,
16457 : 0, 419, 0, 421, 422, 423, 0, 424, 425, 426,
16458 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
16459 : 435, 436, 0, 438, 439, 440, 441, 442, 443, 444,
16460 : 445, 893, 447, 894, 449, 450, 451, 452, 453, 454,
16461 : 455, 456, 0, 0, 459, 0, 460, 461, 462, 463,
16462 : 0, 0, 465, 895, 467, 468, 469, 470, 0, 471,
16463 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
16464 : 478, 0, 480, 481, 482, 0, 484, 485, 486, 487,
16465 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
16466 : 497, 498, 0, 500, 0, 502, 503, 504, 0, 505,
16467 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
16468 : 896, 517, 518, 519, 0, 520, 521, 522, 523, 524,
16469 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
16470 : 534, 535, 536, 537, 538, 539, 540, 0, 542, 543,
16471 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
16472 : 553, 554, 555, 556, 0, 557, 558, 0, 560, 561,
16473 : 562, 563, 564, 898, 566, 0, 567, 568, 569, 570,
16474 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
16475 : 581, 0, 583, 0, 584, 585, 0, 0, 586, 587,
16476 : 588, 589, 590, 591, 592, 593, 0, 594, 899, 900,
16477 : 0, 0, 597, 598, 0, 600, 0, 0, 602, 603,
16478 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
16479 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
16480 : 620, 0, 901, 0, 623, 624, 625, 626, 627, 628,
16481 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
16482 : 635, 636, 879, 0, 0, 0, 0, 0, 0, 0,
16483 : 0, 0, 0, 648, 649, 650, 0, 0, 0, 235,
16484 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
16485 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
16486 : 248, 249, 0, 250, 251, 252, 253, 254, 255, 256,
16487 : 257, 0, 0, 260, 0, 0, 0, 263, 264, 265,
16488 : 266, 267, 268, 269, 0, 0, 270, 271, 0, 0,
16489 : 274, 0, 275, 276, 277, 278, 0, 0, 280, 0,
16490 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
16491 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 298,
16492 : 299, 300, 301, 0, 0, 0, 302, 0, 0, 0,
16493 : 303, 304, 305, 306, 307, 308, 0, 0, 311, 0,
16494 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
16495 : 320, 321, 322, 323, 0, 0, 324, 325, 326, 327,
16496 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
16497 : 336, 337, 0, 338, 339, 340, 341, 0, 343, 344,
16498 : 345, 346, 0, 0, 348, 0, 349, 350, 351, 0,
16499 : 353, 0, 354, 0, 355, 356, 357, 0, 358, 359,
16500 : 360, 361, 362, 0, 363, 0, 0, 0, 366, 367,
16501 : 0, 368, 369, 370, 371, 372, 373, 374, 375, 376,
16502 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
16503 : 0, 386, 387, 0, 389, 390, 391, 392, 0, 0,
16504 : 0, 0, 0, 396, 397, 398, 399, 400, 0, 0,
16505 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 412,
16506 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 0,
16507 : 421, 422, 423, 0, 424, 425, 426, 0, 0, 427,
16508 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 0,
16509 : 438, 439, 440, 441, 442, 443, 444, 445, 0, 447,
16510 : 0, 449, 450, 451, 452, 453, 454, 455, 456, 0,
16511 : 0, 459, 0, 460, 461, 462, 463, 0, 0, 465,
16512 : 0, 467, 468, 469, 470, 0, 471, 472, 473, 0,
16513 : 0, 474, 475, 476, 0, 0, 477, 478, 0, 480,
16514 : 481, 482, 0, 484, 485, 486, 487, 488, 489, 490,
16515 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 0,
16516 : 500, 0, 502, 503, 504, 0, 505, 506, 507, 508,
16517 : 509, 510, 511, 512, 513, 514, 515, 0, 517, 518,
16518 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
16519 : 528, 529, 530, 531, 532, 0, 533, 534, 535, 536,
16520 : 537, 538, 539, 540, 0, 542, 543, 544, 545, 546,
16521 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
16522 : 556, 0, 557, 558, 0, 560, 561, 562, 563, 564,
16523 : 0, 566, 0, 567, 568, 569, 570, 571, 572, 573,
16524 : 574, 575, 576, 577, 578, 579, 580, 581, 0, 583,
16525 : 0, 584, 585, 0, 0, 586, 587, 588, 589, 590,
16526 : 591, 592, 593, 0, 594, 0, 0, 0, 0, 597,
16527 : 598, 0, 600, 0, 0, 602, 603, 604, 605, 606,
16528 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
16529 : 615, 0, 0, 616, 617, 618, 619, 620, 0, 0,
16530 : 0, 623, 624, 625, 626, 627, 628, 629, 0, 0,
16531 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 0,
16532 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
16533 : 648, 649, 650
16534 : };
16535 :
16536 : static const yytype_int16 yycheck[] =
16537 : {
16538 : 6, 0, 211, 665, 0, 0, 0, 0, 0, 1041,
16539 : 56, 0, 211, 0, 206, 0, 0, 23, 942, 25,
16540 : 0, 0, 214, 29, 36, 217, 21, 0, 34, 35,
16541 : 36, 0, 38, 0, 1050, 41, 42, 1013, 44, 843,
16542 : 46, 1167, 21, 686, 840, 189, 1662, 53, 54, 55,
16543 : 1579, 897, 1595, 2844, 45, 1030, 718, 1014, 22, 1579,
16544 : 0, 0, 718, 1045, 28, 867, 799, 800, 801, 0,
16545 : 759, 1228, 805, 936, 916, 938, 2717, 1572, 1039, 1275,
16546 : 2718, 1584, 0, 2044, 197, 885, 886, 44, 873, 1262,
16547 : 1505, 850, 3247, 1116, 3137, 895, 3428, 216, 3430, 900,
16548 : 833, 3197, 3523, 765, 1902, 763, 1247, 3728, 3099, 3072,
16549 : 1251, 230, 954, 1254, 1255, 1090, 3926, 3953, 2033, 1094,
16550 : 2085, 1730, 3084, 2071, 1099, 3942, 23, 3611, 2052, 866,
16551 : 8, 3975, 4275, 741, 1109, 2070, 3674, 15, 3676, 36,
16552 : 1625, 1626, 2990, 3878, 1629, 667, 3481, 755, 1123, 4359,
16553 : 3533, 4835, 4297, 4318, 1697, 1698, 818, 1572, 3646, 2109,
16554 : 3648, 191, 1562, 1462, 2968, 191, 175, 1043, 1915, 2066,
16555 : 2067, 2068, 2069, 2, 5232, 2072, 1974, 2074, 2075, 1154,
16556 : 4606, 980, 764, 4611, 846, 4623, 739, 979, 1691, 742,
16557 : 846, 197, 198, 199, 5160, 4568, 202, 754, 5366, 5152,
16558 : 206, 5324, 208, 35, 4737, 211, 4739, 5460, 214, 871,
16559 : 42, 217, 1004, 3497, 220, 1718, 222, 1009, 1105, 225,
16560 : 2739, 2740, 1622, 229, 3475, 231, 4406, 1013, 965, 4600,
16561 : 4851, 2597, 4853, 5103, 1121, 2601, 1022, 4610, 50, 1639,
16562 : 2634, 2702, 5496, 3543, 3382, 2704, 1032, 5357, 3290, 41,
16563 : 5508, 1050, 3387, 3940, 3037, 5147, 3039, 3040, 4927, 939,
16564 : 5457, 3044, 3045, 3046, 0, 3048, 3049, 3050, 225, 5766,
16565 : 939, 933, 963, 11, 0, 1545, 3080, 0, 6, 6,
16566 : 3531, 5151, 21, 0, 5750, 38, 4459, 2681, 15, 16,
16567 : 4775, 6, 2039, 54, 5422, 5423, 37, 63, 6, 6,
16568 : 15, 16, 37, 63, 63, 5415, 6, 63, 3480, 6,
16569 : 3482, 3483, 37, 1004, 6, 15, 16, 1054, 1009, 0,
16570 : 25, 6, 21, 32, 13, 43, 95, 6, 47, 120,
16571 : 11, 37, 0, 6, 6, 29, 37, 35, 149, 172,
16572 : 6, 120, 120, 11, 178, 47, 6, 88, 29, 13,
16573 : 178, 1084, 6, 63, 6, 883, 884, 6, 178, 157,
16574 : 6, 29, 178, 85, 1525, 153, 894, 6, 195, 80,
16575 : 164, 6, 63, 47, 5, 120, 3613, 11, 179, 37,
16576 : 11, 45, 0, 3, 51, 5, 6, 190, 1050, 1156,
16577 : 15, 11, 179, 5447, 6027, 1162, 1881, 178, 122, 6064,
16578 : 179, 178, 13, 21, 5, 1172, 13, 68, 6, 1176,
16579 : 11, 43, 178, 1180, 78, 1182, 5649, 1202, 4701, 4702,
16580 : 4703, 1188, 4705, 4706, 4707, 4708, 4709, 1194, 316, 331,
16581 : 1197, 125, 180, 221, 45, 140, 1418, 158, 56, 353,
16582 : 257, 310, 178, 32, 4624, 1406, 6020, 180, 1106, 135,
16583 : 345, 1474, 178, 63, 348, 178, 403, 63, 345, 669,
16584 : 120, 178, 361, 404, 6151, 376, 202, 78, 11, 35,
16585 : 448, 360, 385, 166, 25, 272, 202, 206, 325, 202,
16586 : 122, 39, 5979, 5375, 1466, 202, 120, 686, 240, 424,
16587 : 78, 120, 29, 1293, 1294, 63, 289, 178, 448, 385,
16588 : 120, 13, 153, 227, 5970, 495, 92, 450, 433, 32,
16589 : 178, 372, 267, 1623, 5768, 294, 283, 6466, 178, 313,
16590 : 80, 202, 535, 217, 440, 1325, 442, 540, 316, 330,
16591 : 1640, 6480, 92, 178, 202, 1336, 59, 736, 293, 6,
16592 : 178, 308, 403, 172, 5497, 356, 324, 472, 293, 435,
16593 : 540, 761, 487, 496, 5664, 450, 403, 309, 471, 298,
16594 : 289, 254, 540, 450, 312, 684, 1174, 302, 4939, 293,
16595 : 1355, 690, 130, 191, 29, 368, 80, 29, 489, 478,
16596 : 29, 36, 6269, 702, 36, 227, 1462, 36, 92, 140,
16597 : 540, 157, 1574, 540, 80, 536, 485, 394, 135, 298,
16598 : 80, 496, 222, 254, 373, 1404, 1268, 293, 409, 496,
16599 : 1409, 1410, 1268, 334, 374, 374, 178, 350, 374, 1356,
16600 : 29, 92, 536, 80, 390, 835, 1208, 1235, 289, 446,
16601 : 80, 185, 448, 357, 536, 92, 80, 257, 1246, 80,
16602 : 13, 185, 536, 6140, 302, 390, 244, 6312, 1433, 1386,
16603 : 3887, 293, 540, 185, 389, 1263, 5889, 6290, 5712, 23,
16604 : 666, 455, 371, 1463, 374, 534, 672, 448, 674, 538,
16605 : 676, 4406, 45, 679, 477, 423, 385, 465, 387, 127,
16606 : 686, 1656, 125, 374, 1659, 691, 671, 693, 412, 5886,
16607 : 5311, 489, 671, 699, 473, 334, 1728, 1729, 403, 4434,
16608 : 142, 479, 396, 536, 1865, 78, 540, 6394, 375, 536,
16609 : 526, 1668, 540, 431, 1499, 357, 536, 723, 484, 765,
16610 : 10, 462, 538, 13, 5978, 536, 732, 17, 18, 19,
16611 : 736, 671, 671, 739, 4879, 526, 742, 448, 1427, 1401,
16612 : 671, 463, 1629, 478, 453, 1401, 448, 1409, 1410, 536,
16613 : 448, 1550, 758, 671, 1282, 1283, 497, 6254, 536, 478,
16614 : 769, 1560, 1548, 540, 374, 1726, 471, 4940, 374, 4579,
16615 : 25, 540, 497, 5258, 482, 536, 478, 471, 4951, 2049,
16616 : 540, 540, 371, 536, 540, 764, 6252, 5915, 448, 517,
16617 : 518, 497, 1320, 514, 1681, 1682, 497, 535, 942, 431,
16618 : 1646, 540, 4619, 539, 478, 811, 374, 5760, 536, 536,
16619 : 4620, 1735, 1492, 539, 820, 779, 539, 781, 1610, 783,
16620 : 4441, 536, 539, 1492, 1610, 789, 4447, 534, 536, 536,
16621 : 540, 538, 517, 518, 840, 841, 536, 843, 844, 536,
16622 : 6337, 540, 848, 532, 536, 2002, 527, 528, 1647, 540,
16623 : 1976, 536, 1651, 1652, 811, 1064, 862, 536, 539, 527,
16624 : 528, 867, 448, 536, 536, 1064, 526, 873, 532, 1061,
16625 : 536, 539, 5764, 1065, 4362, 1067, 4364, 6131, 538, 1570,
16626 : 6077, 6078, 536, 2009, 536, 140, 6144, 536, 6385, 4624,
16627 : 536, 536, 493, 527, 528, 2021, 527, 528, 540, 263,
16628 : 930, 526, 540, 4238, 930, 6479, 6159, 527, 528, 534,
16629 : 867, 1439, 1440, 538, 920, 793, 517, 6491, 529, 530,
16630 : 531, 532, 529, 530, 531, 532, 527, 528, 934, 338,
16631 : 540, 5214, 1623, 932, 540, 225, 932, 932, 932, 932,
16632 : 932, 947, 1055, 932, 448, 932, 534, 932, 932, 1640,
16633 : 538, 3913, 932, 932, 421, 422, 962, 956, 413, 932,
16634 : 6070, 413, 448, 932, 413, 932, 3770, 3771, 448, 4104,
16635 : 4105, 3775, 540, 5642, 1617, 981, 4114, 934, 540, 6089,
16636 : 986, 987, 453, 4670, 527, 528, 540, 1863, 3, 398,
16637 : 947, 448, 932, 932, 52, 1882, 540, 72, 448, 4250,
16638 : 23, 932, 6256, 4254, 448, 962, 3, 448, 540, 6,
16639 : 4310, 5977, 1018, 1019, 932, 527, 528, 529, 530, 531,
16640 : 532, 5974, 312, 1545, 122, 473, 390, 3546, 471, 3548,
16641 : 6, 440, 76, 442, 156, 1041, 1042, 89, 2070, 156,
16642 : 4528, 3502, 89, 4527, 3503, 4087, 1845, 489, 3442, 1055,
16643 : 148, 1057, 844, 671, 4189, 1061, 848, 23, 1064, 1065,
16644 : 202, 1067, 874, 6151, 125, 4237, 1072, 4239, 4240, 2051,
16645 : 63, 326, 207, 3856, 438, 136, 91, 113, 185, 154,
16646 : 132, 6, 6336, 223, 125, 132, 6, 5957, 187, 113,
16647 : 1096, 125, 6260, 6261, 310, 313, 113, 1103, 1104, 174,
16648 : 172, 103, 25, 5973, 385, 469, 3910, 33, 34, 5480,
16649 : 331, 6169, 113, 368, 5487, 6225, 124, 89, 115, 1125,
16650 : 1126, 1127, 294, 1129, 2106, 1131, 2675, 1133, 1134, 10,
16651 : 145, 495, 13, 156, 169, 21, 17, 18, 19, 197,
16652 : 289, 178, 21, 311, 202, 297, 764, 765, 403, 6,
16653 : 4434, 125, 5362, 23, 527, 528, 529, 530, 531, 532,
16654 : 132, 1167, 390, 1169, 1170, 202, 1828, 368, 3534, 178,
16655 : 4591, 4655, 536, 99, 6427, 6141, 217, 190, 1911, 6132,
16656 : 25, 6269, 1949, 217, 6, 187, 1018, 1019, 23, 23,
16657 : 1957, 6409, 6315, 119, 526, 253, 1202, 194, 368, 266,
16658 : 48, 372, 283, 174, 115, 5701, 538, 5703, 113, 5389,
16659 : 3, 5707, 5708, 310, 2018, 2019, 224, 140, 293, 6387,
16660 : 5841, 476, 1228, 71, 1230, 304, 293, 308, 1234, 1208,
16661 : 1236, 157, 403, 403, 524, 525, 526, 527, 528, 529,
16662 : 530, 531, 532, 217, 72, 260, 6464, 448, 30, 284,
16663 : 1626, 316, 331, 1629, 1260, 536, 1262, 2133, 410, 23,
16664 : 1266, 10, 172, 307, 13, 2050, 63, 2052, 17, 18,
16665 : 19, 346, 289, 2058, 1280, 272, 289, 329, 275, 2064,
16666 : 2065, 380, 329, 194, 406, 10, 35, 289, 13, 406,
16667 : 1979, 2076, 17, 18, 19, 140, 6262, 263, 91, 471,
16668 : 435, 2086, 2805, 114, 5732, 5838, 6394, 2092, 536, 1355,
16669 : 1139, 326, 930, 5149, 932, 536, 1322, 2837, 536, 2008,
16670 : 536, 202, 298, 2012, 2739, 5142, 5136, 6450, 2017, 5173,
16671 : 498, 2020, 5758, 1211, 5762, 1213, 3083, 1215, 1946, 1217,
16672 : 5778, 1219, 1220, 1221, 225, 1351, 1352, 1353, 1226, 1355,
16673 : 408, 6409, 1960, 146, 125, 3320, 3321, 329, 5731, 3878,
16674 : 3325, 272, 385, 512, 275, 1973, 2103, 311, 4359, 6335,
16675 : 1376, 3306, 23, 298, 2673, 197, 5747, 475, 298, 189,
16676 : 6346, 374, 1939, 406, 206, 5756, 493, 2890, 5761, 441,
16677 : 1943, 466, 214, 263, 441, 217, 207, 394, 540, 435,
16678 : 540, 3366, 3367, 326, 1986, 1958, 6464, 4895, 1961, 1415,
16679 : 471, 435, 298, 1422, 1971, 456, 209, 3026, 1617, 298,
16680 : 6386, 493, 396, 438, 390, 2825, 441, 1433, 263, 263,
16681 : 471, 312, 4920, 540, 435, 5806, 218, 471, 364, 448,
16682 : 2083, 298, 300, 445, 6365, 368, 217, 1477, 1478, 3968,
16683 : 1480, 1477, 1478, 120, 1480, 6421, 493, 536, 2011, 390,
16684 : 370, 403, 2015, 2016, 477, 293, 326, 316, 23, 441,
16685 : 396, 5636, 438, 1479, 38, 540, 225, 1483, 1484, 380,
16686 : 403, 326, 92, 394, 3434, 5630, 37, 6453, 1494, 1495,
16687 : 1496, 1497, 289, 1499, 4877, 400, 60, 471, 269, 263,
16688 : 3116, 4836, 6186, 469, 6000, 1881, 172, 115, 368, 435,
16689 : 120, 40, 58, 72, 511, 171, 1522, 6438, 184, 27,
16690 : 390, 28, 324, 368, 6, 54, 289, 2049, 190, 495,
16691 : 368, 403, 42, 92, 133, 5, 202, 1494, 25, 1496,
16692 : 333, 11, 50, 403, 31, 144, 356, 403, 112, 493,
16693 : 3099, 1557, 100, 479, 241, 390, 1562, 483, 403, 1565,
16694 : 180, 311, 5100, 312, 325, 403, 2598, 493, 438, 120,
16695 : 536, 472, 1578, 1579, 87, 473, 386, 374, 94, 390,
16696 : 125, 1587, 111, 129, 1590, 92, 194, 312, 5959, 4840,
16697 : 1208, 517, 536, 4636, 4845, 140, 435, 4848, 540, 469,
16698 : 511, 4592, 289, 438, 438, 536, 403, 124, 72, 311,
16699 : 536, 1617, 263, 1619, 311, 473, 1622, 120, 2600, 1625,
16700 : 1626, 137, 433, 1629, 435, 495, 390, 289, 194, 6137,
16701 : 6138, 179, 1631, 1639, 469, 469, 1642, 1636, 536, 1645,
16702 : 3135, 205, 403, 524, 525, 526, 527, 528, 529, 530,
16703 : 531, 532, 314, 140, 5389, 168, 120, 324, 1276, 5869,
16704 : 495, 495, 5498, 1669, 272, 213, 536, 275, 540, 5486,
16705 : 357, 464, 122, 180, 438, 190, 536, 479, 1296, 472,
16706 : 228, 1687, 475, 293, 540, 341, 10, 216, 537, 13,
16707 : 200, 540, 312, 1699, 1700, 1701, 1702, 1703, 148, 263,
16708 : 471, 536, 536, 251, 268, 469, 272, 224, 263, 273,
16709 : 218, 1717, 378, 1712, 477, 304, 3131, 1716, 182, 406,
16710 : 3135, 45, 1728, 1729, 1730, 289, 304, 326, 52, 396,
16711 : 1687, 495, 280, 4516, 293, 325, 304, 1355, 4521, 390,
16712 : 183, 10, 331, 493, 13, 5888, 1955, 2763, 17, 18,
16713 : 19, 4599, 1944, 331, 78, 1954, 1955, 6128, 29, 448,
16714 : 289, 325, 310, 331, 4555, 316, 35, 166, 435, 368,
16715 : 136, 122, 536, 181, 289, 524, 525, 526, 527, 528,
16716 : 529, 530, 531, 532, 471, 10, 394, 438, 13, 4593,
16717 : 2926, 493, 17, 18, 19, 298, 493, 2673, 343, 524,
16718 : 525, 526, 527, 528, 529, 530, 531, 532, 403, 373,
16719 : 35, 326, 479, 396, 257, 477, 3, 403, 469, 25,
16720 : 1933, 1827, 123, 179, 267, 31, 493, 151, 394, 293,
16721 : 6338, 379, 1838, 397, 298, 390, 99, 526, 10, 326,
16722 : 1846, 1847, 4833, 350, 495, 17, 18, 19, 298, 538,
16723 : 517, 217, 435, 368, 418, 254, 1862, 213, 112, 1477,
16724 : 1478, 123, 1480, 392, 135, 13, 2633, 2652, 5386, 536,
16725 : 241, 3007, 228, 197, 1880, 1881, 227, 23, 202, 6250,
16726 : 387, 368, 346, 438, 2083, 536, 326, 4406, 325, 2735,
16727 : 1896, 1897, 1898, 1899, 414, 251, 479, 198, 362, 1905,
16728 : 6445, 723, 5, 511, 267, 469, 1912, 306, 11, 1915,
16729 : 732, 2715, 5430, 536, 469, 4434, 403, 739, 289, 439,
16730 : 742, 184, 6467, 3472, 1930, 473, 3475, 1933, 536, 253,
16731 : 78, 5767, 6075, 120, 140, 243, 198, 1943, 1944, 5749,
16732 : 495, 123, 293, 351, 451, 540, 453, 536, 1954, 1955,
16733 : 457, 387, 1958, 536, 540, 1961, 225, 314, 536, 5776,
16734 : 2936, 6332, 477, 403, 2763, 135, 403, 137, 536, 326,
16735 : 1976, 1977, 370, 537, 3523, 526, 384, 1983, 120, 1985,
16736 : 178, 536, 3531, 534, 483, 536, 537, 538, 312, 540,
16737 : 398, 493, 490, 64, 23, 23, 2002, 440, 2874, 442,
16738 : 225, 72, 466, 2009, 202, 2011, 357, 1986, 2014, 2015,
16739 : 2016, 368, 2018, 2019, 268, 2021, 198, 453, 160, 273,
16740 : 483, 2067, 2028, 379, 2900, 387, 469, 316, 436, 2035,
16741 : 2042, 122, 2038, 2039, 3160, 406, 2042, 536, 540, 2045,
16742 : 2046, 5525, 540, 312, 2050, 385, 2052, 387, 2033, 2835,
16743 : 5205, 2057, 2058, 195, 2033, 6265, 5307, 148, 2064, 2065,
16744 : 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075,
16745 : 2076, 2028, 4033, 536, 2080, 450, 2082, 2083, 2084, 2085,
16746 : 2086, 2087, 2088, 2089, 408, 173, 2092, 312, 2094, 2095,
16747 : 4051, 453, 2098, 2033, 2033, 493, 3020, 3021, 3022, 2986,
16748 : 471, 2763, 2033, 536, 393, 4624, 293, 2113, 2114, 2115,
16749 : 1988, 298, 1990, 453, 1992, 2033, 1994, 263, 1996, 517,
16750 : 211, 209, 2000, 293, 3000, 2131, 473, 484, 3543, 1631,
16751 : 69, 70, 25, 3628, 1636, 5126, 5972, 3753, 3553, 5102,
16752 : 312, 2940, 540, 4067, 13, 169, 5990, 334, 2045, 2948,
16753 : 2936, 293, 2951, 4088, 5971, 4103, 38, 3353, 4093, 5121,
16754 : 4125, 4126, 4127, 4128, 157, 2171, 4131, 4132, 4133, 4134,
16755 : 4135, 4136, 4137, 4138, 4139, 4140, 45, 3152, 5141, 2916,
16756 : 6390, 2914, 5337, 2916, 5339, 326, 257, 5519, 2974, 536,
16757 : 3066, 515, 5730, 493, 180, 4092, 326, 2989, 289, 81,
16758 : 4097, 4098, 293, 527, 528, 529, 530, 531, 532, 78,
16759 : 1712, 4009, 765, 3628, 1716, 360, 3103, 3104, 3105, 3106,
16760 : 155, 3108, 246, 3009, 293, 2833, 3835, 368, 214, 298,
16761 : 4195, 4196, 3841, 1055, 263, 263, 166, 390, 368, 1061,
16762 : 540, 3726, 172, 1065, 390, 1067, 3133, 140, 166, 6415,
16763 : 540, 6417, 397, 326, 172, 524, 525, 526, 527, 528,
16764 : 529, 530, 531, 532, 440, 818, 442, 420, 326, 204,
16765 : 493, 360, 5368, 2279, 3777, 2964, 38, 2966, 493, 0,
16766 : 5063, 2970, 5065, 5066, 5067, 354, 5090, 202, 5092, 326,
16767 : 435, 3, 438, 5781, 517, 368, 326, 6133, 60, 524,
16768 : 525, 526, 527, 528, 529, 530, 531, 532, 397, 1131,
16769 : 368, 1133, 1134, 4228, 26, 6481, 80, 540, 871, 5803,
16770 : 493, 3824, 539, 469, 254, 540, 5, 2333, 92, 157,
16771 : 403, 368, 11, 385, 5755, 372, 254, 5328, 368, 4236,
16772 : 485, 3537, 27, 29, 517, 403, 435, 3223, 122, 495,
16773 : 112, 373, 524, 525, 526, 527, 528, 529, 530, 531,
16774 : 532, 390, 390, 25, 1008, 50, 403, 419, 1986, 31,
16775 : 448, 5362, 112, 403, 148, 6477, 306, 172, 5710, 91,
16776 : 933, 403, 3149, 1027, 2390, 22, 1030, 3154, 306, 3156,
16777 : 536, 28, 6494, 3126, 326, 473, 485, 83, 172, 3166,
16778 : 86, 196, 3169, 396, 3171, 3172, 3949, 93, 3175, 438,
16779 : 438, 3210, 3179, 100, 3181, 2033, 326, 3184, 4941, 6255,
16780 : 182, 314, 172, 781, 782, 783, 4949, 3085, 786, 787,
16781 : 788, 153, 120, 173, 146, 121, 368, 211, 796, 493,
16782 : 469, 469, 435, 205, 166, 1884, 196, 15, 16, 2067,
16783 : 172, 6072, 357, 368, 364, 143, 6266, 372, 368, 172,
16784 : 493, 35, 150, 517, 369, 1904, 495, 495, 3344, 209,
16785 : 531, 403, 183, 2091, 3350, 536, 164, 538, 140, 372,
16786 : 373, 3248, 536, 196, 517, 534, 479, 536, 403, 538,
16787 : 202, 38, 179, 403, 399, 10, 182, 209, 13, 221,
16788 : 493, 263, 17, 18, 19, 3429, 268, 536, 536, 195,
16789 : 403, 273, 135, 60, 137, 289, 531, 5508, 3207, 293,
16790 : 35, 536, 208, 538, 517, 5, 213, 289, 268, 517,
16791 : 518, 11, 254, 273, 517, 518, 5868, 3322, 143, 19,
16792 : 99, 228, 310, 536, 348, 150, 257, 315, 536, 3334,
16793 : 33, 34, 3289, 536, 535, 5651, 5666, 37, 453, 540,
16794 : 119, 5671, 5672, 325, 251, 112, 25, 302, 396, 2575,
16795 : 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 493, 2585,
16796 : 536, 4546, 538, 310, 306, 3370, 1004, 2796, 315, 2595,
16797 : 2596, 1009, 2598, 280, 316, 485, 5587, 2796, 157, 2605,
16798 : 534, 244, 517, 2795, 538, 2797, 2798, 435, 529, 537,
16799 : 298, 373, 540, 534, 6424, 536, 3333, 538, 3335, 3336,
16800 : 534, 333, 536, 310, 285, 286, 287, 288, 2634, 3414,
16801 : 2636, 453, 91, 2639, 2640, 397, 3435, 2643, 529, 2645,
16802 : 2635, 3782, 2648, 534, 393, 536, 2652, 538, 536, 360,
16803 : 538, 479, 5435, 3454, 3455, 536, 418, 3614, 205, 537,
16804 : 537, 271, 540, 540, 326, 493, 2284, 537, 380, 2675,
16805 : 540, 153, 536, 3432, 133, 2681, 2682, 2634, 370, 2792,
16806 : 537, 140, 267, 540, 166, 144, 2692, 393, 537, 517,
16807 : 172, 540, 379, 3650, 537, 2701, 2702, 540, 517, 518,
16808 : 537, 4250, 3544, 540, 267, 4254, 368, 469, 536, 2715,
16809 : 225, 537, 537, 2832, 540, 540, 263, 2723, 207, 2725,
16810 : 432, 268, 4683, 96, 2681, 2682, 273, 385, 386, 440,
16811 : 6218, 442, 385, 386, 420, 6223, 6224, 423, 4699, 221,
16812 : 5783, 403, 289, 465, 271, 537, 3389, 3729, 540, 385,
16813 : 386, 3488, 464, 2765, 3554, 2767, 385, 386, 469, 2765,
16814 : 472, 2767, 4378, 475, 196, 537, 537, 455, 540, 540,
16815 : 324, 25, 254, 3435, 485, 2781, 453, 31, 325, 467,
16816 : 537, 3938, 537, 540, 100, 540, 2792, 5654, 5655, 2795,
16817 : 2796, 2797, 2798, 4728, 87, 2801, 537, 312, 2804, 540,
16818 : 4735, 4736, 2720, 4601, 537, 364, 2925, 540, 5830, 5831,
16819 : 4359, 3578, 534, 59, 537, 537, 538, 540, 537, 2825,
16820 : 537, 540, 76, 540, 306, 6443, 373, 396, 6446, 3615,
16821 : 493, 2837, 495, 4376, 316, 4378, 537, 396, 4341, 540,
16822 : 5644, 4361, 396, 6033, 6034, 2851, 2852, 2804, 393, 483,
16823 : 397, 1209, 2858, 493, 1212, 495, 1214, 485, 1216, 537,
16824 : 1218, 2867, 540, 179, 1222, 537, 435, 326, 540, 537,
16825 : 5389, 418, 540, 6205, 54, 55, 435, 4050, 5869, 133,
16826 : 244, 435, 3571, 2889, 11, 537, 140, 3006, 540, 536,
16827 : 144, 6379, 3659, 390, 3661, 4310, 3919, 213, 537, 537,
16828 : 2096, 540, 540, 2099, 2910, 364, 3881, 433, 310, 368,
16829 : 479, 4414, 228, 537, 6069, 3701, 540, 2923, 537, 173,
16830 : 479, 540, 469, 537, 493, 479, 540, 540, 537, 537,
16831 : 3592, 540, 540, 536, 493, 251, 3592, 536, 10, 493,
16832 : 2946, 13, 59, 2949, 403, 17, 18, 19, 517, 537,
16833 : 485, 410, 540, 2910, 537, 209, 537, 540, 517, 540,
16834 : 3568, 3569, 537, 517, 280, 540, 440, 536, 442, 2975,
16835 : 2976, 537, 537, 45, 540, 540, 537, 536, 48, 540,
16836 : 52, 5619, 536, 465, 2990, 5976, 2992, 2993, 3875, 513,
16837 : 538, 3724, 5511, 227, 181, 537, 3729, 537, 540, 2963,
16838 : 540, 3877, 294, 295, 537, 537, 78, 540, 540, 524,
16839 : 525, 526, 527, 528, 529, 530, 531, 532, 3024, 3025,
16840 : 3026, 310, 313, 2641, 3030, 135, 537, 137, 537, 540,
16841 : 537, 540, 3038, 540, 537, 289, 172, 540, 3805, 293,
16842 : 2675, 310, 4591, 4592, 3811, 3051, 537, 513, 313, 540,
16843 : 304, 3057, 534, 3059, 164, 48, 538, 2675, 245, 6391,
16844 : 314, 513, 3254, 379, 3256, 3257, 3072, 2666, 2667, 2668,
16845 : 4613, 3077, 326, 537, 227, 177, 540, 3083, 153, 4608,
16846 : 3086, 537, 537, 537, 540, 540, 540, 537, 5892, 5893,
16847 : 540, 166, 3098, 3099, 440, 529, 442, 172, 10, 4295,
16848 : 540, 13, 2720, 3109, 396, 17, 18, 19, 1930, 537,
16849 : 3718, 1933, 540, 3119, 368, 3121, 536, 371, 372, 229,
16850 : 537, 1943, 1944, 540, 537, 197, 38, 540, 537, 482,
16851 : 202, 540, 3740, 493, 4629, 495, 1958, 6469, 3251, 1961,
16852 : 342, 537, 537, 435, 540, 540, 221, 537, 537, 403,
16853 : 540, 540, 537, 6144, 3160, 540, 3162, 537, 3164, 537,
16854 : 540, 536, 540, 537, 6127, 537, 540, 537, 540, 537,
16855 : 540, 493, 540, 495, 3907, 285, 286, 287, 288, 254,
16856 : 536, 253, 292, 293, 37, 536, 4168, 479, 298, 2011,
16857 : 3389, 3197, 537, 2015, 2016, 540, 537, 384, 537, 540,
16858 : 3118, 493, 92, 4360, 391, 537, 4363, 537, 540, 4366,
16859 : 540, 398, 537, 537, 4629, 540, 540, 537, 537, 5860,
16860 : 540, 3883, 476, 3885, 59, 517, 0, 3883, 178, 3885,
16861 : 3997, 306, 3999, 223, 4001, 4037, 3925, 223, 538, 537,
16862 : 312, 316, 540, 368, 536, 3251, 3252, 202, 3254, 436,
16863 : 3256, 3257, 537, 3259, 537, 540, 493, 540, 495, 4058,
16864 : 3266, 4222, 497, 537, 537, 3271, 540, 540, 6259, 43,
16865 : 537, 158, 459, 540, 6265, 537, 3322, 537, 540, 5244,
16866 : 540, 537, 158, 539, 4833, 4161, 4268, 537, 536, 539,
16867 : 3898, 4840, 3900, 183, 536, 536, 4845, 10, 3497, 4848,
16868 : 13, 537, 5237, 5238, 540, 3967, 4219, 537, 4221, 3,
16869 : 540, 3967, 536, 225, 3320, 3321, 3322, 207, 537, 3325,
16870 : 4822, 540, 4824, 4305, 3370, 99, 536, 3333, 3334, 3335,
16871 : 3336, 537, 45, 4022, 540, 4120, 408, 538, 537, 52,
16872 : 4956, 540, 310, 3349, 10, 455, 3352, 13, 3354, 368,
16873 : 202, 17, 18, 19, 310, 6146, 537, 467, 158, 540,
16874 : 3366, 3367, 158, 537, 3370, 78, 540, 257, 537, 4154,
16875 : 537, 540, 537, 540, 537, 540, 202, 540, 537, 153,
16876 : 4255, 540, 4257, 3389, 1494, 3391, 1496, 3393, 158, 3395,
16877 : 465, 310, 166, 153, 5288, 172, 5290, 91, 172, 6390,
16878 : 312, 4921, 4377, 368, 178, 158, 166, 252, 3414, 473,
16879 : 184, 3417, 172, 187, 122, 3421, 310, 191, 536, 302,
16880 : 4205, 172, 537, 72, 293, 315, 38, 293, 497, 3475,
16881 : 536, 3422, 3423, 3424, 293, 310, 3442, 48, 151, 48,
16882 : 295, 458, 293, 515, 293, 4053, 326, 221, 91, 223,
16883 : 485, 145, 524, 525, 526, 527, 528, 529, 530, 531,
16884 : 532, 221, 485, 87, 3099, 453, 3472, 54, 172, 3475,
16885 : 3476, 349, 158, 158, 3480, 3481, 3482, 3483, 536, 158,
16886 : 254, 3527, 158, 3489, 197, 3442, 153, 497, 3494, 202,
16887 : 135, 4333, 137, 158, 254, 4652, 158, 540, 158, 166,
16888 : 3118, 158, 158, 3509, 158, 172, 158, 4307, 158, 172,
16889 : 158, 158, 158, 310, 101, 435, 158, 3523, 158, 164,
16890 : 536, 3527, 38, 252, 3530, 3531, 310, 3533, 172, 4405,
16891 : 10, 4407, 306, 13, 172, 536, 310, 6, 6, 126,
16892 : 253, 396, 316, 172, 536, 4502, 306, 536, 6, 4524,
16893 : 440, 536, 442, 536, 221, 536, 316, 4433, 145, 225,
16894 : 536, 536, 536, 453, 151, 45, 260, 6, 3574, 536,
16895 : 536, 6, 52, 5534, 536, 536, 466, 5126, 536, 469,
16896 : 435, 6, 536, 536, 229, 536, 173, 254, 4512, 536,
16897 : 177, 536, 3598, 3599, 5559, 536, 536, 6388, 78, 312,
16898 : 536, 536, 376, 536, 536, 192, 536, 536, 536, 536,
16899 : 536, 536, 524, 525, 526, 527, 528, 529, 530, 531,
16900 : 532, 536, 300, 536, 479, 5590, 536, 536, 3634, 536,
16901 : 536, 536, 326, 536, 494, 4434, 3642, 167, 493, 306,
16902 : 285, 286, 287, 288, 223, 322, 312, 292, 540, 316,
16903 : 38, 540, 103, 298, 252, 38, 37, 431, 10, 536,
16904 : 446, 13, 517, 446, 534, 17, 18, 19, 448, 534,
16905 : 364, 151, 448, 448, 368, 536, 448, 178, 372, 3878,
16906 : 172, 536, 537, 35, 539, 306, 3692, 172, 304, 403,
16907 : 540, 465, 68, 45, 448, 408, 448, 390, 448, 484,
16908 : 52, 448, 390, 448, 3322, 465, 538, 448, 390, 403,
16909 : 3716, 298, 254, 448, 79, 448, 490, 197, 492, 493,
16910 : 3726, 526, 202, 448, 92, 158, 78, 310, 249, 390,
16911 : 448, 395, 448, 298, 128, 472, 448, 438, 331, 310,
16912 : 514, 304, 536, 448, 438, 448, 385, 441, 195, 536,
16913 : 92, 540, 3370, 10, 128, 158, 13, 5172, 5307, 326,
16914 : 17, 18, 19, 537, 202, 539, 540, 354, 448, 128,
16915 : 114, 473, 128, 253, 473, 448, 3394, 448, 35, 5328,
16916 : 448, 59, 59, 277, 353, 314, 331, 353, 45, 448,
16917 : 448, 353, 3410, 448, 331, 52, 47, 448, 465, 493,
16918 : 540, 537, 515, 438, 225, 225, 310, 448, 225, 4685,
16919 : 455, 448, 448, 5362, 527, 528, 529, 530, 531, 532,
16920 : 448, 78, 467, 448, 541, 448, 448, 225, 448, 3835,
16921 : 448, 448, 312, 448, 448, 3841, 225, 3472, 448, 225,
16922 : 3475, 225, 448, 225, 310, 197, 3852, 225, 225, 536,
16923 : 202, 458, 38, 2675, 3472, 158, 310, 3475, 524, 525,
16924 : 526, 527, 528, 529, 530, 531, 532, 158, 120, 293,
16925 : 473, 158, 158, 225, 226, 158, 484, 293, 4677, 310,
16926 : 260, 293, 293, 3889, 3890, 3891, 38, 172, 3523, 38,
16927 : 4872, 244, 2675, 392, 158, 158, 3531, 473, 158, 4666,
16928 : 3906, 253, 4669, 536, 536, 3523, 536, 302, 158, 3527,
16929 : 448, 178, 473, 3531, 3920, 489, 277, 536, 297, 277,
16930 : 13, 448, 187, 195, 537, 321, 450, 195, 408, 513,
16931 : 534, 4698, 3938, 3939, 3940, 540, 536, 536, 3944, 536,
16932 : 197, 4787, 537, 513, 296, 202, 540, 537, 537, 537,
16933 : 3956, 537, 394, 275, 5111, 537, 490, 406, 473, 5508,
16934 : 312, 241, 221, 5492, 311, 4573, 4574, 540, 225, 226,
16935 : 2792, 38, 540, 2795, 319, 2797, 2798, 473, 59, 537,
16936 : 390, 484, 4671, 4672, 4673, 4674, 4675, 536, 4773, 298,
16937 : 298, 298, 4855, 448, 172, 448, 253, 536, 448, 3956,
16938 : 298, 48, 241, 412, 310, 310, 4012, 241, 536, 293,
16939 : 298, 252, 252, 385, 252, 271, 310, 128, 448, 438,
16940 : 4026, 4027, 540, 202, 196, 368, 540, 357, 310, 310,
16941 : 403, 4037, 493, 400, 3952, 515, 310, 316, 5587, 296,
16942 : 448, 448, 537, 38, 4050, 225, 473, 527, 528, 529,
16943 : 530, 531, 532, 244, 526, 312, 408, 352, 315, 4203,
16944 : 473, 158, 304, 4069, 172, 38, 436, 485, 174, 536,
16945 : 3988, 400, 4078, 158, 536, 158, 158, 353, 304, 493,
16946 : 4037, 473, 293, 38, 293, 310, 4092, 27, 310, 244,
16947 : 4096, 4097, 4098, 193, 304, 193, 5071, 4103, 172, 38,
16948 : 4106, 173, 244, 4109, 400, 310, 172, 5650, 293, 4115,
16949 : 202, 4117, 202, 202, 4120, 202, 202, 540, 62, 4125,
16950 : 4126, 4127, 4128, 538, 59, 4131, 4132, 4133, 4134, 4135,
16951 : 4136, 4137, 4138, 4139, 4140, 4902, 540, 497, 4144, 4145,
16952 : 4146, 540, 178, 540, 448, 536, 274, 4946, 4154, 310,
16953 : 540, 408, 493, 4159, 98, 4201, 302, 4163, 178, 514,
16954 : 316, 478, 537, 515, 376, 4171, 537, 536, 4174, 322,
16955 : 4176, 537, 524, 525, 526, 527, 528, 529, 530, 531,
16956 : 532, 135, 332, 537, 178, 513, 4192, 537, 292, 4195,
16957 : 4196, 540, 4959, 4960, 4200, 4201, 267, 490, 537, 4205,
16958 : 540, 4207, 4208, 540, 537, 537, 5755, 4406, 535, 540,
16959 : 4216, 4217, 4218, 537, 537, 4858, 537, 537, 162, 537,
16960 : 4211, 4212, 4213, 4214, 6189, 6190, 540, 1484, 6193, 448,
16961 : 4236, 4237, 4238, 4239, 4240, 4434, 4242, 4243, 537, 536,
16962 : 4246, 178, 187, 4228, 4250, 537, 23, 536, 4254, 4228,
16963 : 540, 28, 262, 471, 4260, 199, 479, 490, 515, 310,
16964 : 526, 536, 517, 536, 535, 59, 536, 524, 525, 526,
16965 : 527, 528, 529, 530, 531, 532, 537, 3099, 536, 516,
16966 : 310, 4287, 536, 310, 541, 313, 5053, 5054, 4228, 4228,
16967 : 158, 448, 215, 298, 448, 161, 4302, 4228, 4304, 158,
16968 : 448, 448, 79, 80, 293, 249, 536, 536, 207, 4917,
16969 : 4228, 423, 536, 209, 158, 403, 3099, 395, 158, 96,
16970 : 5869, 252, 395, 207, 161, 395, 310, 526, 448, 473,
16971 : 161, 390, 490, 254, 3952, 333, 333, 114, 470, 161,
16972 : 420, 5030, 5031, 448, 5033, 289, 448, 448, 264, 293,
16973 : 264, 264, 448, 4359, 4360, 4361, 390, 4363, 5091, 5283,
16974 : 4366, 138, 4368, 128, 448, 390, 390, 390, 293, 5784,
16975 : 3988, 448, 448, 448, 403, 152, 158, 47, 47, 448,
16976 : 448, 4387, 326, 327, 161, 448, 448, 448, 448, 225,
16977 : 225, 190, 537, 5317, 537, 535, 537, 174, 537, 314,
16978 : 537, 458, 540, 180, 3, 172, 48, 113, 537, 540,
16979 : 172, 536, 38, 5021, 537, 158, 448, 5184, 158, 526,
16980 : 5187, 5188, 172, 304, 368, 4624, 190, 5976, 372, 3251,
16981 : 207, 473, 3254, 377, 3256, 3257, 4442, 536, 473, 158,
16982 : 5207, 390, 386, 390, 390, 540, 156, 390, 390, 400,
16983 : 225, 395, 156, 225, 225, 225, 225, 225, 147, 403,
16984 : 466, 310, 225, 229, 225, 225, 466, 310, 245, 534,
16985 : 59, 310, 416, 537, 13, 322, 310, 484, 178, 537,
16986 : 292, 425, 535, 537, 4448, 540, 430, 537, 537, 537,
16987 : 267, 4497, 537, 6109, 540, 4459, 537, 537, 536, 228,
16988 : 537, 320, 228, 536, 437, 536, 317, 59, 191, 445,
16989 : 536, 5119, 376, 478, 90, 172, 38, 458, 448, 244,
16990 : 473, 473, 215, 59, 4530, 158, 5322, 438, 86, 420,
16991 : 182, 458, 395, 161, 390, 473, 448, 390, 4544, 448,
16992 : 4546, 448, 448, 448, 488, 537, 537, 537, 4554, 536,
16993 : 368, 536, 59, 438, 4560, 479, 172, 310, 78, 493,
16994 : 158, 5687, 113, 5689, 5440, 4571, 458, 537, 536, 225,
16995 : 225, 225, 349, 350, 225, 241, 353, 536, 210, 536,
16996 : 4586, 448, 310, 4201, 540, 4591, 4592, 497, 38, 537,
16997 : 331, 307, 310, 4599, 72, 6144, 3, 458, 44, 400,
16998 : 78, 184, 4608, 380, 185, 113, 383, 536, 540, 537,
16999 : 4228, 5300, 4618, 390, 92, 4250, 448, 536, 540, 4254,
17000 : 397, 178, 5311, 400, 4630, 4631, 145, 242, 225, 537,
17001 : 242, 298, 4250, 537, 10, 4641, 4254, 13, 298, 537,
17002 : 298, 178, 120, 420, 122, 298, 4652, 4653, 537, 537,
17003 : 3472, 428, 331, 3475, 59, 537, 536, 540, 435, 4858,
17004 : 322, 438, 491, 491, 4670, 5469, 443, 537, 537, 45,
17005 : 148, 492, 228, 304, 536, 540, 52, 493, 5835, 536,
17006 : 526, 458, 5698, 303, 458, 178, 445, 493, 209, 3472,
17007 : 448, 78, 3475, 196, 196, 38, 298, 38, 540, 4617,
17008 : 526, 3523, 78, 298, 182, 4711, 59, 438, 485, 3531,
17009 : 6259, 448, 72, 540, 448, 540, 6265, 158, 448, 62,
17010 : 5363, 4727, 161, 537, 4359, 448, 225, 536, 5885, 6,
17011 : 127, 180, 120, 211, 38, 289, 202, 304, 536, 4745,
17012 : 3523, 0, 38, 293, 174, 304, 473, 493, 3531, 59,
17013 : 400, 400, 84, 438, 493, 98, 38, 178, 5401, 172,
17014 : 536, 310, 540, 363, 212, 313, 223, 4773, 178, 478,
17015 : 4776, 417, 59, 38, 51, 5932, 5933, 92, 4784, 4785,
17016 : 5565, 537, 5390, 537, 536, 4791, 4792, 393, 537, 537,
17017 : 4796, 81, 536, 310, 5579, 4801, 136, 203, 4804, 4805,
17018 : 536, 448, 537, 536, 322, 4811, 38, 158, 158, 4815,
17019 : 4816, 4817, 4818, 2070, 2071, 293, 5601, 537, 448, 162,
17020 : 298, 197, 537, 5608, 537, 537, 202, 4833, 2085, 536,
17021 : 4836, 536, 38, 536, 4840, 536, 172, 2094, 536, 4845,
17022 : 99, 6390, 4848, 4849, 536, 4851, 536, 4853, 209, 473,
17023 : 4856, 298, 4858, 265, 536, 536, 199, 537, 400, 158,
17024 : 113, 38, 537, 314, 178, 4871, 458, 172, 346, 4875,
17025 : 5637, 4877, 415, 537, 415, 540, 38, 253, 0, 10,
17026 : 206, 4893, 13, 310, 362, 112, 38, 4893, 478, 537,
17027 : 35, 438, 537, 536, 153, 536, 536, 5682, 5683, 5698,
17028 : 536, 244, 540, 540, 362, 473, 249, 166, 5924, 5598,
17029 : 195, 536, 172, 172, 45, 4921, 4922, 536, 207, 178,
17030 : 197, 52, 438, 537, 310, 184, 5693, 6, 187, 206,
17031 : 207, 4937, 191, 5809, 165, 497, 312, 214, 72, 216,
17032 : 217, 386, 536, 386, 313, 6102, 72, 78, 539, 136,
17033 : 293, 4869, 4870, 230, 477, 493, 4591, 4592, 493, 141,
17034 : 489, 150, 221, 310, 537, 5941, 478, 537, 169, 5845,
17035 : 169, 540, 536, 4591, 332, 536, 4940, 99, 38, 403,
17036 : 266, 444, 444, 178, 327, 438, 298, 4951, 466, 310,
17037 : 310, 536, 400, 10, 438, 254, 13, 5003, 38, 4617,
17038 : 38, 203, 5691, 536, 5010, 313, 313, 180, 180, 536,
17039 : 157, 497, 497, 355, 385, 154, 355, 59, 59, 81,
17040 : 151, 369, 5684, 317, 6181, 6182, 5032, 38, 45, 372,
17041 : 59, 153, 408, 537, 377, 52, 5698, 59, 536, 448,
17042 : 5807, 5047, 125, 386, 166, 5921, 471, 306, 537, 6,
17043 : 172, 310, 395, 536, 400, 141, 178, 316, 310, 497,
17044 : 403, 78, 184, 497, 6221, 187, 197, 310, 5853, 191,
17045 : 5855, 202, 5078, 416, 35, 298, 537, 536, 294, 403,
17046 : 536, 294, 425, 24, 536, 385, 540, 430, 389, 5095,
17047 : 310, 389, 385, 318, 81, 479, 5102, 178, 540, 221,
17048 : 536, 536, 150, 448, 426, 5111, 10, 426, 451, 13,
17049 : 478, 540, 157, 415, 537, 6, 120, 376, 415, 317,
17050 : 5126, 493, 253, 479, 334, 180, 493, 180, 81, 473,
17051 : 932, 5518, 254, 5139, 151, 5141, 537, 536, 536, 515,
17052 : 478, 45, 537, 536, 1019, 488, 1018, 3435, 52, 492,
17053 : 2974, 527, 528, 529, 530, 531, 532, 972, 1715, 2883,
17054 : 3650, 5167, 1410, 4405, 5363, 4380, 6093, 3001, 3055, 3869,
17055 : 5443, 5921, 5178, 6233, 78, 4571, 435, 5492, 4378, 4378,
17056 : 197, 312, 5080, 5468, 306, 202, 3637, 3575, 310, 5716,
17057 : 5389, 4934, 5401, 6321, 316, 6222, 5362, 6322, 4833, 5951,
17058 : 6259, 5950, 5401, 6113, 3643, 4840, 465, 5126, 5400, 4592,
17059 : 4845, 4618, 4603, 4848, 4561, 5894, 3069, 6233, 3069, 4400,
17060 : 5138, 3675, 4840, 3917, 1014, 5231, 4587, 4845, 5120, 5475,
17061 : 4848, 490, 3961, 492, 493, 5241, 253, 4654, 5244, 6347,
17062 : 5796, 5247, 5248, 5249, 5887, 6483, 6458, 151, 5459, 3877,
17063 : 4626, 4869, 4870, 5445, 376, 514, 6125, 5403, 5669, 5406,
17064 : 18, 28, 5924, 667, 1236, 5635, 5272, 5273, 4026, 4682,
17065 : 5276, 4685, 6343, 1875, 3085, 534, 4629, 408, 537, 538,
17066 : 539, 3553, 2740, 5518, 3972, 1919, 5784, 5293, 719, 1916,
17067 : 3809, 5297, 752, 197, 4433, 312, 3000, 5303, 202, 1930,
17068 : 3726, 5307, 6151, 6394, 4658, 5311, 861, 6317, 5314, 1529,
17069 : 5316, 4660, 4871, 435, 6059, 3031, 5322, 1828, 4302, 2682,
17070 : 5630, 5633, 5328, 1426, 40, 5331, 40, 4727, 1954, 3494,
17071 : 3509, 1387, 6052, 2692, 5857, 3475, 1487, 4256, 4238, 3472,
17072 : 5308, 4303, 5587, 465, 5586, 3472, 6371, 6046, 5844, 253,
17073 : 1486, 6194, 3472, 6410, 1489, 5563, 5362, 5363, 5364, 4163,
17074 : 5366, 2590, 5368, 5858, 1443, 3412, 38, 5859, 490, 2591,
17075 : 492, 493, 2087, 3394, 3030, 3267, 3392, 5808, 6412, 3382,
17076 : 3303, 4095, 2596, 2680, 515, -1, 920, -1, 665, -1,
17077 : 62, 408, 514, -1, 5400, 5401, 527, 528, 529, 530,
17078 : 531, 532, -1, -1, -1, 6437, -1, 684, 312, -1,
17079 : -1, -1, 534, 690, -1, 537, 538, 539, -1, -1,
17080 : -1, -1, -1, -1, -1, 702, 98, -1, 4250, -1,
17081 : -1, 6093, 4254, -1, -1, 2692, -1, -1, -1, 5445,
17082 : -1, 718, 5320, -1, -1, -1, 723, -1, 6215, -1,
17083 : -1, 728, -1, 5459, -1, 732, 733, -1, 5464, -1,
17084 : -1, -1, 739, 5469, 741, 742, -1, 4250, -1, -1,
17085 : -1, 4254, 5478, -1, -1, -1, -1, 754, 755, -1,
17086 : -1, -1, 5488, -1, -1, -1, 5492, -1, 765, 5495,
17087 : 162, 5126, -1, -1, -1, -1, -1, -1, 515, -1,
17088 : 5506, 5507, 5508, -1, 408, -1, -1, -1, -1, -1,
17089 : 527, 528, 529, 530, 531, 532, -1, -1, -1, 5518,
17090 : 5138, 6397, 5518, 5518, 5518, 5518, 5518, 199, -1, 5518,
17091 : -1, 5518, -1, 5518, 5518, 6459, 5542, 4359, 5518, 5518,
17092 : -1, 818, 6327, -1, -1, 5518, -1, -1, -1, 5518,
17093 : 5507, 5518, -1, 5559, -1, 5473, -1, 5563, -1, 5565,
17094 : -1, -1, 5608, 840, 841, -1, -1, -1, -1, 846,
17095 : -1, 6233, 244, 5579, -1, -1, 4359, 249, 5518, 5518,
17096 : -1, 5587, 6458, -1, 5590, -1, 5504, 5518, 5594, -1,
17097 : -1, 6376, -1, -1, 871, 5601, 873, 6330, 6331, -1,
17098 : 5518, -1, 5608, -1, -1, -1, -1, 6483, -1, -1,
17099 : -1, 515, -1, -1, -1, -1, -1, -1, -1, -1,
17100 : 897, 293, -1, 527, 528, 529, 530, 531, 532, -1,
17101 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17102 : -1, -1, -1, 920, -1, 5651, -1, -1, -1, -1,
17103 : -1, -1, -1, 25, 5660, 327, 933, -1, -1, 31,
17104 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17105 : 5676, -1, 5307, -1, 46, -1, 5682, 5683, -1, -1,
17106 : -1, 5687, 5688, 5689, 5690, -1, -1, -1, 5887, 5307,
17107 : -1, -1, -1, 5328, -1, -1, -1, -1, -1, -1,
17108 : 372, -1, -1, -1, 76, 377, -1, -1, -1, -1,
17109 : -1, -1, 5718, -1, 386, -1, -1, -1, -1, -1,
17110 : -1, 5727, -1, 395, -1, -1, -1, 5362, -1, -1,
17111 : -1, 403, -1, -1, -1, -1, -1, -1, -1, -1,
17112 : -1, -1, -1, -1, 416, -1, 5752, -1, -1, 5755,
17113 : -1, -1, -1, 425, -1, -1, -1, -1, 430, 131,
17114 : -1, 133, -1, -1, 1041, 1042, 1043, -1, 140, 4591,
17115 : 4592, -1, 144, 1050, 5780, -1, -1, -1, 1055, 451,
17116 : -1, -1, -1, 1060, 1061, -1, -1, -1, 1065, -1,
17117 : 1067, -1, -1, -1, 1071, -1, -1, -1, -1, -1,
17118 : -1, 173, 5808, -1, -1, -1, -1, -1, 4591, 4592,
17119 : 1087, -1, -1, -1, 5820, -1, 488, -1, -1, -1,
17120 : 492, -1, -1, 5829, 5830, 5831, -1, -1, -1, 5835,
17121 : -1, -1, -1, -1, -1, 5841, -1, 209, 5844, 5757,
17122 : -1, -1, -1, -1, -1, -1, -1, 5853, -1, 5855,
17123 : -1, 5857, 5858, -1, 1131, 5473, 1133, 1134, -1, -1,
17124 : -1, -1, -1, 5869, -1, -1, -1, -1, -1, -1,
17125 : 5876, -1, -1, 5508, -1, -1, -1, -1, -1, 5885,
17126 : -1, 5887, -1, -1, -1, 5891, 5504, -1, -1, -1,
17127 : 5896, 6083, -1, -1, -1, -1, -1, 1174, -1, -1,
17128 : 5518, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17129 : -1, -1, -1, -1, -1, -1, -1, 289, -1, -1,
17130 : -1, 293, -1, -1, -1, 1202, 5932, 5933, -1, -1,
17131 : -1, -1, 304, -1, -1, -1, -1, -1, -1, -1,
17132 : -1, -1, 314, -1, -1, -1, -1, -1, 5866, -1,
17133 : -1, -1, 5587, -1, 326, -1, 5962, -1, 1235, -1,
17134 : 6152, 6153, -1, -1, -1, -1, -1, 1244, -1, 1246,
17135 : 5976, 25, -1, -1, -1, -1, -1, 31, -1, -1,
17136 : -1, -1, -1, -1, -1, -1, 1263, -1, -1, -1,
17137 : 5608, 1268, 46, -1, -1, -1, 368, -1, -1, 371,
17138 : 372, -1, -1, 1280, -1, -1, -1, -1, -1, -1,
17139 : -1, 4833, -1, -1, -1, -1, -1, -1, 4840, -1,
17140 : -1, 6027, 76, 4845, -1, -1, 4848, 4849, -1, -1,
17141 : -1, 403, -1, -1, -1, -1, 6042, -1, -1, -1,
17142 : 6046, -1, -1, -1, -1, 1322, 6052, -1, -1, -1,
17143 : 4833, -1, -1, -1, 6060, -1, -1, 4840, 6064, -1,
17144 : -1, -1, 4845, 3320, 3321, 4848, -1, -1, 3325, -1,
17145 : -1, -1, -1, -1, 1351, 1352, 1353, 6083, 1355, 133,
17146 : -1, -1, -1, -1, -1, -1, 140, -1, -1, 6095,
17147 : 144, -1, -1, -1, -1, -1, 6102, -1, -1, 1376,
17148 : -1, -1, -1, -1, 476, -1, -1, -1, -1, 3366,
17149 : 3367, -1, -1, -1, -1, -1, -1, -1, -1, 173,
17150 : 5755, 6127, -1, -1, 1401, -1, -1, -1, 6134, -1,
17151 : -1, -1, 1409, 1410, -1, -1, -1, 5755, 6144, 5757,
17152 : -1, -1, -1, -1, -1, -1, 6152, 6153, 6154, -1,
17153 : -1, -1, 6158, -1, -1, 209, 1433, -1, -1, -1,
17154 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17155 : -1, -1, 6151, -1, -1, 6181, 6182, 6183, -1, -1,
17156 : -1, -1, -1, 6189, 6190, 1462, -1, 6193, -1, -1,
17157 : 6196, -1, -1, -1, -1, -1, 10, -1, -1, 13,
17158 : -1, -1, 1479, 17, 18, 19, 1483, 1484, 6126, -1,
17159 : -1, 6151, 6151, -1, -1, 6221, -1, -1, -1, -1,
17160 : 6151, 6227, 1499, 6269, -1, -1, -1, -1, 1505, -1,
17161 : -1, 45, -1, 6151, 5869, 289, -1, -1, 52, 293,
17162 : -1, -1, 62, -1, -1, -1, -1, -1, 5866, -1,
17163 : 304, -1, -1, 6259, 6260, 6261, -1, -1, -1, 6265,
17164 : 314, -1, -1, -1, 78, -1, -1, -1, -1, -1,
17165 : -1, -1, 326, 5095, -1, -1, -1, 6283, 98, 6471,
17166 : 6472, -1, -1, -1, 6290, -1, -1, -1, -1, -1,
17167 : 6269, -1, 6298, -1, -1, 1572, -1, -1, -1, -1,
17168 : 6306, -1, -1, -1, 5126, -1, 6312, -1, -1, 22,
17169 : -1, 6317, -1, -1, 368, 28, -1, 371, 372, -1,
17170 : -1, 6327, -1, -1, -1, -1, -1, -1, -1, 6269,
17171 : 6269, -1, -1, -1, -1, -1, 1613, -1, 6269, -1,
17172 : -1, 5976, 162, 5126, -1, 10, -1, -1, 13, 403,
17173 : -1, 6269, 17, 18, 19, -1, -1, 6363, 6364, 6365,
17174 : 6366, -1, -1, -1, -1, 6371, -1, -1, -1, 1646,
17175 : 6376, -1, -1, -1, -1, -1, -1, -1, -1, 199,
17176 : 45, 6387, -1, 197, 6390, -1, -1, 52, 202, -1,
17177 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17178 : -1, -1, -1, -1, 6410, -1, -1, -1, -1, -1,
17179 : -1, 225, 226, 78, -1, 6394, -1, -1, -1, -1,
17180 : -1, -1, 476, -1, -1, -1, -1, -1, -1, 249,
17181 : -1, 6437, 6438, -1, -1, -1, 1713, -1, -1, 253,
17182 : -1, -1, -1, -1, -1, -1, -1, -1, 6454, -1,
17183 : 0, 1728, 1729, 1730, 6394, 6394, -1, -1, -1, -1,
17184 : -1, -1, -1, 6394, -1, 6471, 6472, -1, -1, 6475,
17185 : -1, 6477, -1, 293, -1, -1, 6394, -1, -1, -1,
17186 : -1, -1, 296, -1, -1, 5307, -1, -1, 6494, -1,
17187 : -1, -1, -1, -1, -1, -1, -1, -1, 312, -1,
17188 : -1, -1, -1, -1, -1, -1, 5328, 327, 6126, 6144,
17189 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17190 : -1, 207, -1, -1, 5307, -1, -1, -1, -1, -1,
17191 : 216, -1, 197, 6151, -1, -1, -1, 202, -1, -1,
17192 : 5362, -1, -1, -1, 230, 5328, -1, -1, -1, 99,
17193 : -1, 1828, 372, -1, 374, -1, -1, 377, -1, -1,
17194 : 225, 226, -1, 1840, -1, -1, 386, -1, -1, -1,
17195 : -1, -1, 17, -1, 1851, 395, -1, -1, 5400, 5362,
17196 : -1, 26, -1, 403, -1, -1, 1863, -1, 253, -1,
17197 : 1867, -1, -1, -1, 408, -1, 416, -1, -1, -1,
17198 : -1, -1, -1, 153, -1, 425, -1, -1, -1, 1886,
17199 : 430, -1, -1, -1, -1, -1, 166, 1894, -1, -1,
17200 : -1, -1, 172, 5445, 6259, 1902, -1, -1, 178, -1,
17201 : 6265, 296, -1, -1, 184, -1, -1, 187, -1, -1,
17202 : -1, 191, -1, -1, 1921, -1, -1, 312, -1, -1,
17203 : -1, 6269, -1, 1930, -1, -1, 1933, -1, -1, 1936,
17204 : -1, -1, 1939, 1940, -1, -1, 1943, 1944, 488, 1946,
17205 : 1947, 221, -1, -1, -1, -1, -1, -1, -1, -1,
17206 : -1, 1958, -1, 1960, 1961, -1, 5508, -1, -1, -1,
17207 : -1, -1, -1, 1970, 1971, -1, 1973, 1974, -1, -1,
17208 : -1, 515, -1, -1, 254, -1, -1, -1, -1, -1,
17209 : 524, 525, 526, 527, 528, 529, 530, 531, 532, -1,
17210 : -1, -1, -1, -1, -1, 5508, -1, -1, -1, -1,
17211 : -1, -1, -1, -1, 2011, -1, -1, -1, 2015, 2016,
17212 : -1, -1, -1, 408, -1, -1, -1, -1, -1, -1,
17213 : -1, -1, -1, -1, -1, 6390, 306, -1, -1, -1,
17214 : 310, -1, -1, -1, -1, 5587, 316, -1, -1, -1,
17215 : -1, -1, -1, 2050, -1, 2052, 6394, -1, -1, -1,
17216 : 2057, 2058, -1, -1, -1, -1, -1, 2064, 2065, 2066,
17217 : 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076,
17218 : -1, -1, -1, 2080, 5587, 2082, -1, 2084, 2085, 2086,
17219 : 2087, 2088, 2089, -1, -1, 2092, -1, 2094, 2095, -1,
17220 : -1, 2098, -1, -1, -1, -1, 376, -1, -1, -1,
17221 : -1, -1, -1, -1, -1, 2112, 2113, 2114, 2115, -1,
17222 : -1, -1, 25, -1, -1, -1, 4103, -1, 31, -1,
17223 : 515, -1, -1, -1, 2131, -1, 2133, -1, -1, 524,
17224 : 525, 526, 527, 528, 529, 530, 531, 532, 4125, 4126,
17225 : 4127, 4128, -1, -1, 4131, 4132, 4133, 4134, 4135, 4136,
17226 : 4137, 4138, 4139, 4140, 38, 435, -1, -1, -1, -1,
17227 : -1, -1, -1, 76, -1, -1, -1, -1, -1, -1,
17228 : -1, -1, 4159, -1, -1, 5727, 60, -1, -1, -1,
17229 : -1, -1, -1, -1, -1, 465, -1, -1, -1, -1,
17230 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17231 : -1, -1, 86, 5755, -1, -1, -1, -1, 4195, 4196,
17232 : 490, -1, 492, 493, -1, -1, -1, -1, -1, -1,
17233 : 133, -1, -1, -1, -1, -1, -1, 140, 112, 113,
17234 : -1, 144, -1, -1, 514, -1, 120, -1, -1, -1,
17235 : -1, -1, 5755, -1, -1, -1, -1, -1, -1, -1,
17236 : -1, -1, -1, -1, 534, 4242, -1, 537, 538, 539,
17237 : 173, -1, -1, -1, -1, -1, -1, -1, 684, -1,
17238 : -1, -1, 2279, -1, 690, -1, 160, -1, -1, -1,
17239 : -1, 10, -1, -1, 13, -1, 702, -1, 17, 18,
17240 : 19, -1, -1, -1, -1, -1, 209, -1, 182, -1,
17241 : -1, -1, -1, -1, -1, -1, 35, -1, -1, -1,
17242 : -1, -1, -1, -1, -1, -1, 45, 5869, -1, -1,
17243 : -1, 205, -1, 52, -1, -1, 2333, -1, -1, -1,
17244 : -1, 25, -1, -1, -1, -1, 779, 31, 781, -1,
17245 : 783, -1, -1, -1, -1, -1, 789, 790, 791, 78,
17246 : -1, -1, 46, -1, -1, -1, 5869, -1, -1, -1,
17247 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17248 : -1, -1, -1, -1, -1, -1, 289, -1, -1, 263,
17249 : 293, -1, 76, 2390, 268, -1, -1, -1, -1, 273,
17250 : -1, 304, -1, -1, -1, -1, -1, -1, -1, -1,
17251 : -1, 314, -1, -1, -1, 289, -1, -1, -1, 293,
17252 : -1, -1, -1, 326, -1, -1, -1, -1, -1, -1,
17253 : -1, -1, -1, -1, 5976, -1, -1, -1, -1, -1,
17254 : -1, -1, -1, -1, -1, -1, -1, 131, -1, 133,
17255 : -1, 325, -1, -1, -1, -1, 140, -1, -1, -1,
17256 : 144, -1, -1, -1, -1, 368, -1, -1, 371, 372,
17257 : -1, -1, -1, 5976, -1, 51, -1, -1, 197, -1,
17258 : -1, -1, -1, 202, -1, -1, -1, -1, -1, 173,
17259 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 373,
17260 : 403, -1, -1, 668, -1, -1, 225, 226, -1, -1,
17261 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17262 : -1, -1, -1, 397, -1, 209, -1, -1, -1, -1,
17263 : -1, -1, -1, -1, 253, -1, -1, -1, -1, -1,
17264 : -1, 6083, -1, -1, 418, -1, 420, 980, -1, 423,
17265 : -1, -1, -1, 718, 719, -1, -1, -1, -1, -1,
17266 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 4546,
17267 : -1, -1, -1, 476, -1, -1, -1, 296, 2575, 2576,
17268 : 2577, 2578, 2579, 2580, 2581, 2582, 2583, -1, 2585, -1,
17269 : -1, -1, -1, 312, -1, 469, 315, -1, -1, 2596,
17270 : -1, 2598, 6144, -1, -1, 289, -1, -1, -1, 293,
17271 : 6152, 6153, -1, -1, -1, -1, -1, 1050, -1, -1,
17272 : 304, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17273 : 314, -1, -1, -1, -1, -1, -1, -1, -1, 2636,
17274 : -1, 6144, 326, 2640, -1, -1, 2643, -1, 2645, 814,
17275 : -1, 2648, -1, -1, -1, 2652, -1, -1, -1, -1,
17276 : -1, -1, 536, -1, -1, -1, -1, -1, -1, 834,
17277 : -1, -1, -1, -1, -1, -1, 2673, 842, 2675, -1,
17278 : 845, 846, 847, -1, 368, -1, -1, 371, 372, 408,
17279 : -1, -1, -1, -1, -1, 2692, -1, -1, -1, -1,
17280 : -1, -1, -1, -1, 2701, 2702, -1, -1, -1, -1,
17281 : -1, -1, -1, -1, -1, -1, -1, 6259, -1, 403,
17282 : -1, -1, -1, 6265, -1, -1, -1, -1, -1, -1,
17283 : -1, 2728, -1, -1, -1, -1, -1, -1, 2735, -1,
17284 : -1, 6283, 2739, 2740, -1, -1, -1, -1, -1, 2746,
17285 : -1, -1, -1, 2750, -1, -1, 6259, 2754, -1, -1,
17286 : -1, -1, 6265, -1, -1, -1, 2763, -1, -1, -1,
17287 : -1, -1, -1, -1, -1, -1, 25, -1, -1, -1,
17288 : -1, 2778, 31, -1, 2781, -1, -1, -1, -1, -1,
17289 : -1, -1, 476, -1, -1, 2792, 515, 2794, 2795, 4776,
17290 : 2797, 2798, -1, 2800, -1, 524, 525, 526, 527, 528,
17291 : 529, 530, 531, 532, -1, 2812, -1, -1, 537, -1,
17292 : -1, 540, -1, 6365, -1, -1, -1, 76, -1, -1,
17293 : -1, -1, -1, -1, -1, 2832, 2833, -1, -1, -1,
17294 : -1, -1, -1, -1, -1, -1, -1, -1, 6390, -1,
17295 : -1, 2848, -1, -1, -1, -1, -1, -1, -1, -1,
17296 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17297 : -1, -1, -1, 2870, 2871, -1, -1, 2874, -1, -1,
17298 : -1, -1, -1, -1, 133, 1050, -1, 6390, -1, -1,
17299 : -1, 140, -1, -1, -1, 144, 6438, -1, -1, -1,
17300 : -1, 2898, -1, 2900, -1, -1, -1, 2904, -1, -1,
17301 : -1, -1, 6454, -1, -1, -1, -1, -1, -1, -1,
17302 : -1, 2918, -1, -1, 173, -1, -1, -1, 2925, 6471,
17303 : 6472, 2928, -1, -1, 25, -1, -1, 2934, -1, -1,
17304 : 31, -1, -1, -1, 10, -1, -1, 13, -1, -1,
17305 : -1, 17, 18, 19, -1, -1, -1, 2954, -1, -1,
17306 : 209, -1, -1, 2960, -1, -1, -1, -1, -1, 35,
17307 : 2967, 1404, -1, -1, -1, -1, 1409, 1410, -1, 45,
17308 : -1, -1, -1, -1, 2981, 76, 52, -1, -1, -1,
17309 : -1, -1, -1, -1, -1, -1, -1, -1, 2995, -1,
17310 : -1, -1, -1, 3000, 1437, -1, -1, -1, -1, 3006,
17311 : -1, -1, 78, 1446, -1, 1448, -1, -1, -1, 1452,
17312 : -1, -1, -1, -1, -1, -1, 1459, 3024, 3025, 3026,
17313 : -1, -1, -1, 3030, -1, -1, -1, -1, -1, -1,
17314 : 289, -1, 133, -1, 293, -1, -1, -1, -1, 140,
17315 : -1, -1, -1, 144, -1, 304, -1, -1, -1, -1,
17316 : 3057, 3058, -1, -1, -1, 314, -1, -1, -1, 3066,
17317 : -1, -1, -1, -1, -1, -1, 1241, 326, -1, -1,
17318 : -1, -1, 173, -1, -1, -1, -1, -1, -1, -1,
17319 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17320 : -1, -1, 3099, 1268, -1, -1, -1, -1, -1, -1,
17321 : -1, -1, -1, -1, -1, -1, -1, 1550, 209, 368,
17322 : -1, -1, 371, 372, -1, -1, -1, 1560, -1, -1,
17323 : -1, 197, -1, -1, 3131, -1, 202, -1, 3135, -1,
17324 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17325 : -1, -1, 728, -1, 403, -1, -1, -1, -1, 225,
17326 : 226, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17327 : -1, 1604, 1605, -1, -1, -1, -1, -1, 754, -1,
17328 : -1, -1, -1, -1, -1, -1, -1, 253, -1, -1,
17329 : -1, -1, 1357, -1, -1, -1, -1, -1, 289, -1,
17330 : -1, 1366, 293, -1, -1, -1, -1, -1, -1, -1,
17331 : -1, -1, -1, 304, 1647, -1, -1, 1382, 1651, 1652,
17332 : -1, -1, -1, 314, 3221, -1, 3223, 476, -1, -1,
17333 : 296, -1, -1, -1, -1, 326, 1401, -1, -1, 1404,
17334 : 1405, 3238, -1, 3240, 1409, 1410, 312, -1, -1, 315,
17335 : 3247, -1, -1, -1, 3251, -1, 3253, 3254, -1, 3256,
17336 : 3257, 3258, -1, -1, -1, -1, -1, 5244, -1, 3266,
17337 : -1, -1, -1, -1, 3271, -1, -1, 368, -1, -1,
17338 : 371, 372, -1, -1, -1, -1, -1, -1, -1, -1,
17339 : -1, 3288, -1, -1, -1, -1, -1, -1, -1, -1,
17340 : -1, -1, -1, -1, -1, -1, -1, 1713, -1, -1,
17341 : -1, -1, 403, -1, -1, -1, -1, -1, -1, -1,
17342 : 5297, 897, -1, 3320, 3321, 3322, -1, -1, 3325, -1,
17343 : -1, -1, -1, -1, -1, -1, 3333, 3334, 3335, 3336,
17344 : -1, -1, 408, -1, -1, -1, -1, 3344, -1, -1,
17345 : -1, -1, 3349, 3350, -1, 3352, -1, 3354, -1, -1,
17346 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 3366,
17347 : 3367, 25, -1, 3370, -1, -1, -1, 31, -1, -1,
17348 : -1, -1, -1, -1, -1, 476, -1, -1, -1, -1,
17349 : -1, 25, -1, -1, 3391, -1, 3393, 31, 3395, -1,
17350 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17351 : -1, -1, 1845, -1, -1, -1, -1, 3414, -1, -1,
17352 : -1, 25, 76, -1, -1, -1, -1, 31, -1, -1,
17353 : -1, -1, -1, -1, -1, -1, -1, -1, 3435, -1,
17354 : -1, -1, 76, -1, -1, -1, -1, -1, -1, 515,
17355 : -1, -1, -1, -1, -1, -1, -1, -1, 524, 525,
17356 : 526, 527, 528, 529, 530, 531, 532, -1, -1, -1,
17357 : -1, -1, 76, -1, 540, 3472, -1, -1, 3475, 133,
17358 : 1886, -1, -1, -1, 1060, -1, 140, -1, 1894, -1,
17359 : 144, 51, 3489, -1, -1, 1071, 1902, 3494, -1, 133,
17360 : -1, 1666, -1, -1, -1, -1, 140, -1, -1, 1674,
17361 : 144, 1087, 3509, -1, -1, -1, -1, -1, -1, 173,
17362 : -1, -1, -1, -1, -1, -1, 3523, -1, -1, 133,
17363 : -1, -1, -1, -1, 3531, -1, 140, -1, -1, 173,
17364 : 144, 1947, -1, -1, -1, -1, 3543, -1, -1, 3546,
17365 : 0, 3548, -1, -1, -1, 209, 3553, -1, -1, -1,
17366 : -1, -1, -1, -1, -1, -1, -1, -1, 1974, 173,
17367 : 20, 3568, 3569, -1, -1, 209, -1, 3574, -1, -1,
17368 : -1, 31, 5559, 33, 34, -1, -1, -1, -1, -1,
17369 : -1, -1, 3589, -1, -1, 3592, -1, -1, 3595, -1,
17370 : -1, 51, -1, -1, -1, 209, 3603, -1, -1, -1,
17371 : -1, 61, -1, 5590, -1, -1, -1, -1, -1, -1,
17372 : -1, -1, -1, 73, -1, 75, 76, 2060, 2061, -1,
17373 : -1, 3628, 82, -1, 84, 289, -1, 3634, -1, 293,
17374 : -1, -1, -1, -1, 2077, 2078, -1, 97, -1, 99,
17375 : 304, -1, -1, -1, -1, 289, -1, -1, -1, 293,
17376 : 314, -1, -1, -1, -1, -1, 116, -1, 1244, 119,
17377 : 304, -1, 326, -1, -1, 2108, -1, 3674, 3675, 3676,
17378 : 314, -1, -1, -1, 134, 289, 136, -1, -1, 293,
17379 : 140, -1, 326, -1, -1, -1, -1, 147, -1, -1,
17380 : 304, -1, 3699, -1, -1, -1, -1, 157, -1, 159,
17381 : 314, 3708, -1, 3710, 368, -1, 166, 371, 372, -1,
17382 : -1, 3718, 326, -1, 1889, -1, -1, -1, 1893, -1,
17383 : -1, -1, -1, -1, 184, -1, -1, 371, 372, -1,
17384 : -1, -1, -1, 3740, -1, -1, -1, -1, -1, 403,
17385 : -1, 201, -1, -1, -1, -1, -1, -1, -1, -1,
17386 : -1, -1, -1, -1, 368, -1, -1, 371, 372, 403,
17387 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17388 : -1, -1, 10, -1, -1, 13, -1, -1, -1, 17,
17389 : 18, 19, -1, -1, -1, -1, -1, -1, -1, 403,
17390 : -1, -1, -1, -1, -1, 255, 256, 35, -1, 3806,
17391 : -1, 261, -1, -1, -1, -1, -1, 45, -1, -1,
17392 : -1, -1, 476, -1, 52, -1, 276, -1, 1404, -1,
17393 : -1, -1, -1, 3830, -1, -1, -1, -1, 3835, -1,
17394 : -1, -1, 476, -1, 3841, 295, -1, -1, -1, -1,
17395 : 78, -1, -1, 3850, -1, -1, -1, -1, -1, -1,
17396 : -1, -1, -1, -1, -1, -1, -1, 5844, -1, -1,
17397 : -1, -1, 476, -1, -1, -1, -1, -1, -1, -1,
17398 : 3877, 3878, -1, -1, -1, -1, 3883, -1, 3885, -1,
17399 : -1, -1, -1, -1, 344, -1, -1, -1, 2063, -1,
17400 : -1, 3898, -1, 3900, -1, -1, -1, -1, -1, 359,
17401 : -1, -1, -1, -1, 364, 365, -1, 367, -1, -1,
17402 : -1, -1, 372, 3920, -1, -1, -1, -1, 378, 1505,
17403 : -1, 381, -1, -1, -1, -1, -1, -1, 388, -1,
17404 : -1, -1, -1, -1, -1, 395, 396, -1, -1, 3946,
17405 : -1, -1, -1, 403, -1, -1, -1, 407, -1, -1,
17406 : -1, -1, -1, -1, -1, -1, -1, -1, 418, 197,
17407 : 3967, 3968, -1, -1, 202, -1, -1, -1, -1, -1,
17408 : -1, -1, -1, -1, -1, 435, -1, -1, -1, -1,
17409 : -1, -1, -1, 3990, -1, -1, 1572, 225, 226, -1,
17410 : -1, -1, -1, -1, -1, -1, 456, -1, -1, -1,
17411 : -1, -1, 4009, -1, -1, -1, -1, -1, 468, -1,
17412 : -1, -1, -1, -1, 474, 253, -1, -1, -1, 479,
17413 : -1, 4028, -1, -1, -1, 4032, -1, 1613, -1, -1,
17414 : -1, -1, -1, 493, -1, -1, -1, -1, -1, -1,
17415 : -1, -1, -1, -1, -1, 51, 4053, -1, -1, -1,
17416 : -1, -1, -1, -1, -1, 6042, -1, 517, 296, -1,
17417 : 1646, -1, 4069, -1, -1, 4072, -1, -1, -1, -1,
17418 : -1, 4078, -1, -1, 312, -1, 536, 315, -1, 539,
17419 : -1, -1, -1, -1, -1, 4092, -1, -1, -1, 4096,
17420 : 4097, 4098, -1, -1, -1, -1, 4103, -1, -1, 4106,
17421 : -1, -1, 4109, -1, -1, -1, -1, -1, 4115, -1,
17422 : 4117, -1, -1, 4120, -1, -1, -1, 4124, 4125, 4126,
17423 : 4127, 4128, -1, -1, 4131, 4132, 4133, 4134, 4135, 4136,
17424 : 4137, 4138, 4139, 4140, -1, -1, -1, 4144, 4145, 4146,
17425 : -1, -1, 4149, -1, -1, -1, -1, 4154, -1, -1,
17426 : -1, -1, 4159, -1, 4161, -1, 4163, -1, 728, -1,
17427 : -1, -1, -1, -1, 4171, -1, -1, 4174, -1, 4176,
17428 : 408, -1, -1, -1, 10, -1, -1, 13, -1, -1,
17429 : -1, 17, 18, 19, 754, 4192, -1, -1, 4195, 4196,
17430 : -1, -1, -1, 4200, 4201, -1, -1, -1, 4205, 35,
17431 : 4207, -1, 6189, 6190, -1, -1, 6193, -1, -1, 45,
17432 : -1, -1, -1, -1, -1, -1, 52, -1, -1, -1,
17433 : 2663, 2664, -1, -1, -1, -1, 2669, -1, -1, 4236,
17434 : -1, -1, -1, -1, -1, 4242, -1, -1, -1, -1,
17435 : -1, -1, 78, 4250, -1, -1, -1, 4254, -1, -1,
17436 : -1, -1, -1, -1, 1840, -1, -1, -1, 2701, 2702,
17437 : -1, -1, -1, -1, -1, 1851, -1, -1, -1, -1,
17438 : -1, -1, -1, -1, -1, -1, -1, 515, -1, -1,
17439 : 4287, 1867, -1, -1, -1, -1, 524, 525, 526, 527,
17440 : 528, 529, 530, 531, 532, -1, -1, 4304, -1, -1,
17441 : -1, -1, 540, 4310, -1, -1, -1, -1, -1, -1,
17442 : -1, -1, 2728, -1, -1, -1, -1, -1, -1, -1,
17443 : 2763, -1, -1, -1, -1, -1, -1, 897, -1, 4336,
17444 : 2746, -1, -1, -1, 2750, 1921, -1, -1, 2754, -1,
17445 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17446 : 1936, -1, 4359, 1939, 1940, -1, -1, -1, -1, -1,
17447 : -1, 197, 2778, -1, -1, -1, 202, 10, -1, -1,
17448 : 13, -1, -1, -1, 17, 18, 19, -1, -1, -1,
17449 : -1, -1, -1, -1, 1970, 1971, -1, -1, -1, 225,
17450 : 226, -1, 35, 4400, -1, -1, 2812, -1, 4405, 4406,
17451 : 4407, -1, 45, -1, -1, -1, -1, -1, 2851, 52,
17452 : -1, -1, -1, -1, -1, -1, 2832, 253, -1, -1,
17453 : -1, -1, -1, -1, -1, -1, 4433, 4434, -1, -1,
17454 : -1, -1, -1, -1, -1, 78, -1, -1, -1, 10,
17455 : 2615, -1, 13, -1, -1, -1, 17, 18, 19, -1,
17456 : -1, -1, -1, -1, -1, 2871, -1, -1, -1, -1,
17457 : 296, -1, -1, -1, 35, -1, -1, -1, -1, -1,
17458 : -1, 1041, 4479, -1, 45, 4482, 312, -1, -1, 315,
17459 : -1, 52, 2898, -1, -1, -1, -1, -1, 2904, -1,
17460 : 1060, -1, -1, -1, -1, -1, -1, 2940, -1, -1,
17461 : -1, 1071, 2918, -1, -1, 2948, -1, 78, 2951, 2925,
17462 : -1, -1, 2928, -1, -1, -1, -1, 1087, 2934, -1,
17463 : 2963, -1, -1, -1, -1, -1, 2112, -1, -1, -1,
17464 : -1, -1, -1, -1, -1, -1, -1, -1, 2954, 4546,
17465 : -1, -1, -1, -1, 2960, -1, -1, -1, -1, -1,
17466 : -1, 2967, -1, -1, 197, -1, -1, -1, -1, 202,
17467 : -1, -1, -1, -1, -1, 2981, 4573, 4574, -1, -1,
17468 : 4577, -1, 408, -1, -1, -1, -1, 4584, -1, 2995,
17469 : -1, -1, 225, 226, 4591, 4592, -1, -1, 2763, -1,
17470 : 3006, -1, -1, -1, 4601, -1, -1, -1, -1, -1,
17471 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17472 : 253, -1, -1, -1, -1, -1, -1, 4624, -1, -1,
17473 : -1, -1, 4629, 4630, 4631, -1, 197, -1, -1, -1,
17474 : -1, 202, -1, -1, 4641, -1, -1, -1, -1, -1,
17475 : -1, -1, -1, -1, 2819, -1, -1, -1, -1, -1,
17476 : -1, -1, -1, 296, 225, 226, -1, -1, -1, -1,
17477 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 312,
17478 : -1, -1, 315, -1, 1244, 4682, -1, -1, 4685, 515,
17479 : -1, -1, 253, -1, -1, -1, -1, -1, 524, 525,
17480 : 526, 527, 528, 529, 530, 531, 532, -1, -1, -1,
17481 : -1, 537, -1, -1, 4711, -1, 25, -1, -1, -1,
17482 : -1, -1, 31, -1, -1, -1, -1, -1, -1, -1,
17483 : 4727, -1, 728, -1, -1, 296, -1, -1, -1, -1,
17484 : -1, 2906, -1, -1, -1, -1, -1, -1, 4745, -1,
17485 : -1, 312, -1, -1, 315, -1, -1, -1, 754, -1,
17486 : -1, -1, -1, -1, -1, 2930, -1, 76, -1, -1,
17487 : -1, -1, -1, -1, -1, 408, 4773, 3210, -1, 4776,
17488 : -1, -1, -1, -1, -1, -1, -1, 4784, 4785, -1,
17489 : 4787, -1, -1, -1, 4791, 4792, -1, -1, -1, 4796,
17490 : -1, -1, -1, -1, 4801, -1, -1, 4804, 4805, -1,
17491 : -1, -1, -1, -1, 4811, 3221, -1, -1, -1, -1,
17492 : -1, -1, -1, -1, 133, -1, -1, -1, -1, 2994,
17493 : -1, 140, -1, 2998, 3240, 144, 4833, -1, -1, -1,
17494 : -1, 3247, -1, 4840, -1, -1, -1, 408, 4845, -1,
17495 : -1, 4848, 4849, -1, -1, -1, -1, -1, -1, 4856,
17496 : -1, -1, -1, -1, 173, -1, -1, -1, -1, -1,
17497 : 3035, -1, 3037, -1, 3039, 3040, -1, -1, 4875, 3044,
17498 : 3045, 3046, 515, 3048, 3049, 3050, -1, -1, -1, -1,
17499 : -1, 524, 525, 526, 527, 528, 529, 530, 531, 532,
17500 : 209, 897, -1, -1, 537, -1, -1, 4904, -1, -1,
17501 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17502 : 4917, -1, -1, -1, -1, 4922, -1, -1, -1, -1,
17503 : -1, -1, -1, -1, -1, -1, -1, 3102, -1, -1,
17504 : -1, -1, -1, -1, -1, 1505, -1, -1, -1, -1,
17505 : -1, -1, -1, -1, 515, -1, -1, -1, -1, -1,
17506 : -1, 4958, 3127, 524, 525, 526, 527, 528, 529, 530,
17507 : 531, 532, -1, -1, -1, -1, 537, -1, 4975, 10,
17508 : 289, -1, 13, 4980, 293, -1, 17, 18, 19, -1,
17509 : 4987, -1, -1, -1, -1, 304, -1, -1, -1, -1,
17510 : 3433, -1, 3435, -1, 35, 314, 5003, -1, -1, -1,
17511 : -1, -1, 1572, 5010, 45, -1, -1, 326, 3451, -1,
17512 : -1, 52, -1, -1, 5021, -1, -1, -1, -1, -1,
17513 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17514 : -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
17515 : -1, -1, -1, 1613, -1, 5052, -1, -1, -1, 368,
17516 : -1, -1, 371, 372, 1060, -1, -1, -1, 3501, 3502,
17517 : -1, -1, -1, -1, -1, 1071, -1, -1, -1, -1,
17518 : -1, 5078, -1, -1, -1, -1, 1646, -1, -1, -1,
17519 : -1, 1087, -1, -1, 403, -1, -1, -1, 5095, 62,
17520 : -1, -1, -1, 5100, -1, -1, -1, -1, -1, -1,
17521 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17522 : -1, -1, 5119, -1, -1, -1, -1, -1, -1, 5126,
17523 : -1, -1, -1, -1, -1, 98, -1, -1, -1, -1,
17524 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17525 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 2735,
17526 : -1, -1, -1, 2739, 2740, -1, 197, 476, 1728, 1729,
17527 : 1730, 202, -1, -1, -1, 5172, -1, 5174, -1, -1,
17528 : -1, -1, -1, 3589, -1, -1, 23, -1, -1, -1,
17529 : -1, 28, -1, -1, 225, 226, -1, -1, -1, 162,
17530 : -1, -1, -1, -1, -1, -1, -1, -1, 5205, -1,
17531 : -1, -1, -1, -1, -1, -1, -1, -1, 2794, -1,
17532 : -1, -1, 253, -1, 2800, -1, -1, -1, -1, 66,
17533 : -1, -1, -1, -1, 5231, -1, 199, -1, -1, -1,
17534 : -1, -1, 79, -1, 5241, -1, -1, 5244, 1244, -1,
17535 : 5247, 5248, 5249, -1, -1, -1, -1, -1, -1, 96,
17536 : -1, -1, -1, -1, -1, 296, -1, -1, -1, -1,
17537 : 3435, -1, 2848, -1, -1, 5272, 5273, 114, -1, 5276,
17538 : 1840, 312, -1, -1, 315, -1, 249, -1, -1, -1,
17539 : -1, 1851, -1, 3699, -1, -1, 5293, -1, -1, -1,
17540 : 5297, 138, -1, -1, -1, -1, 5303, 1867, -1, -1,
17541 : 5307, -1, -1, -1, -1, 152, 5313, 5314, -1, -1,
17542 : -1, -1, -1, -1, 161, 5322, 289, -1, -1, -1,
17543 : 293, 5328, -1, -1, 5331, -1, -1, 174, -1, -1,
17544 : 5337, -1, 5339, 180, -1, -1, -1, -1, -1, -1,
17545 : 187, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17546 : -1, 1921, -1, 326, 327, 5362, -1, -1, -1, -1,
17547 : 207, -1, -1, -1, -1, -1, 1936, 408, -1, 1939,
17548 : 1940, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17549 : -1, -1, 5389, 5390, -1, -1, -1, -1, -1, -1,
17550 : -1, -1, -1, 5400, -1, 368, -1, -1, -1, 372,
17551 : 1970, 1971, -1, -1, 377, -1, -1, -1, -1, -1,
17552 : -1, -1, -1, 386, 3830, -1, -1, 3592, -1, -1,
17553 : 267, -1, 395, -1, -1, -1, -1, -1, -1, -1,
17554 : 403, -1, -1, 5440, -1, 3878, -1, -1, 5445, -1,
17555 : -1, -1, -1, 416, -1, -1, -1, -1, -1, -1,
17556 : -1, -1, 425, -1, -1, -1, -1, 430, 3901, -1,
17557 : -1, -1, -1, -1, -1, 312, -1, -1, -1, -1,
17558 : -1, -1, 3058, -1, 515, -1, -1, -1, 325, -1,
17559 : -1, -1, -1, 524, 525, 526, 527, 528, 529, 530,
17560 : 531, 532, 339, -1, -1, -1, 537, -1, -1, 1505,
17561 : 2070, 5508, 349, 350, 5511, 3680, 353, -1, -1, -1,
17562 : -1, -1, -1, -1, 2084, 488, -1, 2087, -1, -1,
17563 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17564 : -1, -1, -1, 380, -1, 5542, 383, -1, -1, -1,
17565 : 387, -1, 2112, 390, -1, 3131, -1, -1, -1, 3135,
17566 : 397, -1, 5559, 400, -1, -1, 5563, -1, 5565, -1,
17567 : -1, -1, -1, 3738, -1, -1, 1572, -1, -1, -1,
17568 : -1, -1, 5579, 420, -1, -1, -1, -1, -1, -1,
17569 : 5587, 428, -1, 5590, -1, -1, -1, -1, 435, -1,
17570 : -1, 438, -1, 4009, 5601, -1, 443, -1, -1, -1,
17571 : -1, 5608, -1, -1, 451, -1, 453, 1613, -1, -1,
17572 : -1, 458, 4028, -1, -1, 4058, 4032, -1, -1, -1,
17573 : -1, -1, -1, -1, -1, 472, -1, -1, -1, -1,
17574 : -1, -1, -1, 3808, -1, -1, -1, -1, 485, -1,
17575 : 1646, -1, -1, -1, 62, -1, -1, -1, -1, -1,
17576 : -1, -1, 3238, 5660, -1, -1, -1, -1, -1, 5666,
17577 : -1, -1, -1, -1, 5671, 5672, -1, 3253, -1, 5676,
17578 : -1, -1, 3258, -1, -1, 5682, 5683, 5684, -1, -1,
17579 : 98, 3856, -1, -1, -1, -1, -1, -1, -1, -1,
17580 : -1, 5698, 8, 3868, 3869, -1, -1, -1, 14, 15,
17581 : -1, -1, 3288, 3878, 20, -1, 22, -1, 3883, -1,
17582 : 3885, 5718, 28, -1, 30, -1, -1, -1, -1, -1,
17583 : 5727, -1, -1, 5730, -1, -1, -1, -1, -1, -1,
17584 : -1, -1, -1, 49, 50, -1, -1, -1, -1, -1,
17585 : -1, -1, -1, -1, 162, -1, -1, -1, 5755, -1,
17586 : -1, -1, -1, -1, -1, -1, 3931, -1, -1, -1,
17587 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17588 : -1, -1, -1, -1, -1, -1, -1, 5784, 5785, -1,
17589 : -1, 199, -1, -1, -1, -1, 10, -1, -1, 13,
17590 : -1, 3966, 3967, 17, 18, 19, -1, -1, -1, -1,
17591 : -1, 5808, 5809, -1, -1, -1, -1, -1, -1, -1,
17592 : -1, 35, -1, 5820, -1, -1, -1, -1, -1, -1,
17593 : -1, 45, 5829, 5830, 5831, -1, -1, -1, 52, -1,
17594 : -1, 249, -1, -1, 1840, -1, -1, 5844, 5845, -1,
17595 : -1, 5848, -1, -1, -1, 1851, 5853, -1, 5855, -1,
17596 : 5857, -1, -1, -1, 78, -1, -1, -1, -1, -1,
17597 : -1, 1867, 5869, -1, -1, -1, -1, -1, -1, 5876,
17598 : -1, 289, -1, -1, -1, 293, -1, -1, -1, -1,
17599 : -1, -1, -1, -1, 200, -1, -1, -1, 204, 5896,
17600 : -1, -1, -1, -1, -1, -1, 212, -1, -1, 215,
17601 : -1, -1, 218, 219, -1, 221, -1, 223, 326, 327,
17602 : 226, -1, 228, -1, 5921, 1921, -1, 5924, -1, -1,
17603 : 4336, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17604 : 1936, -1, -1, 1939, 1940, -1, -1, -1, -1, -1,
17605 : -1, 51, -1, -1, -1, -1, -1, -1, -1, -1,
17606 : 368, -1, -1, -1, 372, -1, -1, 3543, -1, 377,
17607 : 3546, -1, 3548, 4406, 1970, 1971, -1, 3553, 386, 5976,
17608 : -1, -1, -1, 197, -1, -1, -1, 395, 202, -1,
17609 : -1, -1, -1, -1, -1, 403, 51, -1, -1, -1,
17610 : -1, 4434, -1, -1, -1, 4170, -1, -1, 416, -1,
17611 : -1, 225, 226, -1, -1, 4448, -1, 425, -1, 3595,
17612 : -1, -1, 430, -1, -1, -1, 4459, 3603, -1, -1,
17613 : 6027, -1, -1, -1, -1, -1, -1, -1, 2598, 253,
17614 : -1, -1, -1, -1, -1, 6042, -1, -1, -1, -1,
17615 : -1, -1, 3628, -1, -1, 6052, -1, -1, -1, -1,
17616 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17617 : -1, -1, 6069, 4479, -1, -1, 4482, -1, -1, -1,
17618 : 488, -1, 296, -1, -1, -1, 6083, -1, -1, -1,
17619 : -1, -1, -1, -1, -1, -1, 6093, -1, 312, -1,
17620 : -1, 315, 4535, 4536, 10, -1, -1, 13, -1, -1,
17621 : -1, 17, 18, 19, -1, -1, 2112, -1, -1, -1,
17622 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 35,
17623 : -1, -1, 3708, -1, 3710, -1, -1, 6134, -1, 45,
17624 : -1, -1, -1, -1, -1, -1, 52, 6144, -1, -1,
17625 : -1, -1, -1, -1, -1, 6152, 6153, -1, -1, -1,
17626 : -1, 6158, -1, -1, -1, -1, -1, -1, -1, -1,
17627 : -1, -1, 78, -1, -1, 2735, -1, -1, 4584, 2739,
17628 : 2740, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17629 : -1, 4624, 6189, 6190, 408, 4601, 6193, -1, -1, -1,
17630 : -1, -1, -1, -1, 10, -1, -1, 13, -1, -1,
17631 : -1, 17, 18, 19, 51, -1, -1, -1, -1, -1,
17632 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 35,
17633 : 3806, -1, -1, -1, 2794, -1, 6233, -1, -1, 45,
17634 : 2800, 4406, -1, -1, 4677, -1, 52, 51, -1, -1,
17635 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17636 : -1, -1, 6259, -1, -1, -1, -1, -1, 6265, 4434,
17637 : -1, -1, 78, -1, 3850, -1, 4682, -1, -1, -1,
17638 : -1, -1, -1, -1, 4449, -1, 6283, 4452, 2848, 4454,
17639 : -1, 197, -1, 6290, -1, -1, 202, -1, -1, -1,
17640 : -1, 515, 3878, -1, -1, -1, -1, -1, -1, 6306,
17641 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 225,
17642 : 226, -1, -1, 537, -1, -1, -1, -1, -1, -1,
17643 : 6327, -1, -1, -1, -1, 4500, -1, -1, -1, -1,
17644 : -1, -1, -1, -1, -1, -1, -1, 253, -1, -1,
17645 : -1, 4516, -1, -1, -1, -1, 4521, -1, -1, -1,
17646 : 666, -1, -1, -1, -1, -1, -1, -1, 6365, -1,
17647 : 3946, 677, -1, 6370, -1, 681, -1, -1, -1, 6376,
17648 : -1, -1, 688, 689, -1, -1, 692, -1, 694, 695,
17649 : 296, 197, 3968, 6390, -1, -1, 202, -1, -1, -1,
17650 : 6397, -1, -1, 709, -1, -1, 312, -1, -1, 315,
17651 : -1, -1, -1, -1, 3990, -1, -1, -1, -1, 225,
17652 : 226, 727, -1, -1, -1, -1, -1, -1, -1, -1,
17653 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17654 : 6437, 6438, 748, -1, 750, -1, -1, 253, -1, -1,
17655 : -1, -1, -1, -1, 760, -1, 4621, 6454, -1, 4624,
17656 : -1, 6458, -1, -1, -1, -1, 3026, -1, -1, -1,
17657 : -1, -1, -1, -1, 6471, 6472, -1, -1, -1, -1,
17658 : -1, -1, -1, -1, -1, -1, 6483, 793, -1, -1,
17659 : 296, -1, -1, -1, -1, -1, 4072, -1, 3058, -1,
17660 : -1, -1, 408, -1, -1, -1, 312, 4940, -1, 315,
17661 : -1, -1, -1, 4946, -1, -1, -1, -1, 4951, -1,
17662 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17663 : -1, -1, -1, -1, -1, 4700, 4701, 4702, 4703, -1,
17664 : 4705, 4706, 4707, 4708, 4709, 4978, 4979, -1, 4124, -1,
17665 : 4983, 4984, -1, -1, -1, -1, -1, -1, -1, -1,
17666 : -1, -1, -1, -1, -1, -1, -1, -1, 874, 4975,
17667 : -1, 3131, -1, 4149, -1, 3135, -1, -1, -1, -1,
17668 : -1, 4987, -1, -1, -1, -1, -1, -1, -1, -1,
17669 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17670 : -1, -1, 408, -1, -1, -1, -1, -1, -1, 515,
17671 : -1, -1, -1, -1, -1, -1, -1, -1, 524, 525,
17672 : 526, 527, 528, 529, 530, 531, 532, -1, 728, -1,
17673 : -1, 537, -1, -1, -1, -1, -1, -1, -1, -1,
17674 : 10, -1, -1, 13, -1, -1, -1, 17, 18, 19,
17675 : -1, -1, -1, 959, 754, -1, -1, -1, 4823, -1,
17676 : 4825, 10, -1, -1, 13, 35, -1, -1, 17, 18,
17677 : 19, -1, -1, 728, -1, 45, -1, -1, 3238, -1,
17678 : -1, -1, 52, -1, -1, -1, 35, -1, -1, -1,
17679 : -1, -1, -1, 3253, -1, -1, 45, -1, 3258, 754,
17680 : -1, -1, -1, 52, -1, -1, -1, -1, 78, 515,
17681 : -1, -1, -1, -1, -1, -1, -1, -1, 524, 525,
17682 : 526, 527, 528, 529, 530, 531, 532, 1033, 3288, 78,
17683 : -1, 537, -1, -1, 4310, -1, -1, -1, -1, 2735,
17684 : -1, -1, -1, 2739, 2740, -1, -1, -1, -1, -1,
17685 : -1, -1, 1058, -1, -1, -1, -1, -1, -1, -1,
17686 : -1, -1, -1, -1, -1, -1, -1, 1073, -1, 1075,
17687 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 1085,
17688 : -1, -1, -1, -1, -1, -1, 1092, -1, -1, -1,
17689 : -1, -1, -1, -1, -1, -1, -1, 897, 2794, 5205,
17690 : -1, -1, -1, -1, 2800, -1, -1, -1, -1, -1,
17691 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17692 : -1, -1, -1, -1, -1, -1, -1, 197, -1, 1135,
17693 : 4406, 1137, 202, -1, -1, -1, -1, -1, -1, -1,
17694 : -1, -1, 897, -1, -1, -1, -1, -1, 197, -1,
17695 : -1, -1, 2848, 202, -1, 225, 226, -1, 4434, -1,
17696 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17697 : -1, -1, -1, -1, -1, -1, 225, 226, -1, -1,
17698 : -1, -1, -1, 253, -1, 5050, 5051, -1, -1, -1,
17699 : -1, 728, -1, -1, -1, -1, -1, -1, 5063, -1,
17700 : 5065, 5066, 5067, -1, 253, 1211, -1, 1213, -1, 1215,
17701 : -1, 1217, -1, 1219, 1220, 1221, -1, 754, -1, -1,
17702 : 1226, -1, -1, -1, 728, -1, 296, 10, -1, -1,
17703 : 13, 5337, 1238, 5339, 17, 18, 19, -1, -1, -1,
17704 : -1, -1, 312, -1, -1, 315, -1, 296, -1, -1,
17705 : 754, -1, 35, -1, -1, -1, 5389, -1, -1, -1,
17706 : 1060, -1, 45, 312, -1, -1, 315, 5132, -1, 52,
17707 : -1, 1071, -1, -1, -1, -1, -1, -1, -1, -1,
17708 : -1, -1, 10, 3543, -1, 13, 3546, 1087, 3548, 17,
17709 : 18, 19, -1, 3553, -1, 78, -1, -1, -1, -1,
17710 : -1, 4577, -1, -1, -1, 1060, 5171, 35, -1, -1,
17711 : -1, -1, -1, -1, -1, -1, 1071, 45, -1, -1,
17712 : -1, -1, -1, -1, 52, -1, -1, -1, -1, -1,
17713 : -1, -1, 1087, -1, -1, 3595, -1, -1, 408, -1,
17714 : -1, -1, -1, 3603, -1, -1, -1, -1, 4624, 5214,
17715 : 78, -1, -1, 4629, -1, -1, -1, 10, -1, 408,
17716 : 13, -1, 3058, -1, 17, 18, 19, -1, 3628, -1,
17717 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17718 : -1, -1, 35, -1, -1, -1, -1, -1, -1, -1,
17719 : -1, -1, 45, 897, -1, -1, -1, -1, -1, 52,
17720 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17721 : -1, -1, -1, -1, 197, -1, -1, -1, -1, 202,
17722 : 1426, -1, -1, -1, -1, 78, -1, -1, -1, -1,
17723 : -1, -1, -1, -1, -1, 3131, -1, -1, -1, 3135,
17724 : -1, -1, 225, 226, 1244, 515, -1, -1, 3708, -1,
17725 : 3710, -1, -1, -1, 524, 525, 526, 527, 528, 529,
17726 : 530, 531, 532, -1, -1, -1, 515, 537, -1, 197,
17727 : 253, -1, -1, -1, 202, 524, 525, 526, 527, 528,
17728 : 529, 530, 531, 532, -1, -1, -1, -1, 537, 1244,
17729 : -1, -1, -1, -1, -1, -1, -1, 225, 226, -1,
17730 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17731 : -1, 4787, -1, 296, -1, -1, -1, -1, -1, -1,
17732 : -1, -1, -1, 1060, 5389, 253, -1, -1, -1, 312,
17733 : -1, -1, 315, -1, 1071, -1, -1, -1, -1, -1,
17734 : 1546, -1, 3238, -1, 197, -1, 3806, -1, -1, 202,
17735 : 1087, -1, -1, -1, -1, -1, 1060, 3253, -1, -1,
17736 : -1, -1, 3258, -1, -1, 5698, -1, 1071, 296, -1,
17737 : 5435, -1, 225, 226, -1, 3835, -1, -1, -1, 5444,
17738 : -1, 3841, -1, 1087, 312, -1, -1, 315, -1, -1,
17739 : 3850, -1, 3288, -1, -1, -1, -1, -1, -1, -1,
17740 : 253, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17741 : -1, -1, 1618, -1, -1, -1, -1, -1, 3878, -1,
17742 : -1, -1, -1, -1, -1, 408, -1, -1, 4904, -1,
17743 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17744 : -1, -1, -1, 296, -1, -1, -1, -1, -1, -1,
17745 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 312,
17746 : -1, -1, 315, -1, -1, -1, -1, -1, -1, -1,
17747 : -1, -1, -1, -1, -1, -1, 51, -1, -1, -1,
17748 : 408, -1, 4958, -1, -1, -1, 3946, -1, -1, -1,
17749 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17750 : -1, -1, -1, -1, 4980, 1505, -1, 1244, 3968, -1,
17751 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17752 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17753 : 3990, -1, 515, -1, -1, -1, -1, -1, -1, -1,
17754 : 1244, 524, 525, 526, 527, 528, 529, 530, 531, 532,
17755 : 1505, -1, -1, -1, 537, 408, -1, -1, -1, -1,
17756 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17757 : -1, -1, 1572, -1, -1, -1, 5052, -1, -1, -1,
17758 : 5913, -1, -1, -1, -1, -1, -1, 515, -1, -1,
17759 : -1, -1, -1, -1, -1, -1, 524, 525, 526, 527,
17760 : 528, 529, 530, 531, 532, -1, -1, -1, -1, 537,
17761 : -1, -1, 4072, 1613, -1, -1, -1, 1572, -1, -1,
17762 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17763 : 1836, -1, -1, 5698, -1, -1, -1, 5702, -1, -1,
17764 : -1, -1, -1, -1, -1, -1, 1646, 3543, -1, -1,
17765 : 3546, -1, 3548, -1, -1, -1, -1, 3553, 1613, -1,
17766 : -1, -1, 515, -1, 4124, 1871, -1, -1, -1, -1,
17767 : -1, 524, 525, 526, 527, 528, 529, 530, 531, 532,
17768 : -1, -1, -1, -1, 537, -1, -1, -1, -1, 4149,
17769 : -1, 1646, -1, -1, -1, -1, -1, -1, 5174, 3595,
17770 : -1, -1, -1, -1, -1, -1, -1, 3603, -1, -1,
17771 : -1, 1917, -1, -1, -1, -1, -1, -1, -1, -1,
17772 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17773 : -1, 1937, 3628, -1, -1, -1, -1, -1, -1, -1,
17774 : -1, -1, -1, 10, -1, -1, 13, -1, -1, -1,
17775 : 17, 18, 19, -1, -1, -1, -1, 1963, -1, 1965,
17776 : -1, -1, -1, 6069, -1, -1, -1, -1, 35, -1,
17777 : -1, -1, -1, -1, 1980, -1, 1982, -1, 45, -1,
17778 : -1, -1, 1988, -1, 1990, 52, 1992, -1, 1994, -1,
17779 : 1996, -1, -1, -1, 2000, -1, -1, -1, -1, -1,
17780 : -1, 1505, -1, -1, -1, -1, -1, -1, -1, -1,
17781 : -1, 78, 3708, -1, 3710, -1, -1, -1, -1, -1,
17782 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17783 : -1, 2037, -1, -1, -1, -1, -1, 5313, -1, -1,
17784 : 1840, -1, -1, -1, -1, -1, 10, -1, -1, 13,
17785 : 4310, 1851, -1, 17, 18, 19, -1, -1, -1, 5924,
17786 : -1, -1, -1, 5928, -1, 5930, -1, 1867, 1572, 5934,
17787 : 5935, 35, -1, -1, -1, -1, 1613, -1, -1, -1,
17788 : -1, 45, -1, -1, -1, 1840, -1, -1, 52, -1,
17789 : -1, -1, -1, -1, -1, -1, 1851, -1, -1, -1,
17790 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 1613,
17791 : 3806, -1, 1867, 5389, 78, -1, -1, -1, -1, -1,
17792 : -1, 1921, -1, -1, -1, -1, -1, -1, -1, -1,
17793 : 197, -1, -1, -1, -1, 202, 1936, -1, -1, 1939,
17794 : 1940, -1, 1646, -1, -1, -1, 4406, -1, -1, 51,
17795 : -1, -1, -1, -1, 3850, -1, -1, -1, 225, 226,
17796 : -1, -1, -1, -1, -1, -1, 1921, -1, -1, -1,
17797 : 1970, 1971, -1, -1, 4434, -1, -1, -1, -1, -1,
17798 : -1, 1936, 3878, -1, 1939, 1940, 253, -1, -1, -1,
17799 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17800 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17801 : -1, -1, -1, -1, -1, 1970, 1971, -1, -1, -1,
17802 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 296,
17803 : -1, -1, -1, 197, -1, 5511, -1, -1, 202, -1,
17804 : -1, -1, -1, -1, -1, 312, -1, -1, 315, -1,
17805 : 3946, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17806 : -1, 225, 226, -1, 6397, -1, -1, -1, -1, -1,
17807 : -1, -1, 3968, -1, -1, -1, -1, -1, -1, -1,
17808 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 253,
17809 : -1, -1, -1, -1, 3990, -1, -1, -1, -1, -1,
17810 : -1, -1, 10, 1840, -1, 13, -1, -1, -1, 17,
17811 : 18, 19, 2112, -1, 1851, -1, -1, 4577, -1, -1,
17812 : -1, -1, -1, -1, -1, 6458, -1, 35, -1, -1,
17813 : 1867, -1, 296, -1, -1, -1, 1840, 45, -1, -1,
17814 : -1, 408, -1, -1, 52, -1, -1, 1851, 312, -1,
17815 : 6483, 315, -1, 728, -1, -1, -1, 2112, -1, -1,
17816 : -1, -1, -1, 1867, 4624, -1, -1, -1, 6233, 4629,
17817 : 78, -1, -1, -1, -1, -1, 4072, -1, -1, 754,
17818 : -1, -1, -1, -1, 1921, -1, -1, -1, -1, -1,
17819 : 5666, -1, -1, -1, -1, 5671, 5672, -1, -1, 1936,
17820 : -1, -1, 1939, 1940, -1, -1, -1, -1, -1, -1,
17821 : -1, -1, -1, -1, -1, -1, -1, 1921, -1, -1,
17822 : -1, -1, -1, -1, -1, -1, -1, -1, 4124, -1,
17823 : -1, -1, 1936, 1970, 1971, 1939, 1940, -1, -1, -1,
17824 : -1, -1, -1, -1, 408, -1, -1, -1, 515, -1,
17825 : -1, -1, -1, 4149, -1, -1, -1, 524, 525, 526,
17826 : 527, 528, 529, 530, 531, 532, 1970, 1971, -1, -1,
17827 : 537, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17828 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 197,
17829 : -1, -1, -1, -1, 202, -1, -1, -1, -1, -1,
17830 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 5785,
17831 : -1, -1, -1, -1, -1, -1, -1, 225, 226, -1,
17832 : -1, -1, 897, -1, -1, -1, -1, 4787, -1, -1,
17833 : -1, -1, 6397, -1, -1, -1, -1, -1, -1, 6404,
17834 : -1, -1, -1, 6408, -1, 253, -1, -1, -1, -1,
17835 : -1, 515, -1, -1, -1, -1, -1, -1, -1, -1,
17836 : 524, 525, 526, 527, 528, 529, 530, 531, 532, -1,
17837 : -1, -1, 5848, 537, -1, 2112, -1, -1, -1, 6444,
17838 : -1, -1, -1, -1, -1, -1, -1, -1, 296, -1,
17839 : -1, -1, -1, 6458, -1, -1, -1, -1, -1, -1,
17840 : -1, -1, -1, -1, 312, -1, -1, 315, 2112, -1,
17841 : -1, -1, -1, -1, 4310, -1, -1, -1, 6483, -1,
17842 : -1, 6486, -1, -1, -1, -1, -1, -1, -1, -1,
17843 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17844 : -1, -1, -1, -1, 4904, -1, -1, -1, -1, -1,
17845 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17846 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17847 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17848 : -1, -1, -1, -1, -1, 1060, -1, -1, -1, -1,
17849 : -1, -1, -1, -1, -1, -1, 1071, -1, 4958, -1,
17850 : 408, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17851 : 4406, -1, 1087, -1, -1, -1, -1, -1, -1, -1,
17852 : 4980, -1, -1, 2729, 2730, -1, -1, -1, -1, -1,
17853 : -1, -1, -1, -1, -1, -1, -1, -1, 4434, -1,
17854 : -1, -1, 2748, 2749, -1, 2751, 2752, -1, -1, -1,
17855 : 2756, 2757, -1, -1, -1, -1, -1, -1, -1, -1,
17856 : -1, -1, -1, -1, -1, 2771, -1, -1, -1, 2775,
17857 : -1, -1, -1, 2779, 2780, -1, -1, 2783, 2784, -1,
17858 : -1, -1, -1, -1, 2790, -1, -1, -1, -1, -1,
17859 : -1, -1, 5052, -1, -1, -1, 2802, -1, -1, -1,
17860 : -1, -1, -1, -1, -1, -1, -1, 515, 2814, -1,
17861 : -1, -1, -1, 2819, -1, -1, 524, 525, 526, 527,
17862 : 528, 529, 530, 531, 532, -1, 728, -1, 2834, 537,
17863 : -1, -1, 2838, -1, -1, -1, -1, -1, -1, -1,
17864 : -1, -1, -1, -1, 2850, -1, -1, 2853, -1, 2855,
17865 : 2856, 2857, 754, -1, -1, -1, 2862, 2863, -1, -1,
17866 : -1, -1, -1, 23, -1, -1, 2872, -1, 28, 1244,
17867 : -1, -1, 2878, -1, -1, -1, 2882, -1, -1, -1,
17868 : -1, 4577, -1, -1, -1, -1, -1, -1, 2894, 2895,
17869 : -1, -1, -1, 2899, -1, -1, -1, -1, -1, 2905,
17870 : 2906, -1, -1, -1, -1, -1, 66, -1, -1, -1,
17871 : -1, -1, 5172, 2919, 5174, -1, 2922, -1, -1, 79,
17872 : 80, -1, -1, 2929, 2930, -1, -1, -1, 4624, 2935,
17873 : -1, -1, 92, 4629, -1, 2735, 96, -1, -1, 2739,
17874 : 2740, 2947, -1, -1, 2950, -1, -1, -1, -1, 2955,
17875 : -1, -1, -1, -1, 114, 2961, 2962, -1, -1, -1,
17876 : -1, -1, -1, 2969, -1, -1, -1, 2973, -1, -1,
17877 : -1, 2977, 2978, 2979, 2980, -1, 2982, -1, 138, -1,
17878 : 2735, -1, -1, -1, 2739, 2740, -1, -1, -1, -1,
17879 : 2996, 2997, 152, 2999, 2794, 897, -1, -1, -1, -1,
17880 : 2800, 161, -1, -1, 3010, 3011, 3012, -1, -1, -1,
17881 : -1, -1, -1, -1, 174, -1, -1, -1, -1, -1,
17882 : 180, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17883 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 2794,
17884 : -1, -1, -1, -1, -1, 2800, -1, 207, 2848, -1,
17885 : -1, -1, -1, 5313, -1, -1, -1, -1, -1, -1,
17886 : -1, 3067, -1, -1, -1, -1, -1, -1, -1, 3075,
17887 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17888 : -1, -1, -1, -1, -1, 245, -1, -1, 3094, -1,
17889 : -1, 4787, -1, 2848, 6370, -1, -1, -1, -1, -1,
17890 : -1, -1, -1, -1, -1, -1, -1, 267, -1, -1,
17891 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17892 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 5389,
17893 : 1505, -1, -1, -1, -1, -1, -1, -1, 3144, -1,
17894 : -1, -1, -1, -1, -1, -1, 10, -1, -1, 13,
17895 : -1, -1, 312, 17, 18, 19, -1, 3163, 1060, 3165,
17896 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 1071,
17897 : -1, 35, -1, -1, -1, -1, -1, -1, -1, 339,
17898 : -1, 45, -1, -1, -1, 1087, -1, -1, 52, 349,
17899 : 350, -1, -1, 353, -1, -1, -1, 1572, -1, -1,
17900 : -1, -1, -1, -1, -1, -1, -1, -1, 4904, -1,
17901 : -1, -1, -1, -1, 78, -1, -1, 51, -1, -1,
17902 : 380, -1, -1, 383, -1, -1, -1, 387, -1, -1,
17903 : 390, 2735, -1, -1, -1, 2739, 2740, 397, 1613, -1,
17904 : 400, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17905 : -1, 5511, -1, -1, 3260, -1, -1, 2794, 3058, -1,
17906 : 420, -1, 4958, 2800, -1, -1, -1, -1, 428, -1,
17907 : -1, 1646, -1, -1, -1, 435, -1, -1, 438, -1,
17908 : -1, -1, -1, 443, 4980, -1, -1, -1, -1, -1,
17909 : 2794, 451, 10, 453, -1, 13, 2800, -1, 458, 17,
17910 : 18, 19, -1, 3058, -1, -1, -1, -1, -1, -1,
17911 : -1, 2848, -1, -1, -1, -1, -1, 35, -1, -1,
17912 : -1, -1, -1, -1, -1, 485, -1, 45, -1, -1,
17913 : -1, 3131, -1, 197, 52, 3135, -1, -1, 202, -1,
17914 : -1, -1, 1244, -1, 2848, -1, -1, -1, -1, -1,
17915 : -1, -1, -1, -1, -1, -1, 5052, -1, -1, -1,
17916 : 78, 225, 226, -1, -1, -1, -1, -1, -1, -1,
17917 : -1, -1, -1, -1, -1, -1, 3131, -1, -1, -1,
17918 : 3135, -1, -1, -1, -1, -1, -1, -1, -1, 253,
17919 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17920 : -1, -1, -1, -1, -1, -1, 5666, -1, -1, -1,
17921 : -1, 5671, 5672, -1, -1, -1, -1, -1, -1, -1,
17922 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17923 : -1, -1, 296, -1, -1, -1, -1, -1, 3238, -1,
17924 : -1, -1, -1, -1, -1, -1, -1, -1, 312, -1,
17925 : -1, 315, -1, 3253, -1, -1, -1, -1, 3258, -1,
17926 : -1, -1, -1, -1, -1, 1840, -1, -1, -1, -1,
17927 : -1, -1, -1, -1, -1, -1, 1851, -1, 5174, 197,
17928 : -1, -1, -1, 3238, 202, -1, -1, -1, 3288, -1,
17929 : -1, -1, 1867, -1, -1, -1, -1, -1, 3253, -1,
17930 : -1, -1, -1, 3258, -1, -1, -1, 225, 226, -1,
17931 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17932 : -1, 3058, -1, -1, 5784, 5785, -1, -1, -1, -1,
17933 : -1, -1, -1, 3288, -1, 253, -1, -1, -1, -1,
17934 : -1, -1, -1, -1, 408, -1, 1921, -1, -1, -1,
17935 : -1, -1, -1, -1, 3058, -1, -1, -1, -1, -1,
17936 : -1, 1936, -1, -1, 1939, 1940, -1, -1, -1, -1,
17937 : -1, -1, -1, -1, -1, -1, -1, -1, 296, -1,
17938 : -1, -1, -1, -1, 3590, -1, -1, -1, 5848, -1,
17939 : -1, -1, -1, -1, 312, 1970, 1971, 315, -1, -1,
17940 : -1, 3607, -1, 1505, -1, 3611, -1, -1, -1, -1,
17941 : 3616, 3617, 3618, -1, -1, -1, -1, 5313, -1, -1,
17942 : -1, -1, -1, -1, -1, -1, -1, 3131, -1, -1,
17943 : -1, 3135, 3638, -1, -1, -1, -1, -1, -1, -1,
17944 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17945 : -1, 515, -1, -1, -1, -1, 3662, 3663, 3664, 3665,
17946 : 524, 525, 526, 527, 528, 529, 530, 531, 532, -1,
17947 : 1572, -1, -1, 537, -1, -1, -1, -1, -1, -1,
17948 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17949 : 408, -1, -1, 5389, 3700, -1, 3702, 3703, 3704, -1,
17950 : -1, 3238, -1, -1, -1, -1, -1, -1, -1, -1,
17951 : -1, 1613, -1, -1, -1, -1, 3253, -1, -1, -1,
17952 : -1, 3258, -1, -1, -1, -1, -1, -1, -1, -1,
17953 : -1, -1, -1, -1, 3238, -1, -1, 2112, -1, -1,
17954 : -1, -1, -1, 3543, 1646, -1, 3546, -1, 3548, 3253,
17955 : -1, 3288, -1, 3553, 3258, -1, -1, -1, -1, -1,
17956 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17957 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17958 : -1, -1, -1, -1, 3288, -1, -1, -1, 3543, -1,
17959 : -1, 3546, -1, 3548, -1, 3595, -1, 515, 3553, -1,
17960 : -1, -1, -1, 3603, -1, -1, 524, 525, 526, 527,
17961 : 528, 529, 530, 531, 532, 5511, 3822, -1, -1, 537,
17962 : -1, -1, -1, -1, -1, 3831, -1, -1, 3628, -1,
17963 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17964 : 3595, -1, -1, -1, -1, -1, -1, -1, 3603, -1,
17965 : -1, 3857, 3858, -1, -1, -1, 3862, -1, -1, -1,
17966 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17967 : -1, -1, -1, 3628, -1, -1, -1, -1, 3884, -1,
17968 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17969 : -1, -1, -1, -1, 728, -1, -1, -1, -1, -1,
17970 : -1, -1, -1, -1, -1, -1, -1, -1, 3708, -1,
17971 : 3710, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17972 : 754, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17973 : 3936, -1, -1, -1, -1, 3941, -1, -1, 1840, -1,
17974 : -1, 3947, -1, -1, -1, -1, -1, -1, -1, 1851,
17975 : -1, -1, -1, 3708, -1, 3710, -1, -1, -1, -1,
17976 : -1, -1, -1, -1, -1, 1867, -1, -1, -1, -1,
17977 : 5666, 3977, -1, -1, -1, 5671, 5672, -1, -1, -1,
17978 : -1, -1, -1, -1, -1, -1, -1, 10, -1, -1,
17979 : 13, -1, -1, -1, 17, 18, 19, -1, -1, -1,
17980 : 4006, -1, 4008, -1, -1, -1, 3806, -1, -1, -1,
17981 : -1, -1, 35, -1, -1, -1, -1, -1, -1, 1921,
17982 : -1, -1, 45, -1, -1, -1, -1, -1, -1, 52,
17983 : -1, -1, -1, -1, 1936, -1, -1, 1939, 1940, 3543,
17984 : -1, -1, 3546, -1, 3548, -1, -1, -1, -1, 3553,
17985 : 3850, 3806, -1, -1, -1, 78, -1, -1, 3595, -1,
17986 : -1, -1, -1, 897, -1, -1, 3603, -1, 1970, 1971,
17987 : -1, -1, -1, -1, -1, -1, -1, -1, 3878, -1,
17988 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 5785,
17989 : -1, 3595, -1, -1, -1, 3850, -1, -1, -1, 3603,
17990 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17991 : 6370, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17992 : -1, -1, -1, 3878, 3628, -1, -1, -1, -1, -1,
17993 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17994 : -1, -1, -1, -1, -1, -1, 3946, -1, -1, -1,
17995 : -1, -1, 5848, -1, -1, -1, -1, -1, -1, -1,
17996 : -1, -1, -1, -1, -1, -1, -1, -1, 3968, -1,
17997 : -1, 3708, -1, 3710, 197, -1, -1, 6437, -1, 202,
17998 : -1, -1, -1, -1, -1, -1, 10, -1, -1, 13,
17999 : 3990, 3946, -1, 17, 18, 19, -1, -1, -1, -1,
18000 : -1, -1, 225, 226, 3708, -1, 3710, -1, -1, -1,
18001 : 2112, 35, -1, 3968, -1, -1, -1, -1, -1, -1,
18002 : -1, 45, -1, -1, -1, -1, 1060, -1, 52, -1,
18003 : 253, -1, -1, -1, -1, 3990, -1, 1071, -1, -1,
18004 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18005 : -1, -1, -1, 1087, 78, -1, -1, -1, -1, -1,
18006 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 3806,
18007 : -1, -1, 4072, 296, -1, -1, -1, -1, -1, -1,
18008 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 312,
18009 : -1, -1, 315, -1, -1, -1, -1, -1, -1, -1,
18010 : -1, -1, 3806, -1, -1, -1, -1, -1, -1, -1,
18011 : -1, -1, -1, 3850, -1, -1, 4322, 4072, 4324, -1,
18012 : -1, -1, -1, -1, 4124, -1, -1, -1, -1, -1,
18013 : -1, 4337, -1, -1, -1, -1, -1, -1, -1, -1,
18014 : -1, -1, -1, 4349, -1, -1, 3850, 4353, -1, 4149,
18015 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 4365,
18016 : 2735, -1, -1, -1, 2739, 2740, -1, -1, -1, 4124,
18017 : -1, -1, -1, 197, 3878, -1, -1, -1, 202, 4385,
18018 : -1, -1, -1, -1, -1, 408, -1, -1, -1, -1,
18019 : -1, -1, -1, -1, 4149, -1, -1, 4403, -1, -1,
18020 : -1, 225, 226, -1, -1, 4411, -1, -1, -1, 3946,
18021 : 1244, -1, -1, -1, -1, -1, -1, -1, -1, 2794,
18022 : -1, -1, -1, -1, -1, 2800, -1, -1, -1, 253,
18023 : 4436, -1, -1, -1, 4440, -1, -1, -1, -1, -1,
18024 : -1, -1, 3946, -1, -1, -1, -1, -1, -1, 4455,
18025 : 4456, 4457, 4458, 3990, -1, -1, -1, -1, -1, 4465,
18026 : 4466, 4467, 4468, -1, 3968, -1, -1, -1, 4474, 4475,
18027 : -1, -1, 296, 2848, 4480, 4481, -1, 4483, 4484, 4485,
18028 : 4486, 4487, 4488, 4489, -1, -1, 3990, -1, 312, -1,
18029 : -1, 315, 515, 4499, -1, -1, -1, 4503, 4504, 4505,
18030 : 4506, 524, 525, 526, 527, 528, 529, 530, 531, 532,
18031 : 4310, -1, -1, -1, 537, -1, -1, -1, 207, -1,
18032 : -1, 4527, -1, -1, -1, -1, -1, 216, -1, -1,
18033 : -1, -1, -1, -1, -1, 4072, -1, -1, -1, 4545,
18034 : -1, 230, -1, -1, -1, -1, -1, -1, -1, -1,
18035 : -1, -1, -1, -1, -1, 4310, -1, -1, -1, -1,
18036 : -1, -1, -1, -1, -1, -1, -1, -1, 4072, -1,
18037 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18038 : -1, -1, -1, -1, 408, -1, -1, 4124, -1, -1,
18039 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18040 : -1, -1, -1, -1, -1, -1, 4406, -1, -1, -1,
18041 : -1, -1, 4149, -1, -1, -1, 4622, -1, -1, -1,
18042 : 4124, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18043 : -1, -1, -1, -1, 4434, -1, -1, -1, -1, -1,
18044 : -1, -1, -1, -1, -1, 4149, -1, -1, -1, 4655,
18045 : -1, 4406, -1, -1, -1, -1, 4662, -1, 4664, -1,
18046 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18047 : -1, 1505, -1, -1, 6370, -1, -1, -1, -1, 4434,
18048 : -1, -1, -1, 3058, -1, -1, 4692, -1, -1, -1,
18049 : -1, 515, -1, -1, -1, -1, -1, -1, -1, -1,
18050 : 524, 525, 526, 527, 528, 529, 530, 531, 532, -1,
18051 : -1, -1, -1, 537, -1, -1, -1, -1, -1, -1,
18052 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18053 : -1, -1, -1, -1, -1, -1, -1, -1, 1572, -1,
18054 : -1, 10, -1, -1, 13, -1, -1, -1, 17, 18,
18055 : 19, -1, -1, -1, -1, -1, 3131, -1, -1, -1,
18056 : 3135, -1, -1, -1, -1, -1, 35, -1, -1, -1,
18057 : -1, -1, -1, -1, -1, -1, 45, 4577, -1, 1613,
18058 : -1, -1, -1, 52, -1, -1, -1, -1, 10, -1,
18059 : -1, 13, -1, -1, -1, 17, 18, 19, -1, -1,
18060 : -1, -1, -1, -1, -1, -1, 4310, -1, -1, 78,
18061 : -1, -1, 1646, 35, -1, -1, -1, 206, 207, -1,
18062 : -1, -1, 4577, 45, 4624, 214, -1, 216, 217, 4629,
18063 : 52, -1, -1, 2735, -1, -1, -1, 2739, 2740, -1,
18064 : -1, 230, -1, -1, -1, -1, -1, -1, -1, -1,
18065 : -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
18066 : -1, -1, -1, 3238, -1, -1, -1, -1, -1, 4624,
18067 : -1, -1, -1, -1, 4629, -1, -1, -1, 3253, -1,
18068 : -1, -1, -1, 3258, -1, -1, -1, -1, -1, -1,
18069 : -1, -1, 2794, -1, -1, -1, -1, -1, 2800, 4905,
18070 : 4906, 4907, 4406, -1, -1, 4911, 4912, 4913, 4914, -1,
18071 : -1, -1, 4918, 3288, -1, -1, -1, -1, -1, -1,
18072 : -1, -1, -1, -1, -1, -1, -1, -1, 197, -1,
18073 : 4434, -1, -1, 202, -1, -1, -1, -1, -1, -1,
18074 : -1, -1, -1, -1, -1, -1, 2848, -1, -1, -1,
18075 : -1, -1, -1, -1, -1, -1, 225, 226, -1, -1,
18076 : -1, -1, -1, -1, 4970, 4971, 4972, 4973, 4974, -1,
18077 : 4976, 4977, -1, -1, -1, 197, 665, -1, -1, -1,
18078 : 202, -1, 4988, 4989, 253, -1, -1, 4787, -1, -1,
18079 : -1, -1, -1, -1, -1, 684, -1, -1, -1, -1,
18080 : -1, 690, -1, 225, 226, -1, 1840, -1, -1, -1,
18081 : -1, -1, -1, 702, -1, -1, 5022, 1851, -1, -1,
18082 : -1, -1, -1, -1, -1, -1, -1, 296, -1, 718,
18083 : -1, 253, 4787, 1867, -1, -1, -1, -1, -1, -1,
18084 : 4577, -1, -1, 312, 733, -1, 315, -1, -1, -1,
18085 : -1, -1, 741, -1, -1, -1, -1, -1, -1, -1,
18086 : -1, -1, -1, -1, -1, -1, 755, -1, -1, -1,
18087 : -1, -1, -1, 4577, 296, -1, 765, -1, -1, -1,
18088 : -1, -1, -1, -1, -1, -1, -1, 1921, -1, -1,
18089 : 312, -1, -1, 315, -1, -1, -1, -1, -1, -1,
18090 : -1, -1, 1936, -1, 4904, 1939, 1940, -1, -1, -1,
18091 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 5125,
18092 : 4624, -1, -1, -1, -1, 4629, -1, -1, -1, 818,
18093 : -1, -1, -1, -1, -1, -1, 1970, 1971, -1, 408,
18094 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 4904,
18095 : -1, -1, -1, -1, -1, -1, 3058, 846, 4958, -1,
18096 : -1, -1, -1, -1, -1, -1, -1, -1, 3543, -1,
18097 : -1, 3546, -1, 3548, -1, -1, -1, -1, 3553, -1,
18098 : 4980, -1, 871, -1, 5190, -1, 408, -1, -1, -1,
18099 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18100 : -1, -1, -1, 4958, -1, -1, -1, -1, -1, -1,
18101 : -1, -1, -1, -1, -1, -1, 5222, -1, -1, -1,
18102 : 3595, -1, -1, -1, -1, 4980, -1, -1, 3603, 3131,
18103 : -1, -1, -1, 3135, -1, -1, -1, -1, -1, -1,
18104 : -1, -1, -1, -1, 933, -1, 515, -1, -1, -1,
18105 : -1, -1, 5052, 3628, -1, 524, 525, 526, 527, 528,
18106 : 529, 530, 531, 532, -1, -1, -1, -1, 537, -1,
18107 : -1, -1, -1, -1, -1, -1, 665, -1, 2112, -1,
18108 : -1, -1, -1, 4787, -1, -1, -1, -1, -1, -1,
18109 : -1, -1, -1, 515, -1, 684, -1, 5052, -1, -1,
18110 : -1, 690, 524, 525, 526, 527, 528, 529, 530, 531,
18111 : 532, -1, -1, 702, 5320, 537, -1, -1, -1, -1,
18112 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 718,
18113 : -1, -1, -1, 3708, -1, 3710, 3238, -1, -1, -1,
18114 : -1, -1, -1, 732, 733, -1, -1, -1, -1, -1,
18115 : 739, 3253, 741, 742, 1043, -1, 3258, -1, -1, -1,
18116 : -1, 1050, -1, -1, -1, -1, 755, 4904, -1, -1,
18117 : -1, -1, -1, -1, 5174, -1, 765, -1, -1, -1,
18118 : -1, -1, -1, -1, -1, 5391, 3288, -1, -1, -1,
18119 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18120 : 4904, -1, -1, -1, 5410, -1, -1, -1, -1, -1,
18121 : 5416, 5417, -1, -1, -1, -1, -1, -1, -1, 5174,
18122 : 5426, 4958, -1, -1, -1, -1, -1, 5433, -1, 818,
18123 : -1, 3806, -1, -1, -1, -1, -1, -1, -1, -1,
18124 : -1, -1, -1, 4980, -1, -1, 25, -1, -1, -1,
18125 : -1, -1, 31, 10, 4958, -1, 13, 846, -1, 38,
18126 : 17, 18, 19, -1, 5470, 5471, -1, -1, -1, -1,
18127 : -1, -1, -1, -1, -1, 3850, 4980, 5483, 35, 5485,
18128 : -1, 60, 871, -1, -1, 1174, -1, -1, 45, -1,
18129 : -1, -1, -1, -1, 5500, 52, -1, 76, -1, -1,
18130 : -1, -1, -1, 3878, -1, -1, -1, -1, -1, -1,
18131 : -1, -1, -1, 5313, -1, 5052, -1, -1, -1, 5525,
18132 : -1, 78, -1, -1, -1, -1, -1, 5533, -1, -1,
18133 : -1, -1, -1, 112, -1, -1, -1, -1, -1, -1,
18134 : -1, -1, -1, -1, 933, -1, 1235, -1, 5052, -1,
18135 : -1, -1, -1, -1, 133, -1, -1, 1246, 5313, -1,
18136 : -1, 140, -1, -1, -1, 144, -1, -1, -1, -1,
18137 : -1, 3946, -1, -1, 1263, -1, -1, -1, -1, 1268,
18138 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 5389,
18139 : -1, -1, -1, 3968, 173, -1, -1, -1, -1, -1,
18140 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18141 : -1, -1, -1, -1, -1, 3990, -1, -1, -1, 5625,
18142 : -1, -1, -1, -1, -1, -1, 205, -1, -1, -1,
18143 : 209, -1, -1, 5639, 5389, -1, -1, 5174, -1, -1,
18144 : 197, 3543, -1, -1, 3546, 202, 3548, -1, -1, -1,
18145 : -1, 3553, -1, -1, 1043, -1, -1, -1, -1, 5665,
18146 : -1, 1050, -1, -1, -1, -1, -1, -1, 225, 226,
18147 : 5174, -1, 1061, -1, -1, -1, 1065, -1, 1067, -1,
18148 : -1, -1, -1, -1, 263, -1, -1, -1, -1, 268,
18149 : -1, -1, -1, 3595, 273, -1, 253, 4072, -1, -1,
18150 : -1, 3603, -1, -1, -1, -1, -1, -1, -1, -1,
18151 : 289, 5511, 1401, -1, 293, -1, -1, -1, -1, -1,
18152 : 1409, 1410, -1, -1, -1, 304, 3628, 5733, -1, -1,
18153 : -1, -1, -1, -1, -1, 314, -1, -1, -1, 296,
18154 : -1, -1, -1, -1, -1, -1, 325, 326, -1, 4124,
18155 : -1, -1, -1, -1, -1, 312, 5511, -1, 315, -1,
18156 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18157 : -1, -1, -1, 1462, 4149, -1, 5313, -1, -1, -1,
18158 : -1, -1, -1, -1, -1, 1174, -1, -1, -1, 368,
18159 : -1, -1, 371, 372, 373, -1, -1, 5803, -1, -1,
18160 : -1, -1, -1, -1, -1, -1, 3708, -1, 3710, 5313,
18161 : -1, -1, 10, -1, -1, 13, -1, -1, 397, 17,
18162 : 18, 19, -1, -1, 403, -1, -1, -1, -1, -1,
18163 : -1, 5837, -1, -1, -1, -1, -1, 35, -1, 418,
18164 : -1, -1, -1, -1, -1, -1, 1235, 45, -1, -1,
18165 : -1, 408, -1, -1, 52, -1, -1, 1246, -1, -1,
18166 : -1, -1, -1, -1, -1, -1, 5666, -1, -1, -1,
18167 : -1, 5671, 5672, -1, 1263, -1, -1, 5883, -1, 1268,
18168 : 78, -1, -1, -1, -1, 5389, -1, 208, -1, -1,
18169 : 469, -1, -1, -1, -1, -1, -1, 476, -1, 220,
18170 : -1, 2735, 5908, -1, 3806, 2739, 2740, -1, -1, -1,
18171 : 231, 5666, -1, -1, -1, -1, 5671, 5672, -1, -1,
18172 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18173 : -1, -1, -1, -1, -1, 4310, -1, -1, -1, -1,
18174 : -1, -1, -1, -1, -1, -1, -1, -1, 3850, -1,
18175 : -1, -1, -1, -1, -1, -1, -1, -1, 515, -1,
18176 : 2794, 5967, -1, -1, -1, -1, 2800, 524, 525, 526,
18177 : 527, 528, 529, 530, 531, 532, 3878, -1, -1, -1,
18178 : 537, -1, -1, -1, -1, 5785, -1, -1, -1, -1,
18179 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 197,
18180 : -1, -1, -1, -1, 202, -1, -1, 5511, -1, -1,
18181 : -1, -1, 1401, -1, 2848, -1, -1, -1, -1, -1,
18182 : 1409, 1410, -1, -1, 1713, -1, -1, 225, 226, -1,
18183 : 5785, 4406, -1, -1, -1, -1, -1, -1, -1, -1,
18184 : -1, -1, -1, -1, 3946, -1, -1, -1, 5848, -1,
18185 : -1, -1, -1, -1, -1, 253, -1, -1, -1, 4434,
18186 : -1, -1, -1, -1, -1, -1, 3968, -1, -1, -1,
18187 : -1, -1, -1, 1462, -1, -1, 6082, 10, -1, -1,
18188 : 13, -1, -1, -1, 17, 18, 19, -1, 3990, -1,
18189 : -1, -1, -1, 5848, -1, -1, -1, -1, 296, -1,
18190 : -1, -1, 35, -1, -1, 6111, -1, -1, -1, -1,
18191 : -1, -1, 45, -1, 312, -1, 6122, 315, -1, 52,
18192 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 5666,
18193 : -1, -1, -1, -1, 5671, 5672, -1, -1, -1, 1828,
18194 : -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
18195 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18196 : -1, -1, 5666, -1, -1, -1, -1, 5671, 5672, -1,
18197 : 4072, -1, -1, -1, 1863, -1, -1, 198, 199, -1,
18198 : -1, 202, -1, -1, -1, -1, -1, -1, -1, -1,
18199 : -1, -1, -1, -1, -1, -1, -1, 1886, -1, -1,
18200 : -1, 222, 4577, -1, -1, 1894, -1, -1, 229, -1,
18201 : 408, -1, -1, 1902, -1, -1, -1, -1, -1, -1,
18202 : -1, -1, 4124, -1, 3058, -1, -1, -1, -1, -1,
18203 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18204 : -1, -1, -1, 6249, -1, -1, -1, 4149, 5785, 4624,
18205 : -1, -1, -1, -1, 4629, -1, -1, 1946, 1947, -1,
18206 : -1, -1, -1, -1, 197, -1, -1, -1, -1, 202,
18207 : -1, 1960, -1, -1, -1, -1, -1, -1, -1, -1,
18208 : -1, 5785, -1, -1, 1973, 1974, -1, -1, -1, -1,
18209 : -1, -1, 225, 226, -1, -1, -1, 3131, -1, -1,
18210 : -1, 3135, -1, -1, -1, -1, -1, -1, -1, -1,
18211 : -1, 5848, -1, -1, -1, -1, -1, 515, -1, -1,
18212 : 253, -1, -1, -1, 1713, -1, 524, 525, 526, 527,
18213 : 528, 529, 530, 531, 532, -1, -1, -1, -1, 537,
18214 : -1, -1, -1, -1, 5848, 666, -1, -1, -1, -1,
18215 : -1, 672, -1, -1, -1, -1, -1, -1, -1, -1,
18216 : -1, -1, -1, 296, -1, -1, -1, -1, -1, -1,
18217 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 312,
18218 : -1, -1, 315, -1, -1, -1, -1, -1, -1, -1,
18219 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18220 : -1, -1, -1, -1, 3238, -1, -1, -1, 4310, -1,
18221 : -1, -1, 4787, -1, -1, -1, -1, -1, -1, 3253,
18222 : -1, -1, -1, -1, 3258, -1, -1, -1, -1, -1,
18223 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 1828,
18224 : -1, -1, -1, -1, 2133, -1, -1, -1, -1, -1,
18225 : -1, -1, -1, -1, 3288, 6461, -1, -1, -1, -1,
18226 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18227 : -1, -1, -1, -1, 1863, 408, -1, -1, -1, -1,
18228 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18229 : -1, -1, -1, -1, -1, -1, -1, 1886, -1, -1,
18230 : -1, -1, -1, -1, 4406, 1894, -1, -1, -1, -1,
18231 : -1, -1, -1, 1902, -1, -1, -1, -1, -1, -1,
18232 : -1, -1, 843, -1, -1, -1, -1, -1, -1, 4904,
18233 : -1, -1, 4434, -1, -1, -1, -1, -1, -1, -1,
18234 : -1, 862, -1, -1, -1, -1, -1, -1, -1, -1,
18235 : -1, -1, -1, -1, 1943, 1944, -1, 1946, 1947, -1,
18236 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 1958,
18237 : 6370, 1960, 1961, -1, -1, -1, -1, -1, -1, -1,
18238 : -1, -1, 515, 4958, 1973, 1974, -1, -1, -1, -1,
18239 : -1, 524, 525, 526, 527, 528, 529, 530, 531, 532,
18240 : 10, -1, -1, 13, 537, 4980, -1, 17, 18, 19,
18241 : -1, -1, -1, -1, -1, 6370, -1, -1, -1, -1,
18242 : -1, -1, 2011, -1, -1, 35, 2015, 2016, -1, -1,
18243 : -1, -1, -1, -1, -1, 45, -1, -1, -1, -1,
18244 : -1, -1, 52, -1, -1, -1, -1, -1, -1, -1,
18245 : -1, -1, -1, 674, -1, 676, -1, -1, 679, -1,
18246 : 981, -1, -1, -1, -1, -1, -1, -1, 78, -1,
18247 : -1, -1, 693, 10, -1, 4577, 13, 5052, 699, -1,
18248 : 17, 18, 19, -1, -1, -1, -1, -1, -1, -1,
18249 : -1, -1, -1, -1, -1, -1, -1, -1, 35, -1,
18250 : -1, -1, -1, -1, -1, -1, -1, -1, 45, 3543,
18251 : -1, -1, 3546, -1, 3548, 52, -1, -1, -1, 3553,
18252 : -1, -1, 4624, -1, -1, -1, -1, 4629, -1, -1,
18253 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18254 : -1, 78, -1, -1, 2133, -1, -1, -1, -1, -1,
18255 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18256 : -1, 3595, -1, -1, -1, -1, -1, -1, -1, 3603,
18257 : -1, -1, -1, -1, -1, 1096, -1, -1, -1, -1,
18258 : -1, -1, -1, -1, -1, -1, -1, 197, -1, -1,
18259 : -1, -1, 202, -1, 3628, -1, -1, -1, -1, 5174,
18260 : -1, -1, -1, -1, 1125, 1126, 1127, -1, -1, -1,
18261 : -1, -1, -1, -1, -1, 225, 226, -1, -1, -1,
18262 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18263 : -1, -1, -1, 6370, -1, 172, -1, -1, -1, -1,
18264 : -1, 178, -1, 253, -1, -1, -1, -1, -1, -1,
18265 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18266 : 197, -1, -1, -1, -1, 202, 6370, -1, -1, -1,
18267 : -1, -1, -1, -1, 3708, -1, 3710, -1, -1, -1,
18268 : -1, -1, -1, -1, -1, 4787, 296, -1, 225, 226,
18269 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18270 : -1, -1, 312, -1, -1, 315, -1, -1, -1, -1,
18271 : -1, -1, -1, 1234, -1, 10, 253, -1, 13, -1,
18272 : -1, -1, 17, 18, 19, -1, -1, -1, -1, -1,
18273 : -1, -1, -1, -1, -1, -1, -1, -1, 5313, -1,
18274 : 35, 1262, -1, -1, 39, -1, -1, -1, -1, -1,
18275 : 45, -1, -1, -1, -1, -1, -1, 52, -1, 296,
18276 : -1, -1, -1, -1, -1, 986, 987, -1, -1, -1,
18277 : -1, -1, 3806, -1, -1, 312, -1, -1, 315, -1,
18278 : -1, -1, -1, 78, 2673, -1, -1, -1, -1, -1,
18279 : -1, -1, -1, -1, -1, -1, -1, -1, 408, -1,
18280 : -1, -1, 4904, -1, -1, -1, -1, -1, -1, -1,
18281 : -1, -1, -1, -1, 5389, -1, 3850, -1, -1, -1,
18282 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18283 : -1, -1, -1, -1, -1, 130, 1057, -1, -1, 2728,
18284 : -1, -1, -1, -1, 3878, -1, -1, -1, -1, -1,
18285 : -1, 1072, -1, -1, -1, -1, 4958, 2746, -1, -1,
18286 : -1, 2750, -1, -1, -1, 2754, -1, -1, -1, -1,
18287 : -1, 408, -1, -1, 2763, -1, -1, -1, 4980, -1,
18288 : -1, -1, 1103, 1104, -1, -1, -1, -1, -1, 2778,
18289 : -1, -1, -1, -1, 1415, -1, -1, -1, -1, -1,
18290 : -1, -1, 197, -1, -1, 515, -1, 202, 1129, -1,
18291 : -1, -1, 3946, -1, 524, 525, 526, 527, 528, 529,
18292 : 530, 531, 532, 2812, -1, 535, -1, -1, -1, -1,
18293 : 225, 226, -1, -1, 3968, -1, 5511, -1, -1, -1,
18294 : -1, -1, -1, 2832, 2833, -1, -1, -1, 1169, 1170,
18295 : 5052, -1, -1, -1, -1, -1, 3990, -1, 253, -1,
18296 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18297 : -1, -1, -1, -1, 1495, -1, -1, -1, 515, -1,
18298 : -1, 2870, 2871, -1, -1, 2874, -1, 524, 525, 526,
18299 : 527, 528, 529, 530, 531, 532, -1, -1, -1, -1,
18300 : -1, 296, -1, -1, -1, -1, -1, -1, -1, 2898,
18301 : -1, 2900, -1, -1, -1, 2904, -1, 312, -1, -1,
18302 : 315, -1, -1, -1, -1, -1, -1, -1, -1, 2918,
18303 : -1, -1, -1, -1, -1, -1, 2925, -1, 4072, 2928,
18304 : -1, -1, -1, -1, -1, 2934, -1, -1, -1, -1,
18305 : -1, -1, -1, -1, -1, -1, -1, 1578, -1, -1,
18306 : -1, -1, -1, -1, -1, 2954, 1587, -1, -1, -1,
18307 : -1, 2960, 5174, -1, -1, -1, -1, -1, 2967, -1,
18308 : -1, -1, -1, -1, 2673, -1, -1, -1, -1, -1,
18309 : 4124, 5666, 2981, -1, -1, -1, 5671, 5672, 1619, -1,
18310 : -1, -1, -1, -1, 1625, 1626, 2995, -1, 1629, -1,
18311 : -1, 3000, -1, 408, -1, 4149, -1, 3006, -1, -1,
18312 : -1, 1642, -1, -1, 1645, -1, -1, -1, -1, -1,
18313 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 2728,
18314 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18315 : -1, -1, -1, -1, -1, -1, -1, 2746, -1, -1,
18316 : -1, 2750, -1, -1, -1, 2754, -1, -1, -1, -1,
18317 : -1, -1, -1, -1, 2763, -1, -1, 3066, 473, -1,
18318 : -1, -1, 1703, -1, -1, -1, -1, -1, -1, 2778,
18319 : -1, -1, -1, -1, -1, -1, 1717, -1, -1, -1,
18320 : -1, -1, -1, -1, -1, -1, 2795, -1, 2797, 2798,
18321 : 5785, 5313, -1, -1, -1, -1, -1, -1, -1, -1,
18322 : 515, -1, -1, 2812, -1, -1, -1, -1, -1, 524,
18323 : 525, 526, 527, 528, 529, 530, 531, 532, -1, -1,
18324 : -1, -1, -1, 2832, 2833, -1, -1, -1, -1, -1,
18325 : -1, -1, -1, -1, -1, -1, -1, -1, 10, -1,
18326 : -1, 13, -1, -1, -1, 17, 18, 19, -1, -1,
18327 : -1, -1, -1, 5848, -1, -1, 4310, -1, -1, -1,
18328 : -1, 2870, 2871, 35, -1, 2874, -1, 5389, -1, -1,
18329 : -1, -1, -1, 45, -1, -1, -1, -1, -1, -1,
18330 : 52, -1, -1, -1, -1, -1, 1827, -1, -1, 2898,
18331 : -1, 2900, -1, -1, -1, 2904, -1, 1838, -1, -1,
18332 : -1, -1, -1, -1, -1, -1, 78, -1, -1, 2918,
18333 : -1, -1, 3221, -1, 3223, -1, 2925, -1, -1, 2928,
18334 : -1, -1, -1, -1, 1565, 2934, -1, -1, -1, -1,
18335 : -1, 3240, -1, -1, -1, -1, -1, -1, 3247, 1880,
18336 : 1881, -1, -1, -1, -1, 2954, -1, -1, -1, 1590,
18337 : -1, 2960, 4406, -1, -1, -1, -1, -1, 2967, -1,
18338 : -1, -1, -1, -1, 1905, -1, -1, -1, -1, -1,
18339 : -1, 1912, 2981, -1, -1, -1, -1, -1, -1, -1,
18340 : 4434, -1, -1, -1, -1, -1, 2995, -1, -1, 5511,
18341 : -1, 3000, -1, -1, -1, -1, -1, 3006, -1, 171,
18342 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18343 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18344 : -1, -1, -1, -1, -1, 197, -1, -1, 1669, -1,
18345 : 202, -1, -1, -1, -1, 3344, -1, -1, -1, -1,
18346 : -1, 3350, -1, -1, 1985, -1, -1, -1, -1, -1,
18347 : -1, -1, -1, 225, 226, -1, -1, 3066, 1699, 1700,
18348 : 1701, 1702, -1, -1, -1, -1, -1, -1, -1, -1,
18349 : -1, -1, -1, -1, -1, -1, -1, 2018, 2019, -1,
18350 : -1, 253, -1, -1, -1, -1, -1, -1, -1, -1,
18351 : -1, -1, -1, -1, 2035, 10, -1, 2038, 13, -1,
18352 : -1, -1, 17, 18, 19, -1, -1, -1, -1, -1,
18353 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18354 : 35, -1, -1, 4577, 296, -1, 3435, -1, -1, -1,
18355 : 45, -1, -1, -1, -1, -1, -1, 52, -1, -1,
18356 : 312, -1, -1, 315, 5666, -1, -1, -1, -1, 5671,
18357 : 5672, -1, -1, -1, -1, -1, -1, -1, 10, -1,
18358 : -1, 13, -1, 78, -1, 17, 18, 19, -1, 341,
18359 : 4624, -1, -1, -1, -1, 4629, -1, -1, -1, -1,
18360 : -1, -1, -1, 35, -1, -1, 38, -1, -1, -1,
18361 : -1, -1, -1, 45, -1, -1, -1, -1, -1, -1,
18362 : 52, -1, -1, -1, -1, 1846, 1847, -1, -1, -1,
18363 : -1, -1, 3221, -1, 3223, -1, -1, -1, -1, -1,
18364 : -1, 1862, -1, -1, -1, -1, 78, -1, -1, -1,
18365 : -1, 3240, -1, -1, -1, -1, 408, -1, 3247, -1,
18366 : -1, -1, -1, -1, -1, 3254, -1, 3256, 3257, -1,
18367 : -1, -1, -1, -1, -1, 1896, 1897, 1898, 1899, 3568,
18368 : 3569, -1, -1, 5785, 10, -1, -1, 13, -1, -1,
18369 : -1, 17, 18, 19, -1, -1, -1, -1, -1, -1,
18370 : 3589, -1, 197, 3592, -1, -1, -1, 202, -1, 35,
18371 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 45,
18372 : -1, -1, -1, -1, -1, -1, 52, -1, -1, -1,
18373 : 225, 226, -1, -1, -1, -1, -1, -1, -1, -1,
18374 : -1, -1, -1, -1, -1, -1, 5848, -1, -1, -1,
18375 : -1, -1, 78, 4787, -1, 3344, 1977, -1, 253, -1,
18376 : -1, 3350, 1983, 515, -1, 197, -1, -1, -1, -1,
18377 : 202, -1, 524, 525, 526, 527, 528, 529, 530, 531,
18378 : 532, -1, -1, -1, -1, 3674, 3675, 3676, -1, -1,
18379 : -1, -1, -1, 225, 226, 6370, -1, -1, -1, -1,
18380 : -1, 296, -1, -1, -1, -1, -1, -1, -1, -1,
18381 : 3699, -1, -1, -1, -1, -1, -1, 312, -1, -1,
18382 : 315, 253, -1, -1, -1, -1, -1, -1, -1, 3718,
18383 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18384 : -1, -1, -1, -1, -1, -1, 3435, -1, 343, -1,
18385 : -1, 3740, -1, -1, -1, -1, -1, -1, -1, -1,
18386 : -1, -1, -1, -1, 296, -1, 25, -1, -1, -1,
18387 : 4904, 197, 31, -1, -1, -1, 202, -1, -1, 38,
18388 : 312, -1, -1, 315, -1, -1, -1, -1, -1, -1,
18389 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 225,
18390 : 226, 60, -1, -1, -1, -1, -1, -1, -1, -1,
18391 : -1, -1, -1, 408, -1, -1, -1, 76, -1, -1,
18392 : -1, -1, -1, -1, 4958, -1, -1, 253, -1, -1,
18393 : -1, -1, 427, -1, -1, -1, -1, -1, -1, -1,
18394 : -1, 3830, -1, -1, -1, -1, 4980, -1, -1, -1,
18395 : 2171, -1, -1, 112, -1, -1, -1, -1, -1, -1,
18396 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18397 : 296, -1, -1, -1, 133, -1, 408, -1, -1, 3568,
18398 : 3569, 140, -1, -1, -1, 144, 312, -1, 3877, 315,
18399 : -1, -1, -1, -1, 3883, -1, 3885, -1, -1, -1,
18400 : 3589, -1, -1, 3592, -1, -1, -1, -1, -1, 3898,
18401 : -1, 3900, -1, -1, 173, -1, -1, -1, 5052, -1,
18402 : 515, -1, -1, -1, -1, -1, -1, -1, -1, 524,
18403 : 525, 526, 527, 528, 529, 530, 531, 532, -1, -1,
18404 : -1, -1, -1, -1, -1, -1, 205, -1, -1, -1,
18405 : 209, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18406 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18407 : -1, -1, -1, -1, 2595, -1, -1, -1, 3967, -1,
18408 : -1, -1, 408, 515, 2605, 3674, 3675, 3676, -1, -1,
18409 : -1, -1, 524, 525, 526, 527, 528, 529, 530, 531,
18410 : 532, -1, -1, -1, 263, -1, -1, -1, -1, 268,
18411 : 3699, -1, -1, -1, 273, -1, -1, -1, -1, -1,
18412 : 4009, -1, -1, -1, -1, -1, -1, -1, -1, 3718,
18413 : 289, -1, -1, -1, 293, -1, -1, -1, -1, 4028,
18414 : 5174, -1, -1, 4032, -1, 304, -1, -1, -1, -1,
18415 : -1, 3740, -1, -1, -1, 314, -1, -1, -1, -1,
18416 : -1, -1, -1, -1, 4053, -1, 325, 326, -1, -1,
18417 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18418 : -1, -1, -1, -1, -1, -1, -1, -1, 514, 515,
18419 : -1, -1, -1, -1, 2715, -1, -1, -1, 524, 525,
18420 : 526, 527, 528, 529, 530, 531, 532, -1, -1, 368,
18421 : -1, -1, 371, 372, 373, 10, -1, -1, 13, -1,
18422 : -1, -1, 17, 18, 19, -1, -1, -1, -1, -1,
18423 : -1, -1, -1, -1, -1, -1, -1, -1, 397, -1,
18424 : 35, 3830, -1, -1, 403, -1, -1, -1, -1, -1,
18425 : 45, -1, -1, -1, -1, -1, -1, 52, -1, 418,
18426 : -1, -1, -1, -1, -1, -1, -1, -1, 6370, -1,
18427 : -1, -1, 4161, -1, -1, -1, -1, -1, -1, 5313,
18428 : -1, -1, -1, 78, -1, -1, -1, 0, 3877, -1,
18429 : -1, -1, -1, -1, 3883, -1, 3885, -1, -1, -1,
18430 : -1, -1, -1, -1, -1, -1, -1, 20, -1, 3898,
18431 : 469, 3900, -1, -1, -1, -1, -1, 476, 31, -1,
18432 : 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
18433 : -1, 2852, -1, -1, -1, -1, -1, -1, 51, -1,
18434 : -1, -1, -1, -1, -1, -1, 2867, -1, 61, -1,
18435 : -1, -1, -1, -1, -1, 5389, -1, -1, -1, -1,
18436 : 73, -1, 75, 76, -1, -1, -1, -1, 2889, 82,
18437 : -1, 84, -1, -1, -1, -1, -1, -1, 3967, -1,
18438 : -1, -1, -1, -1, 97, -1, 99, -1, -1, -1,
18439 : -1, 10, -1, -1, 13, -1, -1, -1, 17, 18,
18440 : 19, -1, 197, 116, -1, -1, 119, 202, -1, -1,
18441 : -1, -1, -1, -1, -1, -1, 35, -1, 2639, 38,
18442 : 4009, 134, -1, 136, -1, -1, 45, 140, -1, -1,
18443 : 225, 226, -1, 52, 147, -1, -1, -1, -1, 4028,
18444 : -1, -1, -1, 4032, 157, -1, 159, 4336, -1, -1,
18445 : -1, -1, -1, 166, 2975, 2976, -1, -1, 253, 78,
18446 : -1, -1, -1, -1, 4053, -1, -1, -1, -1, -1,
18447 : -1, 184, -1, -1, -1, -1, -1, 5511, -1, -1,
18448 : -1, -1, -1, -1, -1, -1, -1, -1, 201, -1,
18449 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18450 : -1, 296, -1, -1, -1, 840, 841, -1, -1, -1,
18451 : -1, 4400, -1, -1, -1, -1, 4405, 312, 4407, -1,
18452 : 315, -1, -1, -1, -1, -1, -1, -1, -1, 10,
18453 : -1, -1, 13, -1, -1, -1, 17, 18, 19, -1,
18454 : -1, 336, 255, 256, 4433, -1, -1, -1, 261, -1,
18455 : -1, -1, -1, -1, 35, -1, 3077, -1, -1, -1,
18456 : -1, -1, -1, 276, 45, -1, -1, -1, -1, -1,
18457 : -1, 52, 4161, -1, -1, -1, -1, -1, 197, -1,
18458 : 2801, -1, 295, 202, -1, 920, -1, -1, -1, -1,
18459 : 4479, -1, -1, 4482, -1, -1, -1, 78, -1, -1,
18460 : -1, -1, -1, -1, -1, -1, 225, 226, -1, -1,
18461 : -1, -1, -1, 408, -1, -1, -1, -1, -1, -1,
18462 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18463 : -1, 344, 5666, -1, 253, -1, -1, 5671, 5672, -1,
18464 : -1, -1, -1, -1, -1, -1, 359, -1, -1, -1,
18465 : -1, 364, 365, -1, 367, -1, -1, -1, -1, 372,
18466 : -1, -1, -1, -1, -1, 378, -1, -1, 381, -1,
18467 : -1, -1, -1, -1, -1, 388, -1, 296, -1, -1,
18468 : -1, -1, 395, 396, 4573, 4574, -1, -1, -1, -1,
18469 : 403, -1, -1, 312, 407, 4584, 315, 178, -1, -1,
18470 : -1, -1, -1, -1, -1, 418, 1041, 1042, -1, -1,
18471 : -1, -1, 4601, -1, -1, -1, 197, -1, -1, -1,
18472 : 515, 202, 435, -1, -1, 2946, -1, -1, 2949, 524,
18473 : 525, 526, 527, 528, 529, 530, 531, 532, -1, -1,
18474 : -1, -1, -1, 456, 225, 226, -1, 4336, -1, -1,
18475 : -1, 5785, -1, -1, -1, 468, -1, -1, -1, -1,
18476 : -1, 474, -1, -1, -1, -1, 479, -1, -1, -1,
18477 : -1, -1, 253, -1, -1, -1, -1, -1, 10, -1,
18478 : 493, 13, -1, -1, -1, 17, 18, 19, -1, 408,
18479 : -1, -1, -1, 4682, -1, -1, 4685, -1, -1, -1,
18480 : -1, 1368, -1, 35, 517, -1, 519, 520, 521, 522,
18481 : 523, 4400, -1, 45, 5848, 296, 4405, 3038, 4407, -1,
18482 : 52, -1, -1, 536, -1, -1, 539, -1, -1, -1,
18483 : 3051, 312, -1, -1, 315, -1, -1, -1, 3059, -1,
18484 : -1, -1, -1, -1, 4433, -1, 78, -1, -1, -1,
18485 : -1, -1, -1, -1, -1, -1, 1423, -1, -1, -1,
18486 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18487 : -1, -1, -1, -1, -1, -1, -1, 3098, -1, -1,
18488 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18489 : 4479, -1, -1, 4482, -1, -1, 515, -1, 3119, -1,
18490 : 3421, -1, -1, -1, -1, 524, 525, 526, 527, 528,
18491 : 529, 530, 531, 532, -1, -1, -1, -1, -1, -1,
18492 : -1, 10, -1, -1, 13, -1, -1, 408, 17, 18,
18493 : 19, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18494 : -1, 3162, -1, 3164, -1, 1280, 35, -1, -1, 38,
18495 : -1, -1, -1, -1, -1, -1, 45, -1, -1, -1,
18496 : -1, -1, -1, 52, -1, 197, -1, -1, -1, -1,
18497 : 202, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18498 : -1, -1, -1, -1, 4573, 4574, -1, 1322, -1, 78,
18499 : -1, -1, -1, 225, 226, 4584, -1, -1, -1, -1,
18500 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18501 : -1, -1, 4601, -1, -1, -1, 1351, 1352, 1353, -1,
18502 : 1355, 253, -1, -1, -1, -1, -1, -1, 4917, -1,
18503 : -1, 3252, -1, -1, 515, -1, -1, -1, 3259, -1,
18504 : -1, 1376, -1, 524, 525, 526, 527, 528, 529, 530,
18505 : 531, 532, -1, -1, -1, -1, -1, -1, -1, 10,
18506 : -1, -1, 13, -1, 296, -1, 17, 18, 19, -1,
18507 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18508 : 312, -1, -1, 315, 35, -1, 4975, 38, -1, -1,
18509 : -1, -1, -1, 4682, 45, -1, 4685, -1, 4987, -1,
18510 : -1, 52, -1, -1, -1, -1, -1, -1, 197, -1,
18511 : -1, -1, -1, 202, -1, -1, -1, -1, -1, -1,
18512 : -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
18513 : -1, -1, 5021, -1, -1, -1, 225, 226, -1, -1,
18514 : -1, -1, -1, -1, 1479, -1, -1, 10, 1483, 1484,
18515 : 13, -1, -1, -1, 17, 18, 19, -1, -1, -1,
18516 : -1, -1, -1, -1, 253, -1, -1, 1734, -1, -1,
18517 : -1, 1738, 35, -1, -1, -1, 408, -1, -1, -1,
18518 : -1, -1, 45, -1, -1, -1, -1, -1, -1, 52,
18519 : -1, -1, -1, -1, -1, 3716, -1, -1, -1, -1,
18520 : -1, -1, -1, -1, -1, 3726, -1, 296, -1, -1,
18521 : -1, 5100, 444, -1, -1, 78, -1, -1, -1, -1,
18522 : -1, -1, -1, 312, -1, -1, 315, -1, -1, -1,
18523 : 5119, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18524 : -1, -1, -1, -1, -1, -1, 197, -1, -1, -1,
18525 : -1, 202, -1, -1, -1, -1, -1, -1, -1, -1,
18526 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18527 : -1, -1, -1, -1, 225, 226, -1, -1, -1, -1,
18528 : -1, -1, -1, 515, -1, -1, -1, -1, -1, -1,
18529 : -1, -1, 524, 525, 526, 527, 528, 529, 530, 531,
18530 : 532, -1, 253, -1, -1, 10, -1, -1, 13, -1,
18531 : -1, -1, 17, 18, 19, -1, 5205, -1, -1, 408,
18532 : -1, -1, -1, -1, -1, -1, -1, -1, 4917, -1,
18533 : 35, -1, -1, -1, 197, -1, 6370, -1, -1, 202,
18534 : 45, -1, -1, -1, -1, 296, -1, 52, -1, -1,
18535 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18536 : -1, 312, 225, 226, 315, -1, -1, -1, 3889, 3890,
18537 : 3891, -1, -1, 78, -1, -1, -1, 3598, 3599, -1,
18538 : -1, -1, -1, -1, -1, 3906, 4975, -1, -1, -1,
18539 : 253, -1, -1, 1728, 1729, 1730, -1, -1, 4987, -1,
18540 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18541 : -1, -1, -1, -1, -1, -1, -1, -1, 3939, 3940,
18542 : -1, -1, -1, 3944, -1, -1, 515, -1, -1, -1,
18543 : -1, -1, 5021, 296, -1, 524, 525, 526, 527, 528,
18544 : 529, 530, 531, 532, -1, -1, -1, -1, 5337, 312,
18545 : 5339, -1, 315, -1, -1, -1, 10, 408, -1, 13,
18546 : -1, -1, -1, 17, 18, 19, -1, -1, -1, 332,
18547 : -1, -1, -1, 178, -1, -1, -1, -1, -1, -1,
18548 : -1, 35, -1, -1, -1, -1, -1, -1, 2055, -1,
18549 : -1, 45, 197, -1, -1, -1, -1, 202, 52, -1,
18550 : -1, 5390, -1, -1, -1, -1, -1, -1, -1, -1,
18551 : -1, 5100, -1, -1, 2081, -1, -1, -1, 2085, -1,
18552 : 225, 226, -1, -1, 78, -1, -1, -1, -1, 4050,
18553 : 5119, -1, -1, 2100, 2101, 2102, -1, 2104, -1, -1,
18554 : -1, -1, -1, -1, -1, 408, -1, -1, 253, -1,
18555 : -1, 5440, -1, -1, -1, -1, -1, -1, -1, 10,
18556 : -1, -1, 13, -1, 515, -1, 17, 18, 19, -1,
18557 : -1, -1, -1, 524, 525, 526, 527, 528, 529, 530,
18558 : 531, 532, -1, -1, 35, -1, -1, -1, -1, -1,
18559 : -1, 296, -1, -1, 45, -1, -1, -1, -1, -1,
18560 : -1, 52, -1, -1, -1, -1, -1, 312, -1, -1,
18561 : 315, -1, -1, -1, -1, -1, 5205, -1, -1, -1,
18562 : -1, -1, -1, -1, 178, -1, -1, 78, -1, -1,
18563 : -1, 3852, -1, -1, -1, -1, -1, -1, -1, -1,
18564 : -1, -1, -1, 197, -1, -1, -1, -1, 202, -1,
18565 : -1, -1, 515, -1, -1, -1, -1, -1, -1, -1,
18566 : -1, 524, 525, 526, 527, 528, 529, 530, 531, 532,
18567 : -1, 225, 226, -1, -1, -1, -1, -1, -1, -1,
18568 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18569 : -1, -1, -1, -1, -1, 4216, 4217, 4218, -1, 253,
18570 : -1, -1, -1, 408, -1, -1, -1, -1, -1, -1,
18571 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18572 : -1, 172, 2057, -1, -1, -1, -1, -1, -1, -1,
18573 : -1, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074,
18574 : 2075, -1, 296, -1, -1, 2080, 197, 2082, 5337, 2084,
18575 : 5339, 202, 2087, 2088, 2089, -1, -1, -1, 312, -1,
18576 : 2095, 315, -1, 2098, -1, -1, -1, -1, -1, -1,
18577 : -1, -1, -1, -1, 225, 226, -1, -1, 2113, 2114,
18578 : 2115, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18579 : -1, 4012, -1, -1, -1, 5684, 2131, -1, -1, -1,
18580 : -1, 5390, 253, -1, -1, -1, -1, -1, -1, 5698,
18581 : 515, 5400, -1, -1, -1, -1, -1, -1, -1, 524,
18582 : 525, 526, 527, 528, 529, 530, 531, 532, -1, -1,
18583 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18584 : -1, 5730, -1, -1, -1, 296, -1, -1, -1, -1,
18585 : -1, 5440, -1, -1, 408, -1, 5445, -1, -1, -1,
18586 : -1, 312, -1, -1, 315, -1, -1, 10, -1, -1,
18587 : 13, -1, -1, -1, 17, 18, 19, -1, -1, -1,
18588 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18589 : -1, -1, 35, -1, -1, -1, -1, -1, -1, -1,
18590 : -1, -1, 45, -1, -1, -1, -1, -1, -1, 52,
18591 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18592 : 5809, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18593 : -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
18594 : -1, -1, -1, -1, 2279, -1, -1, -1, -1, -1,
18595 : -1, -1, -1, -1, -1, -1, 5845, 408, -1, -1,
18596 : -1, 515, -1, -1, -1, -1, -1, -1, -1, -1,
18597 : 524, 525, 526, 527, 528, 529, 530, 531, 532, -1,
18598 : -1, 10, -1, -1, 13, -1, -1, -1, 17, 18,
18599 : 19, -1, -1, -1, -1, -1, -1, -1, 2333, -1,
18600 : -1, -1, -1, -1, -1, -1, 35, -1, 151, -1,
18601 : -1, -1, -1, -1, -1, -1, 45, -1, -1, -1,
18602 : -1, -1, -1, 52, -1, 2592, -1, -1, -1, -1,
18603 : -1, -1, 5921, 4554, -1, 5924, -1, -1, -1, -1,
18604 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 78,
18605 : -1, -1, -1, -1, 197, 2390, -1, -1, -1, 202,
18606 : -1, -1, -1, -1, 515, 4586, -1, -1, -1, -1,
18607 : -1, -1, -1, 524, 525, 526, 527, 528, 529, 530,
18608 : 531, 532, 225, 226, -1, -1, -1, -1, -1, -1,
18609 : -1, -1, -1, -1, -1, 5684, -1, 4618, -1, -1,
18610 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 5698,
18611 : 253, -1, -1, -1, -1, 10, -1, -1, 13, -1,
18612 : -1, 2688, 17, 18, 19, -1, -1, -1, -1, -1,
18613 : -1, -1, 4653, 2700, -1, -1, -1, -1, 2705, -1,
18614 : 35, 5730, -1, -1, -1, -1, -1, -1, -1, 4670,
18615 : 45, -1, -1, 296, -1, -1, -1, 52, -1, -1,
18616 : -1, -1, -1, -1, -1, -1, -1, -1, 197, 312,
18617 : -1, -1, 315, 202, -1, -1, -1, -1, -1, -1,
18618 : 6069, -1, -1, 78, -1, -1, -1, -1, -1, -1,
18619 : -1, -1, -1, -1, -1, -1, 225, 226, -1, -1,
18620 : -1, -1, -1, -1, 6093, -1, -1, -1, -1, -1,
18621 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18622 : 5809, -1, -1, -1, 253, -1, -1, -1, -1, -1,
18623 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18624 : 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, -1,
18625 : 2585, -1, -1, -1, -1, -1, 5845, -1, -1, -1,
18626 : -1, 2596, -1, 2598, -1, 408, -1, 296, -1, -1,
18627 : -1, -1, -1, -1, -1, -1, -1, 172, -1, -1,
18628 : -1, -1, -1, 312, -1, -1, 315, -1, -1, -1,
18629 : -1, -1, -1, -1, 4815, 4816, 4817, 4818, -1, -1,
18630 : -1, 2636, 197, -1, -1, 2640, -1, 202, 2643, 4530,
18631 : 2645, -1, -1, 2648, -1, -1, -1, -1, -1, -1,
18632 : -1, -1, -1, 4544, -1, -1, -1, -1, -1, -1,
18633 : 225, 226, 5921, -1, -1, 5924, -1, -1, -1, -1,
18634 : -1, -1, -1, -1, 6233, -1, -1, -1, -1, -1,
18635 : -1, -1, -1, -1, -1, -1, -1, -1, 253, -1,
18636 : -1, -1, -1, -1, -1, -1, 2701, 2702, -1, -1,
18637 : -1, -1, 515, -1, -1, -1, -1, -1, -1, 408,
18638 : -1, 524, 525, 526, 527, 528, 529, 530, 531, 532,
18639 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18640 : -1, 296, -1, -1, -1, -1, 10, -1, -1, 13,
18641 : -1, -1, -1, 17, 18, 19, -1, 312, -1, -1,
18642 : 315, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18643 : -1, 35, -1, -1, 38, -1, -1, -1, -1, -1,
18644 : -1, 45, -1, -1, -1, -1, 2781, -1, 52, -1,
18645 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18646 : 489, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18647 : -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
18648 : 6069, -1, -1, -1, -1, -1, 515, -1, -1, -1,
18649 : -1, -1, -1, -1, 6083, 524, 525, 526, 527, 528,
18650 : 529, 530, 531, 532, 6093, -1, -1, -1, 6397, -1,
18651 : -1, -1, -1, 408, -1, -1, -1, 10, -1, -1,
18652 : 13, -1, -1, -1, 17, 18, 19, -1, -1, -1,
18653 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18654 : -1, -1, 35, -1, -1, -1, -1, -1, -1, -1,
18655 : -1, -1, 45, -1, -1, -1, -1, -1, -1, 52,
18656 : -1, -1, -1, 6152, 6153, -1, -1, -1, -1, 6458,
18657 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18658 : -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
18659 : -1, -1, -1, 197, 6483, -1, -1, -1, 202, -1,
18660 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18661 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18662 : 515, 225, 226, -1, -1, -1, -1, -1, -1, 524,
18663 : 525, 526, 527, 528, 529, 530, 531, 532, -1, -1,
18664 : -1, -1, -1, -1, 6233, -1, 5167, -1, -1, 253,
18665 : -1, -1, -1, -1, -1, -1, -1, 5178, -1, -1,
18666 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18667 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18668 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 3024,
18669 : 3025, 3026, 296, -1, -1, 3030, -1, -1, -1, -1,
18670 : -1, -1, 3269, -1, 197, -1, -1, -1, 312, 202,
18671 : -1, 315, -1, -1, -1, -1, -1, -1, -1, 3286,
18672 : -1, -1, 3057, -1, -1, -1, -1, -1, -1, 3296,
18673 : -1, -1, 225, 226, -1, 3302, -1, -1, 3305, -1,
18674 : -1, -1, -1, -1, -1, 3312, 3313, -1, 3315, -1,
18675 : -1, -1, -1, 3320, 3321, -1, 3323, -1, 3325, -1,
18676 : 253, -1, 3329, -1, -1, 3332, -1, -1, -1, -1,
18677 : 3337, -1, -1, -1, -1, -1, -1, -1, -1, 3346,
18678 : -1, -1, -1, -1, 3351, -1, -1, -1, -1, -1,
18679 : -1, 3358, 3359, 3360, 3361, -1, -1, -1, -1, 3366,
18680 : 3367, -1, 3369, 296, 408, -1, -1, -1, 6397, -1,
18681 : -1, 5032, -1, -1, -1, -1, -1, -1, -1, 312,
18682 : -1, 3388, 315, 3390, -1, -1, 5047, -1, -1, -1,
18683 : 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406,
18684 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18685 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18686 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 6458,
18687 : -1, -1, -1, -1, -1, -1, 3443, -1, -1, -1,
18688 : -1, -1, 6471, 6472, -1, -1, -1, -1, -1, -1,
18689 : -1, -1, -1, -1, 6483, -1, -1, -1, -1, -1,
18690 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18691 : -1, 515, -1, -1, -1, 408, -1, -1, 5139, -1,
18692 : 524, 525, 526, 527, 528, 529, 530, 531, 532, -1,
18693 : -1, 3266, -1, -1, -1, -1, 3271, -1, -1, -1,
18694 : -1, -1, -1, 5464, -1, -1, -1, -1, 5469, -1,
18695 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18696 : -1, -1, -1, -1, -1, 20, -1, 5488, -1, -1,
18697 : -1, -1, -1, -1, -1, -1, 31, -1, 33, 34,
18698 : -1, -1, -1, -1, -1, -1, -1, 3322, -1, -1,
18699 : -1, -1, -1, -1, -1, -1, -1, -1, 3333, -1,
18700 : 3335, 3336, -1, -1, -1, -1, 61, -1, -1, -1,
18701 : -1, -1, -1, -1, 3349, -1, 3583, 3352, 73, 3354,
18702 : 75, 76, 515, -1, -1, -1, -1, 82, -1, 84,
18703 : -1, 524, 525, 526, 527, 528, 529, 530, 531, 532,
18704 : -1, -1, 97, -1, 99, -1, -1, -1, -1, -1,
18705 : -1, -1, -1, 23, -1, -1, 3391, -1, 3393, -1,
18706 : 3395, 116, -1, -1, 119, -1, -1, -1, -1, -1,
18707 : -1, 41, -1, -1, -1, -1, -1, -1, -1, 134,
18708 : -1, 136, -1, -1, -1, 140, -1, -1, -1, -1,
18709 : -1, -1, 147, -1, -1, -1, 66, -1, -1, -1,
18710 : -1, -1, 157, -1, 159, -1, -1, -1, -1, 79,
18711 : -1, 166, -1, -1, -1, -1, -1, -1, -1, -1,
18712 : -1, -1, -1, -1, -1, -1, 96, -1, -1, 184,
18713 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18714 : -1, -1, -1, 5364, 114, 5366, 201, -1, -1, -1,
18715 : 120, -1, -1, -1, 3489, -1, -1, -1, -1, 3494,
18716 : -1, -1, -1, -1, -1, -1, -1, -1, 138, -1,
18717 : -1, -1, -1, -1, 3509, -1, -1, -1, -1, -1,
18718 : -1, -1, 152, -1, -1, -1, -1, -1, -1, -1,
18719 : -1, 161, -1, -1, -1, -1, -1, -1, -1, -1,
18720 : 255, 256, -1, -1, 174, -1, 261, -1, -1, -1,
18721 : -1, -1, -1, 183, -1, -1, -1, 187, -1, -1,
18722 : -1, 276, -1, -1, -1, -1, -1, -1, -1, -1,
18723 : -1, 5752, -1, -1, -1, -1, -1, 207, -1, 3574,
18724 : 295, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18725 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 5780,
18726 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18727 : -1, -1, 3839, 3840, -1, -1, -1, 3844, -1, -1,
18728 : -1, -1, -1, -1, -1, 5506, -1, 257, -1, 344,
18729 : -1, -1, -1, -1, -1, -1, -1, 267, -1, 3634,
18730 : -1, -1, -1, -1, 359, -1, 3873, -1, -1, 364,
18731 : 365, -1, 367, -1, -1, -1, -1, 372, -1, -1,
18732 : 375, -1, -1, 378, -1, -1, 381, -1, -1, -1,
18733 : -1, -1, -1, 388, -1, -1, -1, -1, -1, -1,
18734 : 395, 396, 312, -1, -1, 315, -1, -1, 403, -1,
18735 : -1, -1, 407, -1, -1, -1, -1, -1, -1, -1,
18736 : -1, -1, -1, 418, -1, -1, -1, -1, -1, 339,
18737 : 5891, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18738 : 435, -1, -1, 353, -1, -1, -1, -1, -1, -1,
18739 : 360, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18740 : -1, 456, -1, -1, -1, -1, -1, -1, -1, -1,
18741 : 380, -1, -1, 468, -1, -1, -1, -1, -1, 474,
18742 : 390, -1, -1, -1, 479, -1, -1, 397, -1, -1,
18743 : 400, -1, -1, -1, -1, -1, -1, -1, 493, -1,
18744 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18745 : 420, -1, -1, -1, -1, -1, -1, -1, 428, -1,
18746 : -1, -1, 517, -1, -1, 435, -1, 5688, 438, 5690,
18747 : 440, -1, 442, 443, -1, -1, -1, -1, -1, -1,
18748 : -1, 536, -1, -1, 539, -1, -1, -1, 458, -1,
18749 : -1, -1, -1, -1, -1, -1, 466, -1, -1, 469,
18750 : 3835, 4068, 472, -1, -1, -1, 3841, 4074, -1, -1,
18751 : -1, -1, -1, -1, -1, 485, -1, -1, -1, -1,
18752 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18753 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18754 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18755 : -1, -1, -1, -1, 4121, 4122, -1, -1, 4125, 4126,
18756 : 4127, 4128, -1, -1, 4131, 4132, 4133, 4134, 4135, 4136,
18757 : 4137, 4138, 4139, 4140, 4141, -1, -1, -1, -1, -1,
18758 : -1, 23, -1, -1, -1, 3920, 28, -1, -1, -1,
18759 : -1, -1, -1, -1, -1, -1, -1, 4164, -1, -1,
18760 : 4167, -1, 4169, -1, -1, 4172, 4173, -1, -1, -1,
18761 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18762 : -1, -1, -1, -1, 66, -1, -1, 4194, 4195, 4196,
18763 : 4197, -1, 4199, -1, -1, -1, -1, 79, -1, -1,
18764 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18765 : -1, -1, -1, -1, 96, -1, -1, -1, -1, -1,
18766 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18767 : -1, -1, 114, -1, -1, -1, -1, -1, -1, -1,
18768 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18769 : -1, -1, -1, -1, -1, -1, 138, -1, -1, -1,
18770 : -1, -1, 4269, -1, -1, -1, -1, -1, -1, -1,
18771 : 152, -1, -1, -1, -1, -1, -1, -1, -1, 161,
18772 : -1, -1, -1, -1, -1, -1, -1, 28, -1, -1,
18773 : -1, -1, 174, -1, 4069, -1, -1, -1, 180, -1,
18774 : -1, 5962, -1, 4078, -1, -1, -1, -1, -1, -1,
18775 : -1, -1, 4319, -1, -1, -1, -1, 4092, -1, -1,
18776 : -1, 4096, 4097, 4098, -1, 207, -1, -1, 4103, -1,
18777 : -1, 4106, -1, -1, 4109, -1, -1, -1, 79, -1,
18778 : 4115, -1, 4117, -1, -1, -1, -1, 4354, -1, -1,
18779 : -1, -1, -1, -1, -1, 96, -1, -1, -1, -1,
18780 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 4144,
18781 : 4145, 4146, -1, 114, -1, -1, -1, -1, -1, 120,
18782 : -1, -1, -1, -1, -1, 267, -1, -1, 4163, -1,
18783 : -1, -1, -1, -1, -1, -1, 4171, 138, -1, 4174,
18784 : -1, 4176, -1, -1, -1, -1, -1, -1, -1, -1,
18785 : -1, 152, -1, -1, -1, -1, -1, 4192, -1, -1,
18786 : 161, -1, -1, -1, -1, 4200, 4201, -1, -1, -1,
18787 : 312, -1, 4207, 174, 6095, -1, -1, -1, -1, 180,
18788 : -1, -1, -1, -1, -1, -1, 187, -1, -1, -1,
18789 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18790 : -1, 4236, -1, -1, -1, -1, 207, 349, 350, -1,
18791 : -1, 353, -1, -1, -1, -1, -1, -1, -1, -1,
18792 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18793 : -1, -1, -1, -1, -1, -1, -1, -1, 380, -1,
18794 : -1, 383, -1, -1, 245, -1, -1, -1, 390, -1,
18795 : -1, -1, 4287, -1, -1, 397, -1, -1, 400, -1,
18796 : -1, -1, -1, -1, -1, -1, 267, -1, -1, 4304,
18797 : -1, -1, -1, -1, -1, -1, -1, -1, 420, 4546,
18798 : -1, -1, -1, -1, -1, -1, 428, -1, -1, -1,
18799 : -1, -1, -1, 435, -1, -1, 438, -1, -1, -1,
18800 : -1, 443, -1, -1, -1, -1, 6227, -1, -1, 451,
18801 : -1, 312, -1, -1, -1, -1, 458, -1, -1, -1,
18802 : -1, -1, -1, 4590, -1, -1, -1, -1, -1, -1,
18803 : -1, -1, -1, -1, -1, -1, -1, -1, 339, 6260,
18804 : 6261, -1, -1, 485, -1, -1, -1, -1, 349, 350,
18805 : -1, -1, 353, -1, -1, -1, -1, -1, -1, -1,
18806 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18807 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 380,
18808 : -1, -1, 383, -1, -1, -1, 387, -1, -1, 390,
18809 : -1, -1, -1, -1, -1, -1, 397, -1, -1, 400,
18810 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18811 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 420,
18812 : -1, -1, -1, -1, -1, -1, -1, 428, -1, -1,
18813 : -1, -1, 433, -1, 435, -1, -1, 438, -1, -1,
18814 : -1, -1, 443, -1, -1, 4712, -1, -1, -1, 4716,
18815 : -1, -1, 453, -1, -1, -1, -1, 458, -1, -1,
18816 : -1, -1, 4729, -1, -1, -1, 6387, -1, -1, -1,
18817 : 4737, 472, 4739, -1, 4741, 4742, -1, -1, -1, -1,
18818 : 4747, 4748, 4749, 4750, 485, -1, -1, 4754, 4755, 4756,
18819 : 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766,
18820 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18821 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18822 : -1, -1, -1, 4790, -1, -1, 4793, -1, 4795, -1,
18823 : -1, -1, 4799, -1, -1, 4802, 4803, -1, -1, 4806,
18824 : 4807, -1, -1, -1, -1, 4812, -1, -1, -1, -1,
18825 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18826 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18827 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18828 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18829 : -1, -1, -1, -1, -1, 4630, 4631, -1, -1, 4866,
18830 : -1, -1, -1, -1, -1, -1, 4641, -1, -1, -1,
18831 : -1, -1, -1, 4880, -1, -1, -1, -1, -1, -1,
18832 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18833 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18834 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18835 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18836 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18837 : -1, -1, -1, -1, -1, -1, 4711, -1, -1, -1,
18838 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18839 : -1, -1, 4727, -1, -1, -1, -1, -1, -1, -1,
18840 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18841 : 4745, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18842 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18843 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18844 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 4784,
18845 : 4785, -1, -1, -1, -1, -1, 4791, 4792, -1, -1,
18846 : -1, 4796, -1, -1, -1, -1, 4801, -1, -1, 4804,
18847 : 4805, -1, -1, -1, -1, -1, 4811, -1, -1, -1,
18848 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18849 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18850 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18851 : -1, -1, -1, -1, 5081, -1, -1, -1, -1, -1,
18852 : -1, 4856, -1, -1, -1, -1, -1, -1, -1, -1,
18853 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18854 : 4875, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18855 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18856 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18857 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18858 : -1, -1, -1, -1, -1, -1, -1, 4922, -1, -1,
18859 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18860 : -1, -1, 5169, 5170, -1, -1, -1, -1, -1, -1,
18861 : 5177, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18862 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18863 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18864 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18865 : -1, -1, -1, 5220, -1, -1, -1, -1, -1, -1,
18866 : -1, -1, -1, -1, -1, -1, -1, -1, 5003, -1,
18867 : -1, -1, -1, -1, -1, 5010, 5243, 5244, -1, -1,
18868 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18869 : -1, -1, -1, -1, -1, 5262, -1, 5264, -1, -1,
18870 : -1, 5268, 5269, 5270, 5271, -1, -1, 5274, 5275, -1,
18871 : -1, -1, -1, 5280, -1, -1, -1, -1, -1, -1,
18872 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18873 : 5297, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18874 : -1, -1, -1, 5078, -1, -1, -1, -1, 5315, -1,
18875 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18876 : -1, -1, -1, 5330, -1, -1, -1, -1, -1, -1,
18877 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18878 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18879 : -1, -1, -1, 5360, -1, -1, -1, -1, -1, -1,
18880 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18881 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18882 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18883 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18884 : -1, -1, -1, -1, 5411, -1, 5413, -1, -1, -1,
18885 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18886 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18887 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18888 : -1, 5448, -1, -1, -1, -1, -1, -1, -1, -1,
18889 : -1, -1, -1, -1, -1, -1, 5231, -1, -1, -1,
18890 : -1, -1, -1, -1, -1, -1, 5241, -1, -1, -1,
18891 : -1, -1, 5247, 5248, 5249, -1, -1, -1, -1, -1,
18892 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18893 : -1, -1, -1, -1, -1, -1, -1, 5272, 5273, -1,
18894 : -1, 5276, -1, -1, -1, -1, -1, -1, -1, -1,
18895 : -1, -1, -1, -1, -1, -1, -1, -1, 5293, -1,
18896 : -1, -1, -1, -1, -1, -1, -1, -1, 5303, -1,
18897 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 5314,
18898 : -1, -1, -1, -1, -1, -1, -1, 5322, -1, 5556,
18899 : -1, 5558, 5559, 5560, 5561, 5562, 5331, -1, -1, -1,
18900 : -1, -1, -1, -1, -1, -1, -1, -1, 5575, 5576,
18901 : 5577, -1, -1, -1, -1, -1, -1, -1, 5585, -1,
18902 : -1, -1, -1, 5590, -1, -1, 5593, -1, -1, -1,
18903 : 5597, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18904 : -1, -1, -1, -1, -1, -1, -1, -1, 5615, -1,
18905 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18906 : -1, -1, -1, -1, -1, -1, -1, 5634, -1, -1,
18907 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18908 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18909 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18910 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18911 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18912 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18913 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18914 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18915 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18916 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18917 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18918 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18919 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18920 : -1, -1, -1, -1, -1, -1, -1, 5542, -1, -1,
18921 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18922 : -1, -1, -1, -1, -1, -1, -1, -1, 5563, -1,
18923 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18924 : -1, -1, -1, 5810, -1, -1, -1, -1, -1, -1,
18925 : -1, -1, -1, -1, 5821, -1, -1, -1, -1, -1,
18926 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18927 : -1, -1, -1, 5608, -1, 5842, -1, 5844, -1, -1,
18928 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18929 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18930 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18931 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18932 : -1, -1, -1, -1, -1, 5660, -1, -1, 5895, -1,
18933 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18934 : 5907, 5676, -1, -1, -1, -1, -1, -1, -1, -1,
18935 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18936 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18937 : -1, -1, -1, -1, -1, -1, 5943, -1, -1, -1,
18938 : -1, -1, -1, 5718, -1, -1, -1, -1, -1, -1,
18939 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18940 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18941 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18942 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18943 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18944 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18945 : -1, -1, -1, -1, -1, -1, 6023, -1, -1, -1,
18946 : -1, -1, -1, 6030, -1, -1, -1, -1, -1, -1,
18947 : -1, -1, -1, 5808, -1, -1, -1, -1, -1, -1,
18948 : -1, -1, -1, -1, -1, 5820, -1, -1, -1, -1,
18949 : -1, -1, -1, -1, 5829, 5830, 5831, -1, -1, 6066,
18950 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18951 : -1, -1, -1, -1, 6081, -1, -1, -1, -1, -1,
18952 : -1, -1, 5857, -1, -1, -1, -1, -1, -1, -1,
18953 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18954 : -1, 5876, -1, -1, -1, -1, -1, -1, -1, -1,
18955 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18956 : -1, 5896, -1, -1, -1, -1, -1, -1, -1, -1,
18957 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18958 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18959 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18960 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18961 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18962 : -1, -1, 6189, 6190, -1, -1, 6193, -1, -1, -1,
18963 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18964 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18965 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18966 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18967 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18968 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18969 : 6257, -1, 6027, -1, -1, -1, -1, -1, -1, -1,
18970 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18971 : -1, -1, -1, -1, -1, 6282, -1, 6052, -1, -1,
18972 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18973 : -1, -1, -1, 6300, 6301, -1, 6303, -1, -1, -1,
18974 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18975 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18976 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18977 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18978 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18979 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 6134,
18980 : -1, -1, -1, -1, -1, 6372, -1, -1, -1, -1,
18981 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18982 : -1, -1, -1, 6158, -1, -1, -1, -1, -1, -1,
18983 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18984 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18985 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18986 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18987 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18988 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18989 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18990 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18991 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18992 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18993 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
18994 : -1, 5, 6, -1, 8, 9, 10, 11, 12, -1,
18995 : -1, -1, -1, -1, -1, 6290, 20, 21, 22, 23,
18996 : 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
18997 : -1, 6306, -1, 37, -1, -1, 40, 41, 42, -1,
18998 : 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
18999 : 54, 55, 56, -1, 58, 59, 60, 61, 62, 63,
19000 : 64, 65, 66, 67, 68, 69, 70, 71, -1, 73,
19001 : 74, 75, 76, 77, -1, 79, -1, 81, 82, 83,
19002 : 84, 85, 86, 87, 88, 89, 90, 91, -1, 93,
19003 : 94, 95, 96, 97, 98, -1, 100, 101, 102, 103,
19004 : 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
19005 : 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
19006 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
19007 : 134, 135, -1, 137, 138, 139, 140, 141, -1, 143,
19008 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
19009 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
19010 : 164, 165, 6437, 167, 168, 169, 170, 171, -1, 173,
19011 : -1, 175, 176, 177, -1, 179, 180, 181, 182, 183,
19012 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
19013 : 194, 195, 196, 197, 198, 199, 200, 201, -1, 203,
19014 : 204, 205, 206, 207, 208, 209, 210, -1, 212, 213,
19015 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
19016 : 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
19017 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
19018 : 244, 245, 246, -1, -1, 249, 250, 251, 252, 253,
19019 : -1, 255, 256, 257, 258, 259, 260, 261, 262, 263,
19020 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
19021 : 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
19022 : 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
19023 : 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
19024 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
19025 : 314, -1, -1, 317, 318, 319, 320, 321, 322, 323,
19026 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
19027 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
19028 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
19029 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
19030 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
19031 : 374, 375, -1, 377, 378, 379, 380, 381, 382, 383,
19032 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
19033 : 394, 395, -1, 397, 398, 399, 400, 401, 402, 403,
19034 : 404, 405, 406, 407, 408, 409, 410, 411, 412, -1,
19035 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
19036 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
19037 : 434, -1, 436, 437, 438, 439, 440, 441, 442, 443,
19038 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
19039 : 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
19040 : 464, -1, 466, 467, 468, 469, 470, 471, 472, -1,
19041 : 474, 475, 476, 477, 478, 479, 480, 481, 482, 483,
19042 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
19043 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
19044 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
19045 : -1, 515, -1, -1, -1, -1, -1, -1, -1, -1,
19046 : -1, -1, -1, 527, 528, 529, -1, -1, -1, -1,
19047 : -1, -1, 536, 537, 3, -1, 5, 6, -1, 8,
19048 : 9, 10, 11, 12, -1, -1, -1, -1, -1, -1,
19049 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
19050 : -1, 30, 31, 32, -1, -1, -1, -1, 37, -1,
19051 : -1, 40, 41, 42, -1, 44, 45, 46, 47, 48,
19052 : 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
19053 : 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
19054 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
19055 : 79, -1, 81, 82, 83, 84, 85, 86, 87, 88,
19056 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
19057 : -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
19058 : 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
19059 : 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
19060 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
19061 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
19062 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
19063 : 159, 160, 161, 162, 163, 164, 165, -1, 167, 168,
19064 : 169, 170, 171, -1, 173, -1, 175, 176, 177, -1,
19065 : 179, 180, 181, 182, 183, -1, 185, 186, -1, 188,
19066 : 189, 190, -1, 192, 193, 194, 195, 196, 197, 198,
19067 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
19068 : 209, 210, -1, 212, 213, 214, 215, 216, 217, 218,
19069 : 219, 220, -1, 222, -1, 224, 225, 226, 227, 228,
19070 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
19071 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
19072 : 249, 250, 251, 252, 253, -1, 255, 256, 257, 258,
19073 : 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
19074 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
19075 : 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
19076 : 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
19077 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
19078 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
19079 : 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
19080 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
19081 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
19082 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
19083 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
19084 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
19085 : 379, 380, 381, 382, 383, 384, 385, 386, 387, 388,
19086 : 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
19087 : 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
19088 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
19089 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
19090 : 429, 430, -1, 432, 433, 434, 435, 436, 437, 438,
19091 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
19092 : -1, 450, 451, 452, 453, 454, 455, 456, 457, 458,
19093 : 459, 460, 461, 462, 463, 464, -1, 466, 467, 468,
19094 : 469, 470, 471, 472, -1, 474, 475, 476, 477, 478,
19095 : 479, 480, -1, 482, 483, 484, 485, 486, 487, 488,
19096 : -1, -1, 491, -1, 493, 494, 495, 496, 497, 498,
19097 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
19098 : 509, 510, 511, 512, 513, -1, 515, -1, 517, -1,
19099 : -1, -1, -1, -1, -1, -1, -1, -1, 527, 528,
19100 : -1, -1, -1, -1, -1, -1, -1, 536, 537, 3,
19101 : -1, 5, 6, -1, 8, 9, 10, 11, 12, -1,
19102 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
19103 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
19104 : -1, -1, -1, 37, -1, -1, 40, 41, 42, -1,
19105 : 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
19106 : 54, 55, 56, -1, 58, 59, 60, 61, 62, 63,
19107 : 64, 65, 66, 67, 68, 69, 70, 71, -1, 73,
19108 : 74, 75, 76, 77, -1, 79, -1, 81, 82, 83,
19109 : 84, 85, 86, 87, 88, 89, 90, 91, -1, 93,
19110 : 94, 95, 96, 97, 98, -1, 100, 101, 102, 103,
19111 : 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
19112 : 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
19113 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
19114 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
19115 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
19116 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
19117 : 164, 165, -1, 167, 168, 169, 170, 171, -1, 173,
19118 : -1, 175, 176, 177, -1, 179, 180, 181, 182, 183,
19119 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
19120 : 194, 195, 196, 197, 198, 199, 200, 201, -1, 203,
19121 : 204, 205, 206, 207, 208, 209, 210, -1, 212, 213,
19122 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
19123 : 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
19124 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
19125 : 244, 245, 246, -1, -1, 249, 250, 251, 252, 253,
19126 : -1, 255, 256, 257, 258, 259, 260, 261, 262, 263,
19127 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
19128 : 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
19129 : 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
19130 : 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
19131 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
19132 : 314, -1, -1, 317, 318, 319, 320, 321, 322, 323,
19133 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
19134 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
19135 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
19136 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
19137 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
19138 : 374, 375, -1, 377, 378, 379, 380, 381, 382, 383,
19139 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
19140 : 394, 395, -1, 397, 398, 399, 400, 401, 402, 403,
19141 : 404, 405, 406, 407, 408, 409, 410, 411, 412, -1,
19142 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
19143 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
19144 : 434, -1, 436, 437, 438, 439, 440, 441, 442, 443,
19145 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
19146 : 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
19147 : 464, -1, 466, 467, 468, 469, 470, 471, 472, -1,
19148 : 474, 475, 476, 477, 478, 479, 480, -1, 482, 483,
19149 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
19150 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
19151 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
19152 : -1, 515, -1, -1, -1, -1, -1, -1, -1, -1,
19153 : -1, -1, -1, 527, 528, -1, -1, -1, -1, -1,
19154 : -1, -1, 536, 537, 3, -1, 5, 6, -1, 8,
19155 : 9, 10, 11, 12, -1, -1, -1, -1, -1, -1,
19156 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
19157 : -1, 30, 31, 32, -1, -1, -1, -1, 37, -1,
19158 : -1, 40, 41, 42, -1, 44, 45, 46, 47, 48,
19159 : 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
19160 : 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
19161 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
19162 : 79, -1, 81, 82, 83, 84, 85, 86, 87, 88,
19163 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
19164 : -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
19165 : 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
19166 : 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
19167 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
19168 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
19169 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
19170 : 159, 160, 161, 162, 163, 164, 165, -1, 167, 168,
19171 : 169, 170, 171, -1, 173, -1, 175, 176, 177, -1,
19172 : 179, 180, 181, 182, 183, -1, 185, 186, -1, 188,
19173 : 189, 190, -1, 192, 193, 194, 195, 196, 197, 198,
19174 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
19175 : 209, 210, -1, 212, 213, 214, 215, 216, 217, 218,
19176 : 219, 220, -1, 222, -1, 224, 225, 226, 227, 228,
19177 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
19178 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
19179 : 249, 250, 251, 252, 253, -1, 255, 256, 257, 258,
19180 : 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
19181 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
19182 : 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
19183 : 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
19184 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
19185 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
19186 : 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
19187 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
19188 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
19189 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
19190 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
19191 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
19192 : 379, 380, 381, 382, 383, 384, 385, 386, 387, 388,
19193 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
19194 : 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
19195 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
19196 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
19197 : 429, 430, -1, 432, 433, 434, -1, 436, 437, 438,
19198 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
19199 : -1, 450, 451, 452, 453, 454, 455, 456, 457, 458,
19200 : 459, 460, 461, 462, 463, 464, -1, 466, 467, 468,
19201 : 469, 470, 471, 472, -1, 474, 475, 476, 477, 478,
19202 : 479, 480, -1, 482, 483, 484, 485, 486, 487, 488,
19203 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
19204 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
19205 : 509, 510, 511, 512, 513, -1, 515, -1, -1, -1,
19206 : -1, -1, -1, -1, -1, -1, -1, -1, 527, 528,
19207 : -1, -1, -1, -1, -1, -1, -1, 536, 537, 3,
19208 : -1, 5, 6, -1, 8, 9, 10, 11, 12, -1,
19209 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
19210 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
19211 : -1, -1, -1, 37, -1, -1, 40, 41, 42, -1,
19212 : 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
19213 : 54, 55, 56, -1, 58, 59, 60, 61, 62, 63,
19214 : 64, 65, 66, 67, 68, 69, 70, 71, -1, 73,
19215 : 74, 75, 76, 77, -1, 79, -1, 81, 82, 83,
19216 : 84, 85, 86, 87, 88, 89, 90, 91, -1, 93,
19217 : 94, 95, 96, 97, 98, -1, 100, 101, 102, 103,
19218 : 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
19219 : 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
19220 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
19221 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
19222 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
19223 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
19224 : 164, 165, -1, 167, 168, 169, 170, 171, -1, 173,
19225 : -1, 175, 176, 177, -1, 179, 180, 181, 182, 183,
19226 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
19227 : 194, 195, 196, 197, 198, 199, 200, 201, -1, 203,
19228 : 204, 205, 206, 207, 208, 209, 210, -1, 212, 213,
19229 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
19230 : 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
19231 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
19232 : 244, 245, 246, -1, -1, 249, 250, 251, 252, 253,
19233 : -1, 255, 256, 257, 258, 259, 260, 261, 262, 263,
19234 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
19235 : 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
19236 : 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
19237 : 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
19238 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
19239 : 314, -1, -1, 317, 318, 319, 320, 321, 322, 323,
19240 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
19241 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
19242 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
19243 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
19244 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
19245 : 374, 375, -1, 377, 378, 379, 380, 381, 382, 383,
19246 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
19247 : 394, 395, -1, 397, 398, 399, 400, 401, 402, 403,
19248 : 404, 405, 406, 407, 408, 409, 410, 411, 412, -1,
19249 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
19250 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
19251 : 434, -1, 436, 437, 438, 439, 440, 441, 442, 443,
19252 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
19253 : 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
19254 : 464, -1, 466, 467, 468, 469, 470, 471, 472, -1,
19255 : 474, 475, 476, 477, 478, 479, 480, -1, 482, 483,
19256 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
19257 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
19258 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
19259 : -1, 515, -1, -1, -1, -1, -1, 3, -1, -1,
19260 : -1, -1, -1, 527, 528, -1, -1, -1, -1, -1,
19261 : -1, -1, 536, 537, 20, 21, 22, 23, 24, 25,
19262 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
19263 : -1, -1, 38, -1, 40, 41, 42, -1, 44, 45,
19264 : 46, 47, -1, 49, 50, 51, 52, 53, -1, 55,
19265 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
19266 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
19267 : 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
19268 : 86, -1, 88, 89, 90, 91, -1, 93, 94, 95,
19269 : 96, 97, 98, -1, 100, 101, 102, 103, -1, -1,
19270 : -1, -1, -1, -1, -1, 111, 112, 113, 114, 115,
19271 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
19272 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
19273 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
19274 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
19275 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
19276 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
19277 : 176, -1, -1, 179, 180, 181, 182, 183, -1, 185,
19278 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
19279 : 196, -1, 198, 199, 200, 201, -1, 203, 204, 205,
19280 : 206, 207, 208, 209, 210, -1, 212, 213, 214, 215,
19281 : 216, 217, 218, 219, 220, -1, 222, -1, 224, -1,
19282 : -1, 227, 228, 229, 230, 231, 232, 233, 234, 235,
19283 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
19284 : 246, -1, -1, 249, 250, 251, 252, -1, -1, 255,
19285 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
19286 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
19287 : 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
19288 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
19289 : -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
19290 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
19291 : -1, 317, 318, 319, -1, 321, -1, 323, 324, 325,
19292 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
19293 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
19294 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
19295 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
19296 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
19297 : -1, 377, 378, 379, 380, 381, 382, 383, 384, 385,
19298 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
19299 : -1, 397, 398, 399, 400, 401, -1, 403, 404, 405,
19300 : 406, 407, -1, 409, 410, 411, 412, -1, 414, 415,
19301 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
19302 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
19303 : 436, -1, 438, 439, 440, 441, 442, 443, -1, 445,
19304 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
19305 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
19306 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
19307 : 476, 477, 478, 479, 480, -1, 482, -1, 484, 485,
19308 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
19309 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
19310 : 506, 507, 508, 509, 510, 511, 512, 513, -1, -1,
19311 : -1, -1, -1, -1, -1, 3, -1, -1, -1, -1,
19312 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
19313 : -1, 537, 20, 21, 22, 23, 24, 25, 26, 27,
19314 : 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
19315 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
19316 : 48, 49, 50, 51, -1, 53, 54, 55, 56, -1,
19317 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
19318 : 68, 69, 70, 71, -1, 73, 74, 75, 76, -1,
19319 : -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
19320 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
19321 : 98, -1, 100, 101, 102, 103, -1, -1, -1, 107,
19322 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
19323 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
19324 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
19325 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
19326 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
19327 : -1, 159, 160, 161, 162, -1, -1, 165, -1, 167,
19328 : 168, 169, 170, 171, -1, 173, -1, 175, 176, 177,
19329 : -1, 179, 180, 181, 182, 183, -1, 185, -1, -1,
19330 : -1, 189, 190, -1, 192, 193, 194, 195, 196, 197,
19331 : 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
19332 : 208, 209, 210, -1, 212, 213, 214, 215, 216, 217,
19333 : 218, 219, 220, -1, 222, -1, 224, 225, 226, 227,
19334 : 228, 229, -1, -1, -1, -1, -1, -1, -1, -1,
19335 : -1, -1, 240, 241, 242, 243, 244, 245, 246, -1,
19336 : -1, 249, -1, 251, 252, 253, -1, 255, 256, 257,
19337 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
19338 : 268, 269, -1, 271, 272, 273, 274, 275, 276, 277,
19339 : 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
19340 : 288, 289, -1, -1, 292, -1, 294, 295, 296, 297,
19341 : -1, -1, 300, 301, 302, 303, 304, 305, -1, 307,
19342 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
19343 : 318, 319, 320, 321, 322, -1, 324, 325, 326, 327,
19344 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
19345 : 338, 339, -1, 341, -1, 343, 344, 345, -1, 347,
19346 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
19347 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
19348 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
19349 : 378, 379, 380, 381, 382, 383, 384, -1, 386, 387,
19350 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
19351 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
19352 : 408, 409, 410, 411, 412, -1, 414, 415, 416, 417,
19353 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
19354 : 428, -1, 430, -1, 432, 433, -1, -1, 436, 437,
19355 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
19356 : -1, -1, 450, 451, -1, 453, -1, -1, 456, 457,
19357 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
19358 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
19359 : 478, -1, 480, 481, 482, 483, 484, 485, 486, 487,
19360 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
19361 : 498, 499, -1, 3, -1, -1, -1, -1, -1, -1,
19362 : -1, -1, -1, 511, 512, 513, -1, -1, -1, -1,
19363 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
19364 : 30, 31, 32, -1, -1, -1, -1, -1, -1, 537,
19365 : 40, 41, 42, -1, 44, 45, 46, 47, 48, 49,
19366 : 50, 51, -1, 53, 54, 55, 56, -1, 58, 59,
19367 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
19368 : 70, 71, -1, 73, 74, 75, 76, -1, -1, 79,
19369 : -1, 81, 82, 83, 84, 85, 86, 87, 88, 89,
19370 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
19371 : 100, 101, 102, 103, -1, -1, -1, 107, -1, -1,
19372 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
19373 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
19374 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
19375 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
19376 : 150, 151, 152, -1, 154, 155, 156, 157, -1, 159,
19377 : 160, 161, 162, -1, -1, 165, -1, 167, 168, 169,
19378 : 170, 171, -1, 173, -1, 175, 176, 177, -1, 179,
19379 : 180, 181, 182, 183, -1, 185, -1, -1, -1, 189,
19380 : 190, -1, 192, 193, 194, 195, 196, 197, 198, 199,
19381 : 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
19382 : 210, -1, 212, 213, 214, 215, 216, 217, 218, 219,
19383 : 220, -1, 222, -1, 224, 225, 226, 227, 228, 229,
19384 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
19385 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
19386 : -1, 251, 252, 253, -1, 255, 256, 257, -1, -1,
19387 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
19388 : -1, 271, 272, 273, 274, 275, 276, 277, 278, 279,
19389 : 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
19390 : -1, -1, 292, -1, 294, 295, 296, 297, -1, -1,
19391 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
19392 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
19393 : 320, 321, 322, -1, 324, 325, 326, 327, 328, 329,
19394 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
19395 : -1, 341, -1, 343, 344, 345, -1, 347, 348, 349,
19396 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
19397 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
19398 : 370, 371, 372, 373, 374, 375, -1, 377, 378, 379,
19399 : 380, 381, 382, 383, 384, -1, 386, 387, 388, 389,
19400 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
19401 : 400, 401, -1, 403, 404, 405, 406, 407, 408, 409,
19402 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
19403 : 420, 421, 422, 423, 424, 425, 426, 427, 428, -1,
19404 : 430, -1, 432, 433, -1, -1, 436, 437, 438, 439,
19405 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
19406 : 450, 451, -1, 453, -1, -1, 456, 457, 458, 459,
19407 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
19408 : 470, 471, -1, -1, 474, 475, 476, 477, 478, -1,
19409 : 480, 481, 482, 483, 484, 485, 486, 487, 488, -1,
19410 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
19411 : -1, 3, -1, 5, 6, -1, 8, 9, 10, 11,
19412 : 12, 511, 512, 513, -1, -1, -1, -1, 20, 21,
19413 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
19414 : 32, -1, -1, -1, -1, 37, -1, 537, 40, 41,
19415 : 42, -1, 44, 45, 46, 47, 48, 49, 50, 51,
19416 : 52, 53, 54, 55, 56, -1, 58, 59, 60, 61,
19417 : 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
19418 : -1, 73, 74, 75, 76, 77, -1, 79, -1, 81,
19419 : 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
19420 : -1, 93, 94, 95, 96, 97, 98, -1, 100, 101,
19421 : 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
19422 : 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
19423 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
19424 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
19425 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
19426 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
19427 : 162, 163, 164, 165, -1, 167, 168, 169, 170, 171,
19428 : -1, 173, -1, 175, 176, 177, -1, 179, 180, 181,
19429 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
19430 : 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
19431 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
19432 : 212, 213, 214, 215, 216, 217, 218, 219, 220, -1,
19433 : 222, -1, 224, 225, 226, 227, 228, 229, 230, 231,
19434 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
19435 : 242, 243, 244, 245, 246, -1, -1, 249, 250, 251,
19436 : 252, 253, -1, 255, 256, 257, 258, 259, 260, 261,
19437 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
19438 : 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
19439 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
19440 : 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
19441 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
19442 : 312, 313, 314, -1, -1, 317, 318, 319, 320, 321,
19443 : 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
19444 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
19445 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
19446 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
19447 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
19448 : 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
19449 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
19450 : 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
19451 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
19452 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
19453 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
19454 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
19455 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
19456 : 452, 453, 454, 455, 456, 457, 458, 459, 460, 461,
19457 : 462, 463, 464, -1, 466, 467, 468, 469, 470, 471,
19458 : 472, -1, 474, 475, 476, 477, 478, 479, 480, -1,
19459 : 482, 483, 484, 485, 486, 487, 488, -1, -1, 491,
19460 : -1, 493, 494, 495, 496, 497, 498, 499, 500, 501,
19461 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
19462 : 512, 513, -1, 515, -1, 517, -1, -1, -1, -1,
19463 : -1, -1, -1, -1, -1, 527, 528, -1, -1, -1,
19464 : 3, -1, 5, 6, 536, 8, 9, 10, 11, 12,
19465 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
19466 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
19467 : -1, -1, -1, -1, 37, -1, -1, 40, 41, 42,
19468 : -1, 44, 45, 46, 47, 48, 49, 50, 51, 52,
19469 : 53, 54, 55, 56, -1, 58, 59, 60, 61, 62,
19470 : 63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
19471 : 73, 74, 75, 76, 77, -1, 79, -1, 81, 82,
19472 : 83, 84, 85, 86, 87, 88, 89, 90, 91, -1,
19473 : 93, 94, 95, 96, 97, 98, -1, 100, 101, 102,
19474 : 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
19475 : 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
19476 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
19477 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
19478 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
19479 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
19480 : 163, 164, 165, -1, 167, 168, 169, 170, 171, -1,
19481 : 173, -1, 175, 176, 177, -1, 179, 180, 181, 182,
19482 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
19483 : 193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
19484 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
19485 : 213, 214, 215, 216, 217, 218, 219, 220, -1, 222,
19486 : -1, 224, 225, 226, 227, 228, 229, 230, 231, 232,
19487 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
19488 : 243, 244, 245, 246, -1, -1, 249, 250, 251, 252,
19489 : 253, -1, 255, 256, 257, 258, 259, 260, 261, 262,
19490 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
19491 : 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
19492 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
19493 : 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
19494 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
19495 : 313, 314, -1, -1, 317, 318, 319, 320, 321, 322,
19496 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
19497 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
19498 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
19499 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
19500 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
19501 : 373, 374, 375, -1, 377, 378, 379, 380, 381, 382,
19502 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
19503 : 393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
19504 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
19505 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
19506 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
19507 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
19508 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
19509 : 453, 454, 455, 456, 457, 458, 459, 460, 461, 462,
19510 : 463, 464, -1, 466, 467, 468, 469, 470, 471, 472,
19511 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
19512 : 483, 484, 485, 486, 487, 488, -1, -1, 491, -1,
19513 : 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
19514 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
19515 : 513, -1, 515, -1, 517, -1, -1, -1, -1, -1,
19516 : -1, -1, -1, -1, 527, 528, -1, -1, -1, 3,
19517 : -1, 5, 6, 536, 8, 9, 10, 11, 12, -1,
19518 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
19519 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
19520 : -1, -1, -1, 37, -1, -1, 40, 41, 42, -1,
19521 : 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
19522 : 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
19523 : 64, 65, 66, 67, 68, 69, 70, 71, -1, 73,
19524 : 74, 75, 76, 77, -1, 79, -1, 81, 82, 83,
19525 : 84, 85, 86, 87, 88, 89, 90, 91, -1, 93,
19526 : 94, 95, 96, 97, 98, -1, 100, 101, 102, 103,
19527 : 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
19528 : 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
19529 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
19530 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
19531 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
19532 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
19533 : 164, 165, -1, 167, 168, 169, 170, 171, -1, 173,
19534 : -1, 175, 176, 177, 178, 179, 180, 181, 182, 183,
19535 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
19536 : 194, 195, 196, 197, 198, 199, 200, 201, -1, 203,
19537 : 204, 205, 206, 207, 208, 209, 210, -1, 212, 213,
19538 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
19539 : 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
19540 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
19541 : 244, 245, 246, -1, 248, 249, 250, 251, 252, 253,
19542 : -1, 255, 256, 257, 258, 259, 260, 261, 262, 263,
19543 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
19544 : 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
19545 : 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
19546 : 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
19547 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
19548 : 314, -1, -1, 317, 318, 319, 320, 321, 322, 323,
19549 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
19550 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
19551 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
19552 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
19553 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
19554 : 374, 375, -1, 377, 378, 379, 380, 381, 382, 383,
19555 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
19556 : 394, 395, -1, 397, 398, 399, 400, 401, 402, 403,
19557 : 404, 405, 406, 407, 408, 409, 410, 411, 412, -1,
19558 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
19559 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
19560 : 434, -1, 436, 437, 438, 439, 440, 441, 442, 443,
19561 : -1, 445, 446, 447, -1, 449, 450, 451, 452, 453,
19562 : 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
19563 : 464, -1, 466, 467, 468, 469, 470, 471, 472, -1,
19564 : 474, 475, 476, 477, 478, 479, 480, -1, 482, 483,
19565 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
19566 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
19567 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
19568 : -1, 515, -1, -1, -1, -1, -1, -1, -1, -1,
19569 : -1, -1, -1, 527, 528, -1, -1, -1, 3, -1,
19570 : 5, 6, 536, 8, 9, 10, 11, 12, -1, -1,
19571 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
19572 : 25, 26, 27, 28, 29, 30, 31, 32, -1, -1,
19573 : -1, 36, 37, -1, -1, 40, 41, 42, -1, 44,
19574 : 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
19575 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
19576 : 65, 66, 67, 68, 69, 70, 71, -1, 73, 74,
19577 : 75, 76, 77, -1, 79, -1, 81, 82, 83, 84,
19578 : 85, 86, 87, 88, 89, 90, 91, -1, 93, 94,
19579 : 95, 96, 97, 98, -1, 100, 101, 102, 103, 104,
19580 : 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
19581 : 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
19582 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
19583 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
19584 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
19585 : 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
19586 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
19587 : 175, 176, 177, -1, 179, 180, 181, 182, 183, -1,
19588 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
19589 : 195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
19590 : 205, 206, 207, 208, 209, 210, -1, 212, 213, 214,
19591 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
19592 : 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
19593 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
19594 : 245, 246, -1, -1, 249, 250, 251, 252, 253, -1,
19595 : 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
19596 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
19597 : 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
19598 : 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
19599 : 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
19600 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
19601 : -1, -1, 317, 318, 319, 320, 321, 322, 323, 324,
19602 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
19603 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
19604 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
19605 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
19606 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
19607 : 375, -1, 377, 378, 379, 380, 381, 382, 383, 384,
19608 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
19609 : 395, -1, 397, 398, 399, 400, 401, 402, 403, 404,
19610 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
19611 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
19612 : 425, 426, 427, 428, 429, 430, -1, 432, 433, 434,
19613 : -1, 436, 437, 438, 439, 440, 441, 442, 443, -1,
19614 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
19615 : 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
19616 : -1, 466, 467, 468, 469, 470, 471, 472, -1, 474,
19617 : 475, 476, 477, 478, 479, 480, -1, 482, 483, 484,
19618 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
19619 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
19620 : 505, 506, 507, 508, 509, 510, 511, 512, 513, -1,
19621 : 515, -1, -1, -1, -1, -1, -1, -1, -1, -1,
19622 : -1, -1, 527, 528, -1, -1, -1, 3, -1, 5,
19623 : 6, 536, 8, 9, 10, 11, 12, -1, -1, -1,
19624 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
19625 : 26, 27, 28, 29, 30, 31, 32, -1, -1, -1,
19626 : 36, 37, -1, -1, 40, 41, 42, -1, 44, 45,
19627 : 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
19628 : 56, -1, 58, 59, 60, 61, 62, 63, 64, 65,
19629 : 66, 67, 68, 69, 70, 71, -1, 73, 74, 75,
19630 : 76, 77, -1, 79, -1, 81, 82, 83, 84, 85,
19631 : 86, 87, 88, 89, 90, 91, -1, 93, 94, 95,
19632 : 96, 97, 98, -1, 100, 101, 102, 103, 104, 105,
19633 : 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
19634 : 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
19635 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
19636 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
19637 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
19638 : 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
19639 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
19640 : 176, 177, -1, 179, 180, 181, 182, 183, -1, 185,
19641 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
19642 : 196, 197, 198, 199, 200, 201, -1, 203, 204, 205,
19643 : 206, 207, 208, 209, 210, -1, 212, 213, 214, 215,
19644 : 216, 217, 218, 219, 220, -1, 222, -1, 224, 225,
19645 : 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
19646 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
19647 : 246, -1, -1, 249, 250, 251, 252, 253, -1, 255,
19648 : 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
19649 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
19650 : 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
19651 : 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
19652 : 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
19653 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
19654 : -1, 317, 318, 319, 320, 321, 322, 323, 324, 325,
19655 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
19656 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
19657 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
19658 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
19659 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
19660 : -1, 377, 378, 379, 380, 381, 382, 383, 384, 385,
19661 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
19662 : -1, 397, 398, 399, 400, 401, 402, 403, 404, 405,
19663 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
19664 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
19665 : 426, 427, 428, 429, 430, -1, 432, 433, 434, -1,
19666 : 436, 437, 438, 439, 440, 441, 442, 443, -1, 445,
19667 : 446, 447, -1, -1, 450, 451, 452, 453, 454, 455,
19668 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
19669 : 466, 467, 468, 469, 470, 471, 472, -1, 474, 475,
19670 : 476, 477, 478, 479, 480, -1, 482, 483, 484, 485,
19671 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
19672 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
19673 : 506, 507, 508, 509, 510, 511, 512, 513, -1, 515,
19674 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
19675 : -1, 527, 528, -1, -1, -1, 3, -1, 5, 6,
19676 : 536, 8, 9, 10, 11, 12, -1, -1, -1, -1,
19677 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
19678 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
19679 : 37, -1, -1, 40, 41, 42, -1, 44, 45, 46,
19680 : 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
19681 : -1, 58, 59, 60, 61, 62, 63, 64, 65, 66,
19682 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
19683 : 77, -1, 79, -1, 81, 82, 83, 84, 85, 86,
19684 : 87, 88, 89, 90, 91, -1, 93, 94, 95, 96,
19685 : 97, 98, -1, 100, 101, 102, 103, 104, 105, 106,
19686 : 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
19687 : 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
19688 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
19689 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
19690 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
19691 : 157, 158, 159, 160, 161, 162, 163, 164, 165, -1,
19692 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
19693 : 177, -1, 179, 180, 181, 182, 183, -1, 185, 186,
19694 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
19695 : 197, 198, 199, 200, 201, -1, 203, 204, 205, 206,
19696 : 207, 208, 209, 210, -1, 212, 213, 214, 215, 216,
19697 : 217, 218, 219, 220, -1, 222, -1, 224, 225, 226,
19698 : 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
19699 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
19700 : -1, -1, 249, 250, 251, 252, 253, -1, 255, 256,
19701 : 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
19702 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
19703 : 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
19704 : 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
19705 : 297, 298, 299, 300, 301, 302, 303, 304, 305, -1,
19706 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
19707 : 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
19708 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
19709 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
19710 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
19711 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
19712 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
19713 : 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
19714 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
19715 : 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
19716 : 407, 408, 409, 410, 411, 412, -1, 414, 415, 416,
19717 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
19718 : 427, 428, 429, 430, -1, 432, 433, 434, -1, 436,
19719 : 437, 438, 439, 440, 441, 442, 443, -1, 445, 446,
19720 : 447, -1, -1, 450, 451, 452, 453, 454, 455, 456,
19721 : 457, 458, 459, 460, 461, 462, 463, 464, -1, 466,
19722 : 467, 468, 469, 470, 471, 472, -1, 474, 475, 476,
19723 : 477, 478, 479, 480, -1, 482, 483, 484, 485, 486,
19724 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
19725 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
19726 : 507, 508, 509, 510, 511, 512, 513, -1, 515, -1,
19727 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
19728 : 527, 528, -1, -1, -1, -1, -1, 534, 535, 536,
19729 : 3, -1, 5, 6, -1, 8, 9, 10, 11, 12,
19730 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
19731 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
19732 : -1, -1, -1, -1, 37, -1, -1, 40, 41, 42,
19733 : -1, 44, 45, 46, 47, 48, 49, 50, 51, 52,
19734 : 53, 54, 55, 56, -1, 58, 59, 60, 61, 62,
19735 : 63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
19736 : 73, 74, 75, 76, 77, -1, 79, -1, 81, 82,
19737 : 83, 84, 85, 86, 87, 88, 89, 90, 91, -1,
19738 : 93, 94, 95, 96, 97, 98, -1, 100, 101, 102,
19739 : 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
19740 : 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
19741 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
19742 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
19743 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
19744 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
19745 : 163, 164, 165, -1, 167, 168, 169, 170, 171, -1,
19746 : 173, -1, 175, 176, 177, -1, 179, 180, 181, 182,
19747 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
19748 : 193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
19749 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
19750 : 213, 214, 215, 216, 217, 218, 219, 220, -1, 222,
19751 : -1, 224, 225, 226, 227, 228, 229, 230, 231, 232,
19752 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
19753 : 243, 244, 245, 246, -1, -1, 249, 250, 251, 252,
19754 : 253, -1, 255, 256, 257, 258, 259, 260, 261, 262,
19755 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
19756 : 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
19757 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
19758 : 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
19759 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
19760 : 313, 314, -1, -1, 317, 318, 319, 320, 321, 322,
19761 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
19762 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
19763 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
19764 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
19765 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
19766 : 373, 374, 375, -1, 377, 378, 379, 380, 381, 382,
19767 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
19768 : 393, 394, 395, -1, 397, 398, 399, 400, 401, 402,
19769 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
19770 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
19771 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
19772 : 433, 434, -1, 436, 437, 438, 439, 440, 441, 442,
19773 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
19774 : 453, 454, 455, 456, 457, 458, 459, 460, 461, 462,
19775 : 463, 464, -1, 466, 467, 468, 469, 470, 471, 472,
19776 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
19777 : 483, 484, 485, 486, 487, 488, -1, -1, 491, -1,
19778 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
19779 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
19780 : 513, -1, 515, -1, -1, -1, -1, -1, -1, -1,
19781 : -1, -1, -1, -1, 527, 528, 529, -1, -1, 3,
19782 : -1, 5, 6, 536, 8, 9, 10, 11, 12, -1,
19783 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
19784 : 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
19785 : -1, -1, -1, 37, -1, -1, 40, 41, 42, -1,
19786 : 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
19787 : 54, 55, 56, -1, 58, 59, 60, 61, 62, 63,
19788 : 64, 65, 66, 67, 68, 69, 70, 71, -1, 73,
19789 : 74, 75, 76, 77, -1, 79, -1, 81, 82, 83,
19790 : 84, 85, 86, 87, 88, 89, 90, 91, -1, 93,
19791 : 94, 95, 96, 97, 98, -1, 100, 101, 102, 103,
19792 : 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
19793 : 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
19794 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
19795 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
19796 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
19797 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
19798 : 164, 165, -1, 167, 168, 169, 170, 171, -1, 173,
19799 : -1, 175, 176, 177, -1, 179, 180, 181, 182, 183,
19800 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
19801 : 194, 195, 196, 197, 198, 199, 200, 201, -1, 203,
19802 : 204, 205, 206, 207, 208, 209, 210, -1, 212, 213,
19803 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
19804 : 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
19805 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
19806 : 244, 245, 246, -1, -1, 249, 250, 251, 252, 253,
19807 : -1, 255, 256, 257, 258, 259, 260, 261, 262, 263,
19808 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
19809 : 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
19810 : 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
19811 : 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
19812 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
19813 : 314, -1, -1, 317, 318, 319, 320, 321, 322, 323,
19814 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
19815 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
19816 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
19817 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
19818 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
19819 : 374, 375, -1, 377, 378, 379, 380, 381, 382, 383,
19820 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
19821 : 394, 395, -1, 397, 398, 399, 400, 401, 402, 403,
19822 : 404, 405, 406, 407, 408, 409, 410, 411, 412, -1,
19823 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
19824 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
19825 : 434, -1, 436, 437, 438, 439, 440, 441, 442, 443,
19826 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
19827 : 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
19828 : 464, -1, 466, 467, 468, 469, 470, 471, 472, -1,
19829 : 474, 475, 476, 477, 478, 479, 480, -1, 482, 483,
19830 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
19831 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
19832 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
19833 : -1, 515, -1, -1, -1, -1, -1, -1, -1, -1,
19834 : -1, -1, -1, 527, 528, -1, -1, -1, 3, -1,
19835 : 5, 6, 536, 8, 9, 10, 11, 12, -1, -1,
19836 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
19837 : 25, 26, 27, 28, -1, 30, 31, 32, -1, -1,
19838 : -1, -1, 37, -1, -1, 40, 41, 42, -1, 44,
19839 : 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
19840 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
19841 : 65, 66, 67, 68, 69, 70, 71, -1, 73, 74,
19842 : 75, 76, 77, -1, 79, -1, 81, 82, 83, 84,
19843 : 85, 86, 87, 88, 89, 90, 91, -1, 93, 94,
19844 : 95, 96, 97, 98, -1, 100, 101, 102, 103, 104,
19845 : 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
19846 : 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
19847 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
19848 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
19849 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
19850 : 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
19851 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
19852 : 175, 176, 177, -1, 179, 180, 181, 182, 183, -1,
19853 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
19854 : 195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
19855 : 205, 206, 207, 208, 209, 210, -1, 212, 213, 214,
19856 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
19857 : 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
19858 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
19859 : 245, 246, -1, -1, 249, 250, 251, 252, 253, -1,
19860 : 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
19861 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
19862 : 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
19863 : 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
19864 : 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
19865 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
19866 : -1, -1, 317, 318, 319, 320, 321, 322, 323, 324,
19867 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
19868 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
19869 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
19870 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
19871 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
19872 : 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
19873 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
19874 : 395, -1, 397, 398, 399, 400, 401, 402, 403, 404,
19875 : 405, 406, 407, 408, 409, 410, 411, 412, -1, 414,
19876 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
19877 : 425, 426, 427, 428, 429, 430, -1, 432, 433, 434,
19878 : -1, 436, 437, 438, 439, 440, 441, 442, 443, -1,
19879 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
19880 : 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
19881 : -1, 466, 467, 468, 469, 470, 471, 472, -1, 474,
19882 : 475, 476, 477, 478, 479, 480, -1, 482, 483, 484,
19883 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
19884 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
19885 : 505, 506, 507, 508, 509, 510, 511, 512, 513, -1,
19886 : 515, -1, -1, -1, -1, -1, -1, -1, -1, -1,
19887 : -1, -1, 527, 528, -1, -1, -1, 3, -1, 5,
19888 : 6, 536, 8, 9, 10, 11, 12, -1, -1, -1,
19889 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
19890 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
19891 : -1, 37, -1, -1, 40, 41, 42, -1, 44, 45,
19892 : 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
19893 : 56, -1, 58, 59, 60, 61, 62, 63, 64, 65,
19894 : 66, 67, 68, 69, 70, 71, -1, 73, 74, 75,
19895 : 76, 77, -1, 79, -1, 81, 82, 83, 84, 85,
19896 : 86, 87, 88, 89, 90, 91, -1, 93, 94, 95,
19897 : 96, 97, 98, -1, 100, 101, 102, 103, 104, 105,
19898 : 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
19899 : 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
19900 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
19901 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
19902 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
19903 : 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
19904 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
19905 : 176, 177, -1, 179, 180, 181, 182, 183, -1, 185,
19906 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
19907 : 196, 197, 198, 199, 200, 201, -1, 203, 204, 205,
19908 : 206, 207, 208, 209, 210, -1, 212, 213, 214, 215,
19909 : 216, 217, 218, 219, 220, -1, 222, -1, 224, 225,
19910 : 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
19911 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
19912 : 246, -1, -1, 249, 250, 251, 252, 253, -1, 255,
19913 : 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
19914 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
19915 : 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
19916 : 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
19917 : 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
19918 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
19919 : -1, 317, 318, 319, 320, 321, 322, 323, 324, 325,
19920 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
19921 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
19922 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
19923 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
19924 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
19925 : -1, 377, 378, 379, 380, 381, 382, 383, 384, 385,
19926 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
19927 : -1, 397, 398, 399, 400, 401, 402, 403, 404, 405,
19928 : 406, 407, 408, 409, 410, 411, 412, -1, 414, 415,
19929 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
19930 : 426, 427, 428, 429, 430, -1, 432, 433, 434, -1,
19931 : 436, 437, 438, 439, 440, 441, 442, 443, -1, 445,
19932 : 446, 447, -1, -1, 450, 451, 452, 453, 454, 455,
19933 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
19934 : 466, 467, 468, 469, 470, 471, 472, -1, 474, 475,
19935 : 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
19936 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
19937 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
19938 : 506, 507, 508, 509, 510, 511, 512, 513, -1, 515,
19939 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
19940 : -1, 527, 528, -1, -1, -1, 3, -1, 5, 6,
19941 : 536, 8, 9, 10, 11, 12, -1, -1, -1, -1,
19942 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
19943 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
19944 : 37, -1, -1, 40, 41, 42, -1, 44, 45, 46,
19945 : 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
19946 : -1, 58, 59, 60, 61, 62, 63, 64, 65, 66,
19947 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
19948 : 77, -1, 79, -1, 81, 82, 83, 84, 85, 86,
19949 : 87, 88, 89, 90, 91, -1, 93, 94, 95, 96,
19950 : 97, 98, -1, 100, 101, 102, 103, 104, 105, 106,
19951 : 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
19952 : 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
19953 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
19954 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
19955 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
19956 : 157, 158, 159, 160, 161, 162, 163, 164, 165, -1,
19957 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
19958 : 177, 178, 179, 180, 181, 182, 183, -1, 185, 186,
19959 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
19960 : 197, 198, 199, 200, 201, -1, 203, 204, 205, 206,
19961 : 207, 208, 209, 210, -1, 212, 213, 214, 215, 216,
19962 : 217, 218, 219, 220, -1, 222, -1, 224, 225, 226,
19963 : 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
19964 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
19965 : -1, -1, 249, 250, 251, 252, 253, -1, 255, 256,
19966 : 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
19967 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
19968 : 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
19969 : 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
19970 : 297, 298, 299, 300, 301, 302, 303, 304, 305, -1,
19971 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
19972 : 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
19973 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
19974 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
19975 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
19976 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
19977 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
19978 : 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
19979 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
19980 : 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
19981 : 407, 408, 409, 410, 411, 412, -1, 414, 415, 416,
19982 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
19983 : 427, 428, 429, 430, -1, 432, 433, 434, -1, 436,
19984 : 437, 438, 439, 440, 441, 442, 443, -1, 445, 446,
19985 : 447, -1, -1, 450, 451, 452, 453, 454, 455, 456,
19986 : 457, 458, 459, 460, 461, 462, 463, 464, -1, 466,
19987 : 467, 468, 469, 470, 471, 472, -1, 474, 475, 476,
19988 : 477, 478, 479, 480, -1, 482, 483, 484, 485, 486,
19989 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
19990 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
19991 : 507, 508, 509, 510, 511, 512, 513, -1, 515, -1,
19992 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
19993 : 527, 528, -1, -1, -1, 3, -1, 5, 6, 536,
19994 : 8, 9, 10, 11, 12, -1, -1, -1, -1, -1,
19995 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
19996 : 28, -1, 30, 31, 32, -1, -1, -1, -1, 37,
19997 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
19998 : 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
19999 : 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
20000 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
20001 : -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
20002 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
20003 : 98, -1, 100, 101, 102, 103, 104, 105, 106, 107,
20004 : 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
20005 : 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
20006 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
20007 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
20008 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
20009 : 158, 159, 160, 161, 162, 163, 164, 165, -1, 167,
20010 : 168, 169, 170, 171, -1, 173, -1, 175, 176, 177,
20011 : -1, 179, 180, 181, 182, 183, -1, 185, 186, -1,
20012 : 188, 189, 190, -1, 192, 193, 194, 195, 196, 197,
20013 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
20014 : 208, 209, 210, -1, 212, 213, 214, 215, 216, 217,
20015 : 218, 219, 220, -1, 222, -1, 224, 225, 226, 227,
20016 : 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
20017 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
20018 : -1, 249, 250, 251, 252, 253, -1, 255, 256, 257,
20019 : 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
20020 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
20021 : 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
20022 : 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
20023 : 298, 299, 300, 301, 302, 303, 304, 305, -1, 307,
20024 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
20025 : 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
20026 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
20027 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
20028 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
20029 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
20030 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
20031 : 378, 379, 380, 381, 382, 383, 384, 385, 386, 387,
20032 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
20033 : 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
20034 : 408, 409, 410, 411, 412, -1, 414, 415, 416, 417,
20035 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
20036 : 428, 429, 430, -1, 432, 433, 434, -1, 436, 437,
20037 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
20038 : 448, -1, 450, 451, 452, 453, 454, 455, 456, 457,
20039 : 458, 459, 460, 461, 462, 463, 464, -1, 466, 467,
20040 : 468, 469, 470, 471, 472, -1, 474, 475, 476, 477,
20041 : 478, 479, 480, -1, 482, 483, 484, 485, 486, 487,
20042 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
20043 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
20044 : 508, 509, 510, 511, 512, 513, -1, 515, -1, -1,
20045 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 527,
20046 : 528, -1, -1, -1, 3, -1, 5, 6, 536, 8,
20047 : 9, 10, 11, 12, -1, -1, -1, -1, -1, -1,
20048 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
20049 : -1, 30, 31, 32, -1, -1, -1, -1, 37, -1,
20050 : -1, 40, 41, 42, -1, 44, 45, 46, 47, 48,
20051 : 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
20052 : 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
20053 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
20054 : 79, -1, 81, 82, 83, 84, 85, 86, 87, 88,
20055 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
20056 : -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
20057 : 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
20058 : 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
20059 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
20060 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
20061 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
20062 : 159, 160, 161, 162, 163, 164, 165, -1, 167, 168,
20063 : 169, 170, 171, -1, 173, -1, 175, 176, 177, -1,
20064 : 179, 180, 181, 182, 183, -1, 185, 186, -1, 188,
20065 : 189, 190, -1, 192, 193, 194, 195, 196, 197, 198,
20066 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
20067 : 209, 210, -1, 212, 213, 214, 215, 216, 217, 218,
20068 : 219, 220, -1, 222, -1, 224, 225, 226, 227, 228,
20069 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
20070 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
20071 : 249, 250, 251, 252, 253, -1, 255, 256, 257, 258,
20072 : 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
20073 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
20074 : 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
20075 : 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
20076 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
20077 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
20078 : 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
20079 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
20080 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
20081 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
20082 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
20083 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
20084 : 379, 380, 381, 382, 383, 384, 385, 386, 387, 388,
20085 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
20086 : 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
20087 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
20088 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
20089 : 429, 430, -1, 432, 433, 434, -1, 436, 437, 438,
20090 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
20091 : -1, 450, 451, 452, 453, 454, 455, 456, 457, 458,
20092 : 459, 460, 461, 462, 463, 464, -1, 466, 467, 468,
20093 : 469, 470, 471, 472, -1, 474, 475, 476, 477, 478,
20094 : 479, 480, -1, 482, 483, 484, 485, 486, 487, 488,
20095 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
20096 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
20097 : 509, 510, 511, 512, 513, -1, 515, -1, -1, -1,
20098 : -1, -1, -1, -1, -1, -1, -1, -1, 527, 528,
20099 : -1, -1, -1, 3, -1, 5, 6, 536, 8, 9,
20100 : 10, 11, 12, -1, -1, -1, -1, -1, -1, -1,
20101 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
20102 : 30, 31, 32, -1, -1, -1, -1, 37, -1, -1,
20103 : 40, 41, 42, -1, 44, 45, 46, 47, 48, 49,
20104 : 50, 51, 52, 53, 54, 55, 56, -1, 58, 59,
20105 : 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
20106 : 70, 71, -1, 73, 74, 75, 76, 77, -1, 79,
20107 : -1, 81, 82, 83, 84, 85, 86, 87, 88, 89,
20108 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
20109 : 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
20110 : 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
20111 : 120, 121, -1, 123, 124, 125, 126, 127, 128, 129,
20112 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
20113 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
20114 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
20115 : 160, 161, 162, 163, 164, 165, -1, 167, 168, 169,
20116 : 170, 171, -1, 173, -1, 175, 176, 177, -1, 179,
20117 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
20118 : 190, -1, 192, 193, 194, 195, 196, 197, 198, 199,
20119 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
20120 : 210, -1, 212, 213, 214, 215, 216, 217, 218, 219,
20121 : 220, -1, 222, -1, 224, 225, 226, 227, 228, 229,
20122 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
20123 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
20124 : 250, 251, 252, 253, -1, 255, 256, 257, 258, 259,
20125 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
20126 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
20127 : 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
20128 : 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
20129 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
20130 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
20131 : 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
20132 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
20133 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
20134 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
20135 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
20136 : 370, 371, 372, 373, 374, 375, -1, 377, 378, 379,
20137 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
20138 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
20139 : 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
20140 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
20141 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
20142 : 430, -1, 432, 433, 434, -1, 436, 437, 438, 439,
20143 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
20144 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
20145 : 460, 461, 462, 463, 464, -1, 466, 467, 468, 469,
20146 : 470, 471, 472, -1, 474, 475, 476, 477, 478, 479,
20147 : 480, -1, 482, 483, 484, 485, 486, 487, 488, -1,
20148 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
20149 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
20150 : 510, 511, 512, 513, -1, 515, -1, -1, -1, -1,
20151 : -1, -1, -1, -1, -1, -1, -1, 527, 528, -1,
20152 : -1, -1, 3, -1, 5, 6, 536, 8, 9, 10,
20153 : 11, 12, -1, -1, -1, -1, -1, -1, -1, 20,
20154 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
20155 : 31, 32, -1, -1, -1, -1, 37, -1, -1, 40,
20156 : 41, 42, -1, 44, 45, 46, 47, 48, 49, 50,
20157 : 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
20158 : 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
20159 : 71, -1, 73, 74, 75, 76, 77, -1, 79, -1,
20160 : 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
20161 : 91, -1, 93, 94, 95, 96, 97, 98, -1, 100,
20162 : 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
20163 : 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
20164 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
20165 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
20166 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
20167 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
20168 : 161, 162, 163, 164, 165, -1, 167, 168, 169, 170,
20169 : 171, -1, 173, -1, 175, 176, 177, -1, 179, 180,
20170 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
20171 : -1, 192, 193, 194, 195, 196, 197, 198, 199, 200,
20172 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
20173 : -1, 212, 213, 214, 215, 216, 217, 218, 219, 220,
20174 : -1, 222, -1, 224, 225, 226, 227, 228, 229, 230,
20175 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
20176 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
20177 : 251, 252, 253, -1, 255, 256, 257, 258, 259, 260,
20178 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
20179 : 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
20180 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
20181 : 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
20182 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
20183 : -1, 312, 313, 314, -1, -1, 317, 318, 319, 320,
20184 : 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
20185 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
20186 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
20187 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
20188 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
20189 : 371, 372, 373, 374, 375, -1, 377, 378, 379, 380,
20190 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
20191 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
20192 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
20193 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
20194 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
20195 : -1, 432, 433, 434, -1, 436, 437, 438, 439, 440,
20196 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
20197 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 460,
20198 : 461, 462, 463, 464, -1, 466, 467, 468, 469, 470,
20199 : 471, 472, -1, 474, 475, 476, 477, 478, 479, 480,
20200 : -1, 482, 483, 484, 485, 486, 487, 488, -1, -1,
20201 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
20202 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
20203 : 511, 512, 513, -1, 515, -1, -1, -1, -1, -1,
20204 : -1, -1, -1, -1, -1, -1, 527, 528, -1, -1,
20205 : -1, 3, -1, 5, 6, 536, 8, 9, 10, 11,
20206 : 12, -1, -1, -1, -1, -1, -1, -1, 20, 21,
20207 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
20208 : 32, -1, -1, -1, -1, 37, -1, -1, 40, 41,
20209 : 42, -1, 44, 45, 46, 47, 48, 49, 50, 51,
20210 : 52, 53, 54, 55, 56, -1, 58, 59, 60, 61,
20211 : 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
20212 : -1, 73, 74, 75, 76, 77, -1, 79, -1, 81,
20213 : 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
20214 : -1, 93, 94, 95, 96, 97, 98, -1, 100, 101,
20215 : 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
20216 : 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
20217 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
20218 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
20219 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
20220 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
20221 : 162, 163, 164, 165, -1, 167, 168, 169, 170, 171,
20222 : -1, 173, -1, 175, 176, 177, -1, 179, 180, 181,
20223 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
20224 : 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
20225 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
20226 : 212, 213, 214, 215, 216, 217, 218, 219, 220, -1,
20227 : 222, -1, 224, 225, 226, 227, 228, 229, 230, 231,
20228 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
20229 : 242, 243, 244, 245, 246, -1, -1, 249, 250, 251,
20230 : 252, 253, -1, 255, 256, 257, 258, 259, 260, 261,
20231 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
20232 : 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
20233 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
20234 : 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
20235 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
20236 : 312, 313, 314, -1, -1, 317, 318, 319, 320, 321,
20237 : 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
20238 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
20239 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
20240 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
20241 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
20242 : 372, 373, 374, 375, -1, 377, 378, 379, 380, 381,
20243 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
20244 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
20245 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
20246 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
20247 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
20248 : 432, 433, 434, -1, 436, 437, 438, 439, 440, 441,
20249 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
20250 : 452, 453, 454, 455, 456, 457, 458, 459, 460, 461,
20251 : 462, 463, 464, -1, 466, 467, 468, 469, 470, 471,
20252 : 472, -1, 474, 475, 476, 477, 478, 479, 480, -1,
20253 : 482, 483, 484, 485, 486, 487, 488, -1, -1, 491,
20254 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
20255 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
20256 : 512, 513, -1, 515, -1, -1, -1, -1, -1, -1,
20257 : -1, -1, -1, -1, -1, 527, 528, -1, -1, -1,
20258 : 3, -1, 5, 6, 536, 8, 9, 10, 11, 12,
20259 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
20260 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
20261 : -1, -1, -1, -1, 37, -1, -1, 40, 41, 42,
20262 : -1, 44, 45, 46, 47, 48, 49, 50, 51, 52,
20263 : 53, 54, 55, 56, -1, 58, 59, 60, 61, 62,
20264 : 63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
20265 : 73, 74, 75, 76, 77, -1, 79, -1, 81, 82,
20266 : 83, 84, 85, 86, 87, 88, 89, 90, 91, -1,
20267 : 93, 94, 95, 96, 97, 98, -1, 100, 101, 102,
20268 : 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
20269 : 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
20270 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
20271 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
20272 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
20273 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
20274 : 163, 164, 165, -1, 167, 168, 169, 170, 171, -1,
20275 : 173, -1, 175, 176, 177, -1, 179, 180, 181, 182,
20276 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
20277 : 193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
20278 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
20279 : 213, 214, 215, 216, 217, 218, 219, 220, -1, 222,
20280 : -1, 224, 225, 226, 227, 228, 229, 230, 231, 232,
20281 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
20282 : 243, 244, 245, 246, -1, -1, 249, 250, 251, 252,
20283 : 253, -1, 255, 256, 257, 258, 259, 260, 261, 262,
20284 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
20285 : 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
20286 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
20287 : 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
20288 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
20289 : 313, 314, -1, -1, 317, 318, 319, 320, 321, 322,
20290 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
20291 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
20292 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
20293 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
20294 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
20295 : 373, 374, 375, -1, 377, 378, 379, 380, 381, 382,
20296 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
20297 : 393, 394, 395, -1, 397, 398, 399, 400, 401, 402,
20298 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
20299 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
20300 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
20301 : 433, 434, -1, 436, 437, 438, 439, 440, 441, 442,
20302 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
20303 : 453, 454, 455, 456, 457, 458, 459, 460, 461, 462,
20304 : 463, 464, -1, 466, 467, 468, 469, 470, 471, 472,
20305 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
20306 : 483, 484, 485, 486, 487, 488, -1, -1, 491, -1,
20307 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
20308 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
20309 : 513, -1, 515, -1, -1, -1, -1, -1, -1, -1,
20310 : -1, -1, -1, -1, 527, 528, -1, -1, -1, 3,
20311 : -1, 5, 6, 536, 8, 9, 10, 11, 12, -1,
20312 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
20313 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
20314 : -1, -1, -1, 37, -1, -1, 40, 41, 42, -1,
20315 : 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
20316 : 54, 55, 56, -1, 58, 59, 60, 61, 62, 63,
20317 : 64, 65, 66, 67, 68, 69, 70, 71, -1, 73,
20318 : 74, 75, 76, 77, -1, 79, -1, 81, 82, 83,
20319 : 84, 85, 86, 87, 88, 89, 90, 91, -1, 93,
20320 : 94, 95, 96, 97, 98, -1, 100, 101, 102, 103,
20321 : 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
20322 : 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
20323 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
20324 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
20325 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
20326 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
20327 : 164, 165, -1, 167, 168, 169, 170, 171, -1, 173,
20328 : -1, 175, 176, 177, -1, 179, 180, 181, 182, 183,
20329 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
20330 : 194, 195, 196, 197, 198, 199, 200, 201, -1, 203,
20331 : 204, 205, 206, 207, 208, 209, 210, -1, 212, 213,
20332 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
20333 : 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
20334 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
20335 : 244, 245, 246, -1, -1, 249, 250, 251, 252, 253,
20336 : -1, 255, 256, 257, 258, 259, 260, 261, 262, 263,
20337 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
20338 : 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
20339 : 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
20340 : 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
20341 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
20342 : 314, -1, -1, 317, 318, 319, 320, 321, 322, 323,
20343 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
20344 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
20345 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
20346 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
20347 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
20348 : 374, 375, -1, 377, 378, 379, 380, 381, 382, 383,
20349 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
20350 : 394, 395, -1, 397, 398, 399, 400, 401, 402, 403,
20351 : 404, 405, 406, 407, 408, 409, 410, 411, 412, -1,
20352 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
20353 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
20354 : 434, -1, 436, 437, 438, 439, 440, 441, 442, 443,
20355 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
20356 : 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
20357 : 464, -1, 466, 467, 468, 469, 470, 471, 472, -1,
20358 : 474, 475, 476, 477, 478, 479, 480, -1, 482, 483,
20359 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
20360 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
20361 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
20362 : -1, 515, -1, -1, -1, -1, -1, -1, -1, -1,
20363 : -1, -1, -1, 527, 528, -1, -1, -1, 3, -1,
20364 : 5, 6, 536, 8, 9, 10, 11, 12, -1, -1,
20365 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
20366 : 25, 26, 27, 28, -1, 30, 31, 32, -1, -1,
20367 : -1, -1, 37, -1, -1, 40, 41, 42, -1, 44,
20368 : 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
20369 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
20370 : 65, 66, 67, 68, 69, 70, 71, -1, 73, 74,
20371 : 75, 76, 77, -1, 79, -1, 81, 82, 83, 84,
20372 : 85, 86, 87, 88, 89, 90, 91, -1, 93, 94,
20373 : 95, 96, 97, 98, -1, 100, 101, 102, 103, 104,
20374 : 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
20375 : 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
20376 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
20377 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
20378 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
20379 : 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
20380 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
20381 : 175, 176, 177, -1, 179, 180, 181, 182, 183, -1,
20382 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
20383 : 195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
20384 : 205, 206, 207, 208, 209, 210, -1, 212, 213, 214,
20385 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
20386 : 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
20387 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
20388 : 245, 246, -1, -1, 249, 250, 251, 252, 253, -1,
20389 : 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
20390 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
20391 : 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
20392 : 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
20393 : 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
20394 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
20395 : -1, -1, 317, 318, 319, 320, 321, 322, 323, 324,
20396 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
20397 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
20398 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
20399 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
20400 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
20401 : 375, -1, 377, 378, 379, 380, 381, 382, 383, 384,
20402 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
20403 : 395, -1, 397, 398, 399, 400, 401, 402, 403, 404,
20404 : 405, 406, 407, 408, 409, 410, 411, 412, -1, 414,
20405 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
20406 : 425, 426, 427, 428, 429, 430, -1, 432, 433, 434,
20407 : -1, 436, 437, 438, 439, 440, 441, 442, 443, -1,
20408 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
20409 : 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
20410 : -1, 466, 467, 468, 469, 470, 471, 472, -1, 474,
20411 : 475, 476, 477, 478, 479, 480, -1, 482, 483, 484,
20412 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
20413 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
20414 : 505, 506, 507, 508, 509, 510, 511, 512, 513, -1,
20415 : 515, -1, -1, -1, -1, -1, -1, -1, -1, -1,
20416 : -1, -1, 527, 528, -1, -1, -1, 3, -1, 5,
20417 : 6, 536, 8, 9, 10, 11, 12, -1, -1, -1,
20418 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
20419 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
20420 : -1, 37, -1, -1, 40, 41, 42, -1, 44, 45,
20421 : 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
20422 : 56, -1, 58, 59, 60, 61, 62, 63, 64, 65,
20423 : 66, 67, 68, 69, 70, 71, -1, 73, 74, 75,
20424 : 76, 77, -1, 79, -1, 81, 82, 83, 84, 85,
20425 : 86, 87, 88, 89, 90, 91, -1, 93, 94, 95,
20426 : 96, 97, 98, -1, 100, 101, 102, 103, 104, 105,
20427 : 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
20428 : 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
20429 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
20430 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
20431 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
20432 : 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
20433 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
20434 : 176, 177, -1, 179, 180, 181, 182, 183, -1, 185,
20435 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
20436 : 196, 197, 198, 199, 200, 201, -1, 203, 204, 205,
20437 : 206, 207, 208, 209, 210, -1, 212, 213, 214, 215,
20438 : 216, 217, 218, 219, 220, -1, 222, -1, 224, 225,
20439 : 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
20440 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
20441 : 246, -1, -1, 249, 250, 251, 252, 253, -1, 255,
20442 : 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
20443 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
20444 : 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
20445 : 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
20446 : 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
20447 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
20448 : -1, 317, 318, 319, 320, 321, 322, 323, 324, 325,
20449 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
20450 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
20451 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
20452 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
20453 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
20454 : -1, 377, 378, 379, 380, 381, 382, 383, 384, 385,
20455 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
20456 : -1, 397, 398, 399, 400, 401, 402, 403, 404, 405,
20457 : 406, 407, 408, 409, 410, 411, 412, -1, 414, 415,
20458 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
20459 : 426, 427, 428, 429, 430, -1, 432, 433, 434, -1,
20460 : 436, 437, 438, 439, 440, 441, 442, 443, -1, 445,
20461 : 446, 447, -1, -1, 450, 451, 452, 453, 454, 455,
20462 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
20463 : 466, 467, 468, 469, 470, 471, 472, -1, 474, 475,
20464 : 476, 477, 478, 479, 480, -1, 482, 483, 484, 485,
20465 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
20466 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
20467 : 506, 507, 508, 509, 510, 511, 512, 513, -1, 515,
20468 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
20469 : -1, 527, 528, -1, -1, -1, 3, -1, 5, 6,
20470 : 536, 8, 9, 10, 11, 12, -1, -1, -1, -1,
20471 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
20472 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
20473 : 37, -1, -1, 40, 41, 42, -1, 44, 45, 46,
20474 : 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
20475 : -1, 58, 59, 60, 61, 62, 63, 64, 65, 66,
20476 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
20477 : 77, -1, 79, -1, 81, 82, 83, 84, 85, 86,
20478 : 87, 88, 89, 90, 91, -1, 93, 94, 95, 96,
20479 : 97, 98, -1, 100, 101, 102, 103, 104, 105, 106,
20480 : 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
20481 : 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
20482 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
20483 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
20484 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
20485 : 157, 158, 159, 160, 161, 162, 163, 164, 165, -1,
20486 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
20487 : 177, -1, 179, 180, 181, 182, 183, -1, 185, 186,
20488 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
20489 : 197, 198, 199, 200, 201, -1, 203, 204, 205, 206,
20490 : 207, 208, 209, 210, -1, 212, 213, 214, 215, 216,
20491 : 217, 218, 219, 220, -1, 222, -1, 224, 225, 226,
20492 : 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
20493 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
20494 : -1, -1, 249, 250, 251, 252, 253, -1, 255, 256,
20495 : 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
20496 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
20497 : 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
20498 : 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
20499 : 297, 298, 299, 300, 301, 302, 303, 304, 305, -1,
20500 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
20501 : 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
20502 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
20503 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
20504 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
20505 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
20506 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
20507 : 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
20508 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
20509 : 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
20510 : 407, 408, 409, 410, 411, 412, -1, 414, 415, 416,
20511 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
20512 : 427, 428, 429, 430, -1, 432, 433, 434, -1, 436,
20513 : 437, 438, 439, 440, 441, 442, 443, -1, 445, 446,
20514 : 447, -1, -1, 450, 451, 452, 453, 454, 455, 456,
20515 : 457, 458, 459, 460, 461, 462, 463, 464, -1, 466,
20516 : 467, 468, 469, 470, 471, 472, -1, 474, 475, 476,
20517 : 477, 478, 479, 480, -1, 482, 483, 484, 485, 486,
20518 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
20519 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
20520 : 507, 508, 509, 510, 511, 512, 513, -1, 515, -1,
20521 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
20522 : 527, 528, -1, -1, -1, 3, -1, 5, 6, 536,
20523 : 8, 9, 10, 11, 12, -1, -1, -1, -1, -1,
20524 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
20525 : 28, -1, 30, 31, 32, -1, -1, -1, -1, 37,
20526 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
20527 : 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
20528 : 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
20529 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
20530 : -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
20531 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
20532 : 98, -1, 100, 101, 102, 103, 104, 105, 106, 107,
20533 : 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
20534 : 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
20535 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
20536 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
20537 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
20538 : 158, 159, 160, 161, 162, 163, 164, 165, -1, 167,
20539 : 168, 169, 170, 171, -1, 173, -1, 175, 176, 177,
20540 : -1, 179, 180, 181, 182, 183, -1, 185, 186, -1,
20541 : 188, 189, 190, -1, 192, 193, 194, 195, 196, 197,
20542 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
20543 : 208, 209, 210, -1, 212, 213, 214, 215, 216, 217,
20544 : 218, 219, 220, -1, 222, -1, 224, 225, 226, 227,
20545 : 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
20546 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
20547 : -1, 249, 250, 251, 252, 253, -1, 255, 256, 257,
20548 : 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
20549 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
20550 : 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
20551 : 288, 289, 290, 291, 292, -1, 294, 295, 296, 297,
20552 : 298, 299, 300, 301, 302, 303, 304, 305, -1, 307,
20553 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
20554 : 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
20555 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
20556 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
20557 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
20558 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
20559 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
20560 : 378, 379, 380, 381, 382, 383, 384, 385, 386, 387,
20561 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
20562 : 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
20563 : 408, 409, 410, 411, 412, -1, 414, 415, 416, 417,
20564 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
20565 : 428, 429, 430, -1, 432, 433, 434, -1, 436, 437,
20566 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
20567 : -1, -1, 450, 451, 452, 453, 454, 455, 456, 457,
20568 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
20569 : 468, 469, 470, 471, 472, -1, 474, 475, 476, 477,
20570 : 478, 479, 480, -1, 482, 483, 484, 485, 486, 487,
20571 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
20572 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
20573 : 508, 509, 510, 511, 512, 513, -1, -1, -1, -1,
20574 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 527,
20575 : 528, -1, -1, -1, 3, -1, 5, 6, 536, 8,
20576 : 9, 10, 11, 12, -1, -1, -1, -1, -1, -1,
20577 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
20578 : -1, 30, 31, 32, -1, -1, -1, -1, 37, -1,
20579 : -1, 40, 41, 42, -1, 44, 45, 46, 47, 48,
20580 : 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
20581 : 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
20582 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
20583 : 79, -1, 81, 82, 83, 84, 85, 86, 87, 88,
20584 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
20585 : -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
20586 : 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
20587 : 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
20588 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
20589 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
20590 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
20591 : 159, 160, 161, 162, 163, 164, 165, -1, 167, 168,
20592 : 169, 170, 171, -1, 173, -1, 175, 176, 177, -1,
20593 : 179, 180, 181, 182, 183, -1, 185, 186, -1, 188,
20594 : 189, 190, -1, 192, 193, 194, 195, 196, 197, 198,
20595 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
20596 : 209, 210, -1, 212, 213, 214, 215, 216, 217, 218,
20597 : 219, 220, -1, 222, -1, 224, -1, -1, 227, 228,
20598 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
20599 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
20600 : 249, 250, 251, 252, 253, -1, 255, 256, 257, 258,
20601 : 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
20602 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
20603 : 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
20604 : 289, 290, 291, 292, 293, 294, 295, -1, 297, 298,
20605 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
20606 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
20607 : 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
20608 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
20609 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
20610 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
20611 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
20612 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
20613 : 379, 380, 381, 382, 383, 384, 385, 386, 387, 388,
20614 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
20615 : 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
20616 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
20617 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
20618 : 429, 430, -1, 432, 433, 434, -1, 436, 437, 438,
20619 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
20620 : -1, 450, 451, 452, 453, 454, 455, 456, 457, 458,
20621 : 459, 460, 461, 462, 463, 464, -1, 466, 467, 468,
20622 : 469, 470, 471, 472, -1, 474, 475, 476, 477, 478,
20623 : 479, 480, -1, 482, 483, 484, 485, 486, 487, 488,
20624 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
20625 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
20626 : 509, 510, 511, 512, 513, -1, 515, -1, -1, -1,
20627 : -1, -1, -1, -1, -1, -1, -1, -1, 527, 528,
20628 : -1, -1, -1, 3, -1, 5, 6, 536, 8, 9,
20629 : 10, 11, 12, -1, -1, -1, -1, -1, -1, -1,
20630 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
20631 : 30, 31, 32, -1, -1, -1, -1, 37, -1, -1,
20632 : 40, 41, 42, -1, 44, 45, 46, 47, 48, 49,
20633 : 50, 51, 52, 53, 54, 55, 56, -1, 58, 59,
20634 : 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
20635 : 70, 71, -1, 73, 74, 75, 76, 77, -1, 79,
20636 : -1, 81, 82, 83, 84, 85, 86, 87, 88, 89,
20637 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
20638 : 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
20639 : 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
20640 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
20641 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
20642 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
20643 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
20644 : 160, 161, 162, 163, 164, 165, -1, 167, 168, 169,
20645 : 170, 171, -1, 173, -1, 175, 176, 177, -1, 179,
20646 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
20647 : 190, -1, 192, 193, 194, 195, 196, 197, 198, 199,
20648 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
20649 : 210, -1, 212, 213, 214, 215, 216, 217, 218, 219,
20650 : 220, -1, 222, -1, 224, 225, 226, 227, 228, 229,
20651 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
20652 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
20653 : 250, 251, 252, 253, -1, 255, 256, 257, 258, 259,
20654 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
20655 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
20656 : 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
20657 : 290, 291, 292, -1, 294, 295, 296, 297, 298, 299,
20658 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
20659 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
20660 : 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
20661 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
20662 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
20663 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
20664 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
20665 : 370, 371, 372, 373, 374, 375, -1, 377, 378, 379,
20666 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
20667 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
20668 : 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
20669 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
20670 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
20671 : 430, -1, 432, 433, 434, -1, 436, 437, 438, 439,
20672 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
20673 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
20674 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
20675 : 470, 471, 472, -1, 474, 475, 476, 477, 478, 479,
20676 : 480, -1, 482, 483, 484, 485, 486, 487, 488, -1,
20677 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
20678 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
20679 : 510, 511, 512, 513, -1, -1, -1, -1, -1, -1,
20680 : -1, -1, -1, -1, -1, -1, -1, 527, 528, 3,
20681 : -1, 5, 6, -1, 8, 9, 536, 11, 12, -1,
20682 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
20683 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
20684 : -1, -1, -1, 37, -1, -1, 40, 41, 42, -1,
20685 : 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
20686 : 54, 55, 56, -1, 58, 59, 60, 61, 62, 63,
20687 : 64, 65, 66, 67, 68, 69, 70, 71, -1, 73,
20688 : 74, 75, 76, 77, -1, 79, -1, 81, 82, 83,
20689 : 84, 85, 86, 87, 88, 89, 90, 91, -1, 93,
20690 : 94, 95, 96, 97, 98, -1, 100, 101, 102, 103,
20691 : 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
20692 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
20693 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
20694 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
20695 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
20696 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
20697 : 164, 165, -1, 167, 168, 169, 170, 171, -1, 173,
20698 : -1, 175, 176, 177, -1, 179, 180, 181, 182, 183,
20699 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
20700 : 194, 195, 196, 197, 198, 199, 200, 201, -1, 203,
20701 : 204, 205, 206, 207, 208, 209, 210, -1, 212, 213,
20702 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
20703 : 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
20704 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
20705 : 244, 245, 246, -1, -1, 249, 250, 251, 252, 253,
20706 : -1, 255, 256, 257, 258, 259, 260, 261, 262, 263,
20707 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
20708 : 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
20709 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
20710 : 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
20711 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
20712 : 314, -1, -1, 317, 318, 319, 320, 321, 322, 323,
20713 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
20714 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
20715 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
20716 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
20717 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
20718 : 374, 375, -1, 377, 378, 379, 380, 381, 382, 383,
20719 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
20720 : 394, 395, -1, 397, 398, 399, 400, 401, 402, 403,
20721 : 404, 405, 406, 407, 408, 409, 410, 411, 412, -1,
20722 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
20723 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
20724 : 434, -1, 436, 437, 438, 439, 440, 441, 442, 443,
20725 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
20726 : 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
20727 : 464, -1, -1, 467, 468, 469, 470, 471, 472, -1,
20728 : 474, 475, 476, 477, 478, 479, 480, -1, 482, 483,
20729 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
20730 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
20731 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
20732 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
20733 : -1, -1, -1, 527, 528, 3, -1, 5, 6, -1,
20734 : 8, 9, 536, 11, 12, -1, -1, -1, -1, -1,
20735 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
20736 : 28, -1, 30, 31, 32, -1, -1, -1, -1, 37,
20737 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
20738 : 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
20739 : 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
20740 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
20741 : -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
20742 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
20743 : 98, -1, 100, 101, 102, 103, 104, 105, 106, 107,
20744 : 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
20745 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
20746 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
20747 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
20748 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
20749 : 158, 159, 160, 161, 162, 163, 164, 165, -1, 167,
20750 : 168, 169, 170, 171, -1, 173, -1, 175, 176, 177,
20751 : -1, 179, 180, 181, 182, 183, -1, 185, 186, -1,
20752 : 188, 189, 190, -1, 192, 193, 194, 195, 196, 197,
20753 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
20754 : 208, 209, 210, -1, 212, 213, 214, 215, 216, 217,
20755 : 218, 219, 220, -1, 222, -1, 224, 225, 226, 227,
20756 : 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
20757 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
20758 : -1, 249, 250, 251, 252, 253, -1, 255, 256, 257,
20759 : 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
20760 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
20761 : 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
20762 : 288, 289, 290, 291, 292, -1, 294, 295, 296, 297,
20763 : 298, 299, 300, 301, 302, 303, 304, 305, -1, 307,
20764 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
20765 : 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
20766 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
20767 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
20768 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
20769 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
20770 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
20771 : 378, 379, 380, 381, 382, 383, 384, 385, 386, 387,
20772 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
20773 : 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
20774 : 408, 409, 410, 411, 412, -1, 414, 415, 416, 417,
20775 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
20776 : 428, 429, 430, -1, 432, 433, 434, -1, 436, 437,
20777 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
20778 : -1, -1, 450, 451, 452, 453, 454, 455, 456, 457,
20779 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
20780 : 468, 469, 470, 471, 472, -1, 474, 475, 476, 477,
20781 : 478, 479, 480, -1, 482, 483, 484, 485, 486, 487,
20782 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
20783 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
20784 : 508, 509, 510, 511, 512, 513, -1, -1, -1, -1,
20785 : -1, -1, 3, -1, 5, 6, -1, 8, 9, -1,
20786 : 11, 12, -1, -1, -1, -1, -1, -1, 536, 20,
20787 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
20788 : 31, 32, -1, -1, -1, -1, 37, -1, -1, 40,
20789 : 41, 42, -1, 44, 45, 46, 47, 48, 49, 50,
20790 : 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
20791 : 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
20792 : 71, -1, 73, 74, 75, 76, 77, -1, 79, -1,
20793 : 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
20794 : 91, -1, 93, 94, 95, 96, 97, 98, -1, 100,
20795 : 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
20796 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
20797 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
20798 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
20799 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
20800 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
20801 : 161, 162, 163, 164, 165, -1, 167, 168, 169, 170,
20802 : 171, -1, 173, -1, 175, 176, 177, -1, 179, 180,
20803 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
20804 : -1, 192, 193, 194, 195, 196, 197, 198, 199, 200,
20805 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
20806 : -1, 212, 213, 214, 215, 216, 217, 218, 219, 220,
20807 : -1, 222, -1, 224, 225, 226, 227, 228, 229, 230,
20808 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
20809 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
20810 : 251, 252, 253, -1, 255, 256, 257, 258, 259, 260,
20811 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
20812 : 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
20813 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
20814 : 291, 292, -1, 294, 295, 296, 297, 298, 299, 300,
20815 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
20816 : -1, 312, 313, 314, -1, -1, 317, 318, 319, 320,
20817 : 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
20818 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
20819 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
20820 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
20821 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
20822 : 371, 372, 373, 374, 375, -1, 377, 378, 379, 380,
20823 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
20824 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
20825 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
20826 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
20827 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
20828 : -1, 432, 433, 434, -1, 436, 437, 438, 439, 440,
20829 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
20830 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 460,
20831 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
20832 : 471, 472, -1, 474, 475, 476, 477, 478, 479, 480,
20833 : -1, 482, 483, 484, 485, 486, 487, 488, -1, -1,
20834 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
20835 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
20836 : 511, 512, 513, -1, -1, -1, -1, -1, -1, 3,
20837 : -1, 5, 6, -1, 8, 9, -1, 11, 12, -1,
20838 : -1, -1, -1, -1, -1, 536, 20, 21, 22, 23,
20839 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
20840 : -1, -1, -1, 37, -1, -1, 40, 41, 42, -1,
20841 : 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
20842 : 54, 55, 56, -1, 58, 59, 60, 61, 62, 63,
20843 : 64, 65, 66, 67, 68, 69, 70, 71, -1, 73,
20844 : 74, 75, 76, 77, -1, 79, -1, 81, 82, 83,
20845 : 84, 85, 86, 87, 88, 89, 90, 91, -1, 93,
20846 : 94, 95, 96, 97, 98, -1, 100, 101, 102, 103,
20847 : 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
20848 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
20849 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
20850 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
20851 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
20852 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
20853 : 164, 165, -1, 167, 168, 169, 170, 171, -1, 173,
20854 : -1, 175, 176, 177, -1, 179, 180, 181, 182, 183,
20855 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
20856 : 194, 195, 196, 197, 198, 199, 200, 201, -1, 203,
20857 : 204, 205, 206, 207, 208, 209, 210, -1, 212, 213,
20858 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
20859 : 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
20860 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
20861 : 244, 245, 246, -1, -1, 249, 250, 251, 252, 253,
20862 : -1, 255, 256, 257, 258, 259, 260, 261, 262, 263,
20863 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
20864 : 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
20865 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
20866 : 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
20867 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
20868 : 314, -1, -1, 317, 318, 319, 320, 321, 322, 323,
20869 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
20870 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
20871 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
20872 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
20873 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
20874 : 374, 375, -1, 377, 378, 379, 380, 381, 382, 383,
20875 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
20876 : 394, 395, -1, 397, 398, 399, 400, 401, 402, 403,
20877 : 404, 405, 406, 407, 408, 409, 410, 411, 412, -1,
20878 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
20879 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
20880 : 434, -1, 436, 437, 438, 439, 440, 441, 442, 443,
20881 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
20882 : 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
20883 : 464, -1, -1, 467, 468, 469, 470, 471, 472, -1,
20884 : 474, 475, 476, 477, 478, 479, 480, -1, 482, 483,
20885 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
20886 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
20887 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
20888 : -1, -1, -1, -1, -1, -1, 3, -1, -1, -1,
20889 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
20890 : -1, -1, 536, 20, 21, 22, 23, 24, 25, 26,
20891 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
20892 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
20893 : 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
20894 : -1, 58, 59, 60, 61, 62, 63, 64, -1, 66,
20895 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
20896 : 77, -1, 79, -1, 81, 82, 83, 84, 85, 86,
20897 : 87, 88, 89, 90, 91, -1, 93, 94, 95, 96,
20898 : 97, 98, -1, 100, 101, 102, 103, 104, 105, 106,
20899 : 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
20900 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
20901 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
20902 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
20903 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
20904 : 157, 158, 159, 160, 161, 162, 163, -1, 165, -1,
20905 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
20906 : 177, -1, 179, 180, 181, 182, 183, -1, 185, 186,
20907 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
20908 : 197, 198, 199, 200, 201, -1, 203, 204, 205, 206,
20909 : 207, 208, 209, 210, -1, 212, 213, 214, 215, 216,
20910 : 217, 218, 219, 220, -1, 222, -1, 224, 225, 226,
20911 : 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
20912 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
20913 : 247, -1, 249, 250, 251, 252, 253, -1, 255, 256,
20914 : 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
20915 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
20916 : 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
20917 : 287, 288, 289, 290, 291, 292, -1, 294, 295, 296,
20918 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
20919 : 307, 308, 309, -1, 311, 312, 313, 314, -1, -1,
20920 : 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
20921 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
20922 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
20923 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
20924 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
20925 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
20926 : 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
20927 : 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
20928 : 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
20929 : 407, 408, 409, 410, 411, 412, -1, 414, 415, 416,
20930 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
20931 : 427, 428, 429, 430, -1, 432, 433, 434, 435, 436,
20932 : 437, 438, 439, 440, 441, 442, 443, -1, 445, 446,
20933 : 447, -1, -1, 450, 451, 452, 453, 454, -1, 456,
20934 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
20935 : 467, 468, 469, 470, 471, 472, -1, 474, 475, 476,
20936 : 477, 478, 479, 480, -1, 482, 483, 484, 485, 486,
20937 : 487, 488, -1, -1, 491, -1, 493, 494, 495, 496,
20938 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
20939 : 507, 508, 509, 510, 511, 512, 513, -1, -1, -1,
20940 : 517, -1, -1, 3, -1, -1, -1, -1, -1, -1,
20941 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 536,
20942 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
20943 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
20944 : 40, 41, 42, -1, 44, 45, 46, 47, 48, 49,
20945 : 50, 51, 52, 53, 54, 55, 56, -1, 58, 59,
20946 : 60, 61, 62, 63, 64, -1, 66, 67, 68, 69,
20947 : 70, 71, -1, 73, 74, 75, 76, 77, -1, 79,
20948 : -1, 81, 82, 83, 84, 85, 86, 87, 88, 89,
20949 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
20950 : 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
20951 : 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
20952 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
20953 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
20954 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
20955 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
20956 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
20957 : 170, 171, -1, 173, -1, 175, 176, 177, -1, 179,
20958 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
20959 : 190, -1, 192, 193, 194, 195, 196, 197, 198, 199,
20960 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
20961 : 210, -1, 212, 213, 214, 215, 216, 217, 218, 219,
20962 : 220, -1, 222, -1, 224, 225, 226, 227, 228, 229,
20963 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
20964 : 240, 241, 242, 243, 244, 245, 246, 247, -1, 249,
20965 : 250, 251, 252, 253, -1, 255, 256, 257, 258, 259,
20966 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
20967 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
20968 : 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
20969 : 290, 291, 292, -1, 294, 295, 296, 297, -1, 299,
20970 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
20971 : -1, 311, 312, 313, 314, -1, -1, 317, 318, 319,
20972 : 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
20973 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
20974 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
20975 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
20976 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
20977 : 370, 371, 372, 373, 374, 375, -1, 377, 378, 379,
20978 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
20979 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
20980 : 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
20981 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
20982 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
20983 : 430, -1, 432, 433, 434, -1, 436, 437, 438, 439,
20984 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
20985 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
20986 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
20987 : 470, 471, 472, -1, 474, 475, 476, 477, 478, 479,
20988 : 480, -1, 482, 483, 484, 485, 486, 487, 488, -1,
20989 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
20990 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
20991 : 510, 511, 512, 513, -1, -1, -1, -1, -1, -1,
20992 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
20993 : -1, -1, -1, -1, -1, -1, 536, 20, 21, 22,
20994 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
20995 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
20996 : -1, 44, 45, 46, 47, 48, 49, 50, 51, 52,
20997 : 53, 54, 55, 56, -1, 58, 59, 60, 61, 62,
20998 : 63, 64, -1, 66, 67, 68, 69, 70, 71, -1,
20999 : 73, 74, 75, 76, 77, -1, 79, -1, 81, 82,
21000 : 83, 84, 85, 86, 87, 88, 89, 90, 91, -1,
21001 : 93, 94, 95, 96, 97, 98, -1, 100, 101, 102,
21002 : 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
21003 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
21004 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
21005 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
21006 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
21007 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
21008 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
21009 : 173, -1, 175, 176, 177, -1, 179, 180, 181, 182,
21010 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
21011 : 193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
21012 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
21013 : 213, 214, 215, 216, 217, 218, 219, 220, -1, 222,
21014 : -1, 224, 225, 226, 227, 228, 229, 230, 231, 232,
21015 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
21016 : 243, 244, 245, 246, -1, -1, 249, 250, 251, 252,
21017 : 253, -1, 255, 256, 257, 258, 259, 260, 261, 262,
21018 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
21019 : 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
21020 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
21021 : -1, 294, 295, 296, 297, -1, 299, 300, 301, 302,
21022 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
21023 : 313, 314, -1, -1, 317, 318, 319, 320, 321, 322,
21024 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
21025 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
21026 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
21027 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
21028 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
21029 : 373, 374, 375, -1, 377, 378, 379, 380, 381, 382,
21030 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
21031 : 393, 394, 395, -1, 397, 398, 399, 400, 401, 402,
21032 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
21033 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
21034 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
21035 : 433, 434, -1, 436, 437, 438, 439, 440, 441, 442,
21036 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
21037 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
21038 : 463, 464, -1, -1, 467, 468, 469, 470, 471, 472,
21039 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
21040 : 483, 484, 485, 486, 487, 488, -1, -1, 491, -1,
21041 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
21042 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
21043 : 513, -1, -1, -1, -1, -1, -1, 3, -1, -1,
21044 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
21045 : -1, -1, -1, 536, 20, 21, 22, 23, 24, 25,
21046 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
21047 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
21048 : 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
21049 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
21050 : 66, 67, 68, 69, 70, 71, -1, 73, 74, 75,
21051 : 76, 77, -1, 79, -1, 81, 82, 83, 84, 85,
21052 : 86, 87, 88, 89, 90, 91, -1, 93, 94, 95,
21053 : 96, 97, 98, -1, 100, 101, 102, 103, 104, 105,
21054 : 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
21055 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
21056 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
21057 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
21058 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
21059 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
21060 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
21061 : 176, 177, -1, 179, 180, 181, 182, 183, -1, 185,
21062 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
21063 : 196, 197, 198, 199, 200, 201, -1, 203, 204, 205,
21064 : 206, 207, 208, 209, 210, -1, 212, 213, 214, 215,
21065 : 216, 217, 218, 219, 220, -1, 222, -1, 224, 225,
21066 : 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
21067 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
21068 : 246, -1, -1, 249, 250, 251, 252, 253, -1, 255,
21069 : 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
21070 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
21071 : 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
21072 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
21073 : 296, 297, -1, 299, 300, 301, 302, 303, 304, 305,
21074 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
21075 : -1, 317, 318, 319, 320, 321, 322, 323, 324, 325,
21076 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
21077 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
21078 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
21079 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
21080 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
21081 : -1, 377, 378, 379, 380, 381, 382, 383, 384, 385,
21082 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
21083 : -1, 397, 398, 399, 400, 401, 402, 403, 404, 405,
21084 : 406, 407, 408, 409, 410, 411, 412, -1, 414, 415,
21085 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
21086 : 426, 427, 428, 429, 430, -1, 432, 433, 434, -1,
21087 : 436, 437, 438, 439, 440, 441, 442, 443, -1, 445,
21088 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
21089 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
21090 : -1, 467, 468, 469, 470, 471, 472, -1, 474, 475,
21091 : 476, 477, 478, 479, 480, -1, 482, 483, 484, 485,
21092 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
21093 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
21094 : 506, 507, 508, 509, 510, 511, 512, 513, -1, -1,
21095 : -1, -1, -1, -1, 3, -1, -1, -1, -1, -1,
21096 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
21097 : 536, 20, 21, 22, 23, 24, 25, 26, 27, 28,
21098 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
21099 : -1, 40, 41, 42, -1, 44, 45, 46, 47, 48,
21100 : 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
21101 : 59, 60, 61, 62, 63, 64, -1, 66, 67, 68,
21102 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
21103 : 79, -1, 81, 82, 83, 84, 85, 86, 87, 88,
21104 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
21105 : -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
21106 : 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
21107 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
21108 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
21109 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
21110 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
21111 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
21112 : 169, 170, 171, -1, 173, -1, 175, 176, 177, -1,
21113 : 179, 180, 181, 182, 183, -1, 185, 186, -1, 188,
21114 : 189, 190, -1, 192, 193, 194, 195, 196, 197, 198,
21115 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
21116 : 209, 210, -1, 212, 213, 214, 215, 216, 217, 218,
21117 : 219, 220, -1, 222, -1, 224, 225, 226, 227, 228,
21118 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
21119 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
21120 : 249, 250, 251, 252, 253, -1, 255, 256, 257, 258,
21121 : 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
21122 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
21123 : 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
21124 : 289, 290, 291, 292, -1, 294, 295, 296, 297, -1,
21125 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
21126 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
21127 : 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
21128 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
21129 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
21130 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
21131 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
21132 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
21133 : 379, 380, 381, 382, 383, 384, 385, 386, 387, 388,
21134 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
21135 : 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
21136 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
21137 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
21138 : 429, 430, -1, 432, 433, 434, -1, 436, 437, 438,
21139 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
21140 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
21141 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
21142 : 469, 470, 471, 472, -1, 474, 475, 476, 477, 478,
21143 : 479, 480, -1, 482, 483, 484, 485, 486, 487, 488,
21144 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
21145 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
21146 : 509, 510, 511, 512, 513, -1, -1, -1, -1, -1,
21147 : -1, 3, -1, -1, -1, -1, -1, -1, -1, -1,
21148 : -1, -1, -1, -1, -1, -1, -1, 536, 20, 21,
21149 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
21150 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
21151 : 42, -1, 44, 45, 46, 47, 48, 49, 50, 51,
21152 : 52, 53, 54, 55, 56, -1, 58, 59, 60, 61,
21153 : 62, 63, 64, -1, 66, 67, 68, 69, 70, 71,
21154 : -1, 73, 74, 75, 76, 77, -1, 79, -1, 81,
21155 : 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
21156 : -1, 93, 94, 95, 96, 97, 98, -1, 100, 101,
21157 : 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
21158 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
21159 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
21160 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
21161 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
21162 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
21163 : 162, 163, -1, 165, -1, 167, 168, 169, 170, 171,
21164 : -1, 173, -1, 175, 176, 177, -1, 179, 180, 181,
21165 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
21166 : 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
21167 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
21168 : 212, 213, 214, 215, 216, 217, 218, 219, 220, -1,
21169 : 222, -1, 224, 225, 226, 227, 228, 229, 230, 231,
21170 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
21171 : 242, 243, 244, 245, 246, -1, -1, 249, 250, 251,
21172 : 252, 253, -1, 255, 256, 257, 258, 259, 260, 261,
21173 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
21174 : 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
21175 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
21176 : 292, -1, 294, 295, 296, 297, -1, 299, 300, 301,
21177 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
21178 : 312, 313, 314, -1, -1, 317, 318, 319, 320, 321,
21179 : 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
21180 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
21181 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
21182 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
21183 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
21184 : 372, 373, 374, 375, -1, 377, 378, 379, 380, 381,
21185 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
21186 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
21187 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
21188 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
21189 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
21190 : 432, 433, 434, -1, 436, 437, 438, 439, 440, 441,
21191 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
21192 : 452, 453, 454, -1, 456, 457, 458, 459, 460, 461,
21193 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
21194 : 472, -1, 474, 475, 476, 477, 478, 479, 480, -1,
21195 : 482, 483, 484, 485, 486, 487, 488, -1, -1, 491,
21196 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
21197 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
21198 : 512, 513, -1, -1, -1, -1, -1, -1, 3, -1,
21199 : 5, 6, -1, -1, -1, -1, 11, -1, -1, -1,
21200 : -1, -1, -1, -1, 536, 20, 21, 22, 23, 24,
21201 : 25, 26, 27, 28, -1, 30, 31, 32, -1, -1,
21202 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
21203 : 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
21204 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
21205 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
21206 : 75, 76, 77, -1, 79, -1, 81, 82, 83, 84,
21207 : 85, 86, 87, 88, 89, 90, 91, -1, 93, 94,
21208 : 95, 96, 97, 98, -1, 100, 101, 102, 103, -1,
21209 : -1, -1, 107, -1, -1, -1, 111, 112, 113, 114,
21210 : 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
21211 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
21212 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
21213 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
21214 : 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
21215 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
21216 : 175, 176, 177, -1, 179, 180, 181, 182, 183, -1,
21217 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
21218 : 195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
21219 : 205, 206, 207, 208, 209, 210, -1, 212, 213, 214,
21220 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
21221 : 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
21222 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
21223 : 245, 246, -1, -1, 249, 250, 251, 252, 253, -1,
21224 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
21225 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
21226 : 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
21227 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
21228 : 295, 296, 297, -1, 299, 300, 301, 302, 303, 304,
21229 : 305, -1, 307, 308, 309, 310, -1, 312, 313, 314,
21230 : -1, -1, 317, 318, 319, 320, 321, 322, 323, 324,
21231 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
21232 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
21233 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
21234 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
21235 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
21236 : 375, -1, 377, 378, 379, 380, 381, 382, 383, 384,
21237 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
21238 : 395, -1, 397, 398, 399, 400, 401, -1, 403, 404,
21239 : 405, 406, 407, 408, 409, 410, 411, 412, -1, 414,
21240 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
21241 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
21242 : -1, 436, 437, 438, 439, 440, 441, 442, 443, -1,
21243 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
21244 : 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
21245 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
21246 : 475, 476, 477, 478, 479, 480, -1, 482, 483, 484,
21247 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
21248 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
21249 : 505, 506, 507, 508, 509, 510, 511, 512, 513, -1,
21250 : -1, -1, -1, -1, -1, 3, -1, -1, -1, -1,
21251 : -1, -1, 527, 528, 529, -1, -1, -1, -1, -1,
21252 : -1, 536, 20, 21, 22, 23, 24, 25, 26, 27,
21253 : 28, -1, 30, 31, 32, 33, 34, -1, -1, -1,
21254 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
21255 : 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
21256 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
21257 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
21258 : -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
21259 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
21260 : 98, -1, 100, 101, 102, 103, -1, -1, -1, 107,
21261 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
21262 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
21263 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
21264 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
21265 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
21266 : 158, 159, 160, 161, 162, 163, -1, 165, -1, 167,
21267 : 168, 169, 170, 171, -1, 173, -1, 175, 176, 177,
21268 : -1, 179, 180, 181, 182, 183, -1, 185, 186, -1,
21269 : 188, 189, 190, -1, 192, 193, 194, 195, 196, 197,
21270 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
21271 : 208, 209, 210, -1, 212, 213, 214, 215, 216, 217,
21272 : 218, 219, 220, -1, 222, -1, 224, 225, 226, 227,
21273 : 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
21274 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
21275 : -1, 249, 250, 251, 252, 253, -1, 255, 256, 257,
21276 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
21277 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
21278 : 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
21279 : 288, 289, 290, 291, 292, -1, 294, 295, 296, 297,
21280 : -1, 299, 300, 301, 302, 303, 304, 305, -1, 307,
21281 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
21282 : 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
21283 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
21284 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
21285 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
21286 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
21287 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
21288 : 378, 379, 380, 381, 382, 383, 384, 385, 386, 387,
21289 : 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
21290 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
21291 : 408, 409, 410, 411, 412, -1, 414, 415, 416, 417,
21292 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
21293 : 428, 429, 430, -1, 432, 433, -1, 435, 436, 437,
21294 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
21295 : -1, -1, 450, 451, 452, 453, 454, -1, 456, 457,
21296 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
21297 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
21298 : 478, 479, 480, -1, 482, 483, 484, 485, 486, 487,
21299 : 488, -1, -1, 491, -1, 493, 494, 495, 496, 497,
21300 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
21301 : 508, 509, 510, 511, 512, 513, 514, -1, -1, 517,
21302 : -1, -1, 3, -1, -1, -1, -1, -1, -1, -1,
21303 : -1, -1, -1, -1, -1, -1, -1, -1, 536, 20,
21304 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
21305 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
21306 : 41, 42, -1, 44, 45, 46, 47, 48, 49, 50,
21307 : 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
21308 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
21309 : 71, -1, 73, 74, 75, 76, 77, -1, 79, -1,
21310 : 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
21311 : 91, -1, 93, 94, 95, 96, 97, 98, -1, 100,
21312 : 101, 102, 103, -1, -1, -1, 107, -1, -1, -1,
21313 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
21314 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
21315 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
21316 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
21317 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
21318 : 161, 162, 163, -1, 165, -1, 167, 168, 169, 170,
21319 : 171, -1, 173, -1, 175, 176, 177, -1, 179, 180,
21320 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
21321 : -1, 192, 193, 194, 195, 196, 197, 198, 199, 200,
21322 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
21323 : -1, 212, 213, 214, 215, 216, 217, 218, 219, 220,
21324 : -1, 222, -1, 224, 225, 226, 227, 228, 229, 230,
21325 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
21326 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
21327 : 251, 252, 253, -1, 255, 256, 257, -1, -1, 260,
21328 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
21329 : 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
21330 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
21331 : 291, 292, -1, 294, 295, 296, 297, -1, 299, 300,
21332 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
21333 : -1, 312, 313, 314, -1, -1, 317, 318, 319, 320,
21334 : 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
21335 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
21336 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
21337 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
21338 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
21339 : 371, 372, 373, 374, 375, -1, 377, 378, 379, 380,
21340 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
21341 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
21342 : 401, -1, 403, 404, 405, 406, 407, 408, 409, 410,
21343 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
21344 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
21345 : -1, 432, 433, -1, -1, 436, 437, 438, 439, 440,
21346 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
21347 : 451, 452, 453, 454, -1, 456, 457, 458, 459, 460,
21348 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
21349 : 471, -1, -1, 474, 475, 476, 477, 478, 479, 480,
21350 : -1, 482, 483, 484, 485, 486, 487, 488, -1, -1,
21351 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
21352 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
21353 : 511, 512, 513, -1, -1, -1, -1, -1, -1, 3,
21354 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
21355 : -1, -1, -1, -1, -1, 536, 20, 21, 22, 23,
21356 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
21357 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
21358 : 44, 45, 46, 47, -1, 49, 50, 51, 52, 53,
21359 : -1, 55, 56, -1, 58, 59, 60, 61, 62, 63,
21360 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
21361 : 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
21362 : 84, 85, 86, -1, 88, 89, 90, 91, -1, 93,
21363 : 94, 95, 96, 97, 98, -1, -1, 101, 102, 103,
21364 : -1, -1, -1, -1, -1, -1, -1, 111, 112, 113,
21365 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
21366 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
21367 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
21368 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
21369 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
21370 : -1, 165, -1, 167, 168, 169, 170, 171, -1, 173,
21371 : -1, 175, 176, -1, -1, -1, 180, 181, 182, 183,
21372 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
21373 : 194, 195, 196, -1, 198, 199, 200, 201, -1, 203,
21374 : 204, 205, 206, 207, 208, 209, 210, -1, 212, -1,
21375 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
21376 : 224, -1, -1, 227, -1, 229, 230, 231, 232, 233,
21377 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
21378 : 244, 245, 246, -1, -1, 249, 250, -1, 252, -1,
21379 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
21380 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
21381 : 274, 275, 276, 277, 278, 279, -1, 281, 282, 283,
21382 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
21383 : 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
21384 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
21385 : 314, -1, -1, 317, 318, 319, -1, 321, -1, 323,
21386 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
21387 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
21388 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
21389 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
21390 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
21391 : 374, 375, -1, 377, 378, -1, 380, 381, 382, 383,
21392 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
21393 : 394, 395, 396, 397, 398, 399, 400, 401, -1, 403,
21394 : 404, 405, 406, 407, -1, 409, 410, 411, 412, -1,
21395 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
21396 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
21397 : -1, 435, 436, -1, 438, 439, 440, 441, 442, 443,
21398 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
21399 : 454, -1, 456, 457, 458, 459, 460, 461, 462, 463,
21400 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
21401 : 474, 475, 476, 477, 478, 479, 480, -1, 482, -1,
21402 : 484, 485, 486, 487, 488, -1, -1, 491, -1, 493,
21403 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
21404 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
21405 : -1, -1, -1, 517, -1, -1, 3, -1, -1, -1,
21406 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
21407 : -1, -1, 536, 20, 21, 22, 23, 24, 25, 26,
21408 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
21409 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
21410 : 47, -1, 49, 50, 51, 52, 53, -1, 55, 56,
21411 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
21412 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
21413 : 77, -1, -1, -1, 81, 82, 83, 84, 85, 86,
21414 : -1, 88, 89, 90, 91, -1, 93, 94, 95, 96,
21415 : 97, 98, -1, -1, 101, 102, 103, -1, -1, -1,
21416 : 107, -1, -1, -1, 111, 112, 113, 114, 115, 116,
21417 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
21418 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
21419 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
21420 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
21421 : 157, 158, 159, 160, 161, 162, 163, -1, 165, -1,
21422 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
21423 : -1, -1, -1, 180, 181, 182, 183, -1, 185, 186,
21424 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
21425 : -1, 198, 199, 200, 201, -1, 203, 204, 205, 206,
21426 : 207, 208, 209, 210, -1, 212, -1, 214, 215, 216,
21427 : 217, 218, 219, 220, -1, 222, -1, 224, -1, -1,
21428 : 227, -1, 229, 230, 231, 232, 233, 234, 235, 236,
21429 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
21430 : -1, -1, 249, 250, -1, 252, -1, -1, 255, 256,
21431 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
21432 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
21433 : 277, 278, 279, -1, 281, 282, 283, 284, 285, 286,
21434 : 287, 288, 289, 290, 291, 292, -1, 294, 295, -1,
21435 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
21436 : 307, 308, 309, -1, 311, 312, 313, 314, -1, -1,
21437 : 317, 318, 319, -1, 321, -1, 323, 324, 325, 326,
21438 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
21439 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
21440 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
21441 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
21442 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
21443 : 377, 378, -1, 380, 381, 382, 383, 384, 385, 386,
21444 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
21445 : 397, 398, 399, 400, 401, -1, 403, 404, 405, 406,
21446 : 407, -1, 409, 410, 411, 412, -1, 414, 415, 416,
21447 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
21448 : 427, 428, 429, 430, -1, 432, 433, -1, 435, 436,
21449 : -1, 438, 439, 440, 441, 442, 443, -1, 445, 446,
21450 : 447, -1, -1, 450, 451, 452, 453, 454, -1, 456,
21451 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
21452 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
21453 : 477, 478, 479, 480, -1, 482, -1, 484, 485, 486,
21454 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
21455 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
21456 : 507, 508, 509, 510, 511, 512, 513, -1, -1, -1,
21457 : -1, -1, -1, 3, -1, -1, -1, -1, -1, -1,
21458 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 536,
21459 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
21460 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
21461 : 40, 41, 42, -1, 44, 45, 46, 47, -1, 49,
21462 : 50, 51, 52, 53, -1, 55, 56, -1, 58, 59,
21463 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
21464 : 70, 71, -1, 73, 74, 75, 76, 77, -1, -1,
21465 : -1, 81, 82, 83, 84, 85, 86, -1, 88, 89,
21466 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
21467 : -1, 101, 102, 103, -1, -1, -1, -1, -1, -1,
21468 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
21469 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
21470 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
21471 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
21472 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
21473 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
21474 : 170, 171, -1, 173, -1, 175, 176, -1, -1, -1,
21475 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
21476 : 190, -1, 192, 193, 194, 195, 196, -1, 198, 199,
21477 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
21478 : 210, -1, 212, -1, 214, 215, 216, 217, 218, 219,
21479 : 220, -1, 222, -1, 224, -1, -1, 227, -1, 229,
21480 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
21481 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
21482 : 250, -1, 252, -1, -1, 255, 256, 257, -1, -1,
21483 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
21484 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
21485 : -1, 281, 282, 283, 284, 285, 286, 287, 288, 289,
21486 : 290, 291, 292, -1, 294, 295, -1, 297, -1, 299,
21487 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
21488 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
21489 : -1, 321, -1, 323, 324, 325, 326, 327, 328, 329,
21490 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
21491 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
21492 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
21493 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
21494 : 370, 371, 372, 373, 374, 375, -1, 377, 378, -1,
21495 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
21496 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
21497 : 400, 401, -1, 403, 404, 405, 406, 407, -1, 409,
21498 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
21499 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
21500 : 430, -1, 432, 433, -1, -1, 436, -1, 438, 439,
21501 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
21502 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
21503 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
21504 : 470, 471, -1, -1, 474, 475, 476, 477, 478, 479,
21505 : 480, -1, 482, -1, 484, 485, 486, 487, 488, -1,
21506 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
21507 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
21508 : 510, 511, 512, 513, -1, -1, -1, -1, -1, -1,
21509 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
21510 : -1, -1, -1, -1, -1, -1, 536, 20, 21, 22,
21511 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
21512 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
21513 : -1, 44, 45, 46, 47, -1, 49, 50, 51, 52,
21514 : 53, -1, 55, 56, -1, 58, 59, 60, 61, 62,
21515 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
21516 : 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
21517 : 83, 84, 85, 86, -1, 88, 89, 90, 91, -1,
21518 : 93, 94, 95, 96, 97, 98, -1, -1, 101, 102,
21519 : 103, -1, -1, -1, -1, -1, -1, -1, 111, 112,
21520 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
21521 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
21522 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
21523 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
21524 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
21525 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
21526 : 173, -1, 175, 176, -1, -1, -1, 180, 181, 182,
21527 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
21528 : 193, 194, 195, 196, -1, 198, 199, 200, 201, -1,
21529 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
21530 : -1, 214, 215, 216, 217, 218, 219, 220, -1, 222,
21531 : -1, 224, -1, -1, 227, -1, 229, 230, 231, 232,
21532 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
21533 : 243, 244, 245, 246, -1, -1, 249, 250, -1, 252,
21534 : -1, -1, 255, 256, 257, -1, -1, 260, 261, 262,
21535 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
21536 : 273, 274, 275, 276, 277, 278, 279, -1, 281, 282,
21537 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
21538 : -1, 294, 295, -1, 297, -1, 299, 300, 301, 302,
21539 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
21540 : 313, 314, -1, -1, 317, 318, 319, -1, 321, -1,
21541 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
21542 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
21543 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
21544 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
21545 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
21546 : 373, 374, 375, -1, 377, 378, -1, 380, 381, 382,
21547 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
21548 : 393, 394, 395, -1, 397, 398, 399, 400, 401, -1,
21549 : 403, 404, 405, 406, 407, -1, 409, 410, 411, 412,
21550 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
21551 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
21552 : 433, -1, -1, 436, -1, 438, 439, 440, 441, 442,
21553 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
21554 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
21555 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
21556 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
21557 : -1, 484, 485, 486, 487, 488, -1, -1, 491, -1,
21558 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
21559 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
21560 : 513, -1, -1, -1, -1, -1, -1, 3, -1, -1,
21561 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
21562 : -1, -1, -1, 536, 20, 21, 22, 23, 24, 25,
21563 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
21564 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
21565 : 46, 47, -1, 49, 50, 51, 52, 53, -1, 55,
21566 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
21567 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
21568 : 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
21569 : 86, -1, 88, 89, 90, 91, -1, 93, 94, 95,
21570 : 96, 97, 98, -1, -1, 101, 102, 103, -1, -1,
21571 : -1, -1, -1, -1, -1, 111, 112, 113, 114, 115,
21572 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
21573 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
21574 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
21575 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
21576 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
21577 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
21578 : 176, -1, -1, -1, 180, 181, 182, 183, -1, 185,
21579 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
21580 : 196, -1, 198, 199, 200, 201, -1, 203, 204, 205,
21581 : 206, 207, 208, 209, 210, -1, 212, -1, 214, 215,
21582 : 216, 217, 218, 219, 220, -1, 222, -1, 224, -1,
21583 : -1, 227, -1, 229, 230, 231, 232, 233, 234, 235,
21584 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
21585 : 246, -1, -1, 249, 250, -1, 252, -1, -1, 255,
21586 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
21587 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
21588 : 276, 277, 278, 279, -1, 281, 282, 283, 284, 285,
21589 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
21590 : -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
21591 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
21592 : -1, 317, 318, 319, -1, 321, -1, 323, 324, 325,
21593 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
21594 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
21595 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
21596 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
21597 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
21598 : -1, 377, 378, -1, 380, 381, 382, 383, 384, 385,
21599 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
21600 : -1, 397, 398, 399, 400, 401, -1, 403, 404, 405,
21601 : 406, 407, -1, 409, 410, 411, 412, -1, 414, 415,
21602 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
21603 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
21604 : 436, -1, 438, 439, 440, 441, 442, 443, -1, 445,
21605 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
21606 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
21607 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
21608 : 476, 477, 478, 479, 480, -1, 482, -1, 484, 485,
21609 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
21610 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
21611 : 506, 507, 508, 509, 510, 511, 512, 513, -1, -1,
21612 : -1, -1, -1, -1, 3, -1, -1, -1, -1, -1,
21613 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
21614 : 536, 20, 21, 22, 23, 24, 25, 26, 27, 28,
21615 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
21616 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
21617 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
21618 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
21619 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
21620 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
21621 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
21622 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
21623 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
21624 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
21625 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
21626 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
21627 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
21628 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
21629 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
21630 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
21631 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
21632 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
21633 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
21634 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
21635 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
21636 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
21637 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
21638 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
21639 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
21640 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
21641 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
21642 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
21643 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
21644 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
21645 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
21646 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
21647 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
21648 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
21649 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
21650 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
21651 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
21652 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
21653 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
21654 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
21655 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
21656 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
21657 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
21658 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
21659 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
21660 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
21661 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
21662 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
21663 : 509, 510, 511, 512, 513, -1, -1, -1, -1, -1,
21664 : -1, -1, -1, -1, 3, -1, -1, -1, -1, -1,
21665 : -1, 10, -1, -1, 13, -1, -1, 536, 17, 18,
21666 : 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
21667 : 29, 30, 31, 32, 33, 34, 35, 36, -1, 38,
21668 : 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
21669 : 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
21670 : 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
21671 : -1, -1, 71, 72, 73, 74, 75, 76, 77, 78,
21672 : 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
21673 : 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
21674 : -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
21675 : 109, 110, 111, 112, 113, 114, -1, 116, 117, 118,
21676 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
21677 : 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
21678 : 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
21679 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
21680 : 159, 160, 161, 162, 163, 164, 165, -1, -1, 168,
21681 : 169, 170, 171, -1, 173, 174, 175, 176, 177, -1,
21682 : 179, 180, 181, 182, 183, -1, 185, 186, -1, 188,
21683 : 189, 190, -1, 192, 193, -1, 195, 196, 197, 198,
21684 : 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
21685 : 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
21686 : 219, 220, -1, 222, -1, 224, 225, 226, 227, 228,
21687 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
21688 : 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
21689 : 249, 250, 251, 252, 253, -1, 255, 256, 257, 258,
21690 : 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
21691 : 269, 270, 271, -1, 273, 274, -1, 276, 277, 278,
21692 : 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
21693 : 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
21694 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
21695 : 309, -1, 311, 312, 313, 314, 315, -1, 317, 318,
21696 : 319, 320, -1, -1, 323, 324, 325, 326, 327, 328,
21697 : 329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
21698 : 339, 340, 341, -1, 343, 344, 345, 346, 347, 348,
21699 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
21700 : 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
21701 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
21702 : 379, 380, 381, 382, 383, 384, 385, 386, 387, 388,
21703 : 389, 390, 391, 392, 393, -1, 395, 396, 397, 398,
21704 : 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
21705 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
21706 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
21707 : 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
21708 : 439, 440, 441, 442, 443, 444, 445, 446, 447, -1,
21709 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
21710 : 459, 460, 461, 462, 463, 464, -1, 466, 467, 468,
21711 : 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
21712 : 479, 480, 481, -1, 483, 484, 485, 486, 487, 488,
21713 : 489, -1, 491, -1, -1, -1, -1, 496, 497, 498,
21714 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
21715 : 509, 510, -1, 512, 513, -1, 515, -1, -1, -1,
21716 : -1, -1, -1, -1, -1, 524, 525, 526, 527, 528,
21717 : 529, 530, 531, 532, 3, -1, 5, 6, -1, -1,
21718 : -1, 10, 11, -1, -1, -1, -1, -1, 17, 18,
21719 : 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
21720 : 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
21721 : 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
21722 : 49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
21723 : 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
21724 : 69, 70, 71, 72, 73, 74, 75, 76, -1, 78,
21725 : 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
21726 : 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
21727 : 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
21728 : 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
21729 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
21730 : 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
21731 : 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
21732 : 149, 150, 151, 152, 153, 154, 155, 156, 157, -1,
21733 : 159, 160, 161, 162, -1, 164, 165, 166, 167, 168,
21734 : 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
21735 : 179, 180, 181, 182, 183, 184, 185, -1, 187, -1,
21736 : 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
21737 : 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
21738 : 209, 210, 211, 212, 213, -1, 215, 216, 217, 218,
21739 : 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
21740 : 229, -1, -1, -1, -1, -1, -1, -1, -1, -1,
21741 : -1, 240, 241, 242, 243, 244, 245, 246, 247, 248,
21742 : 249, -1, 251, 252, 253, 254, 255, 256, 257, 258,
21743 : 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
21744 : 269, -1, 271, 272, 273, 274, 275, 276, 277, 278,
21745 : 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
21746 : 289, 290, -1, 292, 293, 294, 295, 296, 297, 298,
21747 : -1, 300, 301, 302, 303, 304, 305, 306, 307, 308,
21748 : 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
21749 : -1, 320, 321, 322, -1, 324, 325, 326, 327, 328,
21750 : 329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
21751 : 339, -1, 341, -1, 343, 344, 345, 346, 347, 348,
21752 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
21753 : 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
21754 : 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
21755 : 379, 380, 381, 382, 383, 384, -1, 386, 387, 388,
21756 : 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
21757 : 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
21758 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
21759 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
21760 : -1, 430, 431, 432, 433, 434, 435, 436, 437, 438,
21761 : 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
21762 : 449, 450, 451, -1, 453, -1, 455, 456, 457, 458,
21763 : 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
21764 : 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
21765 : -1, 480, 481, 482, 483, 484, 485, 486, 487, 488,
21766 : 489, 490, 491, 492, 493, 494, 495, 496, 497, 498,
21767 : 499, -1, -1, -1, -1, -1, -1, -1, -1, -1,
21768 : -1, -1, 511, 512, 513, -1, -1, -1, -1, -1,
21769 : -1, -1, -1, -1, -1, 524, 525, 526, 527, 528,
21770 : 529, 530, 531, 532, 3, -1, 5, 6, -1, -1,
21771 : -1, 10, 11, -1, -1, -1, -1, -1, 17, 18,
21772 : 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
21773 : 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
21774 : 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
21775 : 49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
21776 : 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
21777 : 69, 70, 71, 72, 73, 74, 75, 76, -1, 78,
21778 : 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
21779 : 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
21780 : 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
21781 : 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
21782 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
21783 : 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
21784 : 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
21785 : 149, 150, 151, 152, 153, 154, 155, 156, 157, -1,
21786 : 159, 160, 161, 162, -1, 164, 165, 166, 167, 168,
21787 : 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
21788 : 179, 180, 181, 182, 183, 184, 185, -1, 187, -1,
21789 : 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
21790 : 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
21791 : 209, 210, 211, 212, 213, -1, 215, 216, 217, 218,
21792 : 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
21793 : 229, -1, -1, -1, -1, -1, -1, -1, -1, -1,
21794 : -1, 240, 241, 242, 243, 244, 245, 246, 247, 248,
21795 : 249, -1, 251, 252, 253, 254, 255, 256, 257, 258,
21796 : 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
21797 : 269, -1, 271, 272, 273, 274, 275, 276, 277, 278,
21798 : 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
21799 : 289, 290, -1, 292, 293, 294, 295, 296, 297, 298,
21800 : -1, 300, 301, 302, 303, 304, 305, 306, 307, 308,
21801 : 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
21802 : -1, 320, 321, 322, -1, 324, 325, 326, 327, 328,
21803 : 329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
21804 : 339, -1, 341, -1, 343, 344, 345, 346, 347, 348,
21805 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
21806 : 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
21807 : 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
21808 : 379, 380, 381, 382, 383, 384, -1, 386, 387, 388,
21809 : 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
21810 : 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
21811 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
21812 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
21813 : -1, 430, 431, 432, 433, 434, 435, 436, 437, 438,
21814 : 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
21815 : 449, 450, 451, -1, 453, -1, 455, 456, 457, 458,
21816 : 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
21817 : 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
21818 : -1, 480, 481, 482, 483, 484, 485, 486, 487, 488,
21819 : 489, 490, 491, 492, 493, 494, 495, 496, 497, 498,
21820 : 499, -1, -1, -1, -1, -1, -1, -1, -1, -1,
21821 : -1, -1, 511, 512, 513, -1, -1, -1, -1, -1,
21822 : -1, -1, -1, -1, -1, 524, 525, 526, 527, 528,
21823 : 529, 530, 531, 532, 3, -1, -1, -1, -1, -1,
21824 : -1, 10, -1, -1, -1, -1, -1, -1, 17, 18,
21825 : 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
21826 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
21827 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
21828 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
21829 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
21830 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
21831 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
21832 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
21833 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
21834 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
21835 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
21836 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
21837 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
21838 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
21839 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
21840 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
21841 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
21842 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
21843 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
21844 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
21845 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
21846 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
21847 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
21848 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
21849 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
21850 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
21851 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
21852 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
21853 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
21854 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
21855 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
21856 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
21857 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
21858 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
21859 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
21860 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
21861 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
21862 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
21863 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
21864 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
21865 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
21866 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
21867 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
21868 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
21869 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
21870 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
21871 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
21872 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
21873 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
21874 : 509, 510, 511, 512, 513, -1, -1, -1, -1, -1,
21875 : -1, -1, -1, -1, -1, 524, 525, 526, 527, 528,
21876 : 529, 530, 531, 532, 3, -1, -1, -1, -1, -1,
21877 : -1, 10, -1, -1, -1, -1, -1, -1, 17, 18,
21878 : 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
21879 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
21880 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
21881 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
21882 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
21883 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
21884 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
21885 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
21886 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
21887 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
21888 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
21889 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
21890 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
21891 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
21892 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
21893 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
21894 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
21895 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
21896 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
21897 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
21898 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
21899 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
21900 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
21901 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
21902 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
21903 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
21904 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
21905 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
21906 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
21907 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
21908 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
21909 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
21910 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
21911 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
21912 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
21913 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
21914 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
21915 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
21916 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
21917 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
21918 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
21919 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
21920 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
21921 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
21922 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
21923 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
21924 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
21925 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
21926 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
21927 : 509, 510, 511, 512, 513, -1, -1, -1, -1, -1,
21928 : -1, -1, -1, -1, -1, 524, 525, 526, 527, 528,
21929 : 529, 530, 531, 532, 3, -1, -1, -1, -1, -1,
21930 : -1, 10, -1, -1, -1, -1, -1, -1, 17, 18,
21931 : 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
21932 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
21933 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
21934 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
21935 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
21936 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
21937 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
21938 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
21939 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
21940 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
21941 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
21942 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
21943 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
21944 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
21945 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
21946 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
21947 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
21948 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
21949 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
21950 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
21951 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
21952 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
21953 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
21954 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
21955 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
21956 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
21957 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
21958 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
21959 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
21960 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
21961 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
21962 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
21963 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
21964 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
21965 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
21966 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
21967 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
21968 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
21969 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
21970 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
21971 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
21972 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
21973 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
21974 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
21975 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
21976 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
21977 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
21978 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
21979 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
21980 : 509, 510, 511, 512, 513, -1, -1, -1, -1, -1,
21981 : -1, -1, -1, -1, -1, 524, 525, 526, 527, 528,
21982 : 529, 530, 531, 532, 3, -1, -1, -1, -1, -1,
21983 : -1, 10, -1, -1, -1, -1, -1, -1, 17, 18,
21984 : 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
21985 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
21986 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
21987 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
21988 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
21989 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
21990 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
21991 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
21992 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
21993 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
21994 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
21995 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
21996 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
21997 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
21998 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
21999 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
22000 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
22001 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
22002 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
22003 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
22004 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
22005 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
22006 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
22007 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
22008 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
22009 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
22010 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
22011 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
22012 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
22013 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
22014 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
22015 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
22016 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
22017 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
22018 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
22019 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
22020 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
22021 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
22022 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
22023 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
22024 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
22025 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
22026 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
22027 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
22028 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
22029 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
22030 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
22031 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
22032 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
22033 : 509, 510, 511, 512, 513, -1, -1, -1, -1, -1,
22034 : -1, -1, -1, -1, -1, 524, 525, 526, 527, 528,
22035 : 529, 530, 531, 532, 3, -1, -1, -1, -1, -1,
22036 : -1, 10, -1, -1, -1, -1, -1, -1, 17, 18,
22037 : 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
22038 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
22039 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
22040 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
22041 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
22042 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
22043 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
22044 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
22045 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
22046 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
22047 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
22048 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
22049 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
22050 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
22051 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
22052 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
22053 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
22054 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
22055 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
22056 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
22057 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
22058 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
22059 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
22060 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
22061 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
22062 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
22063 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
22064 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
22065 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
22066 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
22067 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
22068 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
22069 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
22070 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
22071 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
22072 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
22073 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
22074 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
22075 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
22076 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
22077 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
22078 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
22079 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
22080 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
22081 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
22082 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
22083 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
22084 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
22085 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
22086 : 509, 510, 511, 512, 513, -1, -1, -1, -1, -1,
22087 : -1, -1, -1, -1, -1, 524, 525, 526, 527, 528,
22088 : 529, 530, 531, 532, 3, -1, -1, -1, -1, -1,
22089 : -1, 10, -1, -1, -1, -1, -1, -1, 17, 18,
22090 : 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
22091 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
22092 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
22093 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
22094 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
22095 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
22096 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
22097 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
22098 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
22099 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
22100 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
22101 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
22102 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
22103 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
22104 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
22105 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
22106 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
22107 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
22108 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
22109 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
22110 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
22111 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
22112 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
22113 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
22114 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
22115 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
22116 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
22117 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
22118 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
22119 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
22120 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
22121 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
22122 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
22123 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
22124 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
22125 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
22126 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
22127 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
22128 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
22129 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
22130 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
22131 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
22132 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
22133 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
22134 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
22135 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
22136 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
22137 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
22138 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
22139 : 509, 510, 511, 512, 513, -1, -1, -1, -1, -1,
22140 : -1, -1, -1, -1, -1, 524, 525, 526, 527, 528,
22141 : 529, 530, 531, 532, 3, -1, -1, -1, -1, -1,
22142 : -1, 10, -1, -1, -1, -1, -1, -1, 17, 18,
22143 : 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
22144 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
22145 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
22146 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
22147 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
22148 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
22149 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
22150 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
22151 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
22152 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
22153 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
22154 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
22155 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
22156 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
22157 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
22158 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
22159 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
22160 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
22161 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
22162 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
22163 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
22164 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
22165 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
22166 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
22167 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
22168 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
22169 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
22170 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
22171 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
22172 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
22173 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
22174 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
22175 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
22176 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
22177 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
22178 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
22179 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
22180 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
22181 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
22182 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
22183 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
22184 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
22185 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
22186 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
22187 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
22188 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
22189 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
22190 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
22191 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
22192 : 509, 510, 511, 512, 513, -1, -1, 3, -1, -1,
22193 : -1, -1, -1, -1, -1, 524, 525, 526, 527, 528,
22194 : 529, 530, 531, 532, 20, 21, 22, 23, 24, 25,
22195 : 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
22196 : 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
22197 : 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
22198 : 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
22199 : 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
22200 : 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
22201 : 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
22202 : 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
22203 : 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
22204 : 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
22205 : 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
22206 : 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
22207 : 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
22208 : 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
22209 : 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
22210 : 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
22211 : 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
22212 : 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
22213 : 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
22214 : 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
22215 : 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
22216 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
22217 : 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
22218 : 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
22219 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
22220 : 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
22221 : 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
22222 : 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
22223 : 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
22224 : 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
22225 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
22226 : 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
22227 : 346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
22228 : 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
22229 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
22230 : 376, 377, 378, 379, 380, 381, 382, 383, 384, 385,
22231 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
22232 : 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
22233 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
22234 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
22235 : 426, 427, 428, 429, 430, 431, 432, 433, 434, 435,
22236 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
22237 : 446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
22238 : 456, 457, 458, 459, 460, 461, 462, 463, 464, 465,
22239 : 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
22240 : 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
22241 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
22242 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
22243 : 506, 507, 508, 509, 510, 511, 512, 513, 3, -1,
22244 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
22245 : -1, -1, -1, 529, -1, 20, 21, 22, 23, 24,
22246 : 25, 26, 27, 28, -1, 30, 31, 32, -1, -1,
22247 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
22248 : 45, 46, 47, -1, 49, 50, 51, 52, 53, -1,
22249 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
22250 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
22251 : 75, 76, 77, -1, -1, -1, 81, 82, 83, 84,
22252 : 85, 86, -1, 88, 89, 90, 91, -1, 93, 94,
22253 : 95, 96, 97, 98, -1, -1, 101, 102, 103, -1,
22254 : -1, -1, -1, -1, -1, -1, 111, 112, 113, 114,
22255 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
22256 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
22257 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
22258 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
22259 : 155, 156, 157, 158, 159, 160, 161, 162, 163, -1,
22260 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
22261 : 175, 176, -1, -1, -1, 180, 181, 182, 183, -1,
22262 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
22263 : 195, 196, -1, 198, 199, 200, 201, -1, 203, 204,
22264 : 205, 206, 207, 208, 209, 210, -1, 212, -1, 214,
22265 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
22266 : -1, -1, 227, -1, 229, 230, 231, 232, 233, 234,
22267 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
22268 : 245, 246, -1, -1, 249, 250, -1, 252, -1, -1,
22269 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
22270 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
22271 : 275, 276, 277, 278, 279, -1, 281, 282, 283, 284,
22272 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
22273 : 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
22274 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
22275 : -1, -1, 317, 318, 319, -1, 321, -1, 323, 324,
22276 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
22277 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
22278 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
22279 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
22280 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
22281 : 375, -1, 377, 378, -1, 380, 381, 382, 383, 384,
22282 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
22283 : 395, -1, 397, 398, 399, 400, 401, -1, 403, 404,
22284 : 405, 406, 407, -1, 409, 410, 411, 412, -1, 414,
22285 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
22286 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
22287 : -1, 436, -1, 438, 439, 440, 441, 442, 443, -1,
22288 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
22289 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
22290 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
22291 : 475, 476, 477, 478, 479, 480, -1, 482, -1, 484,
22292 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
22293 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
22294 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 3,
22295 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
22296 : -1, -1, -1, -1, 529, -1, 20, 21, 22, 23,
22297 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
22298 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
22299 : 44, 45, 46, 47, -1, 49, 50, 51, 52, 53,
22300 : -1, 55, 56, -1, 58, 59, 60, 61, 62, 63,
22301 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
22302 : 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
22303 : 84, 85, 86, -1, 88, 89, 90, 91, -1, 93,
22304 : 94, 95, 96, 97, 98, -1, -1, 101, 102, 103,
22305 : -1, -1, -1, -1, -1, -1, -1, 111, 112, 113,
22306 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
22307 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
22308 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
22309 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
22310 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
22311 : -1, 165, -1, 167, 168, 169, 170, 171, -1, 173,
22312 : -1, 175, 176, -1, -1, -1, 180, 181, 182, 183,
22313 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
22314 : 194, 195, 196, -1, 198, 199, 200, 201, -1, 203,
22315 : 204, 205, 206, 207, 208, 209, 210, -1, 212, -1,
22316 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
22317 : 224, -1, -1, 227, -1, 229, 230, 231, 232, 233,
22318 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
22319 : 244, 245, 246, -1, -1, 249, 250, -1, 252, -1,
22320 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
22321 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
22322 : 274, 275, 276, 277, 278, 279, -1, 281, 282, 283,
22323 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
22324 : 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
22325 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
22326 : 314, -1, -1, 317, 318, 319, -1, 321, -1, 323,
22327 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
22328 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
22329 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
22330 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
22331 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
22332 : 374, 375, -1, 377, 378, -1, 380, 381, 382, 383,
22333 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
22334 : 394, 395, -1, 397, 398, 399, 400, 401, -1, 403,
22335 : 404, 405, 406, 407, -1, 409, 410, 411, 412, -1,
22336 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
22337 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
22338 : -1, -1, 436, -1, 438, 439, 440, 441, 442, 443,
22339 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
22340 : 454, -1, 456, 457, 458, 459, 460, 461, 462, 463,
22341 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
22342 : 474, 475, 476, 477, 478, 479, 480, -1, 482, -1,
22343 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
22344 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
22345 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
22346 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
22347 : -1, -1, -1, -1, -1, 529, -1, 20, 21, 22,
22348 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
22349 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
22350 : -1, 44, 45, 46, 47, -1, 49, 50, 51, 52,
22351 : 53, -1, 55, 56, -1, 58, 59, 60, 61, 62,
22352 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
22353 : 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
22354 : 83, 84, 85, 86, -1, 88, 89, 90, 91, -1,
22355 : 93, 94, 95, 96, 97, 98, -1, -1, 101, 102,
22356 : 103, -1, -1, -1, -1, -1, -1, -1, 111, 112,
22357 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
22358 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
22359 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
22360 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
22361 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
22362 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
22363 : 173, -1, 175, 176, -1, -1, -1, 180, 181, 182,
22364 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
22365 : 193, 194, 195, 196, -1, 198, 199, 200, 201, -1,
22366 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
22367 : -1, 214, 215, 216, 217, 218, 219, 220, -1, 222,
22368 : -1, 224, -1, -1, 227, -1, 229, 230, 231, 232,
22369 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
22370 : 243, 244, 245, 246, -1, -1, 249, 250, -1, 252,
22371 : -1, -1, 255, 256, 257, -1, -1, 260, 261, 262,
22372 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
22373 : 273, 274, 275, 276, 277, 278, 279, -1, 281, 282,
22374 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
22375 : -1, 294, 295, -1, 297, -1, 299, 300, 301, 302,
22376 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
22377 : 313, 314, -1, -1, 317, 318, 319, -1, 321, -1,
22378 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
22379 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
22380 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
22381 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
22382 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
22383 : 373, 374, 375, -1, 377, 378, -1, 380, 381, 382,
22384 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
22385 : 393, 394, 395, -1, 397, 398, 399, 400, 401, -1,
22386 : 403, 404, 405, 406, 407, -1, 409, 410, 411, 412,
22387 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
22388 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
22389 : 433, -1, -1, 436, -1, 438, 439, 440, 441, 442,
22390 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
22391 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
22392 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
22393 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
22394 : -1, 484, 485, 486, 487, 488, -1, -1, 491, -1,
22395 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
22396 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
22397 : 513, 3, -1, -1, -1, -1, -1, -1, -1, -1,
22398 : -1, -1, -1, -1, -1, -1, 529, -1, 20, 21,
22399 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
22400 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
22401 : 42, -1, 44, 45, 46, 47, -1, 49, 50, 51,
22402 : 52, 53, -1, 55, 56, -1, 58, 59, 60, 61,
22403 : 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
22404 : -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
22405 : 82, 83, 84, 85, 86, -1, 88, 89, 90, 91,
22406 : -1, 93, 94, 95, 96, 97, 98, -1, -1, 101,
22407 : 102, 103, -1, -1, -1, -1, -1, -1, -1, 111,
22408 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
22409 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
22410 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
22411 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
22412 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
22413 : 162, 163, -1, 165, -1, 167, 168, 169, 170, 171,
22414 : -1, 173, -1, 175, 176, -1, -1, -1, 180, 181,
22415 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
22416 : 192, 193, 194, 195, 196, -1, 198, 199, 200, 201,
22417 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
22418 : 212, -1, 214, 215, 216, 217, 218, 219, 220, -1,
22419 : 222, -1, 224, -1, -1, 227, -1, 229, 230, 231,
22420 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
22421 : 242, 243, 244, 245, 246, -1, -1, 249, 250, -1,
22422 : 252, -1, -1, 255, 256, 257, -1, -1, 260, 261,
22423 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
22424 : 272, 273, 274, 275, 276, 277, 278, 279, -1, 281,
22425 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
22426 : 292, -1, 294, 295, -1, 297, -1, 299, 300, 301,
22427 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
22428 : 312, 313, 314, -1, -1, 317, 318, 319, -1, 321,
22429 : -1, 323, 324, 325, 326, 327, 328, 329, 330, 331,
22430 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
22431 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
22432 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
22433 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
22434 : 372, 373, 374, 375, -1, 377, 378, -1, 380, 381,
22435 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
22436 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
22437 : -1, 403, 404, 405, 406, 407, -1, 409, 410, 411,
22438 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
22439 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
22440 : 432, 433, -1, -1, 436, -1, 438, 439, 440, 441,
22441 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
22442 : 452, 453, 454, -1, 456, 457, 458, 459, 460, 461,
22443 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
22444 : -1, -1, 474, 475, 476, 477, 478, 479, 480, -1,
22445 : 482, -1, 484, 485, 486, 487, 488, -1, -1, 491,
22446 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
22447 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
22448 : 512, 513, 3, -1, -1, -1, -1, -1, -1, -1,
22449 : -1, -1, -1, -1, -1, -1, -1, 529, -1, 20,
22450 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
22451 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
22452 : 41, 42, -1, 44, 45, 46, 47, 48, 49, 50,
22453 : 51, -1, 53, 54, 55, 56, -1, 58, 59, 60,
22454 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
22455 : 71, -1, 73, 74, 75, 76, -1, -1, 79, -1,
22456 : 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
22457 : 91, -1, 93, 94, 95, 96, 97, 98, -1, 100,
22458 : 101, 102, 103, -1, -1, -1, 107, -1, -1, -1,
22459 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
22460 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
22461 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
22462 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
22463 : 151, 152, -1, 154, 155, 156, 157, -1, 159, 160,
22464 : 161, 162, -1, -1, 165, -1, 167, 168, 169, 170,
22465 : 171, -1, 173, -1, 175, 176, 177, -1, 179, 180,
22466 : 181, 182, 183, -1, 185, -1, -1, -1, 189, 190,
22467 : -1, 192, 193, 194, 195, 196, 197, 198, 199, 200,
22468 : 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
22469 : -1, 212, 213, 214, 215, 216, 217, 218, 219, 220,
22470 : -1, 222, -1, 224, 225, 226, 227, 228, 229, -1,
22471 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 240,
22472 : 241, 242, 243, 244, 245, 246, -1, -1, 249, -1,
22473 : 251, 252, 253, -1, 255, 256, 257, -1, -1, 260,
22474 : 261, 262, 263, 264, 265, 266, 267, 268, 269, -1,
22475 : 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
22476 : 281, 282, 283, 284, 285, 286, 287, 288, 289, -1,
22477 : -1, 292, -1, 294, 295, 296, 297, -1, -1, 300,
22478 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
22479 : -1, 312, 313, 314, -1, 316, 317, 318, 319, 320,
22480 : 321, 322, -1, 324, 325, 326, 327, 328, 329, 330,
22481 : 331, 332, 333, 334, 335, -1, 337, 338, 339, -1,
22482 : 341, -1, 343, 344, 345, -1, 347, 348, 349, 350,
22483 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
22484 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
22485 : 371, 372, 373, 374, 375, -1, 377, 378, 379, 380,
22486 : 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
22487 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
22488 : 401, -1, 403, 404, 405, 406, 407, 408, 409, 410,
22489 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
22490 : 421, 422, 423, 424, 425, 426, 427, 428, -1, 430,
22491 : -1, 432, 433, -1, -1, 436, 437, 438, 439, 440,
22492 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
22493 : 451, -1, 453, -1, -1, 456, 457, 458, 459, 460,
22494 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
22495 : 471, -1, -1, 474, 475, 476, 477, 478, -1, 480,
22496 : 481, 482, 483, 484, 485, 486, 487, 488, -1, -1,
22497 : 491, -1, -1, 494, 495, 496, 497, 498, 499, -1,
22498 : -1, -1, 3, -1, -1, -1, -1, -1, -1, -1,
22499 : 511, 512, 513, -1, -1, -1, -1, -1, -1, 20,
22500 : 21, 22, 23, 24, 25, 26, 27, 28, 529, 30,
22501 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
22502 : 41, 42, -1, 44, 45, 46, 47, 48, 49, 50,
22503 : 51, -1, 53, 54, 55, 56, -1, 58, 59, 60,
22504 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
22505 : 71, -1, 73, 74, 75, 76, -1, -1, 79, -1,
22506 : 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
22507 : 91, -1, 93, 94, 95, 96, 97, 98, -1, 100,
22508 : 101, 102, 103, -1, -1, -1, 107, -1, -1, -1,
22509 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
22510 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
22511 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
22512 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
22513 : 151, 152, -1, 154, 155, 156, 157, -1, 159, 160,
22514 : 161, 162, -1, -1, 165, -1, 167, 168, 169, 170,
22515 : 171, -1, 173, -1, 175, 176, 177, -1, 179, 180,
22516 : 181, 182, 183, -1, 185, -1, -1, -1, 189, 190,
22517 : -1, 192, 193, 194, 195, 196, 197, 198, 199, 200,
22518 : 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
22519 : -1, 212, 213, 214, 215, 216, 217, 218, 219, 220,
22520 : -1, 222, -1, 224, 225, 226, 227, 228, 229, -1,
22521 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 240,
22522 : 241, 242, 243, 244, 245, 246, -1, -1, 249, -1,
22523 : 251, 252, 253, -1, 255, 256, 257, -1, -1, 260,
22524 : 261, 262, 263, 264, 265, 266, 267, 268, 269, -1,
22525 : 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
22526 : 281, 282, 283, 284, 285, 286, 287, 288, 289, -1,
22527 : -1, 292, -1, 294, 295, 296, 297, -1, -1, 300,
22528 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
22529 : -1, 312, 313, 314, -1, 316, 317, 318, 319, 320,
22530 : 321, 322, -1, 324, 325, 326, 327, 328, 329, 330,
22531 : 331, 332, 333, 334, 335, -1, 337, 338, 339, -1,
22532 : 341, -1, 343, 344, 345, -1, 347, 348, 349, 350,
22533 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
22534 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
22535 : 371, 372, 373, 374, 375, -1, 377, 378, 379, 380,
22536 : 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
22537 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
22538 : 401, -1, 403, 404, 405, 406, 407, 408, 409, 410,
22539 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
22540 : 421, 422, 423, 424, 425, 426, 427, 428, -1, 430,
22541 : -1, 432, 433, -1, -1, 436, 437, 438, 439, 440,
22542 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
22543 : 451, -1, 453, -1, -1, 456, 457, 458, 459, 460,
22544 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
22545 : 471, -1, -1, 474, 475, 476, 477, 478, -1, 480,
22546 : 481, 482, 483, 484, 485, 486, 487, 488, -1, -1,
22547 : 491, -1, -1, 494, 495, 496, 497, 498, 499, -1,
22548 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
22549 : 511, 512, 513, 3, -1, 5, 6, -1, -1, -1,
22550 : -1, 11, -1, -1, -1, -1, -1, -1, 529, -1,
22551 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
22552 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
22553 : 40, 41, 42, -1, 44, 45, 46, 47, 48, 49,
22554 : 50, 51, 52, 53, 54, 55, 56, -1, 58, 59,
22555 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
22556 : 70, 71, -1, 73, 74, 75, 76, 77, -1, 79,
22557 : -1, 81, 82, 83, 84, 85, 86, 87, 88, 89,
22558 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
22559 : 100, 101, 102, 103, -1, -1, -1, 107, -1, -1,
22560 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
22561 : 120, 121, -1, 123, 124, 125, 126, 127, 128, 129,
22562 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
22563 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
22564 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
22565 : 160, 161, 162, 163, 164, 165, -1, 167, 168, 169,
22566 : 170, 171, -1, 173, -1, 175, 176, 177, -1, 179,
22567 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
22568 : 190, -1, 192, 193, 194, 195, 196, 197, 198, 199,
22569 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
22570 : 210, -1, 212, 213, 214, 215, 216, 217, 218, 219,
22571 : 220, -1, 222, -1, 224, 225, 226, 227, 228, 229,
22572 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
22573 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
22574 : 250, 251, 252, 253, -1, 255, 256, 257, -1, -1,
22575 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
22576 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
22577 : 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
22578 : 290, 291, 292, -1, 294, 295, 296, 297, -1, 299,
22579 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
22580 : 310, -1, 312, 313, 314, -1, -1, 317, 318, 319,
22581 : 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
22582 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
22583 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
22584 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
22585 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
22586 : 370, 371, 372, 373, 374, 375, -1, 377, 378, 379,
22587 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
22588 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
22589 : 400, 401, -1, 403, 404, 405, 406, 407, 408, 409,
22590 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
22591 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
22592 : 430, -1, 432, 433, -1, -1, 436, 437, 438, 439,
22593 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
22594 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
22595 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
22596 : 470, 471, -1, -1, 474, 475, 476, 477, 478, 479,
22597 : 480, -1, 482, 483, 484, 485, 486, 487, 488, -1,
22598 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
22599 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
22600 : 510, 511, 512, 513, 3, -1, 5, 6, -1, -1,
22601 : -1, -1, 11, -1, -1, -1, -1, 527, 528, -1,
22602 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
22603 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
22604 : -1, 40, 41, 42, -1, 44, 45, 46, 47, 48,
22605 : 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
22606 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
22607 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
22608 : 79, -1, 81, 82, 83, 84, 85, 86, 87, 88,
22609 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
22610 : -1, 100, 101, 102, 103, -1, -1, -1, 107, -1,
22611 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
22612 : 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
22613 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
22614 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
22615 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
22616 : 159, 160, 161, 162, 163, 164, 165, -1, 167, 168,
22617 : 169, 170, 171, -1, 173, -1, 175, 176, 177, -1,
22618 : 179, 180, 181, 182, 183, -1, 185, 186, -1, 188,
22619 : 189, 190, -1, 192, 193, 194, 195, 196, 197, 198,
22620 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
22621 : 209, 210, -1, 212, 213, 214, 215, 216, 217, 218,
22622 : 219, 220, -1, 222, -1, 224, 225, 226, 227, 228,
22623 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
22624 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
22625 : 249, 250, 251, 252, 253, -1, 255, 256, 257, -1,
22626 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
22627 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
22628 : 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
22629 : 289, 290, 291, 292, -1, 294, 295, 296, 297, -1,
22630 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
22631 : 309, 310, -1, 312, 313, 314, -1, -1, 317, 318,
22632 : 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
22633 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
22634 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
22635 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
22636 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
22637 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
22638 : 379, 380, 381, 382, 383, 384, 385, 386, 387, 388,
22639 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
22640 : 399, 400, 401, -1, 403, 404, 405, 406, 407, 408,
22641 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
22642 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
22643 : 429, 430, -1, 432, 433, -1, -1, 436, 437, 438,
22644 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
22645 : -1, 450, 451, 452, 453, 454, 455, 456, 457, 458,
22646 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
22647 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
22648 : 479, 480, -1, 482, 483, 484, 485, 486, 487, 488,
22649 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
22650 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
22651 : 509, 510, 511, 512, 513, 3, -1, 5, 6, -1,
22652 : -1, -1, -1, 11, -1, -1, -1, -1, 527, 528,
22653 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
22654 : 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
22655 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
22656 : 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
22657 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
22658 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
22659 : -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
22660 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
22661 : 98, -1, 100, 101, 102, 103, -1, -1, -1, 107,
22662 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
22663 : 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
22664 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
22665 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
22666 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
22667 : 158, 159, 160, 161, 162, 163, 164, 165, -1, 167,
22668 : 168, 169, 170, 171, -1, 173, -1, 175, 176, 177,
22669 : -1, 179, 180, 181, 182, 183, -1, 185, 186, -1,
22670 : 188, 189, 190, -1, 192, 193, 194, 195, 196, 197,
22671 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
22672 : 208, 209, 210, -1, 212, 213, 214, 215, 216, 217,
22673 : 218, 219, 220, -1, 222, -1, 224, 225, 226, 227,
22674 : 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
22675 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
22676 : -1, 249, 250, 251, 252, 253, -1, 255, 256, 257,
22677 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
22678 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
22679 : 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
22680 : 288, 289, 290, 291, 292, -1, 294, 295, 296, 297,
22681 : -1, 299, 300, 301, 302, 303, 304, 305, -1, 307,
22682 : 308, 309, 310, -1, 312, 313, 314, -1, -1, 317,
22683 : 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
22684 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
22685 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
22686 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
22687 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
22688 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
22689 : 378, 379, 380, 381, 382, 383, 384, 385, 386, 387,
22690 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
22691 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
22692 : 408, 409, 410, 411, 412, -1, 414, 415, 416, 417,
22693 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
22694 : 428, 429, 430, -1, 432, 433, -1, -1, 436, 437,
22695 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
22696 : -1, -1, 450, 451, 452, 453, 454, 455, 456, 457,
22697 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
22698 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
22699 : 478, 479, 480, -1, 482, 483, 484, 485, 486, 487,
22700 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
22701 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
22702 : 508, 509, 510, 511, 512, 513, 3, -1, 5, 6,
22703 : -1, -1, -1, -1, 11, -1, -1, -1, -1, 527,
22704 : 528, -1, -1, 20, 21, 22, 23, 24, 25, 26,
22705 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
22706 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
22707 : 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
22708 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
22709 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
22710 : 77, -1, 79, -1, 81, 82, 83, 84, 85, 86,
22711 : 87, 88, 89, 90, 91, -1, 93, 94, 95, 96,
22712 : 97, 98, -1, 100, 101, 102, 103, -1, -1, -1,
22713 : 107, -1, -1, -1, 111, 112, 113, 114, 115, 116,
22714 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
22715 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
22716 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
22717 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
22718 : 157, 158, 159, 160, 161, 162, 163, 164, 165, -1,
22719 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
22720 : 177, -1, 179, 180, 181, 182, 183, -1, 185, 186,
22721 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
22722 : 197, 198, 199, 200, 201, -1, 203, 204, 205, 206,
22723 : 207, 208, 209, 210, -1, 212, 213, 214, 215, 216,
22724 : 217, 218, 219, 220, -1, 222, -1, 224, 225, 226,
22725 : 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
22726 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
22727 : -1, -1, 249, 250, 251, 252, 253, -1, 255, 256,
22728 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
22729 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
22730 : 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
22731 : 287, 288, 289, 290, 291, 292, -1, 294, 295, 296,
22732 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
22733 : 307, 308, 309, 310, -1, 312, 313, 314, -1, -1,
22734 : 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
22735 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
22736 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
22737 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
22738 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
22739 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
22740 : 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
22741 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
22742 : 397, 398, 399, 400, 401, -1, 403, 404, 405, 406,
22743 : 407, 408, 409, 410, 411, 412, -1, 414, 415, 416,
22744 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
22745 : 427, 428, 429, 430, -1, 432, 433, -1, -1, 436,
22746 : 437, 438, 439, 440, 441, 442, 443, -1, 445, 446,
22747 : 447, -1, -1, 450, 451, 452, 453, 454, 455, 456,
22748 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
22749 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
22750 : 477, 478, 479, 480, -1, 482, 483, 484, 485, 486,
22751 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
22752 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
22753 : 507, 508, 509, 510, 511, 512, 513, 3, -1, -1,
22754 : -1, -1, -1, -1, -1, 11, -1, -1, -1, -1,
22755 : 527, 528, -1, -1, 20, 21, 22, 23, 24, 25,
22756 : 26, 27, 28, 29, 30, 31, 32, -1, -1, -1,
22757 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
22758 : 46, 47, -1, 49, 50, 51, 52, 53, -1, 55,
22759 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
22760 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
22761 : 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
22762 : 86, -1, 88, 89, 90, 91, -1, 93, 94, 95,
22763 : 96, 97, 98, -1, -1, 101, 102, 103, -1, -1,
22764 : -1, -1, -1, -1, -1, 111, 112, 113, 114, 115,
22765 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
22766 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
22767 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
22768 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
22769 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
22770 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
22771 : 176, -1, 178, -1, 180, 181, 182, 183, -1, 185,
22772 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
22773 : 196, -1, 198, 199, 200, 201, 202, 203, 204, 205,
22774 : 206, 207, 208, 209, 210, -1, 212, -1, 214, 215,
22775 : 216, 217, 218, 219, 220, -1, 222, -1, 224, -1,
22776 : -1, 227, -1, 229, 230, 231, 232, 233, 234, 235,
22777 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
22778 : 246, -1, -1, 249, 250, -1, 252, -1, -1, 255,
22779 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
22780 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
22781 : 276, 277, 278, 279, -1, 281, 282, 283, 284, 285,
22782 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
22783 : -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
22784 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
22785 : -1, 317, 318, 319, -1, 321, -1, 323, 324, 325,
22786 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
22787 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
22788 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
22789 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
22790 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
22791 : -1, 377, 378, -1, 380, 381, 382, 383, 384, 385,
22792 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
22793 : -1, 397, 398, 399, 400, 401, -1, 403, 404, 405,
22794 : 406, 407, -1, 409, 410, 411, 412, -1, 414, 415,
22795 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
22796 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
22797 : 436, -1, 438, 439, 440, 441, 442, 443, -1, 445,
22798 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
22799 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
22800 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
22801 : 476, 477, 478, 479, 480, -1, 482, -1, 484, 485,
22802 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
22803 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
22804 : 506, 507, 508, 509, 510, 511, 512, 513, 3, -1,
22805 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
22806 : -1, 527, 528, -1, -1, 20, 21, 22, 23, 24,
22807 : 25, 26, 27, 28, -1, 30, 31, 32, 33, 34,
22808 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
22809 : 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
22810 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
22811 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
22812 : 75, 76, 77, -1, 79, -1, 81, 82, 83, 84,
22813 : 85, 86, 87, 88, 89, 90, 91, -1, 93, 94,
22814 : 95, 96, 97, 98, -1, 100, 101, 102, 103, -1,
22815 : -1, -1, 107, -1, -1, -1, 111, 112, 113, 114,
22816 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
22817 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
22818 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
22819 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
22820 : 155, 156, 157, 158, 159, 160, 161, 162, 163, -1,
22821 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
22822 : 175, 176, 177, -1, 179, 180, 181, 182, 183, -1,
22823 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
22824 : 195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
22825 : 205, 206, 207, 208, 209, 210, -1, 212, 213, 214,
22826 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
22827 : 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
22828 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
22829 : 245, 246, -1, -1, 249, 250, 251, 252, 253, -1,
22830 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
22831 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
22832 : 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
22833 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
22834 : 295, 296, 297, -1, 299, 300, 301, 302, 303, 304,
22835 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
22836 : -1, -1, 317, 318, 319, 320, 321, 322, 323, 324,
22837 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
22838 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
22839 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
22840 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
22841 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
22842 : 375, -1, 377, 378, 379, 380, 381, 382, 383, 384,
22843 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
22844 : 395, -1, 397, 398, 399, 400, 401, -1, 403, 404,
22845 : 405, 406, 407, 408, 409, 410, 411, 412, -1, 414,
22846 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
22847 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
22848 : -1, 436, 437, 438, 439, 440, 441, 442, 443, -1,
22849 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
22850 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
22851 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
22852 : 475, 476, 477, 478, 479, 480, -1, 482, 483, 484,
22853 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
22854 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
22855 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
22856 : 3, -1, 5, 6, -1, -1, -1, -1, 11, -1,
22857 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
22858 : 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
22859 : 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
22860 : 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
22861 : 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
22862 : 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
22863 : 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
22864 : 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
22865 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
22866 : 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
22867 : 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
22868 : 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
22869 : 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
22870 : 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
22871 : 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
22872 : 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
22873 : 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
22874 : 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
22875 : 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
22876 : 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
22877 : 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
22878 : 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
22879 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
22880 : 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
22881 : 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
22882 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
22883 : 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
22884 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
22885 : 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
22886 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
22887 : 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
22888 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
22889 : 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
22890 : 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
22891 : 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
22892 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
22893 : 373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
22894 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
22895 : 393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
22896 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
22897 : 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
22898 : 423, 424, 425, 426, 427, 428, 429, 430, 431, 432,
22899 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
22900 : 443, 444, 445, 446, 447, 448, 449, 450, 451, 452,
22901 : 453, 454, 455, 456, 457, 458, 459, 460, 461, 462,
22902 : 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
22903 : 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
22904 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
22905 : 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
22906 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
22907 : 513, 3, -1, -1, -1, -1, -1, -1, -1, -1,
22908 : -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
22909 : 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
22910 : 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
22911 : 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
22912 : 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
22913 : 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
22914 : 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
22915 : 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
22916 : 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
22917 : 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
22918 : 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
22919 : 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
22920 : 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
22921 : 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
22922 : 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
22923 : 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
22924 : 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
22925 : 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
22926 : 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
22927 : 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
22928 : 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
22929 : 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
22930 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
22931 : 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
22932 : 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
22933 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
22934 : 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
22935 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
22936 : 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
22937 : 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
22938 : 312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
22939 : 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
22940 : 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
22941 : 342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
22942 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
22943 : 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
22944 : 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
22945 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
22946 : 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
22947 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
22948 : 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
22949 : 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
22950 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
22951 : 442, 443, 444, 445, 446, 447, 448, 449, 450, 451,
22952 : 452, 453, 454, 455, 456, 457, 458, 459, 460, 461,
22953 : 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
22954 : 472, 473, 474, 475, 476, 477, 478, 479, 480, 481,
22955 : 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
22956 : 492, 493, 494, 495, 496, 497, 498, 499, 500, 501,
22957 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
22958 : 512, 513, 3, -1, -1, -1, -1, -1, -1, -1,
22959 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
22960 : 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
22961 : 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
22962 : 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
22963 : 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
22964 : 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
22965 : 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
22966 : 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
22967 : 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
22968 : 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
22969 : 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
22970 : 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
22971 : 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
22972 : 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
22973 : 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
22974 : 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
22975 : 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
22976 : 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
22977 : 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
22978 : 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
22979 : 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
22980 : 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
22981 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
22982 : 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
22983 : 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
22984 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
22985 : 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
22986 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
22987 : 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
22988 : 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
22989 : 311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
22990 : 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
22991 : 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
22992 : 341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
22993 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
22994 : 361, 362, 363, 364, 365, 366, 367, 368, 369, 370,
22995 : 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
22996 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
22997 : 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
22998 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
22999 : 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
23000 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
23001 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
23002 : 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
23003 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 460,
23004 : 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
23005 : 471, 472, 473, 474, 475, 476, 477, 478, 479, 480,
23006 : 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
23007 : 491, 492, 493, 494, 495, 496, 497, 498, 499, 500,
23008 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
23009 : 511, 512, 513, 3, -1, -1, -1, -1, -1, -1,
23010 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23011 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
23012 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
23013 : 40, 41, 42, -1, 44, 45, 46, 47, 48, 49,
23014 : 50, 51, 52, 53, 54, 55, 56, -1, 58, 59,
23015 : 60, 61, 62, 63, 64, -1, 66, 67, 68, 69,
23016 : 70, 71, -1, 73, 74, 75, 76, 77, -1, 79,
23017 : -1, 81, 82, 83, 84, 85, 86, 87, 88, 89,
23018 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
23019 : 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
23020 : 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
23021 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
23022 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
23023 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
23024 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
23025 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
23026 : 170, 171, -1, 173, -1, 175, 176, 177, -1, 179,
23027 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
23028 : 190, -1, 192, 193, 194, 195, 196, 197, 198, 199,
23029 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
23030 : 210, -1, 212, 213, 214, 215, 216, 217, 218, 219,
23031 : 220, -1, 222, -1, 224, 225, 226, 227, 228, 229,
23032 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
23033 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
23034 : 250, 251, 252, 253, -1, 255, 256, 257, 258, 259,
23035 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
23036 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
23037 : 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
23038 : 290, 291, 292, -1, 294, 295, 296, 297, -1, 299,
23039 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
23040 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
23041 : 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
23042 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
23043 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
23044 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
23045 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
23046 : 370, 371, 372, 373, 374, 375, -1, 377, 378, 379,
23047 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
23048 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
23049 : 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
23050 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
23051 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
23052 : 430, -1, 432, 433, 434, -1, 436, 437, 438, 439,
23053 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
23054 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
23055 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
23056 : 470, 471, 472, -1, 474, 475, 476, 477, 478, 479,
23057 : 480, -1, 482, 483, 484, 485, 486, 487, 488, -1,
23058 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
23059 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
23060 : 510, 511, 512, 513, 3, -1, 5, 6, -1, 8,
23061 : 9, -1, 11, -1, -1, -1, -1, -1, -1, -1,
23062 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
23063 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
23064 : -1, 40, 41, 42, -1, 44, 45, 46, 47, 48,
23065 : 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
23066 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
23067 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
23068 : 79, -1, 81, 82, 83, 84, 85, 86, 87, 88,
23069 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
23070 : -1, 100, 101, 102, 103, -1, -1, -1, 107, -1,
23071 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
23072 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
23073 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
23074 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
23075 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
23076 : 159, 160, 161, 162, 163, 164, 165, -1, 167, 168,
23077 : 169, 170, 171, -1, 173, -1, 175, 176, 177, -1,
23078 : 179, 180, 181, 182, 183, -1, 185, 186, -1, 188,
23079 : 189, 190, -1, 192, 193, 194, 195, 196, 197, 198,
23080 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
23081 : 209, 210, -1, 212, 213, 214, 215, 216, 217, 218,
23082 : 219, 220, -1, 222, -1, 224, 225, 226, 227, 228,
23083 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
23084 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
23085 : 249, 250, 251, 252, 253, -1, 255, 256, 257, -1,
23086 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
23087 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
23088 : 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
23089 : 289, 290, 291, 292, -1, 294, 295, 296, 297, 298,
23090 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
23091 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
23092 : 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
23093 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
23094 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
23095 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
23096 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
23097 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
23098 : 379, 380, 381, 382, 383, 384, 385, 386, 387, 388,
23099 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
23100 : 399, 400, 401, -1, 403, 404, 405, 406, 407, 408,
23101 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
23102 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
23103 : 429, 430, -1, 432, 433, -1, -1, 436, 437, 438,
23104 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
23105 : -1, 450, 451, 452, 453, 454, 455, 456, 457, 458,
23106 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
23107 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
23108 : 479, 480, -1, 482, 483, 484, 485, 486, 487, 488,
23109 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
23110 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
23111 : 509, 510, 511, 512, 513, 3, -1, -1, -1, -1,
23112 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23113 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
23114 : 28, 29, 30, 31, 32, -1, -1, -1, -1, -1,
23115 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
23116 : 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
23117 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
23118 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
23119 : -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
23120 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
23121 : 98, -1, 100, 101, 102, 103, -1, -1, 106, 107,
23122 : -1, -1, 110, 111, 112, 113, 114, 115, 116, 117,
23123 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
23124 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
23125 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
23126 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
23127 : 158, 159, 160, 161, 162, 163, -1, 165, -1, 167,
23128 : 168, 169, 170, 171, -1, 173, -1, 175, 176, 177,
23129 : -1, 179, 180, 181, 182, 183, -1, 185, 186, -1,
23130 : 188, 189, 190, -1, 192, 193, 194, 195, 196, 197,
23131 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
23132 : 208, 209, 210, -1, 212, 213, 214, 215, 216, 217,
23133 : 218, 219, 220, -1, 222, -1, 224, 225, 226, 227,
23134 : 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
23135 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
23136 : -1, 249, 250, 251, 252, 253, -1, 255, 256, 257,
23137 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
23138 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
23139 : 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
23140 : 288, 289, 290, 291, 292, -1, 294, 295, 296, 297,
23141 : -1, 299, 300, 301, 302, 303, 304, 305, -1, 307,
23142 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
23143 : 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
23144 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
23145 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
23146 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
23147 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
23148 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
23149 : 378, 379, 380, 381, 382, 383, 384, 385, 386, 387,
23150 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
23151 : 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
23152 : 408, 409, 410, 411, 412, -1, 414, 415, 416, 417,
23153 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
23154 : 428, 429, 430, -1, 432, 433, -1, -1, 436, 437,
23155 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
23156 : -1, -1, 450, 451, 452, 453, 454, -1, 456, 457,
23157 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
23158 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
23159 : 478, 479, 480, -1, 482, 483, 484, 485, 486, 487,
23160 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
23161 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
23162 : 508, 509, 510, 511, 512, 513, 3, -1, -1, -1,
23163 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23164 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
23165 : 27, 28, 29, 30, 31, 32, -1, -1, -1, -1,
23166 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
23167 : 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
23168 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
23169 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
23170 : 77, -1, 79, -1, 81, 82, 83, 84, 85, 86,
23171 : 87, 88, 89, 90, 91, -1, 93, 94, 95, 96,
23172 : 97, 98, -1, 100, 101, 102, 103, -1, -1, 106,
23173 : 107, -1, -1, 110, 111, 112, 113, 114, 115, 116,
23174 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
23175 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
23176 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
23177 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
23178 : 157, 158, 159, 160, 161, 162, 163, -1, 165, -1,
23179 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
23180 : 177, -1, 179, 180, 181, 182, 183, -1, 185, 186,
23181 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
23182 : 197, 198, 199, 200, 201, -1, 203, 204, 205, 206,
23183 : 207, 208, 209, 210, -1, 212, 213, 214, 215, 216,
23184 : 217, 218, 219, 220, -1, 222, -1, 224, 225, 226,
23185 : 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
23186 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
23187 : -1, -1, 249, 250, 251, 252, 253, -1, 255, 256,
23188 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
23189 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
23190 : 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
23191 : 287, 288, 289, 290, 291, 292, -1, 294, 295, 296,
23192 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
23193 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
23194 : 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
23195 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
23196 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
23197 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
23198 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
23199 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
23200 : 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
23201 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
23202 : 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
23203 : 407, 408, 409, 410, 411, 412, -1, 414, 415, 416,
23204 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
23205 : 427, 428, 429, 430, -1, 432, 433, -1, -1, 436,
23206 : 437, 438, 439, 440, 441, 442, 443, -1, 445, 446,
23207 : 447, -1, -1, 450, 451, 452, 453, 454, -1, 456,
23208 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
23209 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
23210 : 477, 478, 479, 480, -1, 482, 483, 484, 485, 486,
23211 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
23212 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
23213 : 507, 508, 509, 510, 511, 512, 513, 3, -1, -1,
23214 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23215 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
23216 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
23217 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
23218 : 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
23219 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
23220 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
23221 : 76, 77, -1, 79, -1, 81, 82, 83, 84, 85,
23222 : 86, 87, 88, 89, 90, 91, -1, 93, 94, 95,
23223 : 96, 97, 98, -1, 100, 101, 102, 103, -1, -1,
23224 : 106, 107, -1, -1, 110, 111, 112, 113, 114, 115,
23225 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
23226 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
23227 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
23228 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
23229 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
23230 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
23231 : 176, 177, -1, 179, 180, 181, 182, 183, -1, 185,
23232 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
23233 : 196, 197, 198, 199, 200, 201, -1, 203, 204, 205,
23234 : 206, 207, 208, 209, 210, -1, 212, 213, 214, 215,
23235 : 216, 217, 218, 219, 220, -1, 222, -1, 224, 225,
23236 : 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
23237 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
23238 : 246, -1, -1, 249, 250, 251, 252, 253, -1, 255,
23239 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
23240 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
23241 : 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
23242 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
23243 : 296, 297, -1, 299, 300, 301, 302, 303, 304, 305,
23244 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
23245 : -1, 317, 318, 319, 320, 321, 322, 323, 324, 325,
23246 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
23247 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
23248 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
23249 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
23250 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
23251 : -1, 377, 378, 379, 380, 381, 382, 383, 384, 385,
23252 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
23253 : -1, 397, 398, 399, 400, 401, 402, 403, 404, 405,
23254 : 406, 407, 408, 409, 410, 411, 412, -1, 414, 415,
23255 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
23256 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
23257 : 436, 437, 438, 439, 440, 441, 442, 443, -1, 445,
23258 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
23259 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
23260 : -1, 467, 468, 469, 470, 471, 472, -1, 474, 475,
23261 : 476, 477, 478, 479, 480, -1, 482, 483, 484, 485,
23262 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
23263 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
23264 : 506, 507, 508, 509, 510, 511, 512, 513, 3, -1,
23265 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23266 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
23267 : 25, 26, 27, 28, -1, 30, 31, 32, -1, -1,
23268 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
23269 : 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
23270 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
23271 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
23272 : 75, 76, 77, -1, 79, -1, 81, 82, 83, 84,
23273 : 85, 86, 87, 88, 89, 90, 91, -1, 93, 94,
23274 : 95, 96, 97, 98, -1, 100, 101, 102, 103, -1,
23275 : -1, 106, 107, -1, -1, 110, 111, 112, 113, 114,
23276 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
23277 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
23278 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
23279 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
23280 : 155, 156, 157, 158, 159, 160, 161, 162, 163, -1,
23281 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
23282 : 175, 176, 177, -1, 179, 180, 181, 182, 183, -1,
23283 : 185, 186, 187, 188, 189, 190, -1, 192, 193, 194,
23284 : 195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
23285 : 205, 206, 207, 208, 209, 210, -1, 212, 213, 214,
23286 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
23287 : 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
23288 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
23289 : 245, 246, -1, -1, 249, 250, 251, 252, 253, -1,
23290 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
23291 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
23292 : 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
23293 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
23294 : 295, 296, 297, -1, 299, 300, 301, 302, 303, 304,
23295 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
23296 : -1, -1, 317, 318, 319, 320, 321, 322, 323, 324,
23297 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
23298 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
23299 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
23300 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
23301 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
23302 : 375, -1, 377, 378, 379, 380, 381, 382, 383, 384,
23303 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
23304 : 395, -1, 397, 398, 399, 400, 401, 402, 403, 404,
23305 : 405, 406, 407, 408, 409, 410, 411, 412, -1, 414,
23306 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
23307 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
23308 : -1, 436, 437, 438, 439, 440, 441, 442, 443, -1,
23309 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
23310 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
23311 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
23312 : 475, 476, 477, 478, 479, 480, -1, 482, 483, 484,
23313 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
23314 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
23315 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 3,
23316 : -1, -1, 6, -1, -1, -1, -1, -1, -1, -1,
23317 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
23318 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
23319 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
23320 : 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
23321 : 54, 55, 56, -1, 58, 59, 60, 61, 62, 63,
23322 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
23323 : 74, 75, 76, 77, -1, 79, -1, 81, 82, 83,
23324 : 84, 85, 86, 87, 88, 89, 90, 91, -1, 93,
23325 : 94, 95, 96, 97, 98, -1, 100, 101, 102, 103,
23326 : -1, -1, -1, 107, -1, -1, -1, 111, 112, 113,
23327 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
23328 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
23329 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
23330 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
23331 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
23332 : 164, 165, -1, 167, 168, 169, 170, 171, -1, 173,
23333 : -1, 175, 176, 177, -1, 179, 180, 181, 182, 183,
23334 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
23335 : 194, 195, 196, 197, 198, 199, 200, 201, -1, 203,
23336 : 204, 205, 206, 207, 208, 209, 210, -1, 212, 213,
23337 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
23338 : 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
23339 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
23340 : 244, 245, 246, -1, -1, 249, 250, 251, 252, 253,
23341 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
23342 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
23343 : 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
23344 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
23345 : 294, 295, 296, 297, -1, 299, 300, 301, 302, 303,
23346 : 304, 305, -1, 307, 308, 309, 310, -1, 312, 313,
23347 : 314, -1, -1, 317, 318, 319, 320, 321, 322, 323,
23348 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
23349 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
23350 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
23351 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
23352 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
23353 : 374, 375, -1, 377, 378, 379, 380, 381, 382, 383,
23354 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
23355 : 394, 395, -1, 397, 398, 399, 400, 401, -1, 403,
23356 : 404, 405, 406, 407, 408, 409, 410, 411, 412, -1,
23357 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
23358 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
23359 : -1, -1, 436, 437, 438, 439, 440, 441, 442, 443,
23360 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
23361 : 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
23362 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
23363 : 474, 475, 476, 477, 478, 479, 480, -1, 482, 483,
23364 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
23365 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
23366 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
23367 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23368 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
23369 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
23370 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
23371 : -1, 44, 45, 46, 47, 48, 49, 50, 51, 52,
23372 : 53, 54, 55, 56, -1, 58, 59, 60, 61, 62,
23373 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
23374 : 73, 74, 75, 76, 77, -1, 79, -1, 81, 82,
23375 : 83, 84, 85, 86, 87, 88, 89, 90, 91, -1,
23376 : 93, 94, 95, 96, 97, 98, -1, 100, 101, 102,
23377 : 103, -1, -1, 106, 107, -1, -1, 110, 111, 112,
23378 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
23379 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
23380 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
23381 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
23382 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
23383 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
23384 : 173, -1, 175, 176, 177, -1, 179, 180, 181, 182,
23385 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
23386 : 193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
23387 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
23388 : 213, 214, 215, 216, 217, 218, 219, 220, -1, 222,
23389 : -1, 224, 225, 226, 227, 228, 229, 230, 231, 232,
23390 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
23391 : 243, 244, 245, 246, -1, -1, 249, 250, 251, 252,
23392 : 253, -1, 255, 256, 257, -1, -1, 260, 261, 262,
23393 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
23394 : 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
23395 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
23396 : -1, 294, 295, 296, 297, -1, 299, 300, 301, 302,
23397 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
23398 : 313, 314, -1, -1, 317, 318, 319, 320, 321, 322,
23399 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
23400 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
23401 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
23402 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
23403 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
23404 : 373, 374, 375, -1, 377, 378, 379, 380, 381, 382,
23405 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
23406 : 393, 394, 395, -1, 397, 398, 399, 400, 401, 402,
23407 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
23408 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
23409 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
23410 : 433, -1, -1, 436, 437, 438, 439, 440, 441, 442,
23411 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
23412 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
23413 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
23414 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
23415 : 483, 484, 485, 486, 487, 488, -1, -1, 491, -1,
23416 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
23417 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
23418 : 513, 3, -1, -1, -1, -1, -1, -1, -1, -1,
23419 : -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
23420 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
23421 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
23422 : 42, -1, 44, 45, 46, 47, 48, 49, 50, 51,
23423 : 52, 53, 54, 55, 56, -1, 58, 59, 60, 61,
23424 : 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
23425 : -1, 73, 74, 75, 76, 77, -1, 79, -1, 81,
23426 : 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
23427 : -1, 93, 94, 95, 96, 97, 98, -1, 100, 101,
23428 : 102, 103, -1, -1, 106, 107, -1, -1, 110, 111,
23429 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
23430 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
23431 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
23432 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
23433 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
23434 : 162, 163, -1, 165, -1, 167, 168, 169, 170, 171,
23435 : -1, 173, -1, 175, 176, 177, -1, 179, 180, 181,
23436 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
23437 : 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
23438 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
23439 : 212, 213, 214, 215, 216, 217, 218, 219, 220, -1,
23440 : 222, -1, 224, 225, 226, 227, 228, 229, 230, 231,
23441 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
23442 : 242, 243, 244, 245, 246, -1, -1, 249, 250, 251,
23443 : 252, 253, -1, 255, 256, 257, -1, -1, 260, 261,
23444 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
23445 : 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
23446 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
23447 : 292, -1, 294, 295, 296, 297, -1, 299, 300, 301,
23448 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
23449 : 312, 313, 314, -1, -1, 317, 318, 319, 320, 321,
23450 : 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
23451 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
23452 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
23453 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
23454 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
23455 : 372, 373, 374, 375, -1, 377, 378, 379, 380, 381,
23456 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
23457 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
23458 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
23459 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
23460 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
23461 : 432, 433, -1, -1, 436, 437, 438, 439, 440, 441,
23462 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
23463 : 452, 453, 454, -1, 456, 457, 458, 459, 460, 461,
23464 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
23465 : -1, -1, 474, 475, 476, 477, 478, 479, 480, -1,
23466 : 482, 483, 484, 485, 486, 487, 488, -1, -1, 491,
23467 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
23468 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
23469 : 512, 513, 3, -1, -1, -1, -1, -1, -1, -1,
23470 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
23471 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
23472 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
23473 : 41, 42, -1, 44, 45, 46, 47, 48, 49, 50,
23474 : 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
23475 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
23476 : 71, -1, 73, 74, 75, 76, 77, -1, 79, -1,
23477 : 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
23478 : 91, -1, 93, 94, 95, 96, 97, 98, -1, 100,
23479 : 101, 102, 103, -1, -1, 106, 107, -1, -1, 110,
23480 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
23481 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
23482 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
23483 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
23484 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
23485 : 161, 162, 163, -1, 165, -1, 167, 168, 169, 170,
23486 : 171, -1, 173, -1, 175, 176, 177, -1, 179, 180,
23487 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
23488 : -1, 192, 193, 194, 195, 196, 197, 198, 199, 200,
23489 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
23490 : -1, 212, 213, 214, 215, 216, 217, 218, 219, 220,
23491 : -1, 222, -1, 224, 225, 226, 227, 228, 229, 230,
23492 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
23493 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
23494 : 251, 252, 253, -1, 255, 256, 257, -1, -1, 260,
23495 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
23496 : 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
23497 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
23498 : 291, 292, -1, 294, 295, 296, 297, -1, 299, 300,
23499 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
23500 : -1, 312, 313, 314, -1, -1, 317, 318, 319, 320,
23501 : 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
23502 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
23503 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
23504 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
23505 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
23506 : 371, 372, 373, 374, 375, -1, 377, 378, 379, 380,
23507 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
23508 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
23509 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
23510 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
23511 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
23512 : -1, 432, 433, -1, -1, 436, 437, 438, 439, 440,
23513 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
23514 : 451, 452, 453, 454, -1, 456, 457, 458, 459, 460,
23515 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
23516 : 471, -1, -1, 474, 475, 476, 477, 478, 479, 480,
23517 : -1, 482, 483, 484, 485, 486, 487, 488, -1, -1,
23518 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
23519 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
23520 : 511, 512, 513, 3, -1, -1, -1, -1, -1, -1,
23521 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23522 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
23523 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
23524 : 40, 41, 42, -1, 44, 45, 46, 47, 48, 49,
23525 : 50, 51, 52, 53, 54, 55, 56, -1, 58, 59,
23526 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
23527 : 70, 71, -1, 73, 74, 75, 76, 77, -1, 79,
23528 : -1, 81, 82, 83, 84, 85, 86, 87, 88, 89,
23529 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
23530 : 100, 101, 102, 103, -1, -1, 106, 107, -1, -1,
23531 : 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
23532 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
23533 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
23534 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
23535 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
23536 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
23537 : 170, 171, -1, 173, -1, 175, 176, 177, -1, 179,
23538 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
23539 : 190, -1, 192, 193, 194, 195, 196, 197, 198, 199,
23540 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
23541 : 210, -1, 212, 213, 214, 215, 216, 217, 218, 219,
23542 : 220, -1, 222, -1, 224, 225, 226, 227, 228, 229,
23543 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
23544 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
23545 : 250, 251, 252, 253, -1, 255, 256, 257, -1, -1,
23546 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
23547 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
23548 : 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
23549 : 290, 291, 292, -1, 294, 295, 296, 297, -1, 299,
23550 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
23551 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
23552 : 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
23553 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
23554 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
23555 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
23556 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
23557 : 370, 371, 372, 373, 374, 375, -1, 377, 378, 379,
23558 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
23559 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
23560 : 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
23561 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
23562 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
23563 : 430, -1, 432, 433, -1, -1, 436, 437, 438, 439,
23564 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
23565 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
23566 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
23567 : 470, 471, -1, -1, 474, 475, 476, 477, 478, 479,
23568 : 480, -1, 482, 483, 484, 485, 486, 487, 488, -1,
23569 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
23570 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
23571 : 510, 511, 512, 513, 3, -1, -1, -1, -1, -1,
23572 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23573 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
23574 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
23575 : -1, 40, 41, 42, -1, 44, 45, 46, 47, 48,
23576 : 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
23577 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
23578 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
23579 : 79, -1, 81, 82, 83, 84, 85, 86, 87, 88,
23580 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
23581 : -1, 100, 101, 102, 103, -1, -1, 106, 107, -1,
23582 : -1, 110, 111, 112, 113, 114, 115, 116, 117, 118,
23583 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
23584 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
23585 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
23586 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
23587 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
23588 : 169, 170, 171, -1, 173, -1, 175, 176, 177, -1,
23589 : 179, 180, 181, 182, 183, -1, 185, 186, -1, 188,
23590 : 189, 190, -1, 192, 193, 194, 195, 196, 197, 198,
23591 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
23592 : 209, 210, -1, 212, 213, 214, 215, 216, 217, 218,
23593 : 219, 220, -1, 222, -1, 224, 225, 226, 227, 228,
23594 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
23595 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
23596 : 249, 250, 251, 252, 253, -1, 255, 256, 257, -1,
23597 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
23598 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
23599 : 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
23600 : 289, 290, 291, 292, -1, 294, 295, 296, 297, -1,
23601 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
23602 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
23603 : 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
23604 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
23605 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
23606 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
23607 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
23608 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
23609 : 379, 380, 381, 382, 383, 384, 385, 386, 387, 388,
23610 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
23611 : 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
23612 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
23613 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
23614 : 429, 430, -1, 432, 433, -1, -1, 436, 437, 438,
23615 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
23616 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
23617 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
23618 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
23619 : 479, 480, -1, 482, 483, 484, 485, 486, 487, 488,
23620 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
23621 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
23622 : 509, 510, 511, 512, 513, 3, -1, -1, 6, -1,
23623 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23624 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
23625 : 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
23626 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
23627 : 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
23628 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
23629 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
23630 : -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
23631 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
23632 : 98, -1, 100, 101, 102, 103, -1, -1, -1, 107,
23633 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
23634 : 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
23635 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
23636 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
23637 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
23638 : 158, 159, 160, 161, 162, 163, -1, 165, -1, 167,
23639 : 168, 169, 170, 171, -1, 173, -1, 175, 176, 177,
23640 : -1, 179, 180, 181, 182, 183, -1, 185, 186, -1,
23641 : 188, 189, 190, -1, 192, 193, 194, 195, 196, 197,
23642 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
23643 : 208, 209, 210, -1, 212, 213, 214, 215, 216, 217,
23644 : 218, 219, 220, -1, 222, -1, 224, 225, 226, 227,
23645 : 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
23646 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
23647 : -1, 249, 250, 251, 252, 253, -1, 255, 256, 257,
23648 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
23649 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
23650 : 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
23651 : 288, 289, 290, 291, 292, -1, 294, 295, 296, 297,
23652 : -1, 299, 300, 301, 302, 303, 304, 305, -1, 307,
23653 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
23654 : 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
23655 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
23656 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
23657 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
23658 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
23659 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
23660 : 378, 379, 380, 381, 382, 383, 384, 385, 386, 387,
23661 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
23662 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
23663 : 408, 409, 410, 411, 412, -1, 414, 415, 416, 417,
23664 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
23665 : 428, 429, 430, -1, 432, 433, -1, -1, 436, 437,
23666 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
23667 : -1, -1, 450, 451, 452, 453, 454, -1, 456, 457,
23668 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
23669 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
23670 : 478, 479, 480, -1, 482, 483, 484, 485, 486, 487,
23671 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
23672 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
23673 : 508, 509, 510, 511, 512, 513, 3, -1, -1, 6,
23674 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23675 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
23676 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
23677 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
23678 : 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
23679 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
23680 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
23681 : 77, -1, 79, -1, 81, 82, 83, 84, 85, 86,
23682 : 87, 88, 89, 90, 91, -1, 93, 94, 95, 96,
23683 : 97, 98, -1, 100, 101, 102, 103, -1, -1, -1,
23684 : 107, -1, -1, -1, 111, 112, 113, 114, 115, 116,
23685 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
23686 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
23687 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
23688 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
23689 : 157, 158, 159, 160, 161, 162, 163, -1, 165, -1,
23690 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
23691 : 177, -1, 179, 180, 181, 182, 183, -1, 185, 186,
23692 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
23693 : 197, 198, 199, 200, 201, -1, 203, 204, 205, 206,
23694 : 207, 208, 209, 210, -1, 212, 213, 214, 215, 216,
23695 : 217, 218, 219, 220, -1, 222, -1, 224, 225, 226,
23696 : 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
23697 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
23698 : -1, -1, 249, 250, 251, 252, 253, -1, 255, 256,
23699 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
23700 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
23701 : 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
23702 : 287, 288, 289, 290, 291, 292, -1, 294, 295, 296,
23703 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
23704 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
23705 : 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
23706 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
23707 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
23708 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
23709 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
23710 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
23711 : 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
23712 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
23713 : 397, 398, 399, 400, 401, -1, 403, 404, 405, 406,
23714 : 407, 408, 409, 410, 411, 412, -1, 414, 415, 416,
23715 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
23716 : 427, 428, 429, 430, -1, 432, 433, -1, -1, 436,
23717 : 437, 438, 439, 440, 441, 442, 443, -1, 445, 446,
23718 : 447, -1, -1, 450, 451, 452, 453, 454, -1, 456,
23719 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
23720 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
23721 : 477, 478, 479, 480, -1, 482, 483, 484, 485, 486,
23722 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
23723 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
23724 : 507, 508, 509, 510, 511, 512, 513, 3, -1, -1,
23725 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23726 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
23727 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
23728 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
23729 : 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
23730 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
23731 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
23732 : 76, 77, -1, 79, -1, 81, 82, 83, 84, 85,
23733 : 86, 87, 88, 89, 90, 91, -1, 93, 94, 95,
23734 : 96, 97, 98, -1, 100, 101, 102, 103, -1, -1,
23735 : -1, 107, -1, -1, -1, 111, 112, 113, 114, 115,
23736 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
23737 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
23738 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
23739 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
23740 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
23741 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
23742 : 176, 177, -1, 179, 180, 181, 182, 183, -1, 185,
23743 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
23744 : 196, 197, 198, 199, 200, 201, -1, 203, 204, 205,
23745 : 206, 207, 208, 209, 210, -1, 212, 213, 214, 215,
23746 : 216, 217, 218, 219, 220, -1, 222, -1, 224, 225,
23747 : 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
23748 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
23749 : 246, -1, -1, 249, 250, 251, 252, 253, -1, 255,
23750 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
23751 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
23752 : 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
23753 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
23754 : 296, 297, -1, 299, 300, 301, 302, 303, 304, 305,
23755 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
23756 : -1, 317, 318, 319, 320, 321, 322, 323, 324, 325,
23757 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
23758 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
23759 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
23760 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
23761 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
23762 : -1, 377, 378, 379, 380, 381, 382, 383, 384, 385,
23763 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
23764 : -1, 397, 398, 399, 400, 401, -1, 403, 404, 405,
23765 : 406, 407, 408, 409, 410, 411, 412, -1, 414, 415,
23766 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
23767 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
23768 : 436, 437, 438, 439, 440, 441, 442, 443, -1, 445,
23769 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
23770 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
23771 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
23772 : 476, 477, 478, 479, 480, -1, 482, 483, 484, 485,
23773 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
23774 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
23775 : 506, 507, 508, 509, 510, 511, 512, 513, 3, -1,
23776 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23777 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
23778 : 25, 26, 27, 28, -1, 30, 31, 32, -1, -1,
23779 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
23780 : 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
23781 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
23782 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
23783 : 75, 76, 77, -1, 79, -1, 81, 82, 83, 84,
23784 : 85, 86, 87, 88, 89, 90, 91, -1, 93, 94,
23785 : 95, 96, 97, 98, -1, 100, 101, 102, 103, -1,
23786 : -1, -1, 107, -1, -1, -1, 111, 112, 113, 114,
23787 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
23788 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
23789 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
23790 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
23791 : 155, 156, 157, 158, 159, 160, 161, 162, 163, -1,
23792 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
23793 : 175, 176, 177, -1, 179, 180, 181, 182, 183, -1,
23794 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
23795 : 195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
23796 : 205, 206, 207, 208, 209, 210, -1, 212, 213, 214,
23797 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
23798 : 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
23799 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
23800 : 245, 246, -1, -1, 249, 250, 251, 252, 253, -1,
23801 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
23802 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
23803 : 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
23804 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
23805 : 295, 296, 297, -1, 299, 300, 301, 302, 303, 304,
23806 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
23807 : -1, -1, 317, 318, 319, 320, 321, 322, 323, 324,
23808 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
23809 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
23810 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
23811 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
23812 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
23813 : 375, -1, 377, 378, 379, 380, 381, 382, 383, 384,
23814 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
23815 : 395, -1, 397, 398, 399, 400, 401, -1, 403, 404,
23816 : 405, 406, 407, 408, 409, 410, 411, 412, -1, 414,
23817 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
23818 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
23819 : -1, 436, 437, 438, 439, 440, 441, 442, 443, -1,
23820 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
23821 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
23822 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
23823 : 475, 476, 477, 478, 479, 480, -1, 482, 483, 484,
23824 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
23825 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
23826 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 3,
23827 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23828 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
23829 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
23830 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
23831 : 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
23832 : 54, 55, 56, -1, 58, 59, 60, 61, 62, 63,
23833 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
23834 : 74, 75, 76, 77, -1, 79, -1, 81, 82, 83,
23835 : 84, 85, 86, 87, 88, 89, 90, 91, -1, 93,
23836 : 94, 95, 96, 97, 98, -1, 100, 101, 102, 103,
23837 : -1, -1, -1, 107, -1, -1, -1, 111, 112, 113,
23838 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
23839 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
23840 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
23841 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
23842 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
23843 : -1, 165, -1, 167, 168, 169, 170, 171, -1, 173,
23844 : -1, 175, 176, 177, -1, 179, 180, 181, 182, 183,
23845 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
23846 : 194, 195, 196, 197, 198, 199, 200, 201, -1, 203,
23847 : 204, 205, 206, 207, 208, 209, 210, -1, 212, 213,
23848 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
23849 : 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
23850 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
23851 : 244, 245, 246, -1, -1, 249, 250, 251, 252, 253,
23852 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
23853 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
23854 : 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
23855 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
23856 : 294, 295, 296, 297, -1, 299, 300, 301, 302, 303,
23857 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
23858 : 314, -1, -1, 317, 318, 319, 320, 321, 322, 323,
23859 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
23860 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
23861 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
23862 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
23863 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
23864 : 374, 375, -1, 377, 378, 379, 380, 381, 382, 383,
23865 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
23866 : 394, 395, -1, 397, 398, 399, 400, 401, -1, 403,
23867 : 404, 405, 406, 407, 408, 409, 410, 411, 412, -1,
23868 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
23869 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
23870 : -1, -1, 436, 437, 438, 439, 440, 441, 442, 443,
23871 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
23872 : 454, -1, 456, 457, 458, 459, 460, 461, 462, 463,
23873 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
23874 : 474, 475, 476, 477, 478, 479, 480, -1, 482, 483,
23875 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
23876 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
23877 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
23878 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23879 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
23880 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
23881 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
23882 : -1, 44, 45, 46, 47, 48, 49, 50, 51, 52,
23883 : 53, 54, 55, 56, -1, 58, 59, 60, 61, 62,
23884 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
23885 : 73, 74, 75, 76, 77, -1, 79, -1, 81, 82,
23886 : 83, 84, 85, 86, 87, 88, 89, 90, 91, -1,
23887 : 93, 94, 95, 96, 97, 98, -1, 100, 101, 102,
23888 : 103, -1, -1, -1, 107, -1, -1, -1, 111, 112,
23889 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
23890 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
23891 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
23892 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
23893 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
23894 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
23895 : 173, -1, 175, 176, 177, -1, 179, 180, 181, 182,
23896 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
23897 : 193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
23898 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
23899 : 213, 214, 215, 216, 217, 218, 219, 220, -1, 222,
23900 : -1, 224, 225, 226, 227, 228, 229, 230, 231, 232,
23901 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
23902 : 243, 244, 245, 246, -1, -1, 249, 250, 251, 252,
23903 : 253, -1, 255, 256, 257, -1, -1, 260, 261, 262,
23904 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
23905 : 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
23906 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
23907 : -1, 294, 295, 296, 297, -1, 299, 300, 301, 302,
23908 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
23909 : 313, 314, -1, -1, 317, 318, 319, 320, 321, 322,
23910 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
23911 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
23912 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
23913 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
23914 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
23915 : 373, 374, 375, -1, 377, 378, 379, 380, 381, 382,
23916 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
23917 : 393, 394, 395, -1, 397, 398, 399, 400, 401, -1,
23918 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
23919 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
23920 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
23921 : 433, -1, -1, 436, 437, 438, 439, 440, 441, 442,
23922 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
23923 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
23924 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
23925 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
23926 : 483, 484, 485, 486, 487, 488, -1, -1, 491, -1,
23927 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
23928 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
23929 : 513, 3, -1, -1, -1, -1, -1, -1, -1, -1,
23930 : -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
23931 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
23932 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
23933 : 42, -1, 44, 45, 46, 47, 48, 49, 50, 51,
23934 : 52, 53, 54, 55, 56, -1, 58, 59, 60, 61,
23935 : 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
23936 : -1, 73, 74, 75, 76, 77, -1, 79, -1, 81,
23937 : 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
23938 : -1, 93, 94, 95, 96, 97, 98, -1, 100, 101,
23939 : 102, 103, -1, -1, -1, 107, -1, -1, -1, 111,
23940 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
23941 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
23942 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
23943 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
23944 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
23945 : 162, 163, -1, 165, -1, 167, 168, 169, 170, 171,
23946 : -1, 173, -1, 175, 176, 177, -1, 179, 180, 181,
23947 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
23948 : 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
23949 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
23950 : 212, 213, 214, 215, 216, 217, 218, 219, 220, -1,
23951 : 222, -1, 224, 225, 226, 227, 228, 229, 230, 231,
23952 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
23953 : 242, 243, 244, 245, 246, -1, -1, 249, 250, 251,
23954 : 252, 253, -1, 255, 256, 257, -1, -1, 260, 261,
23955 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
23956 : 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
23957 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
23958 : 292, -1, 294, 295, 296, 297, -1, 299, 300, 301,
23959 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
23960 : 312, 313, 314, -1, -1, 317, 318, 319, 320, 321,
23961 : 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
23962 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
23963 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
23964 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
23965 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
23966 : 372, 373, 374, 375, -1, 377, 378, 379, 380, 381,
23967 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
23968 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
23969 : -1, 403, 404, 405, 406, 407, 408, 409, 410, 411,
23970 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
23971 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
23972 : 432, 433, -1, -1, 436, 437, 438, 439, 440, 441,
23973 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
23974 : 452, 453, 454, -1, 456, 457, 458, 459, 460, 461,
23975 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
23976 : -1, -1, 474, 475, 476, 477, 478, 479, 480, -1,
23977 : 482, 483, 484, 485, 486, 487, 488, -1, -1, 491,
23978 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
23979 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
23980 : 512, 513, 3, -1, -1, -1, -1, -1, -1, -1,
23981 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
23982 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
23983 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
23984 : 41, 42, -1, 44, 45, 46, 47, 48, 49, 50,
23985 : 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
23986 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
23987 : 71, -1, 73, 74, 75, 76, 77, -1, 79, -1,
23988 : 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
23989 : 91, -1, 93, 94, 95, 96, 97, 98, -1, 100,
23990 : 101, 102, 103, -1, -1, -1, 107, -1, -1, -1,
23991 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
23992 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
23993 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
23994 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
23995 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
23996 : 161, 162, 163, -1, 165, -1, 167, 168, 169, 170,
23997 : 171, -1, 173, -1, 175, 176, 177, -1, 179, 180,
23998 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
23999 : -1, 192, 193, 194, 195, 196, 197, 198, 199, 200,
24000 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
24001 : -1, 212, 213, 214, 215, 216, 217, 218, 219, 220,
24002 : -1, 222, -1, 224, 225, 226, 227, 228, 229, 230,
24003 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
24004 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
24005 : 251, 252, 253, -1, 255, 256, 257, -1, -1, 260,
24006 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
24007 : 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
24008 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
24009 : 291, 292, -1, 294, 295, 296, 297, -1, 299, 300,
24010 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
24011 : -1, 312, 313, 314, -1, -1, 317, 318, 319, 320,
24012 : 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
24013 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
24014 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
24015 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
24016 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
24017 : 371, 372, 373, 374, 375, -1, 377, 378, 379, 380,
24018 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
24019 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
24020 : 401, -1, 403, 404, 405, 406, 407, 408, 409, 410,
24021 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
24022 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
24023 : -1, 432, 433, -1, -1, 436, 437, 438, 439, 440,
24024 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
24025 : 451, 452, 453, 454, -1, 456, 457, 458, 459, 460,
24026 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
24027 : 471, -1, -1, 474, 475, 476, 477, 478, 479, 480,
24028 : -1, 482, 483, 484, 485, 486, 487, 488, -1, -1,
24029 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
24030 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
24031 : 511, 512, 513, 3, -1, -1, -1, -1, -1, -1,
24032 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24033 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
24034 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
24035 : 40, 41, 42, -1, 44, 45, 46, 47, -1, 49,
24036 : 50, 51, 52, 53, -1, 55, 56, -1, 58, 59,
24037 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
24038 : 70, 71, 72, 73, 74, 75, 76, 77, -1, -1,
24039 : 80, 81, 82, 83, 84, 85, 86, -1, 88, 89,
24040 : 90, 91, 92, 93, 94, 95, 96, 97, 98, -1,
24041 : -1, 101, 102, 103, -1, -1, -1, -1, -1, -1,
24042 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
24043 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
24044 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
24045 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
24046 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
24047 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
24048 : 170, 171, -1, 173, 174, 175, 176, -1, -1, -1,
24049 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
24050 : 190, -1, 192, 193, 194, 195, 196, -1, 198, 199,
24051 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
24052 : 210, -1, 212, -1, 214, 215, 216, 217, 218, 219,
24053 : 220, -1, 222, -1, 224, -1, -1, 227, -1, 229,
24054 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
24055 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
24056 : 250, -1, 252, -1, -1, 255, 256, 257, -1, -1,
24057 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
24058 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
24059 : -1, 281, 282, 283, 284, 285, 286, 287, 288, 289,
24060 : 290, 291, 292, 293, 294, 295, -1, 297, -1, 299,
24061 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
24062 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
24063 : -1, 321, -1, 323, 324, 325, 326, 327, 328, 329,
24064 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
24065 : 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
24066 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
24067 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
24068 : 370, 371, 372, 373, 374, 375, -1, 377, 378, -1,
24069 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
24070 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
24071 : 400, 401, -1, 403, 404, 405, 406, 407, -1, 409,
24072 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
24073 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
24074 : 430, -1, 432, 433, -1, -1, 436, -1, 438, 439,
24075 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
24076 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
24077 : 460, 461, 462, 463, 464, -1, 466, 467, 468, 469,
24078 : 470, 471, -1, -1, 474, 475, 476, 477, 478, 479,
24079 : 480, -1, 482, -1, 484, 485, 486, 487, 488, -1,
24080 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
24081 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
24082 : 510, 511, 512, 513, 3, -1, -1, -1, -1, -1,
24083 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24084 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
24085 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
24086 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
24087 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
24088 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
24089 : 69, 70, 71, 72, 73, 74, 75, 76, 77, -1,
24090 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
24091 : 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
24092 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
24093 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
24094 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
24095 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
24096 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
24097 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
24098 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
24099 : 169, 170, 171, -1, 173, 174, 175, 176, -1, -1,
24100 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
24101 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
24102 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
24103 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
24104 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
24105 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
24106 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
24107 : 249, 250, -1, 252, 253, -1, 255, 256, 257, -1,
24108 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
24109 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
24110 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
24111 : 289, 290, 291, 292, 293, 294, 295, -1, 297, -1,
24112 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
24113 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
24114 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
24115 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
24116 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
24117 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
24118 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
24119 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
24120 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
24121 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
24122 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
24123 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
24124 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
24125 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
24126 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
24127 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
24128 : 459, 460, 461, 462, 463, 464, -1, 466, 467, 468,
24129 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
24130 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
24131 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
24132 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
24133 : 509, 510, 511, 512, 513, 3, -1, -1, -1, -1,
24134 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24135 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
24136 : 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
24137 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
24138 : -1, 49, 50, 51, 52, 53, -1, 55, 56, -1,
24139 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
24140 : 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
24141 : -1, -1, -1, 81, 82, 83, 84, 85, 86, -1,
24142 : 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
24143 : 98, -1, -1, 101, 102, 103, -1, -1, -1, -1,
24144 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
24145 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
24146 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
24147 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
24148 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
24149 : 158, 159, 160, 161, 162, 163, -1, 165, -1, 167,
24150 : 168, 169, 170, 171, -1, 173, 174, 175, 176, -1,
24151 : -1, -1, 180, 181, 182, 183, -1, 185, 186, -1,
24152 : 188, 189, 190, -1, 192, 193, 194, 195, 196, -1,
24153 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
24154 : 208, 209, 210, -1, 212, -1, 214, 215, 216, 217,
24155 : 218, 219, 220, -1, 222, -1, 224, -1, -1, 227,
24156 : -1, 229, 230, 231, 232, 233, 234, 235, 236, 237,
24157 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
24158 : -1, 249, 250, -1, 252, -1, -1, 255, 256, 257,
24159 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
24160 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
24161 : 278, 279, -1, 281, 282, 283, 284, 285, 286, 287,
24162 : 288, 289, 290, 291, 292, 293, 294, 295, -1, 297,
24163 : -1, 299, 300, 301, 302, 303, 304, 305, -1, 307,
24164 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
24165 : 318, 319, -1, 321, -1, 323, 324, 325, 326, 327,
24166 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
24167 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
24168 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
24169 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
24170 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
24171 : 378, -1, 380, 381, 382, 383, 384, 385, 386, 387,
24172 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
24173 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
24174 : -1, 409, 410, 411, 412, -1, 414, 415, 416, 417,
24175 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
24176 : 428, 429, 430, -1, 432, 433, -1, -1, 436, -1,
24177 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
24178 : -1, -1, 450, 451, 452, 453, 454, -1, 456, 457,
24179 : 458, 459, 460, 461, 462, 463, 464, -1, 466, 467,
24180 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
24181 : 478, 479, 480, -1, 482, -1, 484, 485, 486, 487,
24182 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
24183 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
24184 : 508, 509, 510, 511, 512, 513, 3, -1, -1, -1,
24185 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24186 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
24187 : 27, 28, 29, 30, 31, 32, -1, -1, -1, -1,
24188 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
24189 : 47, -1, 49, 50, 51, 52, 53, -1, 55, 56,
24190 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
24191 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
24192 : 77, -1, -1, -1, 81, 82, 83, 84, 85, 86,
24193 : -1, 88, 89, 90, 91, -1, 93, 94, 95, 96,
24194 : 97, 98, 99, -1, 101, 102, 103, -1, -1, -1,
24195 : -1, -1, -1, -1, 111, 112, 113, 114, 115, 116,
24196 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
24197 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
24198 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
24199 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
24200 : 157, 158, 159, 160, 161, 162, 163, -1, 165, -1,
24201 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
24202 : -1, -1, -1, 180, 181, 182, 183, 184, 185, 186,
24203 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
24204 : -1, 198, 199, 200, 201, -1, 203, 204, 205, 206,
24205 : 207, 208, 209, 210, -1, 212, -1, 214, 215, 216,
24206 : 217, 218, 219, 220, -1, 222, -1, 224, -1, -1,
24207 : 227, -1, 229, 230, 231, 232, 233, 234, 235, 236,
24208 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
24209 : -1, -1, 249, 250, -1, 252, -1, -1, 255, 256,
24210 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
24211 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
24212 : 277, 278, 279, -1, 281, 282, 283, 284, 285, 286,
24213 : 287, 288, 289, 290, 291, 292, -1, 294, 295, -1,
24214 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
24215 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
24216 : 317, 318, 319, -1, 321, -1, 323, 324, 325, 326,
24217 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
24218 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
24219 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
24220 : 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
24221 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
24222 : 377, 378, -1, 380, 381, 382, 383, 384, 385, 386,
24223 : 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
24224 : 397, 398, 399, 400, 401, -1, 403, 404, 405, 406,
24225 : 407, -1, 409, 410, 411, 412, -1, 414, 415, 416,
24226 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
24227 : 427, 428, 429, 430, -1, 432, 433, -1, -1, 436,
24228 : -1, 438, 439, 440, 441, 442, 443, -1, 445, 446,
24229 : 447, -1, -1, 450, 451, 452, 453, 454, -1, 456,
24230 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
24231 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
24232 : 477, 478, 479, 480, -1, 482, -1, 484, 485, 486,
24233 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
24234 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
24235 : 507, 508, 509, 510, 511, 512, 513, 3, -1, -1,
24236 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24237 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
24238 : 26, 27, 28, 29, 30, 31, 32, -1, -1, -1,
24239 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
24240 : 46, 47, -1, 49, 50, 51, 52, 53, -1, 55,
24241 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
24242 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
24243 : 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
24244 : 86, -1, 88, 89, 90, 91, -1, 93, 94, 95,
24245 : 96, 97, 98, 99, -1, 101, 102, 103, -1, -1,
24246 : -1, -1, -1, -1, -1, 111, 112, 113, 114, 115,
24247 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
24248 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
24249 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
24250 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
24251 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
24252 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
24253 : 176, -1, -1, -1, 180, 181, 182, 183, 184, 185,
24254 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
24255 : 196, -1, 198, 199, 200, 201, -1, 203, 204, 205,
24256 : 206, 207, 208, 209, 210, -1, 212, -1, 214, 215,
24257 : 216, 217, 218, 219, 220, -1, 222, -1, 224, -1,
24258 : -1, 227, -1, 229, 230, 231, 232, 233, 234, 235,
24259 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
24260 : 246, -1, -1, 249, 250, -1, 252, -1, -1, 255,
24261 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
24262 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
24263 : 276, 277, 278, 279, -1, 281, 282, 283, 284, 285,
24264 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
24265 : -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
24266 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
24267 : -1, 317, 318, 319, -1, 321, -1, 323, 324, 325,
24268 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
24269 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
24270 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
24271 : 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
24272 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
24273 : -1, 377, 378, -1, 380, 381, 382, 383, 384, 385,
24274 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
24275 : 396, 397, 398, 399, 400, 401, -1, 403, 404, 405,
24276 : 406, 407, -1, 409, 410, 411, 412, -1, 414, 415,
24277 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
24278 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
24279 : 436, -1, 438, 439, 440, 441, 442, 443, -1, 445,
24280 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
24281 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
24282 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
24283 : 476, 477, 478, 479, 480, -1, 482, -1, 484, 485,
24284 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
24285 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
24286 : 506, 507, 508, 509, 510, 511, 512, 513, 3, -1,
24287 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24288 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
24289 : 25, 26, 27, 28, 29, 30, 31, 32, -1, -1,
24290 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
24291 : 45, 46, 47, -1, 49, 50, 51, 52, 53, -1,
24292 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
24293 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
24294 : 75, 76, 77, -1, -1, -1, 81, 82, 83, 84,
24295 : 85, 86, -1, 88, 89, 90, 91, -1, 93, 94,
24296 : 95, 96, 97, 98, 99, -1, 101, 102, 103, -1,
24297 : -1, -1, -1, -1, -1, -1, 111, 112, 113, 114,
24298 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
24299 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
24300 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
24301 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
24302 : 155, 156, 157, 158, 159, 160, 161, 162, 163, -1,
24303 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
24304 : 175, 176, -1, -1, -1, 180, 181, 182, 183, -1,
24305 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
24306 : 195, 196, -1, 198, 199, 200, 201, -1, 203, 204,
24307 : 205, 206, 207, 208, 209, 210, -1, 212, -1, 214,
24308 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
24309 : -1, -1, 227, -1, 229, 230, 231, 232, 233, 234,
24310 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
24311 : 245, 246, -1, -1, 249, 250, -1, 252, -1, -1,
24312 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
24313 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
24314 : 275, 276, 277, 278, 279, -1, 281, 282, 283, 284,
24315 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
24316 : 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
24317 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
24318 : -1, -1, 317, 318, 319, -1, 321, -1, 323, 324,
24319 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
24320 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
24321 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
24322 : 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
24323 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
24324 : 375, -1, 377, 378, -1, 380, 381, 382, 383, 384,
24325 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
24326 : 395, 396, 397, 398, 399, 400, 401, -1, 403, 404,
24327 : 405, 406, 407, -1, 409, 410, 411, 412, -1, 414,
24328 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
24329 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
24330 : -1, 436, -1, 438, 439, 440, 441, 442, 443, -1,
24331 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
24332 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
24333 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
24334 : 475, 476, 477, 478, 479, 480, -1, 482, -1, 484,
24335 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
24336 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
24337 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 3,
24338 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24339 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
24340 : 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
24341 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
24342 : 44, 45, 46, 47, -1, 49, 50, 51, 52, 53,
24343 : -1, 55, 56, -1, 58, 59, 60, 61, 62, 63,
24344 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
24345 : 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
24346 : 84, 85, 86, -1, 88, 89, 90, 91, -1, 93,
24347 : 94, 95, 96, 97, 98, -1, -1, 101, 102, 103,
24348 : -1, -1, -1, 107, -1, -1, -1, 111, 112, 113,
24349 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
24350 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
24351 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
24352 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
24353 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
24354 : -1, 165, -1, 167, 168, 169, 170, 171, -1, 173,
24355 : -1, 175, 176, -1, -1, -1, 180, 181, 182, 183,
24356 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
24357 : 194, 195, 196, -1, 198, 199, 200, 201, -1, 203,
24358 : 204, 205, 206, 207, 208, 209, 210, -1, 212, -1,
24359 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
24360 : 224, -1, -1, 227, -1, 229, 230, 231, 232, 233,
24361 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
24362 : 244, 245, 246, -1, -1, 249, 250, -1, 252, -1,
24363 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
24364 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
24365 : 274, 275, 276, 277, 278, 279, -1, 281, 282, 283,
24366 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
24367 : 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
24368 : 304, 305, -1, 307, 308, 309, -1, 311, 312, 313,
24369 : 314, -1, -1, 317, 318, 319, -1, 321, -1, 323,
24370 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
24371 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
24372 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
24373 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
24374 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
24375 : 374, 375, -1, 377, 378, -1, 380, 381, 382, 383,
24376 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
24377 : 394, 395, -1, 397, 398, 399, 400, 401, -1, 403,
24378 : 404, 405, 406, 407, -1, 409, 410, 411, 412, -1,
24379 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
24380 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
24381 : -1, 435, 436, -1, 438, 439, 440, 441, 442, 443,
24382 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
24383 : 454, -1, 456, 457, 458, 459, 460, 461, 462, 463,
24384 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
24385 : 474, 475, 476, 477, 478, 479, 480, -1, 482, -1,
24386 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
24387 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
24388 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
24389 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24390 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
24391 : 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
24392 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
24393 : -1, 44, 45, 46, 47, -1, 49, 50, 51, 52,
24394 : 53, -1, 55, 56, -1, 58, 59, 60, 61, 62,
24395 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
24396 : 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
24397 : 83, 84, 85, 86, -1, 88, 89, 90, 91, -1,
24398 : 93, 94, 95, 96, 97, 98, -1, -1, 101, 102,
24399 : 103, -1, -1, -1, -1, -1, -1, -1, 111, 112,
24400 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
24401 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
24402 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
24403 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
24404 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
24405 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
24406 : 173, 174, 175, 176, -1, -1, -1, 180, 181, 182,
24407 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
24408 : 193, 194, 195, 196, -1, 198, 199, 200, 201, -1,
24409 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
24410 : -1, 214, 215, 216, 217, 218, 219, 220, -1, 222,
24411 : -1, 224, -1, -1, 227, -1, 229, 230, 231, 232,
24412 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
24413 : 243, 244, 245, 246, -1, -1, 249, 250, -1, 252,
24414 : -1, -1, 255, 256, 257, -1, -1, 260, 261, 262,
24415 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
24416 : 273, 274, 275, 276, 277, 278, 279, -1, 281, 282,
24417 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
24418 : -1, 294, 295, -1, 297, -1, 299, 300, 301, 302,
24419 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
24420 : 313, 314, -1, -1, 317, 318, 319, -1, 321, -1,
24421 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
24422 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
24423 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
24424 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
24425 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
24426 : 373, 374, 375, -1, 377, 378, -1, 380, 381, 382,
24427 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
24428 : 393, 394, 395, -1, 397, 398, 399, 400, 401, -1,
24429 : 403, 404, 405, 406, 407, -1, 409, 410, 411, 412,
24430 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
24431 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
24432 : 433, -1, 435, 436, -1, 438, 439, 440, 441, 442,
24433 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
24434 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
24435 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
24436 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
24437 : -1, 484, 485, 486, 487, 488, -1, -1, 491, -1,
24438 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
24439 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
24440 : 513, 3, -1, -1, -1, -1, -1, -1, -1, -1,
24441 : -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
24442 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
24443 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
24444 : 42, -1, 44, 45, 46, 47, -1, 49, 50, 51,
24445 : 52, 53, -1, 55, 56, -1, 58, 59, 60, 61,
24446 : 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
24447 : -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
24448 : 82, 83, 84, 85, 86, -1, 88, 89, 90, 91,
24449 : -1, 93, 94, 95, 96, 97, 98, 99, -1, 101,
24450 : 102, 103, -1, -1, -1, -1, -1, -1, -1, 111,
24451 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
24452 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
24453 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
24454 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
24455 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
24456 : 162, 163, -1, 165, -1, 167, 168, 169, 170, 171,
24457 : -1, 173, -1, 175, 176, -1, -1, -1, 180, 181,
24458 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
24459 : 192, 193, 194, 195, 196, -1, 198, 199, 200, 201,
24460 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
24461 : 212, -1, 214, 215, 216, 217, 218, 219, 220, -1,
24462 : 222, -1, 224, -1, -1, 227, -1, 229, 230, 231,
24463 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
24464 : 242, 243, 244, 245, 246, -1, -1, 249, 250, -1,
24465 : 252, -1, -1, 255, 256, 257, -1, -1, 260, 261,
24466 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
24467 : 272, 273, 274, 275, 276, 277, 278, 279, -1, 281,
24468 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
24469 : 292, -1, 294, 295, -1, 297, -1, 299, 300, 301,
24470 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
24471 : 312, 313, 314, -1, -1, 317, 318, 319, -1, 321,
24472 : -1, 323, 324, 325, 326, 327, 328, 329, 330, 331,
24473 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
24474 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
24475 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
24476 : 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
24477 : 372, 373, 374, 375, -1, 377, 378, -1, 380, 381,
24478 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
24479 : 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
24480 : -1, 403, 404, 405, 406, 407, -1, 409, 410, 411,
24481 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
24482 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
24483 : 432, 433, -1, -1, 436, -1, 438, 439, 440, 441,
24484 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
24485 : 452, 453, 454, -1, 456, 457, 458, 459, 460, 461,
24486 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
24487 : -1, -1, 474, 475, 476, 477, 478, 479, 480, -1,
24488 : 482, -1, 484, 485, 486, 487, 488, -1, -1, 491,
24489 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
24490 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
24491 : 512, 513, 3, -1, -1, -1, -1, -1, -1, -1,
24492 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
24493 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
24494 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
24495 : 41, 42, -1, 44, 45, 46, 47, -1, 49, 50,
24496 : 51, 52, 53, -1, 55, 56, -1, 58, 59, 60,
24497 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
24498 : 71, -1, 73, 74, 75, 76, 77, -1, -1, -1,
24499 : 81, 82, 83, 84, 85, 86, -1, 88, 89, 90,
24500 : 91, -1, 93, 94, 95, 96, 97, 98, -1, -1,
24501 : 101, 102, 103, -1, -1, -1, 107, -1, -1, -1,
24502 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
24503 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
24504 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
24505 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
24506 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
24507 : 161, 162, 163, -1, 165, -1, 167, 168, 169, 170,
24508 : 171, -1, 173, -1, 175, 176, -1, -1, -1, 180,
24509 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
24510 : -1, 192, 193, 194, 195, 196, -1, 198, 199, 200,
24511 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
24512 : -1, 212, -1, 214, 215, 216, 217, 218, 219, 220,
24513 : -1, 222, -1, 224, -1, -1, 227, -1, 229, 230,
24514 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
24515 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
24516 : -1, 252, -1, -1, 255, 256, 257, -1, -1, 260,
24517 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
24518 : 271, 272, 273, 274, 275, 276, 277, 278, 279, -1,
24519 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
24520 : 291, 292, -1, 294, 295, -1, 297, -1, 299, 300,
24521 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
24522 : 311, 312, 313, 314, -1, -1, 317, 318, 319, -1,
24523 : 321, -1, 323, 324, 325, 326, 327, 328, 329, 330,
24524 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
24525 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
24526 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
24527 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
24528 : 371, 372, 373, 374, 375, -1, 377, 378, -1, 380,
24529 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
24530 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
24531 : 401, -1, 403, 404, 405, 406, 407, -1, 409, 410,
24532 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
24533 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
24534 : -1, 432, 433, -1, 435, 436, -1, 438, 439, 440,
24535 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
24536 : 451, 452, 453, 454, -1, 456, 457, 458, 459, 460,
24537 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
24538 : 471, -1, -1, 474, 475, 476, 477, 478, 479, 480,
24539 : -1, 482, -1, 484, 485, 486, 487, 488, -1, -1,
24540 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
24541 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
24542 : 511, 512, 513, 3, -1, -1, -1, -1, -1, -1,
24543 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24544 : 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
24545 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
24546 : 40, 41, 42, -1, 44, 45, 46, 47, -1, 49,
24547 : 50, 51, 52, 53, -1, 55, 56, -1, 58, 59,
24548 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
24549 : 70, 71, -1, 73, 74, 75, 76, 77, -1, -1,
24550 : -1, 81, 82, 83, 84, 85, 86, -1, 88, 89,
24551 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
24552 : -1, 101, 102, 103, -1, -1, -1, -1, -1, -1,
24553 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
24554 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
24555 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
24556 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
24557 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
24558 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
24559 : 170, 171, -1, 173, -1, 175, 176, -1, -1, -1,
24560 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
24561 : 190, -1, 192, 193, 194, 195, 196, -1, 198, 199,
24562 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
24563 : 210, -1, 212, -1, 214, 215, 216, 217, 218, 219,
24564 : 220, -1, 222, -1, 224, -1, -1, 227, -1, 229,
24565 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
24566 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
24567 : 250, -1, 252, -1, -1, 255, 256, 257, -1, -1,
24568 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
24569 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
24570 : -1, 281, 282, 283, 284, 285, 286, 287, 288, 289,
24571 : 290, 291, 292, -1, 294, 295, -1, 297, -1, 299,
24572 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
24573 : -1, 311, 312, 313, 314, -1, -1, 317, 318, 319,
24574 : -1, 321, -1, 323, 324, 325, 326, 327, 328, 329,
24575 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
24576 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
24577 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
24578 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
24579 : 370, 371, 372, 373, 374, 375, -1, 377, 378, -1,
24580 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
24581 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
24582 : 400, 401, -1, 403, 404, 405, 406, 407, -1, 409,
24583 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
24584 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
24585 : 430, -1, 432, 433, -1, -1, 436, -1, 438, 439,
24586 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
24587 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
24588 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
24589 : 470, 471, -1, -1, 474, 475, 476, 477, 478, 479,
24590 : 480, -1, 482, -1, 484, 485, 486, 487, 488, -1,
24591 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
24592 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
24593 : 510, 511, 512, 513, 3, -1, -1, -1, -1, -1,
24594 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24595 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
24596 : 29, 30, 31, 32, -1, -1, -1, -1, -1, -1,
24597 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
24598 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
24599 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
24600 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
24601 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
24602 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
24603 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
24604 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
24605 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
24606 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
24607 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
24608 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
24609 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
24610 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
24611 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
24612 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
24613 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
24614 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
24615 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
24616 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
24617 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
24618 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
24619 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
24620 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
24621 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
24622 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
24623 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
24624 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
24625 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
24626 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
24627 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
24628 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
24629 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
24630 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
24631 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
24632 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
24633 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
24634 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
24635 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
24636 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
24637 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
24638 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
24639 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
24640 : 469, 470, 471, 472, -1, 474, 475, 476, 477, 478,
24641 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
24642 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
24643 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
24644 : 509, 510, 511, 512, 513, 3, -1, -1, -1, -1,
24645 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24646 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
24647 : 28, 29, 30, 31, 32, -1, -1, -1, -1, -1,
24648 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
24649 : -1, 49, 50, 51, 52, 53, -1, 55, 56, -1,
24650 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
24651 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
24652 : -1, -1, -1, 81, 82, 83, 84, 85, 86, -1,
24653 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
24654 : 98, -1, -1, 101, 102, 103, -1, -1, -1, -1,
24655 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
24656 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
24657 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
24658 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
24659 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
24660 : 158, 159, 160, 161, 162, 163, -1, 165, -1, 167,
24661 : 168, 169, 170, 171, -1, 173, -1, 175, 176, -1,
24662 : -1, -1, 180, 181, 182, 183, -1, 185, 186, -1,
24663 : 188, 189, 190, -1, 192, 193, 194, 195, 196, -1,
24664 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
24665 : 208, 209, 210, -1, 212, -1, 214, 215, 216, 217,
24666 : 218, 219, 220, -1, 222, -1, 224, -1, -1, 227,
24667 : -1, 229, 230, 231, 232, 233, 234, 235, 236, 237,
24668 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
24669 : -1, 249, 250, -1, 252, -1, -1, 255, 256, 257,
24670 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
24671 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
24672 : 278, 279, -1, 281, 282, 283, 284, 285, 286, 287,
24673 : 288, 289, 290, 291, 292, -1, 294, 295, -1, 297,
24674 : -1, 299, 300, 301, 302, 303, 304, 305, -1, 307,
24675 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
24676 : 318, 319, -1, 321, -1, 323, 324, 325, 326, 327,
24677 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
24678 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
24679 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
24680 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
24681 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
24682 : 378, -1, 380, 381, 382, 383, 384, 385, 386, 387,
24683 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
24684 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
24685 : -1, 409, 410, 411, 412, -1, 414, 415, 416, 417,
24686 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
24687 : 428, 429, 430, -1, 432, 433, -1, -1, 436, -1,
24688 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
24689 : -1, -1, 450, 451, 452, 453, 454, -1, 456, 457,
24690 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
24691 : 468, 469, 470, 471, 472, -1, 474, 475, 476, 477,
24692 : 478, 479, 480, -1, 482, -1, 484, 485, 486, 487,
24693 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
24694 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
24695 : 508, 509, 510, 511, 512, 513, 3, -1, -1, -1,
24696 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24697 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
24698 : 27, 28, 29, 30, 31, 32, -1, -1, -1, -1,
24699 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
24700 : 47, -1, 49, 50, 51, 52, 53, -1, 55, 56,
24701 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
24702 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
24703 : 77, -1, -1, -1, 81, 82, 83, 84, 85, 86,
24704 : -1, 88, 89, 90, 91, -1, 93, 94, 95, 96,
24705 : 97, 98, -1, -1, 101, 102, 103, -1, -1, -1,
24706 : -1, -1, -1, -1, 111, 112, 113, 114, 115, 116,
24707 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
24708 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
24709 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
24710 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
24711 : 157, 158, 159, 160, 161, 162, 163, -1, 165, -1,
24712 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
24713 : -1, -1, -1, 180, 181, 182, 183, -1, 185, 186,
24714 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
24715 : -1, 198, 199, 200, 201, -1, 203, 204, 205, 206,
24716 : 207, 208, 209, 210, -1, 212, -1, 214, 215, 216,
24717 : 217, 218, 219, 220, -1, 222, -1, 224, -1, -1,
24718 : 227, -1, 229, 230, 231, 232, 233, 234, 235, 236,
24719 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
24720 : -1, -1, 249, 250, -1, 252, -1, -1, 255, 256,
24721 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
24722 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
24723 : 277, 278, 279, -1, 281, 282, 283, 284, 285, 286,
24724 : 287, 288, 289, 290, 291, 292, -1, 294, 295, -1,
24725 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
24726 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
24727 : 317, 318, 319, -1, 321, -1, 323, 324, 325, 326,
24728 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
24729 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
24730 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
24731 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
24732 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
24733 : 377, 378, -1, 380, 381, 382, 383, 384, 385, 386,
24734 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
24735 : 397, 398, 399, 400, 401, -1, 403, 404, 405, 406,
24736 : 407, -1, 409, 410, 411, 412, -1, 414, 415, 416,
24737 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
24738 : 427, 428, 429, 430, -1, 432, 433, -1, -1, 436,
24739 : -1, 438, 439, 440, 441, 442, 443, -1, 445, 446,
24740 : 447, -1, -1, 450, 451, 452, 453, 454, -1, 456,
24741 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
24742 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
24743 : 477, 478, 479, 480, -1, 482, -1, 484, 485, 486,
24744 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
24745 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
24746 : 507, 508, 509, 510, 511, 512, 513, 3, -1, -1,
24747 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24748 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
24749 : 26, 27, 28, 29, 30, 31, 32, -1, -1, -1,
24750 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
24751 : 46, 47, -1, 49, 50, 51, 52, 53, -1, 55,
24752 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
24753 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
24754 : 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
24755 : 86, -1, 88, 89, 90, 91, -1, 93, 94, 95,
24756 : 96, 97, 98, -1, -1, 101, 102, 103, -1, -1,
24757 : -1, -1, -1, -1, -1, 111, 112, 113, 114, 115,
24758 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
24759 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
24760 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
24761 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
24762 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
24763 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
24764 : 176, -1, -1, -1, 180, 181, 182, 183, -1, 185,
24765 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
24766 : 196, -1, 198, 199, 200, 201, -1, 203, 204, 205,
24767 : 206, 207, 208, 209, 210, -1, 212, -1, 214, 215,
24768 : 216, 217, 218, 219, 220, -1, 222, -1, 224, -1,
24769 : -1, 227, -1, 229, 230, 231, 232, 233, 234, 235,
24770 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
24771 : 246, -1, -1, 249, 250, -1, 252, -1, -1, 255,
24772 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
24773 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
24774 : 276, 277, 278, 279, -1, 281, 282, 283, 284, 285,
24775 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
24776 : -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
24777 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
24778 : -1, 317, 318, 319, -1, 321, -1, 323, 324, 325,
24779 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
24780 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
24781 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
24782 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
24783 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
24784 : -1, 377, 378, -1, 380, 381, 382, 383, 384, 385,
24785 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
24786 : -1, 397, 398, 399, 400, 401, -1, 403, 404, 405,
24787 : 406, 407, -1, 409, 410, 411, 412, -1, 414, 415,
24788 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
24789 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
24790 : 436, -1, 438, 439, 440, 441, 442, 443, -1, 445,
24791 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
24792 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
24793 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
24794 : 476, 477, 478, 479, 480, -1, 482, -1, 484, 485,
24795 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
24796 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
24797 : 506, 507, 508, 509, 510, 511, 512, 513, 3, -1,
24798 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24799 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
24800 : 25, 26, 27, 28, 29, 30, 31, 32, -1, -1,
24801 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
24802 : 45, 46, 47, -1, 49, 50, 51, 52, 53, -1,
24803 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
24804 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
24805 : 75, 76, 77, -1, -1, -1, 81, 82, 83, 84,
24806 : 85, 86, -1, 88, 89, 90, 91, -1, 93, 94,
24807 : 95, 96, 97, 98, -1, -1, 101, 102, 103, -1,
24808 : -1, -1, -1, -1, -1, -1, 111, 112, 113, 114,
24809 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
24810 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
24811 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
24812 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
24813 : 155, 156, 157, 158, 159, 160, 161, 162, 163, -1,
24814 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
24815 : 175, 176, -1, -1, -1, 180, 181, 182, 183, -1,
24816 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
24817 : 195, 196, -1, 198, 199, 200, 201, -1, 203, 204,
24818 : 205, 206, 207, 208, 209, 210, -1, 212, -1, 214,
24819 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
24820 : -1, -1, 227, -1, 229, 230, 231, 232, 233, 234,
24821 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
24822 : 245, 246, -1, -1, 249, 250, -1, 252, -1, -1,
24823 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
24824 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
24825 : 275, 276, 277, 278, 279, -1, 281, 282, 283, 284,
24826 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
24827 : 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
24828 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
24829 : -1, -1, 317, 318, 319, -1, 321, -1, 323, 324,
24830 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
24831 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
24832 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
24833 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
24834 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
24835 : 375, -1, 377, 378, -1, 380, 381, 382, 383, 384,
24836 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
24837 : 395, -1, 397, 398, 399, 400, 401, -1, 403, 404,
24838 : 405, 406, 407, -1, 409, 410, 411, 412, -1, 414,
24839 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
24840 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
24841 : -1, 436, -1, 438, 439, 440, 441, 442, 443, -1,
24842 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
24843 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
24844 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
24845 : 475, 476, 477, 478, 479, 480, -1, 482, -1, 484,
24846 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
24847 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
24848 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 3,
24849 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24850 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
24851 : 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
24852 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
24853 : 44, 45, 46, 47, -1, 49, 50, 51, 52, 53,
24854 : -1, 55, 56, -1, 58, 59, 60, 61, 62, 63,
24855 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
24856 : 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
24857 : 84, 85, 86, -1, 88, 89, 90, 91, -1, 93,
24858 : 94, 95, 96, 97, 98, -1, -1, 101, 102, 103,
24859 : -1, -1, -1, -1, -1, -1, -1, 111, 112, 113,
24860 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
24861 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
24862 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
24863 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
24864 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
24865 : -1, 165, -1, 167, 168, 169, 170, 171, -1, 173,
24866 : -1, 175, 176, -1, -1, -1, 180, 181, 182, 183,
24867 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
24868 : 194, 195, 196, -1, 198, 199, 200, 201, -1, 203,
24869 : 204, 205, 206, 207, 208, 209, 210, -1, 212, -1,
24870 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
24871 : 224, -1, -1, 227, -1, 229, 230, 231, 232, 233,
24872 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
24873 : 244, 245, 246, -1, -1, 249, 250, -1, 252, -1,
24874 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
24875 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
24876 : 274, 275, 276, 277, 278, 279, -1, 281, 282, 283,
24877 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
24878 : 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
24879 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
24880 : 314, -1, -1, 317, 318, 319, -1, 321, -1, 323,
24881 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
24882 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
24883 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
24884 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
24885 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
24886 : 374, 375, -1, 377, 378, -1, 380, 381, 382, 383,
24887 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
24888 : 394, 395, -1, 397, 398, 399, 400, 401, -1, 403,
24889 : 404, 405, 406, 407, -1, 409, 410, 411, 412, -1,
24890 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
24891 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
24892 : -1, -1, 436, -1, 438, 439, 440, 441, 442, 443,
24893 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
24894 : 454, -1, 456, 457, 458, 459, 460, 461, 462, 463,
24895 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
24896 : 474, 475, 476, 477, 478, 479, 480, -1, 482, -1,
24897 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
24898 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
24899 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
24900 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24901 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
24902 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
24903 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
24904 : -1, 44, 45, 46, 47, -1, 49, 50, 51, 52,
24905 : 53, -1, 55, 56, -1, 58, 59, 60, 61, 62,
24906 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
24907 : 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
24908 : 83, 84, 85, 86, -1, 88, 89, 90, 91, -1,
24909 : 93, 94, 95, 96, 97, 98, -1, -1, 101, 102,
24910 : 103, -1, -1, -1, -1, -1, -1, -1, 111, 112,
24911 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
24912 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
24913 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
24914 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
24915 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
24916 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
24917 : 173, -1, 175, 176, -1, -1, -1, 180, 181, 182,
24918 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
24919 : 193, 194, 195, 196, -1, 198, 199, 200, 201, -1,
24920 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
24921 : -1, 214, 215, 216, 217, 218, 219, 220, -1, 222,
24922 : -1, 224, -1, -1, 227, -1, 229, 230, 231, 232,
24923 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
24924 : 243, 244, 245, 246, -1, -1, 249, 250, -1, 252,
24925 : -1, -1, 255, 256, 257, -1, -1, 260, 261, 262,
24926 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
24927 : 273, 274, 275, 276, 277, 278, 279, -1, 281, 282,
24928 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
24929 : -1, 294, 295, -1, 297, -1, 299, 300, 301, 302,
24930 : 303, 304, 305, -1, 307, 308, 309, -1, 311, 312,
24931 : 313, 314, -1, -1, 317, 318, 319, -1, 321, -1,
24932 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
24933 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
24934 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
24935 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
24936 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
24937 : 373, 374, 375, -1, 377, 378, -1, 380, 381, 382,
24938 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
24939 : 393, 394, 395, -1, 397, 398, 399, 400, 401, -1,
24940 : 403, 404, 405, 406, 407, -1, 409, 410, 411, 412,
24941 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
24942 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
24943 : 433, -1, -1, 436, -1, 438, 439, 440, 441, 442,
24944 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
24945 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
24946 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
24947 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
24948 : -1, 484, 485, 486, 487, 488, -1, -1, 491, -1,
24949 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
24950 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
24951 : 513, 3, -1, -1, -1, -1, -1, -1, -1, -1,
24952 : 12, -1, -1, -1, -1, -1, -1, -1, 20, 21,
24953 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
24954 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
24955 : 42, -1, 44, 45, 46, 47, -1, 49, 50, 51,
24956 : 52, 53, -1, 55, 56, -1, 58, 59, 60, 61,
24957 : 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
24958 : -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
24959 : 82, 83, 84, 85, 86, -1, 88, 89, 90, 91,
24960 : -1, 93, 94, 95, 96, 97, 98, -1, -1, 101,
24961 : 102, 103, -1, -1, -1, -1, -1, -1, -1, 111,
24962 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
24963 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
24964 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
24965 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
24966 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
24967 : 162, 163, -1, 165, -1, 167, 168, 169, 170, 171,
24968 : -1, 173, -1, 175, 176, -1, -1, -1, 180, 181,
24969 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
24970 : 192, 193, 194, 195, 196, -1, 198, 199, 200, 201,
24971 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
24972 : 212, -1, 214, 215, 216, 217, 218, 219, 220, -1,
24973 : 222, -1, 224, -1, -1, 227, -1, 229, 230, 231,
24974 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
24975 : 242, 243, 244, 245, 246, -1, -1, 249, 250, -1,
24976 : 252, -1, -1, 255, 256, 257, -1, -1, 260, 261,
24977 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
24978 : 272, 273, 274, 275, 276, 277, 278, 279, -1, 281,
24979 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
24980 : 292, -1, 294, 295, -1, 297, -1, 299, 300, 301,
24981 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
24982 : 312, 313, 314, -1, -1, 317, 318, 319, -1, 321,
24983 : -1, 323, 324, 325, 326, 327, 328, 329, 330, 331,
24984 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
24985 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
24986 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
24987 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
24988 : 372, 373, 374, 375, -1, 377, 378, -1, 380, 381,
24989 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
24990 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
24991 : -1, 403, 404, 405, 406, 407, -1, 409, 410, 411,
24992 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
24993 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
24994 : 432, 433, -1, -1, 436, -1, 438, 439, 440, 441,
24995 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
24996 : 452, 453, 454, -1, 456, 457, 458, 459, 460, 461,
24997 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
24998 : -1, -1, 474, 475, 476, 477, 478, 479, 480, -1,
24999 : 482, -1, 484, 485, 486, 487, 488, -1, -1, 491,
25000 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
25001 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
25002 : 512, 513, 3, -1, -1, -1, -1, -1, -1, -1,
25003 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
25004 : 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
25005 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
25006 : 41, 42, -1, 44, 45, 46, 47, -1, 49, 50,
25007 : 51, 52, 53, -1, 55, 56, -1, 58, 59, 60,
25008 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
25009 : 71, -1, 73, 74, 75, 76, 77, -1, -1, -1,
25010 : 81, 82, 83, 84, 85, 86, -1, 88, 89, 90,
25011 : 91, -1, 93, 94, 95, 96, 97, 98, -1, -1,
25012 : 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
25013 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
25014 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
25015 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
25016 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
25017 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
25018 : 161, 162, 163, -1, 165, -1, 167, 168, 169, 170,
25019 : 171, -1, 173, -1, 175, 176, -1, -1, -1, 180,
25020 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
25021 : -1, 192, 193, 194, 195, 196, -1, 198, 199, 200,
25022 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
25023 : -1, 212, -1, 214, 215, 216, 217, 218, 219, 220,
25024 : -1, 222, -1, 224, -1, -1, 227, -1, 229, 230,
25025 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
25026 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
25027 : -1, 252, -1, -1, 255, 256, 257, -1, -1, 260,
25028 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
25029 : 271, 272, 273, 274, 275, 276, 277, 278, 279, -1,
25030 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
25031 : 291, 292, -1, 294, 295, -1, 297, -1, 299, 300,
25032 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
25033 : -1, 312, 313, 314, -1, -1, 317, 318, 319, -1,
25034 : 321, -1, 323, 324, 325, 326, 327, 328, 329, 330,
25035 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
25036 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
25037 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
25038 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
25039 : 371, 372, 373, 374, 375, -1, 377, 378, -1, 380,
25040 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
25041 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
25042 : 401, -1, 403, 404, 405, 406, 407, -1, 409, 410,
25043 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
25044 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
25045 : -1, 432, 433, -1, -1, 436, -1, 438, 439, 440,
25046 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
25047 : 451, 452, 453, 454, -1, 456, 457, 458, 459, 460,
25048 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
25049 : 471, -1, -1, 474, 475, 476, 477, 478, 479, 480,
25050 : -1, 482, -1, 484, 485, 486, 487, 488, -1, -1,
25051 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
25052 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
25053 : 511, 512, 513, 3, -1, -1, -1, -1, -1, -1,
25054 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25055 : 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
25056 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
25057 : 40, 41, 42, -1, 44, 45, 46, 47, -1, 49,
25058 : 50, 51, 52, 53, -1, 55, 56, -1, 58, 59,
25059 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
25060 : 70, 71, -1, 73, 74, 75, 76, 77, -1, -1,
25061 : -1, 81, 82, 83, 84, 85, 86, -1, 88, 89,
25062 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
25063 : -1, 101, 102, 103, -1, -1, -1, -1, -1, -1,
25064 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
25065 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
25066 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
25067 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
25068 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
25069 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
25070 : 170, 171, -1, 173, -1, 175, 176, -1, -1, -1,
25071 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
25072 : 190, -1, 192, 193, 194, 195, 196, -1, 198, 199,
25073 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
25074 : 210, -1, 212, -1, 214, 215, 216, 217, 218, 219,
25075 : 220, -1, 222, -1, 224, -1, -1, 227, -1, 229,
25076 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
25077 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
25078 : 250, -1, 252, -1, -1, 255, 256, 257, -1, -1,
25079 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
25080 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
25081 : -1, 281, 282, 283, 284, 285, 286, 287, 288, 289,
25082 : 290, 291, 292, -1, 294, 295, -1, 297, -1, 299,
25083 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
25084 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
25085 : -1, 321, -1, 323, 324, 325, 326, 327, 328, 329,
25086 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
25087 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
25088 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
25089 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
25090 : 370, 371, 372, 373, 374, 375, -1, 377, 378, -1,
25091 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
25092 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
25093 : 400, 401, -1, 403, 404, 405, 406, 407, -1, 409,
25094 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
25095 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
25096 : 430, -1, 432, 433, -1, -1, 436, -1, 438, 439,
25097 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
25098 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
25099 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
25100 : 470, 471, -1, -1, 474, 475, 476, 477, 478, 479,
25101 : 480, -1, 482, -1, 484, 485, 486, 487, 488, -1,
25102 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
25103 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
25104 : 510, 511, 512, 513, 3, -1, -1, -1, -1, -1,
25105 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25106 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
25107 : 29, 30, 31, 32, -1, -1, -1, -1, -1, -1,
25108 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
25109 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
25110 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
25111 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
25112 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
25113 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
25114 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
25115 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
25116 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
25117 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
25118 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
25119 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
25120 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
25121 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
25122 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
25123 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
25124 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
25125 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
25126 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
25127 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
25128 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
25129 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
25130 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
25131 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
25132 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
25133 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
25134 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
25135 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
25136 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
25137 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
25138 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
25139 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
25140 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
25141 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
25142 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
25143 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
25144 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
25145 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
25146 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
25147 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
25148 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
25149 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
25150 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
25151 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
25152 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
25153 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
25154 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
25155 : 509, 510, 511, 512, 513, 3, -1, -1, -1, -1,
25156 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25157 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
25158 : 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
25159 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
25160 : 48, 49, 50, 51, 52, 53, -1, 55, 56, -1,
25161 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
25162 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
25163 : -1, -1, -1, 81, 82, 83, 84, 85, 86, -1,
25164 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
25165 : 98, -1, -1, 101, 102, 103, -1, -1, -1, -1,
25166 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
25167 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
25168 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
25169 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
25170 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
25171 : 158, 159, 160, 161, 162, 163, -1, 165, -1, 167,
25172 : 168, 169, 170, 171, -1, 173, -1, 175, 176, -1,
25173 : -1, -1, 180, 181, 182, 183, -1, 185, 186, -1,
25174 : 188, 189, 190, -1, 192, 193, 194, 195, 196, -1,
25175 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
25176 : 208, 209, 210, -1, 212, -1, 214, 215, 216, 217,
25177 : 218, 219, 220, -1, 222, -1, 224, -1, -1, 227,
25178 : -1, 229, 230, 231, 232, 233, 234, 235, 236, 237,
25179 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
25180 : -1, 249, 250, -1, 252, -1, -1, 255, 256, 257,
25181 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
25182 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
25183 : 278, 279, -1, 281, 282, 283, 284, 285, 286, 287,
25184 : 288, 289, 290, 291, 292, -1, 294, 295, -1, 297,
25185 : -1, 299, 300, 301, 302, 303, 304, 305, -1, 307,
25186 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
25187 : 318, 319, -1, 321, -1, 323, 324, 325, 326, 327,
25188 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
25189 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
25190 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
25191 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
25192 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
25193 : 378, -1, 380, 381, 382, 383, 384, 385, 386, 387,
25194 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
25195 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
25196 : -1, 409, 410, 411, 412, -1, 414, 415, 416, 417,
25197 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
25198 : 428, 429, 430, -1, 432, 433, -1, -1, 436, -1,
25199 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
25200 : -1, -1, 450, 451, 452, 453, 454, -1, 456, 457,
25201 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
25202 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
25203 : 478, 479, 480, -1, 482, -1, 484, 485, 486, 487,
25204 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
25205 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
25206 : 508, 509, 510, 511, 512, 513, 3, -1, -1, -1,
25207 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25208 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
25209 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
25210 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
25211 : 47, -1, 49, 50, 51, 52, 53, -1, 55, 56,
25212 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
25213 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
25214 : 77, -1, -1, -1, 81, 82, 83, 84, 85, 86,
25215 : -1, 88, 89, 90, 91, -1, 93, 94, 95, 96,
25216 : 97, 98, -1, -1, 101, 102, 103, -1, -1, -1,
25217 : -1, -1, -1, -1, 111, 112, 113, 114, 115, 116,
25218 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
25219 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
25220 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
25221 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
25222 : 157, 158, 159, 160, 161, 162, 163, -1, 165, -1,
25223 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
25224 : -1, -1, -1, 180, 181, 182, 183, -1, 185, 186,
25225 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
25226 : -1, 198, 199, 200, 201, -1, 203, 204, 205, 206,
25227 : 207, 208, 209, 210, -1, 212, -1, 214, 215, 216,
25228 : 217, 218, 219, 220, -1, 222, -1, 224, -1, -1,
25229 : 227, -1, 229, 230, 231, 232, 233, 234, 235, 236,
25230 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
25231 : -1, -1, 249, 250, -1, 252, -1, -1, 255, 256,
25232 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
25233 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
25234 : 277, 278, 279, -1, 281, 282, 283, 284, 285, 286,
25235 : 287, 288, 289, 290, 291, 292, -1, 294, 295, -1,
25236 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
25237 : 307, 308, 309, -1, 311, 312, 313, 314, -1, -1,
25238 : 317, 318, 319, -1, 321, -1, 323, 324, 325, 326,
25239 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
25240 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
25241 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
25242 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
25243 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
25244 : 377, 378, -1, 380, 381, 382, 383, 384, 385, 386,
25245 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
25246 : 397, 398, 399, 400, 401, -1, 403, 404, 405, 406,
25247 : 407, -1, 409, 410, 411, 412, -1, 414, 415, 416,
25248 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
25249 : 427, 428, 429, 430, -1, 432, 433, -1, -1, 436,
25250 : -1, 438, 439, 440, 441, 442, 443, -1, 445, 446,
25251 : 447, -1, -1, 450, 451, 452, 453, 454, -1, 456,
25252 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
25253 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
25254 : 477, 478, 479, 480, -1, 482, -1, 484, 485, 486,
25255 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
25256 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
25257 : 507, 508, 509, 510, 511, 512, 513, 3, -1, -1,
25258 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25259 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
25260 : 26, 27, 28, 29, 30, 31, 32, -1, -1, -1,
25261 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
25262 : 46, 47, -1, 49, 50, 51, 52, 53, -1, 55,
25263 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
25264 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
25265 : 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
25266 : 86, -1, 88, 89, 90, 91, -1, 93, 94, 95,
25267 : 96, 97, 98, -1, -1, 101, 102, 103, -1, -1,
25268 : -1, -1, -1, -1, -1, 111, 112, 113, 114, 115,
25269 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
25270 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
25271 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
25272 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
25273 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
25274 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
25275 : 176, -1, -1, -1, 180, 181, 182, 183, -1, 185,
25276 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
25277 : 196, -1, 198, 199, 200, 201, -1, 203, 204, 205,
25278 : 206, 207, 208, 209, 210, -1, 212, -1, 214, 215,
25279 : 216, 217, 218, 219, 220, -1, 222, -1, 224, -1,
25280 : -1, 227, -1, 229, 230, 231, 232, 233, 234, 235,
25281 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
25282 : 246, -1, -1, 249, 250, -1, 252, -1, -1, 255,
25283 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
25284 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
25285 : 276, 277, 278, 279, -1, 281, 282, 283, 284, 285,
25286 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
25287 : -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
25288 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
25289 : -1, 317, 318, 319, -1, 321, -1, 323, 324, 325,
25290 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
25291 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
25292 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
25293 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
25294 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
25295 : -1, 377, 378, -1, 380, 381, 382, 383, 384, 385,
25296 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
25297 : -1, 397, 398, 399, 400, 401, -1, 403, 404, 405,
25298 : 406, 407, -1, 409, 410, 411, 412, -1, 414, 415,
25299 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
25300 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
25301 : 436, -1, 438, 439, 440, 441, 442, 443, -1, 445,
25302 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
25303 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
25304 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
25305 : 476, 477, 478, 479, 480, -1, 482, -1, 484, 485,
25306 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
25307 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
25308 : 506, 507, 508, 509, 510, 511, 512, 513, 3, -1,
25309 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25310 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
25311 : 25, 26, 27, 28, 29, 30, 31, 32, -1, -1,
25312 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
25313 : 45, 46, 47, -1, 49, 50, 51, 52, 53, -1,
25314 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
25315 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
25316 : 75, 76, 77, -1, -1, -1, 81, 82, 83, 84,
25317 : 85, 86, -1, 88, 89, 90, 91, -1, 93, 94,
25318 : 95, 96, 97, 98, -1, -1, 101, 102, 103, -1,
25319 : -1, -1, -1, -1, -1, -1, 111, 112, 113, 114,
25320 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
25321 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
25322 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
25323 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
25324 : 155, 156, 157, 158, 159, 160, 161, 162, 163, -1,
25325 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
25326 : 175, 176, -1, -1, -1, 180, 181, 182, 183, -1,
25327 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
25328 : 195, 196, -1, 198, 199, 200, 201, -1, 203, 204,
25329 : 205, 206, 207, 208, 209, 210, -1, 212, -1, 214,
25330 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
25331 : -1, -1, 227, -1, 229, 230, 231, 232, 233, 234,
25332 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
25333 : 245, 246, -1, -1, 249, 250, -1, 252, -1, -1,
25334 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
25335 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
25336 : 275, 276, 277, 278, 279, -1, 281, 282, 283, 284,
25337 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
25338 : 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
25339 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
25340 : -1, -1, 317, 318, 319, -1, 321, -1, 323, 324,
25341 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
25342 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
25343 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
25344 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
25345 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
25346 : 375, -1, 377, 378, -1, 380, 381, 382, 383, 384,
25347 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
25348 : 395, -1, 397, 398, 399, 400, 401, -1, 403, 404,
25349 : 405, 406, 407, -1, 409, 410, 411, 412, -1, 414,
25350 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
25351 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
25352 : -1, 436, -1, 438, 439, 440, 441, 442, 443, -1,
25353 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
25354 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
25355 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
25356 : 475, 476, 477, 478, 479, 480, -1, 482, -1, 484,
25357 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
25358 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
25359 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 3,
25360 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25361 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
25362 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
25363 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
25364 : 44, 45, 46, 47, -1, 49, 50, 51, 52, 53,
25365 : -1, 55, 56, -1, 58, 59, 60, 61, 62, 63,
25366 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
25367 : 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
25368 : 84, 85, 86, -1, 88, 89, 90, 91, -1, 93,
25369 : 94, 95, 96, 97, 98, -1, -1, 101, 102, 103,
25370 : -1, -1, -1, -1, -1, -1, -1, 111, 112, 113,
25371 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
25372 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
25373 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
25374 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
25375 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
25376 : -1, 165, -1, 167, 168, 169, 170, 171, -1, 173,
25377 : -1, 175, 176, -1, -1, -1, 180, 181, 182, 183,
25378 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
25379 : 194, 195, 196, -1, 198, 199, 200, 201, -1, 203,
25380 : 204, 205, 206, 207, 208, 209, 210, -1, 212, -1,
25381 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
25382 : 224, -1, -1, 227, -1, 229, 230, 231, 232, 233,
25383 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
25384 : 244, 245, 246, -1, -1, 249, 250, -1, 252, -1,
25385 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
25386 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
25387 : 274, 275, 276, 277, 278, 279, -1, 281, 282, 283,
25388 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
25389 : 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
25390 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
25391 : 314, -1, -1, 317, 318, 319, -1, 321, -1, 323,
25392 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
25393 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
25394 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
25395 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
25396 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
25397 : 374, 375, -1, 377, 378, -1, 380, 381, 382, 383,
25398 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
25399 : 394, 395, -1, 397, 398, 399, 400, 401, -1, 403,
25400 : 404, 405, 406, 407, -1, 409, 410, 411, 412, -1,
25401 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
25402 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
25403 : -1, 435, 436, -1, 438, 439, 440, 441, 442, 443,
25404 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
25405 : 454, -1, 456, 457, 458, 459, 460, 461, 462, 463,
25406 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
25407 : 474, 475, 476, 477, 478, 479, 480, -1, 482, -1,
25408 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
25409 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
25410 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
25411 : 3, -1, -1, 6, -1, -1, -1, -1, -1, -1,
25412 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
25413 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
25414 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
25415 : -1, 44, 45, 46, 47, -1, 49, 50, 51, 52,
25416 : 53, -1, 55, 56, -1, 58, 59, 60, 61, 62,
25417 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
25418 : 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
25419 : 83, 84, 85, 86, -1, 88, 89, 90, 91, -1,
25420 : 93, 94, 95, 96, 97, 98, -1, -1, 101, 102,
25421 : 103, -1, -1, -1, -1, -1, -1, -1, 111, 112,
25422 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
25423 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
25424 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
25425 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
25426 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
25427 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
25428 : 173, -1, 175, 176, -1, -1, -1, 180, 181, 182,
25429 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
25430 : 193, 194, 195, 196, -1, 198, 199, 200, 201, -1,
25431 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
25432 : -1, 214, 215, 216, 217, 218, 219, 220, -1, 222,
25433 : -1, 224, -1, -1, 227, -1, 229, 230, 231, 232,
25434 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
25435 : 243, 244, 245, 246, -1, -1, 249, 250, -1, 252,
25436 : -1, -1, 255, 256, 257, -1, -1, 260, 261, 262,
25437 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
25438 : 273, 274, 275, 276, 277, 278, 279, -1, 281, 282,
25439 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
25440 : -1, 294, 295, -1, 297, -1, 299, 300, 301, 302,
25441 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
25442 : 313, 314, -1, -1, 317, 318, 319, -1, 321, -1,
25443 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
25444 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
25445 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
25446 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
25447 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
25448 : 373, 374, 375, -1, 377, 378, -1, 380, 381, 382,
25449 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
25450 : 393, 394, 395, -1, 397, 398, 399, 400, 401, -1,
25451 : 403, 404, 405, 406, 407, -1, 409, 410, 411, 412,
25452 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
25453 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
25454 : 433, -1, -1, 436, -1, 438, 439, 440, 441, 442,
25455 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
25456 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
25457 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
25458 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
25459 : -1, 484, 485, 486, 487, 488, -1, -1, 491, -1,
25460 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
25461 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
25462 : 513, 3, -1, -1, -1, -1, -1, -1, -1, 11,
25463 : -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
25464 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
25465 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
25466 : 42, -1, 44, 45, 46, 47, -1, 49, 50, 51,
25467 : 52, 53, -1, 55, 56, -1, 58, 59, 60, 61,
25468 : 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
25469 : -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
25470 : 82, 83, 84, 85, 86, -1, 88, 89, 90, 91,
25471 : -1, 93, 94, 95, 96, 97, 98, -1, -1, 101,
25472 : 102, 103, -1, -1, -1, -1, -1, -1, -1, 111,
25473 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
25474 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
25475 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
25476 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
25477 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
25478 : 162, 163, -1, 165, -1, 167, 168, 169, 170, 171,
25479 : -1, 173, -1, 175, 176, -1, -1, -1, 180, 181,
25480 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
25481 : 192, 193, 194, 195, 196, -1, 198, 199, 200, 201,
25482 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
25483 : 212, -1, 214, 215, 216, 217, 218, 219, 220, -1,
25484 : 222, -1, 224, -1, -1, 227, -1, 229, 230, 231,
25485 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
25486 : 242, 243, 244, 245, 246, -1, -1, 249, 250, -1,
25487 : 252, -1, -1, 255, 256, 257, -1, -1, 260, 261,
25488 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
25489 : 272, 273, 274, 275, 276, 277, 278, 279, -1, 281,
25490 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
25491 : 292, -1, 294, 295, -1, 297, -1, 299, 300, 301,
25492 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
25493 : 312, 313, 314, -1, -1, 317, 318, 319, -1, 321,
25494 : -1, 323, 324, 325, 326, 327, 328, 329, 330, 331,
25495 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
25496 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
25497 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
25498 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
25499 : 372, 373, 374, 375, -1, 377, 378, -1, 380, 381,
25500 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
25501 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
25502 : -1, 403, 404, 405, 406, 407, -1, 409, 410, 411,
25503 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
25504 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
25505 : 432, 433, -1, -1, 436, -1, 438, 439, 440, 441,
25506 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
25507 : 452, 453, 454, -1, 456, 457, 458, 459, 460, 461,
25508 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
25509 : -1, -1, 474, 475, 476, 477, 478, 479, 480, -1,
25510 : 482, -1, 484, 485, 486, 487, 488, -1, -1, 491,
25511 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
25512 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
25513 : 512, 513, 3, -1, -1, -1, -1, -1, -1, -1,
25514 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
25515 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
25516 : 31, 32, -1, -1, -1, -1, -1, 38, -1, 40,
25517 : 41, 42, -1, 44, 45, 46, 47, -1, 49, 50,
25518 : 51, 52, 53, -1, 55, 56, -1, 58, 59, 60,
25519 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
25520 : 71, -1, 73, 74, 75, 76, 77, -1, -1, -1,
25521 : 81, 82, 83, 84, 85, 86, -1, 88, 89, 90,
25522 : 91, -1, 93, 94, 95, 96, 97, 98, -1, -1,
25523 : 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
25524 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
25525 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
25526 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
25527 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
25528 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
25529 : 161, 162, 163, -1, 165, -1, 167, 168, 169, 170,
25530 : 171, -1, 173, -1, 175, 176, -1, -1, -1, 180,
25531 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
25532 : -1, 192, 193, 194, 195, 196, -1, 198, 199, 200,
25533 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
25534 : -1, 212, -1, 214, 215, 216, 217, 218, 219, 220,
25535 : -1, 222, -1, 224, -1, -1, 227, -1, 229, 230,
25536 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
25537 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
25538 : -1, 252, -1, -1, 255, 256, 257, -1, -1, 260,
25539 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
25540 : 271, 272, 273, 274, 275, 276, 277, 278, 279, -1,
25541 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
25542 : 291, 292, -1, 294, 295, -1, 297, -1, 299, 300,
25543 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
25544 : -1, 312, 313, 314, -1, -1, 317, 318, 319, -1,
25545 : 321, -1, 323, 324, 325, 326, 327, 328, 329, 330,
25546 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
25547 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
25548 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
25549 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
25550 : 371, 372, 373, 374, 375, -1, 377, 378, -1, 380,
25551 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
25552 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
25553 : 401, -1, 403, 404, 405, 406, 407, -1, 409, 410,
25554 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
25555 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
25556 : -1, 432, 433, -1, -1, 436, -1, 438, 439, 440,
25557 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
25558 : 451, 452, 453, 454, -1, 456, 457, 458, 459, 460,
25559 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
25560 : 471, -1, -1, 474, 475, 476, 477, 478, 479, 480,
25561 : -1, 482, -1, 484, 485, 486, 487, 488, -1, -1,
25562 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
25563 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
25564 : 511, 512, 513, 3, -1, -1, -1, -1, -1, -1,
25565 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25566 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
25567 : 30, 31, 32, -1, -1, -1, -1, -1, 38, -1,
25568 : 40, 41, 42, -1, 44, 45, 46, 47, -1, 49,
25569 : 50, 51, 52, 53, -1, 55, 56, -1, 58, 59,
25570 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
25571 : 70, 71, -1, 73, 74, 75, 76, 77, -1, -1,
25572 : -1, 81, 82, 83, 84, 85, 86, -1, 88, 89,
25573 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
25574 : -1, 101, 102, 103, -1, -1, -1, -1, -1, -1,
25575 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
25576 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
25577 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
25578 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
25579 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
25580 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
25581 : 170, 171, -1, 173, -1, 175, 176, -1, -1, -1,
25582 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
25583 : 190, -1, 192, 193, 194, 195, 196, -1, 198, 199,
25584 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
25585 : 210, -1, 212, -1, 214, 215, 216, 217, 218, 219,
25586 : 220, -1, 222, -1, 224, -1, -1, 227, -1, 229,
25587 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
25588 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
25589 : 250, -1, 252, -1, -1, 255, 256, 257, -1, -1,
25590 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
25591 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
25592 : -1, 281, 282, 283, 284, 285, 286, 287, 288, 289,
25593 : 290, 291, 292, -1, 294, 295, -1, 297, -1, 299,
25594 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
25595 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
25596 : -1, 321, -1, 323, 324, 325, 326, 327, 328, 329,
25597 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
25598 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
25599 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
25600 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
25601 : 370, 371, 372, 373, 374, 375, -1, 377, 378, -1,
25602 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
25603 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
25604 : 400, 401, -1, 403, 404, 405, 406, 407, -1, 409,
25605 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
25606 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
25607 : 430, -1, 432, 433, -1, -1, 436, -1, 438, 439,
25608 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
25609 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
25610 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
25611 : 470, 471, -1, -1, 474, 475, 476, 477, 478, 479,
25612 : 480, -1, 482, -1, 484, 485, 486, 487, 488, -1,
25613 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
25614 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
25615 : 510, 511, 512, 513, 3, -1, -1, -1, -1, -1,
25616 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25617 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
25618 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
25619 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
25620 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
25621 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
25622 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
25623 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
25624 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
25625 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
25626 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
25627 : 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
25628 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
25629 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
25630 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
25631 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
25632 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
25633 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
25634 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
25635 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
25636 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
25637 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
25638 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
25639 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
25640 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
25641 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
25642 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
25643 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
25644 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
25645 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
25646 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
25647 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
25648 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
25649 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
25650 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
25651 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
25652 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
25653 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
25654 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
25655 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
25656 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
25657 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
25658 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
25659 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
25660 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
25661 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
25662 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
25663 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
25664 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
25665 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
25666 : 509, 510, 511, 512, 513, 3, -1, -1, -1, -1,
25667 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25668 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
25669 : 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
25670 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
25671 : -1, 49, 50, 51, 52, 53, -1, 55, 56, -1,
25672 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
25673 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
25674 : -1, -1, -1, 81, 82, 83, 84, 85, 86, -1,
25675 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
25676 : 98, -1, -1, 101, 102, 103, -1, -1, -1, -1,
25677 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
25678 : 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
25679 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
25680 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
25681 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
25682 : 158, 159, 160, 161, 162, 163, -1, 165, -1, 167,
25683 : 168, 169, 170, 171, -1, 173, -1, 175, 176, -1,
25684 : -1, -1, 180, 181, 182, 183, -1, 185, 186, -1,
25685 : 188, 189, 190, -1, 192, 193, 194, 195, 196, -1,
25686 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
25687 : 208, 209, 210, -1, 212, -1, 214, 215, 216, 217,
25688 : 218, 219, 220, -1, 222, -1, 224, -1, -1, 227,
25689 : -1, 229, 230, 231, 232, 233, 234, 235, 236, 237,
25690 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
25691 : -1, 249, 250, -1, 252, -1, -1, 255, 256, 257,
25692 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
25693 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
25694 : 278, 279, -1, 281, 282, 283, 284, 285, 286, 287,
25695 : 288, 289, 290, 291, 292, -1, 294, 295, -1, 297,
25696 : -1, 299, 300, 301, 302, 303, 304, 305, -1, 307,
25697 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
25698 : 318, 319, -1, 321, -1, 323, 324, 325, 326, 327,
25699 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
25700 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
25701 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
25702 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
25703 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
25704 : 378, -1, 380, 381, 382, 383, 384, 385, 386, 387,
25705 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
25706 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
25707 : -1, 409, 410, 411, 412, -1, 414, 415, 416, 417,
25708 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
25709 : 428, 429, 430, -1, 432, 433, -1, -1, 436, -1,
25710 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
25711 : -1, -1, 450, 451, 452, 453, 454, -1, 456, 457,
25712 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
25713 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
25714 : 478, 479, 480, -1, 482, -1, 484, 485, 486, 487,
25715 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
25716 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
25717 : 508, 509, 510, 511, 512, 513, 3, -1, -1, -1,
25718 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25719 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
25720 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
25721 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
25722 : 47, -1, 49, 50, 51, 52, 53, -1, 55, 56,
25723 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
25724 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
25725 : 77, -1, -1, -1, 81, 82, 83, 84, 85, 86,
25726 : -1, 88, 89, 90, 91, -1, 93, 94, 95, 96,
25727 : 97, 98, -1, -1, 101, 102, 103, -1, -1, -1,
25728 : 107, -1, -1, -1, 111, 112, 113, 114, 115, 116,
25729 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
25730 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
25731 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
25732 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
25733 : 157, 158, 159, 160, 161, 162, 163, -1, 165, -1,
25734 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
25735 : -1, -1, -1, 180, 181, 182, 183, -1, 185, 186,
25736 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
25737 : -1, 198, 199, 200, 201, -1, 203, 204, 205, 206,
25738 : 207, 208, 209, 210, -1, 212, -1, 214, 215, 216,
25739 : 217, 218, 219, 220, -1, 222, -1, 224, -1, -1,
25740 : 227, -1, 229, 230, 231, 232, 233, 234, 235, 236,
25741 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
25742 : -1, -1, 249, 250, -1, 252, -1, -1, 255, 256,
25743 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
25744 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
25745 : 277, 278, 279, -1, 281, 282, 283, 284, 285, 286,
25746 : 287, 288, 289, 290, 291, 292, -1, 294, 295, -1,
25747 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
25748 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
25749 : 317, 318, 319, -1, 321, -1, 323, 324, 325, 326,
25750 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
25751 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
25752 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
25753 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
25754 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
25755 : 377, 378, -1, 380, 381, 382, 383, 384, 385, 386,
25756 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
25757 : 397, 398, 399, 400, 401, -1, 403, 404, 405, 406,
25758 : 407, -1, 409, 410, 411, 412, -1, 414, 415, 416,
25759 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
25760 : 427, 428, 429, 430, -1, 432, 433, -1, -1, 436,
25761 : -1, 438, 439, 440, 441, 442, 443, -1, 445, 446,
25762 : 447, -1, -1, 450, 451, 452, 453, 454, -1, 456,
25763 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
25764 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
25765 : 477, 478, 479, 480, -1, 482, -1, 484, 485, 486,
25766 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
25767 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
25768 : 507, 508, 509, 510, 511, 512, 513, 3, -1, -1,
25769 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25770 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
25771 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
25772 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
25773 : 46, 47, -1, 49, 50, 51, 52, 53, -1, 55,
25774 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
25775 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
25776 : 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
25777 : 86, -1, 88, 89, 90, 91, -1, 93, 94, 95,
25778 : 96, 97, 98, -1, -1, 101, 102, 103, -1, -1,
25779 : -1, -1, -1, -1, -1, 111, 112, 113, 114, 115,
25780 : 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
25781 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
25782 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
25783 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
25784 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
25785 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
25786 : 176, -1, -1, -1, 180, 181, 182, 183, -1, 185,
25787 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
25788 : 196, -1, 198, 199, 200, 201, -1, 203, 204, 205,
25789 : 206, 207, 208, 209, 210, -1, 212, -1, 214, 215,
25790 : 216, 217, 218, 219, 220, -1, 222, -1, 224, -1,
25791 : -1, 227, -1, 229, 230, 231, 232, 233, 234, 235,
25792 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
25793 : 246, -1, -1, 249, 250, -1, 252, -1, -1, 255,
25794 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
25795 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
25796 : 276, 277, 278, 279, -1, 281, 282, 283, 284, 285,
25797 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
25798 : -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
25799 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
25800 : -1, 317, 318, 319, -1, 321, -1, 323, 324, 325,
25801 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
25802 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
25803 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
25804 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
25805 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
25806 : -1, 377, 378, -1, 380, 381, 382, 383, 384, 385,
25807 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
25808 : -1, 397, 398, 399, 400, 401, -1, 403, 404, 405,
25809 : 406, 407, -1, 409, 410, 411, 412, -1, 414, 415,
25810 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
25811 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
25812 : 436, -1, 438, 439, 440, 441, 442, 443, -1, 445,
25813 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
25814 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
25815 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
25816 : 476, 477, 478, 479, 480, -1, 482, -1, 484, 485,
25817 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
25818 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
25819 : 506, 507, 508, 509, 510, 511, 512, 513, 3, -1,
25820 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25821 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
25822 : 25, 26, 27, 28, -1, 30, 31, 32, -1, -1,
25823 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
25824 : 45, 46, 47, -1, 49, 50, 51, 52, 53, -1,
25825 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
25826 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
25827 : 75, 76, 77, -1, -1, -1, 81, 82, 83, 84,
25828 : 85, 86, -1, 88, 89, 90, 91, -1, 93, 94,
25829 : 95, 96, 97, 98, -1, -1, 101, 102, 103, -1,
25830 : -1, -1, -1, -1, -1, -1, 111, 112, 113, 114,
25831 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
25832 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
25833 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
25834 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
25835 : 155, 156, 157, 158, 159, 160, 161, 162, 163, -1,
25836 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
25837 : 175, 176, -1, -1, -1, 180, 181, 182, 183, -1,
25838 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
25839 : 195, 196, -1, 198, 199, 200, 201, -1, 203, 204,
25840 : 205, 206, 207, 208, 209, 210, -1, 212, -1, 214,
25841 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
25842 : -1, -1, 227, -1, 229, 230, 231, 232, 233, 234,
25843 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
25844 : 245, 246, -1, -1, 249, 250, -1, 252, -1, -1,
25845 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
25846 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
25847 : 275, 276, 277, 278, 279, -1, 281, 282, 283, 284,
25848 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
25849 : 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
25850 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
25851 : -1, -1, 317, 318, 319, -1, 321, -1, 323, 324,
25852 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
25853 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
25854 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
25855 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
25856 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
25857 : 375, -1, 377, 378, -1, 380, 381, 382, 383, 384,
25858 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
25859 : 395, -1, 397, 398, 399, 400, 401, -1, 403, 404,
25860 : 405, 406, 407, -1, 409, 410, 411, 412, -1, 414,
25861 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
25862 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
25863 : -1, 436, -1, 438, 439, 440, 441, 442, 443, -1,
25864 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
25865 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
25866 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
25867 : 475, 476, 477, 478, 479, 480, -1, 482, -1, 484,
25868 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
25869 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
25870 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 3,
25871 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25872 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
25873 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
25874 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
25875 : 44, 45, 46, 47, -1, 49, 50, 51, 52, 53,
25876 : -1, 55, 56, -1, 58, 59, 60, 61, 62, 63,
25877 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
25878 : 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
25879 : 84, 85, 86, -1, 88, 89, 90, 91, -1, 93,
25880 : 94, 95, 96, 97, 98, -1, -1, 101, 102, 103,
25881 : -1, -1, -1, -1, -1, -1, -1, 111, 112, 113,
25882 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
25883 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
25884 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
25885 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
25886 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
25887 : -1, 165, -1, 167, 168, 169, 170, 171, -1, 173,
25888 : -1, 175, 176, -1, -1, -1, 180, 181, 182, 183,
25889 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
25890 : 194, 195, 196, -1, 198, 199, 200, 201, -1, 203,
25891 : 204, 205, 206, 207, 208, 209, 210, -1, 212, -1,
25892 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
25893 : 224, -1, -1, 227, -1, 229, 230, 231, 232, 233,
25894 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
25895 : 244, 245, 246, -1, -1, 249, 250, -1, 252, -1,
25896 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
25897 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
25898 : 274, 275, 276, 277, 278, 279, -1, 281, 282, 283,
25899 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
25900 : 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
25901 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
25902 : 314, -1, -1, 317, 318, 319, -1, 321, -1, 323,
25903 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
25904 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
25905 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
25906 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
25907 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
25908 : 374, 375, -1, 377, 378, -1, 380, 381, 382, 383,
25909 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
25910 : 394, 395, -1, 397, 398, 399, 400, 401, -1, 403,
25911 : 404, 405, 406, 407, -1, 409, 410, 411, 412, -1,
25912 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
25913 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
25914 : -1, -1, 436, -1, 438, 439, 440, 441, 442, 443,
25915 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
25916 : 454, -1, 456, 457, 458, 459, 460, 461, 462, 463,
25917 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
25918 : 474, 475, 476, 477, 478, 479, 480, -1, 482, -1,
25919 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
25920 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
25921 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
25922 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25923 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
25924 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
25925 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
25926 : -1, 44, 45, 46, 47, -1, 49, 50, 51, 52,
25927 : 53, -1, 55, 56, -1, 58, 59, 60, 61, 62,
25928 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
25929 : 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
25930 : 83, 84, 85, 86, -1, 88, 89, 90, 91, -1,
25931 : 93, 94, 95, 96, 97, 98, -1, -1, 101, 102,
25932 : 103, -1, -1, -1, -1, -1, -1, -1, 111, 112,
25933 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
25934 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
25935 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
25936 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
25937 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
25938 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
25939 : 173, -1, 175, 176, -1, -1, -1, 180, 181, 182,
25940 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
25941 : 193, 194, 195, 196, -1, 198, 199, 200, 201, -1,
25942 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
25943 : -1, 214, 215, 216, 217, 218, 219, 220, -1, 222,
25944 : -1, 224, -1, -1, 227, -1, 229, 230, 231, 232,
25945 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
25946 : 243, 244, 245, 246, -1, -1, 249, 250, -1, 252,
25947 : -1, -1, 255, 256, 257, -1, -1, 260, 261, 262,
25948 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
25949 : 273, 274, 275, 276, 277, 278, 279, -1, 281, 282,
25950 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
25951 : -1, 294, 295, -1, 297, -1, 299, 300, 301, 302,
25952 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
25953 : 313, 314, -1, -1, 317, 318, 319, -1, 321, -1,
25954 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
25955 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
25956 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
25957 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
25958 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
25959 : 373, 374, 375, -1, 377, 378, -1, 380, 381, 382,
25960 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
25961 : 393, 394, 395, -1, 397, 398, 399, 400, 401, -1,
25962 : 403, 404, 405, 406, 407, -1, 409, 410, 411, 412,
25963 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
25964 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
25965 : 433, -1, -1, 436, -1, 438, 439, 440, 441, 442,
25966 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
25967 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
25968 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
25969 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
25970 : -1, 484, 485, 486, 487, 488, -1, -1, 491, -1,
25971 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
25972 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
25973 : 513, 3, -1, -1, -1, -1, -1, -1, -1, -1,
25974 : -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
25975 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
25976 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
25977 : 42, -1, 44, 45, 46, 47, -1, 49, 50, 51,
25978 : 52, 53, -1, 55, 56, -1, 58, 59, 60, 61,
25979 : 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
25980 : -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
25981 : 82, 83, 84, 85, 86, -1, 88, 89, 90, 91,
25982 : -1, 93, 94, 95, 96, 97, 98, -1, -1, 101,
25983 : 102, 103, -1, -1, -1, -1, -1, -1, -1, 111,
25984 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
25985 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
25986 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
25987 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
25988 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
25989 : 162, 163, -1, 165, -1, 167, 168, 169, 170, 171,
25990 : -1, 173, -1, 175, 176, -1, -1, -1, 180, 181,
25991 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
25992 : 192, 193, 194, 195, 196, -1, 198, 199, 200, 201,
25993 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
25994 : 212, -1, 214, 215, 216, 217, 218, 219, 220, -1,
25995 : 222, -1, 224, -1, -1, 227, -1, 229, 230, 231,
25996 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
25997 : 242, 243, 244, 245, 246, -1, -1, 249, 250, -1,
25998 : 252, -1, -1, 255, 256, 257, -1, -1, 260, 261,
25999 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
26000 : 272, 273, 274, 275, 276, 277, 278, 279, -1, 281,
26001 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
26002 : 292, -1, 294, 295, -1, 297, -1, 299, 300, 301,
26003 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
26004 : 312, 313, 314, -1, -1, 317, 318, 319, -1, 321,
26005 : -1, 323, 324, 325, 326, 327, 328, 329, 330, 331,
26006 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
26007 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
26008 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
26009 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
26010 : 372, 373, 374, 375, -1, 377, 378, -1, 380, 381,
26011 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
26012 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
26013 : -1, 403, 404, 405, 406, 407, -1, 409, 410, 411,
26014 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
26015 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
26016 : 432, 433, -1, -1, 436, -1, 438, 439, 440, 441,
26017 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
26018 : 452, 453, 454, -1, 456, 457, 458, 459, 460, 461,
26019 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
26020 : -1, -1, 474, 475, 476, 477, 478, 479, 480, -1,
26021 : 482, -1, 484, 485, 486, 487, 488, -1, -1, 491,
26022 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
26023 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
26024 : 512, 513, 3, -1, -1, -1, -1, -1, -1, -1,
26025 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
26026 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
26027 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
26028 : 41, 42, -1, 44, 45, 46, 47, -1, 49, 50,
26029 : 51, 52, 53, -1, 55, 56, -1, 58, 59, 60,
26030 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
26031 : 71, -1, 73, 74, 75, 76, 77, -1, -1, -1,
26032 : 81, 82, 83, 84, 85, 86, -1, 88, 89, 90,
26033 : 91, -1, 93, 94, 95, 96, 97, 98, -1, -1,
26034 : 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
26035 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
26036 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
26037 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
26038 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
26039 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
26040 : 161, 162, 163, -1, 165, -1, 167, 168, 169, 170,
26041 : 171, -1, 173, -1, 175, 176, -1, -1, -1, 180,
26042 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
26043 : -1, 192, 193, 194, 195, 196, -1, 198, 199, 200,
26044 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
26045 : -1, 212, -1, 214, 215, 216, 217, 218, 219, 220,
26046 : -1, 222, -1, 224, -1, -1, 227, -1, 229, 230,
26047 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
26048 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
26049 : -1, 252, -1, -1, 255, 256, 257, -1, -1, 260,
26050 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
26051 : 271, 272, 273, 274, 275, 276, 277, 278, 279, -1,
26052 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
26053 : 291, 292, -1, 294, 295, -1, 297, -1, 299, 300,
26054 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
26055 : -1, 312, 313, 314, -1, -1, 317, 318, 319, -1,
26056 : 321, -1, 323, 324, 325, 326, 327, 328, 329, 330,
26057 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
26058 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
26059 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
26060 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
26061 : 371, 372, 373, 374, 375, -1, 377, 378, -1, 380,
26062 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
26063 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
26064 : 401, -1, 403, 404, 405, 406, 407, -1, 409, 410,
26065 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
26066 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
26067 : -1, 432, 433, -1, -1, 436, -1, 438, 439, 440,
26068 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
26069 : 451, 452, 453, 454, -1, 456, 457, 458, 459, 460,
26070 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
26071 : 471, -1, -1, 474, 475, 476, 477, 478, 479, 480,
26072 : -1, 482, -1, 484, 485, 486, 487, 488, -1, -1,
26073 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
26074 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
26075 : 511, 512, 513, 3, -1, -1, -1, -1, -1, -1,
26076 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26077 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
26078 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
26079 : 40, 41, 42, -1, 44, 45, 46, 47, -1, 49,
26080 : 50, 51, 52, 53, -1, 55, 56, -1, 58, 59,
26081 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
26082 : 70, 71, -1, 73, 74, 75, 76, 77, -1, -1,
26083 : -1, 81, 82, 83, 84, 85, 86, -1, 88, 89,
26084 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
26085 : -1, 101, 102, 103, -1, -1, -1, -1, -1, -1,
26086 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
26087 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
26088 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
26089 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
26090 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
26091 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
26092 : 170, 171, -1, 173, -1, 175, 176, -1, -1, -1,
26093 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
26094 : 190, -1, 192, 193, 194, 195, 196, -1, 198, 199,
26095 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
26096 : 210, -1, 212, -1, 214, 215, 216, 217, 218, 219,
26097 : 220, -1, 222, -1, 224, -1, -1, 227, -1, 229,
26098 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
26099 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
26100 : 250, -1, 252, -1, -1, 255, 256, 257, -1, -1,
26101 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
26102 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
26103 : -1, 281, 282, 283, 284, 285, 286, 287, 288, 289,
26104 : 290, 291, 292, -1, 294, 295, -1, 297, -1, 299,
26105 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
26106 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
26107 : -1, 321, -1, 323, 324, 325, 326, 327, 328, 329,
26108 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
26109 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
26110 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
26111 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
26112 : 370, 371, 372, 373, 374, 375, -1, 377, 378, -1,
26113 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
26114 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
26115 : 400, 401, -1, 403, 404, 405, 406, 407, -1, 409,
26116 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
26117 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
26118 : 430, -1, 432, 433, -1, -1, 436, -1, 438, 439,
26119 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
26120 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
26121 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
26122 : 470, 471, -1, -1, 474, 475, 476, 477, 478, 479,
26123 : 480, -1, 482, -1, 484, 485, 486, 487, 488, -1,
26124 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
26125 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
26126 : 510, 511, 512, 513, 3, -1, -1, -1, -1, -1,
26127 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26128 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
26129 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
26130 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
26131 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
26132 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
26133 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
26134 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
26135 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
26136 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
26137 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
26138 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
26139 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
26140 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
26141 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
26142 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
26143 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
26144 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
26145 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
26146 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
26147 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
26148 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
26149 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
26150 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
26151 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
26152 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
26153 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
26154 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
26155 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
26156 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
26157 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
26158 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
26159 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
26160 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
26161 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
26162 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
26163 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
26164 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
26165 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
26166 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
26167 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
26168 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
26169 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
26170 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
26171 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
26172 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
26173 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
26174 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
26175 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
26176 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
26177 : 509, 510, 511, 512, 513, 3, -1, -1, -1, -1,
26178 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26179 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
26180 : 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
26181 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
26182 : -1, 49, 50, 51, 52, 53, -1, 55, 56, -1,
26183 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
26184 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
26185 : -1, -1, -1, 81, 82, 83, 84, 85, 86, -1,
26186 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
26187 : 98, -1, -1, 101, 102, 103, -1, -1, -1, -1,
26188 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
26189 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
26190 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
26191 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
26192 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
26193 : 158, 159, 160, 161, 162, 163, -1, 165, -1, 167,
26194 : 168, 169, 170, 171, -1, 173, -1, 175, 176, -1,
26195 : -1, -1, 180, 181, 182, 183, -1, 185, 186, -1,
26196 : 188, 189, 190, -1, 192, 193, 194, 195, 196, -1,
26197 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
26198 : 208, 209, 210, -1, 212, -1, 214, 215, 216, 217,
26199 : 218, 219, 220, -1, 222, -1, 224, -1, -1, 227,
26200 : -1, 229, 230, 231, 232, 233, 234, 235, 236, 237,
26201 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
26202 : -1, 249, 250, -1, 252, -1, -1, 255, 256, 257,
26203 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
26204 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
26205 : 278, 279, -1, 281, 282, 283, 284, 285, 286, 287,
26206 : 288, 289, 290, 291, 292, -1, 294, 295, -1, 297,
26207 : -1, 299, 300, 301, 302, 303, 304, 305, -1, 307,
26208 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
26209 : 318, 319, -1, 321, -1, 323, 324, 325, 326, 327,
26210 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
26211 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
26212 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
26213 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
26214 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
26215 : 378, -1, 380, 381, 382, 383, 384, 385, 386, 387,
26216 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
26217 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
26218 : -1, 409, 410, 411, 412, -1, 414, 415, 416, 417,
26219 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
26220 : 428, 429, 430, -1, 432, 433, -1, -1, 436, -1,
26221 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
26222 : -1, -1, 450, 451, 452, 453, 454, -1, 456, 457,
26223 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
26224 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
26225 : 478, 479, 480, -1, 482, -1, 484, 485, 486, 487,
26226 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
26227 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
26228 : 508, 509, 510, 511, 512, 513, 3, -1, -1, -1,
26229 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26230 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
26231 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
26232 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
26233 : 47, -1, 49, 50, 51, 52, 53, -1, 55, 56,
26234 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
26235 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
26236 : 77, -1, -1, -1, 81, 82, 83, 84, 85, 86,
26237 : -1, 88, 89, 90, 91, -1, 93, 94, 95, 96,
26238 : 97, 98, -1, -1, 101, 102, 103, -1, -1, -1,
26239 : -1, -1, -1, -1, 111, 112, 113, 114, 115, 116,
26240 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
26241 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
26242 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
26243 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
26244 : 157, 158, 159, 160, 161, 162, 163, -1, 165, -1,
26245 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
26246 : -1, -1, -1, 180, 181, 182, 183, -1, 185, 186,
26247 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
26248 : -1, 198, 199, 200, 201, -1, 203, 204, 205, 206,
26249 : 207, 208, 209, 210, -1, 212, -1, 214, 215, 216,
26250 : 217, 218, 219, 220, -1, 222, -1, 224, -1, -1,
26251 : 227, -1, 229, 230, 231, 232, 233, 234, 235, 236,
26252 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
26253 : -1, -1, 249, 250, -1, 252, -1, -1, 255, 256,
26254 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
26255 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
26256 : 277, 278, 279, -1, 281, 282, 283, 284, 285, 286,
26257 : 287, 288, 289, 290, 291, 292, -1, 294, 295, -1,
26258 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
26259 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
26260 : 317, 318, 319, -1, 321, -1, 323, 324, 325, 326,
26261 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
26262 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
26263 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
26264 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
26265 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
26266 : 377, 378, -1, 380, 381, 382, 383, 384, 385, 386,
26267 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
26268 : 397, 398, 399, 400, 401, -1, 403, 404, 405, 406,
26269 : 407, -1, 409, 410, 411, 412, -1, 414, 415, 416,
26270 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
26271 : 427, 428, 429, 430, -1, 432, 433, -1, -1, 436,
26272 : -1, 438, 439, 440, 441, 442, 443, -1, 445, 446,
26273 : 447, -1, -1, 450, 451, 452, 453, 454, -1, 456,
26274 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
26275 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
26276 : 477, 478, 479, 480, -1, 482, -1, 484, 485, 486,
26277 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
26278 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
26279 : 507, 508, 509, 510, 511, 512, 513, 3, -1, -1,
26280 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26281 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
26282 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
26283 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
26284 : 46, 47, -1, 49, 50, 51, 52, 53, -1, 55,
26285 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
26286 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
26287 : 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
26288 : 86, -1, 88, 89, 90, 91, -1, 93, 94, 95,
26289 : 96, 97, 98, -1, -1, 101, 102, 103, -1, -1,
26290 : -1, -1, -1, -1, -1, 111, 112, 113, 114, 115,
26291 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
26292 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
26293 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
26294 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
26295 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
26296 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
26297 : 176, -1, -1, -1, 180, 181, 182, 183, -1, 185,
26298 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
26299 : 196, -1, 198, 199, 200, 201, -1, 203, 204, 205,
26300 : 206, 207, 208, 209, 210, -1, 212, -1, 214, 215,
26301 : 216, 217, 218, 219, 220, -1, 222, -1, 224, -1,
26302 : -1, 227, -1, 229, 230, 231, 232, 233, 234, 235,
26303 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
26304 : 246, -1, -1, 249, 250, -1, 252, -1, -1, 255,
26305 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
26306 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
26307 : 276, 277, 278, 279, -1, 281, 282, 283, 284, 285,
26308 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
26309 : -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
26310 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
26311 : -1, 317, 318, 319, -1, 321, -1, 323, 324, 325,
26312 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
26313 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
26314 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
26315 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
26316 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
26317 : -1, 377, 378, -1, 380, 381, 382, 383, 384, 385,
26318 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
26319 : -1, 397, 398, 399, 400, 401, -1, 403, 404, 405,
26320 : 406, 407, -1, 409, 410, 411, 412, -1, 414, 415,
26321 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
26322 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
26323 : 436, -1, 438, 439, 440, 441, 442, 443, -1, 445,
26324 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
26325 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
26326 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
26327 : 476, 477, 478, 479, 480, -1, 482, -1, 484, 485,
26328 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
26329 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
26330 : 506, 507, 508, 509, 510, 511, 512, 513, 3, -1,
26331 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26332 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
26333 : 25, 26, 27, 28, -1, 30, 31, 32, -1, -1,
26334 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
26335 : 45, 46, 47, -1, 49, 50, 51, 52, 53, -1,
26336 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
26337 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
26338 : 75, 76, 77, -1, -1, -1, 81, 82, 83, 84,
26339 : 85, 86, -1, 88, 89, 90, 91, -1, 93, 94,
26340 : 95, 96, 97, 98, -1, -1, 101, 102, 103, -1,
26341 : -1, -1, -1, -1, -1, -1, 111, 112, 113, 114,
26342 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
26343 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
26344 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
26345 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
26346 : 155, 156, 157, 158, 159, 160, 161, 162, 163, -1,
26347 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
26348 : 175, 176, -1, -1, -1, 180, 181, 182, 183, -1,
26349 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
26350 : 195, 196, -1, 198, 199, 200, 201, -1, 203, 204,
26351 : 205, 206, 207, 208, 209, 210, -1, 212, -1, 214,
26352 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
26353 : -1, -1, 227, -1, 229, 230, 231, 232, 233, 234,
26354 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
26355 : 245, 246, -1, -1, 249, 250, -1, 252, -1, -1,
26356 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
26357 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
26358 : 275, 276, 277, 278, 279, -1, 281, 282, 283, 284,
26359 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
26360 : 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
26361 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
26362 : -1, -1, 317, 318, 319, -1, 321, -1, 323, 324,
26363 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
26364 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
26365 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
26366 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
26367 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
26368 : 375, -1, 377, 378, -1, 380, 381, 382, 383, 384,
26369 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
26370 : 395, -1, 397, 398, 399, 400, 401, -1, 403, 404,
26371 : 405, 406, 407, -1, 409, 410, 411, 412, -1, 414,
26372 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
26373 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
26374 : -1, 436, -1, 438, 439, 440, 441, 442, 443, -1,
26375 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
26376 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
26377 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
26378 : 475, 476, 477, 478, 479, 480, -1, 482, -1, 484,
26379 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
26380 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
26381 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 3,
26382 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26383 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
26384 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
26385 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
26386 : 44, 45, 46, 47, -1, 49, 50, 51, 52, 53,
26387 : -1, 55, 56, -1, 58, 59, 60, 61, 62, 63,
26388 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
26389 : 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
26390 : 84, 85, 86, -1, 88, 89, 90, 91, -1, 93,
26391 : 94, 95, 96, 97, 98, -1, -1, 101, 102, 103,
26392 : -1, -1, -1, -1, -1, -1, -1, 111, 112, 113,
26393 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
26394 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
26395 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
26396 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
26397 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
26398 : -1, 165, -1, 167, 168, 169, 170, 171, -1, 173,
26399 : -1, 175, 176, -1, -1, -1, 180, 181, 182, 183,
26400 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
26401 : 194, 195, 196, -1, 198, 199, 200, 201, -1, 203,
26402 : 204, 205, 206, 207, 208, 209, 210, -1, 212, -1,
26403 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
26404 : 224, -1, -1, 227, -1, 229, 230, 231, 232, 233,
26405 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
26406 : 244, 245, 246, -1, -1, 249, 250, -1, 252, -1,
26407 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
26408 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
26409 : 274, 275, 276, 277, 278, 279, -1, 281, 282, 283,
26410 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
26411 : 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
26412 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
26413 : 314, -1, -1, 317, 318, 319, -1, 321, -1, 323,
26414 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
26415 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
26416 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
26417 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
26418 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
26419 : 374, 375, -1, 377, 378, -1, 380, 381, 382, 383,
26420 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
26421 : 394, 395, -1, 397, 398, 399, 400, 401, -1, 403,
26422 : 404, 405, 406, 407, -1, 409, 410, 411, 412, -1,
26423 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
26424 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
26425 : -1, -1, 436, -1, 438, 439, 440, 441, 442, 443,
26426 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
26427 : 454, -1, 456, 457, 458, 459, 460, 461, 462, 463,
26428 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
26429 : 474, 475, 476, 477, 478, 479, 480, -1, 482, -1,
26430 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
26431 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
26432 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
26433 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26434 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
26435 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
26436 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
26437 : -1, 44, 45, 46, 47, -1, 49, 50, 51, 52,
26438 : 53, -1, 55, 56, -1, 58, 59, 60, 61, 62,
26439 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
26440 : 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
26441 : 83, 84, 85, 86, -1, 88, 89, 90, 91, -1,
26442 : 93, 94, 95, 96, 97, 98, -1, -1, 101, 102,
26443 : 103, -1, -1, -1, -1, -1, -1, -1, 111, 112,
26444 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
26445 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
26446 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
26447 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
26448 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
26449 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
26450 : 173, -1, 175, 176, -1, -1, -1, 180, 181, 182,
26451 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
26452 : 193, 194, 195, 196, -1, 198, 199, 200, 201, -1,
26453 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
26454 : -1, 214, 215, 216, 217, 218, 219, 220, -1, 222,
26455 : -1, 224, -1, -1, 227, -1, 229, 230, 231, 232,
26456 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
26457 : 243, 244, 245, 246, -1, -1, 249, 250, -1, 252,
26458 : -1, -1, 255, 256, 257, -1, -1, 260, 261, 262,
26459 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
26460 : 273, 274, 275, 276, 277, 278, 279, -1, 281, 282,
26461 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
26462 : -1, 294, 295, -1, 297, -1, 299, 300, 301, 302,
26463 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
26464 : 313, 314, -1, -1, 317, 318, 319, -1, 321, -1,
26465 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
26466 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
26467 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
26468 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
26469 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
26470 : 373, 374, 375, -1, 377, 378, -1, 380, 381, 382,
26471 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
26472 : 393, 394, 395, -1, 397, 398, 399, 400, 401, -1,
26473 : 403, 404, 405, 406, 407, -1, 409, 410, 411, 412,
26474 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
26475 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
26476 : 433, -1, -1, 436, -1, 438, 439, 440, 441, 442,
26477 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
26478 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
26479 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
26480 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
26481 : -1, 484, 485, 486, 487, 488, -1, -1, 491, -1,
26482 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
26483 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
26484 : 513, 3, -1, -1, -1, -1, -1, -1, -1, -1,
26485 : -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
26486 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
26487 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
26488 : 42, -1, 44, 45, 46, 47, -1, 49, 50, 51,
26489 : 52, 53, -1, 55, 56, -1, 58, 59, 60, 61,
26490 : 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
26491 : -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
26492 : 82, 83, 84, 85, 86, -1, 88, 89, 90, 91,
26493 : -1, 93, 94, 95, 96, 97, 98, -1, -1, 101,
26494 : 102, 103, -1, -1, -1, -1, -1, -1, -1, 111,
26495 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
26496 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
26497 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
26498 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
26499 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
26500 : 162, 163, -1, 165, -1, 167, 168, 169, 170, 171,
26501 : -1, 173, -1, 175, 176, -1, -1, -1, 180, 181,
26502 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
26503 : 192, 193, 194, 195, 196, -1, 198, 199, 200, 201,
26504 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
26505 : 212, -1, 214, 215, 216, 217, 218, 219, 220, -1,
26506 : 222, -1, 224, -1, -1, 227, -1, 229, 230, 231,
26507 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
26508 : 242, 243, 244, 245, 246, -1, -1, 249, 250, -1,
26509 : 252, -1, -1, 255, 256, 257, -1, -1, 260, 261,
26510 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
26511 : 272, 273, 274, 275, 276, 277, 278, 279, -1, 281,
26512 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
26513 : 292, -1, 294, 295, -1, 297, -1, 299, 300, 301,
26514 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
26515 : 312, 313, 314, -1, -1, 317, 318, 319, -1, 321,
26516 : -1, 323, 324, 325, 326, 327, 328, 329, 330, 331,
26517 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
26518 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
26519 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
26520 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
26521 : 372, 373, 374, 375, -1, 377, 378, -1, 380, 381,
26522 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
26523 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
26524 : -1, 403, 404, 405, 406, 407, -1, 409, 410, 411,
26525 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
26526 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
26527 : 432, 433, -1, -1, 436, -1, 438, 439, 440, 441,
26528 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
26529 : 452, 453, 454, -1, 456, 457, 458, 459, 460, 461,
26530 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
26531 : -1, -1, 474, 475, 476, 477, 478, 479, 480, -1,
26532 : 482, -1, 484, 485, 486, 487, 488, -1, -1, 491,
26533 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
26534 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
26535 : 512, 513, 3, -1, -1, -1, -1, -1, -1, -1,
26536 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
26537 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
26538 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
26539 : 41, 42, -1, 44, 45, 46, 47, -1, 49, 50,
26540 : 51, 52, 53, -1, 55, 56, -1, 58, 59, 60,
26541 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
26542 : 71, -1, 73, 74, 75, 76, 77, -1, -1, -1,
26543 : 81, 82, 83, 84, 85, 86, -1, 88, 89, 90,
26544 : 91, -1, 93, 94, 95, 96, 97, 98, -1, -1,
26545 : 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
26546 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
26547 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
26548 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
26549 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
26550 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
26551 : 161, 162, 163, -1, 165, -1, 167, 168, 169, 170,
26552 : 171, -1, 173, -1, 175, 176, -1, -1, -1, 180,
26553 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
26554 : -1, 192, 193, 194, 195, 196, -1, 198, 199, 200,
26555 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
26556 : -1, 212, -1, 214, 215, 216, 217, 218, 219, 220,
26557 : -1, 222, -1, 224, -1, -1, 227, -1, 229, 230,
26558 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
26559 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
26560 : -1, 252, -1, -1, 255, 256, 257, -1, -1, 260,
26561 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
26562 : 271, 272, 273, 274, 275, 276, 277, 278, 279, -1,
26563 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
26564 : 291, 292, -1, 294, 295, -1, 297, -1, 299, 300,
26565 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
26566 : -1, 312, 313, 314, -1, -1, 317, 318, 319, -1,
26567 : 321, -1, 323, 324, 325, 326, 327, 328, 329, 330,
26568 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
26569 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
26570 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
26571 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
26572 : 371, 372, 373, 374, 375, -1, 377, 378, -1, 380,
26573 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
26574 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
26575 : 401, -1, 403, 404, 405, 406, 407, -1, 409, 410,
26576 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
26577 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
26578 : -1, 432, 433, -1, -1, 436, -1, 438, 439, 440,
26579 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
26580 : 451, 452, 453, 454, -1, 456, 457, 458, 459, 460,
26581 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
26582 : 471, -1, -1, 474, 475, 476, 477, 478, 479, 480,
26583 : -1, 482, -1, 484, 485, 486, 487, 488, -1, -1,
26584 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
26585 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
26586 : 511, 512, 513, 3, -1, -1, -1, -1, -1, -1,
26587 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26588 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
26589 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
26590 : 40, 41, 42, -1, 44, 45, 46, 47, -1, 49,
26591 : 50, 51, 52, 53, -1, 55, 56, -1, 58, 59,
26592 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
26593 : 70, 71, -1, 73, 74, 75, 76, 77, -1, -1,
26594 : -1, 81, 82, 83, 84, 85, 86, -1, 88, 89,
26595 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
26596 : -1, 101, 102, 103, -1, -1, -1, -1, -1, -1,
26597 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
26598 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
26599 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
26600 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
26601 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
26602 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
26603 : 170, 171, -1, 173, -1, 175, 176, -1, -1, -1,
26604 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
26605 : 190, -1, 192, 193, 194, 195, 196, -1, 198, 199,
26606 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
26607 : 210, -1, 212, -1, 214, 215, 216, 217, 218, 219,
26608 : 220, -1, 222, -1, 224, -1, -1, 227, -1, 229,
26609 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
26610 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
26611 : 250, -1, 252, -1, -1, 255, 256, 257, -1, -1,
26612 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
26613 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
26614 : -1, 281, 282, 283, 284, 285, 286, 287, 288, 289,
26615 : 290, 291, 292, -1, 294, 295, -1, 297, -1, 299,
26616 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
26617 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
26618 : -1, 321, -1, 323, 324, 325, 326, 327, 328, 329,
26619 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
26620 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
26621 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
26622 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
26623 : 370, 371, 372, 373, 374, 375, -1, 377, 378, -1,
26624 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
26625 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
26626 : 400, 401, -1, 403, 404, 405, 406, 407, -1, 409,
26627 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
26628 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
26629 : 430, -1, 432, 433, -1, -1, 436, -1, 438, 439,
26630 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
26631 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
26632 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
26633 : 470, 471, -1, -1, 474, 475, 476, 477, 478, 479,
26634 : 480, -1, 482, -1, 484, 485, 486, 487, 488, -1,
26635 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
26636 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
26637 : 510, 511, 512, 513, 3, -1, -1, -1, -1, -1,
26638 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26639 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
26640 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
26641 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
26642 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
26643 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
26644 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
26645 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
26646 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
26647 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
26648 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
26649 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
26650 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
26651 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
26652 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
26653 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
26654 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
26655 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
26656 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
26657 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
26658 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
26659 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
26660 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
26661 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
26662 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
26663 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
26664 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
26665 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
26666 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
26667 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
26668 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
26669 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
26670 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
26671 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
26672 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
26673 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
26674 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
26675 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
26676 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
26677 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
26678 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
26679 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
26680 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
26681 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
26682 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
26683 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
26684 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
26685 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
26686 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
26687 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
26688 : 509, 510, 511, 512, 513, 3, -1, -1, -1, -1,
26689 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26690 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
26691 : 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
26692 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
26693 : -1, 49, 50, 51, 52, 53, -1, 55, 56, -1,
26694 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
26695 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
26696 : -1, -1, -1, 81, 82, 83, 84, 85, 86, -1,
26697 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
26698 : 98, -1, -1, 101, 102, 103, -1, -1, -1, -1,
26699 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
26700 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
26701 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
26702 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
26703 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
26704 : 158, 159, 160, 161, 162, 163, -1, 165, -1, 167,
26705 : 168, 169, 170, 171, -1, 173, -1, 175, 176, -1,
26706 : -1, -1, 180, 181, 182, 183, -1, 185, 186, -1,
26707 : 188, 189, 190, -1, 192, 193, 194, 195, 196, -1,
26708 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
26709 : 208, 209, 210, -1, 212, -1, 214, 215, 216, 217,
26710 : 218, 219, 220, -1, 222, -1, 224, -1, -1, 227,
26711 : -1, 229, 230, 231, 232, 233, 234, 235, 236, 237,
26712 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
26713 : -1, 249, 250, -1, 252, -1, -1, 255, 256, 257,
26714 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
26715 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
26716 : 278, 279, -1, 281, 282, 283, 284, 285, 286, 287,
26717 : 288, 289, 290, 291, 292, -1, 294, 295, -1, 297,
26718 : -1, 299, 300, 301, 302, 303, 304, 305, -1, 307,
26719 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
26720 : 318, 319, -1, 321, -1, 323, 324, 325, 326, 327,
26721 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
26722 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
26723 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
26724 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
26725 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
26726 : 378, -1, 380, 381, 382, 383, 384, 385, 386, 387,
26727 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
26728 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
26729 : -1, 409, 410, 411, 412, -1, 414, 415, 416, 417,
26730 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
26731 : 428, 429, 430, -1, 432, 433, -1, -1, 436, -1,
26732 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
26733 : -1, -1, 450, 451, 452, 453, 454, -1, 456, 457,
26734 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
26735 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
26736 : 478, 479, 480, -1, 482, -1, 484, 485, 486, 487,
26737 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
26738 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
26739 : 508, 509, 510, 511, 512, 513, 3, -1, -1, -1,
26740 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26741 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
26742 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
26743 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
26744 : 47, -1, 49, 50, 51, 52, 53, -1, 55, 56,
26745 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
26746 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
26747 : 77, -1, -1, -1, 81, 82, 83, 84, 85, 86,
26748 : -1, 88, 89, 90, 91, -1, 93, 94, 95, 96,
26749 : 97, 98, -1, -1, 101, 102, 103, -1, -1, -1,
26750 : -1, -1, -1, -1, 111, 112, 113, 114, 115, 116,
26751 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
26752 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
26753 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
26754 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
26755 : 157, 158, 159, 160, 161, 162, 163, -1, 165, -1,
26756 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
26757 : -1, -1, -1, 180, 181, 182, 183, -1, 185, 186,
26758 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
26759 : -1, 198, 199, 200, 201, -1, 203, 204, 205, 206,
26760 : 207, 208, 209, 210, -1, 212, -1, 214, 215, 216,
26761 : 217, 218, 219, 220, -1, 222, -1, 224, -1, -1,
26762 : 227, -1, 229, 230, 231, 232, 233, 234, 235, 236,
26763 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
26764 : -1, -1, 249, 250, -1, 252, -1, -1, 255, 256,
26765 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
26766 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
26767 : 277, 278, 279, -1, 281, 282, 283, 284, 285, 286,
26768 : 287, 288, 289, 290, 291, 292, -1, 294, 295, -1,
26769 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
26770 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
26771 : 317, 318, 319, -1, 321, -1, 323, 324, 325, 326,
26772 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
26773 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
26774 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
26775 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
26776 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
26777 : 377, 378, -1, 380, 381, 382, 383, 384, 385, 386,
26778 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
26779 : 397, 398, 399, 400, 401, -1, 403, 404, 405, 406,
26780 : 407, -1, 409, 410, 411, 412, -1, 414, 415, 416,
26781 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
26782 : 427, 428, 429, 430, -1, 432, 433, -1, -1, 436,
26783 : -1, 438, 439, 440, 441, 442, 443, -1, 445, 446,
26784 : 447, -1, -1, 450, 451, 452, 453, 454, -1, 456,
26785 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
26786 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
26787 : 477, 478, 479, 480, -1, 482, -1, 484, 485, 486,
26788 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
26789 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
26790 : 507, 508, 509, 510, 511, 512, 513, 3, -1, -1,
26791 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26792 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
26793 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
26794 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
26795 : 46, 47, -1, 49, 50, 51, 52, 53, -1, 55,
26796 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
26797 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
26798 : 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
26799 : 86, -1, 88, 89, 90, 91, -1, 93, 94, 95,
26800 : 96, 97, 98, -1, -1, 101, 102, 103, -1, -1,
26801 : -1, -1, -1, -1, -1, 111, 112, 113, 114, 115,
26802 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
26803 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
26804 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
26805 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
26806 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
26807 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
26808 : 176, -1, -1, -1, 180, 181, 182, 183, -1, 185,
26809 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
26810 : 196, -1, 198, 199, 200, 201, -1, 203, 204, 205,
26811 : 206, 207, 208, 209, 210, -1, 212, -1, 214, 215,
26812 : 216, 217, 218, 219, 220, -1, 222, -1, 224, -1,
26813 : -1, 227, -1, 229, 230, 231, 232, 233, 234, 235,
26814 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
26815 : 246, -1, -1, 249, 250, -1, 252, -1, -1, 255,
26816 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
26817 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
26818 : 276, 277, 278, 279, -1, 281, 282, 283, 284, 285,
26819 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
26820 : -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
26821 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
26822 : -1, 317, 318, 319, -1, 321, -1, 323, 324, 325,
26823 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
26824 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
26825 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
26826 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
26827 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
26828 : -1, 377, 378, -1, 380, 381, 382, 383, 384, 385,
26829 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
26830 : -1, 397, 398, 399, 400, 401, -1, 403, 404, 405,
26831 : 406, 407, -1, 409, 410, 411, 412, -1, 414, 415,
26832 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
26833 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
26834 : 436, -1, 438, 439, 440, 441, 442, 443, -1, 445,
26835 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
26836 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
26837 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
26838 : 476, 477, 478, 479, 480, -1, 482, -1, 484, 485,
26839 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
26840 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
26841 : 506, 507, 508, 509, 510, 511, 512, 513, 3, -1,
26842 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26843 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
26844 : 25, 26, 27, 28, -1, 30, 31, 32, -1, -1,
26845 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
26846 : 45, 46, 47, -1, 49, 50, 51, 52, 53, -1,
26847 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
26848 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
26849 : 75, 76, 77, -1, -1, -1, 81, 82, 83, 84,
26850 : 85, 86, -1, 88, 89, 90, 91, -1, 93, 94,
26851 : 95, 96, 97, 98, -1, -1, 101, 102, 103, -1,
26852 : -1, -1, -1, -1, -1, -1, 111, 112, 113, 114,
26853 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
26854 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
26855 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
26856 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
26857 : 155, 156, 157, 158, 159, 160, 161, 162, 163, -1,
26858 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
26859 : 175, 176, -1, -1, -1, 180, 181, 182, 183, -1,
26860 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
26861 : 195, 196, -1, 198, 199, 200, 201, -1, 203, 204,
26862 : 205, 206, 207, 208, 209, 210, -1, 212, -1, 214,
26863 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
26864 : -1, -1, 227, -1, 229, 230, 231, 232, 233, 234,
26865 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
26866 : 245, 246, -1, -1, 249, 250, -1, 252, -1, -1,
26867 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
26868 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
26869 : 275, 276, 277, 278, 279, -1, 281, 282, 283, 284,
26870 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
26871 : 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
26872 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
26873 : -1, -1, 317, 318, 319, -1, 321, -1, 323, 324,
26874 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
26875 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
26876 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
26877 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
26878 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
26879 : 375, -1, 377, 378, -1, 380, 381, 382, 383, 384,
26880 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
26881 : 395, -1, 397, 398, 399, 400, 401, -1, 403, 404,
26882 : 405, 406, 407, -1, 409, 410, 411, 412, -1, 414,
26883 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
26884 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
26885 : -1, 436, -1, 438, 439, 440, 441, 442, 443, -1,
26886 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
26887 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
26888 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
26889 : 475, 476, 477, 478, 479, 480, -1, 482, -1, 484,
26890 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
26891 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
26892 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 3,
26893 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26894 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
26895 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
26896 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
26897 : 44, 45, 46, 47, -1, 49, 50, 51, 52, 53,
26898 : -1, 55, 56, -1, 58, 59, 60, 61, 62, 63,
26899 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
26900 : 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
26901 : 84, 85, 86, -1, 88, 89, 90, 91, -1, 93,
26902 : 94, 95, 96, 97, 98, -1, -1, 101, 102, 103,
26903 : -1, -1, -1, -1, -1, -1, -1, 111, 112, 113,
26904 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
26905 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
26906 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
26907 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
26908 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
26909 : -1, 165, -1, 167, 168, 169, 170, 171, -1, 173,
26910 : -1, 175, 176, -1, -1, -1, 180, 181, 182, 183,
26911 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
26912 : 194, 195, 196, -1, 198, 199, 200, 201, -1, 203,
26913 : 204, 205, 206, 207, 208, 209, 210, -1, 212, -1,
26914 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
26915 : 224, -1, -1, 227, -1, 229, 230, 231, 232, 233,
26916 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
26917 : 244, 245, 246, -1, -1, 249, 250, -1, 252, -1,
26918 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
26919 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
26920 : 274, 275, 276, 277, 278, 279, -1, 281, 282, 283,
26921 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
26922 : 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
26923 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
26924 : 314, -1, -1, 317, 318, 319, -1, 321, -1, 323,
26925 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
26926 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
26927 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
26928 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
26929 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
26930 : 374, 375, -1, 377, 378, -1, 380, 381, 382, 383,
26931 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
26932 : 394, 395, -1, 397, 398, 399, 400, 401, -1, 403,
26933 : 404, 405, 406, 407, -1, 409, 410, 411, 412, -1,
26934 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
26935 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
26936 : -1, -1, 436, -1, 438, 439, 440, 441, 442, 443,
26937 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
26938 : 454, -1, 456, 457, 458, 459, 460, 461, 462, 463,
26939 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
26940 : 474, 475, 476, 477, 478, 479, 480, -1, 482, -1,
26941 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
26942 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
26943 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
26944 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26945 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
26946 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
26947 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
26948 : -1, 44, 45, 46, 47, -1, 49, 50, 51, 52,
26949 : 53, -1, 55, 56, -1, 58, 59, 60, 61, 62,
26950 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
26951 : 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
26952 : 83, 84, 85, 86, -1, 88, 89, 90, 91, -1,
26953 : 93, 94, 95, 96, 97, 98, -1, -1, 101, 102,
26954 : 103, -1, -1, -1, -1, -1, -1, -1, 111, 112,
26955 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
26956 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
26957 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
26958 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
26959 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
26960 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
26961 : 173, -1, 175, 176, -1, -1, -1, 180, 181, 182,
26962 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
26963 : 193, 194, 195, 196, -1, 198, 199, 200, 201, -1,
26964 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
26965 : -1, 214, 215, 216, 217, 218, 219, 220, -1, 222,
26966 : -1, 224, -1, -1, 227, -1, 229, 230, 231, 232,
26967 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
26968 : 243, 244, 245, 246, -1, -1, 249, 250, -1, 252,
26969 : -1, -1, 255, 256, 257, -1, -1, 260, 261, 262,
26970 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
26971 : 273, 274, 275, 276, 277, 278, 279, -1, 281, 282,
26972 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
26973 : -1, 294, 295, -1, 297, -1, 299, 300, 301, 302,
26974 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
26975 : 313, 314, -1, -1, 317, 318, 319, -1, 321, -1,
26976 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
26977 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
26978 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
26979 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
26980 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
26981 : 373, 374, 375, -1, 377, 378, -1, 380, 381, 382,
26982 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
26983 : 393, 394, 395, -1, 397, 398, 399, 400, 401, -1,
26984 : 403, 404, 405, 406, 407, -1, 409, 410, 411, 412,
26985 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
26986 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
26987 : 433, -1, -1, 436, -1, 438, 439, 440, 441, 442,
26988 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
26989 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
26990 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
26991 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
26992 : -1, 484, 485, 486, 487, 488, -1, -1, 491, -1,
26993 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
26994 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
26995 : 513, 3, -1, -1, -1, -1, -1, -1, -1, -1,
26996 : -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
26997 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
26998 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
26999 : 42, -1, 44, 45, 46, 47, -1, 49, 50, 51,
27000 : 52, 53, -1, 55, 56, -1, 58, 59, 60, 61,
27001 : 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
27002 : -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
27003 : 82, 83, 84, 85, 86, -1, 88, 89, 90, 91,
27004 : -1, 93, 94, 95, 96, 97, 98, -1, -1, 101,
27005 : 102, 103, -1, -1, -1, -1, -1, -1, -1, 111,
27006 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
27007 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
27008 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
27009 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
27010 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
27011 : 162, 163, -1, 165, -1, 167, 168, 169, 170, 171,
27012 : -1, 173, -1, 175, 176, -1, -1, -1, 180, 181,
27013 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
27014 : 192, 193, 194, 195, 196, -1, 198, 199, 200, 201,
27015 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
27016 : 212, -1, 214, 215, 216, 217, 218, 219, 220, -1,
27017 : 222, -1, 224, -1, -1, 227, -1, 229, 230, 231,
27018 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
27019 : 242, 243, 244, 245, 246, -1, -1, 249, 250, -1,
27020 : 252, -1, -1, 255, 256, 257, -1, -1, 260, 261,
27021 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
27022 : 272, 273, 274, 275, 276, 277, 278, 279, -1, 281,
27023 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
27024 : 292, -1, 294, 295, -1, 297, -1, 299, 300, 301,
27025 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
27026 : 312, 313, 314, -1, -1, 317, 318, 319, -1, 321,
27027 : -1, 323, 324, 325, 326, 327, 328, 329, 330, 331,
27028 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
27029 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
27030 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
27031 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
27032 : 372, 373, 374, 375, -1, 377, 378, -1, 380, 381,
27033 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
27034 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
27035 : -1, 403, 404, 405, 406, 407, -1, 409, 410, 411,
27036 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
27037 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
27038 : 432, 433, -1, -1, 436, -1, 438, 439, 440, 441,
27039 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
27040 : 452, 453, 454, -1, 456, 457, 458, 459, 460, 461,
27041 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
27042 : -1, -1, 474, 475, 476, 477, 478, 479, 480, -1,
27043 : 482, -1, 484, 485, 486, 487, 488, -1, -1, 491,
27044 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
27045 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
27046 : 512, 513, 3, -1, -1, -1, -1, -1, -1, -1,
27047 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
27048 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
27049 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
27050 : 41, 42, -1, 44, 45, 46, 47, -1, 49, 50,
27051 : 51, 52, 53, -1, 55, 56, -1, 58, 59, 60,
27052 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
27053 : 71, -1, 73, 74, 75, 76, 77, -1, -1, -1,
27054 : 81, 82, 83, 84, 85, 86, -1, 88, 89, 90,
27055 : 91, -1, 93, 94, 95, 96, 97, 98, -1, -1,
27056 : 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
27057 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
27058 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
27059 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
27060 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
27061 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
27062 : 161, 162, 163, -1, 165, -1, 167, 168, 169, 170,
27063 : 171, -1, 173, -1, 175, 176, -1, -1, -1, 180,
27064 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
27065 : -1, 192, 193, 194, 195, 196, -1, 198, 199, 200,
27066 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
27067 : -1, 212, -1, 214, 215, 216, 217, 218, 219, 220,
27068 : -1, 222, -1, 224, -1, -1, 227, -1, 229, 230,
27069 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
27070 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
27071 : -1, 252, -1, -1, 255, 256, 257, -1, -1, 260,
27072 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
27073 : 271, 272, 273, 274, 275, 276, 277, 278, 279, -1,
27074 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
27075 : 291, 292, -1, 294, 295, -1, 297, -1, 299, 300,
27076 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
27077 : -1, 312, 313, 314, -1, -1, 317, 318, 319, -1,
27078 : 321, -1, 323, 324, 325, 326, 327, 328, 329, 330,
27079 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
27080 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
27081 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
27082 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
27083 : 371, 372, 373, 374, 375, -1, 377, 378, -1, 380,
27084 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
27085 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
27086 : 401, -1, 403, 404, 405, 406, 407, -1, 409, 410,
27087 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
27088 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
27089 : -1, 432, 433, -1, -1, 436, -1, 438, 439, 440,
27090 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
27091 : 451, 452, 453, 454, -1, 456, 457, 458, 459, 460,
27092 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
27093 : 471, -1, -1, 474, 475, 476, 477, 478, 479, 480,
27094 : -1, 482, -1, 484, 485, 486, 487, 488, -1, -1,
27095 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
27096 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
27097 : 511, 512, 513, 3, -1, -1, -1, -1, -1, -1,
27098 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27099 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
27100 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
27101 : 40, 41, 42, -1, 44, 45, 46, 47, -1, 49,
27102 : 50, 51, 52, 53, -1, 55, 56, -1, 58, 59,
27103 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
27104 : 70, 71, -1, 73, 74, 75, 76, 77, -1, -1,
27105 : -1, 81, 82, 83, 84, 85, 86, -1, 88, 89,
27106 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
27107 : -1, 101, 102, 103, -1, -1, -1, -1, -1, -1,
27108 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
27109 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
27110 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
27111 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
27112 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
27113 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
27114 : 170, 171, -1, 173, -1, 175, 176, -1, -1, -1,
27115 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
27116 : 190, -1, 192, 193, 194, 195, 196, -1, 198, 199,
27117 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
27118 : 210, -1, 212, -1, 214, 215, 216, 217, 218, 219,
27119 : 220, -1, 222, -1, 224, -1, -1, 227, -1, 229,
27120 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
27121 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
27122 : 250, -1, 252, -1, -1, 255, 256, 257, -1, -1,
27123 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
27124 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
27125 : -1, 281, 282, 283, 284, 285, 286, 287, 288, 289,
27126 : 290, 291, 292, -1, 294, 295, -1, 297, -1, 299,
27127 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
27128 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
27129 : -1, 321, -1, 323, 324, 325, 326, 327, 328, 329,
27130 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
27131 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
27132 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
27133 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
27134 : 370, 371, 372, 373, 374, 375, -1, 377, 378, -1,
27135 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
27136 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
27137 : 400, 401, -1, 403, 404, 405, 406, 407, -1, 409,
27138 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
27139 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
27140 : 430, -1, 432, 433, -1, -1, 436, -1, 438, 439,
27141 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
27142 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
27143 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
27144 : 470, 471, -1, -1, 474, 475, 476, 477, 478, 479,
27145 : 480, -1, 482, -1, 484, 485, 486, 487, 488, -1,
27146 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
27147 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
27148 : 510, 511, 512, 513, 3, -1, -1, -1, -1, -1,
27149 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27150 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
27151 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
27152 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
27153 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
27154 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
27155 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
27156 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
27157 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
27158 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
27159 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
27160 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
27161 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
27162 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
27163 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
27164 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
27165 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
27166 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
27167 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
27168 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
27169 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
27170 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
27171 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
27172 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
27173 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
27174 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
27175 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
27176 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
27177 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
27178 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
27179 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
27180 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
27181 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
27182 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
27183 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
27184 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
27185 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
27186 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
27187 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
27188 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
27189 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
27190 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
27191 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
27192 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
27193 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
27194 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
27195 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
27196 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
27197 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
27198 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
27199 : 509, 510, 511, 512, 513, 3, -1, -1, -1, -1,
27200 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27201 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
27202 : 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
27203 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
27204 : -1, 49, 50, 51, 52, 53, -1, 55, 56, -1,
27205 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
27206 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
27207 : -1, -1, -1, 81, 82, 83, 84, 85, 86, -1,
27208 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
27209 : 98, -1, -1, 101, 102, 103, -1, -1, -1, -1,
27210 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
27211 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
27212 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
27213 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
27214 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
27215 : 158, 159, 160, 161, 162, 163, -1, 165, -1, 167,
27216 : 168, 169, 170, 171, -1, 173, -1, 175, 176, -1,
27217 : -1, -1, 180, 181, 182, 183, -1, 185, 186, -1,
27218 : 188, 189, 190, -1, 192, 193, 194, 195, 196, -1,
27219 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
27220 : 208, 209, 210, -1, 212, -1, 214, 215, 216, 217,
27221 : 218, 219, 220, -1, 222, -1, 224, -1, -1, 227,
27222 : -1, 229, 230, 231, 232, 233, 234, 235, 236, 237,
27223 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
27224 : -1, 249, 250, -1, 252, -1, -1, 255, 256, 257,
27225 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
27226 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
27227 : 278, 279, -1, 281, 282, 283, 284, 285, 286, 287,
27228 : 288, 289, 290, 291, 292, -1, 294, 295, -1, 297,
27229 : -1, 299, 300, 301, 302, 303, 304, 305, -1, 307,
27230 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
27231 : 318, 319, -1, 321, -1, 323, 324, 325, 326, 327,
27232 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
27233 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
27234 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
27235 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
27236 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
27237 : 378, -1, 380, 381, 382, 383, 384, 385, 386, 387,
27238 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
27239 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
27240 : -1, 409, 410, 411, 412, -1, 414, 415, 416, 417,
27241 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
27242 : 428, 429, 430, -1, 432, 433, -1, -1, 436, -1,
27243 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
27244 : -1, -1, 450, 451, 452, 453, 454, -1, 456, 457,
27245 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
27246 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
27247 : 478, 479, 480, -1, 482, -1, 484, 485, 486, 487,
27248 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
27249 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
27250 : 508, 509, 510, 511, 512, 513, 3, -1, -1, -1,
27251 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27252 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
27253 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
27254 : -1, 38, -1, 40, 41, 42, -1, 44, 45, 46,
27255 : 47, -1, 49, 50, 51, 52, 53, -1, 55, 56,
27256 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
27257 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
27258 : 77, -1, -1, -1, 81, 82, 83, 84, 85, 86,
27259 : -1, 88, 89, 90, 91, -1, 93, 94, 95, 96,
27260 : 97, 98, -1, -1, 101, 102, 103, -1, -1, -1,
27261 : -1, -1, -1, -1, 111, 112, 113, 114, 115, 116,
27262 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
27263 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
27264 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
27265 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
27266 : 157, 158, 159, 160, 161, 162, 163, -1, 165, -1,
27267 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
27268 : -1, -1, -1, 180, 181, 182, 183, -1, 185, 186,
27269 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
27270 : -1, 198, 199, 200, 201, -1, 203, 204, 205, 206,
27271 : 207, 208, 209, 210, -1, 212, -1, 214, 215, 216,
27272 : 217, 218, 219, 220, -1, 222, -1, 224, -1, -1,
27273 : 227, -1, 229, 230, 231, 232, 233, 234, 235, 236,
27274 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
27275 : -1, -1, 249, 250, -1, 252, -1, -1, 255, 256,
27276 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
27277 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
27278 : 277, 278, 279, -1, 281, 282, 283, 284, 285, 286,
27279 : 287, 288, 289, 290, 291, 292, -1, 294, 295, -1,
27280 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
27281 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
27282 : 317, 318, 319, -1, 321, -1, 323, 324, 325, 326,
27283 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
27284 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
27285 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
27286 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
27287 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
27288 : 377, 378, -1, 380, 381, 382, 383, 384, 385, 386,
27289 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
27290 : 397, 398, 399, 400, 401, -1, -1, 404, 405, 406,
27291 : 407, -1, 409, 410, 411, 412, -1, 414, 415, 416,
27292 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
27293 : 427, 428, 429, 430, -1, 432, 433, -1, -1, 436,
27294 : -1, 438, 439, 440, 441, 442, 443, -1, 445, 446,
27295 : 447, -1, -1, 450, 451, 452, 453, 454, -1, 456,
27296 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
27297 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
27298 : 477, 478, 479, 480, -1, 482, -1, 484, 485, 486,
27299 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
27300 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
27301 : 507, 508, 509, 510, 511, 512, 513, 3, -1, -1,
27302 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27303 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
27304 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
27305 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
27306 : 46, 47, -1, 49, 50, 51, 52, 53, -1, 55,
27307 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
27308 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
27309 : 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
27310 : 86, -1, 88, 89, 90, 91, -1, 93, 94, 95,
27311 : 96, 97, 98, -1, -1, 101, 102, 103, -1, -1,
27312 : -1, -1, -1, -1, -1, 111, 112, 113, 114, 115,
27313 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
27314 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
27315 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
27316 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
27317 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
27318 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
27319 : 176, -1, -1, -1, 180, 181, 182, 183, -1, 185,
27320 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
27321 : 196, -1, 198, 199, 200, 201, -1, 203, 204, 205,
27322 : 206, 207, 208, 209, 210, -1, 212, -1, 214, 215,
27323 : 216, 217, 218, 219, 220, -1, 222, -1, 224, -1,
27324 : -1, 227, -1, 229, 230, 231, 232, 233, 234, 235,
27325 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
27326 : 246, -1, -1, 249, 250, -1, 252, -1, -1, 255,
27327 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
27328 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
27329 : 276, 277, 278, 279, -1, 281, 282, 283, 284, 285,
27330 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
27331 : -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
27332 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
27333 : -1, 317, 318, 319, -1, 321, -1, 323, 324, 325,
27334 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
27335 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
27336 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
27337 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
27338 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
27339 : -1, 377, 378, -1, 380, 381, 382, 383, 384, 385,
27340 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
27341 : -1, 397, 398, 399, 400, 401, -1, 403, 404, 405,
27342 : 406, 407, -1, 409, 410, 411, 412, -1, 414, 415,
27343 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
27344 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
27345 : 436, -1, 438, 439, 440, 441, 442, 443, -1, 445,
27346 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
27347 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
27348 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
27349 : 476, 477, 478, 479, 480, -1, 482, -1, 484, 485,
27350 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
27351 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
27352 : 506, 507, 508, 509, 510, 511, 512, 513, 3, -1,
27353 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27354 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
27355 : 25, 26, 27, 28, -1, 30, 31, 32, -1, -1,
27356 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
27357 : 45, 46, 47, -1, 49, 50, 51, 52, 53, -1,
27358 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
27359 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
27360 : 75, 76, 77, -1, -1, -1, 81, 82, 83, 84,
27361 : 85, 86, -1, 88, 89, 90, 91, -1, 93, 94,
27362 : 95, 96, 97, 98, -1, -1, 101, 102, 103, -1,
27363 : -1, -1, -1, -1, -1, -1, 111, 112, 113, 114,
27364 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
27365 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
27366 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
27367 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
27368 : 155, 156, 157, 158, 159, 160, 161, 162, 163, -1,
27369 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
27370 : 175, 176, -1, -1, -1, 180, 181, 182, 183, -1,
27371 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
27372 : 195, 196, -1, 198, 199, 200, 201, -1, 203, 204,
27373 : 205, 206, 207, 208, 209, 210, -1, 212, -1, 214,
27374 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
27375 : -1, -1, 227, -1, 229, 230, 231, 232, 233, 234,
27376 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
27377 : 245, 246, -1, -1, 249, 250, -1, 252, -1, -1,
27378 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
27379 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
27380 : 275, 276, 277, 278, 279, -1, 281, 282, 283, 284,
27381 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
27382 : 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
27383 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
27384 : -1, -1, 317, 318, 319, -1, 321, -1, 323, 324,
27385 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
27386 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
27387 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
27388 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
27389 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
27390 : 375, -1, 377, 378, -1, 380, 381, 382, 383, 384,
27391 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
27392 : 395, -1, 397, 398, 399, 400, 401, -1, 403, 404,
27393 : 405, 406, 407, -1, 409, 410, 411, 412, -1, 414,
27394 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
27395 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
27396 : -1, 436, -1, 438, 439, 440, 441, 442, 443, -1,
27397 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
27398 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
27399 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
27400 : 475, 476, 477, 478, 479, 480, -1, 482, -1, 484,
27401 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
27402 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
27403 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 3,
27404 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27405 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
27406 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
27407 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
27408 : 44, 45, 46, 47, -1, 49, 50, 51, 52, 53,
27409 : -1, 55, 56, -1, 58, 59, 60, 61, 62, 63,
27410 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
27411 : 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
27412 : 84, 85, 86, -1, 88, 89, 90, 91, -1, 93,
27413 : 94, 95, 96, 97, 98, -1, -1, 101, 102, 103,
27414 : -1, -1, -1, -1, -1, -1, -1, 111, 112, 113,
27415 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
27416 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
27417 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
27418 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
27419 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
27420 : -1, 165, -1, 167, 168, 169, 170, 171, -1, 173,
27421 : -1, 175, 176, -1, -1, -1, 180, 181, 182, 183,
27422 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
27423 : 194, 195, 196, -1, 198, 199, 200, 201, -1, 203,
27424 : 204, 205, 206, 207, 208, 209, 210, -1, 212, -1,
27425 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
27426 : 224, -1, -1, 227, -1, 229, 230, 231, 232, 233,
27427 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
27428 : 244, 245, 246, -1, -1, 249, 250, -1, 252, -1,
27429 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
27430 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
27431 : 274, 275, 276, 277, 278, 279, -1, 281, 282, 283,
27432 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
27433 : 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
27434 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
27435 : 314, -1, -1, 317, 318, 319, -1, 321, -1, 323,
27436 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
27437 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
27438 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
27439 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
27440 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
27441 : 374, 375, -1, 377, 378, -1, 380, 381, 382, 383,
27442 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
27443 : 394, 395, -1, 397, 398, 399, 400, 401, -1, 403,
27444 : 404, 405, 406, 407, -1, 409, 410, 411, 412, -1,
27445 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
27446 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
27447 : -1, -1, 436, -1, 438, 439, 440, 441, 442, 443,
27448 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
27449 : 454, -1, 456, 457, 458, 459, 460, 461, 462, 463,
27450 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
27451 : 474, 475, 476, 477, 478, 479, 480, -1, 482, -1,
27452 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
27453 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
27454 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
27455 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27456 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
27457 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
27458 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
27459 : -1, 44, 45, 46, 47, -1, 49, 50, 51, 52,
27460 : 53, -1, 55, 56, -1, 58, 59, 60, 61, 62,
27461 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
27462 : 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
27463 : 83, 84, 85, 86, -1, 88, 89, 90, 91, -1,
27464 : 93, 94, 95, 96, 97, 98, -1, -1, 101, 102,
27465 : 103, -1, -1, -1, -1, -1, -1, -1, 111, 112,
27466 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
27467 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
27468 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
27469 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
27470 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
27471 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
27472 : 173, -1, 175, 176, -1, -1, -1, 180, 181, 182,
27473 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
27474 : 193, 194, 195, 196, -1, 198, 199, 200, 201, -1,
27475 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
27476 : -1, 214, 215, 216, 217, 218, 219, 220, -1, 222,
27477 : -1, 224, -1, -1, 227, -1, 229, 230, 231, 232,
27478 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
27479 : 243, 244, 245, 246, -1, -1, 249, 250, -1, 252,
27480 : -1, -1, 255, 256, 257, -1, -1, 260, 261, 262,
27481 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
27482 : 273, 274, 275, 276, 277, 278, 279, -1, 281, 282,
27483 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
27484 : -1, 294, 295, -1, 297, -1, 299, 300, 301, 302,
27485 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
27486 : 313, 314, -1, -1, 317, 318, 319, -1, 321, -1,
27487 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
27488 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
27489 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
27490 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
27491 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
27492 : 373, 374, 375, -1, 377, 378, -1, 380, 381, 382,
27493 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
27494 : 393, 394, 395, -1, 397, 398, 399, 400, 401, -1,
27495 : 403, 404, 405, 406, 407, -1, 409, 410, 411, 412,
27496 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
27497 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
27498 : 433, -1, -1, 436, -1, 438, 439, 440, 441, 442,
27499 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
27500 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
27501 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
27502 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
27503 : -1, 484, 485, 486, 487, 488, -1, -1, 491, -1,
27504 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
27505 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
27506 : 513, 3, -1, -1, -1, -1, -1, -1, -1, -1,
27507 : -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
27508 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
27509 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
27510 : 42, -1, 44, 45, 46, 47, -1, 49, 50, 51,
27511 : 52, 53, -1, 55, 56, -1, 58, 59, 60, 61,
27512 : 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
27513 : -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
27514 : 82, 83, 84, 85, 86, -1, 88, 89, 90, 91,
27515 : -1, 93, 94, 95, 96, 97, 98, -1, -1, 101,
27516 : 102, 103, -1, -1, -1, -1, -1, -1, -1, 111,
27517 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
27518 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
27519 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
27520 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
27521 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
27522 : 162, 163, -1, 165, -1, 167, 168, 169, 170, 171,
27523 : -1, 173, -1, 175, 176, -1, -1, -1, 180, 181,
27524 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
27525 : 192, 193, 194, 195, 196, -1, 198, 199, 200, 201,
27526 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
27527 : 212, -1, 214, 215, 216, 217, 218, 219, 220, -1,
27528 : 222, -1, 224, -1, -1, 227, -1, 229, 230, 231,
27529 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
27530 : 242, 243, 244, 245, 246, -1, -1, 249, 250, -1,
27531 : 252, -1, -1, 255, 256, 257, -1, -1, 260, 261,
27532 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
27533 : 272, 273, 274, 275, 276, 277, 278, 279, -1, 281,
27534 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
27535 : 292, -1, 294, 295, -1, 297, -1, 299, 300, 301,
27536 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
27537 : 312, 313, 314, -1, -1, 317, 318, 319, -1, 321,
27538 : -1, 323, 324, 325, 326, 327, 328, 329, 330, 331,
27539 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
27540 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
27541 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
27542 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
27543 : 372, 373, 374, 375, -1, 377, 378, -1, 380, 381,
27544 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
27545 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
27546 : -1, 403, 404, 405, 406, 407, -1, 409, 410, 411,
27547 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
27548 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
27549 : 432, 433, -1, -1, 436, -1, 438, 439, 440, 441,
27550 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
27551 : 452, 453, 454, -1, 456, 457, 458, 459, 460, 461,
27552 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
27553 : -1, -1, 474, 475, 476, 477, 478, 479, 480, -1,
27554 : 482, -1, 484, 485, 486, 487, 488, -1, -1, 491,
27555 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
27556 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
27557 : 512, 513, 3, -1, -1, -1, -1, -1, -1, -1,
27558 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
27559 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
27560 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
27561 : 41, 42, -1, 44, 45, 46, 47, -1, 49, 50,
27562 : 51, 52, 53, -1, 55, 56, -1, 58, 59, 60,
27563 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
27564 : 71, -1, 73, 74, 75, 76, 77, -1, -1, -1,
27565 : 81, 82, 83, 84, 85, 86, -1, 88, 89, 90,
27566 : 91, -1, 93, 94, 95, 96, 97, 98, -1, -1,
27567 : 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
27568 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
27569 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
27570 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
27571 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
27572 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
27573 : 161, 162, 163, -1, 165, -1, 167, 168, 169, 170,
27574 : 171, -1, 173, -1, 175, 176, -1, -1, -1, 180,
27575 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
27576 : -1, 192, 193, 194, 195, 196, -1, 198, 199, 200,
27577 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
27578 : -1, 212, -1, 214, 215, 216, 217, 218, 219, 220,
27579 : -1, 222, -1, 224, -1, -1, 227, -1, 229, 230,
27580 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
27581 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
27582 : -1, 252, -1, -1, 255, 256, 257, -1, -1, 260,
27583 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
27584 : 271, 272, 273, 274, 275, 276, 277, 278, 279, -1,
27585 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
27586 : 291, 292, -1, 294, 295, -1, 297, -1, 299, 300,
27587 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
27588 : -1, 312, 313, 314, -1, -1, 317, 318, 319, -1,
27589 : 321, -1, 323, 324, 325, 326, 327, 328, 329, 330,
27590 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
27591 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
27592 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
27593 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
27594 : 371, 372, 373, 374, 375, -1, 377, 378, -1, 380,
27595 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
27596 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
27597 : 401, -1, 403, 404, 405, 406, 407, -1, 409, 410,
27598 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
27599 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
27600 : -1, 432, 433, -1, -1, 436, -1, 438, 439, 440,
27601 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
27602 : 451, 452, 453, 454, -1, 456, 457, 458, 459, 460,
27603 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
27604 : 471, -1, -1, 474, 475, 476, 477, 478, 479, 480,
27605 : -1, 482, -1, 484, 485, 486, 487, 488, -1, -1,
27606 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
27607 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
27608 : 511, 512, 513, 3, -1, -1, -1, -1, -1, -1,
27609 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27610 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
27611 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
27612 : 40, 41, 42, -1, 44, 45, 46, 47, -1, 49,
27613 : 50, 51, 52, 53, -1, 55, 56, -1, 58, 59,
27614 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
27615 : 70, 71, -1, 73, 74, 75, 76, 77, -1, -1,
27616 : -1, 81, 82, 83, 84, 85, 86, -1, 88, 89,
27617 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
27618 : -1, 101, 102, 103, -1, -1, -1, -1, -1, -1,
27619 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
27620 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
27621 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
27622 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
27623 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
27624 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
27625 : 170, 171, -1, 173, -1, 175, 176, -1, -1, -1,
27626 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
27627 : 190, -1, 192, 193, 194, 195, 196, -1, 198, 199,
27628 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
27629 : 210, -1, 212, -1, 214, 215, 216, 217, 218, 219,
27630 : 220, -1, 222, -1, 224, -1, -1, 227, -1, 229,
27631 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
27632 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
27633 : 250, -1, 252, -1, -1, 255, 256, 257, -1, -1,
27634 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
27635 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
27636 : -1, 281, 282, 283, 284, 285, 286, 287, 288, 289,
27637 : 290, 291, 292, -1, 294, 295, -1, 297, -1, 299,
27638 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
27639 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
27640 : -1, 321, -1, 323, 324, 325, 326, 327, 328, 329,
27641 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
27642 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
27643 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
27644 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
27645 : 370, 371, 372, 373, 374, 375, -1, 377, 378, -1,
27646 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
27647 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
27648 : 400, 401, -1, 403, 404, 405, 406, 407, -1, 409,
27649 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
27650 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
27651 : 430, -1, 432, 433, -1, -1, 436, -1, 438, 439,
27652 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
27653 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
27654 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
27655 : 470, 471, -1, -1, 474, 475, 476, 477, 478, 479,
27656 : 480, -1, 482, -1, 484, 485, 486, 487, 488, -1,
27657 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
27658 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
27659 : 510, 511, 512, 513, 3, -1, -1, -1, -1, -1,
27660 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27661 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
27662 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
27663 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
27664 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
27665 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
27666 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
27667 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
27668 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
27669 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
27670 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
27671 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
27672 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
27673 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
27674 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
27675 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
27676 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
27677 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
27678 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
27679 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
27680 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
27681 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
27682 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
27683 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
27684 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
27685 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
27686 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
27687 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
27688 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
27689 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
27690 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
27691 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
27692 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
27693 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
27694 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
27695 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
27696 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
27697 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
27698 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
27699 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
27700 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
27701 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
27702 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
27703 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
27704 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
27705 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
27706 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
27707 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
27708 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
27709 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
27710 : 509, 510, 511, 512, 513, 3, -1, -1, -1, -1,
27711 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27712 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
27713 : 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
27714 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
27715 : -1, 49, 50, 51, 52, 53, -1, 55, 56, -1,
27716 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
27717 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
27718 : -1, -1, -1, 81, 82, 83, 84, 85, 86, -1,
27719 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
27720 : 98, -1, -1, 101, 102, 103, -1, -1, -1, -1,
27721 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
27722 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
27723 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
27724 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
27725 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
27726 : 158, 159, 160, 161, 162, 163, -1, 165, -1, 167,
27727 : 168, 169, 170, 171, -1, 173, -1, 175, 176, -1,
27728 : -1, -1, 180, 181, 182, 183, -1, 185, 186, -1,
27729 : 188, 189, 190, -1, 192, 193, 194, 195, 196, -1,
27730 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
27731 : 208, 209, 210, -1, 212, -1, 214, 215, 216, 217,
27732 : 218, 219, 220, -1, 222, -1, 224, -1, -1, 227,
27733 : -1, 229, 230, 231, 232, 233, 234, 235, 236, 237,
27734 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
27735 : -1, 249, 250, -1, 252, -1, -1, 255, 256, 257,
27736 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
27737 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
27738 : 278, 279, -1, 281, 282, 283, 284, 285, 286, 287,
27739 : 288, 289, 290, 291, 292, -1, 294, 295, -1, 297,
27740 : -1, 299, 300, 301, 302, 303, 304, 305, -1, 307,
27741 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
27742 : 318, 319, -1, 321, -1, 323, 324, 325, 326, 327,
27743 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
27744 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
27745 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
27746 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
27747 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
27748 : 378, -1, 380, 381, 382, 383, 384, 385, 386, 387,
27749 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
27750 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
27751 : -1, 409, 410, 411, 412, -1, 414, 415, 416, 417,
27752 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
27753 : 428, 429, 430, -1, 432, 433, -1, -1, 436, -1,
27754 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
27755 : -1, -1, 450, 451, 452, 453, 454, -1, 456, 457,
27756 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
27757 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
27758 : 478, 479, 480, -1, 482, -1, 484, 485, 486, 487,
27759 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
27760 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
27761 : 508, 509, 510, 511, 512, 513, 3, -1, -1, -1,
27762 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27763 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
27764 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
27765 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
27766 : 47, -1, 49, 50, 51, 52, 53, -1, 55, 56,
27767 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
27768 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
27769 : 77, -1, -1, -1, 81, 82, 83, 84, 85, 86,
27770 : -1, 88, 89, 90, 91, -1, 93, 94, 95, 96,
27771 : 97, 98, -1, -1, 101, 102, 103, -1, -1, -1,
27772 : -1, -1, -1, -1, 111, 112, 113, 114, 115, 116,
27773 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
27774 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
27775 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
27776 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
27777 : 157, 158, 159, 160, 161, 162, 163, -1, 165, -1,
27778 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
27779 : -1, -1, -1, 180, 181, 182, 183, -1, 185, 186,
27780 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
27781 : -1, 198, 199, 200, 201, -1, 203, 204, 205, 206,
27782 : 207, 208, 209, 210, -1, 212, -1, 214, 215, 216,
27783 : 217, 218, 219, 220, -1, 222, -1, 224, -1, -1,
27784 : 227, -1, 229, 230, 231, 232, 233, 234, 235, 236,
27785 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
27786 : -1, -1, 249, 250, -1, 252, -1, -1, 255, 256,
27787 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
27788 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
27789 : 277, 278, 279, -1, 281, 282, 283, 284, 285, 286,
27790 : 287, 288, 289, 290, 291, 292, -1, 294, 295, -1,
27791 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
27792 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
27793 : 317, 318, 319, -1, 321, -1, 323, 324, 325, 326,
27794 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
27795 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
27796 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
27797 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
27798 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
27799 : 377, 378, -1, 380, 381, 382, 383, 384, 385, 386,
27800 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
27801 : 397, 398, 399, 400, 401, -1, 403, 404, 405, 406,
27802 : 407, -1, 409, 410, 411, 412, -1, 414, 415, 416,
27803 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
27804 : 427, 428, 429, 430, -1, 432, 433, -1, -1, 436,
27805 : -1, 438, 439, 440, 441, 442, 443, -1, 445, 446,
27806 : 447, -1, -1, 450, 451, 452, 453, 454, -1, 456,
27807 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
27808 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
27809 : 477, 478, 479, 480, -1, 482, -1, 484, 485, 486,
27810 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
27811 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
27812 : 507, 508, 509, 510, 511, 512, 513, 3, -1, -1,
27813 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27814 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
27815 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
27816 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
27817 : 46, 47, -1, 49, 50, 51, 52, 53, -1, 55,
27818 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
27819 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
27820 : 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
27821 : 86, -1, 88, 89, 90, 91, -1, 93, 94, 95,
27822 : 96, 97, 98, -1, -1, 101, 102, 103, -1, -1,
27823 : -1, -1, -1, -1, -1, 111, 112, 113, 114, 115,
27824 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
27825 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
27826 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
27827 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
27828 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
27829 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
27830 : 176, -1, -1, -1, 180, 181, 182, 183, -1, 185,
27831 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
27832 : 196, -1, 198, 199, 200, 201, -1, 203, 204, 205,
27833 : 206, 207, 208, 209, 210, -1, 212, -1, 214, 215,
27834 : 216, 217, 218, 219, 220, -1, 222, -1, 224, -1,
27835 : -1, 227, -1, 229, 230, 231, 232, 233, 234, 235,
27836 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
27837 : 246, -1, -1, 249, 250, -1, 252, -1, -1, 255,
27838 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
27839 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
27840 : 276, 277, 278, 279, -1, 281, 282, 283, 284, 285,
27841 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
27842 : -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
27843 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
27844 : -1, 317, 318, 319, -1, 321, -1, 323, 324, 325,
27845 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
27846 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
27847 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
27848 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
27849 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
27850 : -1, 377, 378, -1, 380, 381, 382, 383, 384, 385,
27851 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
27852 : -1, 397, 398, 399, 400, 401, -1, 403, 404, 405,
27853 : 406, 407, -1, 409, 410, 411, 412, -1, 414, 415,
27854 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
27855 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
27856 : 436, -1, 438, 439, 440, 441, 442, 443, -1, 445,
27857 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
27858 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
27859 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
27860 : 476, 477, 478, 479, 480, -1, 482, -1, 484, 485,
27861 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
27862 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
27863 : 506, 507, 508, 509, 510, 511, 512, 513, 3, -1,
27864 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27865 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
27866 : 25, 26, 27, 28, -1, 30, 31, 32, -1, -1,
27867 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
27868 : 45, 46, 47, -1, 49, 50, 51, 52, 53, -1,
27869 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
27870 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
27871 : 75, 76, 77, -1, -1, -1, 81, 82, 83, 84,
27872 : 85, 86, -1, 88, 89, 90, 91, -1, 93, 94,
27873 : 95, 96, 97, 98, -1, -1, 101, 102, 103, -1,
27874 : -1, -1, -1, -1, -1, -1, 111, 112, 113, 114,
27875 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
27876 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
27877 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
27878 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
27879 : 155, 156, 157, 158, 159, 160, 161, 162, 163, -1,
27880 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
27881 : 175, 176, -1, -1, -1, 180, 181, 182, 183, -1,
27882 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
27883 : 195, 196, -1, 198, 199, 200, 201, -1, 203, 204,
27884 : 205, 206, 207, 208, 209, 210, -1, 212, -1, 214,
27885 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
27886 : -1, -1, 227, -1, 229, 230, 231, 232, 233, 234,
27887 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
27888 : 245, 246, -1, -1, 249, 250, -1, 252, -1, -1,
27889 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
27890 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
27891 : 275, 276, 277, 278, 279, -1, 281, 282, 283, 284,
27892 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
27893 : 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
27894 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
27895 : -1, -1, 317, 318, 319, -1, 321, -1, 323, 324,
27896 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
27897 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
27898 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
27899 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
27900 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
27901 : 375, -1, 377, 378, -1, 380, 381, 382, 383, 384,
27902 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
27903 : 395, -1, 397, 398, 399, 400, 401, -1, 403, 404,
27904 : 405, 406, 407, -1, 409, 410, 411, 412, -1, 414,
27905 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
27906 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
27907 : -1, 436, -1, 438, 439, 440, 441, 442, 443, -1,
27908 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
27909 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
27910 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
27911 : 475, 476, 477, 478, 479, 480, -1, 482, -1, 484,
27912 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
27913 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
27914 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 3,
27915 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27916 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
27917 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
27918 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
27919 : 44, 45, 46, 47, -1, 49, 50, 51, 52, 53,
27920 : -1, 55, 56, -1, 58, 59, 60, 61, 62, 63,
27921 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
27922 : 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
27923 : 84, 85, 86, -1, 88, 89, 90, 91, -1, 93,
27924 : 94, 95, 96, 97, 98, -1, -1, 101, 102, 103,
27925 : -1, -1, -1, -1, -1, -1, -1, 111, 112, 113,
27926 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
27927 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
27928 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
27929 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
27930 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
27931 : -1, 165, -1, 167, 168, 169, 170, 171, -1, 173,
27932 : -1, 175, 176, -1, -1, -1, 180, 181, 182, 183,
27933 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
27934 : 194, 195, 196, -1, 198, 199, 200, 201, -1, 203,
27935 : 204, 205, 206, 207, 208, 209, 210, -1, 212, -1,
27936 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
27937 : 224, -1, -1, 227, -1, 229, 230, 231, 232, 233,
27938 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
27939 : 244, 245, 246, -1, -1, 249, 250, -1, 252, -1,
27940 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
27941 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
27942 : 274, 275, 276, 277, 278, 279, -1, 281, 282, 283,
27943 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
27944 : 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
27945 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
27946 : 314, -1, -1, 317, 318, 319, -1, 321, -1, 323,
27947 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
27948 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
27949 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
27950 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
27951 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
27952 : 374, 375, -1, 377, 378, -1, 380, 381, 382, 383,
27953 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
27954 : 394, 395, -1, 397, 398, 399, 400, 401, -1, 403,
27955 : 404, 405, 406, 407, -1, 409, 410, 411, 412, -1,
27956 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
27957 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
27958 : -1, -1, 436, -1, 438, 439, 440, 441, 442, 443,
27959 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
27960 : 454, -1, 456, 457, 458, 459, 460, 461, 462, 463,
27961 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
27962 : 474, 475, 476, 477, 478, 479, 480, -1, 482, -1,
27963 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
27964 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
27965 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
27966 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27967 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
27968 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
27969 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
27970 : -1, 44, 45, 46, 47, -1, 49, 50, 51, 52,
27971 : 53, -1, 55, 56, -1, 58, 59, 60, 61, 62,
27972 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
27973 : 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
27974 : 83, 84, 85, 86, -1, 88, 89, 90, 91, -1,
27975 : 93, 94, 95, 96, 97, 98, -1, -1, 101, 102,
27976 : 103, -1, -1, -1, -1, -1, -1, -1, 111, 112,
27977 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
27978 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
27979 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
27980 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
27981 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
27982 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
27983 : 173, -1, 175, 176, -1, -1, -1, 180, 181, 182,
27984 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
27985 : 193, 194, 195, 196, -1, 198, 199, 200, 201, -1,
27986 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
27987 : -1, 214, 215, 216, 217, 218, 219, 220, -1, 222,
27988 : -1, 224, -1, -1, 227, -1, 229, 230, 231, 232,
27989 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
27990 : 243, 244, 245, 246, -1, -1, 249, 250, -1, 252,
27991 : -1, -1, 255, 256, 257, -1, -1, 260, 261, 262,
27992 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
27993 : 273, 274, 275, 276, 277, 278, 279, -1, 281, 282,
27994 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
27995 : -1, 294, 295, -1, 297, -1, 299, 300, 301, 302,
27996 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
27997 : 313, 314, -1, -1, 317, 318, 319, -1, 321, -1,
27998 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
27999 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
28000 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
28001 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
28002 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
28003 : 373, 374, 375, -1, 377, 378, -1, 380, 381, 382,
28004 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
28005 : 393, 394, 395, -1, 397, 398, 399, 400, 401, -1,
28006 : 403, 404, 405, 406, 407, -1, 409, 410, 411, 412,
28007 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
28008 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
28009 : 433, -1, -1, 436, -1, 438, 439, 440, 441, 442,
28010 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
28011 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
28012 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
28013 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
28014 : -1, 484, 485, 486, 487, 488, -1, -1, 491, -1,
28015 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
28016 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
28017 : 513, 3, -1, -1, -1, -1, -1, -1, -1, -1,
28018 : -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
28019 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
28020 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
28021 : 42, -1, 44, 45, 46, 47, -1, 49, 50, 51,
28022 : 52, 53, -1, 55, 56, -1, 58, 59, 60, 61,
28023 : 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
28024 : -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
28025 : 82, 83, 84, 85, 86, -1, 88, 89, 90, 91,
28026 : -1, 93, 94, 95, 96, 97, 98, -1, -1, 101,
28027 : 102, 103, -1, -1, -1, -1, -1, -1, -1, 111,
28028 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
28029 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
28030 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
28031 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
28032 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
28033 : 162, 163, -1, 165, -1, 167, 168, 169, 170, 171,
28034 : -1, 173, -1, 175, 176, -1, -1, -1, 180, 181,
28035 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
28036 : 192, 193, 194, 195, 196, -1, 198, 199, 200, 201,
28037 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
28038 : 212, -1, 214, 215, 216, 217, 218, 219, 220, -1,
28039 : 222, -1, 224, -1, -1, 227, -1, 229, 230, 231,
28040 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
28041 : 242, 243, 244, 245, 246, -1, -1, 249, 250, -1,
28042 : 252, -1, -1, 255, 256, 257, -1, -1, 260, 261,
28043 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
28044 : 272, 273, 274, 275, 276, 277, 278, 279, -1, 281,
28045 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
28046 : 292, -1, 294, 295, -1, 297, -1, 299, 300, 301,
28047 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
28048 : 312, 313, 314, -1, -1, 317, 318, 319, -1, 321,
28049 : -1, 323, 324, 325, 326, 327, 328, 329, 330, 331,
28050 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
28051 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
28052 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
28053 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
28054 : 372, 373, 374, 375, -1, 377, 378, -1, 380, 381,
28055 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
28056 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
28057 : -1, 403, 404, 405, 406, 407, -1, 409, 410, 411,
28058 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
28059 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
28060 : 432, 433, -1, -1, 436, -1, 438, 439, 440, 441,
28061 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
28062 : 452, 453, 454, -1, 456, 457, 458, 459, 460, 461,
28063 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
28064 : -1, -1, 474, 475, 476, 477, 478, 479, 480, -1,
28065 : 482, -1, 484, 485, 486, 487, 488, -1, -1, 491,
28066 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
28067 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
28068 : 512, 513, 3, -1, -1, -1, -1, -1, -1, -1,
28069 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
28070 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
28071 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
28072 : 41, 42, -1, 44, 45, 46, 47, -1, 49, 50,
28073 : 51, 52, 53, -1, 55, 56, -1, 58, 59, 60,
28074 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
28075 : 71, -1, 73, 74, 75, 76, 77, -1, -1, -1,
28076 : 81, 82, 83, 84, 85, 86, -1, 88, 89, 90,
28077 : 91, -1, 93, 94, 95, 96, 97, 98, -1, -1,
28078 : 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
28079 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
28080 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
28081 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
28082 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
28083 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
28084 : 161, 162, 163, -1, 165, -1, 167, 168, 169, 170,
28085 : 171, -1, 173, -1, 175, 176, -1, -1, -1, 180,
28086 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
28087 : -1, 192, 193, 194, 195, 196, -1, 198, 199, 200,
28088 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
28089 : -1, 212, -1, 214, 215, 216, 217, 218, 219, 220,
28090 : -1, 222, -1, 224, -1, -1, 227, -1, 229, 230,
28091 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
28092 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
28093 : -1, 252, -1, -1, 255, 256, 257, -1, -1, 260,
28094 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
28095 : 271, 272, 273, 274, 275, 276, 277, 278, 279, -1,
28096 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
28097 : 291, 292, -1, 294, 295, -1, 297, -1, 299, 300,
28098 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
28099 : -1, 312, 313, 314, -1, -1, 317, 318, 319, -1,
28100 : 321, -1, 323, 324, 325, 326, 327, 328, 329, 330,
28101 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
28102 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
28103 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
28104 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
28105 : 371, 372, 373, 374, 375, -1, 377, 378, -1, 380,
28106 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
28107 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
28108 : 401, -1, 403, 404, 405, 406, 407, -1, 409, 410,
28109 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
28110 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
28111 : -1, 432, 433, -1, -1, 436, -1, 438, 439, 440,
28112 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
28113 : 451, 452, 453, 454, -1, 456, 457, 458, 459, 460,
28114 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
28115 : 471, -1, -1, 474, 475, 476, 477, 478, 479, 480,
28116 : -1, 482, -1, 484, 485, 486, 487, 488, -1, -1,
28117 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
28118 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
28119 : 511, 512, 513, 3, -1, -1, -1, -1, -1, -1,
28120 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
28121 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
28122 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
28123 : 40, 41, 42, -1, 44, 45, 46, 47, -1, 49,
28124 : 50, 51, 52, 53, -1, 55, 56, -1, 58, 59,
28125 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
28126 : 70, 71, -1, 73, 74, 75, 76, 77, -1, -1,
28127 : -1, 81, 82, 83, 84, 85, 86, -1, 88, 89,
28128 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
28129 : -1, 101, 102, 103, -1, -1, -1, -1, -1, -1,
28130 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
28131 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
28132 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
28133 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
28134 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
28135 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
28136 : 170, 171, -1, 173, -1, 175, 176, -1, -1, -1,
28137 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
28138 : 190, -1, 192, 193, 194, 195, 196, -1, 198, 199,
28139 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
28140 : 210, -1, 212, -1, 214, 215, 216, 217, 218, 219,
28141 : 220, -1, 222, -1, 224, -1, -1, 227, -1, 229,
28142 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
28143 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
28144 : 250, -1, 252, -1, -1, 255, 256, 257, -1, -1,
28145 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
28146 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
28147 : -1, 281, 282, 283, 284, 285, 286, 287, 288, 289,
28148 : 290, 291, 292, -1, 294, 295, -1, 297, -1, 299,
28149 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
28150 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
28151 : -1, 321, -1, 323, 324, 325, 326, 327, 328, 329,
28152 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
28153 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
28154 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
28155 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
28156 : 370, 371, 372, 373, 374, 375, -1, 377, 378, -1,
28157 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
28158 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
28159 : 400, 401, -1, 403, 404, 405, 406, 407, -1, 409,
28160 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
28161 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
28162 : 430, -1, 432, 433, -1, -1, 436, -1, 438, 439,
28163 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
28164 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
28165 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
28166 : 470, 471, -1, -1, 474, 475, 476, 477, 478, 479,
28167 : 480, -1, 482, -1, 484, 485, 486, 487, 488, -1,
28168 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
28169 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
28170 : 510, 511, 512, 513, 3, -1, -1, -1, -1, -1,
28171 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
28172 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
28173 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
28174 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
28175 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
28176 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
28177 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
28178 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
28179 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
28180 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
28181 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
28182 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
28183 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
28184 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
28185 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
28186 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
28187 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
28188 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
28189 : -1, 190, -1, 192, 193, 194, 195, 196, -1, 198,
28190 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
28191 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
28192 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
28193 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
28194 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
28195 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
28196 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
28197 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
28198 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
28199 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
28200 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
28201 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
28202 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
28203 : 329, 330, -1, 332, 333, 334, 335, -1, 337, 338,
28204 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
28205 : 349, 350, 351, 352, 353, 354, 355, -1, 357, 358,
28206 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
28207 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
28208 : -1, 380, 381, 382, 383, 384, 385, -1, 387, 388,
28209 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
28210 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
28211 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
28212 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
28213 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
28214 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
28215 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
28216 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
28217 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
28218 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
28219 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
28220 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
28221 : 509, 510, 511, 512, 513, 3, -1, -1, -1, -1,
28222 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
28223 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
28224 : 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
28225 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
28226 : 48, 49, 50, 51, -1, 53, 54, 55, 56, -1,
28227 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
28228 : 68, 69, 70, 71, -1, 73, 74, 75, 76, -1,
28229 : -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
28230 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
28231 : 98, -1, 100, 101, 102, 103, -1, -1, -1, 107,
28232 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
28233 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
28234 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
28235 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
28236 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
28237 : -1, 159, 160, 161, 162, -1, -1, 165, -1, 167,
28238 : 168, 169, 170, 171, -1, 173, -1, 175, 176, 177,
28239 : -1, 179, 180, 181, 182, 183, -1, 185, -1, -1,
28240 : -1, 189, 190, -1, 192, 193, 194, 195, 196, 197,
28241 : 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
28242 : 208, 209, 210, -1, 212, 213, 214, 215, 216, 217,
28243 : 218, 219, 220, -1, 222, -1, 224, 225, 226, 227,
28244 : 228, 229, -1, -1, -1, -1, -1, -1, -1, -1,
28245 : -1, -1, 240, 241, 242, 243, 244, 245, 246, -1,
28246 : -1, 249, -1, 251, 252, 253, -1, 255, 256, 257,
28247 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
28248 : 268, 269, -1, 271, 272, 273, 274, 275, 276, 277,
28249 : 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
28250 : 288, 289, -1, -1, 292, -1, 294, 295, 296, 297,
28251 : -1, -1, 300, 301, 302, 303, 304, 305, -1, 307,
28252 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
28253 : 318, 319, 320, 321, 322, -1, 324, 325, 326, 327,
28254 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
28255 : 338, 339, -1, 341, -1, 343, 344, 345, -1, 347,
28256 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
28257 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
28258 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
28259 : 378, 379, 380, 381, 382, 383, 384, -1, 386, 387,
28260 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
28261 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
28262 : 408, 409, 410, 411, 412, -1, 414, 415, 416, 417,
28263 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
28264 : 428, -1, 430, -1, 432, 433, -1, -1, 436, 437,
28265 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
28266 : -1, -1, 450, 451, -1, 453, -1, -1, 456, 457,
28267 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
28268 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
28269 : 478, -1, 480, 481, 482, 483, 484, 485, 486, 487,
28270 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
28271 : 498, 499, 3, -1, -1, -1, -1, -1, -1, -1,
28272 : -1, -1, -1, 511, 512, 513, -1, -1, -1, 20,
28273 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
28274 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
28275 : 41, 42, -1, 44, 45, 46, 47, 48, 49, 50,
28276 : 51, -1, 53, 54, 55, 56, -1, 58, 59, 60,
28277 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
28278 : 71, -1, 73, 74, 75, 76, -1, -1, 79, -1,
28279 : 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
28280 : 91, -1, 93, 94, 95, 96, 97, 98, -1, 100,
28281 : 101, 102, 103, -1, -1, -1, 107, -1, -1, -1,
28282 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
28283 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
28284 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
28285 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
28286 : 151, 152, -1, 154, 155, 156, 157, -1, 159, 160,
28287 : 161, 162, -1, -1, 165, -1, 167, 168, 169, 170,
28288 : 171, -1, 173, -1, 175, 176, 177, -1, 179, 180,
28289 : 181, 182, 183, -1, 185, -1, -1, -1, 189, 190,
28290 : -1, 192, 193, 194, 195, 196, 197, 198, 199, 200,
28291 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
28292 : -1, 212, 213, -1, 215, 216, 217, 218, 219, 220,
28293 : -1, 222, -1, 224, 225, 226, 227, 228, 229, -1,
28294 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 240,
28295 : 241, 242, 243, 244, 245, 246, -1, -1, 249, -1,
28296 : 251, 252, 253, -1, 255, 256, 257, -1, -1, 260,
28297 : 261, 262, 263, 264, 265, 266, 267, 268, 269, -1,
28298 : 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
28299 : 281, 282, 283, 284, 285, 286, 287, 288, 289, -1,
28300 : -1, 292, -1, 294, 295, 296, 297, 298, -1, 300,
28301 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
28302 : -1, 312, 313, 314, -1, -1, 317, 318, -1, 320,
28303 : 321, 322, -1, 324, 325, 326, 327, 328, 329, 330,
28304 : 331, 332, 333, 334, 335, -1, 337, 338, 339, -1,
28305 : 341, -1, 343, 344, 345, -1, 347, 348, 349, 350,
28306 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
28307 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
28308 : 371, 372, 373, 374, 375, -1, 377, 378, 379, 380,
28309 : 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
28310 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
28311 : 401, -1, 403, 404, 405, 406, 407, 408, 409, 410,
28312 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
28313 : 421, 422, 423, 424, 425, 426, 427, 428, -1, 430,
28314 : -1, 432, 433, -1, 435, 436, 437, 438, 439, 440,
28315 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
28316 : 451, -1, 453, -1, -1, 456, 457, 458, 459, 460,
28317 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
28318 : 471, -1, -1, 474, 475, 476, 477, 478, -1, 480,
28319 : -1, 482, 483, 484, 485, 486, 487, 488, -1, -1,
28320 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 3,
28321 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
28322 : 511, 512, 513, -1, -1, -1, 20, 21, 22, 23,
28323 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
28324 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
28325 : 44, 45, 46, 47, 48, 49, 50, 51, -1, 53,
28326 : 54, 55, 56, -1, 58, 59, 60, 61, 62, 63,
28327 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
28328 : 74, 75, 76, -1, -1, 79, -1, 81, 82, 83,
28329 : 84, 85, 86, 87, 88, 89, 90, 91, -1, 93,
28330 : 94, 95, 96, 97, 98, -1, 100, 101, 102, 103,
28331 : -1, -1, -1, 107, -1, -1, -1, 111, 112, 113,
28332 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
28333 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
28334 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
28335 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
28336 : 154, 155, 156, 157, -1, 159, 160, 161, 162, -1,
28337 : -1, 165, -1, 167, 168, 169, 170, 171, -1, 173,
28338 : -1, 175, 176, 177, -1, 179, 180, 181, 182, 183,
28339 : -1, 185, -1, -1, -1, 189, 190, -1, 192, 193,
28340 : 194, 195, 196, 197, 198, 199, 200, 201, -1, 203,
28341 : 204, 205, 206, 207, 208, 209, 210, -1, 212, 213,
28342 : -1, 215, 216, 217, 218, 219, 220, -1, 222, -1,
28343 : 224, 225, 226, 227, 228, 229, -1, -1, -1, -1,
28344 : -1, -1, -1, -1, -1, -1, 240, 241, 242, 243,
28345 : 244, 245, 246, -1, -1, 249, -1, 251, 252, 253,
28346 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
28347 : 264, 265, 266, 267, 268, 269, -1, 271, 272, 273,
28348 : 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
28349 : 284, 285, 286, 287, 288, 289, 290, -1, 292, -1,
28350 : 294, 295, 296, 297, -1, -1, 300, 301, 302, 303,
28351 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
28352 : 314, -1, -1, 317, 318, -1, 320, 321, 322, -1,
28353 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
28354 : 334, 335, -1, 337, 338, 339, -1, 341, -1, 343,
28355 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
28356 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
28357 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
28358 : 374, 375, -1, 377, 378, 379, 380, 381, 382, 383,
28359 : 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
28360 : 394, 395, -1, 397, 398, 399, 400, 401, -1, 403,
28361 : 404, 405, 406, 407, 408, 409, 410, 411, 412, -1,
28362 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
28363 : 424, 425, 426, 427, 428, -1, 430, -1, 432, 433,
28364 : -1, -1, 436, 437, 438, 439, 440, 441, 442, 443,
28365 : -1, 445, 446, 447, -1, -1, 450, 451, -1, 453,
28366 : -1, -1, 456, 457, 458, 459, 460, 461, 462, 463,
28367 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
28368 : 474, 475, 476, 477, 478, -1, 480, -1, 482, 483,
28369 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
28370 : 494, 495, 496, 497, 498, 499, 3, -1, -1, -1,
28371 : -1, -1, -1, -1, -1, -1, -1, 511, 512, 513,
28372 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
28373 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
28374 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
28375 : 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
28376 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
28377 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
28378 : -1, -1, 79, -1, 81, 82, 83, 84, 85, 86,
28379 : 87, 88, 89, 90, 91, -1, 93, 94, 95, 96,
28380 : 97, 98, -1, 100, 101, 102, 103, -1, -1, -1,
28381 : 107, -1, -1, -1, 111, 112, 113, 114, 115, 116,
28382 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
28383 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
28384 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
28385 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
28386 : 157, -1, 159, 160, 161, 162, -1, -1, 165, -1,
28387 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
28388 : 177, -1, 179, 180, 181, 182, 183, -1, 185, -1,
28389 : -1, -1, 189, 190, -1, 192, 193, 194, 195, 196,
28390 : 197, 198, 199, 200, 201, -1, 203, 204, 205, 206,
28391 : 207, 208, 209, 210, -1, 212, 213, -1, 215, 216,
28392 : 217, 218, 219, 220, -1, 222, -1, 224, 225, 226,
28393 : 227, 228, 229, -1, -1, -1, -1, -1, -1, -1,
28394 : -1, -1, -1, 240, 241, 242, 243, 244, 245, 246,
28395 : -1, -1, 249, -1, 251, 252, 253, -1, 255, 256,
28396 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
28397 : 267, 268, 269, -1, 271, 272, 273, 274, 275, 276,
28398 : 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
28399 : 287, 288, 289, 290, -1, 292, -1, 294, 295, 296,
28400 : 297, -1, -1, 300, 301, 302, 303, 304, 305, -1,
28401 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
28402 : 317, 318, -1, 320, 321, 322, -1, 324, 325, 326,
28403 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
28404 : 337, 338, 339, -1, 341, -1, 343, 344, 345, -1,
28405 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
28406 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
28407 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
28408 : 377, 378, 379, 380, 381, 382, 383, 384, -1, 386,
28409 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
28410 : 397, 398, 399, 400, 401, -1, 403, 404, 405, 406,
28411 : 407, 408, 409, 410, 411, 412, -1, 414, 415, 416,
28412 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
28413 : 427, 428, -1, 430, -1, 432, 433, -1, -1, 436,
28414 : 437, 438, 439, 440, 441, 442, 443, -1, 445, 446,
28415 : 447, -1, -1, 450, 451, -1, 453, -1, -1, 456,
28416 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
28417 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
28418 : 477, 478, -1, 480, -1, 482, 483, 484, 485, 486,
28419 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
28420 : 497, 498, 499, 3, -1, -1, -1, -1, -1, -1,
28421 : -1, -1, -1, -1, 511, 512, 513, -1, -1, -1,
28422 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
28423 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
28424 : 40, 41, 42, -1, 44, 45, 46, 47, 48, 49,
28425 : 50, 51, -1, 53, 54, 55, 56, -1, 58, 59,
28426 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
28427 : 70, 71, -1, 73, 74, 75, 76, -1, -1, 79,
28428 : -1, 81, 82, 83, 84, 85, 86, 87, 88, 89,
28429 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
28430 : 100, 101, 102, 103, -1, -1, -1, 107, -1, -1,
28431 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
28432 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
28433 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
28434 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
28435 : 150, 151, 152, -1, 154, 155, 156, 157, -1, 159,
28436 : 160, 161, 162, -1, -1, 165, -1, 167, 168, 169,
28437 : 170, 171, 172, 173, -1, 175, 176, 177, -1, 179,
28438 : 180, 181, 182, 183, -1, 185, -1, -1, -1, 189,
28439 : 190, -1, 192, 193, 194, 195, 196, 197, 198, 199,
28440 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
28441 : 210, -1, 212, 213, -1, 215, 216, 217, 218, 219,
28442 : 220, -1, 222, -1, 224, 225, 226, 227, 228, 229,
28443 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
28444 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
28445 : -1, 251, 252, 253, -1, 255, 256, 257, -1, -1,
28446 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
28447 : -1, 271, 272, 273, 274, 275, 276, 277, 278, 279,
28448 : 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
28449 : -1, -1, 292, -1, 294, 295, 296, 297, -1, -1,
28450 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
28451 : -1, -1, 312, 313, 314, -1, -1, 317, 318, -1,
28452 : 320, 321, 322, -1, 324, 325, 326, 327, 328, 329,
28453 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
28454 : -1, 341, -1, 343, 344, 345, -1, 347, 348, 349,
28455 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
28456 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
28457 : 370, 371, 372, 373, 374, 375, -1, 377, 378, 379,
28458 : 380, 381, 382, 383, 384, -1, 386, 387, 388, 389,
28459 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
28460 : 400, 401, -1, 403, 404, 405, 406, 407, 408, 409,
28461 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
28462 : 420, 421, 422, 423, 424, 425, 426, 427, 428, -1,
28463 : 430, -1, 432, 433, -1, -1, 436, 437, 438, 439,
28464 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
28465 : 450, 451, -1, 453, -1, -1, 456, 457, 458, 459,
28466 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
28467 : 470, 471, -1, -1, 474, 475, 476, 477, 478, -1,
28468 : 480, -1, 482, 483, 484, 485, 486, 487, 488, -1,
28469 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
28470 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
28471 : -1, 511, 512, 513, -1, -1, -1, 20, 21, 22,
28472 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
28473 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
28474 : -1, 44, 45, 46, 47, 48, 49, 50, 51, -1,
28475 : 53, 54, 55, 56, -1, 58, 59, 60, 61, 62,
28476 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
28477 : 73, 74, 75, 76, -1, -1, 79, -1, 81, 82,
28478 : 83, 84, 85, 86, 87, 88, 89, 90, 91, -1,
28479 : 93, 94, 95, 96, 97, 98, -1, 100, 101, 102,
28480 : 103, -1, -1, -1, 107, -1, -1, -1, 111, 112,
28481 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
28482 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
28483 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
28484 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
28485 : -1, 154, 155, 156, 157, -1, 159, 160, 161, 162,
28486 : -1, -1, 165, -1, 167, 168, 169, 170, 171, 172,
28487 : 173, -1, 175, 176, 177, -1, 179, 180, 181, 182,
28488 : 183, -1, 185, -1, -1, -1, 189, 190, -1, 192,
28489 : 193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
28490 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
28491 : 213, -1, 215, 216, 217, 218, 219, 220, -1, 222,
28492 : -1, 224, 225, 226, 227, 228, 229, -1, -1, -1,
28493 : -1, -1, -1, -1, -1, -1, -1, 240, 241, 242,
28494 : 243, 244, 245, 246, -1, -1, 249, -1, 251, 252,
28495 : 253, -1, 255, 256, 257, -1, -1, 260, 261, 262,
28496 : 263, 264, 265, 266, 267, 268, 269, -1, 271, 272,
28497 : 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
28498 : 283, 284, 285, 286, 287, 288, 289, -1, -1, 292,
28499 : -1, 294, 295, 296, 297, -1, -1, 300, 301, 302,
28500 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
28501 : 313, 314, -1, -1, 317, 318, -1, 320, 321, 322,
28502 : -1, 324, 325, 326, 327, 328, 329, 330, 331, 332,
28503 : 333, 334, 335, -1, 337, 338, 339, -1, 341, -1,
28504 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
28505 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
28506 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
28507 : 373, 374, 375, -1, 377, 378, 379, 380, 381, 382,
28508 : 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
28509 : 393, 394, 395, -1, 397, 398, 399, 400, 401, -1,
28510 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
28511 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
28512 : 423, 424, 425, 426, 427, 428, -1, 430, -1, 432,
28513 : 433, -1, -1, 436, 437, 438, 439, 440, 441, 442,
28514 : 443, -1, 445, 446, 447, -1, -1, 450, 451, -1,
28515 : 453, -1, -1, 456, 457, 458, 459, 460, 461, 462,
28516 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
28517 : -1, 474, 475, 476, 477, 478, -1, 480, -1, 482,
28518 : 483, 484, 485, 486, 487, 488, -1, -1, 491, -1,
28519 : -1, 494, 495, 496, 497, 498, 499, 3, -1, -1,
28520 : -1, -1, -1, -1, -1, -1, -1, -1, 511, 512,
28521 : 513, -1, -1, -1, 20, 21, 22, 23, 24, 25,
28522 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
28523 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
28524 : 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
28525 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
28526 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
28527 : 76, -1, -1, 79, -1, 81, 82, 83, 84, 85,
28528 : 86, 87, 88, 89, 90, 91, -1, 93, 94, 95,
28529 : 96, 97, 98, -1, 100, 101, 102, 103, -1, -1,
28530 : -1, 107, -1, -1, -1, 111, 112, 113, 114, 115,
28531 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
28532 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
28533 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
28534 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
28535 : 156, 157, -1, 159, 160, 161, 162, -1, -1, 165,
28536 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
28537 : 176, 177, -1, 179, 180, 181, 182, 183, -1, 185,
28538 : -1, -1, -1, 189, 190, -1, 192, 193, 194, 195,
28539 : 196, 197, 198, 199, 200, 201, -1, 203, 204, 205,
28540 : 206, 207, 208, 209, 210, -1, 212, 213, -1, 215,
28541 : 216, 217, 218, 219, 220, -1, 222, -1, 224, 225,
28542 : 226, 227, 228, 229, -1, -1, -1, -1, -1, -1,
28543 : -1, -1, -1, -1, 240, 241, 242, 243, 244, 245,
28544 : 246, -1, -1, 249, -1, 251, 252, 253, -1, 255,
28545 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
28546 : 266, 267, 268, 269, -1, 271, 272, 273, 274, 275,
28547 : 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
28548 : 286, 287, 288, 289, -1, -1, 292, -1, 294, 295,
28549 : 296, 297, -1, -1, 300, 301, 302, 303, 304, 305,
28550 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
28551 : -1, 317, 318, -1, 320, 321, 322, -1, 324, 325,
28552 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
28553 : -1, 337, 338, 339, -1, 341, -1, 343, 344, 345,
28554 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
28555 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
28556 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
28557 : -1, 377, 378, 379, 380, 381, 382, 383, 384, -1,
28558 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
28559 : -1, 397, 398, 399, 400, 401, -1, 403, 404, 405,
28560 : 406, 407, 408, 409, 410, 411, 412, -1, 414, 415,
28561 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
28562 : 426, 427, 428, -1, 430, -1, 432, 433, -1, -1,
28563 : 436, 437, 438, 439, 440, 441, 442, 443, -1, 445,
28564 : 446, 447, -1, -1, 450, 451, -1, 453, -1, -1,
28565 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
28566 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
28567 : 476, 477, 478, -1, 480, -1, 482, 483, 484, 485,
28568 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
28569 : 496, 497, 498, 499, 3, -1, -1, -1, -1, -1,
28570 : -1, -1, -1, -1, -1, 511, 512, 513, -1, -1,
28571 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
28572 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
28573 : -1, 40, 41, 42, -1, 44, 45, 46, 47, 48,
28574 : 49, 50, 51, -1, 53, 54, 55, 56, -1, 58,
28575 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
28576 : 69, 70, 71, -1, 73, 74, 75, 76, -1, -1,
28577 : 79, -1, 81, 82, 83, 84, 85, 86, 87, 88,
28578 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
28579 : -1, 100, 101, 102, 103, -1, -1, -1, 107, -1,
28580 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
28581 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
28582 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
28583 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
28584 : 149, 150, 151, 152, -1, 154, 155, 156, 157, -1,
28585 : 159, 160, 161, 162, -1, -1, 165, -1, 167, 168,
28586 : 169, 170, 171, -1, 173, -1, 175, 176, 177, -1,
28587 : 179, 180, 181, 182, 183, -1, 185, -1, -1, -1,
28588 : 189, 190, -1, 192, 193, 194, 195, 196, 197, 198,
28589 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
28590 : 209, 210, -1, 212, 213, -1, 215, 216, 217, 218,
28591 : 219, 220, -1, 222, -1, 224, 225, 226, 227, 228,
28592 : 229, -1, -1, -1, -1, -1, -1, -1, -1, -1,
28593 : -1, 240, 241, 242, 243, 244, 245, 246, -1, -1,
28594 : 249, -1, 251, 252, 253, -1, 255, 256, 257, -1,
28595 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
28596 : 269, -1, 271, 272, 273, 274, 275, 276, 277, 278,
28597 : 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
28598 : 289, -1, -1, 292, -1, 294, 295, 296, 297, -1,
28599 : -1, 300, 301, 302, 303, 304, 305, -1, 307, 308,
28600 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
28601 : -1, 320, 321, 322, -1, 324, 325, 326, 327, 328,
28602 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
28603 : 339, -1, 341, -1, 343, 344, 345, -1, 347, 348,
28604 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
28605 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
28606 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
28607 : 379, 380, 381, 382, 383, 384, -1, 386, 387, 388,
28608 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
28609 : 399, 400, 401, -1, 403, 404, 405, 406, 407, 408,
28610 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
28611 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
28612 : -1, 430, -1, 432, 433, -1, -1, 436, 437, 438,
28613 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
28614 : -1, 450, 451, -1, 453, -1, -1, 456, 457, 458,
28615 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
28616 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
28617 : -1, 480, -1, 482, 483, 484, 485, 486, 487, 488,
28618 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
28619 : 499, 3, -1, -1, -1, -1, -1, -1, -1, -1,
28620 : -1, -1, 511, 512, 513, -1, -1, -1, 20, 21,
28621 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
28622 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
28623 : 42, -1, 44, 45, 46, 47, 48, 49, 50, 51,
28624 : -1, 53, 54, 55, 56, -1, 58, 59, 60, 61,
28625 : 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
28626 : -1, 73, 74, 75, 76, -1, -1, 79, -1, 81,
28627 : 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
28628 : -1, 93, 94, 95, 96, 97, 98, -1, 100, 101,
28629 : 102, 103, -1, -1, -1, 107, -1, -1, -1, 111,
28630 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
28631 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
28632 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
28633 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
28634 : 152, -1, 154, 155, 156, 157, -1, 159, 160, 161,
28635 : 162, -1, -1, 165, -1, 167, 168, 169, 170, 171,
28636 : -1, 173, -1, 175, 176, 177, -1, 179, 180, 181,
28637 : 182, 183, -1, 185, -1, -1, -1, 189, 190, -1,
28638 : 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
28639 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
28640 : 212, 213, -1, 215, 216, 217, 218, 219, 220, -1,
28641 : 222, -1, 224, 225, 226, 227, 228, 229, -1, -1,
28642 : -1, -1, -1, -1, -1, -1, -1, -1, 240, 241,
28643 : 242, 243, 244, 245, 246, -1, -1, 249, -1, 251,
28644 : 252, 253, -1, 255, 256, 257, -1, -1, 260, 261,
28645 : 262, 263, 264, 265, 266, 267, 268, 269, -1, 271,
28646 : 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
28647 : 282, 283, 284, 285, 286, 287, 288, 289, -1, -1,
28648 : 292, -1, 294, 295, 296, 297, -1, -1, 300, 301,
28649 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
28650 : 312, 313, 314, -1, -1, 317, 318, -1, 320, 321,
28651 : 322, -1, 324, 325, 326, 327, 328, 329, 330, 331,
28652 : 332, 333, 334, 335, -1, 337, 338, 339, -1, 341,
28653 : -1, 343, 344, 345, -1, 347, 348, 349, 350, 351,
28654 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
28655 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
28656 : 372, 373, 374, 375, -1, 377, 378, 379, 380, 381,
28657 : 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
28658 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
28659 : -1, 403, 404, 405, 406, 407, 408, 409, 410, 411,
28660 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
28661 : 422, 423, 424, 425, 426, 427, 428, -1, 430, -1,
28662 : 432, 433, -1, -1, 436, 437, 438, 439, 440, 441,
28663 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
28664 : -1, 453, -1, -1, 456, 457, 458, 459, 460, 461,
28665 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
28666 : -1, -1, 474, 475, 476, 477, 478, -1, 480, -1,
28667 : 482, 483, 484, 485, 486, 487, 488, -1, -1, 491,
28668 : -1, -1, 494, 495, 496, 497, 498, 499, 3, -1,
28669 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 511,
28670 : 512, 513, -1, -1, -1, 20, 21, 22, 23, 24,
28671 : 25, 26, 27, 28, -1, 30, 31, 32, -1, -1,
28672 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
28673 : 45, 46, 47, 48, 49, 50, 51, -1, 53, 54,
28674 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
28675 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
28676 : 75, 76, -1, -1, 79, -1, 81, 82, 83, 84,
28677 : 85, 86, 87, 88, 89, 90, 91, -1, 93, 94,
28678 : 95, 96, 97, 98, -1, 100, 101, 102, 103, -1,
28679 : -1, -1, 107, -1, -1, -1, 111, 112, 113, 114,
28680 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
28681 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
28682 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
28683 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
28684 : 155, 156, 157, -1, 159, 160, 161, 162, -1, -1,
28685 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
28686 : 175, 176, 177, -1, 179, 180, 181, 182, 183, -1,
28687 : 185, -1, -1, -1, 189, 190, -1, 192, 193, 194,
28688 : 195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
28689 : 205, 206, 207, 208, 209, 210, -1, 212, 213, -1,
28690 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
28691 : 225, 226, 227, 228, 229, -1, -1, -1, -1, -1,
28692 : -1, -1, -1, -1, -1, 240, 241, 242, 243, 244,
28693 : 245, 246, -1, -1, 249, -1, 251, 252, 253, -1,
28694 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
28695 : 265, 266, 267, 268, 269, -1, 271, 272, 273, 274,
28696 : 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
28697 : 285, 286, 287, 288, 289, -1, -1, 292, -1, 294,
28698 : 295, 296, 297, -1, -1, 300, 301, 302, 303, 304,
28699 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
28700 : -1, -1, 317, 318, -1, 320, 321, 322, -1, 324,
28701 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
28702 : 335, -1, 337, 338, 339, -1, 341, -1, 343, 344,
28703 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
28704 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
28705 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
28706 : 375, -1, 377, 378, 379, 380, 381, 382, 383, 384,
28707 : -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
28708 : 395, -1, 397, 398, 399, 400, 401, -1, 403, 404,
28709 : 405, 406, 407, 408, 409, 410, 411, 412, -1, 414,
28710 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
28711 : 425, 426, 427, 428, -1, 430, -1, 432, 433, -1,
28712 : -1, 436, 437, 438, 439, 440, 441, 442, 443, -1,
28713 : 445, 446, 447, -1, -1, 450, 451, -1, 453, -1,
28714 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
28715 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
28716 : 475, 476, 477, 478, -1, 480, -1, 482, 483, 484,
28717 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
28718 : 495, 496, 497, 498, 499, 3, -1, -1, -1, -1,
28719 : -1, -1, -1, -1, -1, -1, 511, 512, 513, -1,
28720 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
28721 : 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
28722 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
28723 : 48, 49, 50, 51, -1, 53, 54, 55, 56, -1,
28724 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
28725 : 68, 69, 70, 71, -1, 73, 74, 75, 76, -1,
28726 : -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
28727 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
28728 : 98, -1, 100, 101, 102, 103, -1, -1, -1, 107,
28729 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
28730 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
28731 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
28732 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
28733 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
28734 : -1, 159, 160, 161, 162, -1, -1, 165, -1, 167,
28735 : 168, 169, 170, 171, -1, 173, -1, 175, 176, 177,
28736 : -1, 179, 180, 181, 182, 183, -1, 185, -1, -1,
28737 : -1, 189, 190, -1, 192, 193, 194, 195, 196, 197,
28738 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
28739 : 208, 209, 210, -1, 212, 213, -1, 215, 216, 217,
28740 : 218, 219, 220, -1, 222, -1, 224, 225, 226, 227,
28741 : 228, 229, -1, -1, -1, -1, -1, -1, -1, -1,
28742 : -1, -1, 240, 241, 242, 243, 244, 245, 246, -1,
28743 : -1, 249, -1, 251, 252, 253, -1, 255, 256, 257,
28744 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
28745 : 268, 269, -1, 271, 272, 273, 274, 275, 276, 277,
28746 : 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
28747 : 288, 289, -1, -1, 292, -1, 294, 295, 296, 297,
28748 : -1, -1, 300, 301, 302, 303, 304, 305, -1, 307,
28749 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
28750 : 318, -1, 320, 321, 322, -1, 324, 325, 326, 327,
28751 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
28752 : 338, 339, -1, 341, -1, 343, 344, 345, -1, 347,
28753 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
28754 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
28755 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
28756 : 378, 379, 380, 381, 382, 383, 384, -1, 386, 387,
28757 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
28758 : 398, 399, 400, 401, -1, 403, 404, -1, 406, 407,
28759 : 408, 409, 410, 411, 412, -1, 414, 415, 416, 417,
28760 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
28761 : 428, -1, 430, -1, 432, 433, -1, -1, 436, 437,
28762 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
28763 : -1, -1, 450, 451, -1, 453, -1, -1, 456, 457,
28764 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
28765 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
28766 : 478, -1, 480, -1, 482, 483, 484, 485, 486, 487,
28767 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
28768 : 498, 499, 3, -1, -1, -1, -1, -1, -1, -1,
28769 : -1, -1, -1, 511, 512, 513, -1, -1, -1, 20,
28770 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
28771 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
28772 : 41, 42, -1, 44, 45, 46, 47, 48, 49, 50,
28773 : 51, -1, -1, 54, -1, -1, -1, 58, 59, 60,
28774 : 61, 62, 63, 64, -1, -1, 67, 68, -1, -1,
28775 : 71, -1, 73, 74, 75, 76, -1, -1, 79, -1,
28776 : 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
28777 : 91, -1, 93, 94, 95, 96, 97, 98, -1, 100,
28778 : 101, 102, 103, -1, -1, -1, 107, -1, -1, -1,
28779 : 111, 112, 113, 114, 115, 116, -1, -1, 119, -1,
28780 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
28781 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
28782 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
28783 : 151, 152, -1, 154, 155, 156, 157, -1, 159, 160,
28784 : 161, 162, -1, -1, 165, -1, 167, 168, 169, -1,
28785 : 171, -1, 173, -1, 175, 176, 177, -1, 179, 180,
28786 : 181, 182, 183, -1, 185, -1, -1, -1, 189, 190,
28787 : -1, 192, 193, 194, 195, 196, 197, 198, 199, 200,
28788 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
28789 : -1, 212, 213, -1, 215, 216, 217, 218, -1, -1,
28790 : -1, -1, -1, 224, 225, 226, 227, 228, -1, -1,
28791 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 240,
28792 : 241, 242, 243, 244, 245, 246, -1, -1, 249, -1,
28793 : 251, 252, 253, -1, 255, 256, 257, -1, -1, 260,
28794 : 261, 262, 263, 264, 265, 266, 267, 268, 269, -1,
28795 : 271, 272, 273, 274, 275, 276, 277, 278, -1, 280,
28796 : -1, 282, 283, 284, 285, 286, 287, 288, 289, -1,
28797 : -1, 292, -1, 294, 295, 296, 297, -1, -1, 300,
28798 : -1, 302, 303, 304, 305, -1, 307, 308, 309, -1,
28799 : -1, 312, 313, 314, -1, -1, 317, 318, -1, 320,
28800 : 321, 322, -1, 324, 325, 326, 327, 328, 329, 330,
28801 : 331, 332, 333, 334, 335, -1, 337, 338, 339, -1,
28802 : 341, -1, 343, 344, 345, -1, 347, 348, 349, 350,
28803 : 351, 352, 353, 354, 355, 356, 357, -1, 359, 360,
28804 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
28805 : 371, 372, 373, 374, 375, -1, 377, 378, 379, 380,
28806 : 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
28807 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
28808 : 401, -1, 403, 404, -1, 406, 407, 408, 409, 410,
28809 : -1, 412, -1, 414, 415, 416, 417, 418, 419, 420,
28810 : 421, 422, 423, 424, 425, 426, 427, 428, -1, 430,
28811 : -1, 432, 433, -1, -1, 436, 437, 438, 439, 440,
28812 : 441, 442, 443, -1, 445, -1, -1, -1, -1, 450,
28813 : 451, -1, 453, -1, -1, 456, 457, 458, 459, 460,
28814 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
28815 : 471, -1, -1, 474, 475, 476, 477, 478, -1, -1,
28816 : -1, 482, 483, 484, 485, 486, 487, 488, -1, -1,
28817 : 491, -1, -1, 494, 495, 496, 497, 498, 499, -1,
28818 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
28819 : 511, 512, 513
28820 : };
28821 :
28822 : /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
28823 : symbol of state STATE-NUM. */
28824 : static const yytype_int16 yystos[] =
28825 : {
28826 : 0, 20, 31, 33, 34, 51, 61, 73, 75, 76,
28827 : 82, 84, 97, 99, 116, 119, 134, 136, 140, 147,
28828 : 157, 159, 166, 184, 201, 255, 256, 261, 276, 295,
28829 : 344, 359, 364, 365, 367, 372, 378, 381, 388, 395,
28830 : 396, 403, 407, 418, 435, 456, 468, 474, 479, 493,
28831 : 517, 519, 520, 521, 522, 523, 536, 543, 544, 545,
28832 : 546, 551, 552, 558, 559, 561, 562, 563, 564, 566,
28833 : 569, 581, 586, 587, 590, 591, 592, 612, 615, 616,
28834 : 631, 686, 689, 690, 693, 696, 697, 698, 706, 713,
28835 : 715, 716, 719, 722, 723, 727, 736, 740, 741, 742,
28836 : 745, 747, 748, 749, 750, 758, 760, 780, 784, 786,
28837 : 787, 797, 799, 805, 806, 809, 810, 811, 812, 813,
28838 : 822, 824, 826, 829, 833, 834, 844, 845, 850, 855,
28839 : 866, 898, 901, 902, 903, 908, 911, 913, 915, 917,
28840 : 918, 922, 923, 926, 928, 929, 933, 934, 935, 938,
28841 : 939, 940, 941, 942, 949, 951, 952, 953, 954, 960,
28842 : 962, 963, 969, 970, 971, 974, 975, 976, 977, 979,
28843 : 980, 982, 983, 985, 986, 988, 1000, 1002, 1005, 1007,
28844 : 1008, 1021, 1023, 1028, 1033, 1043, 1047, 1048, 1049, 1050,
28845 : 1051, 1052, 1058, 1094, 450, 496, 955, 28, 79, 96,
28846 : 114, 120, 138, 152, 161, 174, 180, 187, 207, 245,
28847 : 267, 312, 339, 349, 350, 353, 380, 383, 387, 390,
28848 : 397, 400, 420, 428, 433, 435, 438, 443, 453, 458,
28849 : 472, 485, 712, 955, 3, 20, 21, 22, 23, 24,
28850 : 25, 26, 27, 28, 30, 31, 32, 40, 41, 42,
28851 : 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
28852 : 54, 55, 56, 58, 59, 60, 61, 62, 63, 64,
28853 : 67, 68, 69, 70, 71, 73, 74, 75, 76, 77,
28854 : 79, 81, 82, 83, 84, 85, 86, 87, 88, 89,
28855 : 90, 91, 93, 94, 95, 96, 97, 98, 100, 101,
28856 : 102, 103, 107, 111, 112, 113, 114, 115, 116, 117,
28857 : 118, 119, 121, 123, 124, 125, 126, 127, 128, 129,
28858 : 131, 132, 133, 134, 137, 138, 139, 140, 141, 143,
28859 : 144, 145, 146, 148, 149, 150, 151, 152, 154, 155,
28860 : 156, 157, 158, 159, 160, 161, 162, 163, 165, 167,
28861 : 168, 169, 170, 171, 173, 175, 176, 177, 179, 180,
28862 : 181, 182, 183, 185, 186, 188, 189, 190, 192, 193,
28863 : 194, 195, 196, 197, 198, 199, 200, 201, 203, 204,
28864 : 205, 206, 207, 208, 209, 210, 212, 213, 214, 215,
28865 : 216, 217, 218, 219, 220, 222, 224, 225, 226, 227,
28866 : 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
28867 : 238, 239, 240, 241, 242, 243, 244, 245, 246, 249,
28868 : 250, 251, 252, 253, 255, 256, 257, 260, 261, 262,
28869 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
28870 : 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
28871 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
28872 : 294, 295, 296, 297, 299, 300, 301, 302, 303, 304,
28873 : 305, 307, 308, 309, 312, 313, 314, 317, 318, 319,
28874 : 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
28875 : 330, 331, 332, 333, 334, 335, 337, 338, 339, 340,
28876 : 341, 342, 343, 344, 345, 347, 348, 349, 350, 351,
28877 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
28878 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
28879 : 373, 374, 375, 377, 378, 379, 380, 381, 382, 383,
28880 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
28881 : 394, 395, 397, 398, 399, 400, 401, 403, 404, 405,
28882 : 406, 407, 408, 409, 410, 411, 412, 414, 415, 416,
28883 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
28884 : 427, 428, 429, 430, 432, 433, 436, 437, 438, 439,
28885 : 440, 441, 442, 443, 445, 446, 447, 450, 451, 452,
28886 : 453, 454, 456, 457, 458, 459, 460, 461, 462, 463,
28887 : 464, 467, 468, 469, 470, 471, 474, 475, 476, 477,
28888 : 478, 479, 480, 482, 483, 484, 485, 486, 487, 488,
28889 : 491, 494, 495, 496, 497, 498, 499, 500, 501, 502,
28890 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
28891 : 513, 1162, 1255, 1267, 1268, 1272, 1273, 1274, 3, 29,
28892 : 1044, 1252, 1267, 1272, 483, 536, 993, 310, 345, 955,
28893 : 54, 536, 623, 23, 41, 66, 79, 114, 120, 138,
28894 : 152, 161, 174, 183, 187, 257, 312, 315, 339, 353,
28895 : 380, 390, 400, 420, 428, 438, 440, 442, 443, 458,
28896 : 466, 469, 472, 632, 695, 802, 856, 867, 29, 344,
28897 : 1252, 1044, 29, 338, 398, 440, 442, 6, 244, 909,
28898 : 910, 1258, 23, 28, 66, 79, 96, 114, 138, 152,
28899 : 161, 174, 180, 187, 207, 267, 312, 325, 339, 350,
28900 : 353, 380, 383, 387, 390, 397, 400, 420, 428, 435,
28901 : 438, 443, 451, 453, 458, 472, 485, 712, 814, 816,
28902 : 817, 955, 1252, 99, 483, 536, 690, 693, 696, 988,
28903 : 1001, 1005, 1008, 1021, 1028, 1033, 1043, 1047, 11, 22,
28904 : 29, 49, 169, 176, 178, 202, 246, 284, 347, 366,
28905 : 527, 528, 830, 831, 1044, 1257, 1259, 29, 31, 99,
28906 : 362, 396, 835, 836, 837, 1267, 174, 1267, 1254, 1258,
28907 : 435, 1061, 830, 1267, 450, 1252, 325, 267, 536, 921,
28908 : 388, 1267, 29, 401, 446, 450, 573, 582, 583, 1267,
28909 : 184, 835, 836, 1267, 345, 955, 1267, 243, 29, 135,
28910 : 1063, 1064, 67, 93, 257, 278, 380, 390, 401, 446,
28911 : 450, 499, 570, 571, 572, 573, 29, 401, 446, 450,
28912 : 573, 450, 311, 1106, 1107, 1250, 1267, 1061, 529, 1267,
28913 : 179, 536, 994, 536, 360, 1053, 1054, 1252, 1053, 3,
28914 : 53, 55, 56, 69, 70, 117, 118, 139, 170, 219,
28915 : 220, 222, 229, 279, 281, 301, 358, 405, 411, 446,
28916 : 447, 480, 1135, 1137, 1139, 1141, 1143, 1145, 1146, 1147,
28917 : 1149, 1150, 1151, 1153, 1154, 1158, 1268, 1272, 1063, 1064,
28918 : 1065, 1263, 12, 1264, 1265, 1267, 1264, 1264, 1048, 1049,
28919 : 1052, 0, 539, 536, 993, 153, 221, 316, 465, 1066,
28920 : 1067, 1048, 1050, 1051, 125, 217, 269, 471, 540, 35,
28921 : 959, 883, 1255, 819, 1267, 819, 1252, 348, 819, 453,
28922 : 1252, 113, 435, 871, 1255, 1267, 1274, 3, 106, 110,
28923 : 402, 1260, 1261, 1269, 1272, 1273, 1274, 29, 196, 1250,
28924 : 302, 485, 10, 17, 18, 19, 74, 165, 524, 525,
28925 : 526, 527, 528, 529, 530, 531, 532, 905, 907, 1193,
28926 : 1194, 1267, 196, 1252, 871, 1252, 29, 1260, 1261, 871,
28927 : 1252, 1252, 196, 1250, 1252, 196, 819, 1252, 372, 403,
28928 : 29, 196, 1106, 1252, 393, 1252, 819, 29, 264, 1260,
28929 : 1261, 196, 1250, 244, 122, 227, 293, 357, 956, 957,
28930 : 958, 536, 534, 538, 1219, 1221, 514, 987, 988, 989,
28931 : 990, 1269, 1250, 1252, 1267, 28, 66, 80, 92, 114,
28932 : 138, 180, 207, 245, 312, 350, 380, 383, 428, 438,
28933 : 451, 458, 814, 815, 816, 817, 1258, 959, 1004, 1008,
28934 : 1021, 1028, 1033, 1047, 1250, 271, 819, 536, 196, 819,
28935 : 1252, 819, 453, 196, 1252, 113, 435, 440, 442, 1260,
28936 : 1261, 440, 442, 74, 165, 905, 370, 1252, 1252, 1260,
28937 : 196, 547, 1267, 196, 1252, 196, 548, 819, 1252, 1252,
28938 : 393, 819, 264, 1260, 360, 397, 435, 485, 267, 96,
28939 : 207, 28, 92, 180, 350, 387, 451, 453, 457, 707,
28940 : 29, 1252, 1045, 580, 1258, 1269, 910, 271, 196, 883,
28941 : 884, 196, 914, 196, 1252, 196, 821, 1135, 453, 113,
28942 : 435, 196, 870, 871, 196, 1261, 1262, 87, 485, 74,
28943 : 165, 196, 906, 907, 59, 196, 870, 196, 1262, 196,
28944 : 870, 196, 1252, 196, 1252, 393, 914, 196, 821, 196,
28945 : 264, 1262, 244, 196, 818, 819, 196, 1251, 1252, 196,
28946 : 1252, 959, 536, 1006, 632, 1001, 479, 987, 993, 1259,
28947 : 831, 832, 29, 832, 1259, 832, 29, 832, 1259, 832,
28948 : 832, 832, 1259, 1257, 1257, 1044, 832, 348, 536, 433,
28949 : 536, 661, 661, 661, 310, 448, 540, 661, 390, 1106,
28950 : 1108, 540, 950, 1258, 536, 1003, 59, 485, 987, 114,
28951 : 207, 390, 433, 435, 919, 920, 1267, 48, 513, 227,
28952 : 538, 313, 310, 178, 313, 1258, 448, 959, 172, 827,
28953 : 310, 5, 8, 9, 10, 12, 37, 53, 55, 56,
28954 : 65, 66, 69, 70, 77, 79, 104, 105, 106, 107,
28955 : 108, 109, 110, 117, 118, 120, 158, 163, 164, 170,
28956 : 186, 188, 219, 220, 222, 229, 230, 231, 232, 233,
28957 : 234, 235, 236, 237, 239, 250, 258, 259, 270, 279,
28958 : 281, 291, 293, 298, 299, 301, 312, 323, 340, 358,
28959 : 385, 402, 411, 429, 434, 446, 447, 452, 454, 455,
28960 : 466, 472, 480, 501, 502, 503, 504, 506, 507, 508,
28961 : 509, 515, 527, 528, 529, 536, 1048, 1138, 1141, 1144,
28962 : 1145, 1146, 1148, 1149, 1150, 1153, 1154, 1158, 1159, 1161,
28963 : 1162, 1163, 1165, 1189, 1190, 1191, 1195, 1213, 1218, 1244,
28964 : 1247, 1248, 1255, 1256, 1257, 1258, 1267, 1246, 1247, 1258,
28965 : 29, 588, 1249, 1250, 401, 570, 120, 579, 1258, 580,
28966 : 1258, 48, 71, 570, 513, 412, 957, 313, 178, 448,
28967 : 526, 48, 513, 227, 958, 536, 1250, 529, 1221, 1108,
28968 : 987, 177, 995, 1159, 1198, 1053, 540, 536, 996, 482,
28969 : 1152, 1152, 1152, 536, 1140, 1140, 342, 536, 1142, 69,
28970 : 70, 1152, 1140, 1137, 517, 518, 536, 1155, 536, 1155,
28971 : 37, 1136, 536, 115, 194, 272, 275, 394, 511, 536,
28972 : 1156, 1157, 538, 820, 1140, 1246, 1222, 537, 537, 545,
28973 : 987, 997, 998, 999, 1106, 29, 135, 1062, 1062, 59,
28974 : 1062, 166, 172, 254, 306, 1070, 1072, 1073, 1088, 1090,
28975 : 1091, 1092, 1066, 1067, 178, 223, 223, 1106, 1109, 536,
28976 : 68, 289, 326, 368, 403, 536, 881, 326, 364, 368,
28977 : 403, 820, 326, 368, 403, 3, 91, 145, 260, 326,
28978 : 364, 368, 403, 438, 441, 493, 581, 584, 964, 965,
28979 : 966, 967, 851, 25, 140, 326, 368, 403, 476, 597,
28980 : 1252, 25, 140, 403, 471, 565, 497, 196, 1106, 62,
28981 : 98, 162, 199, 249, 289, 293, 326, 327, 368, 377,
28982 : 386, 395, 403, 416, 425, 430, 488, 581, 585, 887,
28983 : 899, 927, 536, 868, 1221, 368, 565, 202, 158, 25,
28984 : 31, 46, 76, 133, 140, 144, 173, 209, 289, 293,
28985 : 304, 314, 326, 368, 371, 372, 403, 476, 593, 595,
28986 : 596, 730, 927, 5, 527, 528, 704, 1259, 29, 196,
28987 : 1250, 819, 819, 536, 904, 326, 403, 538, 158, 310,
28988 : 326, 368, 403, 899, 927, 25, 140, 326, 368, 403,
28989 : 202, 560, 368, 493, 517, 553, 560, 326, 368, 403,
28990 : 899, 927, 310, 326, 368, 158, 38, 60, 112, 205,
28991 : 263, 268, 273, 289, 325, 368, 373, 397, 403, 418,
28992 : 469, 593, 701, 702, 326, 368, 484, 730, 738, 158,
28993 : 326, 368, 403, 25, 91, 133, 140, 144, 326, 364,
28994 : 368, 403, 410, 583, 571, 573, 202, 158, 46, 131,
28995 : 289, 368, 403, 593, 594, 326, 368, 372, 403, 89,
28996 : 132, 329, 441, 310, 25, 31, 140, 326, 368, 403,
28997 : 613, 614, 560, 172, 368, 553, 560, 158, 368, 403,
28998 : 593, 1252, 252, 122, 311, 498, 540, 956, 29, 135,
28999 : 481, 529, 537, 876, 1159, 1199, 1200, 1268, 1159, 1220,
29000 : 3, 29, 33, 34, 35, 36, 37, 38, 39, 43,
29001 : 57, 65, 66, 72, 78, 80, 92, 99, 104, 105,
29002 : 106, 108, 109, 110, 120, 122, 130, 135, 136, 142,
29003 : 147, 153, 164, 166, 172, 174, 178, 184, 187, 191,
29004 : 202, 211, 221, 223, 247, 248, 254, 258, 259, 293,
29005 : 298, 306, 310, 311, 315, 316, 336, 346, 362, 376,
29006 : 396, 402, 413, 431, 434, 435, 444, 448, 449, 455,
29007 : 465, 466, 472, 473, 481, 489, 490, 492, 493, 529,
29008 : 1253, 1270, 1272, 1273, 1274, 1275, 1219, 537, 540, 164,
29009 : 310, 455, 577, 580, 704, 991, 473, 984, 310, 883,
29010 : 536, 819, 1252, 1135, 871, 302, 74, 165, 907, 871,
29011 : 871, 172, 1135, 819, 1252, 1252, 537, 661, 1252, 72,
29012 : 1135, 293, 178, 536, 788, 553, 38, 978, 1252, 293,
29013 : 553, 497, 196, 1250, 553, 819, 819, 788, 469, 632,
29014 : 310, 172, 493, 895, 553, 293, 48, 567, 293, 458,
29015 : 737, 293, 996, 91, 326, 714, 89, 132, 329, 441,
29016 : 38, 788, 172, 196, 553, 485, 196, 1250, 196, 691,
29017 : 1250, 1250, 485, 819, 87, 549, 1255, 453, 1255, 1255,
29018 : 1252, 172, 1252, 712, 40, 54, 111, 216, 289, 392,
29019 : 158, 63, 374, 540, 550, 158, 536, 158, 553, 158,
29020 : 540, 550, 497, 158, 540, 550, 158, 540, 196, 818,
29021 : 196, 819, 196, 819, 158, 540, 550, 1262, 158, 550,
29022 : 158, 158, 550, 158, 550, 158, 89, 132, 329, 441,
29023 : 172, 158, 550, 158, 172, 196, 158, 540, 550, 158,
29024 : 540, 550, 158, 310, 1198, 435, 537, 1001, 832, 1044,
29025 : 832, 1044, 832, 1044, 832, 1044, 832, 1044, 1044, 1044,
29026 : 832, 1044, 536, 662, 665, 1267, 662, 29, 114, 138,
29027 : 174, 180, 244, 245, 328, 350, 383, 390, 397, 435,
29028 : 438, 458, 840, 1249, 1262, 837, 1252, 202, 540, 1024,
29029 : 1258, 1135, 1202, 38, 1262, 549, 537, 549, 549, 549,
29030 : 252, 1267, 172, 840, 1262, 172, 388, 1267, 580, 310,
29031 : 536, 1222, 534, 1048, 1203, 1159, 1217, 536, 536, 172,
29032 : 536, 536, 1048, 536, 536, 536, 536, 536, 536, 536,
29033 : 536, 536, 536, 536, 536, 536, 536, 536, 536, 536,
29034 : 536, 1159, 536, 536, 536, 536, 536, 536, 536, 536,
29035 : 300, 648, 536, 536, 536, 536, 536, 536, 536, 536,
29036 : 1159, 1159, 1159, 1048, 1159, 1198, 1221, 1258, 536, 1258,
29037 : 3, 10, 13, 17, 18, 19, 20, 21, 22, 23,
29038 : 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
29039 : 34, 35, 36, 38, 39, 40, 41, 42, 43, 44,
29040 : 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
29041 : 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
29042 : 65, 66, 67, 68, 71, 72, 73, 74, 75, 76,
29043 : 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
29044 : 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
29045 : 97, 98, 100, 101, 102, 103, 104, 105, 106, 107,
29046 : 108, 109, 110, 111, 112, 113, 114, 116, 117, 118,
29047 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
29048 : 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
29049 : 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
29050 : 149, 150, 151, 152, 154, 155, 156, 157, 158, 159,
29051 : 160, 161, 162, 163, 164, 165, 168, 169, 170, 171,
29052 : 173, 174, 175, 176, 177, 179, 180, 181, 182, 183,
29053 : 185, 186, 188, 189, 190, 192, 193, 195, 196, 197,
29054 : 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
29055 : 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
29056 : 218, 219, 220, 222, 224, 225, 226, 227, 228, 229,
29057 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
29058 : 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
29059 : 250, 251, 252, 253, 255, 256, 257, 258, 259, 260,
29060 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
29061 : 271, 273, 274, 276, 277, 278, 279, 280, 281, 282,
29062 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
29063 : 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
29064 : 303, 304, 305, 307, 308, 309, 311, 312, 313, 314,
29065 : 315, 317, 318, 319, 320, 323, 324, 325, 326, 327,
29066 : 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
29067 : 338, 339, 340, 341, 343, 344, 345, 346, 347, 348,
29068 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
29069 : 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
29070 : 369, 370, 371, 372, 373, 374, 375, 377, 378, 379,
29071 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
29072 : 390, 391, 392, 393, 395, 396, 397, 398, 399, 400,
29073 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
29074 : 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
29075 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
29076 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
29077 : 441, 442, 443, 444, 445, 446, 447, 449, 450, 451,
29078 : 452, 453, 454, 455, 456, 457, 458, 459, 460, 461,
29079 : 462, 463, 464, 466, 467, 468, 469, 470, 471, 472,
29080 : 473, 474, 475, 476, 477, 478, 479, 480, 481, 483,
29081 : 484, 485, 486, 487, 488, 489, 491, 496, 497, 498,
29082 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
29083 : 509, 510, 512, 513, 515, 524, 525, 526, 527, 528,
29084 : 529, 530, 531, 532, 1193, 1195, 1197, 1271, 1276, 494,
29085 : 1176, 322, 1159, 167, 1177, 223, 540, 1059, 536, 1258,
29086 : 1221, 1059, 123, 198, 589, 540, 71, 120, 580, 38,
29087 : 3, 120, 257, 578, 704, 1154, 1258, 1258, 94, 137,
29088 : 1171, 103, 120, 574, 575, 577, 704, 120, 574, 252,
29089 : 1250, 95, 373, 823, 537, 993, 35, 45, 52, 78,
29090 : 197, 202, 225, 253, 312, 315, 408, 537, 540, 1054,
29091 : 1251, 38, 536, 1198, 1257, 1152, 1152, 37, 1136, 446,
29092 : 446, 1257, 1257, 534, 534, 1257, 448, 448, 448, 536,
29093 : 448, 1257, 1253, 538, 1140, 178, 1095, 15, 526, 1219,
29094 : 1266, 537, 540, 996, 1050, 1050, 1068, 1069, 1159, 1050,
29095 : 169, 284, 1079, 241, 289, 357, 406, 471, 29, 1074,
29096 : 1159, 527, 528, 1075, 1076, 1159, 1161, 1088, 1089, 1073,
29097 : 1072, 1070, 1071, 172, 1091, 304, 1093, 1070, 1088, 1109,
29098 : 1009, 1250, 1109, 38, 1267, 403, 1198, 68, 448, 448,
29099 : 390, 202, 214, 316, 319, 405, 481, 529, 874, 875,
29100 : 876, 878, 880, 882, 1135, 1268, 448, 484, 448, 390,
29101 : 448, 448, 390, 254, 448, 79, 448, 438, 570, 326,
29102 : 964, 966, 526, 968, 172, 184, 202, 378, 852, 853,
29103 : 72, 92, 293, 657, 658, 92, 120, 293, 448, 92,
29104 : 448, 120, 293, 390, 92, 133, 144, 326, 368, 785,
29105 : 390, 720, 28, 66, 138, 180, 312, 350, 383, 451,
29106 : 458, 814, 815, 1252, 158, 368, 403, 593, 310, 704,
29107 : 395, 249, 448, 1267, 448, 298, 704, 124, 224, 390,
29108 : 401, 450, 572, 819, 374, 403, 887, 900, 128, 537,
29109 : 869, 874, 448, 472, 438, 1250, 72, 80, 92, 154,
29110 : 174, 196, 293, 346, 466, 639, 655, 656, 1267, 80,
29111 : 92, 924, 331, 310, 385, 387, 453, 92, 924, 32,
29112 : 371, 385, 387, 453, 385, 1250, 173, 209, 304, 819,
29113 : 536, 448, 448, 195, 536, 601, 23, 263, 438, 469,
29114 : 495, 601, 92, 540, 128, 5, 5, 326, 202, 158,
29115 : 368, 403, 593, 927, 473, 473, 290, 1135, 448, 390,
29116 : 536, 905, 1252, 1250, 448, 448, 390, 900, 128, 107,
29117 : 435, 436, 936, 937, 1107, 1250, 1267, 937, 448, 448,
29118 : 788, 937, 114, 403, 584, 448, 555, 584, 448, 448,
29119 : 390, 900, 128, 1250, 448, 448, 1250, 1137, 704, 59,
29120 : 703, 704, 704, 112, 268, 273, 59, 448, 553, 277,
29121 : 390, 553, 289, 702, 448, 448, 298, 1258, 730, 819,
29122 : 448, 448, 390, 420, 353, 1258, 353, 448, 353, 448,
29123 : 353, 788, 788, 438, 1106, 331, 331, 92, 448, 924,
29124 : 390, 448, 448, 601, 601, 819, 819, 819, 819, 1250,
29125 : 47, 478, 47, 47, 478, 448, 47, 448, 478, 390,
29126 : 536, 540, 584, 472, 746, 1261, 448, 555, 584, 1250,
29127 : 448, 924, 390, 326, 368, 357, 369, 399, 576, 956,
29128 : 1199, 1199, 1200, 537, 15, 16, 540, 1066, 1067, 535,
29129 : 541, 1250, 989, 1252, 1250, 225, 1135, 225, 310, 225,
29130 : 225, 704, 819, 819, 225, 225, 225, 1135, 225, 225,
29131 : 225, 310, 448, 178, 448, 617, 458, 536, 38, 158,
29132 : 819, 789, 790, 1270, 964, 1135, 310, 158, 717, 1252,
29133 : 293, 331, 536, 554, 802, 473, 360, 485, 1250, 29,
29134 : 937, 788, 554, 158, 1261, 99, 184, 568, 631, 697,
29135 : 760, 833, 855, 960, 158, 1258, 738, 739, 158, 310,
29136 : 1258, 1261, 260, 819, 819, 819, 819, 149, 356, 536,
29137 : 746, 293, 554, 1250, 293, 699, 701, 293, 38, 304,
29138 : 331, 536, 661, 661, 196, 694, 1250, 172, 196, 547,
29139 : 1267, 536, 792, 881, 1252, 536, 872, 872, 38, 1135,
29140 : 27, 50, 218, 761, 244, 493, 495, 1046, 392, 884,
29141 : 883, 1135, 1252, 536, 821, 1135, 870, 871, 1262, 1261,
29142 : 158, 550, 158, 473, 158, 473, 906, 907, 550, 870,
29143 : 1262, 870, 1252, 1252, 1135, 821, 1262, 746, 158, 818,
29144 : 819, 1251, 1252, 1252, 819, 537, 196, 1250, 1001, 1044,
29145 : 1044, 1044, 1044, 1044, 1044, 662, 537, 540, 537, 181,
29146 : 351, 384, 398, 436, 1251, 818, 113, 400, 870, 1251,
29147 : 302, 838, 839, 1267, 870, 870, 1251, 1249, 1249, 1251,
29148 : 818, 448, 185, 493, 849, 153, 254, 743, 744, 23,
29149 : 156, 385, 406, 1025, 1106, 297, 1026, 537, 540, 1004,
29150 : 448, 1250, 1252, 1250, 547, 835, 836, 178, 849, 836,
29151 : 1267, 28, 80, 138, 180, 245, 350, 383, 458, 814,
29152 : 815, 1198, 535, 1198, 1203, 1204, 489, 1214, 1215, 1159,
29153 : 1198, 536, 1257, 1257, 3, 115, 194, 272, 275, 394,
29154 : 511, 1205, 1206, 1258, 1198, 1198, 1159, 1232, 376, 1048,
29155 : 1049, 1232, 1236, 1243, 1232, 1232, 1159, 1161, 1199, 1236,
29156 : 1239, 1240, 1159, 1240, 1232, 1159, 1232, 1232, 1198, 1257,
29157 : 1257, 537, 1159, 1159, 905, 1159, 1199, 1201, 1208, 385,
29158 : 527, 528, 536, 1160, 1161, 1195, 1209, 537, 1198, 1159,
29159 : 1201, 1210, 1159, 57, 178, 248, 449, 1159, 1198, 1211,
29160 : 135, 293, 1048, 1198, 277, 1161, 1159, 1169, 1170, 1171,
29161 : 277, 1159, 1171, 537, 540, 1257, 1156, 1135, 1159, 1159,
29162 : 1159, 1159, 1270, 257, 446, 43, 431, 1223, 819, 1159,
29163 : 536, 1048, 1212, 135, 137, 164, 229, 285, 286, 287,
29164 : 288, 292, 293, 298, 455, 467, 1207, 1237, 1159, 536,
29165 : 1159, 448, 52, 197, 202, 253, 408, 1159, 1159, 1159,
29166 : 1159, 1159, 1159, 1159, 1159, 1159, 1159, 29, 36, 413,
29167 : 1192, 187, 1177, 385, 536, 1189, 536, 321, 1181, 183,
29168 : 257, 435, 440, 442, 469, 1060, 1250, 1248, 1095, 1199,
29169 : 1095, 1250, 450, 536, 1258, 540, 537, 195, 195, 550,
29170 : 999, 988, 992, 1159, 537, 267, 293, 1055, 1198, 537,
29171 : 537, 534, 513, 513, 537, 537, 1257, 535, 1257, 537,
29172 : 194, 272, 1157, 272, 1157, 1157, 1257, 275, 537, 1253,
29173 : 229, 238, 247, 386, 510, 536, 1048, 1096, 1097, 1098,
29174 : 1106, 1112, 1122, 1129, 1162, 1164, 1165, 1244, 1267, 490,
29175 : 1117, 1263, 999, 997, 540, 39, 130, 473, 864, 385,
29176 : 386, 527, 528, 1076, 1078, 1161, 406, 241, 311, 540,
29177 : 5, 1077, 1257, 1077, 385, 386, 1078, 1249, 297, 410,
29178 : 1027, 1089, 1071, 473, 1022, 120, 324, 536, 1010, 1047,
29179 : 38, 473, 1267, 536, 1029, 1030, 1031, 1267, 537, 1261,
29180 : 1252, 1252, 319, 59, 1268, 537, 876, 878, 875, 878,
29181 : 1268, 316, 537, 540, 820, 1261, 1252, 1252, 1261, 1252,
29182 : 1252, 1261, 484, 1252, 1252, 120, 577, 704, 380, 472,
29183 : 835, 390, 184, 835, 536, 1252, 298, 196, 1252, 298,
29184 : 1261, 1252, 1252, 1159, 298, 1252, 1252, 32, 371, 448,
29185 : 448, 1252, 448, 721, 883, 536, 1135, 871, 74, 165,
29186 : 907, 871, 871, 172, 1135, 819, 1252, 190, 289, 326,
29187 : 368, 477, 724, 725, 726, 1106, 448, 924, 390, 298,
29188 : 124, 224, 1261, 1252, 310, 1252, 310, 537, 540, 1260,
29189 : 1262, 1252, 368, 593, 536, 196, 639, 1252, 473, 857,
29190 : 241, 293, 298, 241, 473, 648, 685, 1135, 1252, 1257,
29191 : 1267, 1250, 1252, 252, 1252, 29, 472, 1252, 196, 1252,
29192 : 196, 1267, 387, 453, 387, 453, 252, 1252, 29, 472,
29193 : 1252, 252, 385, 1250, 25, 140, 403, 731, 732, 733,
29194 : 734, 1270, 1261, 1252, 120, 179, 294, 473, 600, 603,
29195 : 604, 1270, 271, 1252, 76, 307, 1252, 596, 310, 448,
29196 : 438, 1250, 448, 924, 390, 128, 1252, 1252, 540, 537,
29197 : 540, 1261, 1252, 930, 931, 1270, 310, 368, 448, 754,
29198 : 1261, 1252, 1252, 310, 1106, 202, 540, 661, 661, 1221,
29199 : 1261, 1252, 1252, 1260, 3, 91, 146, 209, 333, 464,
29200 : 472, 475, 556, 1261, 1252, 1252, 310, 368, 1261, 1252,
29201 : 368, 403, 593, 701, 704, 819, 1252, 704, 819, 1252,
29202 : 704, 1261, 1252, 403, 1261, 1252, 1252, 120, 607, 1259,
29203 : 1251, 1251, 1261, 895, 1252, 1251, 1252, 368, 403, 593,
29204 : 594, 1250, 1250, 1252, 1252, 1252, 1252, 1261, 1252, 25,
29205 : 31, 140, 326, 368, 403, 326, 368, 403, 788, 368,
29206 : 403, 368, 403, 368, 927, 1121, 1267, 196, 798, 1267,
29207 : 196, 1267, 1258, 1261, 1252, 1252, 1258, 1252, 930, 25,
29208 : 140, 614, 400, 1260, 368, 403, 593, 1252, 1252, 1252,
29209 : 448, 448, 85, 463, 357, 540, 1066, 1066, 1066, 1159,
29210 : 1159, 481, 1200, 537, 1159, 1220, 984, 298, 825, 1258,
29211 : 38, 825, 138, 819, 825, 825, 225, 473, 473, 825,
29212 : 825, 825, 244, 825, 825, 825, 819, 352, 618, 618,
29213 : 207, 435, 759, 1159, 1135, 819, 537, 540, 526, 645,
29214 : 1270, 1252, 63, 178, 390, 484, 718, 725, 726, 158,
29215 : 304, 253, 633, 635, 637, 639, 652, 655, 26, 202,
29216 : 380, 432, 556, 557, 172, 1252, 485, 1250, 38, 755,
29217 : 436, 895, 547, 1267, 567, 632, 867, 1252, 174, 819,
29218 : 536, 687, 688, 1164, 1267, 353, 1258, 788, 788, 788,
29219 : 788, 536, 788, 1119, 1120, 1121, 400, 158, 536, 158,
29220 : 158, 157, 1047, 819, 304, 633, 1267, 473, 680, 493,
29221 : 602, 293, 38, 661, 1258, 293, 310, 3, 793, 794,
29222 : 788, 27, 537, 873, 874, 879, 38, 244, 377, 451,
29223 : 492, 885, 886, 887, 888, 885, 310, 244, 304, 125,
29224 : 217, 456, 471, 762, 763, 1252, 193, 193, 172, 550,
29225 : 38, 553, 173, 972, 973, 550, 550, 818, 819, 1252,
29226 : 819, 1252, 550, 550, 550, 550, 244, 550, 400, 172,
29227 : 550, 550, 310, 550, 293, 537, 665, 202, 202, 202,
29228 : 202, 202, 497, 1251, 704, 705, 540, 538, 187, 841,
29229 : 842, 1261, 59, 846, 847, 1270, 448, 536, 178, 156,
29230 : 406, 156, 406, 385, 471, 274, 1135, 1261, 493, 692,
29231 : 310, 841, 550, 178, 883, 819, 1135, 871, 302, 871,
29232 : 871, 1135, 819, 1252, 537, 535, 535, 540, 1159, 142,
29233 : 1215, 1216, 38, 537, 1159, 537, 537, 537, 178, 537,
29234 : 537, 514, 1233, 1234, 493, 495, 1238, 1135, 1234, 537,
29235 : 21, 298, 540, 1242, 316, 1245, 540, 541, 478, 537,
29236 : 537, 21, 298, 540, 1241, 1241, 540, 537, 1236, 540,
29237 : 537, 537, 537, 537, 540, 540, 537, 336, 537, 537,
29238 : 536, 1160, 1160, 1198, 13, 17, 18, 19, 202, 225,
29239 : 312, 524, 525, 526, 527, 528, 529, 530, 531, 532,
29240 : 1195, 1160, 537, 537, 172, 178, 408, 537, 537, 38,
29241 : 1211, 1198, 1211, 1211, 178, 537, 135, 537, 1270, 332,
29242 : 1174, 38, 537, 540, 1159, 1270, 540, 1159, 1222, 1159,
29243 : 537, 513, 1160, 1160, 151, 1198, 178, 37, 302, 389,
29244 : 478, 135, 137, 164, 292, 298, 455, 467, 1207, 1237,
29245 : 292, 1238, 151, 905, 1159, 431, 1223, 1159, 1212, 1159,
29246 : 448, 536, 1048, 536, 1181, 536, 1198, 490, 536, 1182,
29247 : 1267, 440, 442, 440, 442, 1250, 1061, 1061, 1061, 1117,
29248 : 1066, 1117, 957, 1257, 1156, 575, 999, 267, 536, 537,
29249 : 1257, 1155, 1155, 535, 535, 537, 536, 1048, 1112, 1122,
29250 : 1129, 178, 536, 1048, 1097, 1098, 38, 1099, 1100, 1267,
29251 : 540, 100, 179, 213, 228, 251, 280, 379, 1103, 1100,
29252 : 38, 1099, 1102, 1267, 1100, 1100, 517, 1116, 1221, 1159,
29253 : 187, 1080, 1069, 312, 1193, 1196, 516, 865, 5, 1257,
29254 : 1078, 311, 493, 471, 1075, 262, 1096, 490, 1118, 479,
29255 : 433, 472, 1011, 1012, 1013, 1267, 310, 1014, 1267, 1097,
29256 : 1031, 1032, 540, 1095, 526, 1222, 882, 820, 878, 878,
29257 : 59, 880, 531, 1262, 1262, 310, 1251, 313, 310, 1159,
29258 : 658, 778, 158, 550, 448, 1261, 1252, 580, 1135, 819,
29259 : 819, 1135, 708, 1252, 190, 477, 448, 448, 708, 724,
29260 : 730, 368, 403, 593, 1252, 1252, 1252, 215, 298, 161,
29261 : 874, 325, 403, 448, 1159, 293, 154, 656, 1252, 536,
29262 : 536, 158, 1267, 536, 685, 207, 536, 778, 423, 643,
29263 : 644, 209, 778, 403, 25, 140, 372, 373, 403, 597,
29264 : 605, 606, 730, 925, 395, 158, 550, 158, 550, 1252,
29265 : 1252, 1252, 1252, 395, 395, 252, 733, 734, 733, 537,
29266 : 540, 735, 1258, 207, 537, 540, 526, 538, 120, 608,
29267 : 1267, 161, 1261, 1252, 368, 403, 593, 1252, 1252, 1252,
29268 : 310, 326, 368, 403, 25, 140, 326, 368, 403, 1135,
29269 : 290, 1135, 537, 540, 526, 1250, 448, 1262, 473, 751,
29270 : 161, 661, 390, 936, 490, 670, 670, 661, 254, 333,
29271 : 298, 1258, 333, 1262, 470, 161, 448, 448, 390, 420,
29272 : 895, 895, 895, 325, 403, 92, 448, 924, 390, 120,
29273 : 172, 609, 168, 549, 448, 448, 264, 264, 264, 448,
29274 : 448, 390, 448, 448, 390, 448, 390, 448, 390, 448,
29275 : 128, 550, 1135, 293, 1258, 403, 925, 158, 550, 448,
29276 : 448, 537, 1252, 448, 924, 390, 448, 1261, 1252, 537,
29277 : 537, 537, 1200, 535, 1135, 819, 225, 825, 1252, 1252,
29278 : 1252, 225, 421, 422, 619, 1258, 619, 190, 537, 537,
29279 : 178, 788, 790, 290, 312, 527, 528, 704, 791, 878,
29280 : 1196, 1258, 1275, 72, 78, 92, 120, 122, 148, 182,
29281 : 211, 293, 298, 346, 362, 466, 646, 647, 651, 157,
29282 : 489, 553, 580, 1252, 580, 314, 728, 1250, 1250, 1250,
29283 : 537, 540, 1262, 187, 380, 1262, 1257, 458, 1250, 661,
29284 : 3, 172, 756, 895, 48, 567, 435, 737, 113, 996,
29285 : 1159, 178, 540, 1251, 602, 795, 796, 1258, 537, 540,
29286 : 1252, 172, 662, 1250, 691, 1250, 1252, 692, 536, 634,
29287 : 1250, 537, 1252, 493, 495, 681, 601, 38, 158, 1047,
29288 : 680, 448, 158, 1106, 526, 537, 540, 762, 537, 540,
29289 : 120, 526, 889, 1258, 580, 435, 877, 878, 172, 894,
29290 : 51, 375, 890, 891, 888, 891, 125, 217, 396, 471,
29291 : 947, 1252, 304, 310, 315, 190, 1047, 1135, 536, 537,
29292 : 540, 550, 473, 550, 473, 550, 1252, 1252, 746, 819,
29293 : 158, 390, 390, 390, 390, 390, 1251, 540, 839, 1267,
29294 : 1261, 493, 540, 843, 1261, 540, 849, 164, 313, 455,
29295 : 848, 1108, 400, 156, 156, 113, 289, 840, 849, 1262,
29296 : 225, 225, 225, 225, 704, 225, 225, 225, 225, 225,
29297 : 1203, 444, 1159, 147, 1135, 537, 1159, 229, 466, 466,
29298 : 537, 1234, 1236, 310, 310, 1232, 1236, 59, 1242, 1159,
29299 : 1232, 1232, 310, 310, 1240, 1238, 1238, 1159, 537, 1159,
29300 : 1207, 1159, 1159, 537, 1198, 540, 1135, 1160, 1160, 1160,
29301 : 1160, 135, 137, 293, 1160, 1160, 1160, 1160, 1160, 1160,
29302 : 1160, 1160, 1160, 1160, 1159, 1159, 1159, 1135, 537, 537,
29303 : 537, 1198, 537, 540, 59, 1161, 1175, 537, 1270, 1170,
29304 : 343, 427, 1173, 537, 540, 484, 1166, 38, 537, 1258,
29305 : 1159, 35, 35, 1159, 537, 1159, 178, 292, 1238, 1159,
29306 : 537, 151, 1160, 1160, 151, 151, 1159, 1159, 1067, 537,
29307 : 1198, 540, 1159, 1183, 1267, 1061, 1061, 1061, 1061, 1250,
29308 : 1250, 1250, 1080, 537, 1080, 537, 1004, 535, 1232, 1100,
29309 : 1102, 1100, 1100, 536, 505, 1161, 537, 1267, 536, 1097,
29310 : 228, 320, 1104, 1097, 1104, 228, 1103, 1104, 228, 437,
29311 : 1110, 536, 1267, 536, 317, 59, 191, 1087, 536, 865,
29312 : 169, 246, 311, 493, 445, 103, 1159, 376, 1016, 478,
29313 : 537, 540, 1222, 90, 1016, 310, 537, 540, 1030, 1118,
29314 : 1159, 537, 531, 882, 458, 181, 245, 384, 391, 398,
29315 : 436, 459, 854, 172, 854, 537, 122, 148, 211, 289,
29316 : 293, 779, 1252, 1252, 38, 473, 473, 244, 820, 1261,
29317 : 1252, 448, 924, 390, 448, 215, 1252, 59, 438, 1252,
29318 : 537, 158, 536, 668, 669, 860, 1164, 1267, 662, 639,
29319 : 778, 662, 778, 1252, 662, 120, 1267, 86, 641, 642,
29320 : 420, 182, 160, 195, 293, 601, 553, 113, 160, 182,
29321 : 293, 420, 601, 641, 643, 702, 403, 606, 458, 1252,
29322 : 1267, 395, 732, 1252, 604, 791, 1270, 1252, 325, 403,
29323 : 448, 924, 390, 448, 161, 448, 448, 390, 180, 312,
29324 : 423, 800, 801, 180, 312, 807, 808, 448, 448, 390,
29325 : 537, 537, 537, 931, 290, 704, 878, 932, 1196, 1258,
29326 : 1275, 368, 1252, 536, 493, 752, 1252, 670, 107, 1267,
29327 : 536, 670, 1259, 1258, 1258, 1258, 1252, 1252, 1252, 1252,
29328 : 607, 59, 438, 1252, 1252, 1252, 1252, 479, 1252, 1252,
29329 : 172, 172, 370, 172, 196, 1261, 1252, 1252, 1261, 1252,
29330 : 1252, 1252, 1252, 1252, 1252, 1252, 310, 78, 598, 158,
29331 : 27, 50, 458, 1267, 1252, 1258, 730, 1252, 1252, 1252,
29332 : 1252, 1066, 537, 225, 825, 225, 225, 225, 825, 553,
29333 : 473, 624, 625, 708, 778, 493, 495, 819, 536, 819,
29334 : 1252, 1160, 32, 59, 649, 123, 198, 122, 148, 298,
29335 : 241, 1250, 648, 180, 350, 774, 781, 782, 1267, 717,
29336 : 536, 331, 536, 634, 653, 210, 675, 637, 1262, 1262,
29337 : 1135, 536, 602, 29, 125, 217, 396, 471, 757, 448,
29338 : 753, 1261, 196, 1250, 739, 497, 310, 537, 1096, 688,
29339 : 895, 537, 540, 1121, 728, 746, 537, 699, 38, 304,
29340 : 331, 536, 1006, 636, 638, 640, 655, 1267, 331, 676,
29341 : 677, 634, 675, 601, 307, 310, 682, 1047, 694, 692,
29342 : 602, 1258, 1252, 857, 791, 3, 794, 310, 879, 1159,
29343 : 1159, 540, 536, 885, 458, 540, 44, 1159, 448, 536,
29344 : 662, 1250, 763, 708, 537, 972, 973, 1252, 1252, 550,
29345 : 400, 550, 1251, 1251, 1251, 1251, 1251, 704, 184, 842,
29346 : 849, 847, 537, 1252, 113, 178, 550, 849, 298, 828,
29347 : 1258, 828, 828, 828, 225, 828, 828, 828, 828, 828,
29348 : 1159, 537, 145, 242, 242, 537, 298, 298, 537, 1068,
29349 : 1236, 332, 1224, 298, 298, 1236, 1236, 1224, 1224, 537,
29350 : 537, 178, 537, 1159, 178, 135, 137, 178, 172, 151,
29351 : 537, 500, 1168, 1198, 361, 478, 59, 1175, 1161, 491,
29352 : 491, 537, 1159, 289, 1159, 540, 1167, 1137, 1159, 1159,
29353 : 1159, 1159, 35, 35, 1159, 1159, 151, 537, 537, 537,
29354 : 1159, 537, 331, 1184, 1250, 1250, 1250, 1250, 1087, 1258,
29355 : 1087, 1258, 537, 540, 1113, 1114, 1164, 536, 1174, 1099,
29356 : 536, 1251, 1097, 310, 473, 1105, 1097, 228, 1097, 1255,
29357 : 1120, 536, 1120, 1267, 1062, 1159, 492, 1178, 905, 445,
29358 : 304, 493, 1017, 1047, 324, 1047, 1013, 310, 536, 1015,
29359 : 1159, 526, 1031, 1016, 458, 537, 303, 448, 835, 178,
29360 : 778, 123, 198, 209, 122, 148, 475, 550, 1135, 1252,
29361 : 1252, 1252, 1252, 1252, 1252, 1252, 1262, 1252, 778, 639,
29362 : 1159, 537, 540, 493, 78, 859, 863, 859, 540, 663,
29363 : 495, 660, 660, 120, 1267, 728, 607, 649, 196, 196,
29364 : 298, 704, 38, 649, 298, 607, 1135, 550, 550, 526,
29365 : 59, 438, 1252, 1252, 1252, 1252, 1252, 1261, 1252, 1252,
29366 : 1257, 1257, 1135, 540, 1257, 1257, 540, 1261, 1252, 1252,
29367 : 448, 1159, 72, 1159, 1262, 1252, 448, 448, 178, 202,
29368 : 493, 1251, 1251, 819, 1251, 158, 161, 819, 1258, 1258,
29369 : 1135, 550, 550, 448, 537, 225, 825, 825, 825, 825,
29370 : 536, 620, 621, 553, 127, 180, 214, 180, 1159, 293,
29371 : 647, 120, 38, 289, 659, 895, 661, 895, 1255, 35,
29372 : 157, 202, 729, 733, 304, 633, 609, 155, 204, 536,
29373 : 400, 473, 662, 38, 1262, 751, 567, 293, 536, 174,
29374 : 1252, 687, 1258, 400, 602, 157, 1047, 819, 304, 633,
29375 : 692, 537, 540, 493, 645, 59, 680, 609, 676, 84,
29376 : 438, 683, 493, 961, 38, 683, 178, 310, 536, 1250,
29377 : 1258, 876, 896, 897, 1268, 891, 1135, 172, 892, 1250,
29378 : 178, 448, 916, 363, 764, 212, 709, 550, 537, 550,
29379 : 550, 1252, 313, 223, 841, 550, 828, 1252, 537, 1225,
29380 : 1226, 1232, 120, 143, 150, 164, 298, 455, 467, 1228,
29381 : 1229, 1231, 537, 537, 1236, 1236, 1159, 537, 1160, 178,
29382 : 1159, 1159, 1159, 536, 537, 540, 537, 1175, 537, 478,
29383 : 417, 537, 206, 289, 1172, 1159, 1159, 1159, 537, 59,
29384 : 1066, 1178, 1178, 393, 1056, 1159, 537, 540, 38, 1115,
29385 : 120, 1127, 1128, 1160, 81, 1251, 537, 1159, 536, 1097,
29386 : 1105, 536, 537, 1120, 537, 102, 188, 382, 536, 1081,
29387 : 1082, 1083, 1084, 1085, 1086, 1159, 1179, 1180, 1267, 1066,
29388 : 537, 1044, 536, 1247, 1011, 92, 858, 860, 136, 489,
29389 : 1034, 1035, 1036, 1037, 1159, 841, 310, 841, 537, 448,
29390 : 403, 1026, 537, 203, 666, 669, 312, 905, 819, 548,
29391 : 819, 335, 537, 322, 537, 537, 645, 38, 158, 158,
29392 : 536, 598, 791, 1262, 1252, 448, 536, 871, 905, 907,
29393 : 801, 536, 536, 808, 1252, 537, 536, 537, 403, 1026,
29394 : 1252, 1252, 536, 536, 536, 493, 517, 981, 370, 981,
29395 : 981, 172, 1252, 598, 1252, 825, 626, 627, 1270, 54,
29396 : 101, 126, 145, 151, 173, 177, 192, 298, 354, 622,
29397 : 620, 1258, 871, 38, 912, 912, 537, 195, 536, 209,
29398 : 473, 684, 265, 667, 684, 536, 782, 774, 536, 537,
29399 : 540, 1250, 537, 400, 29, 83, 86, 93, 121, 182,
29400 : 195, 208, 420, 423, 654, 654, 1249, 1252, 1252, 537,
29401 : 1047, 752, 158, 113, 728, 178, 1252, 38, 1252, 692,
29402 : 634, 1250, 537, 638, 314, 1267, 681, 676, 680, 125,
29403 : 140, 343, 1252, 64, 72, 257, 1047, 819, 1106, 858,
29404 : 178, 777, 878, 537, 540, 458, 147, 546, 890, 893,
29405 : 1117, 415, 415, 537, 283, 308, 765, 766, 767, 172,
29406 : 770, 708, 289, 477, 710, 711, 1252, 849, 540, 38,
29407 : 1159, 37, 302, 310, 537, 493, 495, 1227, 1228, 1230,
29408 : 172, 1160, 1169, 1198, 289, 512, 206, 537, 1198, 189,
29409 : 356, 386, 1185, 58, 129, 112, 1057, 38, 1130, 1116,
29410 : 1113, 536, 1160, 537, 540, 38, 1123, 1124, 1267, 537,
29411 : 1251, 1198, 537, 536, 404, 536, 537, 540, 540, 38,
29412 : 1071, 283, 308, 1018, 1019, 1020, 478, 1252, 537, 540,
29413 : 294, 471, 266, 293, 1016, 1035, 35, 1038, 1038, 843,
29414 : 854, 550, 1252, 438, 859, 536, 895, 536, 864, 601,
29415 : 665, 362, 666, 666, 195, 1159, 473, 599, 403, 1026,
29416 : 1252, 1202, 172, 804, 804, 1202, 1202, 1159, 438, 1198,
29417 : 1198, 610, 611, 1269, 818, 819, 818, 819, 1251, 550,
29418 : 537, 540, 120, 529, 536, 577, 628, 704, 978, 1258,
29419 : 978, 293, 298, 354, 978, 978, 1117, 912, 42, 200,
29420 : 659, 536, 700, 1159, 207, 179, 330, 409, 310, 671,
29421 : 672, 673, 537, 1255, 6, 783, 733, 634, 675, 1252,
29422 : 537, 728, 165, 803, 602, 961, 1250, 497, 1096, 728,
29423 : 1047, 1006, 676, 634, 675, 645, 536, 682, 680, 681,
29424 : 386, 386, 72, 313, 72, 692, 857, 537, 1250, 778,
29425 : 885, 896, 1135, 539, 136, 493, 493, 766, 385, 435,
29426 : 768, 141, 771, 489, 773, 477, 708, 728, 550, 1226,
29427 : 1270, 150, 37, 88, 462, 497, 37, 497, 240, 309,
29428 : 1235, 310, 537, 1159, 537, 537, 478, 52, 103, 461,
29429 : 1159, 1186, 1187, 1186, 1186, 537, 169, 169, 662, 1252,
29430 : 1224, 1120, 540, 1128, 1270, 537, 540, 172, 1135, 537,
29431 : 537, 1198, 536, 1198, 1082, 1180, 1182, 1089, 537, 540,
29432 : 38, 1047, 1117, 860, 403, 266, 1159, 444, 444, 178,
29433 : 1252, 662, 684, 905, 865, 864, 1250, 895, 895, 700,
29434 : 537, 1159, 438, 537, 316, 393, 537, 537, 537, 1252,
29435 : 537, 537, 537, 540, 1257, 981, 627, 577, 629, 630,
29436 : 1258, 1258, 298, 529, 662, 529, 662, 1258, 1258, 701,
29437 : 537, 438, 125, 471, 310, 673, 310, 672, 536, 537,
29438 : 540, 609, 400, 728, 819, 38, 38, 536, 1252, 961,
29439 : 692, 680, 609, 676, 536, 678, 679, 1164, 1267, 683,
29440 : 681, 682, 313, 313, 536, 203, 861, 172, 891, 30,
29441 : 218, 948, 180, 180, 978, 385, 419, 772, 536, 157,
29442 : 497, 37, 497, 37, 497, 497, 355, 355, 1230, 143,
29443 : 150, 1187, 385, 171, 341, 171, 341, 154, 1188, 1188,
29444 : 1188, 59, 59, 403, 81, 537, 1161, 1124, 317, 3,
29445 : 120, 293, 298, 334, 1125, 1126, 38, 1101, 369, 1111,
29446 : 537, 1081, 537, 1019, 1267, 1029, 59, 125, 136, 471,
29447 : 1039, 1040, 136, 217, 1041, 841, 1026, 537, 670, 537,
29448 : 865, 536, 664, 684, 684, 1252, 871, 59, 1026, 448,
29449 : 610, 819, 537, 540, 529, 662, 537, 424, 487, 650,
29450 : 1252, 63, 289, 374, 403, 674, 674, 537, 6, 400,
29451 : 1252, 800, 1047, 728, 681, 676, 680, 1159, 537, 540,
29452 : 863, 863, 682, 683, 858, 536, 648, 141, 294, 536,
29453 : 943, 945, 949, 1008, 1021, 1028, 1047, 1058, 871, 871,
29454 : 769, 1267, 1159, 774, 497, 497, 310, 310, 537, 1228,
29455 : 35, 103, 187, 289, 445, 662, 662, 1267, 536, 1174,
29456 : 1160, 1160, 298, 1160, 1126, 1267, 536, 537, 1117, 414,
29457 : 439, 294, 403, 294, 120, 324, 479, 536, 1042, 550,
29458 : 778, 662, 667, 778, 778, 1026, 819, 536, 630, 24,
29459 : 120, 298, 1252, 728, 961, 682, 680, 681, 537, 679,
29460 : 548, 548, 683, 537, 860, 862, 602, 385, 944, 945,
29461 : 946, 1048, 1049, 540, 540, 537, 1255, 389, 389, 310,
29462 : 1187, 385, 318, 403, 403, 448, 473, 282, 1131, 1132,
29463 : 1267, 81, 1159, 1029, 479, 1011, 536, 1012, 663, 671,
29464 : 1198, 661, 661, 728, 683, 681, 682, 863, 861, 537,
29465 : 540, 683, 773, 537, 539, 448, 178, 536, 426, 426,
29466 : 150, 1267, 1267, 229, 1255, 1256, 1267, 334, 1133, 537,
29467 : 540, 172, 1135, 1123, 537, 478, 1198, 537, 537, 778,
29468 : 537, 682, 683, 548, 648, 860, 1117, 157, 946, 415,
29469 : 415, 5, 775, 776, 1257, 1258, 1270, 536, 120, 1258,
29470 : 1231, 1132, 317, 158, 334, 1134, 1233, 537, 1042, 537,
29471 : 324, 1042, 683, 602, 774, 493, 493, 537, 540, 1199,
29472 : 1256, 38, 81, 537, 1134, 1258, 1227, 1134, 1011, 683,
29473 : 1255, 180, 180, 776, 1066, 473, 1252, 536, 1231, 1235,
29474 : 1227, 478, 1117, 536, 871, 871, 537, 1267, 81, 1131,
29475 : 1230, 1235, 1042, 775, 536, 537, 1230, 537, 1131, 537
29476 : };
29477 :
29478 : /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
29479 : static const yytype_int16 yyr1[] =
29480 : {
29481 : 0, 542, 543, 543, 543, 543, 543, 543, 544, 544,
29482 : 545, 545, 546, 546, 546, 546, 546, 546, 546, 546,
29483 : 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
29484 : 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
29485 : 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
29486 : 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
29487 : 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
29488 : 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
29489 : 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
29490 : 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
29491 : 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
29492 : 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
29493 : 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
29494 : 546, 546, 546, 546, 546, 546, 546, 547, 547, 548,
29495 : 548, 549, 549, 550, 550, 550, 551, 552, 553, 553,
29496 : 553, 554, 554, 555, 555, 556, 556, 556, 556, 556,
29497 : 556, 556, 556, 556, 557, 557, 557, 557, 557, 557,
29498 : 558, 559, 559, 560, 560, 561, 561, 561, 561, 562,
29499 : 562, 562, 562, 562, 562, 563, 564, 565, 565, 566,
29500 : 566, 566, 566, 567, 567, 568, 568, 568, 568, 568,
29501 : 568, 569, 569, 569, 570, 570, 570, 571, 571, 571,
29502 : 571, 572, 572, 572, 572, 572, 572, 572, 572, 572,
29503 : 572, 572, 573, 573, 574, 574, 575, 575, 576, 576,
29504 : 576, 576, 577, 577, 577, 577, 578, 578, 578, 578,
29505 : 578, 578, 578, 579, 579, 579, 580, 580, 581, 582,
29506 : 582, 582, 582, 583, 583, 584, 584, 585, 585, 586,
29507 : 586, 586, 586, 586, 587, 588, 588, 589, 589, 590,
29508 : 591, 591, 591, 591, 591, 592, 592, 592, 592, 592,
29509 : 592, 592, 592, 592, 592, 592, 592, 592, 592, 592,
29510 : 592, 592, 592, 592, 592, 592, 593, 593, 594, 594,
29511 : 594, 595, 596, 596, 596, 596, 596, 596, 596, 596,
29512 : 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
29513 : 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
29514 : 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
29515 : 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
29516 : 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
29517 : 596, 596, 596, 596, 597, 597, 598, 598, 599, 599,
29518 : 600, 600, 600, 600, 601, 602, 602, 603, 603, 604,
29519 : 604, 604, 604, 605, 605, 606, 606, 606, 606, 607,
29520 : 607, 608, 608, 609, 609, 609, 609, 610, 611, 611,
29521 : 612, 613, 613, 614, 614, 614, 614, 615, 615, 616,
29522 : 616, 617, 617, 618, 618, 619, 619, 619, 620, 620,
29523 : 621, 621, 622, 622, 622, 622, 622, 622, 622, 622,
29524 : 622, 622, 622, 622, 622, 622, 622, 623, 623, 624,
29525 : 624, 625, 625, 626, 626, 627, 628, 628, 628, 628,
29526 : 628, 628, 629, 629, 630, 631, 631, 631, 631, 631,
29527 : 631, 632, 632, 632, 632, 632, 632, 632, 632, 633,
29528 : 633, 634, 634, 635, 635, 636, 636, 637, 637, 637,
29529 : 638, 638, 639, 640, 640, 641, 641, 642, 642, 643,
29530 : 643, 644, 644, 645, 645, 646, 646, 646, 646, 647,
29531 : 647, 647, 647, 647, 647, 647, 647, 647, 648, 648,
29532 : 648, 649, 649, 650, 650, 650, 651, 651, 651, 651,
29533 : 651, 651, 652, 653, 653, 653, 654, 654, 654, 654,
29534 : 654, 654, 654, 654, 654, 654, 655, 655, 656, 656,
29535 : 656, 656, 656, 656, 656, 656, 657, 657, 658, 658,
29536 : 659, 659, 660, 660, 661, 661, 662, 662, 663, 663,
29537 : 664, 664, 665, 666, 666, 667, 667, 667, 667, 668,
29538 : 668, 669, 669, 670, 670, 671, 671, 671, 671, 671,
29539 : 672, 673, 674, 674, 674, 674, 674, 675, 675, 676,
29540 : 676, 677, 678, 678, 679, 679, 679, 680, 680, 681,
29541 : 681, 681, 682, 682, 682, 682, 683, 683, 684, 684,
29542 : 685, 686, 686, 687, 687, 688, 688, 688, 689, 689,
29543 : 690, 690, 691, 692, 692, 692, 693, 693, 694, 695,
29544 : 695, 696, 697, 697, 698, 698, 699, 699, 700, 700,
29545 : 701, 701, 702, 702, 702, 702, 702, 702, 702, 702,
29546 : 702, 702, 702, 702, 702, 702, 702, 702, 703, 703,
29547 : 704, 704, 704, 704, 705, 705, 706, 706, 707, 707,
29548 : 708, 708, 709, 709, 710, 710, 711, 711, 712, 712,
29549 : 713, 714, 714, 715, 715, 716, 716, 717, 717, 718,
29550 : 718, 718, 718, 719, 720, 720, 721, 722, 722, 722,
29551 : 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
29552 : 723, 724, 724, 724, 724, 725, 725, 726, 726, 727,
29553 : 727, 728, 728, 729, 729, 730, 731, 731, 732, 732,
29554 : 732, 732, 733, 734, 735, 736, 736, 737, 737, 738,
29555 : 738, 739, 739, 740, 740, 740, 741, 741, 741, 741,
29556 : 742, 743, 743, 744, 744, 745, 745, 746, 746, 747,
29557 : 747, 748, 749, 750, 751, 751, 752, 752, 753, 753,
29558 : 754, 754, 755, 755, 756, 756, 757, 757, 757, 757,
29559 : 757, 758, 759, 759, 760, 760, 761, 761, 761, 762,
29560 : 762, 763, 763, 763, 763, 763, 764, 764, 765, 765,
29561 : 766, 767, 767, 768, 768, 769, 770, 770, 771, 771,
29562 : 772, 772, 773, 773, 774, 774, 775, 775, 775, 776,
29563 : 776, 776, 776, 777, 777, 778, 778, 779, 779, 779,
29564 : 779, 779, 779, 779, 779, 780, 780, 781, 781, 782,
29565 : 783, 783, 784, 785, 785, 785, 785, 786, 787, 787,
29566 : 787, 787, 787, 787, 787, 787, 787, 787, 787, 787,
29567 : 787, 787, 787, 787, 788, 789, 789, 790, 790, 791,
29568 : 791, 791, 791, 791, 791, 792, 793, 793, 794, 795,
29569 : 795, 796, 796, 797, 797, 797, 797, 797, 798, 798,
29570 : 799, 800, 800, 801, 801, 801, 801, 801, 802, 802,
29571 : 803, 803, 804, 804, 804, 805, 806, 806, 807, 807,
29572 : 808, 808, 809, 809, 810, 810, 811, 812, 813, 813,
29573 : 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
29574 : 814, 814, 814, 814, 814, 814, 814, 814, 814, 814,
29575 : 814, 814, 814, 815, 815, 815, 815, 815, 816, 816,
29576 : 816, 816, 816, 816, 816, 816, 817, 817, 817, 818,
29577 : 818, 819, 819, 820, 820, 821, 821, 822, 823, 823,
29578 : 823, 824, 824, 824, 824, 824, 824, 824, 824, 824,
29579 : 824, 824, 824, 824, 824, 824, 824, 824, 824, 825,
29580 : 825, 826, 826, 826, 826, 826, 826, 826, 826, 826,
29581 : 826, 827, 827, 828, 828, 829, 829, 830, 830, 830,
29582 : 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
29583 : 830, 830, 830, 831, 831, 832, 832, 833, 834, 834,
29584 : 835, 835, 835, 835, 835, 836, 836, 837, 837, 837,
29585 : 837, 837, 838, 838, 839, 839, 840, 840, 840, 840,
29586 : 840, 840, 840, 840, 840, 840, 840, 840, 840, 840,
29587 : 840, 840, 840, 840, 840, 840, 840, 841, 841, 842,
29588 : 842, 843, 843, 844, 844, 845, 845, 846, 846, 847,
29589 : 848, 848, 848, 849, 849, 850, 851, 851, 852, 852,
29590 : 852, 853, 853, 853, 854, 854, 854, 854, 854, 854,
29591 : 854, 855, 855, 856, 856, 857, 857, 858, 858, 859,
29592 : 859, 860, 860, 860, 861, 861, 862, 862, 863, 863,
29593 : 864, 864, 864, 865, 865, 865, 866, 866, 866, 866,
29594 : 867, 867, 868, 868, 869, 869, 870, 870, 871, 871,
29595 : 871, 871, 872, 872, 873, 873, 874, 874, 874, 874,
29596 : 874, 875, 875, 875, 875, 875, 876, 877, 878, 878,
29597 : 878, 879, 879, 879, 880, 881, 881, 881, 881, 882,
29598 : 882, 883, 884, 884, 885, 885, 886, 886, 887, 887,
29599 : 887, 887, 887, 887, 887, 887, 887, 887, 887, 887,
29600 : 887, 887, 887, 887, 887, 888, 888, 888, 888, 888,
29601 : 889, 889, 890, 891, 891, 891, 892, 892, 893, 893,
29602 : 894, 894, 895, 895, 896, 897, 897, 898, 898, 898,
29603 : 899, 899, 900, 900, 901, 901, 901, 901, 901, 901,
29604 : 902, 902, 903, 903, 904, 904, 904, 904, 905, 905,
29605 : 906, 906, 907, 908, 909, 909, 910, 910, 911, 911,
29606 : 911, 912, 912, 912, 913, 914, 914, 915, 916, 916,
29607 : 916, 916, 917, 918, 918, 918, 919, 919, 920, 920,
29608 : 921, 921, 922, 922, 923, 923, 923, 923, 923, 923,
29609 : 923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
29610 : 923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
29611 : 923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
29612 : 923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
29613 : 923, 923, 923, 923, 923, 923, 923, 923, 923, 924,
29614 : 924, 925, 925, 926, 926, 926, 926, 926, 926, 927,
29615 : 927, 928, 928, 928, 928, 928, 928, 928, 928, 928,
29616 : 928, 928, 928, 928, 928, 928, 928, 928, 928, 928,
29617 : 928, 928, 928, 928, 928, 928, 928, 928, 929, 930,
29618 : 930, 931, 931, 931, 932, 932, 932, 932, 932, 933,
29619 : 934, 934, 934, 934, 934, 934, 934, 934, 934, 934,
29620 : 934, 934, 934, 934, 934, 934, 934, 934, 934, 934,
29621 : 934, 934, 934, 934, 935, 935, 935, 936, 936, 936,
29622 : 936, 936, 936, 936, 937, 937, 938, 938, 938, 938,
29623 : 939, 940, 940, 940, 940, 940, 940, 940, 940, 940,
29624 : 941, 941, 942, 943, 943, 943, 944, 944, 945, 945,
29625 : 945, 945, 945, 946, 946, 947, 947, 947, 947, 948,
29626 : 948, 948, 949, 950, 950, 951, 952, 952, 953, 953,
29627 : 953, 953, 953, 953, 953, 953, 953, 953, 953, 953,
29628 : 954, 954, 955, 955, 955, 956, 956, 956, 956, 956,
29629 : 957, 957, 957, 958, 958, 959, 959, 959, 960, 960,
29630 : 960, 960, 961, 961, 961, 961, 962, 963, 964, 964,
29631 : 965, 965, 966, 966, 966, 967, 967, 967, 967, 967,
29632 : 967, 967, 968, 968, 969, 969, 969, 969, 970, 971,
29633 : 971, 971, 971, 972, 972, 973, 974, 975, 975, 976,
29634 : 977, 977, 977, 977, 977, 977, 977, 978, 978, 979,
29635 : 980, 980, 980, 980, 980, 980, 981, 981, 982, 983,
29636 : 983, 983, 983, 983, 984, 984, 985, 985, 986, 986,
29637 : 987, 987, 988, 988, 989, 990, 990, 990, 991, 991,
29638 : 991, 992, 992, 993, 993, 994, 994, 995, 995, 996,
29639 : 996, 997, 998, 998, 999, 999, 1000, 1000, 1000, 1000,
29640 : 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
29641 : 1002, 1003, 1003, 1004, 1004, 1004, 1004, 1004, 1005, 1005,
29642 : 1005, 1006, 1006, 1007, 1007, 1007, 1007, 1008, 1009, 1009,
29643 : 1010, 1010, 1010, 1010, 1010, 1011, 1011, 1012, 1012, 1013,
29644 : 1014, 1014, 1014, 1015, 1015, 1015, 1016, 1016, 1017, 1017,
29645 : 1018, 1018, 1019, 1020, 1020, 1021, 1022, 1022, 1023, 1024,
29646 : 1024, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1026,
29647 : 1026, 1027, 1027, 1027, 1028, 1029, 1029, 1030, 1030, 1031,
29648 : 1032, 1032, 1033, 1034, 1034, 1035, 1035, 1035, 1035, 1035,
29649 : 1036, 1036, 1037, 1037, 1038, 1038, 1039, 1040, 1041, 1041,
29650 : 1041, 1041, 1041, 1042, 1043, 1044, 1045, 1045, 1045, 1045,
29651 : 1045, 1045, 1046, 1046, 1046, 1047, 1047, 1048, 1048, 1049,
29652 : 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1050, 1050, 1051,
29653 : 1051, 1051, 1051, 1051, 1051, 1051, 1052, 1052, 1052, 1053,
29654 : 1053, 1054, 1055, 1055, 1055, 1056, 1056, 1056, 1057, 1057,
29655 : 1057, 1058, 1058, 1059, 1059, 1060, 1060, 1060, 1060, 1060,
29656 : 1060, 1060, 1060, 1060, 1061, 1061, 1062, 1062, 1062, 1063,
29657 : 1063, 1064, 1064, 1065, 1065, 1066, 1066, 1067, 1068, 1068,
29658 : 1069, 1069, 1070, 1070, 1070, 1070, 1071, 1071, 1072, 1072,
29659 : 1072, 1072, 1072, 1072, 1073, 1073, 1074, 1074, 1075, 1076,
29660 : 1076, 1076, 1077, 1077, 1078, 1078, 1079, 1079, 1080, 1080,
29661 : 1081, 1081, 1082, 1082, 1082, 1082, 1082, 1083, 1084, 1085,
29662 : 1086, 1087, 1087, 1088, 1088, 1089, 1089, 1090, 1090, 1091,
29663 : 1092, 1092, 1092, 1092, 1093, 1093, 1094, 1094, 1095, 1095,
29664 : 1096, 1096, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
29665 : 1097, 1097, 1097, 1097, 1098, 1098, 1098, 1098, 1098, 1098,
29666 : 1099, 1099, 1099, 1099, 1100, 1100, 1101, 1101, 1102, 1102,
29667 : 1102, 1102, 1102, 1103, 1103, 1103, 1103, 1104, 1104, 1105,
29668 : 1105, 1106, 1106, 1107, 1107, 1107, 1108, 1108, 1109, 1109,
29669 : 1109, 1110, 1111, 1111, 1112, 1112, 1113, 1114, 1114, 1115,
29670 : 1115, 1116, 1116, 1117, 1117, 1118, 1118, 1118, 1119, 1119,
29671 : 1120, 1120, 1121, 1122, 1122, 1123, 1123, 1124, 1124, 1124,
29672 : 1125, 1125, 1126, 1126, 1126, 1126, 1126, 1127, 1127, 1128,
29673 : 1128, 1129, 1130, 1130, 1131, 1131, 1132, 1132, 1132, 1132,
29674 : 1132, 1132, 1133, 1133, 1134, 1134, 1135, 1135, 1135, 1135,
29675 : 1135, 1135, 1136, 1136, 1136, 1137, 1137, 1137, 1137, 1137,
29676 : 1137, 1137, 1137, 1138, 1138, 1138, 1138, 1138, 1139, 1139,
29677 : 1140, 1140, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141,
29678 : 1141, 1141, 1141, 1142, 1142, 1143, 1143, 1144, 1144, 1145,
29679 : 1146, 1147, 1147, 1148, 1148, 1149, 1150, 1151, 1151, 1151,
29680 : 1151, 1151, 1151, 1152, 1152, 1153, 1153, 1153, 1153, 1154,
29681 : 1155, 1155, 1155, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
29682 : 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1157, 1157, 1158,
29683 : 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
29684 : 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
29685 : 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
29686 : 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
29687 : 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
29688 : 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
29689 : 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1160, 1160,
29690 : 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
29691 : 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
29692 : 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
29693 : 1161, 1161, 1161, 1161, 1162, 1162, 1162, 1162, 1162, 1162,
29694 : 1162, 1163, 1163, 1163, 1164, 1164, 1164, 1165, 1165, 1165,
29695 : 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165,
29696 : 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165,
29697 : 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165,
29698 : 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165,
29699 : 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165,
29700 : 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1166, 1166, 1167,
29701 : 1167, 1167, 1167, 1168, 1169, 1169, 1170, 1170, 1171, 1171,
29702 : 1172, 1172, 1172, 1173, 1173, 1173, 1174, 1174, 1174, 1174,
29703 : 1175, 1175, 1176, 1176, 1177, 1177, 1178, 1178, 1179, 1179,
29704 : 1180, 1181, 1181, 1181, 1182, 1183, 1183, 1184, 1184, 1185,
29705 : 1185, 1185, 1185, 1186, 1186, 1187, 1187, 1187, 1187, 1187,
29706 : 1188, 1188, 1188, 1188, 1188, 1189, 1189, 1189, 1190, 1190,
29707 : 1191, 1192, 1192, 1192, 1193, 1193, 1194, 1194, 1194, 1194,
29708 : 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1195, 1195,
29709 : 1196, 1196, 1197, 1197, 1197, 1197, 1197, 1197, 1198, 1198,
29710 : 1199, 1199, 1200, 1200, 1200, 1201, 1201, 1202, 1202, 1203,
29711 : 1203, 1203, 1204, 1204, 1205, 1206, 1206, 1206, 1206, 1206,
29712 : 1206, 1206, 1206, 1207, 1207, 1207, 1207, 1208, 1208, 1209,
29713 : 1210, 1210, 1210, 1210, 1210, 1211, 1211, 1211, 1212, 1212,
29714 : 1213, 1214, 1214, 1215, 1216, 1216, 1217, 1217, 1218, 1218,
29715 : 1219, 1219, 1219, 1219, 1220, 1220, 1221, 1221, 1222, 1222,
29716 : 1223, 1223, 1224, 1224, 1225, 1225, 1226, 1227, 1227, 1227,
29717 : 1227, 1227, 1227, 1227, 1227, 1227, 1228, 1228, 1229, 1229,
29718 : 1229, 1229, 1229, 1229, 1229, 1229, 1230, 1230, 1230, 1230,
29719 : 1231, 1231, 1232, 1233, 1233, 1234, 1234, 1235, 1235, 1235,
29720 : 1235, 1235, 1236, 1236, 1237, 1237, 1237, 1237, 1237, 1238,
29721 : 1238, 1238, 1238, 1238, 1239, 1239, 1240, 1240, 1241, 1241,
29722 : 1241, 1242, 1242, 1242, 1243, 1243, 1244, 1244, 1245, 1245,
29723 : 1246, 1246, 1247, 1247, 1248, 1248, 1248, 1248, 1249, 1249,
29724 : 1250, 1250, 1251, 1251, 1252, 1253, 1254, 1255, 1255, 1256,
29725 : 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256,
29726 : 1256, 1256, 1257, 1258, 1259, 1259, 1259, 1260, 1261, 1261,
29727 : 1261, 1261, 1262, 1262, 1263, 1264, 1265, 1265, 1266, 1266,
29728 : 1267, 1267, 1267, 1268, 1268, 1268, 1269, 1269, 1269, 1269,
29729 : 1270, 1270, 1270, 1270, 1270, 1271, 1271, 1272, 1272, 1272,
29730 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29731 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29732 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29733 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29734 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29735 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29736 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29737 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29738 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29739 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29740 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29741 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29742 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29743 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29744 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29745 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29746 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29747 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29748 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29749 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29750 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29751 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29752 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29753 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29754 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29755 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29756 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29757 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29758 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29759 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29760 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29761 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29762 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1273, 1273, 1273,
29763 : 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273,
29764 : 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273,
29765 : 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273,
29766 : 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273,
29767 : 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273,
29768 : 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273,
29769 : 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274,
29770 : 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274,
29771 : 1274, 1274, 1274, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
29772 : 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
29773 : 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
29774 : 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
29775 : 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
29776 : 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
29777 : 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
29778 : 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
29779 : 1275, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29780 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29781 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29782 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29783 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29784 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29785 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29786 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29787 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29788 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29789 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29790 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29791 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29792 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29793 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29794 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29795 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29796 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29797 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29798 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29799 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29800 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29801 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29802 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29803 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29804 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29805 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29806 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29807 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29808 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29809 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29810 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29811 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29812 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29813 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29814 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29815 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29816 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29817 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29818 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29819 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29820 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29821 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29822 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29823 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29824 : 1276, 1276, 1276, 1276, 1276, 1276
29825 : };
29826 :
29827 : /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
29828 : static const yytype_int8 yyr2[] =
29829 : {
29830 : 0, 2, 1, 2, 2, 2, 2, 2, 3, 1,
29831 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29832 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29833 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29834 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29835 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29836 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29837 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29838 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29839 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29840 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29841 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29842 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29843 : 1, 1, 1, 1, 1, 1, 0, 1, 0, 1,
29844 : 0, 1, 0, 1, 1, 0, 2, 5, 1, 1,
29845 : 0, 2, 0, 2, 0, 2, 2, 3, 3, 1,
29846 : 3, 3, 2, 1, 1, 2, 2, 2, 3, 3,
29847 : 5, 5, 5, 0, 3, 5, 5, 5, 5, 3,
29848 : 5, 3, 5, 3, 5, 5, 6, 1, 1, 6,
29849 : 4, 9, 7, 2, 0, 1, 1, 1, 1, 1,
29850 : 1, 2, 3, 3, 2, 5, 1, 3, 3, 3,
29851 : 3, 1, 3, 3, 2, 2, 2, 2, 3, 3,
29852 : 3, 3, 1, 3, 1, 3, 1, 1, 2, 2,
29853 : 2, 1, 1, 1, 1, 1, 1, 1, 3, 5,
29854 : 1, 1, 1, 1, 1, 0, 1, 1, 2, 1,
29855 : 2, 3, 2, 1, 1, 2, 1, 2, 1, 2,
29856 : 3, 4, 3, 2, 4, 1, 1, 1, 1, 1,
29857 : 2, 2, 2, 2, 2, 4, 6, 4, 6, 10,
29858 : 13, 4, 6, 4, 10, 13, 4, 6, 4, 6,
29859 : 5, 7, 11, 14, 5, 7, 1, 3, 4, 4,
29860 : 4, 3, 2, 5, 3, 6, 4, 6, 6, 9,
29861 : 5, 7, 6, 6, 5, 5, 5, 5, 9, 4,
29862 : 5, 7, 6, 4, 8, 4, 2, 4, 4, 3,
29863 : 6, 4, 3, 3, 3, 2, 2, 3, 4, 4,
29864 : 3, 3, 3, 3, 3, 3, 4, 4, 3, 2,
29865 : 3, 2, 2, 3, 4, 3, 2, 2, 3, 4,
29866 : 4, 4, 5, 1, 3, 2, 2, 0, 2, 0,
29867 : 1, 1, 1, 3, 3, 2, 0, 1, 3, 3,
29868 : 1, 5, 3, 1, 2, 1, 3, 2, 3, 1,
29869 : 1, 1, 1, 6, 6, 10, 1, 2, 1, 3,
29870 : 4, 1, 3, 4, 6, 4, 8, 2, 2, 11,
29871 : 9, 1, 1, 1, 0, 1, 1, 1, 1, 3,
29872 : 2, 0, 1, 1, 3, 3, 1, 1, 3, 3,
29873 : 3, 3, 4, 4, 3, 3, 2, 1, 0, 3,
29874 : 0, 1, 0, 1, 3, 2, 1, 1, 1, 1,
29875 : 3, 0, 1, 3, 1, 13, 16, 12, 15, 14,
29876 : 17, 1, 1, 2, 2, 2, 2, 1, 0, 1,
29877 : 0, 3, 0, 1, 3, 1, 3, 1, 1, 1,
29878 : 1, 1, 6, 2, 4, 2, 2, 1, 0, 2,
29879 : 2, 1, 0, 2, 0, 3, 1, 1, 2, 3,
29880 : 1, 4, 4, 5, 2, 5, 7, 5, 2, 3,
29881 : 0, 1, 2, 1, 1, 0, 1, 2, 2, 2,
29882 : 1, 2, 3, 3, 3, 0, 1, 1, 1, 1,
29883 : 1, 1, 1, 1, 1, 1, 3, 1, 5, 4,
29884 : 10, 3, 10, 4, 10, 12, 3, 1, 5, 3,
29885 : 2, 0, 2, 0, 3, 0, 1, 3, 3, 0,
29886 : 4, 0, 1, 4, 0, 2, 2, 2, 0, 1,
29887 : 3, 3, 6, 4, 0, 1, 1, 2, 2, 0,
29888 : 3, 3, 2, 1, 1, 3, 3, 4, 0, 1,
29889 : 0, 6, 1, 3, 3, 3, 5, 2, 0, 2,
29890 : 2, 0, 3, 4, 4, 0, 2, 0, 4, 0,
29891 : 3, 8, 11, 1, 3, 1, 1, 3, 6, 8,
29892 : 7, 10, 6, 2, 3, 0, 8, 11, 5, 1,
29893 : 0, 6, 5, 8, 4, 6, 1, 0, 3, 0,
29894 : 1, 2, 2, 2, 1, 2, 3, 1, 2, 2,
29895 : 2, 2, 3, 3, 3, 1, 3, 1, 1, 0,
29896 : 1, 2, 2, 1, 1, 3, 6, 10, 1, 0,
29897 : 1, 2, 2, 0, 2, 2, 1, 0, 1, 0,
29898 : 7, 2, 0, 3, 5, 5, 8, 2, 0, 2,
29899 : 2, 2, 1, 5, 2, 0, 2, 6, 6, 6,
29900 : 10, 6, 6, 6, 9, 9, 6, 6, 9, 6,
29901 : 7, 2, 2, 2, 2, 1, 2, 1, 0, 7,
29902 : 6, 4, 0, 1, 3, 4, 1, 3, 1, 2,
29903 : 2, 2, 2, 1, 1, 10, 13, 2, 0, 2,
29904 : 2, 1, 0, 5, 4, 4, 11, 14, 12, 15,
29905 : 11, 2, 1, 4, 0, 8, 11, 1, 1, 7,
29906 : 9, 8, 10, 8, 4, 0, 5, 0, 2, 0,
29907 : 2, 0, 2, 0, 2, 0, 1, 1, 1, 1,
29908 : 1, 8, 1, 1, 17, 21, 1, 1, 2, 1,
29909 : 3, 1, 1, 1, 3, 1, 2, 0, 1, 2,
29910 : 4, 1, 1, 1, 1, 1, 3, 0, 1, 0,
29911 : 1, 1, 4, 0, 1, 1, 1, 3, 0, 1,
29912 : 1, 1, 1, 2, 0, 0, 2, 2, 1, 2,
29913 : 2, 2, 2, 2, 1, 11, 13, 1, 3, 5,
29914 : 1, 3, 5, 1, 2, 2, 1, 8, 6, 5,
29915 : 4, 4, 3, 7, 8, 6, 6, 6, 6, 6,
29916 : 4, 7, 5, 8, 3, 1, 3, 3, 1, 1,
29917 : 1, 1, 1, 1, 1, 3, 1, 3, 3, 1,
29918 : 0, 1, 3, 7, 9, 9, 8, 6, 3, 0,
29919 : 13, 1, 3, 4, 4, 3, 6, 2, 1, 0,
29920 : 2, 0, 2, 4, 0, 6, 8, 8, 1, 3,
29921 : 5, 5, 7, 9, 7, 9, 5, 6, 6, 4,
29922 : 6, 4, 6, 8, 4, 6, 4, 6, 5, 7,
29923 : 1, 1, 1, 2, 1, 2, 1, 1, 1, 3,
29924 : 3, 3, 3, 1, 1, 1, 1, 1, 2, 2,
29925 : 1, 3, 2, 1, 1, 1, 1, 1, 1, 1,
29926 : 3, 1, 2, 2, 3, 1, 3, 5, 2, 2,
29927 : 0, 6, 6, 6, 6, 6, 6, 6, 6, 8,
29928 : 9, 8, 6, 6, 9, 9, 9, 7, 10, 1,
29929 : 1, 8, 8, 8, 8, 8, 8, 8, 9, 8,
29930 : 8, 2, 0, 1, 1, 2, 2, 1, 2, 3,
29931 : 3, 3, 3, 4, 4, 3, 3, 3, 4, 4,
29932 : 3, 4, 4, 1, 1, 1, 0, 8, 8, 11,
29933 : 1, 1, 2, 4, 5, 1, 3, 2, 2, 2,
29934 : 2, 2, 1, 3, 1, 3, 1, 2, 2, 4,
29935 : 3, 2, 2, 2, 2, 2, 2, 3, 2, 2,
29936 : 2, 2, 5, 5, 5, 5, 5, 1, 3, 1,
29937 : 2, 3, 0, 5, 7, 6, 9, 3, 1, 2,
29938 : 1, 1, 1, 3, 0, 5, 2, 0, 3, 3,
29939 : 3, 7, 7, 10, 1, 1, 1, 1, 1, 1,
29940 : 2, 16, 19, 1, 0, 2, 0, 1, 3, 4,
29941 : 5, 2, 2, 4, 4, 0, 1, 3, 2, 0,
29942 : 1, 1, 0, 2, 2, 0, 9, 12, 7, 7,
29943 : 2, 0, 3, 2, 1, 3, 1, 3, 2, 1,
29944 : 1, 2, 3, 2, 1, 3, 3, 3, 2, 2,
29945 : 1, 1, 1, 1, 2, 1, 1, 1, 1, 4,
29946 : 5, 1, 3, 3, 1, 3, 3, 5, 6, 1,
29947 : 3, 2, 1, 3, 1, 0, 1, 2, 4, 5,
29948 : 1, 1, 1, 1, 3, 3, 2, 2, 1, 2,
29949 : 2, 2, 2, 1, 2, 2, 2, 2, 1, 1,
29950 : 1, 3, 2, 1, 4, 0, 3, 0, 1, 1,
29951 : 3, 5, 2, 0, 2, 1, 3, 5, 5, 5,
29952 : 1, 2, 1, 0, 4, 6, 4, 6, 4, 6,
29953 : 4, 6, 4, 6, 3, 5, 5, 5, 1, 3,
29954 : 1, 3, 2, 2, 1, 2, 1, 2, 11, 10,
29955 : 10, 2, 2, 0, 9, 2, 0, 10, 11, 11,
29956 : 5, 5, 8, 5, 5, 5, 1, 1, 1, 1,
29957 : 3, 0, 5, 5, 6, 6, 6, 6, 6, 8,
29958 : 8, 6, 6, 7, 9, 9, 8, 10, 6, 6,
29959 : 6, 6, 6, 6, 6, 8, 6, 8, 6, 8,
29960 : 7, 9, 6, 8, 7, 9, 8, 10, 8, 10,
29961 : 9, 11, 8, 10, 9, 11, 8, 8, 7, 6,
29962 : 6, 6, 6, 8, 8, 8, 8, 6, 9, 1,
29963 : 0, 2, 0, 8, 8, 8, 10, 9, 8, 1,
29964 : 0, 6, 6, 6, 6, 6, 6, 6, 9, 9,
29965 : 6, 6, 6, 8, 6, 8, 8, 8, 8, 6,
29966 : 8, 6, 8, 7, 9, 7, 9, 6, 7, 1,
29967 : 3, 3, 3, 1, 1, 1, 1, 1, 1, 7,
29968 : 6, 6, 6, 6, 6, 6, 7, 7, 6, 9,
29969 : 9, 6, 6, 6, 6, 6, 6, 8, 8, 8,
29970 : 6, 7, 6, 6, 4, 7, 6, 4, 4, 4,
29971 : 3, 4, 3, 1, 1, 3, 5, 5, 5, 5,
29972 : 8, 5, 5, 6, 7, 7, 7, 4, 4, 5,
29973 : 4, 6, 13, 1, 1, 3, 3, 1, 1, 1,
29974 : 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
29975 : 1, 0, 3, 2, 0, 2, 2, 2, 3, 3,
29976 : 3, 3, 2, 3, 2, 5, 4, 3, 3, 3,
29977 : 3, 3, 1, 1, 0, 3, 2, 2, 1, 2,
29978 : 1, 3, 2, 1, 0, 2, 3, 0, 9, 11,
29979 : 12, 14, 3, 4, 4, 0, 2, 5, 1, 0,
29980 : 1, 2, 3, 3, 3, 1, 2, 1, 1, 1,
29981 : 1, 1, 1, 0, 5, 4, 6, 6, 4, 3,
29982 : 5, 7, 9, 1, 3, 1, 5, 4, 4, 6,
29983 : 4, 6, 6, 5, 7, 9, 6, 1, 0, 6,
29984 : 11, 11, 11, 13, 9, 11, 1, 1, 10, 6,
29985 : 4, 4, 2, 5, 2, 0, 6, 5, 3, 5,
29986 : 1, 3, 1, 1, 2, 1, 1, 1, 1, 1,
29987 : 0, 1, 0, 1, 0, 1, 0, 1, 0, 3,
29988 : 0, 2, 1, 3, 1, 0, 2, 4, 3, 5,
29989 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29990 : 5, 3, 0, 1, 1, 1, 1, 1, 3, 9,
29991 : 12, 3, 0, 2, 3, 2, 3, 7, 1, 3,
29992 : 1, 4, 4, 7, 2, 1, 1, 1, 3, 2,
29993 : 8, 5, 0, 4, 3, 0, 3, 0, 4, 0,
29994 : 1, 3, 3, 1, 1, 7, 2, 0, 5, 3,
29995 : 0, 2, 2, 2, 3, 1, 3, 1, 2, 1,
29996 : 0, 1, 2, 0, 8, 1, 3, 3, 5, 2,
29997 : 1, 3, 10, 1, 2, 4, 4, 4, 5, 5,
29998 : 2, 5, 3, 5, 2, 0, 3, 1, 2, 5,
29999 : 5, 8, 3, 4, 7, 1, 0, 3, 2, 2,
30000 : 2, 2, 0, 2, 2, 1, 1, 3, 3, 1,
30001 : 2, 4, 4, 2, 3, 5, 5, 1, 1, 9,
30002 : 9, 1, 2, 4, 4, 4, 2, 2, 3, 1,
30003 : 3, 9, 1, 2, 0, 7, 7, 0, 10, 6,
30004 : 0, 1, 0, 2, 0, 3, 3, 4, 4, 4,
30005 : 4, 3, 2, 1, 1, 0, 1, 1, 0, 1,
30006 : 5, 1, 0, 1, 1, 1, 0, 3, 1, 3,
30007 : 4, 3, 2, 2, 1, 1, 1, 0, 2, 4,
30008 : 5, 6, 4, 5, 2, 3, 1, 1, 1, 1,
30009 : 2, 2, 1, 1, 1, 1, 1, 1, 4, 0,
30010 : 1, 3, 1, 1, 1, 1, 1, 2, 4, 4,
30011 : 5, 2, 0, 1, 3, 1, 0, 1, 2, 3,
30012 : 2, 4, 2, 3, 2, 0, 4, 5, 2, 0,
30013 : 1, 3, 2, 3, 2, 3, 2, 3, 2, 3,
30014 : 1, 4, 2, 3, 3, 4, 5, 4, 5, 4,
30015 : 5, 2, 4, 1, 1, 0, 2, 0, 1, 4,
30016 : 5, 4, 0, 2, 2, 2, 1, 1, 0, 5,
30017 : 2, 1, 1, 2, 2, 4, 1, 3, 1, 2,
30018 : 3, 6, 4, 0, 2, 6, 2, 1, 3, 4,
30019 : 0, 2, 0, 2, 0, 2, 4, 0, 1, 0,
30020 : 1, 3, 3, 7, 12, 1, 3, 2, 3, 3,
30021 : 1, 2, 2, 2, 2, 1, 2, 1, 3, 3,
30022 : 2, 13, 2, 0, 1, 3, 3, 6, 7, 5,
30023 : 7, 9, 1, 0, 2, 0, 2, 3, 5, 6,
30024 : 2, 3, 3, 4, 0, 1, 1, 1, 1, 1,
30025 : 2, 4, 1, 1, 1, 1, 1, 1, 2, 3,
30026 : 3, 0, 1, 1, 1, 1, 1, 2, 2, 2,
30027 : 2, 2, 1, 3, 0, 1, 1, 1, 1, 5,
30028 : 2, 1, 1, 1, 1, 4, 1, 2, 2, 1,
30029 : 3, 3, 2, 1, 0, 5, 2, 5, 2, 1,
30030 : 3, 3, 0, 1, 1, 1, 1, 1, 1, 3,
30031 : 3, 3, 3, 3, 3, 3, 0, 1, 4, 1,
30032 : 1, 3, 3, 5, 3, 2, 2, 3, 3, 3,
30033 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
30034 : 2, 3, 3, 2, 2, 3, 5, 4, 6, 3,
30035 : 5, 4, 6, 4, 6, 5, 7, 3, 2, 4,
30036 : 2, 3, 3, 4, 3, 4, 3, 4, 5, 6,
30037 : 6, 7, 6, 7, 3, 4, 4, 6, 3, 3,
30038 : 4, 3, 4, 4, 5, 4, 5, 1, 1, 3,
30039 : 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
30040 : 3, 3, 3, 3, 3, 2, 5, 6, 3, 4,
30041 : 1, 1, 2, 4, 1, 1, 1, 2, 2, 2,
30042 : 2, 1, 1, 4, 3, 5, 6, 8, 6, 6,
30043 : 4, 4, 3, 1, 1, 1, 1, 5, 1, 1,
30044 : 4, 1, 4, 1, 4, 1, 4, 1, 1, 1,
30045 : 1, 1, 1, 1, 6, 4, 4, 6, 4, 4,
30046 : 4, 4, 4, 6, 5, 5, 5, 4, 6, 4,
30047 : 4, 4, 4, 5, 7, 7, 9, 5, 4, 6,
30048 : 5, 7, 7, 8, 4, 7, 4, 6, 6, 4,
30049 : 5, 4, 5, 3, 11, 8, 9, 2, 3, 3,
30050 : 3, 4, 0, 4, 1, 3, 3, 1, 1, 1,
30051 : 1, 2, 0, 2, 2, 0, 2, 3, 3, 4,
30052 : 2, 2, 5, 0, 5, 0, 2, 0, 1, 3,
30053 : 3, 2, 2, 0, 6, 1, 0, 3, 0, 3,
30054 : 3, 3, 0, 1, 4, 2, 2, 2, 2, 2,
30055 : 3, 2, 2, 3, 0, 4, 3, 5, 4, 3,
30056 : 5, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30057 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
30058 : 1, 4, 1, 4, 1, 2, 1, 2, 1, 3,
30059 : 1, 3, 1, 3, 3, 1, 0, 1, 3, 3,
30060 : 3, 2, 1, 3, 3, 1, 1, 1, 1, 1,
30061 : 1, 1, 1, 1, 1, 1, 1, 7, 5, 3,
30062 : 5, 5, 3, 3, 5, 3, 2, 1, 1, 3,
30063 : 5, 1, 2, 4, 2, 0, 1, 0, 1, 2,
30064 : 2, 2, 3, 5, 1, 0, 1, 2, 0, 2,
30065 : 1, 0, 2, 0, 1, 3, 3, 2, 3, 2,
30066 : 3, 4, 4, 3, 3, 0, 2, 1, 1, 1,
30067 : 1, 1, 1, 2, 2, 1, 3, 3, 6, 0,
30068 : 3, 0, 2, 4, 2, 1, 0, 5, 2, 5,
30069 : 2, 0, 3, 0, 1, 2, 2, 2, 2, 3,
30070 : 2, 3, 2, 0, 1, 3, 3, 3, 3, 3,
30071 : 0, 3, 3, 0, 1, 3, 7, 7, 3, 0,
30072 : 1, 0, 1, 3, 3, 2, 1, 1, 1, 3,
30073 : 1, 2, 1, 3, 1, 1, 1, 1, 2, 1,
30074 : 1, 1, 1, 1, 2, 6, 2, 3, 5, 1,
30075 : 1, 1, 1, 1, 1, 2, 2, 1, 1, 1,
30076 : 1, 1, 1, 3, 10, 4, 1, 1, 1, 1,
30077 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30078 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30079 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30080 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30081 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30082 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30083 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30084 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30085 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30086 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30087 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30088 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30089 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30090 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30091 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30092 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30093 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30094 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30095 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30096 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30097 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30098 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30099 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30100 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30101 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30102 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30103 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30104 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30105 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30106 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30107 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30108 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30109 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30110 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30111 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30112 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30113 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30114 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30115 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30116 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30117 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30118 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30119 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30120 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30121 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30122 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30123 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30124 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30125 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30126 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30127 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30128 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30129 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30130 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30131 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30132 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30133 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30134 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30135 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30136 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30137 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30138 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30139 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30140 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30141 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30142 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30143 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30144 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30145 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30146 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30147 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30148 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30149 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30150 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30151 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30152 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30153 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30154 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30155 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30156 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30157 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30158 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30159 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30160 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30161 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30162 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30163 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30164 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30165 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30166 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30167 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30168 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30169 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30170 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30171 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30172 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30173 : 1, 1, 1, 1, 1, 1
30174 : };
30175 :
30176 :
30177 : enum { YYENOMEM = -2 };
30178 :
30179 : #define yyerrok (yyerrstatus = 0)
30180 : #define yyclearin (yychar = YYEMPTY)
30181 :
30182 : #define YYACCEPT goto yyacceptlab
30183 : #define YYABORT goto yyabortlab
30184 : #define YYERROR goto yyerrorlab
30185 :
30186 :
30187 : #define YYRECOVERING() (!!yyerrstatus)
30188 :
30189 : #define YYBACKUP(Token, Value) \
30190 : do \
30191 : if (yychar == YYEMPTY) \
30192 : { \
30193 : yychar = (Token); \
30194 : yylval = (Value); \
30195 : YYPOPSTACK (yylen); \
30196 : yystate = *yyssp; \
30197 : goto yybackup; \
30198 : } \
30199 : else \
30200 : { \
30201 : yyerror (&yylloc, yyscanner, YY_("syntax error: cannot back up")); \
30202 : YYERROR; \
30203 : } \
30204 : while (0)
30205 :
30206 : /* Backward compatibility with an undocumented macro.
30207 : Use YYerror or YYUNDEF. */
30208 : #define YYERRCODE YYUNDEF
30209 :
30210 : /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
30211 : If N is 0, then set CURRENT to the empty location which ends
30212 : the previous symbol: RHS[0] (always defined). */
30213 :
30214 : #ifndef YYLLOC_DEFAULT
30215 : # define YYLLOC_DEFAULT(Current, Rhs, N) \
30216 : do \
30217 : if (N) \
30218 : { \
30219 : (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
30220 : (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
30221 : (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
30222 : (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
30223 : } \
30224 : else \
30225 : { \
30226 : (Current).first_line = (Current).last_line = \
30227 : YYRHSLOC (Rhs, 0).last_line; \
30228 : (Current).first_column = (Current).last_column = \
30229 : YYRHSLOC (Rhs, 0).last_column; \
30230 : } \
30231 : while (0)
30232 : #endif
30233 :
30234 : #define YYRHSLOC(Rhs, K) ((Rhs)[K])
30235 :
30236 :
30237 : /* Enable debugging if requested. */
30238 : #if YYDEBUG
30239 :
30240 : # ifndef YYFPRINTF
30241 : # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
30242 : # define YYFPRINTF fprintf
30243 : # endif
30244 :
30245 : # define YYDPRINTF(Args) \
30246 : do { \
30247 : if (yydebug) \
30248 : YYFPRINTF Args; \
30249 : } while (0)
30250 :
30251 :
30252 : /* YY_LOCATION_PRINT -- Print the location on the stream.
30253 : This macro was not mandated originally: define only if we know
30254 : we won't break user code: when these are the locations we know. */
30255 :
30256 : # ifndef YY_LOCATION_PRINT
30257 : # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
30258 :
30259 : /* Print *YYLOCP on YYO. Private, do not rely on its existence. */
30260 :
30261 : YY_ATTRIBUTE_UNUSED
30262 : static int
30263 : yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
30264 : {
30265 : int res = 0;
30266 : int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
30267 : if (0 <= yylocp->first_line)
30268 : {
30269 : res += YYFPRINTF (yyo, "%d", yylocp->first_line);
30270 : if (0 <= yylocp->first_column)
30271 : res += YYFPRINTF (yyo, ".%d", yylocp->first_column);
30272 : }
30273 : if (0 <= yylocp->last_line)
30274 : {
30275 : if (yylocp->first_line < yylocp->last_line)
30276 : {
30277 : res += YYFPRINTF (yyo, "-%d", yylocp->last_line);
30278 : if (0 <= end_col)
30279 : res += YYFPRINTF (yyo, ".%d", end_col);
30280 : }
30281 : else if (0 <= end_col && yylocp->first_column < end_col)
30282 : res += YYFPRINTF (yyo, "-%d", end_col);
30283 : }
30284 : return res;
30285 : }
30286 :
30287 : # define YY_LOCATION_PRINT(File, Loc) \
30288 : yy_location_print_ (File, &(Loc))
30289 :
30290 : # else
30291 : # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
30292 : # endif
30293 : # endif /* !defined YY_LOCATION_PRINT */
30294 :
30295 :
30296 : # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
30297 : do { \
30298 : if (yydebug) \
30299 : { \
30300 : YYFPRINTF (stderr, "%s ", Title); \
30301 : yy_symbol_print (stderr, \
30302 : Kind, Value, Location, yyscanner); \
30303 : YYFPRINTF (stderr, "\n"); \
30304 : } \
30305 : } while (0)
30306 :
30307 :
30308 : /*-----------------------------------.
30309 : | Print this symbol's value on YYO. |
30310 : `-----------------------------------*/
30311 :
30312 : static void
30313 : yy_symbol_value_print (FILE *yyo,
30314 : yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner)
30315 : {
30316 : FILE *yyoutput = yyo;
30317 : YY_USE (yyoutput);
30318 : YY_USE (yylocationp);
30319 : YY_USE (yyscanner);
30320 : if (!yyvaluep)
30321 : return;
30322 : # ifdef YYPRINT
30323 : if (yykind < YYNTOKENS)
30324 : YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
30325 : # endif
30326 : YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
30327 : YY_USE (yykind);
30328 : YY_IGNORE_MAYBE_UNINITIALIZED_END
30329 : }
30330 :
30331 :
30332 : /*---------------------------.
30333 : | Print this symbol on YYO. |
30334 : `---------------------------*/
30335 :
30336 : static void
30337 : yy_symbol_print (FILE *yyo,
30338 : yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner)
30339 : {
30340 : YYFPRINTF (yyo, "%s %s (",
30341 : yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
30342 :
30343 : YY_LOCATION_PRINT (yyo, *yylocationp);
30344 : YYFPRINTF (yyo, ": ");
30345 : yy_symbol_value_print (yyo, yykind, yyvaluep, yylocationp, yyscanner);
30346 : YYFPRINTF (yyo, ")");
30347 : }
30348 :
30349 : /*------------------------------------------------------------------.
30350 : | yy_stack_print -- Print the state stack from its BOTTOM up to its |
30351 : | TOP (included). |
30352 : `------------------------------------------------------------------*/
30353 :
30354 : static void
30355 : yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
30356 : {
30357 : YYFPRINTF (stderr, "Stack now");
30358 : for (; yybottom <= yytop; yybottom++)
30359 : {
30360 : int yybot = *yybottom;
30361 : YYFPRINTF (stderr, " %d", yybot);
30362 : }
30363 : YYFPRINTF (stderr, "\n");
30364 : }
30365 :
30366 : # define YY_STACK_PRINT(Bottom, Top) \
30367 : do { \
30368 : if (yydebug) \
30369 : yy_stack_print ((Bottom), (Top)); \
30370 : } while (0)
30371 :
30372 :
30373 : /*------------------------------------------------.
30374 : | Report that the YYRULE is going to be reduced. |
30375 : `------------------------------------------------*/
30376 :
30377 : static void
30378 : yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp,
30379 : int yyrule, core_yyscan_t yyscanner)
30380 : {
30381 : int yylno = yyrline[yyrule];
30382 : int yynrhs = yyr2[yyrule];
30383 : int yyi;
30384 : YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
30385 : yyrule - 1, yylno);
30386 : /* The symbols being reduced. */
30387 : for (yyi = 0; yyi < yynrhs; yyi++)
30388 : {
30389 : YYFPRINTF (stderr, " $%d = ", yyi + 1);
30390 : yy_symbol_print (stderr,
30391 : YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
30392 : &yyvsp[(yyi + 1) - (yynrhs)],
30393 : &(yylsp[(yyi + 1) - (yynrhs)]), yyscanner);
30394 : YYFPRINTF (stderr, "\n");
30395 : }
30396 : }
30397 :
30398 : # define YY_REDUCE_PRINT(Rule) \
30399 : do { \
30400 : if (yydebug) \
30401 : yy_reduce_print (yyssp, yyvsp, yylsp, Rule, yyscanner); \
30402 : } while (0)
30403 :
30404 : /* Nonzero means print parse trace. It is left uninitialized so that
30405 : multiple parsers can coexist. */
30406 : int yydebug;
30407 : #else /* !YYDEBUG */
30408 : # define YYDPRINTF(Args) ((void) 0)
30409 : # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
30410 : # define YY_STACK_PRINT(Bottom, Top)
30411 : # define YY_REDUCE_PRINT(Rule)
30412 : #endif /* !YYDEBUG */
30413 :
30414 :
30415 : /* YYINITDEPTH -- initial size of the parser's stacks. */
30416 : #ifndef YYINITDEPTH
30417 : # define YYINITDEPTH 200
30418 : #endif
30419 :
30420 : /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
30421 : if the built-in stack extension method is used).
30422 :
30423 : Do not make this value too large; the results are undefined if
30424 : YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
30425 : evaluated with infinite-precision integer arithmetic. */
30426 :
30427 : #ifndef YYMAXDEPTH
30428 : # define YYMAXDEPTH 10000
30429 : #endif
30430 :
30431 :
30432 :
30433 :
30434 :
30435 :
30436 : /*-----------------------------------------------.
30437 : | Release the memory associated to this symbol. |
30438 : `-----------------------------------------------*/
30439 :
30440 : static void
30441 1583304 : yydestruct (const char *yymsg,
30442 : yysymbol_kind_t yykind, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, core_yyscan_t yyscanner)
30443 : {
30444 : YY_USE (yyvaluep);
30445 : YY_USE (yylocationp);
30446 : YY_USE (yyscanner);
30447 1583304 : if (!yymsg)
30448 0 : yymsg = "Deleting";
30449 : YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
30450 :
30451 : YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
30452 : YY_USE (yykind);
30453 : YY_IGNORE_MAYBE_UNINITIALIZED_END
30454 1583304 : }
30455 :
30456 :
30457 :
30458 :
30459 :
30460 :
30461 : /*----------.
30462 : | yyparse. |
30463 : `----------*/
30464 :
30465 : int
30466 792858 : yyparse (core_yyscan_t yyscanner)
30467 : {
30468 : /* Lookahead token kind. */
30469 : int yychar;
30470 :
30471 :
30472 : /* The semantic value of the lookahead symbol. */
30473 : /* Default value used for initialization, for pacifying older GCCs
30474 : or non-GCC compilers. */
30475 : YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
30476 : YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
30477 :
30478 : /* Location data for the lookahead symbol. */
30479 : static YYLTYPE yyloc_default
30480 : # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
30481 : = { 1, 1, 1, 1 }
30482 : # endif
30483 : ;
30484 792858 : YYLTYPE yylloc = yyloc_default;
30485 :
30486 : /* Number of syntax errors so far. */
30487 792858 : int yynerrs = 0;
30488 :
30489 792858 : yy_state_fast_t yystate = 0;
30490 : /* Number of tokens to shift before error messages enabled. */
30491 792858 : int yyerrstatus = 0;
30492 :
30493 : /* Refer to the stacks through separate pointers, to allow yyoverflow
30494 : to reallocate them elsewhere. */
30495 :
30496 : /* Their size. */
30497 792858 : YYPTRDIFF_T yystacksize = YYINITDEPTH;
30498 :
30499 : /* The state stack: array, bottom, top. */
30500 : yy_state_t yyssa[YYINITDEPTH];
30501 792858 : yy_state_t *yyss = yyssa;
30502 792858 : yy_state_t *yyssp = yyss;
30503 :
30504 : /* The semantic value stack: array, bottom, top. */
30505 : YYSTYPE yyvsa[YYINITDEPTH];
30506 792858 : YYSTYPE *yyvs = yyvsa;
30507 792858 : YYSTYPE *yyvsp = yyvs;
30508 :
30509 : /* The location stack: array, bottom, top. */
30510 : YYLTYPE yylsa[YYINITDEPTH];
30511 792858 : YYLTYPE *yyls = yylsa;
30512 792858 : YYLTYPE *yylsp = yyls;
30513 :
30514 : int yyn;
30515 : /* The return value of yyparse. */
30516 : int yyresult;
30517 : /* Lookahead symbol kind. */
30518 792858 : yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
30519 : /* The variables used to return semantic value and location from the
30520 : action routines. */
30521 : YYSTYPE yyval;
30522 : YYLTYPE yyloc;
30523 :
30524 : /* The locations where the error started and ended. */
30525 : YYLTYPE yyerror_range[3];
30526 :
30527 :
30528 :
30529 : #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
30530 :
30531 : /* The number of symbols on the RHS of the reduced rule.
30532 : Keep to zero when no symbol should be popped. */
30533 792858 : int yylen = 0;
30534 :
30535 : YYDPRINTF ((stderr, "Starting parse\n"));
30536 :
30537 792858 : yychar = YYEMPTY; /* Cause a token to be read. */
30538 792858 : yylsp[0] = yylloc;
30539 792858 : goto yysetstate;
30540 :
30541 :
30542 : /*------------------------------------------------------------.
30543 : | yynewstate -- push a new state, which is found in yystate. |
30544 : `------------------------------------------------------------*/
30545 74449602 : yynewstate:
30546 : /* In all cases, when you get here, the value and location stacks
30547 : have just been pushed. So pushing a state here evens the stacks. */
30548 74449602 : yyssp++;
30549 :
30550 :
30551 : /*--------------------------------------------------------------------.
30552 : | yysetstate -- set current state (the top of the stack) to yystate. |
30553 : `--------------------------------------------------------------------*/
30554 75242460 : yysetstate:
30555 : YYDPRINTF ((stderr, "Entering state %d\n", yystate));
30556 : YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
30557 : YY_IGNORE_USELESS_CAST_BEGIN
30558 75242460 : *yyssp = YY_CAST (yy_state_t, yystate);
30559 : YY_IGNORE_USELESS_CAST_END
30560 : YY_STACK_PRINT (yyss, yyssp);
30561 :
30562 75242460 : if (yyss + yystacksize - 1 <= yyssp)
30563 : #if !defined yyoverflow && !defined YYSTACK_RELOCATE
30564 : goto yyexhaustedlab;
30565 : #else
30566 : {
30567 : /* Get the current used size of the three stacks, in elements. */
30568 0 : YYPTRDIFF_T yysize = yyssp - yyss + 1;
30569 :
30570 : # if defined yyoverflow
30571 : {
30572 : /* Give user a chance to reallocate the stack. Use copies of
30573 : these so that the &'s don't force the real ones into
30574 : memory. */
30575 : yy_state_t *yyss1 = yyss;
30576 : YYSTYPE *yyvs1 = yyvs;
30577 : YYLTYPE *yyls1 = yyls;
30578 :
30579 : /* Each stack pointer address is followed by the size of the
30580 : data in use in that stack, in bytes. This used to be a
30581 : conditional around just the two extra args, but that might
30582 : be undefined if yyoverflow is a macro. */
30583 : yyoverflow (YY_("memory exhausted"),
30584 : &yyss1, yysize * YYSIZEOF (*yyssp),
30585 : &yyvs1, yysize * YYSIZEOF (*yyvsp),
30586 : &yyls1, yysize * YYSIZEOF (*yylsp),
30587 : &yystacksize);
30588 : yyss = yyss1;
30589 : yyvs = yyvs1;
30590 : yyls = yyls1;
30591 : }
30592 : # else /* defined YYSTACK_RELOCATE */
30593 : /* Extend the stack our own way. */
30594 0 : if (YYMAXDEPTH <= yystacksize)
30595 0 : goto yyexhaustedlab;
30596 0 : yystacksize *= 2;
30597 0 : if (YYMAXDEPTH < yystacksize)
30598 0 : yystacksize = YYMAXDEPTH;
30599 :
30600 : {
30601 0 : yy_state_t *yyss1 = yyss;
30602 : union yyalloc *yyptr =
30603 0 : YY_CAST (union yyalloc *,
30604 : YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
30605 0 : if (! yyptr)
30606 0 : goto yyexhaustedlab;
30607 0 : YYSTACK_RELOCATE (yyss_alloc, yyss);
30608 0 : YYSTACK_RELOCATE (yyvs_alloc, yyvs);
30609 0 : YYSTACK_RELOCATE (yyls_alloc, yyls);
30610 : # undef YYSTACK_RELOCATE
30611 0 : if (yyss1 != yyssa)
30612 0 : YYSTACK_FREE (yyss1);
30613 : }
30614 : # endif
30615 :
30616 0 : yyssp = yyss + yysize - 1;
30617 0 : yyvsp = yyvs + yysize - 1;
30618 0 : yylsp = yyls + yysize - 1;
30619 :
30620 : YY_IGNORE_USELESS_CAST_BEGIN
30621 : YYDPRINTF ((stderr, "Stack size increased to %ld\n",
30622 : YY_CAST (long, yystacksize)));
30623 : YY_IGNORE_USELESS_CAST_END
30624 :
30625 0 : if (yyss + yystacksize - 1 <= yyssp)
30626 0 : YYABORT;
30627 : }
30628 : #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
30629 :
30630 75242460 : if (yystate == YYFINAL)
30631 791652 : YYACCEPT;
30632 :
30633 74450808 : goto yybackup;
30634 :
30635 :
30636 : /*-----------.
30637 : | yybackup. |
30638 : `-----------*/
30639 74450808 : yybackup:
30640 : /* Do appropriate processing given the current state. Read a
30641 : lookahead token if we need one and don't already have one. */
30642 :
30643 : /* First try to decide what to do without reference to lookahead token. */
30644 74450808 : yyn = yypact[yystate];
30645 74450808 : if (yypact_value_is_default (yyn))
30646 32317400 : goto yydefault;
30647 :
30648 : /* Not known => get a lookahead token if don't already have one. */
30649 :
30650 : /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */
30651 42133408 : if (yychar == YYEMPTY)
30652 : {
30653 : YYDPRINTF ((stderr, "Reading a token\n"));
30654 20166358 : yychar = yylex (&yylval, &yylloc, yyscanner);
30655 : }
30656 :
30657 42133102 : if (yychar <= YYEOF)
30658 : {
30659 3708084 : yychar = YYEOF;
30660 3708084 : yytoken = YYSYMBOL_YYEOF;
30661 : YYDPRINTF ((stderr, "Now at end of input.\n"));
30662 : }
30663 38425018 : else if (yychar == YYerror)
30664 : {
30665 : /* The scanner already issued an error message, process directly
30666 : to error recovery. But do not keep the error token as
30667 : lookahead, it is too special and may lead us to an endless
30668 : loop in error recovery. */
30669 0 : yychar = YYUNDEF;
30670 0 : yytoken = YYSYMBOL_YYerror;
30671 0 : yyerror_range[1] = yylloc;
30672 0 : goto yyerrlab1;
30673 : }
30674 : else
30675 : {
30676 38425018 : yytoken = YYTRANSLATE (yychar);
30677 : YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
30678 : }
30679 :
30680 : /* If the proper action on seeing token YYTOKEN is to reduce or to
30681 : detect an error, take that action. */
30682 42133102 : yyn += yytoken;
30683 42133102 : if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
30684 20745058 : goto yydefault;
30685 21388044 : yyn = yytable[yyn];
30686 21388044 : if (yyn <= 0)
30687 : {
30688 1222778 : if (yytable_value_is_error (yyn))
30689 0 : goto yyerrlab;
30690 1222778 : yyn = -yyn;
30691 1222778 : goto yyreduce;
30692 : }
30693 :
30694 : /* Count tokens shifted since error; after three, turn off error
30695 : status. */
30696 20165266 : if (yyerrstatus)
30697 0 : yyerrstatus--;
30698 :
30699 : /* Shift the lookahead token. */
30700 : YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
30701 20165266 : yystate = yyn;
30702 : YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
30703 20165266 : *++yyvsp = yylval;
30704 : YY_IGNORE_MAYBE_UNINITIALIZED_END
30705 20165266 : *++yylsp = yylloc;
30706 :
30707 : /* Discard the shifted token. */
30708 20165266 : yychar = YYEMPTY;
30709 20165266 : goto yynewstate;
30710 :
30711 :
30712 : /*-----------------------------------------------------------.
30713 : | yydefault -- do the default action for the current state. |
30714 : `-----------------------------------------------------------*/
30715 53062458 : yydefault:
30716 53062458 : yyn = yydefact[yystate];
30717 53062458 : if (yyn == 0)
30718 696 : goto yyerrlab;
30719 53061762 : goto yyreduce;
30720 :
30721 :
30722 : /*-----------------------------.
30723 : | yyreduce -- do a reduction. |
30724 : `-----------------------------*/
30725 54284540 : yyreduce:
30726 : /* yyn is the number of a rule to reduce with. */
30727 54284540 : yylen = yyr2[yyn];
30728 :
30729 : /* If YYLEN is nonzero, implement the default value of the action:
30730 : '$$ = $1'.
30731 :
30732 : Otherwise, the following line sets YYVAL to garbage.
30733 : This behavior is undocumented and Bison
30734 : users should not rely upon it. Assigning to YYVAL
30735 : unconditionally makes the parser a bit smaller, and it avoids a
30736 : GCC warning that YYVAL may be used uninitialized. */
30737 54284540 : yyval = yyvsp[1-yylen];
30738 :
30739 : /* Default location. */
30740 55110376 : YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
30741 54284540 : yyerror_range[1] = yyloc;
30742 : YY_REDUCE_PRINT (yyn);
30743 54284540 : switch (yyn)
30744 : {
30745 741818 : case 2: /* parse_toplevel: stmtmulti */
30746 : #line 917 "gram.y"
30747 : {
30748 : pg_yyget_extra(yyscanner)->parsetree = (yyvsp[0].list);
30749 : (void) yynerrs; /* suppress compiler warning */
30750 : }
30751 : #line 30752 "gram.c"
30752 741818 : break;
30753 :
30754 9648 : case 3: /* parse_toplevel: MODE_TYPE_NAME Typename */
30755 : #line 922 "gram.y"
30756 : {
30757 : pg_yyget_extra(yyscanner)->parsetree = list_make1((yyvsp[0].typnam));
30758 : }
30759 : #line 30760 "gram.c"
30760 9648 : break;
30761 :
30762 33236 : case 4: /* parse_toplevel: MODE_PLPGSQL_EXPR PLpgSQL_Expr */
30763 : #line 926 "gram.y"
30764 : {
30765 : pg_yyget_extra(yyscanner)->parsetree =
30766 : list_make1(makeRawStmt((yyvsp[0].node), (yylsp[0])));
30767 : }
30768 : #line 30769 "gram.c"
30769 33236 : break;
30770 :
30771 6326 : case 5: /* parse_toplevel: MODE_PLPGSQL_ASSIGN1 PLAssignStmt */
30772 : #line 931 "gram.y"
30773 : {
30774 : PLAssignStmt *n = (PLAssignStmt *) (yyvsp[0].node);
30775 :
30776 : n->nnames = 1;
30777 : pg_yyget_extra(yyscanner)->parsetree =
30778 : list_make1(makeRawStmt((Node *) n, (yylsp[0])));
30779 : }
30780 : #line 30781 "gram.c"
30781 6326 : break;
30782 :
30783 674 : case 6: /* parse_toplevel: MODE_PLPGSQL_ASSIGN2 PLAssignStmt */
30784 : #line 939 "gram.y"
30785 : {
30786 : PLAssignStmt *n = (PLAssignStmt *) (yyvsp[0].node);
30787 :
30788 : n->nnames = 2;
30789 : pg_yyget_extra(yyscanner)->parsetree =
30790 : list_make1(makeRawStmt((Node *) n, (yylsp[0])));
30791 : }
30792 : #line 30793 "gram.c"
30793 674 : break;
30794 :
30795 28 : case 7: /* parse_toplevel: MODE_PLPGSQL_ASSIGN3 PLAssignStmt */
30796 : #line 947 "gram.y"
30797 : {
30798 : PLAssignStmt *n = (PLAssignStmt *) (yyvsp[0].node);
30799 :
30800 : n->nnames = 3;
30801 : pg_yyget_extra(yyscanner)->parsetree =
30802 : list_make1(makeRawStmt((Node *) n, (yylsp[0])));
30803 : }
30804 : #line 30805 "gram.c"
30805 28 : break;
30806 :
30807 592030 : case 8: /* stmtmulti: stmtmulti ';' toplevel_stmt */
30808 : #line 963 "gram.y"
30809 : {
30810 : if ((yyvsp[-2].list) != NIL)
30811 : {
30812 : /* update length of previous stmt */
30813 : updateRawStmtEnd(llast_node(RawStmt, (yyvsp[-2].list)), (yylsp[-1]));
30814 : }
30815 : if ((yyvsp[0].node) != NULL)
30816 : (yyval.list) = lappend((yyvsp[-2].list), makeRawStmt((yyvsp[0].node), (yylsp[0])));
30817 : else
30818 : (yyval.list) = (yyvsp[-2].list);
30819 : }
30820 : #line 30821 "gram.c"
30821 592030 : break;
30822 :
30823 741826 : case 9: /* stmtmulti: toplevel_stmt */
30824 : #line 975 "gram.y"
30825 : {
30826 : if ((yyvsp[0].node) != NULL)
30827 : (yyval.list) = list_make1(makeRawStmt((yyvsp[0].node), (yylsp[0])));
30828 : else
30829 : (yyval.list) = NIL;
30830 : }
30831 : #line 30832 "gram.c"
30832 741826 : break;
30833 :
30834 537262 : case 136: /* stmt: %empty */
30835 : #line 1118 "gram.y"
30836 : { (yyval.node) = NULL; }
30837 : #line 30838 "gram.c"
30838 537262 : break;
30839 :
30840 5608 : case 137: /* opt_single_name: ColId */
30841 : #line 1125 "gram.y"
30842 : { (yyval.str) = (yyvsp[0].str); }
30843 : #line 30844 "gram.c"
30844 5608 : break;
30845 :
30846 1516 : case 138: /* opt_single_name: %empty */
30847 : #line 1126 "gram.y"
30848 : { (yyval.str) = NULL; }
30849 : #line 30850 "gram.c"
30850 1516 : break;
30851 :
30852 1900 : case 139: /* opt_qualified_name: any_name */
30853 : #line 1130 "gram.y"
30854 : { (yyval.list) = (yyvsp[0].list); }
30855 : #line 30856 "gram.c"
30856 1900 : break;
30857 :
30858 15650 : case 140: /* opt_qualified_name: %empty */
30859 : #line 1131 "gram.y"
30860 : { (yyval.list) = NIL; }
30861 : #line 30862 "gram.c"
30862 15650 : break;
30863 :
30864 1056 : case 141: /* opt_concurrently: CONCURRENTLY */
30865 : #line 1135 "gram.y"
30866 : { (yyval.boolean) = true; }
30867 : #line 30868 "gram.c"
30868 1056 : break;
30869 :
30870 7814 : case 142: /* opt_concurrently: %empty */
30871 : #line 1136 "gram.y"
30872 : { (yyval.boolean) = false; }
30873 : #line 30874 "gram.c"
30874 7814 : break;
30875 :
30876 1958 : case 143: /* opt_drop_behavior: CASCADE */
30877 : #line 1140 "gram.y"
30878 : { (yyval.dbehavior) = DROP_CASCADE; }
30879 : #line 30880 "gram.c"
30880 1958 : break;
30881 :
30882 170 : case 144: /* opt_drop_behavior: RESTRICT */
30883 : #line 1141 "gram.y"
30884 : { (yyval.dbehavior) = DROP_RESTRICT; }
30885 : #line 30886 "gram.c"
30886 170 : break;
30887 :
30888 39702 : case 145: /* opt_drop_behavior: %empty */
30889 : #line 1142 "gram.y"
30890 : { (yyval.dbehavior) = DROP_RESTRICT; /* default */ }
30891 : #line 30892 "gram.c"
30892 39702 : break;
30893 :
30894 620 : case 146: /* CallStmt: CALL func_application */
30895 : #line 1152 "gram.y"
30896 : {
30897 : CallStmt *n = makeNode(CallStmt);
30898 :
30899 : n->funccall = castNode(FuncCall, (yyvsp[0].node));
30900 : (yyval.node) = (Node *) n;
30901 : }
30902 : #line 30903 "gram.c"
30903 620 : break;
30904 :
30905 1366 : case 147: /* CreateRoleStmt: CREATE ROLE RoleId opt_with OptRoleList */
30906 : #line 1168 "gram.y"
30907 : {
30908 : CreateRoleStmt *n = makeNode(CreateRoleStmt);
30909 :
30910 : n->stmt_type = ROLESTMT_ROLE;
30911 : n->role = (yyvsp[-2].str);
30912 : n->options = (yyvsp[0].list);
30913 : (yyval.node) = (Node *) n;
30914 : }
30915 : #line 30916 "gram.c"
30916 1366 : break;
30917 :
30918 1196 : case 151: /* OptRoleList: OptRoleList CreateOptRoleElem */
30919 : #line 1190 "gram.y"
30920 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
30921 : #line 30922 "gram.c"
30922 1196 : break;
30923 :
30924 1846 : case 152: /* OptRoleList: %empty */
30925 : #line 1191 "gram.y"
30926 : { (yyval.list) = NIL; }
30927 : #line 30928 "gram.c"
30928 1846 : break;
30929 :
30930 658 : case 153: /* AlterOptRoleList: AlterOptRoleList AlterOptRoleElem */
30931 : #line 1195 "gram.y"
30932 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
30933 : #line 30934 "gram.c"
30934 658 : break;
30935 :
30936 418 : case 154: /* AlterOptRoleList: %empty */
30937 : #line 1196 "gram.y"
30938 : { (yyval.list) = NIL; }
30939 : #line 30940 "gram.c"
30940 418 : break;
30941 :
30942 188 : case 155: /* AlterOptRoleElem: PASSWORD Sconst */
30943 : #line 1201 "gram.y"
30944 : {
30945 : (yyval.defelt) = makeDefElem("password",
30946 : (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
30947 : }
30948 : #line 30949 "gram.c"
30949 188 : break;
30950 :
30951 12 : case 156: /* AlterOptRoleElem: PASSWORD NULL_P */
30952 : #line 1206 "gram.y"
30953 : {
30954 : (yyval.defelt) = makeDefElem("password", NULL, (yylsp[-1]));
30955 : }
30956 : #line 30957 "gram.c"
30957 12 : break;
30958 :
30959 18 : case 157: /* AlterOptRoleElem: ENCRYPTED PASSWORD Sconst */
30960 : #line 1210 "gram.y"
30961 : {
30962 : /*
30963 : * These days, passwords are always stored in encrypted
30964 : * form, so there is no difference between PASSWORD and
30965 : * ENCRYPTED PASSWORD.
30966 : */
30967 : (yyval.defelt) = makeDefElem("password",
30968 : (Node *) makeString((yyvsp[0].str)), (yylsp[-2]));
30969 : }
30970 : #line 30971 "gram.c"
30971 18 : break;
30972 :
30973 0 : case 158: /* AlterOptRoleElem: UNENCRYPTED PASSWORD Sconst */
30974 : #line 1220 "gram.y"
30975 : {
30976 : ereport(ERROR,
30977 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
30978 : errmsg("UNENCRYPTED PASSWORD is no longer supported"),
30979 : errhint("Remove UNENCRYPTED to store the password in encrypted form instead."),
30980 : parser_errposition((yylsp[-2]))));
30981 : }
30982 : #line 30983 "gram.c"
30983 : break;
30984 :
30985 96 : case 159: /* AlterOptRoleElem: INHERIT */
30986 : #line 1228 "gram.y"
30987 : {
30988 : (yyval.defelt) = makeDefElem("inherit", (Node *) makeBoolean(true), (yylsp[0]));
30989 : }
30990 : #line 30991 "gram.c"
30991 96 : break;
30992 :
30993 26 : case 160: /* AlterOptRoleElem: CONNECTION LIMIT SignedIconst */
30994 : #line 1232 "gram.y"
30995 : {
30996 : (yyval.defelt) = makeDefElem("connectionlimit", (Node *) makeInteger((yyvsp[0].ival)), (yylsp[-2]));
30997 : }
30998 : #line 30999 "gram.c"
30999 26 : break;
31000 :
31001 2 : case 161: /* AlterOptRoleElem: VALID UNTIL Sconst */
31002 : #line 1236 "gram.y"
31003 : {
31004 : (yyval.defelt) = makeDefElem("validUntil", (Node *) makeString((yyvsp[0].str)), (yylsp[-2]));
31005 : }
31006 : #line 31007 "gram.c"
31007 2 : break;
31008 :
31009 6 : case 162: /* AlterOptRoleElem: USER role_list */
31010 : #line 1241 "gram.y"
31011 : {
31012 : (yyval.defelt) = makeDefElem("rolemembers", (Node *) (yyvsp[0].list), (yylsp[-1]));
31013 : }
31014 : #line 31015 "gram.c"
31015 6 : break;
31016 :
31017 1356 : case 163: /* AlterOptRoleElem: IDENT */
31018 : #line 1245 "gram.y"
31019 : {
31020 : /*
31021 : * We handle identifiers that aren't parser keywords with
31022 : * the following special-case codes, to avoid bloating the
31023 : * size of the main parser.
31024 : */
31025 : if (strcmp((yyvsp[0].str), "superuser") == 0)
31026 : (yyval.defelt) = makeDefElem("superuser", (Node *) makeBoolean(true), (yylsp[0]));
31027 : else if (strcmp((yyvsp[0].str), "nosuperuser") == 0)
31028 : (yyval.defelt) = makeDefElem("superuser", (Node *) makeBoolean(false), (yylsp[0]));
31029 : else if (strcmp((yyvsp[0].str), "createrole") == 0)
31030 : (yyval.defelt) = makeDefElem("createrole", (Node *) makeBoolean(true), (yylsp[0]));
31031 : else if (strcmp((yyvsp[0].str), "nocreaterole") == 0)
31032 : (yyval.defelt) = makeDefElem("createrole", (Node *) makeBoolean(false), (yylsp[0]));
31033 : else if (strcmp((yyvsp[0].str), "replication") == 0)
31034 : (yyval.defelt) = makeDefElem("isreplication", (Node *) makeBoolean(true), (yylsp[0]));
31035 : else if (strcmp((yyvsp[0].str), "noreplication") == 0)
31036 : (yyval.defelt) = makeDefElem("isreplication", (Node *) makeBoolean(false), (yylsp[0]));
31037 : else if (strcmp((yyvsp[0].str), "createdb") == 0)
31038 : (yyval.defelt) = makeDefElem("createdb", (Node *) makeBoolean(true), (yylsp[0]));
31039 : else if (strcmp((yyvsp[0].str), "nocreatedb") == 0)
31040 : (yyval.defelt) = makeDefElem("createdb", (Node *) makeBoolean(false), (yylsp[0]));
31041 : else if (strcmp((yyvsp[0].str), "login") == 0)
31042 : (yyval.defelt) = makeDefElem("canlogin", (Node *) makeBoolean(true), (yylsp[0]));
31043 : else if (strcmp((yyvsp[0].str), "nologin") == 0)
31044 : (yyval.defelt) = makeDefElem("canlogin", (Node *) makeBoolean(false), (yylsp[0]));
31045 : else if (strcmp((yyvsp[0].str), "bypassrls") == 0)
31046 : (yyval.defelt) = makeDefElem("bypassrls", (Node *) makeBoolean(true), (yylsp[0]));
31047 : else if (strcmp((yyvsp[0].str), "nobypassrls") == 0)
31048 : (yyval.defelt) = makeDefElem("bypassrls", (Node *) makeBoolean(false), (yylsp[0]));
31049 : else if (strcmp((yyvsp[0].str), "noinherit") == 0)
31050 : {
31051 : /*
31052 : * Note that INHERIT is a keyword, so it's handled by main parser, but
31053 : * NOINHERIT is handled here.
31054 : */
31055 : (yyval.defelt) = makeDefElem("inherit", (Node *) makeBoolean(false), (yylsp[0]));
31056 : }
31057 : else
31058 : ereport(ERROR,
31059 : (errcode(ERRCODE_SYNTAX_ERROR),
31060 : errmsg("unrecognized role option \"%s\"", (yyvsp[0].str)),
31061 : parser_errposition((yylsp[0]))));
31062 : }
31063 : #line 31064 "gram.c"
31064 1356 : break;
31065 :
31066 1046 : case 164: /* CreateOptRoleElem: AlterOptRoleElem */
31067 : #line 1292 "gram.y"
31068 : { (yyval.defelt) = (yyvsp[0].defelt); }
31069 : #line 31070 "gram.c"
31070 1046 : break;
31071 :
31072 6 : case 165: /* CreateOptRoleElem: SYSID Iconst */
31073 : #line 1295 "gram.y"
31074 : {
31075 : (yyval.defelt) = makeDefElem("sysid", (Node *) makeInteger((yyvsp[0].ival)), (yylsp[-1]));
31076 : }
31077 : #line 31078 "gram.c"
31078 6 : break;
31079 :
31080 22 : case 166: /* CreateOptRoleElem: ADMIN role_list */
31081 : #line 1299 "gram.y"
31082 : {
31083 : (yyval.defelt) = makeDefElem("adminmembers", (Node *) (yyvsp[0].list), (yylsp[-1]));
31084 : }
31085 : #line 31086 "gram.c"
31086 22 : break;
31087 :
31088 22 : case 167: /* CreateOptRoleElem: ROLE role_list */
31089 : #line 1303 "gram.y"
31090 : {
31091 : (yyval.defelt) = makeDefElem("rolemembers", (Node *) (yyvsp[0].list), (yylsp[-1]));
31092 : }
31093 : #line 31094 "gram.c"
31094 22 : break;
31095 :
31096 100 : case 168: /* CreateOptRoleElem: IN_P ROLE role_list */
31097 : #line 1307 "gram.y"
31098 : {
31099 : (yyval.defelt) = makeDefElem("addroleto", (Node *) (yyvsp[0].list), (yylsp[-2]));
31100 : }
31101 : #line 31102 "gram.c"
31102 100 : break;
31103 :
31104 0 : case 169: /* CreateOptRoleElem: IN_P GROUP_P role_list */
31105 : #line 1311 "gram.y"
31106 : {
31107 : (yyval.defelt) = makeDefElem("addroleto", (Node *) (yyvsp[0].list), (yylsp[-2]));
31108 : }
31109 : #line 31110 "gram.c"
31110 0 : break;
31111 :
31112 456 : case 170: /* CreateUserStmt: CREATE USER RoleId opt_with OptRoleList */
31113 : #line 1325 "gram.y"
31114 : {
31115 : CreateRoleStmt *n = makeNode(CreateRoleStmt);
31116 :
31117 : n->stmt_type = ROLESTMT_USER;
31118 : n->role = (yyvsp[-2].str);
31119 : n->options = (yyvsp[0].list);
31120 : (yyval.node) = (Node *) n;
31121 : }
31122 : #line 31123 "gram.c"
31123 456 : break;
31124 :
31125 326 : case 171: /* AlterRoleStmt: ALTER ROLE RoleSpec opt_with AlterOptRoleList */
31126 : #line 1344 "gram.y"
31127 : {
31128 : AlterRoleStmt *n = makeNode(AlterRoleStmt);
31129 :
31130 : n->role = (yyvsp[-2].rolespec);
31131 : n->action = +1; /* add, if there are members */
31132 : n->options = (yyvsp[0].list);
31133 : (yyval.node) = (Node *) n;
31134 : }
31135 : #line 31136 "gram.c"
31136 326 : break;
31137 :
31138 92 : case 172: /* AlterRoleStmt: ALTER USER RoleSpec opt_with AlterOptRoleList */
31139 : #line 1353 "gram.y"
31140 : {
31141 : AlterRoleStmt *n = makeNode(AlterRoleStmt);
31142 :
31143 : n->role = (yyvsp[-2].rolespec);
31144 : n->action = +1; /* add, if there are members */
31145 : n->options = (yyvsp[0].list);
31146 : (yyval.node) = (Node *) n;
31147 : }
31148 : #line 31149 "gram.c"
31149 92 : break;
31150 :
31151 86 : case 173: /* opt_in_database: %empty */
31152 : #line 1364 "gram.y"
31153 : { (yyval.str) = NULL; }
31154 : #line 31155 "gram.c"
31155 86 : break;
31156 :
31157 0 : case 174: /* opt_in_database: IN_P DATABASE name */
31158 : #line 1365 "gram.y"
31159 : { (yyval.str) = (yyvsp[0].str); }
31160 : #line 31161 "gram.c"
31161 0 : break;
31162 :
31163 48 : case 175: /* AlterRoleSetStmt: ALTER ROLE RoleSpec opt_in_database SetResetClause */
31164 : #line 1370 "gram.y"
31165 : {
31166 : AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
31167 :
31168 : n->role = (yyvsp[-2].rolespec);
31169 : n->database = (yyvsp[-1].str);
31170 : n->setstmt = (yyvsp[0].vsetstmt);
31171 : (yyval.node) = (Node *) n;
31172 : }
31173 : #line 31174 "gram.c"
31174 48 : break;
31175 :
31176 4 : case 176: /* AlterRoleSetStmt: ALTER ROLE ALL opt_in_database SetResetClause */
31177 : #line 1379 "gram.y"
31178 : {
31179 : AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
31180 :
31181 : n->role = NULL;
31182 : n->database = (yyvsp[-1].str);
31183 : n->setstmt = (yyvsp[0].vsetstmt);
31184 : (yyval.node) = (Node *) n;
31185 : }
31186 : #line 31187 "gram.c"
31187 4 : break;
31188 :
31189 26 : case 177: /* AlterRoleSetStmt: ALTER USER RoleSpec opt_in_database SetResetClause */
31190 : #line 1388 "gram.y"
31191 : {
31192 : AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
31193 :
31194 : n->role = (yyvsp[-2].rolespec);
31195 : n->database = (yyvsp[-1].str);
31196 : n->setstmt = (yyvsp[0].vsetstmt);
31197 : (yyval.node) = (Node *) n;
31198 : }
31199 : #line 31200 "gram.c"
31200 26 : break;
31201 :
31202 4 : case 178: /* AlterRoleSetStmt: ALTER USER ALL opt_in_database SetResetClause */
31203 : #line 1397 "gram.y"
31204 : {
31205 : AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
31206 :
31207 : n->role = NULL;
31208 : n->database = (yyvsp[-1].str);
31209 : n->setstmt = (yyvsp[0].vsetstmt);
31210 : (yyval.node) = (Node *) n;
31211 : }
31212 : #line 31213 "gram.c"
31213 4 : break;
31214 :
31215 1100 : case 179: /* DropRoleStmt: DROP ROLE role_list */
31216 : #line 1419 "gram.y"
31217 : {
31218 : DropRoleStmt *n = makeNode(DropRoleStmt);
31219 :
31220 : n->missing_ok = false;
31221 : n->roles = (yyvsp[0].list);
31222 : (yyval.node) = (Node *) n;
31223 : }
31224 : #line 31225 "gram.c"
31225 1100 : break;
31226 :
31227 134 : case 180: /* DropRoleStmt: DROP ROLE IF_P EXISTS role_list */
31228 : #line 1427 "gram.y"
31229 : {
31230 : DropRoleStmt *n = makeNode(DropRoleStmt);
31231 :
31232 : n->missing_ok = true;
31233 : n->roles = (yyvsp[0].list);
31234 : (yyval.node) = (Node *) n;
31235 : }
31236 : #line 31237 "gram.c"
31237 134 : break;
31238 :
31239 406 : case 181: /* DropRoleStmt: DROP USER role_list */
31240 : #line 1435 "gram.y"
31241 : {
31242 : DropRoleStmt *n = makeNode(DropRoleStmt);
31243 :
31244 : n->missing_ok = false;
31245 : n->roles = (yyvsp[0].list);
31246 : (yyval.node) = (Node *) n;
31247 : }
31248 : #line 31249 "gram.c"
31249 406 : break;
31250 :
31251 36 : case 182: /* DropRoleStmt: DROP USER IF_P EXISTS role_list */
31252 : #line 1443 "gram.y"
31253 : {
31254 : DropRoleStmt *n = makeNode(DropRoleStmt);
31255 :
31256 : n->roles = (yyvsp[0].list);
31257 : n->missing_ok = true;
31258 : (yyval.node) = (Node *) n;
31259 : }
31260 : #line 31261 "gram.c"
31261 36 : break;
31262 :
31263 36 : case 183: /* DropRoleStmt: DROP GROUP_P role_list */
31264 : #line 1451 "gram.y"
31265 : {
31266 : DropRoleStmt *n = makeNode(DropRoleStmt);
31267 :
31268 : n->missing_ok = false;
31269 : n->roles = (yyvsp[0].list);
31270 : (yyval.node) = (Node *) n;
31271 : }
31272 : #line 31273 "gram.c"
31273 36 : break;
31274 :
31275 6 : case 184: /* DropRoleStmt: DROP GROUP_P IF_P EXISTS role_list */
31276 : #line 1459 "gram.y"
31277 : {
31278 : DropRoleStmt *n = makeNode(DropRoleStmt);
31279 :
31280 : n->missing_ok = true;
31281 : n->roles = (yyvsp[0].list);
31282 : (yyval.node) = (Node *) n;
31283 : }
31284 : #line 31285 "gram.c"
31285 6 : break;
31286 :
31287 24 : case 185: /* CreateGroupStmt: CREATE GROUP_P RoleId opt_with OptRoleList */
31288 : #line 1477 "gram.y"
31289 : {
31290 : CreateRoleStmt *n = makeNode(CreateRoleStmt);
31291 :
31292 : n->stmt_type = ROLESTMT_GROUP;
31293 : n->role = (yyvsp[-2].str);
31294 : n->options = (yyvsp[0].list);
31295 : (yyval.node) = (Node *) n;
31296 : }
31297 : #line 31298 "gram.c"
31298 24 : break;
31299 :
31300 42 : case 186: /* AlterGroupStmt: ALTER GROUP_P RoleSpec add_drop USER role_list */
31301 : #line 1496 "gram.y"
31302 : {
31303 : AlterRoleStmt *n = makeNode(AlterRoleStmt);
31304 :
31305 : n->role = (yyvsp[-3].rolespec);
31306 : n->action = (yyvsp[-2].ival);
31307 : n->options = list_make1(makeDefElem("rolemembers",
31308 : (Node *) (yyvsp[0].list), (yylsp[0])));
31309 : (yyval.node) = (Node *) n;
31310 : }
31311 : #line 31312 "gram.c"
31312 42 : break;
31313 :
31314 86 : case 187: /* add_drop: ADD_P */
31315 : #line 1507 "gram.y"
31316 : { (yyval.ival) = +1; }
31317 : #line 31318 "gram.c"
31318 86 : break;
31319 :
31320 198 : case 188: /* add_drop: DROP */
31321 : #line 1508 "gram.y"
31322 : { (yyval.ival) = -1; }
31323 : #line 31324 "gram.c"
31324 198 : break;
31325 :
31326 158 : case 189: /* CreateSchemaStmt: CREATE SCHEMA opt_single_name AUTHORIZATION RoleSpec OptSchemaEltList */
31327 : #line 1520 "gram.y"
31328 : {
31329 : CreateSchemaStmt *n = makeNode(CreateSchemaStmt);
31330 :
31331 : /* One can omit the schema name or the authorization id. */
31332 : n->schemaname = (yyvsp[-3].str);
31333 : n->authrole = (yyvsp[-1].rolespec);
31334 : n->schemaElts = (yyvsp[0].list);
31335 : n->if_not_exists = false;
31336 : (yyval.node) = (Node *) n;
31337 : }
31338 : #line 31339 "gram.c"
31339 158 : break;
31340 :
31341 864 : case 190: /* CreateSchemaStmt: CREATE SCHEMA ColId OptSchemaEltList */
31342 : #line 1531 "gram.y"
31343 : {
31344 : CreateSchemaStmt *n = makeNode(CreateSchemaStmt);
31345 :
31346 : /* ...but not both */
31347 : n->schemaname = (yyvsp[-1].str);
31348 : n->authrole = NULL;
31349 : n->schemaElts = (yyvsp[0].list);
31350 : n->if_not_exists = false;
31351 : (yyval.node) = (Node *) n;
31352 : }
31353 : #line 31354 "gram.c"
31354 864 : break;
31355 :
31356 18 : case 191: /* CreateSchemaStmt: CREATE SCHEMA IF_P NOT EXISTS opt_single_name AUTHORIZATION RoleSpec OptSchemaEltList */
31357 : #line 1542 "gram.y"
31358 : {
31359 : CreateSchemaStmt *n = makeNode(CreateSchemaStmt);
31360 :
31361 : /* schema name can be omitted here, too */
31362 : n->schemaname = (yyvsp[-3].str);
31363 : n->authrole = (yyvsp[-1].rolespec);
31364 : if ((yyvsp[0].list) != NIL)
31365 : ereport(ERROR,
31366 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
31367 : errmsg("CREATE SCHEMA IF NOT EXISTS cannot include schema elements"),
31368 : parser_errposition((yylsp[0]))));
31369 : n->schemaElts = (yyvsp[0].list);
31370 : n->if_not_exists = true;
31371 : (yyval.node) = (Node *) n;
31372 : }
31373 : #line 31374 "gram.c"
31374 18 : break;
31375 :
31376 34 : case 192: /* CreateSchemaStmt: CREATE SCHEMA IF_P NOT EXISTS ColId OptSchemaEltList */
31377 : #line 1558 "gram.y"
31378 : {
31379 : CreateSchemaStmt *n = makeNode(CreateSchemaStmt);
31380 :
31381 : /* ...but not here */
31382 : n->schemaname = (yyvsp[-1].str);
31383 : n->authrole = NULL;
31384 : if ((yyvsp[0].list) != NIL)
31385 : ereport(ERROR,
31386 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
31387 : errmsg("CREATE SCHEMA IF NOT EXISTS cannot include schema elements"),
31388 : parser_errposition((yylsp[0]))));
31389 : n->schemaElts = (yyvsp[0].list);
31390 : n->if_not_exists = true;
31391 : (yyval.node) = (Node *) n;
31392 : }
31393 : #line 31394 "gram.c"
31394 28 : break;
31395 :
31396 546 : case 193: /* OptSchemaEltList: OptSchemaEltList schema_stmt */
31397 : #line 1577 "gram.y"
31398 : {
31399 : (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node));
31400 : }
31401 : #line 31402 "gram.c"
31402 546 : break;
31403 :
31404 1074 : case 194: /* OptSchemaEltList: %empty */
31405 : #line 1581 "gram.y"
31406 : { (yyval.list) = NIL; }
31407 : #line 31408 "gram.c"
31408 1074 : break;
31409 :
31410 22270 : case 201: /* VariableSetStmt: SET set_rest */
31411 : #line 1609 "gram.y"
31412 : {
31413 : VariableSetStmt *n = (yyvsp[0].vsetstmt);
31414 :
31415 : n->is_local = false;
31416 : (yyval.node) = (Node *) n;
31417 : }
31418 : #line 31419 "gram.c"
31419 22270 : break;
31420 :
31421 1230 : case 202: /* VariableSetStmt: SET LOCAL set_rest */
31422 : #line 1616 "gram.y"
31423 : {
31424 : VariableSetStmt *n = (yyvsp[0].vsetstmt);
31425 :
31426 : n->is_local = true;
31427 : (yyval.node) = (Node *) n;
31428 : }
31429 : #line 31430 "gram.c"
31430 1230 : break;
31431 :
31432 84 : case 203: /* VariableSetStmt: SET SESSION set_rest */
31433 : #line 1623 "gram.y"
31434 : {
31435 : VariableSetStmt *n = (yyvsp[0].vsetstmt);
31436 :
31437 : n->is_local = false;
31438 : (yyval.node) = (Node *) n;
31439 : }
31440 : #line 31441 "gram.c"
31441 84 : break;
31442 :
31443 684 : case 204: /* set_rest: TRANSACTION transaction_mode_list */
31444 : #line 1633 "gram.y"
31445 : {
31446 : VariableSetStmt *n = makeNode(VariableSetStmt);
31447 :
31448 : n->kind = VAR_SET_MULTI;
31449 : n->name = "TRANSACTION";
31450 : n->args = (yyvsp[0].list);
31451 : n->jumble_args = true;
31452 : n->location = -1;
31453 : (yyval.vsetstmt) = n;
31454 : }
31455 : #line 31456 "gram.c"
31456 684 : break;
31457 :
31458 18 : case 205: /* set_rest: SESSION CHARACTERISTICS AS TRANSACTION transaction_mode_list */
31459 : #line 1644 "gram.y"
31460 : {
31461 : VariableSetStmt *n = makeNode(VariableSetStmt);
31462 :
31463 : n->kind = VAR_SET_MULTI;
31464 : n->name = "SESSION CHARACTERISTICS";
31465 : n->args = (yyvsp[0].list);
31466 : n->jumble_args = true;
31467 : n->location = -1;
31468 : (yyval.vsetstmt) = n;
31469 : }
31470 : #line 31471 "gram.c"
31471 18 : break;
31472 :
31473 5204 : case 207: /* generic_set: var_name TO var_list */
31474 : #line 1659 "gram.y"
31475 : {
31476 : VariableSetStmt *n = makeNode(VariableSetStmt);
31477 :
31478 : n->kind = VAR_SET_VALUE;
31479 : n->name = (yyvsp[-2].str);
31480 : n->args = (yyvsp[0].list);
31481 : n->location = (yylsp[0]);
31482 : (yyval.vsetstmt) = n;
31483 : }
31484 : #line 31485 "gram.c"
31485 5204 : break;
31486 :
31487 15340 : case 208: /* generic_set: var_name '=' var_list */
31488 : #line 1669 "gram.y"
31489 : {
31490 : VariableSetStmt *n = makeNode(VariableSetStmt);
31491 :
31492 : n->kind = VAR_SET_VALUE;
31493 : n->name = (yyvsp[-2].str);
31494 : n->args = (yyvsp[0].list);
31495 : n->location = (yylsp[0]);
31496 : (yyval.vsetstmt) = n;
31497 : }
31498 : #line 31499 "gram.c"
31499 15340 : break;
31500 :
31501 136 : case 209: /* generic_set: var_name TO DEFAULT */
31502 : #line 1679 "gram.y"
31503 : {
31504 : VariableSetStmt *n = makeNode(VariableSetStmt);
31505 :
31506 : n->kind = VAR_SET_DEFAULT;
31507 : n->name = (yyvsp[-2].str);
31508 : n->location = -1;
31509 : (yyval.vsetstmt) = n;
31510 : }
31511 : #line 31512 "gram.c"
31512 136 : break;
31513 :
31514 10 : case 210: /* generic_set: var_name '=' DEFAULT */
31515 : #line 1688 "gram.y"
31516 : {
31517 : VariableSetStmt *n = makeNode(VariableSetStmt);
31518 :
31519 : n->kind = VAR_SET_DEFAULT;
31520 : n->name = (yyvsp[-2].str);
31521 : n->location = -1;
31522 : (yyval.vsetstmt) = n;
31523 : }
31524 : #line 31525 "gram.c"
31525 10 : break;
31526 :
31527 20562 : case 211: /* set_rest_more: generic_set */
31528 : #line 1699 "gram.y"
31529 : {(yyval.vsetstmt) = (yyvsp[0].vsetstmt);}
31530 : #line 31531 "gram.c"
31531 20562 : break;
31532 :
31533 4 : case 212: /* set_rest_more: var_name FROM CURRENT_P */
31534 : #line 1701 "gram.y"
31535 : {
31536 : VariableSetStmt *n = makeNode(VariableSetStmt);
31537 :
31538 : n->kind = VAR_SET_CURRENT;
31539 : n->name = (yyvsp[-2].str);
31540 : n->location = -1;
31541 : (yyval.vsetstmt) = n;
31542 : }
31543 : #line 31544 "gram.c"
31544 4 : break;
31545 :
31546 104 : case 213: /* set_rest_more: TIME ZONE zone_value */
31547 : #line 1711 "gram.y"
31548 : {
31549 : VariableSetStmt *n = makeNode(VariableSetStmt);
31550 :
31551 : n->kind = VAR_SET_VALUE;
31552 : n->name = "timezone";
31553 : n->location = -1;
31554 : n->jumble_args = true;
31555 : if ((yyvsp[0].node) != NULL)
31556 : n->args = list_make1((yyvsp[0].node));
31557 : else
31558 : n->kind = VAR_SET_DEFAULT;
31559 : (yyval.vsetstmt) = n;
31560 : }
31561 : #line 31562 "gram.c"
31562 104 : break;
31563 :
31564 0 : case 214: /* set_rest_more: CATALOG_P Sconst */
31565 : #line 1725 "gram.y"
31566 : {
31567 : ereport(ERROR,
31568 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
31569 : errmsg("current database cannot be changed"),
31570 : parser_errposition((yylsp[0]))));
31571 : (yyval.vsetstmt) = NULL; /*not reached*/
31572 : }
31573 : #line 31574 "gram.c"
31574 : break;
31575 :
31576 4 : case 215: /* set_rest_more: SCHEMA Sconst */
31577 : #line 1733 "gram.y"
31578 : {
31579 : VariableSetStmt *n = makeNode(VariableSetStmt);
31580 :
31581 : n->kind = VAR_SET_VALUE;
31582 : n->name = "search_path";
31583 : n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0])));
31584 : n->location = (yylsp[0]);
31585 : (yyval.vsetstmt) = n;
31586 : }
31587 : #line 31588 "gram.c"
31588 4 : break;
31589 :
31590 0 : case 216: /* set_rest_more: NAMES opt_encoding */
31591 : #line 1743 "gram.y"
31592 : {
31593 : VariableSetStmt *n = makeNode(VariableSetStmt);
31594 :
31595 : n->kind = VAR_SET_VALUE;
31596 : n->name = "client_encoding";
31597 : n->location = (yylsp[0]);
31598 : if ((yyvsp[0].str) != NULL)
31599 : n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0])));
31600 : else
31601 : n->kind = VAR_SET_DEFAULT;
31602 : (yyval.vsetstmt) = n;
31603 : }
31604 : #line 31605 "gram.c"
31605 0 : break;
31606 :
31607 962 : case 217: /* set_rest_more: ROLE NonReservedWord_or_Sconst */
31608 : #line 1756 "gram.y"
31609 : {
31610 : VariableSetStmt *n = makeNode(VariableSetStmt);
31611 :
31612 : n->kind = VAR_SET_VALUE;
31613 : n->name = "role";
31614 : n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0])));
31615 : n->location = (yylsp[0]);
31616 : (yyval.vsetstmt) = n;
31617 : }
31618 : #line 31619 "gram.c"
31619 962 : break;
31620 :
31621 2550 : case 218: /* set_rest_more: SESSION AUTHORIZATION NonReservedWord_or_Sconst */
31622 : #line 1766 "gram.y"
31623 : {
31624 : VariableSetStmt *n = makeNode(VariableSetStmt);
31625 :
31626 : n->kind = VAR_SET_VALUE;
31627 : n->name = "session_authorization";
31628 : n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0])));
31629 : n->location = (yylsp[0]);
31630 : (yyval.vsetstmt) = n;
31631 : }
31632 : #line 31633 "gram.c"
31633 2550 : break;
31634 :
31635 4 : case 219: /* set_rest_more: SESSION AUTHORIZATION DEFAULT */
31636 : #line 1776 "gram.y"
31637 : {
31638 : VariableSetStmt *n = makeNode(VariableSetStmt);
31639 :
31640 : n->kind = VAR_SET_DEFAULT;
31641 : n->name = "session_authorization";
31642 : n->location = -1;
31643 : (yyval.vsetstmt) = n;
31644 : }
31645 : #line 31646 "gram.c"
31646 4 : break;
31647 :
31648 16 : case 220: /* set_rest_more: XML_P OPTION document_or_content */
31649 : #line 1785 "gram.y"
31650 : {
31651 : VariableSetStmt *n = makeNode(VariableSetStmt);
31652 :
31653 : n->kind = VAR_SET_VALUE;
31654 : n->name = "xmloption";
31655 : n->args = list_make1(makeStringConst((yyvsp[0].ival) == XMLOPTION_DOCUMENT ? "DOCUMENT" : "CONTENT", (yylsp[0])));
31656 : n->jumble_args = true;
31657 : n->location = -1;
31658 : (yyval.vsetstmt) = n;
31659 : }
31660 : #line 31661 "gram.c"
31661 16 : break;
31662 :
31663 48 : case 221: /* set_rest_more: TRANSACTION SNAPSHOT Sconst */
31664 : #line 1797 "gram.y"
31665 : {
31666 : VariableSetStmt *n = makeNode(VariableSetStmt);
31667 :
31668 : n->kind = VAR_SET_MULTI;
31669 : n->name = "TRANSACTION SNAPSHOT";
31670 : n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0])));
31671 : n->location = (yylsp[0]);
31672 : (yyval.vsetstmt) = n;
31673 : }
31674 : #line 31675 "gram.c"
31675 48 : break;
31676 :
31677 25314 : case 222: /* var_name: ColId */
31678 : #line 1808 "gram.y"
31679 : { (yyval.str) = (yyvsp[0].str); }
31680 : #line 31681 "gram.c"
31681 25314 : break;
31682 :
31683 466 : case 223: /* var_name: var_name '.' ColId */
31684 : #line 1810 "gram.y"
31685 : { (yyval.str) = psprintf("%s.%s", (yyvsp[-2].str), (yyvsp[0].str)); }
31686 : #line 31687 "gram.c"
31687 466 : break;
31688 :
31689 20544 : case 224: /* var_list: var_value */
31690 : #line 1813 "gram.y"
31691 : { (yyval.list) = list_make1((yyvsp[0].node)); }
31692 : #line 31693 "gram.c"
31693 20544 : break;
31694 :
31695 176 : case 225: /* var_list: var_list ',' var_value */
31696 : #line 1814 "gram.y"
31697 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
31698 : #line 31699 "gram.c"
31699 176 : break;
31700 :
31701 15016 : case 226: /* var_value: opt_boolean_or_string */
31702 : #line 1818 "gram.y"
31703 : { (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); }
31704 : #line 31705 "gram.c"
31705 15016 : break;
31706 :
31707 5704 : case 227: /* var_value: NumericOnly */
31708 : #line 1820 "gram.y"
31709 : { (yyval.node) = makeAConst((yyvsp[0].node), (yylsp[0])); }
31710 : #line 31711 "gram.c"
31711 5704 : break;
31712 :
31713 0 : case 228: /* iso_level: READ UNCOMMITTED */
31714 : #line 1823 "gram.y"
31715 : { (yyval.str) = "read uncommitted"; }
31716 : #line 31717 "gram.c"
31717 0 : break;
31718 :
31719 908 : case 229: /* iso_level: READ COMMITTED */
31720 : #line 1824 "gram.y"
31721 : { (yyval.str) = "read committed"; }
31722 : #line 31723 "gram.c"
31723 908 : break;
31724 :
31725 2672 : case 230: /* iso_level: REPEATABLE READ */
31726 : #line 1825 "gram.y"
31727 : { (yyval.str) = "repeatable read"; }
31728 : #line 31729 "gram.c"
31729 2672 : break;
31730 :
31731 3196 : case 231: /* iso_level: SERIALIZABLE */
31732 : #line 1826 "gram.y"
31733 : { (yyval.str) = "serializable"; }
31734 : #line 31735 "gram.c"
31735 3196 : break;
31736 :
31737 674 : case 232: /* opt_boolean_or_string: TRUE_P */
31738 : #line 1830 "gram.y"
31739 : { (yyval.str) = "true"; }
31740 : #line 31741 "gram.c"
31741 674 : break;
31742 :
31743 1452 : case 233: /* opt_boolean_or_string: FALSE_P */
31744 : #line 1831 "gram.y"
31745 : { (yyval.str) = "false"; }
31746 : #line 31747 "gram.c"
31747 1452 : break;
31748 :
31749 2206 : case 234: /* opt_boolean_or_string: ON */
31750 : #line 1832 "gram.y"
31751 : { (yyval.str) = "on"; }
31752 : #line 31753 "gram.c"
31753 2206 : break;
31754 :
31755 30134 : case 235: /* opt_boolean_or_string: NonReservedWord_or_Sconst */
31756 : #line 1838 "gram.y"
31757 : { (yyval.str) = (yyvsp[0].str); }
31758 : #line 31759 "gram.c"
31759 30134 : break;
31760 :
31761 60 : case 236: /* zone_value: Sconst */
31762 : #line 1851 "gram.y"
31763 : {
31764 : (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0]));
31765 : }
31766 : #line 31767 "gram.c"
31767 60 : break;
31768 :
31769 4 : case 237: /* zone_value: IDENT */
31770 : #line 1855 "gram.y"
31771 : {
31772 : (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0]));
31773 : }
31774 : #line 31775 "gram.c"
31775 4 : break;
31776 :
31777 0 : case 238: /* zone_value: ConstInterval Sconst opt_interval */
31778 : #line 1859 "gram.y"
31779 : {
31780 : TypeName *t = (yyvsp[-2].typnam);
31781 :
31782 : if ((yyvsp[0].list) != NIL)
31783 : {
31784 : A_Const *n = (A_Const *) linitial((yyvsp[0].list));
31785 :
31786 : if ((n->val.ival.ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0)
31787 : ereport(ERROR,
31788 : (errcode(ERRCODE_SYNTAX_ERROR),
31789 : errmsg("time zone interval must be HOUR or HOUR TO MINUTE"),
31790 : parser_errposition((yylsp[0]))));
31791 : }
31792 : t->typmods = (yyvsp[0].list);
31793 : (yyval.node) = makeStringConstCast((yyvsp[-1].str), (yylsp[-1]), t);
31794 : }
31795 : #line 31796 "gram.c"
31796 0 : break;
31797 :
31798 0 : case 239: /* zone_value: ConstInterval '(' Iconst ')' Sconst */
31799 : #line 1876 "gram.y"
31800 : {
31801 : TypeName *t = (yyvsp[-4].typnam);
31802 :
31803 : t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
31804 : makeIntConst((yyvsp[-2].ival), (yylsp[-2])));
31805 : (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t);
31806 : }
31807 : #line 31808 "gram.c"
31808 0 : break;
31809 :
31810 24 : case 240: /* zone_value: NumericOnly */
31811 : #line 1883 "gram.y"
31812 : { (yyval.node) = makeAConst((yyvsp[0].node), (yylsp[0])); }
31813 : #line 31814 "gram.c"
31814 24 : break;
31815 :
31816 14 : case 241: /* zone_value: DEFAULT */
31817 : #line 1884 "gram.y"
31818 : { (yyval.node) = NULL; }
31819 : #line 31820 "gram.c"
31820 14 : break;
31821 :
31822 2 : case 242: /* zone_value: LOCAL */
31823 : #line 1885 "gram.y"
31824 : { (yyval.node) = NULL; }
31825 : #line 31826 "gram.c"
31826 2 : break;
31827 :
31828 0 : case 243: /* opt_encoding: Sconst */
31829 : #line 1889 "gram.y"
31830 : { (yyval.str) = (yyvsp[0].str); }
31831 : #line 31832 "gram.c"
31832 0 : break;
31833 :
31834 0 : case 244: /* opt_encoding: DEFAULT */
31835 : #line 1890 "gram.y"
31836 : { (yyval.str) = NULL; }
31837 : #line 31838 "gram.c"
31838 0 : break;
31839 :
31840 0 : case 245: /* opt_encoding: %empty */
31841 : #line 1891 "gram.y"
31842 : { (yyval.str) = NULL; }
31843 : #line 31844 "gram.c"
31844 0 : break;
31845 :
31846 52864 : case 246: /* NonReservedWord_or_Sconst: NonReservedWord */
31847 : #line 1895 "gram.y"
31848 : { (yyval.str) = (yyvsp[0].str); }
31849 : #line 31850 "gram.c"
31850 52864 : break;
31851 :
31852 5484 : case 247: /* NonReservedWord_or_Sconst: Sconst */
31853 : #line 1896 "gram.y"
31854 : { (yyval.str) = (yyvsp[0].str); }
31855 : #line 31856 "gram.c"
31856 5484 : break;
31857 :
31858 4502 : case 248: /* VariableResetStmt: RESET reset_rest */
31859 : #line 1900 "gram.y"
31860 : { (yyval.node) = (Node *) (yyvsp[0].vsetstmt); }
31861 : #line 31862 "gram.c"
31862 4502 : break;
31863 :
31864 3722 : case 249: /* reset_rest: generic_reset */
31865 : #line 1904 "gram.y"
31866 : { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); }
31867 : #line 31868 "gram.c"
31868 3722 : break;
31869 :
31870 14 : case 250: /* reset_rest: TIME ZONE */
31871 : #line 1906 "gram.y"
31872 : {
31873 : VariableSetStmt *n = makeNode(VariableSetStmt);
31874 :
31875 : n->kind = VAR_RESET;
31876 : n->name = "timezone";
31877 : n->location = -1;
31878 : (yyval.vsetstmt) = n;
31879 : }
31880 : #line 31881 "gram.c"
31881 14 : break;
31882 :
31883 0 : case 251: /* reset_rest: TRANSACTION ISOLATION LEVEL */
31884 : #line 1915 "gram.y"
31885 : {
31886 : VariableSetStmt *n = makeNode(VariableSetStmt);
31887 :
31888 : n->kind = VAR_RESET;
31889 : n->name = "transaction_isolation";
31890 : n->location = -1;
31891 : (yyval.vsetstmt) = n;
31892 : }
31893 : #line 31894 "gram.c"
31894 0 : break;
31895 :
31896 766 : case 252: /* reset_rest: SESSION AUTHORIZATION */
31897 : #line 1924 "gram.y"
31898 : {
31899 : VariableSetStmt *n = makeNode(VariableSetStmt);
31900 :
31901 : n->kind = VAR_RESET;
31902 : n->name = "session_authorization";
31903 : n->location = -1;
31904 : (yyval.vsetstmt) = n;
31905 : }
31906 : #line 31907 "gram.c"
31907 766 : break;
31908 :
31909 3758 : case 253: /* generic_reset: var_name */
31910 : #line 1936 "gram.y"
31911 : {
31912 : VariableSetStmt *n = makeNode(VariableSetStmt);
31913 :
31914 : n->kind = VAR_RESET;
31915 : n->name = (yyvsp[0].str);
31916 : n->location = -1;
31917 : (yyval.vsetstmt) = n;
31918 : }
31919 : #line 31920 "gram.c"
31920 3758 : break;
31921 :
31922 18 : case 254: /* generic_reset: ALL */
31923 : #line 1945 "gram.y"
31924 : {
31925 : VariableSetStmt *n = makeNode(VariableSetStmt);
31926 :
31927 : n->kind = VAR_RESET_ALL;
31928 : n->location = -1;
31929 : (yyval.vsetstmt) = n;
31930 : }
31931 : #line 31932 "gram.c"
31932 18 : break;
31933 :
31934 1224 : case 255: /* SetResetClause: SET set_rest */
31935 : #line 1956 "gram.y"
31936 : { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); }
31937 : #line 31938 "gram.c"
31938 1224 : break;
31939 :
31940 44 : case 256: /* SetResetClause: VariableResetStmt */
31941 : #line 1957 "gram.y"
31942 : { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[0].node); }
31943 : #line 31944 "gram.c"
31944 44 : break;
31945 :
31946 148 : case 257: /* FunctionSetResetClause: SET set_rest_more */
31947 : #line 1962 "gram.y"
31948 : { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); }
31949 : #line 31950 "gram.c"
31950 148 : break;
31951 :
31952 12 : case 258: /* FunctionSetResetClause: VariableResetStmt */
31953 : #line 1963 "gram.y"
31954 : { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[0].node); }
31955 : #line 31956 "gram.c"
31956 12 : break;
31957 :
31958 862 : case 259: /* VariableShowStmt: SHOW var_name */
31959 : #line 1969 "gram.y"
31960 : {
31961 : VariableShowStmt *n = makeNode(VariableShowStmt);
31962 :
31963 : n->name = (yyvsp[0].str);
31964 : (yyval.node) = (Node *) n;
31965 : }
31966 : #line 31967 "gram.c"
31967 862 : break;
31968 :
31969 10 : case 260: /* VariableShowStmt: SHOW TIME ZONE */
31970 : #line 1976 "gram.y"
31971 : {
31972 : VariableShowStmt *n = makeNode(VariableShowStmt);
31973 :
31974 : n->name = "timezone";
31975 : (yyval.node) = (Node *) n;
31976 : }
31977 : #line 31978 "gram.c"
31978 10 : break;
31979 :
31980 4 : case 261: /* VariableShowStmt: SHOW TRANSACTION ISOLATION LEVEL */
31981 : #line 1983 "gram.y"
31982 : {
31983 : VariableShowStmt *n = makeNode(VariableShowStmt);
31984 :
31985 : n->name = "transaction_isolation";
31986 : (yyval.node) = (Node *) n;
31987 : }
31988 : #line 31989 "gram.c"
31989 4 : break;
31990 :
31991 0 : case 262: /* VariableShowStmt: SHOW SESSION AUTHORIZATION */
31992 : #line 1990 "gram.y"
31993 : {
31994 : VariableShowStmt *n = makeNode(VariableShowStmt);
31995 :
31996 : n->name = "session_authorization";
31997 : (yyval.node) = (Node *) n;
31998 : }
31999 : #line 32000 "gram.c"
32000 0 : break;
32001 :
32002 0 : case 263: /* VariableShowStmt: SHOW ALL */
32003 : #line 1997 "gram.y"
32004 : {
32005 : VariableShowStmt *n = makeNode(VariableShowStmt);
32006 :
32007 : n->name = "all";
32008 : (yyval.node) = (Node *) n;
32009 : }
32010 : #line 32011 "gram.c"
32011 0 : break;
32012 :
32013 104 : case 264: /* ConstraintsSetStmt: SET CONSTRAINTS constraints_set_list constraints_set_mode */
32014 : #line 2008 "gram.y"
32015 : {
32016 : ConstraintsSetStmt *n = makeNode(ConstraintsSetStmt);
32017 :
32018 : n->constraints = (yyvsp[-1].list);
32019 : n->deferred = (yyvsp[0].boolean);
32020 : (yyval.node) = (Node *) n;
32021 : }
32022 : #line 32023 "gram.c"
32023 104 : break;
32024 :
32025 56 : case 265: /* constraints_set_list: ALL */
32026 : #line 2018 "gram.y"
32027 : { (yyval.list) = NIL; }
32028 : #line 32029 "gram.c"
32029 56 : break;
32030 :
32031 48 : case 266: /* constraints_set_list: qualified_name_list */
32032 : #line 2019 "gram.y"
32033 : { (yyval.list) = (yyvsp[0].list); }
32034 : #line 32035 "gram.c"
32035 48 : break;
32036 :
32037 68 : case 267: /* constraints_set_mode: DEFERRED */
32038 : #line 2023 "gram.y"
32039 : { (yyval.boolean) = true; }
32040 : #line 32041 "gram.c"
32041 68 : break;
32042 :
32043 36 : case 268: /* constraints_set_mode: IMMEDIATE */
32044 : #line 2024 "gram.y"
32045 : { (yyval.boolean) = false; }
32046 : #line 32047 "gram.c"
32047 36 : break;
32048 :
32049 224 : case 269: /* CheckPointStmt: CHECKPOINT */
32050 : #line 2033 "gram.y"
32051 : {
32052 : CheckPointStmt *n = makeNode(CheckPointStmt);
32053 :
32054 : (yyval.node) = (Node *) n;
32055 : }
32056 : #line 32057 "gram.c"
32057 224 : break;
32058 :
32059 6 : case 270: /* DiscardStmt: DISCARD ALL */
32060 : #line 2049 "gram.y"
32061 : {
32062 : DiscardStmt *n = makeNode(DiscardStmt);
32063 :
32064 : n->target = DISCARD_ALL;
32065 : (yyval.node) = (Node *) n;
32066 : }
32067 : #line 32068 "gram.c"
32068 6 : break;
32069 :
32070 8 : case 271: /* DiscardStmt: DISCARD TEMP */
32071 : #line 2056 "gram.y"
32072 : {
32073 : DiscardStmt *n = makeNode(DiscardStmt);
32074 :
32075 : n->target = DISCARD_TEMP;
32076 : (yyval.node) = (Node *) n;
32077 : }
32078 : #line 32079 "gram.c"
32079 8 : break;
32080 :
32081 0 : case 272: /* DiscardStmt: DISCARD TEMPORARY */
32082 : #line 2063 "gram.y"
32083 : {
32084 : DiscardStmt *n = makeNode(DiscardStmt);
32085 :
32086 : n->target = DISCARD_TEMP;
32087 : (yyval.node) = (Node *) n;
32088 : }
32089 : #line 32090 "gram.c"
32090 0 : break;
32091 :
32092 4 : case 273: /* DiscardStmt: DISCARD PLANS */
32093 : #line 2070 "gram.y"
32094 : {
32095 : DiscardStmt *n = makeNode(DiscardStmt);
32096 :
32097 : n->target = DISCARD_PLANS;
32098 : (yyval.node) = (Node *) n;
32099 : }
32100 : #line 32101 "gram.c"
32101 4 : break;
32102 :
32103 12 : case 274: /* DiscardStmt: DISCARD SEQUENCES */
32104 : #line 2077 "gram.y"
32105 : {
32106 : DiscardStmt *n = makeNode(DiscardStmt);
32107 :
32108 : n->target = DISCARD_SEQUENCES;
32109 : (yyval.node) = (Node *) n;
32110 : }
32111 : #line 32112 "gram.c"
32112 12 : break;
32113 :
32114 27652 : case 275: /* AlterTableStmt: ALTER TABLE relation_expr alter_table_cmds */
32115 : #line 2097 "gram.y"
32116 : {
32117 : AlterTableStmt *n = makeNode(AlterTableStmt);
32118 :
32119 : n->relation = (yyvsp[-1].range);
32120 : n->cmds = (yyvsp[0].list);
32121 : n->objtype = OBJECT_TABLE;
32122 : n->missing_ok = false;
32123 : (yyval.node) = (Node *) n;
32124 : }
32125 : #line 32126 "gram.c"
32126 27652 : break;
32127 :
32128 54 : case 276: /* AlterTableStmt: ALTER TABLE IF_P EXISTS relation_expr alter_table_cmds */
32129 : #line 2107 "gram.y"
32130 : {
32131 : AlterTableStmt *n = makeNode(AlterTableStmt);
32132 :
32133 : n->relation = (yyvsp[-1].range);
32134 : n->cmds = (yyvsp[0].list);
32135 : n->objtype = OBJECT_TABLE;
32136 : n->missing_ok = true;
32137 : (yyval.node) = (Node *) n;
32138 : }
32139 : #line 32140 "gram.c"
32140 54 : break;
32141 :
32142 3422 : case 277: /* AlterTableStmt: ALTER TABLE relation_expr partition_cmd */
32143 : #line 2117 "gram.y"
32144 : {
32145 : AlterTableStmt *n = makeNode(AlterTableStmt);
32146 :
32147 : n->relation = (yyvsp[-1].range);
32148 : n->cmds = list_make1((yyvsp[0].node));
32149 : n->objtype = OBJECT_TABLE;
32150 : n->missing_ok = false;
32151 : (yyval.node) = (Node *) n;
32152 : }
32153 : #line 32154 "gram.c"
32154 3422 : break;
32155 :
32156 0 : case 278: /* AlterTableStmt: ALTER TABLE IF_P EXISTS relation_expr partition_cmd */
32157 : #line 2127 "gram.y"
32158 : {
32159 : AlterTableStmt *n = makeNode(AlterTableStmt);
32160 :
32161 : n->relation = (yyvsp[-1].range);
32162 : n->cmds = list_make1((yyvsp[0].node));
32163 : n->objtype = OBJECT_TABLE;
32164 : n->missing_ok = true;
32165 : (yyval.node) = (Node *) n;
32166 : }
32167 : #line 32168 "gram.c"
32168 0 : break;
32169 :
32170 12 : case 279: /* AlterTableStmt: ALTER TABLE ALL IN_P TABLESPACE name SET TABLESPACE name opt_nowait */
32171 : #line 2137 "gram.y"
32172 : {
32173 : AlterTableMoveAllStmt *n =
32174 : makeNode(AlterTableMoveAllStmt);
32175 :
32176 : n->orig_tablespacename = (yyvsp[-4].str);
32177 : n->objtype = OBJECT_TABLE;
32178 : n->roles = NIL;
32179 : n->new_tablespacename = (yyvsp[-1].str);
32180 : n->nowait = (yyvsp[0].boolean);
32181 : (yyval.node) = (Node *) n;
32182 : }
32183 : #line 32184 "gram.c"
32184 12 : break;
32185 :
32186 0 : case 280: /* AlterTableStmt: ALTER TABLE ALL IN_P TABLESPACE name OWNED BY role_list SET TABLESPACE name opt_nowait */
32187 : #line 2149 "gram.y"
32188 : {
32189 : AlterTableMoveAllStmt *n =
32190 : makeNode(AlterTableMoveAllStmt);
32191 :
32192 : n->orig_tablespacename = (yyvsp[-7].str);
32193 : n->objtype = OBJECT_TABLE;
32194 : n->roles = (yyvsp[-4].list);
32195 : n->new_tablespacename = (yyvsp[-1].str);
32196 : n->nowait = (yyvsp[0].boolean);
32197 : (yyval.node) = (Node *) n;
32198 : }
32199 : #line 32200 "gram.c"
32200 0 : break;
32201 :
32202 228 : case 281: /* AlterTableStmt: ALTER INDEX qualified_name alter_table_cmds */
32203 : #line 2161 "gram.y"
32204 : {
32205 : AlterTableStmt *n = makeNode(AlterTableStmt);
32206 :
32207 : n->relation = (yyvsp[-1].range);
32208 : n->cmds = (yyvsp[0].list);
32209 : n->objtype = OBJECT_INDEX;
32210 : n->missing_ok = false;
32211 : (yyval.node) = (Node *) n;
32212 : }
32213 : #line 32214 "gram.c"
32214 228 : break;
32215 :
32216 0 : case 282: /* AlterTableStmt: ALTER INDEX IF_P EXISTS qualified_name alter_table_cmds */
32217 : #line 2171 "gram.y"
32218 : {
32219 : AlterTableStmt *n = makeNode(AlterTableStmt);
32220 :
32221 : n->relation = (yyvsp[-1].range);
32222 : n->cmds = (yyvsp[0].list);
32223 : n->objtype = OBJECT_INDEX;
32224 : n->missing_ok = true;
32225 : (yyval.node) = (Node *) n;
32226 : }
32227 : #line 32228 "gram.c"
32228 0 : break;
32229 :
32230 494 : case 283: /* AlterTableStmt: ALTER INDEX qualified_name index_partition_cmd */
32231 : #line 2181 "gram.y"
32232 : {
32233 : AlterTableStmt *n = makeNode(AlterTableStmt);
32234 :
32235 : n->relation = (yyvsp[-1].range);
32236 : n->cmds = list_make1((yyvsp[0].node));
32237 : n->objtype = OBJECT_INDEX;
32238 : n->missing_ok = false;
32239 : (yyval.node) = (Node *) n;
32240 : }
32241 : #line 32242 "gram.c"
32242 494 : break;
32243 :
32244 6 : case 284: /* AlterTableStmt: ALTER INDEX ALL IN_P TABLESPACE name SET TABLESPACE name opt_nowait */
32245 : #line 2191 "gram.y"
32246 : {
32247 : AlterTableMoveAllStmt *n =
32248 : makeNode(AlterTableMoveAllStmt);
32249 :
32250 : n->orig_tablespacename = (yyvsp[-4].str);
32251 : n->objtype = OBJECT_INDEX;
32252 : n->roles = NIL;
32253 : n->new_tablespacename = (yyvsp[-1].str);
32254 : n->nowait = (yyvsp[0].boolean);
32255 : (yyval.node) = (Node *) n;
32256 : }
32257 : #line 32258 "gram.c"
32258 6 : break;
32259 :
32260 0 : case 285: /* AlterTableStmt: ALTER INDEX ALL IN_P TABLESPACE name OWNED BY role_list SET TABLESPACE name opt_nowait */
32261 : #line 2203 "gram.y"
32262 : {
32263 : AlterTableMoveAllStmt *n =
32264 : makeNode(AlterTableMoveAllStmt);
32265 :
32266 : n->orig_tablespacename = (yyvsp[-7].str);
32267 : n->objtype = OBJECT_INDEX;
32268 : n->roles = (yyvsp[-4].list);
32269 : n->new_tablespacename = (yyvsp[-1].str);
32270 : n->nowait = (yyvsp[0].boolean);
32271 : (yyval.node) = (Node *) n;
32272 : }
32273 : #line 32274 "gram.c"
32274 0 : break;
32275 :
32276 156 : case 286: /* AlterTableStmt: ALTER SEQUENCE qualified_name alter_table_cmds */
32277 : #line 2215 "gram.y"
32278 : {
32279 : AlterTableStmt *n = makeNode(AlterTableStmt);
32280 :
32281 : n->relation = (yyvsp[-1].range);
32282 : n->cmds = (yyvsp[0].list);
32283 : n->objtype = OBJECT_SEQUENCE;
32284 : n->missing_ok = false;
32285 : (yyval.node) = (Node *) n;
32286 : }
32287 : #line 32288 "gram.c"
32288 156 : break;
32289 :
32290 0 : case 287: /* AlterTableStmt: ALTER SEQUENCE IF_P EXISTS qualified_name alter_table_cmds */
32291 : #line 2225 "gram.y"
32292 : {
32293 : AlterTableStmt *n = makeNode(AlterTableStmt);
32294 :
32295 : n->relation = (yyvsp[-1].range);
32296 : n->cmds = (yyvsp[0].list);
32297 : n->objtype = OBJECT_SEQUENCE;
32298 : n->missing_ok = true;
32299 : (yyval.node) = (Node *) n;
32300 : }
32301 : #line 32302 "gram.c"
32302 0 : break;
32303 :
32304 352 : case 288: /* AlterTableStmt: ALTER VIEW qualified_name alter_table_cmds */
32305 : #line 2235 "gram.y"
32306 : {
32307 : AlterTableStmt *n = makeNode(AlterTableStmt);
32308 :
32309 : n->relation = (yyvsp[-1].range);
32310 : n->cmds = (yyvsp[0].list);
32311 : n->objtype = OBJECT_VIEW;
32312 : n->missing_ok = false;
32313 : (yyval.node) = (Node *) n;
32314 : }
32315 : #line 32316 "gram.c"
32316 352 : break;
32317 :
32318 0 : case 289: /* AlterTableStmt: ALTER VIEW IF_P EXISTS qualified_name alter_table_cmds */
32319 : #line 2245 "gram.y"
32320 : {
32321 : AlterTableStmt *n = makeNode(AlterTableStmt);
32322 :
32323 : n->relation = (yyvsp[-1].range);
32324 : n->cmds = (yyvsp[0].list);
32325 : n->objtype = OBJECT_VIEW;
32326 : n->missing_ok = true;
32327 : (yyval.node) = (Node *) n;
32328 : }
32329 : #line 32330 "gram.c"
32330 0 : break;
32331 :
32332 64 : case 290: /* AlterTableStmt: ALTER MATERIALIZED VIEW qualified_name alter_table_cmds */
32333 : #line 2255 "gram.y"
32334 : {
32335 : AlterTableStmt *n = makeNode(AlterTableStmt);
32336 :
32337 : n->relation = (yyvsp[-1].range);
32338 : n->cmds = (yyvsp[0].list);
32339 : n->objtype = OBJECT_MATVIEW;
32340 : n->missing_ok = false;
32341 : (yyval.node) = (Node *) n;
32342 : }
32343 : #line 32344 "gram.c"
32344 64 : break;
32345 :
32346 0 : case 291: /* AlterTableStmt: ALTER MATERIALIZED VIEW IF_P EXISTS qualified_name alter_table_cmds */
32347 : #line 2265 "gram.y"
32348 : {
32349 : AlterTableStmt *n = makeNode(AlterTableStmt);
32350 :
32351 : n->relation = (yyvsp[-1].range);
32352 : n->cmds = (yyvsp[0].list);
32353 : n->objtype = OBJECT_MATVIEW;
32354 : n->missing_ok = true;
32355 : (yyval.node) = (Node *) n;
32356 : }
32357 : #line 32358 "gram.c"
32358 0 : break;
32359 :
32360 12 : case 292: /* AlterTableStmt: ALTER MATERIALIZED VIEW ALL IN_P TABLESPACE name SET TABLESPACE name opt_nowait */
32361 : #line 2275 "gram.y"
32362 : {
32363 : AlterTableMoveAllStmt *n =
32364 : makeNode(AlterTableMoveAllStmt);
32365 :
32366 : n->orig_tablespacename = (yyvsp[-4].str);
32367 : n->objtype = OBJECT_MATVIEW;
32368 : n->roles = NIL;
32369 : n->new_tablespacename = (yyvsp[-1].str);
32370 : n->nowait = (yyvsp[0].boolean);
32371 : (yyval.node) = (Node *) n;
32372 : }
32373 : #line 32374 "gram.c"
32374 12 : break;
32375 :
32376 0 : case 293: /* AlterTableStmt: ALTER MATERIALIZED VIEW ALL IN_P TABLESPACE name OWNED BY role_list SET TABLESPACE name opt_nowait */
32377 : #line 2287 "gram.y"
32378 : {
32379 : AlterTableMoveAllStmt *n =
32380 : makeNode(AlterTableMoveAllStmt);
32381 :
32382 : n->orig_tablespacename = (yyvsp[-7].str);
32383 : n->objtype = OBJECT_MATVIEW;
32384 : n->roles = (yyvsp[-4].list);
32385 : n->new_tablespacename = (yyvsp[-1].str);
32386 : n->nowait = (yyvsp[0].boolean);
32387 : (yyval.node) = (Node *) n;
32388 : }
32389 : #line 32390 "gram.c"
32390 0 : break;
32391 :
32392 374 : case 294: /* AlterTableStmt: ALTER FOREIGN TABLE relation_expr alter_table_cmds */
32393 : #line 2299 "gram.y"
32394 : {
32395 : AlterTableStmt *n = makeNode(AlterTableStmt);
32396 :
32397 : n->relation = (yyvsp[-1].range);
32398 : n->cmds = (yyvsp[0].list);
32399 : n->objtype = OBJECT_FOREIGN_TABLE;
32400 : n->missing_ok = false;
32401 : (yyval.node) = (Node *) n;
32402 : }
32403 : #line 32404 "gram.c"
32404 374 : break;
32405 :
32406 108 : case 295: /* AlterTableStmt: ALTER FOREIGN TABLE IF_P EXISTS relation_expr alter_table_cmds */
32407 : #line 2309 "gram.y"
32408 : {
32409 : AlterTableStmt *n = makeNode(AlterTableStmt);
32410 :
32411 : n->relation = (yyvsp[-1].range);
32412 : n->cmds = (yyvsp[0].list);
32413 : n->objtype = OBJECT_FOREIGN_TABLE;
32414 : n->missing_ok = true;
32415 : (yyval.node) = (Node *) n;
32416 : }
32417 : #line 32418 "gram.c"
32418 108 : break;
32419 :
32420 28988 : case 296: /* alter_table_cmds: alter_table_cmd */
32421 : #line 2321 "gram.y"
32422 : { (yyval.list) = list_make1((yyvsp[0].node)); }
32423 : #line 32424 "gram.c"
32424 28988 : break;
32425 :
32426 1020 : case 297: /* alter_table_cmds: alter_table_cmds ',' alter_table_cmd */
32427 : #line 2322 "gram.y"
32428 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
32429 : #line 32430 "gram.c"
32430 1020 : break;
32431 :
32432 2820 : case 298: /* partition_cmd: ATTACH PARTITION qualified_name PartitionBoundSpec */
32433 : #line 2328 "gram.y"
32434 : {
32435 : AlterTableCmd *n = makeNode(AlterTableCmd);
32436 : PartitionCmd *cmd = makeNode(PartitionCmd);
32437 :
32438 : n->subtype = AT_AttachPartition;
32439 : cmd->name = (yyvsp[-1].range);
32440 : cmd->bound = (yyvsp[0].partboundspec);
32441 : cmd->concurrent = false;
32442 : n->def = (Node *) cmd;
32443 :
32444 : (yyval.node) = (Node *) n;
32445 : }
32446 : #line 32447 "gram.c"
32447 2820 : break;
32448 :
32449 582 : case 299: /* partition_cmd: DETACH PARTITION qualified_name opt_concurrently */
32450 : #line 2342 "gram.y"
32451 : {
32452 : AlterTableCmd *n = makeNode(AlterTableCmd);
32453 : PartitionCmd *cmd = makeNode(PartitionCmd);
32454 :
32455 : n->subtype = AT_DetachPartition;
32456 : cmd->name = (yyvsp[-1].range);
32457 : cmd->bound = NULL;
32458 : cmd->concurrent = (yyvsp[0].boolean);
32459 : n->def = (Node *) cmd;
32460 :
32461 : (yyval.node) = (Node *) n;
32462 : }
32463 : #line 32464 "gram.c"
32464 582 : break;
32465 :
32466 20 : case 300: /* partition_cmd: DETACH PARTITION qualified_name FINALIZE */
32467 : #line 2355 "gram.y"
32468 : {
32469 : AlterTableCmd *n = makeNode(AlterTableCmd);
32470 : PartitionCmd *cmd = makeNode(PartitionCmd);
32471 :
32472 : n->subtype = AT_DetachPartitionFinalize;
32473 : cmd->name = (yyvsp[-1].range);
32474 : cmd->bound = NULL;
32475 : cmd->concurrent = false;
32476 : n->def = (Node *) cmd;
32477 : (yyval.node) = (Node *) n;
32478 : }
32479 : #line 32480 "gram.c"
32480 20 : break;
32481 :
32482 494 : case 301: /* index_partition_cmd: ATTACH PARTITION qualified_name */
32483 : #line 2371 "gram.y"
32484 : {
32485 : AlterTableCmd *n = makeNode(AlterTableCmd);
32486 : PartitionCmd *cmd = makeNode(PartitionCmd);
32487 :
32488 : n->subtype = AT_AttachPartition;
32489 : cmd->name = (yyvsp[0].range);
32490 : cmd->bound = NULL;
32491 : cmd->concurrent = false;
32492 : n->def = (Node *) cmd;
32493 :
32494 : (yyval.node) = (Node *) n;
32495 : }
32496 : #line 32497 "gram.c"
32497 494 : break;
32498 :
32499 192 : case 302: /* alter_table_cmd: ADD_P columnDef */
32500 : #line 2388 "gram.y"
32501 : {
32502 : AlterTableCmd *n = makeNode(AlterTableCmd);
32503 :
32504 : n->subtype = AT_AddColumn;
32505 : n->def = (yyvsp[0].node);
32506 : n->missing_ok = false;
32507 : (yyval.node) = (Node *) n;
32508 : }
32509 : #line 32510 "gram.c"
32510 192 : break;
32511 :
32512 0 : case 303: /* alter_table_cmd: ADD_P IF_P NOT EXISTS columnDef */
32513 : #line 2398 "gram.y"
32514 : {
32515 : AlterTableCmd *n = makeNode(AlterTableCmd);
32516 :
32517 : n->subtype = AT_AddColumn;
32518 : n->def = (yyvsp[0].node);
32519 : n->missing_ok = true;
32520 : (yyval.node) = (Node *) n;
32521 : }
32522 : #line 32523 "gram.c"
32523 0 : break;
32524 :
32525 1890 : case 304: /* alter_table_cmd: ADD_P COLUMN columnDef */
32526 : #line 2408 "gram.y"
32527 : {
32528 : AlterTableCmd *n = makeNode(AlterTableCmd);
32529 :
32530 : n->subtype = AT_AddColumn;
32531 : n->def = (yyvsp[0].node);
32532 : n->missing_ok = false;
32533 : (yyval.node) = (Node *) n;
32534 : }
32535 : #line 32536 "gram.c"
32536 1890 : break;
32537 :
32538 60 : case 305: /* alter_table_cmd: ADD_P COLUMN IF_P NOT EXISTS columnDef */
32539 : #line 2418 "gram.y"
32540 : {
32541 : AlterTableCmd *n = makeNode(AlterTableCmd);
32542 :
32543 : n->subtype = AT_AddColumn;
32544 : n->def = (yyvsp[0].node);
32545 : n->missing_ok = true;
32546 : (yyval.node) = (Node *) n;
32547 : }
32548 : #line 32549 "gram.c"
32549 60 : break;
32550 :
32551 578 : case 306: /* alter_table_cmd: ALTER opt_column ColId alter_column_default */
32552 : #line 2428 "gram.y"
32553 : {
32554 : AlterTableCmd *n = makeNode(AlterTableCmd);
32555 :
32556 : n->subtype = AT_ColumnDefault;
32557 : n->name = (yyvsp[-1].str);
32558 : n->def = (yyvsp[0].node);
32559 : (yyval.node) = (Node *) n;
32560 : }
32561 : #line 32562 "gram.c"
32562 578 : break;
32563 :
32564 294 : case 307: /* alter_table_cmd: ALTER opt_column ColId DROP NOT NULL_P */
32565 : #line 2438 "gram.y"
32566 : {
32567 : AlterTableCmd *n = makeNode(AlterTableCmd);
32568 :
32569 : n->subtype = AT_DropNotNull;
32570 : n->name = (yyvsp[-3].str);
32571 : (yyval.node) = (Node *) n;
32572 : }
32573 : #line 32574 "gram.c"
32574 294 : break;
32575 :
32576 434 : case 308: /* alter_table_cmd: ALTER opt_column ColId SET NOT NULL_P */
32577 : #line 2447 "gram.y"
32578 : {
32579 : AlterTableCmd *n = makeNode(AlterTableCmd);
32580 :
32581 : n->subtype = AT_SetNotNull;
32582 : n->name = (yyvsp[-3].str);
32583 : (yyval.node) = (Node *) n;
32584 : }
32585 : #line 32586 "gram.c"
32586 434 : break;
32587 :
32588 132 : case 309: /* alter_table_cmd: ALTER opt_column ColId SET EXPRESSION AS '(' a_expr ')' */
32589 : #line 2456 "gram.y"
32590 : {
32591 : AlterTableCmd *n = makeNode(AlterTableCmd);
32592 :
32593 : n->subtype = AT_SetExpression;
32594 : n->name = (yyvsp[-6].str);
32595 : n->def = (yyvsp[-1].node);
32596 : (yyval.node) = (Node *) n;
32597 : }
32598 : #line 32599 "gram.c"
32599 132 : break;
32600 :
32601 62 : case 310: /* alter_table_cmd: ALTER opt_column ColId DROP EXPRESSION */
32602 : #line 2466 "gram.y"
32603 : {
32604 : AlterTableCmd *n = makeNode(AlterTableCmd);
32605 :
32606 : n->subtype = AT_DropExpression;
32607 : n->name = (yyvsp[-2].str);
32608 : (yyval.node) = (Node *) n;
32609 : }
32610 : #line 32611 "gram.c"
32611 62 : break;
32612 :
32613 12 : case 311: /* alter_table_cmd: ALTER opt_column ColId DROP EXPRESSION IF_P EXISTS */
32614 : #line 2475 "gram.y"
32615 : {
32616 : AlterTableCmd *n = makeNode(AlterTableCmd);
32617 :
32618 : n->subtype = AT_DropExpression;
32619 : n->name = (yyvsp[-4].str);
32620 : n->missing_ok = true;
32621 : (yyval.node) = (Node *) n;
32622 : }
32623 : #line 32624 "gram.c"
32624 12 : break;
32625 :
32626 62 : case 312: /* alter_table_cmd: ALTER opt_column ColId SET STATISTICS set_statistics_value */
32627 : #line 2485 "gram.y"
32628 : {
32629 : AlterTableCmd *n = makeNode(AlterTableCmd);
32630 :
32631 : n->subtype = AT_SetStatistics;
32632 : n->name = (yyvsp[-3].str);
32633 : n->def = (yyvsp[0].node);
32634 : (yyval.node) = (Node *) n;
32635 : }
32636 : #line 32637 "gram.c"
32637 62 : break;
32638 :
32639 70 : case 313: /* alter_table_cmd: ALTER opt_column Iconst SET STATISTICS set_statistics_value */
32640 : #line 2495 "gram.y"
32641 : {
32642 : AlterTableCmd *n = makeNode(AlterTableCmd);
32643 :
32644 : if ((yyvsp[-3].ival) <= 0 || (yyvsp[-3].ival) > PG_INT16_MAX)
32645 : ereport(ERROR,
32646 : (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
32647 : errmsg("column number must be in range from 1 to %d", PG_INT16_MAX),
32648 : parser_errposition((yylsp[-3]))));
32649 :
32650 : n->subtype = AT_SetStatistics;
32651 : n->num = (int16) (yyvsp[-3].ival);
32652 : n->def = (yyvsp[0].node);
32653 : (yyval.node) = (Node *) n;
32654 : }
32655 : #line 32656 "gram.c"
32656 64 : break;
32657 :
32658 38 : case 314: /* alter_table_cmd: ALTER opt_column ColId SET reloptions */
32659 : #line 2511 "gram.y"
32660 : {
32661 : AlterTableCmd *n = makeNode(AlterTableCmd);
32662 :
32663 : n->subtype = AT_SetOptions;
32664 : n->name = (yyvsp[-2].str);
32665 : n->def = (Node *) (yyvsp[0].list);
32666 : (yyval.node) = (Node *) n;
32667 : }
32668 : #line 32669 "gram.c"
32669 38 : break;
32670 :
32671 6 : case 315: /* alter_table_cmd: ALTER opt_column ColId RESET reloptions */
32672 : #line 2521 "gram.y"
32673 : {
32674 : AlterTableCmd *n = makeNode(AlterTableCmd);
32675 :
32676 : n->subtype = AT_ResetOptions;
32677 : n->name = (yyvsp[-2].str);
32678 : n->def = (Node *) (yyvsp[0].list);
32679 : (yyval.node) = (Node *) n;
32680 : }
32681 : #line 32682 "gram.c"
32682 6 : break;
32683 :
32684 224 : case 316: /* alter_table_cmd: ALTER opt_column ColId SET column_storage */
32685 : #line 2531 "gram.y"
32686 : {
32687 : AlterTableCmd *n = makeNode(AlterTableCmd);
32688 :
32689 : n->subtype = AT_SetStorage;
32690 : n->name = (yyvsp[-2].str);
32691 : n->def = (Node *) makeString((yyvsp[0].str));
32692 : (yyval.node) = (Node *) n;
32693 : }
32694 : #line 32695 "gram.c"
32695 224 : break;
32696 :
32697 90 : case 317: /* alter_table_cmd: ALTER opt_column ColId SET column_compression */
32698 : #line 2541 "gram.y"
32699 : {
32700 : AlterTableCmd *n = makeNode(AlterTableCmd);
32701 :
32702 : n->subtype = AT_SetCompression;
32703 : n->name = (yyvsp[-2].str);
32704 : n->def = (Node *) makeString((yyvsp[0].str));
32705 : (yyval.node) = (Node *) n;
32706 : }
32707 : #line 32708 "gram.c"
32708 90 : break;
32709 :
32710 210 : case 318: /* alter_table_cmd: ALTER opt_column ColId ADD_P GENERATED generated_when AS IDENTITY_P OptParenthesizedSeqOptList */
32711 : #line 2551 "gram.y"
32712 : {
32713 : AlterTableCmd *n = makeNode(AlterTableCmd);
32714 : Constraint *c = makeNode(Constraint);
32715 :
32716 : c->contype = CONSTR_IDENTITY;
32717 : c->generated_when = (yyvsp[-3].ival);
32718 : c->options = (yyvsp[0].list);
32719 : c->location = (yylsp[-4]);
32720 :
32721 : n->subtype = AT_AddIdentity;
32722 : n->name = (yyvsp[-6].str);
32723 : n->def = (Node *) c;
32724 :
32725 : (yyval.node) = (Node *) n;
32726 : }
32727 : #line 32728 "gram.c"
32728 210 : break;
32729 :
32730 62 : case 319: /* alter_table_cmd: ALTER opt_column ColId alter_identity_column_option_list */
32731 : #line 2568 "gram.y"
32732 : {
32733 : AlterTableCmd *n = makeNode(AlterTableCmd);
32734 :
32735 : n->subtype = AT_SetIdentity;
32736 : n->name = (yyvsp[-1].str);
32737 : n->def = (Node *) (yyvsp[0].list);
32738 : (yyval.node) = (Node *) n;
32739 : }
32740 : #line 32741 "gram.c"
32741 62 : break;
32742 :
32743 50 : case 320: /* alter_table_cmd: ALTER opt_column ColId DROP IDENTITY_P */
32744 : #line 2578 "gram.y"
32745 : {
32746 : AlterTableCmd *n = makeNode(AlterTableCmd);
32747 :
32748 : n->subtype = AT_DropIdentity;
32749 : n->name = (yyvsp[-2].str);
32750 : n->missing_ok = false;
32751 : (yyval.node) = (Node *) n;
32752 : }
32753 : #line 32754 "gram.c"
32754 50 : break;
32755 :
32756 6 : case 321: /* alter_table_cmd: ALTER opt_column ColId DROP IDENTITY_P IF_P EXISTS */
32757 : #line 2588 "gram.y"
32758 : {
32759 : AlterTableCmd *n = makeNode(AlterTableCmd);
32760 :
32761 : n->subtype = AT_DropIdentity;
32762 : n->name = (yyvsp[-4].str);
32763 : n->missing_ok = true;
32764 : (yyval.node) = (Node *) n;
32765 : }
32766 : #line 32767 "gram.c"
32767 6 : break;
32768 :
32769 18 : case 322: /* alter_table_cmd: DROP opt_column IF_P EXISTS ColId opt_drop_behavior */
32770 : #line 2598 "gram.y"
32771 : {
32772 : AlterTableCmd *n = makeNode(AlterTableCmd);
32773 :
32774 : n->subtype = AT_DropColumn;
32775 : n->name = (yyvsp[-1].str);
32776 : n->behavior = (yyvsp[0].dbehavior);
32777 : n->missing_ok = true;
32778 : (yyval.node) = (Node *) n;
32779 : }
32780 : #line 32781 "gram.c"
32781 18 : break;
32782 :
32783 1574 : case 323: /* alter_table_cmd: DROP opt_column ColId opt_drop_behavior */
32784 : #line 2609 "gram.y"
32785 : {
32786 : AlterTableCmd *n = makeNode(AlterTableCmd);
32787 :
32788 : n->subtype = AT_DropColumn;
32789 : n->name = (yyvsp[-1].str);
32790 : n->behavior = (yyvsp[0].dbehavior);
32791 : n->missing_ok = false;
32792 : (yyval.node) = (Node *) n;
32793 : }
32794 : #line 32795 "gram.c"
32795 1574 : break;
32796 :
32797 994 : case 324: /* alter_table_cmd: ALTER opt_column ColId opt_set_data TYPE_P Typename opt_collate_clause alter_using */
32798 : #line 2623 "gram.y"
32799 : {
32800 : AlterTableCmd *n = makeNode(AlterTableCmd);
32801 : ColumnDef *def = makeNode(ColumnDef);
32802 :
32803 : n->subtype = AT_AlterColumnType;
32804 : n->name = (yyvsp[-5].str);
32805 : n->def = (Node *) def;
32806 : /* We only use these fields of the ColumnDef node */
32807 : def->typeName = (yyvsp[-2].typnam);
32808 : def->collClause = (CollateClause *) (yyvsp[-1].node);
32809 : def->raw_default = (yyvsp[0].node);
32810 : def->location = (yylsp[-5]);
32811 : (yyval.node) = (Node *) n;
32812 : }
32813 : #line 32814 "gram.c"
32814 994 : break;
32815 :
32816 50 : case 325: /* alter_table_cmd: ALTER opt_column ColId alter_generic_options */
32817 : #line 2639 "gram.y"
32818 : {
32819 : AlterTableCmd *n = makeNode(AlterTableCmd);
32820 :
32821 : n->subtype = AT_AlterColumnGenericOptions;
32822 : n->name = (yyvsp[-1].str);
32823 : n->def = (Node *) (yyvsp[0].list);
32824 : (yyval.node) = (Node *) n;
32825 : }
32826 : #line 32827 "gram.c"
32827 50 : break;
32828 :
32829 14616 : case 326: /* alter_table_cmd: ADD_P TableConstraint */
32830 : #line 2649 "gram.y"
32831 : {
32832 : AlterTableCmd *n = makeNode(AlterTableCmd);
32833 :
32834 : n->subtype = AT_AddConstraint;
32835 : n->def = (yyvsp[0].node);
32836 : (yyval.node) = (Node *) n;
32837 : }
32838 : #line 32839 "gram.c"
32839 14616 : break;
32840 :
32841 228 : case 327: /* alter_table_cmd: ALTER CONSTRAINT name ConstraintAttributeSpec */
32842 : #line 2658 "gram.y"
32843 : {
32844 : AlterTableCmd *n = makeNode(AlterTableCmd);
32845 : ATAlterConstraint *c = makeNode(ATAlterConstraint);
32846 :
32847 : n->subtype = AT_AlterConstraint;
32848 : n->def = (Node *) c;
32849 : c->conname = (yyvsp[-1].str);
32850 : if ((yyvsp[0].ival) & (CAS_NOT_ENFORCED | CAS_ENFORCED))
32851 : c->alterEnforceability = true;
32852 : if ((yyvsp[0].ival) & (CAS_DEFERRABLE | CAS_NOT_DEFERRABLE |
32853 : CAS_INITIALLY_DEFERRED | CAS_INITIALLY_IMMEDIATE))
32854 : c->alterDeferrability = true;
32855 : if ((yyvsp[0].ival) & CAS_NO_INHERIT)
32856 : c->alterInheritability = true;
32857 : processCASbits((yyvsp[0].ival), (yylsp[0]), "FOREIGN KEY",
32858 : &c->deferrable,
32859 : &c->initdeferred,
32860 : &c->is_enforced,
32861 : NULL,
32862 : &c->noinherit,
32863 : yyscanner);
32864 : (yyval.node) = (Node *) n;
32865 : }
32866 : #line 32867 "gram.c"
32867 222 : break;
32868 :
32869 66 : case 328: /* alter_table_cmd: ALTER CONSTRAINT name INHERIT */
32870 : #line 2683 "gram.y"
32871 : {
32872 : AlterTableCmd *n = makeNode(AlterTableCmd);
32873 : ATAlterConstraint *c = makeNode(ATAlterConstraint);
32874 :
32875 : n->subtype = AT_AlterConstraint;
32876 : n->def = (Node *) c;
32877 : c->conname = (yyvsp[-1].str);
32878 : c->alterInheritability = true;
32879 : c->noinherit = false;
32880 :
32881 : (yyval.node) = (Node *) n;
32882 : }
32883 : #line 32884 "gram.c"
32884 66 : break;
32885 :
32886 448 : case 329: /* alter_table_cmd: VALIDATE CONSTRAINT name */
32887 : #line 2697 "gram.y"
32888 : {
32889 : AlterTableCmd *n = makeNode(AlterTableCmd);
32890 :
32891 : n->subtype = AT_ValidateConstraint;
32892 : n->name = (yyvsp[0].str);
32893 : (yyval.node) = (Node *) n;
32894 : }
32895 : #line 32896 "gram.c"
32896 448 : break;
32897 :
32898 18 : case 330: /* alter_table_cmd: DROP CONSTRAINT IF_P EXISTS name opt_drop_behavior */
32899 : #line 2706 "gram.y"
32900 : {
32901 : AlterTableCmd *n = makeNode(AlterTableCmd);
32902 :
32903 : n->subtype = AT_DropConstraint;
32904 : n->name = (yyvsp[-1].str);
32905 : n->behavior = (yyvsp[0].dbehavior);
32906 : n->missing_ok = true;
32907 : (yyval.node) = (Node *) n;
32908 : }
32909 : #line 32910 "gram.c"
32910 18 : break;
32911 :
32912 798 : case 331: /* alter_table_cmd: DROP CONSTRAINT name opt_drop_behavior */
32913 : #line 2717 "gram.y"
32914 : {
32915 : AlterTableCmd *n = makeNode(AlterTableCmd);
32916 :
32917 : n->subtype = AT_DropConstraint;
32918 : n->name = (yyvsp[-1].str);
32919 : n->behavior = (yyvsp[0].dbehavior);
32920 : n->missing_ok = false;
32921 : (yyval.node) = (Node *) n;
32922 : }
32923 : #line 32924 "gram.c"
32924 798 : break;
32925 :
32926 6 : case 332: /* alter_table_cmd: SET WITHOUT OIDS */
32927 : #line 2728 "gram.y"
32928 : {
32929 : AlterTableCmd *n = makeNode(AlterTableCmd);
32930 :
32931 : n->subtype = AT_DropOids;
32932 : (yyval.node) = (Node *) n;
32933 : }
32934 : #line 32935 "gram.c"
32935 6 : break;
32936 :
32937 46 : case 333: /* alter_table_cmd: CLUSTER ON name */
32938 : #line 2736 "gram.y"
32939 : {
32940 : AlterTableCmd *n = makeNode(AlterTableCmd);
32941 :
32942 : n->subtype = AT_ClusterOn;
32943 : n->name = (yyvsp[0].str);
32944 : (yyval.node) = (Node *) n;
32945 : }
32946 : #line 32947 "gram.c"
32947 46 : break;
32948 :
32949 18 : case 334: /* alter_table_cmd: SET WITHOUT CLUSTER */
32950 : #line 2745 "gram.y"
32951 : {
32952 : AlterTableCmd *n = makeNode(AlterTableCmd);
32953 :
32954 : n->subtype = AT_DropCluster;
32955 : n->name = NULL;
32956 : (yyval.node) = (Node *) n;
32957 : }
32958 : #line 32959 "gram.c"
32959 18 : break;
32960 :
32961 50 : case 335: /* alter_table_cmd: SET LOGGED */
32962 : #line 2754 "gram.y"
32963 : {
32964 : AlterTableCmd *n = makeNode(AlterTableCmd);
32965 :
32966 : n->subtype = AT_SetLogged;
32967 : (yyval.node) = (Node *) n;
32968 : }
32969 : #line 32970 "gram.c"
32970 50 : break;
32971 :
32972 62 : case 336: /* alter_table_cmd: SET UNLOGGED */
32973 : #line 2762 "gram.y"
32974 : {
32975 : AlterTableCmd *n = makeNode(AlterTableCmd);
32976 :
32977 : n->subtype = AT_SetUnLogged;
32978 : (yyval.node) = (Node *) n;
32979 : }
32980 : #line 32981 "gram.c"
32981 62 : break;
32982 :
32983 122 : case 337: /* alter_table_cmd: ENABLE_P TRIGGER name */
32984 : #line 2770 "gram.y"
32985 : {
32986 : AlterTableCmd *n = makeNode(AlterTableCmd);
32987 :
32988 : n->subtype = AT_EnableTrig;
32989 : n->name = (yyvsp[0].str);
32990 : (yyval.node) = (Node *) n;
32991 : }
32992 : #line 32993 "gram.c"
32993 122 : break;
32994 :
32995 44 : case 338: /* alter_table_cmd: ENABLE_P ALWAYS TRIGGER name */
32996 : #line 2779 "gram.y"
32997 : {
32998 : AlterTableCmd *n = makeNode(AlterTableCmd);
32999 :
33000 : n->subtype = AT_EnableAlwaysTrig;
33001 : n->name = (yyvsp[0].str);
33002 : (yyval.node) = (Node *) n;
33003 : }
33004 : #line 33005 "gram.c"
33005 44 : break;
33006 :
33007 16 : case 339: /* alter_table_cmd: ENABLE_P REPLICA TRIGGER name */
33008 : #line 2788 "gram.y"
33009 : {
33010 : AlterTableCmd *n = makeNode(AlterTableCmd);
33011 :
33012 : n->subtype = AT_EnableReplicaTrig;
33013 : n->name = (yyvsp[0].str);
33014 : (yyval.node) = (Node *) n;
33015 : }
33016 : #line 33017 "gram.c"
33017 16 : break;
33018 :
33019 0 : case 340: /* alter_table_cmd: ENABLE_P TRIGGER ALL */
33020 : #line 2797 "gram.y"
33021 : {
33022 : AlterTableCmd *n = makeNode(AlterTableCmd);
33023 :
33024 : n->subtype = AT_EnableTrigAll;
33025 : (yyval.node) = (Node *) n;
33026 : }
33027 : #line 33028 "gram.c"
33028 0 : break;
33029 :
33030 0 : case 341: /* alter_table_cmd: ENABLE_P TRIGGER USER */
33031 : #line 2805 "gram.y"
33032 : {
33033 : AlterTableCmd *n = makeNode(AlterTableCmd);
33034 :
33035 : n->subtype = AT_EnableTrigUser;
33036 : (yyval.node) = (Node *) n;
33037 : }
33038 : #line 33039 "gram.c"
33039 0 : break;
33040 :
33041 140 : case 342: /* alter_table_cmd: DISABLE_P TRIGGER name */
33042 : #line 2813 "gram.y"
33043 : {
33044 : AlterTableCmd *n = makeNode(AlterTableCmd);
33045 :
33046 : n->subtype = AT_DisableTrig;
33047 : n->name = (yyvsp[0].str);
33048 : (yyval.node) = (Node *) n;
33049 : }
33050 : #line 33051 "gram.c"
33051 140 : break;
33052 :
33053 12 : case 343: /* alter_table_cmd: DISABLE_P TRIGGER ALL */
33054 : #line 2822 "gram.y"
33055 : {
33056 : AlterTableCmd *n = makeNode(AlterTableCmd);
33057 :
33058 : n->subtype = AT_DisableTrigAll;
33059 : (yyval.node) = (Node *) n;
33060 : }
33061 : #line 33062 "gram.c"
33062 12 : break;
33063 :
33064 12 : case 344: /* alter_table_cmd: DISABLE_P TRIGGER USER */
33065 : #line 2830 "gram.y"
33066 : {
33067 : AlterTableCmd *n = makeNode(AlterTableCmd);
33068 :
33069 : n->subtype = AT_DisableTrigUser;
33070 : (yyval.node) = (Node *) n;
33071 : }
33072 : #line 33073 "gram.c"
33073 12 : break;
33074 :
33075 8 : case 345: /* alter_table_cmd: ENABLE_P RULE name */
33076 : #line 2838 "gram.y"
33077 : {
33078 : AlterTableCmd *n = makeNode(AlterTableCmd);
33079 :
33080 : n->subtype = AT_EnableRule;
33081 : n->name = (yyvsp[0].str);
33082 : (yyval.node) = (Node *) n;
33083 : }
33084 : #line 33085 "gram.c"
33085 8 : break;
33086 :
33087 0 : case 346: /* alter_table_cmd: ENABLE_P ALWAYS RULE name */
33088 : #line 2847 "gram.y"
33089 : {
33090 : AlterTableCmd *n = makeNode(AlterTableCmd);
33091 :
33092 : n->subtype = AT_EnableAlwaysRule;
33093 : n->name = (yyvsp[0].str);
33094 : (yyval.node) = (Node *) n;
33095 : }
33096 : #line 33097 "gram.c"
33097 0 : break;
33098 :
33099 6 : case 347: /* alter_table_cmd: ENABLE_P REPLICA RULE name */
33100 : #line 2856 "gram.y"
33101 : {
33102 : AlterTableCmd *n = makeNode(AlterTableCmd);
33103 :
33104 : n->subtype = AT_EnableReplicaRule;
33105 : n->name = (yyvsp[0].str);
33106 : (yyval.node) = (Node *) n;
33107 : }
33108 : #line 33109 "gram.c"
33109 6 : break;
33110 :
33111 38 : case 348: /* alter_table_cmd: DISABLE_P RULE name */
33112 : #line 2865 "gram.y"
33113 : {
33114 : AlterTableCmd *n = makeNode(AlterTableCmd);
33115 :
33116 : n->subtype = AT_DisableRule;
33117 : n->name = (yyvsp[0].str);
33118 : (yyval.node) = (Node *) n;
33119 : }
33120 : #line 33121 "gram.c"
33121 38 : break;
33122 :
33123 436 : case 349: /* alter_table_cmd: INHERIT qualified_name */
33124 : #line 2874 "gram.y"
33125 : {
33126 : AlterTableCmd *n = makeNode(AlterTableCmd);
33127 :
33128 : n->subtype = AT_AddInherit;
33129 : n->def = (Node *) (yyvsp[0].range);
33130 : (yyval.node) = (Node *) n;
33131 : }
33132 : #line 33133 "gram.c"
33133 436 : break;
33134 :
33135 86 : case 350: /* alter_table_cmd: NO INHERIT qualified_name */
33136 : #line 2883 "gram.y"
33137 : {
33138 : AlterTableCmd *n = makeNode(AlterTableCmd);
33139 :
33140 : n->subtype = AT_DropInherit;
33141 : n->def = (Node *) (yyvsp[0].range);
33142 : (yyval.node) = (Node *) n;
33143 : }
33144 : #line 33145 "gram.c"
33145 86 : break;
33146 :
33147 66 : case 351: /* alter_table_cmd: OF any_name */
33148 : #line 2892 "gram.y"
33149 : {
33150 : AlterTableCmd *n = makeNode(AlterTableCmd);
33151 : TypeName *def = makeTypeNameFromNameList((yyvsp[0].list));
33152 :
33153 : def->location = (yylsp[0]);
33154 : n->subtype = AT_AddOf;
33155 : n->def = (Node *) def;
33156 : (yyval.node) = (Node *) n;
33157 : }
33158 : #line 33159 "gram.c"
33159 66 : break;
33160 :
33161 6 : case 352: /* alter_table_cmd: NOT OF */
33162 : #line 2903 "gram.y"
33163 : {
33164 : AlterTableCmd *n = makeNode(AlterTableCmd);
33165 :
33166 : n->subtype = AT_DropOf;
33167 : (yyval.node) = (Node *) n;
33168 : }
33169 : #line 33170 "gram.c"
33170 6 : break;
33171 :
33172 3574 : case 353: /* alter_table_cmd: OWNER TO RoleSpec */
33173 : #line 2911 "gram.y"
33174 : {
33175 : AlterTableCmd *n = makeNode(AlterTableCmd);
33176 :
33177 : n->subtype = AT_ChangeOwner;
33178 : n->newowner = (yyvsp[0].rolespec);
33179 : (yyval.node) = (Node *) n;
33180 : }
33181 : #line 33182 "gram.c"
33182 3574 : break;
33183 :
33184 128 : case 354: /* alter_table_cmd: SET ACCESS METHOD set_access_method_name */
33185 : #line 2920 "gram.y"
33186 : {
33187 : AlterTableCmd *n = makeNode(AlterTableCmd);
33188 :
33189 : n->subtype = AT_SetAccessMethod;
33190 : n->name = (yyvsp[0].str);
33191 : (yyval.node) = (Node *) n;
33192 : }
33193 : #line 33194 "gram.c"
33194 128 : break;
33195 :
33196 104 : case 355: /* alter_table_cmd: SET TABLESPACE name */
33197 : #line 2929 "gram.y"
33198 : {
33199 : AlterTableCmd *n = makeNode(AlterTableCmd);
33200 :
33201 : n->subtype = AT_SetTableSpace;
33202 : n->name = (yyvsp[0].str);
33203 : (yyval.node) = (Node *) n;
33204 : }
33205 : #line 33206 "gram.c"
33206 104 : break;
33207 :
33208 594 : case 356: /* alter_table_cmd: SET reloptions */
33209 : #line 2938 "gram.y"
33210 : {
33211 : AlterTableCmd *n = makeNode(AlterTableCmd);
33212 :
33213 : n->subtype = AT_SetRelOptions;
33214 : n->def = (Node *) (yyvsp[0].list);
33215 : (yyval.node) = (Node *) n;
33216 : }
33217 : #line 33218 "gram.c"
33218 594 : break;
33219 :
33220 170 : case 357: /* alter_table_cmd: RESET reloptions */
33221 : #line 2947 "gram.y"
33222 : {
33223 : AlterTableCmd *n = makeNode(AlterTableCmd);
33224 :
33225 : n->subtype = AT_ResetRelOptions;
33226 : n->def = (Node *) (yyvsp[0].list);
33227 : (yyval.node) = (Node *) n;
33228 : }
33229 : #line 33230 "gram.c"
33230 170 : break;
33231 :
33232 490 : case 358: /* alter_table_cmd: REPLICA IDENTITY_P replica_identity */
33233 : #line 2956 "gram.y"
33234 : {
33235 : AlterTableCmd *n = makeNode(AlterTableCmd);
33236 :
33237 : n->subtype = AT_ReplicaIdentity;
33238 : n->def = (yyvsp[0].node);
33239 : (yyval.node) = (Node *) n;
33240 : }
33241 : #line 33242 "gram.c"
33242 490 : break;
33243 :
33244 302 : case 359: /* alter_table_cmd: ENABLE_P ROW LEVEL SECURITY */
33245 : #line 2965 "gram.y"
33246 : {
33247 : AlterTableCmd *n = makeNode(AlterTableCmd);
33248 :
33249 : n->subtype = AT_EnableRowSecurity;
33250 : (yyval.node) = (Node *) n;
33251 : }
33252 : #line 33253 "gram.c"
33253 302 : break;
33254 :
33255 10 : case 360: /* alter_table_cmd: DISABLE_P ROW LEVEL SECURITY */
33256 : #line 2973 "gram.y"
33257 : {
33258 : AlterTableCmd *n = makeNode(AlterTableCmd);
33259 :
33260 : n->subtype = AT_DisableRowSecurity;
33261 : (yyval.node) = (Node *) n;
33262 : }
33263 : #line 33264 "gram.c"
33264 10 : break;
33265 :
33266 96 : case 361: /* alter_table_cmd: FORCE ROW LEVEL SECURITY */
33267 : #line 2981 "gram.y"
33268 : {
33269 : AlterTableCmd *n = makeNode(AlterTableCmd);
33270 :
33271 : n->subtype = AT_ForceRowSecurity;
33272 : (yyval.node) = (Node *) n;
33273 : }
33274 : #line 33275 "gram.c"
33275 96 : break;
33276 :
33277 32 : case 362: /* alter_table_cmd: NO FORCE ROW LEVEL SECURITY */
33278 : #line 2989 "gram.y"
33279 : {
33280 : AlterTableCmd *n = makeNode(AlterTableCmd);
33281 :
33282 : n->subtype = AT_NoForceRowSecurity;
33283 : (yyval.node) = (Node *) n;
33284 : }
33285 : #line 33286 "gram.c"
33286 32 : break;
33287 :
33288 64 : case 363: /* alter_table_cmd: alter_generic_options */
33289 : #line 2996 "gram.y"
33290 : {
33291 : AlterTableCmd *n = makeNode(AlterTableCmd);
33292 :
33293 : n->subtype = AT_GenericOptions;
33294 : n->def = (Node *) (yyvsp[0].list);
33295 : (yyval.node) = (Node *) n;
33296 : }
33297 : #line 33298 "gram.c"
33298 64 : break;
33299 :
33300 406 : case 364: /* alter_column_default: SET DEFAULT a_expr */
33301 : #line 3006 "gram.y"
33302 : { (yyval.node) = (yyvsp[0].node); }
33303 : #line 33304 "gram.c"
33304 406 : break;
33305 :
33306 186 : case 365: /* alter_column_default: DROP DEFAULT */
33307 : #line 3007 "gram.y"
33308 : { (yyval.node) = NULL; }
33309 : #line 33310 "gram.c"
33310 186 : break;
33311 :
33312 18 : case 366: /* opt_collate_clause: COLLATE any_name */
33313 : #line 3012 "gram.y"
33314 : {
33315 : CollateClause *n = makeNode(CollateClause);
33316 :
33317 : n->arg = NULL;
33318 : n->collname = (yyvsp[0].list);
33319 : n->location = (yylsp[-1]);
33320 : (yyval.node) = (Node *) n;
33321 : }
33322 : #line 33323 "gram.c"
33323 18 : break;
33324 :
33325 4772 : case 367: /* opt_collate_clause: %empty */
33326 : #line 3020 "gram.y"
33327 : { (yyval.node) = NULL; }
33328 : #line 33329 "gram.c"
33329 4772 : break;
33330 :
33331 174 : case 368: /* alter_using: USING a_expr */
33332 : #line 3024 "gram.y"
33333 : { (yyval.node) = (yyvsp[0].node); }
33334 : #line 33335 "gram.c"
33335 174 : break;
33336 :
33337 820 : case 369: /* alter_using: %empty */
33338 : #line 3025 "gram.y"
33339 : { (yyval.node) = NULL; }
33340 : #line 33341 "gram.c"
33341 820 : break;
33342 :
33343 48 : case 370: /* replica_identity: NOTHING */
33344 : #line 3030 "gram.y"
33345 : {
33346 : ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt);
33347 :
33348 : n->identity_type = REPLICA_IDENTITY_NOTHING;
33349 : n->name = NULL;
33350 : (yyval.node) = (Node *) n;
33351 : }
33352 : #line 33353 "gram.c"
33353 48 : break;
33354 :
33355 166 : case 371: /* replica_identity: FULL */
33356 : #line 3038 "gram.y"
33357 : {
33358 : ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt);
33359 :
33360 : n->identity_type = REPLICA_IDENTITY_FULL;
33361 : n->name = NULL;
33362 : (yyval.node) = (Node *) n;
33363 : }
33364 : #line 33365 "gram.c"
33365 166 : break;
33366 :
33367 6 : case 372: /* replica_identity: DEFAULT */
33368 : #line 3046 "gram.y"
33369 : {
33370 : ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt);
33371 :
33372 : n->identity_type = REPLICA_IDENTITY_DEFAULT;
33373 : n->name = NULL;
33374 : (yyval.node) = (Node *) n;
33375 : }
33376 : #line 33377 "gram.c"
33377 6 : break;
33378 :
33379 270 : case 373: /* replica_identity: USING INDEX name */
33380 : #line 3054 "gram.y"
33381 : {
33382 : ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt);
33383 :
33384 : n->identity_type = REPLICA_IDENTITY_INDEX;
33385 : n->name = (yyvsp[0].str);
33386 : (yyval.node) = (Node *) n;
33387 : }
33388 : #line 33389 "gram.c"
33389 270 : break;
33390 :
33391 2774 : case 374: /* reloptions: '(' reloption_list ')' */
33392 : #line 3064 "gram.y"
33393 : { (yyval.list) = (yyvsp[-1].list); }
33394 : #line 33395 "gram.c"
33395 2774 : break;
33396 :
33397 1010 : case 375: /* opt_reloptions: WITH reloptions */
33398 : #line 3067 "gram.y"
33399 : { (yyval.list) = (yyvsp[0].list); }
33400 : #line 33401 "gram.c"
33401 1010 : break;
33402 :
33403 23250 : case 376: /* opt_reloptions: %empty */
33404 : #line 3068 "gram.y"
33405 : { (yyval.list) = NIL; }
33406 : #line 33407 "gram.c"
33407 23250 : break;
33408 :
33409 2774 : case 377: /* reloption_list: reloption_elem */
33410 : #line 3072 "gram.y"
33411 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
33412 : #line 33413 "gram.c"
33413 2774 : break;
33414 :
33415 244 : case 378: /* reloption_list: reloption_list ',' reloption_elem */
33416 : #line 3073 "gram.y"
33417 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); }
33418 : #line 33419 "gram.c"
33419 244 : break;
33420 :
33421 2370 : case 379: /* reloption_elem: ColLabel '=' def_arg */
33422 : #line 3079 "gram.y"
33423 : {
33424 : (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2]));
33425 : }
33426 : #line 33427 "gram.c"
33427 2370 : break;
33428 :
33429 578 : case 380: /* reloption_elem: ColLabel */
33430 : #line 3083 "gram.y"
33431 : {
33432 : (yyval.defelt) = makeDefElem((yyvsp[0].str), NULL, (yylsp[0]));
33433 : }
33434 : #line 33435 "gram.c"
33435 578 : break;
33436 :
33437 64 : case 381: /* reloption_elem: ColLabel '.' ColLabel '=' def_arg */
33438 : #line 3087 "gram.y"
33439 : {
33440 : (yyval.defelt) = makeDefElemExtended((yyvsp[-4].str), (yyvsp[-2].str), (Node *) (yyvsp[0].node),
33441 : DEFELEM_UNSPEC, (yylsp[-4]));
33442 : }
33443 : #line 33444 "gram.c"
33444 64 : break;
33445 :
33446 6 : case 382: /* reloption_elem: ColLabel '.' ColLabel */
33447 : #line 3092 "gram.y"
33448 : {
33449 : (yyval.defelt) = makeDefElemExtended((yyvsp[-2].str), (yyvsp[0].str), NULL, DEFELEM_UNSPEC, (yylsp[-2]));
33450 : }
33451 : #line 33452 "gram.c"
33452 6 : break;
33453 :
33454 62 : case 383: /* alter_identity_column_option_list: alter_identity_column_option */
33455 : #line 3099 "gram.y"
33456 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
33457 : #line 33458 "gram.c"
33458 62 : break;
33459 :
33460 60 : case 384: /* alter_identity_column_option_list: alter_identity_column_option_list alter_identity_column_option */
33461 : #line 3101 "gram.y"
33462 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
33463 : #line 33464 "gram.c"
33464 60 : break;
33465 :
33466 24 : case 385: /* alter_identity_column_option: RESTART */
33467 : #line 3106 "gram.y"
33468 : {
33469 : (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[0]));
33470 : }
33471 : #line 33472 "gram.c"
33472 24 : break;
33473 :
33474 0 : case 386: /* alter_identity_column_option: RESTART opt_with NumericOnly */
33475 : #line 3110 "gram.y"
33476 : {
33477 : (yyval.defelt) = makeDefElem("restart", (Node *) (yyvsp[0].node), (yylsp[-2]));
33478 : }
33479 : #line 33480 "gram.c"
33480 0 : break;
33481 :
33482 54 : case 387: /* alter_identity_column_option: SET SeqOptElem */
33483 : #line 3114 "gram.y"
33484 : {
33485 : if (strcmp((yyvsp[0].defelt)->defname, "as") == 0 ||
33486 : strcmp((yyvsp[0].defelt)->defname, "restart") == 0 ||
33487 : strcmp((yyvsp[0].defelt)->defname, "owned_by") == 0)
33488 : ereport(ERROR,
33489 : (errcode(ERRCODE_SYNTAX_ERROR),
33490 : errmsg("sequence option \"%s\" not supported here", (yyvsp[0].defelt)->defname),
33491 : parser_errposition((yylsp[0]))));
33492 : (yyval.defelt) = (yyvsp[0].defelt);
33493 : }
33494 : #line 33495 "gram.c"
33495 54 : break;
33496 :
33497 44 : case 388: /* alter_identity_column_option: SET GENERATED generated_when */
33498 : #line 3125 "gram.y"
33499 : {
33500 : (yyval.defelt) = makeDefElem("generated", (Node *) makeInteger((yyvsp[0].ival)), (yylsp[-2]));
33501 : }
33502 : #line 33503 "gram.c"
33503 44 : break;
33504 :
33505 158 : case 389: /* set_statistics_value: SignedIconst */
33506 : #line 3131 "gram.y"
33507 : { (yyval.node) = (Node *) makeInteger((yyvsp[0].ival)); }
33508 : #line 33509 "gram.c"
33509 158 : break;
33510 :
33511 0 : case 390: /* set_statistics_value: DEFAULT */
33512 : #line 3132 "gram.y"
33513 : { (yyval.node) = NULL; }
33514 : #line 33515 "gram.c"
33515 0 : break;
33516 :
33517 92 : case 391: /* set_access_method_name: ColId */
33518 : #line 3136 "gram.y"
33519 : { (yyval.str) = (yyvsp[0].str); }
33520 : #line 33521 "gram.c"
33521 92 : break;
33522 :
33523 36 : case 392: /* set_access_method_name: DEFAULT */
33524 : #line 3137 "gram.y"
33525 : { (yyval.str) = NULL; }
33526 : #line 33527 "gram.c"
33527 36 : break;
33528 :
33529 738 : case 393: /* PartitionBoundSpec: FOR VALUES WITH '(' hash_partbound ')' */
33530 : #line 3143 "gram.y"
33531 : {
33532 : ListCell *lc;
33533 : PartitionBoundSpec *n = makeNode(PartitionBoundSpec);
33534 :
33535 : n->strategy = PARTITION_STRATEGY_HASH;
33536 : n->modulus = n->remainder = -1;
33537 :
33538 : foreach (lc, (yyvsp[-1].list))
33539 : {
33540 : DefElem *opt = lfirst_node(DefElem, lc);
33541 :
33542 : if (strcmp(opt->defname, "modulus") == 0)
33543 : {
33544 : if (n->modulus != -1)
33545 : ereport(ERROR,
33546 : (errcode(ERRCODE_DUPLICATE_OBJECT),
33547 : errmsg("modulus for hash partition provided more than once"),
33548 : parser_errposition(opt->location)));
33549 : n->modulus = defGetInt32(opt);
33550 : }
33551 : else if (strcmp(opt->defname, "remainder") == 0)
33552 : {
33553 : if (n->remainder != -1)
33554 : ereport(ERROR,
33555 : (errcode(ERRCODE_DUPLICATE_OBJECT),
33556 : errmsg("remainder for hash partition provided more than once"),
33557 : parser_errposition(opt->location)));
33558 : n->remainder = defGetInt32(opt);
33559 : }
33560 : else
33561 : ereport(ERROR,
33562 : (errcode(ERRCODE_SYNTAX_ERROR),
33563 : errmsg("unrecognized hash partition bound specification \"%s\"",
33564 : opt->defname),
33565 : parser_errposition(opt->location)));
33566 : }
33567 :
33568 : if (n->modulus == -1)
33569 : ereport(ERROR,
33570 : (errcode(ERRCODE_SYNTAX_ERROR),
33571 : errmsg("modulus for hash partition must be specified"),
33572 : parser_errposition((yylsp[-3]))));
33573 : if (n->remainder == -1)
33574 : ereport(ERROR,
33575 : (errcode(ERRCODE_SYNTAX_ERROR),
33576 : errmsg("remainder for hash partition must be specified"),
33577 : parser_errposition((yylsp[-3]))));
33578 :
33579 : n->location = (yylsp[-3]);
33580 :
33581 : (yyval.partboundspec) = n;
33582 : }
33583 : #line 33584 "gram.c"
33584 738 : break;
33585 :
33586 5068 : case 394: /* PartitionBoundSpec: FOR VALUES IN_P '(' expr_list ')' */
33587 : #line 3198 "gram.y"
33588 : {
33589 : PartitionBoundSpec *n = makeNode(PartitionBoundSpec);
33590 :
33591 : n->strategy = PARTITION_STRATEGY_LIST;
33592 : n->is_default = false;
33593 : n->listdatums = (yyvsp[-1].list);
33594 : n->location = (yylsp[-3]);
33595 :
33596 : (yyval.partboundspec) = n;
33597 : }
33598 : #line 33599 "gram.c"
33599 5068 : break;
33600 :
33601 4350 : case 395: /* PartitionBoundSpec: FOR VALUES FROM '(' expr_list ')' TO '(' expr_list ')' */
33602 : #line 3211 "gram.y"
33603 : {
33604 : PartitionBoundSpec *n = makeNode(PartitionBoundSpec);
33605 :
33606 : n->strategy = PARTITION_STRATEGY_RANGE;
33607 : n->is_default = false;
33608 : n->lowerdatums = (yyvsp[-5].list);
33609 : n->upperdatums = (yyvsp[-1].list);
33610 : n->location = (yylsp[-7]);
33611 :
33612 : (yyval.partboundspec) = n;
33613 : }
33614 : #line 33615 "gram.c"
33615 4350 : break;
33616 :
33617 622 : case 396: /* PartitionBoundSpec: DEFAULT */
33618 : #line 3225 "gram.y"
33619 : {
33620 : PartitionBoundSpec *n = makeNode(PartitionBoundSpec);
33621 :
33622 : n->is_default = true;
33623 : n->location = (yylsp[0]);
33624 :
33625 : (yyval.partboundspec) = n;
33626 : }
33627 : #line 33628 "gram.c"
33628 622 : break;
33629 :
33630 1476 : case 397: /* hash_partbound_elem: NonReservedWord Iconst */
33631 : #line 3237 "gram.y"
33632 : {
33633 : (yyval.defelt) = makeDefElem((yyvsp[-1].str), (Node *) makeInteger((yyvsp[0].ival)), (yylsp[-1]));
33634 : }
33635 : #line 33636 "gram.c"
33636 1476 : break;
33637 :
33638 738 : case 398: /* hash_partbound: hash_partbound_elem */
33639 : #line 3244 "gram.y"
33640 : {
33641 : (yyval.list) = list_make1((yyvsp[0].defelt));
33642 : }
33643 : #line 33644 "gram.c"
33644 738 : break;
33645 :
33646 738 : case 399: /* hash_partbound: hash_partbound ',' hash_partbound_elem */
33647 : #line 3248 "gram.y"
33648 : {
33649 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt));
33650 : }
33651 : #line 33652 "gram.c"
33652 738 : break;
33653 :
33654 208 : case 400: /* AlterCompositeTypeStmt: ALTER TYPE_P any_name alter_type_cmds */
33655 : #line 3262 "gram.y"
33656 : {
33657 : AlterTableStmt *n = makeNode(AlterTableStmt);
33658 :
33659 : /* can't use qualified_name, sigh */
33660 : n->relation = makeRangeVarFromAnyName((yyvsp[-1].list), (yylsp[-1]), yyscanner);
33661 : n->cmds = (yyvsp[0].list);
33662 : n->objtype = OBJECT_TYPE;
33663 : (yyval.node) = (Node *) n;
33664 : }
33665 : #line 33666 "gram.c"
33666 208 : break;
33667 :
33668 208 : case 401: /* alter_type_cmds: alter_type_cmd */
33669 : #line 3274 "gram.y"
33670 : { (yyval.list) = list_make1((yyvsp[0].node)); }
33671 : #line 33672 "gram.c"
33672 208 : break;
33673 :
33674 12 : case 402: /* alter_type_cmds: alter_type_cmds ',' alter_type_cmd */
33675 : #line 3275 "gram.y"
33676 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
33677 : #line 33678 "gram.c"
33678 12 : break;
33679 :
33680 64 : case 403: /* alter_type_cmd: ADD_P ATTRIBUTE TableFuncElement opt_drop_behavior */
33681 : #line 3281 "gram.y"
33682 : {
33683 : AlterTableCmd *n = makeNode(AlterTableCmd);
33684 :
33685 : n->subtype = AT_AddColumn;
33686 : n->def = (yyvsp[-1].node);
33687 : n->behavior = (yyvsp[0].dbehavior);
33688 : (yyval.node) = (Node *) n;
33689 : }
33690 : #line 33691 "gram.c"
33691 64 : break;
33692 :
33693 6 : case 404: /* alter_type_cmd: DROP ATTRIBUTE IF_P EXISTS ColId opt_drop_behavior */
33694 : #line 3291 "gram.y"
33695 : {
33696 : AlterTableCmd *n = makeNode(AlterTableCmd);
33697 :
33698 : n->subtype = AT_DropColumn;
33699 : n->name = (yyvsp[-1].str);
33700 : n->behavior = (yyvsp[0].dbehavior);
33701 : n->missing_ok = true;
33702 : (yyval.node) = (Node *) n;
33703 : }
33704 : #line 33705 "gram.c"
33705 6 : break;
33706 :
33707 76 : case 405: /* alter_type_cmd: DROP ATTRIBUTE ColId opt_drop_behavior */
33708 : #line 3302 "gram.y"
33709 : {
33710 : AlterTableCmd *n = makeNode(AlterTableCmd);
33711 :
33712 : n->subtype = AT_DropColumn;
33713 : n->name = (yyvsp[-1].str);
33714 : n->behavior = (yyvsp[0].dbehavior);
33715 : n->missing_ok = false;
33716 : (yyval.node) = (Node *) n;
33717 : }
33718 : #line 33719 "gram.c"
33719 76 : break;
33720 :
33721 74 : case 406: /* alter_type_cmd: ALTER ATTRIBUTE ColId opt_set_data TYPE_P Typename opt_collate_clause opt_drop_behavior */
33722 : #line 3313 "gram.y"
33723 : {
33724 : AlterTableCmd *n = makeNode(AlterTableCmd);
33725 : ColumnDef *def = makeNode(ColumnDef);
33726 :
33727 : n->subtype = AT_AlterColumnType;
33728 : n->name = (yyvsp[-5].str);
33729 : n->def = (Node *) def;
33730 : n->behavior = (yyvsp[0].dbehavior);
33731 : /* We only use these fields of the ColumnDef node */
33732 : def->typeName = (yyvsp[-2].typnam);
33733 : def->collClause = (CollateClause *) (yyvsp[-1].node);
33734 : def->raw_default = NULL;
33735 : def->location = (yylsp[-5]);
33736 : (yyval.node) = (Node *) n;
33737 : }
33738 : #line 33739 "gram.c"
33739 74 : break;
33740 :
33741 2192 : case 407: /* ClosePortalStmt: CLOSE cursor_name */
33742 : #line 3340 "gram.y"
33743 : {
33744 : ClosePortalStmt *n = makeNode(ClosePortalStmt);
33745 :
33746 : n->portalname = (yyvsp[0].str);
33747 : (yyval.node) = (Node *) n;
33748 : }
33749 : #line 33750 "gram.c"
33750 2192 : break;
33751 :
33752 12 : case 408: /* ClosePortalStmt: CLOSE ALL */
33753 : #line 3347 "gram.y"
33754 : {
33755 : ClosePortalStmt *n = makeNode(ClosePortalStmt);
33756 :
33757 : n->portalname = NULL;
33758 : (yyval.node) = (Node *) n;
33759 : }
33760 : #line 33761 "gram.c"
33761 12 : break;
33762 :
33763 15578 : case 409: /* CopyStmt: COPY opt_binary qualified_name opt_column_list copy_from opt_program copy_file_name copy_delimiter opt_with copy_options where_clause */
33764 : #line 3383 "gram.y"
33765 : {
33766 : CopyStmt *n = makeNode(CopyStmt);
33767 :
33768 : n->relation = (yyvsp[-8].range);
33769 : n->query = NULL;
33770 : n->attlist = (yyvsp[-7].list);
33771 : n->is_from = (yyvsp[-6].boolean);
33772 : n->is_program = (yyvsp[-5].boolean);
33773 : n->filename = (yyvsp[-4].str);
33774 : n->whereClause = (yyvsp[0].node);
33775 :
33776 : if (n->is_program && n->filename == NULL)
33777 : ereport(ERROR,
33778 : (errcode(ERRCODE_SYNTAX_ERROR),
33779 : errmsg("STDIN/STDOUT not allowed with PROGRAM"),
33780 : parser_errposition((yylsp[-3]))));
33781 :
33782 : if (!n->is_from && n->whereClause != NULL)
33783 : ereport(ERROR,
33784 : (errcode(ERRCODE_SYNTAX_ERROR),
33785 : errmsg("WHERE clause not allowed with COPY TO"),
33786 : parser_errposition((yylsp[0]))));
33787 :
33788 : n->options = NIL;
33789 : /* Concatenate user-supplied flags */
33790 : if ((yyvsp[-9].defelt))
33791 : n->options = lappend(n->options, (yyvsp[-9].defelt));
33792 : if ((yyvsp[-3].defelt))
33793 : n->options = lappend(n->options, (yyvsp[-3].defelt));
33794 : if ((yyvsp[-1].list))
33795 : n->options = list_concat(n->options, (yyvsp[-1].list));
33796 : (yyval.node) = (Node *) n;
33797 : }
33798 : #line 33799 "gram.c"
33799 15572 : break;
33800 :
33801 464 : case 410: /* CopyStmt: COPY '(' PreparableStmt ')' TO opt_program copy_file_name opt_with copy_options */
33802 : #line 3417 "gram.y"
33803 : {
33804 : CopyStmt *n = makeNode(CopyStmt);
33805 :
33806 : updatePreparableStmtEnd((yyvsp[-6].node), (yylsp[-5]));
33807 : n->relation = NULL;
33808 : n->query = (yyvsp[-6].node);
33809 : n->attlist = NIL;
33810 : n->is_from = false;
33811 : n->is_program = (yyvsp[-3].boolean);
33812 : n->filename = (yyvsp[-2].str);
33813 : n->options = (yyvsp[0].list);
33814 :
33815 : if (n->is_program && n->filename == NULL)
33816 : ereport(ERROR,
33817 : (errcode(ERRCODE_SYNTAX_ERROR),
33818 : errmsg("STDIN/STDOUT not allowed with PROGRAM"),
33819 : parser_errposition((yylsp[-4]))));
33820 :
33821 : (yyval.node) = (Node *) n;
33822 : }
33823 : #line 33824 "gram.c"
33824 464 : break;
33825 :
33826 2994 : case 411: /* copy_from: FROM */
33827 : #line 3440 "gram.y"
33828 : { (yyval.boolean) = true; }
33829 : #line 33830 "gram.c"
33830 2994 : break;
33831 :
33832 12584 : case 412: /* copy_from: TO */
33833 : #line 3441 "gram.y"
33834 : { (yyval.boolean) = false; }
33835 : #line 33836 "gram.c"
33836 12584 : break;
33837 :
33838 0 : case 413: /* opt_program: PROGRAM */
33839 : #line 3445 "gram.y"
33840 : { (yyval.boolean) = true; }
33841 : #line 33842 "gram.c"
33842 0 : break;
33843 :
33844 16042 : case 414: /* opt_program: %empty */
33845 : #line 3446 "gram.y"
33846 : { (yyval.boolean) = false; }
33847 : #line 33848 "gram.c"
33848 16042 : break;
33849 :
33850 450 : case 415: /* copy_file_name: Sconst */
33851 : #line 3455 "gram.y"
33852 : { (yyval.str) = (yyvsp[0].str); }
33853 : #line 33854 "gram.c"
33854 450 : break;
33855 :
33856 2608 : case 416: /* copy_file_name: STDIN */
33857 : #line 3456 "gram.y"
33858 : { (yyval.str) = NULL; }
33859 : #line 33860 "gram.c"
33860 2608 : break;
33861 :
33862 12984 : case 417: /* copy_file_name: STDOUT */
33863 : #line 3457 "gram.y"
33864 : { (yyval.str) = NULL; }
33865 : #line 33866 "gram.c"
33866 12984 : break;
33867 :
33868 15386 : case 418: /* copy_options: copy_opt_list */
33869 : #line 3460 "gram.y"
33870 : { (yyval.list) = (yyvsp[0].list); }
33871 : #line 33872 "gram.c"
33872 15386 : break;
33873 :
33874 656 : case 419: /* copy_options: '(' copy_generic_opt_list ')' */
33875 : #line 3461 "gram.y"
33876 : { (yyval.list) = (yyvsp[-1].list); }
33877 : #line 33878 "gram.c"
33878 656 : break;
33879 :
33880 504 : case 420: /* copy_opt_list: copy_opt_list copy_opt_item */
33881 : #line 3466 "gram.y"
33882 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
33883 : #line 33884 "gram.c"
33884 504 : break;
33885 :
33886 15386 : case 421: /* copy_opt_list: %empty */
33887 : #line 3467 "gram.y"
33888 : { (yyval.list) = NIL; }
33889 : #line 33890 "gram.c"
33890 15386 : break;
33891 :
33892 0 : case 422: /* copy_opt_item: BINARY */
33893 : #line 3472 "gram.y"
33894 : {
33895 : (yyval.defelt) = makeDefElem("format", (Node *) makeString("binary"), (yylsp[0]));
33896 : }
33897 : #line 33898 "gram.c"
33898 0 : break;
33899 :
33900 50 : case 423: /* copy_opt_item: FREEZE */
33901 : #line 3476 "gram.y"
33902 : {
33903 : (yyval.defelt) = makeDefElem("freeze", (Node *) makeBoolean(true), (yylsp[0]));
33904 : }
33905 : #line 33906 "gram.c"
33906 50 : break;
33907 :
33908 172 : case 424: /* copy_opt_item: DELIMITER opt_as Sconst */
33909 : #line 3480 "gram.y"
33910 : {
33911 : (yyval.defelt) = makeDefElem("delimiter", (Node *) makeString((yyvsp[0].str)), (yylsp[-2]));
33912 : }
33913 : #line 33914 "gram.c"
33914 172 : break;
33915 :
33916 48 : case 425: /* copy_opt_item: NULL_P opt_as Sconst */
33917 : #line 3484 "gram.y"
33918 : {
33919 : (yyval.defelt) = makeDefElem("null", (Node *) makeString((yyvsp[0].str)), (yylsp[-2]));
33920 : }
33921 : #line 33922 "gram.c"
33922 48 : break;
33923 :
33924 150 : case 426: /* copy_opt_item: CSV */
33925 : #line 3488 "gram.y"
33926 : {
33927 : (yyval.defelt) = makeDefElem("format", (Node *) makeString("csv"), (yylsp[0]));
33928 : }
33929 : #line 33930 "gram.c"
33930 150 : break;
33931 :
33932 18 : case 427: /* copy_opt_item: HEADER_P */
33933 : #line 3492 "gram.y"
33934 : {
33935 : (yyval.defelt) = makeDefElem("header", (Node *) makeBoolean(true), (yylsp[0]));
33936 : }
33937 : #line 33938 "gram.c"
33938 18 : break;
33939 :
33940 18 : case 428: /* copy_opt_item: QUOTE opt_as Sconst */
33941 : #line 3496 "gram.y"
33942 : {
33943 : (yyval.defelt) = makeDefElem("quote", (Node *) makeString((yyvsp[0].str)), (yylsp[-2]));
33944 : }
33945 : #line 33946 "gram.c"
33946 18 : break;
33947 :
33948 18 : case 429: /* copy_opt_item: ESCAPE opt_as Sconst */
33949 : #line 3500 "gram.y"
33950 : {
33951 : (yyval.defelt) = makeDefElem("escape", (Node *) makeString((yyvsp[0].str)), (yylsp[-2]));
33952 : }
33953 : #line 33954 "gram.c"
33954 18 : break;
33955 :
33956 12 : case 430: /* copy_opt_item: FORCE QUOTE columnList */
33957 : #line 3504 "gram.y"
33958 : {
33959 : (yyval.defelt) = makeDefElem("force_quote", (Node *) (yyvsp[0].list), (yylsp[-2]));
33960 : }
33961 : #line 33962 "gram.c"
33962 12 : break;
33963 :
33964 6 : case 431: /* copy_opt_item: FORCE QUOTE '*' */
33965 : #line 3508 "gram.y"
33966 : {
33967 : (yyval.defelt) = makeDefElem("force_quote", (Node *) makeNode(A_Star), (yylsp[-2]));
33968 : }
33969 : #line 33970 "gram.c"
33970 6 : break;
33971 :
33972 0 : case 432: /* copy_opt_item: FORCE NOT NULL_P columnList */
33973 : #line 3512 "gram.y"
33974 : {
33975 : (yyval.defelt) = makeDefElem("force_not_null", (Node *) (yyvsp[0].list), (yylsp[-3]));
33976 : }
33977 : #line 33978 "gram.c"
33978 0 : break;
33979 :
33980 0 : case 433: /* copy_opt_item: FORCE NOT NULL_P '*' */
33981 : #line 3516 "gram.y"
33982 : {
33983 : (yyval.defelt) = makeDefElem("force_not_null", (Node *) makeNode(A_Star), (yylsp[-3]));
33984 : }
33985 : #line 33986 "gram.c"
33986 0 : break;
33987 :
33988 0 : case 434: /* copy_opt_item: FORCE NULL_P columnList */
33989 : #line 3520 "gram.y"
33990 : {
33991 : (yyval.defelt) = makeDefElem("force_null", (Node *) (yyvsp[0].list), (yylsp[-2]));
33992 : }
33993 : #line 33994 "gram.c"
33994 0 : break;
33995 :
33996 0 : case 435: /* copy_opt_item: FORCE NULL_P '*' */
33997 : #line 3524 "gram.y"
33998 : {
33999 : (yyval.defelt) = makeDefElem("force_null", (Node *) makeNode(A_Star), (yylsp[-2]));
34000 : }
34001 : #line 34002 "gram.c"
34002 0 : break;
34003 :
34004 12 : case 436: /* copy_opt_item: ENCODING Sconst */
34005 : #line 3528 "gram.y"
34006 : {
34007 : (yyval.defelt) = makeDefElem("encoding", (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
34008 : }
34009 : #line 34010 "gram.c"
34010 12 : break;
34011 :
34012 12 : case 437: /* opt_binary: BINARY */
34013 : #line 3537 "gram.y"
34014 : {
34015 : (yyval.defelt) = makeDefElem("format", (Node *) makeString("binary"), (yylsp[0]));
34016 : }
34017 : #line 34018 "gram.c"
34018 12 : break;
34019 :
34020 15566 : case 438: /* opt_binary: %empty */
34021 : #line 3540 "gram.y"
34022 : { (yyval.defelt) = NULL; }
34023 : #line 34024 "gram.c"
34024 15566 : break;
34025 :
34026 0 : case 439: /* copy_delimiter: opt_using DELIMITERS Sconst */
34027 : #line 3545 "gram.y"
34028 : {
34029 : (yyval.defelt) = makeDefElem("delimiter", (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
34030 : }
34031 : #line 34032 "gram.c"
34032 0 : break;
34033 :
34034 15578 : case 440: /* copy_delimiter: %empty */
34035 : #line 3548 "gram.y"
34036 : { (yyval.defelt) = NULL; }
34037 : #line 34038 "gram.c"
34038 15578 : break;
34039 :
34040 656 : case 443: /* copy_generic_opt_list: copy_generic_opt_elem */
34041 : #line 3559 "gram.y"
34042 : {
34043 : (yyval.list) = list_make1((yyvsp[0].defelt));
34044 : }
34045 : #line 34046 "gram.c"
34046 656 : break;
34047 :
34048 450 : case 444: /* copy_generic_opt_list: copy_generic_opt_list ',' copy_generic_opt_elem */
34049 : #line 3563 "gram.y"
34050 : {
34051 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt));
34052 : }
34053 : #line 34054 "gram.c"
34054 450 : break;
34055 :
34056 1106 : case 445: /* copy_generic_opt_elem: ColLabel copy_generic_opt_arg */
34057 : #line 3570 "gram.y"
34058 : {
34059 : (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1]));
34060 : }
34061 : #line 34062 "gram.c"
34062 1106 : break;
34063 :
34064 800 : case 446: /* copy_generic_opt_arg: opt_boolean_or_string */
34065 : #line 3576 "gram.y"
34066 : { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
34067 : #line 34068 "gram.c"
34068 800 : break;
34069 :
34070 24 : case 447: /* copy_generic_opt_arg: NumericOnly */
34071 : #line 3577 "gram.y"
34072 : { (yyval.node) = (Node *) (yyvsp[0].node); }
34073 : #line 34074 "gram.c"
34074 24 : break;
34075 :
34076 90 : case 448: /* copy_generic_opt_arg: '*' */
34077 : #line 3578 "gram.y"
34078 : { (yyval.node) = (Node *) makeNode(A_Star); }
34079 : #line 34080 "gram.c"
34080 90 : break;
34081 :
34082 6 : case 449: /* copy_generic_opt_arg: DEFAULT */
34083 : #line 3579 "gram.y"
34084 : { (yyval.node) = (Node *) makeString("default"); }
34085 : #line 34086 "gram.c"
34086 6 : break;
34087 :
34088 150 : case 450: /* copy_generic_opt_arg: '(' copy_generic_opt_arg_list ')' */
34089 : #line 3580 "gram.y"
34090 : { (yyval.node) = (Node *) (yyvsp[-1].list); }
34091 : #line 34092 "gram.c"
34092 150 : break;
34093 :
34094 36 : case 451: /* copy_generic_opt_arg: %empty */
34095 : #line 3581 "gram.y"
34096 : { (yyval.node) = NULL; }
34097 : #line 34098 "gram.c"
34098 36 : break;
34099 :
34100 150 : case 452: /* copy_generic_opt_arg_list: copy_generic_opt_arg_list_item */
34101 : #line 3586 "gram.y"
34102 : {
34103 : (yyval.list) = list_make1((yyvsp[0].node));
34104 : }
34105 : #line 34106 "gram.c"
34106 150 : break;
34107 :
34108 12 : case 453: /* copy_generic_opt_arg_list: copy_generic_opt_arg_list ',' copy_generic_opt_arg_list_item */
34109 : #line 3590 "gram.y"
34110 : {
34111 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node));
34112 : }
34113 : #line 34114 "gram.c"
34114 12 : break;
34115 :
34116 162 : case 454: /* copy_generic_opt_arg_list_item: opt_boolean_or_string */
34117 : #line 3597 "gram.y"
34118 : { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
34119 : #line 34120 "gram.c"
34120 162 : break;
34121 :
34122 30622 : case 455: /* CreateStmt: CREATE OptTemp TABLE qualified_name '(' OptTableElementList ')' OptInherit OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */
34123 : #line 3611 "gram.y"
34124 : {
34125 : CreateStmt *n = makeNode(CreateStmt);
34126 :
34127 : (yyvsp[-9].range)->relpersistence = (yyvsp[-11].ival);
34128 : n->relation = (yyvsp[-9].range);
34129 : n->tableElts = (yyvsp[-7].list);
34130 : n->inhRelations = (yyvsp[-5].list);
34131 : n->partspec = (yyvsp[-4].partspec);
34132 : n->ofTypename = NULL;
34133 : n->constraints = NIL;
34134 : n->accessMethod = (yyvsp[-3].str);
34135 : n->options = (yyvsp[-2].list);
34136 : n->oncommit = (yyvsp[-1].oncommit);
34137 : n->tablespacename = (yyvsp[0].str);
34138 : n->if_not_exists = false;
34139 : (yyval.node) = (Node *) n;
34140 : }
34141 : #line 34142 "gram.c"
34142 30622 : break;
34143 :
34144 30 : case 456: /* CreateStmt: CREATE OptTemp TABLE IF_P NOT EXISTS qualified_name '(' OptTableElementList ')' OptInherit OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */
34145 : #line 3631 "gram.y"
34146 : {
34147 : CreateStmt *n = makeNode(CreateStmt);
34148 :
34149 : (yyvsp[-9].range)->relpersistence = (yyvsp[-14].ival);
34150 : n->relation = (yyvsp[-9].range);
34151 : n->tableElts = (yyvsp[-7].list);
34152 : n->inhRelations = (yyvsp[-5].list);
34153 : n->partspec = (yyvsp[-4].partspec);
34154 : n->ofTypename = NULL;
34155 : n->constraints = NIL;
34156 : n->accessMethod = (yyvsp[-3].str);
34157 : n->options = (yyvsp[-2].list);
34158 : n->oncommit = (yyvsp[-1].oncommit);
34159 : n->tablespacename = (yyvsp[0].str);
34160 : n->if_not_exists = true;
34161 : (yyval.node) = (Node *) n;
34162 : }
34163 : #line 34164 "gram.c"
34164 30 : break;
34165 :
34166 134 : case 457: /* CreateStmt: CREATE OptTemp TABLE qualified_name OF any_name OptTypedTableElementList OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */
34167 : #line 3651 "gram.y"
34168 : {
34169 : CreateStmt *n = makeNode(CreateStmt);
34170 :
34171 : (yyvsp[-8].range)->relpersistence = (yyvsp[-10].ival);
34172 : n->relation = (yyvsp[-8].range);
34173 : n->tableElts = (yyvsp[-5].list);
34174 : n->inhRelations = NIL;
34175 : n->partspec = (yyvsp[-4].partspec);
34176 : n->ofTypename = makeTypeNameFromNameList((yyvsp[-6].list));
34177 : n->ofTypename->location = (yylsp[-6]);
34178 : n->constraints = NIL;
34179 : n->accessMethod = (yyvsp[-3].str);
34180 : n->options = (yyvsp[-2].list);
34181 : n->oncommit = (yyvsp[-1].oncommit);
34182 : n->tablespacename = (yyvsp[0].str);
34183 : n->if_not_exists = false;
34184 : (yyval.node) = (Node *) n;
34185 : }
34186 : #line 34187 "gram.c"
34187 134 : break;
34188 :
34189 6 : case 458: /* CreateStmt: CREATE OptTemp TABLE IF_P NOT EXISTS qualified_name OF any_name OptTypedTableElementList OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */
34190 : #line 3672 "gram.y"
34191 : {
34192 : CreateStmt *n = makeNode(CreateStmt);
34193 :
34194 : (yyvsp[-8].range)->relpersistence = (yyvsp[-13].ival);
34195 : n->relation = (yyvsp[-8].range);
34196 : n->tableElts = (yyvsp[-5].list);
34197 : n->inhRelations = NIL;
34198 : n->partspec = (yyvsp[-4].partspec);
34199 : n->ofTypename = makeTypeNameFromNameList((yyvsp[-6].list));
34200 : n->ofTypename->location = (yylsp[-6]);
34201 : n->constraints = NIL;
34202 : n->accessMethod = (yyvsp[-3].str);
34203 : n->options = (yyvsp[-2].list);
34204 : n->oncommit = (yyvsp[-1].oncommit);
34205 : n->tablespacename = (yyvsp[0].str);
34206 : n->if_not_exists = true;
34207 : (yyval.node) = (Node *) n;
34208 : }
34209 : #line 34210 "gram.c"
34210 6 : break;
34211 :
34212 7868 : case 459: /* CreateStmt: CREATE OptTemp TABLE qualified_name PARTITION OF qualified_name OptTypedTableElementList PartitionBoundSpec OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */
34213 : #line 3693 "gram.y"
34214 : {
34215 : CreateStmt *n = makeNode(CreateStmt);
34216 :
34217 : (yyvsp[-10].range)->relpersistence = (yyvsp[-12].ival);
34218 : n->relation = (yyvsp[-10].range);
34219 : n->tableElts = (yyvsp[-6].list);
34220 : n->inhRelations = list_make1((yyvsp[-7].range));
34221 : n->partbound = (yyvsp[-5].partboundspec);
34222 : n->partspec = (yyvsp[-4].partspec);
34223 : n->ofTypename = NULL;
34224 : n->constraints = NIL;
34225 : n->accessMethod = (yyvsp[-3].str);
34226 : n->options = (yyvsp[-2].list);
34227 : n->oncommit = (yyvsp[-1].oncommit);
34228 : n->tablespacename = (yyvsp[0].str);
34229 : n->if_not_exists = false;
34230 : (yyval.node) = (Node *) n;
34231 : }
34232 : #line 34233 "gram.c"
34233 7868 : break;
34234 :
34235 0 : case 460: /* CreateStmt: CREATE OptTemp TABLE IF_P NOT EXISTS qualified_name PARTITION OF qualified_name OptTypedTableElementList PartitionBoundSpec OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */
34236 : #line 3714 "gram.y"
34237 : {
34238 : CreateStmt *n = makeNode(CreateStmt);
34239 :
34240 : (yyvsp[-10].range)->relpersistence = (yyvsp[-15].ival);
34241 : n->relation = (yyvsp[-10].range);
34242 : n->tableElts = (yyvsp[-6].list);
34243 : n->inhRelations = list_make1((yyvsp[-7].range));
34244 : n->partbound = (yyvsp[-5].partboundspec);
34245 : n->partspec = (yyvsp[-4].partspec);
34246 : n->ofTypename = NULL;
34247 : n->constraints = NIL;
34248 : n->accessMethod = (yyvsp[-3].str);
34249 : n->options = (yyvsp[-2].list);
34250 : n->oncommit = (yyvsp[-1].oncommit);
34251 : n->tablespacename = (yyvsp[0].str);
34252 : n->if_not_exists = true;
34253 : (yyval.node) = (Node *) n;
34254 : }
34255 : #line 34256 "gram.c"
34256 0 : break;
34257 :
34258 336 : case 461: /* OptTemp: TEMPORARY */
34259 : #line 3745 "gram.y"
34260 : { (yyval.ival) = RELPERSISTENCE_TEMP; }
34261 : #line 34262 "gram.c"
34262 336 : break;
34263 :
34264 2720 : case 462: /* OptTemp: TEMP */
34265 : #line 3746 "gram.y"
34266 : { (yyval.ival) = RELPERSISTENCE_TEMP; }
34267 : #line 34268 "gram.c"
34268 2720 : break;
34269 :
34270 0 : case 463: /* OptTemp: LOCAL TEMPORARY */
34271 : #line 3747 "gram.y"
34272 : { (yyval.ival) = RELPERSISTENCE_TEMP; }
34273 : #line 34274 "gram.c"
34274 0 : break;
34275 :
34276 0 : case 464: /* OptTemp: LOCAL TEMP */
34277 : #line 3748 "gram.y"
34278 : { (yyval.ival) = RELPERSISTENCE_TEMP; }
34279 : #line 34280 "gram.c"
34280 0 : break;
34281 :
34282 0 : case 465: /* OptTemp: GLOBAL TEMPORARY */
34283 : #line 3750 "gram.y"
34284 : {
34285 : ereport(WARNING,
34286 : (errmsg("GLOBAL is deprecated in temporary table creation"),
34287 : parser_errposition((yylsp[-1]))));
34288 : (yyval.ival) = RELPERSISTENCE_TEMP;
34289 : }
34290 : #line 34291 "gram.c"
34291 0 : break;
34292 :
34293 0 : case 466: /* OptTemp: GLOBAL TEMP */
34294 : #line 3757 "gram.y"
34295 : {
34296 : ereport(WARNING,
34297 : (errmsg("GLOBAL is deprecated in temporary table creation"),
34298 : parser_errposition((yylsp[-1]))));
34299 : (yyval.ival) = RELPERSISTENCE_TEMP;
34300 : }
34301 : #line 34302 "gram.c"
34302 0 : break;
34303 :
34304 170 : case 467: /* OptTemp: UNLOGGED */
34305 : #line 3763 "gram.y"
34306 : { (yyval.ival) = RELPERSISTENCE_UNLOGGED; }
34307 : #line 34308 "gram.c"
34308 170 : break;
34309 :
34310 54292 : case 468: /* OptTemp: %empty */
34311 : #line 3764 "gram.y"
34312 : { (yyval.ival) = RELPERSISTENCE_PERMANENT; }
34313 : #line 34314 "gram.c"
34314 54292 : break;
34315 :
34316 29460 : case 469: /* OptTableElementList: TableElementList */
34317 : #line 3768 "gram.y"
34318 : { (yyval.list) = (yyvsp[0].list); }
34319 : #line 34320 "gram.c"
34320 29460 : break;
34321 :
34322 1624 : case 470: /* OptTableElementList: %empty */
34323 : #line 3769 "gram.y"
34324 : { (yyval.list) = NIL; }
34325 : #line 34326 "gram.c"
34326 1624 : break;
34327 :
34328 354 : case 471: /* OptTypedTableElementList: '(' TypedTableElementList ')' */
34329 : #line 3773 "gram.y"
34330 : { (yyval.list) = (yyvsp[-1].list); }
34331 : #line 34332 "gram.c"
34332 354 : break;
34333 :
34334 7750 : case 472: /* OptTypedTableElementList: %empty */
34335 : #line 3774 "gram.y"
34336 : { (yyval.list) = NIL; }
34337 : #line 34338 "gram.c"
34338 7750 : break;
34339 :
34340 29514 : case 473: /* TableElementList: TableElement */
34341 : #line 3779 "gram.y"
34342 : {
34343 : (yyval.list) = list_make1((yyvsp[0].node));
34344 : }
34345 : #line 34346 "gram.c"
34346 29514 : break;
34347 :
34348 44296 : case 474: /* TableElementList: TableElementList ',' TableElement */
34349 : #line 3783 "gram.y"
34350 : {
34351 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node));
34352 : }
34353 : #line 34354 "gram.c"
34354 44296 : break;
34355 :
34356 354 : case 475: /* TypedTableElementList: TypedTableElement */
34357 : #line 3790 "gram.y"
34358 : {
34359 : (yyval.list) = list_make1((yyvsp[0].node));
34360 : }
34361 : #line 34362 "gram.c"
34362 354 : break;
34363 :
34364 70 : case 476: /* TypedTableElementList: TypedTableElementList ',' TypedTableElement */
34365 : #line 3794 "gram.y"
34366 : {
34367 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node));
34368 : }
34369 : #line 34370 "gram.c"
34370 70 : break;
34371 :
34372 70282 : case 477: /* TableElement: columnDef */
34373 : #line 3800 "gram.y"
34374 : { (yyval.node) = (yyvsp[0].node); }
34375 : #line 34376 "gram.c"
34376 70282 : break;
34377 :
34378 774 : case 478: /* TableElement: TableLikeClause */
34379 : #line 3801 "gram.y"
34380 : { (yyval.node) = (yyvsp[0].node); }
34381 : #line 34382 "gram.c"
34382 774 : break;
34383 :
34384 2754 : case 479: /* TableElement: TableConstraint */
34385 : #line 3802 "gram.y"
34386 : { (yyval.node) = (yyvsp[0].node); }
34387 : #line 34388 "gram.c"
34388 2754 : break;
34389 :
34390 354 : case 480: /* TypedTableElement: columnOptions */
34391 : #line 3806 "gram.y"
34392 : { (yyval.node) = (yyvsp[0].node); }
34393 : #line 34394 "gram.c"
34394 354 : break;
34395 :
34396 70 : case 481: /* TypedTableElement: TableConstraint */
34397 : #line 3807 "gram.y"
34398 : { (yyval.node) = (yyvsp[0].node); }
34399 : #line 34400 "gram.c"
34400 70 : break;
34401 :
34402 72424 : case 482: /* columnDef: ColId Typename opt_column_storage opt_column_compression create_generic_options ColQualList */
34403 : #line 3811 "gram.y"
34404 : {
34405 : ColumnDef *n = makeNode(ColumnDef);
34406 :
34407 : n->colname = (yyvsp[-5].str);
34408 : n->typeName = (yyvsp[-4].typnam);
34409 : n->storage_name = (yyvsp[-3].str);
34410 : n->compression = (yyvsp[-2].str);
34411 : n->inhcount = 0;
34412 : n->is_local = true;
34413 : n->is_not_null = false;
34414 : n->is_from_type = false;
34415 : n->storage = 0;
34416 : n->raw_default = NULL;
34417 : n->cooked_default = NULL;
34418 : n->collOid = InvalidOid;
34419 : n->fdwoptions = (yyvsp[-1].list);
34420 : SplitColQualList((yyvsp[0].list), &n->constraints, &n->collClause,
34421 : yyscanner);
34422 : n->location = (yylsp[-5]);
34423 : (yyval.node) = (Node *) n;
34424 : }
34425 : #line 34426 "gram.c"
34426 72424 : break;
34427 :
34428 146 : case 483: /* columnOptions: ColId ColQualList */
34429 : #line 3835 "gram.y"
34430 : {
34431 : ColumnDef *n = makeNode(ColumnDef);
34432 :
34433 : n->colname = (yyvsp[-1].str);
34434 : n->typeName = NULL;
34435 : n->inhcount = 0;
34436 : n->is_local = true;
34437 : n->is_not_null = false;
34438 : n->is_from_type = false;
34439 : n->storage = 0;
34440 : n->raw_default = NULL;
34441 : n->cooked_default = NULL;
34442 : n->collOid = InvalidOid;
34443 : SplitColQualList((yyvsp[0].list), &n->constraints, &n->collClause,
34444 : yyscanner);
34445 : n->location = (yylsp[-1]);
34446 : (yyval.node) = (Node *) n;
34447 : }
34448 : #line 34449 "gram.c"
34449 146 : break;
34450 :
34451 208 : case 484: /* columnOptions: ColId WITH OPTIONS ColQualList */
34452 : #line 3854 "gram.y"
34453 : {
34454 : ColumnDef *n = makeNode(ColumnDef);
34455 :
34456 : n->colname = (yyvsp[-3].str);
34457 : n->typeName = NULL;
34458 : n->inhcount = 0;
34459 : n->is_local = true;
34460 : n->is_not_null = false;
34461 : n->is_from_type = false;
34462 : n->storage = 0;
34463 : n->raw_default = NULL;
34464 : n->cooked_default = NULL;
34465 : n->collOid = InvalidOid;
34466 : SplitColQualList((yyvsp[0].list), &n->constraints, &n->collClause,
34467 : yyscanner);
34468 : n->location = (yylsp[-3]);
34469 : (yyval.node) = (Node *) n;
34470 : }
34471 : #line 34472 "gram.c"
34472 208 : break;
34473 :
34474 166 : case 485: /* column_compression: COMPRESSION ColId */
34475 : #line 3875 "gram.y"
34476 : { (yyval.str) = (yyvsp[0].str); }
34477 : #line 34478 "gram.c"
34478 166 : break;
34479 :
34480 6 : case 486: /* column_compression: COMPRESSION DEFAULT */
34481 : #line 3876 "gram.y"
34482 : { (yyval.str) = pstrdup("default"); }
34483 : #line 34484 "gram.c"
34484 6 : break;
34485 :
34486 82 : case 487: /* opt_column_compression: column_compression */
34487 : #line 3880 "gram.y"
34488 : { (yyval.str) = (yyvsp[0].str); }
34489 : #line 34490 "gram.c"
34490 82 : break;
34491 :
34492 72408 : case 488: /* opt_column_compression: %empty */
34493 : #line 3881 "gram.y"
34494 : { (yyval.str) = NULL; }
34495 : #line 34496 "gram.c"
34496 72408 : break;
34497 :
34498 238 : case 489: /* column_storage: STORAGE ColId */
34499 : #line 3885 "gram.y"
34500 : { (yyval.str) = (yyvsp[0].str); }
34501 : #line 34502 "gram.c"
34502 238 : break;
34503 :
34504 6 : case 490: /* column_storage: STORAGE DEFAULT */
34505 : #line 3886 "gram.y"
34506 : { (yyval.str) = pstrdup("default"); }
34507 : #line 34508 "gram.c"
34508 6 : break;
34509 :
34510 20 : case 491: /* opt_column_storage: column_storage */
34511 : #line 3890 "gram.y"
34512 : { (yyval.str) = (yyvsp[0].str); }
34513 : #line 34514 "gram.c"
34514 20 : break;
34515 :
34516 72470 : case 492: /* opt_column_storage: %empty */
34517 : #line 3891 "gram.y"
34518 : { (yyval.str) = NULL; }
34519 : #line 34520 "gram.c"
34520 72470 : break;
34521 :
34522 20348 : case 493: /* ColQualList: ColQualList ColConstraint */
34523 : #line 3895 "gram.y"
34524 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); }
34525 : #line 34526 "gram.c"
34526 20348 : break;
34527 :
34528 74318 : case 494: /* ColQualList: %empty */
34529 : #line 3896 "gram.y"
34530 : { (yyval.list) = NIL; }
34531 : #line 34532 "gram.c"
34532 74318 : break;
34533 :
34534 930 : case 495: /* ColConstraint: CONSTRAINT name ColConstraintElem */
34535 : #line 3901 "gram.y"
34536 : {
34537 : Constraint *n = castNode(Constraint, (yyvsp[0].node));
34538 :
34539 : n->conname = (yyvsp[-1].str);
34540 : n->location = (yylsp[-2]);
34541 : (yyval.node) = (Node *) n;
34542 : }
34543 : #line 34544 "gram.c"
34544 930 : break;
34545 :
34546 18364 : case 496: /* ColConstraint: ColConstraintElem */
34547 : #line 3908 "gram.y"
34548 : { (yyval.node) = (yyvsp[0].node); }
34549 : #line 34550 "gram.c"
34550 18364 : break;
34551 :
34552 294 : case 497: /* ColConstraint: ConstraintAttr */
34553 : #line 3909 "gram.y"
34554 : { (yyval.node) = (yyvsp[0].node); }
34555 : #line 34556 "gram.c"
34556 294 : break;
34557 :
34558 760 : case 498: /* ColConstraint: COLLATE any_name */
34559 : #line 3911 "gram.y"
34560 : {
34561 : /*
34562 : * Note: the CollateClause is momentarily included in
34563 : * the list built by ColQualList, but we split it out
34564 : * again in SplitColQualList.
34565 : */
34566 : CollateClause *n = makeNode(CollateClause);
34567 :
34568 : n->arg = NULL;
34569 : n->collname = (yyvsp[0].list);
34570 : n->location = (yylsp[-1]);
34571 : (yyval.node) = (Node *) n;
34572 : }
34573 : #line 34574 "gram.c"
34574 760 : break;
34575 :
34576 7106 : case 499: /* ColConstraintElem: NOT NULL_P opt_no_inherit */
34577 : #line 3943 "gram.y"
34578 : {
34579 : Constraint *n = makeNode(Constraint);
34580 :
34581 : n->contype = CONSTR_NOTNULL;
34582 : n->location = (yylsp[-2]);
34583 : n->is_no_inherit = (yyvsp[0].boolean);
34584 : n->is_enforced = true;
34585 : n->skip_validation = false;
34586 : n->initially_valid = true;
34587 : (yyval.node) = (Node *) n;
34588 : }
34589 : #line 34590 "gram.c"
34590 7106 : break;
34591 :
34592 30 : case 500: /* ColConstraintElem: NULL_P */
34593 : #line 3955 "gram.y"
34594 : {
34595 : Constraint *n = makeNode(Constraint);
34596 :
34597 : n->contype = CONSTR_NULL;
34598 : n->location = (yylsp[0]);
34599 : (yyval.node) = (Node *) n;
34600 : }
34601 : #line 34602 "gram.c"
34602 30 : break;
34603 :
34604 446 : case 501: /* ColConstraintElem: UNIQUE opt_unique_null_treatment opt_definition OptConsTableSpace */
34605 : #line 3963 "gram.y"
34606 : {
34607 : Constraint *n = makeNode(Constraint);
34608 :
34609 : n->contype = CONSTR_UNIQUE;
34610 : n->location = (yylsp[-3]);
34611 : n->nulls_not_distinct = !(yyvsp[-2].boolean);
34612 : n->keys = NULL;
34613 : n->options = (yyvsp[-1].list);
34614 : n->indexname = NULL;
34615 : n->indexspace = (yyvsp[0].str);
34616 : (yyval.node) = (Node *) n;
34617 : }
34618 : #line 34619 "gram.c"
34619 446 : break;
34620 :
34621 5748 : case 502: /* ColConstraintElem: PRIMARY KEY opt_definition OptConsTableSpace */
34622 : #line 3976 "gram.y"
34623 : {
34624 : Constraint *n = makeNode(Constraint);
34625 :
34626 : n->contype = CONSTR_PRIMARY;
34627 : n->location = (yylsp[-3]);
34628 : n->keys = NULL;
34629 : n->options = (yyvsp[-1].list);
34630 : n->indexname = NULL;
34631 : n->indexspace = (yyvsp[0].str);
34632 : (yyval.node) = (Node *) n;
34633 : }
34634 : #line 34635 "gram.c"
34635 5748 : break;
34636 :
34637 1104 : case 503: /* ColConstraintElem: CHECK '(' a_expr ')' opt_no_inherit */
34638 : #line 3988 "gram.y"
34639 : {
34640 : Constraint *n = makeNode(Constraint);
34641 :
34642 : n->contype = CONSTR_CHECK;
34643 : n->location = (yylsp[-4]);
34644 : n->is_no_inherit = (yyvsp[0].boolean);
34645 : n->raw_expr = (yyvsp[-2].node);
34646 : n->cooked_expr = NULL;
34647 : n->is_enforced = true;
34648 : n->skip_validation = false;
34649 : n->initially_valid = true;
34650 : (yyval.node) = (Node *) n;
34651 : }
34652 : #line 34653 "gram.c"
34653 1104 : break;
34654 :
34655 1882 : case 504: /* ColConstraintElem: DEFAULT b_expr */
34656 : #line 4002 "gram.y"
34657 : {
34658 : Constraint *n = makeNode(Constraint);
34659 :
34660 : n->contype = CONSTR_DEFAULT;
34661 : n->location = (yylsp[-1]);
34662 : n->raw_expr = (yyvsp[0].node);
34663 : n->cooked_expr = NULL;
34664 : (yyval.node) = (Node *) n;
34665 : }
34666 : #line 34667 "gram.c"
34667 1882 : break;
34668 :
34669 332 : case 505: /* ColConstraintElem: GENERATED generated_when AS IDENTITY_P OptParenthesizedSeqOptList */
34670 : #line 4012 "gram.y"
34671 : {
34672 : Constraint *n = makeNode(Constraint);
34673 :
34674 : n->contype = CONSTR_IDENTITY;
34675 : n->generated_when = (yyvsp[-3].ival);
34676 : n->options = (yyvsp[0].list);
34677 : n->location = (yylsp[-4]);
34678 : (yyval.node) = (Node *) n;
34679 : }
34680 : #line 34681 "gram.c"
34681 332 : break;
34682 :
34683 1830 : case 506: /* ColConstraintElem: GENERATED generated_when AS '(' a_expr ')' opt_virtual_or_stored */
34684 : #line 4022 "gram.y"
34685 : {
34686 : Constraint *n = makeNode(Constraint);
34687 :
34688 : n->contype = CONSTR_GENERATED;
34689 : n->generated_when = (yyvsp[-5].ival);
34690 : n->raw_expr = (yyvsp[-2].node);
34691 : n->cooked_expr = NULL;
34692 : n->generated_kind = (yyvsp[0].ival);
34693 : n->location = (yylsp[-6]);
34694 :
34695 : /*
34696 : * Can't do this in the grammar because of shift/reduce
34697 : * conflicts. (IDENTITY allows both ALWAYS and BY
34698 : * DEFAULT, but generated columns only allow ALWAYS.) We
34699 : * can also give a more useful error message and location.
34700 : */
34701 : if ((yyvsp[-5].ival) != ATTRIBUTE_IDENTITY_ALWAYS)
34702 : ereport(ERROR,
34703 : (errcode(ERRCODE_SYNTAX_ERROR),
34704 : errmsg("for a generated column, GENERATED ALWAYS must be specified"),
34705 : parser_errposition((yylsp[-5]))));
34706 :
34707 : (yyval.node) = (Node *) n;
34708 : }
34709 : #line 34710 "gram.c"
34710 1818 : break;
34711 :
34712 828 : case 507: /* ColConstraintElem: REFERENCES qualified_name opt_column_list key_match key_actions */
34713 : #line 4047 "gram.y"
34714 : {
34715 : Constraint *n = makeNode(Constraint);
34716 :
34717 : n->contype = CONSTR_FOREIGN;
34718 : n->location = (yylsp[-4]);
34719 : n->pktable = (yyvsp[-3].range);
34720 : n->fk_attrs = NIL;
34721 : n->pk_attrs = (yyvsp[-2].list);
34722 : n->fk_matchtype = (yyvsp[-1].ival);
34723 : n->fk_upd_action = ((yyvsp[0].keyactions))->updateAction->action;
34724 : n->fk_del_action = ((yyvsp[0].keyactions))->deleteAction->action;
34725 : n->fk_del_set_cols = ((yyvsp[0].keyactions))->deleteAction->cols;
34726 : n->is_enforced = true;
34727 : n->skip_validation = false;
34728 : n->initially_valid = true;
34729 : (yyval.node) = (Node *) n;
34730 : }
34731 : #line 34732 "gram.c"
34732 828 : break;
34733 :
34734 12 : case 508: /* opt_unique_null_treatment: NULLS_P DISTINCT */
34735 : #line 4067 "gram.y"
34736 : { (yyval.boolean) = true; }
34737 : #line 34738 "gram.c"
34738 12 : break;
34739 :
34740 36 : case 509: /* opt_unique_null_treatment: NULLS_P NOT DISTINCT */
34741 : #line 4068 "gram.y"
34742 : { (yyval.boolean) = false; }
34743 : #line 34744 "gram.c"
34744 36 : break;
34745 :
34746 7918 : case 510: /* opt_unique_null_treatment: %empty */
34747 : #line 4069 "gram.y"
34748 : { (yyval.boolean) = true; }
34749 : #line 34750 "gram.c"
34750 7918 : break;
34751 :
34752 2218 : case 511: /* generated_when: ALWAYS */
34753 : #line 4073 "gram.y"
34754 : { (yyval.ival) = ATTRIBUTE_IDENTITY_ALWAYS; }
34755 : #line 34756 "gram.c"
34756 2218 : break;
34757 :
34758 198 : case 512: /* generated_when: BY DEFAULT */
34759 : #line 4074 "gram.y"
34760 : { (yyval.ival) = ATTRIBUTE_IDENTITY_BY_DEFAULT; }
34761 : #line 34762 "gram.c"
34762 198 : break;
34763 :
34764 1038 : case 513: /* opt_virtual_or_stored: STORED */
34765 : #line 4078 "gram.y"
34766 : { (yyval.ival) = ATTRIBUTE_GENERATED_STORED; }
34767 : #line 34768 "gram.c"
34768 1038 : break;
34769 :
34770 616 : case 514: /* opt_virtual_or_stored: VIRTUAL */
34771 : #line 4079 "gram.y"
34772 : { (yyval.ival) = ATTRIBUTE_GENERATED_VIRTUAL; }
34773 : #line 34774 "gram.c"
34774 616 : break;
34775 :
34776 176 : case 515: /* opt_virtual_or_stored: %empty */
34777 : #line 4080 "gram.y"
34778 : { (yyval.ival) = ATTRIBUTE_GENERATED_VIRTUAL; }
34779 : #line 34780 "gram.c"
34780 176 : break;
34781 :
34782 102 : case 516: /* ConstraintAttr: DEFERRABLE */
34783 : #line 4100 "gram.y"
34784 : {
34785 : Constraint *n = makeNode(Constraint);
34786 :
34787 : n->contype = CONSTR_ATTR_DEFERRABLE;
34788 : n->location = (yylsp[0]);
34789 : (yyval.node) = (Node *) n;
34790 : }
34791 : #line 34792 "gram.c"
34792 102 : break;
34793 :
34794 0 : case 517: /* ConstraintAttr: NOT DEFERRABLE */
34795 : #line 4108 "gram.y"
34796 : {
34797 : Constraint *n = makeNode(Constraint);
34798 :
34799 : n->contype = CONSTR_ATTR_NOT_DEFERRABLE;
34800 : n->location = (yylsp[-1]);
34801 : (yyval.node) = (Node *) n;
34802 : }
34803 : #line 34804 "gram.c"
34804 0 : break;
34805 :
34806 78 : case 518: /* ConstraintAttr: INITIALLY DEFERRED */
34807 : #line 4116 "gram.y"
34808 : {
34809 : Constraint *n = makeNode(Constraint);
34810 :
34811 : n->contype = CONSTR_ATTR_DEFERRED;
34812 : n->location = (yylsp[-1]);
34813 : (yyval.node) = (Node *) n;
34814 : }
34815 : #line 34816 "gram.c"
34816 78 : break;
34817 :
34818 6 : case 519: /* ConstraintAttr: INITIALLY IMMEDIATE */
34819 : #line 4124 "gram.y"
34820 : {
34821 : Constraint *n = makeNode(Constraint);
34822 :
34823 : n->contype = CONSTR_ATTR_IMMEDIATE;
34824 : n->location = (yylsp[-1]);
34825 : (yyval.node) = (Node *) n;
34826 : }
34827 : #line 34828 "gram.c"
34828 6 : break;
34829 :
34830 42 : case 520: /* ConstraintAttr: ENFORCED */
34831 : #line 4132 "gram.y"
34832 : {
34833 : Constraint *n = makeNode(Constraint);
34834 :
34835 : n->contype = CONSTR_ATTR_ENFORCED;
34836 : n->location = (yylsp[0]);
34837 : (yyval.node) = (Node *) n;
34838 : }
34839 : #line 34840 "gram.c"
34840 42 : break;
34841 :
34842 66 : case 521: /* ConstraintAttr: NOT ENFORCED */
34843 : #line 4140 "gram.y"
34844 : {
34845 : Constraint *n = makeNode(Constraint);
34846 :
34847 : n->contype = CONSTR_ATTR_NOT_ENFORCED;
34848 : n->location = (yylsp[-1]);
34849 : (yyval.node) = (Node *) n;
34850 : }
34851 : #line 34852 "gram.c"
34852 66 : break;
34853 :
34854 774 : case 522: /* TableLikeClause: LIKE qualified_name TableLikeOptionList */
34855 : #line 4152 "gram.y"
34856 : {
34857 : TableLikeClause *n = makeNode(TableLikeClause);
34858 :
34859 : n->relation = (yyvsp[-1].range);
34860 : n->options = (yyvsp[0].ival);
34861 : n->relationOid = InvalidOid;
34862 : (yyval.node) = (Node *) n;
34863 : }
34864 : #line 34865 "gram.c"
34865 774 : break;
34866 :
34867 282 : case 523: /* TableLikeOptionList: TableLikeOptionList INCLUDING TableLikeOption */
34868 : #line 4163 "gram.y"
34869 : { (yyval.ival) = (yyvsp[-2].ival) | (yyvsp[0].ival); }
34870 : #line 34871 "gram.c"
34871 282 : break;
34872 :
34873 8 : case 524: /* TableLikeOptionList: TableLikeOptionList EXCLUDING TableLikeOption */
34874 : #line 4164 "gram.y"
34875 : { (yyval.ival) = (yyvsp[-2].ival) & ~(yyvsp[0].ival); }
34876 : #line 34877 "gram.c"
34877 8 : break;
34878 :
34879 774 : case 525: /* TableLikeOptionList: %empty */
34880 : #line 4165 "gram.y"
34881 : { (yyval.ival) = 0; }
34882 : #line 34883 "gram.c"
34883 774 : break;
34884 :
34885 24 : case 526: /* TableLikeOption: COMMENTS */
34886 : #line 4169 "gram.y"
34887 : { (yyval.ival) = CREATE_TABLE_LIKE_COMMENTS; }
34888 : #line 34889 "gram.c"
34889 24 : break;
34890 :
34891 6 : case 527: /* TableLikeOption: COMPRESSION */
34892 : #line 4170 "gram.y"
34893 : { (yyval.ival) = CREATE_TABLE_LIKE_COMPRESSION; }
34894 : #line 34895 "gram.c"
34895 6 : break;
34896 :
34897 54 : case 528: /* TableLikeOption: CONSTRAINTS */
34898 : #line 4171 "gram.y"
34899 : { (yyval.ival) = CREATE_TABLE_LIKE_CONSTRAINTS; }
34900 : #line 34901 "gram.c"
34901 54 : break;
34902 :
34903 20 : case 529: /* TableLikeOption: DEFAULTS */
34904 : #line 4172 "gram.y"
34905 : { (yyval.ival) = CREATE_TABLE_LIKE_DEFAULTS; }
34906 : #line 34907 "gram.c"
34907 20 : break;
34908 :
34909 12 : case 530: /* TableLikeOption: IDENTITY_P */
34910 : #line 4173 "gram.y"
34911 : { (yyval.ival) = CREATE_TABLE_LIKE_IDENTITY; }
34912 : #line 34913 "gram.c"
34913 12 : break;
34914 :
34915 30 : case 531: /* TableLikeOption: GENERATED */
34916 : #line 4174 "gram.y"
34917 : { (yyval.ival) = CREATE_TABLE_LIKE_GENERATED; }
34918 : #line 34919 "gram.c"
34919 30 : break;
34920 :
34921 50 : case 532: /* TableLikeOption: INDEXES */
34922 : #line 4175 "gram.y"
34923 : { (yyval.ival) = CREATE_TABLE_LIKE_INDEXES; }
34924 : #line 34925 "gram.c"
34925 50 : break;
34926 :
34927 0 : case 533: /* TableLikeOption: STATISTICS */
34928 : #line 4176 "gram.y"
34929 : { (yyval.ival) = CREATE_TABLE_LIKE_STATISTICS; }
34930 : #line 34931 "gram.c"
34931 0 : break;
34932 :
34933 26 : case 534: /* TableLikeOption: STORAGE */
34934 : #line 4177 "gram.y"
34935 : { (yyval.ival) = CREATE_TABLE_LIKE_STORAGE; }
34936 : #line 34937 "gram.c"
34937 26 : break;
34938 :
34939 68 : case 535: /* TableLikeOption: ALL */
34940 : #line 4178 "gram.y"
34941 : { (yyval.ival) = CREATE_TABLE_LIKE_ALL; }
34942 : #line 34943 "gram.c"
34943 68 : break;
34944 :
34945 4458 : case 536: /* TableConstraint: CONSTRAINT name ConstraintElem */
34946 : #line 4188 "gram.y"
34947 : {
34948 : Constraint *n = castNode(Constraint, (yyvsp[0].node));
34949 :
34950 : n->conname = (yyvsp[-1].str);
34951 : n->location = (yylsp[-2]);
34952 : (yyval.node) = (Node *) n;
34953 : }
34954 : #line 34955 "gram.c"
34955 4458 : break;
34956 :
34957 12982 : case 537: /* TableConstraint: ConstraintElem */
34958 : #line 4195 "gram.y"
34959 : { (yyval.node) = (yyvsp[0].node); }
34960 : #line 34961 "gram.c"
34961 12982 : break;
34962 :
34963 1314 : case 538: /* ConstraintElem: CHECK '(' a_expr ')' ConstraintAttributeSpec */
34964 : #line 4200 "gram.y"
34965 : {
34966 : Constraint *n = makeNode(Constraint);
34967 :
34968 : n->contype = CONSTR_CHECK;
34969 : n->location = (yylsp[-4]);
34970 : n->raw_expr = (yyvsp[-2].node);
34971 : n->cooked_expr = NULL;
34972 : processCASbits((yyvsp[0].ival), (yylsp[0]), "CHECK",
34973 : NULL, NULL, &n->is_enforced, &n->skip_validation,
34974 : &n->is_no_inherit, yyscanner);
34975 : n->initially_valid = !n->skip_validation;
34976 : (yyval.node) = (Node *) n;
34977 : }
34978 : #line 34979 "gram.c"
34979 1314 : break;
34980 :
34981 600 : case 539: /* ConstraintElem: NOT NULL_P ColId ConstraintAttributeSpec */
34982 : #line 4214 "gram.y"
34983 : {
34984 : Constraint *n = makeNode(Constraint);
34985 :
34986 : n->contype = CONSTR_NOTNULL;
34987 : n->location = (yylsp[-3]);
34988 : n->keys = list_make1(makeString((yyvsp[-1].str)));
34989 : processCASbits((yyvsp[0].ival), (yylsp[0]), "NOT NULL",
34990 : NULL, NULL, NULL, &n->skip_validation,
34991 : &n->is_no_inherit, yyscanner);
34992 : n->initially_valid = !n->skip_validation;
34993 : (yyval.node) = (Node *) n;
34994 : }
34995 : #line 34996 "gram.c"
34996 600 : break;
34997 :
34998 630 : case 540: /* ConstraintElem: UNIQUE opt_unique_null_treatment '(' columnList opt_without_overlaps ')' opt_c_include opt_definition OptConsTableSpace ConstraintAttributeSpec */
34999 : #line 4228 "gram.y"
35000 : {
35001 : Constraint *n = makeNode(Constraint);
35002 :
35003 : n->contype = CONSTR_UNIQUE;
35004 : n->location = (yylsp[-9]);
35005 : n->nulls_not_distinct = !(yyvsp[-8].boolean);
35006 : n->keys = (yyvsp[-6].list);
35007 : n->without_overlaps = (yyvsp[-5].boolean);
35008 : n->including = (yyvsp[-3].list);
35009 : n->options = (yyvsp[-2].list);
35010 : n->indexname = NULL;
35011 : n->indexspace = (yyvsp[-1].str);
35012 : processCASbits((yyvsp[0].ival), (yylsp[0]), "UNIQUE",
35013 : &n->deferrable, &n->initdeferred, NULL,
35014 : NULL, NULL, yyscanner);
35015 : (yyval.node) = (Node *) n;
35016 : }
35017 : #line 35018 "gram.c"
35018 630 : break;
35019 :
35020 4552 : case 541: /* ConstraintElem: UNIQUE ExistingIndex ConstraintAttributeSpec */
35021 : #line 4246 "gram.y"
35022 : {
35023 : Constraint *n = makeNode(Constraint);
35024 :
35025 : n->contype = CONSTR_UNIQUE;
35026 : n->location = (yylsp[-2]);
35027 : n->keys = NIL;
35028 : n->including = NIL;
35029 : n->options = NIL;
35030 : n->indexname = (yyvsp[-1].str);
35031 : n->indexspace = NULL;
35032 : processCASbits((yyvsp[0].ival), (yylsp[0]), "UNIQUE",
35033 : &n->deferrable, &n->initdeferred, NULL,
35034 : NULL, NULL, yyscanner);
35035 : (yyval.node) = (Node *) n;
35036 : }
35037 : #line 35038 "gram.c"
35038 4552 : break;
35039 :
35040 2378 : case 542: /* ConstraintElem: PRIMARY KEY '(' columnList opt_without_overlaps ')' opt_c_include opt_definition OptConsTableSpace ConstraintAttributeSpec */
35041 : #line 4263 "gram.y"
35042 : {
35043 : Constraint *n = makeNode(Constraint);
35044 :
35045 : n->contype = CONSTR_PRIMARY;
35046 : n->location = (yylsp[-9]);
35047 : n->keys = (yyvsp[-6].list);
35048 : n->without_overlaps = (yyvsp[-5].boolean);
35049 : n->including = (yyvsp[-3].list);
35050 : n->options = (yyvsp[-2].list);
35051 : n->indexname = NULL;
35052 : n->indexspace = (yyvsp[-1].str);
35053 : processCASbits((yyvsp[0].ival), (yylsp[0]), "PRIMARY KEY",
35054 : &n->deferrable, &n->initdeferred, NULL,
35055 : NULL, NULL, yyscanner);
35056 : (yyval.node) = (Node *) n;
35057 : }
35058 : #line 35059 "gram.c"
35059 2378 : break;
35060 :
35061 5894 : case 543: /* ConstraintElem: PRIMARY KEY ExistingIndex ConstraintAttributeSpec */
35062 : #line 4280 "gram.y"
35063 : {
35064 : Constraint *n = makeNode(Constraint);
35065 :
35066 : n->contype = CONSTR_PRIMARY;
35067 : n->location = (yylsp[-3]);
35068 : n->keys = NIL;
35069 : n->including = NIL;
35070 : n->options = NIL;
35071 : n->indexname = (yyvsp[-1].str);
35072 : n->indexspace = NULL;
35073 : processCASbits((yyvsp[0].ival), (yylsp[0]), "PRIMARY KEY",
35074 : &n->deferrable, &n->initdeferred, NULL,
35075 : NULL, NULL, yyscanner);
35076 : (yyval.node) = (Node *) n;
35077 : }
35078 : #line 35079 "gram.c"
35079 5894 : break;
35080 :
35081 238 : case 544: /* ConstraintElem: EXCLUDE access_method_clause '(' ExclusionConstraintList ')' opt_c_include opt_definition OptConsTableSpace OptWhereClause ConstraintAttributeSpec */
35082 : #line 4298 "gram.y"
35083 : {
35084 : Constraint *n = makeNode(Constraint);
35085 :
35086 : n->contype = CONSTR_EXCLUSION;
35087 : n->location = (yylsp[-9]);
35088 : n->access_method = (yyvsp[-8].str);
35089 : n->exclusions = (yyvsp[-6].list);
35090 : n->including = (yyvsp[-4].list);
35091 : n->options = (yyvsp[-3].list);
35092 : n->indexname = NULL;
35093 : n->indexspace = (yyvsp[-2].str);
35094 : n->where_clause = (yyvsp[-1].node);
35095 : processCASbits((yyvsp[0].ival), (yylsp[0]), "EXCLUDE",
35096 : &n->deferrable, &n->initdeferred, NULL,
35097 : NULL, NULL, yyscanner);
35098 : (yyval.node) = (Node *) n;
35099 : }
35100 : #line 35101 "gram.c"
35101 238 : break;
35102 :
35103 1834 : case 545: /* ConstraintElem: FOREIGN KEY '(' columnList optionalPeriodName ')' REFERENCES qualified_name opt_column_and_period_list key_match key_actions ConstraintAttributeSpec */
35104 : #line 4317 "gram.y"
35105 : {
35106 : Constraint *n = makeNode(Constraint);
35107 :
35108 : n->contype = CONSTR_FOREIGN;
35109 : n->location = (yylsp[-11]);
35110 : n->pktable = (yyvsp[-4].range);
35111 : n->fk_attrs = (yyvsp[-8].list);
35112 : if ((yyvsp[-7].node))
35113 : {
35114 : n->fk_attrs = lappend(n->fk_attrs, (yyvsp[-7].node));
35115 : n->fk_with_period = true;
35116 : }
35117 : n->pk_attrs = linitial((yyvsp[-3].list));
35118 : if (lsecond((yyvsp[-3].list)))
35119 : {
35120 : n->pk_attrs = lappend(n->pk_attrs, lsecond((yyvsp[-3].list)));
35121 : n->pk_with_period = true;
35122 : }
35123 : n->fk_matchtype = (yyvsp[-2].ival);
35124 : n->fk_upd_action = ((yyvsp[-1].keyactions))->updateAction->action;
35125 : n->fk_del_action = ((yyvsp[-1].keyactions))->deleteAction->action;
35126 : n->fk_del_set_cols = ((yyvsp[-1].keyactions))->deleteAction->cols;
35127 : processCASbits((yyvsp[0].ival), (yylsp[0]), "FOREIGN KEY",
35128 : &n->deferrable, &n->initdeferred,
35129 : &n->is_enforced, &n->skip_validation, NULL,
35130 : yyscanner);
35131 : n->initially_valid = !n->skip_validation;
35132 : (yyval.node) = (Node *) n;
35133 : }
35134 : #line 35135 "gram.c"
35135 1834 : break;
35136 :
35137 156 : case 546: /* DomainConstraint: CONSTRAINT name DomainConstraintElem */
35138 : #line 4361 "gram.y"
35139 : {
35140 : Constraint *n = castNode(Constraint, (yyvsp[0].node));
35141 :
35142 : n->conname = (yyvsp[-1].str);
35143 : n->location = (yylsp[-2]);
35144 : (yyval.node) = (Node *) n;
35145 : }
35146 : #line 35147 "gram.c"
35147 156 : break;
35148 :
35149 18 : case 547: /* DomainConstraint: DomainConstraintElem */
35150 : #line 4368 "gram.y"
35151 : { (yyval.node) = (yyvsp[0].node); }
35152 : #line 35153 "gram.c"
35153 18 : break;
35154 :
35155 156 : case 548: /* DomainConstraintElem: CHECK '(' a_expr ')' ConstraintAttributeSpec */
35156 : #line 4373 "gram.y"
35157 : {
35158 : Constraint *n = makeNode(Constraint);
35159 :
35160 : n->contype = CONSTR_CHECK;
35161 : n->location = (yylsp[-4]);
35162 : n->raw_expr = (yyvsp[-2].node);
35163 : n->cooked_expr = NULL;
35164 : processCASbits((yyvsp[0].ival), (yylsp[0]), "CHECK",
35165 : NULL, NULL, NULL, &n->skip_validation,
35166 : &n->is_no_inherit, yyscanner);
35167 : n->is_enforced = true;
35168 : n->initially_valid = !n->skip_validation;
35169 : (yyval.node) = (Node *) n;
35170 : }
35171 : #line 35172 "gram.c"
35172 144 : break;
35173 :
35174 30 : case 549: /* DomainConstraintElem: NOT NULL_P ConstraintAttributeSpec */
35175 : #line 4388 "gram.y"
35176 : {
35177 : Constraint *n = makeNode(Constraint);
35178 :
35179 : n->contype = CONSTR_NOTNULL;
35180 : n->location = (yylsp[-2]);
35181 : n->keys = list_make1(makeString("value"));
35182 : /* no NOT VALID, NO INHERIT support */
35183 : processCASbits((yyvsp[0].ival), (yylsp[0]), "NOT NULL",
35184 : NULL, NULL, NULL,
35185 : NULL, NULL, yyscanner);
35186 : n->initially_valid = true;
35187 : (yyval.node) = (Node *) n;
35188 : }
35189 : #line 35190 "gram.c"
35190 30 : break;
35191 :
35192 138 : case 550: /* opt_no_inherit: NO INHERIT */
35193 : #line 4403 "gram.y"
35194 : { (yyval.boolean) = true; }
35195 : #line 35196 "gram.c"
35196 138 : break;
35197 :
35198 8072 : case 551: /* opt_no_inherit: %empty */
35199 : #line 4404 "gram.y"
35200 : { (yyval.boolean) = false; }
35201 : #line 35202 "gram.c"
35202 8072 : break;
35203 :
35204 570 : case 552: /* opt_without_overlaps: WITHOUT OVERLAPS */
35205 : #line 4408 "gram.y"
35206 : { (yyval.boolean) = true; }
35207 : #line 35208 "gram.c"
35208 570 : break;
35209 :
35210 2438 : case 553: /* opt_without_overlaps: %empty */
35211 : #line 4409 "gram.y"
35212 : { (yyval.boolean) = false; }
35213 : #line 35214 "gram.c"
35214 2438 : break;
35215 :
35216 15054 : case 554: /* opt_column_list: '(' columnList ')' */
35217 : #line 4413 "gram.y"
35218 : { (yyval.list) = (yyvsp[-1].list); }
35219 : #line 35220 "gram.c"
35220 15054 : break;
35221 :
35222 42280 : case 555: /* opt_column_list: %empty */
35223 : #line 4414 "gram.y"
35224 : { (yyval.list) = NIL; }
35225 : #line 35226 "gram.c"
35226 42280 : break;
35227 :
35228 21644 : case 556: /* columnList: columnElem */
35229 : #line 4418 "gram.y"
35230 : { (yyval.list) = list_make1((yyvsp[0].node)); }
35231 : #line 35232 "gram.c"
35232 21644 : break;
35233 :
35234 44132 : case 557: /* columnList: columnList ',' columnElem */
35235 : #line 4419 "gram.y"
35236 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
35237 : #line 35238 "gram.c"
35238 44132 : break;
35239 :
35240 472 : case 558: /* optionalPeriodName: ',' PERIOD columnElem */
35241 : #line 4423 "gram.y"
35242 : { (yyval.node) = (yyvsp[0].node); }
35243 : #line 35244 "gram.c"
35244 472 : break;
35245 :
35246 2530 : case 559: /* optionalPeriodName: %empty */
35247 : #line 4424 "gram.y"
35248 : { (yyval.node) = NULL; }
35249 : #line 35250 "gram.c"
35250 2530 : break;
35251 :
35252 1162 : case 560: /* opt_column_and_period_list: '(' columnList optionalPeriodName ')' */
35253 : #line 4428 "gram.y"
35254 : { (yyval.list) = list_make2((yyvsp[-2].list), (yyvsp[-1].node)); }
35255 : #line 35256 "gram.c"
35256 1162 : break;
35257 :
35258 678 : case 561: /* opt_column_and_period_list: %empty */
35259 : #line 4429 "gram.y"
35260 : { (yyval.list) = list_make2(NIL, NULL); }
35261 : #line 35262 "gram.c"
35262 678 : break;
35263 :
35264 66248 : case 562: /* columnElem: ColId */
35265 : #line 4433 "gram.y"
35266 : {
35267 : (yyval.node) = (Node *) makeString((yyvsp[0].str));
35268 : }
35269 : #line 35270 "gram.c"
35270 66248 : break;
35271 :
35272 176 : case 563: /* opt_c_include: INCLUDE '(' columnList ')' */
35273 : #line 4438 "gram.y"
35274 : { (yyval.list) = (yyvsp[-1].list); }
35275 : #line 35276 "gram.c"
35276 176 : break;
35277 :
35278 3070 : case 564: /* opt_c_include: %empty */
35279 : #line 4439 "gram.y"
35280 : { (yyval.list) = NIL; }
35281 : #line 35282 "gram.c"
35282 3070 : break;
35283 :
35284 100 : case 565: /* key_match: MATCH FULL */
35285 : #line 4443 "gram.y"
35286 : {
35287 : (yyval.ival) = FKCONSTR_MATCH_FULL;
35288 : }
35289 : #line 35290 "gram.c"
35290 100 : break;
35291 :
35292 0 : case 566: /* key_match: MATCH PARTIAL */
35293 : #line 4447 "gram.y"
35294 : {
35295 : ereport(ERROR,
35296 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
35297 : errmsg("MATCH PARTIAL not yet implemented"),
35298 : parser_errposition((yylsp[-1]))));
35299 : (yyval.ival) = FKCONSTR_MATCH_PARTIAL;
35300 : }
35301 : #line 35302 "gram.c"
35302 : break;
35303 :
35304 6 : case 567: /* key_match: MATCH SIMPLE */
35305 : #line 4455 "gram.y"
35306 : {
35307 : (yyval.ival) = FKCONSTR_MATCH_SIMPLE;
35308 : }
35309 : #line 35310 "gram.c"
35310 6 : break;
35311 :
35312 2562 : case 568: /* key_match: %empty */
35313 : #line 4459 "gram.y"
35314 : {
35315 : (yyval.ival) = FKCONSTR_MATCH_SIMPLE;
35316 : }
35317 : #line 35318 "gram.c"
35318 2562 : break;
35319 :
35320 238 : case 569: /* ExclusionConstraintList: ExclusionConstraintElem */
35321 : #line 4465 "gram.y"
35322 : { (yyval.list) = list_make1((yyvsp[0].list)); }
35323 : #line 35324 "gram.c"
35324 238 : break;
35325 :
35326 110 : case 570: /* ExclusionConstraintList: ExclusionConstraintList ',' ExclusionConstraintElem */
35327 : #line 4467 "gram.y"
35328 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); }
35329 : #line 35330 "gram.c"
35330 110 : break;
35331 :
35332 348 : case 571: /* ExclusionConstraintElem: index_elem WITH any_operator */
35333 : #line 4471 "gram.y"
35334 : {
35335 : (yyval.list) = list_make2((yyvsp[-2].ielem), (yyvsp[0].list));
35336 : }
35337 : #line 35338 "gram.c"
35338 348 : break;
35339 :
35340 0 : case 572: /* ExclusionConstraintElem: index_elem WITH OPERATOR '(' any_operator ')' */
35341 : #line 4476 "gram.y"
35342 : {
35343 : (yyval.list) = list_make2((yyvsp[-5].ielem), (yyvsp[-1].list));
35344 : }
35345 : #line 35346 "gram.c"
35346 0 : break;
35347 :
35348 440 : case 573: /* OptWhereClause: WHERE '(' a_expr ')' */
35349 : #line 4482 "gram.y"
35350 : { (yyval.node) = (yyvsp[-1].node); }
35351 : #line 35352 "gram.c"
35352 440 : break;
35353 :
35354 1242 : case 574: /* OptWhereClause: %empty */
35355 : #line 4483 "gram.y"
35356 : { (yyval.node) = NULL; }
35357 : #line 35358 "gram.c"
35358 1242 : break;
35359 :
35360 76 : case 575: /* key_actions: key_update */
35361 : #line 4488 "gram.y"
35362 : {
35363 : KeyActions *n = palloc(sizeof(KeyActions));
35364 :
35365 : n->updateAction = (yyvsp[0].keyaction);
35366 : n->deleteAction = palloc(sizeof(KeyAction));
35367 : n->deleteAction->action = FKCONSTR_ACTION_NOACTION;
35368 : n->deleteAction->cols = NIL;
35369 : (yyval.keyactions) = n;
35370 : }
35371 : #line 35372 "gram.c"
35372 76 : break;
35373 :
35374 150 : case 576: /* key_actions: key_delete */
35375 : #line 4498 "gram.y"
35376 : {
35377 : KeyActions *n = palloc(sizeof(KeyActions));
35378 :
35379 : n->updateAction = palloc(sizeof(KeyAction));
35380 : n->updateAction->action = FKCONSTR_ACTION_NOACTION;
35381 : n->updateAction->cols = NIL;
35382 : n->deleteAction = (yyvsp[0].keyaction);
35383 : (yyval.keyactions) = n;
35384 : }
35385 : #line 35386 "gram.c"
35386 150 : break;
35387 :
35388 162 : case 577: /* key_actions: key_update key_delete */
35389 : #line 4508 "gram.y"
35390 : {
35391 : KeyActions *n = palloc(sizeof(KeyActions));
35392 :
35393 : n->updateAction = (yyvsp[-1].keyaction);
35394 : n->deleteAction = (yyvsp[0].keyaction);
35395 : (yyval.keyactions) = n;
35396 : }
35397 : #line 35398 "gram.c"
35398 162 : break;
35399 :
35400 150 : case 578: /* key_actions: key_delete key_update */
35401 : #line 4516 "gram.y"
35402 : {
35403 : KeyActions *n = palloc(sizeof(KeyActions));
35404 :
35405 : n->updateAction = (yyvsp[0].keyaction);
35406 : n->deleteAction = (yyvsp[-1].keyaction);
35407 : (yyval.keyactions) = n;
35408 : }
35409 : #line 35410 "gram.c"
35410 150 : break;
35411 :
35412 2124 : case 579: /* key_actions: %empty */
35413 : #line 4524 "gram.y"
35414 : {
35415 : KeyActions *n = palloc(sizeof(KeyActions));
35416 :
35417 : n->updateAction = palloc(sizeof(KeyAction));
35418 : n->updateAction->action = FKCONSTR_ACTION_NOACTION;
35419 : n->updateAction->cols = NIL;
35420 : n->deleteAction = palloc(sizeof(KeyAction));
35421 : n->deleteAction->action = FKCONSTR_ACTION_NOACTION;
35422 : n->deleteAction->cols = NIL;
35423 : (yyval.keyactions) = n;
35424 : }
35425 : #line 35426 "gram.c"
35426 2124 : break;
35427 :
35428 394 : case 580: /* key_update: ON UPDATE key_action */
35429 : #line 4538 "gram.y"
35430 : {
35431 : if (((yyvsp[0].keyaction))->cols)
35432 : ereport(ERROR,
35433 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
35434 : errmsg("a column list with %s is only supported for ON DELETE actions",
35435 : ((yyvsp[0].keyaction))->action == FKCONSTR_ACTION_SETNULL ? "SET NULL" : "SET DEFAULT"),
35436 : parser_errposition((yylsp[-2]))));
35437 : (yyval.keyaction) = (yyvsp[0].keyaction);
35438 : }
35439 : #line 35440 "gram.c"
35440 388 : break;
35441 :
35442 462 : case 581: /* key_delete: ON DELETE_P key_action */
35443 : #line 4550 "gram.y"
35444 : {
35445 : (yyval.keyaction) = (yyvsp[0].keyaction);
35446 : }
35447 : #line 35448 "gram.c"
35448 462 : break;
35449 :
35450 80 : case 582: /* key_action: NO ACTION */
35451 : #line 4557 "gram.y"
35452 : {
35453 : KeyAction *n = palloc(sizeof(KeyAction));
35454 :
35455 : n->action = FKCONSTR_ACTION_NOACTION;
35456 : n->cols = NIL;
35457 : (yyval.keyaction) = n;
35458 : }
35459 : #line 35460 "gram.c"
35460 80 : break;
35461 :
35462 48 : case 583: /* key_action: RESTRICT */
35463 : #line 4565 "gram.y"
35464 : {
35465 : KeyAction *n = palloc(sizeof(KeyAction));
35466 :
35467 : n->action = FKCONSTR_ACTION_RESTRICT;
35468 : n->cols = NIL;
35469 : (yyval.keyaction) = n;
35470 : }
35471 : #line 35472 "gram.c"
35472 48 : break;
35473 :
35474 434 : case 584: /* key_action: CASCADE */
35475 : #line 4573 "gram.y"
35476 : {
35477 : KeyAction *n = palloc(sizeof(KeyAction));
35478 :
35479 : n->action = FKCONSTR_ACTION_CASCADE;
35480 : n->cols = NIL;
35481 : (yyval.keyaction) = n;
35482 : }
35483 : #line 35484 "gram.c"
35484 434 : break;
35485 :
35486 192 : case 585: /* key_action: SET NULL_P opt_column_list */
35487 : #line 4581 "gram.y"
35488 : {
35489 : KeyAction *n = palloc(sizeof(KeyAction));
35490 :
35491 : n->action = FKCONSTR_ACTION_SETNULL;
35492 : n->cols = (yyvsp[0].list);
35493 : (yyval.keyaction) = n;
35494 : }
35495 : #line 35496 "gram.c"
35496 192 : break;
35497 :
35498 102 : case 586: /* key_action: SET DEFAULT opt_column_list */
35499 : #line 4589 "gram.y"
35500 : {
35501 : KeyAction *n = palloc(sizeof(KeyAction));
35502 :
35503 : n->action = FKCONSTR_ACTION_SETDEFAULT;
35504 : n->cols = (yyvsp[0].list);
35505 : (yyval.keyaction) = n;
35506 : }
35507 : #line 35508 "gram.c"
35508 102 : break;
35509 :
35510 2160 : case 587: /* OptInherit: INHERITS '(' qualified_name_list ')' */
35511 : #line 4598 "gram.y"
35512 : { (yyval.list) = (yyvsp[-1].list); }
35513 : #line 35514 "gram.c"
35514 2160 : break;
35515 :
35516 28906 : case 588: /* OptInherit: %empty */
35517 : #line 4599 "gram.y"
35518 : { (yyval.list) = NIL; }
35519 : #line 35520 "gram.c"
35520 28906 : break;
35521 :
35522 5138 : case 589: /* OptPartitionSpec: PartitionSpec */
35523 : #line 4603 "gram.y"
35524 : { (yyval.partspec) = (yyvsp[0].partspec); }
35525 : #line 35526 "gram.c"
35526 5138 : break;
35527 :
35528 33534 : case 590: /* OptPartitionSpec: %empty */
35529 : #line 4604 "gram.y"
35530 : { (yyval.partspec) = NULL; }
35531 : #line 35532 "gram.c"
35532 33534 : break;
35533 :
35534 5144 : case 591: /* PartitionSpec: PARTITION BY ColId '(' part_params ')' */
35535 : #line 4608 "gram.y"
35536 : {
35537 : PartitionSpec *n = makeNode(PartitionSpec);
35538 :
35539 : n->strategy = parsePartitionStrategy((yyvsp[-3].str), (yylsp[-3]), yyscanner);
35540 : n->partParams = (yyvsp[-1].list);
35541 : n->location = (yylsp[-5]);
35542 :
35543 : (yyval.partspec) = n;
35544 : }
35545 : #line 35546 "gram.c"
35546 5138 : break;
35547 :
35548 5144 : case 592: /* part_params: part_elem */
35549 : #line 4619 "gram.y"
35550 : { (yyval.list) = list_make1((yyvsp[0].partelem)); }
35551 : #line 35552 "gram.c"
35552 5144 : break;
35553 :
35554 466 : case 593: /* part_params: part_params ',' part_elem */
35555 : #line 4620 "gram.y"
35556 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].partelem)); }
35557 : #line 35558 "gram.c"
35558 466 : break;
35559 :
35560 5290 : case 594: /* part_elem: ColId opt_collate opt_qualified_name */
35561 : #line 4624 "gram.y"
35562 : {
35563 : PartitionElem *n = makeNode(PartitionElem);
35564 :
35565 : n->name = (yyvsp[-2].str);
35566 : n->expr = NULL;
35567 : n->collation = (yyvsp[-1].list);
35568 : n->opclass = (yyvsp[0].list);
35569 : n->location = (yylsp[-2]);
35570 : (yyval.partelem) = n;
35571 : }
35572 : #line 35573 "gram.c"
35573 5290 : break;
35574 :
35575 134 : case 595: /* part_elem: func_expr_windowless opt_collate opt_qualified_name */
35576 : #line 4635 "gram.y"
35577 : {
35578 : PartitionElem *n = makeNode(PartitionElem);
35579 :
35580 : n->name = NULL;
35581 : n->expr = (yyvsp[-2].node);
35582 : n->collation = (yyvsp[-1].list);
35583 : n->opclass = (yyvsp[0].list);
35584 : n->location = (yylsp[-2]);
35585 : (yyval.partelem) = n;
35586 : }
35587 : #line 35588 "gram.c"
35588 134 : break;
35589 :
35590 186 : case 596: /* part_elem: '(' a_expr ')' opt_collate opt_qualified_name */
35591 : #line 4646 "gram.y"
35592 : {
35593 : PartitionElem *n = makeNode(PartitionElem);
35594 :
35595 : n->name = NULL;
35596 : n->expr = (yyvsp[-3].node);
35597 : n->collation = (yyvsp[-1].list);
35598 : n->opclass = (yyvsp[0].list);
35599 : n->location = (yylsp[-4]);
35600 : (yyval.partelem) = n;
35601 : }
35602 : #line 35603 "gram.c"
35603 186 : break;
35604 :
35605 122 : case 597: /* table_access_method_clause: USING name */
35606 : #line 4659 "gram.y"
35607 : { (yyval.str) = (yyvsp[0].str); }
35608 : #line 35609 "gram.c"
35609 122 : break;
35610 :
35611 40474 : case 598: /* table_access_method_clause: %empty */
35612 : #line 4660 "gram.y"
35613 : { (yyval.str) = NULL; }
35614 : #line 35615 "gram.c"
35615 40474 : break;
35616 :
35617 790 : case 599: /* OptWith: WITH reloptions */
35618 : #line 4665 "gram.y"
35619 : { (yyval.list) = (yyvsp[0].list); }
35620 : #line 35621 "gram.c"
35621 790 : break;
35622 :
35623 24 : case 600: /* OptWith: WITHOUT OIDS */
35624 : #line 4666 "gram.y"
35625 : { (yyval.list) = NIL; }
35626 : #line 35627 "gram.c"
35627 24 : break;
35628 :
35629 39178 : case 601: /* OptWith: %empty */
35630 : #line 4667 "gram.y"
35631 : { (yyval.list) = NIL; }
35632 : #line 35633 "gram.c"
35633 39178 : break;
35634 :
35635 60 : case 602: /* OnCommitOption: ON COMMIT DROP */
35636 : #line 4670 "gram.y"
35637 : { (yyval.oncommit) = ONCOMMIT_DROP; }
35638 : #line 35639 "gram.c"
35639 60 : break;
35640 :
35641 104 : case 603: /* OnCommitOption: ON COMMIT DELETE_P ROWS */
35642 : #line 4671 "gram.y"
35643 : { (yyval.oncommit) = ONCOMMIT_DELETE_ROWS; }
35644 : #line 35645 "gram.c"
35645 104 : break;
35646 :
35647 24 : case 604: /* OnCommitOption: ON COMMIT PRESERVE ROWS */
35648 : #line 4672 "gram.y"
35649 : { (yyval.oncommit) = ONCOMMIT_PRESERVE_ROWS; }
35650 : #line 35651 "gram.c"
35651 24 : break;
35652 :
35653 39804 : case 605: /* OnCommitOption: %empty */
35654 : #line 4673 "gram.y"
35655 : { (yyval.oncommit) = ONCOMMIT_NOOP; }
35656 : #line 35657 "gram.c"
35657 39804 : break;
35658 :
35659 206 : case 606: /* OptTableSpace: TABLESPACE name */
35660 : #line 4676 "gram.y"
35661 : { (yyval.str) = (yyvsp[0].str); }
35662 : #line 35663 "gram.c"
35663 206 : break;
35664 :
35665 47274 : case 607: /* OptTableSpace: %empty */
35666 : #line 4677 "gram.y"
35667 : { (yyval.str) = NULL; }
35668 : #line 35669 "gram.c"
35669 47274 : break;
35670 :
35671 66 : case 608: /* OptConsTableSpace: USING INDEX TABLESPACE name */
35672 : #line 4680 "gram.y"
35673 : { (yyval.str) = (yyvsp[0].str); }
35674 : #line 35675 "gram.c"
35675 66 : break;
35676 :
35677 9374 : case 609: /* OptConsTableSpace: %empty */
35678 : #line 4681 "gram.y"
35679 : { (yyval.str) = NULL; }
35680 : #line 35681 "gram.c"
35681 9374 : break;
35682 :
35683 10446 : case 610: /* ExistingIndex: USING INDEX name */
35684 : #line 4684 "gram.y"
35685 : { (yyval.str) = (yyvsp[0].str); }
35686 : #line 35687 "gram.c"
35687 10446 : break;
35688 :
35689 660 : case 611: /* CreateStatsStmt: CREATE STATISTICS opt_qualified_name opt_name_list ON stats_params FROM from_list */
35690 : #line 4706 "gram.y"
35691 : {
35692 : CreateStatsStmt *n = makeNode(CreateStatsStmt);
35693 :
35694 : n->defnames = (yyvsp[-5].list);
35695 : n->stat_types = (yyvsp[-4].list);
35696 : n->exprs = (yyvsp[-2].list);
35697 : n->relations = (yyvsp[0].list);
35698 : n->stxcomment = NULL;
35699 : n->if_not_exists = false;
35700 : (yyval.node) = (Node *) n;
35701 : }
35702 : #line 35703 "gram.c"
35703 660 : break;
35704 :
35705 12 : case 612: /* CreateStatsStmt: CREATE STATISTICS IF_P NOT EXISTS any_name opt_name_list ON stats_params FROM from_list */
35706 : #line 4719 "gram.y"
35707 : {
35708 : CreateStatsStmt *n = makeNode(CreateStatsStmt);
35709 :
35710 : n->defnames = (yyvsp[-5].list);
35711 : n->stat_types = (yyvsp[-4].list);
35712 : n->exprs = (yyvsp[-2].list);
35713 : n->relations = (yyvsp[0].list);
35714 : n->stxcomment = NULL;
35715 : n->if_not_exists = true;
35716 : (yyval.node) = (Node *) n;
35717 : }
35718 : #line 35719 "gram.c"
35719 12 : break;
35720 :
35721 684 : case 613: /* stats_params: stats_param */
35722 : #line 4739 "gram.y"
35723 : { (yyval.list) = list_make1((yyvsp[0].selem)); }
35724 : #line 35725 "gram.c"
35725 684 : break;
35726 :
35727 988 : case 614: /* stats_params: stats_params ',' stats_param */
35728 : #line 4740 "gram.y"
35729 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].selem)); }
35730 : #line 35731 "gram.c"
35731 988 : break;
35732 :
35733 1192 : case 615: /* stats_param: ColId */
35734 : #line 4744 "gram.y"
35735 : {
35736 : (yyval.selem) = makeNode(StatsElem);
35737 : (yyval.selem)->name = (yyvsp[0].str);
35738 : (yyval.selem)->expr = NULL;
35739 : }
35740 : #line 35741 "gram.c"
35741 1192 : break;
35742 :
35743 34 : case 616: /* stats_param: func_expr_windowless */
35744 : #line 4750 "gram.y"
35745 : {
35746 : (yyval.selem) = makeNode(StatsElem);
35747 : (yyval.selem)->name = NULL;
35748 : (yyval.selem)->expr = (yyvsp[0].node);
35749 : }
35750 : #line 35751 "gram.c"
35751 34 : break;
35752 :
35753 446 : case 617: /* stats_param: '(' a_expr ')' */
35754 : #line 4756 "gram.y"
35755 : {
35756 : (yyval.selem) = makeNode(StatsElem);
35757 : (yyval.selem)->name = NULL;
35758 : (yyval.selem)->expr = (yyvsp[-1].node);
35759 : }
35760 : #line 35761 "gram.c"
35761 446 : break;
35762 :
35763 20 : case 618: /* AlterStatsStmt: ALTER STATISTICS any_name SET STATISTICS set_statistics_value */
35764 : #line 4773 "gram.y"
35765 : {
35766 : AlterStatsStmt *n = makeNode(AlterStatsStmt);
35767 :
35768 : n->defnames = (yyvsp[-3].list);
35769 : n->missing_ok = false;
35770 : n->stxstattarget = (yyvsp[0].node);
35771 : (yyval.node) = (Node *) n;
35772 : }
35773 : #line 35774 "gram.c"
35774 20 : break;
35775 :
35776 6 : case 619: /* AlterStatsStmt: ALTER STATISTICS IF_P EXISTS any_name SET STATISTICS set_statistics_value */
35777 : #line 4782 "gram.y"
35778 : {
35779 : AlterStatsStmt *n = makeNode(AlterStatsStmt);
35780 :
35781 : n->defnames = (yyvsp[-3].list);
35782 : n->missing_ok = true;
35783 : n->stxstattarget = (yyvsp[0].node);
35784 : (yyval.node) = (Node *) n;
35785 : }
35786 : #line 35787 "gram.c"
35787 6 : break;
35788 :
35789 1192 : case 620: /* CreateAsStmt: CREATE OptTemp TABLE create_as_target AS SelectStmt opt_with_data */
35790 : #line 4804 "gram.y"
35791 : {
35792 : CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt);
35793 :
35794 : ctas->query = (yyvsp[-1].node);
35795 : ctas->into = (yyvsp[-3].into);
35796 : ctas->objtype = OBJECT_TABLE;
35797 : ctas->is_select_into = false;
35798 : ctas->if_not_exists = false;
35799 : /* cram additional flags into the IntoClause */
35800 : (yyvsp[-3].into)->rel->relpersistence = (yyvsp[-5].ival);
35801 : (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean));
35802 : (yyval.node) = (Node *) ctas;
35803 : }
35804 : #line 35805 "gram.c"
35805 1192 : break;
35806 :
35807 52 : case 621: /* CreateAsStmt: CREATE OptTemp TABLE IF_P NOT EXISTS create_as_target AS SelectStmt opt_with_data */
35808 : #line 4818 "gram.y"
35809 : {
35810 : CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt);
35811 :
35812 : ctas->query = (yyvsp[-1].node);
35813 : ctas->into = (yyvsp[-3].into);
35814 : ctas->objtype = OBJECT_TABLE;
35815 : ctas->is_select_into = false;
35816 : ctas->if_not_exists = true;
35817 : /* cram additional flags into the IntoClause */
35818 : (yyvsp[-3].into)->rel->relpersistence = (yyvsp[-8].ival);
35819 : (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean));
35820 : (yyval.node) = (Node *) ctas;
35821 : }
35822 : #line 35823 "gram.c"
35823 52 : break;
35824 :
35825 1332 : case 622: /* create_as_target: qualified_name opt_column_list table_access_method_clause OptWith OnCommitOption OptTableSpace */
35826 : #line 4836 "gram.y"
35827 : {
35828 : (yyval.into) = makeNode(IntoClause);
35829 : (yyval.into)->rel = (yyvsp[-5].range);
35830 : (yyval.into)->colNames = (yyvsp[-4].list);
35831 : (yyval.into)->accessMethod = (yyvsp[-3].str);
35832 : (yyval.into)->options = (yyvsp[-2].list);
35833 : (yyval.into)->onCommit = (yyvsp[-1].oncommit);
35834 : (yyval.into)->tableSpaceName = (yyvsp[0].str);
35835 : (yyval.into)->viewQuery = NULL;
35836 : (yyval.into)->skipData = false; /* might get changed later */
35837 : }
35838 : #line 35839 "gram.c"
35839 1332 : break;
35840 :
35841 36 : case 623: /* opt_with_data: WITH DATA_P */
35842 : #line 4850 "gram.y"
35843 : { (yyval.boolean) = true; }
35844 : #line 35845 "gram.c"
35845 36 : break;
35846 :
35847 234 : case 624: /* opt_with_data: WITH NO DATA_P */
35848 : #line 4851 "gram.y"
35849 : { (yyval.boolean) = false; }
35850 : #line 35851 "gram.c"
35851 234 : break;
35852 :
35853 1944 : case 625: /* opt_with_data: %empty */
35854 : #line 4852 "gram.y"
35855 : { (yyval.boolean) = true; }
35856 : #line 35857 "gram.c"
35857 1944 : break;
35858 :
35859 550 : case 626: /* CreateMatViewStmt: CREATE OptNoLog MATERIALIZED VIEW create_mv_target AS SelectStmt opt_with_data */
35860 : #line 4865 "gram.y"
35861 : {
35862 : CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt);
35863 :
35864 : ctas->query = (yyvsp[-1].node);
35865 : ctas->into = (yyvsp[-3].into);
35866 : ctas->objtype = OBJECT_MATVIEW;
35867 : ctas->is_select_into = false;
35868 : ctas->if_not_exists = false;
35869 : /* cram additional flags into the IntoClause */
35870 : (yyvsp[-3].into)->rel->relpersistence = (yyvsp[-6].ival);
35871 : (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean));
35872 : (yyval.node) = (Node *) ctas;
35873 : }
35874 : #line 35875 "gram.c"
35875 550 : break;
35876 :
35877 48 : case 627: /* CreateMatViewStmt: CREATE OptNoLog MATERIALIZED VIEW IF_P NOT EXISTS create_mv_target AS SelectStmt opt_with_data */
35878 : #line 4879 "gram.y"
35879 : {
35880 : CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt);
35881 :
35882 : ctas->query = (yyvsp[-1].node);
35883 : ctas->into = (yyvsp[-3].into);
35884 : ctas->objtype = OBJECT_MATVIEW;
35885 : ctas->is_select_into = false;
35886 : ctas->if_not_exists = true;
35887 : /* cram additional flags into the IntoClause */
35888 : (yyvsp[-3].into)->rel->relpersistence = (yyvsp[-9].ival);
35889 : (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean));
35890 : (yyval.node) = (Node *) ctas;
35891 : }
35892 : #line 35893 "gram.c"
35893 48 : break;
35894 :
35895 598 : case 628: /* create_mv_target: qualified_name opt_column_list table_access_method_clause opt_reloptions OptTableSpace */
35896 : #line 4896 "gram.y"
35897 : {
35898 : (yyval.into) = makeNode(IntoClause);
35899 : (yyval.into)->rel = (yyvsp[-4].range);
35900 : (yyval.into)->colNames = (yyvsp[-3].list);
35901 : (yyval.into)->accessMethod = (yyvsp[-2].str);
35902 : (yyval.into)->options = (yyvsp[-1].list);
35903 : (yyval.into)->onCommit = ONCOMMIT_NOOP;
35904 : (yyval.into)->tableSpaceName = (yyvsp[0].str);
35905 : (yyval.into)->viewQuery = NULL; /* filled at analysis time */
35906 : (yyval.into)->skipData = false; /* might get changed later */
35907 : }
35908 : #line 35909 "gram.c"
35909 598 : break;
35910 :
35911 0 : case 629: /* OptNoLog: UNLOGGED */
35912 : #line 4909 "gram.y"
35913 : { (yyval.ival) = RELPERSISTENCE_UNLOGGED; }
35914 : #line 35915 "gram.c"
35915 0 : break;
35916 :
35917 598 : case 630: /* OptNoLog: %empty */
35918 : #line 4910 "gram.y"
35919 : { (yyval.ival) = RELPERSISTENCE_PERMANENT; }
35920 : #line 35921 "gram.c"
35921 598 : break;
35922 :
35923 284 : case 631: /* RefreshMatViewStmt: REFRESH MATERIALIZED VIEW opt_concurrently qualified_name opt_with_data */
35924 : #line 4923 "gram.y"
35925 : {
35926 : RefreshMatViewStmt *n = makeNode(RefreshMatViewStmt);
35927 :
35928 : n->concurrent = (yyvsp[-2].boolean);
35929 : n->relation = (yyvsp[-1].range);
35930 : n->skipData = !((yyvsp[0].boolean));
35931 : (yyval.node) = (Node *) n;
35932 : }
35933 : #line 35934 "gram.c"
35934 284 : break;
35935 :
35936 720 : case 632: /* CreateSeqStmt: CREATE OptTemp SEQUENCE qualified_name OptSeqOptList */
35937 : #line 4944 "gram.y"
35938 : {
35939 : CreateSeqStmt *n = makeNode(CreateSeqStmt);
35940 :
35941 : (yyvsp[-1].range)->relpersistence = (yyvsp[-3].ival);
35942 : n->sequence = (yyvsp[-1].range);
35943 : n->options = (yyvsp[0].list);
35944 : n->ownerId = InvalidOid;
35945 : n->if_not_exists = false;
35946 : (yyval.node) = (Node *) n;
35947 : }
35948 : #line 35949 "gram.c"
35949 720 : break;
35950 :
35951 24 : case 633: /* CreateSeqStmt: CREATE OptTemp SEQUENCE IF_P NOT EXISTS qualified_name OptSeqOptList */
35952 : #line 4955 "gram.y"
35953 : {
35954 : CreateSeqStmt *n = makeNode(CreateSeqStmt);
35955 :
35956 : (yyvsp[-1].range)->relpersistence = (yyvsp[-6].ival);
35957 : n->sequence = (yyvsp[-1].range);
35958 : n->options = (yyvsp[0].list);
35959 : n->ownerId = InvalidOid;
35960 : n->if_not_exists = true;
35961 : (yyval.node) = (Node *) n;
35962 : }
35963 : #line 35964 "gram.c"
35964 24 : break;
35965 :
35966 212 : case 634: /* AlterSeqStmt: ALTER SEQUENCE qualified_name SeqOptList */
35967 : #line 4969 "gram.y"
35968 : {
35969 : AlterSeqStmt *n = makeNode(AlterSeqStmt);
35970 :
35971 : n->sequence = (yyvsp[-1].range);
35972 : n->options = (yyvsp[0].list);
35973 : n->missing_ok = false;
35974 : (yyval.node) = (Node *) n;
35975 : }
35976 : #line 35977 "gram.c"
35977 212 : break;
35978 :
35979 12 : case 635: /* AlterSeqStmt: ALTER SEQUENCE IF_P EXISTS qualified_name SeqOptList */
35980 : #line 4978 "gram.y"
35981 : {
35982 : AlterSeqStmt *n = makeNode(AlterSeqStmt);
35983 :
35984 : n->sequence = (yyvsp[-1].range);
35985 : n->options = (yyvsp[0].list);
35986 : n->missing_ok = true;
35987 : (yyval.node) = (Node *) n;
35988 : }
35989 : #line 35990 "gram.c"
35990 12 : break;
35991 :
35992 326 : case 636: /* OptSeqOptList: SeqOptList */
35993 : #line 4989 "gram.y"
35994 : { (yyval.list) = (yyvsp[0].list); }
35995 : #line 35996 "gram.c"
35996 326 : break;
35997 :
35998 418 : case 637: /* OptSeqOptList: %empty */
35999 : #line 4990 "gram.y"
36000 : { (yyval.list) = NIL; }
36001 : #line 36002 "gram.c"
36002 418 : break;
36003 :
36004 118 : case 638: /* OptParenthesizedSeqOptList: '(' SeqOptList ')' */
36005 : #line 4993 "gram.y"
36006 : { (yyval.list) = (yyvsp[-1].list); }
36007 : #line 36008 "gram.c"
36008 118 : break;
36009 :
36010 424 : case 639: /* OptParenthesizedSeqOptList: %empty */
36011 : #line 4994 "gram.y"
36012 : { (yyval.list) = NIL; }
36013 : #line 36014 "gram.c"
36014 424 : break;
36015 :
36016 668 : case 640: /* SeqOptList: SeqOptElem */
36017 : #line 4997 "gram.y"
36018 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
36019 : #line 36020 "gram.c"
36020 668 : break;
36021 :
36022 1322 : case 641: /* SeqOptList: SeqOptList SeqOptElem */
36023 : #line 4998 "gram.y"
36024 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
36025 : #line 36026 "gram.c"
36026 1322 : break;
36027 :
36028 236 : case 642: /* SeqOptElem: AS SimpleTypename */
36029 : #line 5002 "gram.y"
36030 : {
36031 : (yyval.defelt) = makeDefElem("as", (Node *) (yyvsp[0].typnam), (yylsp[-1]));
36032 : }
36033 : #line 36034 "gram.c"
36034 236 : break;
36035 :
36036 236 : case 643: /* SeqOptElem: CACHE NumericOnly */
36037 : #line 5006 "gram.y"
36038 : {
36039 : (yyval.defelt) = makeDefElem("cache", (Node *) (yyvsp[0].node), (yylsp[-1]));
36040 : }
36041 : #line 36042 "gram.c"
36042 236 : break;
36043 :
36044 36 : case 644: /* SeqOptElem: CYCLE */
36045 : #line 5010 "gram.y"
36046 : {
36047 : (yyval.defelt) = makeDefElem("cycle", (Node *) makeBoolean(true), (yylsp[0]));
36048 : }
36049 : #line 36050 "gram.c"
36050 36 : break;
36051 :
36052 14 : case 645: /* SeqOptElem: NO CYCLE */
36053 : #line 5014 "gram.y"
36054 : {
36055 : (yyval.defelt) = makeDefElem("cycle", (Node *) makeBoolean(false), (yylsp[-1]));
36056 : }
36057 : #line 36058 "gram.c"
36058 14 : break;
36059 :
36060 352 : case 646: /* SeqOptElem: INCREMENT opt_by NumericOnly */
36061 : #line 5018 "gram.y"
36062 : {
36063 : (yyval.defelt) = makeDefElem("increment", (Node *) (yyvsp[0].node), (yylsp[-2]));
36064 : }
36065 : #line 36066 "gram.c"
36066 352 : break;
36067 :
36068 4 : case 647: /* SeqOptElem: LOGGED */
36069 : #line 5022 "gram.y"
36070 : {
36071 : (yyval.defelt) = makeDefElem("logged", NULL, (yylsp[0]));
36072 : }
36073 : #line 36074 "gram.c"
36074 4 : break;
36075 :
36076 74 : case 648: /* SeqOptElem: MAXVALUE NumericOnly */
36077 : #line 5026 "gram.y"
36078 : {
36079 : (yyval.defelt) = makeDefElem("maxvalue", (Node *) (yyvsp[0].node), (yylsp[-1]));
36080 : }
36081 : #line 36082 "gram.c"
36082 74 : break;
36083 :
36084 74 : case 649: /* SeqOptElem: MINVALUE NumericOnly */
36085 : #line 5030 "gram.y"
36086 : {
36087 : (yyval.defelt) = makeDefElem("minvalue", (Node *) (yyvsp[0].node), (yylsp[-1]));
36088 : }
36089 : #line 36090 "gram.c"
36090 74 : break;
36091 :
36092 208 : case 650: /* SeqOptElem: NO MAXVALUE */
36093 : #line 5034 "gram.y"
36094 : {
36095 : (yyval.defelt) = makeDefElem("maxvalue", NULL, (yylsp[-1]));
36096 : }
36097 : #line 36098 "gram.c"
36098 208 : break;
36099 :
36100 208 : case 651: /* SeqOptElem: NO MINVALUE */
36101 : #line 5038 "gram.y"
36102 : {
36103 : (yyval.defelt) = makeDefElem("minvalue", NULL, (yylsp[-1]));
36104 : }
36105 : #line 36106 "gram.c"
36106 208 : break;
36107 :
36108 100 : case 652: /* SeqOptElem: OWNED BY any_name */
36109 : #line 5042 "gram.y"
36110 : {
36111 : (yyval.defelt) = makeDefElem("owned_by", (Node *) (yyvsp[0].list), (yylsp[-2]));
36112 : }
36113 : #line 36114 "gram.c"
36114 100 : break;
36115 :
36116 88 : case 653: /* SeqOptElem: SEQUENCE NAME_P any_name */
36117 : #line 5046 "gram.y"
36118 : {
36119 : (yyval.defelt) = makeDefElem("sequence_name", (Node *) (yyvsp[0].list), (yylsp[-2]));
36120 : }
36121 : #line 36122 "gram.c"
36122 88 : break;
36123 :
36124 344 : case 654: /* SeqOptElem: START opt_with NumericOnly */
36125 : #line 5050 "gram.y"
36126 : {
36127 : (yyval.defelt) = makeDefElem("start", (Node *) (yyvsp[0].node), (yylsp[-2]));
36128 : }
36129 : #line 36130 "gram.c"
36130 344 : break;
36131 :
36132 6 : case 655: /* SeqOptElem: RESTART */
36133 : #line 5054 "gram.y"
36134 : {
36135 : (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[0]));
36136 : }
36137 : #line 36138 "gram.c"
36138 6 : break;
36139 :
36140 60 : case 656: /* SeqOptElem: RESTART opt_with NumericOnly */
36141 : #line 5058 "gram.y"
36142 : {
36143 : (yyval.defelt) = makeDefElem("restart", (Node *) (yyvsp[0].node), (yylsp[-2]));
36144 : }
36145 : #line 36146 "gram.c"
36146 60 : break;
36147 :
36148 4 : case 657: /* SeqOptElem: UNLOGGED */
36149 : #line 5062 "gram.y"
36150 : {
36151 : (yyval.defelt) = makeDefElem("unlogged", NULL, (yylsp[0]));
36152 : }
36153 : #line 36154 "gram.c"
36154 4 : break;
36155 :
36156 322 : case 660: /* NumericOnly: FCONST */
36157 : #line 5072 "gram.y"
36158 : { (yyval.node) = (Node *) makeFloat((yyvsp[0].str)); }
36159 : #line 36160 "gram.c"
36160 322 : break;
36161 :
36162 0 : case 661: /* NumericOnly: '+' FCONST */
36163 : #line 5073 "gram.y"
36164 : { (yyval.node) = (Node *) makeFloat((yyvsp[0].str)); }
36165 : #line 36166 "gram.c"
36166 0 : break;
36167 :
36168 22 : case 662: /* NumericOnly: '-' FCONST */
36169 : #line 5075 "gram.y"
36170 : {
36171 : Float *f = makeFloat((yyvsp[0].str));
36172 :
36173 : doNegateFloat(f);
36174 : (yyval.node) = (Node *) f;
36175 : }
36176 : #line 36177 "gram.c"
36177 22 : break;
36178 :
36179 13476 : case 663: /* NumericOnly: SignedIconst */
36180 : #line 5081 "gram.y"
36181 : { (yyval.node) = (Node *) makeInteger((yyvsp[0].ival)); }
36182 : #line 36183 "gram.c"
36183 13476 : break;
36184 :
36185 80 : case 664: /* NumericOnly_list: NumericOnly */
36186 : #line 5084 "gram.y"
36187 : { (yyval.list) = list_make1((yyvsp[0].node)); }
36188 : #line 36189 "gram.c"
36189 80 : break;
36190 :
36191 6 : case 665: /* NumericOnly_list: NumericOnly_list ',' NumericOnly */
36192 : #line 5085 "gram.y"
36193 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
36194 : #line 36195 "gram.c"
36195 6 : break;
36196 :
36197 0 : case 666: /* CreatePLangStmt: CREATE opt_or_replace opt_trusted opt_procedural LANGUAGE name */
36198 : #line 5098 "gram.y"
36199 : {
36200 : /*
36201 : * We now interpret parameterless CREATE LANGUAGE as
36202 : * CREATE EXTENSION. "OR REPLACE" is silently translated
36203 : * to "IF NOT EXISTS", which isn't quite the same, but
36204 : * seems more useful than throwing an error. We just
36205 : * ignore TRUSTED, as the previous code would have too.
36206 : */
36207 : CreateExtensionStmt *n = makeNode(CreateExtensionStmt);
36208 :
36209 : n->if_not_exists = (yyvsp[-4].boolean);
36210 : n->extname = (yyvsp[0].str);
36211 : n->options = NIL;
36212 : (yyval.node) = (Node *) n;
36213 : }
36214 : #line 36215 "gram.c"
36215 0 : break;
36216 :
36217 140 : case 667: /* CreatePLangStmt: CREATE opt_or_replace opt_trusted opt_procedural LANGUAGE name HANDLER handler_name opt_inline_handler opt_validator */
36218 : #line 5115 "gram.y"
36219 : {
36220 : CreatePLangStmt *n = makeNode(CreatePLangStmt);
36221 :
36222 : n->replace = (yyvsp[-8].boolean);
36223 : n->plname = (yyvsp[-4].str);
36224 : n->plhandler = (yyvsp[-2].list);
36225 : n->plinline = (yyvsp[-1].list);
36226 : n->plvalidator = (yyvsp[0].list);
36227 : n->pltrusted = (yyvsp[-7].boolean);
36228 : (yyval.node) = (Node *) n;
36229 : }
36230 : #line 36231 "gram.c"
36231 140 : break;
36232 :
36233 110 : case 668: /* opt_trusted: TRUSTED */
36234 : #line 5129 "gram.y"
36235 : { (yyval.boolean) = true; }
36236 : #line 36237 "gram.c"
36237 110 : break;
36238 :
36239 38 : case 669: /* opt_trusted: %empty */
36240 : #line 5130 "gram.y"
36241 : { (yyval.boolean) = false; }
36242 : #line 36243 "gram.c"
36243 38 : break;
36244 :
36245 550 : case 670: /* handler_name: name */
36246 : #line 5138 "gram.y"
36247 : { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
36248 : #line 36249 "gram.c"
36249 550 : break;
36250 :
36251 2 : case 671: /* handler_name: name attrs */
36252 : #line 5139 "gram.y"
36253 : { (yyval.list) = lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)); }
36254 : #line 36255 "gram.c"
36255 2 : break;
36256 :
36257 122 : case 672: /* opt_inline_handler: INLINE_P handler_name */
36258 : #line 5143 "gram.y"
36259 : { (yyval.list) = (yyvsp[0].list); }
36260 : #line 36261 "gram.c"
36261 122 : break;
36262 :
36263 18 : case 673: /* opt_inline_handler: %empty */
36264 : #line 5144 "gram.y"
36265 : { (yyval.list) = NIL; }
36266 : #line 36267 "gram.c"
36267 18 : break;
36268 :
36269 122 : case 674: /* validator_clause: VALIDATOR handler_name */
36270 : #line 5148 "gram.y"
36271 : { (yyval.list) = (yyvsp[0].list); }
36272 : #line 36273 "gram.c"
36273 122 : break;
36274 :
36275 0 : case 675: /* validator_clause: NO VALIDATOR */
36276 : #line 5149 "gram.y"
36277 : { (yyval.list) = NIL; }
36278 : #line 36279 "gram.c"
36279 0 : break;
36280 :
36281 122 : case 676: /* opt_validator: validator_clause */
36282 : #line 5153 "gram.y"
36283 : { (yyval.list) = (yyvsp[0].list); }
36284 : #line 36285 "gram.c"
36285 122 : break;
36286 :
36287 18 : case 677: /* opt_validator: %empty */
36288 : #line 5154 "gram.y"
36289 : { (yyval.list) = NIL; }
36290 : #line 36291 "gram.c"
36291 18 : break;
36292 :
36293 116 : case 680: /* CreateTableSpaceStmt: CREATE TABLESPACE name OptTableSpaceOwner LOCATION Sconst opt_reloptions */
36294 : #line 5170 "gram.y"
36295 : {
36296 : CreateTableSpaceStmt *n = makeNode(CreateTableSpaceStmt);
36297 :
36298 : n->tablespacename = (yyvsp[-4].str);
36299 : n->owner = (yyvsp[-3].rolespec);
36300 : n->location = (yyvsp[-1].str);
36301 : n->options = (yyvsp[0].list);
36302 : (yyval.node) = (Node *) n;
36303 : }
36304 : #line 36305 "gram.c"
36305 116 : break;
36306 :
36307 6 : case 681: /* OptTableSpaceOwner: OWNER RoleSpec */
36308 : #line 5181 "gram.y"
36309 : { (yyval.rolespec) = (yyvsp[0].rolespec); }
36310 : #line 36311 "gram.c"
36311 6 : break;
36312 :
36313 110 : case 682: /* OptTableSpaceOwner: %empty */
36314 : #line 5182 "gram.y"
36315 : { (yyval.rolespec) = NULL; }
36316 : #line 36317 "gram.c"
36317 110 : break;
36318 :
36319 64 : case 683: /* DropTableSpaceStmt: DROP TABLESPACE name */
36320 : #line 5196 "gram.y"
36321 : {
36322 : DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt);
36323 :
36324 : n->tablespacename = (yyvsp[0].str);
36325 : n->missing_ok = false;
36326 : (yyval.node) = (Node *) n;
36327 : }
36328 : #line 36329 "gram.c"
36329 64 : break;
36330 :
36331 0 : case 684: /* DropTableSpaceStmt: DROP TABLESPACE IF_P EXISTS name */
36332 : #line 5204 "gram.y"
36333 : {
36334 : DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt);
36335 :
36336 : n->tablespacename = (yyvsp[0].str);
36337 : n->missing_ok = true;
36338 : (yyval.node) = (Node *) n;
36339 : }
36340 : #line 36341 "gram.c"
36341 0 : break;
36342 :
36343 502 : case 685: /* CreateExtensionStmt: CREATE EXTENSION name opt_with create_extension_opt_list */
36344 : #line 5222 "gram.y"
36345 : {
36346 : CreateExtensionStmt *n = makeNode(CreateExtensionStmt);
36347 :
36348 : n->extname = (yyvsp[-2].str);
36349 : n->if_not_exists = false;
36350 : n->options = (yyvsp[0].list);
36351 : (yyval.node) = (Node *) n;
36352 : }
36353 : #line 36354 "gram.c"
36354 502 : break;
36355 :
36356 18 : case 686: /* CreateExtensionStmt: CREATE EXTENSION IF_P NOT EXISTS name opt_with create_extension_opt_list */
36357 : #line 5231 "gram.y"
36358 : {
36359 : CreateExtensionStmt *n = makeNode(CreateExtensionStmt);
36360 :
36361 : n->extname = (yyvsp[-2].str);
36362 : n->if_not_exists = true;
36363 : n->options = (yyvsp[0].list);
36364 : (yyval.node) = (Node *) n;
36365 : }
36366 : #line 36367 "gram.c"
36367 18 : break;
36368 :
36369 98 : case 687: /* create_extension_opt_list: create_extension_opt_list create_extension_opt_item */
36370 : #line 5243 "gram.y"
36371 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
36372 : #line 36373 "gram.c"
36373 98 : break;
36374 :
36375 520 : case 688: /* create_extension_opt_list: %empty */
36376 : #line 5245 "gram.y"
36377 : { (yyval.list) = NIL; }
36378 : #line 36379 "gram.c"
36379 520 : break;
36380 :
36381 46 : case 689: /* create_extension_opt_item: SCHEMA name */
36382 : #line 5250 "gram.y"
36383 : {
36384 : (yyval.defelt) = makeDefElem("schema", (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
36385 : }
36386 : #line 36387 "gram.c"
36387 46 : break;
36388 :
36389 12 : case 690: /* create_extension_opt_item: VERSION_P NonReservedWord_or_Sconst */
36390 : #line 5254 "gram.y"
36391 : {
36392 : (yyval.defelt) = makeDefElem("new_version", (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
36393 : }
36394 : #line 36395 "gram.c"
36395 12 : break;
36396 :
36397 0 : case 691: /* create_extension_opt_item: FROM NonReservedWord_or_Sconst */
36398 : #line 5258 "gram.y"
36399 : {
36400 : ereport(ERROR,
36401 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
36402 : errmsg("CREATE EXTENSION ... FROM is no longer supported"),
36403 : parser_errposition((yylsp[-1]))));
36404 : }
36405 : #line 36406 "gram.c"
36406 : break;
36407 :
36408 40 : case 692: /* create_extension_opt_item: CASCADE */
36409 : #line 5265 "gram.y"
36410 : {
36411 : (yyval.defelt) = makeDefElem("cascade", (Node *) makeBoolean(true), (yylsp[0]));
36412 : }
36413 : #line 36414 "gram.c"
36414 40 : break;
36415 :
36416 38 : case 693: /* AlterExtensionStmt: ALTER EXTENSION name UPDATE alter_extension_opt_list */
36417 : #line 5277 "gram.y"
36418 : {
36419 : AlterExtensionStmt *n = makeNode(AlterExtensionStmt);
36420 :
36421 : n->extname = (yyvsp[-2].str);
36422 : n->options = (yyvsp[0].list);
36423 : (yyval.node) = (Node *) n;
36424 : }
36425 : #line 36426 "gram.c"
36426 38 : break;
36427 :
36428 38 : case 694: /* alter_extension_opt_list: alter_extension_opt_list alter_extension_opt_item */
36429 : #line 5288 "gram.y"
36430 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
36431 : #line 36432 "gram.c"
36432 38 : break;
36433 :
36434 38 : case 695: /* alter_extension_opt_list: %empty */
36435 : #line 5290 "gram.y"
36436 : { (yyval.list) = NIL; }
36437 : #line 36438 "gram.c"
36438 38 : break;
36439 :
36440 38 : case 696: /* alter_extension_opt_item: TO NonReservedWord_or_Sconst */
36441 : #line 5295 "gram.y"
36442 : {
36443 : (yyval.defelt) = makeDefElem("new_version", (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
36444 : }
36445 : #line 36446 "gram.c"
36446 38 : break;
36447 :
36448 18 : case 697: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop object_type_name name */
36449 : #line 5308 "gram.y"
36450 : {
36451 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36452 :
36453 : n->extname = (yyvsp[-3].str);
36454 : n->action = (yyvsp[-2].ival);
36455 : n->objtype = (yyvsp[-1].objtype);
36456 : n->object = (Node *) makeString((yyvsp[0].str));
36457 : (yyval.node) = (Node *) n;
36458 : }
36459 : #line 36460 "gram.c"
36460 18 : break;
36461 :
36462 76 : case 698: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop object_type_any_name any_name */
36463 : #line 5318 "gram.y"
36464 : {
36465 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36466 :
36467 : n->extname = (yyvsp[-3].str);
36468 : n->action = (yyvsp[-2].ival);
36469 : n->objtype = (yyvsp[-1].objtype);
36470 : n->object = (Node *) (yyvsp[0].list);
36471 : (yyval.node) = (Node *) n;
36472 : }
36473 : #line 36474 "gram.c"
36474 76 : break;
36475 :
36476 8 : case 699: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop AGGREGATE aggregate_with_argtypes */
36477 : #line 5328 "gram.y"
36478 : {
36479 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36480 :
36481 : n->extname = (yyvsp[-3].str);
36482 : n->action = (yyvsp[-2].ival);
36483 : n->objtype = OBJECT_AGGREGATE;
36484 : n->object = (Node *) (yyvsp[0].objwithargs);
36485 : (yyval.node) = (Node *) n;
36486 : }
36487 : #line 36488 "gram.c"
36488 8 : break;
36489 :
36490 4 : case 700: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop CAST '(' Typename AS Typename ')' */
36491 : #line 5338 "gram.y"
36492 : {
36493 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36494 :
36495 : n->extname = (yyvsp[-7].str);
36496 : n->action = (yyvsp[-6].ival);
36497 : n->objtype = OBJECT_CAST;
36498 : n->object = (Node *) list_make2((yyvsp[-3].typnam), (yyvsp[-1].typnam));
36499 : (yyval.node) = (Node *) n;
36500 : }
36501 : #line 36502 "gram.c"
36502 4 : break;
36503 :
36504 0 : case 701: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop DOMAIN_P Typename */
36505 : #line 5348 "gram.y"
36506 : {
36507 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36508 :
36509 : n->extname = (yyvsp[-3].str);
36510 : n->action = (yyvsp[-2].ival);
36511 : n->objtype = OBJECT_DOMAIN;
36512 : n->object = (Node *) (yyvsp[0].typnam);
36513 : (yyval.node) = (Node *) n;
36514 : }
36515 : #line 36516 "gram.c"
36516 0 : break;
36517 :
36518 98 : case 702: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop FUNCTION function_with_argtypes */
36519 : #line 5358 "gram.y"
36520 : {
36521 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36522 :
36523 : n->extname = (yyvsp[-3].str);
36524 : n->action = (yyvsp[-2].ival);
36525 : n->objtype = OBJECT_FUNCTION;
36526 : n->object = (Node *) (yyvsp[0].objwithargs);
36527 : (yyval.node) = (Node *) n;
36528 : }
36529 : #line 36530 "gram.c"
36530 98 : break;
36531 :
36532 18 : case 703: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop OPERATOR operator_with_argtypes */
36533 : #line 5368 "gram.y"
36534 : {
36535 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36536 :
36537 : n->extname = (yyvsp[-3].str);
36538 : n->action = (yyvsp[-2].ival);
36539 : n->objtype = OBJECT_OPERATOR;
36540 : n->object = (Node *) (yyvsp[0].objwithargs);
36541 : (yyval.node) = (Node *) n;
36542 : }
36543 : #line 36544 "gram.c"
36544 18 : break;
36545 :
36546 4 : case 704: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop OPERATOR CLASS any_name USING name */
36547 : #line 5378 "gram.y"
36548 : {
36549 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36550 :
36551 : n->extname = (yyvsp[-6].str);
36552 : n->action = (yyvsp[-5].ival);
36553 : n->objtype = OBJECT_OPCLASS;
36554 : n->object = (Node *) lcons(makeString((yyvsp[0].str)), (yyvsp[-2].list));
36555 : (yyval.node) = (Node *) n;
36556 : }
36557 : #line 36558 "gram.c"
36558 4 : break;
36559 :
36560 4 : case 705: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop OPERATOR FAMILY any_name USING name */
36561 : #line 5388 "gram.y"
36562 : {
36563 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36564 :
36565 : n->extname = (yyvsp[-6].str);
36566 : n->action = (yyvsp[-5].ival);
36567 : n->objtype = OBJECT_OPFAMILY;
36568 : n->object = (Node *) lcons(makeString((yyvsp[0].str)), (yyvsp[-2].list));
36569 : (yyval.node) = (Node *) n;
36570 : }
36571 : #line 36572 "gram.c"
36572 4 : break;
36573 :
36574 0 : case 706: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop PROCEDURE function_with_argtypes */
36575 : #line 5398 "gram.y"
36576 : {
36577 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36578 :
36579 : n->extname = (yyvsp[-3].str);
36580 : n->action = (yyvsp[-2].ival);
36581 : n->objtype = OBJECT_PROCEDURE;
36582 : n->object = (Node *) (yyvsp[0].objwithargs);
36583 : (yyval.node) = (Node *) n;
36584 : }
36585 : #line 36586 "gram.c"
36586 0 : break;
36587 :
36588 0 : case 707: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop ROUTINE function_with_argtypes */
36589 : #line 5408 "gram.y"
36590 : {
36591 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36592 :
36593 : n->extname = (yyvsp[-3].str);
36594 : n->action = (yyvsp[-2].ival);
36595 : n->objtype = OBJECT_ROUTINE;
36596 : n->object = (Node *) (yyvsp[0].objwithargs);
36597 : (yyval.node) = (Node *) n;
36598 : }
36599 : #line 36600 "gram.c"
36600 0 : break;
36601 :
36602 4 : case 708: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop TRANSFORM FOR Typename LANGUAGE name */
36603 : #line 5418 "gram.y"
36604 : {
36605 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36606 :
36607 : n->extname = (yyvsp[-6].str);
36608 : n->action = (yyvsp[-5].ival);
36609 : n->objtype = OBJECT_TRANSFORM;
36610 : n->object = (Node *) list_make2((yyvsp[-2].typnam), makeString((yyvsp[0].str)));
36611 : (yyval.node) = (Node *) n;
36612 : }
36613 : #line 36614 "gram.c"
36614 4 : break;
36615 :
36616 8 : case 709: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop TYPE_P Typename */
36617 : #line 5428 "gram.y"
36618 : {
36619 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36620 :
36621 : n->extname = (yyvsp[-3].str);
36622 : n->action = (yyvsp[-2].ival);
36623 : n->objtype = OBJECT_TYPE;
36624 : n->object = (Node *) (yyvsp[0].typnam);
36625 : (yyval.node) = (Node *) n;
36626 : }
36627 : #line 36628 "gram.c"
36628 8 : break;
36629 :
36630 208 : case 710: /* CreateFdwStmt: CREATE FOREIGN DATA_P WRAPPER name opt_fdw_options create_generic_options */
36631 : #line 5447 "gram.y"
36632 : {
36633 : CreateFdwStmt *n = makeNode(CreateFdwStmt);
36634 :
36635 : n->fdwname = (yyvsp[-2].str);
36636 : n->func_options = (yyvsp[-1].list);
36637 : n->options = (yyvsp[0].list);
36638 : (yyval.node) = (Node *) n;
36639 : }
36640 : #line 36641 "gram.c"
36641 208 : break;
36642 :
36643 56 : case 711: /* fdw_option: HANDLER handler_name */
36644 : #line 5458 "gram.y"
36645 : { (yyval.defelt) = makeDefElem("handler", (Node *) (yyvsp[0].list), (yylsp[-1])); }
36646 : #line 36647 "gram.c"
36647 56 : break;
36648 :
36649 0 : case 712: /* fdw_option: NO HANDLER */
36650 : #line 5459 "gram.y"
36651 : { (yyval.defelt) = makeDefElem("handler", NULL, (yylsp[-1])); }
36652 : #line 36653 "gram.c"
36653 0 : break;
36654 :
36655 48 : case 713: /* fdw_option: VALIDATOR handler_name */
36656 : #line 5460 "gram.y"
36657 : { (yyval.defelt) = makeDefElem("validator", (Node *) (yyvsp[0].list), (yylsp[-1])); }
36658 : #line 36659 "gram.c"
36659 48 : break;
36660 :
36661 6 : case 714: /* fdw_option: NO VALIDATOR */
36662 : #line 5461 "gram.y"
36663 : { (yyval.defelt) = makeDefElem("validator", NULL, (yylsp[-1])); }
36664 : #line 36665 "gram.c"
36665 6 : break;
36666 :
36667 90 : case 715: /* fdw_options: fdw_option */
36668 : #line 5465 "gram.y"
36669 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
36670 : #line 36671 "gram.c"
36671 90 : break;
36672 :
36673 20 : case 716: /* fdw_options: fdw_options fdw_option */
36674 : #line 5466 "gram.y"
36675 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
36676 : #line 36677 "gram.c"
36677 20 : break;
36678 :
36679 54 : case 717: /* opt_fdw_options: fdw_options */
36680 : #line 5470 "gram.y"
36681 : { (yyval.list) = (yyvsp[0].list); }
36682 : #line 36683 "gram.c"
36683 54 : break;
36684 :
36685 246 : case 718: /* opt_fdw_options: %empty */
36686 : #line 5471 "gram.y"
36687 : { (yyval.list) = NIL; }
36688 : #line 36689 "gram.c"
36689 246 : break;
36690 :
36691 86 : case 719: /* AlterFdwStmt: ALTER FOREIGN DATA_P WRAPPER name opt_fdw_options alter_generic_options */
36692 : #line 5482 "gram.y"
36693 : {
36694 : AlterFdwStmt *n = makeNode(AlterFdwStmt);
36695 :
36696 : n->fdwname = (yyvsp[-2].str);
36697 : n->func_options = (yyvsp[-1].list);
36698 : n->options = (yyvsp[0].list);
36699 : (yyval.node) = (Node *) n;
36700 : }
36701 : #line 36702 "gram.c"
36702 86 : break;
36703 :
36704 36 : case 720: /* AlterFdwStmt: ALTER FOREIGN DATA_P WRAPPER name fdw_options */
36705 : #line 5491 "gram.y"
36706 : {
36707 : AlterFdwStmt *n = makeNode(AlterFdwStmt);
36708 :
36709 : n->fdwname = (yyvsp[-1].str);
36710 : n->func_options = (yyvsp[0].list);
36711 : n->options = NIL;
36712 : (yyval.node) = (Node *) n;
36713 : }
36714 : #line 36715 "gram.c"
36715 36 : break;
36716 :
36717 734 : case 721: /* create_generic_options: OPTIONS '(' generic_option_list ')' */
36718 : #line 5503 "gram.y"
36719 : { (yyval.list) = (yyvsp[-1].list); }
36720 : #line 36721 "gram.c"
36721 734 : break;
36722 :
36723 73042 : case 722: /* create_generic_options: %empty */
36724 : #line 5504 "gram.y"
36725 : { (yyval.list) = NIL; }
36726 : #line 36727 "gram.c"
36727 73042 : break;
36728 :
36729 734 : case 723: /* generic_option_list: generic_option_elem */
36730 : #line 5509 "gram.y"
36731 : {
36732 : (yyval.list) = list_make1((yyvsp[0].defelt));
36733 : }
36734 : #line 36735 "gram.c"
36735 734 : break;
36736 :
36737 480 : case 724: /* generic_option_list: generic_option_list ',' generic_option_elem */
36738 : #line 5513 "gram.y"
36739 : {
36740 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt));
36741 : }
36742 : #line 36743 "gram.c"
36743 480 : break;
36744 :
36745 488 : case 725: /* alter_generic_options: OPTIONS '(' alter_generic_option_list ')' */
36746 : #line 5520 "gram.y"
36747 : { (yyval.list) = (yyvsp[-1].list); }
36748 : #line 36749 "gram.c"
36749 488 : break;
36750 :
36751 488 : case 726: /* alter_generic_option_list: alter_generic_option_elem */
36752 : #line 5525 "gram.y"
36753 : {
36754 : (yyval.list) = list_make1((yyvsp[0].defelt));
36755 : }
36756 : #line 36757 "gram.c"
36757 488 : break;
36758 :
36759 168 : case 727: /* alter_generic_option_list: alter_generic_option_list ',' alter_generic_option_elem */
36760 : #line 5529 "gram.y"
36761 : {
36762 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt));
36763 : }
36764 : #line 36765 "gram.c"
36765 168 : break;
36766 :
36767 200 : case 728: /* alter_generic_option_elem: generic_option_elem */
36768 : #line 5536 "gram.y"
36769 : {
36770 : (yyval.defelt) = (yyvsp[0].defelt);
36771 : }
36772 : #line 36773 "gram.c"
36773 200 : break;
36774 :
36775 128 : case 729: /* alter_generic_option_elem: SET generic_option_elem */
36776 : #line 5540 "gram.y"
36777 : {
36778 : (yyval.defelt) = (yyvsp[0].defelt);
36779 : (yyval.defelt)->defaction = DEFELEM_SET;
36780 : }
36781 : #line 36782 "gram.c"
36782 128 : break;
36783 :
36784 202 : case 730: /* alter_generic_option_elem: ADD_P generic_option_elem */
36785 : #line 5545 "gram.y"
36786 : {
36787 : (yyval.defelt) = (yyvsp[0].defelt);
36788 : (yyval.defelt)->defaction = DEFELEM_ADD;
36789 : }
36790 : #line 36791 "gram.c"
36791 202 : break;
36792 :
36793 126 : case 731: /* alter_generic_option_elem: DROP generic_option_name */
36794 : #line 5550 "gram.y"
36795 : {
36796 : (yyval.defelt) = makeDefElemExtended(NULL, (yyvsp[0].str), NULL, DEFELEM_DROP, (yylsp[0]));
36797 : }
36798 : #line 36799 "gram.c"
36799 126 : break;
36800 :
36801 1744 : case 732: /* generic_option_elem: generic_option_name generic_option_arg */
36802 : #line 5557 "gram.y"
36803 : {
36804 : (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1]));
36805 : }
36806 : #line 36807 "gram.c"
36807 1744 : break;
36808 :
36809 1870 : case 733: /* generic_option_name: ColLabel */
36810 : #line 5563 "gram.y"
36811 : { (yyval.str) = (yyvsp[0].str); }
36812 : #line 36813 "gram.c"
36813 1870 : break;
36814 :
36815 1744 : case 734: /* generic_option_arg: Sconst */
36816 : #line 5568 "gram.y"
36817 : { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
36818 : #line 36819 "gram.c"
36819 1744 : break;
36820 :
36821 274 : case 735: /* CreateForeignServerStmt: CREATE SERVER name opt_type opt_foreign_server_version FOREIGN DATA_P WRAPPER name create_generic_options */
36822 : #line 5580 "gram.y"
36823 : {
36824 : CreateForeignServerStmt *n = makeNode(CreateForeignServerStmt);
36825 :
36826 : n->servername = (yyvsp[-7].str);
36827 : n->servertype = (yyvsp[-6].str);
36828 : n->version = (yyvsp[-5].str);
36829 : n->fdwname = (yyvsp[-1].str);
36830 : n->options = (yyvsp[0].list);
36831 : n->if_not_exists = false;
36832 : (yyval.node) = (Node *) n;
36833 : }
36834 : #line 36835 "gram.c"
36835 274 : break;
36836 :
36837 24 : case 736: /* CreateForeignServerStmt: CREATE SERVER IF_P NOT EXISTS name opt_type opt_foreign_server_version FOREIGN DATA_P WRAPPER name create_generic_options */
36838 : #line 5593 "gram.y"
36839 : {
36840 : CreateForeignServerStmt *n = makeNode(CreateForeignServerStmt);
36841 :
36842 : n->servername = (yyvsp[-7].str);
36843 : n->servertype = (yyvsp[-6].str);
36844 : n->version = (yyvsp[-5].str);
36845 : n->fdwname = (yyvsp[-1].str);
36846 : n->options = (yyvsp[0].list);
36847 : n->if_not_exists = true;
36848 : (yyval.node) = (Node *) n;
36849 : }
36850 : #line 36851 "gram.c"
36851 24 : break;
36852 :
36853 18 : case 737: /* opt_type: TYPE_P Sconst */
36854 : #line 5607 "gram.y"
36855 : { (yyval.str) = (yyvsp[0].str); }
36856 : #line 36857 "gram.c"
36857 18 : break;
36858 :
36859 280 : case 738: /* opt_type: %empty */
36860 : #line 5608 "gram.y"
36861 : { (yyval.str) = NULL; }
36862 : #line 36863 "gram.c"
36863 280 : break;
36864 :
36865 66 : case 739: /* foreign_server_version: VERSION_P Sconst */
36866 : #line 5613 "gram.y"
36867 : { (yyval.str) = (yyvsp[0].str); }
36868 : #line 36869 "gram.c"
36869 66 : break;
36870 :
36871 0 : case 740: /* foreign_server_version: VERSION_P NULL_P */
36872 : #line 5614 "gram.y"
36873 : { (yyval.str) = NULL; }
36874 : #line 36875 "gram.c"
36875 0 : break;
36876 :
36877 18 : case 741: /* opt_foreign_server_version: foreign_server_version */
36878 : #line 5618 "gram.y"
36879 : { (yyval.str) = (yyvsp[0].str); }
36880 : #line 36881 "gram.c"
36881 18 : break;
36882 :
36883 280 : case 742: /* opt_foreign_server_version: %empty */
36884 : #line 5619 "gram.y"
36885 : { (yyval.str) = NULL; }
36886 : #line 36887 "gram.c"
36887 280 : break;
36888 :
36889 6 : case 743: /* AlterForeignServerStmt: ALTER SERVER name foreign_server_version alter_generic_options */
36890 : #line 5630 "gram.y"
36891 : {
36892 : AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt);
36893 :
36894 : n->servername = (yyvsp[-2].str);
36895 : n->version = (yyvsp[-1].str);
36896 : n->options = (yyvsp[0].list);
36897 : n->has_version = true;
36898 : (yyval.node) = (Node *) n;
36899 : }
36900 : #line 36901 "gram.c"
36901 6 : break;
36902 :
36903 42 : case 744: /* AlterForeignServerStmt: ALTER SERVER name foreign_server_version */
36904 : #line 5640 "gram.y"
36905 : {
36906 : AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt);
36907 :
36908 : n->servername = (yyvsp[-1].str);
36909 : n->version = (yyvsp[0].str);
36910 : n->has_version = true;
36911 : (yyval.node) = (Node *) n;
36912 : }
36913 : #line 36914 "gram.c"
36914 42 : break;
36915 :
36916 172 : case 745: /* AlterForeignServerStmt: ALTER SERVER name alter_generic_options */
36917 : #line 5649 "gram.y"
36918 : {
36919 : AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt);
36920 :
36921 : n->servername = (yyvsp[-1].str);
36922 : n->options = (yyvsp[0].list);
36923 : (yyval.node) = (Node *) n;
36924 : }
36925 : #line 36926 "gram.c"
36926 172 : break;
36927 :
36928 390 : case 746: /* CreateForeignTableStmt: CREATE FOREIGN TABLE qualified_name '(' OptTableElementList ')' OptInherit SERVER name create_generic_options */
36929 : #line 5669 "gram.y"
36930 : {
36931 : CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt);
36932 :
36933 : (yyvsp[-7].range)->relpersistence = RELPERSISTENCE_PERMANENT;
36934 : n->base.relation = (yyvsp[-7].range);
36935 : n->base.tableElts = (yyvsp[-5].list);
36936 : n->base.inhRelations = (yyvsp[-3].list);
36937 : n->base.ofTypename = NULL;
36938 : n->base.constraints = NIL;
36939 : n->base.options = NIL;
36940 : n->base.oncommit = ONCOMMIT_NOOP;
36941 : n->base.tablespacename = NULL;
36942 : n->base.if_not_exists = false;
36943 : /* FDW-specific data */
36944 : n->servername = (yyvsp[-1].str);
36945 : n->options = (yyvsp[0].list);
36946 : (yyval.node) = (Node *) n;
36947 : }
36948 : #line 36949 "gram.c"
36949 390 : break;
36950 :
36951 0 : case 747: /* CreateForeignTableStmt: CREATE FOREIGN TABLE IF_P NOT EXISTS qualified_name '(' OptTableElementList ')' OptInherit SERVER name create_generic_options */
36952 : #line 5690 "gram.y"
36953 : {
36954 : CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt);
36955 :
36956 : (yyvsp[-7].range)->relpersistence = RELPERSISTENCE_PERMANENT;
36957 : n->base.relation = (yyvsp[-7].range);
36958 : n->base.tableElts = (yyvsp[-5].list);
36959 : n->base.inhRelations = (yyvsp[-3].list);
36960 : n->base.ofTypename = NULL;
36961 : n->base.constraints = NIL;
36962 : n->base.options = NIL;
36963 : n->base.oncommit = ONCOMMIT_NOOP;
36964 : n->base.tablespacename = NULL;
36965 : n->base.if_not_exists = true;
36966 : /* FDW-specific data */
36967 : n->servername = (yyvsp[-1].str);
36968 : n->options = (yyvsp[0].list);
36969 : (yyval.node) = (Node *) n;
36970 : }
36971 : #line 36972 "gram.c"
36972 0 : break;
36973 :
36974 90 : case 748: /* CreateForeignTableStmt: CREATE FOREIGN TABLE qualified_name PARTITION OF qualified_name OptTypedTableElementList PartitionBoundSpec SERVER name create_generic_options */
36975 : #line 5711 "gram.y"
36976 : {
36977 : CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt);
36978 :
36979 : (yyvsp[-8].range)->relpersistence = RELPERSISTENCE_PERMANENT;
36980 : n->base.relation = (yyvsp[-8].range);
36981 : n->base.inhRelations = list_make1((yyvsp[-5].range));
36982 : n->base.tableElts = (yyvsp[-4].list);
36983 : n->base.partbound = (yyvsp[-3].partboundspec);
36984 : n->base.ofTypename = NULL;
36985 : n->base.constraints = NIL;
36986 : n->base.options = NIL;
36987 : n->base.oncommit = ONCOMMIT_NOOP;
36988 : n->base.tablespacename = NULL;
36989 : n->base.if_not_exists = false;
36990 : /* FDW-specific data */
36991 : n->servername = (yyvsp[-1].str);
36992 : n->options = (yyvsp[0].list);
36993 : (yyval.node) = (Node *) n;
36994 : }
36995 : #line 36996 "gram.c"
36996 90 : break;
36997 :
36998 0 : case 749: /* CreateForeignTableStmt: CREATE FOREIGN TABLE IF_P NOT EXISTS qualified_name PARTITION OF qualified_name OptTypedTableElementList PartitionBoundSpec SERVER name create_generic_options */
36999 : #line 5733 "gram.y"
37000 : {
37001 : CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt);
37002 :
37003 : (yyvsp[-8].range)->relpersistence = RELPERSISTENCE_PERMANENT;
37004 : n->base.relation = (yyvsp[-8].range);
37005 : n->base.inhRelations = list_make1((yyvsp[-5].range));
37006 : n->base.tableElts = (yyvsp[-4].list);
37007 : n->base.partbound = (yyvsp[-3].partboundspec);
37008 : n->base.ofTypename = NULL;
37009 : n->base.constraints = NIL;
37010 : n->base.options = NIL;
37011 : n->base.oncommit = ONCOMMIT_NOOP;
37012 : n->base.tablespacename = NULL;
37013 : n->base.if_not_exists = true;
37014 : /* FDW-specific data */
37015 : n->servername = (yyvsp[-1].str);
37016 : n->options = (yyvsp[0].list);
37017 : (yyval.node) = (Node *) n;
37018 : }
37019 : #line 37020 "gram.c"
37020 0 : break;
37021 :
37022 48 : case 750: /* ImportForeignSchemaStmt: IMPORT_P FOREIGN SCHEMA name import_qualification FROM SERVER name INTO name create_generic_options */
37023 : #line 5766 "gram.y"
37024 : {
37025 : ImportForeignSchemaStmt *n = makeNode(ImportForeignSchemaStmt);
37026 :
37027 : n->server_name = (yyvsp[-3].str);
37028 : n->remote_schema = (yyvsp[-7].str);
37029 : n->local_schema = (yyvsp[-1].str);
37030 : n->list_type = (yyvsp[-6].importqual)->type;
37031 : n->table_list = (yyvsp[-6].importqual)->table_names;
37032 : n->options = (yyvsp[0].list);
37033 : (yyval.node) = (Node *) n;
37034 : }
37035 : #line 37036 "gram.c"
37036 48 : break;
37037 :
37038 14 : case 751: /* import_qualification_type: LIMIT TO */
37039 : #line 5780 "gram.y"
37040 : { (yyval.ival) = FDW_IMPORT_SCHEMA_LIMIT_TO; }
37041 : #line 37042 "gram.c"
37042 14 : break;
37043 :
37044 14 : case 752: /* import_qualification_type: EXCEPT */
37045 : #line 5781 "gram.y"
37046 : { (yyval.ival) = FDW_IMPORT_SCHEMA_EXCEPT; }
37047 : #line 37048 "gram.c"
37048 14 : break;
37049 :
37050 28 : case 753: /* import_qualification: import_qualification_type '(' relation_expr_list ')' */
37051 : #line 5786 "gram.y"
37052 : {
37053 : ImportQual *n = (ImportQual *) palloc(sizeof(ImportQual));
37054 :
37055 : n->type = (yyvsp[-3].ival);
37056 : n->table_names = (yyvsp[-1].list);
37057 : (yyval.importqual) = n;
37058 : }
37059 : #line 37060 "gram.c"
37060 28 : break;
37061 :
37062 20 : case 754: /* import_qualification: %empty */
37063 : #line 5794 "gram.y"
37064 : {
37065 : ImportQual *n = (ImportQual *) palloc(sizeof(ImportQual));
37066 : n->type = FDW_IMPORT_SCHEMA_ALL;
37067 : n->table_names = NIL;
37068 : (yyval.importqual) = n;
37069 : }
37070 : #line 37071 "gram.c"
37071 20 : break;
37072 :
37073 246 : case 755: /* CreateUserMappingStmt: CREATE USER MAPPING FOR auth_ident SERVER name create_generic_options */
37074 : #line 5810 "gram.y"
37075 : {
37076 : CreateUserMappingStmt *n = makeNode(CreateUserMappingStmt);
37077 :
37078 : n->user = (yyvsp[-3].rolespec);
37079 : n->servername = (yyvsp[-1].str);
37080 : n->options = (yyvsp[0].list);
37081 : n->if_not_exists = false;
37082 : (yyval.node) = (Node *) n;
37083 : }
37084 : #line 37085 "gram.c"
37085 246 : break;
37086 :
37087 6 : case 756: /* CreateUserMappingStmt: CREATE USER MAPPING IF_P NOT EXISTS FOR auth_ident SERVER name create_generic_options */
37088 : #line 5820 "gram.y"
37089 : {
37090 : CreateUserMappingStmt *n = makeNode(CreateUserMappingStmt);
37091 :
37092 : n->user = (yyvsp[-3].rolespec);
37093 : n->servername = (yyvsp[-1].str);
37094 : n->options = (yyvsp[0].list);
37095 : n->if_not_exists = true;
37096 : (yyval.node) = (Node *) n;
37097 : }
37098 : #line 37099 "gram.c"
37099 6 : break;
37100 :
37101 442 : case 757: /* auth_ident: RoleSpec */
37102 : #line 5832 "gram.y"
37103 : { (yyval.rolespec) = (yyvsp[0].rolespec); }
37104 : #line 37105 "gram.c"
37105 442 : break;
37106 :
37107 46 : case 758: /* auth_ident: USER */
37108 : #line 5833 "gram.y"
37109 : { (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_USER, (yylsp[0])); }
37110 : #line 37111 "gram.c"
37111 46 : break;
37112 :
37113 88 : case 759: /* DropUserMappingStmt: DROP USER MAPPING FOR auth_ident SERVER name */
37114 : #line 5846 "gram.y"
37115 : {
37116 : DropUserMappingStmt *n = makeNode(DropUserMappingStmt);
37117 :
37118 : n->user = (yyvsp[-2].rolespec);
37119 : n->servername = (yyvsp[0].str);
37120 : n->missing_ok = false;
37121 : (yyval.node) = (Node *) n;
37122 : }
37123 : #line 37124 "gram.c"
37124 88 : break;
37125 :
37126 38 : case 760: /* DropUserMappingStmt: DROP USER MAPPING IF_P EXISTS FOR auth_ident SERVER name */
37127 : #line 5855 "gram.y"
37128 : {
37129 : DropUserMappingStmt *n = makeNode(DropUserMappingStmt);
37130 :
37131 : n->user = (yyvsp[-2].rolespec);
37132 : n->servername = (yyvsp[0].str);
37133 : n->missing_ok = true;
37134 : (yyval.node) = (Node *) n;
37135 : }
37136 : #line 37137 "gram.c"
37137 38 : break;
37138 :
37139 110 : case 761: /* AlterUserMappingStmt: ALTER USER MAPPING FOR auth_ident SERVER name alter_generic_options */
37140 : #line 5873 "gram.y"
37141 : {
37142 : AlterUserMappingStmt *n = makeNode(AlterUserMappingStmt);
37143 :
37144 : n->user = (yyvsp[-3].rolespec);
37145 : n->servername = (yyvsp[-1].str);
37146 : n->options = (yyvsp[0].list);
37147 : (yyval.node) = (Node *) n;
37148 : }
37149 : #line 37150 "gram.c"
37150 110 : break;
37151 :
37152 700 : case 762: /* CreatePolicyStmt: CREATE POLICY name ON qualified_name RowSecurityDefaultPermissive RowSecurityDefaultForCmd RowSecurityDefaultToRole RowSecurityOptionalExpr RowSecurityOptionalWithCheck */
37153 : #line 5900 "gram.y"
37154 : {
37155 : CreatePolicyStmt *n = makeNode(CreatePolicyStmt);
37156 :
37157 : n->policy_name = (yyvsp[-7].str);
37158 : n->table = (yyvsp[-5].range);
37159 : n->permissive = (yyvsp[-4].boolean);
37160 : n->cmd_name = (yyvsp[-3].str);
37161 : n->roles = (yyvsp[-2].list);
37162 : n->qual = (yyvsp[-1].node);
37163 : n->with_check = (yyvsp[0].node);
37164 : (yyval.node) = (Node *) n;
37165 : }
37166 : #line 37167 "gram.c"
37167 700 : break;
37168 :
37169 84 : case 763: /* AlterPolicyStmt: ALTER POLICY name ON qualified_name RowSecurityOptionalToRole RowSecurityOptionalExpr RowSecurityOptionalWithCheck */
37170 : #line 5917 "gram.y"
37171 : {
37172 : AlterPolicyStmt *n = makeNode(AlterPolicyStmt);
37173 :
37174 : n->policy_name = (yyvsp[-5].str);
37175 : n->table = (yyvsp[-3].range);
37176 : n->roles = (yyvsp[-2].list);
37177 : n->qual = (yyvsp[-1].node);
37178 : n->with_check = (yyvsp[0].node);
37179 : (yyval.node) = (Node *) n;
37180 : }
37181 : #line 37182 "gram.c"
37182 84 : break;
37183 :
37184 726 : case 764: /* RowSecurityOptionalExpr: USING '(' a_expr ')' */
37185 : #line 5930 "gram.y"
37186 : { (yyval.node) = (yyvsp[-1].node); }
37187 : #line 37188 "gram.c"
37188 726 : break;
37189 :
37190 58 : case 765: /* RowSecurityOptionalExpr: %empty */
37191 : #line 5931 "gram.y"
37192 : { (yyval.node) = NULL; }
37193 : #line 37194 "gram.c"
37194 58 : break;
37195 :
37196 128 : case 766: /* RowSecurityOptionalWithCheck: WITH CHECK '(' a_expr ')' */
37197 : #line 5935 "gram.y"
37198 : { (yyval.node) = (yyvsp[-1].node); }
37199 : #line 37200 "gram.c"
37200 128 : break;
37201 :
37202 656 : case 767: /* RowSecurityOptionalWithCheck: %empty */
37203 : #line 5936 "gram.y"
37204 : { (yyval.node) = NULL; }
37205 : #line 37206 "gram.c"
37206 656 : break;
37207 :
37208 130 : case 768: /* RowSecurityDefaultToRole: TO role_list */
37209 : #line 5940 "gram.y"
37210 : { (yyval.list) = (yyvsp[0].list); }
37211 : #line 37212 "gram.c"
37212 130 : break;
37213 :
37214 570 : case 769: /* RowSecurityDefaultToRole: %empty */
37215 : #line 5941 "gram.y"
37216 : { (yyval.list) = list_make1(makeRoleSpec(ROLESPEC_PUBLIC, -1)); }
37217 : #line 37218 "gram.c"
37218 570 : break;
37219 :
37220 12 : case 770: /* RowSecurityOptionalToRole: TO role_list */
37221 : #line 5945 "gram.y"
37222 : { (yyval.list) = (yyvsp[0].list); }
37223 : #line 37224 "gram.c"
37224 12 : break;
37225 :
37226 72 : case 771: /* RowSecurityOptionalToRole: %empty */
37227 : #line 5946 "gram.y"
37228 : { (yyval.list) = NULL; }
37229 : #line 37230 "gram.c"
37230 72 : break;
37231 :
37232 98 : case 772: /* RowSecurityDefaultPermissive: AS IDENT */
37233 : #line 5951 "gram.y"
37234 : {
37235 : if (strcmp((yyvsp[0].str), "permissive") == 0)
37236 : (yyval.boolean) = true;
37237 : else if (strcmp((yyvsp[0].str), "restrictive") == 0)
37238 : (yyval.boolean) = false;
37239 : else
37240 : ereport(ERROR,
37241 : (errcode(ERRCODE_SYNTAX_ERROR),
37242 : errmsg("unrecognized row security option \"%s\"", (yyvsp[0].str)),
37243 : errhint("Only PERMISSIVE or RESTRICTIVE policies are supported currently."),
37244 : parser_errposition((yylsp[0]))));
37245 :
37246 : }
37247 : #line 37248 "gram.c"
37248 92 : break;
37249 :
37250 608 : case 773: /* RowSecurityDefaultPermissive: %empty */
37251 : #line 5964 "gram.y"
37252 : { (yyval.boolean) = true; }
37253 : #line 37254 "gram.c"
37254 608 : break;
37255 :
37256 332 : case 774: /* RowSecurityDefaultForCmd: FOR row_security_cmd */
37257 : #line 5968 "gram.y"
37258 : { (yyval.str) = (yyvsp[0].str); }
37259 : #line 37260 "gram.c"
37260 332 : break;
37261 :
37262 368 : case 775: /* RowSecurityDefaultForCmd: %empty */
37263 : #line 5969 "gram.y"
37264 : { (yyval.str) = "all"; }
37265 : #line 37266 "gram.c"
37266 368 : break;
37267 :
37268 44 : case 776: /* row_security_cmd: ALL */
37269 : #line 5973 "gram.y"
37270 : { (yyval.str) = "all"; }
37271 : #line 37272 "gram.c"
37272 44 : break;
37273 :
37274 116 : case 777: /* row_security_cmd: SELECT */
37275 : #line 5974 "gram.y"
37276 : { (yyval.str) = "select"; }
37277 : #line 37278 "gram.c"
37278 116 : break;
37279 :
37280 44 : case 778: /* row_security_cmd: INSERT */
37281 : #line 5975 "gram.y"
37282 : { (yyval.str) = "insert"; }
37283 : #line 37284 "gram.c"
37284 44 : break;
37285 :
37286 82 : case 779: /* row_security_cmd: UPDATE */
37287 : #line 5976 "gram.y"
37288 : { (yyval.str) = "update"; }
37289 : #line 37290 "gram.c"
37290 82 : break;
37291 :
37292 46 : case 780: /* row_security_cmd: DELETE_P */
37293 : #line 5977 "gram.y"
37294 : { (yyval.str) = "delete"; }
37295 : #line 37296 "gram.c"
37296 46 : break;
37297 :
37298 64 : case 781: /* CreateAmStmt: CREATE ACCESS METHOD name TYPE_P am_type HANDLER handler_name */
37299 : #line 5988 "gram.y"
37300 : {
37301 : CreateAmStmt *n = makeNode(CreateAmStmt);
37302 :
37303 : n->amname = (yyvsp[-4].str);
37304 : n->handler_name = (yyvsp[0].list);
37305 : n->amtype = (yyvsp[-2].chr);
37306 : (yyval.node) = (Node *) n;
37307 : }
37308 : #line 37309 "gram.c"
37309 64 : break;
37310 :
37311 34 : case 782: /* am_type: INDEX */
37312 : #line 5999 "gram.y"
37313 : { (yyval.chr) = AMTYPE_INDEX; }
37314 : #line 37315 "gram.c"
37315 34 : break;
37316 :
37317 30 : case 783: /* am_type: TABLE */
37318 : #line 6000 "gram.y"
37319 : { (yyval.chr) = AMTYPE_TABLE; }
37320 : #line 37321 "gram.c"
37321 30 : break;
37322 :
37323 3260 : case 784: /* CreateTrigStmt: CREATE opt_or_replace TRIGGER name TriggerActionTime TriggerEvents ON qualified_name TriggerReferencing TriggerForSpec TriggerWhen EXECUTE FUNCTION_or_PROCEDURE func_name '(' TriggerFuncArgs ')' */
37324 : #line 6014 "gram.y"
37325 : {
37326 : CreateTrigStmt *n = makeNode(CreateTrigStmt);
37327 :
37328 : n->replace = (yyvsp[-15].boolean);
37329 : n->isconstraint = false;
37330 : n->trigname = (yyvsp[-13].str);
37331 : n->relation = (yyvsp[-9].range);
37332 : n->funcname = (yyvsp[-3].list);
37333 : n->args = (yyvsp[-1].list);
37334 : n->row = (yyvsp[-7].boolean);
37335 : n->timing = (yyvsp[-12].ival);
37336 : n->events = intVal(linitial((yyvsp[-11].list)));
37337 : n->columns = (List *) lsecond((yyvsp[-11].list));
37338 : n->whenClause = (yyvsp[-6].node);
37339 : n->transitionRels = (yyvsp[-8].list);
37340 : n->deferrable = false;
37341 : n->initdeferred = false;
37342 : n->constrrel = NULL;
37343 : (yyval.node) = (Node *) n;
37344 : }
37345 : #line 37346 "gram.c"
37346 3260 : break;
37347 :
37348 62 : case 785: /* 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 ')' */
37349 : #line 6038 "gram.y"
37350 : {
37351 : CreateTrigStmt *n = makeNode(CreateTrigStmt);
37352 :
37353 : n->replace = (yyvsp[-19].boolean);
37354 : if (n->replace) /* not supported, see CreateTrigger */
37355 : ereport(ERROR,
37356 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
37357 : errmsg("CREATE OR REPLACE CONSTRAINT TRIGGER is not supported"),
37358 : parser_errposition((yylsp[-20]))));
37359 : n->isconstraint = true;
37360 : n->trigname = (yyvsp[-16].str);
37361 : n->relation = (yyvsp[-12].range);
37362 : n->funcname = (yyvsp[-3].list);
37363 : n->args = (yyvsp[-1].list);
37364 : n->row = true;
37365 : n->timing = TRIGGER_TYPE_AFTER;
37366 : n->events = intVal(linitial((yyvsp[-14].list)));
37367 : n->columns = (List *) lsecond((yyvsp[-14].list));
37368 : n->whenClause = (yyvsp[-6].node);
37369 : n->transitionRels = NIL;
37370 : processCASbits((yyvsp[-10].ival), (yylsp[-10]), "TRIGGER",
37371 : &n->deferrable, &n->initdeferred, NULL,
37372 : NULL, NULL, yyscanner);
37373 : n->constrrel = (yyvsp[-11].range);
37374 : (yyval.node) = (Node *) n;
37375 : }
37376 : #line 37377 "gram.c"
37377 62 : break;
37378 :
37379 1478 : case 786: /* TriggerActionTime: BEFORE */
37380 : #line 6067 "gram.y"
37381 : { (yyval.ival) = TRIGGER_TYPE_BEFORE; }
37382 : #line 37383 "gram.c"
37383 1478 : break;
37384 :
37385 1650 : case 787: /* TriggerActionTime: AFTER */
37386 : #line 6068 "gram.y"
37387 : { (yyval.ival) = TRIGGER_TYPE_AFTER; }
37388 : #line 37389 "gram.c"
37389 1650 : break;
37390 :
37391 144 : case 788: /* TriggerActionTime: INSTEAD OF */
37392 : #line 6069 "gram.y"
37393 : { (yyval.ival) = TRIGGER_TYPE_INSTEAD; }
37394 : #line 37395 "gram.c"
37395 144 : break;
37396 :
37397 3334 : case 789: /* TriggerEvents: TriggerOneEvent */
37398 : #line 6074 "gram.y"
37399 : { (yyval.list) = (yyvsp[0].list); }
37400 : #line 37401 "gram.c"
37401 3334 : break;
37402 :
37403 1212 : case 790: /* TriggerEvents: TriggerEvents OR TriggerOneEvent */
37404 : #line 6076 "gram.y"
37405 : {
37406 : int events1 = intVal(linitial((yyvsp[-2].list)));
37407 : int events2 = intVal(linitial((yyvsp[0].list)));
37408 : List *columns1 = (List *) lsecond((yyvsp[-2].list));
37409 : List *columns2 = (List *) lsecond((yyvsp[0].list));
37410 :
37411 : if (events1 & events2)
37412 : parser_yyerror("duplicate trigger events specified");
37413 : /*
37414 : * concat'ing the columns lists loses information about
37415 : * which columns went with which event, but so long as
37416 : * only UPDATE carries columns and we disallow multiple
37417 : * UPDATE items, it doesn't matter. Command execution
37418 : * should just ignore the columns for non-UPDATE events.
37419 : */
37420 : (yyval.list) = list_make2(makeInteger(events1 | events2),
37421 : list_concat(columns1, columns2));
37422 : }
37423 : #line 37424 "gram.c"
37424 1206 : break;
37425 :
37426 1710 : case 791: /* TriggerOneEvent: INSERT */
37427 : #line 6098 "gram.y"
37428 : { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_INSERT), NIL); }
37429 : #line 37430 "gram.c"
37430 1710 : break;
37431 :
37432 896 : case 792: /* TriggerOneEvent: DELETE_P */
37433 : #line 6100 "gram.y"
37434 : { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_DELETE), NIL); }
37435 : #line 37436 "gram.c"
37436 896 : break;
37437 :
37438 1794 : case 793: /* TriggerOneEvent: UPDATE */
37439 : #line 6102 "gram.y"
37440 : { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), NIL); }
37441 : #line 37442 "gram.c"
37442 1794 : break;
37443 :
37444 108 : case 794: /* TriggerOneEvent: UPDATE OF columnList */
37445 : #line 6104 "gram.y"
37446 : { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), (yyvsp[0].list)); }
37447 : #line 37448 "gram.c"
37448 108 : break;
37449 :
37450 38 : case 795: /* TriggerOneEvent: TRUNCATE */
37451 : #line 6106 "gram.y"
37452 : { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_TRUNCATE), NIL); }
37453 : #line 37454 "gram.c"
37454 38 : break;
37455 :
37456 470 : case 796: /* TriggerReferencing: REFERENCING TriggerTransitions */
37457 : #line 6110 "gram.y"
37458 : { (yyval.list) = (yyvsp[0].list); }
37459 : #line 37460 "gram.c"
37460 470 : break;
37461 :
37462 2790 : case 797: /* TriggerReferencing: %empty */
37463 : #line 6111 "gram.y"
37464 : { (yyval.list) = NIL; }
37465 : #line 37466 "gram.c"
37466 2790 : break;
37467 :
37468 470 : case 798: /* TriggerTransitions: TriggerTransition */
37469 : #line 6115 "gram.y"
37470 : { (yyval.list) = list_make1((yyvsp[0].node)); }
37471 : #line 37472 "gram.c"
37472 470 : break;
37473 :
37474 144 : case 799: /* TriggerTransitions: TriggerTransitions TriggerTransition */
37475 : #line 6116 "gram.y"
37476 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); }
37477 : #line 37478 "gram.c"
37478 144 : break;
37479 :
37480 614 : case 800: /* TriggerTransition: TransitionOldOrNew TransitionRowOrTable opt_as TransitionRelName */
37481 : #line 6121 "gram.y"
37482 : {
37483 : TriggerTransition *n = makeNode(TriggerTransition);
37484 :
37485 : n->name = (yyvsp[0].str);
37486 : n->isNew = (yyvsp[-3].boolean);
37487 : n->isTable = (yyvsp[-2].boolean);
37488 : (yyval.node) = (Node *) n;
37489 : }
37490 : #line 37491 "gram.c"
37491 614 : break;
37492 :
37493 336 : case 801: /* TransitionOldOrNew: NEW */
37494 : #line 6132 "gram.y"
37495 : { (yyval.boolean) = true; }
37496 : #line 37497 "gram.c"
37497 336 : break;
37498 :
37499 278 : case 802: /* TransitionOldOrNew: OLD */
37500 : #line 6133 "gram.y"
37501 : { (yyval.boolean) = false; }
37502 : #line 37503 "gram.c"
37503 278 : break;
37504 :
37505 614 : case 803: /* TransitionRowOrTable: TABLE */
37506 : #line 6137 "gram.y"
37507 : { (yyval.boolean) = true; }
37508 : #line 37509 "gram.c"
37509 614 : break;
37510 :
37511 0 : case 804: /* TransitionRowOrTable: ROW */
37512 : #line 6146 "gram.y"
37513 : { (yyval.boolean) = false; }
37514 : #line 37515 "gram.c"
37515 0 : break;
37516 :
37517 614 : case 805: /* TransitionRelName: ColId */
37518 : #line 6150 "gram.y"
37519 : { (yyval.str) = (yyvsp[0].str); }
37520 : #line 37521 "gram.c"
37521 614 : break;
37522 :
37523 3032 : case 806: /* TriggerForSpec: FOR TriggerForOptEach TriggerForType */
37524 : #line 6155 "gram.y"
37525 : {
37526 : (yyval.boolean) = (yyvsp[0].boolean);
37527 : }
37528 : #line 37529 "gram.c"
37529 3032 : break;
37530 :
37531 228 : case 807: /* TriggerForSpec: %empty */
37532 : #line 6159 "gram.y"
37533 : {
37534 : /*
37535 : * If ROW/STATEMENT not specified, default to
37536 : * STATEMENT, per SQL
37537 : */
37538 : (yyval.boolean) = false;
37539 : }
37540 : #line 37541 "gram.c"
37541 228 : break;
37542 :
37543 2196 : case 810: /* TriggerForType: ROW */
37544 : #line 6174 "gram.y"
37545 : { (yyval.boolean) = true; }
37546 : #line 37547 "gram.c"
37547 2196 : break;
37548 :
37549 836 : case 811: /* TriggerForType: STATEMENT */
37550 : #line 6175 "gram.y"
37551 : { (yyval.boolean) = false; }
37552 : #line 37553 "gram.c"
37553 836 : break;
37554 :
37555 194 : case 812: /* TriggerWhen: WHEN '(' a_expr ')' */
37556 : #line 6179 "gram.y"
37557 : { (yyval.node) = (yyvsp[-1].node); }
37558 : #line 37559 "gram.c"
37559 194 : break;
37560 :
37561 3128 : case 813: /* TriggerWhen: %empty */
37562 : #line 6180 "gram.y"
37563 : { (yyval.node) = NULL; }
37564 : #line 37565 "gram.c"
37565 3128 : break;
37566 :
37567 588 : case 816: /* TriggerFuncArgs: TriggerFuncArg */
37568 : #line 6189 "gram.y"
37569 : { (yyval.list) = list_make1((yyvsp[0].node)); }
37570 : #line 37571 "gram.c"
37571 588 : break;
37572 :
37573 166 : case 817: /* TriggerFuncArgs: TriggerFuncArgs ',' TriggerFuncArg */
37574 : #line 6190 "gram.y"
37575 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
37576 : #line 37577 "gram.c"
37577 166 : break;
37578 :
37579 2734 : case 818: /* TriggerFuncArgs: %empty */
37580 : #line 6191 "gram.y"
37581 : { (yyval.list) = NIL; }
37582 : #line 37583 "gram.c"
37583 2734 : break;
37584 :
37585 94 : case 819: /* TriggerFuncArg: Iconst */
37586 : #line 6196 "gram.y"
37587 : {
37588 : (yyval.node) = (Node *) makeString(psprintf("%d", (yyvsp[0].ival)));
37589 : }
37590 : #line 37591 "gram.c"
37591 94 : break;
37592 :
37593 0 : case 820: /* TriggerFuncArg: FCONST */
37594 : #line 6199 "gram.y"
37595 : { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
37596 : #line 37597 "gram.c"
37597 0 : break;
37598 :
37599 638 : case 821: /* TriggerFuncArg: Sconst */
37600 : #line 6200 "gram.y"
37601 : { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
37602 : #line 37603 "gram.c"
37603 638 : break;
37604 :
37605 22 : case 822: /* TriggerFuncArg: ColLabel */
37606 : #line 6201 "gram.y"
37607 : { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
37608 : #line 37609 "gram.c"
37609 22 : break;
37610 :
37611 12 : case 823: /* OptConstrFromTable: FROM qualified_name */
37612 : #line 6205 "gram.y"
37613 : { (yyval.range) = (yyvsp[0].range); }
37614 : #line 37615 "gram.c"
37615 12 : break;
37616 :
37617 50 : case 824: /* OptConstrFromTable: %empty */
37618 : #line 6206 "gram.y"
37619 : { (yyval.range) = NULL; }
37620 : #line 37621 "gram.c"
37621 50 : break;
37622 :
37623 17928 : case 825: /* ConstraintAttributeSpec: %empty */
37624 : #line 6211 "gram.y"
37625 : { (yyval.ival) = 0; }
37626 : #line 37627 "gram.c"
37627 17928 : break;
37628 :
37629 1644 : case 826: /* ConstraintAttributeSpec: ConstraintAttributeSpec ConstraintAttributeElem */
37630 : #line 6213 "gram.y"
37631 : {
37632 : /*
37633 : * We must complain about conflicting options.
37634 : * We could, but choose not to, complain about redundant
37635 : * options (ie, where $2's bit is already set in $1).
37636 : */
37637 : int newspec = (yyvsp[-1].ival) | (yyvsp[0].ival);
37638 :
37639 : /* special message for this case */
37640 : if ((newspec & (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) == (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED))
37641 : ereport(ERROR,
37642 : (errcode(ERRCODE_SYNTAX_ERROR),
37643 : errmsg("constraint declared INITIALLY DEFERRED must be DEFERRABLE"),
37644 : parser_errposition((yylsp[0]))));
37645 : /* generic message for other conflicts */
37646 : if ((newspec & (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE)) == (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE) ||
37647 : (newspec & (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) == (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED) ||
37648 : (newspec & (CAS_NOT_ENFORCED | CAS_ENFORCED)) == (CAS_NOT_ENFORCED | CAS_ENFORCED))
37649 : ereport(ERROR,
37650 : (errcode(ERRCODE_SYNTAX_ERROR),
37651 : errmsg("conflicting constraint properties"),
37652 : parser_errposition((yylsp[0]))));
37653 : (yyval.ival) = newspec;
37654 : }
37655 : #line 37656 "gram.c"
37656 1632 : break;
37657 :
37658 42 : case 827: /* ConstraintAttributeElem: NOT DEFERRABLE */
37659 : #line 6240 "gram.y"
37660 : { (yyval.ival) = CAS_NOT_DEFERRABLE; }
37661 : #line 37662 "gram.c"
37662 42 : break;
37663 :
37664 212 : case 828: /* ConstraintAttributeElem: DEFERRABLE */
37665 : #line 6241 "gram.y"
37666 : { (yyval.ival) = CAS_DEFERRABLE; }
37667 : #line 37668 "gram.c"
37668 212 : break;
37669 :
37670 30 : case 829: /* ConstraintAttributeElem: INITIALLY IMMEDIATE */
37671 : #line 6242 "gram.y"
37672 : { (yyval.ival) = CAS_INITIALLY_IMMEDIATE; }
37673 : #line 37674 "gram.c"
37674 30 : break;
37675 :
37676 158 : case 830: /* ConstraintAttributeElem: INITIALLY DEFERRED */
37677 : #line 6243 "gram.y"
37678 : { (yyval.ival) = CAS_INITIALLY_DEFERRED; }
37679 : #line 37680 "gram.c"
37680 158 : break;
37681 :
37682 702 : case 831: /* ConstraintAttributeElem: NOT VALID */
37683 : #line 6244 "gram.y"
37684 : { (yyval.ival) = CAS_NOT_VALID; }
37685 : #line 37686 "gram.c"
37686 702 : break;
37687 :
37688 242 : case 832: /* ConstraintAttributeElem: NO INHERIT */
37689 : #line 6245 "gram.y"
37690 : { (yyval.ival) = CAS_NO_INHERIT; }
37691 : #line 37692 "gram.c"
37692 242 : break;
37693 :
37694 162 : case 833: /* ConstraintAttributeElem: NOT ENFORCED */
37695 : #line 6246 "gram.y"
37696 : { (yyval.ival) = CAS_NOT_ENFORCED; }
37697 : #line 37698 "gram.c"
37698 162 : break;
37699 :
37700 96 : case 834: /* ConstraintAttributeElem: ENFORCED */
37701 : #line 6247 "gram.y"
37702 : { (yyval.ival) = CAS_ENFORCED; }
37703 : #line 37704 "gram.c"
37704 96 : break;
37705 :
37706 98 : case 835: /* CreateEventTrigStmt: CREATE EVENT TRIGGER name ON ColLabel EXECUTE FUNCTION_or_PROCEDURE func_name '(' ')' */
37707 : #line 6262 "gram.y"
37708 : {
37709 : CreateEventTrigStmt *n = makeNode(CreateEventTrigStmt);
37710 :
37711 : n->trigname = (yyvsp[-7].str);
37712 : n->eventname = (yyvsp[-5].str);
37713 : n->whenclause = NULL;
37714 : n->funcname = (yyvsp[-2].list);
37715 : (yyval.node) = (Node *) n;
37716 : }
37717 : #line 37718 "gram.c"
37718 98 : break;
37719 :
37720 100 : case 836: /* CreateEventTrigStmt: CREATE EVENT TRIGGER name ON ColLabel WHEN event_trigger_when_list EXECUTE FUNCTION_or_PROCEDURE func_name '(' ')' */
37721 : #line 6274 "gram.y"
37722 : {
37723 : CreateEventTrigStmt *n = makeNode(CreateEventTrigStmt);
37724 :
37725 : n->trigname = (yyvsp[-9].str);
37726 : n->eventname = (yyvsp[-7].str);
37727 : n->whenclause = (yyvsp[-5].list);
37728 : n->funcname = (yyvsp[-2].list);
37729 : (yyval.node) = (Node *) n;
37730 : }
37731 : #line 37732 "gram.c"
37732 100 : break;
37733 :
37734 100 : case 837: /* event_trigger_when_list: event_trigger_when_item */
37735 : #line 6287 "gram.y"
37736 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
37737 : #line 37738 "gram.c"
37738 100 : break;
37739 :
37740 6 : case 838: /* event_trigger_when_list: event_trigger_when_list AND event_trigger_when_item */
37741 : #line 6289 "gram.y"
37742 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); }
37743 : #line 37744 "gram.c"
37744 6 : break;
37745 :
37746 106 : case 839: /* event_trigger_when_item: ColId IN_P '(' event_trigger_value_list ')' */
37747 : #line 6294 "gram.y"
37748 : { (yyval.defelt) = makeDefElem((yyvsp[-4].str), (Node *) (yyvsp[-1].list), (yylsp[-4])); }
37749 : #line 37750 "gram.c"
37750 106 : break;
37751 :
37752 106 : case 840: /* event_trigger_value_list: SCONST */
37753 : #line 6299 "gram.y"
37754 : { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
37755 : #line 37756 "gram.c"
37756 106 : break;
37757 :
37758 66 : case 841: /* event_trigger_value_list: event_trigger_value_list ',' SCONST */
37759 : #line 6301 "gram.y"
37760 : { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); }
37761 : #line 37762 "gram.c"
37762 66 : break;
37763 :
37764 48 : case 842: /* AlterEventTrigStmt: ALTER EVENT TRIGGER name enable_trigger */
37765 : #line 6306 "gram.y"
37766 : {
37767 : AlterEventTrigStmt *n = makeNode(AlterEventTrigStmt);
37768 :
37769 : n->trigname = (yyvsp[-1].str);
37770 : n->tgenabled = (yyvsp[0].chr);
37771 : (yyval.node) = (Node *) n;
37772 : }
37773 : #line 37774 "gram.c"
37774 48 : break;
37775 :
37776 6 : case 843: /* enable_trigger: ENABLE_P */
37777 : #line 6316 "gram.y"
37778 : { (yyval.chr) = TRIGGER_FIRES_ON_ORIGIN; }
37779 : #line 37780 "gram.c"
37780 6 : break;
37781 :
37782 6 : case 844: /* enable_trigger: ENABLE_P REPLICA */
37783 : #line 6317 "gram.y"
37784 : { (yyval.chr) = TRIGGER_FIRES_ON_REPLICA; }
37785 : #line 37786 "gram.c"
37786 6 : break;
37787 :
37788 16 : case 845: /* enable_trigger: ENABLE_P ALWAYS */
37789 : #line 6318 "gram.y"
37790 : { (yyval.chr) = TRIGGER_FIRES_ALWAYS; }
37791 : #line 37792 "gram.c"
37792 16 : break;
37793 :
37794 20 : case 846: /* enable_trigger: DISABLE_P */
37795 : #line 6319 "gram.y"
37796 : { (yyval.chr) = TRIGGER_DISABLED; }
37797 : #line 37798 "gram.c"
37798 20 : break;
37799 :
37800 0 : case 847: /* CreateAssertionStmt: CREATE ASSERTION any_name CHECK '(' a_expr ')' ConstraintAttributeSpec */
37801 : #line 6331 "gram.y"
37802 : {
37803 : ereport(ERROR,
37804 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
37805 : errmsg("CREATE ASSERTION is not yet implemented"),
37806 : parser_errposition((yylsp[-7]))));
37807 :
37808 : (yyval.node) = NULL;
37809 : }
37810 : #line 37811 "gram.c"
37811 : break;
37812 :
37813 638 : case 848: /* DefineStmt: CREATE opt_or_replace AGGREGATE func_name aggr_args definition */
37814 : #line 6351 "gram.y"
37815 : {
37816 : DefineStmt *n = makeNode(DefineStmt);
37817 :
37818 : n->kind = OBJECT_AGGREGATE;
37819 : n->oldstyle = false;
37820 : n->replace = (yyvsp[-4].boolean);
37821 : n->defnames = (yyvsp[-2].list);
37822 : n->args = (yyvsp[-1].list);
37823 : n->definition = (yyvsp[0].list);
37824 : (yyval.node) = (Node *) n;
37825 : }
37826 : #line 37827 "gram.c"
37827 638 : break;
37828 :
37829 362 : case 849: /* DefineStmt: CREATE opt_or_replace AGGREGATE func_name old_aggr_definition */
37830 : #line 6363 "gram.y"
37831 : {
37832 : /* old-style (pre-8.2) syntax for CREATE AGGREGATE */
37833 : DefineStmt *n = makeNode(DefineStmt);
37834 :
37835 : n->kind = OBJECT_AGGREGATE;
37836 : n->oldstyle = true;
37837 : n->replace = (yyvsp[-3].boolean);
37838 : n->defnames = (yyvsp[-1].list);
37839 : n->args = NIL;
37840 : n->definition = (yyvsp[0].list);
37841 : (yyval.node) = (Node *) n;
37842 : }
37843 : #line 37844 "gram.c"
37844 362 : break;
37845 :
37846 1610 : case 850: /* DefineStmt: CREATE OPERATOR any_operator definition */
37847 : #line 6376 "gram.y"
37848 : {
37849 : DefineStmt *n = makeNode(DefineStmt);
37850 :
37851 : n->kind = OBJECT_OPERATOR;
37852 : n->oldstyle = false;
37853 : n->defnames = (yyvsp[-1].list);
37854 : n->args = NIL;
37855 : n->definition = (yyvsp[0].list);
37856 : (yyval.node) = (Node *) n;
37857 : }
37858 : #line 37859 "gram.c"
37859 1610 : break;
37860 :
37861 230 : case 851: /* DefineStmt: CREATE TYPE_P any_name definition */
37862 : #line 6387 "gram.y"
37863 : {
37864 : DefineStmt *n = makeNode(DefineStmt);
37865 :
37866 : n->kind = OBJECT_TYPE;
37867 : n->oldstyle = false;
37868 : n->defnames = (yyvsp[-1].list);
37869 : n->args = NIL;
37870 : n->definition = (yyvsp[0].list);
37871 : (yyval.node) = (Node *) n;
37872 : }
37873 : #line 37874 "gram.c"
37874 230 : break;
37875 :
37876 172 : case 852: /* DefineStmt: CREATE TYPE_P any_name */
37877 : #line 6398 "gram.y"
37878 : {
37879 : /* Shell type (identified by lack of definition) */
37880 : DefineStmt *n = makeNode(DefineStmt);
37881 :
37882 : n->kind = OBJECT_TYPE;
37883 : n->oldstyle = false;
37884 : n->defnames = (yyvsp[0].list);
37885 : n->args = NIL;
37886 : n->definition = NIL;
37887 : (yyval.node) = (Node *) n;
37888 : }
37889 : #line 37890 "gram.c"
37890 172 : break;
37891 :
37892 4532 : case 853: /* DefineStmt: CREATE TYPE_P any_name AS '(' OptTableFuncElementList ')' */
37893 : #line 6410 "gram.y"
37894 : {
37895 : CompositeTypeStmt *n = makeNode(CompositeTypeStmt);
37896 :
37897 : /* can't use qualified_name, sigh */
37898 : n->typevar = makeRangeVarFromAnyName((yyvsp[-4].list), (yylsp[-4]), yyscanner);
37899 : n->coldeflist = (yyvsp[-1].list);
37900 : (yyval.node) = (Node *) n;
37901 : }
37902 : #line 37903 "gram.c"
37903 4532 : break;
37904 :
37905 208 : case 854: /* DefineStmt: CREATE TYPE_P any_name AS ENUM_P '(' opt_enum_val_list ')' */
37906 : #line 6419 "gram.y"
37907 : {
37908 : CreateEnumStmt *n = makeNode(CreateEnumStmt);
37909 :
37910 : n->typeName = (yyvsp[-5].list);
37911 : n->vals = (yyvsp[-1].list);
37912 : (yyval.node) = (Node *) n;
37913 : }
37914 : #line 37915 "gram.c"
37915 208 : break;
37916 :
37917 196 : case 855: /* DefineStmt: CREATE TYPE_P any_name AS RANGE definition */
37918 : #line 6427 "gram.y"
37919 : {
37920 : CreateRangeStmt *n = makeNode(CreateRangeStmt);
37921 :
37922 : n->typeName = (yyvsp[-3].list);
37923 : n->params = (yyvsp[0].list);
37924 : (yyval.node) = (Node *) n;
37925 : }
37926 : #line 37927 "gram.c"
37927 196 : break;
37928 :
37929 40 : case 856: /* DefineStmt: CREATE TEXT_P SEARCH PARSER any_name definition */
37930 : #line 6435 "gram.y"
37931 : {
37932 : DefineStmt *n = makeNode(DefineStmt);
37933 :
37934 : n->kind = OBJECT_TSPARSER;
37935 : n->args = NIL;
37936 : n->defnames = (yyvsp[-1].list);
37937 : n->definition = (yyvsp[0].list);
37938 : (yyval.node) = (Node *) n;
37939 : }
37940 : #line 37941 "gram.c"
37941 40 : break;
37942 :
37943 2890 : case 857: /* DefineStmt: CREATE TEXT_P SEARCH DICTIONARY any_name definition */
37944 : #line 6445 "gram.y"
37945 : {
37946 : DefineStmt *n = makeNode(DefineStmt);
37947 :
37948 : n->kind = OBJECT_TSDICTIONARY;
37949 : n->args = NIL;
37950 : n->defnames = (yyvsp[-1].list);
37951 : n->definition = (yyvsp[0].list);
37952 : (yyval.node) = (Node *) n;
37953 : }
37954 : #line 37955 "gram.c"
37955 2890 : break;
37956 :
37957 138 : case 858: /* DefineStmt: CREATE TEXT_P SEARCH TEMPLATE any_name definition */
37958 : #line 6455 "gram.y"
37959 : {
37960 : DefineStmt *n = makeNode(DefineStmt);
37961 :
37962 : n->kind = OBJECT_TSTEMPLATE;
37963 : n->args = NIL;
37964 : n->defnames = (yyvsp[-1].list);
37965 : n->definition = (yyvsp[0].list);
37966 : (yyval.node) = (Node *) n;
37967 : }
37968 : #line 37969 "gram.c"
37969 138 : break;
37970 :
37971 2822 : case 859: /* DefineStmt: CREATE TEXT_P SEARCH CONFIGURATION any_name definition */
37972 : #line 6465 "gram.y"
37973 : {
37974 : DefineStmt *n = makeNode(DefineStmt);
37975 :
37976 : n->kind = OBJECT_TSCONFIGURATION;
37977 : n->args = NIL;
37978 : n->defnames = (yyvsp[-1].list);
37979 : n->definition = (yyvsp[0].list);
37980 : (yyval.node) = (Node *) n;
37981 : }
37982 : #line 37983 "gram.c"
37983 2822 : break;
37984 :
37985 298 : case 860: /* DefineStmt: CREATE COLLATION any_name definition */
37986 : #line 6475 "gram.y"
37987 : {
37988 : DefineStmt *n = makeNode(DefineStmt);
37989 :
37990 : n->kind = OBJECT_COLLATION;
37991 : n->args = NIL;
37992 : n->defnames = (yyvsp[-1].list);
37993 : n->definition = (yyvsp[0].list);
37994 : (yyval.node) = (Node *) n;
37995 : }
37996 : #line 37997 "gram.c"
37997 298 : break;
37998 :
37999 18 : case 861: /* DefineStmt: CREATE COLLATION IF_P NOT EXISTS any_name definition */
38000 : #line 6485 "gram.y"
38001 : {
38002 : DefineStmt *n = makeNode(DefineStmt);
38003 :
38004 : n->kind = OBJECT_COLLATION;
38005 : n->args = NIL;
38006 : n->defnames = (yyvsp[-1].list);
38007 : n->definition = (yyvsp[0].list);
38008 : n->if_not_exists = true;
38009 : (yyval.node) = (Node *) n;
38010 : }
38011 : #line 38012 "gram.c"
38012 18 : break;
38013 :
38014 54 : case 862: /* DefineStmt: CREATE COLLATION any_name FROM any_name */
38015 : #line 6496 "gram.y"
38016 : {
38017 : DefineStmt *n = makeNode(DefineStmt);
38018 :
38019 : n->kind = OBJECT_COLLATION;
38020 : n->args = NIL;
38021 : n->defnames = (yyvsp[-2].list);
38022 : n->definition = list_make1(makeDefElem("from", (Node *) (yyvsp[0].list), (yylsp[0])));
38023 : (yyval.node) = (Node *) n;
38024 : }
38025 : #line 38026 "gram.c"
38026 54 : break;
38027 :
38028 0 : case 863: /* DefineStmt: CREATE COLLATION IF_P NOT EXISTS any_name FROM any_name */
38029 : #line 6506 "gram.y"
38030 : {
38031 : DefineStmt *n = makeNode(DefineStmt);
38032 :
38033 : n->kind = OBJECT_COLLATION;
38034 : n->args = NIL;
38035 : n->defnames = (yyvsp[-2].list);
38036 : n->definition = list_make1(makeDefElem("from", (Node *) (yyvsp[0].list), (yylsp[0])));
38037 : n->if_not_exists = true;
38038 : (yyval.node) = (Node *) n;
38039 : }
38040 : #line 38041 "gram.c"
38041 0 : break;
38042 :
38043 9852 : case 864: /* definition: '(' def_list ')' */
38044 : #line 6518 "gram.y"
38045 : { (yyval.list) = (yyvsp[-1].list); }
38046 : #line 38047 "gram.c"
38047 9852 : break;
38048 :
38049 9852 : case 865: /* def_list: def_elem */
38050 : #line 6521 "gram.y"
38051 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
38052 : #line 38053 "gram.c"
38053 9852 : break;
38054 :
38055 14934 : case 866: /* def_list: def_list ',' def_elem */
38056 : #line 6522 "gram.y"
38057 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); }
38058 : #line 38059 "gram.c"
38059 14934 : break;
38060 :
38061 24428 : case 867: /* def_elem: ColLabel '=' def_arg */
38062 : #line 6526 "gram.y"
38063 : {
38064 : (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2]));
38065 : }
38066 : #line 38067 "gram.c"
38067 24428 : break;
38068 :
38069 358 : case 868: /* def_elem: ColLabel */
38070 : #line 6530 "gram.y"
38071 : {
38072 : (yyval.defelt) = makeDefElem((yyvsp[0].str), NULL, (yylsp[0]));
38073 : }
38074 : #line 38075 "gram.c"
38075 358 : break;
38076 :
38077 19826 : case 869: /* def_arg: func_type */
38078 : #line 6536 "gram.y"
38079 : { (yyval.node) = (Node *) (yyvsp[0].typnam); }
38080 : #line 38081 "gram.c"
38081 19826 : break;
38082 :
38083 3988 : case 870: /* def_arg: reserved_keyword */
38084 : #line 6537 "gram.y"
38085 : { (yyval.node) = (Node *) makeString(pstrdup((yyvsp[0].keyword))); }
38086 : #line 38087 "gram.c"
38087 3988 : break;
38088 :
38089 1186 : case 871: /* def_arg: qual_all_Op */
38090 : #line 6538 "gram.y"
38091 : { (yyval.node) = (Node *) (yyvsp[0].list); }
38092 : #line 38093 "gram.c"
38093 1186 : break;
38094 :
38095 1304 : case 872: /* def_arg: NumericOnly */
38096 : #line 6539 "gram.y"
38097 : { (yyval.node) = (Node *) (yyvsp[0].node); }
38098 : #line 38099 "gram.c"
38099 1304 : break;
38100 :
38101 2048 : case 873: /* def_arg: Sconst */
38102 : #line 6540 "gram.y"
38103 : { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
38104 : #line 38105 "gram.c"
38105 2048 : break;
38106 :
38107 164 : case 874: /* def_arg: NONE */
38108 : #line 6541 "gram.y"
38109 : { (yyval.node) = (Node *) makeString(pstrdup((yyvsp[0].keyword))); }
38110 : #line 38111 "gram.c"
38111 164 : break;
38112 :
38113 362 : case 875: /* old_aggr_definition: '(' old_aggr_list ')' */
38114 : #line 6544 "gram.y"
38115 : { (yyval.list) = (yyvsp[-1].list); }
38116 : #line 38117 "gram.c"
38117 362 : break;
38118 :
38119 362 : case 876: /* old_aggr_list: old_aggr_elem */
38120 : #line 6547 "gram.y"
38121 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
38122 : #line 38123 "gram.c"
38123 362 : break;
38124 :
38125 1292 : case 877: /* old_aggr_list: old_aggr_list ',' old_aggr_elem */
38126 : #line 6548 "gram.y"
38127 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); }
38128 : #line 38129 "gram.c"
38129 1292 : break;
38130 :
38131 1654 : case 878: /* old_aggr_elem: IDENT '=' def_arg */
38132 : #line 6557 "gram.y"
38133 : {
38134 : (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2]));
38135 : }
38136 : #line 38137 "gram.c"
38137 1654 : break;
38138 :
38139 200 : case 879: /* opt_enum_val_list: enum_val_list */
38140 : #line 6563 "gram.y"
38141 : { (yyval.list) = (yyvsp[0].list); }
38142 : #line 38143 "gram.c"
38143 200 : break;
38144 :
38145 8 : case 880: /* opt_enum_val_list: %empty */
38146 : #line 6564 "gram.y"
38147 : { (yyval.list) = NIL; }
38148 : #line 38149 "gram.c"
38149 8 : break;
38150 :
38151 200 : case 881: /* enum_val_list: Sconst */
38152 : #line 6568 "gram.y"
38153 : { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
38154 : #line 38155 "gram.c"
38155 200 : break;
38156 :
38157 10496 : case 882: /* enum_val_list: enum_val_list ',' Sconst */
38158 : #line 6570 "gram.y"
38159 : { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); }
38160 : #line 38161 "gram.c"
38161 10496 : break;
38162 :
38163 154 : case 883: /* AlterEnumStmt: ALTER TYPE_P any_name ADD_P VALUE_P opt_if_not_exists Sconst */
38164 : #line 6581 "gram.y"
38165 : {
38166 : AlterEnumStmt *n = makeNode(AlterEnumStmt);
38167 :
38168 : n->typeName = (yyvsp[-4].list);
38169 : n->oldVal = NULL;
38170 : n->newVal = (yyvsp[0].str);
38171 : n->newValNeighbor = NULL;
38172 : n->newValIsAfter = true;
38173 : n->skipIfNewValExists = (yyvsp[-1].boolean);
38174 : (yyval.node) = (Node *) n;
38175 : }
38176 : #line 38177 "gram.c"
38177 154 : break;
38178 :
38179 196 : case 884: /* AlterEnumStmt: ALTER TYPE_P any_name ADD_P VALUE_P opt_if_not_exists Sconst BEFORE Sconst */
38180 : #line 6593 "gram.y"
38181 : {
38182 : AlterEnumStmt *n = makeNode(AlterEnumStmt);
38183 :
38184 : n->typeName = (yyvsp[-6].list);
38185 : n->oldVal = NULL;
38186 : n->newVal = (yyvsp[-2].str);
38187 : n->newValNeighbor = (yyvsp[0].str);
38188 : n->newValIsAfter = false;
38189 : n->skipIfNewValExists = (yyvsp[-3].boolean);
38190 : (yyval.node) = (Node *) n;
38191 : }
38192 : #line 38193 "gram.c"
38193 196 : break;
38194 :
38195 22 : case 885: /* AlterEnumStmt: ALTER TYPE_P any_name ADD_P VALUE_P opt_if_not_exists Sconst AFTER Sconst */
38196 : #line 6605 "gram.y"
38197 : {
38198 : AlterEnumStmt *n = makeNode(AlterEnumStmt);
38199 :
38200 : n->typeName = (yyvsp[-6].list);
38201 : n->oldVal = NULL;
38202 : n->newVal = (yyvsp[-2].str);
38203 : n->newValNeighbor = (yyvsp[0].str);
38204 : n->newValIsAfter = true;
38205 : n->skipIfNewValExists = (yyvsp[-3].boolean);
38206 : (yyval.node) = (Node *) n;
38207 : }
38208 : #line 38209 "gram.c"
38209 22 : break;
38210 :
38211 24 : case 886: /* AlterEnumStmt: ALTER TYPE_P any_name RENAME VALUE_P Sconst TO Sconst */
38212 : #line 6617 "gram.y"
38213 : {
38214 : AlterEnumStmt *n = makeNode(AlterEnumStmt);
38215 :
38216 : n->typeName = (yyvsp[-5].list);
38217 : n->oldVal = (yyvsp[-2].str);
38218 : n->newVal = (yyvsp[0].str);
38219 : n->newValNeighbor = NULL;
38220 : n->newValIsAfter = false;
38221 : n->skipIfNewValExists = false;
38222 : (yyval.node) = (Node *) n;
38223 : }
38224 : #line 38225 "gram.c"
38225 24 : break;
38226 :
38227 0 : case 887: /* AlterEnumStmt: ALTER TYPE_P any_name DROP VALUE_P Sconst */
38228 : #line 6629 "gram.y"
38229 : {
38230 : /*
38231 : * The following problems must be solved before this can be
38232 : * implemented:
38233 : *
38234 : * - There must be no instance of the target value in
38235 : * any table.
38236 : *
38237 : * - The value must not appear in any catalog metadata,
38238 : * such as stored view expressions or column defaults.
38239 : *
38240 : * - The value must not appear in any non-leaf page of a
38241 : * btree (and similar issues with other index types).
38242 : * This is problematic because a value could persist
38243 : * there long after it's gone from user-visible data.
38244 : *
38245 : * - Concurrent sessions must not be able to insert the
38246 : * value while the preceding conditions are being checked.
38247 : *
38248 : * - Possibly more...
38249 : */
38250 : ereport(ERROR,
38251 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
38252 : errmsg("dropping an enum value is not implemented"),
38253 : parser_errposition((yylsp[-2]))));
38254 : }
38255 : #line 38256 "gram.c"
38256 : break;
38257 :
38258 12 : case 888: /* opt_if_not_exists: IF_P NOT EXISTS */
38259 : #line 6657 "gram.y"
38260 : { (yyval.boolean) = true; }
38261 : #line 38262 "gram.c"
38262 12 : break;
38263 :
38264 360 : case 889: /* opt_if_not_exists: %empty */
38265 : #line 6658 "gram.y"
38266 : { (yyval.boolean) = false; }
38267 : #line 38268 "gram.c"
38268 360 : break;
38269 :
38270 394 : case 890: /* CreateOpClassStmt: CREATE OPERATOR CLASS any_name opt_default FOR TYPE_P Typename USING name opt_opfamily AS opclass_item_list */
38271 : #line 6676 "gram.y"
38272 : {
38273 : CreateOpClassStmt *n = makeNode(CreateOpClassStmt);
38274 :
38275 : n->opclassname = (yyvsp[-9].list);
38276 : n->isDefault = (yyvsp[-8].boolean);
38277 : n->datatype = (yyvsp[-5].typnam);
38278 : n->amname = (yyvsp[-3].str);
38279 : n->opfamilyname = (yyvsp[-2].list);
38280 : n->items = (yyvsp[0].list);
38281 : (yyval.node) = (Node *) n;
38282 : }
38283 : #line 38284 "gram.c"
38284 394 : break;
38285 :
38286 908 : case 891: /* opclass_item_list: opclass_item */
38287 : #line 6690 "gram.y"
38288 : { (yyval.list) = list_make1((yyvsp[0].node)); }
38289 : #line 38290 "gram.c"
38290 908 : break;
38291 :
38292 3088 : case 892: /* opclass_item_list: opclass_item_list ',' opclass_item */
38293 : #line 6691 "gram.y"
38294 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
38295 : #line 38296 "gram.c"
38296 3088 : break;
38297 :
38298 1092 : case 893: /* opclass_item: OPERATOR Iconst any_operator opclass_purpose */
38299 : #line 6696 "gram.y"
38300 : {
38301 : CreateOpClassItem *n = makeNode(CreateOpClassItem);
38302 : ObjectWithArgs *owa = makeNode(ObjectWithArgs);
38303 :
38304 : owa->objname = (yyvsp[-1].list);
38305 : owa->objargs = NIL;
38306 : n->itemtype = OPCLASS_ITEM_OPERATOR;
38307 : n->name = owa;
38308 : n->number = (yyvsp[-2].ival);
38309 : n->order_family = (yyvsp[0].list);
38310 : (yyval.node) = (Node *) n;
38311 : }
38312 : #line 38313 "gram.c"
38313 1092 : break;
38314 :
38315 1066 : case 894: /* opclass_item: OPERATOR Iconst operator_with_argtypes opclass_purpose */
38316 : #line 6709 "gram.y"
38317 : {
38318 : CreateOpClassItem *n = makeNode(CreateOpClassItem);
38319 :
38320 : n->itemtype = OPCLASS_ITEM_OPERATOR;
38321 : n->name = (yyvsp[-1].objwithargs);
38322 : n->number = (yyvsp[-2].ival);
38323 : n->order_family = (yyvsp[0].list);
38324 : (yyval.node) = (Node *) n;
38325 : }
38326 : #line 38327 "gram.c"
38327 1066 : break;
38328 :
38329 1386 : case 895: /* opclass_item: FUNCTION Iconst function_with_argtypes */
38330 : #line 6719 "gram.y"
38331 : {
38332 : CreateOpClassItem *n = makeNode(CreateOpClassItem);
38333 :
38334 : n->itemtype = OPCLASS_ITEM_FUNCTION;
38335 : n->name = (yyvsp[0].objwithargs);
38336 : n->number = (yyvsp[-1].ival);
38337 : (yyval.node) = (Node *) n;
38338 : }
38339 : #line 38340 "gram.c"
38340 1386 : break;
38341 :
38342 252 : case 896: /* opclass_item: FUNCTION Iconst '(' type_list ')' function_with_argtypes */
38343 : #line 6728 "gram.y"
38344 : {
38345 : CreateOpClassItem *n = makeNode(CreateOpClassItem);
38346 :
38347 : n->itemtype = OPCLASS_ITEM_FUNCTION;
38348 : n->name = (yyvsp[0].objwithargs);
38349 : n->number = (yyvsp[-4].ival);
38350 : n->class_args = (yyvsp[-2].list);
38351 : (yyval.node) = (Node *) n;
38352 : }
38353 : #line 38354 "gram.c"
38354 252 : break;
38355 :
38356 200 : case 897: /* opclass_item: STORAGE Typename */
38357 : #line 6738 "gram.y"
38358 : {
38359 : CreateOpClassItem *n = makeNode(CreateOpClassItem);
38360 :
38361 : n->itemtype = OPCLASS_ITEM_STORAGETYPE;
38362 : n->storedtype = (yyvsp[0].typnam);
38363 : (yyval.node) = (Node *) n;
38364 : }
38365 : #line 38366 "gram.c"
38366 200 : break;
38367 :
38368 290 : case 898: /* opt_default: DEFAULT */
38369 : #line 6747 "gram.y"
38370 : { (yyval.boolean) = true; }
38371 : #line 38372 "gram.c"
38372 290 : break;
38373 :
38374 168 : case 899: /* opt_default: %empty */
38375 : #line 6748 "gram.y"
38376 : { (yyval.boolean) = false; }
38377 : #line 38378 "gram.c"
38378 168 : break;
38379 :
38380 50 : case 900: /* opt_opfamily: FAMILY any_name */
38381 : #line 6751 "gram.y"
38382 : { (yyval.list) = (yyvsp[0].list); }
38383 : #line 38384 "gram.c"
38384 50 : break;
38385 :
38386 344 : case 901: /* opt_opfamily: %empty */
38387 : #line 6752 "gram.y"
38388 : { (yyval.list) = NIL; }
38389 : #line 38390 "gram.c"
38390 344 : break;
38391 :
38392 0 : case 902: /* opclass_purpose: FOR SEARCH */
38393 : #line 6755 "gram.y"
38394 : { (yyval.list) = NIL; }
38395 : #line 38396 "gram.c"
38396 0 : break;
38397 :
38398 72 : case 903: /* opclass_purpose: FOR ORDER BY any_name */
38399 : #line 6756 "gram.y"
38400 : { (yyval.list) = (yyvsp[0].list); }
38401 : #line 38402 "gram.c"
38402 72 : break;
38403 :
38404 2086 : case 904: /* opclass_purpose: %empty */
38405 : #line 6757 "gram.y"
38406 : { (yyval.list) = NIL; }
38407 : #line 38408 "gram.c"
38408 2086 : break;
38409 :
38410 162 : case 905: /* CreateOpFamilyStmt: CREATE OPERATOR FAMILY any_name USING name */
38411 : #line 6763 "gram.y"
38412 : {
38413 : CreateOpFamilyStmt *n = makeNode(CreateOpFamilyStmt);
38414 :
38415 : n->opfamilyname = (yyvsp[-2].list);
38416 : n->amname = (yyvsp[0].str);
38417 : (yyval.node) = (Node *) n;
38418 : }
38419 : #line 38420 "gram.c"
38420 162 : break;
38421 :
38422 514 : case 906: /* AlterOpFamilyStmt: ALTER OPERATOR FAMILY any_name USING name ADD_P opclass_item_list */
38423 : #line 6774 "gram.y"
38424 : {
38425 : AlterOpFamilyStmt *n = makeNode(AlterOpFamilyStmt);
38426 :
38427 : n->opfamilyname = (yyvsp[-4].list);
38428 : n->amname = (yyvsp[-2].str);
38429 : n->isDrop = false;
38430 : n->items = (yyvsp[0].list);
38431 : (yyval.node) = (Node *) n;
38432 : }
38433 : #line 38434 "gram.c"
38434 514 : break;
38435 :
38436 64 : case 907: /* AlterOpFamilyStmt: ALTER OPERATOR FAMILY any_name USING name DROP opclass_drop_list */
38437 : #line 6784 "gram.y"
38438 : {
38439 : AlterOpFamilyStmt *n = makeNode(AlterOpFamilyStmt);
38440 :
38441 : n->opfamilyname = (yyvsp[-4].list);
38442 : n->amname = (yyvsp[-2].str);
38443 : n->isDrop = true;
38444 : n->items = (yyvsp[0].list);
38445 : (yyval.node) = (Node *) n;
38446 : }
38447 : #line 38448 "gram.c"
38448 64 : break;
38449 :
38450 64 : case 908: /* opclass_drop_list: opclass_drop */
38451 : #line 6796 "gram.y"
38452 : { (yyval.list) = list_make1((yyvsp[0].node)); }
38453 : #line 38454 "gram.c"
38454 64 : break;
38455 :
38456 30 : case 909: /* opclass_drop_list: opclass_drop_list ',' opclass_drop */
38457 : #line 6797 "gram.y"
38458 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
38459 : #line 38460 "gram.c"
38460 30 : break;
38461 :
38462 56 : case 910: /* opclass_drop: OPERATOR Iconst '(' type_list ')' */
38463 : #line 6802 "gram.y"
38464 : {
38465 : CreateOpClassItem *n = makeNode(CreateOpClassItem);
38466 :
38467 : n->itemtype = OPCLASS_ITEM_OPERATOR;
38468 : n->number = (yyvsp[-3].ival);
38469 : n->class_args = (yyvsp[-1].list);
38470 : (yyval.node) = (Node *) n;
38471 : }
38472 : #line 38473 "gram.c"
38473 56 : break;
38474 :
38475 38 : case 911: /* opclass_drop: FUNCTION Iconst '(' type_list ')' */
38476 : #line 6811 "gram.y"
38477 : {
38478 : CreateOpClassItem *n = makeNode(CreateOpClassItem);
38479 :
38480 : n->itemtype = OPCLASS_ITEM_FUNCTION;
38481 : n->number = (yyvsp[-3].ival);
38482 : n->class_args = (yyvsp[-1].list);
38483 : (yyval.node) = (Node *) n;
38484 : }
38485 : #line 38486 "gram.c"
38486 38 : break;
38487 :
38488 38 : case 912: /* DropOpClassStmt: DROP OPERATOR CLASS any_name USING name opt_drop_behavior */
38489 : #line 6824 "gram.y"
38490 : {
38491 : DropStmt *n = makeNode(DropStmt);
38492 :
38493 : n->objects = list_make1(lcons(makeString((yyvsp[-1].str)), (yyvsp[-3].list)));
38494 : n->removeType = OBJECT_OPCLASS;
38495 : n->behavior = (yyvsp[0].dbehavior);
38496 : n->missing_ok = false;
38497 : n->concurrent = false;
38498 : (yyval.node) = (Node *) n;
38499 : }
38500 : #line 38501 "gram.c"
38501 38 : break;
38502 :
38503 18 : case 913: /* DropOpClassStmt: DROP OPERATOR CLASS IF_P EXISTS any_name USING name opt_drop_behavior */
38504 : #line 6835 "gram.y"
38505 : {
38506 : DropStmt *n = makeNode(DropStmt);
38507 :
38508 : n->objects = list_make1(lcons(makeString((yyvsp[-1].str)), (yyvsp[-3].list)));
38509 : n->removeType = OBJECT_OPCLASS;
38510 : n->behavior = (yyvsp[0].dbehavior);
38511 : n->missing_ok = true;
38512 : n->concurrent = false;
38513 : (yyval.node) = (Node *) n;
38514 : }
38515 : #line 38516 "gram.c"
38516 18 : break;
38517 :
38518 110 : case 914: /* DropOpFamilyStmt: DROP OPERATOR FAMILY any_name USING name opt_drop_behavior */
38519 : #line 6849 "gram.y"
38520 : {
38521 : DropStmt *n = makeNode(DropStmt);
38522 :
38523 : n->objects = list_make1(lcons(makeString((yyvsp[-1].str)), (yyvsp[-3].list)));
38524 : n->removeType = OBJECT_OPFAMILY;
38525 : n->behavior = (yyvsp[0].dbehavior);
38526 : n->missing_ok = false;
38527 : n->concurrent = false;
38528 : (yyval.node) = (Node *) n;
38529 : }
38530 : #line 38531 "gram.c"
38531 110 : break;
38532 :
38533 18 : case 915: /* DropOpFamilyStmt: DROP OPERATOR FAMILY IF_P EXISTS any_name USING name opt_drop_behavior */
38534 : #line 6860 "gram.y"
38535 : {
38536 : DropStmt *n = makeNode(DropStmt);
38537 :
38538 : n->objects = list_make1(lcons(makeString((yyvsp[-1].str)), (yyvsp[-3].list)));
38539 : n->removeType = OBJECT_OPFAMILY;
38540 : n->behavior = (yyvsp[0].dbehavior);
38541 : n->missing_ok = true;
38542 : n->concurrent = false;
38543 : (yyval.node) = (Node *) n;
38544 : }
38545 : #line 38546 "gram.c"
38546 18 : break;
38547 :
38548 154 : case 916: /* DropOwnedStmt: DROP OWNED BY role_list opt_drop_behavior */
38549 : #line 6883 "gram.y"
38550 : {
38551 : DropOwnedStmt *n = makeNode(DropOwnedStmt);
38552 :
38553 : n->roles = (yyvsp[-1].list);
38554 : n->behavior = (yyvsp[0].dbehavior);
38555 : (yyval.node) = (Node *) n;
38556 : }
38557 : #line 38558 "gram.c"
38558 154 : break;
38559 :
38560 52 : case 917: /* ReassignOwnedStmt: REASSIGN OWNED BY role_list TO RoleSpec */
38561 : #line 6894 "gram.y"
38562 : {
38563 : ReassignOwnedStmt *n = makeNode(ReassignOwnedStmt);
38564 :
38565 : n->roles = (yyvsp[-2].list);
38566 : n->newrole = (yyvsp[0].rolespec);
38567 : (yyval.node) = (Node *) n;
38568 : }
38569 : #line 38570 "gram.c"
38570 52 : break;
38571 :
38572 1312 : case 918: /* DropStmt: DROP object_type_any_name IF_P EXISTS any_name_list opt_drop_behavior */
38573 : #line 6913 "gram.y"
38574 : {
38575 : DropStmt *n = makeNode(DropStmt);
38576 :
38577 : n->removeType = (yyvsp[-4].objtype);
38578 : n->missing_ok = true;
38579 : n->objects = (yyvsp[-1].list);
38580 : n->behavior = (yyvsp[0].dbehavior);
38581 : n->concurrent = false;
38582 : (yyval.node) = (Node *) n;
38583 : }
38584 : #line 38585 "gram.c"
38585 1312 : break;
38586 :
38587 15946 : case 919: /* DropStmt: DROP object_type_any_name any_name_list opt_drop_behavior */
38588 : #line 6924 "gram.y"
38589 : {
38590 : DropStmt *n = makeNode(DropStmt);
38591 :
38592 : n->removeType = (yyvsp[-2].objtype);
38593 : n->missing_ok = false;
38594 : n->objects = (yyvsp[-1].list);
38595 : n->behavior = (yyvsp[0].dbehavior);
38596 : n->concurrent = false;
38597 : (yyval.node) = (Node *) n;
38598 : }
38599 : #line 38600 "gram.c"
38600 15946 : break;
38601 :
38602 78 : case 920: /* DropStmt: DROP drop_type_name IF_P EXISTS name_list opt_drop_behavior */
38603 : #line 6935 "gram.y"
38604 : {
38605 : DropStmt *n = makeNode(DropStmt);
38606 :
38607 : n->removeType = (yyvsp[-4].objtype);
38608 : n->missing_ok = true;
38609 : n->objects = (yyvsp[-1].list);
38610 : n->behavior = (yyvsp[0].dbehavior);
38611 : n->concurrent = false;
38612 : (yyval.node) = (Node *) n;
38613 : }
38614 : #line 38615 "gram.c"
38615 78 : break;
38616 :
38617 1408 : case 921: /* DropStmt: DROP drop_type_name name_list opt_drop_behavior */
38618 : #line 6946 "gram.y"
38619 : {
38620 : DropStmt *n = makeNode(DropStmt);
38621 :
38622 : n->removeType = (yyvsp[-2].objtype);
38623 : n->missing_ok = false;
38624 : n->objects = (yyvsp[-1].list);
38625 : n->behavior = (yyvsp[0].dbehavior);
38626 : n->concurrent = false;
38627 : (yyval.node) = (Node *) n;
38628 : }
38629 : #line 38630 "gram.c"
38630 1408 : break;
38631 :
38632 1124 : case 922: /* DropStmt: DROP object_type_name_on_any_name name ON any_name opt_drop_behavior */
38633 : #line 6957 "gram.y"
38634 : {
38635 : DropStmt *n = makeNode(DropStmt);
38636 :
38637 : n->removeType = (yyvsp[-4].objtype);
38638 : n->objects = list_make1(lappend((yyvsp[-1].list), makeString((yyvsp[-3].str))));
38639 : n->behavior = (yyvsp[0].dbehavior);
38640 : n->missing_ok = false;
38641 : n->concurrent = false;
38642 : (yyval.node) = (Node *) n;
38643 : }
38644 : #line 38645 "gram.c"
38645 1124 : break;
38646 :
38647 48 : case 923: /* DropStmt: DROP object_type_name_on_any_name IF_P EXISTS name ON any_name opt_drop_behavior */
38648 : #line 6968 "gram.y"
38649 : {
38650 : DropStmt *n = makeNode(DropStmt);
38651 :
38652 : n->removeType = (yyvsp[-6].objtype);
38653 : n->objects = list_make1(lappend((yyvsp[-1].list), makeString((yyvsp[-3].str))));
38654 : n->behavior = (yyvsp[0].dbehavior);
38655 : n->missing_ok = true;
38656 : n->concurrent = false;
38657 : (yyval.node) = (Node *) n;
38658 : }
38659 : #line 38660 "gram.c"
38660 48 : break;
38661 :
38662 560 : case 924: /* DropStmt: DROP TYPE_P type_name_list opt_drop_behavior */
38663 : #line 6979 "gram.y"
38664 : {
38665 : DropStmt *n = makeNode(DropStmt);
38666 :
38667 : n->removeType = OBJECT_TYPE;
38668 : n->missing_ok = false;
38669 : n->objects = (yyvsp[-1].list);
38670 : n->behavior = (yyvsp[0].dbehavior);
38671 : n->concurrent = false;
38672 : (yyval.node) = (Node *) n;
38673 : }
38674 : #line 38675 "gram.c"
38675 560 : break;
38676 :
38677 22 : case 925: /* DropStmt: DROP TYPE_P IF_P EXISTS type_name_list opt_drop_behavior */
38678 : #line 6990 "gram.y"
38679 : {
38680 : DropStmt *n = makeNode(DropStmt);
38681 :
38682 : n->removeType = OBJECT_TYPE;
38683 : n->missing_ok = true;
38684 : n->objects = (yyvsp[-1].list);
38685 : n->behavior = (yyvsp[0].dbehavior);
38686 : n->concurrent = false;
38687 : (yyval.node) = (Node *) n;
38688 : }
38689 : #line 38690 "gram.c"
38690 22 : break;
38691 :
38692 464 : case 926: /* DropStmt: DROP DOMAIN_P type_name_list opt_drop_behavior */
38693 : #line 7001 "gram.y"
38694 : {
38695 : DropStmt *n = makeNode(DropStmt);
38696 :
38697 : n->removeType = OBJECT_DOMAIN;
38698 : n->missing_ok = false;
38699 : n->objects = (yyvsp[-1].list);
38700 : n->behavior = (yyvsp[0].dbehavior);
38701 : n->concurrent = false;
38702 : (yyval.node) = (Node *) n;
38703 : }
38704 : #line 38705 "gram.c"
38705 464 : break;
38706 :
38707 18 : case 927: /* DropStmt: DROP DOMAIN_P IF_P EXISTS type_name_list opt_drop_behavior */
38708 : #line 7012 "gram.y"
38709 : {
38710 : DropStmt *n = makeNode(DropStmt);
38711 :
38712 : n->removeType = OBJECT_DOMAIN;
38713 : n->missing_ok = true;
38714 : n->objects = (yyvsp[-1].list);
38715 : n->behavior = (yyvsp[0].dbehavior);
38716 : n->concurrent = false;
38717 : (yyval.node) = (Node *) n;
38718 : }
38719 : #line 38720 "gram.c"
38720 18 : break;
38721 :
38722 172 : case 928: /* DropStmt: DROP INDEX CONCURRENTLY any_name_list opt_drop_behavior */
38723 : #line 7023 "gram.y"
38724 : {
38725 : DropStmt *n = makeNode(DropStmt);
38726 :
38727 : n->removeType = OBJECT_INDEX;
38728 : n->missing_ok = false;
38729 : n->objects = (yyvsp[-1].list);
38730 : n->behavior = (yyvsp[0].dbehavior);
38731 : n->concurrent = true;
38732 : (yyval.node) = (Node *) n;
38733 : }
38734 : #line 38735 "gram.c"
38735 172 : break;
38736 :
38737 12 : case 929: /* DropStmt: DROP INDEX CONCURRENTLY IF_P EXISTS any_name_list opt_drop_behavior */
38738 : #line 7034 "gram.y"
38739 : {
38740 : DropStmt *n = makeNode(DropStmt);
38741 :
38742 : n->removeType = OBJECT_INDEX;
38743 : n->missing_ok = true;
38744 : n->objects = (yyvsp[-1].list);
38745 : n->behavior = (yyvsp[0].dbehavior);
38746 : n->concurrent = true;
38747 : (yyval.node) = (Node *) n;
38748 : }
38749 : #line 38750 "gram.c"
38750 12 : break;
38751 :
38752 14892 : case 930: /* object_type_any_name: TABLE */
38753 : #line 7048 "gram.y"
38754 : { (yyval.objtype) = OBJECT_TABLE; }
38755 : #line 38756 "gram.c"
38756 14892 : break;
38757 :
38758 192 : case 931: /* object_type_any_name: SEQUENCE */
38759 : #line 7049 "gram.y"
38760 : { (yyval.objtype) = OBJECT_SEQUENCE; }
38761 : #line 38762 "gram.c"
38762 192 : break;
38763 :
38764 1010 : case 932: /* object_type_any_name: VIEW */
38765 : #line 7050 "gram.y"
38766 : { (yyval.objtype) = OBJECT_VIEW; }
38767 : #line 38768 "gram.c"
38768 1010 : break;
38769 :
38770 130 : case 933: /* object_type_any_name: MATERIALIZED VIEW */
38771 : #line 7051 "gram.y"
38772 : { (yyval.objtype) = OBJECT_MATVIEW; }
38773 : #line 38774 "gram.c"
38774 130 : break;
38775 :
38776 784 : case 934: /* object_type_any_name: INDEX */
38777 : #line 7052 "gram.y"
38778 : { (yyval.objtype) = OBJECT_INDEX; }
38779 : #line 38780 "gram.c"
38780 784 : break;
38781 :
38782 184 : case 935: /* object_type_any_name: FOREIGN TABLE */
38783 : #line 7053 "gram.y"
38784 : { (yyval.objtype) = OBJECT_FOREIGN_TABLE; }
38785 : #line 38786 "gram.c"
38786 184 : break;
38787 :
38788 96 : case 936: /* object_type_any_name: COLLATION */
38789 : #line 7054 "gram.y"
38790 : { (yyval.objtype) = OBJECT_COLLATION; }
38791 : #line 38792 "gram.c"
38792 96 : break;
38793 :
38794 56 : case 937: /* object_type_any_name: CONVERSION_P */
38795 : #line 7055 "gram.y"
38796 : { (yyval.objtype) = OBJECT_CONVERSION; }
38797 : #line 38798 "gram.c"
38798 56 : break;
38799 :
38800 192 : case 938: /* object_type_any_name: STATISTICS */
38801 : #line 7056 "gram.y"
38802 : { (yyval.objtype) = OBJECT_STATISTIC_EXT; }
38803 : #line 38804 "gram.c"
38804 192 : break;
38805 :
38806 20 : case 939: /* object_type_any_name: TEXT_P SEARCH PARSER */
38807 : #line 7057 "gram.y"
38808 : { (yyval.objtype) = OBJECT_TSPARSER; }
38809 : #line 38810 "gram.c"
38810 20 : break;
38811 :
38812 2756 : case 940: /* object_type_any_name: TEXT_P SEARCH DICTIONARY */
38813 : #line 7058 "gram.y"
38814 : { (yyval.objtype) = OBJECT_TSDICTIONARY; }
38815 : #line 38816 "gram.c"
38816 2756 : break;
38817 :
38818 114 : case 941: /* object_type_any_name: TEXT_P SEARCH TEMPLATE */
38819 : #line 7059 "gram.y"
38820 : { (yyval.objtype) = OBJECT_TSTEMPLATE; }
38821 : #line 38822 "gram.c"
38822 114 : break;
38823 :
38824 2760 : case 942: /* object_type_any_name: TEXT_P SEARCH CONFIGURATION */
38825 : #line 7060 "gram.y"
38826 : { (yyval.objtype) = OBJECT_TSCONFIGURATION; }
38827 : #line 38828 "gram.c"
38828 2760 : break;
38829 :
38830 230 : case 943: /* object_type_name: drop_type_name */
38831 : #line 7070 "gram.y"
38832 : { (yyval.objtype) = (yyvsp[0].objtype); }
38833 : #line 38834 "gram.c"
38834 230 : break;
38835 :
38836 234 : case 944: /* object_type_name: DATABASE */
38837 : #line 7071 "gram.y"
38838 : { (yyval.objtype) = OBJECT_DATABASE; }
38839 : #line 38840 "gram.c"
38840 234 : break;
38841 :
38842 52 : case 945: /* object_type_name: ROLE */
38843 : #line 7072 "gram.y"
38844 : { (yyval.objtype) = OBJECT_ROLE; }
38845 : #line 38846 "gram.c"
38846 52 : break;
38847 :
38848 10 : case 946: /* object_type_name: SUBSCRIPTION */
38849 : #line 7073 "gram.y"
38850 : { (yyval.objtype) = OBJECT_SUBSCRIPTION; }
38851 : #line 38852 "gram.c"
38852 10 : break;
38853 :
38854 0 : case 947: /* object_type_name: TABLESPACE */
38855 : #line 7074 "gram.y"
38856 : { (yyval.objtype) = OBJECT_TABLESPACE; }
38857 : #line 38858 "gram.c"
38858 0 : break;
38859 :
38860 46 : case 948: /* drop_type_name: ACCESS METHOD */
38861 : #line 7078 "gram.y"
38862 : { (yyval.objtype) = OBJECT_ACCESS_METHOD; }
38863 : #line 38864 "gram.c"
38864 46 : break;
38865 :
38866 126 : case 949: /* drop_type_name: EVENT TRIGGER */
38867 : #line 7079 "gram.y"
38868 : { (yyval.objtype) = OBJECT_EVENT_TRIGGER; }
38869 : #line 38870 "gram.c"
38870 126 : break;
38871 :
38872 146 : case 950: /* drop_type_name: EXTENSION */
38873 : #line 7080 "gram.y"
38874 : { (yyval.objtype) = OBJECT_EXTENSION; }
38875 : #line 38876 "gram.c"
38876 146 : break;
38877 :
38878 154 : case 951: /* drop_type_name: FOREIGN DATA_P WRAPPER */
38879 : #line 7081 "gram.y"
38880 : { (yyval.objtype) = OBJECT_FDW; }
38881 : #line 38882 "gram.c"
38882 154 : break;
38883 :
38884 152 : case 952: /* drop_type_name: opt_procedural LANGUAGE */
38885 : #line 7082 "gram.y"
38886 : { (yyval.objtype) = OBJECT_LANGUAGE; }
38887 : #line 38888 "gram.c"
38888 152 : break;
38889 :
38890 380 : case 953: /* drop_type_name: PUBLICATION */
38891 : #line 7083 "gram.y"
38892 : { (yyval.objtype) = OBJECT_PUBLICATION; }
38893 : #line 38894 "gram.c"
38894 380 : break;
38895 :
38896 582 : case 954: /* drop_type_name: SCHEMA */
38897 : #line 7084 "gram.y"
38898 : { (yyval.objtype) = OBJECT_SCHEMA; }
38899 : #line 38900 "gram.c"
38900 582 : break;
38901 :
38902 130 : case 955: /* drop_type_name: SERVER */
38903 : #line 7085 "gram.y"
38904 : { (yyval.objtype) = OBJECT_FOREIGN_SERVER; }
38905 : #line 38906 "gram.c"
38906 130 : break;
38907 :
38908 164 : case 956: /* object_type_name_on_any_name: POLICY */
38909 : #line 7090 "gram.y"
38910 : { (yyval.objtype) = OBJECT_POLICY; }
38911 : #line 38912 "gram.c"
38912 164 : break;
38913 :
38914 268 : case 957: /* object_type_name_on_any_name: RULE */
38915 : #line 7091 "gram.y"
38916 : { (yyval.objtype) = OBJECT_RULE; }
38917 : #line 38918 "gram.c"
38918 268 : break;
38919 :
38920 792 : case 958: /* object_type_name_on_any_name: TRIGGER */
38921 : #line 7092 "gram.y"
38922 : { (yyval.objtype) = OBJECT_TRIGGER; }
38923 : #line 38924 "gram.c"
38924 792 : break;
38925 :
38926 26102 : case 959: /* any_name_list: any_name */
38927 : #line 7096 "gram.y"
38928 : { (yyval.list) = list_make1((yyvsp[0].list)); }
38929 : #line 38930 "gram.c"
38930 26102 : break;
38931 :
38932 4238 : case 960: /* any_name_list: any_name_list ',' any_name */
38933 : #line 7097 "gram.y"
38934 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); }
38935 : #line 38936 "gram.c"
38936 4238 : break;
38937 :
38938 66050 : case 961: /* any_name: ColId */
38939 : #line 7100 "gram.y"
38940 : { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
38941 : #line 38942 "gram.c"
38942 66050 : break;
38943 :
38944 9548 : case 962: /* any_name: ColId attrs */
38945 : #line 7101 "gram.y"
38946 : { (yyval.list) = lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)); }
38947 : #line 38948 "gram.c"
38948 9548 : break;
38949 :
38950 130630 : case 963: /* attrs: '.' attr_name */
38951 : #line 7105 "gram.y"
38952 : { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
38953 : #line 38954 "gram.c"
38954 130630 : break;
38955 :
38956 96 : case 964: /* attrs: attrs '.' attr_name */
38957 : #line 7107 "gram.y"
38958 : { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); }
38959 : #line 38960 "gram.c"
38960 96 : break;
38961 :
38962 1064 : case 965: /* type_name_list: Typename */
38963 : #line 7111 "gram.y"
38964 : { (yyval.list) = list_make1((yyvsp[0].typnam)); }
38965 : #line 38966 "gram.c"
38966 1064 : break;
38967 :
38968 96 : case 966: /* type_name_list: type_name_list ',' Typename */
38969 : #line 7112 "gram.y"
38970 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].typnam)); }
38971 : #line 38972 "gram.c"
38972 96 : break;
38973 :
38974 2930 : case 967: /* TruncateStmt: TRUNCATE opt_table relation_expr_list opt_restart_seqs opt_drop_behavior */
38975 : #line 7124 "gram.y"
38976 : {
38977 : TruncateStmt *n = makeNode(TruncateStmt);
38978 :
38979 : n->relations = (yyvsp[-2].list);
38980 : n->restart_seqs = (yyvsp[-1].boolean);
38981 : n->behavior = (yyvsp[0].dbehavior);
38982 : (yyval.node) = (Node *) n;
38983 : }
38984 : #line 38985 "gram.c"
38985 2930 : break;
38986 :
38987 24 : case 968: /* opt_restart_seqs: CONTINUE_P IDENTITY_P */
38988 : #line 7135 "gram.y"
38989 : { (yyval.boolean) = false; }
38990 : #line 38991 "gram.c"
38991 24 : break;
38992 :
38993 24 : case 969: /* opt_restart_seqs: RESTART IDENTITY_P */
38994 : #line 7136 "gram.y"
38995 : { (yyval.boolean) = true; }
38996 : #line 38997 "gram.c"
38997 24 : break;
38998 :
38999 2882 : case 970: /* opt_restart_seqs: %empty */
39000 : #line 7137 "gram.y"
39001 : { (yyval.boolean) = false; }
39002 : #line 39003 "gram.c"
39003 2882 : break;
39004 :
39005 5786 : case 971: /* CommentStmt: COMMENT ON object_type_any_name any_name IS comment_text */
39006 : #line 7148 "gram.y"
39007 : {
39008 : CommentStmt *n = makeNode(CommentStmt);
39009 :
39010 : n->objtype = (yyvsp[-3].objtype);
39011 : n->object = (Node *) (yyvsp[-2].list);
39012 : n->comment = (yyvsp[0].str);
39013 : (yyval.node) = (Node *) n;
39014 : }
39015 : #line 39016 "gram.c"
39016 5786 : break;
39017 :
39018 118 : case 972: /* CommentStmt: COMMENT ON COLUMN any_name IS comment_text */
39019 : #line 7157 "gram.y"
39020 : {
39021 : CommentStmt *n = makeNode(CommentStmt);
39022 :
39023 : n->objtype = OBJECT_COLUMN;
39024 : n->object = (Node *) (yyvsp[-2].list);
39025 : n->comment = (yyvsp[0].str);
39026 : (yyval.node) = (Node *) n;
39027 : }
39028 : #line 39029 "gram.c"
39029 118 : break;
39030 :
39031 464 : case 973: /* CommentStmt: COMMENT ON object_type_name name IS comment_text */
39032 : #line 7166 "gram.y"
39033 : {
39034 : CommentStmt *n = makeNode(CommentStmt);
39035 :
39036 : n->objtype = (yyvsp[-3].objtype);
39037 : n->object = (Node *) makeString((yyvsp[-2].str));
39038 : n->comment = (yyvsp[0].str);
39039 : (yyval.node) = (Node *) n;
39040 : }
39041 : #line 39042 "gram.c"
39042 464 : break;
39043 :
39044 56 : case 974: /* CommentStmt: COMMENT ON TYPE_P Typename IS comment_text */
39045 : #line 7175 "gram.y"
39046 : {
39047 : CommentStmt *n = makeNode(CommentStmt);
39048 :
39049 : n->objtype = OBJECT_TYPE;
39050 : n->object = (Node *) (yyvsp[-2].typnam);
39051 : n->comment = (yyvsp[0].str);
39052 : (yyval.node) = (Node *) n;
39053 : }
39054 : #line 39055 "gram.c"
39055 56 : break;
39056 :
39057 8 : case 975: /* CommentStmt: COMMENT ON DOMAIN_P Typename IS comment_text */
39058 : #line 7184 "gram.y"
39059 : {
39060 : CommentStmt *n = makeNode(CommentStmt);
39061 :
39062 : n->objtype = OBJECT_DOMAIN;
39063 : n->object = (Node *) (yyvsp[-2].typnam);
39064 : n->comment = (yyvsp[0].str);
39065 : (yyval.node) = (Node *) n;
39066 : }
39067 : #line 39068 "gram.c"
39068 8 : break;
39069 :
39070 44 : case 976: /* CommentStmt: COMMENT ON AGGREGATE aggregate_with_argtypes IS comment_text */
39071 : #line 7193 "gram.y"
39072 : {
39073 : CommentStmt *n = makeNode(CommentStmt);
39074 :
39075 : n->objtype = OBJECT_AGGREGATE;
39076 : n->object = (Node *) (yyvsp[-2].objwithargs);
39077 : n->comment = (yyvsp[0].str);
39078 : (yyval.node) = (Node *) n;
39079 : }
39080 : #line 39081 "gram.c"
39081 44 : break;
39082 :
39083 170 : case 977: /* CommentStmt: COMMENT ON FUNCTION function_with_argtypes IS comment_text */
39084 : #line 7202 "gram.y"
39085 : {
39086 : CommentStmt *n = makeNode(CommentStmt);
39087 :
39088 : n->objtype = OBJECT_FUNCTION;
39089 : n->object = (Node *) (yyvsp[-2].objwithargs);
39090 : n->comment = (yyvsp[0].str);
39091 : (yyval.node) = (Node *) n;
39092 : }
39093 : #line 39094 "gram.c"
39094 170 : break;
39095 :
39096 18 : case 978: /* CommentStmt: COMMENT ON OPERATOR operator_with_argtypes IS comment_text */
39097 : #line 7211 "gram.y"
39098 : {
39099 : CommentStmt *n = makeNode(CommentStmt);
39100 :
39101 : n->objtype = OBJECT_OPERATOR;
39102 : n->object = (Node *) (yyvsp[-2].objwithargs);
39103 : n->comment = (yyvsp[0].str);
39104 : (yyval.node) = (Node *) n;
39105 : }
39106 : #line 39107 "gram.c"
39107 18 : break;
39108 :
39109 116 : case 979: /* CommentStmt: COMMENT ON CONSTRAINT name ON any_name IS comment_text */
39110 : #line 7220 "gram.y"
39111 : {
39112 : CommentStmt *n = makeNode(CommentStmt);
39113 :
39114 : n->objtype = OBJECT_TABCONSTRAINT;
39115 : n->object = (Node *) lappend((yyvsp[-2].list), makeString((yyvsp[-4].str)));
39116 : n->comment = (yyvsp[0].str);
39117 : (yyval.node) = (Node *) n;
39118 : }
39119 : #line 39120 "gram.c"
39120 116 : break;
39121 :
39122 38 : case 980: /* CommentStmt: COMMENT ON CONSTRAINT name ON DOMAIN_P any_name IS comment_text */
39123 : #line 7229 "gram.y"
39124 : {
39125 : CommentStmt *n = makeNode(CommentStmt);
39126 :
39127 : n->objtype = OBJECT_DOMCONSTRAINT;
39128 : /*
39129 : * should use Typename not any_name in the production, but
39130 : * there's a shift/reduce conflict if we do that, so fix it
39131 : * up here.
39132 : */
39133 : n->object = (Node *) list_make2(makeTypeNameFromNameList((yyvsp[-2].list)), makeString((yyvsp[-5].str)));
39134 : n->comment = (yyvsp[0].str);
39135 : (yyval.node) = (Node *) n;
39136 : }
39137 : #line 39138 "gram.c"
39138 38 : break;
39139 :
39140 40 : case 981: /* CommentStmt: COMMENT ON object_type_name_on_any_name name ON any_name IS comment_text */
39141 : #line 7243 "gram.y"
39142 : {
39143 : CommentStmt *n = makeNode(CommentStmt);
39144 :
39145 : n->objtype = (yyvsp[-5].objtype);
39146 : n->object = (Node *) lappend((yyvsp[-2].list), makeString((yyvsp[-4].str)));
39147 : n->comment = (yyvsp[0].str);
39148 : (yyval.node) = (Node *) n;
39149 : }
39150 : #line 39151 "gram.c"
39151 40 : break;
39152 :
39153 0 : case 982: /* CommentStmt: COMMENT ON PROCEDURE function_with_argtypes IS comment_text */
39154 : #line 7252 "gram.y"
39155 : {
39156 : CommentStmt *n = makeNode(CommentStmt);
39157 :
39158 : n->objtype = OBJECT_PROCEDURE;
39159 : n->object = (Node *) (yyvsp[-2].objwithargs);
39160 : n->comment = (yyvsp[0].str);
39161 : (yyval.node) = (Node *) n;
39162 : }
39163 : #line 39164 "gram.c"
39164 0 : break;
39165 :
39166 0 : case 983: /* CommentStmt: COMMENT ON ROUTINE function_with_argtypes IS comment_text */
39167 : #line 7261 "gram.y"
39168 : {
39169 : CommentStmt *n = makeNode(CommentStmt);
39170 :
39171 : n->objtype = OBJECT_ROUTINE;
39172 : n->object = (Node *) (yyvsp[-2].objwithargs);
39173 : n->comment = (yyvsp[0].str);
39174 : (yyval.node) = (Node *) n;
39175 : }
39176 : #line 39177 "gram.c"
39177 0 : break;
39178 :
39179 14 : case 984: /* CommentStmt: COMMENT ON TRANSFORM FOR Typename LANGUAGE name IS comment_text */
39180 : #line 7270 "gram.y"
39181 : {
39182 : CommentStmt *n = makeNode(CommentStmt);
39183 :
39184 : n->objtype = OBJECT_TRANSFORM;
39185 : n->object = (Node *) list_make2((yyvsp[-4].typnam), makeString((yyvsp[-2].str)));
39186 : n->comment = (yyvsp[0].str);
39187 : (yyval.node) = (Node *) n;
39188 : }
39189 : #line 39190 "gram.c"
39190 14 : break;
39191 :
39192 0 : case 985: /* CommentStmt: COMMENT ON OPERATOR CLASS any_name USING name IS comment_text */
39193 : #line 7279 "gram.y"
39194 : {
39195 : CommentStmt *n = makeNode(CommentStmt);
39196 :
39197 : n->objtype = OBJECT_OPCLASS;
39198 : n->object = (Node *) lcons(makeString((yyvsp[-2].str)), (yyvsp[-4].list));
39199 : n->comment = (yyvsp[0].str);
39200 : (yyval.node) = (Node *) n;
39201 : }
39202 : #line 39203 "gram.c"
39203 0 : break;
39204 :
39205 0 : case 986: /* CommentStmt: COMMENT ON OPERATOR FAMILY any_name USING name IS comment_text */
39206 : #line 7288 "gram.y"
39207 : {
39208 : CommentStmt *n = makeNode(CommentStmt);
39209 :
39210 : n->objtype = OBJECT_OPFAMILY;
39211 : n->object = (Node *) lcons(makeString((yyvsp[-2].str)), (yyvsp[-4].list));
39212 : n->comment = (yyvsp[0].str);
39213 : (yyval.node) = (Node *) n;
39214 : }
39215 : #line 39216 "gram.c"
39216 0 : break;
39217 :
39218 28 : case 987: /* CommentStmt: COMMENT ON LARGE_P OBJECT_P NumericOnly IS comment_text */
39219 : #line 7297 "gram.y"
39220 : {
39221 : CommentStmt *n = makeNode(CommentStmt);
39222 :
39223 : n->objtype = OBJECT_LARGEOBJECT;
39224 : n->object = (Node *) (yyvsp[-2].node);
39225 : n->comment = (yyvsp[0].str);
39226 : (yyval.node) = (Node *) n;
39227 : }
39228 : #line 39229 "gram.c"
39229 28 : break;
39230 :
39231 0 : case 988: /* CommentStmt: COMMENT ON CAST '(' Typename AS Typename ')' IS comment_text */
39232 : #line 7306 "gram.y"
39233 : {
39234 : CommentStmt *n = makeNode(CommentStmt);
39235 :
39236 : n->objtype = OBJECT_CAST;
39237 : n->object = (Node *) list_make2((yyvsp[-5].typnam), (yyvsp[-3].typnam));
39238 : n->comment = (yyvsp[0].str);
39239 : (yyval.node) = (Node *) n;
39240 : }
39241 : #line 39242 "gram.c"
39242 0 : break;
39243 :
39244 6796 : case 989: /* comment_text: Sconst */
39245 : #line 7317 "gram.y"
39246 : { (yyval.str) = (yyvsp[0].str); }
39247 : #line 39248 "gram.c"
39248 6796 : break;
39249 :
39250 104 : case 990: /* comment_text: NULL_P */
39251 : #line 7318 "gram.y"
39252 : { (yyval.str) = NULL; }
39253 : #line 39254 "gram.c"
39254 104 : break;
39255 :
39256 48 : case 991: /* SecLabelStmt: SECURITY LABEL opt_provider ON object_type_any_name any_name IS security_label */
39257 : #line 7334 "gram.y"
39258 : {
39259 : SecLabelStmt *n = makeNode(SecLabelStmt);
39260 :
39261 : n->provider = (yyvsp[-5].str);
39262 : n->objtype = (yyvsp[-3].objtype);
39263 : n->object = (Node *) (yyvsp[-2].list);
39264 : n->label = (yyvsp[0].str);
39265 : (yyval.node) = (Node *) n;
39266 : }
39267 : #line 39268 "gram.c"
39268 48 : break;
39269 :
39270 4 : case 992: /* SecLabelStmt: SECURITY LABEL opt_provider ON COLUMN any_name IS security_label */
39271 : #line 7345 "gram.y"
39272 : {
39273 : SecLabelStmt *n = makeNode(SecLabelStmt);
39274 :
39275 : n->provider = (yyvsp[-5].str);
39276 : n->objtype = OBJECT_COLUMN;
39277 : n->object = (Node *) (yyvsp[-2].list);
39278 : n->label = (yyvsp[0].str);
39279 : (yyval.node) = (Node *) n;
39280 : }
39281 : #line 39282 "gram.c"
39282 4 : break;
39283 :
39284 44 : case 993: /* SecLabelStmt: SECURITY LABEL opt_provider ON object_type_name name IS security_label */
39285 : #line 7356 "gram.y"
39286 : {
39287 : SecLabelStmt *n = makeNode(SecLabelStmt);
39288 :
39289 : n->provider = (yyvsp[-5].str);
39290 : n->objtype = (yyvsp[-3].objtype);
39291 : n->object = (Node *) makeString((yyvsp[-2].str));
39292 : n->label = (yyvsp[0].str);
39293 : (yyval.node) = (Node *) n;
39294 : }
39295 : #line 39296 "gram.c"
39296 44 : break;
39297 :
39298 0 : case 994: /* SecLabelStmt: SECURITY LABEL opt_provider ON TYPE_P Typename IS security_label */
39299 : #line 7367 "gram.y"
39300 : {
39301 : SecLabelStmt *n = makeNode(SecLabelStmt);
39302 :
39303 : n->provider = (yyvsp[-5].str);
39304 : n->objtype = OBJECT_TYPE;
39305 : n->object = (Node *) (yyvsp[-2].typnam);
39306 : n->label = (yyvsp[0].str);
39307 : (yyval.node) = (Node *) n;
39308 : }
39309 : #line 39310 "gram.c"
39310 0 : break;
39311 :
39312 2 : case 995: /* SecLabelStmt: SECURITY LABEL opt_provider ON DOMAIN_P Typename IS security_label */
39313 : #line 7378 "gram.y"
39314 : {
39315 : SecLabelStmt *n = makeNode(SecLabelStmt);
39316 :
39317 : n->provider = (yyvsp[-5].str);
39318 : n->objtype = OBJECT_DOMAIN;
39319 : n->object = (Node *) (yyvsp[-2].typnam);
39320 : n->label = (yyvsp[0].str);
39321 : (yyval.node) = (Node *) n;
39322 : }
39323 : #line 39324 "gram.c"
39324 2 : break;
39325 :
39326 0 : case 996: /* SecLabelStmt: SECURITY LABEL opt_provider ON AGGREGATE aggregate_with_argtypes IS security_label */
39327 : #line 7389 "gram.y"
39328 : {
39329 : SecLabelStmt *n = makeNode(SecLabelStmt);
39330 :
39331 : n->provider = (yyvsp[-5].str);
39332 : n->objtype = OBJECT_AGGREGATE;
39333 : n->object = (Node *) (yyvsp[-2].objwithargs);
39334 : n->label = (yyvsp[0].str);
39335 : (yyval.node) = (Node *) n;
39336 : }
39337 : #line 39338 "gram.c"
39338 0 : break;
39339 :
39340 2 : case 997: /* SecLabelStmt: SECURITY LABEL opt_provider ON FUNCTION function_with_argtypes IS security_label */
39341 : #line 7400 "gram.y"
39342 : {
39343 : SecLabelStmt *n = makeNode(SecLabelStmt);
39344 :
39345 : n->provider = (yyvsp[-5].str);
39346 : n->objtype = OBJECT_FUNCTION;
39347 : n->object = (Node *) (yyvsp[-2].objwithargs);
39348 : n->label = (yyvsp[0].str);
39349 : (yyval.node) = (Node *) n;
39350 : }
39351 : #line 39352 "gram.c"
39352 2 : break;
39353 :
39354 0 : case 998: /* SecLabelStmt: SECURITY LABEL opt_provider ON LARGE_P OBJECT_P NumericOnly IS security_label */
39355 : #line 7411 "gram.y"
39356 : {
39357 : SecLabelStmt *n = makeNode(SecLabelStmt);
39358 :
39359 : n->provider = (yyvsp[-6].str);
39360 : n->objtype = OBJECT_LARGEOBJECT;
39361 : n->object = (Node *) (yyvsp[-2].node);
39362 : n->label = (yyvsp[0].str);
39363 : (yyval.node) = (Node *) n;
39364 : }
39365 : #line 39366 "gram.c"
39366 0 : break;
39367 :
39368 0 : case 999: /* SecLabelStmt: SECURITY LABEL opt_provider ON PROCEDURE function_with_argtypes IS security_label */
39369 : #line 7422 "gram.y"
39370 : {
39371 : SecLabelStmt *n = makeNode(SecLabelStmt);
39372 :
39373 : n->provider = (yyvsp[-5].str);
39374 : n->objtype = OBJECT_PROCEDURE;
39375 : n->object = (Node *) (yyvsp[-2].objwithargs);
39376 : n->label = (yyvsp[0].str);
39377 : (yyval.node) = (Node *) n;
39378 : }
39379 : #line 39380 "gram.c"
39380 0 : break;
39381 :
39382 0 : case 1000: /* SecLabelStmt: SECURITY LABEL opt_provider ON ROUTINE function_with_argtypes IS security_label */
39383 : #line 7433 "gram.y"
39384 : {
39385 : SecLabelStmt *n = makeNode(SecLabelStmt);
39386 :
39387 : n->provider = (yyvsp[-5].str);
39388 : n->objtype = OBJECT_ROUTINE;
39389 : n->object = (Node *) (yyvsp[-2].objwithargs);
39390 : n->label = (yyvsp[0].str);
39391 : (yyval.node) = (Node *) n;
39392 : }
39393 : #line 39394 "gram.c"
39394 0 : break;
39395 :
39396 20 : case 1001: /* opt_provider: FOR NonReservedWord_or_Sconst */
39397 : #line 7444 "gram.y"
39398 : { (yyval.str) = (yyvsp[0].str); }
39399 : #line 39400 "gram.c"
39400 20 : break;
39401 :
39402 80 : case 1002: /* opt_provider: %empty */
39403 : #line 7445 "gram.y"
39404 : { (yyval.str) = NULL; }
39405 : #line 39406 "gram.c"
39406 80 : break;
39407 :
39408 100 : case 1003: /* security_label: Sconst */
39409 : #line 7448 "gram.y"
39410 : { (yyval.str) = (yyvsp[0].str); }
39411 : #line 39412 "gram.c"
39412 100 : break;
39413 :
39414 0 : case 1004: /* security_label: NULL_P */
39415 : #line 7449 "gram.y"
39416 : { (yyval.str) = NULL; }
39417 : #line 39418 "gram.c"
39418 0 : break;
39419 :
39420 7446 : case 1005: /* FetchStmt: FETCH fetch_args */
39421 : #line 7460 "gram.y"
39422 : {
39423 : FetchStmt *n = (FetchStmt *) (yyvsp[0].node);
39424 :
39425 : n->ismove = false;
39426 : (yyval.node) = (Node *) n;
39427 : }
39428 : #line 39429 "gram.c"
39429 7446 : break;
39430 :
39431 68 : case 1006: /* FetchStmt: MOVE fetch_args */
39432 : #line 7467 "gram.y"
39433 : {
39434 : FetchStmt *n = (FetchStmt *) (yyvsp[0].node);
39435 :
39436 : n->ismove = true;
39437 : (yyval.node) = (Node *) n;
39438 : }
39439 : #line 39440 "gram.c"
39440 68 : break;
39441 :
39442 266 : case 1007: /* fetch_args: cursor_name */
39443 : #line 7476 "gram.y"
39444 : {
39445 : FetchStmt *n = makeNode(FetchStmt);
39446 :
39447 : n->portalname = (yyvsp[0].str);
39448 : n->direction = FETCH_FORWARD;
39449 : n->howMany = 1;
39450 : (yyval.node) = (Node *) n;
39451 : }
39452 : #line 39453 "gram.c"
39453 266 : break;
39454 :
39455 218 : case 1008: /* fetch_args: from_in cursor_name */
39456 : #line 7485 "gram.y"
39457 : {
39458 : FetchStmt *n = makeNode(FetchStmt);
39459 :
39460 : n->portalname = (yyvsp[0].str);
39461 : n->direction = FETCH_FORWARD;
39462 : n->howMany = 1;
39463 : (yyval.node) = (Node *) n;
39464 : }
39465 : #line 39466 "gram.c"
39466 218 : break;
39467 :
39468 2008 : case 1009: /* fetch_args: NEXT opt_from_in cursor_name */
39469 : #line 7494 "gram.y"
39470 : {
39471 : FetchStmt *n = makeNode(FetchStmt);
39472 :
39473 : n->portalname = (yyvsp[0].str);
39474 : n->direction = FETCH_FORWARD;
39475 : n->howMany = 1;
39476 : (yyval.node) = (Node *) n;
39477 : }
39478 : #line 39479 "gram.c"
39479 2008 : break;
39480 :
39481 30 : case 1010: /* fetch_args: PRIOR opt_from_in cursor_name */
39482 : #line 7503 "gram.y"
39483 : {
39484 : FetchStmt *n = makeNode(FetchStmt);
39485 :
39486 : n->portalname = (yyvsp[0].str);
39487 : n->direction = FETCH_BACKWARD;
39488 : n->howMany = 1;
39489 : (yyval.node) = (Node *) n;
39490 : }
39491 : #line 39492 "gram.c"
39492 30 : break;
39493 :
39494 24 : case 1011: /* fetch_args: FIRST_P opt_from_in cursor_name */
39495 : #line 7512 "gram.y"
39496 : {
39497 : FetchStmt *n = makeNode(FetchStmt);
39498 :
39499 : n->portalname = (yyvsp[0].str);
39500 : n->direction = FETCH_ABSOLUTE;
39501 : n->howMany = 1;
39502 : (yyval.node) = (Node *) n;
39503 : }
39504 : #line 39505 "gram.c"
39505 24 : break;
39506 :
39507 18 : case 1012: /* fetch_args: LAST_P opt_from_in cursor_name */
39508 : #line 7521 "gram.y"
39509 : {
39510 : FetchStmt *n = makeNode(FetchStmt);
39511 :
39512 : n->portalname = (yyvsp[0].str);
39513 : n->direction = FETCH_ABSOLUTE;
39514 : n->howMany = -1;
39515 : (yyval.node) = (Node *) n;
39516 : }
39517 : #line 39518 "gram.c"
39518 18 : break;
39519 :
39520 88 : case 1013: /* fetch_args: ABSOLUTE_P SignedIconst opt_from_in cursor_name */
39521 : #line 7530 "gram.y"
39522 : {
39523 : FetchStmt *n = makeNode(FetchStmt);
39524 :
39525 : n->portalname = (yyvsp[0].str);
39526 : n->direction = FETCH_ABSOLUTE;
39527 : n->howMany = (yyvsp[-2].ival);
39528 : (yyval.node) = (Node *) n;
39529 : }
39530 : #line 39531 "gram.c"
39531 88 : break;
39532 :
39533 30 : case 1014: /* fetch_args: RELATIVE_P SignedIconst opt_from_in cursor_name */
39534 : #line 7539 "gram.y"
39535 : {
39536 : FetchStmt *n = makeNode(FetchStmt);
39537 :
39538 : n->portalname = (yyvsp[0].str);
39539 : n->direction = FETCH_RELATIVE;
39540 : n->howMany = (yyvsp[-2].ival);
39541 : (yyval.node) = (Node *) n;
39542 : }
39543 : #line 39544 "gram.c"
39544 30 : break;
39545 :
39546 4128 : case 1015: /* fetch_args: SignedIconst opt_from_in cursor_name */
39547 : #line 7548 "gram.y"
39548 : {
39549 : FetchStmt *n = makeNode(FetchStmt);
39550 :
39551 : n->portalname = (yyvsp[0].str);
39552 : n->direction = FETCH_FORWARD;
39553 : n->howMany = (yyvsp[-2].ival);
39554 : (yyval.node) = (Node *) n;
39555 : }
39556 : #line 39557 "gram.c"
39557 4128 : break;
39558 :
39559 268 : case 1016: /* fetch_args: ALL opt_from_in cursor_name */
39560 : #line 7557 "gram.y"
39561 : {
39562 : FetchStmt *n = makeNode(FetchStmt);
39563 :
39564 : n->portalname = (yyvsp[0].str);
39565 : n->direction = FETCH_FORWARD;
39566 : n->howMany = FETCH_ALL;
39567 : (yyval.node) = (Node *) n;
39568 : }
39569 : #line 39570 "gram.c"
39570 268 : break;
39571 :
39572 28 : case 1017: /* fetch_args: FORWARD opt_from_in cursor_name */
39573 : #line 7566 "gram.y"
39574 : {
39575 : FetchStmt *n = makeNode(FetchStmt);
39576 :
39577 : n->portalname = (yyvsp[0].str);
39578 : n->direction = FETCH_FORWARD;
39579 : n->howMany = 1;
39580 : (yyval.node) = (Node *) n;
39581 : }
39582 : #line 39583 "gram.c"
39583 28 : break;
39584 :
39585 6 : case 1018: /* fetch_args: FORWARD SignedIconst opt_from_in cursor_name */
39586 : #line 7575 "gram.y"
39587 : {
39588 : FetchStmt *n = makeNode(FetchStmt);
39589 :
39590 : n->portalname = (yyvsp[0].str);
39591 : n->direction = FETCH_FORWARD;
39592 : n->howMany = (yyvsp[-2].ival);
39593 : (yyval.node) = (Node *) n;
39594 : }
39595 : #line 39596 "gram.c"
39596 6 : break;
39597 :
39598 14 : case 1019: /* fetch_args: FORWARD ALL opt_from_in cursor_name */
39599 : #line 7584 "gram.y"
39600 : {
39601 : FetchStmt *n = makeNode(FetchStmt);
39602 :
39603 : n->portalname = (yyvsp[0].str);
39604 : n->direction = FETCH_FORWARD;
39605 : n->howMany = FETCH_ALL;
39606 : (yyval.node) = (Node *) n;
39607 : }
39608 : #line 39609 "gram.c"
39609 14 : break;
39610 :
39611 78 : case 1020: /* fetch_args: BACKWARD opt_from_in cursor_name */
39612 : #line 7593 "gram.y"
39613 : {
39614 : FetchStmt *n = makeNode(FetchStmt);
39615 :
39616 : n->portalname = (yyvsp[0].str);
39617 : n->direction = FETCH_BACKWARD;
39618 : n->howMany = 1;
39619 : (yyval.node) = (Node *) n;
39620 : }
39621 : #line 39622 "gram.c"
39622 78 : break;
39623 :
39624 220 : case 1021: /* fetch_args: BACKWARD SignedIconst opt_from_in cursor_name */
39625 : #line 7602 "gram.y"
39626 : {
39627 : FetchStmt *n = makeNode(FetchStmt);
39628 :
39629 : n->portalname = (yyvsp[0].str);
39630 : n->direction = FETCH_BACKWARD;
39631 : n->howMany = (yyvsp[-2].ival);
39632 : (yyval.node) = (Node *) n;
39633 : }
39634 : #line 39635 "gram.c"
39635 220 : break;
39636 :
39637 90 : case 1022: /* fetch_args: BACKWARD ALL opt_from_in cursor_name */
39638 : #line 7611 "gram.y"
39639 : {
39640 : FetchStmt *n = makeNode(FetchStmt);
39641 :
39642 : n->portalname = (yyvsp[0].str);
39643 : n->direction = FETCH_BACKWARD;
39644 : n->howMany = FETCH_ALL;
39645 : (yyval.node) = (Node *) n;
39646 : }
39647 : #line 39648 "gram.c"
39648 90 : break;
39649 :
39650 11494 : case 1027: /* GrantStmt: GRANT privileges ON privilege_target TO grantee_list opt_grant_grant_option opt_granted_by */
39651 : #line 7638 "gram.y"
39652 : {
39653 : GrantStmt *n = makeNode(GrantStmt);
39654 :
39655 : n->is_grant = true;
39656 : n->privileges = (yyvsp[-6].list);
39657 : n->targtype = ((yyvsp[-4].privtarget))->targtype;
39658 : n->objtype = ((yyvsp[-4].privtarget))->objtype;
39659 : n->objects = ((yyvsp[-4].privtarget))->objs;
39660 : n->grantees = (yyvsp[-2].list);
39661 : n->grant_option = (yyvsp[-1].boolean);
39662 : n->grantor = (yyvsp[0].rolespec);
39663 : (yyval.node) = (Node *) n;
39664 : }
39665 : #line 39666 "gram.c"
39666 11494 : break;
39667 :
39668 10134 : case 1028: /* RevokeStmt: REVOKE privileges ON privilege_target FROM grantee_list opt_granted_by opt_drop_behavior */
39669 : #line 7656 "gram.y"
39670 : {
39671 : GrantStmt *n = makeNode(GrantStmt);
39672 :
39673 : n->is_grant = false;
39674 : n->grant_option = false;
39675 : n->privileges = (yyvsp[-6].list);
39676 : n->targtype = ((yyvsp[-4].privtarget))->targtype;
39677 : n->objtype = ((yyvsp[-4].privtarget))->objtype;
39678 : n->objects = ((yyvsp[-4].privtarget))->objs;
39679 : n->grantees = (yyvsp[-2].list);
39680 : n->grantor = (yyvsp[-1].rolespec);
39681 : n->behavior = (yyvsp[0].dbehavior);
39682 : (yyval.node) = (Node *) n;
39683 : }
39684 : #line 39685 "gram.c"
39685 10134 : break;
39686 :
39687 16 : case 1029: /* RevokeStmt: REVOKE GRANT OPTION FOR privileges ON privilege_target FROM grantee_list opt_granted_by opt_drop_behavior */
39688 : #line 7672 "gram.y"
39689 : {
39690 : GrantStmt *n = makeNode(GrantStmt);
39691 :
39692 : n->is_grant = false;
39693 : n->grant_option = true;
39694 : n->privileges = (yyvsp[-6].list);
39695 : n->targtype = ((yyvsp[-4].privtarget))->targtype;
39696 : n->objtype = ((yyvsp[-4].privtarget))->objtype;
39697 : n->objects = ((yyvsp[-4].privtarget))->objs;
39698 : n->grantees = (yyvsp[-2].list);
39699 : n->grantor = (yyvsp[-1].rolespec);
39700 : n->behavior = (yyvsp[0].dbehavior);
39701 : (yyval.node) = (Node *) n;
39702 : }
39703 : #line 39704 "gram.c"
39704 16 : break;
39705 :
39706 19158 : case 1030: /* privileges: privilege_list */
39707 : #line 7699 "gram.y"
39708 : { (yyval.list) = (yyvsp[0].list); }
39709 : #line 39710 "gram.c"
39710 19158 : break;
39711 :
39712 2548 : case 1031: /* privileges: ALL */
39713 : #line 7701 "gram.y"
39714 : { (yyval.list) = NIL; }
39715 : #line 39716 "gram.c"
39716 2548 : break;
39717 :
39718 122 : case 1032: /* privileges: ALL PRIVILEGES */
39719 : #line 7703 "gram.y"
39720 : { (yyval.list) = NIL; }
39721 : #line 39722 "gram.c"
39722 122 : break;
39723 :
39724 18 : case 1033: /* privileges: ALL '(' columnList ')' */
39725 : #line 7705 "gram.y"
39726 : {
39727 : AccessPriv *n = makeNode(AccessPriv);
39728 :
39729 : n->priv_name = NULL;
39730 : n->cols = (yyvsp[-1].list);
39731 : (yyval.list) = list_make1(n);
39732 : }
39733 : #line 39734 "gram.c"
39734 18 : break;
39735 :
39736 0 : case 1034: /* privileges: ALL PRIVILEGES '(' columnList ')' */
39737 : #line 7713 "gram.y"
39738 : {
39739 : AccessPriv *n = makeNode(AccessPriv);
39740 :
39741 : n->priv_name = NULL;
39742 : n->cols = (yyvsp[-1].list);
39743 : (yyval.list) = list_make1(n);
39744 : }
39745 : #line 39746 "gram.c"
39746 0 : break;
39747 :
39748 20078 : case 1035: /* privilege_list: privilege */
39749 : #line 7722 "gram.y"
39750 : { (yyval.list) = list_make1((yyvsp[0].accesspriv)); }
39751 : #line 39752 "gram.c"
39752 20078 : break;
39753 :
39754 564 : case 1036: /* privilege_list: privilege_list ',' privilege */
39755 : #line 7723 "gram.y"
39756 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].accesspriv)); }
39757 : #line 39758 "gram.c"
39758 564 : break;
39759 :
39760 9272 : case 1037: /* privilege: SELECT opt_column_list */
39761 : #line 7727 "gram.y"
39762 : {
39763 : AccessPriv *n = makeNode(AccessPriv);
39764 :
39765 : n->priv_name = pstrdup((yyvsp[-1].keyword));
39766 : n->cols = (yyvsp[0].list);
39767 : (yyval.accesspriv) = n;
39768 : }
39769 : #line 39770 "gram.c"
39770 9272 : break;
39771 :
39772 16 : case 1038: /* privilege: REFERENCES opt_column_list */
39773 : #line 7735 "gram.y"
39774 : {
39775 : AccessPriv *n = makeNode(AccessPriv);
39776 :
39777 : n->priv_name = pstrdup((yyvsp[-1].keyword));
39778 : n->cols = (yyvsp[0].list);
39779 : (yyval.accesspriv) = n;
39780 : }
39781 : #line 39782 "gram.c"
39782 16 : break;
39783 :
39784 290 : case 1039: /* privilege: CREATE opt_column_list */
39785 : #line 7743 "gram.y"
39786 : {
39787 : AccessPriv *n = makeNode(AccessPriv);
39788 :
39789 : n->priv_name = pstrdup((yyvsp[-1].keyword));
39790 : n->cols = (yyvsp[0].list);
39791 : (yyval.accesspriv) = n;
39792 : }
39793 : #line 39794 "gram.c"
39794 290 : break;
39795 :
39796 24 : case 1040: /* privilege: ALTER SYSTEM_P */
39797 : #line 7751 "gram.y"
39798 : {
39799 : AccessPriv *n = makeNode(AccessPriv);
39800 : n->priv_name = pstrdup("alter system");
39801 : n->cols = NIL;
39802 : (yyval.accesspriv) = n;
39803 : }
39804 : #line 39805 "gram.c"
39805 24 : break;
39806 :
39807 11040 : case 1041: /* privilege: ColId opt_column_list */
39808 : #line 7758 "gram.y"
39809 : {
39810 : AccessPriv *n = makeNode(AccessPriv);
39811 :
39812 : n->priv_name = (yyvsp[-1].str);
39813 : n->cols = (yyvsp[0].list);
39814 : (yyval.accesspriv) = n;
39815 : }
39816 : #line 39817 "gram.c"
39817 11040 : break;
39818 :
39819 76 : case 1042: /* parameter_name_list: parameter_name */
39820 : #line 7769 "gram.y"
39821 : {
39822 : (yyval.list) = list_make1(makeString((yyvsp[0].str)));
39823 : }
39824 : #line 39825 "gram.c"
39825 76 : break;
39826 :
39827 50 : case 1043: /* parameter_name_list: parameter_name_list ',' parameter_name */
39828 : #line 7773 "gram.y"
39829 : {
39830 : (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str)));
39831 : }
39832 : #line 39833 "gram.c"
39833 50 : break;
39834 :
39835 126 : case 1044: /* parameter_name: ColId */
39836 : #line 7780 "gram.y"
39837 : {
39838 : (yyval.str) = (yyvsp[0].str);
39839 : }
39840 : #line 39841 "gram.c"
39841 126 : break;
39842 :
39843 32 : case 1045: /* parameter_name: parameter_name '.' ColId */
39844 : #line 7784 "gram.y"
39845 : {
39846 : (yyval.str) = psprintf("%s.%s", (yyvsp[-2].str), (yyvsp[0].str));
39847 : }
39848 : #line 39849 "gram.c"
39849 32 : break;
39850 :
39851 11164 : case 1046: /* privilege_target: qualified_name_list */
39852 : #line 7795 "gram.y"
39853 : {
39854 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39855 :
39856 : n->targtype = ACL_TARGET_OBJECT;
39857 : n->objtype = OBJECT_TABLE;
39858 : n->objs = (yyvsp[0].list);
39859 : (yyval.privtarget) = n;
39860 : }
39861 : #line 39862 "gram.c"
39862 11164 : break;
39863 :
39864 412 : case 1047: /* privilege_target: TABLE qualified_name_list */
39865 : #line 7804 "gram.y"
39866 : {
39867 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39868 :
39869 : n->targtype = ACL_TARGET_OBJECT;
39870 : n->objtype = OBJECT_TABLE;
39871 : n->objs = (yyvsp[0].list);
39872 : (yyval.privtarget) = n;
39873 : }
39874 : #line 39875 "gram.c"
39875 412 : break;
39876 :
39877 24 : case 1048: /* privilege_target: SEQUENCE qualified_name_list */
39878 : #line 7813 "gram.y"
39879 : {
39880 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39881 :
39882 : n->targtype = ACL_TARGET_OBJECT;
39883 : n->objtype = OBJECT_SEQUENCE;
39884 : n->objs = (yyvsp[0].list);
39885 : (yyval.privtarget) = n;
39886 : }
39887 : #line 39888 "gram.c"
39888 24 : break;
39889 :
39890 92 : case 1049: /* privilege_target: FOREIGN DATA_P WRAPPER name_list */
39891 : #line 7822 "gram.y"
39892 : {
39893 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39894 :
39895 : n->targtype = ACL_TARGET_OBJECT;
39896 : n->objtype = OBJECT_FDW;
39897 : n->objs = (yyvsp[0].list);
39898 : (yyval.privtarget) = n;
39899 : }
39900 : #line 39901 "gram.c"
39901 92 : break;
39902 :
39903 88 : case 1050: /* privilege_target: FOREIGN SERVER name_list */
39904 : #line 7831 "gram.y"
39905 : {
39906 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39907 :
39908 : n->targtype = ACL_TARGET_OBJECT;
39909 : n->objtype = OBJECT_FOREIGN_SERVER;
39910 : n->objs = (yyvsp[0].list);
39911 : (yyval.privtarget) = n;
39912 : }
39913 : #line 39914 "gram.c"
39914 88 : break;
39915 :
39916 8750 : case 1051: /* privilege_target: FUNCTION function_with_argtypes_list */
39917 : #line 7840 "gram.y"
39918 : {
39919 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39920 :
39921 : n->targtype = ACL_TARGET_OBJECT;
39922 : n->objtype = OBJECT_FUNCTION;
39923 : n->objs = (yyvsp[0].list);
39924 : (yyval.privtarget) = n;
39925 : }
39926 : #line 39927 "gram.c"
39927 8750 : break;
39928 :
39929 42 : case 1052: /* privilege_target: PROCEDURE function_with_argtypes_list */
39930 : #line 7849 "gram.y"
39931 : {
39932 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39933 :
39934 : n->targtype = ACL_TARGET_OBJECT;
39935 : n->objtype = OBJECT_PROCEDURE;
39936 : n->objs = (yyvsp[0].list);
39937 : (yyval.privtarget) = n;
39938 : }
39939 : #line 39940 "gram.c"
39940 42 : break;
39941 :
39942 0 : case 1053: /* privilege_target: ROUTINE function_with_argtypes_list */
39943 : #line 7858 "gram.y"
39944 : {
39945 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39946 :
39947 : n->targtype = ACL_TARGET_OBJECT;
39948 : n->objtype = OBJECT_ROUTINE;
39949 : n->objs = (yyvsp[0].list);
39950 : (yyval.privtarget) = n;
39951 : }
39952 : #line 39953 "gram.c"
39953 0 : break;
39954 :
39955 344 : case 1054: /* privilege_target: DATABASE name_list */
39956 : #line 7867 "gram.y"
39957 : {
39958 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39959 :
39960 : n->targtype = ACL_TARGET_OBJECT;
39961 : n->objtype = OBJECT_DATABASE;
39962 : n->objs = (yyvsp[0].list);
39963 : (yyval.privtarget) = n;
39964 : }
39965 : #line 39966 "gram.c"
39966 344 : break;
39967 :
39968 26 : case 1055: /* privilege_target: DOMAIN_P any_name_list */
39969 : #line 7876 "gram.y"
39970 : {
39971 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39972 :
39973 : n->targtype = ACL_TARGET_OBJECT;
39974 : n->objtype = OBJECT_DOMAIN;
39975 : n->objs = (yyvsp[0].list);
39976 : (yyval.privtarget) = n;
39977 : }
39978 : #line 39979 "gram.c"
39979 26 : break;
39980 :
39981 42 : case 1056: /* privilege_target: LANGUAGE name_list */
39982 : #line 7885 "gram.y"
39983 : {
39984 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39985 :
39986 : n->targtype = ACL_TARGET_OBJECT;
39987 : n->objtype = OBJECT_LANGUAGE;
39988 : n->objs = (yyvsp[0].list);
39989 : (yyval.privtarget) = n;
39990 : }
39991 : #line 39992 "gram.c"
39992 42 : break;
39993 :
39994 80 : case 1057: /* privilege_target: LARGE_P OBJECT_P NumericOnly_list */
39995 : #line 7894 "gram.y"
39996 : {
39997 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39998 :
39999 : n->targtype = ACL_TARGET_OBJECT;
40000 : n->objtype = OBJECT_LARGEOBJECT;
40001 : n->objs = (yyvsp[0].list);
40002 : (yyval.privtarget) = n;
40003 : }
40004 : #line 40005 "gram.c"
40005 80 : break;
40006 :
40007 76 : case 1058: /* privilege_target: PARAMETER parameter_name_list */
40008 : #line 7903 "gram.y"
40009 : {
40010 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
40011 : n->targtype = ACL_TARGET_OBJECT;
40012 : n->objtype = OBJECT_PARAMETER_ACL;
40013 : n->objs = (yyvsp[0].list);
40014 : (yyval.privtarget) = n;
40015 : }
40016 : #line 40017 "gram.c"
40017 76 : break;
40018 :
40019 368 : case 1059: /* privilege_target: SCHEMA name_list */
40020 : #line 7911 "gram.y"
40021 : {
40022 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
40023 :
40024 : n->targtype = ACL_TARGET_OBJECT;
40025 : n->objtype = OBJECT_SCHEMA;
40026 : n->objs = (yyvsp[0].list);
40027 : (yyval.privtarget) = n;
40028 : }
40029 : #line 40030 "gram.c"
40030 368 : break;
40031 :
40032 6 : case 1060: /* privilege_target: TABLESPACE name_list */
40033 : #line 7920 "gram.y"
40034 : {
40035 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
40036 :
40037 : n->targtype = ACL_TARGET_OBJECT;
40038 : n->objtype = OBJECT_TABLESPACE;
40039 : n->objs = (yyvsp[0].list);
40040 : (yyval.privtarget) = n;
40041 : }
40042 : #line 40043 "gram.c"
40043 6 : break;
40044 :
40045 112 : case 1061: /* privilege_target: TYPE_P any_name_list */
40046 : #line 7929 "gram.y"
40047 : {
40048 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
40049 :
40050 : n->targtype = ACL_TARGET_OBJECT;
40051 : n->objtype = OBJECT_TYPE;
40052 : n->objs = (yyvsp[0].list);
40053 : (yyval.privtarget) = n;
40054 : }
40055 : #line 40056 "gram.c"
40056 112 : break;
40057 :
40058 12 : case 1062: /* privilege_target: ALL TABLES IN_P SCHEMA name_list */
40059 : #line 7938 "gram.y"
40060 : {
40061 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
40062 :
40063 : n->targtype = ACL_TARGET_ALL_IN_SCHEMA;
40064 : n->objtype = OBJECT_TABLE;
40065 : n->objs = (yyvsp[0].list);
40066 : (yyval.privtarget) = n;
40067 : }
40068 : #line 40069 "gram.c"
40069 12 : break;
40070 :
40071 0 : case 1063: /* privilege_target: ALL SEQUENCES IN_P SCHEMA name_list */
40072 : #line 7947 "gram.y"
40073 : {
40074 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
40075 :
40076 : n->targtype = ACL_TARGET_ALL_IN_SCHEMA;
40077 : n->objtype = OBJECT_SEQUENCE;
40078 : n->objs = (yyvsp[0].list);
40079 : (yyval.privtarget) = n;
40080 : }
40081 : #line 40082 "gram.c"
40082 0 : break;
40083 :
40084 6 : case 1064: /* privilege_target: ALL FUNCTIONS IN_P SCHEMA name_list */
40085 : #line 7956 "gram.y"
40086 : {
40087 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
40088 :
40089 : n->targtype = ACL_TARGET_ALL_IN_SCHEMA;
40090 : n->objtype = OBJECT_FUNCTION;
40091 : n->objs = (yyvsp[0].list);
40092 : (yyval.privtarget) = n;
40093 : }
40094 : #line 40095 "gram.c"
40095 6 : break;
40096 :
40097 6 : case 1065: /* privilege_target: ALL PROCEDURES IN_P SCHEMA name_list */
40098 : #line 7965 "gram.y"
40099 : {
40100 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
40101 :
40102 : n->targtype = ACL_TARGET_ALL_IN_SCHEMA;
40103 : n->objtype = OBJECT_PROCEDURE;
40104 : n->objs = (yyvsp[0].list);
40105 : (yyval.privtarget) = n;
40106 : }
40107 : #line 40108 "gram.c"
40108 6 : break;
40109 :
40110 6 : case 1066: /* privilege_target: ALL ROUTINES IN_P SCHEMA name_list */
40111 : #line 7974 "gram.y"
40112 : {
40113 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
40114 :
40115 : n->targtype = ACL_TARGET_ALL_IN_SCHEMA;
40116 : n->objtype = OBJECT_ROUTINE;
40117 : n->objs = (yyvsp[0].list);
40118 : (yyval.privtarget) = n;
40119 : }
40120 : #line 40121 "gram.c"
40121 6 : break;
40122 :
40123 21834 : case 1067: /* grantee_list: grantee */
40124 : #line 7986 "gram.y"
40125 : { (yyval.list) = list_make1((yyvsp[0].rolespec)); }
40126 : #line 40127 "gram.c"
40127 21834 : break;
40128 :
40129 108 : case 1068: /* grantee_list: grantee_list ',' grantee */
40130 : #line 7987 "gram.y"
40131 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].rolespec)); }
40132 : #line 40133 "gram.c"
40133 108 : break;
40134 :
40135 21918 : case 1069: /* grantee: RoleSpec */
40136 : #line 7991 "gram.y"
40137 : { (yyval.rolespec) = (yyvsp[0].rolespec); }
40138 : #line 40139 "gram.c"
40139 21918 : break;
40140 :
40141 24 : case 1070: /* grantee: GROUP_P RoleSpec */
40142 : #line 7992 "gram.y"
40143 : { (yyval.rolespec) = (yyvsp[0].rolespec); }
40144 : #line 40145 "gram.c"
40145 24 : break;
40146 :
40147 102 : case 1071: /* opt_grant_grant_option: WITH GRANT OPTION */
40148 : #line 7997 "gram.y"
40149 : { (yyval.boolean) = true; }
40150 : #line 40151 "gram.c"
40151 102 : break;
40152 :
40153 11516 : case 1072: /* opt_grant_grant_option: %empty */
40154 : #line 7998 "gram.y"
40155 : { (yyval.boolean) = false; }
40156 : #line 40157 "gram.c"
40157 11516 : break;
40158 :
40159 586 : case 1073: /* GrantRoleStmt: GRANT privilege_list TO role_list opt_granted_by */
40160 : #line 8009 "gram.y"
40161 : {
40162 : GrantRoleStmt *n = makeNode(GrantRoleStmt);
40163 :
40164 : n->is_grant = true;
40165 : n->granted_roles = (yyvsp[-3].list);
40166 : n->grantee_roles = (yyvsp[-1].list);
40167 : n->opt = NIL;
40168 : n->grantor = (yyvsp[0].rolespec);
40169 : (yyval.node) = (Node *) n;
40170 : }
40171 : #line 40172 "gram.c"
40172 586 : break;
40173 :
40174 178 : case 1074: /* GrantRoleStmt: GRANT privilege_list TO role_list WITH grant_role_opt_list opt_granted_by */
40175 : #line 8020 "gram.y"
40176 : {
40177 : GrantRoleStmt *n = makeNode(GrantRoleStmt);
40178 :
40179 : n->is_grant = true;
40180 : n->granted_roles = (yyvsp[-5].list);
40181 : n->grantee_roles = (yyvsp[-3].list);
40182 : n->opt = (yyvsp[-1].list);
40183 : n->grantor = (yyvsp[0].rolespec);
40184 : (yyval.node) = (Node *) n;
40185 : }
40186 : #line 40187 "gram.c"
40187 178 : break;
40188 :
40189 90 : case 1075: /* RevokeRoleStmt: REVOKE privilege_list FROM role_list opt_granted_by opt_drop_behavior */
40190 : #line 8034 "gram.y"
40191 : {
40192 : GrantRoleStmt *n = makeNode(GrantRoleStmt);
40193 :
40194 : n->is_grant = false;
40195 : n->opt = NIL;
40196 : n->granted_roles = (yyvsp[-4].list);
40197 : n->grantee_roles = (yyvsp[-2].list);
40198 : n->grantor = (yyvsp[-1].rolespec);
40199 : n->behavior = (yyvsp[0].dbehavior);
40200 : (yyval.node) = (Node *) n;
40201 : }
40202 : #line 40203 "gram.c"
40203 90 : break;
40204 :
40205 66 : case 1076: /* RevokeRoleStmt: REVOKE ColId OPTION FOR privilege_list FROM role_list opt_granted_by opt_drop_behavior */
40206 : #line 8046 "gram.y"
40207 : {
40208 : GrantRoleStmt *n = makeNode(GrantRoleStmt);
40209 : DefElem *opt;
40210 :
40211 : opt = makeDefElem(pstrdup((yyvsp[-7].str)),
40212 : (Node *) makeBoolean(false), (yylsp[-7]));
40213 : n->is_grant = false;
40214 : n->opt = list_make1(opt);
40215 : n->granted_roles = (yyvsp[-4].list);
40216 : n->grantee_roles = (yyvsp[-2].list);
40217 : n->grantor = (yyvsp[-1].rolespec);
40218 : n->behavior = (yyvsp[0].dbehavior);
40219 : (yyval.node) = (Node *) n;
40220 : }
40221 : #line 40222 "gram.c"
40222 66 : break;
40223 :
40224 120 : case 1077: /* grant_role_opt_list: grant_role_opt_list ',' grant_role_opt */
40225 : #line 8063 "gram.y"
40226 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); }
40227 : #line 40228 "gram.c"
40228 120 : break;
40229 :
40230 178 : case 1078: /* grant_role_opt_list: grant_role_opt */
40231 : #line 8064 "gram.y"
40232 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
40233 : #line 40234 "gram.c"
40234 178 : break;
40235 :
40236 298 : case 1079: /* grant_role_opt: ColLabel grant_role_opt_value */
40237 : #line 8069 "gram.y"
40238 : {
40239 : (yyval.defelt) = makeDefElem(pstrdup((yyvsp[-1].str)), (yyvsp[0].node), (yylsp[-1]));
40240 : }
40241 : #line 40242 "gram.c"
40242 298 : break;
40243 :
40244 72 : case 1080: /* grant_role_opt_value: OPTION */
40245 : #line 8075 "gram.y"
40246 : { (yyval.node) = (Node *) makeBoolean(true); }
40247 : #line 40248 "gram.c"
40248 72 : break;
40249 :
40250 112 : case 1081: /* grant_role_opt_value: TRUE_P */
40251 : #line 8076 "gram.y"
40252 : { (yyval.node) = (Node *) makeBoolean(true); }
40253 : #line 40254 "gram.c"
40254 112 : break;
40255 :
40256 114 : case 1082: /* grant_role_opt_value: FALSE_P */
40257 : #line 8077 "gram.y"
40258 : { (yyval.node) = (Node *) makeBoolean(false); }
40259 : #line 40260 "gram.c"
40260 114 : break;
40261 :
40262 138 : case 1083: /* opt_granted_by: GRANTED BY RoleSpec */
40263 : #line 8080 "gram.y"
40264 : { (yyval.rolespec) = (yyvsp[0].rolespec); }
40265 : #line 40266 "gram.c"
40266 138 : break;
40267 :
40268 22426 : case 1084: /* opt_granted_by: %empty */
40269 : #line 8081 "gram.y"
40270 : { (yyval.rolespec) = NULL; }
40271 : #line 40272 "gram.c"
40272 22426 : break;
40273 :
40274 190 : case 1085: /* AlterDefaultPrivilegesStmt: ALTER DEFAULT PRIVILEGES DefACLOptionList DefACLAction */
40275 : #line 8092 "gram.y"
40276 : {
40277 : AlterDefaultPrivilegesStmt *n = makeNode(AlterDefaultPrivilegesStmt);
40278 :
40279 : n->options = (yyvsp[-1].list);
40280 : n->action = (GrantStmt *) (yyvsp[0].node);
40281 : (yyval.node) = (Node *) n;
40282 : }
40283 : #line 40284 "gram.c"
40284 190 : break;
40285 :
40286 128 : case 1086: /* DefACLOptionList: DefACLOptionList DefACLOption */
40287 : #line 8102 "gram.y"
40288 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
40289 : #line 40290 "gram.c"
40290 128 : break;
40291 :
40292 190 : case 1087: /* DefACLOptionList: %empty */
40293 : #line 8103 "gram.y"
40294 : { (yyval.list) = NIL; }
40295 : #line 40296 "gram.c"
40296 190 : break;
40297 :
40298 60 : case 1088: /* DefACLOption: IN_P SCHEMA name_list */
40299 : #line 8108 "gram.y"
40300 : {
40301 : (yyval.defelt) = makeDefElem("schemas", (Node *) (yyvsp[0].list), (yylsp[-2]));
40302 : }
40303 : #line 40304 "gram.c"
40304 60 : break;
40305 :
40306 68 : case 1089: /* DefACLOption: FOR ROLE role_list */
40307 : #line 8112 "gram.y"
40308 : {
40309 : (yyval.defelt) = makeDefElem("roles", (Node *) (yyvsp[0].list), (yylsp[-2]));
40310 : }
40311 : #line 40312 "gram.c"
40312 68 : break;
40313 :
40314 0 : case 1090: /* DefACLOption: FOR USER role_list */
40315 : #line 8116 "gram.y"
40316 : {
40317 : (yyval.defelt) = makeDefElem("roles", (Node *) (yyvsp[0].list), (yylsp[-2]));
40318 : }
40319 : #line 40320 "gram.c"
40320 0 : break;
40321 :
40322 124 : case 1091: /* DefACLAction: GRANT privileges ON defacl_privilege_target TO grantee_list opt_grant_grant_option */
40323 : #line 8128 "gram.y"
40324 : {
40325 : GrantStmt *n = makeNode(GrantStmt);
40326 :
40327 : n->is_grant = true;
40328 : n->privileges = (yyvsp[-5].list);
40329 : n->targtype = ACL_TARGET_DEFAULTS;
40330 : n->objtype = (yyvsp[-3].ival);
40331 : n->objects = NIL;
40332 : n->grantees = (yyvsp[-1].list);
40333 : n->grant_option = (yyvsp[0].boolean);
40334 : (yyval.node) = (Node *) n;
40335 : }
40336 : #line 40337 "gram.c"
40337 124 : break;
40338 :
40339 66 : case 1092: /* DefACLAction: REVOKE privileges ON defacl_privilege_target FROM grantee_list opt_drop_behavior */
40340 : #line 8142 "gram.y"
40341 : {
40342 : GrantStmt *n = makeNode(GrantStmt);
40343 :
40344 : n->is_grant = false;
40345 : n->grant_option = false;
40346 : n->privileges = (yyvsp[-5].list);
40347 : n->targtype = ACL_TARGET_DEFAULTS;
40348 : n->objtype = (yyvsp[-3].ival);
40349 : n->objects = NIL;
40350 : n->grantees = (yyvsp[-1].list);
40351 : n->behavior = (yyvsp[0].dbehavior);
40352 : (yyval.node) = (Node *) n;
40353 : }
40354 : #line 40355 "gram.c"
40355 66 : break;
40356 :
40357 0 : case 1093: /* DefACLAction: REVOKE GRANT OPTION FOR privileges ON defacl_privilege_target FROM grantee_list opt_drop_behavior */
40358 : #line 8157 "gram.y"
40359 : {
40360 : GrantStmt *n = makeNode(GrantStmt);
40361 :
40362 : n->is_grant = false;
40363 : n->grant_option = true;
40364 : n->privileges = (yyvsp[-5].list);
40365 : n->targtype = ACL_TARGET_DEFAULTS;
40366 : n->objtype = (yyvsp[-3].ival);
40367 : n->objects = NIL;
40368 : n->grantees = (yyvsp[-1].list);
40369 : n->behavior = (yyvsp[0].dbehavior);
40370 : (yyval.node) = (Node *) n;
40371 : }
40372 : #line 40373 "gram.c"
40373 0 : break;
40374 :
40375 78 : case 1094: /* defacl_privilege_target: TABLES */
40376 : #line 8173 "gram.y"
40377 : { (yyval.ival) = OBJECT_TABLE; }
40378 : #line 40379 "gram.c"
40379 78 : break;
40380 :
40381 16 : case 1095: /* defacl_privilege_target: FUNCTIONS */
40382 : #line 8174 "gram.y"
40383 : { (yyval.ival) = OBJECT_FUNCTION; }
40384 : #line 40385 "gram.c"
40385 16 : break;
40386 :
40387 6 : case 1096: /* defacl_privilege_target: ROUTINES */
40388 : #line 8175 "gram.y"
40389 : { (yyval.ival) = OBJECT_FUNCTION; }
40390 : #line 40391 "gram.c"
40391 6 : break;
40392 :
40393 6 : case 1097: /* defacl_privilege_target: SEQUENCES */
40394 : #line 8176 "gram.y"
40395 : { (yyval.ival) = OBJECT_SEQUENCE; }
40396 : #line 40397 "gram.c"
40397 6 : break;
40398 :
40399 18 : case 1098: /* defacl_privilege_target: TYPES_P */
40400 : #line 8177 "gram.y"
40401 : { (yyval.ival) = OBJECT_TYPE; }
40402 : #line 40403 "gram.c"
40403 18 : break;
40404 :
40405 36 : case 1099: /* defacl_privilege_target: SCHEMAS */
40406 : #line 8178 "gram.y"
40407 : { (yyval.ival) = OBJECT_SCHEMA; }
40408 : #line 40409 "gram.c"
40409 36 : break;
40410 :
40411 30 : case 1100: /* defacl_privilege_target: LARGE_P OBJECTS_P */
40412 : #line 8179 "gram.y"
40413 : { (yyval.ival) = OBJECT_LARGEOBJECT; }
40414 : #line 40415 "gram.c"
40415 30 : break;
40416 :
40417 6872 : case 1101: /* IndexStmt: CREATE opt_unique INDEX opt_concurrently opt_single_name ON relation_expr access_method_clause '(' index_params ')' opt_include opt_unique_null_treatment opt_reloptions OptTableSpace where_clause */
40418 : #line 8194 "gram.y"
40419 : {
40420 : IndexStmt *n = makeNode(IndexStmt);
40421 :
40422 : n->unique = (yyvsp[-14].boolean);
40423 : n->concurrent = (yyvsp[-12].boolean);
40424 : n->idxname = (yyvsp[-11].str);
40425 : n->relation = (yyvsp[-9].range);
40426 : n->accessMethod = (yyvsp[-8].str);
40427 : n->indexParams = (yyvsp[-6].list);
40428 : n->indexIncludingParams = (yyvsp[-4].list);
40429 : n->nulls_not_distinct = !(yyvsp[-3].boolean);
40430 : n->options = (yyvsp[-2].list);
40431 : n->tableSpace = (yyvsp[-1].str);
40432 : n->whereClause = (yyvsp[0].node);
40433 : n->excludeOpNames = NIL;
40434 : n->idxcomment = NULL;
40435 : n->indexOid = InvalidOid;
40436 : n->oldNumber = InvalidRelFileNumber;
40437 : n->oldCreateSubid = InvalidSubTransactionId;
40438 : n->oldFirstRelfilelocatorSubid = InvalidSubTransactionId;
40439 : n->primary = false;
40440 : n->isconstraint = false;
40441 : n->deferrable = false;
40442 : n->initdeferred = false;
40443 : n->transformed = false;
40444 : n->if_not_exists = false;
40445 : n->reset_default_tblspc = false;
40446 : (yyval.node) = (Node *) n;
40447 : }
40448 : #line 40449 "gram.c"
40449 6872 : break;
40450 :
40451 18 : case 1102: /* 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 */
40452 : #line 8226 "gram.y"
40453 : {
40454 : IndexStmt *n = makeNode(IndexStmt);
40455 :
40456 : n->unique = (yyvsp[-17].boolean);
40457 : n->concurrent = (yyvsp[-15].boolean);
40458 : n->idxname = (yyvsp[-11].str);
40459 : n->relation = (yyvsp[-9].range);
40460 : n->accessMethod = (yyvsp[-8].str);
40461 : n->indexParams = (yyvsp[-6].list);
40462 : n->indexIncludingParams = (yyvsp[-4].list);
40463 : n->nulls_not_distinct = !(yyvsp[-3].boolean);
40464 : n->options = (yyvsp[-2].list);
40465 : n->tableSpace = (yyvsp[-1].str);
40466 : n->whereClause = (yyvsp[0].node);
40467 : n->excludeOpNames = NIL;
40468 : n->idxcomment = NULL;
40469 : n->indexOid = InvalidOid;
40470 : n->oldNumber = InvalidRelFileNumber;
40471 : n->oldCreateSubid = InvalidSubTransactionId;
40472 : n->oldFirstRelfilelocatorSubid = InvalidSubTransactionId;
40473 : n->primary = false;
40474 : n->isconstraint = false;
40475 : n->deferrable = false;
40476 : n->initdeferred = false;
40477 : n->transformed = false;
40478 : n->if_not_exists = true;
40479 : n->reset_default_tblspc = false;
40480 : (yyval.node) = (Node *) n;
40481 : }
40482 : #line 40483 "gram.c"
40483 18 : break;
40484 :
40485 1378 : case 1103: /* opt_unique: UNIQUE */
40486 : #line 8258 "gram.y"
40487 : { (yyval.boolean) = true; }
40488 : #line 40489 "gram.c"
40489 1378 : break;
40490 :
40491 5518 : case 1104: /* opt_unique: %empty */
40492 : #line 8259 "gram.y"
40493 : { (yyval.boolean) = false; }
40494 : #line 40495 "gram.c"
40495 5518 : break;
40496 :
40497 3292 : case 1105: /* access_method_clause: USING name */
40498 : #line 8263 "gram.y"
40499 : { (yyval.str) = (yyvsp[0].str); }
40500 : #line 40501 "gram.c"
40501 3292 : break;
40502 :
40503 3836 : case 1106: /* access_method_clause: %empty */
40504 : #line 8264 "gram.y"
40505 : { (yyval.str) = DEFAULT_INDEX_TYPE; }
40506 : #line 40507 "gram.c"
40507 3836 : break;
40508 :
40509 8320 : case 1107: /* index_params: index_elem */
40510 : #line 8267 "gram.y"
40511 : { (yyval.list) = list_make1((yyvsp[0].ielem)); }
40512 : #line 40513 "gram.c"
40513 8320 : break;
40514 :
40515 2322 : case 1108: /* index_params: index_params ',' index_elem */
40516 : #line 8268 "gram.y"
40517 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].ielem)); }
40518 : #line 40519 "gram.c"
40519 2322 : break;
40520 :
40521 11250 : case 1109: /* index_elem_options: opt_collate opt_qualified_name opt_asc_desc opt_nulls_order */
40522 : #line 8274 "gram.y"
40523 : {
40524 : (yyval.ielem) = makeNode(IndexElem);
40525 : (yyval.ielem)->name = NULL;
40526 : (yyval.ielem)->expr = NULL;
40527 : (yyval.ielem)->indexcolname = NULL;
40528 : (yyval.ielem)->collation = (yyvsp[-3].list);
40529 : (yyval.ielem)->opclass = (yyvsp[-2].list);
40530 : (yyval.ielem)->opclassopts = NIL;
40531 : (yyval.ielem)->ordering = (yyvsp[-1].ival);
40532 : (yyval.ielem)->nulls_ordering = (yyvsp[0].ival);
40533 : }
40534 : #line 40535 "gram.c"
40535 11250 : break;
40536 :
40537 142 : case 1110: /* index_elem_options: opt_collate any_name reloptions opt_asc_desc opt_nulls_order */
40538 : #line 8286 "gram.y"
40539 : {
40540 : (yyval.ielem) = makeNode(IndexElem);
40541 : (yyval.ielem)->name = NULL;
40542 : (yyval.ielem)->expr = NULL;
40543 : (yyval.ielem)->indexcolname = NULL;
40544 : (yyval.ielem)->collation = (yyvsp[-4].list);
40545 : (yyval.ielem)->opclass = (yyvsp[-3].list);
40546 : (yyval.ielem)->opclassopts = (yyvsp[-2].list);
40547 : (yyval.ielem)->ordering = (yyvsp[-1].ival);
40548 : (yyval.ielem)->nulls_ordering = (yyvsp[0].ival);
40549 : }
40550 : #line 40551 "gram.c"
40551 142 : break;
40552 :
40553 10268 : case 1111: /* index_elem: ColId index_elem_options */
40554 : #line 8305 "gram.y"
40555 : {
40556 : (yyval.ielem) = (yyvsp[0].ielem);
40557 : (yyval.ielem)->name = (yyvsp[-1].str);
40558 : }
40559 : #line 40560 "gram.c"
40560 10268 : break;
40561 :
40562 612 : case 1112: /* index_elem: func_expr_windowless index_elem_options */
40563 : #line 8310 "gram.y"
40564 : {
40565 : (yyval.ielem) = (yyvsp[0].ielem);
40566 : (yyval.ielem)->expr = (yyvsp[-1].node);
40567 : }
40568 : #line 40569 "gram.c"
40569 612 : break;
40570 :
40571 512 : case 1113: /* index_elem: '(' a_expr ')' index_elem_options */
40572 : #line 8315 "gram.y"
40573 : {
40574 : (yyval.ielem) = (yyvsp[0].ielem);
40575 : (yyval.ielem)->expr = (yyvsp[-2].node);
40576 : }
40577 : #line 40578 "gram.c"
40578 512 : break;
40579 :
40580 232 : case 1114: /* opt_include: INCLUDE '(' index_including_params ')' */
40581 : #line 8321 "gram.y"
40582 : { (yyval.list) = (yyvsp[-1].list); }
40583 : #line 40584 "gram.c"
40584 232 : break;
40585 :
40586 6658 : case 1115: /* opt_include: %empty */
40587 : #line 8322 "gram.y"
40588 : { (yyval.list) = NIL; }
40589 : #line 40590 "gram.c"
40590 6658 : break;
40591 :
40592 232 : case 1116: /* index_including_params: index_elem */
40593 : #line 8325 "gram.y"
40594 : { (yyval.list) = list_make1((yyvsp[0].ielem)); }
40595 : #line 40596 "gram.c"
40596 232 : break;
40597 :
40598 170 : case 1117: /* index_including_params: index_including_params ',' index_elem */
40599 : #line 8326 "gram.y"
40600 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].ielem)); }
40601 : #line 40602 "gram.c"
40602 170 : break;
40603 :
40604 192 : case 1118: /* opt_collate: COLLATE any_name */
40605 : #line 8329 "gram.y"
40606 : { (yyval.list) = (yyvsp[0].list); }
40607 : #line 40608 "gram.c"
40608 192 : break;
40609 :
40610 16810 : case 1119: /* opt_collate: %empty */
40611 : #line 8330 "gram.y"
40612 : { (yyval.list) = NIL; }
40613 : #line 40614 "gram.c"
40614 16810 : break;
40615 :
40616 1818 : case 1120: /* opt_asc_desc: ASC */
40617 : #line 8334 "gram.y"
40618 : { (yyval.ival) = SORTBY_ASC; }
40619 : #line 40620 "gram.c"
40620 1818 : break;
40621 :
40622 3518 : case 1121: /* opt_asc_desc: DESC */
40623 : #line 8335 "gram.y"
40624 : { (yyval.ival) = SORTBY_DESC; }
40625 : #line 40626 "gram.c"
40626 3518 : break;
40627 :
40628 117262 : case 1122: /* opt_asc_desc: %empty */
40629 : #line 8336 "gram.y"
40630 : { (yyval.ival) = SORTBY_DEFAULT; }
40631 : #line 40632 "gram.c"
40632 117262 : break;
40633 :
40634 346 : case 1123: /* opt_nulls_order: NULLS_LA FIRST_P */
40635 : #line 8339 "gram.y"
40636 : { (yyval.ival) = SORTBY_NULLS_FIRST; }
40637 : #line 40638 "gram.c"
40638 346 : break;
40639 :
40640 1732 : case 1124: /* opt_nulls_order: NULLS_LA LAST_P */
40641 : #line 8340 "gram.y"
40642 : { (yyval.ival) = SORTBY_NULLS_LAST; }
40643 : #line 40644 "gram.c"
40644 1732 : break;
40645 :
40646 120740 : case 1125: /* opt_nulls_order: %empty */
40647 : #line 8341 "gram.y"
40648 : { (yyval.ival) = SORTBY_NULLS_DEFAULT; }
40649 : #line 40650 "gram.c"
40650 120740 : break;
40651 :
40652 23426 : case 1126: /* CreateFunctionStmt: CREATE opt_or_replace FUNCTION func_name func_args_with_defaults RETURNS func_return opt_createfunc_opt_list opt_routine_body */
40653 : #line 8359 "gram.y"
40654 : {
40655 : CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
40656 :
40657 : n->is_procedure = false;
40658 : n->replace = (yyvsp[-7].boolean);
40659 : n->funcname = (yyvsp[-5].list);
40660 : n->parameters = (yyvsp[-4].list);
40661 : n->returnType = (yyvsp[-2].typnam);
40662 : n->options = (yyvsp[-1].list);
40663 : n->sql_body = (yyvsp[0].node);
40664 : (yyval.node) = (Node *) n;
40665 : }
40666 : #line 40667 "gram.c"
40667 23426 : break;
40668 :
40669 202 : case 1127: /* 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 */
40670 : #line 8373 "gram.y"
40671 : {
40672 : CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
40673 :
40674 : n->is_procedure = false;
40675 : n->replace = (yyvsp[-10].boolean);
40676 : n->funcname = (yyvsp[-8].list);
40677 : n->parameters = mergeTableFuncParameters((yyvsp[-7].list), (yyvsp[-3].list), yyscanner);
40678 : n->returnType = TableFuncTypeName((yyvsp[-3].list));
40679 : n->returnType->location = (yylsp[-5]);
40680 : n->options = (yyvsp[-1].list);
40681 : n->sql_body = (yyvsp[0].node);
40682 : (yyval.node) = (Node *) n;
40683 : }
40684 : #line 40685 "gram.c"
40685 202 : break;
40686 :
40687 488 : case 1128: /* CreateFunctionStmt: CREATE opt_or_replace FUNCTION func_name func_args_with_defaults opt_createfunc_opt_list opt_routine_body */
40688 : #line 8388 "gram.y"
40689 : {
40690 : CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
40691 :
40692 : n->is_procedure = false;
40693 : n->replace = (yyvsp[-5].boolean);
40694 : n->funcname = (yyvsp[-3].list);
40695 : n->parameters = (yyvsp[-2].list);
40696 : n->returnType = NULL;
40697 : n->options = (yyvsp[-1].list);
40698 : n->sql_body = (yyvsp[0].node);
40699 : (yyval.node) = (Node *) n;
40700 : }
40701 : #line 40702 "gram.c"
40702 488 : break;
40703 :
40704 392 : case 1129: /* CreateFunctionStmt: CREATE opt_or_replace PROCEDURE func_name func_args_with_defaults opt_createfunc_opt_list opt_routine_body */
40705 : #line 8402 "gram.y"
40706 : {
40707 : CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
40708 :
40709 : n->is_procedure = true;
40710 : n->replace = (yyvsp[-5].boolean);
40711 : n->funcname = (yyvsp[-3].list);
40712 : n->parameters = (yyvsp[-2].list);
40713 : n->returnType = NULL;
40714 : n->options = (yyvsp[-1].list);
40715 : n->sql_body = (yyvsp[0].node);
40716 : (yyval.node) = (Node *) n;
40717 : }
40718 : #line 40719 "gram.c"
40719 392 : break;
40720 :
40721 9814 : case 1130: /* opt_or_replace: OR REPLACE */
40722 : #line 8417 "gram.y"
40723 : { (yyval.boolean) = true; }
40724 : #line 40725 "gram.c"
40725 9814 : break;
40726 :
40727 20394 : case 1131: /* opt_or_replace: %empty */
40728 : #line 8418 "gram.y"
40729 : { (yyval.boolean) = false; }
40730 : #line 40731 "gram.c"
40731 20394 : break;
40732 :
40733 10424 : case 1132: /* func_args: '(' func_args_list ')' */
40734 : #line 8421 "gram.y"
40735 : { (yyval.list) = (yyvsp[-1].list); }
40736 : #line 40737 "gram.c"
40737 10424 : break;
40738 :
40739 5814 : case 1133: /* func_args: '(' ')' */
40740 : #line 8422 "gram.y"
40741 : { (yyval.list) = NIL; }
40742 : #line 40743 "gram.c"
40743 5814 : break;
40744 :
40745 10424 : case 1134: /* func_args_list: func_arg */
40746 : #line 8426 "gram.y"
40747 : { (yyval.list) = list_make1((yyvsp[0].fun_param)); }
40748 : #line 40749 "gram.c"
40749 10424 : break;
40750 :
40751 8638 : case 1135: /* func_args_list: func_args_list ',' func_arg */
40752 : #line 8427 "gram.y"
40753 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); }
40754 : #line 40755 "gram.c"
40755 8638 : break;
40756 :
40757 12476 : case 1136: /* function_with_argtypes_list: function_with_argtypes */
40758 : #line 8431 "gram.y"
40759 : { (yyval.list) = list_make1((yyvsp[0].objwithargs)); }
40760 : #line 40761 "gram.c"
40761 12476 : break;
40762 :
40763 84 : case 1137: /* function_with_argtypes_list: function_with_argtypes_list ',' function_with_argtypes */
40764 : #line 8433 "gram.y"
40765 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].objwithargs)); }
40766 : #line 40767 "gram.c"
40767 84 : break;
40768 :
40769 16238 : case 1138: /* function_with_argtypes: func_name func_args */
40770 : #line 8438 "gram.y"
40771 : {
40772 : ObjectWithArgs *n = makeNode(ObjectWithArgs);
40773 :
40774 : n->objname = (yyvsp[-1].list);
40775 : n->objargs = extractArgTypes((yyvsp[0].list));
40776 : n->objfuncargs = (yyvsp[0].list);
40777 : (yyval.objwithargs) = n;
40778 : }
40779 : #line 40780 "gram.c"
40780 16238 : break;
40781 :
40782 0 : case 1139: /* function_with_argtypes: type_func_name_keyword */
40783 : #line 8452 "gram.y"
40784 : {
40785 : ObjectWithArgs *n = makeNode(ObjectWithArgs);
40786 :
40787 : n->objname = list_make1(makeString(pstrdup((yyvsp[0].keyword))));
40788 : n->args_unspecified = true;
40789 : (yyval.objwithargs) = n;
40790 : }
40791 : #line 40792 "gram.c"
40792 0 : break;
40793 :
40794 346 : case 1140: /* function_with_argtypes: ColId */
40795 : #line 8460 "gram.y"
40796 : {
40797 : ObjectWithArgs *n = makeNode(ObjectWithArgs);
40798 :
40799 : n->objname = list_make1(makeString((yyvsp[0].str)));
40800 : n->args_unspecified = true;
40801 : (yyval.objwithargs) = n;
40802 : }
40803 : #line 40804 "gram.c"
40804 346 : break;
40805 :
40806 28 : case 1141: /* function_with_argtypes: ColId indirection */
40807 : #line 8468 "gram.y"
40808 : {
40809 : ObjectWithArgs *n = makeNode(ObjectWithArgs);
40810 :
40811 : n->objname = check_func_name(lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)),
40812 : yyscanner);
40813 : n->args_unspecified = true;
40814 : (yyval.objwithargs) = n;
40815 : }
40816 : #line 40817 "gram.c"
40817 28 : break;
40818 :
40819 19824 : case 1142: /* func_args_with_defaults: '(' func_args_with_defaults_list ')' */
40820 : #line 8483 "gram.y"
40821 : { (yyval.list) = (yyvsp[-1].list); }
40822 : #line 40823 "gram.c"
40823 19824 : break;
40824 :
40825 4684 : case 1143: /* func_args_with_defaults: '(' ')' */
40826 : #line 8484 "gram.y"
40827 : { (yyval.list) = NIL; }
40828 : #line 40829 "gram.c"
40829 4684 : break;
40830 :
40831 19824 : case 1144: /* func_args_with_defaults_list: func_arg_with_default */
40832 : #line 8488 "gram.y"
40833 : { (yyval.list) = list_make1((yyvsp[0].fun_param)); }
40834 : #line 40835 "gram.c"
40835 19824 : break;
40836 :
40837 33032 : case 1145: /* func_args_with_defaults_list: func_args_with_defaults_list ',' func_arg_with_default */
40838 : #line 8490 "gram.y"
40839 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); }
40840 : #line 40841 "gram.c"
40841 33032 : break;
40842 :
40843 15984 : case 1146: /* func_arg: arg_class param_name func_type */
40844 : #line 8505 "gram.y"
40845 : {
40846 : FunctionParameter *n = makeNode(FunctionParameter);
40847 :
40848 : n->name = (yyvsp[-1].str);
40849 : n->argType = (yyvsp[0].typnam);
40850 : n->mode = (yyvsp[-2].fun_param_mode);
40851 : n->defexpr = NULL;
40852 : n->location = (yylsp[-2]);
40853 : (yyval.fun_param) = n;
40854 : }
40855 : #line 40856 "gram.c"
40856 15984 : break;
40857 :
40858 412 : case 1147: /* func_arg: param_name arg_class func_type */
40859 : #line 8516 "gram.y"
40860 : {
40861 : FunctionParameter *n = makeNode(FunctionParameter);
40862 :
40863 : n->name = (yyvsp[-2].str);
40864 : n->argType = (yyvsp[0].typnam);
40865 : n->mode = (yyvsp[-1].fun_param_mode);
40866 : n->defexpr = NULL;
40867 : n->location = (yylsp[-2]);
40868 : (yyval.fun_param) = n;
40869 : }
40870 : #line 40871 "gram.c"
40871 412 : break;
40872 :
40873 15622 : case 1148: /* func_arg: param_name func_type */
40874 : #line 8527 "gram.y"
40875 : {
40876 : FunctionParameter *n = makeNode(FunctionParameter);
40877 :
40878 : n->name = (yyvsp[-1].str);
40879 : n->argType = (yyvsp[0].typnam);
40880 : n->mode = FUNC_PARAM_DEFAULT;
40881 : n->defexpr = NULL;
40882 : n->location = (yylsp[-1]);
40883 : (yyval.fun_param) = n;
40884 : }
40885 : #line 40886 "gram.c"
40886 15622 : break;
40887 :
40888 354 : case 1149: /* func_arg: arg_class func_type */
40889 : #line 8538 "gram.y"
40890 : {
40891 : FunctionParameter *n = makeNode(FunctionParameter);
40892 :
40893 : n->name = NULL;
40894 : n->argType = (yyvsp[0].typnam);
40895 : n->mode = (yyvsp[-1].fun_param_mode);
40896 : n->defexpr = NULL;
40897 : n->location = (yylsp[-1]);
40898 : (yyval.fun_param) = n;
40899 : }
40900 : #line 40901 "gram.c"
40901 354 : break;
40902 :
40903 40644 : case 1150: /* func_arg: func_type */
40904 : #line 8549 "gram.y"
40905 : {
40906 : FunctionParameter *n = makeNode(FunctionParameter);
40907 :
40908 : n->name = NULL;
40909 : n->argType = (yyvsp[0].typnam);
40910 : n->mode = FUNC_PARAM_DEFAULT;
40911 : n->defexpr = NULL;
40912 : n->location = (yylsp[0]);
40913 : (yyval.fun_param) = n;
40914 : }
40915 : #line 40916 "gram.c"
40916 40644 : break;
40917 :
40918 3852 : case 1151: /* arg_class: IN_P */
40919 : #line 8562 "gram.y"
40920 : { (yyval.fun_param_mode) = FUNC_PARAM_IN; }
40921 : #line 40922 "gram.c"
40922 3852 : break;
40923 :
40924 12090 : case 1152: /* arg_class: OUT_P */
40925 : #line 8563 "gram.y"
40926 : { (yyval.fun_param_mode) = FUNC_PARAM_OUT; }
40927 : #line 40928 "gram.c"
40928 12090 : break;
40929 :
40930 218 : case 1153: /* arg_class: INOUT */
40931 : #line 8564 "gram.y"
40932 : { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; }
40933 : #line 40934 "gram.c"
40934 218 : break;
40935 :
40936 0 : case 1154: /* arg_class: IN_P OUT_P */
40937 : #line 8565 "gram.y"
40938 : { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; }
40939 : #line 40940 "gram.c"
40940 0 : break;
40941 :
40942 590 : case 1155: /* arg_class: VARIADIC */
40943 : #line 8566 "gram.y"
40944 : { (yyval.fun_param_mode) = FUNC_PARAM_VARIADIC; }
40945 : #line 40946 "gram.c"
40946 590 : break;
40947 :
40948 23426 : case 1157: /* func_return: func_type */
40949 : #line 8577 "gram.y"
40950 : {
40951 : /* We can catch over-specified results here if we want to,
40952 : * but for now better to silently swallow typmod, etc.
40953 : * - thomas 2000-03-22
40954 : */
40955 : (yyval.typnam) = (yyvsp[0].typnam);
40956 : }
40957 : #line 40958 "gram.c"
40958 23426 : break;
40959 :
40960 117738 : case 1158: /* func_type: Typename */
40961 : #line 8591 "gram.y"
40962 : { (yyval.typnam) = (yyvsp[0].typnam); }
40963 : #line 40964 "gram.c"
40964 117738 : break;
40965 :
40966 18 : case 1159: /* func_type: type_function_name attrs '%' TYPE_P */
40967 : #line 8593 "gram.y"
40968 : {
40969 : (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[-3].str)), (yyvsp[-2].list)));
40970 : (yyval.typnam)->pct_type = true;
40971 : (yyval.typnam)->location = (yylsp[-3]);
40972 : }
40973 : #line 40974 "gram.c"
40974 18 : break;
40975 :
40976 6 : case 1160: /* func_type: SETOF type_function_name attrs '%' TYPE_P */
40977 : #line 8599 "gram.y"
40978 : {
40979 : (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[-3].str)), (yyvsp[-2].list)));
40980 : (yyval.typnam)->pct_type = true;
40981 : (yyval.typnam)->setof = true;
40982 : (yyval.typnam)->location = (yylsp[-3]);
40983 : }
40984 : #line 40985 "gram.c"
40985 6 : break;
40986 :
40987 46676 : case 1161: /* func_arg_with_default: func_arg */
40988 : #line 8609 "gram.y"
40989 : {
40990 : (yyval.fun_param) = (yyvsp[0].fun_param);
40991 : }
40992 : #line 40993 "gram.c"
40993 46676 : break;
40994 :
40995 5984 : case 1162: /* func_arg_with_default: func_arg DEFAULT a_expr */
40996 : #line 8613 "gram.y"
40997 : {
40998 : (yyval.fun_param) = (yyvsp[-2].fun_param);
40999 : (yyval.fun_param)->defexpr = (yyvsp[0].node);
41000 : }
41001 : #line 41002 "gram.c"
41002 5984 : break;
41003 :
41004 196 : case 1163: /* func_arg_with_default: func_arg '=' a_expr */
41005 : #line 8618 "gram.y"
41006 : {
41007 : (yyval.fun_param) = (yyvsp[-2].fun_param);
41008 : (yyval.fun_param)->defexpr = (yyvsp[0].node);
41009 : }
41010 : #line 41011 "gram.c"
41011 196 : break;
41012 :
41013 1098 : case 1164: /* aggr_arg: func_arg */
41014 : #line 8626 "gram.y"
41015 : {
41016 : if (!((yyvsp[0].fun_param)->mode == FUNC_PARAM_DEFAULT ||
41017 : (yyvsp[0].fun_param)->mode == FUNC_PARAM_IN ||
41018 : (yyvsp[0].fun_param)->mode == FUNC_PARAM_VARIADIC))
41019 : ereport(ERROR,
41020 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
41021 : errmsg("aggregates cannot have output arguments"),
41022 : parser_errposition((yylsp[0]))));
41023 : (yyval.fun_param) = (yyvsp[0].fun_param);
41024 : }
41025 : #line 41026 "gram.c"
41026 1098 : break;
41027 :
41028 170 : case 1165: /* aggr_args: '(' '*' ')' */
41029 : #line 8668 "gram.y"
41030 : {
41031 : (yyval.list) = list_make2(NIL, makeInteger(-1));
41032 : }
41033 : #line 41034 "gram.c"
41034 170 : break;
41035 :
41036 882 : case 1166: /* aggr_args: '(' aggr_args_list ')' */
41037 : #line 8672 "gram.y"
41038 : {
41039 : (yyval.list) = list_make2((yyvsp[-1].list), makeInteger(-1));
41040 : }
41041 : #line 41042 "gram.c"
41042 882 : break;
41043 :
41044 6 : case 1167: /* aggr_args: '(' ORDER BY aggr_args_list ')' */
41045 : #line 8676 "gram.y"
41046 : {
41047 : (yyval.list) = list_make2((yyvsp[-1].list), makeInteger(0));
41048 : }
41049 : #line 41050 "gram.c"
41050 6 : break;
41051 :
41052 40 : case 1168: /* aggr_args: '(' aggr_args_list ORDER BY aggr_args_list ')' */
41053 : #line 8680 "gram.y"
41054 : {
41055 : /* this is the only case requiring consistency checking */
41056 : (yyval.list) = makeOrderedSetArgs((yyvsp[-4].list), (yyvsp[-1].list), yyscanner);
41057 : }
41058 : #line 41059 "gram.c"
41059 40 : break;
41060 :
41061 968 : case 1169: /* aggr_args_list: aggr_arg */
41062 : #line 8687 "gram.y"
41063 : { (yyval.list) = list_make1((yyvsp[0].fun_param)); }
41064 : #line 41065 "gram.c"
41065 968 : break;
41066 :
41067 130 : case 1170: /* aggr_args_list: aggr_args_list ',' aggr_arg */
41068 : #line 8688 "gram.y"
41069 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); }
41070 : #line 41071 "gram.c"
41071 130 : break;
41072 :
41073 460 : case 1171: /* aggregate_with_argtypes: func_name aggr_args */
41074 : #line 8693 "gram.y"
41075 : {
41076 : ObjectWithArgs *n = makeNode(ObjectWithArgs);
41077 :
41078 : n->objname = (yyvsp[-1].list);
41079 : n->objargs = extractAggrArgTypes((yyvsp[0].list));
41080 : n->objfuncargs = (List *) linitial((yyvsp[0].list));
41081 : (yyval.objwithargs) = n;
41082 : }
41083 : #line 41084 "gram.c"
41084 460 : break;
41085 :
41086 104 : case 1172: /* aggregate_with_argtypes_list: aggregate_with_argtypes */
41087 : #line 8704 "gram.y"
41088 : { (yyval.list) = list_make1((yyvsp[0].objwithargs)); }
41089 : #line 41090 "gram.c"
41090 104 : break;
41091 :
41092 0 : case 1173: /* aggregate_with_argtypes_list: aggregate_with_argtypes_list ',' aggregate_with_argtypes */
41093 : #line 8706 "gram.y"
41094 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].objwithargs)); }
41095 : #line 41096 "gram.c"
41096 0 : break;
41097 :
41098 54 : case 1175: /* opt_createfunc_opt_list: %empty */
41099 : #line 8711 "gram.y"
41100 : { (yyval.list) = NIL; }
41101 : #line 41102 "gram.c"
41102 54 : break;
41103 :
41104 24454 : case 1176: /* createfunc_opt_list: createfunc_opt_item */
41105 : #line 8716 "gram.y"
41106 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
41107 : #line 41108 "gram.c"
41108 24454 : break;
41109 :
41110 63868 : case 1177: /* createfunc_opt_list: createfunc_opt_list createfunc_opt_item */
41111 : #line 8717 "gram.y"
41112 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
41113 : #line 41114 "gram.c"
41114 63868 : break;
41115 :
41116 368 : case 1178: /* common_func_opt_item: CALLED ON NULL_P INPUT_P */
41117 : #line 8725 "gram.y"
41118 : {
41119 : (yyval.defelt) = makeDefElem("strict", (Node *) makeBoolean(false), (yylsp[-3]));
41120 : }
41121 : #line 41122 "gram.c"
41122 368 : break;
41123 :
41124 864 : case 1179: /* common_func_opt_item: RETURNS NULL_P ON NULL_P INPUT_P */
41125 : #line 8729 "gram.y"
41126 : {
41127 : (yyval.defelt) = makeDefElem("strict", (Node *) makeBoolean(true), (yylsp[-4]));
41128 : }
41129 : #line 41130 "gram.c"
41130 864 : break;
41131 :
41132 12668 : case 1180: /* common_func_opt_item: STRICT_P */
41133 : #line 8733 "gram.y"
41134 : {
41135 : (yyval.defelt) = makeDefElem("strict", (Node *) makeBoolean(true), (yylsp[0]));
41136 : }
41137 : #line 41138 "gram.c"
41138 12668 : break;
41139 :
41140 9166 : case 1181: /* common_func_opt_item: IMMUTABLE */
41141 : #line 8737 "gram.y"
41142 : {
41143 : (yyval.defelt) = makeDefElem("volatility", (Node *) makeString("immutable"), (yylsp[0]));
41144 : }
41145 : #line 41146 "gram.c"
41146 9166 : break;
41147 :
41148 2486 : case 1182: /* common_func_opt_item: STABLE */
41149 : #line 8741 "gram.y"
41150 : {
41151 : (yyval.defelt) = makeDefElem("volatility", (Node *) makeString("stable"), (yylsp[0]));
41152 : }
41153 : #line 41154 "gram.c"
41154 2486 : break;
41155 :
41156 1644 : case 1183: /* common_func_opt_item: VOLATILE */
41157 : #line 8745 "gram.y"
41158 : {
41159 : (yyval.defelt) = makeDefElem("volatility", (Node *) makeString("volatile"), (yylsp[0]));
41160 : }
41161 : #line 41162 "gram.c"
41162 1644 : break;
41163 :
41164 0 : case 1184: /* common_func_opt_item: EXTERNAL SECURITY DEFINER */
41165 : #line 8749 "gram.y"
41166 : {
41167 : (yyval.defelt) = makeDefElem("security", (Node *) makeBoolean(true), (yylsp[-2]));
41168 : }
41169 : #line 41170 "gram.c"
41170 0 : break;
41171 :
41172 0 : case 1185: /* common_func_opt_item: EXTERNAL SECURITY INVOKER */
41173 : #line 8753 "gram.y"
41174 : {
41175 : (yyval.defelt) = makeDefElem("security", (Node *) makeBoolean(false), (yylsp[-2]));
41176 : }
41177 : #line 41178 "gram.c"
41178 0 : break;
41179 :
41180 58 : case 1186: /* common_func_opt_item: SECURITY DEFINER */
41181 : #line 8757 "gram.y"
41182 : {
41183 : (yyval.defelt) = makeDefElem("security", (Node *) makeBoolean(true), (yylsp[-1]));
41184 : }
41185 : #line 41186 "gram.c"
41186 58 : break;
41187 :
41188 18 : case 1187: /* common_func_opt_item: SECURITY INVOKER */
41189 : #line 8761 "gram.y"
41190 : {
41191 : (yyval.defelt) = makeDefElem("security", (Node *) makeBoolean(false), (yylsp[-1]));
41192 : }
41193 : #line 41194 "gram.c"
41194 18 : break;
41195 :
41196 50 : case 1188: /* common_func_opt_item: LEAKPROOF */
41197 : #line 8765 "gram.y"
41198 : {
41199 : (yyval.defelt) = makeDefElem("leakproof", (Node *) makeBoolean(true), (yylsp[0]));
41200 : }
41201 : #line 41202 "gram.c"
41202 50 : break;
41203 :
41204 12 : case 1189: /* common_func_opt_item: NOT LEAKPROOF */
41205 : #line 8769 "gram.y"
41206 : {
41207 : (yyval.defelt) = makeDefElem("leakproof", (Node *) makeBoolean(false), (yylsp[-1]));
41208 : }
41209 : #line 41210 "gram.c"
41210 12 : break;
41211 :
41212 4270 : case 1190: /* common_func_opt_item: COST NumericOnly */
41213 : #line 8773 "gram.y"
41214 : {
41215 : (yyval.defelt) = makeDefElem("cost", (Node *) (yyvsp[0].node), (yylsp[-1]));
41216 : }
41217 : #line 41218 "gram.c"
41218 4270 : break;
41219 :
41220 588 : case 1191: /* common_func_opt_item: ROWS NumericOnly */
41221 : #line 8777 "gram.y"
41222 : {
41223 : (yyval.defelt) = makeDefElem("rows", (Node *) (yyvsp[0].node), (yylsp[-1]));
41224 : }
41225 : #line 41226 "gram.c"
41226 588 : break;
41227 :
41228 116 : case 1192: /* common_func_opt_item: SUPPORT any_name */
41229 : #line 8781 "gram.y"
41230 : {
41231 : (yyval.defelt) = makeDefElem("support", (Node *) (yyvsp[0].list), (yylsp[-1]));
41232 : }
41233 : #line 41234 "gram.c"
41234 116 : break;
41235 :
41236 160 : case 1193: /* common_func_opt_item: FunctionSetResetClause */
41237 : #line 8785 "gram.y"
41238 : {
41239 : /* we abuse the normal content of a DefElem here */
41240 : (yyval.defelt) = makeDefElem("set", (Node *) (yyvsp[0].vsetstmt), (yylsp[0]));
41241 : }
41242 : #line 41243 "gram.c"
41243 160 : break;
41244 :
41245 13016 : case 1194: /* common_func_opt_item: PARALLEL ColId */
41246 : #line 8790 "gram.y"
41247 : {
41248 : (yyval.defelt) = makeDefElem("parallel", (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
41249 : }
41250 : #line 41251 "gram.c"
41251 13016 : break;
41252 :
41253 18940 : case 1195: /* createfunc_opt_item: AS func_as */
41254 : #line 8797 "gram.y"
41255 : {
41256 : (yyval.defelt) = makeDefElem("as", (Node *) (yyvsp[0].list), (yylsp[-1]));
41257 : }
41258 : #line 41259 "gram.c"
41259 18940 : break;
41260 :
41261 24434 : case 1196: /* createfunc_opt_item: LANGUAGE NonReservedWord_or_Sconst */
41262 : #line 8801 "gram.y"
41263 : {
41264 : (yyval.defelt) = makeDefElem("language", (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
41265 : }
41266 : #line 41267 "gram.c"
41267 24434 : break;
41268 :
41269 118 : case 1197: /* createfunc_opt_item: TRANSFORM transform_type_list */
41270 : #line 8805 "gram.y"
41271 : {
41272 : (yyval.defelt) = makeDefElem("transform", (Node *) (yyvsp[0].list), (yylsp[-1]));
41273 : }
41274 : #line 41275 "gram.c"
41275 118 : break;
41276 :
41277 22 : case 1198: /* createfunc_opt_item: WINDOW */
41278 : #line 8809 "gram.y"
41279 : {
41280 : (yyval.defelt) = makeDefElem("window", (Node *) makeBoolean(true), (yylsp[0]));
41281 : }
41282 : #line 41283 "gram.c"
41283 22 : break;
41284 :
41285 44808 : case 1199: /* createfunc_opt_item: common_func_opt_item */
41286 : #line 8813 "gram.y"
41287 : {
41288 : (yyval.defelt) = (yyvsp[0].defelt);
41289 : }
41290 : #line 41291 "gram.c"
41291 44808 : break;
41292 :
41293 15820 : case 1200: /* func_as: Sconst */
41294 : #line 8818 "gram.y"
41295 : { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
41296 : #line 41297 "gram.c"
41297 15820 : break;
41298 :
41299 3120 : case 1201: /* func_as: Sconst ',' Sconst */
41300 : #line 8820 "gram.y"
41301 : {
41302 : (yyval.list) = list_make2(makeString((yyvsp[-2].str)), makeString((yyvsp[0].str)));
41303 : }
41304 : #line 41305 "gram.c"
41305 3120 : break;
41306 :
41307 4784 : case 1202: /* ReturnStmt: RETURN a_expr */
41308 : #line 8826 "gram.y"
41309 : {
41310 : ReturnStmt *r = makeNode(ReturnStmt);
41311 :
41312 : r->returnval = (Node *) (yyvsp[0].node);
41313 : (yyval.node) = (Node *) r;
41314 : }
41315 : #line 41316 "gram.c"
41316 4784 : break;
41317 :
41318 4778 : case 1203: /* opt_routine_body: ReturnStmt */
41319 : #line 8836 "gram.y"
41320 : {
41321 : (yyval.node) = (yyvsp[0].node);
41322 : }
41323 : #line 41324 "gram.c"
41324 4778 : break;
41325 :
41326 796 : case 1204: /* opt_routine_body: BEGIN_P ATOMIC routine_body_stmt_list END_P */
41327 : #line 8840 "gram.y"
41328 : {
41329 : /*
41330 : * A compound statement is stored as a single-item list
41331 : * containing the list of statements as its member. That
41332 : * way, the parse analysis code can tell apart an empty
41333 : * body from no body at all.
41334 : */
41335 : (yyval.node) = (Node *) list_make1((yyvsp[-1].list));
41336 : }
41337 : #line 41338 "gram.c"
41338 796 : break;
41339 :
41340 18934 : case 1205: /* opt_routine_body: %empty */
41341 : #line 8850 "gram.y"
41342 : {
41343 : (yyval.node) = NULL;
41344 : }
41345 : #line 41346 "gram.c"
41346 18934 : break;
41347 :
41348 810 : case 1206: /* routine_body_stmt_list: routine_body_stmt_list routine_body_stmt ';' */
41349 : #line 8857 "gram.y"
41350 : {
41351 : /* As in stmtmulti, discard empty statements */
41352 : if ((yyvsp[-1].node) != NULL)
41353 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[-1].node));
41354 : else
41355 : (yyval.list) = (yyvsp[-2].list);
41356 : }
41357 : #line 41358 "gram.c"
41358 810 : break;
41359 :
41360 796 : case 1207: /* routine_body_stmt_list: %empty */
41361 : #line 8865 "gram.y"
41362 : {
41363 : (yyval.list) = NIL;
41364 : }
41365 : #line 41366 "gram.c"
41366 796 : break;
41367 :
41368 118 : case 1210: /* transform_type_list: FOR TYPE_P Typename */
41369 : #line 8876 "gram.y"
41370 : { (yyval.list) = list_make1((yyvsp[0].typnam)); }
41371 : #line 41372 "gram.c"
41372 118 : break;
41373 :
41374 4 : case 1211: /* transform_type_list: transform_type_list ',' FOR TYPE_P Typename */
41375 : #line 8877 "gram.y"
41376 : { (yyval.list) = lappend((yyvsp[-4].list), (yyvsp[0].typnam)); }
41377 : #line 41378 "gram.c"
41378 4 : break;
41379 :
41380 606 : case 1212: /* opt_definition: WITH definition */
41381 : #line 8881 "gram.y"
41382 : { (yyval.list) = (yyvsp[0].list); }
41383 : #line 41384 "gram.c"
41384 606 : break;
41385 :
41386 10282 : case 1213: /* opt_definition: %empty */
41387 : #line 8882 "gram.y"
41388 : { (yyval.list) = NIL; }
41389 : #line 41390 "gram.c"
41390 10282 : break;
41391 :
41392 462 : case 1214: /* table_func_column: param_name func_type */
41393 : #line 8886 "gram.y"
41394 : {
41395 : FunctionParameter *n = makeNode(FunctionParameter);
41396 :
41397 : n->name = (yyvsp[-1].str);
41398 : n->argType = (yyvsp[0].typnam);
41399 : n->mode = FUNC_PARAM_TABLE;
41400 : n->defexpr = NULL;
41401 : n->location = (yylsp[-1]);
41402 : (yyval.fun_param) = n;
41403 : }
41404 : #line 41405 "gram.c"
41405 462 : break;
41406 :
41407 202 : case 1215: /* table_func_column_list: table_func_column */
41408 : #line 8900 "gram.y"
41409 : {
41410 : (yyval.list) = list_make1((yyvsp[0].fun_param));
41411 : }
41412 : #line 41413 "gram.c"
41413 202 : break;
41414 :
41415 260 : case 1216: /* table_func_column_list: table_func_column_list ',' table_func_column */
41416 : #line 8904 "gram.y"
41417 : {
41418 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param));
41419 : }
41420 : #line 41421 "gram.c"
41421 260 : break;
41422 :
41423 654 : case 1217: /* AlterFunctionStmt: ALTER FUNCTION function_with_argtypes alterfunc_opt_list opt_restrict */
41424 : #line 8919 "gram.y"
41425 : {
41426 : AlterFunctionStmt *n = makeNode(AlterFunctionStmt);
41427 :
41428 : n->objtype = OBJECT_FUNCTION;
41429 : n->func = (yyvsp[-2].objwithargs);
41430 : n->actions = (yyvsp[-1].list);
41431 : (yyval.node) = (Node *) n;
41432 : }
41433 : #line 41434 "gram.c"
41434 654 : break;
41435 :
41436 18 : case 1218: /* AlterFunctionStmt: ALTER PROCEDURE function_with_argtypes alterfunc_opt_list opt_restrict */
41437 : #line 8928 "gram.y"
41438 : {
41439 : AlterFunctionStmt *n = makeNode(AlterFunctionStmt);
41440 :
41441 : n->objtype = OBJECT_PROCEDURE;
41442 : n->func = (yyvsp[-2].objwithargs);
41443 : n->actions = (yyvsp[-1].list);
41444 : (yyval.node) = (Node *) n;
41445 : }
41446 : #line 41447 "gram.c"
41447 18 : break;
41448 :
41449 0 : case 1219: /* AlterFunctionStmt: ALTER ROUTINE function_with_argtypes alterfunc_opt_list opt_restrict */
41450 : #line 8937 "gram.y"
41451 : {
41452 : AlterFunctionStmt *n = makeNode(AlterFunctionStmt);
41453 :
41454 : n->objtype = OBJECT_ROUTINE;
41455 : n->func = (yyvsp[-2].objwithargs);
41456 : n->actions = (yyvsp[-1].list);
41457 : (yyval.node) = (Node *) n;
41458 : }
41459 : #line 41460 "gram.c"
41460 0 : break;
41461 :
41462 672 : case 1220: /* alterfunc_opt_list: common_func_opt_item */
41463 : #line 8949 "gram.y"
41464 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
41465 : #line 41466 "gram.c"
41466 672 : break;
41467 :
41468 4 : case 1221: /* alterfunc_opt_list: alterfunc_opt_list common_func_opt_item */
41469 : #line 8950 "gram.y"
41470 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
41471 : #line 41472 "gram.c"
41472 4 : break;
41473 :
41474 3262 : case 1224: /* RemoveFuncStmt: DROP FUNCTION function_with_argtypes_list opt_drop_behavior */
41475 : #line 8974 "gram.y"
41476 : {
41477 : DropStmt *n = makeNode(DropStmt);
41478 :
41479 : n->removeType = OBJECT_FUNCTION;
41480 : n->objects = (yyvsp[-1].list);
41481 : n->behavior = (yyvsp[0].dbehavior);
41482 : n->missing_ok = false;
41483 : n->concurrent = false;
41484 : (yyval.node) = (Node *) n;
41485 : }
41486 : #line 41487 "gram.c"
41487 3262 : break;
41488 :
41489 260 : case 1225: /* RemoveFuncStmt: DROP FUNCTION IF_P EXISTS function_with_argtypes_list opt_drop_behavior */
41490 : #line 8985 "gram.y"
41491 : {
41492 : DropStmt *n = makeNode(DropStmt);
41493 :
41494 : n->removeType = OBJECT_FUNCTION;
41495 : n->objects = (yyvsp[-1].list);
41496 : n->behavior = (yyvsp[0].dbehavior);
41497 : n->missing_ok = true;
41498 : n->concurrent = false;
41499 : (yyval.node) = (Node *) n;
41500 : }
41501 : #line 41502 "gram.c"
41502 260 : break;
41503 :
41504 138 : case 1226: /* RemoveFuncStmt: DROP PROCEDURE function_with_argtypes_list opt_drop_behavior */
41505 : #line 8996 "gram.y"
41506 : {
41507 : DropStmt *n = makeNode(DropStmt);
41508 :
41509 : n->removeType = OBJECT_PROCEDURE;
41510 : n->objects = (yyvsp[-1].list);
41511 : n->behavior = (yyvsp[0].dbehavior);
41512 : n->missing_ok = false;
41513 : n->concurrent = false;
41514 : (yyval.node) = (Node *) n;
41515 : }
41516 : #line 41517 "gram.c"
41517 138 : break;
41518 :
41519 6 : case 1227: /* RemoveFuncStmt: DROP PROCEDURE IF_P EXISTS function_with_argtypes_list opt_drop_behavior */
41520 : #line 9007 "gram.y"
41521 : {
41522 : DropStmt *n = makeNode(DropStmt);
41523 :
41524 : n->removeType = OBJECT_PROCEDURE;
41525 : n->objects = (yyvsp[-1].list);
41526 : n->behavior = (yyvsp[0].dbehavior);
41527 : n->missing_ok = true;
41528 : n->concurrent = false;
41529 : (yyval.node) = (Node *) n;
41530 : }
41531 : #line 41532 "gram.c"
41532 6 : break;
41533 :
41534 12 : case 1228: /* RemoveFuncStmt: DROP ROUTINE function_with_argtypes_list opt_drop_behavior */
41535 : #line 9018 "gram.y"
41536 : {
41537 : DropStmt *n = makeNode(DropStmt);
41538 :
41539 : n->removeType = OBJECT_ROUTINE;
41540 : n->objects = (yyvsp[-1].list);
41541 : n->behavior = (yyvsp[0].dbehavior);
41542 : n->missing_ok = false;
41543 : n->concurrent = false;
41544 : (yyval.node) = (Node *) n;
41545 : }
41546 : #line 41547 "gram.c"
41547 12 : break;
41548 :
41549 6 : case 1229: /* RemoveFuncStmt: DROP ROUTINE IF_P EXISTS function_with_argtypes_list opt_drop_behavior */
41550 : #line 9029 "gram.y"
41551 : {
41552 : DropStmt *n = makeNode(DropStmt);
41553 :
41554 : n->removeType = OBJECT_ROUTINE;
41555 : n->objects = (yyvsp[-1].list);
41556 : n->behavior = (yyvsp[0].dbehavior);
41557 : n->missing_ok = true;
41558 : n->concurrent = false;
41559 : (yyval.node) = (Node *) n;
41560 : }
41561 : #line 41562 "gram.c"
41562 6 : break;
41563 :
41564 74 : case 1230: /* RemoveAggrStmt: DROP AGGREGATE aggregate_with_argtypes_list opt_drop_behavior */
41565 : #line 9043 "gram.y"
41566 : {
41567 : DropStmt *n = makeNode(DropStmt);
41568 :
41569 : n->removeType = OBJECT_AGGREGATE;
41570 : n->objects = (yyvsp[-1].list);
41571 : n->behavior = (yyvsp[0].dbehavior);
41572 : n->missing_ok = false;
41573 : n->concurrent = false;
41574 : (yyval.node) = (Node *) n;
41575 : }
41576 : #line 41577 "gram.c"
41577 74 : break;
41578 :
41579 30 : case 1231: /* RemoveAggrStmt: DROP AGGREGATE IF_P EXISTS aggregate_with_argtypes_list opt_drop_behavior */
41580 : #line 9054 "gram.y"
41581 : {
41582 : DropStmt *n = makeNode(DropStmt);
41583 :
41584 : n->removeType = OBJECT_AGGREGATE;
41585 : n->objects = (yyvsp[-1].list);
41586 : n->behavior = (yyvsp[0].dbehavior);
41587 : n->missing_ok = true;
41588 : n->concurrent = false;
41589 : (yyval.node) = (Node *) n;
41590 : }
41591 : #line 41592 "gram.c"
41592 30 : break;
41593 :
41594 194 : case 1232: /* RemoveOperStmt: DROP OPERATOR operator_with_argtypes_list opt_drop_behavior */
41595 : #line 9068 "gram.y"
41596 : {
41597 : DropStmt *n = makeNode(DropStmt);
41598 :
41599 : n->removeType = OBJECT_OPERATOR;
41600 : n->objects = (yyvsp[-1].list);
41601 : n->behavior = (yyvsp[0].dbehavior);
41602 : n->missing_ok = false;
41603 : n->concurrent = false;
41604 : (yyval.node) = (Node *) n;
41605 : }
41606 : #line 41607 "gram.c"
41607 194 : break;
41608 :
41609 30 : case 1233: /* RemoveOperStmt: DROP OPERATOR IF_P EXISTS operator_with_argtypes_list opt_drop_behavior */
41610 : #line 9079 "gram.y"
41611 : {
41612 : DropStmt *n = makeNode(DropStmt);
41613 :
41614 : n->removeType = OBJECT_OPERATOR;
41615 : n->objects = (yyvsp[-1].list);
41616 : n->behavior = (yyvsp[0].dbehavior);
41617 : n->missing_ok = true;
41618 : n->concurrent = false;
41619 : (yyval.node) = (Node *) n;
41620 : }
41621 : #line 41622 "gram.c"
41622 30 : break;
41623 :
41624 12 : case 1234: /* oper_argtypes: '(' Typename ')' */
41625 : #line 9093 "gram.y"
41626 : {
41627 : ereport(ERROR,
41628 : (errcode(ERRCODE_SYNTAX_ERROR),
41629 : errmsg("missing argument"),
41630 : errhint("Use NONE to denote the missing argument of a unary operator."),
41631 : parser_errposition((yylsp[0]))));
41632 : }
41633 : #line 41634 "gram.c"
41634 : break;
41635 :
41636 1968 : case 1235: /* oper_argtypes: '(' Typename ',' Typename ')' */
41637 : #line 9101 "gram.y"
41638 : { (yyval.list) = list_make2((yyvsp[-3].typnam), (yyvsp[-1].typnam)); }
41639 : #line 41640 "gram.c"
41640 1968 : break;
41641 :
41642 40 : case 1236: /* oper_argtypes: '(' NONE ',' Typename ')' */
41643 : #line 9103 "gram.y"
41644 : { (yyval.list) = list_make2(NULL, (yyvsp[-1].typnam)); }
41645 : #line 41646 "gram.c"
41646 40 : break;
41647 :
41648 12 : case 1237: /* oper_argtypes: '(' Typename ',' NONE ')' */
41649 : #line 9105 "gram.y"
41650 : { (yyval.list) = list_make2((yyvsp[-3].typnam), NULL); }
41651 : #line 41652 "gram.c"
41652 12 : break;
41653 :
41654 20860 : case 1238: /* any_operator: all_Op */
41655 : #line 9110 "gram.y"
41656 : { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
41657 : #line 41658 "gram.c"
41658 20860 : break;
41659 :
41660 15940 : case 1239: /* any_operator: ColId '.' any_operator */
41661 : #line 9112 "gram.y"
41662 : { (yyval.list) = lcons(makeString((yyvsp[-2].str)), (yyvsp[0].list)); }
41663 : #line 41664 "gram.c"
41664 15940 : break;
41665 :
41666 224 : case 1240: /* operator_with_argtypes_list: operator_with_argtypes */
41667 : #line 9116 "gram.y"
41668 : { (yyval.list) = list_make1((yyvsp[0].objwithargs)); }
41669 : #line 41670 "gram.c"
41670 224 : break;
41671 :
41672 0 : case 1241: /* operator_with_argtypes_list: operator_with_argtypes_list ',' operator_with_argtypes */
41673 : #line 9118 "gram.y"
41674 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].objwithargs)); }
41675 : #line 41676 "gram.c"
41676 0 : break;
41677 :
41678 2020 : case 1242: /* operator_with_argtypes: any_operator oper_argtypes */
41679 : #line 9123 "gram.y"
41680 : {
41681 : ObjectWithArgs *n = makeNode(ObjectWithArgs);
41682 :
41683 : n->objname = (yyvsp[-1].list);
41684 : n->objargs = (yyvsp[0].list);
41685 : (yyval.objwithargs) = n;
41686 : }
41687 : #line 41688 "gram.c"
41688 2020 : break;
41689 :
41690 1140 : case 1243: /* DoStmt: DO dostmt_opt_list */
41691 : #line 9142 "gram.y"
41692 : {
41693 : DoStmt *n = makeNode(DoStmt);
41694 :
41695 : n->args = (yyvsp[0].list);
41696 : (yyval.node) = (Node *) n;
41697 : }
41698 : #line 41699 "gram.c"
41699 1140 : break;
41700 :
41701 1140 : case 1244: /* dostmt_opt_list: dostmt_opt_item */
41702 : #line 9151 "gram.y"
41703 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
41704 : #line 41705 "gram.c"
41705 1140 : break;
41706 :
41707 198 : case 1245: /* dostmt_opt_list: dostmt_opt_list dostmt_opt_item */
41708 : #line 9152 "gram.y"
41709 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
41710 : #line 41711 "gram.c"
41711 198 : break;
41712 :
41713 1140 : case 1246: /* dostmt_opt_item: Sconst */
41714 : #line 9157 "gram.y"
41715 : {
41716 : (yyval.defelt) = makeDefElem("as", (Node *) makeString((yyvsp[0].str)), (yylsp[0]));
41717 : }
41718 : #line 41719 "gram.c"
41719 1140 : break;
41720 :
41721 198 : case 1247: /* dostmt_opt_item: LANGUAGE NonReservedWord_or_Sconst */
41722 : #line 9161 "gram.y"
41723 : {
41724 : (yyval.defelt) = makeDefElem("language", (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
41725 : }
41726 : #line 41727 "gram.c"
41727 198 : break;
41728 :
41729 110 : case 1248: /* CreateCastStmt: CREATE CAST '(' Typename AS Typename ')' WITH FUNCTION function_with_argtypes cast_context */
41730 : #line 9174 "gram.y"
41731 : {
41732 : CreateCastStmt *n = makeNode(CreateCastStmt);
41733 :
41734 : n->sourcetype = (yyvsp[-7].typnam);
41735 : n->targettype = (yyvsp[-5].typnam);
41736 : n->func = (yyvsp[-1].objwithargs);
41737 : n->context = (CoercionContext) (yyvsp[0].ival);
41738 : n->inout = false;
41739 : (yyval.node) = (Node *) n;
41740 : }
41741 : #line 41742 "gram.c"
41742 110 : break;
41743 :
41744 172 : case 1249: /* CreateCastStmt: CREATE CAST '(' Typename AS Typename ')' WITHOUT FUNCTION cast_context */
41745 : #line 9186 "gram.y"
41746 : {
41747 : CreateCastStmt *n = makeNode(CreateCastStmt);
41748 :
41749 : n->sourcetype = (yyvsp[-6].typnam);
41750 : n->targettype = (yyvsp[-4].typnam);
41751 : n->func = NULL;
41752 : n->context = (CoercionContext) (yyvsp[0].ival);
41753 : n->inout = false;
41754 : (yyval.node) = (Node *) n;
41755 : }
41756 : #line 41757 "gram.c"
41757 172 : break;
41758 :
41759 8 : case 1250: /* CreateCastStmt: CREATE CAST '(' Typename AS Typename ')' WITH INOUT cast_context */
41760 : #line 9198 "gram.y"
41761 : {
41762 : CreateCastStmt *n = makeNode(CreateCastStmt);
41763 :
41764 : n->sourcetype = (yyvsp[-6].typnam);
41765 : n->targettype = (yyvsp[-4].typnam);
41766 : n->func = NULL;
41767 : n->context = (CoercionContext) (yyvsp[0].ival);
41768 : n->inout = true;
41769 : (yyval.node) = (Node *) n;
41770 : }
41771 : #line 41772 "gram.c"
41772 8 : break;
41773 :
41774 40 : case 1251: /* cast_context: AS IMPLICIT_P */
41775 : #line 9210 "gram.y"
41776 : { (yyval.ival) = COERCION_IMPLICIT; }
41777 : #line 41778 "gram.c"
41778 40 : break;
41779 :
41780 58 : case 1252: /* cast_context: AS ASSIGNMENT */
41781 : #line 9211 "gram.y"
41782 : { (yyval.ival) = COERCION_ASSIGNMENT; }
41783 : #line 41784 "gram.c"
41784 58 : break;
41785 :
41786 192 : case 1253: /* cast_context: %empty */
41787 : #line 9212 "gram.y"
41788 : { (yyval.ival) = COERCION_EXPLICIT; }
41789 : #line 41790 "gram.c"
41790 192 : break;
41791 :
41792 60 : case 1254: /* DropCastStmt: DROP CAST opt_if_exists '(' Typename AS Typename ')' opt_drop_behavior */
41793 : #line 9217 "gram.y"
41794 : {
41795 : DropStmt *n = makeNode(DropStmt);
41796 :
41797 : n->removeType = OBJECT_CAST;
41798 : n->objects = list_make1(list_make2((yyvsp[-4].typnam), (yyvsp[-2].typnam)));
41799 : n->behavior = (yyvsp[0].dbehavior);
41800 : n->missing_ok = (yyvsp[-6].boolean);
41801 : n->concurrent = false;
41802 : (yyval.node) = (Node *) n;
41803 : }
41804 : #line 41805 "gram.c"
41805 60 : break;
41806 :
41807 36 : case 1255: /* opt_if_exists: IF_P EXISTS */
41808 : #line 9229 "gram.y"
41809 : { (yyval.boolean) = true; }
41810 : #line 41811 "gram.c"
41811 36 : break;
41812 :
41813 38 : case 1256: /* opt_if_exists: %empty */
41814 : #line 9230 "gram.y"
41815 : { (yyval.boolean) = false; }
41816 : #line 41817 "gram.c"
41817 38 : break;
41818 :
41819 52 : case 1257: /* CreateTransformStmt: CREATE opt_or_replace TRANSFORM FOR Typename LANGUAGE name '(' transform_element_list ')' */
41820 : #line 9241 "gram.y"
41821 : {
41822 : CreateTransformStmt *n = makeNode(CreateTransformStmt);
41823 :
41824 : n->replace = (yyvsp[-8].boolean);
41825 : n->type_name = (yyvsp[-5].typnam);
41826 : n->lang = (yyvsp[-3].str);
41827 : n->fromsql = linitial((yyvsp[-1].list));
41828 : n->tosql = lsecond((yyvsp[-1].list));
41829 : (yyval.node) = (Node *) n;
41830 : }
41831 : #line 41832 "gram.c"
41832 52 : break;
41833 :
41834 46 : case 1258: /* transform_element_list: FROM SQL_P WITH FUNCTION function_with_argtypes ',' TO SQL_P WITH FUNCTION function_with_argtypes */
41835 : #line 9254 "gram.y"
41836 : {
41837 : (yyval.list) = list_make2((yyvsp[-6].objwithargs), (yyvsp[0].objwithargs));
41838 : }
41839 : #line 41840 "gram.c"
41840 46 : break;
41841 :
41842 0 : case 1259: /* transform_element_list: TO SQL_P WITH FUNCTION function_with_argtypes ',' FROM SQL_P WITH FUNCTION function_with_argtypes */
41843 : #line 9258 "gram.y"
41844 : {
41845 : (yyval.list) = list_make2((yyvsp[0].objwithargs), (yyvsp[-6].objwithargs));
41846 : }
41847 : #line 41848 "gram.c"
41848 0 : break;
41849 :
41850 4 : case 1260: /* transform_element_list: FROM SQL_P WITH FUNCTION function_with_argtypes */
41851 : #line 9262 "gram.y"
41852 : {
41853 : (yyval.list) = list_make2((yyvsp[0].objwithargs), NULL);
41854 : }
41855 : #line 41856 "gram.c"
41856 4 : break;
41857 :
41858 2 : case 1261: /* transform_element_list: TO SQL_P WITH FUNCTION function_with_argtypes */
41859 : #line 9266 "gram.y"
41860 : {
41861 : (yyval.list) = list_make2(NULL, (yyvsp[0].objwithargs));
41862 : }
41863 : #line 41864 "gram.c"
41864 2 : break;
41865 :
41866 14 : case 1262: /* DropTransformStmt: DROP TRANSFORM opt_if_exists FOR Typename LANGUAGE name opt_drop_behavior */
41867 : #line 9273 "gram.y"
41868 : {
41869 : DropStmt *n = makeNode(DropStmt);
41870 :
41871 : n->removeType = OBJECT_TRANSFORM;
41872 : n->objects = list_make1(list_make2((yyvsp[-3].typnam), makeString((yyvsp[-1].str))));
41873 : n->behavior = (yyvsp[0].dbehavior);
41874 : n->missing_ok = (yyvsp[-5].boolean);
41875 : (yyval.node) = (Node *) n;
41876 : }
41877 : #line 41878 "gram.c"
41878 14 : break;
41879 :
41880 926 : case 1263: /* ReindexStmt: REINDEX opt_reindex_option_list reindex_target_relation opt_concurrently qualified_name */
41881 : #line 9295 "gram.y"
41882 : {
41883 : ReindexStmt *n = makeNode(ReindexStmt);
41884 :
41885 : n->kind = (yyvsp[-2].ival);
41886 : n->relation = (yyvsp[0].range);
41887 : n->name = NULL;
41888 : n->params = (yyvsp[-3].list);
41889 : if ((yyvsp[-1].boolean))
41890 : n->params = lappend(n->params,
41891 : makeDefElem("concurrently", NULL, (yylsp[-1])));
41892 : (yyval.node) = (Node *) n;
41893 : }
41894 : #line 41895 "gram.c"
41895 926 : break;
41896 :
41897 114 : case 1264: /* ReindexStmt: REINDEX opt_reindex_option_list SCHEMA opt_concurrently name */
41898 : #line 9308 "gram.y"
41899 : {
41900 : ReindexStmt *n = makeNode(ReindexStmt);
41901 :
41902 : n->kind = REINDEX_OBJECT_SCHEMA;
41903 : n->relation = NULL;
41904 : n->name = (yyvsp[0].str);
41905 : n->params = (yyvsp[-3].list);
41906 : if ((yyvsp[-1].boolean))
41907 : n->params = lappend(n->params,
41908 : makeDefElem("concurrently", NULL, (yylsp[-1])));
41909 : (yyval.node) = (Node *) n;
41910 : }
41911 : #line 41912 "gram.c"
41912 114 : break;
41913 :
41914 68 : case 1265: /* ReindexStmt: REINDEX opt_reindex_option_list reindex_target_all opt_concurrently opt_single_name */
41915 : #line 9321 "gram.y"
41916 : {
41917 : ReindexStmt *n = makeNode(ReindexStmt);
41918 :
41919 : n->kind = (yyvsp[-2].ival);
41920 : n->relation = NULL;
41921 : n->name = (yyvsp[0].str);
41922 : n->params = (yyvsp[-3].list);
41923 : if ((yyvsp[-1].boolean))
41924 : n->params = lappend(n->params,
41925 : makeDefElem("concurrently", NULL, (yylsp[-1])));
41926 : (yyval.node) = (Node *) n;
41927 : }
41928 : #line 41929 "gram.c"
41929 68 : break;
41930 :
41931 398 : case 1266: /* reindex_target_relation: INDEX */
41932 : #line 9335 "gram.y"
41933 : { (yyval.ival) = REINDEX_OBJECT_INDEX; }
41934 : #line 41935 "gram.c"
41935 398 : break;
41936 :
41937 528 : case 1267: /* reindex_target_relation: TABLE */
41938 : #line 9336 "gram.y"
41939 : { (yyval.ival) = REINDEX_OBJECT_TABLE; }
41940 : #line 41941 "gram.c"
41941 528 : break;
41942 :
41943 34 : case 1268: /* reindex_target_all: SYSTEM_P */
41944 : #line 9339 "gram.y"
41945 : { (yyval.ival) = REINDEX_OBJECT_SYSTEM; }
41946 : #line 41947 "gram.c"
41947 34 : break;
41948 :
41949 34 : case 1269: /* reindex_target_all: DATABASE */
41950 : #line 9340 "gram.y"
41951 : { (yyval.ival) = REINDEX_OBJECT_DATABASE; }
41952 : #line 41953 "gram.c"
41953 34 : break;
41954 :
41955 156 : case 1270: /* opt_reindex_option_list: '(' utility_option_list ')' */
41956 : #line 9343 "gram.y"
41957 : { (yyval.list) = (yyvsp[-1].list); }
41958 : #line 41959 "gram.c"
41959 156 : break;
41960 :
41961 952 : case 1271: /* opt_reindex_option_list: %empty */
41962 : #line 9344 "gram.y"
41963 : { (yyval.list) = NULL; }
41964 : #line 41965 "gram.c"
41965 952 : break;
41966 :
41967 12 : case 1272: /* AlterTblSpcStmt: ALTER TABLESPACE name SET reloptions */
41968 : #line 9355 "gram.y"
41969 : {
41970 : AlterTableSpaceOptionsStmt *n =
41971 : makeNode(AlterTableSpaceOptionsStmt);
41972 :
41973 : n->tablespacename = (yyvsp[-2].str);
41974 : n->options = (yyvsp[0].list);
41975 : n->isReset = false;
41976 : (yyval.node) = (Node *) n;
41977 : }
41978 : #line 41979 "gram.c"
41979 12 : break;
41980 :
41981 12 : case 1273: /* AlterTblSpcStmt: ALTER TABLESPACE name RESET reloptions */
41982 : #line 9365 "gram.y"
41983 : {
41984 : AlterTableSpaceOptionsStmt *n =
41985 : makeNode(AlterTableSpaceOptionsStmt);
41986 :
41987 : n->tablespacename = (yyvsp[-2].str);
41988 : n->options = (yyvsp[0].list);
41989 : n->isReset = true;
41990 : (yyval.node) = (Node *) n;
41991 : }
41992 : #line 41993 "gram.c"
41993 12 : break;
41994 :
41995 42 : case 1274: /* RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name */
41996 : #line 9383 "gram.y"
41997 : {
41998 : RenameStmt *n = makeNode(RenameStmt);
41999 :
42000 : n->renameType = OBJECT_AGGREGATE;
42001 : n->object = (Node *) (yyvsp[-3].objwithargs);
42002 : n->newname = (yyvsp[0].str);
42003 : n->missing_ok = false;
42004 : (yyval.node) = (Node *) n;
42005 : }
42006 : #line 42007 "gram.c"
42007 42 : break;
42008 :
42009 18 : case 1275: /* RenameStmt: ALTER COLLATION any_name RENAME TO name */
42010 : #line 9393 "gram.y"
42011 : {
42012 : RenameStmt *n = makeNode(RenameStmt);
42013 :
42014 : n->renameType = OBJECT_COLLATION;
42015 : n->object = (Node *) (yyvsp[-3].list);
42016 : n->newname = (yyvsp[0].str);
42017 : n->missing_ok = false;
42018 : (yyval.node) = (Node *) n;
42019 : }
42020 : #line 42021 "gram.c"
42021 18 : break;
42022 :
42023 24 : case 1276: /* RenameStmt: ALTER CONVERSION_P any_name RENAME TO name */
42024 : #line 9403 "gram.y"
42025 : {
42026 : RenameStmt *n = makeNode(RenameStmt);
42027 :
42028 : n->renameType = OBJECT_CONVERSION;
42029 : n->object = (Node *) (yyvsp[-3].list);
42030 : n->newname = (yyvsp[0].str);
42031 : n->missing_ok = false;
42032 : (yyval.node) = (Node *) n;
42033 : }
42034 : #line 42035 "gram.c"
42035 24 : break;
42036 :
42037 6 : case 1277: /* RenameStmt: ALTER DATABASE name RENAME TO name */
42038 : #line 9413 "gram.y"
42039 : {
42040 : RenameStmt *n = makeNode(RenameStmt);
42041 :
42042 : n->renameType = OBJECT_DATABASE;
42043 : n->subname = (yyvsp[-3].str);
42044 : n->newname = (yyvsp[0].str);
42045 : n->missing_ok = false;
42046 : (yyval.node) = (Node *) n;
42047 : }
42048 : #line 42049 "gram.c"
42049 6 : break;
42050 :
42051 6 : case 1278: /* RenameStmt: ALTER DOMAIN_P any_name RENAME TO name */
42052 : #line 9423 "gram.y"
42053 : {
42054 : RenameStmt *n = makeNode(RenameStmt);
42055 :
42056 : n->renameType = OBJECT_DOMAIN;
42057 : n->object = (Node *) (yyvsp[-3].list);
42058 : n->newname = (yyvsp[0].str);
42059 : n->missing_ok = false;
42060 : (yyval.node) = (Node *) n;
42061 : }
42062 : #line 42063 "gram.c"
42063 6 : break;
42064 :
42065 6 : case 1279: /* RenameStmt: ALTER DOMAIN_P any_name RENAME CONSTRAINT name TO name */
42066 : #line 9433 "gram.y"
42067 : {
42068 : RenameStmt *n = makeNode(RenameStmt);
42069 :
42070 : n->renameType = OBJECT_DOMCONSTRAINT;
42071 : n->object = (Node *) (yyvsp[-5].list);
42072 : n->subname = (yyvsp[-2].str);
42073 : n->newname = (yyvsp[0].str);
42074 : (yyval.node) = (Node *) n;
42075 : }
42076 : #line 42077 "gram.c"
42077 6 : break;
42078 :
42079 24 : case 1280: /* RenameStmt: ALTER FOREIGN DATA_P WRAPPER name RENAME TO name */
42080 : #line 9443 "gram.y"
42081 : {
42082 : RenameStmt *n = makeNode(RenameStmt);
42083 :
42084 : n->renameType = OBJECT_FDW;
42085 : n->object = (Node *) makeString((yyvsp[-3].str));
42086 : n->newname = (yyvsp[0].str);
42087 : n->missing_ok = false;
42088 : (yyval.node) = (Node *) n;
42089 : }
42090 : #line 42091 "gram.c"
42091 24 : break;
42092 :
42093 24 : case 1281: /* RenameStmt: ALTER FUNCTION function_with_argtypes RENAME TO name */
42094 : #line 9453 "gram.y"
42095 : {
42096 : RenameStmt *n = makeNode(RenameStmt);
42097 :
42098 : n->renameType = OBJECT_FUNCTION;
42099 : n->object = (Node *) (yyvsp[-3].objwithargs);
42100 : n->newname = (yyvsp[0].str);
42101 : n->missing_ok = false;
42102 : (yyval.node) = (Node *) n;
42103 : }
42104 : #line 42105 "gram.c"
42105 24 : break;
42106 :
42107 0 : case 1282: /* RenameStmt: ALTER GROUP_P RoleId RENAME TO RoleId */
42108 : #line 9463 "gram.y"
42109 : {
42110 : RenameStmt *n = makeNode(RenameStmt);
42111 :
42112 : n->renameType = OBJECT_ROLE;
42113 : n->subname = (yyvsp[-3].str);
42114 : n->newname = (yyvsp[0].str);
42115 : n->missing_ok = false;
42116 : (yyval.node) = (Node *) n;
42117 : }
42118 : #line 42119 "gram.c"
42119 0 : break;
42120 :
42121 18 : case 1283: /* RenameStmt: ALTER opt_procedural LANGUAGE name RENAME TO name */
42122 : #line 9473 "gram.y"
42123 : {
42124 : RenameStmt *n = makeNode(RenameStmt);
42125 :
42126 : n->renameType = OBJECT_LANGUAGE;
42127 : n->object = (Node *) makeString((yyvsp[-3].str));
42128 : n->newname = (yyvsp[0].str);
42129 : n->missing_ok = false;
42130 : (yyval.node) = (Node *) n;
42131 : }
42132 : #line 42133 "gram.c"
42133 18 : break;
42134 :
42135 24 : case 1284: /* RenameStmt: ALTER OPERATOR CLASS any_name USING name RENAME TO name */
42136 : #line 9483 "gram.y"
42137 : {
42138 : RenameStmt *n = makeNode(RenameStmt);
42139 :
42140 : n->renameType = OBJECT_OPCLASS;
42141 : n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list));
42142 : n->newname = (yyvsp[0].str);
42143 : n->missing_ok = false;
42144 : (yyval.node) = (Node *) n;
42145 : }
42146 : #line 42147 "gram.c"
42147 24 : break;
42148 :
42149 24 : case 1285: /* RenameStmt: ALTER OPERATOR FAMILY any_name USING name RENAME TO name */
42150 : #line 9493 "gram.y"
42151 : {
42152 : RenameStmt *n = makeNode(RenameStmt);
42153 :
42154 : n->renameType = OBJECT_OPFAMILY;
42155 : n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list));
42156 : n->newname = (yyvsp[0].str);
42157 : n->missing_ok = false;
42158 : (yyval.node) = (Node *) n;
42159 : }
42160 : #line 42161 "gram.c"
42161 24 : break;
42162 :
42163 18 : case 1286: /* RenameStmt: ALTER POLICY name ON qualified_name RENAME TO name */
42164 : #line 9503 "gram.y"
42165 : {
42166 : RenameStmt *n = makeNode(RenameStmt);
42167 :
42168 : n->renameType = OBJECT_POLICY;
42169 : n->relation = (yyvsp[-3].range);
42170 : n->subname = (yyvsp[-5].str);
42171 : n->newname = (yyvsp[0].str);
42172 : n->missing_ok = false;
42173 : (yyval.node) = (Node *) n;
42174 : }
42175 : #line 42176 "gram.c"
42176 18 : break;
42177 :
42178 0 : case 1287: /* RenameStmt: ALTER POLICY IF_P EXISTS name ON qualified_name RENAME TO name */
42179 : #line 9514 "gram.y"
42180 : {
42181 : RenameStmt *n = makeNode(RenameStmt);
42182 :
42183 : n->renameType = OBJECT_POLICY;
42184 : n->relation = (yyvsp[-3].range);
42185 : n->subname = (yyvsp[-5].str);
42186 : n->newname = (yyvsp[0].str);
42187 : n->missing_ok = true;
42188 : (yyval.node) = (Node *) n;
42189 : }
42190 : #line 42191 "gram.c"
42191 0 : break;
42192 :
42193 0 : case 1288: /* RenameStmt: ALTER PROCEDURE function_with_argtypes RENAME TO name */
42194 : #line 9525 "gram.y"
42195 : {
42196 : RenameStmt *n = makeNode(RenameStmt);
42197 :
42198 : n->renameType = OBJECT_PROCEDURE;
42199 : n->object = (Node *) (yyvsp[-3].objwithargs);
42200 : n->newname = (yyvsp[0].str);
42201 : n->missing_ok = false;
42202 : (yyval.node) = (Node *) n;
42203 : }
42204 : #line 42205 "gram.c"
42205 0 : break;
42206 :
42207 42 : case 1289: /* RenameStmt: ALTER PUBLICATION name RENAME TO name */
42208 : #line 9535 "gram.y"
42209 : {
42210 : RenameStmt *n = makeNode(RenameStmt);
42211 :
42212 : n->renameType = OBJECT_PUBLICATION;
42213 : n->object = (Node *) makeString((yyvsp[-3].str));
42214 : n->newname = (yyvsp[0].str);
42215 : n->missing_ok = false;
42216 : (yyval.node) = (Node *) n;
42217 : }
42218 : #line 42219 "gram.c"
42219 42 : break;
42220 :
42221 24 : case 1290: /* RenameStmt: ALTER ROUTINE function_with_argtypes RENAME TO name */
42222 : #line 9545 "gram.y"
42223 : {
42224 : RenameStmt *n = makeNode(RenameStmt);
42225 :
42226 : n->renameType = OBJECT_ROUTINE;
42227 : n->object = (Node *) (yyvsp[-3].objwithargs);
42228 : n->newname = (yyvsp[0].str);
42229 : n->missing_ok = false;
42230 : (yyval.node) = (Node *) n;
42231 : }
42232 : #line 42233 "gram.c"
42233 24 : break;
42234 :
42235 20 : case 1291: /* RenameStmt: ALTER SCHEMA name RENAME TO name */
42236 : #line 9555 "gram.y"
42237 : {
42238 : RenameStmt *n = makeNode(RenameStmt);
42239 :
42240 : n->renameType = OBJECT_SCHEMA;
42241 : n->subname = (yyvsp[-3].str);
42242 : n->newname = (yyvsp[0].str);
42243 : n->missing_ok = false;
42244 : (yyval.node) = (Node *) n;
42245 : }
42246 : #line 42247 "gram.c"
42247 20 : break;
42248 :
42249 24 : case 1292: /* RenameStmt: ALTER SERVER name RENAME TO name */
42250 : #line 9565 "gram.y"
42251 : {
42252 : RenameStmt *n = makeNode(RenameStmt);
42253 :
42254 : n->renameType = OBJECT_FOREIGN_SERVER;
42255 : n->object = (Node *) makeString((yyvsp[-3].str));
42256 : n->newname = (yyvsp[0].str);
42257 : n->missing_ok = false;
42258 : (yyval.node) = (Node *) n;
42259 : }
42260 : #line 42261 "gram.c"
42261 24 : break;
42262 :
42263 38 : case 1293: /* RenameStmt: ALTER SUBSCRIPTION name RENAME TO name */
42264 : #line 9575 "gram.y"
42265 : {
42266 : RenameStmt *n = makeNode(RenameStmt);
42267 :
42268 : n->renameType = OBJECT_SUBSCRIPTION;
42269 : n->object = (Node *) makeString((yyvsp[-3].str));
42270 : n->newname = (yyvsp[0].str);
42271 : n->missing_ok = false;
42272 : (yyval.node) = (Node *) n;
42273 : }
42274 : #line 42275 "gram.c"
42275 38 : break;
42276 :
42277 286 : case 1294: /* RenameStmt: ALTER TABLE relation_expr RENAME TO name */
42278 : #line 9585 "gram.y"
42279 : {
42280 : RenameStmt *n = makeNode(RenameStmt);
42281 :
42282 : n->renameType = OBJECT_TABLE;
42283 : n->relation = (yyvsp[-3].range);
42284 : n->subname = NULL;
42285 : n->newname = (yyvsp[0].str);
42286 : n->missing_ok = false;
42287 : (yyval.node) = (Node *) n;
42288 : }
42289 : #line 42290 "gram.c"
42290 286 : break;
42291 :
42292 0 : case 1295: /* RenameStmt: ALTER TABLE IF_P EXISTS relation_expr RENAME TO name */
42293 : #line 9596 "gram.y"
42294 : {
42295 : RenameStmt *n = makeNode(RenameStmt);
42296 :
42297 : n->renameType = OBJECT_TABLE;
42298 : n->relation = (yyvsp[-3].range);
42299 : n->subname = NULL;
42300 : n->newname = (yyvsp[0].str);
42301 : n->missing_ok = true;
42302 : (yyval.node) = (Node *) n;
42303 : }
42304 : #line 42305 "gram.c"
42305 0 : break;
42306 :
42307 2 : case 1296: /* RenameStmt: ALTER SEQUENCE qualified_name RENAME TO name */
42308 : #line 9607 "gram.y"
42309 : {
42310 : RenameStmt *n = makeNode(RenameStmt);
42311 :
42312 : n->renameType = OBJECT_SEQUENCE;
42313 : n->relation = (yyvsp[-3].range);
42314 : n->subname = NULL;
42315 : n->newname = (yyvsp[0].str);
42316 : n->missing_ok = false;
42317 : (yyval.node) = (Node *) n;
42318 : }
42319 : #line 42320 "gram.c"
42320 2 : break;
42321 :
42322 0 : case 1297: /* RenameStmt: ALTER SEQUENCE IF_P EXISTS qualified_name RENAME TO name */
42323 : #line 9618 "gram.y"
42324 : {
42325 : RenameStmt *n = makeNode(RenameStmt);
42326 :
42327 : n->renameType = OBJECT_SEQUENCE;
42328 : n->relation = (yyvsp[-3].range);
42329 : n->subname = NULL;
42330 : n->newname = (yyvsp[0].str);
42331 : n->missing_ok = true;
42332 : (yyval.node) = (Node *) n;
42333 : }
42334 : #line 42335 "gram.c"
42335 0 : break;
42336 :
42337 6 : case 1298: /* RenameStmt: ALTER VIEW qualified_name RENAME TO name */
42338 : #line 9629 "gram.y"
42339 : {
42340 : RenameStmt *n = makeNode(RenameStmt);
42341 :
42342 : n->renameType = OBJECT_VIEW;
42343 : n->relation = (yyvsp[-3].range);
42344 : n->subname = NULL;
42345 : n->newname = (yyvsp[0].str);
42346 : n->missing_ok = false;
42347 : (yyval.node) = (Node *) n;
42348 : }
42349 : #line 42350 "gram.c"
42350 6 : break;
42351 :
42352 0 : case 1299: /* RenameStmt: ALTER VIEW IF_P EXISTS qualified_name RENAME TO name */
42353 : #line 9640 "gram.y"
42354 : {
42355 : RenameStmt *n = makeNode(RenameStmt);
42356 :
42357 : n->renameType = OBJECT_VIEW;
42358 : n->relation = (yyvsp[-3].range);
42359 : n->subname = NULL;
42360 : n->newname = (yyvsp[0].str);
42361 : n->missing_ok = true;
42362 : (yyval.node) = (Node *) n;
42363 : }
42364 : #line 42365 "gram.c"
42365 0 : break;
42366 :
42367 0 : case 1300: /* RenameStmt: ALTER MATERIALIZED VIEW qualified_name RENAME TO name */
42368 : #line 9651 "gram.y"
42369 : {
42370 : RenameStmt *n = makeNode(RenameStmt);
42371 :
42372 : n->renameType = OBJECT_MATVIEW;
42373 : n->relation = (yyvsp[-3].range);
42374 : n->subname = NULL;
42375 : n->newname = (yyvsp[0].str);
42376 : n->missing_ok = false;
42377 : (yyval.node) = (Node *) n;
42378 : }
42379 : #line 42380 "gram.c"
42380 0 : break;
42381 :
42382 0 : case 1301: /* RenameStmt: ALTER MATERIALIZED VIEW IF_P EXISTS qualified_name RENAME TO name */
42383 : #line 9662 "gram.y"
42384 : {
42385 : RenameStmt *n = makeNode(RenameStmt);
42386 :
42387 : n->renameType = OBJECT_MATVIEW;
42388 : n->relation = (yyvsp[-3].range);
42389 : n->subname = NULL;
42390 : n->newname = (yyvsp[0].str);
42391 : n->missing_ok = true;
42392 : (yyval.node) = (Node *) n;
42393 : }
42394 : #line 42395 "gram.c"
42395 0 : break;
42396 :
42397 192 : case 1302: /* RenameStmt: ALTER INDEX qualified_name RENAME TO name */
42398 : #line 9673 "gram.y"
42399 : {
42400 : RenameStmt *n = makeNode(RenameStmt);
42401 :
42402 : n->renameType = OBJECT_INDEX;
42403 : n->relation = (yyvsp[-3].range);
42404 : n->subname = NULL;
42405 : n->newname = (yyvsp[0].str);
42406 : n->missing_ok = false;
42407 : (yyval.node) = (Node *) n;
42408 : }
42409 : #line 42410 "gram.c"
42410 192 : break;
42411 :
42412 12 : case 1303: /* RenameStmt: ALTER INDEX IF_P EXISTS qualified_name RENAME TO name */
42413 : #line 9684 "gram.y"
42414 : {
42415 : RenameStmt *n = makeNode(RenameStmt);
42416 :
42417 : n->renameType = OBJECT_INDEX;
42418 : n->relation = (yyvsp[-3].range);
42419 : n->subname = NULL;
42420 : n->newname = (yyvsp[0].str);
42421 : n->missing_ok = true;
42422 : (yyval.node) = (Node *) n;
42423 : }
42424 : #line 42425 "gram.c"
42425 12 : break;
42426 :
42427 6 : case 1304: /* RenameStmt: ALTER FOREIGN TABLE relation_expr RENAME TO name */
42428 : #line 9695 "gram.y"
42429 : {
42430 : RenameStmt *n = makeNode(RenameStmt);
42431 :
42432 : n->renameType = OBJECT_FOREIGN_TABLE;
42433 : n->relation = (yyvsp[-3].range);
42434 : n->subname = NULL;
42435 : n->newname = (yyvsp[0].str);
42436 : n->missing_ok = false;
42437 : (yyval.node) = (Node *) n;
42438 : }
42439 : #line 42440 "gram.c"
42440 6 : break;
42441 :
42442 6 : case 1305: /* RenameStmt: ALTER FOREIGN TABLE IF_P EXISTS relation_expr RENAME TO name */
42443 : #line 9706 "gram.y"
42444 : {
42445 : RenameStmt *n = makeNode(RenameStmt);
42446 :
42447 : n->renameType = OBJECT_FOREIGN_TABLE;
42448 : n->relation = (yyvsp[-3].range);
42449 : n->subname = NULL;
42450 : n->newname = (yyvsp[0].str);
42451 : n->missing_ok = true;
42452 : (yyval.node) = (Node *) n;
42453 : }
42454 : #line 42455 "gram.c"
42455 6 : break;
42456 :
42457 238 : case 1306: /* RenameStmt: ALTER TABLE relation_expr RENAME opt_column name TO name */
42458 : #line 9717 "gram.y"
42459 : {
42460 : RenameStmt *n = makeNode(RenameStmt);
42461 :
42462 : n->renameType = OBJECT_COLUMN;
42463 : n->relationType = OBJECT_TABLE;
42464 : n->relation = (yyvsp[-5].range);
42465 : n->subname = (yyvsp[-2].str);
42466 : n->newname = (yyvsp[0].str);
42467 : n->missing_ok = false;
42468 : (yyval.node) = (Node *) n;
42469 : }
42470 : #line 42471 "gram.c"
42471 238 : break;
42472 :
42473 24 : case 1307: /* RenameStmt: ALTER TABLE IF_P EXISTS relation_expr RENAME opt_column name TO name */
42474 : #line 9729 "gram.y"
42475 : {
42476 : RenameStmt *n = makeNode(RenameStmt);
42477 :
42478 : n->renameType = OBJECT_COLUMN;
42479 : n->relationType = OBJECT_TABLE;
42480 : n->relation = (yyvsp[-5].range);
42481 : n->subname = (yyvsp[-2].str);
42482 : n->newname = (yyvsp[0].str);
42483 : n->missing_ok = true;
42484 : (yyval.node) = (Node *) n;
42485 : }
42486 : #line 42487 "gram.c"
42487 24 : break;
42488 :
42489 18 : case 1308: /* RenameStmt: ALTER VIEW qualified_name RENAME opt_column name TO name */
42490 : #line 9741 "gram.y"
42491 : {
42492 : RenameStmt *n = makeNode(RenameStmt);
42493 :
42494 : n->renameType = OBJECT_COLUMN;
42495 : n->relationType = OBJECT_VIEW;
42496 : n->relation = (yyvsp[-5].range);
42497 : n->subname = (yyvsp[-2].str);
42498 : n->newname = (yyvsp[0].str);
42499 : n->missing_ok = false;
42500 : (yyval.node) = (Node *) n;
42501 : }
42502 : #line 42503 "gram.c"
42503 18 : break;
42504 :
42505 0 : case 1309: /* RenameStmt: ALTER VIEW IF_P EXISTS qualified_name RENAME opt_column name TO name */
42506 : #line 9753 "gram.y"
42507 : {
42508 : RenameStmt *n = makeNode(RenameStmt);
42509 :
42510 : n->renameType = OBJECT_COLUMN;
42511 : n->relationType = OBJECT_VIEW;
42512 : n->relation = (yyvsp[-5].range);
42513 : n->subname = (yyvsp[-2].str);
42514 : n->newname = (yyvsp[0].str);
42515 : n->missing_ok = true;
42516 : (yyval.node) = (Node *) n;
42517 : }
42518 : #line 42519 "gram.c"
42519 0 : break;
42520 :
42521 0 : case 1310: /* RenameStmt: ALTER MATERIALIZED VIEW qualified_name RENAME opt_column name TO name */
42522 : #line 9765 "gram.y"
42523 : {
42524 : RenameStmt *n = makeNode(RenameStmt);
42525 :
42526 : n->renameType = OBJECT_COLUMN;
42527 : n->relationType = OBJECT_MATVIEW;
42528 : n->relation = (yyvsp[-5].range);
42529 : n->subname = (yyvsp[-2].str);
42530 : n->newname = (yyvsp[0].str);
42531 : n->missing_ok = false;
42532 : (yyval.node) = (Node *) n;
42533 : }
42534 : #line 42535 "gram.c"
42535 0 : break;
42536 :
42537 0 : case 1311: /* RenameStmt: ALTER MATERIALIZED VIEW IF_P EXISTS qualified_name RENAME opt_column name TO name */
42538 : #line 9777 "gram.y"
42539 : {
42540 : RenameStmt *n = makeNode(RenameStmt);
42541 :
42542 : n->renameType = OBJECT_COLUMN;
42543 : n->relationType = OBJECT_MATVIEW;
42544 : n->relation = (yyvsp[-5].range);
42545 : n->subname = (yyvsp[-2].str);
42546 : n->newname = (yyvsp[0].str);
42547 : n->missing_ok = true;
42548 : (yyval.node) = (Node *) n;
42549 : }
42550 : #line 42551 "gram.c"
42551 0 : break;
42552 :
42553 72 : case 1312: /* RenameStmt: ALTER TABLE relation_expr RENAME CONSTRAINT name TO name */
42554 : #line 9789 "gram.y"
42555 : {
42556 : RenameStmt *n = makeNode(RenameStmt);
42557 :
42558 : n->renameType = OBJECT_TABCONSTRAINT;
42559 : n->relation = (yyvsp[-5].range);
42560 : n->subname = (yyvsp[-2].str);
42561 : n->newname = (yyvsp[0].str);
42562 : n->missing_ok = false;
42563 : (yyval.node) = (Node *) n;
42564 : }
42565 : #line 42566 "gram.c"
42566 72 : break;
42567 :
42568 6 : case 1313: /* RenameStmt: ALTER TABLE IF_P EXISTS relation_expr RENAME CONSTRAINT name TO name */
42569 : #line 9800 "gram.y"
42570 : {
42571 : RenameStmt *n = makeNode(RenameStmt);
42572 :
42573 : n->renameType = OBJECT_TABCONSTRAINT;
42574 : n->relation = (yyvsp[-5].range);
42575 : n->subname = (yyvsp[-2].str);
42576 : n->newname = (yyvsp[0].str);
42577 : n->missing_ok = true;
42578 : (yyval.node) = (Node *) n;
42579 : }
42580 : #line 42581 "gram.c"
42581 6 : break;
42582 :
42583 6 : case 1314: /* RenameStmt: ALTER FOREIGN TABLE relation_expr RENAME opt_column name TO name */
42584 : #line 9811 "gram.y"
42585 : {
42586 : RenameStmt *n = makeNode(RenameStmt);
42587 :
42588 : n->renameType = OBJECT_COLUMN;
42589 : n->relationType = OBJECT_FOREIGN_TABLE;
42590 : n->relation = (yyvsp[-5].range);
42591 : n->subname = (yyvsp[-2].str);
42592 : n->newname = (yyvsp[0].str);
42593 : n->missing_ok = false;
42594 : (yyval.node) = (Node *) n;
42595 : }
42596 : #line 42597 "gram.c"
42597 6 : break;
42598 :
42599 6 : case 1315: /* RenameStmt: ALTER FOREIGN TABLE IF_P EXISTS relation_expr RENAME opt_column name TO name */
42600 : #line 9823 "gram.y"
42601 : {
42602 : RenameStmt *n = makeNode(RenameStmt);
42603 :
42604 : n->renameType = OBJECT_COLUMN;
42605 : n->relationType = OBJECT_FOREIGN_TABLE;
42606 : n->relation = (yyvsp[-5].range);
42607 : n->subname = (yyvsp[-2].str);
42608 : n->newname = (yyvsp[0].str);
42609 : n->missing_ok = true;
42610 : (yyval.node) = (Node *) n;
42611 : }
42612 : #line 42613 "gram.c"
42613 6 : break;
42614 :
42615 34 : case 1316: /* RenameStmt: ALTER RULE name ON qualified_name RENAME TO name */
42616 : #line 9835 "gram.y"
42617 : {
42618 : RenameStmt *n = makeNode(RenameStmt);
42619 :
42620 : n->renameType = OBJECT_RULE;
42621 : n->relation = (yyvsp[-3].range);
42622 : n->subname = (yyvsp[-5].str);
42623 : n->newname = (yyvsp[0].str);
42624 : n->missing_ok = false;
42625 : (yyval.node) = (Node *) n;
42626 : }
42627 : #line 42628 "gram.c"
42628 34 : break;
42629 :
42630 40 : case 1317: /* RenameStmt: ALTER TRIGGER name ON qualified_name RENAME TO name */
42631 : #line 9846 "gram.y"
42632 : {
42633 : RenameStmt *n = makeNode(RenameStmt);
42634 :
42635 : n->renameType = OBJECT_TRIGGER;
42636 : n->relation = (yyvsp[-3].range);
42637 : n->subname = (yyvsp[-5].str);
42638 : n->newname = (yyvsp[0].str);
42639 : n->missing_ok = false;
42640 : (yyval.node) = (Node *) n;
42641 : }
42642 : #line 42643 "gram.c"
42643 40 : break;
42644 :
42645 12 : case 1318: /* RenameStmt: ALTER EVENT TRIGGER name RENAME TO name */
42646 : #line 9857 "gram.y"
42647 : {
42648 : RenameStmt *n = makeNode(RenameStmt);
42649 :
42650 : n->renameType = OBJECT_EVENT_TRIGGER;
42651 : n->object = (Node *) makeString((yyvsp[-3].str));
42652 : n->newname = (yyvsp[0].str);
42653 : (yyval.node) = (Node *) n;
42654 : }
42655 : #line 42656 "gram.c"
42656 12 : break;
42657 :
42658 30 : case 1319: /* RenameStmt: ALTER ROLE RoleId RENAME TO RoleId */
42659 : #line 9866 "gram.y"
42660 : {
42661 : RenameStmt *n = makeNode(RenameStmt);
42662 :
42663 : n->renameType = OBJECT_ROLE;
42664 : n->subname = (yyvsp[-3].str);
42665 : n->newname = (yyvsp[0].str);
42666 : n->missing_ok = false;
42667 : (yyval.node) = (Node *) n;
42668 : }
42669 : #line 42670 "gram.c"
42670 30 : break;
42671 :
42672 0 : case 1320: /* RenameStmt: ALTER USER RoleId RENAME TO RoleId */
42673 : #line 9876 "gram.y"
42674 : {
42675 : RenameStmt *n = makeNode(RenameStmt);
42676 :
42677 : n->renameType = OBJECT_ROLE;
42678 : n->subname = (yyvsp[-3].str);
42679 : n->newname = (yyvsp[0].str);
42680 : n->missing_ok = false;
42681 : (yyval.node) = (Node *) n;
42682 : }
42683 : #line 42684 "gram.c"
42684 0 : break;
42685 :
42686 6 : case 1321: /* RenameStmt: ALTER TABLESPACE name RENAME TO name */
42687 : #line 9886 "gram.y"
42688 : {
42689 : RenameStmt *n = makeNode(RenameStmt);
42690 :
42691 : n->renameType = OBJECT_TABLESPACE;
42692 : n->subname = (yyvsp[-3].str);
42693 : n->newname = (yyvsp[0].str);
42694 : n->missing_ok = false;
42695 : (yyval.node) = (Node *) n;
42696 : }
42697 : #line 42698 "gram.c"
42698 6 : break;
42699 :
42700 30 : case 1322: /* RenameStmt: ALTER STATISTICS any_name RENAME TO name */
42701 : #line 9896 "gram.y"
42702 : {
42703 : RenameStmt *n = makeNode(RenameStmt);
42704 :
42705 : n->renameType = OBJECT_STATISTIC_EXT;
42706 : n->object = (Node *) (yyvsp[-3].list);
42707 : n->newname = (yyvsp[0].str);
42708 : n->missing_ok = false;
42709 : (yyval.node) = (Node *) n;
42710 : }
42711 : #line 42712 "gram.c"
42712 30 : break;
42713 :
42714 12 : case 1323: /* RenameStmt: ALTER TEXT_P SEARCH PARSER any_name RENAME TO name */
42715 : #line 9906 "gram.y"
42716 : {
42717 : RenameStmt *n = makeNode(RenameStmt);
42718 :
42719 : n->renameType = OBJECT_TSPARSER;
42720 : n->object = (Node *) (yyvsp[-3].list);
42721 : n->newname = (yyvsp[0].str);
42722 : n->missing_ok = false;
42723 : (yyval.node) = (Node *) n;
42724 : }
42725 : #line 42726 "gram.c"
42726 12 : break;
42727 :
42728 24 : case 1324: /* RenameStmt: ALTER TEXT_P SEARCH DICTIONARY any_name RENAME TO name */
42729 : #line 9916 "gram.y"
42730 : {
42731 : RenameStmt *n = makeNode(RenameStmt);
42732 :
42733 : n->renameType = OBJECT_TSDICTIONARY;
42734 : n->object = (Node *) (yyvsp[-3].list);
42735 : n->newname = (yyvsp[0].str);
42736 : n->missing_ok = false;
42737 : (yyval.node) = (Node *) n;
42738 : }
42739 : #line 42740 "gram.c"
42740 24 : break;
42741 :
42742 12 : case 1325: /* RenameStmt: ALTER TEXT_P SEARCH TEMPLATE any_name RENAME TO name */
42743 : #line 9926 "gram.y"
42744 : {
42745 : RenameStmt *n = makeNode(RenameStmt);
42746 :
42747 : n->renameType = OBJECT_TSTEMPLATE;
42748 : n->object = (Node *) (yyvsp[-3].list);
42749 : n->newname = (yyvsp[0].str);
42750 : n->missing_ok = false;
42751 : (yyval.node) = (Node *) n;
42752 : }
42753 : #line 42754 "gram.c"
42754 12 : break;
42755 :
42756 24 : case 1326: /* RenameStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name RENAME TO name */
42757 : #line 9936 "gram.y"
42758 : {
42759 : RenameStmt *n = makeNode(RenameStmt);
42760 :
42761 : n->renameType = OBJECT_TSCONFIGURATION;
42762 : n->object = (Node *) (yyvsp[-3].list);
42763 : n->newname = (yyvsp[0].str);
42764 : n->missing_ok = false;
42765 : (yyval.node) = (Node *) n;
42766 : }
42767 : #line 42768 "gram.c"
42768 24 : break;
42769 :
42770 26 : case 1327: /* RenameStmt: ALTER TYPE_P any_name RENAME TO name */
42771 : #line 9946 "gram.y"
42772 : {
42773 : RenameStmt *n = makeNode(RenameStmt);
42774 :
42775 : n->renameType = OBJECT_TYPE;
42776 : n->object = (Node *) (yyvsp[-3].list);
42777 : n->newname = (yyvsp[0].str);
42778 : n->missing_ok = false;
42779 : (yyval.node) = (Node *) n;
42780 : }
42781 : #line 42782 "gram.c"
42782 26 : break;
42783 :
42784 24 : case 1328: /* RenameStmt: ALTER TYPE_P any_name RENAME ATTRIBUTE name TO name opt_drop_behavior */
42785 : #line 9956 "gram.y"
42786 : {
42787 : RenameStmt *n = makeNode(RenameStmt);
42788 :
42789 : n->renameType = OBJECT_ATTRIBUTE;
42790 : n->relationType = OBJECT_TYPE;
42791 : n->relation = makeRangeVarFromAnyName((yyvsp[-6].list), (yylsp[-6]), yyscanner);
42792 : n->subname = (yyvsp[-3].str);
42793 : n->newname = (yyvsp[-1].str);
42794 : n->behavior = (yyvsp[0].dbehavior);
42795 : n->missing_ok = false;
42796 : (yyval.node) = (Node *) n;
42797 : }
42798 : #line 42799 "gram.c"
42799 24 : break;
42800 :
42801 184 : case 1331: /* opt_set_data: SET DATA_P */
42802 : #line 9974 "gram.y"
42803 : { (yyval.ival) = 1; }
42804 : #line 42805 "gram.c"
42805 184 : break;
42806 :
42807 884 : case 1332: /* opt_set_data: %empty */
42808 : #line 9975 "gram.y"
42809 : { (yyval.ival) = 0; }
42810 : #line 42811 "gram.c"
42811 884 : break;
42812 :
42813 12 : case 1333: /* AlterObjectDependsStmt: ALTER FUNCTION function_with_argtypes opt_no DEPENDS ON EXTENSION name */
42814 : #line 9986 "gram.y"
42815 : {
42816 : AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt);
42817 :
42818 : n->objectType = OBJECT_FUNCTION;
42819 : n->object = (Node *) (yyvsp[-5].objwithargs);
42820 : n->extname = makeString((yyvsp[0].str));
42821 : n->remove = (yyvsp[-4].boolean);
42822 : (yyval.node) = (Node *) n;
42823 : }
42824 : #line 42825 "gram.c"
42825 12 : break;
42826 :
42827 0 : case 1334: /* AlterObjectDependsStmt: ALTER PROCEDURE function_with_argtypes opt_no DEPENDS ON EXTENSION name */
42828 : #line 9996 "gram.y"
42829 : {
42830 : AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt);
42831 :
42832 : n->objectType = OBJECT_PROCEDURE;
42833 : n->object = (Node *) (yyvsp[-5].objwithargs);
42834 : n->extname = makeString((yyvsp[0].str));
42835 : n->remove = (yyvsp[-4].boolean);
42836 : (yyval.node) = (Node *) n;
42837 : }
42838 : #line 42839 "gram.c"
42839 0 : break;
42840 :
42841 0 : case 1335: /* AlterObjectDependsStmt: ALTER ROUTINE function_with_argtypes opt_no DEPENDS ON EXTENSION name */
42842 : #line 10006 "gram.y"
42843 : {
42844 : AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt);
42845 :
42846 : n->objectType = OBJECT_ROUTINE;
42847 : n->object = (Node *) (yyvsp[-5].objwithargs);
42848 : n->extname = makeString((yyvsp[0].str));
42849 : n->remove = (yyvsp[-4].boolean);
42850 : (yyval.node) = (Node *) n;
42851 : }
42852 : #line 42853 "gram.c"
42853 0 : break;
42854 :
42855 10 : case 1336: /* AlterObjectDependsStmt: ALTER TRIGGER name ON qualified_name opt_no DEPENDS ON EXTENSION name */
42856 : #line 10016 "gram.y"
42857 : {
42858 : AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt);
42859 :
42860 : n->objectType = OBJECT_TRIGGER;
42861 : n->relation = (yyvsp[-5].range);
42862 : n->object = (Node *) list_make1(makeString((yyvsp[-7].str)));
42863 : n->extname = makeString((yyvsp[0].str));
42864 : n->remove = (yyvsp[-4].boolean);
42865 : (yyval.node) = (Node *) n;
42866 : }
42867 : #line 42868 "gram.c"
42868 10 : break;
42869 :
42870 10 : case 1337: /* AlterObjectDependsStmt: ALTER MATERIALIZED VIEW qualified_name opt_no DEPENDS ON EXTENSION name */
42871 : #line 10027 "gram.y"
42872 : {
42873 : AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt);
42874 :
42875 : n->objectType = OBJECT_MATVIEW;
42876 : n->relation = (yyvsp[-5].range);
42877 : n->extname = makeString((yyvsp[0].str));
42878 : n->remove = (yyvsp[-4].boolean);
42879 : (yyval.node) = (Node *) n;
42880 : }
42881 : #line 42882 "gram.c"
42882 10 : break;
42883 :
42884 14 : case 1338: /* AlterObjectDependsStmt: ALTER INDEX qualified_name opt_no DEPENDS ON EXTENSION name */
42885 : #line 10037 "gram.y"
42886 : {
42887 : AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt);
42888 :
42889 : n->objectType = OBJECT_INDEX;
42890 : n->relation = (yyvsp[-5].range);
42891 : n->extname = makeString((yyvsp[0].str));
42892 : n->remove = (yyvsp[-4].boolean);
42893 : (yyval.node) = (Node *) n;
42894 : }
42895 : #line 42896 "gram.c"
42896 14 : break;
42897 :
42898 8 : case 1339: /* opt_no: NO */
42899 : #line 10048 "gram.y"
42900 : { (yyval.boolean) = true; }
42901 : #line 42902 "gram.c"
42902 8 : break;
42903 :
42904 38 : case 1340: /* opt_no: %empty */
42905 : #line 10049 "gram.y"
42906 : { (yyval.boolean) = false; }
42907 : #line 42908 "gram.c"
42908 38 : break;
42909 :
42910 24 : case 1341: /* AlterObjectSchemaStmt: ALTER AGGREGATE aggregate_with_argtypes SET SCHEMA name */
42911 : #line 10060 "gram.y"
42912 : {
42913 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
42914 :
42915 : n->objectType = OBJECT_AGGREGATE;
42916 : n->object = (Node *) (yyvsp[-3].objwithargs);
42917 : n->newschema = (yyvsp[0].str);
42918 : n->missing_ok = false;
42919 : (yyval.node) = (Node *) n;
42920 : }
42921 : #line 42922 "gram.c"
42922 24 : break;
42923 :
42924 6 : case 1342: /* AlterObjectSchemaStmt: ALTER COLLATION any_name SET SCHEMA name */
42925 : #line 10070 "gram.y"
42926 : {
42927 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
42928 :
42929 : n->objectType = OBJECT_COLLATION;
42930 : n->object = (Node *) (yyvsp[-3].list);
42931 : n->newschema = (yyvsp[0].str);
42932 : n->missing_ok = false;
42933 : (yyval.node) = (Node *) n;
42934 : }
42935 : #line 42936 "gram.c"
42936 6 : break;
42937 :
42938 24 : case 1343: /* AlterObjectSchemaStmt: ALTER CONVERSION_P any_name SET SCHEMA name */
42939 : #line 10080 "gram.y"
42940 : {
42941 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
42942 :
42943 : n->objectType = OBJECT_CONVERSION;
42944 : n->object = (Node *) (yyvsp[-3].list);
42945 : n->newschema = (yyvsp[0].str);
42946 : n->missing_ok = false;
42947 : (yyval.node) = (Node *) n;
42948 : }
42949 : #line 42950 "gram.c"
42950 24 : break;
42951 :
42952 6 : case 1344: /* AlterObjectSchemaStmt: ALTER DOMAIN_P any_name SET SCHEMA name */
42953 : #line 10090 "gram.y"
42954 : {
42955 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
42956 :
42957 : n->objectType = OBJECT_DOMAIN;
42958 : n->object = (Node *) (yyvsp[-3].list);
42959 : n->newschema = (yyvsp[0].str);
42960 : n->missing_ok = false;
42961 : (yyval.node) = (Node *) n;
42962 : }
42963 : #line 42964 "gram.c"
42964 6 : break;
42965 :
42966 12 : case 1345: /* AlterObjectSchemaStmt: ALTER EXTENSION name SET SCHEMA name */
42967 : #line 10100 "gram.y"
42968 : {
42969 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
42970 :
42971 : n->objectType = OBJECT_EXTENSION;
42972 : n->object = (Node *) makeString((yyvsp[-3].str));
42973 : n->newschema = (yyvsp[0].str);
42974 : n->missing_ok = false;
42975 : (yyval.node) = (Node *) n;
42976 : }
42977 : #line 42978 "gram.c"
42978 12 : break;
42979 :
42980 42 : case 1346: /* AlterObjectSchemaStmt: ALTER FUNCTION function_with_argtypes SET SCHEMA name */
42981 : #line 10110 "gram.y"
42982 : {
42983 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
42984 :
42985 : n->objectType = OBJECT_FUNCTION;
42986 : n->object = (Node *) (yyvsp[-3].objwithargs);
42987 : n->newschema = (yyvsp[0].str);
42988 : n->missing_ok = false;
42989 : (yyval.node) = (Node *) n;
42990 : }
42991 : #line 42992 "gram.c"
42992 42 : break;
42993 :
42994 18 : case 1347: /* AlterObjectSchemaStmt: ALTER OPERATOR operator_with_argtypes SET SCHEMA name */
42995 : #line 10120 "gram.y"
42996 : {
42997 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
42998 :
42999 : n->objectType = OBJECT_OPERATOR;
43000 : n->object = (Node *) (yyvsp[-3].objwithargs);
43001 : n->newschema = (yyvsp[0].str);
43002 : n->missing_ok = false;
43003 : (yyval.node) = (Node *) n;
43004 : }
43005 : #line 43006 "gram.c"
43006 18 : break;
43007 :
43008 24 : case 1348: /* AlterObjectSchemaStmt: ALTER OPERATOR CLASS any_name USING name SET SCHEMA name */
43009 : #line 10130 "gram.y"
43010 : {
43011 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43012 :
43013 : n->objectType = OBJECT_OPCLASS;
43014 : n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list));
43015 : n->newschema = (yyvsp[0].str);
43016 : n->missing_ok = false;
43017 : (yyval.node) = (Node *) n;
43018 : }
43019 : #line 43020 "gram.c"
43020 24 : break;
43021 :
43022 24 : case 1349: /* AlterObjectSchemaStmt: ALTER OPERATOR FAMILY any_name USING name SET SCHEMA name */
43023 : #line 10140 "gram.y"
43024 : {
43025 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43026 :
43027 : n->objectType = OBJECT_OPFAMILY;
43028 : n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list));
43029 : n->newschema = (yyvsp[0].str);
43030 : n->missing_ok = false;
43031 : (yyval.node) = (Node *) n;
43032 : }
43033 : #line 43034 "gram.c"
43034 24 : break;
43035 :
43036 0 : case 1350: /* AlterObjectSchemaStmt: ALTER PROCEDURE function_with_argtypes SET SCHEMA name */
43037 : #line 10150 "gram.y"
43038 : {
43039 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43040 :
43041 : n->objectType = OBJECT_PROCEDURE;
43042 : n->object = (Node *) (yyvsp[-3].objwithargs);
43043 : n->newschema = (yyvsp[0].str);
43044 : n->missing_ok = false;
43045 : (yyval.node) = (Node *) n;
43046 : }
43047 : #line 43048 "gram.c"
43048 0 : break;
43049 :
43050 0 : case 1351: /* AlterObjectSchemaStmt: ALTER ROUTINE function_with_argtypes SET SCHEMA name */
43051 : #line 10160 "gram.y"
43052 : {
43053 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43054 :
43055 : n->objectType = OBJECT_ROUTINE;
43056 : n->object = (Node *) (yyvsp[-3].objwithargs);
43057 : n->newschema = (yyvsp[0].str);
43058 : n->missing_ok = false;
43059 : (yyval.node) = (Node *) n;
43060 : }
43061 : #line 43062 "gram.c"
43062 0 : break;
43063 :
43064 66 : case 1352: /* AlterObjectSchemaStmt: ALTER TABLE relation_expr SET SCHEMA name */
43065 : #line 10170 "gram.y"
43066 : {
43067 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43068 :
43069 : n->objectType = OBJECT_TABLE;
43070 : n->relation = (yyvsp[-3].range);
43071 : n->newschema = (yyvsp[0].str);
43072 : n->missing_ok = false;
43073 : (yyval.node) = (Node *) n;
43074 : }
43075 : #line 43076 "gram.c"
43076 66 : break;
43077 :
43078 12 : case 1353: /* AlterObjectSchemaStmt: ALTER TABLE IF_P EXISTS relation_expr SET SCHEMA name */
43079 : #line 10180 "gram.y"
43080 : {
43081 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43082 :
43083 : n->objectType = OBJECT_TABLE;
43084 : n->relation = (yyvsp[-3].range);
43085 : n->newschema = (yyvsp[0].str);
43086 : n->missing_ok = true;
43087 : (yyval.node) = (Node *) n;
43088 : }
43089 : #line 43090 "gram.c"
43090 12 : break;
43091 :
43092 18 : case 1354: /* AlterObjectSchemaStmt: ALTER STATISTICS any_name SET SCHEMA name */
43093 : #line 10190 "gram.y"
43094 : {
43095 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43096 :
43097 : n->objectType = OBJECT_STATISTIC_EXT;
43098 : n->object = (Node *) (yyvsp[-3].list);
43099 : n->newschema = (yyvsp[0].str);
43100 : n->missing_ok = false;
43101 : (yyval.node) = (Node *) n;
43102 : }
43103 : #line 43104 "gram.c"
43104 18 : break;
43105 :
43106 18 : case 1355: /* AlterObjectSchemaStmt: ALTER TEXT_P SEARCH PARSER any_name SET SCHEMA name */
43107 : #line 10200 "gram.y"
43108 : {
43109 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43110 :
43111 : n->objectType = OBJECT_TSPARSER;
43112 : n->object = (Node *) (yyvsp[-3].list);
43113 : n->newschema = (yyvsp[0].str);
43114 : n->missing_ok = false;
43115 : (yyval.node) = (Node *) n;
43116 : }
43117 : #line 43118 "gram.c"
43118 18 : break;
43119 :
43120 24 : case 1356: /* AlterObjectSchemaStmt: ALTER TEXT_P SEARCH DICTIONARY any_name SET SCHEMA name */
43121 : #line 10210 "gram.y"
43122 : {
43123 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43124 :
43125 : n->objectType = OBJECT_TSDICTIONARY;
43126 : n->object = (Node *) (yyvsp[-3].list);
43127 : n->newschema = (yyvsp[0].str);
43128 : n->missing_ok = false;
43129 : (yyval.node) = (Node *) n;
43130 : }
43131 : #line 43132 "gram.c"
43132 24 : break;
43133 :
43134 18 : case 1357: /* AlterObjectSchemaStmt: ALTER TEXT_P SEARCH TEMPLATE any_name SET SCHEMA name */
43135 : #line 10220 "gram.y"
43136 : {
43137 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43138 :
43139 : n->objectType = OBJECT_TSTEMPLATE;
43140 : n->object = (Node *) (yyvsp[-3].list);
43141 : n->newschema = (yyvsp[0].str);
43142 : n->missing_ok = false;
43143 : (yyval.node) = (Node *) n;
43144 : }
43145 : #line 43146 "gram.c"
43146 18 : break;
43147 :
43148 24 : case 1358: /* AlterObjectSchemaStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name SET SCHEMA name */
43149 : #line 10230 "gram.y"
43150 : {
43151 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43152 :
43153 : n->objectType = OBJECT_TSCONFIGURATION;
43154 : n->object = (Node *) (yyvsp[-3].list);
43155 : n->newschema = (yyvsp[0].str);
43156 : n->missing_ok = false;
43157 : (yyval.node) = (Node *) n;
43158 : }
43159 : #line 43160 "gram.c"
43160 24 : break;
43161 :
43162 8 : case 1359: /* AlterObjectSchemaStmt: ALTER SEQUENCE qualified_name SET SCHEMA name */
43163 : #line 10240 "gram.y"
43164 : {
43165 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43166 :
43167 : n->objectType = OBJECT_SEQUENCE;
43168 : n->relation = (yyvsp[-3].range);
43169 : n->newschema = (yyvsp[0].str);
43170 : n->missing_ok = false;
43171 : (yyval.node) = (Node *) n;
43172 : }
43173 : #line 43174 "gram.c"
43174 8 : break;
43175 :
43176 0 : case 1360: /* AlterObjectSchemaStmt: ALTER SEQUENCE IF_P EXISTS qualified_name SET SCHEMA name */
43177 : #line 10250 "gram.y"
43178 : {
43179 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43180 :
43181 : n->objectType = OBJECT_SEQUENCE;
43182 : n->relation = (yyvsp[-3].range);
43183 : n->newschema = (yyvsp[0].str);
43184 : n->missing_ok = true;
43185 : (yyval.node) = (Node *) n;
43186 : }
43187 : #line 43188 "gram.c"
43188 0 : break;
43189 :
43190 0 : case 1361: /* AlterObjectSchemaStmt: ALTER VIEW qualified_name SET SCHEMA name */
43191 : #line 10260 "gram.y"
43192 : {
43193 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43194 :
43195 : n->objectType = OBJECT_VIEW;
43196 : n->relation = (yyvsp[-3].range);
43197 : n->newschema = (yyvsp[0].str);
43198 : n->missing_ok = false;
43199 : (yyval.node) = (Node *) n;
43200 : }
43201 : #line 43202 "gram.c"
43202 0 : break;
43203 :
43204 0 : case 1362: /* AlterObjectSchemaStmt: ALTER VIEW IF_P EXISTS qualified_name SET SCHEMA name */
43205 : #line 10270 "gram.y"
43206 : {
43207 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43208 :
43209 : n->objectType = OBJECT_VIEW;
43210 : n->relation = (yyvsp[-3].range);
43211 : n->newschema = (yyvsp[0].str);
43212 : n->missing_ok = true;
43213 : (yyval.node) = (Node *) n;
43214 : }
43215 : #line 43216 "gram.c"
43216 0 : break;
43217 :
43218 6 : case 1363: /* AlterObjectSchemaStmt: ALTER MATERIALIZED VIEW qualified_name SET SCHEMA name */
43219 : #line 10280 "gram.y"
43220 : {
43221 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43222 :
43223 : n->objectType = OBJECT_MATVIEW;
43224 : n->relation = (yyvsp[-3].range);
43225 : n->newschema = (yyvsp[0].str);
43226 : n->missing_ok = false;
43227 : (yyval.node) = (Node *) n;
43228 : }
43229 : #line 43230 "gram.c"
43230 6 : break;
43231 :
43232 0 : case 1364: /* AlterObjectSchemaStmt: ALTER MATERIALIZED VIEW IF_P EXISTS qualified_name SET SCHEMA name */
43233 : #line 10290 "gram.y"
43234 : {
43235 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43236 :
43237 : n->objectType = OBJECT_MATVIEW;
43238 : n->relation = (yyvsp[-3].range);
43239 : n->newschema = (yyvsp[0].str);
43240 : n->missing_ok = true;
43241 : (yyval.node) = (Node *) n;
43242 : }
43243 : #line 43244 "gram.c"
43244 0 : break;
43245 :
43246 6 : case 1365: /* AlterObjectSchemaStmt: ALTER FOREIGN TABLE relation_expr SET SCHEMA name */
43247 : #line 10300 "gram.y"
43248 : {
43249 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43250 :
43251 : n->objectType = OBJECT_FOREIGN_TABLE;
43252 : n->relation = (yyvsp[-3].range);
43253 : n->newschema = (yyvsp[0].str);
43254 : n->missing_ok = false;
43255 : (yyval.node) = (Node *) n;
43256 : }
43257 : #line 43258 "gram.c"
43258 6 : break;
43259 :
43260 6 : case 1366: /* AlterObjectSchemaStmt: ALTER FOREIGN TABLE IF_P EXISTS relation_expr SET SCHEMA name */
43261 : #line 10310 "gram.y"
43262 : {
43263 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43264 :
43265 : n->objectType = OBJECT_FOREIGN_TABLE;
43266 : n->relation = (yyvsp[-3].range);
43267 : n->newschema = (yyvsp[0].str);
43268 : n->missing_ok = true;
43269 : (yyval.node) = (Node *) n;
43270 : }
43271 : #line 43272 "gram.c"
43272 6 : break;
43273 :
43274 12 : case 1367: /* AlterObjectSchemaStmt: ALTER TYPE_P any_name SET SCHEMA name */
43275 : #line 10320 "gram.y"
43276 : {
43277 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43278 :
43279 : n->objectType = OBJECT_TYPE;
43280 : n->object = (Node *) (yyvsp[-3].list);
43281 : n->newschema = (yyvsp[0].str);
43282 : n->missing_ok = false;
43283 : (yyval.node) = (Node *) n;
43284 : }
43285 : #line 43286 "gram.c"
43286 12 : break;
43287 :
43288 608 : case 1368: /* AlterOperatorStmt: ALTER OPERATOR operator_with_argtypes SET '(' operator_def_list ')' */
43289 : #line 10339 "gram.y"
43290 : {
43291 : AlterOperatorStmt *n = makeNode(AlterOperatorStmt);
43292 :
43293 : n->opername = (yyvsp[-4].objwithargs);
43294 : n->options = (yyvsp[-1].list);
43295 : (yyval.node) = (Node *) n;
43296 : }
43297 : #line 43298 "gram.c"
43298 608 : break;
43299 :
43300 668 : case 1369: /* operator_def_list: operator_def_elem */
43301 : #line 10348 "gram.y"
43302 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
43303 : #line 43304 "gram.c"
43304 668 : break;
43305 :
43306 506 : case 1370: /* operator_def_list: operator_def_list ',' operator_def_elem */
43307 : #line 10349 "gram.y"
43308 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); }
43309 : #line 43310 "gram.c"
43310 506 : break;
43311 :
43312 30 : case 1371: /* operator_def_elem: ColLabel '=' NONE */
43313 : #line 10353 "gram.y"
43314 : { (yyval.defelt) = makeDefElem((yyvsp[-2].str), NULL, (yylsp[-2])); }
43315 : #line 43316 "gram.c"
43316 30 : break;
43317 :
43318 1110 : case 1372: /* operator_def_elem: ColLabel '=' operator_def_arg */
43319 : #line 10355 "gram.y"
43320 : { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2])); }
43321 : #line 43322 "gram.c"
43322 1110 : break;
43323 :
43324 34 : case 1373: /* operator_def_elem: ColLabel */
43325 : #line 10357 "gram.y"
43326 : { (yyval.defelt) = makeDefElem((yyvsp[0].str), NULL, (yylsp[0])); }
43327 : #line 43328 "gram.c"
43328 34 : break;
43329 :
43330 1032 : case 1374: /* operator_def_arg: func_type */
43331 : #line 10362 "gram.y"
43332 : { (yyval.node) = (Node *) (yyvsp[0].typnam); }
43333 : #line 43334 "gram.c"
43334 1032 : break;
43335 :
43336 24 : case 1375: /* operator_def_arg: reserved_keyword */
43337 : #line 10363 "gram.y"
43338 : { (yyval.node) = (Node *) makeString(pstrdup((yyvsp[0].keyword))); }
43339 : #line 43340 "gram.c"
43340 24 : break;
43341 :
43342 54 : case 1376: /* operator_def_arg: qual_all_Op */
43343 : #line 10364 "gram.y"
43344 : { (yyval.node) = (Node *) (yyvsp[0].list); }
43345 : #line 43346 "gram.c"
43346 54 : break;
43347 :
43348 0 : case 1377: /* operator_def_arg: NumericOnly */
43349 : #line 10365 "gram.y"
43350 : { (yyval.node) = (Node *) (yyvsp[0].node); }
43351 : #line 43352 "gram.c"
43352 0 : break;
43353 :
43354 0 : case 1378: /* operator_def_arg: Sconst */
43355 : #line 10366 "gram.y"
43356 : { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
43357 : #line 43358 "gram.c"
43358 0 : break;
43359 :
43360 60 : case 1379: /* AlterTypeStmt: ALTER TYPE_P any_name SET '(' operator_def_list ')' */
43361 : #line 10379 "gram.y"
43362 : {
43363 : AlterTypeStmt *n = makeNode(AlterTypeStmt);
43364 :
43365 : n->typeName = (yyvsp[-4].list);
43366 : n->options = (yyvsp[-1].list);
43367 : (yyval.node) = (Node *) n;
43368 : }
43369 : #line 43370 "gram.c"
43370 60 : break;
43371 :
43372 236 : case 1380: /* AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec */
43373 : #line 10395 "gram.y"
43374 : {
43375 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43376 :
43377 : n->objectType = OBJECT_AGGREGATE;
43378 : n->object = (Node *) (yyvsp[-3].objwithargs);
43379 : n->newowner = (yyvsp[0].rolespec);
43380 : (yyval.node) = (Node *) n;
43381 : }
43382 : #line 43383 "gram.c"
43383 236 : break;
43384 :
43385 24 : case 1381: /* AlterOwnerStmt: ALTER COLLATION any_name OWNER TO RoleSpec */
43386 : #line 10404 "gram.y"
43387 : {
43388 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43389 :
43390 : n->objectType = OBJECT_COLLATION;
43391 : n->object = (Node *) (yyvsp[-3].list);
43392 : n->newowner = (yyvsp[0].rolespec);
43393 : (yyval.node) = (Node *) n;
43394 : }
43395 : #line 43396 "gram.c"
43396 24 : break;
43397 :
43398 24 : case 1382: /* AlterOwnerStmt: ALTER CONVERSION_P any_name OWNER TO RoleSpec */
43399 : #line 10413 "gram.y"
43400 : {
43401 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43402 :
43403 : n->objectType = OBJECT_CONVERSION;
43404 : n->object = (Node *) (yyvsp[-3].list);
43405 : n->newowner = (yyvsp[0].rolespec);
43406 : (yyval.node) = (Node *) n;
43407 : }
43408 : #line 43409 "gram.c"
43409 24 : break;
43410 :
43411 80 : case 1383: /* AlterOwnerStmt: ALTER DATABASE name OWNER TO RoleSpec */
43412 : #line 10422 "gram.y"
43413 : {
43414 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43415 :
43416 : n->objectType = OBJECT_DATABASE;
43417 : n->object = (Node *) makeString((yyvsp[-3].str));
43418 : n->newowner = (yyvsp[0].rolespec);
43419 : (yyval.node) = (Node *) n;
43420 : }
43421 : #line 43422 "gram.c"
43422 80 : break;
43423 :
43424 92 : case 1384: /* AlterOwnerStmt: ALTER DOMAIN_P any_name OWNER TO RoleSpec */
43425 : #line 10431 "gram.y"
43426 : {
43427 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43428 :
43429 : n->objectType = OBJECT_DOMAIN;
43430 : n->object = (Node *) (yyvsp[-3].list);
43431 : n->newowner = (yyvsp[0].rolespec);
43432 : (yyval.node) = (Node *) n;
43433 : }
43434 : #line 43435 "gram.c"
43435 92 : break;
43436 :
43437 1114 : case 1385: /* AlterOwnerStmt: ALTER FUNCTION function_with_argtypes OWNER TO RoleSpec */
43438 : #line 10440 "gram.y"
43439 : {
43440 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43441 :
43442 : n->objectType = OBJECT_FUNCTION;
43443 : n->object = (Node *) (yyvsp[-3].objwithargs);
43444 : n->newowner = (yyvsp[0].rolespec);
43445 : (yyval.node) = (Node *) n;
43446 : }
43447 : #line 43448 "gram.c"
43448 1114 : break;
43449 :
43450 140 : case 1386: /* AlterOwnerStmt: ALTER opt_procedural LANGUAGE name OWNER TO RoleSpec */
43451 : #line 10449 "gram.y"
43452 : {
43453 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43454 :
43455 : n->objectType = OBJECT_LANGUAGE;
43456 : n->object = (Node *) makeString((yyvsp[-3].str));
43457 : n->newowner = (yyvsp[0].rolespec);
43458 : (yyval.node) = (Node *) n;
43459 : }
43460 : #line 43461 "gram.c"
43461 140 : break;
43462 :
43463 18 : case 1387: /* AlterOwnerStmt: ALTER LARGE_P OBJECT_P NumericOnly OWNER TO RoleSpec */
43464 : #line 10458 "gram.y"
43465 : {
43466 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43467 :
43468 : n->objectType = OBJECT_LARGEOBJECT;
43469 : n->object = (Node *) (yyvsp[-3].node);
43470 : n->newowner = (yyvsp[0].rolespec);
43471 : (yyval.node) = (Node *) n;
43472 : }
43473 : #line 43474 "gram.c"
43474 18 : break;
43475 :
43476 68 : case 1388: /* AlterOwnerStmt: ALTER OPERATOR operator_with_argtypes OWNER TO RoleSpec */
43477 : #line 10467 "gram.y"
43478 : {
43479 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43480 :
43481 : n->objectType = OBJECT_OPERATOR;
43482 : n->object = (Node *) (yyvsp[-3].objwithargs);
43483 : n->newowner = (yyvsp[0].rolespec);
43484 : (yyval.node) = (Node *) n;
43485 : }
43486 : #line 43487 "gram.c"
43487 68 : break;
43488 :
43489 60 : case 1389: /* AlterOwnerStmt: ALTER OPERATOR CLASS any_name USING name OWNER TO RoleSpec */
43490 : #line 10476 "gram.y"
43491 : {
43492 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43493 :
43494 : n->objectType = OBJECT_OPCLASS;
43495 : n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list));
43496 : n->newowner = (yyvsp[0].rolespec);
43497 : (yyval.node) = (Node *) n;
43498 : }
43499 : #line 43500 "gram.c"
43500 60 : break;
43501 :
43502 76 : case 1390: /* AlterOwnerStmt: ALTER OPERATOR FAMILY any_name USING name OWNER TO RoleSpec */
43503 : #line 10485 "gram.y"
43504 : {
43505 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43506 :
43507 : n->objectType = OBJECT_OPFAMILY;
43508 : n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list));
43509 : n->newowner = (yyvsp[0].rolespec);
43510 : (yyval.node) = (Node *) n;
43511 : }
43512 : #line 43513 "gram.c"
43513 76 : break;
43514 :
43515 48 : case 1391: /* AlterOwnerStmt: ALTER PROCEDURE function_with_argtypes OWNER TO RoleSpec */
43516 : #line 10494 "gram.y"
43517 : {
43518 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43519 :
43520 : n->objectType = OBJECT_PROCEDURE;
43521 : n->object = (Node *) (yyvsp[-3].objwithargs);
43522 : n->newowner = (yyvsp[0].rolespec);
43523 : (yyval.node) = (Node *) n;
43524 : }
43525 : #line 43526 "gram.c"
43526 48 : break;
43527 :
43528 0 : case 1392: /* AlterOwnerStmt: ALTER ROUTINE function_with_argtypes OWNER TO RoleSpec */
43529 : #line 10503 "gram.y"
43530 : {
43531 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43532 :
43533 : n->objectType = OBJECT_ROUTINE;
43534 : n->object = (Node *) (yyvsp[-3].objwithargs);
43535 : n->newowner = (yyvsp[0].rolespec);
43536 : (yyval.node) = (Node *) n;
43537 : }
43538 : #line 43539 "gram.c"
43539 0 : break;
43540 :
43541 78 : case 1393: /* AlterOwnerStmt: ALTER SCHEMA name OWNER TO RoleSpec */
43542 : #line 10512 "gram.y"
43543 : {
43544 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43545 :
43546 : n->objectType = OBJECT_SCHEMA;
43547 : n->object = (Node *) makeString((yyvsp[-3].str));
43548 : n->newowner = (yyvsp[0].rolespec);
43549 : (yyval.node) = (Node *) n;
43550 : }
43551 : #line 43552 "gram.c"
43552 78 : break;
43553 :
43554 152 : case 1394: /* AlterOwnerStmt: ALTER TYPE_P any_name OWNER TO RoleSpec */
43555 : #line 10521 "gram.y"
43556 : {
43557 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43558 :
43559 : n->objectType = OBJECT_TYPE;
43560 : n->object = (Node *) (yyvsp[-3].list);
43561 : n->newowner = (yyvsp[0].rolespec);
43562 : (yyval.node) = (Node *) n;
43563 : }
43564 : #line 43565 "gram.c"
43565 152 : break;
43566 :
43567 6 : case 1395: /* AlterOwnerStmt: ALTER TABLESPACE name OWNER TO RoleSpec */
43568 : #line 10530 "gram.y"
43569 : {
43570 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43571 :
43572 : n->objectType = OBJECT_TABLESPACE;
43573 : n->object = (Node *) makeString((yyvsp[-3].str));
43574 : n->newowner = (yyvsp[0].rolespec);
43575 : (yyval.node) = (Node *) n;
43576 : }
43577 : #line 43578 "gram.c"
43578 6 : break;
43579 :
43580 40 : case 1396: /* AlterOwnerStmt: ALTER STATISTICS any_name OWNER TO RoleSpec */
43581 : #line 10539 "gram.y"
43582 : {
43583 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43584 :
43585 : n->objectType = OBJECT_STATISTIC_EXT;
43586 : n->object = (Node *) (yyvsp[-3].list);
43587 : n->newowner = (yyvsp[0].rolespec);
43588 : (yyval.node) = (Node *) n;
43589 : }
43590 : #line 43591 "gram.c"
43591 40 : break;
43592 :
43593 60 : case 1397: /* AlterOwnerStmt: ALTER TEXT_P SEARCH DICTIONARY any_name OWNER TO RoleSpec */
43594 : #line 10548 "gram.y"
43595 : {
43596 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43597 :
43598 : n->objectType = OBJECT_TSDICTIONARY;
43599 : n->object = (Node *) (yyvsp[-3].list);
43600 : n->newowner = (yyvsp[0].rolespec);
43601 : (yyval.node) = (Node *) n;
43602 : }
43603 : #line 43604 "gram.c"
43604 60 : break;
43605 :
43606 40 : case 1398: /* AlterOwnerStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name OWNER TO RoleSpec */
43607 : #line 10557 "gram.y"
43608 : {
43609 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43610 :
43611 : n->objectType = OBJECT_TSCONFIGURATION;
43612 : n->object = (Node *) (yyvsp[-3].list);
43613 : n->newowner = (yyvsp[0].rolespec);
43614 : (yyval.node) = (Node *) n;
43615 : }
43616 : #line 43617 "gram.c"
43617 40 : break;
43618 :
43619 22 : case 1399: /* AlterOwnerStmt: ALTER FOREIGN DATA_P WRAPPER name OWNER TO RoleSpec */
43620 : #line 10566 "gram.y"
43621 : {
43622 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43623 :
43624 : n->objectType = OBJECT_FDW;
43625 : n->object = (Node *) makeString((yyvsp[-3].str));
43626 : n->newowner = (yyvsp[0].rolespec);
43627 : (yyval.node) = (Node *) n;
43628 : }
43629 : #line 43630 "gram.c"
43630 22 : break;
43631 :
43632 70 : case 1400: /* AlterOwnerStmt: ALTER SERVER name OWNER TO RoleSpec */
43633 : #line 10575 "gram.y"
43634 : {
43635 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43636 :
43637 : n->objectType = OBJECT_FOREIGN_SERVER;
43638 : n->object = (Node *) makeString((yyvsp[-3].str));
43639 : n->newowner = (yyvsp[0].rolespec);
43640 : (yyval.node) = (Node *) n;
43641 : }
43642 : #line 43643 "gram.c"
43643 70 : break;
43644 :
43645 16 : case 1401: /* AlterOwnerStmt: ALTER EVENT TRIGGER name OWNER TO RoleSpec */
43646 : #line 10584 "gram.y"
43647 : {
43648 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43649 :
43650 : n->objectType = OBJECT_EVENT_TRIGGER;
43651 : n->object = (Node *) makeString((yyvsp[-3].str));
43652 : n->newowner = (yyvsp[0].rolespec);
43653 : (yyval.node) = (Node *) n;
43654 : }
43655 : #line 43656 "gram.c"
43656 16 : break;
43657 :
43658 26 : case 1402: /* AlterOwnerStmt: ALTER PUBLICATION name OWNER TO RoleSpec */
43659 : #line 10593 "gram.y"
43660 : {
43661 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43662 :
43663 : n->objectType = OBJECT_PUBLICATION;
43664 : n->object = (Node *) makeString((yyvsp[-3].str));
43665 : n->newowner = (yyvsp[0].rolespec);
43666 : (yyval.node) = (Node *) n;
43667 : }
43668 : #line 43669 "gram.c"
43669 26 : break;
43670 :
43671 18 : case 1403: /* AlterOwnerStmt: ALTER SUBSCRIPTION name OWNER TO RoleSpec */
43672 : #line 10602 "gram.y"
43673 : {
43674 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43675 :
43676 : n->objectType = OBJECT_SUBSCRIPTION;
43677 : n->object = (Node *) makeString((yyvsp[-3].str));
43678 : n->newowner = (yyvsp[0].rolespec);
43679 : (yyval.node) = (Node *) n;
43680 : }
43681 : #line 43682 "gram.c"
43682 18 : break;
43683 :
43684 126 : case 1404: /* CreatePublicationStmt: CREATE PUBLICATION name opt_definition */
43685 : #line 10630 "gram.y"
43686 : {
43687 : CreatePublicationStmt *n = makeNode(CreatePublicationStmt);
43688 :
43689 : n->pubname = (yyvsp[-1].str);
43690 : n->options = (yyvsp[0].list);
43691 : (yyval.node) = (Node *) n;
43692 : }
43693 : #line 43694 "gram.c"
43694 126 : break;
43695 :
43696 94 : case 1405: /* CreatePublicationStmt: CREATE PUBLICATION name FOR ALL TABLES opt_definition */
43697 : #line 10638 "gram.y"
43698 : {
43699 : CreatePublicationStmt *n = makeNode(CreatePublicationStmt);
43700 :
43701 : n->pubname = (yyvsp[-4].str);
43702 : n->options = (yyvsp[0].list);
43703 : n->for_all_tables = true;
43704 : (yyval.node) = (Node *) n;
43705 : }
43706 : #line 43707 "gram.c"
43707 94 : break;
43708 :
43709 624 : case 1406: /* CreatePublicationStmt: CREATE PUBLICATION name FOR pub_obj_list opt_definition */
43710 : #line 10647 "gram.y"
43711 : {
43712 : CreatePublicationStmt *n = makeNode(CreatePublicationStmt);
43713 :
43714 : n->pubname = (yyvsp[-3].str);
43715 : n->options = (yyvsp[0].list);
43716 : n->pubobjects = (List *) (yyvsp[-1].list);
43717 : preprocess_pubobj_list(n->pubobjects, yyscanner);
43718 : (yyval.node) = (Node *) n;
43719 : }
43720 : #line 43721 "gram.c"
43721 594 : break;
43722 :
43723 1276 : case 1407: /* PublicationObjSpec: TABLE relation_expr opt_column_list OptWhereClause */
43724 : #line 10673 "gram.y"
43725 : {
43726 : (yyval.publicationobjectspec) = makeNode(PublicationObjSpec);
43727 : (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_TABLE;
43728 : (yyval.publicationobjectspec)->pubtable = makeNode(PublicationTable);
43729 : (yyval.publicationobjectspec)->pubtable->relation = (yyvsp[-2].range);
43730 : (yyval.publicationobjectspec)->pubtable->columns = (yyvsp[-1].list);
43731 : (yyval.publicationobjectspec)->pubtable->whereClause = (yyvsp[0].node);
43732 : }
43733 : #line 43734 "gram.c"
43734 1276 : break;
43735 :
43736 332 : case 1408: /* PublicationObjSpec: TABLES IN_P SCHEMA ColId */
43737 : #line 10682 "gram.y"
43738 : {
43739 : (yyval.publicationobjectspec) = makeNode(PublicationObjSpec);
43740 : (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_TABLES_IN_SCHEMA;
43741 : (yyval.publicationobjectspec)->name = (yyvsp[0].str);
43742 : (yyval.publicationobjectspec)->location = (yylsp[0]);
43743 : }
43744 : #line 43745 "gram.c"
43745 332 : break;
43746 :
43747 18 : case 1409: /* PublicationObjSpec: TABLES IN_P SCHEMA CURRENT_SCHEMA */
43748 : #line 10689 "gram.y"
43749 : {
43750 : (yyval.publicationobjectspec) = makeNode(PublicationObjSpec);
43751 : (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA;
43752 : (yyval.publicationobjectspec)->location = (yylsp[0]);
43753 : }
43754 : #line 43755 "gram.c"
43755 18 : break;
43756 :
43757 130 : case 1410: /* PublicationObjSpec: ColId opt_column_list OptWhereClause */
43758 : #line 10695 "gram.y"
43759 : {
43760 : (yyval.publicationobjectspec) = makeNode(PublicationObjSpec);
43761 : (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_CONTINUATION;
43762 : /*
43763 : * If either a row filter or column list is specified, create
43764 : * a PublicationTable object.
43765 : */
43766 : if ((yyvsp[-1].list) || (yyvsp[0].node))
43767 : {
43768 : /*
43769 : * The OptWhereClause must be stored here but it is
43770 : * valid only for tables. For non-table objects, an
43771 : * error will be thrown later via
43772 : * preprocess_pubobj_list().
43773 : */
43774 : (yyval.publicationobjectspec)->pubtable = makeNode(PublicationTable);
43775 : (yyval.publicationobjectspec)->pubtable->relation = makeRangeVar(NULL, (yyvsp[-2].str), (yylsp[-2]));
43776 : (yyval.publicationobjectspec)->pubtable->columns = (yyvsp[-1].list);
43777 : (yyval.publicationobjectspec)->pubtable->whereClause = (yyvsp[0].node);
43778 : }
43779 : else
43780 : {
43781 : (yyval.publicationobjectspec)->name = (yyvsp[-2].str);
43782 : }
43783 : (yyval.publicationobjectspec)->location = (yylsp[-2]);
43784 : }
43785 : #line 43786 "gram.c"
43786 130 : break;
43787 :
43788 32 : case 1411: /* PublicationObjSpec: ColId indirection opt_column_list OptWhereClause */
43789 : #line 10722 "gram.y"
43790 : {
43791 : (yyval.publicationobjectspec) = makeNode(PublicationObjSpec);
43792 : (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_CONTINUATION;
43793 : (yyval.publicationobjectspec)->pubtable = makeNode(PublicationTable);
43794 : (yyval.publicationobjectspec)->pubtable->relation = makeRangeVarFromQualifiedName((yyvsp[-3].str), (yyvsp[-2].list), (yylsp[-3]), yyscanner);
43795 : (yyval.publicationobjectspec)->pubtable->columns = (yyvsp[-1].list);
43796 : (yyval.publicationobjectspec)->pubtable->whereClause = (yyvsp[0].node);
43797 : (yyval.publicationobjectspec)->location = (yylsp[-3]);
43798 : }
43799 : #line 43800 "gram.c"
43800 32 : break;
43801 :
43802 6 : case 1412: /* PublicationObjSpec: extended_relation_expr opt_column_list OptWhereClause */
43803 : #line 10733 "gram.y"
43804 : {
43805 : (yyval.publicationobjectspec) = makeNode(PublicationObjSpec);
43806 : (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_CONTINUATION;
43807 : (yyval.publicationobjectspec)->pubtable = makeNode(PublicationTable);
43808 : (yyval.publicationobjectspec)->pubtable->relation = (yyvsp[-2].range);
43809 : (yyval.publicationobjectspec)->pubtable->columns = (yyvsp[-1].list);
43810 : (yyval.publicationobjectspec)->pubtable->whereClause = (yyvsp[0].node);
43811 : }
43812 : #line 43813 "gram.c"
43813 6 : break;
43814 :
43815 18 : case 1413: /* PublicationObjSpec: CURRENT_SCHEMA */
43816 : #line 10742 "gram.y"
43817 : {
43818 : (yyval.publicationobjectspec) = makeNode(PublicationObjSpec);
43819 : (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_CONTINUATION;
43820 : (yyval.publicationobjectspec)->location = (yylsp[0]);
43821 : }
43822 : #line 43823 "gram.c"
43823 18 : break;
43824 :
43825 1588 : case 1414: /* pub_obj_list: PublicationObjSpec */
43826 : #line 10750 "gram.y"
43827 : { (yyval.list) = list_make1((yyvsp[0].publicationobjectspec)); }
43828 : #line 43829 "gram.c"
43829 1588 : break;
43830 :
43831 224 : case 1415: /* pub_obj_list: pub_obj_list ',' PublicationObjSpec */
43832 : #line 10752 "gram.y"
43833 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].publicationobjectspec)); }
43834 : #line 43835 "gram.c"
43835 224 : break;
43836 :
43837 116 : case 1416: /* AlterPublicationStmt: ALTER PUBLICATION name SET definition */
43838 : #line 10774 "gram.y"
43839 : {
43840 : AlterPublicationStmt *n = makeNode(AlterPublicationStmt);
43841 :
43842 : n->pubname = (yyvsp[-2].str);
43843 : n->options = (yyvsp[0].list);
43844 : (yyval.node) = (Node *) n;
43845 : }
43846 : #line 43847 "gram.c"
43847 116 : break;
43848 :
43849 346 : case 1417: /* AlterPublicationStmt: ALTER PUBLICATION name ADD_P pub_obj_list */
43850 : #line 10782 "gram.y"
43851 : {
43852 : AlterPublicationStmt *n = makeNode(AlterPublicationStmt);
43853 :
43854 : n->pubname = (yyvsp[-2].str);
43855 : n->pubobjects = (yyvsp[0].list);
43856 : preprocess_pubobj_list(n->pubobjects, yyscanner);
43857 : n->action = AP_AddObjects;
43858 : (yyval.node) = (Node *) n;
43859 : }
43860 : #line 43861 "gram.c"
43861 340 : break;
43862 :
43863 464 : case 1418: /* AlterPublicationStmt: ALTER PUBLICATION name SET pub_obj_list */
43864 : #line 10792 "gram.y"
43865 : {
43866 : AlterPublicationStmt *n = makeNode(AlterPublicationStmt);
43867 :
43868 : n->pubname = (yyvsp[-2].str);
43869 : n->pubobjects = (yyvsp[0].list);
43870 : preprocess_pubobj_list(n->pubobjects, yyscanner);
43871 : n->action = AP_SetObjects;
43872 : (yyval.node) = (Node *) n;
43873 : }
43874 : #line 43875 "gram.c"
43875 464 : break;
43876 :
43877 154 : case 1419: /* AlterPublicationStmt: ALTER PUBLICATION name DROP pub_obj_list */
43878 : #line 10802 "gram.y"
43879 : {
43880 : AlterPublicationStmt *n = makeNode(AlterPublicationStmt);
43881 :
43882 : n->pubname = (yyvsp[-2].str);
43883 : n->pubobjects = (yyvsp[0].list);
43884 : preprocess_pubobj_list(n->pubobjects, yyscanner);
43885 : n->action = AP_DropObjects;
43886 : (yyval.node) = (Node *) n;
43887 : }
43888 : #line 43889 "gram.c"
43889 154 : break;
43890 :
43891 448 : case 1420: /* CreateSubscriptionStmt: CREATE SUBSCRIPTION name CONNECTION Sconst PUBLICATION name_list opt_definition */
43892 : #line 10821 "gram.y"
43893 : {
43894 : CreateSubscriptionStmt *n =
43895 : makeNode(CreateSubscriptionStmt);
43896 : n->subname = (yyvsp[-5].str);
43897 : n->conninfo = (yyvsp[-3].str);
43898 : n->publication = (yyvsp[-1].list);
43899 : n->options = (yyvsp[0].list);
43900 : (yyval.node) = (Node *) n;
43901 : }
43902 : #line 43903 "gram.c"
43903 448 : break;
43904 :
43905 186 : case 1421: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name SET definition */
43906 : #line 10840 "gram.y"
43907 : {
43908 : AlterSubscriptionStmt *n =
43909 : makeNode(AlterSubscriptionStmt);
43910 :
43911 : n->kind = ALTER_SUBSCRIPTION_OPTIONS;
43912 : n->subname = (yyvsp[-2].str);
43913 : n->options = (yyvsp[0].list);
43914 : (yyval.node) = (Node *) n;
43915 : }
43916 : #line 43917 "gram.c"
43917 186 : break;
43918 :
43919 26 : case 1422: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name CONNECTION Sconst */
43920 : #line 10850 "gram.y"
43921 : {
43922 : AlterSubscriptionStmt *n =
43923 : makeNode(AlterSubscriptionStmt);
43924 :
43925 : n->kind = ALTER_SUBSCRIPTION_CONNECTION;
43926 : n->subname = (yyvsp[-2].str);
43927 : n->conninfo = (yyvsp[0].str);
43928 : (yyval.node) = (Node *) n;
43929 : }
43930 : #line 43931 "gram.c"
43931 26 : break;
43932 :
43933 58 : case 1423: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name REFRESH PUBLICATION opt_definition */
43934 : #line 10860 "gram.y"
43935 : {
43936 : AlterSubscriptionStmt *n =
43937 : makeNode(AlterSubscriptionStmt);
43938 :
43939 : n->kind = ALTER_SUBSCRIPTION_REFRESH;
43940 : n->subname = (yyvsp[-3].str);
43941 : n->options = (yyvsp[0].list);
43942 : (yyval.node) = (Node *) n;
43943 : }
43944 : #line 43945 "gram.c"
43945 58 : break;
43946 :
43947 28 : case 1424: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name ADD_P PUBLICATION name_list opt_definition */
43948 : #line 10870 "gram.y"
43949 : {
43950 : AlterSubscriptionStmt *n =
43951 : makeNode(AlterSubscriptionStmt);
43952 :
43953 : n->kind = ALTER_SUBSCRIPTION_ADD_PUBLICATION;
43954 : n->subname = (yyvsp[-4].str);
43955 : n->publication = (yyvsp[-1].list);
43956 : n->options = (yyvsp[0].list);
43957 : (yyval.node) = (Node *) n;
43958 : }
43959 : #line 43960 "gram.c"
43960 28 : break;
43961 :
43962 26 : case 1425: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name DROP PUBLICATION name_list opt_definition */
43963 : #line 10881 "gram.y"
43964 : {
43965 : AlterSubscriptionStmt *n =
43966 : makeNode(AlterSubscriptionStmt);
43967 :
43968 : n->kind = ALTER_SUBSCRIPTION_DROP_PUBLICATION;
43969 : n->subname = (yyvsp[-4].str);
43970 : n->publication = (yyvsp[-1].list);
43971 : n->options = (yyvsp[0].list);
43972 : (yyval.node) = (Node *) n;
43973 : }
43974 : #line 43975 "gram.c"
43975 26 : break;
43976 :
43977 44 : case 1426: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name SET PUBLICATION name_list opt_definition */
43978 : #line 10892 "gram.y"
43979 : {
43980 : AlterSubscriptionStmt *n =
43981 : makeNode(AlterSubscriptionStmt);
43982 :
43983 : n->kind = ALTER_SUBSCRIPTION_SET_PUBLICATION;
43984 : n->subname = (yyvsp[-4].str);
43985 : n->publication = (yyvsp[-1].list);
43986 : n->options = (yyvsp[0].list);
43987 : (yyval.node) = (Node *) n;
43988 : }
43989 : #line 43990 "gram.c"
43990 44 : break;
43991 :
43992 50 : case 1427: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name ENABLE_P */
43993 : #line 10903 "gram.y"
43994 : {
43995 : AlterSubscriptionStmt *n =
43996 : makeNode(AlterSubscriptionStmt);
43997 :
43998 : n->kind = ALTER_SUBSCRIPTION_ENABLED;
43999 : n->subname = (yyvsp[-1].str);
44000 : n->options = list_make1(makeDefElem("enabled",
44001 : (Node *) makeBoolean(true), (yylsp[-3])));
44002 : (yyval.node) = (Node *) n;
44003 : }
44004 : #line 44005 "gram.c"
44005 50 : break;
44006 :
44007 34 : case 1428: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name DISABLE_P */
44008 : #line 10914 "gram.y"
44009 : {
44010 : AlterSubscriptionStmt *n =
44011 : makeNode(AlterSubscriptionStmt);
44012 :
44013 : n->kind = ALTER_SUBSCRIPTION_ENABLED;
44014 : n->subname = (yyvsp[-1].str);
44015 : n->options = list_make1(makeDefElem("enabled",
44016 : (Node *) makeBoolean(false), (yylsp[-3])));
44017 : (yyval.node) = (Node *) n;
44018 : }
44019 : #line 44020 "gram.c"
44020 34 : break;
44021 :
44022 24 : case 1429: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name SKIP definition */
44023 : #line 10925 "gram.y"
44024 : {
44025 : AlterSubscriptionStmt *n =
44026 : makeNode(AlterSubscriptionStmt);
44027 :
44028 : n->kind = ALTER_SUBSCRIPTION_SKIP;
44029 : n->subname = (yyvsp[-2].str);
44030 : n->options = (yyvsp[0].list);
44031 : (yyval.node) = (Node *) n;
44032 : }
44033 : #line 44034 "gram.c"
44034 24 : break;
44035 :
44036 222 : case 1430: /* DropSubscriptionStmt: DROP SUBSCRIPTION name opt_drop_behavior */
44037 : #line 10943 "gram.y"
44038 : {
44039 : DropSubscriptionStmt *n = makeNode(DropSubscriptionStmt);
44040 :
44041 : n->subname = (yyvsp[-1].str);
44042 : n->missing_ok = false;
44043 : n->behavior = (yyvsp[0].dbehavior);
44044 : (yyval.node) = (Node *) n;
44045 : }
44046 : #line 44047 "gram.c"
44047 222 : break;
44048 :
44049 6 : case 1431: /* DropSubscriptionStmt: DROP SUBSCRIPTION IF_P EXISTS name opt_drop_behavior */
44050 : #line 10952 "gram.y"
44051 : {
44052 : DropSubscriptionStmt *n = makeNode(DropSubscriptionStmt);
44053 :
44054 : n->subname = (yyvsp[-1].str);
44055 : n->missing_ok = true;
44056 : n->behavior = (yyvsp[0].dbehavior);
44057 : (yyval.node) = (Node *) n;
44058 : }
44059 : #line 44060 "gram.c"
44060 6 : break;
44061 :
44062 1166 : case 1432: /* RuleStmt: CREATE opt_or_replace RULE name AS ON event TO qualified_name where_clause DO opt_instead RuleActionList */
44063 : #line 10971 "gram.y"
44064 : {
44065 : RuleStmt *n = makeNode(RuleStmt);
44066 :
44067 : n->replace = (yyvsp[-11].boolean);
44068 : n->relation = (yyvsp[-4].range);
44069 : n->rulename = (yyvsp[-9].str);
44070 : n->whereClause = (yyvsp[-3].node);
44071 : n->event = (yyvsp[-6].ival);
44072 : n->instead = (yyvsp[-1].boolean);
44073 : n->actions = (yyvsp[0].list);
44074 : (yyval.node) = (Node *) n;
44075 : }
44076 : #line 44077 "gram.c"
44077 1166 : break;
44078 :
44079 166 : case 1433: /* RuleActionList: NOTHING */
44080 : #line 10986 "gram.y"
44081 : { (yyval.list) = NIL; }
44082 : #line 44083 "gram.c"
44083 166 : break;
44084 :
44085 950 : case 1434: /* RuleActionList: RuleActionStmt */
44086 : #line 10987 "gram.y"
44087 : { (yyval.list) = list_make1((yyvsp[0].node)); }
44088 : #line 44089 "gram.c"
44089 950 : break;
44090 :
44091 50 : case 1435: /* RuleActionList: '(' RuleActionMulti ')' */
44092 : #line 10988 "gram.y"
44093 : { (yyval.list) = (yyvsp[-1].list); }
44094 : #line 44095 "gram.c"
44095 50 : break;
44096 :
44097 70 : case 1436: /* RuleActionMulti: RuleActionMulti ';' RuleActionStmtOrEmpty */
44098 : #line 10994 "gram.y"
44099 : { if ((yyvsp[0].node) != NULL)
44100 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node));
44101 : else
44102 : (yyval.list) = (yyvsp[-2].list);
44103 : }
44104 : #line 44105 "gram.c"
44105 70 : break;
44106 :
44107 50 : case 1437: /* RuleActionMulti: RuleActionStmtOrEmpty */
44108 : #line 11000 "gram.y"
44109 : { if ((yyvsp[0].node) != NULL)
44110 : (yyval.list) = list_make1((yyvsp[0].node));
44111 : else
44112 : (yyval.list) = NIL;
44113 : }
44114 : #line 44115 "gram.c"
44115 50 : break;
44116 :
44117 100 : case 1443: /* RuleActionStmtOrEmpty: RuleActionStmt */
44118 : #line 11016 "gram.y"
44119 : { (yyval.node) = (yyvsp[0].node); }
44120 : #line 44121 "gram.c"
44121 100 : break;
44122 :
44123 20 : case 1444: /* RuleActionStmtOrEmpty: %empty */
44124 : #line 11017 "gram.y"
44125 : { (yyval.node) = NULL; }
44126 : #line 44127 "gram.c"
44127 20 : break;
44128 :
44129 18 : case 1445: /* event: SELECT */
44130 : #line 11020 "gram.y"
44131 : { (yyval.ival) = CMD_SELECT; }
44132 : #line 44133 "gram.c"
44133 18 : break;
44134 :
44135 448 : case 1446: /* event: UPDATE */
44136 : #line 11021 "gram.y"
44137 : { (yyval.ival) = CMD_UPDATE; }
44138 : #line 44139 "gram.c"
44139 448 : break;
44140 :
44141 180 : case 1447: /* event: DELETE_P */
44142 : #line 11022 "gram.y"
44143 : { (yyval.ival) = CMD_DELETE; }
44144 : #line 44145 "gram.c"
44145 180 : break;
44146 :
44147 520 : case 1448: /* event: INSERT */
44148 : #line 11023 "gram.y"
44149 : { (yyval.ival) = CMD_INSERT; }
44150 : #line 44151 "gram.c"
44151 520 : break;
44152 :
44153 798 : case 1449: /* opt_instead: INSTEAD */
44154 : #line 11027 "gram.y"
44155 : { (yyval.boolean) = true; }
44156 : #line 44157 "gram.c"
44157 798 : break;
44158 :
44159 156 : case 1450: /* opt_instead: ALSO */
44160 : #line 11028 "gram.y"
44161 : { (yyval.boolean) = false; }
44162 : #line 44163 "gram.c"
44163 156 : break;
44164 :
44165 212 : case 1451: /* opt_instead: %empty */
44166 : #line 11029 "gram.y"
44167 : { (yyval.boolean) = false; }
44168 : #line 44169 "gram.c"
44169 212 : break;
44170 :
44171 130 : case 1452: /* NotifyStmt: NOTIFY ColId notify_payload */
44172 : #line 11042 "gram.y"
44173 : {
44174 : NotifyStmt *n = makeNode(NotifyStmt);
44175 :
44176 : n->conditionname = (yyvsp[-1].str);
44177 : n->payload = (yyvsp[0].str);
44178 : (yyval.node) = (Node *) n;
44179 : }
44180 : #line 44181 "gram.c"
44181 130 : break;
44182 :
44183 62 : case 1453: /* notify_payload: ',' Sconst */
44184 : #line 11052 "gram.y"
44185 : { (yyval.str) = (yyvsp[0].str); }
44186 : #line 44187 "gram.c"
44187 62 : break;
44188 :
44189 68 : case 1454: /* notify_payload: %empty */
44190 : #line 11053 "gram.y"
44191 : { (yyval.str) = NULL; }
44192 : #line 44193 "gram.c"
44193 68 : break;
44194 :
44195 74 : case 1455: /* ListenStmt: LISTEN ColId */
44196 : #line 11057 "gram.y"
44197 : {
44198 : ListenStmt *n = makeNode(ListenStmt);
44199 :
44200 : n->conditionname = (yyvsp[0].str);
44201 : (yyval.node) = (Node *) n;
44202 : }
44203 : #line 44204 "gram.c"
44204 74 : break;
44205 :
44206 6 : case 1456: /* UnlistenStmt: UNLISTEN ColId */
44207 : #line 11067 "gram.y"
44208 : {
44209 : UnlistenStmt *n = makeNode(UnlistenStmt);
44210 :
44211 : n->conditionname = (yyvsp[0].str);
44212 : (yyval.node) = (Node *) n;
44213 : }
44214 : #line 44215 "gram.c"
44215 6 : break;
44216 :
44217 32 : case 1457: /* UnlistenStmt: UNLISTEN '*' */
44218 : #line 11074 "gram.y"
44219 : {
44220 : UnlistenStmt *n = makeNode(UnlistenStmt);
44221 :
44222 : n->conditionname = NULL;
44223 : (yyval.node) = (Node *) n;
44224 : }
44225 : #line 44226 "gram.c"
44226 32 : break;
44227 :
44228 216 : case 1458: /* TransactionStmt: ABORT_P opt_transaction opt_transaction_chain */
44229 : #line 11094 "gram.y"
44230 : {
44231 : TransactionStmt *n = makeNode(TransactionStmt);
44232 :
44233 : n->kind = TRANS_STMT_ROLLBACK;
44234 : n->options = NIL;
44235 : n->chain = (yyvsp[0].boolean);
44236 : n->location = -1;
44237 : (yyval.node) = (Node *) n;
44238 : }
44239 : #line 44240 "gram.c"
44240 216 : break;
44241 :
44242 1604 : case 1459: /* TransactionStmt: START TRANSACTION transaction_mode_list_or_empty */
44243 : #line 11104 "gram.y"
44244 : {
44245 : TransactionStmt *n = makeNode(TransactionStmt);
44246 :
44247 : n->kind = TRANS_STMT_START;
44248 : n->options = (yyvsp[0].list);
44249 : n->location = -1;
44250 : (yyval.node) = (Node *) n;
44251 : }
44252 : #line 44253 "gram.c"
44253 1604 : break;
44254 :
44255 13050 : case 1460: /* TransactionStmt: COMMIT opt_transaction opt_transaction_chain */
44256 : #line 11113 "gram.y"
44257 : {
44258 : TransactionStmt *n = makeNode(TransactionStmt);
44259 :
44260 : n->kind = TRANS_STMT_COMMIT;
44261 : n->options = NIL;
44262 : n->chain = (yyvsp[0].boolean);
44263 : n->location = -1;
44264 : (yyval.node) = (Node *) n;
44265 : }
44266 : #line 44267 "gram.c"
44267 13050 : break;
44268 :
44269 2630 : case 1461: /* TransactionStmt: ROLLBACK opt_transaction opt_transaction_chain */
44270 : #line 11123 "gram.y"
44271 : {
44272 : TransactionStmt *n = makeNode(TransactionStmt);
44273 :
44274 : n->kind = TRANS_STMT_ROLLBACK;
44275 : n->options = NIL;
44276 : n->chain = (yyvsp[0].boolean);
44277 : n->location = -1;
44278 : (yyval.node) = (Node *) n;
44279 : }
44280 : #line 44281 "gram.c"
44281 2630 : break;
44282 :
44283 1972 : case 1462: /* TransactionStmt: SAVEPOINT ColId */
44284 : #line 11133 "gram.y"
44285 : {
44286 : TransactionStmt *n = makeNode(TransactionStmt);
44287 :
44288 : n->kind = TRANS_STMT_SAVEPOINT;
44289 : n->savepoint_name = (yyvsp[0].str);
44290 : n->location = (yylsp[0]);
44291 : (yyval.node) = (Node *) n;
44292 : }
44293 : #line 44294 "gram.c"
44294 1972 : break;
44295 :
44296 208 : case 1463: /* TransactionStmt: RELEASE SAVEPOINT ColId */
44297 : #line 11142 "gram.y"
44298 : {
44299 : TransactionStmt *n = makeNode(TransactionStmt);
44300 :
44301 : n->kind = TRANS_STMT_RELEASE;
44302 : n->savepoint_name = (yyvsp[0].str);
44303 : n->location = (yylsp[0]);
44304 : (yyval.node) = (Node *) n;
44305 : }
44306 : #line 44307 "gram.c"
44307 208 : break;
44308 :
44309 86 : case 1464: /* TransactionStmt: RELEASE ColId */
44310 : #line 11151 "gram.y"
44311 : {
44312 : TransactionStmt *n = makeNode(TransactionStmt);
44313 :
44314 : n->kind = TRANS_STMT_RELEASE;
44315 : n->savepoint_name = (yyvsp[0].str);
44316 : n->location = (yylsp[0]);
44317 : (yyval.node) = (Node *) n;
44318 : }
44319 : #line 44320 "gram.c"
44320 86 : break;
44321 :
44322 228 : case 1465: /* TransactionStmt: ROLLBACK opt_transaction TO SAVEPOINT ColId */
44323 : #line 11160 "gram.y"
44324 : {
44325 : TransactionStmt *n = makeNode(TransactionStmt);
44326 :
44327 : n->kind = TRANS_STMT_ROLLBACK_TO;
44328 : n->savepoint_name = (yyvsp[0].str);
44329 : n->location = (yylsp[0]);
44330 : (yyval.node) = (Node *) n;
44331 : }
44332 : #line 44333 "gram.c"
44333 228 : break;
44334 :
44335 496 : case 1466: /* TransactionStmt: ROLLBACK opt_transaction TO ColId */
44336 : #line 11169 "gram.y"
44337 : {
44338 : TransactionStmt *n = makeNode(TransactionStmt);
44339 :
44340 : n->kind = TRANS_STMT_ROLLBACK_TO;
44341 : n->savepoint_name = (yyvsp[0].str);
44342 : n->location = (yylsp[0]);
44343 : (yyval.node) = (Node *) n;
44344 : }
44345 : #line 44346 "gram.c"
44346 496 : break;
44347 :
44348 634 : case 1467: /* TransactionStmt: PREPARE TRANSACTION Sconst */
44349 : #line 11178 "gram.y"
44350 : {
44351 : TransactionStmt *n = makeNode(TransactionStmt);
44352 :
44353 : n->kind = TRANS_STMT_PREPARE;
44354 : n->gid = (yyvsp[0].str);
44355 : n->location = (yylsp[0]);
44356 : (yyval.node) = (Node *) n;
44357 : }
44358 : #line 44359 "gram.c"
44359 634 : break;
44360 :
44361 476 : case 1468: /* TransactionStmt: COMMIT PREPARED Sconst */
44362 : #line 11187 "gram.y"
44363 : {
44364 : TransactionStmt *n = makeNode(TransactionStmt);
44365 :
44366 : n->kind = TRANS_STMT_COMMIT_PREPARED;
44367 : n->gid = (yyvsp[0].str);
44368 : n->location = (yylsp[0]);
44369 : (yyval.node) = (Node *) n;
44370 : }
44371 : #line 44372 "gram.c"
44372 476 : break;
44373 :
44374 76 : case 1469: /* TransactionStmt: ROLLBACK PREPARED Sconst */
44375 : #line 11196 "gram.y"
44376 : {
44377 : TransactionStmt *n = makeNode(TransactionStmt);
44378 :
44379 : n->kind = TRANS_STMT_ROLLBACK_PREPARED;
44380 : n->gid = (yyvsp[0].str);
44381 : n->location = (yylsp[0]);
44382 : (yyval.node) = (Node *) n;
44383 : }
44384 : #line 44385 "gram.c"
44385 76 : break;
44386 :
44387 15744 : case 1470: /* TransactionStmtLegacy: BEGIN_P opt_transaction transaction_mode_list_or_empty */
44388 : #line 11208 "gram.y"
44389 : {
44390 : TransactionStmt *n = makeNode(TransactionStmt);
44391 :
44392 : n->kind = TRANS_STMT_BEGIN;
44393 : n->options = (yyvsp[0].list);
44394 : n->location = -1;
44395 : (yyval.node) = (Node *) n;
44396 : }
44397 : #line 44398 "gram.c"
44398 15744 : break;
44399 :
44400 360 : case 1471: /* TransactionStmtLegacy: END_P opt_transaction opt_transaction_chain */
44401 : #line 11217 "gram.y"
44402 : {
44403 : TransactionStmt *n = makeNode(TransactionStmt);
44404 :
44405 : n->kind = TRANS_STMT_COMMIT;
44406 : n->options = NIL;
44407 : n->chain = (yyvsp[0].boolean);
44408 : n->location = -1;
44409 : (yyval.node) = (Node *) n;
44410 : }
44411 : #line 44412 "gram.c"
44412 360 : break;
44413 :
44414 6776 : case 1475: /* transaction_mode_item: ISOLATION LEVEL iso_level */
44415 : #line 11235 "gram.y"
44416 : { (yyval.defelt) = makeDefElem("transaction_isolation",
44417 : makeStringConst((yyvsp[0].str), (yylsp[0])), (yylsp[-2])); }
44418 : #line 44419 "gram.c"
44419 6776 : break;
44420 :
44421 1508 : case 1476: /* transaction_mode_item: READ ONLY */
44422 : #line 11238 "gram.y"
44423 : { (yyval.defelt) = makeDefElem("transaction_read_only",
44424 : makeIntConst(true, (yylsp[-1])), (yylsp[-1])); }
44425 : #line 44426 "gram.c"
44426 1508 : break;
44427 :
44428 90 : case 1477: /* transaction_mode_item: READ WRITE */
44429 : #line 11241 "gram.y"
44430 : { (yyval.defelt) = makeDefElem("transaction_read_only",
44431 : makeIntConst(false, (yylsp[-1])), (yylsp[-1])); }
44432 : #line 44433 "gram.c"
44433 90 : break;
44434 :
44435 44 : case 1478: /* transaction_mode_item: DEFERRABLE */
44436 : #line 11244 "gram.y"
44437 : { (yyval.defelt) = makeDefElem("transaction_deferrable",
44438 : makeIntConst(true, (yylsp[0])), (yylsp[0])); }
44439 : #line 44440 "gram.c"
44440 44 : break;
44441 :
44442 10 : case 1479: /* transaction_mode_item: NOT DEFERRABLE */
44443 : #line 11247 "gram.y"
44444 : { (yyval.defelt) = makeDefElem("transaction_deferrable",
44445 : makeIntConst(false, (yylsp[-1])), (yylsp[-1])); }
44446 : #line 44447 "gram.c"
44447 10 : break;
44448 :
44449 6992 : case 1480: /* transaction_mode_list: transaction_mode_item */
44450 : #line 11254 "gram.y"
44451 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
44452 : #line 44453 "gram.c"
44453 6992 : break;
44454 :
44455 1042 : case 1481: /* transaction_mode_list: transaction_mode_list ',' transaction_mode_item */
44456 : #line 11256 "gram.y"
44457 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); }
44458 : #line 44459 "gram.c"
44459 1042 : break;
44460 :
44461 394 : case 1482: /* transaction_mode_list: transaction_mode_list transaction_mode_item */
44462 : #line 11258 "gram.y"
44463 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
44464 : #line 44465 "gram.c"
44465 394 : break;
44466 :
44467 11058 : case 1484: /* transaction_mode_list_or_empty: %empty */
44468 : #line 11264 "gram.y"
44469 : { (yyval.list) = NIL; }
44470 : #line 44471 "gram.c"
44471 11058 : break;
44472 :
44473 120 : case 1485: /* opt_transaction_chain: AND CHAIN */
44474 : #line 11268 "gram.y"
44475 : { (yyval.boolean) = true; }
44476 : #line 44477 "gram.c"
44477 120 : break;
44478 :
44479 2 : case 1486: /* opt_transaction_chain: AND NO CHAIN */
44480 : #line 11269 "gram.y"
44481 : { (yyval.boolean) = false; }
44482 : #line 44483 "gram.c"
44483 2 : break;
44484 :
44485 16134 : case 1487: /* opt_transaction_chain: %empty */
44486 : #line 11270 "gram.y"
44487 : { (yyval.boolean) = false; }
44488 : #line 44489 "gram.c"
44489 16134 : break;
44490 :
44491 16388 : case 1488: /* ViewStmt: CREATE OptTemp VIEW qualified_name opt_column_list opt_reloptions AS SelectStmt opt_check_option */
44492 : #line 11284 "gram.y"
44493 : {
44494 : ViewStmt *n = makeNode(ViewStmt);
44495 :
44496 : n->view = (yyvsp[-5].range);
44497 : n->view->relpersistence = (yyvsp[-7].ival);
44498 : n->aliases = (yyvsp[-4].list);
44499 : n->query = (yyvsp[-1].node);
44500 : n->replace = false;
44501 : n->options = (yyvsp[-3].list);
44502 : n->withCheckOption = (yyvsp[0].ival);
44503 : (yyval.node) = (Node *) n;
44504 : }
44505 : #line 44506 "gram.c"
44506 16388 : break;
44507 :
44508 248 : case 1489: /* ViewStmt: CREATE OR REPLACE OptTemp VIEW qualified_name opt_column_list opt_reloptions AS SelectStmt opt_check_option */
44509 : #line 11298 "gram.y"
44510 : {
44511 : ViewStmt *n = makeNode(ViewStmt);
44512 :
44513 : n->view = (yyvsp[-5].range);
44514 : n->view->relpersistence = (yyvsp[-7].ival);
44515 : n->aliases = (yyvsp[-4].list);
44516 : n->query = (yyvsp[-1].node);
44517 : n->replace = true;
44518 : n->options = (yyvsp[-3].list);
44519 : n->withCheckOption = (yyvsp[0].ival);
44520 : (yyval.node) = (Node *) n;
44521 : }
44522 : #line 44523 "gram.c"
44523 248 : break;
44524 :
44525 8 : case 1490: /* ViewStmt: CREATE OptTemp RECURSIVE VIEW qualified_name '(' columnList ')' opt_reloptions AS SelectStmt opt_check_option */
44526 : #line 11312 "gram.y"
44527 : {
44528 : ViewStmt *n = makeNode(ViewStmt);
44529 :
44530 : n->view = (yyvsp[-7].range);
44531 : n->view->relpersistence = (yyvsp[-10].ival);
44532 : n->aliases = (yyvsp[-5].list);
44533 : n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[-1].node));
44534 : n->replace = false;
44535 : n->options = (yyvsp[-3].list);
44536 : n->withCheckOption = (yyvsp[0].ival);
44537 : if (n->withCheckOption != NO_CHECK_OPTION)
44538 : ereport(ERROR,
44539 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
44540 : errmsg("WITH CHECK OPTION not supported on recursive views"),
44541 : parser_errposition((yylsp[0]))));
44542 : (yyval.node) = (Node *) n;
44543 : }
44544 : #line 44545 "gram.c"
44545 8 : break;
44546 :
44547 6 : case 1491: /* ViewStmt: CREATE OR REPLACE OptTemp RECURSIVE VIEW qualified_name '(' columnList ')' opt_reloptions AS SelectStmt opt_check_option */
44548 : #line 11331 "gram.y"
44549 : {
44550 : ViewStmt *n = makeNode(ViewStmt);
44551 :
44552 : n->view = (yyvsp[-7].range);
44553 : n->view->relpersistence = (yyvsp[-10].ival);
44554 : n->aliases = (yyvsp[-5].list);
44555 : n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[-1].node));
44556 : n->replace = true;
44557 : n->options = (yyvsp[-3].list);
44558 : n->withCheckOption = (yyvsp[0].ival);
44559 : if (n->withCheckOption != NO_CHECK_OPTION)
44560 : ereport(ERROR,
44561 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
44562 : errmsg("WITH CHECK OPTION not supported on recursive views"),
44563 : parser_errposition((yylsp[0]))));
44564 : (yyval.node) = (Node *) n;
44565 : }
44566 : #line 44567 "gram.c"
44567 6 : break;
44568 :
44569 96 : case 1492: /* opt_check_option: WITH CHECK OPTION */
44570 : #line 11351 "gram.y"
44571 : { (yyval.ival) = CASCADED_CHECK_OPTION; }
44572 : #line 44573 "gram.c"
44573 96 : break;
44574 :
44575 6 : case 1493: /* opt_check_option: WITH CASCADED CHECK OPTION */
44576 : #line 11352 "gram.y"
44577 : { (yyval.ival) = CASCADED_CHECK_OPTION; }
44578 : #line 44579 "gram.c"
44579 6 : break;
44580 :
44581 24 : case 1494: /* opt_check_option: WITH LOCAL CHECK OPTION */
44582 : #line 11353 "gram.y"
44583 : { (yyval.ival) = LOCAL_CHECK_OPTION; }
44584 : #line 44585 "gram.c"
44585 24 : break;
44586 :
44587 16524 : case 1495: /* opt_check_option: %empty */
44588 : #line 11354 "gram.y"
44589 : { (yyval.ival) = NO_CHECK_OPTION; }
44590 : #line 44591 "gram.c"
44591 16524 : break;
44592 :
44593 52 : case 1496: /* LoadStmt: LOAD file_name */
44594 : #line 11365 "gram.y"
44595 : {
44596 : LoadStmt *n = makeNode(LoadStmt);
44597 :
44598 : n->filename = (yyvsp[0].str);
44599 : (yyval.node) = (Node *) n;
44600 : }
44601 : #line 44602 "gram.c"
44602 52 : break;
44603 :
44604 780 : case 1497: /* CreatedbStmt: CREATE DATABASE name opt_with createdb_opt_list */
44605 : #line 11382 "gram.y"
44606 : {
44607 : CreatedbStmt *n = makeNode(CreatedbStmt);
44608 :
44609 : n->dbname = (yyvsp[-2].str);
44610 : n->options = (yyvsp[0].list);
44611 : (yyval.node) = (Node *) n;
44612 : }
44613 : #line 44614 "gram.c"
44614 780 : break;
44615 :
44616 624 : case 1498: /* createdb_opt_list: createdb_opt_items */
44617 : #line 11392 "gram.y"
44618 : { (yyval.list) = (yyvsp[0].list); }
44619 : #line 44620 "gram.c"
44620 624 : break;
44621 :
44622 216 : case 1499: /* createdb_opt_list: %empty */
44623 : #line 11393 "gram.y"
44624 : { (yyval.list) = NIL; }
44625 : #line 44626 "gram.c"
44626 216 : break;
44627 :
44628 624 : case 1500: /* createdb_opt_items: createdb_opt_item */
44629 : #line 11397 "gram.y"
44630 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
44631 : #line 44632 "gram.c"
44632 624 : break;
44633 :
44634 934 : case 1501: /* createdb_opt_items: createdb_opt_items createdb_opt_item */
44635 : #line 11398 "gram.y"
44636 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
44637 : #line 44638 "gram.c"
44638 934 : break;
44639 :
44640 254 : case 1502: /* createdb_opt_item: createdb_opt_name opt_equal NumericOnly */
44641 : #line 11403 "gram.y"
44642 : {
44643 : (yyval.defelt) = makeDefElem((yyvsp[-2].str), (yyvsp[0].node), (yylsp[-2]));
44644 : }
44645 : #line 44646 "gram.c"
44646 254 : break;
44647 :
44648 1304 : case 1503: /* createdb_opt_item: createdb_opt_name opt_equal opt_boolean_or_string */
44649 : #line 11407 "gram.y"
44650 : {
44651 : (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) makeString((yyvsp[0].str)), (yylsp[-2]));
44652 : }
44653 : #line 44654 "gram.c"
44654 1304 : break;
44655 :
44656 0 : case 1504: /* createdb_opt_item: createdb_opt_name opt_equal DEFAULT */
44657 : #line 11411 "gram.y"
44658 : {
44659 : (yyval.defelt) = makeDefElem((yyvsp[-2].str), NULL, (yylsp[-2]));
44660 : }
44661 : #line 44662 "gram.c"
44662 0 : break;
44663 :
44664 1098 : case 1505: /* createdb_opt_name: IDENT */
44665 : #line 11428 "gram.y"
44666 : { (yyval.str) = (yyvsp[0].str); }
44667 : #line 44668 "gram.c"
44668 1098 : break;
44669 :
44670 2 : case 1506: /* createdb_opt_name: CONNECTION LIMIT */
44671 : #line 11429 "gram.y"
44672 : { (yyval.str) = pstrdup("connection_limit"); }
44673 : #line 44674 "gram.c"
44674 2 : break;
44675 :
44676 98 : case 1507: /* createdb_opt_name: ENCODING */
44677 : #line 11430 "gram.y"
44678 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
44679 : #line 44680 "gram.c"
44680 98 : break;
44681 :
44682 0 : case 1508: /* createdb_opt_name: LOCATION */
44683 : #line 11431 "gram.y"
44684 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
44685 : #line 44686 "gram.c"
44686 0 : break;
44687 :
44688 2 : case 1509: /* createdb_opt_name: OWNER */
44689 : #line 11432 "gram.y"
44690 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
44691 : #line 44692 "gram.c"
44692 2 : break;
44693 :
44694 16 : case 1510: /* createdb_opt_name: TABLESPACE */
44695 : #line 11433 "gram.y"
44696 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
44697 : #line 44698 "gram.c"
44698 16 : break;
44699 :
44700 342 : case 1511: /* createdb_opt_name: TEMPLATE */
44701 : #line 11434 "gram.y"
44702 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
44703 : #line 44704 "gram.c"
44704 342 : break;
44705 :
44706 0 : case 1514: /* AlterDatabaseStmt: ALTER DATABASE name WITH createdb_opt_list */
44707 : #line 11454 "gram.y"
44708 : {
44709 : AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt);
44710 :
44711 : n->dbname = (yyvsp[-2].str);
44712 : n->options = (yyvsp[0].list);
44713 : (yyval.node) = (Node *) n;
44714 : }
44715 : #line 44716 "gram.c"
44716 0 : break;
44717 :
44718 60 : case 1515: /* AlterDatabaseStmt: ALTER DATABASE name createdb_opt_list */
44719 : #line 11462 "gram.y"
44720 : {
44721 : AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt);
44722 :
44723 : n->dbname = (yyvsp[-1].str);
44724 : n->options = (yyvsp[0].list);
44725 : (yyval.node) = (Node *) n;
44726 : }
44727 : #line 44728 "gram.c"
44728 60 : break;
44729 :
44730 16 : case 1516: /* AlterDatabaseStmt: ALTER DATABASE name SET TABLESPACE name */
44731 : #line 11470 "gram.y"
44732 : {
44733 : AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt);
44734 :
44735 : n->dbname = (yyvsp[-3].str);
44736 : n->options = list_make1(makeDefElem("tablespace",
44737 : (Node *) makeString((yyvsp[0].str)), (yylsp[0])));
44738 : (yyval.node) = (Node *) n;
44739 : }
44740 : #line 44741 "gram.c"
44741 16 : break;
44742 :
44743 6 : case 1517: /* AlterDatabaseStmt: ALTER DATABASE name REFRESH COLLATION VERSION_P */
44744 : #line 11479 "gram.y"
44745 : {
44746 : AlterDatabaseRefreshCollStmt *n = makeNode(AlterDatabaseRefreshCollStmt);
44747 :
44748 : n->dbname = (yyvsp[-3].str);
44749 : (yyval.node) = (Node *) n;
44750 : }
44751 : #line 44752 "gram.c"
44752 6 : break;
44753 :
44754 1186 : case 1518: /* AlterDatabaseSetStmt: ALTER DATABASE name SetResetClause */
44755 : #line 11489 "gram.y"
44756 : {
44757 : AlterDatabaseSetStmt *n = makeNode(AlterDatabaseSetStmt);
44758 :
44759 : n->dbname = (yyvsp[-1].str);
44760 : n->setstmt = (yyvsp[0].vsetstmt);
44761 : (yyval.node) = (Node *) n;
44762 : }
44763 : #line 44764 "gram.c"
44764 1186 : break;
44765 :
44766 92 : case 1519: /* DropdbStmt: DROP DATABASE name */
44767 : #line 11507 "gram.y"
44768 : {
44769 : DropdbStmt *n = makeNode(DropdbStmt);
44770 :
44771 : n->dbname = (yyvsp[0].str);
44772 : n->missing_ok = false;
44773 : n->options = NULL;
44774 : (yyval.node) = (Node *) n;
44775 : }
44776 : #line 44777 "gram.c"
44777 92 : break;
44778 :
44779 4 : case 1520: /* DropdbStmt: DROP DATABASE IF_P EXISTS name */
44780 : #line 11516 "gram.y"
44781 : {
44782 : DropdbStmt *n = makeNode(DropdbStmt);
44783 :
44784 : n->dbname = (yyvsp[0].str);
44785 : n->missing_ok = true;
44786 : n->options = NULL;
44787 : (yyval.node) = (Node *) n;
44788 : }
44789 : #line 44790 "gram.c"
44790 4 : break;
44791 :
44792 14 : case 1521: /* DropdbStmt: DROP DATABASE name opt_with '(' drop_option_list ')' */
44793 : #line 11525 "gram.y"
44794 : {
44795 : DropdbStmt *n = makeNode(DropdbStmt);
44796 :
44797 : n->dbname = (yyvsp[-4].str);
44798 : n->missing_ok = false;
44799 : n->options = (yyvsp[-1].list);
44800 : (yyval.node) = (Node *) n;
44801 : }
44802 : #line 44803 "gram.c"
44803 14 : break;
44804 :
44805 12 : case 1522: /* DropdbStmt: DROP DATABASE IF_P EXISTS name opt_with '(' drop_option_list ')' */
44806 : #line 11534 "gram.y"
44807 : {
44808 : DropdbStmt *n = makeNode(DropdbStmt);
44809 :
44810 : n->dbname = (yyvsp[-4].str);
44811 : n->missing_ok = true;
44812 : n->options = (yyvsp[-1].list);
44813 : (yyval.node) = (Node *) n;
44814 : }
44815 : #line 44816 "gram.c"
44816 12 : break;
44817 :
44818 26 : case 1523: /* drop_option_list: drop_option */
44819 : #line 11546 "gram.y"
44820 : {
44821 : (yyval.list) = list_make1((Node *) (yyvsp[0].defelt));
44822 : }
44823 : #line 44824 "gram.c"
44824 26 : break;
44825 :
44826 0 : case 1524: /* drop_option_list: drop_option_list ',' drop_option */
44827 : #line 11550 "gram.y"
44828 : {
44829 : (yyval.list) = lappend((yyvsp[-2].list), (Node *) (yyvsp[0].defelt));
44830 : }
44831 : #line 44832 "gram.c"
44832 0 : break;
44833 :
44834 26 : case 1525: /* drop_option: FORCE */
44835 : #line 11561 "gram.y"
44836 : {
44837 : (yyval.defelt) = makeDefElem("force", NULL, (yylsp[0]));
44838 : }
44839 : #line 44840 "gram.c"
44840 26 : break;
44841 :
44842 6 : case 1526: /* AlterCollationStmt: ALTER COLLATION any_name REFRESH VERSION_P */
44843 : #line 11573 "gram.y"
44844 : {
44845 : AlterCollationStmt *n = makeNode(AlterCollationStmt);
44846 :
44847 : n->collname = (yyvsp[-2].list);
44848 : (yyval.node) = (Node *) n;
44849 : }
44850 : #line 44851 "gram.c"
44851 6 : break;
44852 :
44853 128 : case 1527: /* AlterSystemStmt: ALTER SYSTEM_P SET generic_set */
44854 : #line 11591 "gram.y"
44855 : {
44856 : AlterSystemStmt *n = makeNode(AlterSystemStmt);
44857 :
44858 : n->setstmt = (yyvsp[0].vsetstmt);
44859 : (yyval.node) = (Node *) n;
44860 : }
44861 : #line 44862 "gram.c"
44862 128 : break;
44863 :
44864 54 : case 1528: /* AlterSystemStmt: ALTER SYSTEM_P RESET generic_reset */
44865 : #line 11598 "gram.y"
44866 : {
44867 : AlterSystemStmt *n = makeNode(AlterSystemStmt);
44868 :
44869 : n->setstmt = (yyvsp[0].vsetstmt);
44870 : (yyval.node) = (Node *) n;
44871 : }
44872 : #line 44873 "gram.c"
44873 54 : break;
44874 :
44875 1474 : case 1529: /* CreateDomainStmt: CREATE DOMAIN_P any_name opt_as Typename ColQualList */
44876 : #line 11615 "gram.y"
44877 : {
44878 : CreateDomainStmt *n = makeNode(CreateDomainStmt);
44879 :
44880 : n->domainname = (yyvsp[-3].list);
44881 : n->typeName = (yyvsp[-1].typnam);
44882 : SplitColQualList((yyvsp[0].list), &n->constraints, &n->collClause,
44883 : yyscanner);
44884 : (yyval.node) = (Node *) n;
44885 : }
44886 : #line 44887 "gram.c"
44887 1474 : break;
44888 :
44889 14 : case 1530: /* AlterDomainStmt: ALTER DOMAIN_P any_name alter_column_default */
44890 : #line 11629 "gram.y"
44891 : {
44892 : AlterDomainStmt *n = makeNode(AlterDomainStmt);
44893 :
44894 : n->subtype = 'T';
44895 : n->typeName = (yyvsp[-1].list);
44896 : n->def = (yyvsp[0].node);
44897 : (yyval.node) = (Node *) n;
44898 : }
44899 : #line 44900 "gram.c"
44900 14 : break;
44901 :
44902 12 : case 1531: /* AlterDomainStmt: ALTER DOMAIN_P any_name DROP NOT NULL_P */
44903 : #line 11639 "gram.y"
44904 : {
44905 : AlterDomainStmt *n = makeNode(AlterDomainStmt);
44906 :
44907 : n->subtype = 'N';
44908 : n->typeName = (yyvsp[-3].list);
44909 : (yyval.node) = (Node *) n;
44910 : }
44911 : #line 44912 "gram.c"
44912 12 : break;
44913 :
44914 24 : case 1532: /* AlterDomainStmt: ALTER DOMAIN_P any_name SET NOT NULL_P */
44915 : #line 11648 "gram.y"
44916 : {
44917 : AlterDomainStmt *n = makeNode(AlterDomainStmt);
44918 :
44919 : n->subtype = 'O';
44920 : n->typeName = (yyvsp[-3].list);
44921 : (yyval.node) = (Node *) n;
44922 : }
44923 : #line 44924 "gram.c"
44924 24 : break;
44925 :
44926 174 : case 1533: /* AlterDomainStmt: ALTER DOMAIN_P any_name ADD_P DomainConstraint */
44927 : #line 11657 "gram.y"
44928 : {
44929 : AlterDomainStmt *n = makeNode(AlterDomainStmt);
44930 :
44931 : n->subtype = 'C';
44932 : n->typeName = (yyvsp[-2].list);
44933 : n->def = (yyvsp[0].node);
44934 : (yyval.node) = (Node *) n;
44935 : }
44936 : #line 44937 "gram.c"
44937 174 : break;
44938 :
44939 54 : case 1534: /* AlterDomainStmt: ALTER DOMAIN_P any_name DROP CONSTRAINT name opt_drop_behavior */
44940 : #line 11667 "gram.y"
44941 : {
44942 : AlterDomainStmt *n = makeNode(AlterDomainStmt);
44943 :
44944 : n->subtype = 'X';
44945 : n->typeName = (yyvsp[-4].list);
44946 : n->name = (yyvsp[-1].str);
44947 : n->behavior = (yyvsp[0].dbehavior);
44948 : n->missing_ok = false;
44949 : (yyval.node) = (Node *) n;
44950 : }
44951 : #line 44952 "gram.c"
44952 54 : break;
44953 :
44954 6 : case 1535: /* AlterDomainStmt: ALTER DOMAIN_P any_name DROP CONSTRAINT IF_P EXISTS name opt_drop_behavior */
44955 : #line 11679 "gram.y"
44956 : {
44957 : AlterDomainStmt *n = makeNode(AlterDomainStmt);
44958 :
44959 : n->subtype = 'X';
44960 : n->typeName = (yyvsp[-6].list);
44961 : n->name = (yyvsp[-1].str);
44962 : n->behavior = (yyvsp[0].dbehavior);
44963 : n->missing_ok = true;
44964 : (yyval.node) = (Node *) n;
44965 : }
44966 : #line 44967 "gram.c"
44967 6 : break;
44968 :
44969 12 : case 1536: /* AlterDomainStmt: ALTER DOMAIN_P any_name VALIDATE CONSTRAINT name */
44970 : #line 11691 "gram.y"
44971 : {
44972 : AlterDomainStmt *n = makeNode(AlterDomainStmt);
44973 :
44974 : n->subtype = 'V';
44975 : n->typeName = (yyvsp[-3].list);
44976 : n->name = (yyvsp[0].str);
44977 : (yyval.node) = (Node *) n;
44978 : }
44979 : #line 44980 "gram.c"
44980 12 : break;
44981 :
44982 40 : case 1539: /* AlterTSDictionaryStmt: ALTER TEXT_P SEARCH DICTIONARY any_name definition */
44983 : #line 11714 "gram.y"
44984 : {
44985 : AlterTSDictionaryStmt *n = makeNode(AlterTSDictionaryStmt);
44986 :
44987 : n->dictname = (yyvsp[-1].list);
44988 : n->options = (yyvsp[0].list);
44989 : (yyval.node) = (Node *) n;
44990 : }
44991 : #line 44992 "gram.c"
44992 40 : break;
44993 :
44994 8496 : case 1540: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name ADD_P MAPPING FOR name_list any_with any_name_list */
44995 : #line 11725 "gram.y"
44996 : {
44997 : AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt);
44998 :
44999 : n->kind = ALTER_TSCONFIG_ADD_MAPPING;
45000 : n->cfgname = (yyvsp[-6].list);
45001 : n->tokentype = (yyvsp[-2].list);
45002 : n->dicts = (yyvsp[0].list);
45003 : n->override = false;
45004 : n->replace = false;
45005 : (yyval.node) = (Node *) n;
45006 : }
45007 : #line 45008 "gram.c"
45008 8496 : break;
45009 :
45010 26 : case 1541: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name ALTER MAPPING FOR name_list any_with any_name_list */
45011 : #line 11737 "gram.y"
45012 : {
45013 : AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt);
45014 :
45015 : n->kind = ALTER_TSCONFIG_ALTER_MAPPING_FOR_TOKEN;
45016 : n->cfgname = (yyvsp[-6].list);
45017 : n->tokentype = (yyvsp[-2].list);
45018 : n->dicts = (yyvsp[0].list);
45019 : n->override = true;
45020 : n->replace = false;
45021 : (yyval.node) = (Node *) n;
45022 : }
45023 : #line 45024 "gram.c"
45024 26 : break;
45025 :
45026 18 : case 1542: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name ALTER MAPPING REPLACE any_name any_with any_name */
45027 : #line 11749 "gram.y"
45028 : {
45029 : AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt);
45030 :
45031 : n->kind = ALTER_TSCONFIG_REPLACE_DICT;
45032 : n->cfgname = (yyvsp[-6].list);
45033 : n->tokentype = NIL;
45034 : n->dicts = list_make2((yyvsp[-2].list),(yyvsp[0].list));
45035 : n->override = false;
45036 : n->replace = true;
45037 : (yyval.node) = (Node *) n;
45038 : }
45039 : #line 45040 "gram.c"
45040 18 : break;
45041 :
45042 0 : case 1543: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name ALTER MAPPING FOR name_list REPLACE any_name any_with any_name */
45043 : #line 11761 "gram.y"
45044 : {
45045 : AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt);
45046 :
45047 : n->kind = ALTER_TSCONFIG_REPLACE_DICT_FOR_TOKEN;
45048 : n->cfgname = (yyvsp[-8].list);
45049 : n->tokentype = (yyvsp[-4].list);
45050 : n->dicts = list_make2((yyvsp[-2].list),(yyvsp[0].list));
45051 : n->override = false;
45052 : n->replace = true;
45053 : (yyval.node) = (Node *) n;
45054 : }
45055 : #line 45056 "gram.c"
45056 0 : break;
45057 :
45058 18 : case 1544: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name DROP MAPPING FOR name_list */
45059 : #line 11773 "gram.y"
45060 : {
45061 : AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt);
45062 :
45063 : n->kind = ALTER_TSCONFIG_DROP_MAPPING;
45064 : n->cfgname = (yyvsp[-4].list);
45065 : n->tokentype = (yyvsp[0].list);
45066 : n->missing_ok = false;
45067 : (yyval.node) = (Node *) n;
45068 : }
45069 : #line 45070 "gram.c"
45070 18 : break;
45071 :
45072 12 : case 1545: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name DROP MAPPING IF_P EXISTS FOR name_list */
45073 : #line 11783 "gram.y"
45074 : {
45075 : AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt);
45076 :
45077 : n->kind = ALTER_TSCONFIG_DROP_MAPPING;
45078 : n->cfgname = (yyvsp[-6].list);
45079 : n->tokentype = (yyvsp[0].list);
45080 : n->missing_ok = true;
45081 : (yyval.node) = (Node *) n;
45082 : }
45083 : #line 45084 "gram.c"
45084 12 : break;
45085 :
45086 64 : case 1548: /* CreateConversionStmt: CREATE opt_default CONVERSION_P any_name FOR Sconst TO Sconst FROM any_name */
45087 : #line 11812 "gram.y"
45088 : {
45089 : CreateConversionStmt *n = makeNode(CreateConversionStmt);
45090 :
45091 : n->conversion_name = (yyvsp[-6].list);
45092 : n->for_encoding_name = (yyvsp[-4].str);
45093 : n->to_encoding_name = (yyvsp[-2].str);
45094 : n->func_name = (yyvsp[0].list);
45095 : n->def = (yyvsp[-8].boolean);
45096 : (yyval.node) = (Node *) n;
45097 : }
45098 : #line 45099 "gram.c"
45099 64 : break;
45100 :
45101 0 : case 1549: /* ClusterStmt: CLUSTER '(' utility_option_list ')' qualified_name cluster_index_specification */
45102 : #line 11835 "gram.y"
45103 : {
45104 : ClusterStmt *n = makeNode(ClusterStmt);
45105 :
45106 : n->relation = (yyvsp[-1].range);
45107 : n->indexname = (yyvsp[0].str);
45108 : n->params = (yyvsp[-3].list);
45109 : (yyval.node) = (Node *) n;
45110 : }
45111 : #line 45112 "gram.c"
45112 0 : break;
45113 :
45114 0 : case 1550: /* ClusterStmt: CLUSTER '(' utility_option_list ')' */
45115 : #line 11844 "gram.y"
45116 : {
45117 : ClusterStmt *n = makeNode(ClusterStmt);
45118 :
45119 : n->relation = NULL;
45120 : n->indexname = NULL;
45121 : n->params = (yyvsp[-1].list);
45122 : (yyval.node) = (Node *) n;
45123 : }
45124 : #line 45125 "gram.c"
45125 0 : break;
45126 :
45127 190 : case 1551: /* ClusterStmt: CLUSTER opt_verbose qualified_name cluster_index_specification */
45128 : #line 11854 "gram.y"
45129 : {
45130 : ClusterStmt *n = makeNode(ClusterStmt);
45131 :
45132 : n->relation = (yyvsp[-1].range);
45133 : n->indexname = (yyvsp[0].str);
45134 : n->params = NIL;
45135 : if ((yyvsp[-2].boolean))
45136 : n->params = lappend(n->params, makeDefElem("verbose", NULL, (yylsp[-2])));
45137 : (yyval.node) = (Node *) n;
45138 : }
45139 : #line 45140 "gram.c"
45140 190 : break;
45141 :
45142 28 : case 1552: /* ClusterStmt: CLUSTER opt_verbose */
45143 : #line 11866 "gram.y"
45144 : {
45145 : ClusterStmt *n = makeNode(ClusterStmt);
45146 :
45147 : n->relation = NULL;
45148 : n->indexname = NULL;
45149 : n->params = NIL;
45150 : if ((yyvsp[0].boolean))
45151 : n->params = lappend(n->params, makeDefElem("verbose", NULL, (yylsp[0])));
45152 : (yyval.node) = (Node *) n;
45153 : }
45154 : #line 45155 "gram.c"
45155 28 : break;
45156 :
45157 18 : case 1553: /* ClusterStmt: CLUSTER opt_verbose name ON qualified_name */
45158 : #line 11878 "gram.y"
45159 : {
45160 : ClusterStmt *n = makeNode(ClusterStmt);
45161 :
45162 : n->relation = (yyvsp[0].range);
45163 : n->indexname = (yyvsp[-2].str);
45164 : n->params = NIL;
45165 : if ((yyvsp[-3].boolean))
45166 : n->params = lappend(n->params, makeDefElem("verbose", NULL, (yylsp[-3])));
45167 : (yyval.node) = (Node *) n;
45168 : }
45169 : #line 45170 "gram.c"
45170 18 : break;
45171 :
45172 156 : case 1554: /* cluster_index_specification: USING name */
45173 : #line 11891 "gram.y"
45174 : { (yyval.str) = (yyvsp[0].str); }
45175 : #line 45176 "gram.c"
45176 156 : break;
45177 :
45178 34 : case 1555: /* cluster_index_specification: %empty */
45179 : #line 11892 "gram.y"
45180 : { (yyval.str) = NULL; }
45181 : #line 45182 "gram.c"
45182 34 : break;
45183 :
45184 1210 : case 1556: /* VacuumStmt: VACUUM opt_full opt_freeze opt_verbose opt_analyze opt_vacuum_relation_list */
45185 : #line 11905 "gram.y"
45186 : {
45187 : VacuumStmt *n = makeNode(VacuumStmt);
45188 :
45189 : n->options = NIL;
45190 : if ((yyvsp[-4].boolean))
45191 : n->options = lappend(n->options,
45192 : makeDefElem("full", NULL, (yylsp[-4])));
45193 : if ((yyvsp[-3].boolean))
45194 : n->options = lappend(n->options,
45195 : makeDefElem("freeze", NULL, (yylsp[-3])));
45196 : if ((yyvsp[-2].boolean))
45197 : n->options = lappend(n->options,
45198 : makeDefElem("verbose", NULL, (yylsp[-2])));
45199 : if ((yyvsp[-1].boolean))
45200 : n->options = lappend(n->options,
45201 : makeDefElem("analyze", NULL, (yylsp[-1])));
45202 : n->rels = (yyvsp[0].list);
45203 : n->is_vacuumcmd = true;
45204 : (yyval.node) = (Node *) n;
45205 : }
45206 : #line 45207 "gram.c"
45207 1210 : break;
45208 :
45209 7782 : case 1557: /* VacuumStmt: VACUUM '(' utility_option_list ')' opt_vacuum_relation_list */
45210 : #line 11926 "gram.y"
45211 : {
45212 : VacuumStmt *n = makeNode(VacuumStmt);
45213 :
45214 : n->options = (yyvsp[-2].list);
45215 : n->rels = (yyvsp[0].list);
45216 : n->is_vacuumcmd = true;
45217 : (yyval.node) = (Node *) n;
45218 : }
45219 : #line 45220 "gram.c"
45220 7782 : break;
45221 :
45222 4488 : case 1558: /* AnalyzeStmt: analyze_keyword opt_verbose opt_vacuum_relation_list */
45223 : #line 11937 "gram.y"
45224 : {
45225 : VacuumStmt *n = makeNode(VacuumStmt);
45226 :
45227 : n->options = NIL;
45228 : if ((yyvsp[-1].boolean))
45229 : n->options = lappend(n->options,
45230 : makeDefElem("verbose", NULL, (yylsp[-1])));
45231 : n->rels = (yyvsp[0].list);
45232 : n->is_vacuumcmd = false;
45233 : (yyval.node) = (Node *) n;
45234 : }
45235 : #line 45236 "gram.c"
45236 4488 : break;
45237 :
45238 186 : case 1559: /* AnalyzeStmt: analyze_keyword '(' utility_option_list ')' opt_vacuum_relation_list */
45239 : #line 11949 "gram.y"
45240 : {
45241 : VacuumStmt *n = makeNode(VacuumStmt);
45242 :
45243 : n->options = (yyvsp[-2].list);
45244 : n->rels = (yyvsp[0].list);
45245 : n->is_vacuumcmd = false;
45246 : (yyval.node) = (Node *) n;
45247 : }
45248 : #line 45249 "gram.c"
45249 186 : break;
45250 :
45251 21838 : case 1560: /* utility_option_list: utility_option_elem */
45252 : #line 11961 "gram.y"
45253 : {
45254 : (yyval.list) = list_make1((yyvsp[0].defelt));
45255 : }
45256 : #line 45257 "gram.c"
45257 21838 : break;
45258 :
45259 12276 : case 1561: /* utility_option_list: utility_option_list ',' utility_option_elem */
45260 : #line 11965 "gram.y"
45261 : {
45262 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt));
45263 : }
45264 : #line 45265 "gram.c"
45265 12276 : break;
45266 :
45267 34114 : case 1564: /* utility_option_elem: utility_option_name utility_option_arg */
45268 : #line 11977 "gram.y"
45269 : {
45270 : (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1]));
45271 : }
45272 : #line 45273 "gram.c"
45273 34114 : break;
45274 :
45275 30370 : case 1565: /* utility_option_name: NonReservedWord */
45276 : #line 11983 "gram.y"
45277 : { (yyval.str) = (yyvsp[0].str); }
45278 : #line 45279 "gram.c"
45279 30370 : break;
45280 :
45281 3602 : case 1566: /* utility_option_name: analyze_keyword */
45282 : #line 11984 "gram.y"
45283 : { (yyval.str) = "analyze"; }
45284 : #line 45285 "gram.c"
45285 3602 : break;
45286 :
45287 148 : case 1567: /* utility_option_name: FORMAT_LA */
45288 : #line 11985 "gram.y"
45289 : { (yyval.str) = "format"; }
45290 : #line 45291 "gram.c"
45291 148 : break;
45292 :
45293 17184 : case 1568: /* utility_option_arg: opt_boolean_or_string */
45294 : #line 11989 "gram.y"
45295 : { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
45296 : #line 45297 "gram.c"
45297 17184 : break;
45298 :
45299 380 : case 1569: /* utility_option_arg: NumericOnly */
45300 : #line 11990 "gram.y"
45301 : { (yyval.node) = (Node *) (yyvsp[0].node); }
45302 : #line 45303 "gram.c"
45303 380 : break;
45304 :
45305 16550 : case 1570: /* utility_option_arg: %empty */
45306 : #line 11991 "gram.y"
45307 : { (yyval.node) = NULL; }
45308 : #line 45309 "gram.c"
45309 16550 : break;
45310 :
45311 286 : case 1571: /* opt_analyze: analyze_keyword */
45312 : #line 11995 "gram.y"
45313 : { (yyval.boolean) = true; }
45314 : #line 45315 "gram.c"
45315 286 : break;
45316 :
45317 924 : case 1572: /* opt_analyze: %empty */
45318 : #line 11996 "gram.y"
45319 : { (yyval.boolean) = false; }
45320 : #line 45321 "gram.c"
45321 924 : break;
45322 :
45323 30 : case 1573: /* opt_verbose: VERBOSE */
45324 : #line 12000 "gram.y"
45325 : { (yyval.boolean) = true; }
45326 : #line 45327 "gram.c"
45327 30 : break;
45328 :
45329 8208 : case 1574: /* opt_verbose: %empty */
45330 : #line 12001 "gram.y"
45331 : { (yyval.boolean) = false; }
45332 : #line 45333 "gram.c"
45333 8208 : break;
45334 :
45335 146 : case 1575: /* opt_full: FULL */
45336 : #line 12004 "gram.y"
45337 : { (yyval.boolean) = true; }
45338 : #line 45339 "gram.c"
45339 146 : break;
45340 :
45341 1064 : case 1576: /* opt_full: %empty */
45342 : #line 12005 "gram.y"
45343 : { (yyval.boolean) = false; }
45344 : #line 45345 "gram.c"
45345 1064 : break;
45346 :
45347 160 : case 1577: /* opt_freeze: FREEZE */
45348 : #line 12008 "gram.y"
45349 : { (yyval.boolean) = true; }
45350 : #line 45351 "gram.c"
45351 160 : break;
45352 :
45353 1050 : case 1578: /* opt_freeze: %empty */
45354 : #line 12009 "gram.y"
45355 : { (yyval.boolean) = false; }
45356 : #line 45357 "gram.c"
45357 1050 : break;
45358 :
45359 2804 : case 1579: /* opt_name_list: '(' name_list ')' */
45360 : #line 12013 "gram.y"
45361 : { (yyval.list) = (yyvsp[-1].list); }
45362 : #line 45363 "gram.c"
45363 2804 : break;
45364 :
45365 15900 : case 1580: /* opt_name_list: %empty */
45366 : #line 12014 "gram.y"
45367 : { (yyval.list) = NIL; }
45368 : #line 45369 "gram.c"
45369 15900 : break;
45370 :
45371 13438 : case 1581: /* vacuum_relation: relation_expr opt_name_list */
45372 : #line 12019 "gram.y"
45373 : {
45374 : (yyval.node) = (Node *) makeVacuumRelation((yyvsp[-1].range), InvalidOid, (yyvsp[0].list));
45375 : }
45376 : #line 45377 "gram.c"
45377 13438 : break;
45378 :
45379 13282 : case 1582: /* vacuum_relation_list: vacuum_relation */
45380 : #line 12026 "gram.y"
45381 : { (yyval.list) = list_make1((yyvsp[0].node)); }
45382 : #line 45383 "gram.c"
45383 13282 : break;
45384 :
45385 156 : case 1583: /* vacuum_relation_list: vacuum_relation_list ',' vacuum_relation */
45386 : #line 12028 "gram.y"
45387 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
45388 : #line 45389 "gram.c"
45389 156 : break;
45390 :
45391 13282 : case 1584: /* opt_vacuum_relation_list: vacuum_relation_list */
45392 : #line 12032 "gram.y"
45393 : { (yyval.list) = (yyvsp[0].list); }
45394 : #line 45395 "gram.c"
45395 13282 : break;
45396 :
45397 384 : case 1585: /* opt_vacuum_relation_list: %empty */
45398 : #line 12033 "gram.y"
45399 : { (yyval.list) = NIL; }
45400 : #line 45401 "gram.c"
45401 384 : break;
45402 :
45403 7714 : case 1586: /* ExplainStmt: EXPLAIN ExplainableStmt */
45404 : #line 12047 "gram.y"
45405 : {
45406 : ExplainStmt *n = makeNode(ExplainStmt);
45407 :
45408 : n->query = (yyvsp[0].node);
45409 : n->options = NIL;
45410 : (yyval.node) = (Node *) n;
45411 : }
45412 : #line 45413 "gram.c"
45413 7714 : break;
45414 :
45415 2304 : case 1587: /* ExplainStmt: EXPLAIN analyze_keyword opt_verbose ExplainableStmt */
45416 : #line 12055 "gram.y"
45417 : {
45418 : ExplainStmt *n = makeNode(ExplainStmt);
45419 :
45420 : n->query = (yyvsp[0].node);
45421 : n->options = list_make1(makeDefElem("analyze", NULL, (yylsp[-2])));
45422 : if ((yyvsp[-1].boolean))
45423 : n->options = lappend(n->options,
45424 : makeDefElem("verbose", NULL, (yylsp[-1])));
45425 : (yyval.node) = (Node *) n;
45426 : }
45427 : #line 45428 "gram.c"
45428 2304 : break;
45429 :
45430 12 : case 1588: /* ExplainStmt: EXPLAIN VERBOSE ExplainableStmt */
45431 : #line 12066 "gram.y"
45432 : {
45433 : ExplainStmt *n = makeNode(ExplainStmt);
45434 :
45435 : n->query = (yyvsp[0].node);
45436 : n->options = list_make1(makeDefElem("verbose", NULL, (yylsp[-1])));
45437 : (yyval.node) = (Node *) n;
45438 : }
45439 : #line 45440 "gram.c"
45440 12 : break;
45441 :
45442 13714 : case 1589: /* ExplainStmt: EXPLAIN '(' utility_option_list ')' ExplainableStmt */
45443 : #line 12074 "gram.y"
45444 : {
45445 : ExplainStmt *n = makeNode(ExplainStmt);
45446 :
45447 : n->query = (yyvsp[0].node);
45448 : n->options = (yyvsp[-2].list);
45449 : (yyval.node) = (Node *) n;
45450 : }
45451 : #line 45452 "gram.c"
45452 13714 : break;
45453 :
45454 2320 : case 1600: /* PrepareStmt: PREPARE name prep_type_clause AS PreparableStmt */
45455 : #line 12104 "gram.y"
45456 : {
45457 : PrepareStmt *n = makeNode(PrepareStmt);
45458 :
45459 : n->name = (yyvsp[-3].str);
45460 : n->argtypes = (yyvsp[-2].list);
45461 : n->query = (yyvsp[0].node);
45462 : (yyval.node) = (Node *) n;
45463 : }
45464 : #line 45465 "gram.c"
45465 2320 : break;
45466 :
45467 2012 : case 1601: /* prep_type_clause: '(' type_list ')' */
45468 : #line 12114 "gram.y"
45469 : { (yyval.list) = (yyvsp[-1].list); }
45470 : #line 45471 "gram.c"
45471 2012 : break;
45472 :
45473 326 : case 1602: /* prep_type_clause: %empty */
45474 : #line 12115 "gram.y"
45475 : { (yyval.list) = NIL; }
45476 : #line 45477 "gram.c"
45477 326 : break;
45478 :
45479 20222 : case 1608: /* ExecuteStmt: EXECUTE name execute_param_clause */
45480 : #line 12134 "gram.y"
45481 : {
45482 : ExecuteStmt *n = makeNode(ExecuteStmt);
45483 :
45484 : n->name = (yyvsp[-1].str);
45485 : n->params = (yyvsp[0].list);
45486 : (yyval.node) = (Node *) n;
45487 : }
45488 : #line 45489 "gram.c"
45489 20222 : break;
45490 :
45491 76 : case 1609: /* ExecuteStmt: CREATE OptTemp TABLE create_as_target AS EXECUTE name execute_param_clause opt_with_data */
45492 : #line 12143 "gram.y"
45493 : {
45494 : CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt);
45495 : ExecuteStmt *n = makeNode(ExecuteStmt);
45496 :
45497 : n->name = (yyvsp[-2].str);
45498 : n->params = (yyvsp[-1].list);
45499 : ctas->query = (Node *) n;
45500 : ctas->into = (yyvsp[-5].into);
45501 : ctas->objtype = OBJECT_TABLE;
45502 : ctas->is_select_into = false;
45503 : ctas->if_not_exists = false;
45504 : /* cram additional flags into the IntoClause */
45505 : (yyvsp[-5].into)->rel->relpersistence = (yyvsp[-7].ival);
45506 : (yyvsp[-5].into)->skipData = !((yyvsp[0].boolean));
45507 : (yyval.node) = (Node *) ctas;
45508 : }
45509 : #line 45510 "gram.c"
45510 76 : break;
45511 :
45512 12 : case 1610: /* ExecuteStmt: CREATE OptTemp TABLE IF_P NOT EXISTS create_as_target AS EXECUTE name execute_param_clause opt_with_data */
45513 : #line 12161 "gram.y"
45514 : {
45515 : CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt);
45516 : ExecuteStmt *n = makeNode(ExecuteStmt);
45517 :
45518 : n->name = (yyvsp[-2].str);
45519 : n->params = (yyvsp[-1].list);
45520 : ctas->query = (Node *) n;
45521 : ctas->into = (yyvsp[-5].into);
45522 : ctas->objtype = OBJECT_TABLE;
45523 : ctas->is_select_into = false;
45524 : ctas->if_not_exists = true;
45525 : /* cram additional flags into the IntoClause */
45526 : (yyvsp[-5].into)->rel->relpersistence = (yyvsp[-10].ival);
45527 : (yyvsp[-5].into)->skipData = !((yyvsp[0].boolean));
45528 : (yyval.node) = (Node *) ctas;
45529 : }
45530 : #line 45531 "gram.c"
45531 12 : break;
45532 :
45533 19168 : case 1611: /* execute_param_clause: '(' expr_list ')' */
45534 : #line 12179 "gram.y"
45535 : { (yyval.list) = (yyvsp[-1].list); }
45536 : #line 45537 "gram.c"
45537 19168 : break;
45538 :
45539 1142 : case 1612: /* execute_param_clause: %empty */
45540 : #line 12180 "gram.y"
45541 : { (yyval.list) = NIL; }
45542 : #line 45543 "gram.c"
45543 1142 : break;
45544 :
45545 3984 : case 1613: /* DeallocateStmt: DEALLOCATE name */
45546 : #line 12191 "gram.y"
45547 : {
45548 : DeallocateStmt *n = makeNode(DeallocateStmt);
45549 :
45550 : n->name = (yyvsp[0].str);
45551 : n->isall = false;
45552 : n->location = (yylsp[0]);
45553 : (yyval.node) = (Node *) n;
45554 : }
45555 : #line 45556 "gram.c"
45556 3984 : break;
45557 :
45558 20 : case 1614: /* DeallocateStmt: DEALLOCATE PREPARE name */
45559 : #line 12200 "gram.y"
45560 : {
45561 : DeallocateStmt *n = makeNode(DeallocateStmt);
45562 :
45563 : n->name = (yyvsp[0].str);
45564 : n->isall = false;
45565 : n->location = (yylsp[0]);
45566 : (yyval.node) = (Node *) n;
45567 : }
45568 : #line 45569 "gram.c"
45569 20 : break;
45570 :
45571 54 : case 1615: /* DeallocateStmt: DEALLOCATE ALL */
45572 : #line 12209 "gram.y"
45573 : {
45574 : DeallocateStmt *n = makeNode(DeallocateStmt);
45575 :
45576 : n->name = NULL;
45577 : n->isall = true;
45578 : n->location = -1;
45579 : (yyval.node) = (Node *) n;
45580 : }
45581 : #line 45582 "gram.c"
45582 54 : break;
45583 :
45584 2 : case 1616: /* DeallocateStmt: DEALLOCATE PREPARE ALL */
45585 : #line 12218 "gram.y"
45586 : {
45587 : DeallocateStmt *n = makeNode(DeallocateStmt);
45588 :
45589 : n->name = NULL;
45590 : n->isall = true;
45591 : n->location = -1;
45592 : (yyval.node) = (Node *) n;
45593 : }
45594 : #line 45595 "gram.c"
45595 2 : break;
45596 :
45597 74178 : case 1617: /* InsertStmt: opt_with_clause INSERT INTO insert_target insert_rest opt_on_conflict returning_clause */
45598 : #line 12238 "gram.y"
45599 : {
45600 : (yyvsp[-2].istmt)->relation = (yyvsp[-3].range);
45601 : (yyvsp[-2].istmt)->onConflictClause = (yyvsp[-1].onconflict);
45602 : (yyvsp[-2].istmt)->returningClause = (yyvsp[0].retclause);
45603 : (yyvsp[-2].istmt)->withClause = (yyvsp[-6].with);
45604 : (yyvsp[-2].istmt)->stmt_location = (yyloc);
45605 : (yyval.node) = (Node *) (yyvsp[-2].istmt);
45606 : }
45607 : #line 45608 "gram.c"
45608 74178 : break;
45609 :
45610 74046 : case 1618: /* insert_target: qualified_name */
45611 : #line 12256 "gram.y"
45612 : {
45613 : (yyval.range) = (yyvsp[0].range);
45614 : }
45615 : #line 45616 "gram.c"
45616 74046 : break;
45617 :
45618 138 : case 1619: /* insert_target: qualified_name AS ColId */
45619 : #line 12260 "gram.y"
45620 : {
45621 : (yyvsp[-2].range)->alias = makeAlias((yyvsp[0].str), NIL);
45622 : (yyval.range) = (yyvsp[-2].range);
45623 : }
45624 : #line 45625 "gram.c"
45625 138 : break;
45626 :
45627 49050 : case 1620: /* insert_rest: SelectStmt */
45628 : #line 12268 "gram.y"
45629 : {
45630 : (yyval.istmt) = makeNode(InsertStmt);
45631 : (yyval.istmt)->cols = NIL;
45632 : (yyval.istmt)->selectStmt = (yyvsp[0].node);
45633 : }
45634 : #line 45635 "gram.c"
45635 49050 : break;
45636 :
45637 96 : case 1621: /* insert_rest: OVERRIDING override_kind VALUE_P SelectStmt */
45638 : #line 12274 "gram.y"
45639 : {
45640 : (yyval.istmt) = makeNode(InsertStmt);
45641 : (yyval.istmt)->cols = NIL;
45642 : (yyval.istmt)->override = (yyvsp[-2].ival);
45643 : (yyval.istmt)->selectStmt = (yyvsp[0].node);
45644 : }
45645 : #line 45646 "gram.c"
45646 96 : break;
45647 :
45648 14230 : case 1622: /* insert_rest: '(' insert_column_list ')' SelectStmt */
45649 : #line 12281 "gram.y"
45650 : {
45651 : (yyval.istmt) = makeNode(InsertStmt);
45652 : (yyval.istmt)->cols = (yyvsp[-2].list);
45653 : (yyval.istmt)->selectStmt = (yyvsp[0].node);
45654 : }
45655 : #line 45656 "gram.c"
45656 14230 : break;
45657 :
45658 0 : case 1623: /* insert_rest: '(' insert_column_list ')' OVERRIDING override_kind VALUE_P SelectStmt */
45659 : #line 12287 "gram.y"
45660 : {
45661 : (yyval.istmt) = makeNode(InsertStmt);
45662 : (yyval.istmt)->cols = (yyvsp[-5].list);
45663 : (yyval.istmt)->override = (yyvsp[-2].ival);
45664 : (yyval.istmt)->selectStmt = (yyvsp[0].node);
45665 : }
45666 : #line 45667 "gram.c"
45667 0 : break;
45668 :
45669 10808 : case 1624: /* insert_rest: DEFAULT VALUES */
45670 : #line 12294 "gram.y"
45671 : {
45672 : (yyval.istmt) = makeNode(InsertStmt);
45673 : (yyval.istmt)->cols = NIL;
45674 : (yyval.istmt)->selectStmt = NULL;
45675 : }
45676 : #line 45677 "gram.c"
45677 10808 : break;
45678 :
45679 66 : case 1625: /* override_kind: USER */
45680 : #line 12302 "gram.y"
45681 : { (yyval.ival) = OVERRIDING_USER_VALUE; }
45682 : #line 45683 "gram.c"
45683 66 : break;
45684 :
45685 60 : case 1626: /* override_kind: SYSTEM_P */
45686 : #line 12303 "gram.y"
45687 : { (yyval.ival) = OVERRIDING_SYSTEM_VALUE; }
45688 : #line 45689 "gram.c"
45689 60 : break;
45690 :
45691 14528 : case 1627: /* insert_column_list: insert_column_item */
45692 : #line 12308 "gram.y"
45693 : { (yyval.list) = list_make1((yyvsp[0].target)); }
45694 : #line 45695 "gram.c"
45695 14528 : break;
45696 :
45697 16032 : case 1628: /* insert_column_list: insert_column_list ',' insert_column_item */
45698 : #line 12310 "gram.y"
45699 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); }
45700 : #line 45701 "gram.c"
45701 16032 : break;
45702 :
45703 30560 : case 1629: /* insert_column_item: ColId opt_indirection */
45704 : #line 12315 "gram.y"
45705 : {
45706 : (yyval.target) = makeNode(ResTarget);
45707 : (yyval.target)->name = (yyvsp[-1].str);
45708 : (yyval.target)->indirection = check_indirection((yyvsp[0].list), yyscanner);
45709 : (yyval.target)->val = NULL;
45710 : (yyval.target)->location = (yylsp[-1]);
45711 : }
45712 : #line 45713 "gram.c"
45713 30560 : break;
45714 :
45715 1306 : case 1630: /* opt_on_conflict: ON CONFLICT opt_conf_expr DO UPDATE SET set_clause_list where_clause */
45716 : #line 12326 "gram.y"
45717 : {
45718 : (yyval.onconflict) = makeNode(OnConflictClause);
45719 : (yyval.onconflict)->action = ONCONFLICT_UPDATE;
45720 : (yyval.onconflict)->infer = (yyvsp[-5].infer);
45721 : (yyval.onconflict)->targetList = (yyvsp[-1].list);
45722 : (yyval.onconflict)->whereClause = (yyvsp[0].node);
45723 : (yyval.onconflict)->location = (yylsp[-7]);
45724 : }
45725 : #line 45726 "gram.c"
45726 1306 : break;
45727 :
45728 550 : case 1631: /* opt_on_conflict: ON CONFLICT opt_conf_expr DO NOTHING */
45729 : #line 12336 "gram.y"
45730 : {
45731 : (yyval.onconflict) = makeNode(OnConflictClause);
45732 : (yyval.onconflict)->action = ONCONFLICT_NOTHING;
45733 : (yyval.onconflict)->infer = (yyvsp[-2].infer);
45734 : (yyval.onconflict)->targetList = NIL;
45735 : (yyval.onconflict)->whereClause = NULL;
45736 : (yyval.onconflict)->location = (yylsp[-4]);
45737 : }
45738 : #line 45739 "gram.c"
45739 550 : break;
45740 :
45741 72328 : case 1632: /* opt_on_conflict: %empty */
45742 : #line 12345 "gram.y"
45743 : {
45744 : (yyval.onconflict) = NULL;
45745 : }
45746 : #line 45747 "gram.c"
45747 72328 : break;
45748 :
45749 1430 : case 1633: /* opt_conf_expr: '(' index_params ')' where_clause */
45750 : #line 12352 "gram.y"
45751 : {
45752 : (yyval.infer) = makeNode(InferClause);
45753 : (yyval.infer)->indexElems = (yyvsp[-2].list);
45754 : (yyval.infer)->whereClause = (yyvsp[0].node);
45755 : (yyval.infer)->conname = NULL;
45756 : (yyval.infer)->location = (yylsp[-3]);
45757 : }
45758 : #line 45759 "gram.c"
45759 1430 : break;
45760 :
45761 192 : case 1634: /* opt_conf_expr: ON CONSTRAINT name */
45762 : #line 12361 "gram.y"
45763 : {
45764 : (yyval.infer) = makeNode(InferClause);
45765 : (yyval.infer)->indexElems = NIL;
45766 : (yyval.infer)->whereClause = NULL;
45767 : (yyval.infer)->conname = (yyvsp[0].str);
45768 : (yyval.infer)->location = (yylsp[-2]);
45769 : }
45770 : #line 45771 "gram.c"
45771 192 : break;
45772 :
45773 234 : case 1635: /* opt_conf_expr: %empty */
45774 : #line 12369 "gram.y"
45775 : {
45776 : (yyval.infer) = NULL;
45777 : }
45778 : #line 45779 "gram.c"
45779 234 : break;
45780 :
45781 3138 : case 1636: /* returning_clause: RETURNING returning_with_clause target_list */
45782 : #line 12376 "gram.y"
45783 : {
45784 : ReturningClause *n = makeNode(ReturningClause);
45785 :
45786 : n->options = (yyvsp[-1].list);
45787 : n->exprs = (yyvsp[0].list);
45788 : (yyval.retclause) = n;
45789 : }
45790 : #line 45791 "gram.c"
45791 3138 : break;
45792 :
45793 91698 : case 1637: /* returning_clause: %empty */
45794 : #line 12384 "gram.y"
45795 : {
45796 : (yyval.retclause) = NULL;
45797 : }
45798 : #line 45799 "gram.c"
45799 91698 : break;
45800 :
45801 72 : case 1638: /* returning_with_clause: WITH '(' returning_options ')' */
45802 : #line 12390 "gram.y"
45803 : { (yyval.list) = (yyvsp[-1].list); }
45804 : #line 45805 "gram.c"
45805 72 : break;
45806 :
45807 3066 : case 1639: /* returning_with_clause: %empty */
45808 : #line 12391 "gram.y"
45809 : { (yyval.list) = NIL; }
45810 : #line 45811 "gram.c"
45811 3066 : break;
45812 :
45813 72 : case 1640: /* returning_options: returning_option */
45814 : #line 12395 "gram.y"
45815 : { (yyval.list) = list_make1((yyvsp[0].node)); }
45816 : #line 45817 "gram.c"
45817 72 : break;
45818 :
45819 54 : case 1641: /* returning_options: returning_options ',' returning_option */
45820 : #line 12396 "gram.y"
45821 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
45822 : #line 45823 "gram.c"
45823 54 : break;
45824 :
45825 126 : case 1642: /* returning_option: returning_option_kind AS ColId */
45826 : #line 12401 "gram.y"
45827 : {
45828 : ReturningOption *n = makeNode(ReturningOption);
45829 :
45830 : n->option = (yyvsp[-2].retoptionkind);
45831 : n->value = (yyvsp[0].str);
45832 : n->location = (yylsp[-2]);
45833 : (yyval.node) = (Node *) n;
45834 : }
45835 : #line 45836 "gram.c"
45836 126 : break;
45837 :
45838 54 : case 1643: /* returning_option_kind: OLD */
45839 : #line 12412 "gram.y"
45840 : { (yyval.retoptionkind) = RETURNING_OPTION_OLD; }
45841 : #line 45842 "gram.c"
45842 54 : break;
45843 :
45844 72 : case 1644: /* returning_option_kind: NEW */
45845 : #line 12413 "gram.y"
45846 : { (yyval.retoptionkind) = RETURNING_OPTION_NEW; }
45847 : #line 45848 "gram.c"
45848 72 : break;
45849 :
45850 4608 : case 1645: /* DeleteStmt: opt_with_clause DELETE_P FROM relation_expr_opt_alias using_clause where_or_current_clause returning_clause */
45851 : #line 12426 "gram.y"
45852 : {
45853 : DeleteStmt *n = makeNode(DeleteStmt);
45854 :
45855 : n->relation = (yyvsp[-3].range);
45856 : n->usingClause = (yyvsp[-2].list);
45857 : n->whereClause = (yyvsp[-1].node);
45858 : n->returningClause = (yyvsp[0].retclause);
45859 : n->withClause = (yyvsp[-6].with);
45860 : n->stmt_location = (yyloc);
45861 : (yyval.node) = (Node *) n;
45862 : }
45863 : #line 45864 "gram.c"
45864 4608 : break;
45865 :
45866 108 : case 1646: /* using_clause: USING from_list */
45867 : #line 12440 "gram.y"
45868 : { (yyval.list) = (yyvsp[0].list); }
45869 : #line 45870 "gram.c"
45870 108 : break;
45871 :
45872 4500 : case 1647: /* using_clause: %empty */
45873 : #line 12441 "gram.y"
45874 : { (yyval.list) = NIL; }
45875 : #line 45876 "gram.c"
45876 4500 : break;
45877 :
45878 2478 : case 1648: /* LockStmt: LOCK_P opt_table relation_expr_list opt_lock opt_nowait */
45879 : #line 12453 "gram.y"
45880 : {
45881 : LockStmt *n = makeNode(LockStmt);
45882 :
45883 : n->relations = (yyvsp[-2].list);
45884 : n->mode = (yyvsp[-1].ival);
45885 : n->nowait = (yyvsp[0].boolean);
45886 : (yyval.node) = (Node *) n;
45887 : }
45888 : #line 45889 "gram.c"
45889 2478 : break;
45890 :
45891 2370 : case 1649: /* opt_lock: IN_P lock_type MODE */
45892 : #line 12463 "gram.y"
45893 : { (yyval.ival) = (yyvsp[-1].ival); }
45894 : #line 45895 "gram.c"
45895 2370 : break;
45896 :
45897 108 : case 1650: /* opt_lock: %empty */
45898 : #line 12464 "gram.y"
45899 : { (yyval.ival) = AccessExclusiveLock; }
45900 : #line 45901 "gram.c"
45901 108 : break;
45902 :
45903 1880 : case 1651: /* lock_type: ACCESS SHARE */
45904 : #line 12467 "gram.y"
45905 : { (yyval.ival) = AccessShareLock; }
45906 : #line 45907 "gram.c"
45907 1880 : break;
45908 :
45909 14 : case 1652: /* lock_type: ROW SHARE */
45910 : #line 12468 "gram.y"
45911 : { (yyval.ival) = RowShareLock; }
45912 : #line 45913 "gram.c"
45913 14 : break;
45914 :
45915 88 : case 1653: /* lock_type: ROW EXCLUSIVE */
45916 : #line 12469 "gram.y"
45917 : { (yyval.ival) = RowExclusiveLock; }
45918 : #line 45919 "gram.c"
45919 88 : break;
45920 :
45921 66 : case 1654: /* lock_type: SHARE UPDATE EXCLUSIVE */
45922 : #line 12470 "gram.y"
45923 : { (yyval.ival) = ShareUpdateExclusiveLock; }
45924 : #line 45925 "gram.c"
45925 66 : break;
45926 :
45927 80 : case 1655: /* lock_type: SHARE */
45928 : #line 12471 "gram.y"
45929 : { (yyval.ival) = ShareLock; }
45930 : #line 45931 "gram.c"
45931 80 : break;
45932 :
45933 14 : case 1656: /* lock_type: SHARE ROW EXCLUSIVE */
45934 : #line 12472 "gram.y"
45935 : { (yyval.ival) = ShareRowExclusiveLock; }
45936 : #line 45937 "gram.c"
45937 14 : break;
45938 :
45939 102 : case 1657: /* lock_type: EXCLUSIVE */
45940 : #line 12473 "gram.y"
45941 : { (yyval.ival) = ExclusiveLock; }
45942 : #line 45943 "gram.c"
45943 102 : break;
45944 :
45945 126 : case 1658: /* lock_type: ACCESS EXCLUSIVE */
45946 : #line 12474 "gram.y"
45947 : { (yyval.ival) = AccessExclusiveLock; }
45948 : #line 45949 "gram.c"
45949 126 : break;
45950 :
45951 1546 : case 1659: /* opt_nowait: NOWAIT */
45952 : #line 12477 "gram.y"
45953 : { (yyval.boolean) = true; }
45954 : #line 45955 "gram.c"
45955 1546 : break;
45956 :
45957 962 : case 1660: /* opt_nowait: %empty */
45958 : #line 12478 "gram.y"
45959 : { (yyval.boolean) = false; }
45960 : #line 45961 "gram.c"
45961 962 : break;
45962 :
45963 50 : case 1661: /* opt_nowait_or_skip: NOWAIT */
45964 : #line 12482 "gram.y"
45965 : { (yyval.ival) = LockWaitError; }
45966 : #line 45967 "gram.c"
45967 50 : break;
45968 :
45969 190 : case 1662: /* opt_nowait_or_skip: SKIP LOCKED */
45970 : #line 12483 "gram.y"
45971 : { (yyval.ival) = LockWaitSkip; }
45972 : #line 45973 "gram.c"
45973 190 : break;
45974 :
45975 4872 : case 1663: /* opt_nowait_or_skip: %empty */
45976 : #line 12484 "gram.y"
45977 : { (yyval.ival) = LockWaitBlock; }
45978 : #line 45979 "gram.c"
45979 4872 : break;
45980 :
45981 13998 : case 1664: /* UpdateStmt: opt_with_clause UPDATE relation_expr_opt_alias SET set_clause_list from_clause where_or_current_clause returning_clause */
45982 : #line 12500 "gram.y"
45983 : {
45984 : UpdateStmt *n = makeNode(UpdateStmt);
45985 :
45986 : n->relation = (yyvsp[-5].range);
45987 : n->targetList = (yyvsp[-3].list);
45988 : n->fromClause = (yyvsp[-2].list);
45989 : n->whereClause = (yyvsp[-1].node);
45990 : n->returningClause = (yyvsp[0].retclause);
45991 : n->withClause = (yyvsp[-7].with);
45992 : n->stmt_location = (yyloc);
45993 : (yyval.node) = (Node *) n;
45994 : }
45995 : #line 45996 "gram.c"
45996 13998 : break;
45997 :
45998 16854 : case 1665: /* set_clause_list: set_clause */
45999 : #line 12515 "gram.y"
46000 : { (yyval.list) = (yyvsp[0].list); }
46001 : #line 46002 "gram.c"
46002 16854 : break;
46003 :
46004 4098 : case 1666: /* set_clause_list: set_clause_list ',' set_clause */
46005 : #line 12516 "gram.y"
46006 : { (yyval.list) = list_concat((yyvsp[-2].list),(yyvsp[0].list)); }
46007 : #line 46008 "gram.c"
46008 4098 : break;
46009 :
46010 20768 : case 1667: /* set_clause: set_target '=' a_expr */
46011 : #line 12521 "gram.y"
46012 : {
46013 : (yyvsp[-2].target)->val = (Node *) (yyvsp[0].node);
46014 : (yyval.list) = list_make1((yyvsp[-2].target));
46015 : }
46016 : #line 46017 "gram.c"
46017 20768 : break;
46018 :
46019 184 : case 1668: /* set_clause: '(' set_target_list ')' '=' a_expr */
46020 : #line 12526 "gram.y"
46021 : {
46022 : int ncolumns = list_length((yyvsp[-3].list));
46023 : int i = 1;
46024 : ListCell *col_cell;
46025 :
46026 : /* Create a MultiAssignRef source for each target */
46027 : foreach(col_cell, (yyvsp[-3].list))
46028 : {
46029 : ResTarget *res_col = (ResTarget *) lfirst(col_cell);
46030 : MultiAssignRef *r = makeNode(MultiAssignRef);
46031 :
46032 : r->source = (Node *) (yyvsp[0].node);
46033 : r->colno = i;
46034 : r->ncolumns = ncolumns;
46035 : res_col->val = (Node *) r;
46036 : i++;
46037 : }
46038 :
46039 : (yyval.list) = (yyvsp[-3].list);
46040 : }
46041 : #line 46042 "gram.c"
46042 184 : break;
46043 :
46044 21158 : case 1669: /* set_target: ColId opt_indirection */
46045 : #line 12550 "gram.y"
46046 : {
46047 : (yyval.target) = makeNode(ResTarget);
46048 : (yyval.target)->name = (yyvsp[-1].str);
46049 : (yyval.target)->indirection = check_indirection((yyvsp[0].list), yyscanner);
46050 : (yyval.target)->val = NULL; /* upper production sets this */
46051 : (yyval.target)->location = (yylsp[-1]);
46052 : }
46053 : #line 46054 "gram.c"
46054 21158 : break;
46055 :
46056 190 : case 1670: /* set_target_list: set_target */
46057 : #line 12560 "gram.y"
46058 : { (yyval.list) = list_make1((yyvsp[0].target)); }
46059 : #line 46060 "gram.c"
46060 190 : break;
46061 :
46062 200 : case 1671: /* set_target_list: set_target_list ',' set_target */
46063 : #line 12561 "gram.y"
46064 : { (yyval.list) = lappend((yyvsp[-2].list),(yyvsp[0].target)); }
46065 : #line 46066 "gram.c"
46066 200 : break;
46067 :
46068 2052 : case 1672: /* MergeStmt: opt_with_clause MERGE INTO relation_expr_opt_alias USING table_ref ON a_expr merge_when_list returning_clause */
46069 : #line 12578 "gram.y"
46070 : {
46071 : MergeStmt *m = makeNode(MergeStmt);
46072 :
46073 : m->withClause = (yyvsp[-9].with);
46074 : m->relation = (yyvsp[-6].range);
46075 : m->sourceRelation = (yyvsp[-4].node);
46076 : m->joinCondition = (yyvsp[-2].node);
46077 : m->mergeWhenClauses = (yyvsp[-1].list);
46078 : m->returningClause = (yyvsp[0].retclause);
46079 : m->stmt_location = (yyloc);
46080 :
46081 : (yyval.node) = (Node *) m;
46082 : }
46083 : #line 46084 "gram.c"
46084 2052 : break;
46085 :
46086 2052 : case 1673: /* merge_when_list: merge_when_clause */
46087 : #line 12594 "gram.y"
46088 : { (yyval.list) = list_make1((yyvsp[0].node)); }
46089 : #line 46090 "gram.c"
46090 2052 : break;
46091 :
46092 1164 : case 1674: /* merge_when_list: merge_when_list merge_when_clause */
46093 : #line 12595 "gram.y"
46094 : { (yyval.list) = lappend((yyvsp[-1].list),(yyvsp[0].node)); }
46095 : #line 46096 "gram.c"
46096 1164 : break;
46097 :
46098 1550 : case 1675: /* merge_when_clause: merge_when_tgt_matched opt_merge_when_condition THEN merge_update */
46099 : #line 12606 "gram.y"
46100 : {
46101 : (yyvsp[0].mergewhen)->matchKind = (yyvsp[-3].mergematch);
46102 : (yyvsp[0].mergewhen)->condition = (yyvsp[-2].node);
46103 :
46104 : (yyval.node) = (Node *) (yyvsp[0].mergewhen);
46105 : }
46106 : #line 46107 "gram.c"
46107 1550 : break;
46108 :
46109 518 : case 1676: /* merge_when_clause: merge_when_tgt_matched opt_merge_when_condition THEN merge_delete */
46110 : #line 12613 "gram.y"
46111 : {
46112 : (yyvsp[0].mergewhen)->matchKind = (yyvsp[-3].mergematch);
46113 : (yyvsp[0].mergewhen)->condition = (yyvsp[-2].node);
46114 :
46115 : (yyval.node) = (Node *) (yyvsp[0].mergewhen);
46116 : }
46117 : #line 46118 "gram.c"
46118 518 : break;
46119 :
46120 1064 : case 1677: /* merge_when_clause: merge_when_tgt_not_matched opt_merge_when_condition THEN merge_insert */
46121 : #line 12620 "gram.y"
46122 : {
46123 : (yyvsp[0].mergewhen)->matchKind = (yyvsp[-3].mergematch);
46124 : (yyvsp[0].mergewhen)->condition = (yyvsp[-2].node);
46125 :
46126 : (yyval.node) = (Node *) (yyvsp[0].mergewhen);
46127 : }
46128 : #line 46129 "gram.c"
46129 1064 : break;
46130 :
46131 64 : case 1678: /* merge_when_clause: merge_when_tgt_matched opt_merge_when_condition THEN DO NOTHING */
46132 : #line 12627 "gram.y"
46133 : {
46134 : MergeWhenClause *m = makeNode(MergeWhenClause);
46135 :
46136 : m->matchKind = (yyvsp[-4].mergematch);
46137 : m->commandType = CMD_NOTHING;
46138 : m->condition = (yyvsp[-3].node);
46139 :
46140 : (yyval.node) = (Node *) m;
46141 : }
46142 : #line 46143 "gram.c"
46143 64 : break;
46144 :
46145 20 : case 1679: /* merge_when_clause: merge_when_tgt_not_matched opt_merge_when_condition THEN DO NOTHING */
46146 : #line 12637 "gram.y"
46147 : {
46148 : MergeWhenClause *m = makeNode(MergeWhenClause);
46149 :
46150 : m->matchKind = (yyvsp[-4].mergematch);
46151 : m->commandType = CMD_NOTHING;
46152 : m->condition = (yyvsp[-3].node);
46153 :
46154 : (yyval.node) = (Node *) m;
46155 : }
46156 : #line 46157 "gram.c"
46157 20 : break;
46158 :
46159 1970 : case 1680: /* merge_when_tgt_matched: WHEN MATCHED */
46160 : #line 12649 "gram.y"
46161 : { (yyval.mergematch) = MERGE_WHEN_MATCHED; }
46162 : #line 46163 "gram.c"
46163 1970 : break;
46164 :
46165 180 : case 1681: /* merge_when_tgt_matched: WHEN NOT MATCHED BY SOURCE */
46166 : #line 12650 "gram.y"
46167 : { (yyval.mergematch) = MERGE_WHEN_NOT_MATCHED_BY_SOURCE; }
46168 : #line 46169 "gram.c"
46169 180 : break;
46170 :
46171 1090 : case 1682: /* merge_when_tgt_not_matched: WHEN NOT MATCHED */
46172 : #line 12654 "gram.y"
46173 : { (yyval.mergematch) = MERGE_WHEN_NOT_MATCHED_BY_TARGET; }
46174 : #line 46175 "gram.c"
46175 1090 : break;
46176 :
46177 18 : case 1683: /* merge_when_tgt_not_matched: WHEN NOT MATCHED BY TARGET */
46178 : #line 12655 "gram.y"
46179 : { (yyval.mergematch) = MERGE_WHEN_NOT_MATCHED_BY_TARGET; }
46180 : #line 46181 "gram.c"
46181 18 : break;
46182 :
46183 808 : case 1684: /* opt_merge_when_condition: AND a_expr */
46184 : #line 12659 "gram.y"
46185 : { (yyval.node) = (yyvsp[0].node); }
46186 : #line 46187 "gram.c"
46187 808 : break;
46188 :
46189 2450 : case 1685: /* opt_merge_when_condition: %empty */
46190 : #line 12660 "gram.y"
46191 : { (yyval.node) = NULL; }
46192 : #line 46193 "gram.c"
46193 2450 : break;
46194 :
46195 1550 : case 1686: /* merge_update: UPDATE SET set_clause_list */
46196 : #line 12665 "gram.y"
46197 : {
46198 : MergeWhenClause *n = makeNode(MergeWhenClause);
46199 : n->commandType = CMD_UPDATE;
46200 : n->override = OVERRIDING_NOT_SET;
46201 : n->targetList = (yyvsp[0].list);
46202 : n->values = NIL;
46203 :
46204 : (yyval.mergewhen) = n;
46205 : }
46206 : #line 46207 "gram.c"
46207 1550 : break;
46208 :
46209 518 : case 1687: /* merge_delete: DELETE_P */
46210 : #line 12678 "gram.y"
46211 : {
46212 : MergeWhenClause *n = makeNode(MergeWhenClause);
46213 : n->commandType = CMD_DELETE;
46214 : n->override = OVERRIDING_NOT_SET;
46215 : n->targetList = NIL;
46216 : n->values = NIL;
46217 :
46218 : (yyval.mergewhen) = n;
46219 : }
46220 : #line 46221 "gram.c"
46221 518 : break;
46222 :
46223 730 : case 1688: /* merge_insert: INSERT merge_values_clause */
46224 : #line 12691 "gram.y"
46225 : {
46226 : MergeWhenClause *n = makeNode(MergeWhenClause);
46227 : n->commandType = CMD_INSERT;
46228 : n->override = OVERRIDING_NOT_SET;
46229 : n->targetList = NIL;
46230 : n->values = (yyvsp[0].list);
46231 : (yyval.mergewhen) = n;
46232 : }
46233 : #line 46234 "gram.c"
46234 730 : break;
46235 :
46236 0 : case 1689: /* merge_insert: INSERT OVERRIDING override_kind VALUE_P merge_values_clause */
46237 : #line 12700 "gram.y"
46238 : {
46239 : MergeWhenClause *n = makeNode(MergeWhenClause);
46240 : n->commandType = CMD_INSERT;
46241 : n->override = (yyvsp[-2].ival);
46242 : n->targetList = NIL;
46243 : n->values = (yyvsp[0].list);
46244 : (yyval.mergewhen) = n;
46245 : }
46246 : #line 46247 "gram.c"
46247 0 : break;
46248 :
46249 268 : case 1690: /* merge_insert: INSERT '(' insert_column_list ')' merge_values_clause */
46250 : #line 12709 "gram.y"
46251 : {
46252 : MergeWhenClause *n = makeNode(MergeWhenClause);
46253 : n->commandType = CMD_INSERT;
46254 : n->override = OVERRIDING_NOT_SET;
46255 : n->targetList = (yyvsp[-2].list);
46256 : n->values = (yyvsp[0].list);
46257 : (yyval.mergewhen) = n;
46258 : }
46259 : #line 46260 "gram.c"
46260 268 : break;
46261 :
46262 30 : case 1691: /* merge_insert: INSERT '(' insert_column_list ')' OVERRIDING override_kind VALUE_P merge_values_clause */
46263 : #line 12718 "gram.y"
46264 : {
46265 : MergeWhenClause *n = makeNode(MergeWhenClause);
46266 : n->commandType = CMD_INSERT;
46267 : n->override = (yyvsp[-2].ival);
46268 : n->targetList = (yyvsp[-5].list);
46269 : n->values = (yyvsp[0].list);
46270 : (yyval.mergewhen) = n;
46271 : }
46272 : #line 46273 "gram.c"
46273 30 : break;
46274 :
46275 36 : case 1692: /* merge_insert: INSERT DEFAULT VALUES */
46276 : #line 12727 "gram.y"
46277 : {
46278 : MergeWhenClause *n = makeNode(MergeWhenClause);
46279 : n->commandType = CMD_INSERT;
46280 : n->override = OVERRIDING_NOT_SET;
46281 : n->targetList = NIL;
46282 : n->values = NIL;
46283 : (yyval.mergewhen) = n;
46284 : }
46285 : #line 46286 "gram.c"
46286 36 : break;
46287 :
46288 1028 : case 1693: /* merge_values_clause: VALUES '(' expr_list ')' */
46289 : #line 12739 "gram.y"
46290 : {
46291 : (yyval.list) = (yyvsp[-1].list);
46292 : }
46293 : #line 46294 "gram.c"
46294 1028 : break;
46295 :
46296 4558 : case 1694: /* DeclareCursorStmt: DECLARE cursor_name cursor_options CURSOR opt_hold FOR SelectStmt */
46297 : #line 12751 "gram.y"
46298 : {
46299 : DeclareCursorStmt *n = makeNode(DeclareCursorStmt);
46300 :
46301 : n->portalname = (yyvsp[-5].str);
46302 : /* currently we always set FAST_PLAN option */
46303 : n->options = (yyvsp[-4].ival) | (yyvsp[-2].ival) | CURSOR_OPT_FAST_PLAN;
46304 : n->query = (yyvsp[0].node);
46305 : (yyval.node) = (Node *) n;
46306 : }
46307 : #line 46308 "gram.c"
46308 4558 : break;
46309 :
46310 14530 : case 1695: /* cursor_name: name */
46311 : #line 12762 "gram.y"
46312 : { (yyval.str) = (yyvsp[0].str); }
46313 : #line 46314 "gram.c"
46314 14530 : break;
46315 :
46316 4558 : case 1696: /* cursor_options: %empty */
46317 : #line 12765 "gram.y"
46318 : { (yyval.ival) = 0; }
46319 : #line 46320 "gram.c"
46320 4558 : break;
46321 :
46322 28 : case 1697: /* cursor_options: cursor_options NO SCROLL */
46323 : #line 12766 "gram.y"
46324 : { (yyval.ival) = (yyvsp[-2].ival) | CURSOR_OPT_NO_SCROLL; }
46325 : #line 46326 "gram.c"
46326 28 : break;
46327 :
46328 240 : case 1698: /* cursor_options: cursor_options SCROLL */
46329 : #line 12767 "gram.y"
46330 : { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_SCROLL; }
46331 : #line 46332 "gram.c"
46332 240 : break;
46333 :
46334 14 : case 1699: /* cursor_options: cursor_options BINARY */
46335 : #line 12768 "gram.y"
46336 : { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_BINARY; }
46337 : #line 46338 "gram.c"
46338 14 : break;
46339 :
46340 0 : case 1700: /* cursor_options: cursor_options ASENSITIVE */
46341 : #line 12769 "gram.y"
46342 : { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_ASENSITIVE; }
46343 : #line 46344 "gram.c"
46344 0 : break;
46345 :
46346 6 : case 1701: /* cursor_options: cursor_options INSENSITIVE */
46347 : #line 12770 "gram.y"
46348 : { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_INSENSITIVE; }
46349 : #line 46350 "gram.c"
46350 6 : break;
46351 :
46352 4460 : case 1702: /* opt_hold: %empty */
46353 : #line 12773 "gram.y"
46354 : { (yyval.ival) = 0; }
46355 : #line 46356 "gram.c"
46356 4460 : break;
46357 :
46358 92 : case 1703: /* opt_hold: WITH HOLD */
46359 : #line 12774 "gram.y"
46360 : { (yyval.ival) = CURSOR_OPT_HOLD; }
46361 : #line 46362 "gram.c"
46362 92 : break;
46363 :
46364 6 : case 1704: /* opt_hold: WITHOUT HOLD */
46365 : #line 12775 "gram.y"
46366 : { (yyval.ival) = 0; }
46367 : #line 46368 "gram.c"
46368 6 : break;
46369 :
46370 66486 : case 1707: /* select_with_parens: '(' select_no_parens ')' */
46371 : #line 12829 "gram.y"
46372 : {
46373 : SelectStmt *n = (SelectStmt *) (yyvsp[-1].node);
46374 :
46375 : /*
46376 : * As SelectStmt's location starts at the SELECT keyword,
46377 : * we need to track the length of the SelectStmt within
46378 : * parentheses to be able to extract the relevant part
46379 : * of the query. Without this, the RawStmt's length would
46380 : * be used and would include the closing parenthesis.
46381 : */
46382 : n->stmt_len = (yylsp[0]) - (yylsp[-1]);
46383 : (yyval.node) = (yyvsp[-1].node);
46384 : }
46385 : #line 46386 "gram.c"
46386 66486 : break;
46387 :
46388 156 : case 1708: /* select_with_parens: '(' select_with_parens ')' */
46389 : #line 12842 "gram.y"
46390 : { (yyval.node) = (yyvsp[-1].node); }
46391 : #line 46392 "gram.c"
46392 156 : break;
46393 :
46394 402166 : case 1709: /* select_no_parens: simple_select */
46395 : #line 12857 "gram.y"
46396 : { (yyval.node) = (yyvsp[0].node); }
46397 : #line 46398 "gram.c"
46398 402166 : break;
46399 :
46400 72482 : case 1710: /* select_no_parens: select_clause sort_clause */
46401 : #line 12859 "gram.y"
46402 : {
46403 : insertSelectOptions((SelectStmt *) (yyvsp[-1].node), (yyvsp[0].list), NIL,
46404 : NULL, NULL,
46405 : yyscanner);
46406 : (yyval.node) = (yyvsp[-1].node);
46407 : }
46408 : #line 46409 "gram.c"
46409 72482 : break;
46410 :
46411 4668 : case 1711: /* select_no_parens: select_clause opt_sort_clause for_locking_clause opt_select_limit */
46412 : #line 12866 "gram.y"
46413 : {
46414 : insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[-1].list),
46415 : (yyvsp[0].selectlimit),
46416 : NULL,
46417 : yyscanner);
46418 : (yyval.node) = (yyvsp[-3].node);
46419 : }
46420 : #line 46421 "gram.c"
46421 4668 : break;
46422 :
46423 4840 : case 1712: /* select_no_parens: select_clause opt_sort_clause select_limit opt_for_locking_clause */
46424 : #line 12874 "gram.y"
46425 : {
46426 : insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[0].list),
46427 : (yyvsp[-1].selectlimit),
46428 : NULL,
46429 : yyscanner);
46430 : (yyval.node) = (yyvsp[-3].node);
46431 : }
46432 : #line 46433 "gram.c"
46433 4828 : break;
46434 :
46435 2244 : case 1713: /* select_no_parens: with_clause select_clause */
46436 : #line 12882 "gram.y"
46437 : {
46438 : insertSelectOptions((SelectStmt *) (yyvsp[0].node), NULL, NIL,
46439 : NULL,
46440 : (yyvsp[-1].with),
46441 : yyscanner);
46442 : (yyval.node) = (yyvsp[0].node);
46443 : }
46444 : #line 46445 "gram.c"
46445 2244 : break;
46446 :
46447 582 : case 1714: /* select_no_parens: with_clause select_clause sort_clause */
46448 : #line 12890 "gram.y"
46449 : {
46450 : insertSelectOptions((SelectStmt *) (yyvsp[-1].node), (yyvsp[0].list), NIL,
46451 : NULL,
46452 : (yyvsp[-2].with),
46453 : yyscanner);
46454 : (yyval.node) = (yyvsp[-1].node);
46455 : }
46456 : #line 46457 "gram.c"
46457 582 : break;
46458 :
46459 6 : case 1715: /* select_no_parens: with_clause select_clause opt_sort_clause for_locking_clause opt_select_limit */
46460 : #line 12898 "gram.y"
46461 : {
46462 : insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[-1].list),
46463 : (yyvsp[0].selectlimit),
46464 : (yyvsp[-4].with),
46465 : yyscanner);
46466 : (yyval.node) = (yyvsp[-3].node);
46467 : }
46468 : #line 46469 "gram.c"
46469 6 : break;
46470 :
46471 64 : case 1716: /* select_no_parens: with_clause select_clause opt_sort_clause select_limit opt_for_locking_clause */
46472 : #line 12906 "gram.y"
46473 : {
46474 : insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[0].list),
46475 : (yyvsp[-1].selectlimit),
46476 : (yyvsp[-4].with),
46477 : yyscanner);
46478 : (yyval.node) = (yyvsp[-3].node);
46479 : }
46480 : #line 46481 "gram.c"
46481 64 : break;
46482 :
46483 122980 : case 1717: /* select_clause: simple_select */
46484 : #line 12916 "gram.y"
46485 : { (yyval.node) = (yyvsp[0].node); }
46486 : #line 46487 "gram.c"
46487 122980 : break;
46488 :
46489 586 : case 1718: /* select_clause: select_with_parens */
46490 : #line 12917 "gram.y"
46491 : { (yyval.node) = (yyvsp[0].node); }
46492 : #line 46493 "gram.c"
46493 586 : break;
46494 :
46495 437144 : case 1719: /* simple_select: SELECT opt_all_clause opt_target_list into_clause from_clause where_clause group_clause having_clause window_clause */
46496 : #line 12952 "gram.y"
46497 : {
46498 : SelectStmt *n = makeNode(SelectStmt);
46499 :
46500 : n->targetList = (yyvsp[-6].list);
46501 : n->intoClause = (yyvsp[-5].into);
46502 : n->fromClause = (yyvsp[-4].list);
46503 : n->whereClause = (yyvsp[-3].node);
46504 : n->groupClause = ((yyvsp[-2].groupclause))->list;
46505 : n->groupDistinct = ((yyvsp[-2].groupclause))->distinct;
46506 : n->havingClause = (yyvsp[-1].node);
46507 : n->windowClause = (yyvsp[0].list);
46508 : n->stmt_location = (yylsp[-8]);
46509 : (yyval.node) = (Node *) n;
46510 : }
46511 : #line 46512 "gram.c"
46512 437144 : break;
46513 :
46514 3696 : case 1720: /* simple_select: SELECT distinct_clause target_list into_clause from_clause where_clause group_clause having_clause window_clause */
46515 : #line 12969 "gram.y"
46516 : {
46517 : SelectStmt *n = makeNode(SelectStmt);
46518 :
46519 : n->distinctClause = (yyvsp[-7].list);
46520 : n->targetList = (yyvsp[-6].list);
46521 : n->intoClause = (yyvsp[-5].into);
46522 : n->fromClause = (yyvsp[-4].list);
46523 : n->whereClause = (yyvsp[-3].node);
46524 : n->groupClause = ((yyvsp[-2].groupclause))->list;
46525 : n->groupDistinct = ((yyvsp[-2].groupclause))->distinct;
46526 : n->havingClause = (yyvsp[-1].node);
46527 : n->windowClause = (yyvsp[0].list);
46528 : n->stmt_location = (yylsp[-8]);
46529 : (yyval.node) = (Node *) n;
46530 : }
46531 : #line 46532 "gram.c"
46532 3696 : break;
46533 :
46534 64664 : case 1721: /* simple_select: values_clause */
46535 : #line 12984 "gram.y"
46536 : { (yyval.node) = (yyvsp[0].node); }
46537 : #line 46538 "gram.c"
46538 64664 : break;
46539 :
46540 308 : case 1722: /* simple_select: TABLE relation_expr */
46541 : #line 12986 "gram.y"
46542 : {
46543 : /* same as SELECT * FROM relation_expr */
46544 : ColumnRef *cr = makeNode(ColumnRef);
46545 : ResTarget *rt = makeNode(ResTarget);
46546 : SelectStmt *n = makeNode(SelectStmt);
46547 :
46548 : cr->fields = list_make1(makeNode(A_Star));
46549 : cr->location = -1;
46550 :
46551 : rt->name = NULL;
46552 : rt->indirection = NIL;
46553 : rt->val = (Node *) cr;
46554 : rt->location = -1;
46555 :
46556 : n->targetList = list_make1(rt);
46557 : n->fromClause = list_make1((yyvsp[0].range));
46558 : n->stmt_location = (yylsp[-1]);
46559 : (yyval.node) = (Node *) n;
46560 : }
46561 : #line 46562 "gram.c"
46562 308 : break;
46563 :
46564 18600 : case 1723: /* simple_select: select_clause UNION set_quantifier select_clause */
46565 : #line 13006 "gram.y"
46566 : {
46567 : (yyval.node) = makeSetOp(SETOP_UNION, (yyvsp[-1].setquantifier) == SET_QUANTIFIER_ALL, (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-3]));
46568 : }
46569 : #line 46570 "gram.c"
46570 18600 : break;
46571 :
46572 258 : case 1724: /* simple_select: select_clause INTERSECT set_quantifier select_clause */
46573 : #line 13010 "gram.y"
46574 : {
46575 : (yyval.node) = makeSetOp(SETOP_INTERSECT, (yyvsp[-1].setquantifier) == SET_QUANTIFIER_ALL, (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-3]));
46576 : }
46577 : #line 46578 "gram.c"
46578 258 : break;
46579 :
46580 476 : case 1725: /* simple_select: select_clause EXCEPT set_quantifier select_clause */
46581 : #line 13014 "gram.y"
46582 : {
46583 : (yyval.node) = makeSetOp(SETOP_EXCEPT, (yyvsp[-1].setquantifier) == SET_QUANTIFIER_ALL, (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-3]));
46584 : }
46585 : #line 46586 "gram.c"
46586 476 : break;
46587 :
46588 2010 : case 1726: /* with_clause: WITH cte_list */
46589 : #line 13029 "gram.y"
46590 : {
46591 : (yyval.with) = makeNode(WithClause);
46592 : (yyval.with)->ctes = (yyvsp[0].list);
46593 : (yyval.with)->recursive = false;
46594 : (yyval.with)->location = (yylsp[-1]);
46595 : }
46596 : #line 46597 "gram.c"
46597 2010 : break;
46598 :
46599 6 : case 1727: /* with_clause: WITH_LA cte_list */
46600 : #line 13036 "gram.y"
46601 : {
46602 : (yyval.with) = makeNode(WithClause);
46603 : (yyval.with)->ctes = (yyvsp[0].list);
46604 : (yyval.with)->recursive = false;
46605 : (yyval.with)->location = (yylsp[-1]);
46606 : }
46607 : #line 46608 "gram.c"
46608 6 : break;
46609 :
46610 1330 : case 1728: /* with_clause: WITH RECURSIVE cte_list */
46611 : #line 13043 "gram.y"
46612 : {
46613 : (yyval.with) = makeNode(WithClause);
46614 : (yyval.with)->ctes = (yyvsp[0].list);
46615 : (yyval.with)->recursive = true;
46616 : (yyval.with)->location = (yylsp[-2]);
46617 : }
46618 : #line 46619 "gram.c"
46619 1330 : break;
46620 :
46621 3346 : case 1729: /* cte_list: common_table_expr */
46622 : #line 13052 "gram.y"
46623 : { (yyval.list) = list_make1((yyvsp[0].node)); }
46624 : #line 46625 "gram.c"
46625 3346 : break;
46626 :
46627 1218 : case 1730: /* cte_list: cte_list ',' common_table_expr */
46628 : #line 13053 "gram.y"
46629 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
46630 : #line 46631 "gram.c"
46631 1218 : break;
46632 :
46633 4564 : case 1731: /* common_table_expr: name opt_name_list AS opt_materialized '(' PreparableStmt ')' opt_search_clause opt_cycle_clause */
46634 : #line 13057 "gram.y"
46635 : {
46636 : CommonTableExpr *n = makeNode(CommonTableExpr);
46637 :
46638 : n->ctename = (yyvsp[-8].str);
46639 : n->aliascolnames = (yyvsp[-7].list);
46640 : n->ctematerialized = (yyvsp[-5].ival);
46641 : n->ctequery = (yyvsp[-3].node);
46642 : n->search_clause = castNode(CTESearchClause, (yyvsp[-1].node));
46643 : n->cycle_clause = castNode(CTECycleClause, (yyvsp[0].node));
46644 : n->location = (yylsp[-8]);
46645 : (yyval.node) = (Node *) n;
46646 : }
46647 : #line 46648 "gram.c"
46648 4564 : break;
46649 :
46650 178 : case 1732: /* opt_materialized: MATERIALIZED */
46651 : #line 13072 "gram.y"
46652 : { (yyval.ival) = CTEMaterializeAlways; }
46653 : #line 46654 "gram.c"
46654 178 : break;
46655 :
46656 48 : case 1733: /* opt_materialized: NOT MATERIALIZED */
46657 : #line 13073 "gram.y"
46658 : { (yyval.ival) = CTEMaterializeNever; }
46659 : #line 46660 "gram.c"
46660 48 : break;
46661 :
46662 4338 : case 1734: /* opt_materialized: %empty */
46663 : #line 13074 "gram.y"
46664 : { (yyval.ival) = CTEMaterializeDefault; }
46665 : #line 46666 "gram.c"
46666 4338 : break;
46667 :
46668 90 : case 1735: /* opt_search_clause: SEARCH DEPTH FIRST_P BY columnList SET ColId */
46669 : #line 13079 "gram.y"
46670 : {
46671 : CTESearchClause *n = makeNode(CTESearchClause);
46672 :
46673 : n->search_col_list = (yyvsp[-2].list);
46674 : n->search_breadth_first = false;
46675 : n->search_seq_column = (yyvsp[0].str);
46676 : n->location = (yylsp[-6]);
46677 : (yyval.node) = (Node *) n;
46678 : }
46679 : #line 46680 "gram.c"
46680 90 : break;
46681 :
46682 36 : case 1736: /* opt_search_clause: SEARCH BREADTH FIRST_P BY columnList SET ColId */
46683 : #line 13089 "gram.y"
46684 : {
46685 : CTESearchClause *n = makeNode(CTESearchClause);
46686 :
46687 : n->search_col_list = (yyvsp[-2].list);
46688 : n->search_breadth_first = true;
46689 : n->search_seq_column = (yyvsp[0].str);
46690 : n->location = (yylsp[-6]);
46691 : (yyval.node) = (Node *) n;
46692 : }
46693 : #line 46694 "gram.c"
46694 36 : break;
46695 :
46696 4438 : case 1737: /* opt_search_clause: %empty */
46697 : #line 13099 "gram.y"
46698 : {
46699 : (yyval.node) = NULL;
46700 : }
46701 : #line 46702 "gram.c"
46702 4438 : break;
46703 :
46704 66 : case 1738: /* opt_cycle_clause: CYCLE columnList SET ColId TO AexprConst DEFAULT AexprConst USING ColId */
46705 : #line 13106 "gram.y"
46706 : {
46707 : CTECycleClause *n = makeNode(CTECycleClause);
46708 :
46709 : n->cycle_col_list = (yyvsp[-8].list);
46710 : n->cycle_mark_column = (yyvsp[-6].str);
46711 : n->cycle_mark_value = (yyvsp[-4].node);
46712 : n->cycle_mark_default = (yyvsp[-2].node);
46713 : n->cycle_path_column = (yyvsp[0].str);
46714 : n->location = (yylsp[-9]);
46715 : (yyval.node) = (Node *) n;
46716 : }
46717 : #line 46718 "gram.c"
46718 66 : break;
46719 :
46720 60 : case 1739: /* opt_cycle_clause: CYCLE columnList SET ColId USING ColId */
46721 : #line 13118 "gram.y"
46722 : {
46723 : CTECycleClause *n = makeNode(CTECycleClause);
46724 :
46725 : n->cycle_col_list = (yyvsp[-4].list);
46726 : n->cycle_mark_column = (yyvsp[-2].str);
46727 : n->cycle_mark_value = makeBoolAConst(true, -1);
46728 : n->cycle_mark_default = makeBoolAConst(false, -1);
46729 : n->cycle_path_column = (yyvsp[0].str);
46730 : n->location = (yylsp[-5]);
46731 : (yyval.node) = (Node *) n;
46732 : }
46733 : #line 46734 "gram.c"
46734 60 : break;
46735 :
46736 4438 : case 1740: /* opt_cycle_clause: %empty */
46737 : #line 13130 "gram.y"
46738 : {
46739 : (yyval.node) = NULL;
46740 : }
46741 : #line 46742 "gram.c"
46742 4438 : break;
46743 :
46744 450 : case 1741: /* opt_with_clause: with_clause */
46745 : #line 13136 "gram.y"
46746 : { (yyval.with) = (yyvsp[0].with); }
46747 : #line 46748 "gram.c"
46748 450 : break;
46749 :
46750 94502 : case 1742: /* opt_with_clause: %empty */
46751 : #line 13137 "gram.y"
46752 : { (yyval.with) = NULL; }
46753 : #line 46754 "gram.c"
46754 94502 : break;
46755 :
46756 132 : case 1743: /* into_clause: INTO OptTempTableName */
46757 : #line 13142 "gram.y"
46758 : {
46759 : (yyval.into) = makeNode(IntoClause);
46760 : (yyval.into)->rel = (yyvsp[0].range);
46761 : (yyval.into)->colNames = NIL;
46762 : (yyval.into)->options = NIL;
46763 : (yyval.into)->onCommit = ONCOMMIT_NOOP;
46764 : (yyval.into)->tableSpaceName = NULL;
46765 : (yyval.into)->viewQuery = NULL;
46766 : (yyval.into)->skipData = false;
46767 : }
46768 : #line 46769 "gram.c"
46769 132 : break;
46770 :
46771 440732 : case 1744: /* into_clause: %empty */
46772 : #line 13153 "gram.y"
46773 : { (yyval.into) = NULL; }
46774 : #line 46775 "gram.c"
46775 440732 : break;
46776 :
46777 0 : case 1745: /* OptTempTableName: TEMPORARY opt_table qualified_name */
46778 : #line 13162 "gram.y"
46779 : {
46780 : (yyval.range) = (yyvsp[0].range);
46781 : (yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
46782 : }
46783 : #line 46784 "gram.c"
46784 0 : break;
46785 :
46786 6 : case 1746: /* OptTempTableName: TEMP opt_table qualified_name */
46787 : #line 13167 "gram.y"
46788 : {
46789 : (yyval.range) = (yyvsp[0].range);
46790 : (yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
46791 : }
46792 : #line 46793 "gram.c"
46793 6 : break;
46794 :
46795 0 : case 1747: /* OptTempTableName: LOCAL TEMPORARY opt_table qualified_name */
46796 : #line 13172 "gram.y"
46797 : {
46798 : (yyval.range) = (yyvsp[0].range);
46799 : (yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
46800 : }
46801 : #line 46802 "gram.c"
46802 0 : break;
46803 :
46804 0 : case 1748: /* OptTempTableName: LOCAL TEMP opt_table qualified_name */
46805 : #line 13177 "gram.y"
46806 : {
46807 : (yyval.range) = (yyvsp[0].range);
46808 : (yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
46809 : }
46810 : #line 46811 "gram.c"
46811 0 : break;
46812 :
46813 0 : case 1749: /* OptTempTableName: GLOBAL TEMPORARY opt_table qualified_name */
46814 : #line 13182 "gram.y"
46815 : {
46816 : ereport(WARNING,
46817 : (errmsg("GLOBAL is deprecated in temporary table creation"),
46818 : parser_errposition((yylsp[-3]))));
46819 : (yyval.range) = (yyvsp[0].range);
46820 : (yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
46821 : }
46822 : #line 46823 "gram.c"
46823 0 : break;
46824 :
46825 0 : case 1750: /* OptTempTableName: GLOBAL TEMP opt_table qualified_name */
46826 : #line 13190 "gram.y"
46827 : {
46828 : ereport(WARNING,
46829 : (errmsg("GLOBAL is deprecated in temporary table creation"),
46830 : parser_errposition((yylsp[-3]))));
46831 : (yyval.range) = (yyvsp[0].range);
46832 : (yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
46833 : }
46834 : #line 46835 "gram.c"
46835 0 : break;
46836 :
46837 0 : case 1751: /* OptTempTableName: UNLOGGED opt_table qualified_name */
46838 : #line 13198 "gram.y"
46839 : {
46840 : (yyval.range) = (yyvsp[0].range);
46841 : (yyval.range)->relpersistence = RELPERSISTENCE_UNLOGGED;
46842 : }
46843 : #line 46844 "gram.c"
46844 0 : break;
46845 :
46846 30 : case 1752: /* OptTempTableName: TABLE qualified_name */
46847 : #line 13203 "gram.y"
46848 : {
46849 : (yyval.range) = (yyvsp[0].range);
46850 : (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT;
46851 : }
46852 : #line 46853 "gram.c"
46853 30 : break;
46854 :
46855 96 : case 1753: /* OptTempTableName: qualified_name */
46856 : #line 13208 "gram.y"
46857 : {
46858 : (yyval.range) = (yyvsp[0].range);
46859 : (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT;
46860 : }
46861 : #line 46862 "gram.c"
46862 96 : break;
46863 :
46864 10676 : case 1756: /* set_quantifier: ALL */
46865 : #line 13219 "gram.y"
46866 : { (yyval.setquantifier) = SET_QUANTIFIER_ALL; }
46867 : #line 46868 "gram.c"
46868 10676 : break;
46869 :
46870 32 : case 1757: /* set_quantifier: DISTINCT */
46871 : #line 13220 "gram.y"
46872 : { (yyval.setquantifier) = SET_QUANTIFIER_DISTINCT; }
46873 : #line 46874 "gram.c"
46874 32 : break;
46875 :
46876 13268 : case 1758: /* set_quantifier: %empty */
46877 : #line 13221 "gram.y"
46878 : { (yyval.setquantifier) = SET_QUANTIFIER_DEFAULT; }
46879 : #line 46880 "gram.c"
46880 13268 : break;
46881 :
46882 3452 : case 1759: /* distinct_clause: DISTINCT */
46883 : #line 13228 "gram.y"
46884 : { (yyval.list) = list_make1(NIL); }
46885 : #line 46886 "gram.c"
46886 3452 : break;
46887 :
46888 250 : case 1760: /* distinct_clause: DISTINCT ON '(' expr_list ')' */
46889 : #line 13229 "gram.y"
46890 : { (yyval.list) = (yyvsp[-1].list); }
46891 : #line 46892 "gram.c"
46892 250 : break;
46893 :
46894 0 : case 1763: /* opt_distinct_clause: distinct_clause */
46895 : #line 13238 "gram.y"
46896 : { (yyval.list) = (yyvsp[0].list); }
46897 : #line 46898 "gram.c"
46898 0 : break;
46899 :
46900 40264 : case 1764: /* opt_distinct_clause: opt_all_clause */
46901 : #line 13239 "gram.y"
46902 : { (yyval.list) = NIL; }
46903 : #line 46904 "gram.c"
46904 40264 : break;
46905 :
46906 7674 : case 1765: /* opt_sort_clause: sort_clause */
46907 : #line 13243 "gram.y"
46908 : { (yyval.list) = (yyvsp[0].list); }
46909 : #line 46910 "gram.c"
46910 7674 : break;
46911 :
46912 370648 : case 1766: /* opt_sort_clause: %empty */
46913 : #line 13244 "gram.y"
46914 : { (yyval.list) = NIL; }
46915 : #line 46916 "gram.c"
46916 370648 : break;
46917 :
46918 81086 : case 1767: /* sort_clause: ORDER BY sortby_list */
46919 : #line 13248 "gram.y"
46920 : { (yyval.list) = (yyvsp[0].list); }
46921 : #line 46922 "gram.c"
46922 81086 : break;
46923 :
46924 81104 : case 1768: /* sortby_list: sortby */
46925 : #line 13252 "gram.y"
46926 : { (yyval.list) = list_make1((yyvsp[0].sortby)); }
46927 : #line 46928 "gram.c"
46928 81104 : break;
46929 :
46930 30322 : case 1769: /* sortby_list: sortby_list ',' sortby */
46931 : #line 13253 "gram.y"
46932 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].sortby)); }
46933 : #line 46934 "gram.c"
46934 30322 : break;
46935 :
46936 220 : case 1770: /* sortby: a_expr USING qual_all_Op opt_nulls_order */
46937 : #line 13257 "gram.y"
46938 : {
46939 : (yyval.sortby) = makeNode(SortBy);
46940 : (yyval.sortby)->node = (yyvsp[-3].node);
46941 : (yyval.sortby)->sortby_dir = SORTBY_USING;
46942 : (yyval.sortby)->sortby_nulls = (yyvsp[0].ival);
46943 : (yyval.sortby)->useOp = (yyvsp[-1].list);
46944 : (yyval.sortby)->location = (yylsp[-1]);
46945 : }
46946 : #line 46947 "gram.c"
46947 220 : break;
46948 :
46949 111206 : case 1771: /* sortby: a_expr opt_asc_desc opt_nulls_order */
46950 : #line 13266 "gram.y"
46951 : {
46952 : (yyval.sortby) = makeNode(SortBy);
46953 : (yyval.sortby)->node = (yyvsp[-2].node);
46954 : (yyval.sortby)->sortby_dir = (yyvsp[-1].ival);
46955 : (yyval.sortby)->sortby_nulls = (yyvsp[0].ival);
46956 : (yyval.sortby)->useOp = NIL;
46957 : (yyval.sortby)->location = -1; /* no operator */
46958 : }
46959 : #line 46960 "gram.c"
46960 111206 : break;
46961 :
46962 172 : case 1772: /* select_limit: limit_clause offset_clause */
46963 : #line 13279 "gram.y"
46964 : {
46965 : (yyval.selectlimit) = (yyvsp[-1].selectlimit);
46966 : ((yyval.selectlimit))->limitOffset = (yyvsp[0].node);
46967 : ((yyval.selectlimit))->offsetLoc = (yylsp[0]);
46968 : }
46969 : #line 46970 "gram.c"
46970 172 : break;
46971 :
46972 226 : case 1773: /* select_limit: offset_clause limit_clause */
46973 : #line 13285 "gram.y"
46974 : {
46975 : (yyval.selectlimit) = (yyvsp[0].selectlimit);
46976 : ((yyval.selectlimit))->limitOffset = (yyvsp[-1].node);
46977 : ((yyval.selectlimit))->offsetLoc = (yylsp[-1]);
46978 : }
46979 : #line 46980 "gram.c"
46980 226 : break;
46981 :
46982 4258 : case 1774: /* select_limit: limit_clause */
46983 : #line 13291 "gram.y"
46984 : {
46985 : (yyval.selectlimit) = (yyvsp[0].selectlimit);
46986 : }
46987 : #line 46988 "gram.c"
46988 4258 : break;
46989 :
46990 438 : case 1775: /* select_limit: offset_clause */
46991 : #line 13295 "gram.y"
46992 : {
46993 : SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit));
46994 :
46995 : n->limitOffset = (yyvsp[0].node);
46996 : n->limitCount = NULL;
46997 : n->limitOption = LIMIT_OPTION_COUNT;
46998 : n->offsetLoc = (yylsp[0]);
46999 : n->countLoc = -1;
47000 : n->optionLoc = -1;
47001 : (yyval.selectlimit) = n;
47002 : }
47003 : #line 47004 "gram.c"
47004 438 : break;
47005 :
47006 190 : case 1776: /* opt_select_limit: select_limit */
47007 : #line 13309 "gram.y"
47008 : { (yyval.selectlimit) = (yyvsp[0].selectlimit); }
47009 : #line 47010 "gram.c"
47010 190 : break;
47011 :
47012 44748 : case 1777: /* opt_select_limit: %empty */
47013 : #line 13310 "gram.y"
47014 : { (yyval.selectlimit) = NULL; }
47015 : #line 47016 "gram.c"
47016 44748 : break;
47017 :
47018 4564 : case 1778: /* limit_clause: LIMIT select_limit_value */
47019 : #line 13315 "gram.y"
47020 : {
47021 : SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit));
47022 :
47023 : n->limitOffset = NULL;
47024 : n->limitCount = (yyvsp[0].node);
47025 : n->limitOption = LIMIT_OPTION_COUNT;
47026 : n->offsetLoc = -1;
47027 : n->countLoc = (yylsp[-1]);
47028 : n->optionLoc = -1;
47029 : (yyval.selectlimit) = n;
47030 : }
47031 : #line 47032 "gram.c"
47032 4564 : break;
47033 :
47034 0 : case 1779: /* limit_clause: LIMIT select_limit_value ',' select_offset_value */
47035 : #line 13327 "gram.y"
47036 : {
47037 : /* Disabled because it was too confusing, bjm 2002-02-18 */
47038 : ereport(ERROR,
47039 : (errcode(ERRCODE_SYNTAX_ERROR),
47040 : errmsg("LIMIT #,# syntax is not supported"),
47041 : errhint("Use separate LIMIT and OFFSET clauses."),
47042 : parser_errposition((yylsp[-3]))));
47043 : }
47044 : #line 47045 "gram.c"
47045 : break;
47046 :
47047 24 : case 1780: /* limit_clause: FETCH first_or_next select_fetch_first_value row_or_rows ONLY */
47048 : #line 13343 "gram.y"
47049 : {
47050 : SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit));
47051 :
47052 : n->limitOffset = NULL;
47053 : n->limitCount = (yyvsp[-2].node);
47054 : n->limitOption = LIMIT_OPTION_COUNT;
47055 : n->offsetLoc = -1;
47056 : n->countLoc = (yylsp[-4]);
47057 : n->optionLoc = -1;
47058 : (yyval.selectlimit) = n;
47059 : }
47060 : #line 47061 "gram.c"
47061 24 : break;
47062 :
47063 62 : case 1781: /* limit_clause: FETCH first_or_next select_fetch_first_value row_or_rows WITH TIES */
47064 : #line 13355 "gram.y"
47065 : {
47066 : SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit));
47067 :
47068 : n->limitOffset = NULL;
47069 : n->limitCount = (yyvsp[-3].node);
47070 : n->limitOption = LIMIT_OPTION_WITH_TIES;
47071 : n->offsetLoc = -1;
47072 : n->countLoc = (yylsp[-5]);
47073 : n->optionLoc = (yylsp[-1]);
47074 : (yyval.selectlimit) = n;
47075 : }
47076 : #line 47077 "gram.c"
47077 62 : break;
47078 :
47079 0 : case 1782: /* limit_clause: FETCH first_or_next row_or_rows ONLY */
47080 : #line 13367 "gram.y"
47081 : {
47082 : SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit));
47083 :
47084 : n->limitOffset = NULL;
47085 : n->limitCount = makeIntConst(1, -1);
47086 : n->limitOption = LIMIT_OPTION_COUNT;
47087 : n->offsetLoc = -1;
47088 : n->countLoc = (yylsp[-3]);
47089 : n->optionLoc = -1;
47090 : (yyval.selectlimit) = n;
47091 : }
47092 : #line 47093 "gram.c"
47093 0 : break;
47094 :
47095 6 : case 1783: /* limit_clause: FETCH first_or_next row_or_rows WITH TIES */
47096 : #line 13379 "gram.y"
47097 : {
47098 : SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit));
47099 :
47100 : n->limitOffset = NULL;
47101 : n->limitCount = makeIntConst(1, -1);
47102 : n->limitOption = LIMIT_OPTION_WITH_TIES;
47103 : n->offsetLoc = -1;
47104 : n->countLoc = (yylsp[-4]);
47105 : n->optionLoc = (yylsp[-1]);
47106 : (yyval.selectlimit) = n;
47107 : }
47108 : #line 47109 "gram.c"
47109 6 : break;
47110 :
47111 836 : case 1784: /* offset_clause: OFFSET select_offset_value */
47112 : #line 13394 "gram.y"
47113 : { (yyval.node) = (yyvsp[0].node); }
47114 : #line 47115 "gram.c"
47115 836 : break;
47116 :
47117 0 : case 1785: /* offset_clause: OFFSET select_fetch_first_value row_or_rows */
47118 : #line 13397 "gram.y"
47119 : { (yyval.node) = (yyvsp[-1].node); }
47120 : #line 47121 "gram.c"
47121 0 : break;
47122 :
47123 4560 : case 1786: /* select_limit_value: a_expr */
47124 : #line 13401 "gram.y"
47125 : { (yyval.node) = (yyvsp[0].node); }
47126 : #line 47127 "gram.c"
47127 4560 : break;
47128 :
47129 4 : case 1787: /* select_limit_value: ALL */
47130 : #line 13403 "gram.y"
47131 : {
47132 : /* LIMIT ALL is represented as a NULL constant */
47133 : (yyval.node) = makeNullAConst((yylsp[0]));
47134 : }
47135 : #line 47136 "gram.c"
47136 4 : break;
47137 :
47138 836 : case 1788: /* select_offset_value: a_expr */
47139 : #line 13410 "gram.y"
47140 : { (yyval.node) = (yyvsp[0].node); }
47141 : #line 47142 "gram.c"
47142 836 : break;
47143 :
47144 86 : case 1789: /* select_fetch_first_value: c_expr */
47145 : #line 13430 "gram.y"
47146 : { (yyval.node) = (yyvsp[0].node); }
47147 : #line 47148 "gram.c"
47148 86 : break;
47149 :
47150 0 : case 1790: /* select_fetch_first_value: '+' I_or_F_const */
47151 : #line 13432 "gram.y"
47152 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); }
47153 : #line 47154 "gram.c"
47154 0 : break;
47155 :
47156 0 : case 1791: /* select_fetch_first_value: '-' I_or_F_const */
47157 : #line 13434 "gram.y"
47158 : { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); }
47159 : #line 47160 "gram.c"
47160 0 : break;
47161 :
47162 0 : case 1792: /* I_or_F_const: Iconst */
47163 : #line 13438 "gram.y"
47164 : { (yyval.node) = makeIntConst((yyvsp[0].ival),(yylsp[0])); }
47165 : #line 47166 "gram.c"
47166 0 : break;
47167 :
47168 0 : case 1793: /* I_or_F_const: FCONST */
47169 : #line 13439 "gram.y"
47170 : { (yyval.node) = makeFloatConst((yyvsp[0].str),(yylsp[0])); }
47171 : #line 47172 "gram.c"
47172 0 : break;
47173 :
47174 36 : case 1794: /* row_or_rows: ROW */
47175 : #line 13443 "gram.y"
47176 : { (yyval.ival) = 0; }
47177 : #line 47178 "gram.c"
47178 36 : break;
47179 :
47180 56 : case 1795: /* row_or_rows: ROWS */
47181 : #line 13444 "gram.y"
47182 : { (yyval.ival) = 0; }
47183 : #line 47184 "gram.c"
47184 56 : break;
47185 :
47186 92 : case 1796: /* first_or_next: FIRST_P */
47187 : #line 13447 "gram.y"
47188 : { (yyval.ival) = 0; }
47189 : #line 47190 "gram.c"
47190 92 : break;
47191 :
47192 0 : case 1797: /* first_or_next: NEXT */
47193 : #line 13448 "gram.y"
47194 : { (yyval.ival) = 0; }
47195 : #line 47196 "gram.c"
47196 0 : break;
47197 :
47198 4630 : case 1798: /* group_clause: GROUP_P BY set_quantifier group_by_list */
47199 : #line 13474 "gram.y"
47200 : {
47201 : GroupClause *n = (GroupClause *) palloc(sizeof(GroupClause));
47202 :
47203 : n->distinct = (yyvsp[-1].setquantifier) == SET_QUANTIFIER_DISTINCT;
47204 : n->list = (yyvsp[0].list);
47205 : (yyval.groupclause) = n;
47206 : }
47207 : #line 47208 "gram.c"
47208 4630 : break;
47209 :
47210 476474 : case 1799: /* group_clause: %empty */
47211 : #line 13482 "gram.y"
47212 : {
47213 : GroupClause *n = (GroupClause *) palloc(sizeof(GroupClause));
47214 :
47215 : n->distinct = false;
47216 : n->list = NIL;
47217 : (yyval.groupclause) = n;
47218 : }
47219 : #line 47220 "gram.c"
47220 476474 : break;
47221 :
47222 5228 : case 1800: /* group_by_list: group_by_item */
47223 : #line 13492 "gram.y"
47224 : { (yyval.list) = list_make1((yyvsp[0].node)); }
47225 : #line 47226 "gram.c"
47226 5228 : break;
47227 :
47228 3008 : case 1801: /* group_by_list: group_by_list ',' group_by_item */
47229 : #line 13493 "gram.y"
47230 : { (yyval.list) = lappend((yyvsp[-2].list),(yyvsp[0].node)); }
47231 : #line 47232 "gram.c"
47232 3008 : break;
47233 :
47234 6946 : case 1802: /* group_by_item: a_expr */
47235 : #line 13497 "gram.y"
47236 : { (yyval.node) = (yyvsp[0].node); }
47237 : #line 47238 "gram.c"
47238 6946 : break;
47239 :
47240 222 : case 1803: /* group_by_item: empty_grouping_set */
47241 : #line 13498 "gram.y"
47242 : { (yyval.node) = (yyvsp[0].node); }
47243 : #line 47244 "gram.c"
47244 222 : break;
47245 :
47246 184 : case 1804: /* group_by_item: cube_clause */
47247 : #line 13499 "gram.y"
47248 : { (yyval.node) = (yyvsp[0].node); }
47249 : #line 47250 "gram.c"
47250 184 : break;
47251 :
47252 286 : case 1805: /* group_by_item: rollup_clause */
47253 : #line 13500 "gram.y"
47254 : { (yyval.node) = (yyvsp[0].node); }
47255 : #line 47256 "gram.c"
47256 286 : break;
47257 :
47258 598 : case 1806: /* group_by_item: grouping_sets_clause */
47259 : #line 13501 "gram.y"
47260 : { (yyval.node) = (yyvsp[0].node); }
47261 : #line 47262 "gram.c"
47262 598 : break;
47263 :
47264 222 : case 1807: /* empty_grouping_set: '(' ')' */
47265 : #line 13506 "gram.y"
47266 : {
47267 : (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_EMPTY, NIL, (yylsp[-1]));
47268 : }
47269 : #line 47270 "gram.c"
47270 222 : break;
47271 :
47272 286 : case 1808: /* rollup_clause: ROLLUP '(' expr_list ')' */
47273 : #line 13519 "gram.y"
47274 : {
47275 : (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_ROLLUP, (yyvsp[-1].list), (yylsp[-3]));
47276 : }
47277 : #line 47278 "gram.c"
47278 286 : break;
47279 :
47280 184 : case 1809: /* cube_clause: CUBE '(' expr_list ')' */
47281 : #line 13526 "gram.y"
47282 : {
47283 : (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_CUBE, (yyvsp[-1].list), (yylsp[-3]));
47284 : }
47285 : #line 47286 "gram.c"
47286 184 : break;
47287 :
47288 598 : case 1810: /* grouping_sets_clause: GROUPING SETS '(' group_by_list ')' */
47289 : #line 13533 "gram.y"
47290 : {
47291 : (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_SETS, (yyvsp[-1].list), (yylsp[-4]));
47292 : }
47293 : #line 47294 "gram.c"
47294 598 : break;
47295 :
47296 682 : case 1811: /* having_clause: HAVING a_expr */
47297 : #line 13539 "gram.y"
47298 : { (yyval.node) = (yyvsp[0].node); }
47299 : #line 47300 "gram.c"
47300 682 : break;
47301 :
47302 480422 : case 1812: /* having_clause: %empty */
47303 : #line 13540 "gram.y"
47304 : { (yyval.node) = NULL; }
47305 : #line 47306 "gram.c"
47306 480422 : break;
47307 :
47308 5014 : case 1813: /* for_locking_clause: for_locking_items */
47309 : #line 13544 "gram.y"
47310 : { (yyval.list) = (yyvsp[0].list); }
47311 : #line 47312 "gram.c"
47312 5014 : break;
47313 :
47314 0 : case 1814: /* for_locking_clause: FOR READ ONLY */
47315 : #line 13545 "gram.y"
47316 : { (yyval.list) = NIL; }
47317 : #line 47318 "gram.c"
47318 0 : break;
47319 :
47320 340 : case 1815: /* opt_for_locking_clause: for_locking_clause */
47321 : #line 13549 "gram.y"
47322 : { (yyval.list) = (yyvsp[0].list); }
47323 : #line 47324 "gram.c"
47324 340 : break;
47325 :
47326 44828 : case 1816: /* opt_for_locking_clause: %empty */
47327 : #line 13550 "gram.y"
47328 : { (yyval.list) = NIL; }
47329 : #line 47330 "gram.c"
47330 44828 : break;
47331 :
47332 5014 : case 1817: /* for_locking_items: for_locking_item */
47333 : #line 13554 "gram.y"
47334 : { (yyval.list) = list_make1((yyvsp[0].node)); }
47335 : #line 47336 "gram.c"
47336 5014 : break;
47337 :
47338 98 : case 1818: /* for_locking_items: for_locking_items for_locking_item */
47339 : #line 13555 "gram.y"
47340 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); }
47341 : #line 47342 "gram.c"
47342 98 : break;
47343 :
47344 5112 : case 1819: /* for_locking_item: for_locking_strength locked_rels_list opt_nowait_or_skip */
47345 : #line 13560 "gram.y"
47346 : {
47347 : LockingClause *n = makeNode(LockingClause);
47348 :
47349 : n->lockedRels = (yyvsp[-1].list);
47350 : n->strength = (yyvsp[-2].ival);
47351 : n->waitPolicy = (yyvsp[0].ival);
47352 : (yyval.node) = (Node *) n;
47353 : }
47354 : #line 47355 "gram.c"
47355 5112 : break;
47356 :
47357 1516 : case 1820: /* for_locking_strength: FOR UPDATE */
47358 : #line 13571 "gram.y"
47359 : { (yyval.ival) = LCS_FORUPDATE; }
47360 : #line 47361 "gram.c"
47361 1516 : break;
47362 :
47363 76 : case 1821: /* for_locking_strength: FOR NO KEY UPDATE */
47364 : #line 13572 "gram.y"
47365 : { (yyval.ival) = LCS_FORNOKEYUPDATE; }
47366 : #line 47367 "gram.c"
47367 76 : break;
47368 :
47369 214 : case 1822: /* for_locking_strength: FOR SHARE */
47370 : #line 13573 "gram.y"
47371 : { (yyval.ival) = LCS_FORSHARE; }
47372 : #line 47373 "gram.c"
47373 214 : break;
47374 :
47375 3306 : case 1823: /* for_locking_strength: FOR KEY SHARE */
47376 : #line 13574 "gram.y"
47377 : { (yyval.ival) = LCS_FORKEYSHARE; }
47378 : #line 47379 "gram.c"
47379 3306 : break;
47380 :
47381 3326 : case 1824: /* locked_rels_list: OF qualified_name_list */
47382 : #line 13578 "gram.y"
47383 : { (yyval.list) = (yyvsp[0].list); }
47384 : #line 47385 "gram.c"
47385 3326 : break;
47386 :
47387 1786 : case 1825: /* locked_rels_list: %empty */
47388 : #line 13579 "gram.y"
47389 : { (yyval.list) = NIL; }
47390 : #line 47391 "gram.c"
47391 1786 : break;
47392 :
47393 64664 : case 1826: /* values_clause: VALUES '(' expr_list ')' */
47394 : #line 13590 "gram.y"
47395 : {
47396 : SelectStmt *n = makeNode(SelectStmt);
47397 :
47398 : n->stmt_location = (yylsp[-3]);
47399 : n->valuesLists = list_make1((yyvsp[-1].list));
47400 : (yyval.node) = (Node *) n;
47401 : }
47402 : #line 47403 "gram.c"
47403 64664 : break;
47404 :
47405 25166 : case 1827: /* values_clause: values_clause ',' '(' expr_list ')' */
47406 : #line 13598 "gram.y"
47407 : {
47408 : SelectStmt *n = (SelectStmt *) (yyvsp[-4].node);
47409 :
47410 : n->valuesLists = lappend(n->valuesLists, (yyvsp[-1].list));
47411 : (yyval.node) = (Node *) n;
47412 : }
47413 : #line 47414 "gram.c"
47414 25166 : break;
47415 :
47416 322508 : case 1828: /* from_clause: FROM from_list */
47417 : #line 13616 "gram.y"
47418 : { (yyval.list) = (yyvsp[0].list); }
47419 : #line 47420 "gram.c"
47420 322508 : break;
47421 :
47422 172594 : case 1829: /* from_clause: %empty */
47423 : #line 13617 "gram.y"
47424 : { (yyval.list) = NIL; }
47425 : #line 47426 "gram.c"
47426 172594 : break;
47427 :
47428 323288 : case 1830: /* from_list: table_ref */
47429 : #line 13621 "gram.y"
47430 : { (yyval.list) = list_make1((yyvsp[0].node)); }
47431 : #line 47432 "gram.c"
47432 323288 : break;
47433 :
47434 61250 : case 1831: /* from_list: from_list ',' table_ref */
47435 : #line 13622 "gram.y"
47436 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
47437 : #line 47438 "gram.c"
47438 61250 : break;
47439 :
47440 403894 : case 1832: /* table_ref: relation_expr opt_alias_clause */
47441 : #line 13629 "gram.y"
47442 : {
47443 : (yyvsp[-1].range)->alias = (yyvsp[0].alias);
47444 : (yyval.node) = (Node *) (yyvsp[-1].range);
47445 : }
47446 : #line 47447 "gram.c"
47447 403894 : break;
47448 :
47449 264 : case 1833: /* table_ref: relation_expr opt_alias_clause tablesample_clause */
47450 : #line 13634 "gram.y"
47451 : {
47452 : RangeTableSample *n = (RangeTableSample *) (yyvsp[0].node);
47453 :
47454 : (yyvsp[-2].range)->alias = (yyvsp[-1].alias);
47455 : /* relation_expr goes inside the RangeTableSample node */
47456 : n->relation = (Node *) (yyvsp[-2].range);
47457 : (yyval.node) = (Node *) n;
47458 : }
47459 : #line 47460 "gram.c"
47460 264 : break;
47461 :
47462 50596 : case 1834: /* table_ref: func_table func_alias_clause */
47463 : #line 13643 "gram.y"
47464 : {
47465 : RangeFunction *n = (RangeFunction *) (yyvsp[-1].node);
47466 :
47467 : n->alias = linitial((yyvsp[0].list));
47468 : n->coldeflist = lsecond((yyvsp[0].list));
47469 : (yyval.node) = (Node *) n;
47470 : }
47471 : #line 47472 "gram.c"
47472 50596 : break;
47473 :
47474 1142 : case 1835: /* table_ref: LATERAL_P func_table func_alias_clause */
47475 : #line 13651 "gram.y"
47476 : {
47477 : RangeFunction *n = (RangeFunction *) (yyvsp[-1].node);
47478 :
47479 : n->lateral = true;
47480 : n->alias = linitial((yyvsp[0].list));
47481 : n->coldeflist = lsecond((yyvsp[0].list));
47482 : (yyval.node) = (Node *) n;
47483 : }
47484 : #line 47485 "gram.c"
47485 1142 : break;
47486 :
47487 82 : case 1836: /* table_ref: xmltable opt_alias_clause */
47488 : #line 13660 "gram.y"
47489 : {
47490 : RangeTableFunc *n = (RangeTableFunc *) (yyvsp[-1].node);
47491 :
47492 : n->alias = (yyvsp[0].alias);
47493 : (yyval.node) = (Node *) n;
47494 : }
47495 : #line 47496 "gram.c"
47496 82 : break;
47497 :
47498 142 : case 1837: /* table_ref: LATERAL_P xmltable opt_alias_clause */
47499 : #line 13667 "gram.y"
47500 : {
47501 : RangeTableFunc *n = (RangeTableFunc *) (yyvsp[-1].node);
47502 :
47503 : n->lateral = true;
47504 : n->alias = (yyvsp[0].alias);
47505 : (yyval.node) = (Node *) n;
47506 : }
47507 : #line 47508 "gram.c"
47508 142 : break;
47509 :
47510 13798 : case 1838: /* table_ref: select_with_parens opt_alias_clause */
47511 : #line 13675 "gram.y"
47512 : {
47513 : RangeSubselect *n = makeNode(RangeSubselect);
47514 :
47515 : n->lateral = false;
47516 : n->subquery = (yyvsp[-1].node);
47517 : n->alias = (yyvsp[0].alias);
47518 : (yyval.node) = (Node *) n;
47519 : }
47520 : #line 47521 "gram.c"
47521 13798 : break;
47522 :
47523 1830 : case 1839: /* table_ref: LATERAL_P select_with_parens opt_alias_clause */
47524 : #line 13684 "gram.y"
47525 : {
47526 : RangeSubselect *n = makeNode(RangeSubselect);
47527 :
47528 : n->lateral = true;
47529 : n->subquery = (yyvsp[-1].node);
47530 : n->alias = (yyvsp[0].alias);
47531 : (yyval.node) = (Node *) n;
47532 : }
47533 : #line 47534 "gram.c"
47534 1830 : break;
47535 :
47536 85466 : case 1840: /* table_ref: joined_table */
47537 : #line 13693 "gram.y"
47538 : {
47539 : (yyval.node) = (Node *) (yyvsp[0].jexpr);
47540 : }
47541 : #line 47542 "gram.c"
47542 85466 : break;
47543 :
47544 174 : case 1841: /* table_ref: '(' joined_table ')' alias_clause */
47545 : #line 13697 "gram.y"
47546 : {
47547 : (yyvsp[-2].jexpr)->alias = (yyvsp[0].alias);
47548 : (yyval.node) = (Node *) (yyvsp[-2].jexpr);
47549 : }
47550 : #line 47551 "gram.c"
47551 174 : break;
47552 :
47553 524 : case 1842: /* table_ref: json_table opt_alias_clause */
47554 : #line 13702 "gram.y"
47555 : {
47556 : JsonTable *jt = castNode(JsonTable, (yyvsp[-1].node));
47557 :
47558 : jt->alias = (yyvsp[0].alias);
47559 : (yyval.node) = (Node *) jt;
47560 : }
47561 : #line 47562 "gram.c"
47562 524 : break;
47563 :
47564 0 : case 1843: /* table_ref: LATERAL_P json_table opt_alias_clause */
47565 : #line 13709 "gram.y"
47566 : {
47567 : JsonTable *jt = castNode(JsonTable, (yyvsp[-1].node));
47568 :
47569 : jt->alias = (yyvsp[0].alias);
47570 : jt->lateral = true;
47571 : (yyval.node) = (Node *) jt;
47572 : }
47573 : #line 47574 "gram.c"
47574 0 : break;
47575 :
47576 3922 : case 1844: /* joined_table: '(' joined_table ')' */
47577 : #line 13738 "gram.y"
47578 : {
47579 : (yyval.jexpr) = (yyvsp[-1].jexpr);
47580 : }
47581 : #line 47582 "gram.c"
47582 3922 : break;
47583 :
47584 506 : case 1845: /* joined_table: table_ref CROSS JOIN table_ref */
47585 : #line 13742 "gram.y"
47586 : {
47587 : /* CROSS JOIN is same as unqualified inner join */
47588 : JoinExpr *n = makeNode(JoinExpr);
47589 :
47590 : n->jointype = JOIN_INNER;
47591 : n->isNatural = false;
47592 : n->larg = (yyvsp[-3].node);
47593 : n->rarg = (yyvsp[0].node);
47594 : n->usingClause = NIL;
47595 : n->join_using_alias = NULL;
47596 : n->quals = NULL;
47597 : (yyval.jexpr) = n;
47598 : }
47599 : #line 47600 "gram.c"
47600 506 : break;
47601 :
47602 47826 : case 1846: /* joined_table: table_ref join_type JOIN table_ref join_qual */
47603 : #line 13756 "gram.y"
47604 : {
47605 : JoinExpr *n = makeNode(JoinExpr);
47606 :
47607 : n->jointype = (yyvsp[-3].jtype);
47608 : n->isNatural = false;
47609 : n->larg = (yyvsp[-4].node);
47610 : n->rarg = (yyvsp[-1].node);
47611 : if ((yyvsp[0].node) != NULL && IsA((yyvsp[0].node), List))
47612 : {
47613 : /* USING clause */
47614 : n->usingClause = linitial_node(List, castNode(List, (yyvsp[0].node)));
47615 : n->join_using_alias = lsecond_node(Alias, castNode(List, (yyvsp[0].node)));
47616 : }
47617 : else
47618 : {
47619 : /* ON clause */
47620 : n->quals = (yyvsp[0].node);
47621 : }
47622 : (yyval.jexpr) = n;
47623 : }
47624 : #line 47625 "gram.c"
47625 47826 : break;
47626 :
47627 37050 : case 1847: /* joined_table: table_ref JOIN table_ref join_qual */
47628 : #line 13777 "gram.y"
47629 : {
47630 : /* letting join_type reduce to empty doesn't work */
47631 : JoinExpr *n = makeNode(JoinExpr);
47632 :
47633 : n->jointype = JOIN_INNER;
47634 : n->isNatural = false;
47635 : n->larg = (yyvsp[-3].node);
47636 : n->rarg = (yyvsp[-1].node);
47637 : if ((yyvsp[0].node) != NULL && IsA((yyvsp[0].node), List))
47638 : {
47639 : /* USING clause */
47640 : n->usingClause = linitial_node(List, castNode(List, (yyvsp[0].node)));
47641 : n->join_using_alias = lsecond_node(Alias, castNode(List, (yyvsp[0].node)));
47642 : }
47643 : else
47644 : {
47645 : /* ON clause */
47646 : n->quals = (yyvsp[0].node);
47647 : }
47648 : (yyval.jexpr) = n;
47649 : }
47650 : #line 47651 "gram.c"
47651 37050 : break;
47652 :
47653 78 : case 1848: /* joined_table: table_ref NATURAL join_type JOIN table_ref */
47654 : #line 13799 "gram.y"
47655 : {
47656 : JoinExpr *n = makeNode(JoinExpr);
47657 :
47658 : n->jointype = (yyvsp[-2].jtype);
47659 : n->isNatural = true;
47660 : n->larg = (yyvsp[-4].node);
47661 : n->rarg = (yyvsp[0].node);
47662 : n->usingClause = NIL; /* figure out which columns later... */
47663 : n->join_using_alias = NULL;
47664 : n->quals = NULL; /* fill later */
47665 : (yyval.jexpr) = n;
47666 : }
47667 : #line 47668 "gram.c"
47668 78 : break;
47669 :
47670 180 : case 1849: /* joined_table: table_ref NATURAL JOIN table_ref */
47671 : #line 13812 "gram.y"
47672 : {
47673 : /* letting join_type reduce to empty doesn't work */
47674 : JoinExpr *n = makeNode(JoinExpr);
47675 :
47676 : n->jointype = JOIN_INNER;
47677 : n->isNatural = true;
47678 : n->larg = (yyvsp[-3].node);
47679 : n->rarg = (yyvsp[0].node);
47680 : n->usingClause = NIL; /* figure out which columns later... */
47681 : n->join_using_alias = NULL;
47682 : n->quals = NULL; /* fill later */
47683 : (yyval.jexpr) = n;
47684 : }
47685 : #line 47686 "gram.c"
47686 180 : break;
47687 :
47688 7416 : case 1850: /* alias_clause: AS ColId '(' name_list ')' */
47689 : #line 13829 "gram.y"
47690 : {
47691 : (yyval.alias) = makeNode(Alias);
47692 : (yyval.alias)->aliasname = (yyvsp[-3].str);
47693 : (yyval.alias)->colnames = (yyvsp[-1].list);
47694 : }
47695 : #line 47696 "gram.c"
47696 7416 : break;
47697 :
47698 10802 : case 1851: /* alias_clause: AS ColId */
47699 : #line 13835 "gram.y"
47700 : {
47701 : (yyval.alias) = makeNode(Alias);
47702 : (yyval.alias)->aliasname = (yyvsp[0].str);
47703 : }
47704 : #line 47705 "gram.c"
47705 10802 : break;
47706 :
47707 5754 : case 1852: /* alias_clause: ColId '(' name_list ')' */
47708 : #line 13840 "gram.y"
47709 : {
47710 : (yyval.alias) = makeNode(Alias);
47711 : (yyval.alias)->aliasname = (yyvsp[-3].str);
47712 : (yyval.alias)->colnames = (yyvsp[-1].list);
47713 : }
47714 : #line 47715 "gram.c"
47715 5754 : break;
47716 :
47717 266060 : case 1853: /* alias_clause: ColId */
47718 : #line 13846 "gram.y"
47719 : {
47720 : (yyval.alias) = makeNode(Alias);
47721 : (yyval.alias)->aliasname = (yyvsp[0].str);
47722 : }
47723 : #line 47724 "gram.c"
47724 266060 : break;
47725 :
47726 260448 : case 1854: /* opt_alias_clause: alias_clause */
47727 : #line 13852 "gram.y"
47728 : { (yyval.alias) = (yyvsp[0].alias); }
47729 : #line 47730 "gram.c"
47730 260448 : break;
47731 :
47732 160086 : case 1855: /* opt_alias_clause: %empty */
47733 : #line 13853 "gram.y"
47734 : { (yyval.alias) = NULL; }
47735 : #line 47736 "gram.c"
47736 160086 : break;
47737 :
47738 84 : case 1856: /* opt_alias_clause_for_join_using: AS ColId */
47739 : #line 13864 "gram.y"
47740 : {
47741 : (yyval.alias) = makeNode(Alias);
47742 : (yyval.alias)->aliasname = (yyvsp[0].str);
47743 : /* the column name list will be inserted later */
47744 : }
47745 : #line 47746 "gram.c"
47746 84 : break;
47747 :
47748 1160 : case 1857: /* opt_alias_clause_for_join_using: %empty */
47749 : #line 13869 "gram.y"
47750 : { (yyval.alias) = NULL; }
47751 : #line 47752 "gram.c"
47752 1160 : break;
47753 :
47754 29410 : case 1858: /* func_alias_clause: alias_clause */
47755 : #line 13878 "gram.y"
47756 : {
47757 : (yyval.list) = list_make2((yyvsp[0].alias), NIL);
47758 : }
47759 : #line 47760 "gram.c"
47760 29410 : break;
47761 :
47762 114 : case 1859: /* func_alias_clause: AS '(' TableFuncElementList ')' */
47763 : #line 13882 "gram.y"
47764 : {
47765 : (yyval.list) = list_make2(NULL, (yyvsp[-1].list));
47766 : }
47767 : #line 47768 "gram.c"
47768 114 : break;
47769 :
47770 596 : case 1860: /* func_alias_clause: AS ColId '(' TableFuncElementList ')' */
47771 : #line 13886 "gram.y"
47772 : {
47773 : Alias *a = makeNode(Alias);
47774 :
47775 : a->aliasname = (yyvsp[-3].str);
47776 : (yyval.list) = list_make2(a, (yyvsp[-1].list));
47777 : }
47778 : #line 47779 "gram.c"
47779 596 : break;
47780 :
47781 50 : case 1861: /* func_alias_clause: ColId '(' TableFuncElementList ')' */
47782 : #line 13893 "gram.y"
47783 : {
47784 : Alias *a = makeNode(Alias);
47785 :
47786 : a->aliasname = (yyvsp[-3].str);
47787 : (yyval.list) = list_make2(a, (yyvsp[-1].list));
47788 : }
47789 : #line 47790 "gram.c"
47790 50 : break;
47791 :
47792 21568 : case 1862: /* func_alias_clause: %empty */
47793 : #line 13900 "gram.y"
47794 : {
47795 : (yyval.list) = list_make2(NULL, NIL);
47796 : }
47797 : #line 47798 "gram.c"
47798 21568 : break;
47799 :
47800 1042 : case 1863: /* join_type: FULL opt_outer */
47801 : #line 13905 "gram.y"
47802 : { (yyval.jtype) = JOIN_FULL; }
47803 : #line 47804 "gram.c"
47804 1042 : break;
47805 :
47806 42574 : case 1864: /* join_type: LEFT opt_outer */
47807 : #line 13906 "gram.y"
47808 : { (yyval.jtype) = JOIN_LEFT; }
47809 : #line 47810 "gram.c"
47810 42574 : break;
47811 :
47812 360 : case 1865: /* join_type: RIGHT opt_outer */
47813 : #line 13907 "gram.y"
47814 : { (yyval.jtype) = JOIN_RIGHT; }
47815 : #line 47816 "gram.c"
47816 360 : break;
47817 :
47818 3928 : case 1866: /* join_type: INNER_P */
47819 : #line 13908 "gram.y"
47820 : { (yyval.jtype) = JOIN_INNER; }
47821 : #line 47822 "gram.c"
47822 3928 : break;
47823 :
47824 1244 : case 1869: /* join_qual: USING '(' name_list ')' opt_alias_clause_for_join_using */
47825 : #line 13929 "gram.y"
47826 : {
47827 : (yyval.node) = (Node *) list_make2((yyvsp[-2].list), (yyvsp[0].alias));
47828 : }
47829 : #line 47830 "gram.c"
47830 1244 : break;
47831 :
47832 83632 : case 1870: /* join_qual: ON a_expr */
47833 : #line 13933 "gram.y"
47834 : {
47835 : (yyval.node) = (yyvsp[0].node);
47836 : }
47837 : #line 47838 "gram.c"
47838 83632 : break;
47839 :
47840 490762 : case 1871: /* relation_expr: qualified_name */
47841 : #line 13941 "gram.y"
47842 : {
47843 : /* inheritance query, implicitly */
47844 : (yyval.range) = (yyvsp[0].range);
47845 : (yyval.range)->inh = true;
47846 : (yyval.range)->alias = NULL;
47847 : }
47848 : #line 47849 "gram.c"
47849 490762 : break;
47850 :
47851 9136 : case 1872: /* relation_expr: extended_relation_expr */
47852 : #line 13948 "gram.y"
47853 : {
47854 : (yyval.range) = (yyvsp[0].range);
47855 : }
47856 : #line 47857 "gram.c"
47857 9136 : break;
47858 :
47859 204 : case 1873: /* extended_relation_expr: qualified_name '*' */
47860 : #line 13955 "gram.y"
47861 : {
47862 : /* inheritance query, explicitly */
47863 : (yyval.range) = (yyvsp[-1].range);
47864 : (yyval.range)->inh = true;
47865 : (yyval.range)->alias = NULL;
47866 : }
47867 : #line 47868 "gram.c"
47868 204 : break;
47869 :
47870 8938 : case 1874: /* extended_relation_expr: ONLY qualified_name */
47871 : #line 13962 "gram.y"
47872 : {
47873 : /* no inheritance */
47874 : (yyval.range) = (yyvsp[0].range);
47875 : (yyval.range)->inh = false;
47876 : (yyval.range)->alias = NULL;
47877 : }
47878 : #line 47879 "gram.c"
47879 8938 : break;
47880 :
47881 0 : case 1875: /* extended_relation_expr: ONLY '(' qualified_name ')' */
47882 : #line 13969 "gram.y"
47883 : {
47884 : /* no inheritance, SQL99-style syntax */
47885 : (yyval.range) = (yyvsp[-1].range);
47886 : (yyval.range)->inh = false;
47887 : (yyval.range)->alias = NULL;
47888 : }
47889 : #line 47890 "gram.c"
47890 0 : break;
47891 :
47892 5436 : case 1876: /* relation_expr_list: relation_expr */
47893 : #line 13979 "gram.y"
47894 : { (yyval.list) = list_make1((yyvsp[0].range)); }
47895 : #line 47896 "gram.c"
47896 5436 : break;
47897 :
47898 15298 : case 1877: /* relation_expr_list: relation_expr_list ',' relation_expr */
47899 : #line 13980 "gram.y"
47900 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].range)); }
47901 : #line 47902 "gram.c"
47902 15298 : break;
47903 :
47904 18430 : case 1878: /* relation_expr_opt_alias: relation_expr */
47905 : #line 13994 "gram.y"
47906 : {
47907 : (yyval.range) = (yyvsp[0].range);
47908 : }
47909 : #line 47910 "gram.c"
47910 18430 : break;
47911 :
47912 2192 : case 1879: /* relation_expr_opt_alias: relation_expr ColId */
47913 : #line 13998 "gram.y"
47914 : {
47915 : Alias *alias = makeNode(Alias);
47916 :
47917 : alias->aliasname = (yyvsp[0].str);
47918 : (yyvsp[-1].range)->alias = alias;
47919 : (yyval.range) = (yyvsp[-1].range);
47920 : }
47921 : #line 47922 "gram.c"
47922 2192 : break;
47923 :
47924 90 : case 1880: /* relation_expr_opt_alias: relation_expr AS ColId */
47925 : #line 14006 "gram.y"
47926 : {
47927 : Alias *alias = makeNode(Alias);
47928 :
47929 : alias->aliasname = (yyvsp[0].str);
47930 : (yyvsp[-2].range)->alias = alias;
47931 : (yyval.range) = (yyvsp[-2].range);
47932 : }
47933 : #line 47934 "gram.c"
47934 90 : break;
47935 :
47936 264 : case 1881: /* tablesample_clause: TABLESAMPLE func_name '(' expr_list ')' opt_repeatable_clause */
47937 : #line 14020 "gram.y"
47938 : {
47939 : RangeTableSample *n = makeNode(RangeTableSample);
47940 :
47941 : /* n->relation will be filled in later */
47942 : n->method = (yyvsp[-4].list);
47943 : n->args = (yyvsp[-2].list);
47944 : n->repeatable = (yyvsp[0].node);
47945 : n->location = (yylsp[-4]);
47946 : (yyval.node) = (Node *) n;
47947 : }
47948 : #line 47949 "gram.c"
47949 264 : break;
47950 :
47951 110 : case 1882: /* opt_repeatable_clause: REPEATABLE '(' a_expr ')' */
47952 : #line 14033 "gram.y"
47953 : { (yyval.node) = (Node *) (yyvsp[-1].node); }
47954 : #line 47955 "gram.c"
47955 110 : break;
47956 :
47957 154 : case 1883: /* opt_repeatable_clause: %empty */
47958 : #line 14034 "gram.y"
47959 : { (yyval.node) = NULL; }
47960 : #line 47961 "gram.c"
47961 154 : break;
47962 :
47963 51612 : case 1884: /* func_table: func_expr_windowless opt_ordinality */
47964 : #line 14050 "gram.y"
47965 : {
47966 : RangeFunction *n = makeNode(RangeFunction);
47967 :
47968 : n->lateral = false;
47969 : n->ordinality = (yyvsp[0].boolean);
47970 : n->is_rowsfrom = false;
47971 : n->functions = list_make1(list_make2((yyvsp[-1].node), NIL));
47972 : /* alias and coldeflist are set by table_ref production */
47973 : (yyval.node) = (Node *) n;
47974 : }
47975 : #line 47976 "gram.c"
47976 51612 : break;
47977 :
47978 132 : case 1885: /* func_table: ROWS FROM '(' rowsfrom_list ')' opt_ordinality */
47979 : #line 14061 "gram.y"
47980 : {
47981 : RangeFunction *n = makeNode(RangeFunction);
47982 :
47983 : n->lateral = false;
47984 : n->ordinality = (yyvsp[0].boolean);
47985 : n->is_rowsfrom = true;
47986 : n->functions = (yyvsp[-2].list);
47987 : /* alias and coldeflist are set by table_ref production */
47988 : (yyval.node) = (Node *) n;
47989 : }
47990 : #line 47991 "gram.c"
47991 132 : break;
47992 :
47993 318 : case 1886: /* rowsfrom_item: func_expr_windowless opt_col_def_list */
47994 : #line 14074 "gram.y"
47995 : { (yyval.list) = list_make2((yyvsp[-1].node), (yyvsp[0].list)); }
47996 : #line 47997 "gram.c"
47997 318 : break;
47998 :
47999 132 : case 1887: /* rowsfrom_list: rowsfrom_item */
48000 : #line 14078 "gram.y"
48001 : { (yyval.list) = list_make1((yyvsp[0].list)); }
48002 : #line 48003 "gram.c"
48003 132 : break;
48004 :
48005 186 : case 1888: /* rowsfrom_list: rowsfrom_list ',' rowsfrom_item */
48006 : #line 14079 "gram.y"
48007 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); }
48008 : #line 48009 "gram.c"
48009 186 : break;
48010 :
48011 54 : case 1889: /* opt_col_def_list: AS '(' TableFuncElementList ')' */
48012 : #line 14082 "gram.y"
48013 : { (yyval.list) = (yyvsp[-1].list); }
48014 : #line 48015 "gram.c"
48015 54 : break;
48016 :
48017 264 : case 1890: /* opt_col_def_list: %empty */
48018 : #line 14083 "gram.y"
48019 : { (yyval.list) = NIL; }
48020 : #line 48021 "gram.c"
48021 264 : break;
48022 :
48023 1086 : case 1891: /* opt_ordinality: WITH_LA ORDINALITY */
48024 : #line 14086 "gram.y"
48025 : { (yyval.boolean) = true; }
48026 : #line 48027 "gram.c"
48027 1086 : break;
48028 :
48029 50658 : case 1892: /* opt_ordinality: %empty */
48030 : #line 14087 "gram.y"
48031 : { (yyval.boolean) = false; }
48032 : #line 48033 "gram.c"
48033 50658 : break;
48034 :
48035 214610 : case 1893: /* where_clause: WHERE a_expr */
48036 : #line 14092 "gram.y"
48037 : { (yyval.node) = (yyvsp[0].node); }
48038 : #line 48039 "gram.c"
48039 214610 : break;
48040 :
48041 292864 : case 1894: /* where_clause: %empty */
48042 : #line 14093 "gram.y"
48043 : { (yyval.node) = NULL; }
48044 : #line 48045 "gram.c"
48045 292864 : break;
48046 :
48047 13324 : case 1895: /* where_or_current_clause: WHERE a_expr */
48048 : #line 14098 "gram.y"
48049 : { (yyval.node) = (yyvsp[0].node); }
48050 : #line 48051 "gram.c"
48051 13324 : break;
48052 :
48053 266 : case 1896: /* where_or_current_clause: WHERE CURRENT_P OF cursor_name */
48054 : #line 14100 "gram.y"
48055 : {
48056 : CurrentOfExpr *n = makeNode(CurrentOfExpr);
48057 :
48058 : /* cvarno is filled in by parse analysis */
48059 : n->cursor_name = (yyvsp[0].str);
48060 : n->cursor_param = 0;
48061 : (yyval.node) = (Node *) n;
48062 : }
48063 : #line 48064 "gram.c"
48064 266 : break;
48065 :
48066 5016 : case 1897: /* where_or_current_clause: %empty */
48067 : #line 14108 "gram.y"
48068 : { (yyval.node) = NULL; }
48069 : #line 48070 "gram.c"
48070 5016 : break;
48071 :
48072 746 : case 1898: /* OptTableFuncElementList: TableFuncElementList */
48073 : #line 14113 "gram.y"
48074 : { (yyval.list) = (yyvsp[0].list); }
48075 : #line 48076 "gram.c"
48076 746 : break;
48077 :
48078 3786 : case 1899: /* OptTableFuncElementList: %empty */
48079 : #line 14114 "gram.y"
48080 : { (yyval.list) = NIL; }
48081 : #line 48082 "gram.c"
48082 3786 : break;
48083 :
48084 1560 : case 1900: /* TableFuncElementList: TableFuncElement */
48085 : #line 14119 "gram.y"
48086 : {
48087 : (yyval.list) = list_make1((yyvsp[0].node));
48088 : }
48089 : #line 48090 "gram.c"
48090 1560 : break;
48091 :
48092 2098 : case 1901: /* TableFuncElementList: TableFuncElementList ',' TableFuncElement */
48093 : #line 14123 "gram.y"
48094 : {
48095 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node));
48096 : }
48097 : #line 48098 "gram.c"
48098 2098 : break;
48099 :
48100 3722 : case 1902: /* TableFuncElement: ColId Typename opt_collate_clause */
48101 : #line 14129 "gram.y"
48102 : {
48103 : ColumnDef *n = makeNode(ColumnDef);
48104 :
48105 : n->colname = (yyvsp[-2].str);
48106 : n->typeName = (yyvsp[-1].typnam);
48107 : n->inhcount = 0;
48108 : n->is_local = true;
48109 : n->is_not_null = false;
48110 : n->is_from_type = false;
48111 : n->storage = 0;
48112 : n->raw_default = NULL;
48113 : n->cooked_default = NULL;
48114 : n->collClause = (CollateClause *) (yyvsp[0].node);
48115 : n->collOid = InvalidOid;
48116 : n->constraints = NIL;
48117 : n->location = (yylsp[-2]);
48118 : (yyval.node) = (Node *) n;
48119 : }
48120 : #line 48121 "gram.c"
48121 3722 : break;
48122 :
48123 202 : case 1903: /* xmltable: XMLTABLE '(' c_expr xmlexists_argument COLUMNS xmltable_column_list ')' */
48124 : #line 14154 "gram.y"
48125 : {
48126 : RangeTableFunc *n = makeNode(RangeTableFunc);
48127 :
48128 : n->rowexpr = (yyvsp[-4].node);
48129 : n->docexpr = (yyvsp[-3].node);
48130 : n->columns = (yyvsp[-1].list);
48131 : n->namespaces = NIL;
48132 : n->location = (yylsp[-6]);
48133 : (yyval.node) = (Node *) n;
48134 : }
48135 : #line 48136 "gram.c"
48136 202 : break;
48137 :
48138 22 : case 1904: /* xmltable: XMLTABLE '(' XMLNAMESPACES '(' xml_namespace_list ')' ',' c_expr xmlexists_argument COLUMNS xmltable_column_list ')' */
48139 : #line 14166 "gram.y"
48140 : {
48141 : RangeTableFunc *n = makeNode(RangeTableFunc);
48142 :
48143 : n->rowexpr = (yyvsp[-4].node);
48144 : n->docexpr = (yyvsp[-3].node);
48145 : n->columns = (yyvsp[-1].list);
48146 : n->namespaces = (yyvsp[-7].list);
48147 : n->location = (yylsp[-11]);
48148 : (yyval.node) = (Node *) n;
48149 : }
48150 : #line 48151 "gram.c"
48151 22 : break;
48152 :
48153 224 : case 1905: /* xmltable_column_list: xmltable_column_el */
48154 : #line 14178 "gram.y"
48155 : { (yyval.list) = list_make1((yyvsp[0].node)); }
48156 : #line 48157 "gram.c"
48157 224 : break;
48158 :
48159 544 : case 1906: /* xmltable_column_list: xmltable_column_list ',' xmltable_column_el */
48160 : #line 14179 "gram.y"
48161 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
48162 : #line 48163 "gram.c"
48163 544 : break;
48164 :
48165 198 : case 1907: /* xmltable_column_el: ColId Typename */
48166 : #line 14184 "gram.y"
48167 : {
48168 : RangeTableFuncCol *fc = makeNode(RangeTableFuncCol);
48169 :
48170 : fc->colname = (yyvsp[-1].str);
48171 : fc->for_ordinality = false;
48172 : fc->typeName = (yyvsp[0].typnam);
48173 : fc->is_not_null = false;
48174 : fc->colexpr = NULL;
48175 : fc->coldefexpr = NULL;
48176 : fc->location = (yylsp[-1]);
48177 :
48178 : (yyval.node) = (Node *) fc;
48179 : }
48180 : #line 48181 "gram.c"
48181 198 : break;
48182 :
48183 506 : case 1908: /* xmltable_column_el: ColId Typename xmltable_column_option_list */
48184 : #line 14198 "gram.y"
48185 : {
48186 : RangeTableFuncCol *fc = makeNode(RangeTableFuncCol);
48187 : ListCell *option;
48188 : bool nullability_seen = false;
48189 :
48190 : fc->colname = (yyvsp[-2].str);
48191 : fc->typeName = (yyvsp[-1].typnam);
48192 : fc->for_ordinality = false;
48193 : fc->is_not_null = false;
48194 : fc->colexpr = NULL;
48195 : fc->coldefexpr = NULL;
48196 : fc->location = (yylsp[-2]);
48197 :
48198 : foreach(option, (yyvsp[0].list))
48199 : {
48200 : DefElem *defel = (DefElem *) lfirst(option);
48201 :
48202 : if (strcmp(defel->defname, "default") == 0)
48203 : {
48204 : if (fc->coldefexpr != NULL)
48205 : ereport(ERROR,
48206 : (errcode(ERRCODE_SYNTAX_ERROR),
48207 : errmsg("only one DEFAULT value is allowed"),
48208 : parser_errposition(defel->location)));
48209 : fc->coldefexpr = defel->arg;
48210 : }
48211 : else if (strcmp(defel->defname, "path") == 0)
48212 : {
48213 : if (fc->colexpr != NULL)
48214 : ereport(ERROR,
48215 : (errcode(ERRCODE_SYNTAX_ERROR),
48216 : errmsg("only one PATH value per column is allowed"),
48217 : parser_errposition(defel->location)));
48218 : fc->colexpr = defel->arg;
48219 : }
48220 : else if (strcmp(defel->defname, "is_not_null") == 0)
48221 : {
48222 : if (nullability_seen)
48223 : ereport(ERROR,
48224 : (errcode(ERRCODE_SYNTAX_ERROR),
48225 : errmsg("conflicting or redundant NULL / NOT NULL declarations for column \"%s\"", fc->colname),
48226 : parser_errposition(defel->location)));
48227 : fc->is_not_null = boolVal(defel->arg);
48228 : nullability_seen = true;
48229 : }
48230 : else
48231 : {
48232 : ereport(ERROR,
48233 : (errcode(ERRCODE_SYNTAX_ERROR),
48234 : errmsg("unrecognized column option \"%s\"",
48235 : defel->defname),
48236 : parser_errposition(defel->location)));
48237 : }
48238 : }
48239 : (yyval.node) = (Node *) fc;
48240 : }
48241 : #line 48242 "gram.c"
48242 506 : break;
48243 :
48244 64 : case 1909: /* xmltable_column_el: ColId FOR ORDINALITY */
48245 : #line 14255 "gram.y"
48246 : {
48247 : RangeTableFuncCol *fc = makeNode(RangeTableFuncCol);
48248 :
48249 : fc->colname = (yyvsp[-2].str);
48250 : fc->for_ordinality = true;
48251 : /* other fields are ignored, initialized by makeNode */
48252 : fc->location = (yylsp[-2]);
48253 :
48254 : (yyval.node) = (Node *) fc;
48255 : }
48256 : #line 48257 "gram.c"
48257 64 : break;
48258 :
48259 506 : case 1910: /* xmltable_column_option_list: xmltable_column_option_el */
48260 : #line 14269 "gram.y"
48261 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
48262 : #line 48263 "gram.c"
48263 506 : break;
48264 :
48265 116 : case 1911: /* xmltable_column_option_list: xmltable_column_option_list xmltable_column_option_el */
48266 : #line 14271 "gram.y"
48267 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
48268 : #line 48269 "gram.c"
48269 116 : break;
48270 :
48271 0 : case 1912: /* xmltable_column_option_el: IDENT b_expr */
48272 : #line 14276 "gram.y"
48273 : { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); }
48274 : #line 48275 "gram.c"
48275 0 : break;
48276 :
48277 58 : case 1913: /* xmltable_column_option_el: DEFAULT b_expr */
48278 : #line 14278 "gram.y"
48279 : { (yyval.defelt) = makeDefElem("default", (yyvsp[0].node), (yylsp[-1])); }
48280 : #line 48281 "gram.c"
48281 58 : break;
48282 :
48283 58 : case 1914: /* xmltable_column_option_el: NOT NULL_P */
48284 : #line 14280 "gram.y"
48285 : { (yyval.defelt) = makeDefElem("is_not_null", (Node *) makeBoolean(true), (yylsp[-1])); }
48286 : #line 48287 "gram.c"
48287 58 : break;
48288 :
48289 0 : case 1915: /* xmltable_column_option_el: NULL_P */
48290 : #line 14282 "gram.y"
48291 : { (yyval.defelt) = makeDefElem("is_not_null", (Node *) makeBoolean(false), (yylsp[0])); }
48292 : #line 48293 "gram.c"
48293 0 : break;
48294 :
48295 506 : case 1916: /* xmltable_column_option_el: PATH b_expr */
48296 : #line 14284 "gram.y"
48297 : { (yyval.defelt) = makeDefElem("path", (yyvsp[0].node), (yylsp[-1])); }
48298 : #line 48299 "gram.c"
48299 506 : break;
48300 :
48301 22 : case 1917: /* xml_namespace_list: xml_namespace_el */
48302 : #line 14289 "gram.y"
48303 : { (yyval.list) = list_make1((yyvsp[0].target)); }
48304 : #line 48305 "gram.c"
48305 22 : break;
48306 :
48307 0 : case 1918: /* xml_namespace_list: xml_namespace_list ',' xml_namespace_el */
48308 : #line 14291 "gram.y"
48309 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); }
48310 : #line 48311 "gram.c"
48311 0 : break;
48312 :
48313 16 : case 1919: /* xml_namespace_el: b_expr AS ColLabel */
48314 : #line 14296 "gram.y"
48315 : {
48316 : (yyval.target) = makeNode(ResTarget);
48317 : (yyval.target)->name = (yyvsp[0].str);
48318 : (yyval.target)->indirection = NIL;
48319 : (yyval.target)->val = (yyvsp[-2].node);
48320 : (yyval.target)->location = (yylsp[-2]);
48321 : }
48322 : #line 48323 "gram.c"
48323 16 : break;
48324 :
48325 6 : case 1920: /* xml_namespace_el: DEFAULT b_expr */
48326 : #line 14304 "gram.y"
48327 : {
48328 : (yyval.target) = makeNode(ResTarget);
48329 : (yyval.target)->name = NULL;
48330 : (yyval.target)->indirection = NIL;
48331 : (yyval.target)->val = (yyvsp[0].node);
48332 : (yyval.target)->location = (yylsp[-1]);
48333 : }
48334 : #line 48335 "gram.c"
48335 6 : break;
48336 :
48337 530 : case 1921: /* json_table: JSON_TABLE '(' json_value_expr ',' a_expr json_table_path_name_opt json_passing_clause_opt COLUMNS '(' json_table_column_definition_list ')' json_on_error_clause_opt ')' */
48338 : #line 14320 "gram.y"
48339 : {
48340 : JsonTable *n = makeNode(JsonTable);
48341 : char *pathstring;
48342 :
48343 : n->context_item = (JsonValueExpr *) (yyvsp[-10].node);
48344 : if (!IsA((yyvsp[-8].node), A_Const) ||
48345 : castNode(A_Const, (yyvsp[-8].node))->val.node.type != T_String)
48346 : ereport(ERROR,
48347 : errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
48348 : errmsg("only string constants are supported in JSON_TABLE path specification"),
48349 : parser_errposition((yylsp[-8])));
48350 : pathstring = castNode(A_Const, (yyvsp[-8].node))->val.sval.sval;
48351 : n->pathspec = makeJsonTablePathSpec(pathstring, (yyvsp[-7].str), (yylsp[-8]), (yylsp[-7]));
48352 : n->passing = (yyvsp[-6].list);
48353 : n->columns = (yyvsp[-3].list);
48354 : n->on_error = (JsonBehavior *) (yyvsp[-1].node);
48355 : n->location = (yylsp[-12]);
48356 : (yyval.node) = (Node *) n;
48357 : }
48358 : #line 48359 "gram.c"
48359 524 : break;
48360 :
48361 62 : case 1922: /* json_table_path_name_opt: AS name */
48362 : #line 14342 "gram.y"
48363 : { (yyval.str) = (yyvsp[0].str); }
48364 : #line 48365 "gram.c"
48365 62 : break;
48366 :
48367 480 : case 1923: /* json_table_path_name_opt: %empty */
48368 : #line 14343 "gram.y"
48369 : { (yyval.str) = NULL; }
48370 : #line 48371 "gram.c"
48371 480 : break;
48372 :
48373 820 : case 1924: /* json_table_column_definition_list: json_table_column_definition */
48374 : #line 14348 "gram.y"
48375 : { (yyval.list) = list_make1((yyvsp[0].node)); }
48376 : #line 48377 "gram.c"
48377 820 : break;
48378 :
48379 528 : case 1925: /* json_table_column_definition_list: json_table_column_definition_list ',' json_table_column_definition */
48380 : #line 14350 "gram.y"
48381 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
48382 : #line 48383 "gram.c"
48383 528 : break;
48384 :
48385 84 : case 1926: /* json_table_column_definition: ColId FOR ORDINALITY */
48386 : #line 14355 "gram.y"
48387 : {
48388 : JsonTableColumn *n = makeNode(JsonTableColumn);
48389 :
48390 : n->coltype = JTC_FOR_ORDINALITY;
48391 : n->name = (yyvsp[-2].str);
48392 : n->location = (yylsp[-2]);
48393 : (yyval.node) = (Node *) n;
48394 : }
48395 : #line 48396 "gram.c"
48396 84 : break;
48397 :
48398 728 : case 1927: /* json_table_column_definition: ColId Typename json_table_column_path_clause_opt json_wrapper_behavior json_quotes_clause_opt json_behavior_clause_opt */
48399 : #line 14368 "gram.y"
48400 : {
48401 : JsonTableColumn *n = makeNode(JsonTableColumn);
48402 :
48403 : n->coltype = JTC_REGULAR;
48404 : n->name = (yyvsp[-5].str);
48405 : n->typeName = (yyvsp[-4].typnam);
48406 : n->format = makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1);
48407 : n->pathspec = (JsonTablePathSpec *) (yyvsp[-3].node);
48408 : n->wrapper = (yyvsp[-2].ival);
48409 : n->quotes = (yyvsp[-1].ival);
48410 : n->on_empty = (JsonBehavior *) linitial((yyvsp[0].list));
48411 : n->on_error = (JsonBehavior *) lsecond((yyvsp[0].list));
48412 : n->location = (yylsp[-5]);
48413 : (yyval.node) = (Node *) n;
48414 : }
48415 : #line 48416 "gram.c"
48416 728 : break;
48417 :
48418 108 : case 1928: /* json_table_column_definition: ColId Typename json_format_clause json_table_column_path_clause_opt json_wrapper_behavior json_quotes_clause_opt json_behavior_clause_opt */
48419 : #line 14388 "gram.y"
48420 : {
48421 : JsonTableColumn *n = makeNode(JsonTableColumn);
48422 :
48423 : n->coltype = JTC_FORMATTED;
48424 : n->name = (yyvsp[-6].str);
48425 : n->typeName = (yyvsp[-5].typnam);
48426 : n->format = (JsonFormat *) (yyvsp[-4].node);
48427 : n->pathspec = (JsonTablePathSpec *) (yyvsp[-3].node);
48428 : n->wrapper = (yyvsp[-2].ival);
48429 : n->quotes = (yyvsp[-1].ival);
48430 : n->on_empty = (JsonBehavior *) linitial((yyvsp[0].list));
48431 : n->on_error = (JsonBehavior *) lsecond((yyvsp[0].list));
48432 : n->location = (yylsp[-6]);
48433 : (yyval.node) = (Node *) n;
48434 : }
48435 : #line 48436 "gram.c"
48436 108 : break;
48437 :
48438 138 : case 1929: /* json_table_column_definition: ColId Typename EXISTS json_table_column_path_clause_opt json_on_error_clause_opt */
48439 : #line 14406 "gram.y"
48440 : {
48441 : JsonTableColumn *n = makeNode(JsonTableColumn);
48442 :
48443 : n->coltype = JTC_EXISTS;
48444 : n->name = (yyvsp[-4].str);
48445 : n->typeName = (yyvsp[-3].typnam);
48446 : n->format = makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1);
48447 : n->wrapper = JSW_NONE;
48448 : n->quotes = JS_QUOTES_UNSPEC;
48449 : n->pathspec = (JsonTablePathSpec *) (yyvsp[-1].node);
48450 : n->on_empty = NULL;
48451 : n->on_error = (JsonBehavior *) (yyvsp[0].node);
48452 : n->location = (yylsp[-4]);
48453 : (yyval.node) = (Node *) n;
48454 : }
48455 : #line 48456 "gram.c"
48456 138 : break;
48457 :
48458 144 : case 1930: /* json_table_column_definition: NESTED path_opt Sconst COLUMNS '(' json_table_column_definition_list ')' */
48459 : #line 14423 "gram.y"
48460 : {
48461 : JsonTableColumn *n = makeNode(JsonTableColumn);
48462 :
48463 : n->coltype = JTC_NESTED;
48464 : n->pathspec = (JsonTablePathSpec *)
48465 : makeJsonTablePathSpec((yyvsp[-4].str), NULL, (yylsp[-4]), -1);
48466 : n->columns = (yyvsp[-1].list);
48467 : n->location = (yylsp[-6]);
48468 : (yyval.node) = (Node *) n;
48469 : }
48470 : #line 48471 "gram.c"
48471 144 : break;
48472 :
48473 146 : case 1931: /* json_table_column_definition: NESTED path_opt Sconst AS name COLUMNS '(' json_table_column_definition_list ')' */
48474 : #line 14435 "gram.y"
48475 : {
48476 : JsonTableColumn *n = makeNode(JsonTableColumn);
48477 :
48478 : n->coltype = JTC_NESTED;
48479 : n->pathspec = (JsonTablePathSpec *)
48480 : makeJsonTablePathSpec((yyvsp[-6].str), (yyvsp[-4].str), (yylsp[-6]), (yylsp[-4]));
48481 : n->columns = (yyvsp[-1].list);
48482 : n->location = (yylsp[-8]);
48483 : (yyval.node) = (Node *) n;
48484 : }
48485 : #line 48486 "gram.c"
48486 146 : break;
48487 :
48488 828 : case 1934: /* json_table_column_path_clause_opt: PATH Sconst */
48489 : #line 14454 "gram.y"
48490 : { (yyval.node) = (Node *) makeJsonTablePathSpec((yyvsp[0].str), NULL, (yylsp[0]), -1); }
48491 : #line 48492 "gram.c"
48492 828 : break;
48493 :
48494 152 : case 1935: /* json_table_column_path_clause_opt: %empty */
48495 : #line 14456 "gram.y"
48496 : { (yyval.node) = NULL; }
48497 : #line 48498 "gram.c"
48498 152 : break;
48499 :
48500 537748 : case 1936: /* Typename: SimpleTypename opt_array_bounds */
48501 : #line 14470 "gram.y"
48502 : {
48503 : (yyval.typnam) = (yyvsp[-1].typnam);
48504 : (yyval.typnam)->arrayBounds = (yyvsp[0].list);
48505 : }
48506 : #line 48507 "gram.c"
48507 537748 : break;
48508 :
48509 2308 : case 1937: /* Typename: SETOF SimpleTypename opt_array_bounds */
48510 : #line 14475 "gram.y"
48511 : {
48512 : (yyval.typnam) = (yyvsp[-1].typnam);
48513 : (yyval.typnam)->arrayBounds = (yyvsp[0].list);
48514 : (yyval.typnam)->setof = true;
48515 : }
48516 : #line 48517 "gram.c"
48517 2308 : break;
48518 :
48519 6 : case 1938: /* Typename: SimpleTypename ARRAY '[' Iconst ']' */
48520 : #line 14482 "gram.y"
48521 : {
48522 : (yyval.typnam) = (yyvsp[-4].typnam);
48523 : (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[-1].ival)));
48524 : }
48525 : #line 48526 "gram.c"
48526 6 : break;
48527 :
48528 0 : case 1939: /* Typename: SETOF SimpleTypename ARRAY '[' Iconst ']' */
48529 : #line 14487 "gram.y"
48530 : {
48531 : (yyval.typnam) = (yyvsp[-4].typnam);
48532 : (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[-1].ival)));
48533 : (yyval.typnam)->setof = true;
48534 : }
48535 : #line 48536 "gram.c"
48536 0 : break;
48537 :
48538 0 : case 1940: /* Typename: SimpleTypename ARRAY */
48539 : #line 14493 "gram.y"
48540 : {
48541 : (yyval.typnam) = (yyvsp[-1].typnam);
48542 : (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1));
48543 : }
48544 : #line 48545 "gram.c"
48545 0 : break;
48546 :
48547 0 : case 1941: /* Typename: SETOF SimpleTypename ARRAY */
48548 : #line 14498 "gram.y"
48549 : {
48550 : (yyval.typnam) = (yyvsp[-1].typnam);
48551 : (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1));
48552 : (yyval.typnam)->setof = true;
48553 : }
48554 : #line 48555 "gram.c"
48555 0 : break;
48556 :
48557 16784 : case 1942: /* opt_array_bounds: opt_array_bounds '[' ']' */
48558 : #line 14507 "gram.y"
48559 : { (yyval.list) = lappend((yyvsp[-2].list), makeInteger(-1)); }
48560 : #line 48561 "gram.c"
48561 16784 : break;
48562 :
48563 62 : case 1943: /* opt_array_bounds: opt_array_bounds '[' Iconst ']' */
48564 : #line 14509 "gram.y"
48565 : { (yyval.list) = lappend((yyvsp[-3].list), makeInteger((yyvsp[-1].ival))); }
48566 : #line 48567 "gram.c"
48567 62 : break;
48568 :
48569 540056 : case 1944: /* opt_array_bounds: %empty */
48570 : #line 14511 "gram.y"
48571 : { (yyval.list) = NIL; }
48572 : #line 48573 "gram.c"
48573 540056 : break;
48574 :
48575 405512 : case 1945: /* SimpleTypename: GenericType */
48576 : #line 14515 "gram.y"
48577 : { (yyval.typnam) = (yyvsp[0].typnam); }
48578 : #line 48579 "gram.c"
48579 405512 : break;
48580 :
48581 119368 : case 1946: /* SimpleTypename: Numeric */
48582 : #line 14516 "gram.y"
48583 : { (yyval.typnam) = (yyvsp[0].typnam); }
48584 : #line 48585 "gram.c"
48585 119368 : break;
48586 :
48587 1922 : case 1947: /* SimpleTypename: Bit */
48588 : #line 14517 "gram.y"
48589 : { (yyval.typnam) = (yyvsp[0].typnam); }
48590 : #line 48591 "gram.c"
48591 1922 : break;
48592 :
48593 3222 : case 1948: /* SimpleTypename: Character */
48594 : #line 14518 "gram.y"
48595 : { (yyval.typnam) = (yyvsp[0].typnam); }
48596 : #line 48597 "gram.c"
48597 3222 : break;
48598 :
48599 4904 : case 1949: /* SimpleTypename: ConstDatetime */
48600 : #line 14519 "gram.y"
48601 : { (yyval.typnam) = (yyvsp[0].typnam); }
48602 : #line 48603 "gram.c"
48603 4904 : break;
48604 :
48605 3704 : case 1950: /* SimpleTypename: ConstInterval opt_interval */
48606 : #line 14521 "gram.y"
48607 : {
48608 : (yyval.typnam) = (yyvsp[-1].typnam);
48609 : (yyval.typnam)->typmods = (yyvsp[0].list);
48610 : }
48611 : #line 48612 "gram.c"
48612 3704 : break;
48613 :
48614 0 : case 1951: /* SimpleTypename: ConstInterval '(' Iconst ')' */
48615 : #line 14526 "gram.y"
48616 : {
48617 : (yyval.typnam) = (yyvsp[-3].typnam);
48618 : (yyval.typnam)->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
48619 : makeIntConst((yyvsp[-1].ival), (yylsp[-1])));
48620 : }
48621 : #line 48622 "gram.c"
48622 0 : break;
48623 :
48624 1892 : case 1952: /* SimpleTypename: JsonType */
48625 : #line 14531 "gram.y"
48626 : { (yyval.typnam) = (yyvsp[0].typnam); }
48627 : #line 48628 "gram.c"
48628 1892 : break;
48629 :
48630 78 : case 1953: /* ConstTypename: Numeric */
48631 : #line 14546 "gram.y"
48632 : { (yyval.typnam) = (yyvsp[0].typnam); }
48633 : #line 48634 "gram.c"
48634 78 : break;
48635 :
48636 0 : case 1954: /* ConstTypename: ConstBit */
48637 : #line 14547 "gram.y"
48638 : { (yyval.typnam) = (yyvsp[0].typnam); }
48639 : #line 48640 "gram.c"
48640 0 : break;
48641 :
48642 34 : case 1955: /* ConstTypename: ConstCharacter */
48643 : #line 14548 "gram.y"
48644 : { (yyval.typnam) = (yyvsp[0].typnam); }
48645 : #line 48646 "gram.c"
48646 34 : break;
48647 :
48648 2738 : case 1956: /* ConstTypename: ConstDatetime */
48649 : #line 14549 "gram.y"
48650 : { (yyval.typnam) = (yyvsp[0].typnam); }
48651 : #line 48652 "gram.c"
48652 2738 : break;
48653 :
48654 264 : case 1957: /* ConstTypename: JsonType */
48655 : #line 14550 "gram.y"
48656 : { (yyval.typnam) = (yyvsp[0].typnam); }
48657 : #line 48658 "gram.c"
48658 264 : break;
48659 :
48660 284456 : case 1958: /* GenericType: type_function_name opt_type_modifiers */
48661 : #line 14562 "gram.y"
48662 : {
48663 : (yyval.typnam) = makeTypeName((yyvsp[-1].str));
48664 : (yyval.typnam)->typmods = (yyvsp[0].list);
48665 : (yyval.typnam)->location = (yylsp[-1]);
48666 : }
48667 : #line 48668 "gram.c"
48668 284456 : break;
48669 :
48670 121056 : case 1959: /* GenericType: type_function_name attrs opt_type_modifiers */
48671 : #line 14568 "gram.y"
48672 : {
48673 : (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[-2].str)), (yyvsp[-1].list)));
48674 : (yyval.typnam)->typmods = (yyvsp[0].list);
48675 : (yyval.typnam)->location = (yylsp[-2]);
48676 : }
48677 : #line 48678 "gram.c"
48678 121056 : break;
48679 :
48680 1396 : case 1960: /* opt_type_modifiers: '(' expr_list ')' */
48681 : #line 14575 "gram.y"
48682 : { (yyval.list) = (yyvsp[-1].list); }
48683 : #line 48684 "gram.c"
48684 1396 : break;
48685 :
48686 410284 : case 1961: /* opt_type_modifiers: %empty */
48687 : #line 14576 "gram.y"
48688 : { (yyval.list) = NIL; }
48689 : #line 48690 "gram.c"
48690 410284 : break;
48691 :
48692 37972 : case 1962: /* Numeric: INT_P */
48693 : #line 14583 "gram.y"
48694 : {
48695 : (yyval.typnam) = SystemTypeName("int4");
48696 : (yyval.typnam)->location = (yylsp[0]);
48697 : }
48698 : #line 48699 "gram.c"
48699 37972 : break;
48700 :
48701 37954 : case 1963: /* Numeric: INTEGER */
48702 : #line 14588 "gram.y"
48703 : {
48704 : (yyval.typnam) = SystemTypeName("int4");
48705 : (yyval.typnam)->location = (yylsp[0]);
48706 : }
48707 : #line 48708 "gram.c"
48708 37954 : break;
48709 :
48710 1310 : case 1964: /* Numeric: SMALLINT */
48711 : #line 14593 "gram.y"
48712 : {
48713 : (yyval.typnam) = SystemTypeName("int2");
48714 : (yyval.typnam)->location = (yylsp[0]);
48715 : }
48716 : #line 48717 "gram.c"
48717 1310 : break;
48718 :
48719 5168 : case 1965: /* Numeric: BIGINT */
48720 : #line 14598 "gram.y"
48721 : {
48722 : (yyval.typnam) = SystemTypeName("int8");
48723 : (yyval.typnam)->location = (yylsp[0]);
48724 : }
48725 : #line 48726 "gram.c"
48726 5168 : break;
48727 :
48728 13094 : case 1966: /* Numeric: REAL */
48729 : #line 14603 "gram.y"
48730 : {
48731 : (yyval.typnam) = SystemTypeName("float4");
48732 : (yyval.typnam)->location = (yylsp[0]);
48733 : }
48734 : #line 48735 "gram.c"
48735 13094 : break;
48736 :
48737 726 : case 1967: /* Numeric: FLOAT_P opt_float */
48738 : #line 14608 "gram.y"
48739 : {
48740 : (yyval.typnam) = (yyvsp[0].typnam);
48741 : (yyval.typnam)->location = (yylsp[-1]);
48742 : }
48743 : #line 48744 "gram.c"
48744 726 : break;
48745 :
48746 906 : case 1968: /* Numeric: DOUBLE_P PRECISION */
48747 : #line 14613 "gram.y"
48748 : {
48749 : (yyval.typnam) = SystemTypeName("float8");
48750 : (yyval.typnam)->location = (yylsp[-1]);
48751 : }
48752 : #line 48753 "gram.c"
48753 906 : break;
48754 :
48755 36 : case 1969: /* Numeric: DECIMAL_P opt_type_modifiers */
48756 : #line 14618 "gram.y"
48757 : {
48758 : (yyval.typnam) = SystemTypeName("numeric");
48759 : (yyval.typnam)->typmods = (yyvsp[0].list);
48760 : (yyval.typnam)->location = (yylsp[-1]);
48761 : }
48762 : #line 48763 "gram.c"
48763 36 : break;
48764 :
48765 0 : case 1970: /* Numeric: DEC opt_type_modifiers */
48766 : #line 14624 "gram.y"
48767 : {
48768 : (yyval.typnam) = SystemTypeName("numeric");
48769 : (yyval.typnam)->typmods = (yyvsp[0].list);
48770 : (yyval.typnam)->location = (yylsp[-1]);
48771 : }
48772 : #line 48773 "gram.c"
48773 0 : break;
48774 :
48775 6132 : case 1971: /* Numeric: NUMERIC opt_type_modifiers */
48776 : #line 14630 "gram.y"
48777 : {
48778 : (yyval.typnam) = SystemTypeName("numeric");
48779 : (yyval.typnam)->typmods = (yyvsp[0].list);
48780 : (yyval.typnam)->location = (yylsp[-1]);
48781 : }
48782 : #line 48783 "gram.c"
48783 6132 : break;
48784 :
48785 16148 : case 1972: /* Numeric: BOOLEAN_P */
48786 : #line 14636 "gram.y"
48787 : {
48788 : (yyval.typnam) = SystemTypeName("bool");
48789 : (yyval.typnam)->location = (yylsp[0]);
48790 : }
48791 : #line 48792 "gram.c"
48792 16148 : break;
48793 :
48794 2 : case 1973: /* opt_float: '(' Iconst ')' */
48795 : #line 14643 "gram.y"
48796 : {
48797 : /*
48798 : * Check FLOAT() precision limits assuming IEEE floating
48799 : * types - thomas 1997-09-18
48800 : */
48801 : if ((yyvsp[-1].ival) < 1)
48802 : ereport(ERROR,
48803 : (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
48804 : errmsg("precision for type float must be at least 1 bit"),
48805 : parser_errposition((yylsp[-1]))));
48806 : else if ((yyvsp[-1].ival) <= 24)
48807 : (yyval.typnam) = SystemTypeName("float4");
48808 : else if ((yyvsp[-1].ival) <= 53)
48809 : (yyval.typnam) = SystemTypeName("float8");
48810 : else
48811 : ereport(ERROR,
48812 : (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
48813 : errmsg("precision for type float must be less than 54 bits"),
48814 : parser_errposition((yylsp[-1]))));
48815 : }
48816 : #line 48817 "gram.c"
48817 2 : break;
48818 :
48819 724 : case 1974: /* opt_float: %empty */
48820 : #line 14664 "gram.y"
48821 : {
48822 : (yyval.typnam) = SystemTypeName("float8");
48823 : }
48824 : #line 48825 "gram.c"
48825 724 : break;
48826 :
48827 1710 : case 1975: /* Bit: BitWithLength */
48828 : #line 14674 "gram.y"
48829 : {
48830 : (yyval.typnam) = (yyvsp[0].typnam);
48831 : }
48832 : #line 48833 "gram.c"
48833 1710 : break;
48834 :
48835 212 : case 1976: /* Bit: BitWithoutLength */
48836 : #line 14678 "gram.y"
48837 : {
48838 : (yyval.typnam) = (yyvsp[0].typnam);
48839 : }
48840 : #line 48841 "gram.c"
48841 212 : break;
48842 :
48843 0 : case 1977: /* ConstBit: BitWithLength */
48844 : #line 14686 "gram.y"
48845 : {
48846 : (yyval.typnam) = (yyvsp[0].typnam);
48847 : }
48848 : #line 48849 "gram.c"
48849 0 : break;
48850 :
48851 0 : case 1978: /* ConstBit: BitWithoutLength */
48852 : #line 14690 "gram.y"
48853 : {
48854 : (yyval.typnam) = (yyvsp[0].typnam);
48855 : (yyval.typnam)->typmods = NIL;
48856 : }
48857 : #line 48858 "gram.c"
48858 0 : break;
48859 :
48860 1710 : case 1979: /* BitWithLength: BIT opt_varying '(' expr_list ')' */
48861 : #line 14698 "gram.y"
48862 : {
48863 : char *typname;
48864 :
48865 : typname = (yyvsp[-3].boolean) ? "varbit" : "bit";
48866 : (yyval.typnam) = SystemTypeName(typname);
48867 : (yyval.typnam)->typmods = (yyvsp[-1].list);
48868 : (yyval.typnam)->location = (yylsp[-4]);
48869 : }
48870 : #line 48871 "gram.c"
48871 1710 : break;
48872 :
48873 212 : case 1980: /* BitWithoutLength: BIT opt_varying */
48874 : #line 14710 "gram.y"
48875 : {
48876 : /* bit defaults to bit(1), varbit to no limit */
48877 : if ((yyvsp[0].boolean))
48878 : {
48879 : (yyval.typnam) = SystemTypeName("varbit");
48880 : }
48881 : else
48882 : {
48883 : (yyval.typnam) = SystemTypeName("bit");
48884 : (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1));
48885 : }
48886 : (yyval.typnam)->location = (yylsp[-1]);
48887 : }
48888 : #line 48889 "gram.c"
48889 212 : break;
48890 :
48891 1834 : case 1981: /* Character: CharacterWithLength */
48892 : #line 14731 "gram.y"
48893 : {
48894 : (yyval.typnam) = (yyvsp[0].typnam);
48895 : }
48896 : #line 48897 "gram.c"
48897 1834 : break;
48898 :
48899 1388 : case 1982: /* Character: CharacterWithoutLength */
48900 : #line 14735 "gram.y"
48901 : {
48902 : (yyval.typnam) = (yyvsp[0].typnam);
48903 : }
48904 : #line 48905 "gram.c"
48905 1388 : break;
48906 :
48907 12 : case 1983: /* ConstCharacter: CharacterWithLength */
48908 : #line 14741 "gram.y"
48909 : {
48910 : (yyval.typnam) = (yyvsp[0].typnam);
48911 : }
48912 : #line 48913 "gram.c"
48913 12 : break;
48914 :
48915 22 : case 1984: /* ConstCharacter: CharacterWithoutLength */
48916 : #line 14745 "gram.y"
48917 : {
48918 : /* Length was not specified so allow to be unrestricted.
48919 : * This handles problems with fixed-length (bpchar) strings
48920 : * which in column definitions must default to a length
48921 : * of one, but should not be constrained if the length
48922 : * was not specified.
48923 : */
48924 : (yyval.typnam) = (yyvsp[0].typnam);
48925 : (yyval.typnam)->typmods = NIL;
48926 : }
48927 : #line 48928 "gram.c"
48928 22 : break;
48929 :
48930 1846 : case 1985: /* CharacterWithLength: character '(' Iconst ')' */
48931 : #line 14758 "gram.y"
48932 : {
48933 : (yyval.typnam) = SystemTypeName((yyvsp[-3].str));
48934 : (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-1].ival), (yylsp[-1])));
48935 : (yyval.typnam)->location = (yylsp[-3]);
48936 : }
48937 : #line 48938 "gram.c"
48938 1846 : break;
48939 :
48940 1410 : case 1986: /* CharacterWithoutLength: character */
48941 : #line 14766 "gram.y"
48942 : {
48943 : (yyval.typnam) = SystemTypeName((yyvsp[0].str));
48944 : /* char defaults to char(1), varchar to no limit */
48945 : if (strcmp((yyvsp[0].str), "bpchar") == 0)
48946 : (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1));
48947 : (yyval.typnam)->location = (yylsp[0]);
48948 : }
48949 : #line 48950 "gram.c"
48950 1410 : break;
48951 :
48952 780 : case 1987: /* character: CHARACTER opt_varying */
48953 : #line 14776 "gram.y"
48954 : { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; }
48955 : #line 48956 "gram.c"
48956 780 : break;
48957 :
48958 1172 : case 1988: /* character: CHAR_P opt_varying */
48959 : #line 14778 "gram.y"
48960 : { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; }
48961 : #line 48962 "gram.c"
48962 1172 : break;
48963 :
48964 1300 : case 1989: /* character: VARCHAR */
48965 : #line 14780 "gram.y"
48966 : { (yyval.str) = "varchar"; }
48967 : #line 48968 "gram.c"
48968 1300 : break;
48969 :
48970 0 : case 1990: /* character: NATIONAL CHARACTER opt_varying */
48971 : #line 14782 "gram.y"
48972 : { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; }
48973 : #line 48974 "gram.c"
48974 0 : break;
48975 :
48976 0 : case 1991: /* character: NATIONAL CHAR_P opt_varying */
48977 : #line 14784 "gram.y"
48978 : { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; }
48979 : #line 48980 "gram.c"
48980 0 : break;
48981 :
48982 4 : case 1992: /* character: NCHAR opt_varying */
48983 : #line 14786 "gram.y"
48984 : { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; }
48985 : #line 48986 "gram.c"
48986 4 : break;
48987 :
48988 546 : case 1993: /* opt_varying: VARYING */
48989 : #line 14790 "gram.y"
48990 : { (yyval.boolean) = true; }
48991 : #line 48992 "gram.c"
48992 546 : break;
48993 :
48994 3332 : case 1994: /* opt_varying: %empty */
48995 : #line 14791 "gram.y"
48996 : { (yyval.boolean) = false; }
48997 : #line 48998 "gram.c"
48998 3332 : break;
48999 :
49000 136 : case 1995: /* ConstDatetime: TIMESTAMP '(' Iconst ')' opt_timezone */
49001 : #line 14799 "gram.y"
49002 : {
49003 : if ((yyvsp[0].boolean))
49004 : (yyval.typnam) = SystemTypeName("timestamptz");
49005 : else
49006 : (yyval.typnam) = SystemTypeName("timestamp");
49007 : (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-2].ival), (yylsp[-2])));
49008 : (yyval.typnam)->location = (yylsp[-4]);
49009 : }
49010 : #line 49011 "gram.c"
49011 136 : break;
49012 :
49013 5012 : case 1996: /* ConstDatetime: TIMESTAMP opt_timezone */
49014 : #line 14808 "gram.y"
49015 : {
49016 : if ((yyvsp[0].boolean))
49017 : (yyval.typnam) = SystemTypeName("timestamptz");
49018 : else
49019 : (yyval.typnam) = SystemTypeName("timestamp");
49020 : (yyval.typnam)->location = (yylsp[-1]);
49021 : }
49022 : #line 49023 "gram.c"
49023 5012 : break;
49024 :
49025 26 : case 1997: /* ConstDatetime: TIME '(' Iconst ')' opt_timezone */
49026 : #line 14816 "gram.y"
49027 : {
49028 : if ((yyvsp[0].boolean))
49029 : (yyval.typnam) = SystemTypeName("timetz");
49030 : else
49031 : (yyval.typnam) = SystemTypeName("time");
49032 : (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-2].ival), (yylsp[-2])));
49033 : (yyval.typnam)->location = (yylsp[-4]);
49034 : }
49035 : #line 49036 "gram.c"
49036 26 : break;
49037 :
49038 2468 : case 1998: /* ConstDatetime: TIME opt_timezone */
49039 : #line 14825 "gram.y"
49040 : {
49041 : if ((yyvsp[0].boolean))
49042 : (yyval.typnam) = SystemTypeName("timetz");
49043 : else
49044 : (yyval.typnam) = SystemTypeName("time");
49045 : (yyval.typnam)->location = (yylsp[-1]);
49046 : }
49047 : #line 49048 "gram.c"
49048 2468 : break;
49049 :
49050 7014 : case 1999: /* ConstInterval: INTERVAL */
49051 : #line 14836 "gram.y"
49052 : {
49053 : (yyval.typnam) = SystemTypeName("interval");
49054 : (yyval.typnam)->location = (yylsp[0]);
49055 : }
49056 : #line 49057 "gram.c"
49057 7014 : break;
49058 :
49059 1856 : case 2000: /* opt_timezone: WITH_LA TIME ZONE */
49060 : #line 14843 "gram.y"
49061 : { (yyval.boolean) = true; }
49062 : #line 49063 "gram.c"
49063 1856 : break;
49064 :
49065 628 : case 2001: /* opt_timezone: WITHOUT_LA TIME ZONE */
49066 : #line 14844 "gram.y"
49067 : { (yyval.boolean) = false; }
49068 : #line 49069 "gram.c"
49069 628 : break;
49070 :
49071 5158 : case 2002: /* opt_timezone: %empty */
49072 : #line 14845 "gram.y"
49073 : { (yyval.boolean) = false; }
49074 : #line 49075 "gram.c"
49075 5158 : break;
49076 :
49077 12 : case 2003: /* opt_interval: YEAR_P */
49078 : #line 14850 "gram.y"
49079 : { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[0]))); }
49080 : #line 49081 "gram.c"
49081 12 : break;
49082 :
49083 18 : case 2004: /* opt_interval: MONTH_P */
49084 : #line 14852 "gram.y"
49085 : { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[0]))); }
49086 : #line 49087 "gram.c"
49087 18 : break;
49088 :
49089 18 : case 2005: /* opt_interval: DAY_P */
49090 : #line 14854 "gram.y"
49091 : { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[0]))); }
49092 : #line 49093 "gram.c"
49093 18 : break;
49094 :
49095 12 : case 2006: /* opt_interval: HOUR_P */
49096 : #line 14856 "gram.y"
49097 : { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[0]))); }
49098 : #line 49099 "gram.c"
49099 12 : break;
49100 :
49101 12 : case 2007: /* opt_interval: MINUTE_P */
49102 : #line 14858 "gram.y"
49103 : { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[0]))); }
49104 : #line 49105 "gram.c"
49105 12 : break;
49106 :
49107 36 : case 2008: /* opt_interval: interval_second */
49108 : #line 14860 "gram.y"
49109 : { (yyval.list) = (yyvsp[0].list); }
49110 : #line 49111 "gram.c"
49111 36 : break;
49112 :
49113 18 : case 2009: /* opt_interval: YEAR_P TO MONTH_P */
49114 : #line 14862 "gram.y"
49115 : {
49116 : (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) |
49117 : INTERVAL_MASK(MONTH), (yylsp[-2])));
49118 : }
49119 : #line 49120 "gram.c"
49120 18 : break;
49121 :
49122 24 : case 2010: /* opt_interval: DAY_P TO HOUR_P */
49123 : #line 14867 "gram.y"
49124 : {
49125 : (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
49126 : INTERVAL_MASK(HOUR), (yylsp[-2])));
49127 : }
49128 : #line 49129 "gram.c"
49129 24 : break;
49130 :
49131 24 : case 2011: /* opt_interval: DAY_P TO MINUTE_P */
49132 : #line 14872 "gram.y"
49133 : {
49134 : (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
49135 : INTERVAL_MASK(HOUR) |
49136 : INTERVAL_MASK(MINUTE), (yylsp[-2])));
49137 : }
49138 : #line 49139 "gram.c"
49139 24 : break;
49140 :
49141 48 : case 2012: /* opt_interval: DAY_P TO interval_second */
49142 : #line 14878 "gram.y"
49143 : {
49144 : (yyval.list) = (yyvsp[0].list);
49145 : linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(DAY) |
49146 : INTERVAL_MASK(HOUR) |
49147 : INTERVAL_MASK(MINUTE) |
49148 : INTERVAL_MASK(SECOND), (yylsp[-2]));
49149 : }
49150 : #line 49151 "gram.c"
49151 48 : break;
49152 :
49153 18 : case 2013: /* opt_interval: HOUR_P TO MINUTE_P */
49154 : #line 14886 "gram.y"
49155 : {
49156 : (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) |
49157 : INTERVAL_MASK(MINUTE), (yylsp[-2])));
49158 : }
49159 : #line 49160 "gram.c"
49160 18 : break;
49161 :
49162 36 : case 2014: /* opt_interval: HOUR_P TO interval_second */
49163 : #line 14891 "gram.y"
49164 : {
49165 : (yyval.list) = (yyvsp[0].list);
49166 : linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(HOUR) |
49167 : INTERVAL_MASK(MINUTE) |
49168 : INTERVAL_MASK(SECOND), (yylsp[-2]));
49169 : }
49170 : #line 49171 "gram.c"
49171 36 : break;
49172 :
49173 66 : case 2015: /* opt_interval: MINUTE_P TO interval_second */
49174 : #line 14898 "gram.y"
49175 : {
49176 : (yyval.list) = (yyvsp[0].list);
49177 : linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(MINUTE) |
49178 : INTERVAL_MASK(SECOND), (yylsp[-2]));
49179 : }
49180 : #line 49181 "gram.c"
49181 66 : break;
49182 :
49183 6660 : case 2016: /* opt_interval: %empty */
49184 : #line 14904 "gram.y"
49185 : { (yyval.list) = NIL; }
49186 : #line 49187 "gram.c"
49187 6660 : break;
49188 :
49189 102 : case 2017: /* interval_second: SECOND_P */
49190 : #line 14909 "gram.y"
49191 : {
49192 : (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[0])));
49193 : }
49194 : #line 49195 "gram.c"
49195 102 : break;
49196 :
49197 84 : case 2018: /* interval_second: SECOND_P '(' Iconst ')' */
49198 : #line 14913 "gram.y"
49199 : {
49200 : (yyval.list) = list_make2(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[-3])),
49201 : makeIntConst((yyvsp[-1].ival), (yylsp[-1])));
49202 : }
49203 : #line 49204 "gram.c"
49204 84 : break;
49205 :
49206 2156 : case 2019: /* JsonType: JSON */
49207 : #line 14921 "gram.y"
49208 : {
49209 : (yyval.typnam) = SystemTypeName("json");
49210 : (yyval.typnam)->location = (yylsp[0]);
49211 : }
49212 : #line 49213 "gram.c"
49213 2156 : break;
49214 :
49215 3798168 : case 2020: /* a_expr: c_expr */
49216 : #line 14955 "gram.y"
49217 : { (yyval.node) = (yyvsp[0].node); }
49218 : #line 49219 "gram.c"
49219 3798168 : break;
49220 :
49221 259494 : case 2021: /* a_expr: a_expr TYPECAST Typename */
49222 : #line 14957 "gram.y"
49223 : { (yyval.node) = makeTypeCast((yyvsp[-2].node), (yyvsp[0].typnam), (yylsp[-1])); }
49224 : #line 49225 "gram.c"
49225 259494 : break;
49226 :
49227 8954 : case 2022: /* a_expr: a_expr COLLATE any_name */
49228 : #line 14959 "gram.y"
49229 : {
49230 : CollateClause *n = makeNode(CollateClause);
49231 :
49232 : n->arg = (yyvsp[-2].node);
49233 : n->collname = (yyvsp[0].list);
49234 : n->location = (yylsp[-1]);
49235 : (yyval.node) = (Node *) n;
49236 : }
49237 : #line 49238 "gram.c"
49238 8954 : break;
49239 :
49240 408 : case 2023: /* a_expr: a_expr AT TIME ZONE a_expr */
49241 : #line 14968 "gram.y"
49242 : {
49243 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("timezone"),
49244 : list_make2((yyvsp[0].node), (yyvsp[-4].node)),
49245 : COERCE_SQL_SYNTAX,
49246 : (yylsp[-3]));
49247 : }
49248 : #line 49249 "gram.c"
49249 408 : break;
49250 :
49251 42 : case 2024: /* a_expr: a_expr AT LOCAL */
49252 : #line 14975 "gram.y"
49253 : {
49254 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("timezone"),
49255 : list_make1((yyvsp[-2].node)),
49256 : COERCE_SQL_SYNTAX,
49257 : -1);
49258 : }
49259 : #line 49260 "gram.c"
49260 42 : break;
49261 :
49262 12 : case 2025: /* a_expr: '+' a_expr */
49263 : #line 14991 "gram.y"
49264 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); }
49265 : #line 49266 "gram.c"
49266 12 : break;
49267 :
49268 9116 : case 2026: /* a_expr: '-' a_expr */
49269 : #line 14993 "gram.y"
49270 : { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); }
49271 : #line 49272 "gram.c"
49272 9116 : break;
49273 :
49274 14028 : case 2027: /* a_expr: a_expr '+' a_expr */
49275 : #line 14995 "gram.y"
49276 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49277 : #line 49278 "gram.c"
49278 14028 : break;
49279 :
49280 4434 : case 2028: /* a_expr: a_expr '-' a_expr */
49281 : #line 14997 "gram.y"
49282 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49283 : #line 49284 "gram.c"
49284 4434 : break;
49285 :
49286 6314 : case 2029: /* a_expr: a_expr '*' a_expr */
49287 : #line 14999 "gram.y"
49288 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49289 : #line 49290 "gram.c"
49290 6314 : break;
49291 :
49292 3424 : case 2030: /* a_expr: a_expr '/' a_expr */
49293 : #line 15001 "gram.y"
49294 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49295 : #line 49296 "gram.c"
49296 3424 : break;
49297 :
49298 2824 : case 2031: /* a_expr: a_expr '%' a_expr */
49299 : #line 15003 "gram.y"
49300 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49301 : #line 49302 "gram.c"
49302 2824 : break;
49303 :
49304 474 : case 2032: /* a_expr: a_expr '^' a_expr */
49305 : #line 15005 "gram.y"
49306 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49307 : #line 49308 "gram.c"
49308 474 : break;
49309 :
49310 10400 : case 2033: /* a_expr: a_expr '<' a_expr */
49311 : #line 15007 "gram.y"
49312 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49313 : #line 49314 "gram.c"
49314 10400 : break;
49315 :
49316 16720 : case 2034: /* a_expr: a_expr '>' a_expr */
49317 : #line 15009 "gram.y"
49318 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49319 : #line 49320 "gram.c"
49320 16720 : break;
49321 :
49322 398822 : case 2035: /* a_expr: a_expr '=' a_expr */
49323 : #line 15011 "gram.y"
49324 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49325 : #line 49326 "gram.c"
49326 398822 : break;
49327 :
49328 5272 : case 2036: /* a_expr: a_expr LESS_EQUALS a_expr */
49329 : #line 15013 "gram.y"
49330 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49331 : #line 49332 "gram.c"
49332 5272 : break;
49333 :
49334 7174 : case 2037: /* a_expr: a_expr GREATER_EQUALS a_expr */
49335 : #line 15015 "gram.y"
49336 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49337 : #line 49338 "gram.c"
49338 7174 : break;
49339 :
49340 41008 : case 2038: /* a_expr: a_expr NOT_EQUALS a_expr */
49341 : #line 15017 "gram.y"
49342 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49343 : #line 49344 "gram.c"
49344 41008 : break;
49345 :
49346 58874 : case 2039: /* a_expr: a_expr qual_Op a_expr */
49347 : #line 15020 "gram.y"
49348 : { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49349 : #line 49350 "gram.c"
49350 58874 : break;
49351 :
49352 210 : case 2040: /* a_expr: qual_Op a_expr */
49353 : #line 15022 "gram.y"
49354 : { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), NULL, (yyvsp[0].node), (yylsp[-1])); }
49355 : #line 49356 "gram.c"
49356 210 : break;
49357 :
49358 237716 : case 2041: /* a_expr: a_expr AND a_expr */
49359 : #line 15025 "gram.y"
49360 : { (yyval.node) = makeAndExpr((yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49361 : #line 49362 "gram.c"
49362 237716 : break;
49363 :
49364 16590 : case 2042: /* a_expr: a_expr OR a_expr */
49365 : #line 15027 "gram.y"
49366 : { (yyval.node) = makeOrExpr((yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49367 : #line 49368 "gram.c"
49368 16590 : break;
49369 :
49370 16736 : case 2043: /* a_expr: NOT a_expr */
49371 : #line 15029 "gram.y"
49372 : { (yyval.node) = makeNotExpr((yyvsp[0].node), (yylsp[-1])); }
49373 : #line 49374 "gram.c"
49374 16736 : break;
49375 :
49376 0 : case 2044: /* a_expr: NOT_LA a_expr */
49377 : #line 15031 "gram.y"
49378 : { (yyval.node) = makeNotExpr((yyvsp[0].node), (yylsp[-1])); }
49379 : #line 49380 "gram.c"
49380 0 : break;
49381 :
49382 1960 : case 2045: /* a_expr: a_expr LIKE a_expr */
49383 : #line 15034 "gram.y"
49384 : {
49385 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "~~",
49386 : (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1]));
49387 : }
49388 : #line 49389 "gram.c"
49389 1960 : break;
49390 :
49391 96 : case 2046: /* a_expr: a_expr LIKE a_expr ESCAPE a_expr */
49392 : #line 15039 "gram.y"
49393 : {
49394 : FuncCall *n = makeFuncCall(SystemFuncName("like_escape"),
49395 : list_make2((yyvsp[-2].node), (yyvsp[0].node)),
49396 : COERCE_EXPLICIT_CALL,
49397 : (yylsp[-3]));
49398 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "~~",
49399 : (yyvsp[-4].node), (Node *) n, (yylsp[-3]));
49400 : }
49401 : #line 49402 "gram.c"
49402 96 : break;
49403 :
49404 198 : case 2047: /* a_expr: a_expr NOT_LA LIKE a_expr */
49405 : #line 15048 "gram.y"
49406 : {
49407 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "!~~",
49408 : (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2]));
49409 : }
49410 : #line 49411 "gram.c"
49411 198 : break;
49412 :
49413 96 : case 2048: /* a_expr: a_expr NOT_LA LIKE a_expr ESCAPE a_expr */
49414 : #line 15053 "gram.y"
49415 : {
49416 : FuncCall *n = makeFuncCall(SystemFuncName("like_escape"),
49417 : list_make2((yyvsp[-2].node), (yyvsp[0].node)),
49418 : COERCE_EXPLICIT_CALL,
49419 : (yylsp[-4]));
49420 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "!~~",
49421 : (yyvsp[-5].node), (Node *) n, (yylsp[-4]));
49422 : }
49423 : #line 49424 "gram.c"
49424 96 : break;
49425 :
49426 174 : case 2049: /* a_expr: a_expr ILIKE a_expr */
49427 : #line 15062 "gram.y"
49428 : {
49429 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "~~*",
49430 : (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1]));
49431 : }
49432 : #line 49433 "gram.c"
49433 174 : break;
49434 :
49435 0 : case 2050: /* a_expr: a_expr ILIKE a_expr ESCAPE a_expr */
49436 : #line 15067 "gram.y"
49437 : {
49438 : FuncCall *n = makeFuncCall(SystemFuncName("like_escape"),
49439 : list_make2((yyvsp[-2].node), (yyvsp[0].node)),
49440 : COERCE_EXPLICIT_CALL,
49441 : (yylsp[-3]));
49442 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "~~*",
49443 : (yyvsp[-4].node), (Node *) n, (yylsp[-3]));
49444 : }
49445 : #line 49446 "gram.c"
49446 0 : break;
49447 :
49448 30 : case 2051: /* a_expr: a_expr NOT_LA ILIKE a_expr */
49449 : #line 15076 "gram.y"
49450 : {
49451 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "!~~*",
49452 : (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2]));
49453 : }
49454 : #line 49455 "gram.c"
49455 30 : break;
49456 :
49457 0 : case 2052: /* a_expr: a_expr NOT_LA ILIKE a_expr ESCAPE a_expr */
49458 : #line 15081 "gram.y"
49459 : {
49460 : FuncCall *n = makeFuncCall(SystemFuncName("like_escape"),
49461 : list_make2((yyvsp[-2].node), (yyvsp[0].node)),
49462 : COERCE_EXPLICIT_CALL,
49463 : (yylsp[-4]));
49464 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "!~~*",
49465 : (yyvsp[-5].node), (Node *) n, (yylsp[-4]));
49466 : }
49467 : #line 49468 "gram.c"
49468 0 : break;
49469 :
49470 40 : case 2053: /* a_expr: a_expr SIMILAR TO a_expr */
49471 : #line 15091 "gram.y"
49472 : {
49473 : FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"),
49474 : list_make1((yyvsp[0].node)),
49475 : COERCE_EXPLICIT_CALL,
49476 : (yylsp[-2]));
49477 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "~",
49478 : (yyvsp[-3].node), (Node *) n, (yylsp[-2]));
49479 : }
49480 : #line 49481 "gram.c"
49481 40 : break;
49482 :
49483 30 : case 2054: /* a_expr: a_expr SIMILAR TO a_expr ESCAPE a_expr */
49484 : #line 15100 "gram.y"
49485 : {
49486 : FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"),
49487 : list_make2((yyvsp[-2].node), (yyvsp[0].node)),
49488 : COERCE_EXPLICIT_CALL,
49489 : (yylsp[-4]));
49490 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "~",
49491 : (yyvsp[-5].node), (Node *) n, (yylsp[-4]));
49492 : }
49493 : #line 49494 "gram.c"
49494 30 : break;
49495 :
49496 0 : case 2055: /* a_expr: a_expr NOT_LA SIMILAR TO a_expr */
49497 : #line 15109 "gram.y"
49498 : {
49499 : FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"),
49500 : list_make1((yyvsp[0].node)),
49501 : COERCE_EXPLICIT_CALL,
49502 : (yylsp[-3]));
49503 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "!~",
49504 : (yyvsp[-4].node), (Node *) n, (yylsp[-3]));
49505 : }
49506 : #line 49507 "gram.c"
49507 0 : break;
49508 :
49509 0 : case 2056: /* a_expr: a_expr NOT_LA SIMILAR TO a_expr ESCAPE a_expr */
49510 : #line 15118 "gram.y"
49511 : {
49512 : FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"),
49513 : list_make2((yyvsp[-2].node), (yyvsp[0].node)),
49514 : COERCE_EXPLICIT_CALL,
49515 : (yylsp[-5]));
49516 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "!~",
49517 : (yyvsp[-6].node), (Node *) n, (yylsp[-5]));
49518 : }
49519 : #line 49520 "gram.c"
49520 0 : break;
49521 :
49522 5268 : case 2057: /* a_expr: a_expr IS NULL_P */
49523 : #line 15137 "gram.y"
49524 : {
49525 : NullTest *n = makeNode(NullTest);
49526 :
49527 : n->arg = (Expr *) (yyvsp[-2].node);
49528 : n->nulltesttype = IS_NULL;
49529 : n->location = (yylsp[-1]);
49530 : (yyval.node) = (Node *) n;
49531 : }
49532 : #line 49533 "gram.c"
49533 5268 : break;
49534 :
49535 96 : case 2058: /* a_expr: a_expr ISNULL */
49536 : #line 15146 "gram.y"
49537 : {
49538 : NullTest *n = makeNode(NullTest);
49539 :
49540 : n->arg = (Expr *) (yyvsp[-1].node);
49541 : n->nulltesttype = IS_NULL;
49542 : n->location = (yylsp[0]);
49543 : (yyval.node) = (Node *) n;
49544 : }
49545 : #line 49546 "gram.c"
49546 96 : break;
49547 :
49548 13152 : case 2059: /* a_expr: a_expr IS NOT NULL_P */
49549 : #line 15155 "gram.y"
49550 : {
49551 : NullTest *n = makeNode(NullTest);
49552 :
49553 : n->arg = (Expr *) (yyvsp[-3].node);
49554 : n->nulltesttype = IS_NOT_NULL;
49555 : n->location = (yylsp[-2]);
49556 : (yyval.node) = (Node *) n;
49557 : }
49558 : #line 49559 "gram.c"
49559 13152 : break;
49560 :
49561 6 : case 2060: /* a_expr: a_expr NOTNULL */
49562 : #line 15164 "gram.y"
49563 : {
49564 : NullTest *n = makeNode(NullTest);
49565 :
49566 : n->arg = (Expr *) (yyvsp[-1].node);
49567 : n->nulltesttype = IS_NOT_NULL;
49568 : n->location = (yylsp[0]);
49569 : (yyval.node) = (Node *) n;
49570 : }
49571 : #line 49572 "gram.c"
49572 6 : break;
49573 :
49574 948 : case 2061: /* a_expr: row OVERLAPS row */
49575 : #line 15173 "gram.y"
49576 : {
49577 : if (list_length((yyvsp[-2].list)) != 2)
49578 : ereport(ERROR,
49579 : (errcode(ERRCODE_SYNTAX_ERROR),
49580 : errmsg("wrong number of parameters on left side of OVERLAPS expression"),
49581 : parser_errposition((yylsp[-2]))));
49582 : if (list_length((yyvsp[0].list)) != 2)
49583 : ereport(ERROR,
49584 : (errcode(ERRCODE_SYNTAX_ERROR),
49585 : errmsg("wrong number of parameters on right side of OVERLAPS expression"),
49586 : parser_errposition((yylsp[0]))));
49587 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("overlaps"),
49588 : list_concat((yyvsp[-2].list), (yyvsp[0].list)),
49589 : COERCE_SQL_SYNTAX,
49590 : (yylsp[-1]));
49591 : }
49592 : #line 49593 "gram.c"
49593 948 : break;
49594 :
49595 532 : case 2062: /* a_expr: a_expr IS TRUE_P */
49596 : #line 15190 "gram.y"
49597 : {
49598 : BooleanTest *b = makeNode(BooleanTest);
49599 :
49600 : b->arg = (Expr *) (yyvsp[-2].node);
49601 : b->booltesttype = IS_TRUE;
49602 : b->location = (yylsp[-1]);
49603 : (yyval.node) = (Node *) b;
49604 : }
49605 : #line 49606 "gram.c"
49606 532 : break;
49607 :
49608 140 : case 2063: /* a_expr: a_expr IS NOT TRUE_P */
49609 : #line 15199 "gram.y"
49610 : {
49611 : BooleanTest *b = makeNode(BooleanTest);
49612 :
49613 : b->arg = (Expr *) (yyvsp[-3].node);
49614 : b->booltesttype = IS_NOT_TRUE;
49615 : b->location = (yylsp[-2]);
49616 : (yyval.node) = (Node *) b;
49617 : }
49618 : #line 49619 "gram.c"
49619 140 : break;
49620 :
49621 136 : case 2064: /* a_expr: a_expr IS FALSE_P */
49622 : #line 15208 "gram.y"
49623 : {
49624 : BooleanTest *b = makeNode(BooleanTest);
49625 :
49626 : b->arg = (Expr *) (yyvsp[-2].node);
49627 : b->booltesttype = IS_FALSE;
49628 : b->location = (yylsp[-1]);
49629 : (yyval.node) = (Node *) b;
49630 : }
49631 : #line 49632 "gram.c"
49632 136 : break;
49633 :
49634 92 : case 2065: /* a_expr: a_expr IS NOT FALSE_P */
49635 : #line 15217 "gram.y"
49636 : {
49637 : BooleanTest *b = makeNode(BooleanTest);
49638 :
49639 : b->arg = (Expr *) (yyvsp[-3].node);
49640 : b->booltesttype = IS_NOT_FALSE;
49641 : b->location = (yylsp[-2]);
49642 : (yyval.node) = (Node *) b;
49643 : }
49644 : #line 49645 "gram.c"
49645 92 : break;
49646 :
49647 52 : case 2066: /* a_expr: a_expr IS UNKNOWN */
49648 : #line 15226 "gram.y"
49649 : {
49650 : BooleanTest *b = makeNode(BooleanTest);
49651 :
49652 : b->arg = (Expr *) (yyvsp[-2].node);
49653 : b->booltesttype = IS_UNKNOWN;
49654 : b->location = (yylsp[-1]);
49655 : (yyval.node) = (Node *) b;
49656 : }
49657 : #line 49658 "gram.c"
49658 52 : break;
49659 :
49660 48 : case 2067: /* a_expr: a_expr IS NOT UNKNOWN */
49661 : #line 15235 "gram.y"
49662 : {
49663 : BooleanTest *b = makeNode(BooleanTest);
49664 :
49665 : b->arg = (Expr *) (yyvsp[-3].node);
49666 : b->booltesttype = IS_NOT_UNKNOWN;
49667 : b->location = (yylsp[-2]);
49668 : (yyval.node) = (Node *) b;
49669 : }
49670 : #line 49671 "gram.c"
49671 48 : break;
49672 :
49673 1262 : case 2068: /* a_expr: a_expr IS DISTINCT FROM a_expr */
49674 : #line 15244 "gram.y"
49675 : {
49676 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[-4].node), (yyvsp[0].node), (yylsp[-3]));
49677 : }
49678 : #line 49679 "gram.c"
49679 1262 : break;
49680 :
49681 68 : case 2069: /* a_expr: a_expr IS NOT DISTINCT FROM a_expr */
49682 : #line 15248 "gram.y"
49683 : {
49684 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_DISTINCT, "=", (yyvsp[-5].node), (yyvsp[0].node), (yylsp[-4]));
49685 : }
49686 : #line 49687 "gram.c"
49687 68 : break;
49688 :
49689 466 : case 2070: /* a_expr: a_expr BETWEEN opt_asymmetric b_expr AND a_expr */
49690 : #line 15252 "gram.y"
49691 : {
49692 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_BETWEEN,
49693 : "BETWEEN",
49694 : (yyvsp[-5].node),
49695 : (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)),
49696 : (yylsp[-4]));
49697 : }
49698 : #line 49699 "gram.c"
49699 466 : break;
49700 :
49701 12 : case 2071: /* a_expr: a_expr NOT_LA BETWEEN opt_asymmetric b_expr AND a_expr */
49702 : #line 15260 "gram.y"
49703 : {
49704 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_BETWEEN,
49705 : "NOT BETWEEN",
49706 : (yyvsp[-6].node),
49707 : (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)),
49708 : (yylsp[-5]));
49709 : }
49710 : #line 49711 "gram.c"
49711 12 : break;
49712 :
49713 12 : case 2072: /* a_expr: a_expr BETWEEN SYMMETRIC b_expr AND a_expr */
49714 : #line 15268 "gram.y"
49715 : {
49716 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_BETWEEN_SYM,
49717 : "BETWEEN SYMMETRIC",
49718 : (yyvsp[-5].node),
49719 : (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)),
49720 : (yylsp[-4]));
49721 : }
49722 : #line 49723 "gram.c"
49723 12 : break;
49724 :
49725 12 : case 2073: /* a_expr: a_expr NOT_LA BETWEEN SYMMETRIC b_expr AND a_expr */
49726 : #line 15276 "gram.y"
49727 : {
49728 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_BETWEEN_SYM,
49729 : "NOT BETWEEN SYMMETRIC",
49730 : (yyvsp[-6].node),
49731 : (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)),
49732 : (yylsp[-5]));
49733 : }
49734 : #line 49735 "gram.c"
49735 12 : break;
49736 :
49737 24236 : case 2074: /* a_expr: a_expr IN_P in_expr */
49738 : #line 15284 "gram.y"
49739 : {
49740 : /* in_expr returns a SubLink or a list of a_exprs */
49741 : if (IsA((yyvsp[0].node), SubLink))
49742 : {
49743 : /* generate foo = ANY (subquery) */
49744 : SubLink *n = (SubLink *) (yyvsp[0].node);
49745 :
49746 : n->subLinkType = ANY_SUBLINK;
49747 : n->subLinkId = 0;
49748 : n->testexpr = (yyvsp[-2].node);
49749 : n->operName = NIL; /* show it's IN not = ANY */
49750 : n->location = (yylsp[-1]);
49751 : (yyval.node) = (Node *) n;
49752 : }
49753 : else
49754 : {
49755 : /* generate scalar IN expression */
49756 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_IN, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1]));
49757 : }
49758 : }
49759 : #line 49760 "gram.c"
49760 24236 : break;
49761 :
49762 2910 : case 2075: /* a_expr: a_expr NOT_LA IN_P in_expr */
49763 : #line 15305 "gram.y"
49764 : {
49765 : /* in_expr returns a SubLink or a list of a_exprs */
49766 : if (IsA((yyvsp[0].node), SubLink))
49767 : {
49768 : /* generate NOT (foo = ANY (subquery)) */
49769 : /* Make an = ANY node */
49770 : SubLink *n = (SubLink *) (yyvsp[0].node);
49771 :
49772 : n->subLinkType = ANY_SUBLINK;
49773 : n->subLinkId = 0;
49774 : n->testexpr = (yyvsp[-3].node);
49775 : n->operName = NIL; /* show it's IN not = ANY */
49776 : n->location = (yylsp[-2]);
49777 : /* Stick a NOT on top; must have same parse location */
49778 : (yyval.node) = makeNotExpr((Node *) n, (yylsp[-2]));
49779 : }
49780 : else
49781 : {
49782 : /* generate scalar NOT IN expression */
49783 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_IN, "<>", (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2]));
49784 : }
49785 : }
49786 : #line 49787 "gram.c"
49787 2910 : break;
49788 :
49789 168 : case 2076: /* a_expr: a_expr subquery_Op sub_type select_with_parens */
49790 : #line 15328 "gram.y"
49791 : {
49792 : SubLink *n = makeNode(SubLink);
49793 :
49794 : n->subLinkType = (yyvsp[-1].ival);
49795 : n->subLinkId = 0;
49796 : n->testexpr = (yyvsp[-3].node);
49797 : n->operName = (yyvsp[-2].list);
49798 : n->subselect = (yyvsp[0].node);
49799 : n->location = (yylsp[-2]);
49800 : (yyval.node) = (Node *) n;
49801 : }
49802 : #line 49803 "gram.c"
49803 168 : break;
49804 :
49805 17370 : case 2077: /* a_expr: a_expr subquery_Op sub_type '(' a_expr ')' */
49806 : #line 15340 "gram.y"
49807 : {
49808 : if ((yyvsp[-3].ival) == ANY_SUBLINK)
49809 : (yyval.node) = (Node *) makeA_Expr(AEXPR_OP_ANY, (yyvsp[-4].list), (yyvsp[-5].node), (yyvsp[-1].node), (yylsp[-4]));
49810 : else
49811 : (yyval.node) = (Node *) makeA_Expr(AEXPR_OP_ALL, (yyvsp[-4].list), (yyvsp[-5].node), (yyvsp[-1].node), (yylsp[-4]));
49812 : }
49813 : #line 49814 "gram.c"
49814 17370 : break;
49815 :
49816 0 : case 2078: /* a_expr: UNIQUE opt_unique_null_treatment select_with_parens */
49817 : #line 15347 "gram.y"
49818 : {
49819 : /* Not sure how to get rid of the parentheses
49820 : * but there are lots of shift/reduce errors without them.
49821 : *
49822 : * Should be able to implement this by plopping the entire
49823 : * select into a node, then transforming the target expressions
49824 : * from whatever they are into count(*), and testing the
49825 : * entire result equal to one.
49826 : * But, will probably implement a separate node in the executor.
49827 : */
49828 : ereport(ERROR,
49829 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
49830 : errmsg("UNIQUE predicate is not yet implemented"),
49831 : parser_errposition((yylsp[-2]))));
49832 : }
49833 : #line 49834 "gram.c"
49834 : break;
49835 :
49836 18 : case 2079: /* a_expr: a_expr IS DOCUMENT_P */
49837 : #line 15363 "gram.y"
49838 : {
49839 : (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL,
49840 : list_make1((yyvsp[-2].node)), (yylsp[-1]));
49841 : }
49842 : #line 49843 "gram.c"
49843 18 : break;
49844 :
49845 18 : case 2080: /* a_expr: a_expr IS NOT DOCUMENT_P */
49846 : #line 15368 "gram.y"
49847 : {
49848 : (yyval.node) = makeNotExpr(makeXmlExpr(IS_DOCUMENT, NULL, NIL,
49849 : list_make1((yyvsp[-3].node)), (yylsp[-2])),
49850 : (yylsp[-2]));
49851 : }
49852 : #line 49853 "gram.c"
49853 18 : break;
49854 :
49855 12 : case 2081: /* a_expr: a_expr IS NORMALIZED */
49856 : #line 15374 "gram.y"
49857 : {
49858 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("is_normalized"),
49859 : list_make1((yyvsp[-2].node)),
49860 : COERCE_SQL_SYNTAX,
49861 : (yylsp[-1]));
49862 : }
49863 : #line 49864 "gram.c"
49864 12 : break;
49865 :
49866 36 : case 2082: /* a_expr: a_expr IS unicode_normal_form NORMALIZED */
49867 : #line 15381 "gram.y"
49868 : {
49869 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("is_normalized"),
49870 : list_make2((yyvsp[-3].node), makeStringConst((yyvsp[-1].str), (yylsp[-1]))),
49871 : COERCE_SQL_SYNTAX,
49872 : (yylsp[-2]));
49873 : }
49874 : #line 49875 "gram.c"
49875 36 : break;
49876 :
49877 0 : case 2083: /* a_expr: a_expr IS NOT NORMALIZED */
49878 : #line 15388 "gram.y"
49879 : {
49880 : (yyval.node) = makeNotExpr((Node *) makeFuncCall(SystemFuncName("is_normalized"),
49881 : list_make1((yyvsp[-3].node)),
49882 : COERCE_SQL_SYNTAX,
49883 : (yylsp[-2])),
49884 : (yylsp[-2]));
49885 : }
49886 : #line 49887 "gram.c"
49887 0 : break;
49888 :
49889 0 : case 2084: /* a_expr: a_expr IS NOT unicode_normal_form NORMALIZED */
49890 : #line 15396 "gram.y"
49891 : {
49892 : (yyval.node) = makeNotExpr((Node *) makeFuncCall(SystemFuncName("is_normalized"),
49893 : list_make2((yyvsp[-4].node), makeStringConst((yyvsp[-1].str), (yylsp[-1]))),
49894 : COERCE_SQL_SYNTAX,
49895 : (yylsp[-3])),
49896 : (yylsp[-3]));
49897 : }
49898 : #line 49899 "gram.c"
49899 0 : break;
49900 :
49901 304 : case 2085: /* a_expr: a_expr IS json_predicate_type_constraint json_key_uniqueness_constraint_opt */
49902 : #line 15405 "gram.y"
49903 : {
49904 : JsonFormat *format = makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1);
49905 :
49906 : (yyval.node) = makeJsonIsPredicate((yyvsp[-3].node), format, (yyvsp[-1].ival), (yyvsp[0].boolean), (yylsp[-3]));
49907 : }
49908 : #line 49909 "gram.c"
49909 304 : break;
49910 :
49911 46 : case 2086: /* a_expr: a_expr IS NOT json_predicate_type_constraint json_key_uniqueness_constraint_opt */
49912 : #line 15423 "gram.y"
49913 : {
49914 : JsonFormat *format = makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1);
49915 :
49916 : (yyval.node) = makeNotExpr(makeJsonIsPredicate((yyvsp[-4].node), format, (yyvsp[-1].ival), (yyvsp[0].boolean), (yylsp[-4])), (yylsp[-4]));
49917 : }
49918 : #line 49919 "gram.c"
49919 46 : break;
49920 :
49921 1550 : case 2087: /* a_expr: DEFAULT */
49922 : #line 15440 "gram.y"
49923 : {
49924 : /*
49925 : * The SQL spec only allows DEFAULT in "contextually typed
49926 : * expressions", but for us, it's easier to allow it in
49927 : * any a_expr and then throw error during parse analysis
49928 : * if it's in an inappropriate context. This way also
49929 : * lets us say something smarter than "syntax error".
49930 : */
49931 : SetToDefault *n = makeNode(SetToDefault);
49932 :
49933 : /* parse analysis will fill in the rest */
49934 : n->location = (yylsp[0]);
49935 : (yyval.node) = (Node *) n;
49936 : }
49937 : #line 49938 "gram.c"
49938 1550 : break;
49939 :
49940 3844 : case 2088: /* b_expr: c_expr */
49941 : #line 15466 "gram.y"
49942 : { (yyval.node) = (yyvsp[0].node); }
49943 : #line 49944 "gram.c"
49944 3844 : break;
49945 :
49946 228 : case 2089: /* b_expr: b_expr TYPECAST Typename */
49947 : #line 15468 "gram.y"
49948 : { (yyval.node) = makeTypeCast((yyvsp[-2].node), (yyvsp[0].typnam), (yylsp[-1])); }
49949 : #line 49950 "gram.c"
49950 228 : break;
49951 :
49952 0 : case 2090: /* b_expr: '+' b_expr */
49953 : #line 15470 "gram.y"
49954 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); }
49955 : #line 49956 "gram.c"
49956 0 : break;
49957 :
49958 66 : case 2091: /* b_expr: '-' b_expr */
49959 : #line 15472 "gram.y"
49960 : { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); }
49961 : #line 49962 "gram.c"
49962 66 : break;
49963 :
49964 36 : case 2092: /* b_expr: b_expr '+' b_expr */
49965 : #line 15474 "gram.y"
49966 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49967 : #line 49968 "gram.c"
49968 36 : break;
49969 :
49970 12 : case 2093: /* b_expr: b_expr '-' b_expr */
49971 : #line 15476 "gram.y"
49972 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49973 : #line 49974 "gram.c"
49974 12 : break;
49975 :
49976 12 : case 2094: /* b_expr: b_expr '*' b_expr */
49977 : #line 15478 "gram.y"
49978 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49979 : #line 49980 "gram.c"
49980 12 : break;
49981 :
49982 0 : case 2095: /* b_expr: b_expr '/' b_expr */
49983 : #line 15480 "gram.y"
49984 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49985 : #line 49986 "gram.c"
49986 0 : break;
49987 :
49988 0 : case 2096: /* b_expr: b_expr '%' b_expr */
49989 : #line 15482 "gram.y"
49990 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49991 : #line 49992 "gram.c"
49992 0 : break;
49993 :
49994 6 : case 2097: /* b_expr: b_expr '^' b_expr */
49995 : #line 15484 "gram.y"
49996 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49997 : #line 49998 "gram.c"
49998 6 : break;
49999 :
50000 0 : case 2098: /* b_expr: b_expr '<' b_expr */
50001 : #line 15486 "gram.y"
50002 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
50003 : #line 50004 "gram.c"
50004 0 : break;
50005 :
50006 0 : case 2099: /* b_expr: b_expr '>' b_expr */
50007 : #line 15488 "gram.y"
50008 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
50009 : #line 50010 "gram.c"
50010 0 : break;
50011 :
50012 0 : case 2100: /* b_expr: b_expr '=' b_expr */
50013 : #line 15490 "gram.y"
50014 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
50015 : #line 50016 "gram.c"
50016 0 : break;
50017 :
50018 0 : case 2101: /* b_expr: b_expr LESS_EQUALS b_expr */
50019 : #line 15492 "gram.y"
50020 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
50021 : #line 50022 "gram.c"
50022 0 : break;
50023 :
50024 0 : case 2102: /* b_expr: b_expr GREATER_EQUALS b_expr */
50025 : #line 15494 "gram.y"
50026 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
50027 : #line 50028 "gram.c"
50028 0 : break;
50029 :
50030 0 : case 2103: /* b_expr: b_expr NOT_EQUALS b_expr */
50031 : #line 15496 "gram.y"
50032 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
50033 : #line 50034 "gram.c"
50034 0 : break;
50035 :
50036 12 : case 2104: /* b_expr: b_expr qual_Op b_expr */
50037 : #line 15498 "gram.y"
50038 : { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
50039 : #line 50040 "gram.c"
50040 12 : break;
50041 :
50042 0 : case 2105: /* b_expr: qual_Op b_expr */
50043 : #line 15500 "gram.y"
50044 : { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), NULL, (yyvsp[0].node), (yylsp[-1])); }
50045 : #line 50046 "gram.c"
50046 0 : break;
50047 :
50048 0 : case 2106: /* b_expr: b_expr IS DISTINCT FROM b_expr */
50049 : #line 15502 "gram.y"
50050 : {
50051 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[-4].node), (yyvsp[0].node), (yylsp[-3]));
50052 : }
50053 : #line 50054 "gram.c"
50054 0 : break;
50055 :
50056 0 : case 2107: /* b_expr: b_expr IS NOT DISTINCT FROM b_expr */
50057 : #line 15506 "gram.y"
50058 : {
50059 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_DISTINCT, "=", (yyvsp[-5].node), (yyvsp[0].node), (yylsp[-4]));
50060 : }
50061 : #line 50062 "gram.c"
50062 0 : break;
50063 :
50064 0 : case 2108: /* b_expr: b_expr IS DOCUMENT_P */
50065 : #line 15510 "gram.y"
50066 : {
50067 : (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL,
50068 : list_make1((yyvsp[-2].node)), (yylsp[-1]));
50069 : }
50070 : #line 50071 "gram.c"
50071 0 : break;
50072 :
50073 0 : case 2109: /* b_expr: b_expr IS NOT DOCUMENT_P */
50074 : #line 15515 "gram.y"
50075 : {
50076 : (yyval.node) = makeNotExpr(makeXmlExpr(IS_DOCUMENT, NULL, NIL,
50077 : list_make1((yyvsp[-3].node)), (yylsp[-2])),
50078 : (yylsp[-2]));
50079 : }
50080 : #line 50081 "gram.c"
50081 0 : break;
50082 :
50083 1861910 : case 2110: /* c_expr: columnref */
50084 : #line 15530 "gram.y"
50085 : { (yyval.node) = (yyvsp[0].node); }
50086 : #line 50087 "gram.c"
50087 1861910 : break;
50088 :
50089 1312340 : case 2111: /* c_expr: AexprConst */
50090 : #line 15531 "gram.y"
50091 : { (yyval.node) = (yyvsp[0].node); }
50092 : #line 50093 "gram.c"
50093 1312340 : break;
50094 :
50095 46132 : case 2112: /* c_expr: PARAM opt_indirection */
50096 : #line 15533 "gram.y"
50097 : {
50098 : ParamRef *p = makeNode(ParamRef);
50099 :
50100 : p->number = (yyvsp[-1].ival);
50101 : p->location = (yylsp[-1]);
50102 : if ((yyvsp[0].list))
50103 : {
50104 : A_Indirection *n = makeNode(A_Indirection);
50105 :
50106 : n->arg = (Node *) p;
50107 : n->indirection = check_indirection((yyvsp[0].list), yyscanner);
50108 : (yyval.node) = (Node *) n;
50109 : }
50110 : else
50111 : (yyval.node) = (Node *) p;
50112 : }
50113 : #line 50114 "gram.c"
50114 46132 : break;
50115 :
50116 92072 : case 2113: /* c_expr: '(' a_expr ')' opt_indirection */
50117 : #line 15550 "gram.y"
50118 : {
50119 : if ((yyvsp[0].list))
50120 : {
50121 : A_Indirection *n = makeNode(A_Indirection);
50122 :
50123 : n->arg = (yyvsp[-2].node);
50124 : n->indirection = check_indirection((yyvsp[0].list), yyscanner);
50125 : (yyval.node) = (Node *) n;
50126 : }
50127 : else
50128 : (yyval.node) = (yyvsp[-2].node);
50129 : }
50130 : #line 50131 "gram.c"
50131 92072 : break;
50132 :
50133 39560 : case 2114: /* c_expr: case_expr */
50134 : #line 15563 "gram.y"
50135 : { (yyval.node) = (yyvsp[0].node); }
50136 : #line 50137 "gram.c"
50137 39560 : break;
50138 :
50139 392360 : case 2115: /* c_expr: func_expr */
50140 : #line 15565 "gram.y"
50141 : { (yyval.node) = (yyvsp[0].node); }
50142 : #line 50143 "gram.c"
50143 392360 : break;
50144 :
50145 28816 : case 2116: /* c_expr: select_with_parens */
50146 : #line 15567 "gram.y"
50147 : {
50148 : SubLink *n = makeNode(SubLink);
50149 :
50150 : n->subLinkType = EXPR_SUBLINK;
50151 : n->subLinkId = 0;
50152 : n->testexpr = NULL;
50153 : n->operName = NIL;
50154 : n->subselect = (yyvsp[0].node);
50155 : n->location = (yylsp[0]);
50156 : (yyval.node) = (Node *) n;
50157 : }
50158 : #line 50159 "gram.c"
50159 28816 : break;
50160 :
50161 18 : case 2117: /* c_expr: select_with_parens indirection */
50162 : #line 15579 "gram.y"
50163 : {
50164 : /*
50165 : * Because the select_with_parens nonterminal is designed
50166 : * to "eat" as many levels of parens as possible, the
50167 : * '(' a_expr ')' opt_indirection production above will
50168 : * fail to match a sub-SELECT with indirection decoration;
50169 : * the sub-SELECT won't be regarded as an a_expr as long
50170 : * as there are parens around it. To support applying
50171 : * subscripting or field selection to a sub-SELECT result,
50172 : * we need this redundant-looking production.
50173 : */
50174 : SubLink *n = makeNode(SubLink);
50175 : A_Indirection *a = makeNode(A_Indirection);
50176 :
50177 : n->subLinkType = EXPR_SUBLINK;
50178 : n->subLinkId = 0;
50179 : n->testexpr = NULL;
50180 : n->operName = NIL;
50181 : n->subselect = (yyvsp[-1].node);
50182 : n->location = (yylsp[-1]);
50183 : a->arg = (Node *) n;
50184 : a->indirection = check_indirection((yyvsp[0].list), yyscanner);
50185 : (yyval.node) = (Node *) a;
50186 : }
50187 : #line 50188 "gram.c"
50188 18 : break;
50189 :
50190 6436 : case 2118: /* c_expr: EXISTS select_with_parens */
50191 : #line 15604 "gram.y"
50192 : {
50193 : SubLink *n = makeNode(SubLink);
50194 :
50195 : n->subLinkType = EXISTS_SUBLINK;
50196 : n->subLinkId = 0;
50197 : n->testexpr = NULL;
50198 : n->operName = NIL;
50199 : n->subselect = (yyvsp[0].node);
50200 : n->location = (yylsp[-1]);
50201 : (yyval.node) = (Node *) n;
50202 : }
50203 : #line 50204 "gram.c"
50204 6436 : break;
50205 :
50206 8938 : case 2119: /* c_expr: ARRAY select_with_parens */
50207 : #line 15616 "gram.y"
50208 : {
50209 : SubLink *n = makeNode(SubLink);
50210 :
50211 : n->subLinkType = ARRAY_SUBLINK;
50212 : n->subLinkId = 0;
50213 : n->testexpr = NULL;
50214 : n->operName = NIL;
50215 : n->subselect = (yyvsp[0].node);
50216 : n->location = (yylsp[-1]);
50217 : (yyval.node) = (Node *) n;
50218 : }
50219 : #line 50220 "gram.c"
50220 8938 : break;
50221 :
50222 7398 : case 2120: /* c_expr: ARRAY array_expr */
50223 : #line 15628 "gram.y"
50224 : {
50225 : A_ArrayExpr *n = castNode(A_ArrayExpr, (yyvsp[0].node));
50226 :
50227 : /* point outermost A_ArrayExpr to the ARRAY keyword */
50228 : n->location = (yylsp[-1]);
50229 : (yyval.node) = (Node *) n;
50230 : }
50231 : #line 50232 "gram.c"
50232 7398 : break;
50233 :
50234 3804 : case 2121: /* c_expr: explicit_row */
50235 : #line 15636 "gram.y"
50236 : {
50237 : RowExpr *r = makeNode(RowExpr);
50238 :
50239 : r->args = (yyvsp[0].list);
50240 : r->row_typeid = InvalidOid; /* not analyzed yet */
50241 : r->colnames = NIL; /* to be filled in during analysis */
50242 : r->row_format = COERCE_EXPLICIT_CALL; /* abuse */
50243 : r->location = (yylsp[0]);
50244 : (yyval.node) = (Node *) r;
50245 : }
50246 : #line 50247 "gram.c"
50247 3804 : break;
50248 :
50249 2532 : case 2122: /* c_expr: implicit_row */
50250 : #line 15647 "gram.y"
50251 : {
50252 : RowExpr *r = makeNode(RowExpr);
50253 :
50254 : r->args = (yyvsp[0].list);
50255 : r->row_typeid = InvalidOid; /* not analyzed yet */
50256 : r->colnames = NIL; /* to be filled in during analysis */
50257 : r->row_format = COERCE_IMPLICIT_CAST; /* abuse */
50258 : r->location = (yylsp[0]);
50259 : (yyval.node) = (Node *) r;
50260 : }
50261 : #line 50262 "gram.c"
50262 2532 : break;
50263 :
50264 362 : case 2123: /* c_expr: GROUPING '(' expr_list ')' */
50265 : #line 15658 "gram.y"
50266 : {
50267 : GroupingFunc *g = makeNode(GroupingFunc);
50268 :
50269 : g->args = (yyvsp[-1].list);
50270 : g->location = (yylsp[-3]);
50271 : (yyval.node) = (Node *) g;
50272 : }
50273 : #line 50274 "gram.c"
50274 362 : break;
50275 :
50276 32166 : case 2124: /* func_application: func_name '(' ')' */
50277 : #line 15668 "gram.y"
50278 : {
50279 : (yyval.node) = (Node *) makeFuncCall((yyvsp[-2].list), NIL,
50280 : COERCE_EXPLICIT_CALL,
50281 : (yylsp[-2]));
50282 : }
50283 : #line 50284 "gram.c"
50284 32166 : break;
50285 :
50286 324030 : case 2125: /* func_application: func_name '(' func_arg_list opt_sort_clause ')' */
50287 : #line 15674 "gram.y"
50288 : {
50289 : FuncCall *n = makeFuncCall((yyvsp[-4].list), (yyvsp[-2].list),
50290 : COERCE_EXPLICIT_CALL,
50291 : (yylsp[-4]));
50292 :
50293 : n->agg_order = (yyvsp[-1].list);
50294 : (yyval.node) = (Node *) n;
50295 : }
50296 : #line 50297 "gram.c"
50297 324030 : break;
50298 :
50299 614 : case 2126: /* func_application: func_name '(' VARIADIC func_arg_expr opt_sort_clause ')' */
50300 : #line 15683 "gram.y"
50301 : {
50302 : FuncCall *n = makeFuncCall((yyvsp[-5].list), list_make1((yyvsp[-2].node)),
50303 : COERCE_EXPLICIT_CALL,
50304 : (yylsp[-5]));
50305 :
50306 : n->func_variadic = true;
50307 : n->agg_order = (yyvsp[-1].list);
50308 : (yyval.node) = (Node *) n;
50309 : }
50310 : #line 50311 "gram.c"
50311 614 : break;
50312 :
50313 120 : case 2127: /* func_application: func_name '(' func_arg_list ',' VARIADIC func_arg_expr opt_sort_clause ')' */
50314 : #line 15693 "gram.y"
50315 : {
50316 : FuncCall *n = makeFuncCall((yyvsp[-7].list), lappend((yyvsp[-5].list), (yyvsp[-2].node)),
50317 : COERCE_EXPLICIT_CALL,
50318 : (yylsp[-7]));
50319 :
50320 : n->func_variadic = true;
50321 : n->agg_order = (yyvsp[-1].list);
50322 : (yyval.node) = (Node *) n;
50323 : }
50324 : #line 50325 "gram.c"
50325 120 : break;
50326 :
50327 0 : case 2128: /* func_application: func_name '(' ALL func_arg_list opt_sort_clause ')' */
50328 : #line 15703 "gram.y"
50329 : {
50330 : FuncCall *n = makeFuncCall((yyvsp[-5].list), (yyvsp[-2].list),
50331 : COERCE_EXPLICIT_CALL,
50332 : (yylsp[-5]));
50333 :
50334 : n->agg_order = (yyvsp[-1].list);
50335 : /* Ideally we'd mark the FuncCall node to indicate
50336 : * "must be an aggregate", but there's no provision
50337 : * for that in FuncCall at the moment.
50338 : */
50339 : (yyval.node) = (Node *) n;
50340 : }
50341 : #line 50342 "gram.c"
50342 0 : break;
50343 :
50344 550 : case 2129: /* func_application: func_name '(' DISTINCT func_arg_list opt_sort_clause ')' */
50345 : #line 15716 "gram.y"
50346 : {
50347 : FuncCall *n = makeFuncCall((yyvsp[-5].list), (yyvsp[-2].list),
50348 : COERCE_EXPLICIT_CALL,
50349 : (yylsp[-5]));
50350 :
50351 : n->agg_order = (yyvsp[-1].list);
50352 : n->agg_distinct = true;
50353 : (yyval.node) = (Node *) n;
50354 : }
50355 : #line 50356 "gram.c"
50356 550 : break;
50357 :
50358 12566 : case 2130: /* func_application: func_name '(' '*' ')' */
50359 : #line 15726 "gram.y"
50360 : {
50361 : /*
50362 : * We consider AGGREGATE(*) to invoke a parameterless
50363 : * aggregate. This does the right thing for COUNT(*),
50364 : * and there are no other aggregates in SQL that accept
50365 : * '*' as parameter.
50366 : *
50367 : * The FuncCall node is also marked agg_star = true,
50368 : * so that later processing can detect what the argument
50369 : * really was.
50370 : */
50371 : FuncCall *n = makeFuncCall((yyvsp[-3].list), NIL,
50372 : COERCE_EXPLICIT_CALL,
50373 : (yylsp[-3]));
50374 :
50375 : n->agg_star = true;
50376 : (yyval.node) = (Node *) n;
50377 : }
50378 : #line 50379 "gram.c"
50379 12566 : break;
50380 :
50381 317112 : case 2131: /* func_expr: func_application within_group_clause filter_clause over_clause */
50382 : #line 15757 "gram.y"
50383 : {
50384 : FuncCall *n = (FuncCall *) (yyvsp[-3].node);
50385 :
50386 : /*
50387 : * The order clause for WITHIN GROUP and the one for
50388 : * plain-aggregate ORDER BY share a field, so we have to
50389 : * check here that at most one is present. We also check
50390 : * for DISTINCT and VARIADIC here to give a better error
50391 : * location. Other consistency checks are deferred to
50392 : * parse analysis.
50393 : */
50394 : if ((yyvsp[-2].list) != NIL)
50395 : {
50396 : if (n->agg_order != NIL)
50397 : ereport(ERROR,
50398 : (errcode(ERRCODE_SYNTAX_ERROR),
50399 : errmsg("cannot use multiple ORDER BY clauses with WITHIN GROUP"),
50400 : parser_errposition((yylsp[-2]))));
50401 : if (n->agg_distinct)
50402 : ereport(ERROR,
50403 : (errcode(ERRCODE_SYNTAX_ERROR),
50404 : errmsg("cannot use DISTINCT with WITHIN GROUP"),
50405 : parser_errposition((yylsp[-2]))));
50406 : if (n->func_variadic)
50407 : ereport(ERROR,
50408 : (errcode(ERRCODE_SYNTAX_ERROR),
50409 : errmsg("cannot use VARIADIC with WITHIN GROUP"),
50410 : parser_errposition((yylsp[-2]))));
50411 : n->agg_order = (yyvsp[-2].list);
50412 : n->agg_within_group = true;
50413 : }
50414 : n->agg_filter = (yyvsp[-1].node);
50415 : n->over = (yyvsp[0].windef);
50416 : (yyval.node) = (Node *) n;
50417 : }
50418 : #line 50419 "gram.c"
50419 317106 : break;
50420 :
50421 360 : case 2132: /* func_expr: json_aggregate_func filter_clause over_clause */
50422 : #line 15793 "gram.y"
50423 : {
50424 : JsonAggConstructor *n = IsA((yyvsp[-2].node), JsonObjectAgg) ?
50425 : ((JsonObjectAgg *) (yyvsp[-2].node))->constructor :
50426 : ((JsonArrayAgg *) (yyvsp[-2].node))->constructor;
50427 :
50428 : n->agg_filter = (yyvsp[-1].node);
50429 : n->over = (yyvsp[0].windef);
50430 : (yyval.node) = (Node *) (yyvsp[-2].node);
50431 : }
50432 : #line 50433 "gram.c"
50433 360 : break;
50434 :
50435 74894 : case 2133: /* func_expr: func_expr_common_subexpr */
50436 : #line 15803 "gram.y"
50437 : { (yyval.node) = (yyvsp[0].node); }
50438 : #line 50439 "gram.c"
50439 74894 : break;
50440 :
50441 52308 : case 2134: /* func_expr_windowless: func_application */
50442 : #line 15813 "gram.y"
50443 : { (yyval.node) = (yyvsp[0].node); }
50444 : #line 50445 "gram.c"
50445 52308 : break;
50446 :
50447 402 : case 2135: /* func_expr_windowless: func_expr_common_subexpr */
50448 : #line 15814 "gram.y"
50449 : { (yyval.node) = (yyvsp[0].node); }
50450 : #line 50451 "gram.c"
50451 402 : break;
50452 :
50453 0 : case 2136: /* func_expr_windowless: json_aggregate_func */
50454 : #line 15815 "gram.y"
50455 : { (yyval.node) = (yyvsp[0].node); }
50456 : #line 50457 "gram.c"
50457 0 : break;
50458 :
50459 30 : case 2137: /* func_expr_common_subexpr: COLLATION FOR '(' a_expr ')' */
50460 : #line 15823 "gram.y"
50461 : {
50462 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("pg_collation_for"),
50463 : list_make1((yyvsp[-1].node)),
50464 : COERCE_SQL_SYNTAX,
50465 : (yylsp[-4]));
50466 : }
50467 : #line 50468 "gram.c"
50468 30 : break;
50469 :
50470 304 : case 2138: /* func_expr_common_subexpr: CURRENT_DATE */
50471 : #line 15830 "gram.y"
50472 : {
50473 : (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_DATE, -1, (yylsp[0]));
50474 : }
50475 : #line 50476 "gram.c"
50476 304 : break;
50477 :
50478 24 : case 2139: /* func_expr_common_subexpr: CURRENT_TIME */
50479 : #line 15834 "gram.y"
50480 : {
50481 : (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIME, -1, (yylsp[0]));
50482 : }
50483 : #line 50484 "gram.c"
50484 24 : break;
50485 :
50486 24 : case 2140: /* func_expr_common_subexpr: CURRENT_TIME '(' Iconst ')' */
50487 : #line 15838 "gram.y"
50488 : {
50489 : (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIME_N, (yyvsp[-1].ival), (yylsp[-3]));
50490 : }
50491 : #line 50492 "gram.c"
50492 24 : break;
50493 :
50494 288 : case 2141: /* func_expr_common_subexpr: CURRENT_TIMESTAMP */
50495 : #line 15842 "gram.y"
50496 : {
50497 : (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIMESTAMP, -1, (yylsp[0]));
50498 : }
50499 : #line 50500 "gram.c"
50500 288 : break;
50501 :
50502 172 : case 2142: /* func_expr_common_subexpr: CURRENT_TIMESTAMP '(' Iconst ')' */
50503 : #line 15846 "gram.y"
50504 : {
50505 : (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIMESTAMP_N, (yyvsp[-1].ival), (yylsp[-3]));
50506 : }
50507 : #line 50508 "gram.c"
50508 172 : break;
50509 :
50510 24 : case 2143: /* func_expr_common_subexpr: LOCALTIME */
50511 : #line 15850 "gram.y"
50512 : {
50513 : (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIME, -1, (yylsp[0]));
50514 : }
50515 : #line 50516 "gram.c"
50516 24 : break;
50517 :
50518 24 : case 2144: /* func_expr_common_subexpr: LOCALTIME '(' Iconst ')' */
50519 : #line 15854 "gram.y"
50520 : {
50521 : (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIME_N, (yyvsp[-1].ival), (yylsp[-3]));
50522 : }
50523 : #line 50524 "gram.c"
50524 24 : break;
50525 :
50526 36 : case 2145: /* func_expr_common_subexpr: LOCALTIMESTAMP */
50527 : #line 15858 "gram.y"
50528 : {
50529 : (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIMESTAMP, -1, (yylsp[0]));
50530 : }
50531 : #line 50532 "gram.c"
50532 36 : break;
50533 :
50534 24 : case 2146: /* func_expr_common_subexpr: LOCALTIMESTAMP '(' Iconst ')' */
50535 : #line 15862 "gram.y"
50536 : {
50537 : (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIMESTAMP_N, (yyvsp[-1].ival), (yylsp[-3]));
50538 : }
50539 : #line 50540 "gram.c"
50540 24 : break;
50541 :
50542 68 : case 2147: /* func_expr_common_subexpr: CURRENT_ROLE */
50543 : #line 15866 "gram.y"
50544 : {
50545 : (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_ROLE, -1, (yylsp[0]));
50546 : }
50547 : #line 50548 "gram.c"
50548 68 : break;
50549 :
50550 1076 : case 2148: /* func_expr_common_subexpr: CURRENT_USER */
50551 : #line 15870 "gram.y"
50552 : {
50553 : (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_USER, -1, (yylsp[0]));
50554 : }
50555 : #line 50556 "gram.c"
50556 1076 : break;
50557 :
50558 580 : case 2149: /* func_expr_common_subexpr: SESSION_USER */
50559 : #line 15874 "gram.y"
50560 : {
50561 : (yyval.node) = makeSQLValueFunction(SVFOP_SESSION_USER, -1, (yylsp[0]));
50562 : }
50563 : #line 50564 "gram.c"
50564 580 : break;
50565 :
50566 20 : case 2150: /* func_expr_common_subexpr: SYSTEM_USER */
50567 : #line 15878 "gram.y"
50568 : {
50569 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("system_user"),
50570 : NIL,
50571 : COERCE_SQL_SYNTAX,
50572 : (yylsp[0]));
50573 : }
50574 : #line 50575 "gram.c"
50575 20 : break;
50576 :
50577 24 : case 2151: /* func_expr_common_subexpr: USER */
50578 : #line 15885 "gram.y"
50579 : {
50580 : (yyval.node) = makeSQLValueFunction(SVFOP_USER, -1, (yylsp[0]));
50581 : }
50582 : #line 50583 "gram.c"
50583 24 : break;
50584 :
50585 52 : case 2152: /* func_expr_common_subexpr: CURRENT_CATALOG */
50586 : #line 15889 "gram.y"
50587 : {
50588 : (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_CATALOG, -1, (yylsp[0]));
50589 : }
50590 : #line 50591 "gram.c"
50591 52 : break;
50592 :
50593 30 : case 2153: /* func_expr_common_subexpr: CURRENT_SCHEMA */
50594 : #line 15893 "gram.y"
50595 : {
50596 : (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_SCHEMA, -1, (yylsp[0]));
50597 : }
50598 : #line 50599 "gram.c"
50599 30 : break;
50600 :
50601 61186 : case 2154: /* func_expr_common_subexpr: CAST '(' a_expr AS Typename ')' */
50602 : #line 15897 "gram.y"
50603 : { (yyval.node) = makeTypeCast((yyvsp[-3].node), (yyvsp[-1].typnam), (yylsp[-5])); }
50604 : #line 50605 "gram.c"
50605 61186 : break;
50606 :
50607 1374 : case 2155: /* func_expr_common_subexpr: EXTRACT '(' extract_list ')' */
50608 : #line 15899 "gram.y"
50609 : {
50610 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("extract"),
50611 : (yyvsp[-1].list),
50612 : COERCE_SQL_SYNTAX,
50613 : (yylsp[-3]));
50614 : }
50615 : #line 50616 "gram.c"
50616 1374 : break;
50617 :
50618 18 : case 2156: /* func_expr_common_subexpr: NORMALIZE '(' a_expr ')' */
50619 : #line 15906 "gram.y"
50620 : {
50621 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("normalize"),
50622 : list_make1((yyvsp[-1].node)),
50623 : COERCE_SQL_SYNTAX,
50624 : (yylsp[-3]));
50625 : }
50626 : #line 50627 "gram.c"
50627 18 : break;
50628 :
50629 42 : case 2157: /* func_expr_common_subexpr: NORMALIZE '(' a_expr ',' unicode_normal_form ')' */
50630 : #line 15913 "gram.y"
50631 : {
50632 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("normalize"),
50633 : list_make2((yyvsp[-3].node), makeStringConst((yyvsp[-1].str), (yylsp[-1]))),
50634 : COERCE_SQL_SYNTAX,
50635 : (yylsp[-5]));
50636 : }
50637 : #line 50638 "gram.c"
50638 42 : break;
50639 :
50640 82 : case 2158: /* func_expr_common_subexpr: OVERLAY '(' overlay_list ')' */
50641 : #line 15920 "gram.y"
50642 : {
50643 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("overlay"),
50644 : (yyvsp[-1].list),
50645 : COERCE_SQL_SYNTAX,
50646 : (yylsp[-3]));
50647 : }
50648 : #line 50649 "gram.c"
50649 82 : break;
50650 :
50651 0 : case 2159: /* func_expr_common_subexpr: OVERLAY '(' func_arg_list_opt ')' */
50652 : #line 15927 "gram.y"
50653 : {
50654 : /*
50655 : * allow functions named overlay() to be called without
50656 : * special syntax
50657 : */
50658 : (yyval.node) = (Node *) makeFuncCall(list_make1(makeString("overlay")),
50659 : (yyvsp[-1].list),
50660 : COERCE_EXPLICIT_CALL,
50661 : (yylsp[-3]));
50662 : }
50663 : #line 50664 "gram.c"
50664 0 : break;
50665 :
50666 398 : case 2160: /* func_expr_common_subexpr: POSITION '(' position_list ')' */
50667 : #line 15938 "gram.y"
50668 : {
50669 : /*
50670 : * position(A in B) is converted to position(B, A)
50671 : *
50672 : * We deliberately don't offer a "plain syntax" option
50673 : * for position(), because the reversal of the arguments
50674 : * creates too much risk of confusion.
50675 : */
50676 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("position"),
50677 : (yyvsp[-1].list),
50678 : COERCE_SQL_SYNTAX,
50679 : (yylsp[-3]));
50680 : }
50681 : #line 50682 "gram.c"
50682 398 : break;
50683 :
50684 702 : case 2161: /* func_expr_common_subexpr: SUBSTRING '(' substr_list ')' */
50685 : #line 15952 "gram.y"
50686 : {
50687 : /* substring(A from B for C) is converted to
50688 : * substring(A, B, C) - thomas 2000-11-28
50689 : */
50690 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("substring"),
50691 : (yyvsp[-1].list),
50692 : COERCE_SQL_SYNTAX,
50693 : (yylsp[-3]));
50694 : }
50695 : #line 50696 "gram.c"
50696 702 : break;
50697 :
50698 206 : case 2162: /* func_expr_common_subexpr: SUBSTRING '(' func_arg_list_opt ')' */
50699 : #line 15962 "gram.y"
50700 : {
50701 : /*
50702 : * allow functions named substring() to be called without
50703 : * special syntax
50704 : */
50705 : (yyval.node) = (Node *) makeFuncCall(list_make1(makeString("substring")),
50706 : (yyvsp[-1].list),
50707 : COERCE_EXPLICIT_CALL,
50708 : (yylsp[-3]));
50709 : }
50710 : #line 50711 "gram.c"
50711 206 : break;
50712 :
50713 0 : case 2163: /* func_expr_common_subexpr: TREAT '(' a_expr AS Typename ')' */
50714 : #line 15973 "gram.y"
50715 : {
50716 : /* TREAT(expr AS target) converts expr of a particular type to target,
50717 : * which is defined to be a subtype of the original expression.
50718 : * In SQL99, this is intended for use with structured UDTs,
50719 : * but let's make this a generally useful form allowing stronger
50720 : * coercions than are handled by implicit casting.
50721 : *
50722 : * Convert SystemTypeName() to SystemFuncName() even though
50723 : * at the moment they result in the same thing.
50724 : */
50725 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName(strVal(llast((yyvsp[-1].typnam)->names))),
50726 : list_make1((yyvsp[-3].node)),
50727 : COERCE_EXPLICIT_CALL,
50728 : (yylsp[-5]));
50729 : }
50730 : #line 50731 "gram.c"
50731 0 : break;
50732 :
50733 12 : case 2164: /* func_expr_common_subexpr: TRIM '(' BOTH trim_list ')' */
50734 : #line 15989 "gram.y"
50735 : {
50736 : /* various trim expressions are defined in SQL
50737 : * - thomas 1997-07-19
50738 : */
50739 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("btrim"),
50740 : (yyvsp[-1].list),
50741 : COERCE_SQL_SYNTAX,
50742 : (yylsp[-4]));
50743 : }
50744 : #line 50745 "gram.c"
50745 12 : break;
50746 :
50747 24 : case 2165: /* func_expr_common_subexpr: TRIM '(' LEADING trim_list ')' */
50748 : #line 15999 "gram.y"
50749 : {
50750 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("ltrim"),
50751 : (yyvsp[-1].list),
50752 : COERCE_SQL_SYNTAX,
50753 : (yylsp[-4]));
50754 : }
50755 : #line 50756 "gram.c"
50756 24 : break;
50757 :
50758 572 : case 2166: /* func_expr_common_subexpr: TRIM '(' TRAILING trim_list ')' */
50759 : #line 16006 "gram.y"
50760 : {
50761 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("rtrim"),
50762 : (yyvsp[-1].list),
50763 : COERCE_SQL_SYNTAX,
50764 : (yylsp[-4]));
50765 : }
50766 : #line 50767 "gram.c"
50767 572 : break;
50768 :
50769 98 : case 2167: /* func_expr_common_subexpr: TRIM '(' trim_list ')' */
50770 : #line 16013 "gram.y"
50771 : {
50772 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("btrim"),
50773 : (yyvsp[-1].list),
50774 : COERCE_SQL_SYNTAX,
50775 : (yylsp[-3]));
50776 : }
50777 : #line 50778 "gram.c"
50778 98 : break;
50779 :
50780 416 : case 2168: /* func_expr_common_subexpr: NULLIF '(' a_expr ',' a_expr ')' */
50781 : #line 16020 "gram.y"
50782 : {
50783 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NULLIF, "=", (yyvsp[-3].node), (yyvsp[-1].node), (yylsp[-5]));
50784 : }
50785 : #line 50786 "gram.c"
50786 416 : break;
50787 :
50788 3148 : case 2169: /* func_expr_common_subexpr: COALESCE '(' expr_list ')' */
50789 : #line 16024 "gram.y"
50790 : {
50791 : CoalesceExpr *c = makeNode(CoalesceExpr);
50792 :
50793 : c->args = (yyvsp[-1].list);
50794 : c->location = (yylsp[-3]);
50795 : (yyval.node) = (Node *) c;
50796 : }
50797 : #line 50798 "gram.c"
50798 3148 : break;
50799 :
50800 140 : case 2170: /* func_expr_common_subexpr: GREATEST '(' expr_list ')' */
50801 : #line 16032 "gram.y"
50802 : {
50803 : MinMaxExpr *v = makeNode(MinMaxExpr);
50804 :
50805 : v->args = (yyvsp[-1].list);
50806 : v->op = IS_GREATEST;
50807 : v->location = (yylsp[-3]);
50808 : (yyval.node) = (Node *) v;
50809 : }
50810 : #line 50811 "gram.c"
50811 140 : break;
50812 :
50813 124 : case 2171: /* func_expr_common_subexpr: LEAST '(' expr_list ')' */
50814 : #line 16041 "gram.y"
50815 : {
50816 : MinMaxExpr *v = makeNode(MinMaxExpr);
50817 :
50818 : v->args = (yyvsp[-1].list);
50819 : v->op = IS_LEAST;
50820 : v->location = (yylsp[-3]);
50821 : (yyval.node) = (Node *) v;
50822 : }
50823 : #line 50824 "gram.c"
50824 124 : break;
50825 :
50826 64 : case 2172: /* func_expr_common_subexpr: XMLCONCAT '(' expr_list ')' */
50827 : #line 16050 "gram.y"
50828 : {
50829 : (yyval.node) = makeXmlExpr(IS_XMLCONCAT, NULL, NIL, (yyvsp[-1].list), (yylsp[-3]));
50830 : }
50831 : #line 50832 "gram.c"
50832 64 : break;
50833 :
50834 6 : case 2173: /* func_expr_common_subexpr: XMLELEMENT '(' NAME_P ColLabel ')' */
50835 : #line 16054 "gram.y"
50836 : {
50837 : (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-1].str), NIL, NIL, (yylsp[-4]));
50838 : }
50839 : #line 50840 "gram.c"
50840 6 : break;
50841 :
50842 36 : case 2174: /* func_expr_common_subexpr: XMLELEMENT '(' NAME_P ColLabel ',' xml_attributes ')' */
50843 : #line 16058 "gram.y"
50844 : {
50845 : (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-3].str), (yyvsp[-1].list), NIL, (yylsp[-6]));
50846 : }
50847 : #line 50848 "gram.c"
50848 36 : break;
50849 :
50850 118 : case 2175: /* func_expr_common_subexpr: XMLELEMENT '(' NAME_P ColLabel ',' expr_list ')' */
50851 : #line 16062 "gram.y"
50852 : {
50853 : (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-3].str), NIL, (yyvsp[-1].list), (yylsp[-6]));
50854 : }
50855 : #line 50856 "gram.c"
50856 118 : break;
50857 :
50858 22 : case 2176: /* func_expr_common_subexpr: XMLELEMENT '(' NAME_P ColLabel ',' xml_attributes ',' expr_list ')' */
50859 : #line 16066 "gram.y"
50860 : {
50861 : (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-5].str), (yyvsp[-3].list), (yyvsp[-1].list), (yylsp[-8]));
50862 : }
50863 : #line 50864 "gram.c"
50864 22 : break;
50865 :
50866 54 : case 2177: /* func_expr_common_subexpr: XMLEXISTS '(' c_expr xmlexists_argument ')' */
50867 : #line 16070 "gram.y"
50868 : {
50869 : /* xmlexists(A PASSING [BY REF] B [BY REF]) is
50870 : * converted to xmlexists(A, B)*/
50871 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("xmlexists"),
50872 : list_make2((yyvsp[-2].node), (yyvsp[-1].node)),
50873 : COERCE_SQL_SYNTAX,
50874 : (yylsp[-4]));
50875 : }
50876 : #line 50877 "gram.c"
50877 54 : break;
50878 :
50879 34 : case 2178: /* func_expr_common_subexpr: XMLFOREST '(' xml_attribute_list ')' */
50880 : #line 16079 "gram.y"
50881 : {
50882 : (yyval.node) = makeXmlExpr(IS_XMLFOREST, NULL, (yyvsp[-1].list), NIL, (yylsp[-3]));
50883 : }
50884 : #line 50885 "gram.c"
50885 34 : break;
50886 :
50887 142 : case 2179: /* func_expr_common_subexpr: XMLPARSE '(' document_or_content a_expr xml_whitespace_option ')' */
50888 : #line 16083 "gram.y"
50889 : {
50890 : XmlExpr *x = (XmlExpr *)
50891 : makeXmlExpr(IS_XMLPARSE, NULL, NIL,
50892 : list_make2((yyvsp[-2].node), makeBoolAConst((yyvsp[-1].boolean), -1)),
50893 : (yylsp[-5]));
50894 :
50895 : x->xmloption = (yyvsp[-3].ival);
50896 : (yyval.node) = (Node *) x;
50897 : }
50898 : #line 50899 "gram.c"
50899 142 : break;
50900 :
50901 30 : case 2180: /* func_expr_common_subexpr: XMLPI '(' NAME_P ColLabel ')' */
50902 : #line 16093 "gram.y"
50903 : {
50904 : (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[-1].str), NULL, NIL, (yylsp[-4]));
50905 : }
50906 : #line 50907 "gram.c"
50907 30 : break;
50908 :
50909 52 : case 2181: /* func_expr_common_subexpr: XMLPI '(' NAME_P ColLabel ',' a_expr ')' */
50910 : #line 16097 "gram.y"
50911 : {
50912 : (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[-3].str), NULL, list_make1((yyvsp[-1].node)), (yylsp[-6]));
50913 : }
50914 : #line 50915 "gram.c"
50915 52 : break;
50916 :
50917 70 : case 2182: /* func_expr_common_subexpr: XMLROOT '(' a_expr ',' xml_root_version opt_xml_root_standalone ')' */
50918 : #line 16101 "gram.y"
50919 : {
50920 : (yyval.node) = makeXmlExpr(IS_XMLROOT, NULL, NIL,
50921 : list_make3((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[-1].node)), (yylsp[-6]));
50922 : }
50923 : #line 50924 "gram.c"
50924 70 : break;
50925 :
50926 226 : case 2183: /* func_expr_common_subexpr: XMLSERIALIZE '(' document_or_content a_expr AS SimpleTypename xml_indent_option ')' */
50927 : #line 16106 "gram.y"
50928 : {
50929 : XmlSerialize *n = makeNode(XmlSerialize);
50930 :
50931 : n->xmloption = (yyvsp[-5].ival);
50932 : n->expr = (yyvsp[-4].node);
50933 : n->typeName = (yyvsp[-2].typnam);
50934 : n->indent = (yyvsp[-1].boolean);
50935 : n->location = (yylsp[-7]);
50936 : (yyval.node) = (Node *) n;
50937 : }
50938 : #line 50939 "gram.c"
50939 226 : break;
50940 :
50941 90 : case 2184: /* func_expr_common_subexpr: JSON_OBJECT '(' func_arg_list ')' */
50942 : #line 16117 "gram.y"
50943 : {
50944 : /* Support for legacy (non-standard) json_object() */
50945 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("json_object"),
50946 : (yyvsp[-1].list), COERCE_EXPLICIT_CALL, (yylsp[-3]));
50947 : }
50948 : #line 50949 "gram.c"
50949 90 : break;
50950 :
50951 348 : case 2185: /* func_expr_common_subexpr: JSON_OBJECT '(' json_name_and_value_list json_object_constructor_null_clause_opt json_key_uniqueness_constraint_opt json_returning_clause_opt ')' */
50952 : #line 16126 "gram.y"
50953 : {
50954 : JsonObjectConstructor *n = makeNode(JsonObjectConstructor);
50955 :
50956 : n->exprs = (yyvsp[-4].list);
50957 : n->absent_on_null = (yyvsp[-3].boolean);
50958 : n->unique = (yyvsp[-2].boolean);
50959 : n->output = (JsonOutput *) (yyvsp[-1].node);
50960 : n->location = (yylsp[-6]);
50961 : (yyval.node) = (Node *) n;
50962 : }
50963 : #line 50964 "gram.c"
50964 348 : break;
50965 :
50966 92 : case 2186: /* func_expr_common_subexpr: JSON_OBJECT '(' json_returning_clause_opt ')' */
50967 : #line 16137 "gram.y"
50968 : {
50969 : JsonObjectConstructor *n = makeNode(JsonObjectConstructor);
50970 :
50971 : n->exprs = NULL;
50972 : n->absent_on_null = false;
50973 : n->unique = false;
50974 : n->output = (JsonOutput *) (yyvsp[-1].node);
50975 : n->location = (yylsp[-3]);
50976 : (yyval.node) = (Node *) n;
50977 : }
50978 : #line 50979 "gram.c"
50979 92 : break;
50980 :
50981 108 : case 2187: /* func_expr_common_subexpr: JSON_ARRAY '(' json_value_expr_list json_array_constructor_null_clause_opt json_returning_clause_opt ')' */
50982 : #line 16152 "gram.y"
50983 : {
50984 : JsonArrayConstructor *n = makeNode(JsonArrayConstructor);
50985 :
50986 : n->exprs = (yyvsp[-3].list);
50987 : n->absent_on_null = (yyvsp[-2].boolean);
50988 : n->output = (JsonOutput *) (yyvsp[-1].node);
50989 : n->location = (yylsp[-5]);
50990 : (yyval.node) = (Node *) n;
50991 : }
50992 : #line 50993 "gram.c"
50993 108 : break;
50994 :
50995 60 : case 2188: /* func_expr_common_subexpr: JSON_ARRAY '(' select_no_parens json_format_clause_opt json_returning_clause_opt ')' */
50996 : #line 16167 "gram.y"
50997 : {
50998 : JsonArrayQueryConstructor *n = makeNode(JsonArrayQueryConstructor);
50999 :
51000 : n->query = (yyvsp[-3].node);
51001 : n->format = (JsonFormat *) (yyvsp[-2].node);
51002 : n->absent_on_null = true; /* XXX */
51003 : n->output = (JsonOutput *) (yyvsp[-1].node);
51004 : n->location = (yylsp[-5]);
51005 : (yyval.node) = (Node *) n;
51006 : }
51007 : #line 51008 "gram.c"
51008 60 : break;
51009 :
51010 86 : case 2189: /* func_expr_common_subexpr: JSON_ARRAY '(' json_returning_clause_opt ')' */
51011 : #line 16180 "gram.y"
51012 : {
51013 : JsonArrayConstructor *n = makeNode(JsonArrayConstructor);
51014 :
51015 : n->exprs = NIL;
51016 : n->absent_on_null = true;
51017 : n->output = (JsonOutput *) (yyvsp[-1].node);
51018 : n->location = (yylsp[-3]);
51019 : (yyval.node) = (Node *) n;
51020 : }
51021 : #line 51022 "gram.c"
51022 86 : break;
51023 :
51024 164 : case 2190: /* func_expr_common_subexpr: JSON '(' json_value_expr json_key_uniqueness_constraint_opt ')' */
51025 : #line 16190 "gram.y"
51026 : {
51027 : JsonParseExpr *n = makeNode(JsonParseExpr);
51028 :
51029 : n->expr = (JsonValueExpr *) (yyvsp[-2].node);
51030 : n->unique_keys = (yyvsp[-1].boolean);
51031 : n->output = NULL;
51032 : n->location = (yylsp[-4]);
51033 : (yyval.node) = (Node *) n;
51034 : }
51035 : #line 51036 "gram.c"
51036 164 : break;
51037 :
51038 112 : case 2191: /* func_expr_common_subexpr: JSON_SCALAR '(' a_expr ')' */
51039 : #line 16200 "gram.y"
51040 : {
51041 : JsonScalarExpr *n = makeNode(JsonScalarExpr);
51042 :
51043 : n->expr = (Expr *) (yyvsp[-1].node);
51044 : n->output = NULL;
51045 : n->location = (yylsp[-3]);
51046 : (yyval.node) = (Node *) n;
51047 : }
51048 : #line 51049 "gram.c"
51049 112 : break;
51050 :
51051 108 : case 2192: /* func_expr_common_subexpr: JSON_SERIALIZE '(' json_value_expr json_returning_clause_opt ')' */
51052 : #line 16209 "gram.y"
51053 : {
51054 : JsonSerializeExpr *n = makeNode(JsonSerializeExpr);
51055 :
51056 : n->expr = (JsonValueExpr *) (yyvsp[-2].node);
51057 : n->output = (JsonOutput *) (yyvsp[-1].node);
51058 : n->location = (yylsp[-4]);
51059 : (yyval.node) = (Node *) n;
51060 : }
51061 : #line 51062 "gram.c"
51062 108 : break;
51063 :
51064 204 : case 2193: /* func_expr_common_subexpr: MERGE_ACTION '(' ')' */
51065 : #line 16218 "gram.y"
51066 : {
51067 : MergeSupportFunc *m = makeNode(MergeSupportFunc);
51068 :
51069 : m->msftype = TEXTOID;
51070 : m->location = (yylsp[-2]);
51071 : (yyval.node) = (Node *) m;
51072 : }
51073 : #line 51074 "gram.c"
51074 204 : break;
51075 :
51076 984 : case 2194: /* func_expr_common_subexpr: JSON_QUERY '(' json_value_expr ',' a_expr json_passing_clause_opt json_returning_clause_opt json_wrapper_behavior json_quotes_clause_opt json_behavior_clause_opt ')' */
51077 : #line 16232 "gram.y"
51078 : {
51079 : JsonFuncExpr *n = makeNode(JsonFuncExpr);
51080 :
51081 : n->op = JSON_QUERY_OP;
51082 : n->context_item = (JsonValueExpr *) (yyvsp[-8].node);
51083 : n->pathspec = (yyvsp[-6].node);
51084 : n->passing = (yyvsp[-5].list);
51085 : n->output = (JsonOutput *) (yyvsp[-4].node);
51086 : n->wrapper = (yyvsp[-3].ival);
51087 : n->quotes = (yyvsp[-2].ival);
51088 : n->on_empty = (JsonBehavior *) linitial((yyvsp[-1].list));
51089 : n->on_error = (JsonBehavior *) lsecond((yyvsp[-1].list));
51090 : n->location = (yylsp[-10]);
51091 : (yyval.node) = (Node *) n;
51092 : }
51093 : #line 51094 "gram.c"
51094 984 : break;
51095 :
51096 168 : case 2195: /* func_expr_common_subexpr: JSON_EXISTS '(' json_value_expr ',' a_expr json_passing_clause_opt json_on_error_clause_opt ')' */
51097 : #line 16251 "gram.y"
51098 : {
51099 : JsonFuncExpr *n = makeNode(JsonFuncExpr);
51100 :
51101 : n->op = JSON_EXISTS_OP;
51102 : n->context_item = (JsonValueExpr *) (yyvsp[-5].node);
51103 : n->pathspec = (yyvsp[-3].node);
51104 : n->passing = (yyvsp[-2].list);
51105 : n->output = NULL;
51106 : n->on_error = (JsonBehavior *) (yyvsp[-1].node);
51107 : n->location = (yylsp[-7]);
51108 : (yyval.node) = (Node *) n;
51109 : }
51110 : #line 51111 "gram.c"
51111 168 : break;
51112 :
51113 576 : case 2196: /* func_expr_common_subexpr: JSON_VALUE '(' json_value_expr ',' a_expr json_passing_clause_opt json_returning_clause_opt json_behavior_clause_opt ')' */
51114 : #line 16268 "gram.y"
51115 : {
51116 : JsonFuncExpr *n = makeNode(JsonFuncExpr);
51117 :
51118 : n->op = JSON_VALUE_OP;
51119 : n->context_item = (JsonValueExpr *) (yyvsp[-6].node);
51120 : n->pathspec = (yyvsp[-4].node);
51121 : n->passing = (yyvsp[-3].list);
51122 : n->output = (JsonOutput *) (yyvsp[-2].node);
51123 : n->on_empty = (JsonBehavior *) linitial((yyvsp[-1].list));
51124 : n->on_error = (JsonBehavior *) lsecond((yyvsp[-1].list));
51125 : n->location = (yylsp[-8]);
51126 : (yyval.node) = (Node *) n;
51127 : }
51128 : #line 51129 "gram.c"
51129 576 : break;
51130 :
51131 24 : case 2197: /* xml_root_version: VERSION_P a_expr */
51132 : #line 16288 "gram.y"
51133 : { (yyval.node) = (yyvsp[0].node); }
51134 : #line 51135 "gram.c"
51135 24 : break;
51136 :
51137 46 : case 2198: /* xml_root_version: VERSION_P NO VALUE_P */
51138 : #line 16290 "gram.y"
51139 : { (yyval.node) = makeNullAConst(-1); }
51140 : #line 51141 "gram.c"
51141 46 : break;
51142 :
51143 28 : case 2199: /* opt_xml_root_standalone: ',' STANDALONE_P YES_P */
51144 : #line 16294 "gram.y"
51145 : { (yyval.node) = makeIntConst(XML_STANDALONE_YES, -1); }
51146 : #line 51147 "gram.c"
51147 28 : break;
51148 :
51149 12 : case 2200: /* opt_xml_root_standalone: ',' STANDALONE_P NO */
51150 : #line 16296 "gram.y"
51151 : { (yyval.node) = makeIntConst(XML_STANDALONE_NO, -1); }
51152 : #line 51153 "gram.c"
51153 12 : break;
51154 :
51155 12 : case 2201: /* opt_xml_root_standalone: ',' STANDALONE_P NO VALUE_P */
51156 : #line 16298 "gram.y"
51157 : { (yyval.node) = makeIntConst(XML_STANDALONE_NO_VALUE, -1); }
51158 : #line 51159 "gram.c"
51159 12 : break;
51160 :
51161 18 : case 2202: /* opt_xml_root_standalone: %empty */
51162 : #line 16300 "gram.y"
51163 : { (yyval.node) = makeIntConst(XML_STANDALONE_OMITTED, -1); }
51164 : #line 51165 "gram.c"
51165 18 : break;
51166 :
51167 58 : case 2203: /* xml_attributes: XMLATTRIBUTES '(' xml_attribute_list ')' */
51168 : #line 16303 "gram.y"
51169 : { (yyval.list) = (yyvsp[-1].list); }
51170 : #line 51171 "gram.c"
51171 58 : break;
51172 :
51173 92 : case 2204: /* xml_attribute_list: xml_attribute_el */
51174 : #line 16306 "gram.y"
51175 : { (yyval.list) = list_make1((yyvsp[0].target)); }
51176 : #line 51177 "gram.c"
51177 92 : break;
51178 :
51179 150 : case 2205: /* xml_attribute_list: xml_attribute_list ',' xml_attribute_el */
51180 : #line 16307 "gram.y"
51181 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); }
51182 : #line 51183 "gram.c"
51183 150 : break;
51184 :
51185 116 : case 2206: /* xml_attribute_el: a_expr AS ColLabel */
51186 : #line 16311 "gram.y"
51187 : {
51188 : (yyval.target) = makeNode(ResTarget);
51189 : (yyval.target)->name = (yyvsp[0].str);
51190 : (yyval.target)->indirection = NIL;
51191 : (yyval.target)->val = (Node *) (yyvsp[-2].node);
51192 : (yyval.target)->location = (yylsp[-2]);
51193 : }
51194 : #line 51195 "gram.c"
51195 116 : break;
51196 :
51197 126 : case 2207: /* xml_attribute_el: a_expr */
51198 : #line 16319 "gram.y"
51199 : {
51200 : (yyval.target) = makeNode(ResTarget);
51201 : (yyval.target)->name = NULL;
51202 : (yyval.target)->indirection = NIL;
51203 : (yyval.target)->val = (Node *) (yyvsp[0].node);
51204 : (yyval.target)->location = (yylsp[0]);
51205 : }
51206 : #line 51207 "gram.c"
51207 126 : break;
51208 :
51209 190 : case 2208: /* document_or_content: DOCUMENT_P */
51210 : #line 16328 "gram.y"
51211 : { (yyval.ival) = XMLOPTION_DOCUMENT; }
51212 : #line 51213 "gram.c"
51213 190 : break;
51214 :
51215 194 : case 2209: /* document_or_content: CONTENT_P */
51216 : #line 16329 "gram.y"
51217 : { (yyval.ival) = XMLOPTION_CONTENT; }
51218 : #line 51219 "gram.c"
51219 194 : break;
51220 :
51221 142 : case 2210: /* xml_indent_option: INDENT */
51222 : #line 16332 "gram.y"
51223 : { (yyval.boolean) = true; }
51224 : #line 51225 "gram.c"
51225 142 : break;
51226 :
51227 42 : case 2211: /* xml_indent_option: NO INDENT */
51228 : #line 16333 "gram.y"
51229 : { (yyval.boolean) = false; }
51230 : #line 51231 "gram.c"
51231 42 : break;
51232 :
51233 42 : case 2212: /* xml_indent_option: %empty */
51234 : #line 16334 "gram.y"
51235 : { (yyval.boolean) = false; }
51236 : #line 51237 "gram.c"
51237 42 : break;
51238 :
51239 0 : case 2213: /* xml_whitespace_option: PRESERVE WHITESPACE_P */
51240 : #line 16337 "gram.y"
51241 : { (yyval.boolean) = true; }
51242 : #line 51243 "gram.c"
51243 0 : break;
51244 :
51245 4 : case 2214: /* xml_whitespace_option: STRIP_P WHITESPACE_P */
51246 : #line 16338 "gram.y"
51247 : { (yyval.boolean) = false; }
51248 : #line 51249 "gram.c"
51249 4 : break;
51250 :
51251 138 : case 2215: /* xml_whitespace_option: %empty */
51252 : #line 16339 "gram.y"
51253 : { (yyval.boolean) = false; }
51254 : #line 51255 "gram.c"
51255 138 : break;
51256 :
51257 230 : case 2216: /* xmlexists_argument: PASSING c_expr */
51258 : #line 16345 "gram.y"
51259 : {
51260 : (yyval.node) = (yyvsp[0].node);
51261 : }
51262 : #line 51263 "gram.c"
51263 230 : break;
51264 :
51265 0 : case 2217: /* xmlexists_argument: PASSING c_expr xml_passing_mech */
51266 : #line 16349 "gram.y"
51267 : {
51268 : (yyval.node) = (yyvsp[-1].node);
51269 : }
51270 : #line 51271 "gram.c"
51271 0 : break;
51272 :
51273 42 : case 2218: /* xmlexists_argument: PASSING xml_passing_mech c_expr */
51274 : #line 16353 "gram.y"
51275 : {
51276 : (yyval.node) = (yyvsp[0].node);
51277 : }
51278 : #line 51279 "gram.c"
51279 42 : break;
51280 :
51281 6 : case 2219: /* xmlexists_argument: PASSING xml_passing_mech c_expr xml_passing_mech */
51282 : #line 16357 "gram.y"
51283 : {
51284 : (yyval.node) = (yyvsp[-1].node);
51285 : }
51286 : #line 51287 "gram.c"
51287 6 : break;
51288 :
51289 348 : case 2222: /* within_group_clause: WITHIN GROUP_P '(' sort_clause ')' */
51290 : #line 16372 "gram.y"
51291 : { (yyval.list) = (yyvsp[-1].list); }
51292 : #line 51293 "gram.c"
51293 348 : break;
51294 :
51295 316770 : case 2223: /* within_group_clause: %empty */
51296 : #line 16373 "gram.y"
51297 : { (yyval.list) = NIL; }
51298 : #line 51299 "gram.c"
51299 316770 : break;
51300 :
51301 854 : case 2224: /* filter_clause: FILTER '(' WHERE a_expr ')' */
51302 : #line 16377 "gram.y"
51303 : { (yyval.node) = (yyvsp[-1].node); }
51304 : #line 51305 "gram.c"
51305 854 : break;
51306 :
51307 316624 : case 2225: /* filter_clause: %empty */
51308 : #line 16378 "gram.y"
51309 : { (yyval.node) = NULL; }
51310 : #line 51311 "gram.c"
51311 316624 : break;
51312 :
51313 540 : case 2226: /* window_clause: WINDOW window_definition_list */
51314 : #line 16386 "gram.y"
51315 : { (yyval.list) = (yyvsp[0].list); }
51316 : #line 51317 "gram.c"
51317 540 : break;
51318 :
51319 480564 : case 2227: /* window_clause: %empty */
51320 : #line 16387 "gram.y"
51321 : { (yyval.list) = NIL; }
51322 : #line 51323 "gram.c"
51323 480564 : break;
51324 :
51325 540 : case 2228: /* window_definition_list: window_definition */
51326 : #line 16391 "gram.y"
51327 : { (yyval.list) = list_make1((yyvsp[0].windef)); }
51328 : #line 51329 "gram.c"
51329 540 : break;
51330 :
51331 12 : case 2229: /* window_definition_list: window_definition_list ',' window_definition */
51332 : #line 16393 "gram.y"
51333 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].windef)); }
51334 : #line 51335 "gram.c"
51335 12 : break;
51336 :
51337 552 : case 2230: /* window_definition: ColId AS window_specification */
51338 : #line 16398 "gram.y"
51339 : {
51340 : WindowDef *n = (yyvsp[0].windef);
51341 :
51342 : n->name = (yyvsp[-2].str);
51343 : (yyval.windef) = n;
51344 : }
51345 : #line 51346 "gram.c"
51346 552 : break;
51347 :
51348 2614 : case 2231: /* over_clause: OVER window_specification */
51349 : #line 16407 "gram.y"
51350 : { (yyval.windef) = (yyvsp[0].windef); }
51351 : #line 51352 "gram.c"
51352 2614 : break;
51353 :
51354 954 : case 2232: /* over_clause: OVER ColId */
51355 : #line 16409 "gram.y"
51356 : {
51357 : WindowDef *n = makeNode(WindowDef);
51358 :
51359 : n->name = (yyvsp[0].str);
51360 : n->refname = NULL;
51361 : n->partitionClause = NIL;
51362 : n->orderClause = NIL;
51363 : n->frameOptions = FRAMEOPTION_DEFAULTS;
51364 : n->startOffset = NULL;
51365 : n->endOffset = NULL;
51366 : n->location = (yylsp[0]);
51367 : (yyval.windef) = n;
51368 : }
51369 : #line 51370 "gram.c"
51370 954 : break;
51371 :
51372 313904 : case 2233: /* over_clause: %empty */
51373 : #line 16423 "gram.y"
51374 : { (yyval.windef) = NULL; }
51375 : #line 51376 "gram.c"
51376 313904 : break;
51377 :
51378 3166 : case 2234: /* window_specification: '(' opt_existing_window_name opt_partition_clause opt_sort_clause opt_frame_clause ')' */
51379 : #line 16428 "gram.y"
51380 : {
51381 : WindowDef *n = makeNode(WindowDef);
51382 :
51383 : n->name = NULL;
51384 : n->refname = (yyvsp[-4].str);
51385 : n->partitionClause = (yyvsp[-3].list);
51386 : n->orderClause = (yyvsp[-2].list);
51387 : /* copy relevant fields of opt_frame_clause */
51388 : n->frameOptions = (yyvsp[-1].windef)->frameOptions;
51389 : n->startOffset = (yyvsp[-1].windef)->startOffset;
51390 : n->endOffset = (yyvsp[-1].windef)->endOffset;
51391 : n->location = (yylsp[-5]);
51392 : (yyval.windef) = n;
51393 : }
51394 : #line 51395 "gram.c"
51395 3166 : break;
51396 :
51397 54 : case 2235: /* opt_existing_window_name: ColId */
51398 : #line 16454 "gram.y"
51399 : { (yyval.str) = (yyvsp[0].str); }
51400 : #line 51401 "gram.c"
51401 54 : break;
51402 :
51403 3118 : case 2236: /* opt_existing_window_name: %empty */
51404 : #line 16455 "gram.y"
51405 : { (yyval.str) = NULL; }
51406 : #line 51407 "gram.c"
51407 3118 : break;
51408 :
51409 918 : case 2237: /* opt_partition_clause: PARTITION BY expr_list */
51410 : #line 16458 "gram.y"
51411 : { (yyval.list) = (yyvsp[0].list); }
51412 : #line 51413 "gram.c"
51413 918 : break;
51414 :
51415 2248 : case 2238: /* opt_partition_clause: %empty */
51416 : #line 16459 "gram.y"
51417 : { (yyval.list) = NIL; }
51418 : #line 51419 "gram.c"
51419 2248 : break;
51420 :
51421 796 : case 2239: /* opt_frame_clause: RANGE frame_extent opt_window_exclusion_clause */
51422 : #line 16468 "gram.y"
51423 : {
51424 : WindowDef *n = (yyvsp[-1].windef);
51425 :
51426 : n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE;
51427 : n->frameOptions |= (yyvsp[0].ival);
51428 : (yyval.windef) = n;
51429 : }
51430 : #line 51431 "gram.c"
51431 796 : break;
51432 :
51433 624 : case 2240: /* opt_frame_clause: ROWS frame_extent opt_window_exclusion_clause */
51434 : #line 16476 "gram.y"
51435 : {
51436 : WindowDef *n = (yyvsp[-1].windef);
51437 :
51438 : n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS;
51439 : n->frameOptions |= (yyvsp[0].ival);
51440 : (yyval.windef) = n;
51441 : }
51442 : #line 51443 "gram.c"
51443 624 : break;
51444 :
51445 204 : case 2241: /* opt_frame_clause: GROUPS frame_extent opt_window_exclusion_clause */
51446 : #line 16484 "gram.y"
51447 : {
51448 : WindowDef *n = (yyvsp[-1].windef);
51449 :
51450 : n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_GROUPS;
51451 : n->frameOptions |= (yyvsp[0].ival);
51452 : (yyval.windef) = n;
51453 : }
51454 : #line 51455 "gram.c"
51455 204 : break;
51456 :
51457 1542 : case 2242: /* opt_frame_clause: %empty */
51458 : #line 16492 "gram.y"
51459 : {
51460 : WindowDef *n = makeNode(WindowDef);
51461 :
51462 : n->frameOptions = FRAMEOPTION_DEFAULTS;
51463 : n->startOffset = NULL;
51464 : n->endOffset = NULL;
51465 : (yyval.windef) = n;
51466 : }
51467 : #line 51468 "gram.c"
51468 1542 : break;
51469 :
51470 12 : case 2243: /* frame_extent: frame_bound */
51471 : #line 16503 "gram.y"
51472 : {
51473 : WindowDef *n = (yyvsp[0].windef);
51474 :
51475 : /* reject invalid cases */
51476 : if (n->frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING)
51477 : ereport(ERROR,
51478 : (errcode(ERRCODE_WINDOWING_ERROR),
51479 : errmsg("frame start cannot be UNBOUNDED FOLLOWING"),
51480 : parser_errposition((yylsp[0]))));
51481 : if (n->frameOptions & FRAMEOPTION_START_OFFSET_FOLLOWING)
51482 : ereport(ERROR,
51483 : (errcode(ERRCODE_WINDOWING_ERROR),
51484 : errmsg("frame starting from following row cannot end with current row"),
51485 : parser_errposition((yylsp[0]))));
51486 : n->frameOptions |= FRAMEOPTION_END_CURRENT_ROW;
51487 : (yyval.windef) = n;
51488 : }
51489 : #line 51490 "gram.c"
51490 12 : break;
51491 :
51492 1612 : case 2244: /* frame_extent: BETWEEN frame_bound AND frame_bound */
51493 : #line 16521 "gram.y"
51494 : {
51495 : WindowDef *n1 = (yyvsp[-2].windef);
51496 : WindowDef *n2 = (yyvsp[0].windef);
51497 :
51498 : /* form merged options */
51499 : int frameOptions = n1->frameOptions;
51500 : /* shift converts START_ options to END_ options */
51501 : frameOptions |= n2->frameOptions << 1;
51502 : frameOptions |= FRAMEOPTION_BETWEEN;
51503 : /* reject invalid cases */
51504 : if (frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING)
51505 : ereport(ERROR,
51506 : (errcode(ERRCODE_WINDOWING_ERROR),
51507 : errmsg("frame start cannot be UNBOUNDED FOLLOWING"),
51508 : parser_errposition((yylsp[-2]))));
51509 : if (frameOptions & FRAMEOPTION_END_UNBOUNDED_PRECEDING)
51510 : ereport(ERROR,
51511 : (errcode(ERRCODE_WINDOWING_ERROR),
51512 : errmsg("frame end cannot be UNBOUNDED PRECEDING"),
51513 : parser_errposition((yylsp[0]))));
51514 : if ((frameOptions & FRAMEOPTION_START_CURRENT_ROW) &&
51515 : (frameOptions & FRAMEOPTION_END_OFFSET_PRECEDING))
51516 : ereport(ERROR,
51517 : (errcode(ERRCODE_WINDOWING_ERROR),
51518 : errmsg("frame starting from current row cannot have preceding rows"),
51519 : parser_errposition((yylsp[0]))));
51520 : if ((frameOptions & FRAMEOPTION_START_OFFSET_FOLLOWING) &&
51521 : (frameOptions & (FRAMEOPTION_END_OFFSET_PRECEDING |
51522 : FRAMEOPTION_END_CURRENT_ROW)))
51523 : ereport(ERROR,
51524 : (errcode(ERRCODE_WINDOWING_ERROR),
51525 : errmsg("frame starting from following row cannot have preceding rows"),
51526 : parser_errposition((yylsp[0]))));
51527 : n1->frameOptions = frameOptions;
51528 : n1->endOffset = n2->startOffset;
51529 : (yyval.windef) = n1;
51530 : }
51531 : #line 51532 "gram.c"
51532 1612 : break;
51533 :
51534 198 : case 2245: /* frame_bound: UNBOUNDED PRECEDING */
51535 : #line 16567 "gram.y"
51536 : {
51537 : WindowDef *n = makeNode(WindowDef);
51538 :
51539 : n->frameOptions = FRAMEOPTION_START_UNBOUNDED_PRECEDING;
51540 : n->startOffset = NULL;
51541 : n->endOffset = NULL;
51542 : (yyval.windef) = n;
51543 : }
51544 : #line 51545 "gram.c"
51545 198 : break;
51546 :
51547 376 : case 2246: /* frame_bound: UNBOUNDED FOLLOWING */
51548 : #line 16576 "gram.y"
51549 : {
51550 : WindowDef *n = makeNode(WindowDef);
51551 :
51552 : n->frameOptions = FRAMEOPTION_START_UNBOUNDED_FOLLOWING;
51553 : n->startOffset = NULL;
51554 : n->endOffset = NULL;
51555 : (yyval.windef) = n;
51556 : }
51557 : #line 51558 "gram.c"
51558 376 : break;
51559 :
51560 604 : case 2247: /* frame_bound: CURRENT_P ROW */
51561 : #line 16585 "gram.y"
51562 : {
51563 : WindowDef *n = makeNode(WindowDef);
51564 :
51565 : n->frameOptions = FRAMEOPTION_START_CURRENT_ROW;
51566 : n->startOffset = NULL;
51567 : n->endOffset = NULL;
51568 : (yyval.windef) = n;
51569 : }
51570 : #line 51571 "gram.c"
51571 604 : break;
51572 :
51573 906 : case 2248: /* frame_bound: a_expr PRECEDING */
51574 : #line 16594 "gram.y"
51575 : {
51576 : WindowDef *n = makeNode(WindowDef);
51577 :
51578 : n->frameOptions = FRAMEOPTION_START_OFFSET_PRECEDING;
51579 : n->startOffset = (yyvsp[-1].node);
51580 : n->endOffset = NULL;
51581 : (yyval.windef) = n;
51582 : }
51583 : #line 51584 "gram.c"
51584 906 : break;
51585 :
51586 1152 : case 2249: /* frame_bound: a_expr FOLLOWING */
51587 : #line 16603 "gram.y"
51588 : {
51589 : WindowDef *n = makeNode(WindowDef);
51590 :
51591 : n->frameOptions = FRAMEOPTION_START_OFFSET_FOLLOWING;
51592 : n->startOffset = (yyvsp[-1].node);
51593 : n->endOffset = NULL;
51594 : (yyval.windef) = n;
51595 : }
51596 : #line 51597 "gram.c"
51597 1152 : break;
51598 :
51599 84 : case 2250: /* opt_window_exclusion_clause: EXCLUDE CURRENT_P ROW */
51600 : #line 16614 "gram.y"
51601 : { (yyval.ival) = FRAMEOPTION_EXCLUDE_CURRENT_ROW; }
51602 : #line 51603 "gram.c"
51603 84 : break;
51604 :
51605 96 : case 2251: /* opt_window_exclusion_clause: EXCLUDE GROUP_P */
51606 : #line 16615 "gram.y"
51607 : { (yyval.ival) = FRAMEOPTION_EXCLUDE_GROUP; }
51608 : #line 51609 "gram.c"
51609 96 : break;
51610 :
51611 150 : case 2252: /* opt_window_exclusion_clause: EXCLUDE TIES */
51612 : #line 16616 "gram.y"
51613 : { (yyval.ival) = FRAMEOPTION_EXCLUDE_TIES; }
51614 : #line 51615 "gram.c"
51615 150 : break;
51616 :
51617 18 : case 2253: /* opt_window_exclusion_clause: EXCLUDE NO OTHERS */
51618 : #line 16617 "gram.y"
51619 : { (yyval.ival) = 0; }
51620 : #line 51621 "gram.c"
51621 18 : break;
51622 :
51623 1276 : case 2254: /* opt_window_exclusion_clause: %empty */
51624 : #line 16618 "gram.y"
51625 : { (yyval.ival) = 0; }
51626 : #line 51627 "gram.c"
51627 1276 : break;
51628 :
51629 0 : case 2255: /* row: ROW '(' expr_list ')' */
51630 : #line 16632 "gram.y"
51631 : { (yyval.list) = (yyvsp[-1].list); }
51632 : #line 51633 "gram.c"
51633 0 : break;
51634 :
51635 0 : case 2256: /* row: ROW '(' ')' */
51636 : #line 16633 "gram.y"
51637 : { (yyval.list) = NIL; }
51638 : #line 51639 "gram.c"
51639 0 : break;
51640 :
51641 1896 : case 2257: /* row: '(' expr_list ',' a_expr ')' */
51642 : #line 16634 "gram.y"
51643 : { (yyval.list) = lappend((yyvsp[-3].list), (yyvsp[-1].node)); }
51644 : #line 51645 "gram.c"
51645 1896 : break;
51646 :
51647 3774 : case 2258: /* explicit_row: ROW '(' expr_list ')' */
51648 : #line 16637 "gram.y"
51649 : { (yyval.list) = (yyvsp[-1].list); }
51650 : #line 51651 "gram.c"
51651 3774 : break;
51652 :
51653 30 : case 2259: /* explicit_row: ROW '(' ')' */
51654 : #line 16638 "gram.y"
51655 : { (yyval.list) = NIL; }
51656 : #line 51657 "gram.c"
51657 30 : break;
51658 :
51659 2532 : case 2260: /* implicit_row: '(' expr_list ',' a_expr ')' */
51660 : #line 16641 "gram.y"
51661 : { (yyval.list) = lappend((yyvsp[-3].list), (yyvsp[-1].node)); }
51662 : #line 51663 "gram.c"
51663 2532 : break;
51664 :
51665 17214 : case 2261: /* sub_type: ANY */
51666 : #line 16644 "gram.y"
51667 : { (yyval.ival) = ANY_SUBLINK; }
51668 : #line 51669 "gram.c"
51669 17214 : break;
51670 :
51671 0 : case 2262: /* sub_type: SOME */
51672 : #line 16645 "gram.y"
51673 : { (yyval.ival) = ANY_SUBLINK; }
51674 : #line 51675 "gram.c"
51675 0 : break;
51676 :
51677 324 : case 2263: /* sub_type: ALL */
51678 : #line 16646 "gram.y"
51679 : { (yyval.ival) = ALL_SUBLINK; }
51680 : #line 51681 "gram.c"
51681 324 : break;
51682 :
51683 11130 : case 2264: /* all_Op: Op */
51684 : #line 16649 "gram.y"
51685 : { (yyval.str) = (yyvsp[0].str); }
51686 : #line 51687 "gram.c"
51687 11130 : break;
51688 :
51689 28378 : case 2265: /* all_Op: MathOp */
51690 : #line 16650 "gram.y"
51691 : { (yyval.str) = (yyvsp[0].str); }
51692 : #line 51693 "gram.c"
51693 28378 : break;
51694 :
51695 40 : case 2266: /* MathOp: '+' */
51696 : #line 16653 "gram.y"
51697 : { (yyval.str) = "+"; }
51698 : #line 51699 "gram.c"
51699 40 : break;
51700 :
51701 64 : case 2267: /* MathOp: '-' */
51702 : #line 16654 "gram.y"
51703 : { (yyval.str) = "-"; }
51704 : #line 51705 "gram.c"
51705 64 : break;
51706 :
51707 114 : case 2268: /* MathOp: '*' */
51708 : #line 16655 "gram.y"
51709 : { (yyval.str) = "*"; }
51710 : #line 51711 "gram.c"
51711 114 : break;
51712 :
51713 0 : case 2269: /* MathOp: '/' */
51714 : #line 16656 "gram.y"
51715 : { (yyval.str) = "/"; }
51716 : #line 51717 "gram.c"
51717 0 : break;
51718 :
51719 8 : case 2270: /* MathOp: '%' */
51720 : #line 16657 "gram.y"
51721 : { (yyval.str) = "%"; }
51722 : #line 51723 "gram.c"
51723 8 : break;
51724 :
51725 0 : case 2271: /* MathOp: '^' */
51726 : #line 16658 "gram.y"
51727 : { (yyval.str) = "^"; }
51728 : #line 51729 "gram.c"
51729 0 : break;
51730 :
51731 758 : case 2272: /* MathOp: '<' */
51732 : #line 16659 "gram.y"
51733 : { (yyval.str) = "<"; }
51734 : #line 51735 "gram.c"
51735 758 : break;
51736 :
51737 648 : case 2273: /* MathOp: '>' */
51738 : #line 16660 "gram.y"
51739 : { (yyval.str) = ">"; }
51740 : #line 51741 "gram.c"
51741 648 : break;
51742 :
51743 24790 : case 2274: /* MathOp: '=' */
51744 : #line 16661 "gram.y"
51745 : { (yyval.str) = "="; }
51746 : #line 51747 "gram.c"
51747 24790 : break;
51748 :
51749 618 : case 2275: /* MathOp: LESS_EQUALS */
51750 : #line 16662 "gram.y"
51751 : { (yyval.str) = "<="; }
51752 : #line 51753 "gram.c"
51753 618 : break;
51754 :
51755 610 : case 2276: /* MathOp: GREATER_EQUALS */
51756 : #line 16663 "gram.y"
51757 : { (yyval.str) = ">="; }
51758 : #line 51759 "gram.c"
51759 610 : break;
51760 :
51761 728 : case 2277: /* MathOp: NOT_EQUALS */
51762 : #line 16664 "gram.y"
51763 : { (yyval.str) = "<>"; }
51764 : #line 51765 "gram.c"
51765 728 : break;
51766 :
51767 43666 : case 2278: /* qual_Op: Op */
51768 : #line 16668 "gram.y"
51769 : { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
51770 : #line 51771 "gram.c"
51771 43666 : break;
51772 :
51773 15436 : case 2279: /* qual_Op: OPERATOR '(' any_operator ')' */
51774 : #line 16670 "gram.y"
51775 : { (yyval.list) = (yyvsp[-1].list); }
51776 : #line 51777 "gram.c"
51777 15436 : break;
51778 :
51779 1416 : case 2280: /* qual_all_Op: all_Op */
51780 : #line 16675 "gram.y"
51781 : { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
51782 : #line 51783 "gram.c"
51783 1416 : break;
51784 :
51785 44 : case 2281: /* qual_all_Op: OPERATOR '(' any_operator ')' */
51786 : #line 16677 "gram.y"
51787 : { (yyval.list) = (yyvsp[-1].list); }
51788 : #line 51789 "gram.c"
51789 44 : break;
51790 :
51791 17232 : case 2282: /* subquery_Op: all_Op */
51792 : #line 16682 "gram.y"
51793 : { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
51794 : #line 51795 "gram.c"
51795 17232 : break;
51796 :
51797 274 : case 2283: /* subquery_Op: OPERATOR '(' any_operator ')' */
51798 : #line 16684 "gram.y"
51799 : { (yyval.list) = (yyvsp[-1].list); }
51800 : #line 51801 "gram.c"
51801 274 : break;
51802 :
51803 24 : case 2284: /* subquery_Op: LIKE */
51804 : #line 16686 "gram.y"
51805 : { (yyval.list) = list_make1(makeString("~~")); }
51806 : #line 51807 "gram.c"
51807 24 : break;
51808 :
51809 12 : case 2285: /* subquery_Op: NOT_LA LIKE */
51810 : #line 16688 "gram.y"
51811 : { (yyval.list) = list_make1(makeString("!~~")); }
51812 : #line 51813 "gram.c"
51813 12 : break;
51814 :
51815 12 : case 2286: /* subquery_Op: ILIKE */
51816 : #line 16690 "gram.y"
51817 : { (yyval.list) = list_make1(makeString("~~*")); }
51818 : #line 51819 "gram.c"
51819 12 : break;
51820 :
51821 0 : case 2287: /* subquery_Op: NOT_LA ILIKE */
51822 : #line 16692 "gram.y"
51823 : { (yyval.list) = list_make1(makeString("!~~*")); }
51824 : #line 51825 "gram.c"
51825 0 : break;
51826 :
51827 170984 : case 2288: /* expr_list: a_expr */
51828 : #line 16704 "gram.y"
51829 : {
51830 : (yyval.list) = list_make1((yyvsp[0].node));
51831 : }
51832 : #line 51833 "gram.c"
51833 170984 : break;
51834 :
51835 151634 : case 2289: /* expr_list: expr_list ',' a_expr */
51836 : #line 16708 "gram.y"
51837 : {
51838 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node));
51839 : }
51840 : #line 51841 "gram.c"
51841 151634 : break;
51842 :
51843 324996 : case 2290: /* func_arg_list: func_arg_expr */
51844 : #line 16715 "gram.y"
51845 : {
51846 : (yyval.list) = list_make1((yyvsp[0].node));
51847 : }
51848 : #line 51849 "gram.c"
51849 324996 : break;
51850 :
51851 332756 : case 2291: /* func_arg_list: func_arg_list ',' func_arg_expr */
51852 : #line 16719 "gram.y"
51853 : {
51854 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node));
51855 : }
51856 : #line 51857 "gram.c"
51857 332756 : break;
51858 :
51859 611092 : case 2292: /* func_arg_expr: a_expr */
51860 : #line 16725 "gram.y"
51861 : {
51862 : (yyval.node) = (yyvsp[0].node);
51863 : }
51864 : #line 51865 "gram.c"
51865 611092 : break;
51866 :
51867 45782 : case 2293: /* func_arg_expr: param_name COLON_EQUALS a_expr */
51868 : #line 16729 "gram.y"
51869 : {
51870 : NamedArgExpr *na = makeNode(NamedArgExpr);
51871 :
51872 : na->name = (yyvsp[-2].str);
51873 : na->arg = (Expr *) (yyvsp[0].node);
51874 : na->argnumber = -1; /* until determined */
51875 : na->location = (yylsp[-2]);
51876 : (yyval.node) = (Node *) na;
51877 : }
51878 : #line 51879 "gram.c"
51879 45782 : break;
51880 :
51881 1612 : case 2294: /* func_arg_expr: param_name EQUALS_GREATER a_expr */
51882 : #line 16739 "gram.y"
51883 : {
51884 : NamedArgExpr *na = makeNode(NamedArgExpr);
51885 :
51886 : na->name = (yyvsp[-2].str);
51887 : na->arg = (Expr *) (yyvsp[0].node);
51888 : na->argnumber = -1; /* until determined */
51889 : na->location = (yylsp[-2]);
51890 : (yyval.node) = (Node *) na;
51891 : }
51892 : #line 51893 "gram.c"
51893 1612 : break;
51894 :
51895 206 : case 2295: /* func_arg_list_opt: func_arg_list */
51896 : #line 16750 "gram.y"
51897 : { (yyval.list) = (yyvsp[0].list); }
51898 : #line 51899 "gram.c"
51899 206 : break;
51900 :
51901 0 : case 2296: /* func_arg_list_opt: %empty */
51902 : #line 16751 "gram.y"
51903 : { (yyval.list) = NIL; }
51904 : #line 51905 "gram.c"
51905 0 : break;
51906 :
51907 2358 : case 2297: /* type_list: Typename */
51908 : #line 16754 "gram.y"
51909 : { (yyval.list) = list_make1((yyvsp[0].typnam)); }
51910 : #line 51911 "gram.c"
51911 2358 : break;
51912 :
51913 756 : case 2298: /* type_list: type_list ',' Typename */
51914 : #line 16755 "gram.y"
51915 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].typnam)); }
51916 : #line 51917 "gram.c"
51917 756 : break;
51918 :
51919 7652 : case 2299: /* array_expr: '[' expr_list ']' */
51920 : #line 16759 "gram.y"
51921 : {
51922 : (yyval.node) = makeAArrayExpr((yyvsp[-1].list), (yylsp[-2]));
51923 : }
51924 : #line 51925 "gram.c"
51925 7652 : break;
51926 :
51927 412 : case 2300: /* array_expr: '[' array_expr_list ']' */
51928 : #line 16763 "gram.y"
51929 : {
51930 : (yyval.node) = makeAArrayExpr((yyvsp[-1].list), (yylsp[-2]));
51931 : }
51932 : #line 51933 "gram.c"
51933 412 : break;
51934 :
51935 88 : case 2301: /* array_expr: '[' ']' */
51936 : #line 16767 "gram.y"
51937 : {
51938 : (yyval.node) = makeAArrayExpr(NIL, (yylsp[-1]));
51939 : }
51940 : #line 51941 "gram.c"
51941 88 : break;
51942 :
51943 412 : case 2302: /* array_expr_list: array_expr */
51944 : #line 16772 "gram.y"
51945 : { (yyval.list) = list_make1((yyvsp[0].node)); }
51946 : #line 51947 "gram.c"
51947 412 : break;
51948 :
51949 342 : case 2303: /* array_expr_list: array_expr_list ',' array_expr */
51950 : #line 16773 "gram.y"
51951 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
51952 : #line 51953 "gram.c"
51953 342 : break;
51954 :
51955 1374 : case 2304: /* extract_list: extract_arg FROM a_expr */
51956 : #line 16779 "gram.y"
51957 : {
51958 : (yyval.list) = list_make2(makeStringConst((yyvsp[-2].str), (yylsp[-2])), (yyvsp[0].node));
51959 : }
51960 : #line 51961 "gram.c"
51961 1374 : break;
51962 :
51963 1116 : case 2305: /* extract_arg: IDENT */
51964 : #line 16788 "gram.y"
51965 : { (yyval.str) = (yyvsp[0].str); }
51966 : #line 51967 "gram.c"
51967 1116 : break;
51968 :
51969 72 : case 2306: /* extract_arg: YEAR_P */
51970 : #line 16789 "gram.y"
51971 : { (yyval.str) = "year"; }
51972 : #line 51973 "gram.c"
51973 72 : break;
51974 :
51975 42 : case 2307: /* extract_arg: MONTH_P */
51976 : #line 16790 "gram.y"
51977 : { (yyval.str) = "month"; }
51978 : #line 51979 "gram.c"
51979 42 : break;
51980 :
51981 54 : case 2308: /* extract_arg: DAY_P */
51982 : #line 16791 "gram.y"
51983 : { (yyval.str) = "day"; }
51984 : #line 51985 "gram.c"
51985 54 : break;
51986 :
51987 30 : case 2309: /* extract_arg: HOUR_P */
51988 : #line 16792 "gram.y"
51989 : { (yyval.str) = "hour"; }
51990 : #line 51991 "gram.c"
51991 30 : break;
51992 :
51993 30 : case 2310: /* extract_arg: MINUTE_P */
51994 : #line 16793 "gram.y"
51995 : { (yyval.str) = "minute"; }
51996 : #line 51997 "gram.c"
51997 30 : break;
51998 :
51999 30 : case 2311: /* extract_arg: SECOND_P */
52000 : #line 16794 "gram.y"
52001 : { (yyval.str) = "second"; }
52002 : #line 52003 "gram.c"
52003 30 : break;
52004 :
52005 0 : case 2312: /* extract_arg: Sconst */
52006 : #line 16795 "gram.y"
52007 : { (yyval.str) = (yyvsp[0].str); }
52008 : #line 52009 "gram.c"
52009 0 : break;
52010 :
52011 24 : case 2313: /* unicode_normal_form: NFC */
52012 : #line 16799 "gram.y"
52013 : { (yyval.str) = "NFC"; }
52014 : #line 52015 "gram.c"
52015 24 : break;
52016 :
52017 18 : case 2314: /* unicode_normal_form: NFD */
52018 : #line 16800 "gram.y"
52019 : { (yyval.str) = "NFD"; }
52020 : #line 52021 "gram.c"
52021 18 : break;
52022 :
52023 18 : case 2315: /* unicode_normal_form: NFKC */
52024 : #line 16801 "gram.y"
52025 : { (yyval.str) = "NFKC"; }
52026 : #line 52027 "gram.c"
52027 18 : break;
52028 :
52029 18 : case 2316: /* unicode_normal_form: NFKD */
52030 : #line 16802 "gram.y"
52031 : { (yyval.str) = "NFKD"; }
52032 : #line 52033 "gram.c"
52033 18 : break;
52034 :
52035 34 : case 2317: /* overlay_list: a_expr PLACING a_expr FROM a_expr FOR a_expr */
52036 : #line 16808 "gram.y"
52037 : {
52038 : /* overlay(A PLACING B FROM C FOR D) is converted to overlay(A, B, C, D) */
52039 : (yyval.list) = list_make4((yyvsp[-6].node), (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node));
52040 : }
52041 : #line 52042 "gram.c"
52042 34 : break;
52043 :
52044 48 : case 2318: /* overlay_list: a_expr PLACING a_expr FROM a_expr */
52045 : #line 16813 "gram.y"
52046 : {
52047 : /* overlay(A PLACING B FROM C) is converted to overlay(A, B, C) */
52048 : (yyval.list) = list_make3((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node));
52049 : }
52050 : #line 52051 "gram.c"
52051 48 : break;
52052 :
52053 398 : case 2319: /* position_list: b_expr IN_P b_expr */
52054 : #line 16821 "gram.y"
52055 : { (yyval.list) = list_make2((yyvsp[0].node), (yyvsp[-2].node)); }
52056 : #line 52057 "gram.c"
52057 398 : break;
52058 :
52059 122 : case 2320: /* substr_list: a_expr FROM a_expr FOR a_expr */
52060 : #line 16843 "gram.y"
52061 : {
52062 : (yyval.list) = list_make3((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node));
52063 : }
52064 : #line 52065 "gram.c"
52065 122 : break;
52066 :
52067 0 : case 2321: /* substr_list: a_expr FOR a_expr FROM a_expr */
52068 : #line 16847 "gram.y"
52069 : {
52070 : /* not legal per SQL, but might as well allow it */
52071 : (yyval.list) = list_make3((yyvsp[-4].node), (yyvsp[0].node), (yyvsp[-2].node));
52072 : }
52073 : #line 52074 "gram.c"
52074 0 : break;
52075 :
52076 364 : case 2322: /* substr_list: a_expr FROM a_expr */
52077 : #line 16852 "gram.y"
52078 : {
52079 : /*
52080 : * Because we aren't restricting data types here, this
52081 : * syntax can end up resolving to textregexsubstr().
52082 : * We've historically allowed that to happen, so continue
52083 : * to accept it. However, ruleutils.c will reverse-list
52084 : * such a call in regular function call syntax.
52085 : */
52086 : (yyval.list) = list_make2((yyvsp[-2].node), (yyvsp[0].node));
52087 : }
52088 : #line 52089 "gram.c"
52089 364 : break;
52090 :
52091 36 : case 2323: /* substr_list: a_expr FOR a_expr */
52092 : #line 16863 "gram.y"
52093 : {
52094 : /* not legal per SQL */
52095 :
52096 : /*
52097 : * Since there are no cases where this syntax allows
52098 : * a textual FOR value, we forcibly cast the argument
52099 : * to int4. The possible matches in pg_proc are
52100 : * substring(text,int4) and substring(text,text),
52101 : * and we don't want the parser to choose the latter,
52102 : * which it is likely to do if the second argument
52103 : * is unknown or doesn't have an implicit cast to int4.
52104 : */
52105 : (yyval.list) = list_make3((yyvsp[-2].node), makeIntConst(1, -1),
52106 : makeTypeCast((yyvsp[0].node),
52107 : SystemTypeName("int4"), -1));
52108 : }
52109 : #line 52110 "gram.c"
52110 36 : break;
52111 :
52112 180 : case 2324: /* substr_list: a_expr SIMILAR a_expr ESCAPE a_expr */
52113 : #line 16880 "gram.y"
52114 : {
52115 : (yyval.list) = list_make3((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node));
52116 : }
52117 : #line 52118 "gram.c"
52118 180 : break;
52119 :
52120 596 : case 2325: /* trim_list: a_expr FROM expr_list */
52121 : #line 16885 "gram.y"
52122 : { (yyval.list) = lappend((yyvsp[0].list), (yyvsp[-2].node)); }
52123 : #line 52124 "gram.c"
52124 596 : break;
52125 :
52126 24 : case 2326: /* trim_list: FROM expr_list */
52127 : #line 16886 "gram.y"
52128 : { (yyval.list) = (yyvsp[0].list); }
52129 : #line 52130 "gram.c"
52130 24 : break;
52131 :
52132 86 : case 2327: /* trim_list: expr_list */
52133 : #line 16887 "gram.y"
52134 : { (yyval.list) = (yyvsp[0].list); }
52135 : #line 52136 "gram.c"
52136 86 : break;
52137 :
52138 5514 : case 2328: /* in_expr: select_with_parens */
52139 : #line 16891 "gram.y"
52140 : {
52141 : SubLink *n = makeNode(SubLink);
52142 :
52143 : n->subselect = (yyvsp[0].node);
52144 : /* other fields will be filled later */
52145 : (yyval.node) = (Node *) n;
52146 : }
52147 : #line 52148 "gram.c"
52148 5514 : break;
52149 :
52150 21632 : case 2329: /* in_expr: '(' expr_list ')' */
52151 : #line 16898 "gram.y"
52152 : { (yyval.node) = (Node *) (yyvsp[-1].list); }
52153 : #line 52154 "gram.c"
52154 21632 : break;
52155 :
52156 39560 : case 2330: /* case_expr: CASE case_arg when_clause_list case_default END_P */
52157 : #line 16909 "gram.y"
52158 : {
52159 : CaseExpr *c = makeNode(CaseExpr);
52160 :
52161 : c->casetype = InvalidOid; /* not analyzed yet */
52162 : c->arg = (Expr *) (yyvsp[-3].node);
52163 : c->args = (yyvsp[-2].list);
52164 : c->defresult = (Expr *) (yyvsp[-1].node);
52165 : c->location = (yylsp[-4]);
52166 : (yyval.node) = (Node *) c;
52167 : }
52168 : #line 52169 "gram.c"
52169 39560 : break;
52170 :
52171 39560 : case 2331: /* when_clause_list: when_clause */
52172 : #line 16923 "gram.y"
52173 : { (yyval.list) = list_make1((yyvsp[0].node)); }
52174 : #line 52175 "gram.c"
52175 39560 : break;
52176 :
52177 28722 : case 2332: /* when_clause_list: when_clause_list when_clause */
52178 : #line 16924 "gram.y"
52179 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); }
52180 : #line 52181 "gram.c"
52181 28722 : break;
52182 :
52183 68282 : case 2333: /* when_clause: WHEN a_expr THEN a_expr */
52184 : #line 16929 "gram.y"
52185 : {
52186 : CaseWhen *w = makeNode(CaseWhen);
52187 :
52188 : w->expr = (Expr *) (yyvsp[-2].node);
52189 : w->result = (Expr *) (yyvsp[0].node);
52190 : w->location = (yylsp[-3]);
52191 : (yyval.node) = (Node *) w;
52192 : }
52193 : #line 52194 "gram.c"
52194 68282 : break;
52195 :
52196 30060 : case 2334: /* case_default: ELSE a_expr */
52197 : #line 16940 "gram.y"
52198 : { (yyval.node) = (yyvsp[0].node); }
52199 : #line 52200 "gram.c"
52200 30060 : break;
52201 :
52202 9500 : case 2335: /* case_default: %empty */
52203 : #line 16941 "gram.y"
52204 : { (yyval.node) = NULL; }
52205 : #line 52206 "gram.c"
52206 9500 : break;
52207 :
52208 6610 : case 2336: /* case_arg: a_expr */
52209 : #line 16944 "gram.y"
52210 : { (yyval.node) = (yyvsp[0].node); }
52211 : #line 52212 "gram.c"
52212 6610 : break;
52213 :
52214 32950 : case 2337: /* case_arg: %empty */
52215 : #line 16945 "gram.y"
52216 : { (yyval.node) = NULL; }
52217 : #line 52218 "gram.c"
52218 32950 : break;
52219 :
52220 776066 : case 2338: /* columnref: ColId */
52221 : #line 16949 "gram.y"
52222 : {
52223 : (yyval.node) = makeColumnRef((yyvsp[0].str), NIL, (yylsp[0]), yyscanner);
52224 : }
52225 : #line 52226 "gram.c"
52226 776066 : break;
52227 :
52228 1085844 : case 2339: /* columnref: ColId indirection */
52229 : #line 16953 "gram.y"
52230 : {
52231 : (yyval.node) = makeColumnRef((yyvsp[-1].str), (yyvsp[0].list), (yylsp[-1]), yyscanner);
52232 : }
52233 : #line 52234 "gram.c"
52234 1085844 : break;
52235 :
52236 1488436 : case 2340: /* indirection_el: '.' attr_name */
52237 : #line 16960 "gram.y"
52238 : {
52239 : (yyval.node) = (Node *) makeString((yyvsp[0].str));
52240 : }
52241 : #line 52242 "gram.c"
52242 1488436 : break;
52243 :
52244 6884 : case 2341: /* indirection_el: '.' '*' */
52245 : #line 16964 "gram.y"
52246 : {
52247 : (yyval.node) = (Node *) makeNode(A_Star);
52248 : }
52249 : #line 52250 "gram.c"
52250 6884 : break;
52251 :
52252 13050 : case 2342: /* indirection_el: '[' a_expr ']' */
52253 : #line 16968 "gram.y"
52254 : {
52255 : A_Indices *ai = makeNode(A_Indices);
52256 :
52257 : ai->is_slice = false;
52258 : ai->lidx = NULL;
52259 : ai->uidx = (yyvsp[-1].node);
52260 : (yyval.node) = (Node *) ai;
52261 : }
52262 : #line 52263 "gram.c"
52263 13050 : break;
52264 :
52265 588 : case 2343: /* indirection_el: '[' opt_slice_bound ':' opt_slice_bound ']' */
52266 : #line 16977 "gram.y"
52267 : {
52268 : A_Indices *ai = makeNode(A_Indices);
52269 :
52270 : ai->is_slice = true;
52271 : ai->lidx = (yyvsp[-3].node);
52272 : ai->uidx = (yyvsp[-1].node);
52273 : (yyval.node) = (Node *) ai;
52274 : }
52275 : #line 52276 "gram.c"
52276 588 : break;
52277 :
52278 996 : case 2344: /* opt_slice_bound: a_expr */
52279 : #line 16988 "gram.y"
52280 : { (yyval.node) = (yyvsp[0].node); }
52281 : #line 52282 "gram.c"
52282 996 : break;
52283 :
52284 180 : case 2345: /* opt_slice_bound: %empty */
52285 : #line 16989 "gram.y"
52286 : { (yyval.node) = NULL; }
52287 : #line 52288 "gram.c"
52288 180 : break;
52289 :
52290 1488804 : case 2346: /* indirection: indirection_el */
52291 : #line 16993 "gram.y"
52292 : { (yyval.list) = list_make1((yyvsp[0].node)); }
52293 : #line 52294 "gram.c"
52294 1488804 : break;
52295 :
52296 3082 : case 2347: /* indirection: indirection indirection_el */
52297 : #line 16994 "gram.y"
52298 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); }
52299 : #line 52300 "gram.c"
52300 3082 : break;
52301 :
52302 196950 : case 2348: /* opt_indirection: %empty */
52303 : #line 16998 "gram.y"
52304 : { (yyval.list) = NIL; }
52305 : #line 52306 "gram.c"
52306 196950 : break;
52307 :
52308 17072 : case 2349: /* opt_indirection: opt_indirection indirection_el */
52309 : #line 16999 "gram.y"
52310 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); }
52311 : #line 52312 "gram.c"
52312 17072 : break;
52313 :
52314 336 : case 2352: /* json_passing_clause_opt: PASSING json_arguments */
52315 : #line 17008 "gram.y"
52316 : { (yyval.list) = (yyvsp[0].list); }
52317 : #line 52318 "gram.c"
52318 336 : break;
52319 :
52320 1934 : case 2353: /* json_passing_clause_opt: %empty */
52321 : #line 17009 "gram.y"
52322 : { (yyval.list) = NIL; }
52323 : #line 52324 "gram.c"
52324 1934 : break;
52325 :
52326 336 : case 2354: /* json_arguments: json_argument */
52327 : #line 17013 "gram.y"
52328 : { (yyval.list) = list_make1((yyvsp[0].node)); }
52329 : #line 52330 "gram.c"
52330 336 : break;
52331 :
52332 126 : case 2355: /* json_arguments: json_arguments ',' json_argument */
52333 : #line 17014 "gram.y"
52334 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
52335 : #line 52336 "gram.c"
52336 126 : break;
52337 :
52338 462 : case 2356: /* json_argument: json_value_expr AS ColLabel */
52339 : #line 17019 "gram.y"
52340 : {
52341 : JsonArgument *n = makeNode(JsonArgument);
52342 :
52343 : n->val = (JsonValueExpr *) (yyvsp[-2].node);
52344 : n->name = (yyvsp[0].str);
52345 : (yyval.node) = (Node *) n;
52346 : }
52347 : #line 52348 "gram.c"
52348 462 : break;
52349 :
52350 42 : case 2357: /* json_wrapper_behavior: WITHOUT WRAPPER */
52351 : #line 17030 "gram.y"
52352 : { (yyval.ival) = JSW_NONE; }
52353 : #line 52354 "gram.c"
52354 42 : break;
52355 :
52356 0 : case 2358: /* json_wrapper_behavior: WITHOUT ARRAY WRAPPER */
52357 : #line 17031 "gram.y"
52358 : { (yyval.ival) = JSW_NONE; }
52359 : #line 52360 "gram.c"
52360 0 : break;
52361 :
52362 78 : case 2359: /* json_wrapper_behavior: WITH WRAPPER */
52363 : #line 17032 "gram.y"
52364 : { (yyval.ival) = JSW_UNCONDITIONAL; }
52365 : #line 52366 "gram.c"
52366 78 : break;
52367 :
52368 12 : case 2360: /* json_wrapper_behavior: WITH ARRAY WRAPPER */
52369 : #line 17033 "gram.y"
52370 : { (yyval.ival) = JSW_UNCONDITIONAL; }
52371 : #line 52372 "gram.c"
52372 12 : break;
52373 :
52374 0 : case 2361: /* json_wrapper_behavior: WITH CONDITIONAL ARRAY WRAPPER */
52375 : #line 17034 "gram.y"
52376 : { (yyval.ival) = JSW_CONDITIONAL; }
52377 : #line 52378 "gram.c"
52378 0 : break;
52379 :
52380 12 : case 2362: /* json_wrapper_behavior: WITH UNCONDITIONAL ARRAY WRAPPER */
52381 : #line 17035 "gram.y"
52382 : { (yyval.ival) = JSW_UNCONDITIONAL; }
52383 : #line 52384 "gram.c"
52384 12 : break;
52385 :
52386 36 : case 2363: /* json_wrapper_behavior: WITH CONDITIONAL WRAPPER */
52387 : #line 17036 "gram.y"
52388 : { (yyval.ival) = JSW_CONDITIONAL; }
52389 : #line 52390 "gram.c"
52390 36 : break;
52391 :
52392 6 : case 2364: /* json_wrapper_behavior: WITH UNCONDITIONAL WRAPPER */
52393 : #line 17037 "gram.y"
52394 : { (yyval.ival) = JSW_UNCONDITIONAL; }
52395 : #line 52396 "gram.c"
52396 6 : break;
52397 :
52398 1634 : case 2365: /* json_wrapper_behavior: %empty */
52399 : #line 17038 "gram.y"
52400 : { (yyval.ival) = JSW_UNSPEC; }
52401 : #line 52402 "gram.c"
52402 1634 : break;
52403 :
52404 384 : case 2366: /* json_behavior: DEFAULT a_expr */
52405 : #line 17043 "gram.y"
52406 : { (yyval.node) = (Node *) makeJsonBehavior(JSON_BEHAVIOR_DEFAULT, (yyvsp[0].node), (yylsp[-1])); }
52407 : #line 52408 "gram.c"
52408 384 : break;
52409 :
52410 702 : case 2367: /* json_behavior: json_behavior_type */
52411 : #line 17045 "gram.y"
52412 : { (yyval.node) = (Node *) makeJsonBehavior((yyvsp[0].ival), NULL, (yylsp[0])); }
52413 : #line 52414 "gram.c"
52414 702 : break;
52415 :
52416 492 : case 2368: /* json_behavior_type: ERROR_P */
52417 : #line 17049 "gram.y"
52418 : { (yyval.ival) = JSON_BEHAVIOR_ERROR; }
52419 : #line 52420 "gram.c"
52420 492 : break;
52421 :
52422 30 : case 2369: /* json_behavior_type: NULL_P */
52423 : #line 17050 "gram.y"
52424 : { (yyval.ival) = JSON_BEHAVIOR_NULL; }
52425 : #line 52426 "gram.c"
52426 30 : break;
52427 :
52428 30 : case 2370: /* json_behavior_type: TRUE_P */
52429 : #line 17051 "gram.y"
52430 : { (yyval.ival) = JSON_BEHAVIOR_TRUE; }
52431 : #line 52432 "gram.c"
52432 30 : break;
52433 :
52434 12 : case 2371: /* json_behavior_type: FALSE_P */
52435 : #line 17052 "gram.y"
52436 : { (yyval.ival) = JSON_BEHAVIOR_FALSE; }
52437 : #line 52438 "gram.c"
52438 12 : break;
52439 :
52440 12 : case 2372: /* json_behavior_type: UNKNOWN */
52441 : #line 17053 "gram.y"
52442 : { (yyval.ival) = JSON_BEHAVIOR_UNKNOWN; }
52443 : #line 52444 "gram.c"
52444 12 : break;
52445 :
52446 30 : case 2373: /* json_behavior_type: EMPTY_P ARRAY */
52447 : #line 17054 "gram.y"
52448 : { (yyval.ival) = JSON_BEHAVIOR_EMPTY_ARRAY; }
52449 : #line 52450 "gram.c"
52450 30 : break;
52451 :
52452 72 : case 2374: /* json_behavior_type: EMPTY_P OBJECT_P */
52453 : #line 17055 "gram.y"
52454 : { (yyval.ival) = JSON_BEHAVIOR_EMPTY_OBJECT; }
52455 : #line 52456 "gram.c"
52456 72 : break;
52457 :
52458 24 : case 2375: /* json_behavior_type: EMPTY_P */
52459 : #line 17057 "gram.y"
52460 : { (yyval.ival) = JSON_BEHAVIOR_EMPTY_ARRAY; }
52461 : #line 52462 "gram.c"
52462 24 : break;
52463 :
52464 174 : case 2376: /* json_behavior_clause_opt: json_behavior ON EMPTY_P */
52465 : #line 17062 "gram.y"
52466 : { (yyval.list) = list_make2((yyvsp[-2].node), NULL); }
52467 : #line 52468 "gram.c"
52468 174 : break;
52469 :
52470 552 : case 2377: /* json_behavior_clause_opt: json_behavior ON ERROR_P */
52471 : #line 17064 "gram.y"
52472 : { (yyval.list) = list_make2(NULL, (yyvsp[-2].node)); }
52473 : #line 52474 "gram.c"
52474 552 : break;
52475 :
52476 102 : case 2378: /* json_behavior_clause_opt: json_behavior ON EMPTY_P json_behavior ON ERROR_P */
52477 : #line 17066 "gram.y"
52478 : { (yyval.list) = list_make2((yyvsp[-5].node), (yyvsp[-2].node)); }
52479 : #line 52480 "gram.c"
52480 102 : break;
52481 :
52482 1568 : case 2379: /* json_behavior_clause_opt: %empty */
52483 : #line 17068 "gram.y"
52484 : { (yyval.list) = list_make2(NULL, NULL); }
52485 : #line 52486 "gram.c"
52486 1568 : break;
52487 :
52488 150 : case 2380: /* json_on_error_clause_opt: json_behavior ON ERROR_P */
52489 : #line 17073 "gram.y"
52490 : { (yyval.node) = (yyvsp[-2].node); }
52491 : #line 52492 "gram.c"
52492 150 : break;
52493 :
52494 686 : case 2381: /* json_on_error_clause_opt: %empty */
52495 : #line 17075 "gram.y"
52496 : { (yyval.node) = NULL; }
52497 : #line 52498 "gram.c"
52498 686 : break;
52499 :
52500 4202 : case 2382: /* json_value_expr: a_expr json_format_clause_opt */
52501 : #line 17080 "gram.y"
52502 : {
52503 : /* formatted_expr will be set during parse-analysis. */
52504 : (yyval.node) = (Node *) makeJsonValueExpr((Expr *) (yyvsp[-1].node), NULL,
52505 : castNode(JsonFormat, (yyvsp[0].node)));
52506 : }
52507 : #line 52508 "gram.c"
52508 4202 : break;
52509 :
52510 100 : case 2383: /* json_format_clause: FORMAT_LA JSON ENCODING name */
52511 : #line 17089 "gram.y"
52512 : {
52513 : int encoding;
52514 :
52515 : if (!pg_strcasecmp((yyvsp[0].str), "utf8"))
52516 : encoding = JS_ENC_UTF8;
52517 : else if (!pg_strcasecmp((yyvsp[0].str), "utf16"))
52518 : encoding = JS_ENC_UTF16;
52519 : else if (!pg_strcasecmp((yyvsp[0].str), "utf32"))
52520 : encoding = JS_ENC_UTF32;
52521 : else
52522 : ereport(ERROR,
52523 : (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
52524 : errmsg("unrecognized JSON encoding: %s", (yyvsp[0].str)),
52525 : parser_errposition((yylsp[0]))));
52526 :
52527 : (yyval.node) = (Node *) makeJsonFormat(JS_FORMAT_JSON, encoding, (yylsp[-3]));
52528 : }
52529 : #line 52530 "gram.c"
52530 88 : break;
52531 :
52532 412 : case 2384: /* json_format_clause: FORMAT_LA JSON */
52533 : #line 17107 "gram.y"
52534 : {
52535 : (yyval.node) = (Node *) makeJsonFormat(JS_FORMAT_JSON, JS_ENC_DEFAULT, (yylsp[-1]));
52536 : }
52537 : #line 52538 "gram.c"
52538 412 : break;
52539 :
52540 392 : case 2385: /* json_format_clause_opt: json_format_clause */
52541 : #line 17114 "gram.y"
52542 : {
52543 : (yyval.node) = (yyvsp[0].node);
52544 : }
52545 : #line 52546 "gram.c"
52546 392 : break;
52547 :
52548 5314 : case 2386: /* json_format_clause_opt: %empty */
52549 : #line 17118 "gram.y"
52550 : {
52551 : (yyval.node) = (Node *) makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1);
52552 : }
52553 : #line 52554 "gram.c"
52554 5314 : break;
52555 :
52556 12 : case 2387: /* json_quotes_clause_opt: KEEP QUOTES ON SCALAR STRING_P */
52557 : #line 17124 "gram.y"
52558 : { (yyval.ival) = JS_QUOTES_KEEP; }
52559 : #line 52560 "gram.c"
52560 12 : break;
52561 :
52562 90 : case 2388: /* json_quotes_clause_opt: KEEP QUOTES */
52563 : #line 17125 "gram.y"
52564 : { (yyval.ival) = JS_QUOTES_KEEP; }
52565 : #line 52566 "gram.c"
52566 90 : break;
52567 :
52568 12 : case 2389: /* json_quotes_clause_opt: OMIT QUOTES ON SCALAR STRING_P */
52569 : #line 17126 "gram.y"
52570 : { (yyval.ival) = JS_QUOTES_OMIT; }
52571 : #line 52572 "gram.c"
52572 12 : break;
52573 :
52574 168 : case 2390: /* json_quotes_clause_opt: OMIT QUOTES */
52575 : #line 17127 "gram.y"
52576 : { (yyval.ival) = JS_QUOTES_OMIT; }
52577 : #line 52578 "gram.c"
52578 168 : break;
52579 :
52580 1538 : case 2391: /* json_quotes_clause_opt: %empty */
52581 : #line 17128 "gram.y"
52582 : { (yyval.ival) = JS_QUOTES_UNSPEC; }
52583 : #line 52584 "gram.c"
52584 1538 : break;
52585 :
52586 1444 : case 2392: /* json_returning_clause_opt: RETURNING Typename json_format_clause_opt */
52587 : #line 17133 "gram.y"
52588 : {
52589 : JsonOutput *n = makeNode(JsonOutput);
52590 :
52591 : n->typeName = (yyvsp[-1].typnam);
52592 : n->returning = makeNode(JsonReturning);
52593 : n->returning->format = (JsonFormat *) (yyvsp[0].node);
52594 : (yyval.node) = (Node *) n;
52595 : }
52596 : #line 52597 "gram.c"
52597 1444 : break;
52598 :
52599 1278 : case 2393: /* json_returning_clause_opt: %empty */
52600 : #line 17141 "gram.y"
52601 : { (yyval.node) = NULL; }
52602 : #line 52603 "gram.c"
52603 1278 : break;
52604 :
52605 202 : case 2394: /* json_predicate_type_constraint: JSON */
52606 : #line 17155 "gram.y"
52607 : { (yyval.ival) = JS_TYPE_ANY; }
52608 : #line 52609 "gram.c"
52609 202 : break;
52610 :
52611 28 : case 2395: /* json_predicate_type_constraint: JSON VALUE_P */
52612 : #line 17156 "gram.y"
52613 : { (yyval.ival) = JS_TYPE_ANY; }
52614 : #line 52615 "gram.c"
52615 28 : break;
52616 :
52617 40 : case 2396: /* json_predicate_type_constraint: JSON ARRAY */
52618 : #line 17157 "gram.y"
52619 : { (yyval.ival) = JS_TYPE_ARRAY; }
52620 : #line 52621 "gram.c"
52621 40 : break;
52622 :
52623 40 : case 2397: /* json_predicate_type_constraint: JSON OBJECT_P */
52624 : #line 17158 "gram.y"
52625 : { (yyval.ival) = JS_TYPE_OBJECT; }
52626 : #line 52627 "gram.c"
52627 40 : break;
52628 :
52629 40 : case 2398: /* json_predicate_type_constraint: JSON SCALAR */
52630 : #line 17159 "gram.y"
52631 : { (yyval.ival) = JS_TYPE_SCALAR; }
52632 : #line 52633 "gram.c"
52633 40 : break;
52634 :
52635 108 : case 2399: /* json_key_uniqueness_constraint_opt: WITH UNIQUE KEYS */
52636 : #line 17168 "gram.y"
52637 : { (yyval.boolean) = true; }
52638 : #line 52639 "gram.c"
52639 108 : break;
52640 :
52641 100 : case 2400: /* json_key_uniqueness_constraint_opt: WITH UNIQUE */
52642 : #line 17169 "gram.y"
52643 : { (yyval.boolean) = true; }
52644 : #line 52645 "gram.c"
52645 100 : break;
52646 :
52647 44 : case 2401: /* json_key_uniqueness_constraint_opt: WITHOUT UNIQUE KEYS */
52648 : #line 17170 "gram.y"
52649 : { (yyval.boolean) = false; }
52650 : #line 52651 "gram.c"
52651 44 : break;
52652 :
52653 16 : case 2402: /* json_key_uniqueness_constraint_opt: WITHOUT UNIQUE */
52654 : #line 17171 "gram.y"
52655 : { (yyval.boolean) = false; }
52656 : #line 52657 "gram.c"
52657 16 : break;
52658 :
52659 798 : case 2403: /* json_key_uniqueness_constraint_opt: %empty */
52660 : #line 17172 "gram.y"
52661 : { (yyval.boolean) = false; }
52662 : #line 52663 "gram.c"
52663 798 : break;
52664 :
52665 348 : case 2404: /* json_name_and_value_list: json_name_and_value */
52666 : #line 17177 "gram.y"
52667 : { (yyval.list) = list_make1((yyvsp[0].node)); }
52668 : #line 52669 "gram.c"
52669 348 : break;
52670 :
52671 256 : case 2405: /* json_name_and_value_list: json_name_and_value_list ',' json_name_and_value */
52672 : #line 17179 "gram.y"
52673 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
52674 : #line 52675 "gram.c"
52675 256 : break;
52676 :
52677 24 : case 2406: /* json_name_and_value: c_expr VALUE_P json_value_expr */
52678 : #line 17189 "gram.y"
52679 : { (yyval.node) = makeJsonKeyValue((yyvsp[-2].node), (yyvsp[0].node)); }
52680 : #line 52681 "gram.c"
52681 24 : break;
52682 :
52683 784 : case 2407: /* json_name_and_value: a_expr ':' json_value_expr */
52684 : #line 17192 "gram.y"
52685 : { (yyval.node) = makeJsonKeyValue((yyvsp[-2].node), (yyvsp[0].node)); }
52686 : #line 52687 "gram.c"
52687 784 : break;
52688 :
52689 30 : case 2408: /* json_object_constructor_null_clause_opt: NULL_P ON NULL_P */
52690 : #line 17197 "gram.y"
52691 : { (yyval.boolean) = false; }
52692 : #line 52693 "gram.c"
52693 30 : break;
52694 :
52695 110 : case 2409: /* json_object_constructor_null_clause_opt: ABSENT ON NULL_P */
52696 : #line 17198 "gram.y"
52697 : { (yyval.boolean) = true; }
52698 : #line 52699 "gram.c"
52699 110 : break;
52700 :
52701 412 : case 2410: /* json_object_constructor_null_clause_opt: %empty */
52702 : #line 17199 "gram.y"
52703 : { (yyval.boolean) = false; }
52704 : #line 52705 "gram.c"
52705 412 : break;
52706 :
52707 60 : case 2411: /* json_array_constructor_null_clause_opt: NULL_P ON NULL_P */
52708 : #line 17203 "gram.y"
52709 : { (yyval.boolean) = false; }
52710 : #line 52711 "gram.c"
52711 60 : break;
52712 :
52713 36 : case 2412: /* json_array_constructor_null_clause_opt: ABSENT ON NULL_P */
52714 : #line 17204 "gram.y"
52715 : { (yyval.boolean) = true; }
52716 : #line 52717 "gram.c"
52717 36 : break;
52718 :
52719 168 : case 2413: /* json_array_constructor_null_clause_opt: %empty */
52720 : #line 17205 "gram.y"
52721 : { (yyval.boolean) = true; }
52722 : #line 52723 "gram.c"
52723 168 : break;
52724 :
52725 108 : case 2414: /* json_value_expr_list: json_value_expr */
52726 : #line 17209 "gram.y"
52727 : { (yyval.list) = list_make1((yyvsp[0].node)); }
52728 : #line 52729 "gram.c"
52729 108 : break;
52730 :
52731 126 : case 2415: /* json_value_expr_list: json_value_expr_list ',' json_value_expr */
52732 : #line 17210 "gram.y"
52733 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node));}
52734 : #line 52735 "gram.c"
52735 126 : break;
52736 :
52737 204 : case 2416: /* json_aggregate_func: JSON_OBJECTAGG '(' json_name_and_value json_object_constructor_null_clause_opt json_key_uniqueness_constraint_opt json_returning_clause_opt ')' */
52738 : #line 17220 "gram.y"
52739 : {
52740 : JsonObjectAgg *n = makeNode(JsonObjectAgg);
52741 :
52742 : n->arg = (JsonKeyValue *) (yyvsp[-4].node);
52743 : n->absent_on_null = (yyvsp[-3].boolean);
52744 : n->unique = (yyvsp[-2].boolean);
52745 : n->constructor = makeNode(JsonAggConstructor);
52746 : n->constructor->output = (JsonOutput *) (yyvsp[-1].node);
52747 : n->constructor->agg_order = NULL;
52748 : n->constructor->location = (yylsp[-6]);
52749 : (yyval.node) = (Node *) n;
52750 : }
52751 : #line 52752 "gram.c"
52752 204 : break;
52753 :
52754 156 : case 2417: /* json_aggregate_func: JSON_ARRAYAGG '(' json_value_expr json_array_aggregate_order_by_clause_opt json_array_constructor_null_clause_opt json_returning_clause_opt ')' */
52755 : #line 17238 "gram.y"
52756 : {
52757 : JsonArrayAgg *n = makeNode(JsonArrayAgg);
52758 :
52759 : n->arg = (JsonValueExpr *) (yyvsp[-4].node);
52760 : n->absent_on_null = (yyvsp[-2].boolean);
52761 : n->constructor = makeNode(JsonAggConstructor);
52762 : n->constructor->agg_order = (yyvsp[-3].list);
52763 : n->constructor->output = (JsonOutput *) (yyvsp[-1].node);
52764 : n->constructor->location = (yylsp[-6]);
52765 : (yyval.node) = (Node *) n;
52766 : }
52767 : #line 52768 "gram.c"
52768 156 : break;
52769 :
52770 18 : case 2418: /* json_array_aggregate_order_by_clause_opt: ORDER BY sortby_list */
52771 : #line 17252 "gram.y"
52772 : { (yyval.list) = (yyvsp[0].list); }
52773 : #line 52774 "gram.c"
52774 18 : break;
52775 :
52776 138 : case 2419: /* json_array_aggregate_order_by_clause_opt: %empty */
52777 : #line 17253 "gram.y"
52778 : { (yyval.list) = NIL; }
52779 : #line 52780 "gram.c"
52780 138 : break;
52781 :
52782 476992 : case 2420: /* opt_target_list: target_list */
52783 : #line 17262 "gram.y"
52784 : { (yyval.list) = (yyvsp[0].list); }
52785 : #line 52786 "gram.c"
52786 476992 : break;
52787 :
52788 440 : case 2421: /* opt_target_list: %empty */
52789 : #line 17263 "gram.y"
52790 : { (yyval.list) = NIL; }
52791 : #line 52792 "gram.c"
52792 440 : break;
52793 :
52794 483832 : case 2422: /* target_list: target_el */
52795 : #line 17267 "gram.y"
52796 : { (yyval.list) = list_make1((yyvsp[0].target)); }
52797 : #line 52798 "gram.c"
52798 483832 : break;
52799 :
52800 707524 : case 2423: /* target_list: target_list ',' target_el */
52801 : #line 17268 "gram.y"
52802 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); }
52803 : #line 52804 "gram.c"
52804 707524 : break;
52805 :
52806 240506 : case 2424: /* target_el: a_expr AS ColLabel */
52807 : #line 17272 "gram.y"
52808 : {
52809 : (yyval.target) = makeNode(ResTarget);
52810 : (yyval.target)->name = (yyvsp[0].str);
52811 : (yyval.target)->indirection = NIL;
52812 : (yyval.target)->val = (Node *) (yyvsp[-2].node);
52813 : (yyval.target)->location = (yylsp[-2]);
52814 : }
52815 : #line 52816 "gram.c"
52816 240506 : break;
52817 :
52818 3616 : case 2425: /* target_el: a_expr BareColLabel */
52819 : #line 17280 "gram.y"
52820 : {
52821 : (yyval.target) = makeNode(ResTarget);
52822 : (yyval.target)->name = (yyvsp[0].str);
52823 : (yyval.target)->indirection = NIL;
52824 : (yyval.target)->val = (Node *) (yyvsp[-1].node);
52825 : (yyval.target)->location = (yylsp[-1]);
52826 : }
52827 : #line 52828 "gram.c"
52828 3616 : break;
52829 :
52830 888908 : case 2426: /* target_el: a_expr */
52831 : #line 17288 "gram.y"
52832 : {
52833 : (yyval.target) = makeNode(ResTarget);
52834 : (yyval.target)->name = NULL;
52835 : (yyval.target)->indirection = NIL;
52836 : (yyval.target)->val = (Node *) (yyvsp[0].node);
52837 : (yyval.target)->location = (yylsp[0]);
52838 : }
52839 : #line 52840 "gram.c"
52840 888908 : break;
52841 :
52842 58326 : case 2427: /* target_el: '*' */
52843 : #line 17296 "gram.y"
52844 : {
52845 : ColumnRef *n = makeNode(ColumnRef);
52846 :
52847 : n->fields = list_make1(makeNode(A_Star));
52848 : n->location = (yylsp[0]);
52849 :
52850 : (yyval.target) = makeNode(ResTarget);
52851 : (yyval.target)->name = NULL;
52852 : (yyval.target)->indirection = NIL;
52853 : (yyval.target)->val = (Node *) n;
52854 : (yyval.target)->location = (yylsp[0]);
52855 : }
52856 : #line 52857 "gram.c"
52857 58326 : break;
52858 :
52859 17134 : case 2428: /* qualified_name_list: qualified_name */
52860 : #line 17318 "gram.y"
52861 : { (yyval.list) = list_make1((yyvsp[0].range)); }
52862 : #line 52863 "gram.c"
52863 17134 : break;
52864 :
52865 456 : case 2429: /* qualified_name_list: qualified_name_list ',' qualified_name */
52866 : #line 17319 "gram.y"
52867 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].range)); }
52868 : #line 52869 "gram.c"
52869 456 : break;
52870 :
52871 421652 : case 2430: /* qualified_name: ColId */
52872 : #line 17331 "gram.y"
52873 : {
52874 : (yyval.range) = makeRangeVar(NULL, (yyvsp[0].str), (yylsp[0]));
52875 : }
52876 : #line 52877 "gram.c"
52877 421652 : break;
52878 :
52879 268772 : case 2431: /* qualified_name: ColId indirection */
52880 : #line 17335 "gram.y"
52881 : {
52882 : (yyval.range) = makeRangeVarFromQualifiedName((yyvsp[-1].str), (yyvsp[0].list), (yylsp[-1]), yyscanner);
52883 : }
52884 : #line 52885 "gram.c"
52885 268772 : break;
52886 :
52887 28832 : case 2432: /* name_list: name */
52888 : #line 17341 "gram.y"
52889 : { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
52890 : #line 52891 "gram.c"
52891 28832 : break;
52892 :
52893 60674 : case 2433: /* name_list: name_list ',' name */
52894 : #line 17343 "gram.y"
52895 : { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); }
52896 : #line 52897 "gram.c"
52897 60674 : break;
52898 :
52899 179790 : case 2434: /* name: ColId */
52900 : #line 17347 "gram.y"
52901 : { (yyval.str) = (yyvsp[0].str); }
52902 : #line 52903 "gram.c"
52903 179790 : break;
52904 :
52905 1619162 : case 2435: /* attr_name: ColLabel */
52906 : #line 17349 "gram.y"
52907 : { (yyval.str) = (yyvsp[0].str); }
52908 : #line 52909 "gram.c"
52909 1619162 : break;
52910 :
52911 52 : case 2436: /* file_name: Sconst */
52912 : #line 17351 "gram.y"
52913 : { (yyval.str) = (yyvsp[0].str); }
52914 : #line 52915 "gram.c"
52915 52 : break;
52916 :
52917 291768 : case 2437: /* func_name: type_function_name */
52918 : #line 17362 "gram.y"
52919 : { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
52920 : #line 52921 "gram.c"
52921 291768 : break;
52922 :
52923 134110 : case 2438: /* func_name: ColId indirection */
52924 : #line 17364 "gram.y"
52925 : {
52926 : (yyval.list) = check_func_name(lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)),
52927 : yyscanner);
52928 : }
52929 : #line 52930 "gram.c"
52930 134110 : break;
52931 :
52932 384316 : case 2439: /* AexprConst: Iconst */
52933 : #line 17375 "gram.y"
52934 : {
52935 : (yyval.node) = makeIntConst((yyvsp[0].ival), (yylsp[0]));
52936 : }
52937 : #line 52938 "gram.c"
52938 384316 : break;
52939 :
52940 11368 : case 2440: /* AexprConst: FCONST */
52941 : #line 17379 "gram.y"
52942 : {
52943 : (yyval.node) = makeFloatConst((yyvsp[0].str), (yylsp[0]));
52944 : }
52945 : #line 52946 "gram.c"
52946 11368 : break;
52947 :
52948 761844 : case 2441: /* AexprConst: Sconst */
52949 : #line 17383 "gram.y"
52950 : {
52951 : (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0]));
52952 : }
52953 : #line 52954 "gram.c"
52954 761844 : break;
52955 :
52956 754 : case 2442: /* AexprConst: BCONST */
52957 : #line 17387 "gram.y"
52958 : {
52959 : (yyval.node) = makeBitStringConst((yyvsp[0].str), (yylsp[0]));
52960 : }
52961 : #line 52962 "gram.c"
52962 754 : break;
52963 :
52964 3302 : case 2443: /* AexprConst: XCONST */
52965 : #line 17391 "gram.y"
52966 : {
52967 : /* This is a bit constant per SQL99:
52968 : * Without Feature F511, "BIT data type",
52969 : * a <general literal> shall not be a
52970 : * <bit string literal> or a <hex string literal>.
52971 : */
52972 : (yyval.node) = makeBitStringConst((yyvsp[0].str), (yylsp[0]));
52973 : }
52974 : #line 52975 "gram.c"
52975 3302 : break;
52976 :
52977 9836 : case 2444: /* AexprConst: func_name Sconst */
52978 : #line 17400 "gram.y"
52979 : {
52980 : /* generic type 'literal' syntax */
52981 : TypeName *t = makeTypeNameFromNameList((yyvsp[-1].list));
52982 :
52983 : t->location = (yylsp[-1]);
52984 : (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t);
52985 : }
52986 : #line 52987 "gram.c"
52987 9836 : break;
52988 :
52989 0 : case 2445: /* AexprConst: func_name '(' func_arg_list opt_sort_clause ')' Sconst */
52990 : #line 17408 "gram.y"
52991 : {
52992 : /* generic syntax with a type modifier */
52993 : TypeName *t = makeTypeNameFromNameList((yyvsp[-5].list));
52994 : ListCell *lc;
52995 :
52996 : /*
52997 : * We must use func_arg_list and opt_sort_clause in the
52998 : * production to avoid reduce/reduce conflicts, but we
52999 : * don't actually wish to allow NamedArgExpr in this
53000 : * context, nor ORDER BY.
53001 : */
53002 : foreach(lc, (yyvsp[-3].list))
53003 : {
53004 : NamedArgExpr *arg = (NamedArgExpr *) lfirst(lc);
53005 :
53006 : if (IsA(arg, NamedArgExpr))
53007 : ereport(ERROR,
53008 : (errcode(ERRCODE_SYNTAX_ERROR),
53009 : errmsg("type modifier cannot have parameter name"),
53010 : parser_errposition(arg->location)));
53011 : }
53012 : if ((yyvsp[-2].list) != NIL)
53013 : ereport(ERROR,
53014 : (errcode(ERRCODE_SYNTAX_ERROR),
53015 : errmsg("type modifier cannot have ORDER BY"),
53016 : parser_errposition((yylsp[-2]))));
53017 :
53018 : t->typmods = (yyvsp[-3].list);
53019 : t->location = (yylsp[-5]);
53020 : (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t);
53021 : }
53022 : #line 53023 "gram.c"
53023 0 : break;
53024 :
53025 3114 : case 2446: /* AexprConst: ConstTypename Sconst */
53026 : #line 17440 "gram.y"
53027 : {
53028 : (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), (yyvsp[-1].typnam));
53029 : }
53030 : #line 53031 "gram.c"
53031 3114 : break;
53032 :
53033 3298 : case 2447: /* AexprConst: ConstInterval Sconst opt_interval */
53034 : #line 17444 "gram.y"
53035 : {
53036 : TypeName *t = (yyvsp[-2].typnam);
53037 :
53038 : t->typmods = (yyvsp[0].list);
53039 : (yyval.node) = makeStringConstCast((yyvsp[-1].str), (yylsp[-1]), t);
53040 : }
53041 : #line 53042 "gram.c"
53042 3298 : break;
53043 :
53044 12 : case 2448: /* AexprConst: ConstInterval '(' Iconst ')' Sconst */
53045 : #line 17451 "gram.y"
53046 : {
53047 : TypeName *t = (yyvsp[-4].typnam);
53048 :
53049 : t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
53050 : makeIntConst((yyvsp[-2].ival), (yylsp[-2])));
53051 : (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t);
53052 : }
53053 : #line 53054 "gram.c"
53054 12 : break;
53055 :
53056 31174 : case 2449: /* AexprConst: TRUE_P */
53057 : #line 17459 "gram.y"
53058 : {
53059 : (yyval.node) = makeBoolAConst(true, (yylsp[0]));
53060 : }
53061 : #line 53062 "gram.c"
53062 31174 : break;
53063 :
53064 36416 : case 2450: /* AexprConst: FALSE_P */
53065 : #line 17463 "gram.y"
53066 : {
53067 : (yyval.node) = makeBoolAConst(false, (yylsp[0]));
53068 : }
53069 : #line 53070 "gram.c"
53070 36416 : break;
53071 :
53072 67038 : case 2451: /* AexprConst: NULL_P */
53073 : #line 17467 "gram.y"
53074 : {
53075 : (yyval.node) = makeNullAConst((yylsp[0]));
53076 : }
53077 : #line 53078 "gram.c"
53078 67038 : break;
53079 :
53080 410402 : case 2452: /* Iconst: ICONST */
53081 : #line 17472 "gram.y"
53082 : { (yyval.ival) = (yyvsp[0].ival); }
53083 : #line 53084 "gram.c"
53084 410402 : break;
53085 :
53086 833712 : case 2453: /* Sconst: SCONST */
53087 : #line 17473 "gram.y"
53088 : { (yyval.str) = (yyvsp[0].str); }
53089 : #line 53090 "gram.c"
53090 833712 : break;
53091 :
53092 17842 : case 2454: /* SignedIconst: Iconst */
53093 : #line 17475 "gram.y"
53094 : { (yyval.ival) = (yyvsp[0].ival); }
53095 : #line 53096 "gram.c"
53096 17842 : break;
53097 :
53098 0 : case 2455: /* SignedIconst: '+' Iconst */
53099 : #line 17476 "gram.y"
53100 : { (yyval.ival) = + (yyvsp[0].ival); }
53101 : #line 53102 "gram.c"
53102 0 : break;
53103 :
53104 290 : case 2456: /* SignedIconst: '-' Iconst */
53105 : #line 17477 "gram.y"
53106 : { (yyval.ival) = - (yyvsp[0].ival); }
53107 : #line 53108 "gram.c"
53108 290 : break;
53109 :
53110 1916 : case 2457: /* RoleId: RoleSpec */
53111 : #line 17482 "gram.y"
53112 : {
53113 : RoleSpec *spc = (RoleSpec *) (yyvsp[0].rolespec);
53114 :
53115 : switch (spc->roletype)
53116 : {
53117 : case ROLESPEC_CSTRING:
53118 : (yyval.str) = spc->rolename;
53119 : break;
53120 : case ROLESPEC_PUBLIC:
53121 : ereport(ERROR,
53122 : (errcode(ERRCODE_RESERVED_NAME),
53123 : errmsg("role name \"%s\" is reserved",
53124 : "public"),
53125 : parser_errposition((yylsp[0]))));
53126 : break;
53127 : case ROLESPEC_SESSION_USER:
53128 : ereport(ERROR,
53129 : (errcode(ERRCODE_RESERVED_NAME),
53130 : errmsg("%s cannot be used as a role name here",
53131 : "SESSION_USER"),
53132 : parser_errposition((yylsp[0]))));
53133 : break;
53134 : case ROLESPEC_CURRENT_USER:
53135 : ereport(ERROR,
53136 : (errcode(ERRCODE_RESERVED_NAME),
53137 : errmsg("%s cannot be used as a role name here",
53138 : "CURRENT_USER"),
53139 : parser_errposition((yylsp[0]))));
53140 : break;
53141 : case ROLESPEC_CURRENT_ROLE:
53142 : ereport(ERROR,
53143 : (errcode(ERRCODE_RESERVED_NAME),
53144 : errmsg("%s cannot be used as a role name here",
53145 : "CURRENT_ROLE"),
53146 : parser_errposition((yylsp[0]))));
53147 : break;
53148 : }
53149 : }
53150 : #line 53151 "gram.c"
53151 1906 : break;
53152 :
53153 34436 : case 2458: /* RoleSpec: NonReservedWord */
53154 : #line 17523 "gram.y"
53155 : {
53156 : /*
53157 : * "public" and "none" are not keywords, but they must
53158 : * be treated specially here.
53159 : */
53160 : RoleSpec *n;
53161 :
53162 : if (strcmp((yyvsp[0].str), "public") == 0)
53163 : {
53164 : n = (RoleSpec *) makeRoleSpec(ROLESPEC_PUBLIC, (yylsp[0]));
53165 : n->roletype = ROLESPEC_PUBLIC;
53166 : }
53167 : else if (strcmp((yyvsp[0].str), "none") == 0)
53168 : {
53169 : ereport(ERROR,
53170 : (errcode(ERRCODE_RESERVED_NAME),
53171 : errmsg("role name \"%s\" is reserved",
53172 : "none"),
53173 : parser_errposition((yylsp[0]))));
53174 : }
53175 : else
53176 : {
53177 : n = makeRoleSpec(ROLESPEC_CSTRING, (yylsp[0]));
53178 : n->rolename = pstrdup((yyvsp[0].str));
53179 : }
53180 : (yyval.rolespec) = n;
53181 : }
53182 : #line 53183 "gram.c"
53183 34410 : break;
53184 :
53185 130 : case 2459: /* RoleSpec: CURRENT_ROLE */
53186 : #line 17551 "gram.y"
53187 : {
53188 : (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_ROLE, (yylsp[0]));
53189 : }
53190 : #line 53191 "gram.c"
53191 130 : break;
53192 :
53193 228 : case 2460: /* RoleSpec: CURRENT_USER */
53194 : #line 17555 "gram.y"
53195 : {
53196 : (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_USER, (yylsp[0]));
53197 : }
53198 : #line 53199 "gram.c"
53199 228 : break;
53200 :
53201 36 : case 2461: /* RoleSpec: SESSION_USER */
53202 : #line 17559 "gram.y"
53203 : {
53204 : (yyval.rolespec) = makeRoleSpec(ROLESPEC_SESSION_USER, (yylsp[0]));
53205 : }
53206 : #line 53207 "gram.c"
53207 36 : break;
53208 :
53209 3246 : case 2462: /* role_list: RoleSpec */
53210 : #line 17565 "gram.y"
53211 : { (yyval.list) = list_make1((yyvsp[0].rolespec)); }
53212 : #line 53213 "gram.c"
53213 3246 : break;
53214 :
53215 270 : case 2463: /* role_list: role_list ',' RoleSpec */
53216 : #line 17567 "gram.y"
53217 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].rolespec)); }
53218 : #line 53219 "gram.c"
53219 270 : break;
53220 :
53221 40264 : case 2464: /* 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 */
53222 : #line 17584 "gram.y"
53223 : {
53224 : SelectStmt *n = makeNode(SelectStmt);
53225 :
53226 : n->distinctClause = (yyvsp[-9].list);
53227 : n->targetList = (yyvsp[-8].list);
53228 : n->fromClause = (yyvsp[-7].list);
53229 : n->whereClause = (yyvsp[-6].node);
53230 : n->groupClause = ((yyvsp[-5].groupclause))->list;
53231 : n->groupDistinct = ((yyvsp[-5].groupclause))->distinct;
53232 : n->havingClause = (yyvsp[-4].node);
53233 : n->windowClause = (yyvsp[-3].list);
53234 : n->sortClause = (yyvsp[-2].list);
53235 : if ((yyvsp[-1].selectlimit))
53236 : {
53237 : n->limitOffset = (yyvsp[-1].selectlimit)->limitOffset;
53238 : n->limitCount = (yyvsp[-1].selectlimit)->limitCount;
53239 : if (!n->sortClause &&
53240 : (yyvsp[-1].selectlimit)->limitOption == LIMIT_OPTION_WITH_TIES)
53241 : ereport(ERROR,
53242 : (errcode(ERRCODE_SYNTAX_ERROR),
53243 : errmsg("WITH TIES cannot be specified without ORDER BY clause"),
53244 : parser_errposition((yyvsp[-1].selectlimit)->optionLoc)));
53245 : n->limitOption = (yyvsp[-1].selectlimit)->limitOption;
53246 : }
53247 : n->lockingClause = (yyvsp[0].list);
53248 : (yyval.node) = (Node *) n;
53249 : }
53250 : #line 53251 "gram.c"
53251 40264 : break;
53252 :
53253 7028 : case 2465: /* PLAssignStmt: plassign_target opt_indirection plassign_equals PLpgSQL_Expr */
53254 : #line 17618 "gram.y"
53255 : {
53256 : PLAssignStmt *n = makeNode(PLAssignStmt);
53257 :
53258 : n->name = (yyvsp[-3].str);
53259 : n->indirection = check_indirection((yyvsp[-2].list), yyscanner);
53260 : /* nnames will be filled by calling production */
53261 : n->val = (SelectStmt *) (yyvsp[0].node);
53262 : n->location = (yylsp[-3]);
53263 : (yyval.node) = (Node *) n;
53264 : }
53265 : #line 53266 "gram.c"
53266 7028 : break;
53267 :
53268 7004 : case 2466: /* plassign_target: ColId */
53269 : #line 17630 "gram.y"
53270 : { (yyval.str) = (yyvsp[0].str); }
53271 : #line 53272 "gram.c"
53272 7004 : break;
53273 :
53274 24 : case 2467: /* plassign_target: PARAM */
53275 : #line 17631 "gram.y"
53276 : { (yyval.str) = psprintf("$%d", (yyvsp[0].ival)); }
53277 : #line 53278 "gram.c"
53278 24 : break;
53279 :
53280 3480108 : case 2470: /* ColId: IDENT */
53281 : #line 17652 "gram.y"
53282 : { (yyval.str) = (yyvsp[0].str); }
53283 : #line 53284 "gram.c"
53284 3480108 : break;
53285 :
53286 59644 : case 2471: /* ColId: unreserved_keyword */
53287 : #line 17653 "gram.y"
53288 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
53289 : #line 53290 "gram.c"
53290 59644 : break;
53291 :
53292 6054 : case 2472: /* ColId: col_name_keyword */
53293 : #line 17654 "gram.y"
53294 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
53295 : #line 53296 "gram.c"
53296 6054 : break;
53297 :
53298 701428 : case 2473: /* type_function_name: IDENT */
53299 : #line 17659 "gram.y"
53300 : { (yyval.str) = (yyvsp[0].str); }
53301 : #line 53302 "gram.c"
53302 701428 : break;
53303 :
53304 75684 : case 2474: /* type_function_name: unreserved_keyword */
53305 : #line 17660 "gram.y"
53306 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
53307 : #line 53308 "gram.c"
53308 75684 : break;
53309 :
53310 66 : case 2475: /* type_function_name: type_func_name_keyword */
53311 : #line 17661 "gram.y"
53312 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
53313 : #line 53314 "gram.c"
53314 66 : break;
53315 :
53316 83866 : case 2476: /* NonReservedWord: IDENT */
53317 : #line 17666 "gram.y"
53318 : { (yyval.str) = (yyvsp[0].str); }
53319 : #line 53320 "gram.c"
53320 83866 : break;
53321 :
53322 29946 : case 2477: /* NonReservedWord: unreserved_keyword */
53323 : #line 17667 "gram.y"
53324 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
53325 : #line 53326 "gram.c"
53326 29946 : break;
53327 :
53328 178 : case 2478: /* NonReservedWord: col_name_keyword */
53329 : #line 17668 "gram.y"
53330 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
53331 : #line 53332 "gram.c"
53332 178 : break;
53333 :
53334 5156 : case 2479: /* NonReservedWord: type_func_name_keyword */
53335 : #line 17669 "gram.y"
53336 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
53337 : #line 53338 "gram.c"
53338 5156 : break;
53339 :
53340 1842670 : case 2480: /* ColLabel: IDENT */
53341 : #line 17675 "gram.y"
53342 : { (yyval.str) = (yyvsp[0].str); }
53343 : #line 53344 "gram.c"
53344 1842670 : break;
53345 :
53346 40814 : case 2481: /* ColLabel: unreserved_keyword */
53347 : #line 17676 "gram.y"
53348 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
53349 : #line 53350 "gram.c"
53350 40814 : break;
53351 :
53352 284 : case 2482: /* ColLabel: col_name_keyword */
53353 : #line 17677 "gram.y"
53354 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
53355 : #line 53356 "gram.c"
53356 284 : break;
53357 :
53358 1796 : case 2483: /* ColLabel: type_func_name_keyword */
53359 : #line 17678 "gram.y"
53360 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
53361 : #line 53362 "gram.c"
53362 1796 : break;
53363 :
53364 7510 : case 2484: /* ColLabel: reserved_keyword */
53365 : #line 17679 "gram.y"
53366 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
53367 : #line 53368 "gram.c"
53368 7510 : break;
53369 :
53370 3602 : case 2485: /* BareColLabel: IDENT */
53371 : #line 17685 "gram.y"
53372 : { (yyval.str) = (yyvsp[0].str); }
53373 : #line 53374 "gram.c"
53374 3602 : break;
53375 :
53376 14 : case 2486: /* BareColLabel: bare_label_keyword */
53377 : #line 17686 "gram.y"
53378 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
53379 : #line 53380 "gram.c"
53380 14 : break;
53381 :
53382 :
53383 : #line 53384 "gram.c"
53384 :
53385 3573744 : default: break;
53386 : }
53387 : /* User semantic actions sometimes alter yychar, and that requires
53388 : that yytoken be updated with the new translation. We take the
53389 : approach of translating immediately before every use of yytoken.
53390 : One alternative is translating here after every semantic action,
53391 : but that translation would be missed if the semantic action invokes
53392 : YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
53393 : if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
53394 : incorrect destructor might then be invoked immediately. In the
53395 : case of YYERROR or YYBACKUP, subsequent parser actions might lead
53396 : to an incorrect destructor call or verbose syntax error message
53397 : before the lookahead is translated. */
53398 : YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
53399 :
53400 54284336 : YYPOPSTACK (yylen);
53401 54284336 : yylen = 0;
53402 :
53403 54284336 : *++yyvsp = yyval;
53404 54284336 : *++yylsp = yyloc;
53405 :
53406 : /* Now 'shift' the result of the reduction. Determine what state
53407 : that goes to, based on the state we popped back to and the rule
53408 : number reduced by. */
53409 : {
53410 54284336 : const int yylhs = yyr1[yyn] - YYNTOKENS;
53411 54284336 : const int yyi = yypgoto[yylhs] + *yyssp;
53412 41493348 : yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
53413 24902260 : ? yytable[yyi]
53414 95777684 : : yydefgoto[yylhs]);
53415 : }
53416 :
53417 54284336 : goto yynewstate;
53418 :
53419 :
53420 : /*--------------------------------------.
53421 : | yyerrlab -- here on detecting error. |
53422 : `--------------------------------------*/
53423 696 : yyerrlab:
53424 : /* Make sure we have latest lookahead translation. See comments at
53425 : user semantic actions for why this is necessary. */
53426 696 : yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
53427 : /* If not already recovering from an error, report this error. */
53428 696 : if (!yyerrstatus)
53429 : {
53430 696 : ++yynerrs;
53431 696 : yyerror (&yylloc, yyscanner, YY_("syntax error"));
53432 : }
53433 :
53434 0 : yyerror_range[1] = yylloc;
53435 0 : if (yyerrstatus == 3)
53436 : {
53437 : /* If just tried and failed to reuse lookahead token after an
53438 : error, discard it. */
53439 :
53440 0 : if (yychar <= YYEOF)
53441 : {
53442 : /* Return failure if at end of input. */
53443 0 : if (yychar == YYEOF)
53444 0 : YYABORT;
53445 : }
53446 : else
53447 : {
53448 0 : yydestruct ("Error: discarding",
53449 : yytoken, &yylval, &yylloc, yyscanner);
53450 0 : yychar = YYEMPTY;
53451 : }
53452 : }
53453 :
53454 : /* Else will try to reuse lookahead token after shifting the error
53455 : token. */
53456 0 : goto yyerrlab1;
53457 :
53458 :
53459 : /*---------------------------------------------------.
53460 : | yyerrorlab -- error raised explicitly by YYERROR. |
53461 : `---------------------------------------------------*/
53462 : yyerrorlab:
53463 : /* Pacify compilers when the user code never invokes YYERROR and the
53464 : label yyerrorlab therefore never appears in user code. */
53465 : if (0)
53466 : YYERROR;
53467 :
53468 : /* Do not reclaim the symbols of the rule whose action triggered
53469 : this YYERROR. */
53470 : YYPOPSTACK (yylen);
53471 : yylen = 0;
53472 : YY_STACK_PRINT (yyss, yyssp);
53473 : yystate = *yyssp;
53474 : goto yyerrlab1;
53475 :
53476 :
53477 : /*-------------------------------------------------------------.
53478 : | yyerrlab1 -- common code for both syntax error and YYERROR. |
53479 : `-------------------------------------------------------------*/
53480 0 : yyerrlab1:
53481 0 : yyerrstatus = 3; /* Each real token shifted decrements this. */
53482 :
53483 : /* Pop stack until we find a state that shifts the error token. */
53484 : for (;;)
53485 : {
53486 0 : yyn = yypact[yystate];
53487 0 : if (!yypact_value_is_default (yyn))
53488 : {
53489 0 : yyn += YYSYMBOL_YYerror;
53490 0 : if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
53491 : {
53492 0 : yyn = yytable[yyn];
53493 0 : if (0 < yyn)
53494 0 : break;
53495 : }
53496 : }
53497 :
53498 : /* Pop the current state because it cannot handle the error token. */
53499 0 : if (yyssp == yyss)
53500 0 : YYABORT;
53501 :
53502 0 : yyerror_range[1] = *yylsp;
53503 0 : yydestruct ("Error: popping",
53504 0 : YY_ACCESSING_SYMBOL (yystate), yyvsp, yylsp, yyscanner);
53505 0 : YYPOPSTACK (1);
53506 0 : yystate = *yyssp;
53507 : YY_STACK_PRINT (yyss, yyssp);
53508 : }
53509 :
53510 : YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
53511 0 : *++yyvsp = yylval;
53512 : YY_IGNORE_MAYBE_UNINITIALIZED_END
53513 :
53514 0 : yyerror_range[2] = yylloc;
53515 0 : ++yylsp;
53516 0 : YYLLOC_DEFAULT (*yylsp, yyerror_range, 2);
53517 :
53518 : /* Shift the error token. */
53519 : YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
53520 :
53521 0 : yystate = yyn;
53522 0 : goto yynewstate;
53523 :
53524 :
53525 : /*-------------------------------------.
53526 : | yyacceptlab -- YYACCEPT comes here. |
53527 : `-------------------------------------*/
53528 791652 : yyacceptlab:
53529 791652 : yyresult = 0;
53530 791652 : goto yyreturn;
53531 :
53532 :
53533 : /*-----------------------------------.
53534 : | yyabortlab -- YYABORT comes here. |
53535 : `-----------------------------------*/
53536 0 : yyabortlab:
53537 0 : yyresult = 1;
53538 0 : goto yyreturn;
53539 :
53540 :
53541 : #if !defined yyoverflow
53542 : /*-------------------------------------------------.
53543 : | yyexhaustedlab -- memory exhaustion comes here. |
53544 : `-------------------------------------------------*/
53545 0 : yyexhaustedlab:
53546 0 : yyerror (&yylloc, yyscanner, YY_("memory exhausted"));
53547 0 : yyresult = 2;
53548 0 : goto yyreturn;
53549 : #endif
53550 :
53551 :
53552 : /*-------------------------------------------------------.
53553 : | yyreturn -- parsing is finished, clean up and return. |
53554 : `-------------------------------------------------------*/
53555 791652 : yyreturn:
53556 791652 : if (yychar != YYEMPTY)
53557 : {
53558 : /* Make sure we have latest lookahead translation. See comments at
53559 : user semantic actions for why this is necessary. */
53560 0 : yytoken = YYTRANSLATE (yychar);
53561 0 : yydestruct ("Cleanup: discarding lookahead",
53562 : yytoken, &yylval, &yylloc, yyscanner);
53563 : }
53564 : /* Do not reclaim the symbols of the rule whose action triggered
53565 : this YYABORT or YYACCEPT. */
53566 791652 : YYPOPSTACK (yylen);
53567 : YY_STACK_PRINT (yyss, yyssp);
53568 2374956 : while (yyssp != yyss)
53569 : {
53570 1583304 : yydestruct ("Cleanup: popping",
53571 1583304 : YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, yylsp, yyscanner);
53572 1583304 : YYPOPSTACK (1);
53573 : }
53574 : #ifndef yyoverflow
53575 791652 : if (yyss != yyssa)
53576 0 : YYSTACK_FREE (yyss);
53577 : #endif
53578 :
53579 791652 : return yyresult;
53580 : }
53581 :
53582 : #line 18704 "gram.y"
53583 :
53584 :
53585 : /*
53586 : * The signature of this function is required by bison. However, we
53587 : * ignore the passed yylloc and instead use the last token position
53588 : * available from the scanner.
53589 : */
53590 : static void
53591 : base_yyerror(YYLTYPE *yylloc, core_yyscan_t yyscanner, const char *msg)
53592 : {
53593 : parser_yyerror(msg);
53594 : }
53595 :
53596 : static RawStmt *
53597 : makeRawStmt(Node *stmt, int stmt_location)
53598 : {
53599 : RawStmt *rs = makeNode(RawStmt);
53600 :
53601 : rs->stmt = stmt;
53602 : rs->stmt_location = stmt_location;
53603 : rs->stmt_len = 0; /* might get changed later */
53604 : return rs;
53605 : }
53606 :
53607 : /* Adjust a RawStmt to reflect that it doesn't run to the end of the string */
53608 : static void
53609 : updateRawStmtEnd(RawStmt *rs, int end_location)
53610 : {
53611 : /*
53612 : * If we already set the length, don't change it. This is for situations
53613 : * like "select foo ;; select bar" where the same statement will be last
53614 : * in the string for more than one semicolon.
53615 : */
53616 : if (rs->stmt_len > 0)
53617 : return;
53618 :
53619 : /* OK, update length of RawStmt */
53620 : rs->stmt_len = end_location - rs->stmt_location;
53621 : }
53622 :
53623 : /*
53624 : * Adjust a PreparableStmt to reflect that it doesn't run to the end of the
53625 : * string.
53626 : */
53627 : static void
53628 : updatePreparableStmtEnd(Node *n, int end_location)
53629 : {
53630 : if (IsA(n, SelectStmt))
53631 : {
53632 : SelectStmt *stmt = (SelectStmt *) n;
53633 :
53634 : stmt->stmt_len = end_location - stmt->stmt_location;
53635 : }
53636 : else if (IsA(n, InsertStmt))
53637 : {
53638 : InsertStmt *stmt = (InsertStmt *) n;
53639 :
53640 : stmt->stmt_len = end_location - stmt->stmt_location;
53641 : }
53642 : else if (IsA(n, UpdateStmt))
53643 : {
53644 : UpdateStmt *stmt = (UpdateStmt *) n;
53645 :
53646 : stmt->stmt_len = end_location - stmt->stmt_location;
53647 : }
53648 : else if (IsA(n, DeleteStmt))
53649 : {
53650 : DeleteStmt *stmt = (DeleteStmt *) n;
53651 :
53652 : stmt->stmt_len = end_location - stmt->stmt_location;
53653 : }
53654 : else if (IsA(n, MergeStmt))
53655 : {
53656 : MergeStmt *stmt = (MergeStmt *) n;
53657 :
53658 : stmt->stmt_len = end_location - stmt->stmt_location;
53659 : }
53660 : else
53661 : elog(ERROR, "unexpected node type %d", (int) n->type);
53662 : }
53663 :
53664 : static Node *
53665 : makeColumnRef(char *colname, List *indirection,
53666 : int location, core_yyscan_t yyscanner)
53667 : {
53668 : /*
53669 : * Generate a ColumnRef node, with an A_Indirection node added if there is
53670 : * any subscripting in the specified indirection list. However, any field
53671 : * selection at the start of the indirection list must be transposed into
53672 : * the "fields" part of the ColumnRef node.
53673 : */
53674 : ColumnRef *c = makeNode(ColumnRef);
53675 : int nfields = 0;
53676 : ListCell *l;
53677 :
53678 : c->location = location;
53679 : foreach(l, indirection)
53680 : {
53681 : if (IsA(lfirst(l), A_Indices))
53682 : {
53683 : A_Indirection *i = makeNode(A_Indirection);
53684 :
53685 : if (nfields == 0)
53686 : {
53687 : /* easy case - all indirection goes to A_Indirection */
53688 : c->fields = list_make1(makeString(colname));
53689 : i->indirection = check_indirection(indirection, yyscanner);
53690 : }
53691 : else
53692 : {
53693 : /* got to split the list in two */
53694 : i->indirection = check_indirection(list_copy_tail(indirection,
53695 : nfields),
53696 : yyscanner);
53697 : indirection = list_truncate(indirection, nfields);
53698 : c->fields = lcons(makeString(colname), indirection);
53699 : }
53700 : i->arg = (Node *) c;
53701 : return (Node *) i;
53702 : }
53703 : else if (IsA(lfirst(l), A_Star))
53704 : {
53705 : /* We only allow '*' at the end of a ColumnRef */
53706 : if (lnext(indirection, l) != NULL)
53707 : parser_yyerror("improper use of \"*\"");
53708 : }
53709 : nfields++;
53710 : }
53711 : /* No subscripting, so all indirection gets added to field list */
53712 : c->fields = lcons(makeString(colname), indirection);
53713 : return (Node *) c;
53714 : }
53715 :
53716 : static Node *
53717 : makeTypeCast(Node *arg, TypeName *typename, int location)
53718 : {
53719 : TypeCast *n = makeNode(TypeCast);
53720 :
53721 : n->arg = arg;
53722 : n->typeName = typename;
53723 : n->location = location;
53724 : return (Node *) n;
53725 : }
53726 :
53727 : static Node *
53728 : makeStringConstCast(char *str, int location, TypeName *typename)
53729 : {
53730 : Node *s = makeStringConst(str, location);
53731 :
53732 : return makeTypeCast(s, typename, -1);
53733 : }
53734 :
53735 : static Node *
53736 : makeIntConst(int val, int location)
53737 : {
53738 : A_Const *n = makeNode(A_Const);
53739 :
53740 : n->val.ival.type = T_Integer;
53741 : n->val.ival.ival = val;
53742 : n->location = location;
53743 :
53744 : return (Node *) n;
53745 : }
53746 :
53747 : static Node *
53748 : makeFloatConst(char *str, int location)
53749 : {
53750 : A_Const *n = makeNode(A_Const);
53751 :
53752 : n->val.fval.type = T_Float;
53753 : n->val.fval.fval = str;
53754 : n->location = location;
53755 :
53756 : return (Node *) n;
53757 : }
53758 :
53759 : static Node *
53760 : makeBoolAConst(bool state, int location)
53761 : {
53762 : A_Const *n = makeNode(A_Const);
53763 :
53764 : n->val.boolval.type = T_Boolean;
53765 : n->val.boolval.boolval = state;
53766 : n->location = location;
53767 :
53768 : return (Node *) n;
53769 : }
53770 :
53771 : static Node *
53772 : makeBitStringConst(char *str, int location)
53773 : {
53774 : A_Const *n = makeNode(A_Const);
53775 :
53776 : n->val.bsval.type = T_BitString;
53777 : n->val.bsval.bsval = str;
53778 : n->location = location;
53779 :
53780 : return (Node *) n;
53781 : }
53782 :
53783 : static Node *
53784 : makeNullAConst(int location)
53785 : {
53786 : A_Const *n = makeNode(A_Const);
53787 :
53788 : n->isnull = true;
53789 : n->location = location;
53790 :
53791 : return (Node *) n;
53792 : }
53793 :
53794 : static Node *
53795 : makeAConst(Node *v, int location)
53796 : {
53797 : Node *n;
53798 :
53799 : switch (v->type)
53800 : {
53801 : case T_Float:
53802 : n = makeFloatConst(castNode(Float, v)->fval, location);
53803 : break;
53804 :
53805 : case T_Integer:
53806 : n = makeIntConst(castNode(Integer, v)->ival, location);
53807 : break;
53808 :
53809 : default:
53810 : /* currently not used */
53811 : Assert(false);
53812 : n = NULL;
53813 : }
53814 :
53815 : return n;
53816 : }
53817 :
53818 : /* makeRoleSpec
53819 : * Create a RoleSpec with the given type
53820 : */
53821 : static RoleSpec *
53822 : makeRoleSpec(RoleSpecType type, int location)
53823 : {
53824 : RoleSpec *spec = makeNode(RoleSpec);
53825 :
53826 : spec->roletype = type;
53827 : spec->location = location;
53828 :
53829 : return spec;
53830 : }
53831 :
53832 : /* check_qualified_name --- check the result of qualified_name production
53833 : *
53834 : * It's easiest to let the grammar production for qualified_name allow
53835 : * subscripts and '*', which we then must reject here.
53836 : */
53837 : static void
53838 : check_qualified_name(List *names, core_yyscan_t yyscanner)
53839 : {
53840 : ListCell *i;
53841 :
53842 : foreach(i, names)
53843 : {
53844 : if (!IsA(lfirst(i), String))
53845 : parser_yyerror("syntax error");
53846 : }
53847 : }
53848 :
53849 : /* check_func_name --- check the result of func_name production
53850 : *
53851 : * It's easiest to let the grammar production for func_name allow subscripts
53852 : * and '*', which we then must reject here.
53853 : */
53854 : static List *
53855 : check_func_name(List *names, core_yyscan_t yyscanner)
53856 : {
53857 : ListCell *i;
53858 :
53859 : foreach(i, names)
53860 : {
53861 : if (!IsA(lfirst(i), String))
53862 : parser_yyerror("syntax error");
53863 : }
53864 : return names;
53865 : }
53866 :
53867 : /* check_indirection --- check the result of indirection production
53868 : *
53869 : * We only allow '*' at the end of the list, but it's hard to enforce that
53870 : * in the grammar, so do it here.
53871 : */
53872 : static List *
53873 : check_indirection(List *indirection, core_yyscan_t yyscanner)
53874 : {
53875 : ListCell *l;
53876 :
53877 : foreach(l, indirection)
53878 : {
53879 : if (IsA(lfirst(l), A_Star))
53880 : {
53881 : if (lnext(indirection, l) != NULL)
53882 : parser_yyerror("improper use of \"*\"");
53883 : }
53884 : }
53885 : return indirection;
53886 : }
53887 :
53888 : /* extractArgTypes()
53889 : * Given a list of FunctionParameter nodes, extract a list of just the
53890 : * argument types (TypeNames) for input parameters only. This is what
53891 : * is needed to look up an existing function, which is what is wanted by
53892 : * the productions that use this call.
53893 : */
53894 : static List *
53895 : extractArgTypes(List *parameters)
53896 : {
53897 : List *result = NIL;
53898 : ListCell *i;
53899 :
53900 : foreach(i, parameters)
53901 : {
53902 : FunctionParameter *p = (FunctionParameter *) lfirst(i);
53903 :
53904 : if (p->mode != FUNC_PARAM_OUT && p->mode != FUNC_PARAM_TABLE)
53905 : result = lappend(result, p->argType);
53906 : }
53907 : return result;
53908 : }
53909 :
53910 : /* extractAggrArgTypes()
53911 : * As above, but work from the output of the aggr_args production.
53912 : */
53913 : static List *
53914 : extractAggrArgTypes(List *aggrargs)
53915 : {
53916 : Assert(list_length(aggrargs) == 2);
53917 : return extractArgTypes((List *) linitial(aggrargs));
53918 : }
53919 :
53920 : /* makeOrderedSetArgs()
53921 : * Build the result of the aggr_args production (which see the comments for).
53922 : * This handles only the case where both given lists are nonempty, so that
53923 : * we have to deal with multiple VARIADIC arguments.
53924 : */
53925 : static List *
53926 : makeOrderedSetArgs(List *directargs, List *orderedargs,
53927 : core_yyscan_t yyscanner)
53928 : {
53929 : FunctionParameter *lastd = (FunctionParameter *) llast(directargs);
53930 : Integer *ndirectargs;
53931 :
53932 : /* No restriction unless last direct arg is VARIADIC */
53933 : if (lastd->mode == FUNC_PARAM_VARIADIC)
53934 : {
53935 : FunctionParameter *firsto = (FunctionParameter *) linitial(orderedargs);
53936 :
53937 : /*
53938 : * We ignore the names, though the aggr_arg production allows them; it
53939 : * doesn't allow default values, so those need not be checked.
53940 : */
53941 : if (list_length(orderedargs) != 1 ||
53942 : firsto->mode != FUNC_PARAM_VARIADIC ||
53943 : !equal(lastd->argType, firsto->argType))
53944 : ereport(ERROR,
53945 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
53946 : errmsg("an ordered-set aggregate with a VARIADIC direct argument must have one VARIADIC aggregated argument of the same data type"),
53947 : parser_errposition(firsto->location)));
53948 :
53949 : /* OK, drop the duplicate VARIADIC argument from the internal form */
53950 : orderedargs = NIL;
53951 : }
53952 :
53953 : /* don't merge into the next line, as list_concat changes directargs */
53954 : ndirectargs = makeInteger(list_length(directargs));
53955 :
53956 : return list_make2(list_concat(directargs, orderedargs),
53957 : ndirectargs);
53958 : }
53959 :
53960 : /* insertSelectOptions()
53961 : * Insert ORDER BY, etc into an already-constructed SelectStmt.
53962 : *
53963 : * This routine is just to avoid duplicating code in SelectStmt productions.
53964 : */
53965 : static void
53966 : insertSelectOptions(SelectStmt *stmt,
53967 : List *sortClause, List *lockingClause,
53968 : SelectLimit *limitClause,
53969 : WithClause *withClause,
53970 : core_yyscan_t yyscanner)
53971 : {
53972 : Assert(IsA(stmt, SelectStmt));
53973 :
53974 : /*
53975 : * Tests here are to reject constructs like
53976 : * (SELECT foo ORDER BY bar) ORDER BY baz
53977 : */
53978 : if (sortClause)
53979 : {
53980 : if (stmt->sortClause)
53981 : ereport(ERROR,
53982 : (errcode(ERRCODE_SYNTAX_ERROR),
53983 : errmsg("multiple ORDER BY clauses not allowed"),
53984 : parser_errposition(exprLocation((Node *) sortClause))));
53985 : stmt->sortClause = sortClause;
53986 : }
53987 : /* We can handle multiple locking clauses, though */
53988 : stmt->lockingClause = list_concat(stmt->lockingClause, lockingClause);
53989 : if (limitClause && limitClause->limitOffset)
53990 : {
53991 : if (stmt->limitOffset)
53992 : ereport(ERROR,
53993 : (errcode(ERRCODE_SYNTAX_ERROR),
53994 : errmsg("multiple OFFSET clauses not allowed"),
53995 : parser_errposition(limitClause->offsetLoc)));
53996 : stmt->limitOffset = limitClause->limitOffset;
53997 : }
53998 : if (limitClause && limitClause->limitCount)
53999 : {
54000 : if (stmt->limitCount)
54001 : ereport(ERROR,
54002 : (errcode(ERRCODE_SYNTAX_ERROR),
54003 : errmsg("multiple LIMIT clauses not allowed"),
54004 : parser_errposition(limitClause->countLoc)));
54005 : stmt->limitCount = limitClause->limitCount;
54006 : }
54007 : if (limitClause)
54008 : {
54009 : /* If there was a conflict, we must have detected it above */
54010 : Assert(!stmt->limitOption);
54011 : if (!stmt->sortClause && limitClause->limitOption == LIMIT_OPTION_WITH_TIES)
54012 : ereport(ERROR,
54013 : (errcode(ERRCODE_SYNTAX_ERROR),
54014 : errmsg("WITH TIES cannot be specified without ORDER BY clause"),
54015 : parser_errposition(limitClause->optionLoc)));
54016 : if (limitClause->limitOption == LIMIT_OPTION_WITH_TIES && stmt->lockingClause)
54017 : {
54018 : ListCell *lc;
54019 :
54020 : foreach(lc, stmt->lockingClause)
54021 : {
54022 : LockingClause *lock = lfirst_node(LockingClause, lc);
54023 :
54024 : if (lock->waitPolicy == LockWaitSkip)
54025 : ereport(ERROR,
54026 : (errcode(ERRCODE_SYNTAX_ERROR),
54027 : errmsg("%s and %s options cannot be used together",
54028 : "SKIP LOCKED", "WITH TIES"),
54029 : parser_errposition(limitClause->optionLoc)));
54030 : }
54031 : }
54032 : stmt->limitOption = limitClause->limitOption;
54033 : }
54034 : if (withClause)
54035 : {
54036 : if (stmt->withClause)
54037 : ereport(ERROR,
54038 : (errcode(ERRCODE_SYNTAX_ERROR),
54039 : errmsg("multiple WITH clauses not allowed"),
54040 : parser_errposition(exprLocation((Node *) withClause))));
54041 : stmt->withClause = withClause;
54042 :
54043 : /* Update SelectStmt's location to the start of the WITH clause */
54044 : stmt->stmt_location = withClause->location;
54045 : }
54046 : }
54047 :
54048 : static Node *
54049 : makeSetOp(SetOperation op, bool all, Node *larg, Node *rarg, int location)
54050 : {
54051 : SelectStmt *n = makeNode(SelectStmt);
54052 :
54053 : n->op = op;
54054 : n->all = all;
54055 : n->larg = (SelectStmt *) larg;
54056 : n->rarg = (SelectStmt *) rarg;
54057 : n->stmt_location = location;
54058 : return (Node *) n;
54059 : }
54060 :
54061 : /* SystemFuncName()
54062 : * Build a properly-qualified reference to a built-in function.
54063 : */
54064 : List *
54065 : SystemFuncName(char *name)
54066 : {
54067 : return list_make2(makeString("pg_catalog"), makeString(name));
54068 : }
54069 :
54070 : /* SystemTypeName()
54071 : * Build a properly-qualified reference to a built-in type.
54072 : *
54073 : * typmod is defaulted, but may be changed afterwards by caller.
54074 : * Likewise for the location.
54075 : */
54076 : TypeName *
54077 : SystemTypeName(char *name)
54078 : {
54079 : return makeTypeNameFromNameList(list_make2(makeString("pg_catalog"),
54080 : makeString(name)));
54081 : }
54082 :
54083 : /* doNegate()
54084 : * Handle negation of a numeric constant.
54085 : *
54086 : * Formerly, we did this here because the optimizer couldn't cope with
54087 : * indexquals that looked like "var = -4" --- it wants "var = const"
54088 : * and a unary minus operator applied to a constant didn't qualify.
54089 : * As of Postgres 7.0, that problem doesn't exist anymore because there
54090 : * is a constant-subexpression simplifier in the optimizer. However,
54091 : * there's still a good reason for doing this here, which is that we can
54092 : * postpone committing to a particular internal representation for simple
54093 : * negative constants. It's better to leave "-123.456" in string form
54094 : * until we know what the desired type is.
54095 : */
54096 : static Node *
54097 : doNegate(Node *n, int location)
54098 : {
54099 : if (IsA(n, A_Const))
54100 : {
54101 : A_Const *con = (A_Const *) n;
54102 :
54103 : /* report the constant's location as that of the '-' sign */
54104 : con->location = location;
54105 :
54106 : if (IsA(&con->val, Integer))
54107 : {
54108 : con->val.ival.ival = -con->val.ival.ival;
54109 : return n;
54110 : }
54111 : if (IsA(&con->val, Float))
54112 : {
54113 : doNegateFloat(&con->val.fval);
54114 : return n;
54115 : }
54116 : }
54117 :
54118 : return (Node *) makeSimpleA_Expr(AEXPR_OP, "-", NULL, n, location);
54119 : }
54120 :
54121 : static void
54122 : doNegateFloat(Float *v)
54123 : {
54124 : char *oldval = v->fval;
54125 :
54126 : if (*oldval == '+')
54127 : oldval++;
54128 : if (*oldval == '-')
54129 : v->fval = oldval + 1; /* just strip the '-' */
54130 : else
54131 : v->fval = psprintf("-%s", oldval);
54132 : }
54133 :
54134 : static Node *
54135 : makeAndExpr(Node *lexpr, Node *rexpr, int location)
54136 : {
54137 : /* Flatten "a AND b AND c ..." to a single BoolExpr on sight */
54138 : if (IsA(lexpr, BoolExpr))
54139 : {
54140 : BoolExpr *blexpr = (BoolExpr *) lexpr;
54141 :
54142 : if (blexpr->boolop == AND_EXPR)
54143 : {
54144 : blexpr->args = lappend(blexpr->args, rexpr);
54145 : return (Node *) blexpr;
54146 : }
54147 : }
54148 : return (Node *) makeBoolExpr(AND_EXPR, list_make2(lexpr, rexpr), location);
54149 : }
54150 :
54151 : static Node *
54152 : makeOrExpr(Node *lexpr, Node *rexpr, int location)
54153 : {
54154 : /* Flatten "a OR b OR c ..." to a single BoolExpr on sight */
54155 : if (IsA(lexpr, BoolExpr))
54156 : {
54157 : BoolExpr *blexpr = (BoolExpr *) lexpr;
54158 :
54159 : if (blexpr->boolop == OR_EXPR)
54160 : {
54161 : blexpr->args = lappend(blexpr->args, rexpr);
54162 : return (Node *) blexpr;
54163 : }
54164 : }
54165 : return (Node *) makeBoolExpr(OR_EXPR, list_make2(lexpr, rexpr), location);
54166 : }
54167 :
54168 : static Node *
54169 : makeNotExpr(Node *expr, int location)
54170 : {
54171 : return (Node *) makeBoolExpr(NOT_EXPR, list_make1(expr), location);
54172 : }
54173 :
54174 : static Node *
54175 : makeAArrayExpr(List *elements, int location)
54176 : {
54177 : A_ArrayExpr *n = makeNode(A_ArrayExpr);
54178 :
54179 : n->elements = elements;
54180 : n->location = location;
54181 : return (Node *) n;
54182 : }
54183 :
54184 : static Node *
54185 : makeSQLValueFunction(SQLValueFunctionOp op, int32 typmod, int location)
54186 : {
54187 : SQLValueFunction *svf = makeNode(SQLValueFunction);
54188 :
54189 : svf->op = op;
54190 : /* svf->type will be filled during parse analysis */
54191 : svf->typmod = typmod;
54192 : svf->location = location;
54193 : return (Node *) svf;
54194 : }
54195 :
54196 : static Node *
54197 : makeXmlExpr(XmlExprOp op, char *name, List *named_args, List *args,
54198 : int location)
54199 : {
54200 : XmlExpr *x = makeNode(XmlExpr);
54201 :
54202 : x->op = op;
54203 : x->name = name;
54204 :
54205 : /*
54206 : * named_args is a list of ResTarget; it'll be split apart into separate
54207 : * expression and name lists in transformXmlExpr().
54208 : */
54209 : x->named_args = named_args;
54210 : x->arg_names = NIL;
54211 : x->args = args;
54212 : /* xmloption, if relevant, must be filled in by caller */
54213 : /* type and typmod will be filled in during parse analysis */
54214 : x->type = InvalidOid; /* marks the node as not analyzed */
54215 : x->location = location;
54216 : return (Node *) x;
54217 : }
54218 :
54219 : /*
54220 : * Merge the input and output parameters of a table function.
54221 : */
54222 : static List *
54223 : mergeTableFuncParameters(List *func_args, List *columns, core_yyscan_t yyscanner)
54224 : {
54225 : ListCell *lc;
54226 :
54227 : /* Explicit OUT and INOUT parameters shouldn't be used in this syntax */
54228 : foreach(lc, func_args)
54229 : {
54230 : FunctionParameter *p = (FunctionParameter *) lfirst(lc);
54231 :
54232 : if (p->mode != FUNC_PARAM_DEFAULT &&
54233 : p->mode != FUNC_PARAM_IN &&
54234 : p->mode != FUNC_PARAM_VARIADIC)
54235 : ereport(ERROR,
54236 : (errcode(ERRCODE_SYNTAX_ERROR),
54237 : errmsg("OUT and INOUT arguments aren't allowed in TABLE functions"),
54238 : parser_errposition(p->location)));
54239 : }
54240 :
54241 : return list_concat(func_args, columns);
54242 : }
54243 :
54244 : /*
54245 : * Determine return type of a TABLE function. A single result column
54246 : * returns setof that column's type; otherwise return setof record.
54247 : */
54248 : static TypeName *
54249 : TableFuncTypeName(List *columns)
54250 : {
54251 : TypeName *result;
54252 :
54253 : if (list_length(columns) == 1)
54254 : {
54255 : FunctionParameter *p = (FunctionParameter *) linitial(columns);
54256 :
54257 : result = copyObject(p->argType);
54258 : }
54259 : else
54260 : result = SystemTypeName("record");
54261 :
54262 : result->setof = true;
54263 :
54264 : return result;
54265 : }
54266 :
54267 : /*
54268 : * Convert a list of (dotted) names to a RangeVar (like
54269 : * makeRangeVarFromNameList, but with position support). The
54270 : * "AnyName" refers to the any_name production in the grammar.
54271 : */
54272 : static RangeVar *
54273 : makeRangeVarFromAnyName(List *names, int position, core_yyscan_t yyscanner)
54274 : {
54275 : RangeVar *r = makeNode(RangeVar);
54276 :
54277 : switch (list_length(names))
54278 : {
54279 : case 1:
54280 : r->catalogname = NULL;
54281 : r->schemaname = NULL;
54282 : r->relname = strVal(linitial(names));
54283 : break;
54284 : case 2:
54285 : r->catalogname = NULL;
54286 : r->schemaname = strVal(linitial(names));
54287 : r->relname = strVal(lsecond(names));
54288 : break;
54289 : case 3:
54290 : r->catalogname = strVal(linitial(names));
54291 : r->schemaname = strVal(lsecond(names));
54292 : r->relname = strVal(lthird(names));
54293 : break;
54294 : default:
54295 : ereport(ERROR,
54296 : (errcode(ERRCODE_SYNTAX_ERROR),
54297 : errmsg("improper qualified name (too many dotted names): %s",
54298 : NameListToString(names)),
54299 : parser_errposition(position)));
54300 : break;
54301 : }
54302 :
54303 : r->relpersistence = RELPERSISTENCE_PERMANENT;
54304 : r->location = position;
54305 :
54306 : return r;
54307 : }
54308 :
54309 : /*
54310 : * Convert a relation_name with name and namelist to a RangeVar using
54311 : * makeRangeVar.
54312 : */
54313 : static RangeVar *
54314 : makeRangeVarFromQualifiedName(char *name, List *namelist, int location,
54315 : core_yyscan_t yyscanner)
54316 : {
54317 : RangeVar *r;
54318 :
54319 : check_qualified_name(namelist, yyscanner);
54320 : r = makeRangeVar(NULL, NULL, location);
54321 :
54322 : switch (list_length(namelist))
54323 : {
54324 : case 1:
54325 : r->catalogname = NULL;
54326 : r->schemaname = name;
54327 : r->relname = strVal(linitial(namelist));
54328 : break;
54329 : case 2:
54330 : r->catalogname = name;
54331 : r->schemaname = strVal(linitial(namelist));
54332 : r->relname = strVal(lsecond(namelist));
54333 : break;
54334 : default:
54335 : ereport(ERROR,
54336 : errcode(ERRCODE_SYNTAX_ERROR),
54337 : errmsg("improper qualified name (too many dotted names): %s",
54338 : NameListToString(lcons(makeString(name), namelist))),
54339 : parser_errposition(location));
54340 : break;
54341 : }
54342 :
54343 : return r;
54344 : }
54345 :
54346 : /* Separate Constraint nodes from COLLATE clauses in a ColQualList */
54347 : static void
54348 : SplitColQualList(List *qualList,
54349 : List **constraintList, CollateClause **collClause,
54350 : core_yyscan_t yyscanner)
54351 : {
54352 : ListCell *cell;
54353 :
54354 : *collClause = NULL;
54355 : foreach(cell, qualList)
54356 : {
54357 : Node *n = (Node *) lfirst(cell);
54358 :
54359 : if (IsA(n, Constraint))
54360 : {
54361 : /* keep it in list */
54362 : continue;
54363 : }
54364 : if (IsA(n, CollateClause))
54365 : {
54366 : CollateClause *c = (CollateClause *) n;
54367 :
54368 : if (*collClause)
54369 : ereport(ERROR,
54370 : (errcode(ERRCODE_SYNTAX_ERROR),
54371 : errmsg("multiple COLLATE clauses not allowed"),
54372 : parser_errposition(c->location)));
54373 : *collClause = c;
54374 : }
54375 : else
54376 : elog(ERROR, "unexpected node type %d", (int) n->type);
54377 : /* remove non-Constraint nodes from qualList */
54378 : qualList = foreach_delete_current(qualList, cell);
54379 : }
54380 : *constraintList = qualList;
54381 : }
54382 :
54383 : /*
54384 : * Process result of ConstraintAttributeSpec, and set appropriate bool flags
54385 : * in the output command node. Pass NULL for any flags the particular
54386 : * command doesn't support.
54387 : */
54388 : static void
54389 : processCASbits(int cas_bits, int location, const char *constrType,
54390 : bool *deferrable, bool *initdeferred, bool *is_enforced,
54391 : bool *not_valid, bool *no_inherit, core_yyscan_t yyscanner)
54392 : {
54393 : /* defaults */
54394 : if (deferrable)
54395 : *deferrable = false;
54396 : if (initdeferred)
54397 : *initdeferred = false;
54398 : if (not_valid)
54399 : *not_valid = false;
54400 : if (is_enforced)
54401 : *is_enforced = true;
54402 :
54403 : if (cas_bits & (CAS_DEFERRABLE | CAS_INITIALLY_DEFERRED))
54404 : {
54405 : if (deferrable)
54406 : *deferrable = true;
54407 : else
54408 : ereport(ERROR,
54409 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
54410 : /* translator: %s is CHECK, UNIQUE, or similar */
54411 : errmsg("%s constraints cannot be marked DEFERRABLE",
54412 : constrType),
54413 : parser_errposition(location)));
54414 : }
54415 :
54416 : if (cas_bits & CAS_INITIALLY_DEFERRED)
54417 : {
54418 : if (initdeferred)
54419 : *initdeferred = true;
54420 : else
54421 : ereport(ERROR,
54422 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
54423 : /* translator: %s is CHECK, UNIQUE, or similar */
54424 : errmsg("%s constraints cannot be marked DEFERRABLE",
54425 : constrType),
54426 : parser_errposition(location)));
54427 : }
54428 :
54429 : if (cas_bits & CAS_NOT_VALID)
54430 : {
54431 : if (not_valid)
54432 : *not_valid = true;
54433 : else
54434 : ereport(ERROR,
54435 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
54436 : /* translator: %s is CHECK, UNIQUE, or similar */
54437 : errmsg("%s constraints cannot be marked NOT VALID",
54438 : constrType),
54439 : parser_errposition(location)));
54440 : }
54441 :
54442 : if (cas_bits & CAS_NO_INHERIT)
54443 : {
54444 : if (no_inherit)
54445 : *no_inherit = true;
54446 : else
54447 : ereport(ERROR,
54448 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
54449 : /* translator: %s is CHECK, UNIQUE, or similar */
54450 : errmsg("%s constraints cannot be marked NO INHERIT",
54451 : constrType),
54452 : parser_errposition(location)));
54453 : }
54454 :
54455 : if (cas_bits & CAS_NOT_ENFORCED)
54456 : {
54457 : if (is_enforced)
54458 : *is_enforced = false;
54459 : else
54460 : ereport(ERROR,
54461 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
54462 : /* translator: %s is CHECK, UNIQUE, or similar */
54463 : errmsg("%s constraints cannot be marked NOT ENFORCED",
54464 : constrType),
54465 : parser_errposition(location)));
54466 :
54467 : /*
54468 : * NB: The validated status is irrelevant when the constraint is set to
54469 : * NOT ENFORCED, but for consistency, it should be set accordingly.
54470 : * This ensures that if the constraint is later changed to ENFORCED, it
54471 : * will automatically be in the correct NOT VALIDATED state.
54472 : */
54473 : if (not_valid)
54474 : *not_valid = true;
54475 : }
54476 :
54477 : if (cas_bits & CAS_ENFORCED)
54478 : {
54479 : if (is_enforced)
54480 : *is_enforced = true;
54481 : else
54482 : ereport(ERROR,
54483 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
54484 : /* translator: %s is CHECK, UNIQUE, or similar */
54485 : errmsg("%s constraints cannot be marked ENFORCED",
54486 : constrType),
54487 : parser_errposition(location)));
54488 : }
54489 : }
54490 :
54491 : /*
54492 : * Parse a user-supplied partition strategy string into parse node
54493 : * PartitionStrategy representation, or die trying.
54494 : */
54495 : static PartitionStrategy
54496 : parsePartitionStrategy(char *strategy, int location, core_yyscan_t yyscanner)
54497 : {
54498 : if (pg_strcasecmp(strategy, "list") == 0)
54499 : return PARTITION_STRATEGY_LIST;
54500 : else if (pg_strcasecmp(strategy, "range") == 0)
54501 : return PARTITION_STRATEGY_RANGE;
54502 : else if (pg_strcasecmp(strategy, "hash") == 0)
54503 : return PARTITION_STRATEGY_HASH;
54504 :
54505 : ereport(ERROR,
54506 : (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
54507 : errmsg("unrecognized partitioning strategy \"%s\"", strategy),
54508 : parser_errposition(location)));
54509 : return PARTITION_STRATEGY_LIST; /* keep compiler quiet */
54510 :
54511 : }
54512 :
54513 : /*
54514 : * Process pubobjspec_list to check for errors in any of the objects and
54515 : * convert PUBLICATIONOBJ_CONTINUATION into appropriate PublicationObjSpecType.
54516 : */
54517 : static void
54518 : preprocess_pubobj_list(List *pubobjspec_list, core_yyscan_t yyscanner)
54519 : {
54520 : ListCell *cell;
54521 : PublicationObjSpec *pubobj;
54522 : PublicationObjSpecType prevobjtype = PUBLICATIONOBJ_CONTINUATION;
54523 :
54524 : if (!pubobjspec_list)
54525 : return;
54526 :
54527 : pubobj = (PublicationObjSpec *) linitial(pubobjspec_list);
54528 : if (pubobj->pubobjtype == PUBLICATIONOBJ_CONTINUATION)
54529 : ereport(ERROR,
54530 : errcode(ERRCODE_SYNTAX_ERROR),
54531 : errmsg("invalid publication object list"),
54532 : errdetail("One of TABLE or TABLES IN SCHEMA must be specified before a standalone table or schema name."),
54533 : parser_errposition(pubobj->location));
54534 :
54535 : foreach(cell, pubobjspec_list)
54536 : {
54537 : pubobj = (PublicationObjSpec *) lfirst(cell);
54538 :
54539 : if (pubobj->pubobjtype == PUBLICATIONOBJ_CONTINUATION)
54540 : pubobj->pubobjtype = prevobjtype;
54541 :
54542 : if (pubobj->pubobjtype == PUBLICATIONOBJ_TABLE)
54543 : {
54544 : /* relation name or pubtable must be set for this type of object */
54545 : if (!pubobj->name && !pubobj->pubtable)
54546 : ereport(ERROR,
54547 : errcode(ERRCODE_SYNTAX_ERROR),
54548 : errmsg("invalid table name"),
54549 : parser_errposition(pubobj->location));
54550 :
54551 : if (pubobj->name)
54552 : {
54553 : /* convert it to PublicationTable */
54554 : PublicationTable *pubtable = makeNode(PublicationTable);
54555 :
54556 : pubtable->relation =
54557 : makeRangeVar(NULL, pubobj->name, pubobj->location);
54558 : pubobj->pubtable = pubtable;
54559 : pubobj->name = NULL;
54560 : }
54561 : }
54562 : else if (pubobj->pubobjtype == PUBLICATIONOBJ_TABLES_IN_SCHEMA ||
54563 : pubobj->pubobjtype == PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA)
54564 : {
54565 : /* WHERE clause is not allowed on a schema object */
54566 : if (pubobj->pubtable && pubobj->pubtable->whereClause)
54567 : ereport(ERROR,
54568 : errcode(ERRCODE_SYNTAX_ERROR),
54569 : errmsg("WHERE clause not allowed for schema"),
54570 : parser_errposition(pubobj->location));
54571 :
54572 : /* Column list is not allowed on a schema object */
54573 : if (pubobj->pubtable && pubobj->pubtable->columns)
54574 : ereport(ERROR,
54575 : errcode(ERRCODE_SYNTAX_ERROR),
54576 : errmsg("column specification not allowed for schema"),
54577 : parser_errposition(pubobj->location));
54578 :
54579 : /*
54580 : * We can distinguish between the different type of schema objects
54581 : * based on whether name and pubtable is set.
54582 : */
54583 : if (pubobj->name)
54584 : pubobj->pubobjtype = PUBLICATIONOBJ_TABLES_IN_SCHEMA;
54585 : else if (!pubobj->name && !pubobj->pubtable)
54586 : pubobj->pubobjtype = PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA;
54587 : else
54588 : ereport(ERROR,
54589 : errcode(ERRCODE_SYNTAX_ERROR),
54590 : errmsg("invalid schema name"),
54591 : parser_errposition(pubobj->location));
54592 : }
54593 :
54594 : prevobjtype = pubobj->pubobjtype;
54595 : }
54596 : }
54597 :
54598 : /*----------
54599 : * Recursive view transformation
54600 : *
54601 : * Convert
54602 : *
54603 : * CREATE RECURSIVE VIEW relname (aliases) AS query
54604 : *
54605 : * to
54606 : *
54607 : * CREATE VIEW relname (aliases) AS
54608 : * WITH RECURSIVE relname (aliases) AS (query)
54609 : * SELECT aliases FROM relname
54610 : *
54611 : * Actually, just the WITH ... part, which is then inserted into the original
54612 : * view definition as the query.
54613 : * ----------
54614 : */
54615 : static Node *
54616 : makeRecursiveViewSelect(char *relname, List *aliases, Node *query)
54617 : {
54618 : SelectStmt *s = makeNode(SelectStmt);
54619 : WithClause *w = makeNode(WithClause);
54620 : CommonTableExpr *cte = makeNode(CommonTableExpr);
54621 : List *tl = NIL;
54622 : ListCell *lc;
54623 :
54624 : /* create common table expression */
54625 : cte->ctename = relname;
54626 : cte->aliascolnames = aliases;
54627 : cte->ctematerialized = CTEMaterializeDefault;
54628 : cte->ctequery = query;
54629 : cte->location = -1;
54630 :
54631 : /* create WITH clause and attach CTE */
54632 : w->recursive = true;
54633 : w->ctes = list_make1(cte);
54634 : w->location = -1;
54635 :
54636 : /*
54637 : * create target list for the new SELECT from the alias list of the
54638 : * recursive view specification
54639 : */
54640 : foreach(lc, aliases)
54641 : {
54642 : ResTarget *rt = makeNode(ResTarget);
54643 :
54644 : rt->name = NULL;
54645 : rt->indirection = NIL;
54646 : rt->val = makeColumnRef(strVal(lfirst(lc)), NIL, -1, 0);
54647 : rt->location = -1;
54648 :
54649 : tl = lappend(tl, rt);
54650 : }
54651 :
54652 : /*
54653 : * create new SELECT combining WITH clause, target list, and fake FROM
54654 : * clause
54655 : */
54656 : s->withClause = w;
54657 : s->targetList = tl;
54658 : s->fromClause = list_make1(makeRangeVar(NULL, relname, -1));
54659 :
54660 : return (Node *) s;
54661 : }
54662 :
54663 : /* parser_init()
54664 : * Initialize to parse one query string
54665 : */
54666 : void
54667 : parser_init(base_yy_extra_type *yyext)
54668 : {
54669 : yyext->parsetree = NIL; /* in case grammar forgets to set it */
54670 : }
|