1/* A Bison parser, made by GNU Bison 2.3. */
2
3/* Skeleton implementation for Bison's Yacc-like parsers in C
4
5 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6 Free Software Foundation, 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 2, or (at your option)
11 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, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 Boston, MA 02110-1301, USA. */
22
23/* As a special exception, you may create a larger work that contains
24 part or all of the Bison parser skeleton and distribute that work
25 under terms of your choice, so long as that work isn't itself a
26 parser generator using the skeleton or a modified version thereof
27 as a parser skeleton. Alternatively, if you modify or redistribute
28 the parser skeleton itself, you may (at your option) remove this
29 special exception, which will cause the skeleton and the resulting
30 Bison output files to be licensed under the GNU General Public
31 License without this special exception.
32
33 This special exception was added by the Free Software Foundation in
34 version 2.2 of Bison. */
35
36/* C LALR(1) parser skeleton written by Richard Stallman, by
37 simplifying the original so-called "semantic" parser. */
38
39/* All symbols defined below should begin with yy or YY, to avoid
40 infringing on user name space. This should be done even for local
41 variables, as they might otherwise be expanded by user macros.
42 There are some unavoidable exceptions within include files to
43 define necessary library symbols; they are noted "INFRINGES ON
44 USER NAME SPACE" below. */
45
46/* Identify Bison output. */
47#define YYBISON 1
48
49/* Bison version. */
50#define YYBISON_VERSION "2.3"
51
52/* Skeleton name. */
53#define YYSKELETON_NAME "yacc.c"
54
55/* Pure parsers. */
56#define YYPURE 1
57
58/* Using locations. */
59#define YYLSP_NEEDED 1
60
61/* Substitute the variable and function names. */
62#define yyparse base_yyparse
63#define yylex base_yylex
64#define yyerror base_yyerror
65#define yylval base_yylval
66#define yychar base_yychar
67#define yydebug base_yydebug
68#define yynerrs base_yynerrs
69#define yylloc base_yylloc
70
71/* Tokens. */
72#ifndef YYTOKENTYPE
73# define YYTOKENTYPE
74 /* Put the tokens into the symbol table, so that GDB and other debuggers
75 know about them. */
76 enum yytokentype {
77 IDENT = 258,
78 FCONST = 259,
79 SCONST = 260,
80 BCONST = 261,
81 XCONST = 262,
82 Op = 263,
83 ICONST = 264,
84 PARAM = 265,
85 TYPECAST = 266,
86 DOT_DOT = 267,
87 COLON_EQUALS = 268,
88 EQUALS_GREATER = 269,
89 LESS_EQUALS = 270,
90 GREATER_EQUALS = 271,
91 NOT_EQUALS = 272,
92 ABORT_P = 273,
93 ABSOLUTE_P = 274,
94 ACCESS = 275,
95 ACTION = 276,
96 ADD_P = 277,
97 ADMIN = 278,
98 AFTER = 279,
99 AGGREGATE = 280,
100 ALL = 281,
101 ALSO = 282,
102 ALTER = 283,
103 ALWAYS = 284,
104 ANALYSE = 285,
105 ANALYZE = 286,
106 AND = 287,
107 ANY = 288,
108 ARRAY = 289,
109 AS = 290,
110 ASC_P = 291,
111 ASSERTION = 292,
112 ASSIGNMENT = 293,
113 ASYMMETRIC = 294,
114 AT = 295,
115 ATTACH = 296,
116 ATTRIBUTE = 297,
117 AUTHORIZATION = 298,
118 BACKWARD = 299,
119 BEFORE = 300,
120 BEGIN_P = 301,
121 BETWEEN = 302,
122 BIGINT = 303,
123 BINARY = 304,
124 BIT = 305,
125 BOOLEAN_P = 306,
126 BOTH = 307,
127 BY = 308,
128 CACHE = 309,
129 CALLED = 310,
130 CASCADE = 311,
131 CASCADED = 312,
132 CASE = 313,
133 CAST = 314,
134 CATALOG_P = 315,
135 CHAIN = 316,
136 CHAR_P = 317,
137 CHARACTER = 318,
138 CHARACTERISTICS = 319,
139 CHECK_P = 320,
140 CHECKPOINT = 321,
141 CLASS = 322,
142 CLOSE = 323,
143 CLUSTER = 324,
144 COALESCE = 325,
145 COLLATE = 326,
146 COLLATION = 327,
147 COLUMN = 328,
148 COLUMNS = 329,
149 COMMENT = 330,
150 COMMENTS = 331,
151 COMMIT = 332,
152 COMMITTED = 333,
153 CONCURRENTLY = 334,
154 CONFIGURATION = 335,
155 CONFLICT = 336,
156 CONNECTION = 337,
157 CONSTRAINT = 338,
158 CONSTRAINTS = 339,
159 CONTENT_P = 340,
160 CONTINUE_P = 341,
161 CONVERSION_P = 342,
162 COPY = 343,
163 COST = 344,
164 CREATE_P = 345,
165 CROSS = 346,
166 CSV = 347,
167 CUBE = 348,
168 CURRENT_P = 349,
169 CURRENT_CATALOG = 350,
170 CURRENT_DATE = 351,
171 CURRENT_ROLE = 352,
172 CURRENT_SCHEMA = 353,
173 CURRENT_TIME = 354,
174 CURRENT_TIMESTAMP = 355,
175 CURRENT_USER = 356,
176 CURSOR = 357,
177 CYCLE = 358,
178 DATA_P = 359,
179 DATABASE = 360,
180 DAY_P = 361,
181 DEALLOCATE = 362,
182 DEC = 363,
183 DECIMAL_P = 364,
184 DECLARE = 365,
185 DEFAULT = 366,
186 DEFAULTS = 367,
187 DEFERRABLE = 368,
188 DEFERRED = 369,
189 DEFINER = 370,
190 DELETE_P = 371,
191 DELIMITER = 372,
192 DELIMITERS = 373,
193 DEPENDS = 374,
194 DESC_P = 375,
195 DESCRIBE = 376,
196 DETACH = 377,
197 DICTIONARY = 378,
198 DISABLE_P = 379,
199 DISCARD = 380,
200 DISTINCT = 381,
201 DO = 382,
202 DOCUMENT_P = 383,
203 DOMAIN_P = 384,
204 DOUBLE_P = 385,
205 DROP = 386,
206 EACH = 387,
207 ELSE = 388,
208 ENABLE_P = 389,
209 ENCODING = 390,
210 ENCRYPTED = 391,
211 END_P = 392,
212 ENUM_P = 393,
213 ESCAPE = 394,
214 EVENT = 395,
215 EXCEPT = 396,
216 EXCLUDE = 397,
217 EXCLUDING = 398,
218 EXCLUSIVE = 399,
219 EXECUTE = 400,
220 EXISTS = 401,
221 EXPLAIN = 402,
222 EXTENSION = 403,
223 EXTERNAL = 404,
224 EXTRACT = 405,
225 FALSE_P = 406,
226 FAMILY = 407,
227 FETCH = 408,
228 FILTER = 409,
229 FIRST_P = 410,
230 FLOAT_P = 411,
231 FOLLOWING = 412,
232 FOR = 413,
233 FORCE = 414,
234 FOREIGN = 415,
235 FORWARD = 416,
236 FREEZE = 417,
237 FROM = 418,
238 FULL = 419,
239 FUNCTION = 420,
240 FUNCTIONS = 421,
241 GENERATED = 422,
242 GLOBAL = 423,
243 GRANT = 424,
244 GRANTED = 425,
245 GREATEST = 426,
246 GROUP_P = 427,
247 GROUPING = 428,
248 HANDLER = 429,
249 HAVING = 430,
250 HEADER_P = 431,
251 HOLD = 432,
252 HOUR_P = 433,
253 IDENTITY_P = 434,
254 IF_P = 435,
255 ILIKE = 436,
256 IMMEDIATE = 437,
257 IMMUTABLE = 438,
258 IMPLICIT_P = 439,
259 IMPORT_P = 440,
260 IN_P = 441,
261 INCLUDING = 442,
262 INCREMENT = 443,
263 INDEX = 444,
264 INDEXES = 445,
265 INHERIT = 446,
266 INHERITS = 447,
267 INITIALLY = 448,
268 INLINE_P = 449,
269 INNER_P = 450,
270 INOUT = 451,
271 INPUT_P = 452,
272 INSENSITIVE = 453,
273 INSERT = 454,
274 INSTEAD = 455,
275 INT_P = 456,
276 INTEGER = 457,
277 INTERSECT = 458,
278 INTERVAL = 459,
279 INTO = 460,
280 INVOKER = 461,
281 IS = 462,
282 ISNULL = 463,
283 ISOLATION = 464,
284 JOIN = 465,
285 KEY = 466,
286 LABEL = 467,
287 LANGUAGE = 468,
288 LARGE_P = 469,
289 LAST_P = 470,
290 LATERAL_P = 471,
291 LEADING = 472,
292 LEAKPROOF = 473,
293 LEAST = 474,
294 LEFT = 475,
295 LEVEL = 476,
296 LIKE = 477,
297 LIMIT = 478,
298 LISTEN = 479,
299 LOAD = 480,
300 LOCAL = 481,
301 LOCALTIME = 482,
302 LOCALTIMESTAMP = 483,
303 LOCATION = 484,
304 LOCK_P = 485,
305 LOCKED = 486,
306 LOGGED = 487,
307 MAPPING = 488,
308 MATCH = 489,
309 MATERIALIZED = 490,
310 MAXVALUE = 491,
311 METHOD = 492,
312 MINUTE_P = 493,
313 MINVALUE = 494,
314 MODE = 495,
315 MONTH_P = 496,
316 MOVE = 497,
317 NAME_P = 498,
318 NAMES = 499,
319 NATIONAL = 500,
320 NATURAL = 501,
321 NCHAR = 502,
322 NEW = 503,
323 NEXT = 504,
324 NO = 505,
325 NONE = 506,
326 NOT = 507,
327 NOTHING = 508,
328 NOTIFY = 509,
329 NOTNULL = 510,
330 NOWAIT = 511,
331 NULL_P = 512,
332 NULLIF = 513,
333 NULLS_P = 514,
334 NUMERIC = 515,
335 OBJECT_P = 516,
336 OF = 517,
337 OFF = 518,
338 OFFSET = 519,
339 OIDS = 520,
340 OLD = 521,
341 ON = 522,
342 ONLY = 523,
343 OPERATOR = 524,
344 OPTION = 525,
345 OPTIONS = 526,
346 OR = 527,
347 ORDER = 528,
348 ORDINALITY = 529,
349 OUT_P = 530,
350 OUTER_P = 531,
351 OVER = 532,
352 OVERLAPS = 533,
353 OVERLAY = 534,
354 OVERRIDING = 535,
355 OWNED = 536,
356 OWNER = 537,
357 PARALLEL = 538,
358 PARSER = 539,
359 PARTIAL = 540,
360 PARTITION = 541,
361 PASSING = 542,
362 PASSWORD = 543,
363 PLACING = 544,
364 PLANS = 545,
365 POLICY = 546,
366 POSITION = 547,
367 PRAGMA_P = 548,
368 PRECEDING = 549,
369 PRECISION = 550,
370 PREPARE = 551,
371 PREPARED = 552,
372 PRESERVE = 553,
373 PRIMARY = 554,
374 PRIOR = 555,
375 PRIVILEGES = 556,
376 PROCEDURAL = 557,
377 PROCEDURE = 558,
378 PROGRAM = 559,
379 PUBLICATION = 560,
380 QUOTE = 561,
381 RANGE = 562,
382 READ_P = 563,
383 REAL = 564,
384 REASSIGN = 565,
385 RECHECK = 566,
386 RECURSIVE = 567,
387 REF = 568,
388 REFERENCES = 569,
389 REFERENCING = 570,
390 REFRESH = 571,
391 REINDEX = 572,
392 RELATIVE_P = 573,
393 RELEASE = 574,
394 RENAME = 575,
395 REPEATABLE = 576,
396 REPLACE = 577,
397 REPLICA = 578,
398 RESET = 579,
399 RESTART = 580,
400 RESTRICT = 581,
401 RETURNING = 582,
402 RETURNS = 583,
403 REVOKE = 584,
404 RIGHT = 585,
405 ROLE = 586,
406 ROLLBACK = 587,
407 ROLLUP = 588,
408 ROW = 589,
409 ROWS = 590,
410 RULE = 591,
411 SAVEPOINT = 592,
412 SCHEMA = 593,
413 SCHEMAS = 594,
414 SCROLL = 595,
415 SEARCH = 596,
416 SECOND_P = 597,
417 SECURITY = 598,
418 SELECT = 599,
419 SEQUENCE = 600,
420 SEQUENCES = 601,
421 SERIALIZABLE = 602,
422 SERVER = 603,
423 SESSION = 604,
424 SESSION_USER = 605,
425 SET = 606,
426 SETOF = 607,
427 SETS = 608,
428 SHARE = 609,
429 SHOW = 610,
430 SIMILAR = 611,
431 SIMPLE = 612,
432 SKIP = 613,
433 SMALLINT = 614,
434 SNAPSHOT = 615,
435 SOME = 616,
436 SQL_P = 617,
437 STABLE = 618,
438 STANDALONE_P = 619,
439 START = 620,
440 STATEMENT = 621,
441 STATISTICS = 622,
442 STDIN = 623,
443 STDOUT = 624,
444 STORAGE = 625,
445 STRICT_P = 626,
446 STRIP_P = 627,
447 SUBSCRIPTION = 628,
448 SUBSTRING = 629,
449 SYMMETRIC = 630,
450 SYSID = 631,
451 SYSTEM_P = 632,
452 TABLE = 633,
453 TABLES = 634,
454 TABLESAMPLE = 635,
455 TABLESPACE = 636,
456 TEMP = 637,
457 TEMPLATE = 638,
458 TEMPORARY = 639,
459 TEXT_P = 640,
460 THEN = 641,
461 TIME = 642,
462 TIMESTAMP = 643,
463 TO = 644,
464 TRAILING = 645,
465 TRANSACTION = 646,
466 TRANSFORM = 647,
467 TREAT = 648,
468 TRIGGER = 649,
469 TRIM = 650,
470 TRUE_P = 651,
471 TRUNCATE = 652,
472 TRUSTED = 653,
473 TYPE_P = 654,
474 TYPES_P = 655,
475 UNBOUNDED = 656,
476 UNCOMMITTED = 657,
477 UNENCRYPTED = 658,
478 UNION = 659,
479 UNIQUE = 660,
480 UNKNOWN = 661,
481 UNLISTEN = 662,
482 UNLOGGED = 663,
483 UNTIL = 664,
484 UPDATE = 665,
485 USER = 666,
486 USING = 667,
487 VACUUM = 668,
488 VALID = 669,
489 VALIDATE = 670,
490 VALIDATOR = 671,
491 VALUE_P = 672,
492 VALUES = 673,
493 VARCHAR = 674,
494 VARIADIC = 675,
495 VARYING = 676,
496 VERBOSE = 677,
497 VERSION_P = 678,
498 VIEW = 679,
499 VIEWS = 680,
500 VOLATILE = 681,
501 WHEN = 682,
502 WHERE = 683,
503 WHITESPACE_P = 684,
504 WINDOW = 685,
505 WITH = 686,
506 WITHIN = 687,
507 WITHOUT = 688,
508 WORK = 689,
509 WRAPPER = 690,
510 WRITE_P = 691,
511 XML_P = 692,
512 XMLATTRIBUTES = 693,
513 XMLCONCAT = 694,
514 XMLELEMENT = 695,
515 XMLEXISTS = 696,
516 XMLFOREST = 697,
517 XMLNAMESPACES = 698,
518 XMLPARSE = 699,
519 XMLPI = 700,
520 XMLROOT = 701,
521 XMLSERIALIZE = 702,
522 XMLTABLE = 703,
523 YEAR_P = 704,
524 YES_P = 705,
525 ZONE = 706,
526 NOT_LA = 707,
527 NULLS_LA = 708,
528 WITH_LA = 709,
529 POSTFIXOP = 710,
530 UMINUS = 711
531 };
532#endif
533/* Tokens. */
534#define IDENT 258
535#define FCONST 259
536#define SCONST 260
537#define BCONST 261
538#define XCONST 262
539#define Op 263
540#define ICONST 264
541#define PARAM 265
542#define TYPECAST 266
543#define DOT_DOT 267
544#define COLON_EQUALS 268
545#define EQUALS_GREATER 269
546#define LESS_EQUALS 270
547#define GREATER_EQUALS 271
548#define NOT_EQUALS 272
549#define ABORT_P 273
550#define ABSOLUTE_P 274
551#define ACCESS 275
552#define ACTION 276
553#define ADD_P 277
554#define ADMIN 278
555#define AFTER 279
556#define AGGREGATE 280
557#define ALL 281
558#define ALSO 282
559#define ALTER 283
560#define ALWAYS 284
561#define ANALYSE 285
562#define ANALYZE 286
563#define AND 287
564#define ANY 288
565#define ARRAY 289
566#define AS 290
567#define ASC_P 291
568#define ASSERTION 292
569#define ASSIGNMENT 293
570#define ASYMMETRIC 294
571#define AT 295
572#define ATTACH 296
573#define ATTRIBUTE 297
574#define AUTHORIZATION 298
575#define BACKWARD 299
576#define BEFORE 300
577#define BEGIN_P 301
578#define BETWEEN 302
579#define BIGINT 303
580#define BINARY 304
581#define BIT 305
582#define BOOLEAN_P 306
583#define BOTH 307
584#define BY 308
585#define CACHE 309
586#define CALLED 310
587#define CASCADE 311
588#define CASCADED 312
589#define CASE 313
590#define CAST 314
591#define CATALOG_P 315
592#define CHAIN 316
593#define CHAR_P 317
594#define CHARACTER 318
595#define CHARACTERISTICS 319
596#define CHECK_P 320
597#define CHECKPOINT 321
598#define CLASS 322
599#define CLOSE 323
600#define CLUSTER 324
601#define COALESCE 325
602#define COLLATE 326
603#define COLLATION 327
604#define COLUMN 328
605#define COLUMNS 329
606#define COMMENT 330
607#define COMMENTS 331
608#define COMMIT 332
609#define COMMITTED 333
610#define CONCURRENTLY 334
611#define CONFIGURATION 335
612#define CONFLICT 336
613#define CONNECTION 337
614#define CONSTRAINT 338
615#define CONSTRAINTS 339
616#define CONTENT_P 340
617#define CONTINUE_P 341
618#define CONVERSION_P 342
619#define COPY 343
620#define COST 344
621#define CREATE_P 345
622#define CROSS 346
623#define CSV 347
624#define CUBE 348
625#define CURRENT_P 349
626#define CURRENT_CATALOG 350
627#define CURRENT_DATE 351
628#define CURRENT_ROLE 352
629#define CURRENT_SCHEMA 353
630#define CURRENT_TIME 354
631#define CURRENT_TIMESTAMP 355
632#define CURRENT_USER 356
633#define CURSOR 357
634#define CYCLE 358
635#define DATA_P 359
636#define DATABASE 360
637#define DAY_P 361
638#define DEALLOCATE 362
639#define DEC 363
640#define DECIMAL_P 364
641#define DECLARE 365
642#define DEFAULT 366
643#define DEFAULTS 367
644#define DEFERRABLE 368
645#define DEFERRED 369
646#define DEFINER 370
647#define DELETE_P 371
648#define DELIMITER 372
649#define DELIMITERS 373
650#define DEPENDS 374
651#define DESC_P 375
652#define DESCRIBE 376
653#define DETACH 377
654#define DICTIONARY 378
655#define DISABLE_P 379
656#define DISCARD 380
657#define DISTINCT 381
658#define DO 382
659#define DOCUMENT_P 383
660#define DOMAIN_P 384
661#define DOUBLE_P 385
662#define DROP 386
663#define EACH 387
664#define ELSE 388
665#define ENABLE_P 389
666#define ENCODING 390
667#define ENCRYPTED 391
668#define END_P 392
669#define ENUM_P 393
670#define ESCAPE 394
671#define EVENT 395
672#define EXCEPT 396
673#define EXCLUDE 397
674#define EXCLUDING 398
675#define EXCLUSIVE 399
676#define EXECUTE 400
677#define EXISTS 401
678#define EXPLAIN 402
679#define EXTENSION 403
680#define EXTERNAL 404
681#define EXTRACT 405
682#define FALSE_P 406
683#define FAMILY 407
684#define FETCH 408
685#define FILTER 409
686#define FIRST_P 410
687#define FLOAT_P 411
688#define FOLLOWING 412
689#define FOR 413
690#define FORCE 414
691#define FOREIGN 415
692#define FORWARD 416
693#define FREEZE 417
694#define FROM 418
695#define FULL 419
696#define FUNCTION 420
697#define FUNCTIONS 421
698#define GENERATED 422
699#define GLOBAL 423
700#define GRANT 424
701#define GRANTED 425
702#define GREATEST 426
703#define GROUP_P 427
704#define GROUPING 428
705#define HANDLER 429
706#define HAVING 430
707#define HEADER_P 431
708#define HOLD 432
709#define HOUR_P 433
710#define IDENTITY_P 434
711#define IF_P 435
712#define ILIKE 436
713#define IMMEDIATE 437
714#define IMMUTABLE 438
715#define IMPLICIT_P 439
716#define IMPORT_P 440
717#define IN_P 441
718#define INCLUDING 442
719#define INCREMENT 443
720#define INDEX 444
721#define INDEXES 445
722#define INHERIT 446
723#define INHERITS 447
724#define INITIALLY 448
725#define INLINE_P 449
726#define INNER_P 450
727#define INOUT 451
728#define INPUT_P 452
729#define INSENSITIVE 453
730#define INSERT 454
731#define INSTEAD 455
732#define INT_P 456
733#define INTEGER 457
734#define INTERSECT 458
735#define INTERVAL 459
736#define INTO 460
737#define INVOKER 461
738#define IS 462
739#define ISNULL 463
740#define ISOLATION 464
741#define JOIN 465
742#define KEY 466
743#define LABEL 467
744#define LANGUAGE 468
745#define LARGE_P 469
746#define LAST_P 470
747#define LATERAL_P 471
748#define LEADING 472
749#define LEAKPROOF 473
750#define LEAST 474
751#define LEFT 475
752#define LEVEL 476
753#define LIKE 477
754#define LIMIT 478
755#define LISTEN 479
756#define LOAD 480
757#define LOCAL 481
758#define LOCALTIME 482
759#define LOCALTIMESTAMP 483
760#define LOCATION 484
761#define LOCK_P 485
762#define LOCKED 486
763#define LOGGED 487
764#define MAPPING 488
765#define MATCH 489
766#define MATERIALIZED 490
767#define MAXVALUE 491
768#define METHOD 492
769#define MINUTE_P 493
770#define MINVALUE 494
771#define MODE 495
772#define MONTH_P 496
773#define MOVE 497
774#define NAME_P 498
775#define NAMES 499
776#define NATIONAL 500
777#define NATURAL 501
778#define NCHAR 502
779#define NEW 503
780#define NEXT 504
781#define NO 505
782#define NONE 506
783#define NOT 507
784#define NOTHING 508
785#define NOTIFY 509
786#define NOTNULL 510
787#define NOWAIT 511
788#define NULL_P 512
789#define NULLIF 513
790#define NULLS_P 514
791#define NUMERIC 515
792#define OBJECT_P 516
793#define OF 517
794#define OFF 518
795#define OFFSET 519
796#define OIDS 520
797#define OLD 521
798#define ON 522
799#define ONLY 523
800#define OPERATOR 524
801#define OPTION 525
802#define OPTIONS 526
803#define OR 527
804#define ORDER 528
805#define ORDINALITY 529
806#define OUT_P 530
807#define OUTER_P 531
808#define OVER 532
809#define OVERLAPS 533
810#define OVERLAY 534
811#define OVERRIDING 535
812#define OWNED 536
813#define OWNER 537
814#define PARALLEL 538
815#define PARSER 539
816#define PARTIAL 540
817#define PARTITION 541
818#define PASSING 542
819#define PASSWORD 543
820#define PLACING 544
821#define PLANS 545
822#define POLICY 546
823#define POSITION 547
824#define PRAGMA_P 548
825#define PRECEDING 549
826#define PRECISION 550
827#define PREPARE 551
828#define PREPARED 552
829#define PRESERVE 553
830#define PRIMARY 554
831#define PRIOR 555
832#define PRIVILEGES 556
833#define PROCEDURAL 557
834#define PROCEDURE 558
835#define PROGRAM 559
836#define PUBLICATION 560
837#define QUOTE 561
838#define RANGE 562
839#define READ_P 563
840#define REAL 564
841#define REASSIGN 565
842#define RECHECK 566
843#define RECURSIVE 567
844#define REF 568
845#define REFERENCES 569
846#define REFERENCING 570
847#define REFRESH 571
848#define REINDEX 572
849#define RELATIVE_P 573
850#define RELEASE 574
851#define RENAME 575
852#define REPEATABLE 576
853#define REPLACE 577
854#define REPLICA 578
855#define RESET 579
856#define RESTART 580
857#define RESTRICT 581
858#define RETURNING 582
859#define RETURNS 583
860#define REVOKE 584
861#define RIGHT 585
862#define ROLE 586
863#define ROLLBACK 587
864#define ROLLUP 588
865#define ROW 589
866#define ROWS 590
867#define RULE 591
868#define SAVEPOINT 592
869#define SCHEMA 593
870#define SCHEMAS 594
871#define SCROLL 595
872#define SEARCH 596
873#define SECOND_P 597
874#define SECURITY 598
875#define SELECT 599
876#define SEQUENCE 600
877#define SEQUENCES 601
878#define SERIALIZABLE 602
879#define SERVER 603
880#define SESSION 604
881#define SESSION_USER 605
882#define SET 606
883#define SETOF 607
884#define SETS 608
885#define SHARE 609
886#define SHOW 610
887#define SIMILAR 611
888#define SIMPLE 612
889#define SKIP 613
890#define SMALLINT 614
891#define SNAPSHOT 615
892#define SOME 616
893#define SQL_P 617
894#define STABLE 618
895#define STANDALONE_P 619
896#define START 620
897#define STATEMENT 621
898#define STATISTICS 622
899#define STDIN 623
900#define STDOUT 624
901#define STORAGE 625
902#define STRICT_P 626
903#define STRIP_P 627
904#define SUBSCRIPTION 628
905#define SUBSTRING 629
906#define SYMMETRIC 630
907#define SYSID 631
908#define SYSTEM_P 632
909#define TABLE 633
910#define TABLES 634
911#define TABLESAMPLE 635
912#define TABLESPACE 636
913#define TEMP 637
914#define TEMPLATE 638
915#define TEMPORARY 639
916#define TEXT_P 640
917#define THEN 641
918#define TIME 642
919#define TIMESTAMP 643
920#define TO 644
921#define TRAILING 645
922#define TRANSACTION 646
923#define TRANSFORM 647
924#define TREAT 648
925#define TRIGGER 649
926#define TRIM 650
927#define TRUE_P 651
928#define TRUNCATE 652
929#define TRUSTED 653
930#define TYPE_P 654
931#define TYPES_P 655
932#define UNBOUNDED 656
933#define UNCOMMITTED 657
934#define UNENCRYPTED 658
935#define UNION 659
936#define UNIQUE 660
937#define UNKNOWN 661
938#define UNLISTEN 662
939#define UNLOGGED 663
940#define UNTIL 664
941#define UPDATE 665
942#define USER 666
943#define USING 667
944#define VACUUM 668
945#define VALID 669
946#define VALIDATE 670
947#define VALIDATOR 671
948#define VALUE_P 672
949#define VALUES 673
950#define VARCHAR 674
951#define VARIADIC 675
952#define VARYING 676
953#define VERBOSE 677
954#define VERSION_P 678
955#define VIEW 679
956#define VIEWS 680
957#define VOLATILE 681
958#define WHEN 682
959#define WHERE 683
960#define WHITESPACE_P 684
961#define WINDOW 685
962#define WITH 686
963#define WITHIN 687
964#define WITHOUT 688
965#define WORK 689
966#define WRAPPER 690
967#define WRITE_P 691
968#define XML_P 692
969#define XMLATTRIBUTES 693
970#define XMLCONCAT 694
971#define XMLELEMENT 695
972#define XMLEXISTS 696
973#define XMLFOREST 697
974#define XMLNAMESPACES 698
975#define XMLPARSE 699
976#define XMLPI 700
977#define XMLROOT 701
978#define XMLSERIALIZE 702
979#define XMLTABLE 703
980#define YEAR_P 704
981#define YES_P 705
982#define ZONE 706
983#define NOT_LA 707
984#define NULLS_LA 708
985#define WITH_LA 709
986#define POSTFIXOP 710
987#define UMINUS 711
988
989
990
991
992/* Copy the first part of user declarations. */
993#line 1 "third_party/libpg_query/grammar/grammar.y.tmp"
994
995#line 1 "third_party/libpg_query/grammar/grammar.hpp"
996/*#define YYDEBUG 1*/
997/*-------------------------------------------------------------------------
998 *
999 * gram.y
1000 * POSTGRESQL BISON rules/actions
1001 *
1002 * Portions Copyright (c) 1996-2017, PostgreSQL Global Development PGGroup
1003 * Portions Copyright (c) 1994, Regents of the University of California
1004 *
1005 *
1006 * IDENTIFICATION
1007 * src/backend/parser/gram.y
1008 *
1009 * HISTORY
1010 * AUTHOR DATE MAJOR EVENT
1011 * Andrew Yu Sept, 1994 POSTQUEL to SQL conversion
1012 * Andrew Yu Oct, 1994 lispy code conversion
1013 *
1014 * NOTES
1015 * CAPITALS are used to represent terminal symbols.
1016 * non-capitals are used to represent non-terminals.
1017 *
1018 * In general, nothing in this file should initiate database accesses
1019 * nor depend on changeable state (such as SET variables). If you do
1020 * database accesses, your code will fail when we have aborted the
1021 * current transaction and are just parsing commands to find the next
1022 * ROLLBACK or COMMIT. If you make use of SET variables, then you
1023 * will do the wrong thing in multi-query strings like this:
1024 * SET constraint_exclusion TO off; SELECT * FROM foo;
1025 * because the entire string is parsed by gram.y before the SET gets
1026 * executed. Anything that depends on the database or changeable state
1027 * should be handled during parse analysis so that it happens at the
1028 * right time not the wrong time.
1029 *
1030 * WARNINGS
1031 * If you use a list, make sure the datum is a node so that the printing
1032 * routines work.
1033 *
1034 * Sometimes we assign constants to makeStrings. Make sure we don't free
1035 * those.
1036 *
1037 *-------------------------------------------------------------------------
1038 */
1039#include "pg_functions.hpp"
1040#include <string.h>
1041
1042#include <ctype.h>
1043#include <limits.h>
1044
1045#include "nodes/makefuncs.hpp"
1046#include "nodes/nodeFuncs.hpp"
1047#include "parser/gramparse.hpp"
1048#include "parser/parser.hpp"
1049#include "parser/parse_expr.hpp"
1050#include "utils/datetime.hpp"
1051
1052#define DEFAULT_SCHEMA "main"
1053
1054/*
1055 * Location tracking support --- simpler than bison's default, since we only
1056 * want to track the start position not the end position of each nonterminal.
1057 */
1058#define YYLLOC_DEFAULT(Current, Rhs, N) \
1059 do { \
1060 if ((N) > 0) \
1061 (Current) = (Rhs)[1]; \
1062 else \
1063 (Current) = (-1); \
1064 } while (0)
1065
1066/*
1067 * The above macro assigns -1 (unknown) as the parse location of any
1068 * nonterminal that was reduced from an empty rule, or whose leftmost
1069 * component was reduced from an empty rule. This is problematic
1070 * for nonterminals defined like
1071 * OptFooList: / * EMPTY * / { ... } | OptFooList Foo { ... } ;
1072 * because we'll set -1 as the location during the first reduction and then
1073 * copy it during each subsequent reduction, leaving us with -1 for the
1074 * location even when the list is not empty. To fix that, do this in the
1075 * action for the nonempty rule(s):
1076 * if (@$ < 0) @$ = @2;
1077 * (Although we have many nonterminals that follow this pattern, we only
1078 * bother with fixing @$ like this when the nonterminal's parse location
1079 * is actually referenced in some rule.)
1080 *
1081 * A cleaner answer would be to make YYLLOC_DEFAULT scan all the Rhs
1082 * locations until it's found one that's not -1. Then we'd get a correct
1083 * location for any nonterminal that isn't entirely empty. But this way
1084 * would add overhead to every rule reduction, and so far there's not been
1085 * a compelling reason to pay that overhead.
1086 */
1087
1088/*
1089 * Bison doesn't allocate anything that needs to live across parser calls,
1090 * so we can easily have it use palloc instead of malloc. This prevents
1091 * memory leaks if we error out during parsing. Note this only works with
1092 * bison >= 2.0. However, in bison 1.875 the default is to use alloca()
1093 * if possible, so there's not really much problem anyhow, at least if
1094 * you're building with gcc.
1095 */
1096#define YYMALLOC palloc
1097#define YYFREE pfree
1098#define YYINITDEPTH 1000
1099
1100/* yields an integer bitmask of these flags: */
1101#define CAS_NOT_DEFERRABLE 0x01
1102#define CAS_DEFERRABLE 0x02
1103#define CAS_INITIALLY_IMMEDIATE 0x04
1104#define CAS_INITIALLY_DEFERRED 0x08
1105#define CAS_NOT_VALID 0x10
1106#define CAS_NO_INHERIT 0x20
1107
1108
1109#define parser_yyerror(msg) scanner_yyerror(msg, yyscanner)
1110#define parser_errposition(pos) scanner_errposition(pos, yyscanner)
1111
1112static void base_yyerror(YYLTYPE *yylloc, core_yyscan_t yyscanner,
1113 const char *msg);
1114static PGRawStmt *makeRawStmt(PGNode *stmt, int stmt_location);
1115static void updateRawStmtEnd(PGRawStmt *rs, int end_location);
1116static PGNode *makeColumnRef(char *colname, PGList *indirection,
1117 int location, core_yyscan_t yyscanner);
1118static PGNode *makeTypeCast(PGNode *arg, PGTypeName *tpname, int location);
1119static PGNode *makeStringConst(char *str, int location);
1120static PGNode *makeStringConstCast(char *str, int location, PGTypeName *tpname);
1121static PGNode *makeIntConst(int val, int location);
1122static PGNode *makeFloatConst(char *str, int location);
1123static PGNode *makeBitStringConst(char *str, int location);
1124static PGNode *makeNullAConst(int location);
1125static PGNode *makeAConst(PGValue *v, int location);
1126static PGNode *makeBoolAConst(bool state, int location);
1127static PGNode *makeParamRef(int number, int location);
1128static PGNode *makeParamRefCast(int number, int location, PGTypeName *tpname);
1129static void check_qualified_name(PGList *names, core_yyscan_t yyscanner);
1130static PGList *check_func_name(PGList *names, core_yyscan_t yyscanner);
1131static PGList *check_indirection(PGList *indirection, core_yyscan_t yyscanner);
1132static void insertSelectOptions(PGSelectStmt *stmt,
1133 PGList *sortClause, PGList *lockingClause,
1134 PGNode *limitOffset, PGNode *limitCount,
1135 PGWithClause *withClause,
1136 core_yyscan_t yyscanner);
1137static PGNode *makeSetOp(PGSetOperation op, bool all, PGNode *larg, PGNode *rarg);
1138static PGNode *doNegate(PGNode *n, int location);
1139static void doNegateFloat(PGValue *v);
1140static PGNode *makeAndExpr(PGNode *lexpr, PGNode *rexpr, int location);
1141static PGNode *makeOrExpr(PGNode *lexpr, PGNode *rexpr, int location);
1142static PGNode *makeNotExpr(PGNode *expr, int location);
1143static PGNode *makeSQLValueFunction(PGSQLValueFunctionOp op, int32_t typmod,
1144 int location);
1145static void SplitColQualList(PGList *qualList,
1146 PGList **constraintList, PGCollateClause **collClause,
1147 core_yyscan_t yyscanner);
1148static void processCASbits(int cas_bits, int location, const char *constrType,
1149 bool *deferrable, bool *initdeferred, bool *not_valid,
1150 bool *no_inherit, core_yyscan_t yyscanner);
1151static PGNode *makeRecursiveViewSelect(char *relname, PGList *aliases, PGNode *query);
1152
1153
1154
1155/* Enabling traces. */
1156#ifndef YYDEBUG
1157# define YYDEBUG 0
1158#endif
1159
1160/* Enabling verbose error messages. */
1161#ifdef YYERROR_VERBOSE
1162# undef YYERROR_VERBOSE
1163# define YYERROR_VERBOSE 1
1164#else
1165# define YYERROR_VERBOSE 0
1166#endif
1167
1168/* Enabling the token table. */
1169#ifndef YYTOKEN_TABLE
1170# define YYTOKEN_TABLE 0
1171#endif
1172
1173#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
1174typedef union YYSTYPE
1175#line 14 "third_party/libpg_query/grammar/grammar.y"
1176{
1177 core_YYSTYPE core_yystype;
1178 /* these fields must match core_YYSTYPE: */
1179 int ival;
1180 char *str;
1181 const char *keyword;
1182 const char *conststr;
1183
1184 char chr;
1185 bool boolean;
1186 PGJoinType jtype;
1187 PGDropBehavior dbehavior;
1188 PGOnCommitAction oncommit;
1189 PGList *list;
1190 PGNode *node;
1191 PGValue *value;
1192 PGObjectType objtype;
1193 PGTypeName *typnam;
1194 PGObjectWithArgs *objwithargs;
1195 PGDefElem *defelt;
1196 PGSortBy *sortby;
1197 PGWindowDef *windef;
1198 PGJoinExpr *jexpr;
1199 PGIndexElem *ielem;
1200 PGAlias *alias;
1201 PGRangeVar *range;
1202 PGIntoClause *into;
1203 PGWithClause *with;
1204 PGInferClause *infer;
1205 PGOnConflictClause *onconflict;
1206 PGAIndices *aind;
1207 PGResTarget *target;
1208 PGInsertStmt *istmt;
1209 PGVariableSetStmt *vsetstmt;
1210 PGOverridingKind override;
1211 PGSortByDir sortorder;
1212 PGSortByNulls nullorder;
1213 PGLockClauseStrength lockstrength;
1214 PGLockWaitPolicy lockwaitpolicy;
1215 PGSubLinkType subquerytype;
1216 PGViewCheckOption viewcheckoption;
1217}
1218/* Line 193 of yacc.c. */
1219#line 1220 "third_party/libpg_query/grammar/grammar_out.cpp"
1220 YYSTYPE;
1221# define yystype YYSTYPE /* obsolescent; will be withdrawn */
1222# define YYSTYPE_IS_DECLARED 1
1223# define YYSTYPE_IS_TRIVIAL 1
1224#endif
1225
1226#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
1227typedef struct YYLTYPE
1228{
1229 int first_line;
1230 int first_column;
1231 int last_line;
1232 int last_column;
1233} YYLTYPE;
1234# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
1235# define YYLTYPE_IS_DECLARED 1
1236# define YYLTYPE_IS_TRIVIAL 1
1237#endif
1238
1239
1240/* Copy the second part of user declarations. */
1241
1242
1243/* Line 216 of yacc.c. */
1244#line 1245 "third_party/libpg_query/grammar/grammar_out.cpp"
1245
1246#ifdef short
1247# undef short
1248#endif
1249
1250#ifdef YYTYPE_UINT8
1251typedef YYTYPE_UINT8 yytype_uint8;
1252#else
1253typedef unsigned char yytype_uint8;
1254#endif
1255
1256#ifdef YYTYPE_INT8
1257typedef YYTYPE_INT8 yytype_int8;
1258#elif (defined __STDC__ || defined __C99__FUNC__ \
1259 || defined __cplusplus || defined _MSC_VER)
1260typedef signed char yytype_int8;
1261#else
1262typedef short int yytype_int8;
1263#endif
1264
1265#ifdef YYTYPE_UINT16
1266typedef YYTYPE_UINT16 yytype_uint16;
1267#else
1268typedef unsigned short int yytype_uint16;
1269#endif
1270
1271#ifdef YYTYPE_INT16
1272typedef YYTYPE_INT16 yytype_int16;
1273#else
1274typedef short int yytype_int16;
1275#endif
1276
1277#ifndef YYSIZE_T
1278# ifdef __SIZE_TYPE__
1279# define YYSIZE_T __SIZE_TYPE__
1280# elif defined size_t
1281# define YYSIZE_T size_t
1282# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
1283 || defined __cplusplus || defined _MSC_VER)
1284# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1285# define YYSIZE_T size_t
1286# else
1287# define YYSIZE_T unsigned int
1288# endif
1289#endif
1290
1291#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
1292
1293#ifndef YY_
1294# if defined YYENABLE_NLS && YYENABLE_NLS
1295# if ENABLE_NLS
1296# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
1297# define YY_(msgid) dgettext ("bison-runtime", msgid)
1298# endif
1299# endif
1300# ifndef YY_
1301# define YY_(msgid) msgid
1302# endif
1303#endif
1304
1305/* Suppress unused-variable warnings by "using" E. */
1306#if ! defined lint || defined __GNUC__
1307# define YYUSE(e) ((void) (e))
1308#else
1309# define YYUSE(e) /* empty */
1310#endif
1311
1312/* Identity function, used to suppress warnings about constant conditions. */
1313#ifndef lint
1314# define YYID(n) (n)
1315#else
1316#if (defined __STDC__ || defined __C99__FUNC__ \
1317 || defined __cplusplus || defined _MSC_VER)
1318static int
1319YYID (int i)
1320#else
1321static int
1322YYID (i)
1323 int i;
1324#endif
1325{
1326 return i;
1327}
1328#endif
1329
1330#if ! defined yyoverflow || YYERROR_VERBOSE
1331
1332/* The parser invokes alloca or malloc; define the necessary symbols. */
1333
1334# ifdef YYSTACK_USE_ALLOCA
1335# if YYSTACK_USE_ALLOCA
1336# ifdef __GNUC__
1337# define YYSTACK_ALLOC __builtin_alloca
1338# elif defined __BUILTIN_VA_ARG_INCR
1339# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
1340# elif defined _AIX
1341# define YYSTACK_ALLOC __alloca
1342# elif defined _MSC_VER
1343# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
1344# define alloca _alloca
1345# else
1346# define YYSTACK_ALLOC alloca
1347# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1348 || defined __cplusplus || defined _MSC_VER)
1349# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1350# ifndef _STDLIB_H
1351# define _STDLIB_H 1
1352# endif
1353# endif
1354# endif
1355# endif
1356# endif
1357
1358# ifdef YYSTACK_ALLOC
1359 /* Pacify GCC's `empty if-body' warning. */
1360# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
1361# ifndef YYSTACK_ALLOC_MAXIMUM
1362 /* The OS might guarantee only one guard page at the bottom of the stack,
1363 and a page size can be as small as 4096 bytes. So we cannot safely
1364 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
1365 to allow for a few compiler-allocated temporary stack slots. */
1366# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
1367# endif
1368# else
1369# define YYSTACK_ALLOC YYMALLOC
1370# define YYSTACK_FREE YYFREE
1371# ifndef YYSTACK_ALLOC_MAXIMUM
1372# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1373# endif
1374# if (defined __cplusplus && ! defined _STDLIB_H \
1375 && ! ((defined YYMALLOC || defined malloc) \
1376 && (defined YYFREE || defined free)))
1377# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1378# ifndef _STDLIB_H
1379# define _STDLIB_H 1
1380# endif
1381# endif
1382# ifndef YYMALLOC
1383# define YYMALLOC malloc
1384# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1385 || defined __cplusplus || defined _MSC_VER)
1386void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
1387# endif
1388# endif
1389# ifndef YYFREE
1390# define YYFREE free
1391# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1392 || defined __cplusplus || defined _MSC_VER)
1393void free (void *); /* INFRINGES ON USER NAME SPACE */
1394# endif
1395# endif
1396# endif
1397#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
1398
1399
1400#if (! defined yyoverflow \
1401 && (! defined __cplusplus \
1402 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
1403 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1404
1405/* A type that is properly aligned for any stack member. */
1406union yyalloc
1407{
1408 yytype_int16 yyss;
1409 YYSTYPE yyvs;
1410 YYLTYPE yyls;
1411};
1412
1413/* The size of the maximum gap between one aligned stack and the next. */
1414# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
1415
1416/* The size of an array large to enough to hold all stacks, each with
1417 N elements. */
1418# define YYSTACK_BYTES(N) \
1419 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
1420 + 2 * YYSTACK_GAP_MAXIMUM)
1421
1422/* Copy COUNT objects from FROM to TO. The source and destination do
1423 not overlap. */
1424# ifndef YYCOPY
1425# if defined __GNUC__ && 1 < __GNUC__
1426# define YYCOPY(To, From, Count) \
1427 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1428# else
1429# define YYCOPY(To, From, Count) \
1430 do \
1431 { \
1432 YYSIZE_T yyi; \
1433 for (yyi = 0; yyi < (Count); yyi++) \
1434 (To)[yyi] = (From)[yyi]; \
1435 } \
1436 while (YYID (0))
1437# endif
1438# endif
1439
1440/* Relocate STACK from its old location to the new one. The
1441 local variables YYSIZE and YYSTACKSIZE give the old and new number of
1442 elements in the stack, and YYPTR gives the new location of the
1443 stack. Advance YYPTR to a properly aligned location for the next
1444 stack. */
1445# define YYSTACK_RELOCATE(Stack) \
1446 do \
1447 { \
1448 YYSIZE_T yynewbytes; \
1449 YYCOPY (&yyptr->Stack, Stack, yysize); \
1450 Stack = &yyptr->Stack; \
1451 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
1452 yyptr += yynewbytes / sizeof (*yyptr); \
1453 } \
1454 while (YYID (0))
1455
1456#endif
1457
1458/* YYFINAL -- State number of the termination state. */
1459#define YYFINAL 511
1460/* YYLAST -- Last index in YYTABLE. */
1461#define YYLAST 44028
1462
1463/* YYNTOKENS -- Number of terminals. */
1464#define YYNTOKENS 475
1465/* YYNNTS -- Number of nonterminals. */
1466#define YYNNTS 338
1467/* YYNRULES -- Number of rules. */
1468#define YYNRULES 1551
1469/* YYNRULES -- Number of states. */
1470#define YYNSTATES 2596
1471
1472/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
1473#define YYUNDEFTOK 2
1474#define YYMAXUTOK 711
1475
1476#define YYTRANSLATE(YYX) \
1477 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1478
1479/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
1480static const yytype_uint16 yytranslate[] =
1481{
1482 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1483 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1484 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1485 2, 2, 2, 2, 2, 2, 2, 463, 2, 2,
1486 468, 469, 461, 459, 472, 460, 470, 462, 2, 2,
1487 2, 2, 2, 2, 2, 2, 2, 2, 474, 471,
1488 455, 457, 456, 473, 2, 2, 2, 2, 2, 2,
1489 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1490 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1491 2, 466, 2, 467, 464, 2, 2, 2, 2, 2,
1492 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1493 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1494 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1495 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1496 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1497 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1498 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1499 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1500 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1501 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1502 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1503 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1504 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1505 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1506 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1507 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1508 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1509 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1510 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1511 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1512 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1513 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1514 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1515 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1516 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1517 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1518 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1519 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1520 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1521 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1522 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1523 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1524 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1525 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1526 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1527 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1528 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1529 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
1530 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
1531 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1532 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
1533 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1534 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1535 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1536 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1537 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1538 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1539 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1540 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1541 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1542 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1543 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1544 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1545 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1546 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1547 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1548 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1549 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1550 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1551 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1552 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
1553 458, 465
1554};
1555
1556#if YYDEBUG
1557/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
1558 YYRHS. */
1559static const yytype_uint16 yyprhs[] =
1560{
1561 0, 0, 3, 5, 9, 11, 13, 15, 17, 19,
1562 21, 23, 25, 27, 29, 31, 33, 35, 37, 39,
1563 41, 43, 45, 47, 49, 51, 53, 55, 57, 59,
1564 61, 63, 65, 67, 69, 70, 75, 82, 87, 94,
1565 99, 106, 111, 118, 120, 123, 127, 130, 132, 136,
1566 139, 143, 145, 149, 152, 158, 162, 169, 174, 181,
1567 188, 195, 201, 207, 214, 224, 229, 235, 243, 250,
1568 255, 264, 269, 272, 277, 281, 288, 293, 296, 299,
1569 302, 305, 307, 310, 311, 313, 316, 319, 322, 324,
1570 328, 333, 336, 337, 340, 344, 347, 351, 358, 365,
1571 374, 381, 390, 397, 406, 413, 422, 431, 442, 451,
1572 462, 464, 465, 473, 475, 480, 485, 493, 496, 498,
1573 502, 507, 511, 512, 514, 515, 518, 522, 528, 537,
1574 543, 544, 550, 556, 564, 567, 568, 570, 572, 574,
1575 578, 581, 582, 584, 585, 587, 591, 593, 597, 599,
1576 603, 606, 609, 614, 620, 626, 635, 637, 638, 642,
1577 652, 665, 669, 670, 675, 682, 684, 687, 689, 691,
1578 692, 694, 697, 700, 702, 705, 708, 710, 713, 717,
1579 720, 723, 726, 729, 733, 737, 741, 743, 747, 749,
1580 750, 752, 755, 758, 761, 764, 767, 770, 773, 776,
1581 778, 780, 781, 791, 804, 805, 808, 810, 812, 814,
1582 816, 818, 820, 824, 825, 827, 830, 832, 834, 837,
1583 840, 844, 846, 848, 851, 854, 856, 859, 863, 869,
1584 872, 878, 884, 887, 891, 893, 895, 898, 901, 902,
1585 907, 908, 912, 917, 922, 923, 927, 930, 931, 935,
1586 937, 939, 941, 943, 945, 947, 949, 951, 953, 955,
1587 959, 963, 965, 968, 971, 974, 977, 980, 983, 984,
1588 988, 992, 996, 997, 999, 1002, 1004, 1007, 1010, 1013,
1589 1016, 1021, 1023, 1027, 1029, 1033, 1035, 1037, 1039, 1041,
1590 1045, 1047, 1050, 1051, 1053, 1054, 1056, 1060, 1061, 1064,
1591 1065, 1069, 1073, 1075, 1081, 1085, 1087, 1091, 1093, 1098,
1592 1104, 1110, 1117, 1121, 1129, 1134, 1146, 1148, 1152, 1155,
1593 1158, 1161, 1162, 1166, 1168, 1170, 1173, 1176, 1179, 1182,
1594 1184, 1185, 1187, 1190, 1197, 1202, 1209, 1214, 1221, 1230,
1595 1232, 1234, 1236, 1239, 1241, 1244, 1246, 1248, 1250, 1254,
1596 1258, 1262, 1266, 1269, 1272, 1274, 1278, 1280, 1282, 1284,
1597 1286, 1290, 1292, 1294, 1295, 1297, 1299, 1301, 1310, 1322,
1598 1332, 1334, 1336, 1340, 1341, 1343, 1347, 1349, 1350, 1352,
1599 1353, 1355, 1356, 1358, 1362, 1364, 1366, 1368, 1372, 1373,
1600 1376, 1379, 1380, 1383, 1384, 1386, 1387, 1389, 1391, 1393,
1601 1397, 1401, 1403, 1405, 1409, 1413, 1417, 1421, 1426, 1430,
1602 1433, 1435, 1437, 1439, 1441, 1443, 1447, 1449, 1451, 1455,
1603 1459, 1461, 1464, 1469, 1474, 1477, 1481, 1487, 1493, 1495,
1604 1497, 1507, 1517, 1519, 1522, 1527, 1532, 1537, 1540, 1543,
1605 1547, 1549, 1553, 1560, 1563, 1564, 1568, 1572, 1577, 1582,
1606 1587, 1592, 1596, 1599, 1601, 1603, 1604, 1606, 1608, 1609,
1607 1611, 1617, 1619, 1620, 1622, 1623, 1627, 1629, 1633, 1638,
1608 1642, 1644, 1646, 1647, 1650, 1653, 1654, 1657, 1660, 1662,
1609 1664, 1666, 1667, 1670, 1675, 1681, 1686, 1689, 1693, 1695,
1610 1697, 1699, 1701, 1704, 1707, 1709, 1711, 1713, 1715, 1717,
1611 1719, 1723, 1724, 1726, 1730, 1732, 1734, 1737, 1740, 1741,
1612 1743, 1747, 1749, 1750, 1752, 1755, 1759, 1762, 1767, 1770,
1613 1774, 1777, 1778, 1780, 1783, 1784, 1789, 1795, 1798, 1799,
1614 1801, 1805, 1808, 1812, 1815, 1819, 1822, 1826, 1828, 1833,
1615 1837, 1842, 1848, 1853, 1859, 1864, 1870, 1873, 1878, 1880,
1616 1882, 1883, 1885, 1890, 1896, 1901, 1902, 1905, 1908, 1911,
1617 1913, 1915, 1916, 1921, 1924, 1926, 1929, 1932, 1937, 1944,
1618 1949, 1950, 1953, 1960, 1963, 1965, 1969, 1974, 1975, 1978,
1619 1979, 1982, 1983, 1985, 1989, 1993, 1996, 1997, 2000, 2004,
1620 2010, 2017, 2020, 2024, 2028, 2033, 2034, 2036, 2038, 2040,
1621 2042, 2044, 2047, 2052, 2054, 2056, 2058, 2060, 2063, 2067,
1622 2071, 2072, 2074, 2076, 2078, 2080, 2082, 2085, 2088, 2091,
1623 2094, 2097, 2099, 2103, 2104, 2106, 2108, 2110, 2112, 2118,
1624 2121, 2123, 2125, 2127, 2129, 2134, 2136, 2139, 2142, 2144,
1625 2148, 2152, 2155, 2157, 2158, 2164, 2167, 2173, 2176, 2178,
1626 2182, 2186, 2187, 2189, 2191, 2193, 2195, 2197, 2199, 2203,
1627 2207, 2211, 2215, 2219, 2223, 2227, 2228, 2230, 2235, 2237,
1628 2241, 2245, 2251, 2254, 2257, 2261, 2265, 2269, 2273, 2277,
1629 2281, 2285, 2289, 2293, 2297, 2301, 2305, 2309, 2312, 2315,
1630 2319, 2323, 2326, 2329, 2333, 2339, 2344, 2351, 2355, 2361,
1631 2366, 2373, 2378, 2385, 2391, 2399, 2403, 2406, 2411, 2415,
1632 2418, 2422, 2426, 2431, 2435, 2440, 2444, 2449, 2455, 2462,
1633 2469, 2477, 2484, 2492, 2499, 2507, 2511, 2516, 2521, 2528,
1634 2530, 2532, 2536, 2539, 2542, 2546, 2550, 2554, 2558, 2562,
1635 2566, 2570, 2574, 2578, 2582, 2586, 2590, 2594, 2597, 2600,
1636 2606, 2613, 2620, 2628, 2630, 2632, 2635, 2638, 2643, 2645,
1637 2647, 2649, 2652, 2655, 2659, 2665, 2672, 2681, 2688, 2695,
1638 2700, 2705, 2707, 2709, 2711, 2717, 2719, 2721, 2726, 2728,
1639 2733, 2735, 2740, 2742, 2747, 2749, 2751, 2753, 2755, 2757,
1640 2759, 2766, 2771, 2776, 2781, 2786, 2793, 2799, 2805, 2811,
1641 2816, 2823, 2828, 2833, 2838, 2844, 2845, 2851, 2852, 2855,
1642 2856, 2858, 2862, 2866, 2869, 2872, 2873, 2880, 2882, 2883,
1643 2887, 2888, 2891, 2894, 2895, 2897, 2902, 2905, 2908, 2911,
1644 2914, 2917, 2922, 2926, 2932, 2934, 2936, 2938, 2940, 2942,
1645 2944, 2946, 2948, 2950, 2952, 2954, 2956, 2958, 2960, 2962,
1646 2964, 2966, 2968, 2973, 2975, 2980, 2982, 2987, 2989, 2992,
1647 2994, 2997, 2999, 3003, 3005, 3009, 3011, 3015, 3017, 3021,
1648 3025, 3027, 3031, 3035, 3036, 3038, 3040, 3042, 3044, 3046,
1649 3048, 3050, 3052, 3057, 3061, 3064, 3068, 3069, 3073, 3077,
1650 3080, 3083, 3085, 3086, 3089, 3092, 3096, 3099, 3101, 3103,
1651 3107, 3113, 3115, 3118, 3123, 3126, 3127, 3129, 3130, 3132,
1652 3135, 3138, 3141, 3145, 3151, 3153, 3154, 3156, 3159, 3160,
1653 3163, 3165, 3166, 3168, 3169, 3171, 3175, 3179, 3182, 3184,
1654 3186, 3188, 3192, 3194, 3197, 3199, 3203, 3205, 3207, 3209,
1655 3212, 3214, 3216, 3218, 3220, 3222, 3225, 3232, 3235, 3239,
1656 3245, 3252, 3254, 3256, 3258, 3260, 3262, 3264, 3266, 3268,
1657 3270, 3272, 3274, 3276, 3279, 3282, 3286, 3290, 3291, 3293,
1658 3295, 3297, 3299, 3301, 3303, 3309, 3313, 3314, 3316, 3318,
1659 3320, 3322, 3327, 3335, 3338, 3339, 3341, 3343, 3345, 3347,
1660 3361, 3378, 3380, 3383, 3384, 3386, 3387, 3389, 3390, 3393,
1661 3394, 3396, 3397, 3404, 3413, 3420, 3429, 3436, 3445, 3447,
1662 3450, 3455, 3459, 3465, 3467, 3468, 3470, 3472, 3473, 3475,
1663 3477, 3479, 3481, 3483, 3485, 3487, 3489, 3491, 3493, 3495,
1664 3497, 3501, 3503, 3505, 3507, 3509, 3511, 3513, 3516, 3518,
1665 3520, 3523, 3527, 3531, 3533, 3537, 3541, 3544, 3548, 3552,
1666 3556, 3560, 3562, 3564, 3566, 3568, 3572, 3578, 3580, 3582,
1667 3584, 3586, 3590, 3593, 3595, 3600, 3606, 3612, 3617, 3624,
1668 3626, 3628, 3630, 3632, 3634, 3636, 3637, 3639, 3643, 3645,
1669 3646, 3654, 3656, 3659, 3663, 3666, 3667, 3670, 3671, 3674,
1670 3679, 3682, 3684, 3686, 3688, 3691, 3695, 3698, 3702, 3707,
1671 3710, 3712, 3714, 3716, 3720, 3730, 3742, 3755, 3770, 3774,
1672 3779, 3784, 3785, 3793, 3804, 3807, 3811, 3812, 3817, 3819,
1673 3821, 3823, 3825, 3827, 3829, 3831, 3833, 3835, 3837, 3839,
1674 3841, 3843, 3845, 3847, 3849, 3851, 3853, 3855, 3857, 3859,
1675 3861, 3863, 3865, 3867, 3869, 3871, 3873, 3875, 3877, 3879,
1676 3881, 3883, 3885, 3887, 3889, 3891, 3893, 3895, 3897, 3899,
1677 3901, 3903, 3905, 3907, 3909, 3911, 3913, 3915, 3917, 3919,
1678 3921, 3923, 3925, 3927, 3929, 3931, 3933, 3935, 3937, 3939,
1679 3941, 3943, 3945, 3947, 3949, 3951, 3953, 3955, 3957, 3959,
1680 3961, 3963, 3965, 3967, 3969, 3971, 3973, 3975, 3977, 3979,
1681 3981, 3983, 3985, 3987, 3989, 3991, 3993, 3995, 3997, 3999,
1682 4001, 4003, 4005, 4007, 4009, 4011, 4013, 4015, 4017, 4019,
1683 4021, 4023, 4025, 4027, 4029, 4031, 4033, 4035, 4037, 4039,
1684 4041, 4043, 4045, 4047, 4049, 4051, 4053, 4055, 4057, 4059,
1685 4061, 4063, 4065, 4067, 4069, 4071, 4073, 4075, 4077, 4079,
1686 4081, 4083, 4085, 4087, 4089, 4091, 4093, 4095, 4097, 4099,
1687 4101, 4103, 4105, 4107, 4109, 4111, 4113, 4115, 4117, 4119,
1688 4121, 4123, 4125, 4127, 4129, 4131, 4133, 4135, 4137, 4139,
1689 4141, 4143, 4145, 4147, 4149, 4151, 4153, 4155, 4157, 4159,
1690 4161, 4163, 4165, 4167, 4169, 4171, 4173, 4175, 4177, 4179,
1691 4181, 4183, 4185, 4187, 4189, 4191, 4193, 4195, 4197, 4199,
1692 4201, 4203, 4205, 4207, 4209, 4211, 4213, 4215, 4217, 4219,
1693 4221, 4223, 4225, 4227, 4229, 4231, 4233, 4235, 4237, 4239,
1694 4241, 4243, 4245, 4247, 4249, 4251, 4253, 4255, 4257, 4259,
1695 4261, 4263, 4265, 4267, 4269, 4271, 4273, 4275, 4277, 4279,
1696 4281, 4283, 4285, 4287, 4289, 4291, 4293, 4295, 4297, 4299,
1697 4301, 4303, 4305, 4307, 4309, 4311, 4313, 4315, 4317, 4319,
1698 4321, 4323, 4325, 4327, 4329, 4331, 4333, 4335, 4337, 4339,
1699 4341, 4343, 4345, 4347, 4349, 4351, 4353, 4355, 4357, 4359,
1700 4361, 4363, 4365, 4367, 4369, 4371, 4373, 4375, 4377, 4379,
1701 4381, 4383, 4385, 4387, 4389, 4391, 4393, 4395, 4397, 4399,
1702 4401, 4403, 4405, 4407, 4409, 4411, 4413, 4415, 4417, 4419,
1703 4421, 4423, 4425, 4427, 4429, 4431, 4433, 4435, 4437, 4439,
1704 4441, 4443, 4445, 4447, 4449, 4451, 4453, 4455, 4457, 4459,
1705 4461, 4463, 4465, 4467, 4469, 4471, 4473, 4475, 4477, 4479,
1706 4481, 4483, 4485, 4487, 4489, 4491, 4493, 4495, 4497, 4499,
1707 4501, 4503, 4505, 4507, 4509, 4511, 4513, 4515, 4517, 4519,
1708 4521, 4523, 4525, 4527, 4529, 4531, 4533, 4535, 4537, 4539,
1709 4541, 4543, 4545, 4547, 4549, 4551, 4553, 4555, 4557, 4559,
1710 4561, 4563, 4565, 4567, 4569, 4571, 4573, 4575, 4577, 4579,
1711 4581, 4583, 4585, 4587, 4589, 4591, 4593, 4595, 4597, 4599,
1712 4601, 4603, 4605, 4607, 4609, 4611, 4613, 4615, 4617, 4619,
1713 4621, 4623, 4625, 4627, 4629, 4631, 4633, 4635, 4637, 4639,
1714 4641, 4643, 4645, 4647, 4649, 4651, 4653, 4655, 4657, 4659,
1715 4661, 4663, 4665, 4667, 4669, 4671, 4673, 4675, 4677, 4679,
1716 4681, 4683
1717};
1718
1719/* YYRHS -- A `-1'-separated list of the rules' RHS. */
1720static const yytype_int16 yyrhs[] =
1721{
1722 476, 0, -1, 477, -1, 477, 471, 478, -1, 478,
1723 -1, 767, -1, 516, -1, 479, -1, 797, -1, 768,
1724 -1, 578, -1, 806, -1, 757, -1, 512, -1, 525,
1725 -1, 490, -1, 793, -1, 571, -1, 514, -1, 769,
1726 -1, 760, -1, 493, -1, 786, -1, 511, -1, 754,
1727 -1, 491, -1, 595, -1, 523, -1, 577, -1, 788,
1728 -1, 798, -1, 780, -1, 801, -1, 804, -1, -1,
1729 28, 378, 648, 487, -1, 28, 378, 180, 146, 648,
1730 487, -1, 28, 189, 739, 487, -1, 28, 189, 180,
1731 146, 739, 487, -1, 28, 345, 739, 487, -1, 28,
1732 345, 180, 146, 739, 487, -1, 28, 424, 739, 487,
1733 -1, 28, 424, 180, 146, 739, 487, -1, 482, -1,
1734 480, 482, -1, 351, 111, 683, -1, 131, 111, -1,
1735 325, -1, 325, 518, 519, -1, 351, 520, -1, 351,
1736 167, 570, -1, 486, -1, 483, 472, 486, -1, 22,
1737 550, -1, 22, 180, 252, 146, 550, -1, 22, 73,
1738 550, -1, 22, 73, 180, 252, 146, 550, -1, 28,
1739 492, 747, 481, -1, 28, 492, 747, 131, 252, 257,
1740 -1, 28, 492, 747, 351, 252, 257, -1, 28, 492,
1741 747, 351, 367, 522, -1, 28, 492, 747, 351, 538,
1742 -1, 28, 492, 747, 324, 538, -1, 28, 492, 747,
1743 351, 370, 747, -1, 28, 492, 747, 22, 167, 570,
1744 35, 179, 528, -1, 28, 492, 747, 480, -1, 28,
1745 492, 747, 131, 179, -1, 28, 492, 747, 131, 179,
1746 180, 146, -1, 131, 492, 180, 146, 747, 575, -1,
1747 131, 492, 747, 575, -1, 28, 492, 747, 489, 399,
1748 660, 659, 485, -1, 28, 492, 747, 488, -1, 22,
1749 540, -1, 28, 83, 741, 526, -1, 415, 83, 741,
1750 -1, 131, 83, 180, 146, 741, 575, -1, 131, 83,
1751 741, 575, -1, 351, 232, -1, 351, 408, -1, 351,
1752 538, -1, 324, 538, -1, 488, -1, 412, 683, -1,
1753 -1, 533, -1, 351, 533, -1, 22, 533, -1, 131,
1754 548, -1, 484, -1, 487, 472, 484, -1, 271, 468,
1755 483, 469, -1, 351, 104, -1, -1, 107, 741, -1,
1756 107, 296, 741, -1, 107, 26, -1, 107, 296, 26,
1757 -1, 28, 338, 741, 320, 389, 741, -1, 28, 378,
1758 648, 320, 389, 741, -1, 28, 378, 180, 146, 648,
1759 320, 389, 741, -1, 28, 345, 739, 320, 389, 741,
1760 -1, 28, 345, 180, 146, 739, 320, 389, 741, -1,
1761 28, 424, 739, 320, 389, 741, -1, 28, 424, 180,
1762 146, 739, 320, 389, 741, -1, 28, 189, 739, 320,
1763 389, 741, -1, 28, 189, 180, 146, 739, 320, 389,
1764 741, -1, 28, 378, 648, 320, 492, 741, 389, 741,
1765 -1, 28, 378, 180, 146, 648, 320, 492, 741, 389,
1766 741, -1, 28, 378, 648, 320, 83, 741, 389, 741,
1767 -1, 28, 378, 180, 146, 648, 320, 83, 741, 389,
1768 741, -1, 73, -1, -1, 497, 199, 205, 495, 494,
1769 500, 502, -1, 595, -1, 280, 503, 417, 595, -1,
1770 468, 507, 469, 595, -1, 468, 507, 469, 280, 503,
1771 417, 595, -1, 111, 418, -1, 739, -1, 739, 35,
1772 747, -1, 468, 509, 469, 656, -1, 267, 83, 741,
1773 -1, -1, 600, -1, -1, 747, 733, -1, 510, 457,
1774 683, -1, 468, 504, 469, 457, 683, -1, 267, 81,
1775 496, 127, 410, 351, 508, 656, -1, 267, 81, 496,
1776 127, 253, -1, -1, 747, 505, 506, 613, 614, -1,
1777 688, 505, 506, 613, 614, -1, 468, 683, 469, 505,
1778 506, 613, 614, -1, 327, 736, -1, -1, 411, -1,
1779 377, -1, 510, -1, 504, 472, 510, -1, 71, 749,
1780 -1, -1, 749, -1, -1, 498, -1, 507, 472, 498,
1781 -1, 499, -1, 508, 472, 499, -1, 501, -1, 509,
1782 472, 501, -1, 747, 733, -1, 293, 747, -1, 293,
1783 747, 457, 785, -1, 293, 747, 468, 711, 469, -1,
1784 90, 569, 345, 739, 513, -1, 90, 569, 345, 180,
1785 252, 146, 739, 513, -1, 517, -1, -1, 145, 741,
1786 515, -1, 90, 569, 378, 808, 35, 145, 741, 515,
1787 807, -1, 90, 569, 378, 180, 252, 146, 808, 35,
1788 145, 741, 515, 807, -1, 468, 710, 469, -1, -1,
1789 28, 345, 739, 517, -1, 28, 345, 180, 146, 739,
1790 517, -1, 520, -1, 517, 520, -1, 431, -1, 454,
1791 -1, -1, 4, -1, 459, 4, -1, 460, 4, -1,
1792 522, -1, 35, 662, -1, 54, 519, -1, 103, -1,
1793 250, 103, -1, 188, 521, 519, -1, 236, 519, -1,
1794 239, 519, -1, 250, 236, -1, 250, 239, -1, 281,
1795 53, 749, -1, 345, 243, 749, -1, 365, 518, 519,
1796 -1, 325, -1, 325, 518, 519, -1, 53, -1, -1,
1797 745, -1, 459, 745, -1, 460, 745, -1, 18, 524,
1798 -1, 46, 524, -1, 365, 524, -1, 77, 524, -1,
1799 137, 524, -1, 332, 524, -1, 434, -1, 391, -1,
1800 -1, 90, 569, 378, 739, 468, 557, 469, 545, 537,
1801 -1, 90, 569, 378, 180, 252, 146, 739, 468, 557,
1802 469, 545, 537, -1, -1, 526, 549, -1, 564, -1,
1803 812, -1, 707, -1, 519, -1, 746, -1, 251, -1,
1804 468, 517, 469, -1, -1, 746, -1, 250, 21, -1,
1805 326, -1, 56, -1, 351, 257, -1, 351, 111, -1,
1806 83, 741, 532, -1, 532, -1, 544, -1, 71, 749,
1807 -1, 252, 257, -1, 257, -1, 405, 556, -1, 299,
1808 211, 556, -1, 65, 468, 683, 469, 539, -1, 111,
1809 684, -1, 167, 570, 35, 179, 528, -1, 314, 739,
1810 559, 567, 535, -1, 548, 529, -1, 267, 410, 530,
1811 -1, 534, -1, 561, -1, 534, 561, -1, 561, 534,
1812 -1, -1, 271, 468, 551, 469, -1, -1, 267, 77,
1813 131, -1, 267, 77, 116, 335, -1, 267, 77, 298,
1814 335, -1, -1, 468, 542, 469, -1, 250, 191, -1,
1815 -1, 83, 741, 565, -1, 565, -1, 76, -1, 84,
1816 -1, 112, -1, 179, -1, 190, -1, 367, -1, 370,
1817 -1, 26, -1, 562, -1, 542, 472, 562, -1, 412,
1818 189, 553, -1, 113, -1, 252, 113, -1, 193, 114,
1819 -1, 193, 182, -1, 431, 538, -1, 431, 265, -1,
1820 433, 265, -1, -1, 468, 552, 469, -1, 547, 187,
1821 541, -1, 547, 143, 541, -1, -1, 753, -1, 252,
1822 113, -1, 113, -1, 193, 182, -1, 193, 114, -1,
1823 252, 414, -1, 250, 191, -1, 747, 660, 536, 560,
1824 -1, 533, -1, 551, 472, 533, -1, 555, -1, 552,
1825 472, 555, -1, 747, -1, 550, -1, 568, -1, 540,
1826 -1, 753, 457, 527, -1, 753, -1, 431, 546, -1,
1827 -1, 566, -1, -1, 747, -1, 468, 563, 469, -1,
1828 -1, 560, 531, -1, -1, 267, 116, 530, -1, 753,
1829 457, 527, -1, 753, -1, 753, 470, 753, 457, 527,
1830 -1, 753, 470, 753, -1, 558, -1, 563, 472, 558,
1831 -1, 660, -1, 748, 750, 463, 399, -1, 352, 748,
1832 750, 463, 399, -1, 65, 468, 683, 469, 526, -1,
1833 405, 468, 563, 469, 556, 526, -1, 405, 543, 526,
1834 -1, 299, 211, 468, 563, 469, 556, 526, -1, 299,
1835 211, 543, 526, -1, 160, 211, 468, 563, 469, 314,
1836 739, 559, 567, 535, 526, -1, 554, -1, 566, 472,
1837 554, -1, 234, 164, -1, 234, 285, -1, 234, 357,
1838 -1, -1, 222, 739, 547, -1, 384, -1, 382, -1,
1839 226, 384, -1, 226, 382, -1, 168, 384, -1, 168,
1840 382, -1, 408, -1, -1, 29, -1, 53, 111, -1,
1841 131, 572, 180, 146, 574, 575, -1, 131, 572, 574,
1842 575, -1, 131, 573, 180, 146, 740, 575, -1, 131,
1843 573, 740, 575, -1, 131, 576, 741, 267, 749, 575,
1844 -1, 131, 576, 180, 146, 741, 267, 749, 575, -1,
1845 378, -1, 345, -1, 424, -1, 235, 424, -1, 189,
1846 -1, 160, 378, -1, 72, -1, 87, -1, 367, -1,
1847 385, 341, 284, -1, 385, 341, 123, -1, 385, 341,
1848 383, -1, 385, 341, 80, -1, 20, 237, -1, 140,
1849 394, -1, 148, -1, 160, 104, 435, -1, 305, -1,
1850 338, -1, 348, -1, 749, -1, 574, 472, 749, -1,
1851 56, -1, 326, -1, -1, 291, -1, 336, -1, 394,
1852 -1, 497, 410, 794, 351, 508, 638, 795, 502, -1,
1853 88, 590, 739, 559, 588, 579, 584, 593, 580, 518,
1854 585, -1, 88, 468, 756, 469, 389, 584, 593, 518,
1855 585, -1, 163, -1, 389, -1, 582, 118, 746, -1,
1856 -1, 592, -1, 581, 472, 592, -1, 412, -1, -1,
1857 35, -1, -1, 304, -1, -1, 589, -1, 468, 594,
1858 469, -1, 777, -1, 519, -1, 461, -1, 468, 581,
1859 469, -1, -1, 753, 586, -1, 431, 265, -1, -1,
1860 589, 591, -1, -1, 49, -1, -1, 49, -1, 265,
1861 -1, 162, -1, 117, 583, 746, -1, 257, 583, 746,
1862 -1, 92, -1, 176, -1, 306, 583, 746, -1, 139,
1863 583, 746, -1, 159, 306, 563, -1, 159, 306, 461,
1864 -1, 159, 252, 257, 563, -1, 159, 257, 563, -1,
1865 135, 746, -1, 777, -1, 746, -1, 368, -1, 369,
1866 -1, 587, -1, 594, 472, 587, -1, 597, -1, 596,
1867 -1, 468, 597, 469, -1, 468, 596, 469, -1, 599,
1868 -1, 598, 610, -1, 598, 609, 630, 616, -1, 598,
1869 609, 615, 631, -1, 600, 598, -1, 600, 598, 610,
1870 -1, 600, 598, 609, 630, 616, -1, 600, 598, 609,
1871 615, 631, -1, 599, -1, 596, -1, 344, 608, 735,
1872 603, 638, 656, 625, 629, 692, -1, 344, 607, 736,
1873 603, 638, 656, 625, 629, 692, -1, 637, -1, 378,
1874 648, -1, 598, 404, 606, 598, -1, 598, 203, 606,
1875 598, -1, 598, 141, 606, 598, -1, 431, 601, -1,
1876 454, 601, -1, 431, 312, 601, -1, 602, -1, 601,
1877 472, 602, -1, 741, 751, 35, 468, 756, 469, -1,
1878 205, 604, -1, -1, 384, 605, 739, -1, 382, 605,
1879 739, -1, 226, 384, 605, 739, -1, 226, 382, 605,
1880 739, -1, 168, 384, 605, 739, -1, 168, 382, 605,
1881 739, -1, 408, 605, 739, -1, 378, 739, -1, 739,
1882 -1, 378, -1, -1, 26, -1, 126, -1, -1, 126,
1883 -1, 126, 267, 468, 710, 469, -1, 26, -1, -1,
1884 610, -1, -1, 273, 53, 611, -1, 612, -1, 611,
1885 472, 612, -1, 683, 412, 707, 614, -1, 683, 613,
1886 614, -1, 36, -1, 120, -1, -1, 453, 155, -1,
1887 453, 215, -1, -1, 617, 618, -1, 618, 617, -1,
1888 617, -1, 618, -1, 615, -1, -1, 223, 619, -1,
1889 223, 619, 472, 620, -1, 153, 624, 621, 623, 268,
1890 -1, 153, 624, 623, 268, -1, 264, 620, -1, 264,
1891 621, 623, -1, 683, -1, 26, -1, 683, -1, 685,
1892 -1, 459, 622, -1, 460, 622, -1, 745, -1, 4,
1893 -1, 334, -1, 335, -1, 155, -1, 249, -1, 172,
1894 53, 626, -1, -1, 627, -1, 626, 472, 627, -1,
1895 683, -1, 628, -1, 468, 469, -1, 175, 683, -1,
1896 -1, 632, -1, 158, 308, 268, -1, 630, -1, -1,
1897 633, -1, 632, 633, -1, 634, 635, 636, -1, 158,
1898 410, -1, 158, 250, 211, 410, -1, 158, 354, -1,
1899 158, 211, 354, -1, 262, 738, -1, -1, 256, -1,
1900 358, 231, -1, -1, 418, 468, 710, 469, -1, 637,
1901 472, 468, 710, 469, -1, 163, 639, -1, -1, 640,
1902 -1, 639, 472, 640, -1, 648, 643, -1, 648, 643,
1903 649, -1, 651, 644, -1, 216, 651, 644, -1, 596,
1904 643, -1, 216, 596, 643, -1, 641, -1, 468, 641,
1905 469, 642, -1, 468, 641, 469, -1, 640, 91, 210,
1906 640, -1, 640, 645, 210, 640, 647, -1, 640, 210,
1907 640, 647, -1, 640, 246, 645, 210, 640, -1, 640,
1908 246, 210, 640, -1, 35, 747, 468, 740, 469, -1,
1909 35, 747, -1, 747, 468, 740, 469, -1, 747, -1,
1910 642, -1, -1, 642, -1, 35, 468, 657, 469, -1,
1911 35, 747, 468, 657, 469, -1, 747, 468, 657, 469,
1912 -1, -1, 164, 646, -1, 220, 646, -1, 330, 646,
1913 -1, 195, -1, 276, -1, -1, 412, 468, 740, 469,
1914 -1, 267, 683, -1, 739, -1, 739, 461, -1, 268,
1915 739, -1, 268, 468, 739, 469, -1, 380, 743, 468,
1916 710, 469, 650, -1, 321, 468, 683, 469, -1, -1,
1917 688, 655, -1, 335, 163, 468, 653, 469, 655, -1,
1918 688, 654, -1, 652, -1, 653, 472, 652, -1, 35,
1919 468, 657, 469, -1, -1, 454, 274, -1, -1, 428,
1920 683, -1, -1, 658, -1, 657, 472, 658, -1, 747,
1921 660, 659, -1, 71, 749, -1, -1, 662, 661, -1,
1922 352, 662, 661, -1, 662, 34, 466, 745, 467, -1,
1923 352, 662, 34, 466, 745, 467, -1, 662, 34, -1,
1924 352, 662, 34, -1, 661, 466, 467, -1, 661, 466,
1925 745, 467, -1, -1, 664, -1, 666, -1, 668, -1,
1926 672, -1, 678, -1, 679, 681, -1, 679, 468, 745,
1927 469, -1, 666, -1, 669, -1, 673, -1, 678, -1,
1928 748, 665, -1, 748, 750, 665, -1, 468, 710, 469,
1929 -1, -1, 201, -1, 202, -1, 359, -1, 48, -1,
1930 309, -1, 156, 667, -1, 130, 295, -1, 109, 665,
1931 -1, 108, 665, -1, 260, 665, -1, 51, -1, 468,
1932 745, 469, -1, -1, 670, -1, 671, -1, 670, -1,
1933 671, -1, 50, 677, 468, 710, 469, -1, 50, 677,
1934 -1, 674, -1, 675, -1, 674, -1, 675, -1, 676,
1935 468, 745, 469, -1, 676, -1, 63, 677, -1, 62,
1936 677, -1, 419, -1, 245, 63, 677, -1, 245, 62,
1937 677, -1, 247, 677, -1, 421, -1, -1, 388, 468,
1938 745, 469, 680, -1, 388, 680, -1, 387, 468, 745,
1939 469, 680, -1, 387, 680, -1, 204, -1, 454, 387,
1940 451, -1, 433, 387, 451, -1, -1, 449, -1, 241,
1941 -1, 106, -1, 178, -1, 238, -1, 682, -1, 449,
1942 389, 241, -1, 106, 389, 178, -1, 106, 389, 238,
1943 -1, 106, 389, 682, -1, 178, 389, 238, -1, 178,
1944 389, 682, -1, 238, 389, 682, -1, -1, 342, -1,
1945 342, 468, 745, 469, -1, 685, -1, 683, 11, 660,
1946 -1, 683, 71, 749, -1, 683, 40, 387, 451, 683,
1947 -1, 459, 683, -1, 460, 683, -1, 683, 459, 683,
1948 -1, 683, 460, 683, -1, 683, 461, 683, -1, 683,
1949 462, 683, -1, 683, 463, 683, -1, 683, 464, 683,
1950 -1, 683, 455, 683, -1, 683, 456, 683, -1, 683,
1951 457, 683, -1, 683, 15, 683, -1, 683, 16, 683,
1952 -1, 683, 17, 683, -1, 683, 706, 683, -1, 706,
1953 683, -1, 683, 706, -1, 683, 32, 683, -1, 683,
1954 272, 683, -1, 252, 683, -1, 452, 683, -1, 683,
1955 222, 683, -1, 683, 222, 683, 139, 683, -1, 683,
1956 452, 222, 683, -1, 683, 452, 222, 683, 139, 683,
1957 -1, 683, 181, 683, -1, 683, 181, 683, 139, 683,
1958 -1, 683, 452, 181, 683, -1, 683, 452, 181, 683,
1959 139, 683, -1, 683, 356, 389, 683, -1, 683, 356,
1960 389, 683, 139, 683, -1, 683, 452, 356, 389, 683,
1961 -1, 683, 452, 356, 389, 683, 139, 683, -1, 683,
1962 207, 257, -1, 683, 208, -1, 683, 207, 252, 257,
1963 -1, 683, 252, 257, -1, 683, 255, -1, 702, 278,
1964 702, -1, 683, 207, 396, -1, 683, 207, 252, 396,
1965 -1, 683, 207, 151, -1, 683, 207, 252, 151, -1,
1966 683, 207, 406, -1, 683, 207, 252, 406, -1, 683,
1967 207, 126, 163, 683, -1, 683, 207, 252, 126, 163,
1968 683, -1, 683, 207, 262, 468, 713, 469, -1, 683,
1969 207, 252, 262, 468, 713, 469, -1, 683, 47, 734,
1970 684, 32, 683, -1, 683, 452, 47, 734, 684, 32,
1971 683, -1, 683, 47, 375, 684, 32, 683, -1, 683,
1972 452, 47, 375, 684, 32, 683, -1, 683, 186, 723,
1973 -1, 683, 452, 186, 723, -1, 683, 708, 703, 596,
1974 -1, 683, 708, 703, 468, 683, 469, -1, 111, -1,
1975 685, -1, 684, 11, 660, -1, 459, 684, -1, 460,
1976 684, -1, 684, 459, 684, -1, 684, 460, 684, -1,
1977 684, 461, 684, -1, 684, 462, 684, -1, 684, 463,
1978 684, -1, 684, 464, 684, -1, 684, 455, 684, -1,
1979 684, 456, 684, -1, 684, 457, 684, -1, 684, 15,
1980 684, -1, 684, 16, 684, -1, 684, 17, 684, -1,
1981 684, 706, 684, -1, 706, 684, -1, 684, 706, -1,
1982 684, 207, 126, 163, 684, -1, 684, 207, 252, 126,
1983 163, 684, -1, 684, 207, 262, 468, 713, 469, -1,
1984 684, 207, 252, 262, 468, 713, 469, -1, 729, -1,
1985 744, -1, 473, 733, -1, 10, 733, -1, 468, 683,
1986 469, 733, -1, 724, -1, 687, -1, 596, -1, 596,
1987 732, -1, 146, 596, -1, 743, 468, 469, -1, 743,
1988 468, 711, 609, 469, -1, 743, 468, 420, 712, 609,
1989 469, -1, 743, 468, 711, 472, 420, 712, 609, 469,
1990 -1, 743, 468, 26, 711, 609, 469, -1, 743, 468,
1991 126, 711, 609, 469, -1, 743, 468, 461, 469, -1,
1992 686, 690, 691, 695, -1, 689, -1, 686, -1, 689,
1993 -1, 72, 158, 468, 683, 469, -1, 96, -1, 99,
1994 -1, 99, 468, 745, 469, -1, 100, -1, 100, 468,
1995 745, 469, -1, 227, -1, 227, 468, 745, 469, -1,
1996 228, -1, 228, 468, 745, 469, -1, 97, -1, 101,
1997 -1, 350, -1, 411, -1, 95, -1, 98, -1, 59,
1998 468, 683, 35, 660, 469, -1, 150, 468, 714, 469,
1999 -1, 279, 468, 716, 469, -1, 292, 468, 718, 469,
2000 -1, 374, 468, 719, 469, -1, 393, 468, 683, 35,
2001 660, 469, -1, 395, 468, 52, 722, 469, -1, 395,
2002 468, 217, 722, 469, -1, 395, 468, 390, 722, 469,
2003 -1, 395, 468, 722, 469, -1, 258, 468, 683, 472,
2004 683, 469, -1, 70, 468, 710, 469, -1, 171, 468,
2005 710, 469, -1, 219, 468, 710, 469, -1, 432, 172,
2006 468, 610, 469, -1, -1, 154, 468, 428, 683, 469,
2007 -1, -1, 430, 693, -1, -1, 694, -1, 693, 472,
2008 694, -1, 747, 35, 696, -1, 277, 696, -1, 277,
2009 747, -1, -1, 468, 697, 698, 609, 699, 469, -1,
2010 747, -1, -1, 286, 53, 710, -1, -1, 307, 700,
2011 -1, 335, 700, -1, -1, 701, -1, 47, 701, 32,
2012 701, -1, 401, 294, -1, 401, 157, -1, 94, 334,
2013 -1, 683, 294, -1, 683, 157, -1, 334, 468, 710,
2014 469, -1, 334, 468, 469, -1, 468, 710, 472, 683,
2015 469, -1, 33, -1, 361, -1, 26, -1, 8, -1,
2016 705, -1, 459, -1, 460, -1, 461, -1, 462, -1,
2017 463, -1, 464, -1, 455, -1, 456, -1, 457, -1,
2018 15, -1, 16, -1, 17, -1, 8, -1, 269, 468,
2019 709, 469, -1, 704, -1, 269, 468, 709, 469, -1,
2020 704, -1, 269, 468, 709, 469, -1, 222, -1, 452,
2021 222, -1, 181, -1, 452, 181, -1, 704, -1, 747,
2022 470, 709, -1, 683, -1, 710, 472, 683, -1, 712,
2023 -1, 711, 472, 712, -1, 683, -1, 752, 13, 683,
2024 -1, 752, 14, 683, -1, 660, -1, 713, 472, 660,
2025 -1, 715, 163, 683, -1, -1, 3, -1, 449, -1,
2026 241, -1, 106, -1, 178, -1, 238, -1, 342, -1,
2027 746, -1, 683, 717, 720, 721, -1, 683, 717, 720,
2028 -1, 289, 683, -1, 684, 186, 684, -1, -1, 683,
2029 720, 721, -1, 683, 721, 720, -1, 683, 720, -1,
2030 683, 721, -1, 710, -1, -1, 163, 683, -1, 158,
2031 683, -1, 683, 163, 710, -1, 163, 710, -1, 710,
2032 -1, 596, -1, 468, 710, 469, -1, 58, 728, 725,
2033 727, 137, -1, 726, -1, 725, 726, -1, 427, 683,
2034 386, 683, -1, 133, 683, -1, -1, 683, -1, -1,
2035 747, -1, 747, 732, -1, 470, 742, -1, 470, 461,
2036 -1, 466, 683, 467, -1, 466, 731, 474, 731, 467,
2037 -1, 683, -1, -1, 730, -1, 732, 730, -1, -1,
2038 733, 730, -1, 39, -1, -1, 736, -1, -1, 737,
2039 -1, 736, 472, 737, -1, 683, 35, 753, -1, 683,
2040 3, -1, 683, -1, 461, -1, 739, -1, 738, 472,
2041 739, -1, 747, -1, 747, 732, -1, 741, -1, 740,
2042 472, 741, -1, 747, -1, 753, -1, 748, -1, 747,
2043 732, -1, 745, -1, 4, -1, 746, -1, 6, -1,
2044 7, -1, 743, 746, -1, 743, 468, 711, 609, 469,
2045 746, -1, 663, 746, -1, 679, 746, 681, -1, 679,
2046 468, 745, 469, 746, -1, 679, 468, 473, 469, 473,
2047 681, -1, 396, -1, 151, -1, 257, -1, 9, -1,
2048 5, -1, 3, -1, 809, -1, 810, -1, 3, -1,
2049 809, -1, 811, -1, 747, -1, 747, 750, -1, 470,
2050 742, -1, 750, 470, 742, -1, 468, 740, 469, -1,
2051 -1, 748, -1, 3, -1, 809, -1, 810, -1, 811,
2052 -1, 812, -1, 296, 741, 755, 35, 756, -1, 468,
2053 713, 469, -1, -1, 595, -1, 493, -1, 577, -1,
2054 793, -1, 90, 338, 747, 758, -1, 90, 338, 180,
2055 252, 146, 747, 758, -1, 758, 759, -1, -1, 525,
2056 -1, 760, -1, 512, -1, 804, -1, 90, 766, 189,
2057 763, 764, 267, 739, 762, 468, 509, 469, 765, 656,
2058 -1, 90, 766, 189, 763, 180, 252, 146, 553, 267,
2059 739, 762, 468, 509, 469, 765, 656, -1, 747, -1,
2060 412, 761, -1, -1, 79, -1, -1, 553, -1, -1,
2061 431, 538, -1, -1, 405, -1, -1, 28, 378, 648,
2062 351, 338, 741, -1, 28, 378, 180, 146, 648, 351,
2063 338, 741, -1, 28, 345, 739, 351, 338, 741, -1,
2064 28, 345, 180, 146, 739, 351, 338, 741, -1, 28,
2065 424, 739, 351, 338, 741, -1, 28, 424, 180, 146,
2066 739, 351, 338, 741, -1, 66, -1, 147, 772, -1,
2067 147, 776, 770, 772, -1, 147, 422, 772, -1, 147,
2068 468, 775, 469, 772, -1, 422, -1, -1, 777, -1,
2069 519, -1, -1, 595, -1, 493, -1, 577, -1, 793,
2070 -1, 806, -1, 3, -1, 809, -1, 810, -1, 811,
2071 -1, 773, -1, 746, -1, 778, -1, 775, 472, 778,
2072 -1, 31, -1, 30, -1, 396, -1, 151, -1, 267,
2073 -1, 774, -1, 779, 771, -1, 773, -1, 776, -1,
2074 351, 781, -1, 351, 226, 781, -1, 351, 349, 781,
2075 -1, 782, -1, 803, 163, 94, -1, 387, 451, 784,
2076 -1, 338, 746, -1, 803, 389, 785, -1, 803, 457,
2077 785, -1, 803, 389, 111, -1, 803, 457, 111, -1,
2078 777, -1, 519, -1, 746, -1, 3, -1, 679, 746,
2079 681, -1, 679, 468, 745, 469, 746, -1, 519, -1,
2080 111, -1, 226, -1, 783, -1, 785, 472, 783, -1,
2081 225, 787, -1, 746, -1, 413, 790, 792, 770, -1,
2082 413, 790, 792, 770, 739, -1, 413, 790, 792, 770,
2083 797, -1, 413, 468, 791, 469, -1, 413, 468, 791,
2084 469, 739, 751, -1, 776, -1, 422, -1, 162, -1,
2085 164, -1, 3, -1, 164, -1, -1, 789, -1, 791,
2086 472, 789, -1, 162, -1, -1, 497, 116, 163, 794,
2087 796, 795, 502, -1, 648, -1, 648, 747, -1, 648,
2088 35, 747, -1, 428, 683, -1, -1, 412, 639, -1,
2089 -1, 776, 770, -1, 776, 770, 739, 751, -1, 324,
2090 800, -1, 803, -1, 26, -1, 799, -1, 387, 451,
2091 -1, 391, 209, 221, -1, 802, 803, -1, 802, 387,
2092 451, -1, 802, 391, 209, 221, -1, 802, 26, -1,
2093 355, -1, 121, -1, 747, -1, 803, 470, 747, -1,
2094 90, 569, 424, 739, 559, 765, 35, 595, 805, -1,
2095 90, 272, 322, 569, 424, 739, 559, 765, 35, 595,
2096 805, -1, 90, 569, 312, 424, 739, 468, 563, 469,
2097 765, 35, 595, 805, -1, 90, 272, 322, 569, 312,
2098 424, 739, 468, 563, 469, 765, 35, 595, 805, -1,
2099 431, 65, 270, -1, 431, 57, 65, 270, -1, 431,
2100 226, 65, 270, -1, -1, 90, 569, 378, 808, 35,
2101 595, 807, -1, 90, 569, 378, 180, 252, 146, 808,
2102 35, 595, 807, -1, 431, 104, -1, 431, 250, 104,
2103 -1, -1, 739, 559, 545, 537, -1, 18, -1, 19,
2104 -1, 20, -1, 21, -1, 22, -1, 23, -1, 24,
2105 -1, 25, -1, 27, -1, 28, -1, 29, -1, 37,
2106 -1, 38, -1, 40, -1, 41, -1, 42, -1, 44,
2107 -1, 45, -1, 46, -1, 53, -1, 54, -1, 55,
2108 -1, 56, -1, 57, -1, 60, -1, 61, -1, 64,
2109 -1, 66, -1, 67, -1, 68, -1, 69, -1, 74,
2110 -1, 75, -1, 76, -1, 77, -1, 78, -1, 80,
2111 -1, 81, -1, 82, -1, 84, -1, 85, -1, 86,
2112 -1, 87, -1, 88, -1, 89, -1, 92, -1, 93,
2113 -1, 94, -1, 102, -1, 103, -1, 104, -1, 105,
2114 -1, 106, -1, 107, -1, 110, -1, 112, -1, 114,
2115 -1, 115, -1, 116, -1, 117, -1, 118, -1, 119,
2116 -1, 121, -1, 122, -1, 123, -1, 124, -1, 125,
2117 -1, 128, -1, 129, -1, 130, -1, 131, -1, 132,
2118 -1, 134, -1, 135, -1, 136, -1, 138, -1, 139,
2119 -1, 140, -1, 142, -1, 143, -1, 144, -1, 145,
2120 -1, 147, -1, 148, -1, 149, -1, 152, -1, 154,
2121 -1, 155, -1, 157, -1, 159, -1, 161, -1, 165,
2122 -1, 166, -1, 167, -1, 168, -1, 170, -1, 174,
2123 -1, 176, -1, 177, -1, 178, -1, 179, -1, 180,
2124 -1, 182, -1, 183, -1, 184, -1, 185, -1, 187,
2125 -1, 188, -1, 189, -1, 190, -1, 191, -1, 192,
2126 -1, 194, -1, 197, -1, 198, -1, 199, -1, 200,
2127 -1, 206, -1, 209, -1, 211, -1, 212, -1, 213,
2128 -1, 214, -1, 215, -1, 218, -1, 221, -1, 224,
2129 -1, 225, -1, 226, -1, 229, -1, 230, -1, 231,
2130 -1, 232, -1, 233, -1, 234, -1, 235, -1, 236,
2131 -1, 237, -1, 238, -1, 239, -1, 240, -1, 241,
2132 -1, 242, -1, 243, -1, 244, -1, 248, -1, 249,
2133 -1, 250, -1, 253, -1, 254, -1, 256, -1, 259,
2134 -1, 261, -1, 262, -1, 263, -1, 265, -1, 266,
2135 -1, 269, -1, 270, -1, 271, -1, 274, -1, 277,
2136 -1, 280, -1, 281, -1, 282, -1, 283, -1, 284,
2137 -1, 285, -1, 286, -1, 287, -1, 288, -1, 290,
2138 -1, 291, -1, 293, -1, 294, -1, 296, -1, 297,
2139 -1, 298, -1, 300, -1, 301, -1, 302, -1, 303,
2140 -1, 304, -1, 305, -1, 306, -1, 307, -1, 308,
2141 -1, 310, -1, 311, -1, 312, -1, 313, -1, 315,
2142 -1, 316, -1, 317, -1, 318, -1, 319, -1, 320,
2143 -1, 321, -1, 322, -1, 323, -1, 324, -1, 325,
2144 -1, 326, -1, 328, -1, 329, -1, 331, -1, 332,
2145 -1, 333, -1, 335, -1, 336, -1, 337, -1, 338,
2146 -1, 339, -1, 340, -1, 341, -1, 342, -1, 343,
2147 -1, 345, -1, 346, -1, 347, -1, 348, -1, 349,
2148 -1, 351, -1, 353, -1, 354, -1, 355, -1, 357,
2149 -1, 358, -1, 360, -1, 362, -1, 363, -1, 364,
2150 -1, 365, -1, 366, -1, 367, -1, 368, -1, 369,
2151 -1, 370, -1, 371, -1, 372, -1, 373, -1, 376,
2152 -1, 377, -1, 379, -1, 381, -1, 382, -1, 383,
2153 -1, 384, -1, 385, -1, 391, -1, 392, -1, 394,
2154 -1, 397, -1, 398, -1, 399, -1, 400, -1, 401,
2155 -1, 402, -1, 403, -1, 406, -1, 407, -1, 408,
2156 -1, 409, -1, 410, -1, 413, -1, 414, -1, 415,
2157 -1, 416, -1, 417, -1, 421, -1, 423, -1, 424,
2158 -1, 425, -1, 426, -1, 429, -1, 432, -1, 433,
2159 -1, 434, -1, 435, -1, 436, -1, 437, -1, 449,
2160 -1, 450, -1, 451, -1, 47, -1, 48, -1, 50,
2161 -1, 51, -1, 62, -1, 63, -1, 70, -1, 108,
2162 -1, 109, -1, 146, -1, 150, -1, 156, -1, 171,
2163 -1, 173, -1, 196, -1, 201, -1, 202, -1, 204,
2164 -1, 219, -1, 245, -1, 247, -1, 251, -1, 258,
2165 -1, 260, -1, 275, -1, 279, -1, 292, -1, 295,
2166 -1, 309, -1, 334, -1, 352, -1, 359, -1, 374,
2167 -1, 387, -1, 388, -1, 393, -1, 395, -1, 418,
2168 -1, 419, -1, 438, -1, 439, -1, 440, -1, 441,
2169 -1, 442, -1, 443, -1, 444, -1, 445, -1, 446,
2170 -1, 447, -1, 448, -1, 43, -1, 49, -1, 72,
2171 -1, 79, -1, 91, -1, 98, -1, 162, -1, 164,
2172 -1, 181, -1, 195, -1, 207, -1, 208, -1, 210,
2173 -1, 220, -1, 222, -1, 246, -1, 255, -1, 276,
2174 -1, 278, -1, 330, -1, 356, -1, 380, -1, 422,
2175 -1, 26, -1, 30, -1, 31, -1, 32, -1, 33,
2176 -1, 34, -1, 35, -1, 36, -1, 39, -1, 52,
2177 -1, 58, -1, 59, -1, 65, -1, 71, -1, 73,
2178 -1, 83, -1, 90, -1, 95, -1, 96, -1, 97,
2179 -1, 99, -1, 100, -1, 101, -1, 111, -1, 113,
2180 -1, 120, -1, 126, -1, 127, -1, 133, -1, 137,
2181 -1, 141, -1, 151, -1, 153, -1, 158, -1, 160,
2182 -1, 163, -1, 169, -1, 172, -1, 175, -1, 186,
2183 -1, 193, -1, 203, -1, 205, -1, 216, -1, 217,
2184 -1, 223, -1, 227, -1, 228, -1, 252, -1, 257,
2185 -1, 264, -1, 267, -1, 268, -1, 272, -1, 273,
2186 -1, 289, -1, 299, -1, 314, -1, 327, -1, 344,
2187 -1, 350, -1, 361, -1, 375, -1, 378, -1, 386,
2188 -1, 389, -1, 390, -1, 396, -1, 404, -1, 405,
2189 -1, 411, -1, 412, -1, 420, -1, 427, -1, 428,
2190 -1, 430, -1, 431, -1
2191};
2192
2193/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
2194static const yytype_uint16 yyrline[] =
2195{
2196 0, 448, 448, 464, 476, 485, 486, 487, 488, 489,
2197 490, 491, 492, 493, 494, 495, 496, 497, 498, 499,
2198 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
2199 510, 511, 512, 513, 515, 9, 18, 27, 36, 45,
2200 54, 63, 72, 85, 87, 93, 94, 99, 103, 107,
2201 118, 126, 130, 139, 148, 157, 166, 175, 184, 192,
2202 200, 209, 218, 227, 236, 253, 262, 271, 280, 290,
2203 303, 318, 327, 335, 350, 358, 368, 378, 385, 392,
2204 400, 407, 418, 419, 424, 428, 433, 438, 446, 447,
2205 452, 456, 457, 7, 13, 19, 25, 6, 15, 25,
2206 35, 45, 55, 65, 75, 85, 95, 106, 117, 127,
2207 140, 141, 8, 21, 27, 34, 40, 47, 57, 61,
2208 70, 79, 88, 95, 96, 101, 113, 118, 143, 153,
2209 163, 169, 180, 191, 206, 207, 213, 214, 219, 220,
2210 226, 227, 231, 232, 237, 239, 245, 246, 250, 251,
2211 256, 7, 14, 22, 9, 19, 32, 33, 7, 14,
2212 31, 51, 52, 9, 17, 29, 30, 34, 35, 36,
2213 41, 42, 43, 48, 52, 56, 60, 64, 68, 72,
2214 76, 80, 84, 88, 92, 97, 101, 105, 112, 113,
2215 117, 118, 119, 2, 9, 15, 21, 28, 35, 45,
2216 46, 47, 7, 21, 41, 42, 69, 70, 71, 72,
2217 73, 74, 78, 79, 84, 89, 90, 91, 92, 93,
2218 98, 105, 106, 107, 124, 131, 138, 148, 158, 170,
2219 179, 188, 207, 214, 219, 221, 223, 225, 228, 233,
2220 234, 238, 239, 240, 241, 246, 250, 251, 256, 263,
2221 268, 269, 270, 271, 272, 273, 274, 275, 281, 282,
2222 286, 291, 298, 305, 312, 324, 325, 326, 327, 331,
2223 336, 337, 338, 343, 348, 349, 350, 351, 352, 353,
2224 358, 381, 385, 392, 393, 397, 401, 402, 403, 407,
2225 411, 419, 420, 425, 426, 430, 438, 439, 444, 445,
2226 449, 454, 458, 462, 467, 475, 476, 480, 481, 487,
2227 498, 511, 525, 539, 553, 567, 590, 594, 601, 605,
2228 613, 618, 625, 635, 636, 637, 638, 639, 646, 653,
2229 654, 659, 660, 9, 19, 29, 39, 49, 59, 73,
2230 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
2231 84, 85, 90, 91, 92, 93, 94, 95, 96, 101,
2232 102, 107, 108, 109, 114, 115, 116, 7, 1, 30,
2233 53, 54, 59, 63, 68, 72, 80, 81, 85, 86,
2234 91, 92, 96, 97, 102, 103, 104, 105, 106, 111,
2235 119, 123, 128, 129, 134, 138, 143, 147, 151, 155,
2236 159, 163, 167, 171, 175, 179, 183, 187, 191, 195,
2237 203, 209, 210, 211, 216, 220, 47, 48, 52, 53,
2238 68, 69, 76, 84, 92, 100, 108, 116, 127, 128,
2239 155, 169, 184, 185, 204, 208, 212, 229, 236, 243,
2240 253, 254, 257, 269, 280, 288, 293, 298, 303, 308,
2241 316, 324, 329, 334, 341, 342, 346, 347, 348, 355,
2242 356, 360, 361, 365, 366, 370, 374, 375, 378, 387,
2243 398, 399, 400, 403, 404, 405, 409, 410, 411, 412,
2244 416, 417, 421, 423, 439, 441, 446, 449, 454, 455,
2245 463, 483, 484, 486, 491, 492, 496, 497, 500, 501,
2246 526, 527, 531, 532, 536, 537, 541, 554, 555, 559,
2247 560, 564, 565, 569, 570, 574, 585, 586, 587, 588,
2248 592, 593, 598, 599, 600, 609, 615, 633, 634, 638,
2249 639, 645, 650, 658, 665, 673, 708, 733, 737, 763,
2250 767, 779, 792, 806, 817, 832, 838, 843, 849, 856,
2251 857, 865, 869, 873, 879, 886, 891, 892, 893, 894,
2252 898, 899, 911, 912, 917, 924, 931, 938, 961, 974,
2253 975, 990, 1000, 1012, 1017, 1018, 1021, 1022, 1025, 1026,
2254 1031, 1032, 1037, 1041, 1047, 1068, 1076, 1088, 1093, 1100,
2255 1105, 1111, 1116, 1125, 1127, 1130, 1134, 1135, 1136, 1137,
2256 1138, 1139, 1144, 1164, 1165, 1166, 1167, 1178, 1184, 1192,
2257 1193, 1199, 1204, 1209, 1214, 1219, 1224, 1229, 1234, 1240,
2258 1246, 1252, 1259, 1281, 1290, 1294, 1302, 1306, 1314, 1326,
2259 1347, 1351, 1357, 1361, 1374, 1382, 1392, 1394, 1396, 1398,
2260 1400, 1402, 1407, 1408, 1415, 1424, 1432, 1441, 1452, 1460,
2261 1461, 1462, 1466, 1468, 1470, 1472, 1474, 1476, 1478, 1483,
2262 1488, 1494, 1502, 1507, 1514, 1521, 1525, 1529, 1565, 1566,
2263 1568, 1576, 1591, 1593, 1595, 1597, 1599, 1601, 1603, 1605,
2264 1607, 1609, 1611, 1613, 1615, 1617, 1620, 1622, 1624, 1627,
2265 1629, 1631, 1633, 1636, 1641, 1648, 1653, 1660, 1665, 1673,
2266 1678, 1687, 1695, 1703, 1711, 1729, 1737, 1745, 1753, 1761,
2267 1769, 1785, 1793, 1801, 1809, 1817, 1825, 1833, 1837, 1841,
2268 1845, 1849, 1857, 1865, 1873, 1881, 1901, 1923, 1934, 1941,
2269 1966, 1968, 1970, 1972, 1974, 1976, 1978, 1980, 1982, 1984,
2270 1986, 1988, 1990, 1992, 1994, 1996, 1998, 2000, 2002, 2004,
2271 2008, 2012, 2016, 2030, 2031, 2032, 2044, 2059, 2071, 2073,
2272 2075, 2086, 2110, 2123, 2127, 2133, 2140, 2147, 2157, 2164,
2273 2192, 2227, 2238, 2239, 2246, 2252, 2256, 2260, 2264, 2268,
2274 2272, 2276, 2280, 2284, 2288, 2292, 2296, 2300, 2304, 2308,
2275 2312, 2314, 2318, 2327, 2332, 2339, 2354, 2361, 2365, 2369,
2276 2373, 2377, 2384, 2392, 2407, 2408, 2412, 2413, 2421, 2422,
2277 2426, 2427, 2432, 2440, 2442, 2456, 2459, 2486, 2487, 2490,
2278 2491, 2502, 2520, 2527, 2536, 2553, 2598, 2606, 2614, 2622,
2279 2630, 2651, 2652, 2653, 2656, 2657, 2658, 2661, 2662, 2665,
2280 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675,
2281 2676, 2679, 2681, 2686, 2688, 2693, 2695, 2697, 2699, 2701,
2282 2703, 2717, 2719, 2723, 2727, 2734, 2738, 2744, 2748, 2757,
2283 2768, 2769, 2773, 2777, 2784, 2785, 2786, 2787, 2788, 2789,
2284 2790, 2791, 2801, 2805, 2812, 2819, 2820, 2836, 2840, 2845,
2285 2849, 2864, 2869, 2873, 2876, 2879, 2880, 2881, 2884, 2891,
2286 2901, 2915, 2916, 2920, 2931, 2932, 2935, 2936, 2939, 2943,
2287 2950, 2954, 2958, 2966, 2977, 2978, 2982, 2983, 2987, 2988,
2288 2991, 2992, 3002, 3003, 3007, 3008, 3011, 3027, 3035, 3043,
2289 3065, 3066, 3077, 3081, 3108, 3110, 3115, 3117, 3127, 3129,
2290 3140, 3144, 3148, 3152, 3156, 3165, 3172, 3204, 3208, 3214,
2291 3222, 3234, 3238, 3242, 3248, 3249, 3265, 3266, 3267, 3272,
2292 3273, 3274, 3277, 3278, 3281, 3283, 3288, 3289, 3292, 3300,
2293 3301, 3302, 3303, 3304, 7, 18, 19, 23, 24, 25,
2294 26, 7, 16, 34, 41, 46, 47, 48, 49, 8,
2295 33, 62, 66, 67, 72, 73, 78, 79, 83, 84,
2296 89, 90, 7, 16, 25, 34, 43, 52, 5, 9,
2297 16, 26, 33, 44, 45, 50, 51, 52, 57, 58,
2298 59, 60, 61, 65, 66, 67, 68, 73, 74, 79,
2299 83, 91, 92, 97, 98, 99, 105, 110, 118, 119,
2300 10, 16, 22, 32, 33, 41, 52, 64, 72, 80,
2301 87, 97, 99, 105, 109, 113, 128, 135, 136, 137,
2302 141, 142, 7, 16, 8, 22, 36, 48, 56, 70,
2303 71, 72, 73, 74, 87, 88, 93, 94, 98, 99,
2304 7, 21, 25, 32, 43, 44, 50, 51, 9, 19,
2305 2, 7, 14, 24, 25, 32, 3, 9, 15, 21,
2306 29, 29, 31, 32, 8, 21, 34, 52, 74, 75,
2307 76, 77, 11, 24, 41, 42, 43, 48, 61, 61,
2308 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2309 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2310 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2311 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2312 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2313 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2314 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2315 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2316 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2317 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2318 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2319 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2320 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2321 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2322 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2323 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2324 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2325 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2326 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2327 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2328 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2329 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2330 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2331 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2332 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2333 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2334 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2335 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
2336 61, 61, 62, 62, 62, 62, 62, 62, 62, 62,
2337 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
2338 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
2339 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
2340 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
2341 62, 62, 63, 63, 63, 63, 63, 63, 63, 63,
2342 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
2343 63, 63, 63, 63, 63, 64, 64, 64, 64, 64,
2344 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
2345 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
2346 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
2347 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
2348 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
2349 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
2350 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
2351 64, 64
2352};
2353#endif
2354
2355#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
2356/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
2357 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
2358static const char *const yytname[] =
2359{
2360 "$end", "error", "$undefined", "IDENT", "FCONST", "SCONST", "BCONST",
2361 "XCONST", "Op", "ICONST", "PARAM", "TYPECAST", "DOT_DOT", "COLON_EQUALS",
2362 "EQUALS_GREATER", "LESS_EQUALS", "GREATER_EQUALS", "NOT_EQUALS",
2363 "ABORT_P", "ABSOLUTE_P", "ACCESS", "ACTION", "ADD_P", "ADMIN", "AFTER",
2364 "AGGREGATE", "ALL", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE",
2365 "AND", "ANY", "ARRAY", "AS", "ASC_P", "ASSERTION", "ASSIGNMENT",
2366 "ASYMMETRIC", "AT", "ATTACH", "ATTRIBUTE", "AUTHORIZATION", "BACKWARD",
2367 "BEFORE", "BEGIN_P", "BETWEEN", "BIGINT", "BINARY", "BIT", "BOOLEAN_P",
2368 "BOTH", "BY", "CACHE", "CALLED", "CASCADE", "CASCADED", "CASE", "CAST",
2369 "CATALOG_P", "CHAIN", "CHAR_P", "CHARACTER", "CHARACTERISTICS",
2370 "CHECK_P", "CHECKPOINT", "CLASS", "CLOSE", "CLUSTER", "COALESCE",
2371 "COLLATE", "COLLATION", "COLUMN", "COLUMNS", "COMMENT", "COMMENTS",
2372 "COMMIT", "COMMITTED", "CONCURRENTLY", "CONFIGURATION", "CONFLICT",
2373 "CONNECTION", "CONSTRAINT", "CONSTRAINTS", "CONTENT_P", "CONTINUE_P",
2374 "CONVERSION_P", "COPY", "COST", "CREATE_P", "CROSS", "CSV", "CUBE",
2375 "CURRENT_P", "CURRENT_CATALOG", "CURRENT_DATE", "CURRENT_ROLE",
2376 "CURRENT_SCHEMA", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER",
2377 "CURSOR", "CYCLE", "DATA_P", "DATABASE", "DAY_P", "DEALLOCATE", "DEC",
2378 "DECIMAL_P", "DECLARE", "DEFAULT", "DEFAULTS", "DEFERRABLE", "DEFERRED",
2379 "DEFINER", "DELETE_P", "DELIMITER", "DELIMITERS", "DEPENDS", "DESC_P",
2380 "DESCRIBE", "DETACH", "DICTIONARY", "DISABLE_P", "DISCARD", "DISTINCT",
2381 "DO", "DOCUMENT_P", "DOMAIN_P", "DOUBLE_P", "DROP", "EACH", "ELSE",
2382 "ENABLE_P", "ENCODING", "ENCRYPTED", "END_P", "ENUM_P", "ESCAPE",
2383 "EVENT", "EXCEPT", "EXCLUDE", "EXCLUDING", "EXCLUSIVE", "EXECUTE",
2384 "EXISTS", "EXPLAIN", "EXTENSION", "EXTERNAL", "EXTRACT", "FALSE_P",
2385 "FAMILY", "FETCH", "FILTER", "FIRST_P", "FLOAT_P", "FOLLOWING", "FOR",
2386 "FORCE", "FOREIGN", "FORWARD", "FREEZE", "FROM", "FULL", "FUNCTION",
2387 "FUNCTIONS", "GENERATED", "GLOBAL", "GRANT", "GRANTED", "GREATEST",
2388 "GROUP_P", "GROUPING", "HANDLER", "HAVING", "HEADER_P", "HOLD", "HOUR_P",
2389 "IDENTITY_P", "IF_P", "ILIKE", "IMMEDIATE", "IMMUTABLE", "IMPLICIT_P",
2390 "IMPORT_P", "IN_P", "INCLUDING", "INCREMENT", "INDEX", "INDEXES",
2391 "INHERIT", "INHERITS", "INITIALLY", "INLINE_P", "INNER_P", "INOUT",
2392 "INPUT_P", "INSENSITIVE", "INSERT", "INSTEAD", "INT_P", "INTEGER",
2393 "INTERSECT", "INTERVAL", "INTO", "INVOKER", "IS", "ISNULL", "ISOLATION",
2394 "JOIN", "KEY", "LABEL", "LANGUAGE", "LARGE_P", "LAST_P", "LATERAL_P",
2395 "LEADING", "LEAKPROOF", "LEAST", "LEFT", "LEVEL", "LIKE", "LIMIT",
2396 "LISTEN", "LOAD", "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", "LOCATION",
2397 "LOCK_P", "LOCKED", "LOGGED", "MAPPING", "MATCH", "MATERIALIZED",
2398 "MAXVALUE", "METHOD", "MINUTE_P", "MINVALUE", "MODE", "MONTH_P", "MOVE",
2399 "NAME_P", "NAMES", "NATIONAL", "NATURAL", "NCHAR", "NEW", "NEXT", "NO",
2400 "NONE", "NOT", "NOTHING", "NOTIFY", "NOTNULL", "NOWAIT", "NULL_P",
2401 "NULLIF", "NULLS_P", "NUMERIC", "OBJECT_P", "OF", "OFF", "OFFSET",
2402 "OIDS", "OLD", "ON", "ONLY", "OPERATOR", "OPTION", "OPTIONS", "OR",
2403 "ORDER", "ORDINALITY", "OUT_P", "OUTER_P", "OVER", "OVERLAPS", "OVERLAY",
2404 "OVERRIDING", "OWNED", "OWNER", "PARALLEL", "PARSER", "PARTIAL",
2405 "PARTITION", "PASSING", "PASSWORD", "PLACING", "PLANS", "POLICY",
2406 "POSITION", "PRAGMA_P", "PRECEDING", "PRECISION", "PREPARE", "PREPARED",
2407 "PRESERVE", "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE",
2408 "PROGRAM", "PUBLICATION", "QUOTE", "RANGE", "READ_P", "REAL", "REASSIGN",
2409 "RECHECK", "RECURSIVE", "REF", "REFERENCES", "REFERENCING", "REFRESH",
2410 "REINDEX", "RELATIVE_P", "RELEASE", "RENAME", "REPEATABLE", "REPLACE",
2411 "REPLICA", "RESET", "RESTART", "RESTRICT", "RETURNING", "RETURNS",
2412 "REVOKE", "RIGHT", "ROLE", "ROLLBACK", "ROLLUP", "ROW", "ROWS", "RULE",
2413 "SAVEPOINT", "SCHEMA", "SCHEMAS", "SCROLL", "SEARCH", "SECOND_P",
2414 "SECURITY", "SELECT", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER",
2415 "SESSION", "SESSION_USER", "SET", "SETOF", "SETS", "SHARE", "SHOW",
2416 "SIMILAR", "SIMPLE", "SKIP", "SMALLINT", "SNAPSHOT", "SOME", "SQL_P",
2417 "STABLE", "STANDALONE_P", "START", "STATEMENT", "STATISTICS", "STDIN",
2418 "STDOUT", "STORAGE", "STRICT_P", "STRIP_P", "SUBSCRIPTION", "SUBSTRING",
2419 "SYMMETRIC", "SYSID", "SYSTEM_P", "TABLE", "TABLES", "TABLESAMPLE",
2420 "TABLESPACE", "TEMP", "TEMPLATE", "TEMPORARY", "TEXT_P", "THEN", "TIME",
2421 "TIMESTAMP", "TO", "TRAILING", "TRANSACTION", "TRANSFORM", "TREAT",
2422 "TRIGGER", "TRIM", "TRUE_P", "TRUNCATE", "TRUSTED", "TYPE_P", "TYPES_P",
2423 "UNBOUNDED", "UNCOMMITTED", "UNENCRYPTED", "UNION", "UNIQUE", "UNKNOWN",
2424 "UNLISTEN", "UNLOGGED", "UNTIL", "UPDATE", "USER", "USING", "VACUUM",
2425 "VALID", "VALIDATE", "VALIDATOR", "VALUE_P", "VALUES", "VARCHAR",
2426 "VARIADIC", "VARYING", "VERBOSE", "VERSION_P", "VIEW", "VIEWS",
2427 "VOLATILE", "WHEN", "WHERE", "WHITESPACE_P", "WINDOW", "WITH", "WITHIN",
2428 "WITHOUT", "WORK", "WRAPPER", "WRITE_P", "XML_P", "XMLATTRIBUTES",
2429 "XMLCONCAT", "XMLELEMENT", "XMLEXISTS", "XMLFOREST", "XMLNAMESPACES",
2430 "XMLPARSE", "XMLPI", "XMLROOT", "XMLSERIALIZE", "XMLTABLE", "YEAR_P",
2431 "YES_P", "ZONE", "NOT_LA", "NULLS_LA", "WITH_LA", "'<'", "'>'", "'='",
2432 "POSTFIXOP", "'+'", "'-'", "'*'", "'/'", "'%'", "'^'", "UMINUS", "'['",
2433 "']'", "'('", "')'", "'.'", "';'", "','", "'?'", "':'", "$accept",
2434 "stmtblock", "stmtmulti", "stmt", "AlterTableStmt",
2435 "alter_identity_column_option_list", "alter_column_default",
2436 "alter_identity_column_option", "alter_generic_option_list",
2437 "alter_table_cmd", "alter_using", "alter_generic_option_elem",
2438 "alter_table_cmds", "alter_generic_options", "opt_set_data",
2439 "DeallocateStmt", "RenameStmt", "opt_column", "InsertStmt",
2440 "insert_rest", "insert_target", "opt_conf_expr", "opt_with_clause",
2441 "insert_column_item", "set_clause", "opt_on_conflict", "index_elem",
2442 "returning_clause", "override_kind", "set_target_list", "opt_collate",
2443 "opt_class", "insert_column_list", "set_clause_list", "index_params",
2444 "set_target", "PragmaStmt", "CreateSeqStmt", "OptSeqOptList",
2445 "ExecuteStmt", "execute_param_clause", "AlterSeqStmt", "SeqOptList",
2446 "opt_with", "NumericOnly", "SeqOptElem", "opt_by", "SignedIconst",
2447 "TransactionStmt", "opt_transaction", "CreateStmt",
2448 "ConstraintAttributeSpec", "def_arg", "OptParenthesizedSeqOptList",
2449 "generic_option_arg", "key_action", "ColConstraint", "ColConstraintElem",
2450 "generic_option_elem", "key_update", "key_actions",
2451 "create_generic_options", "OnCommitOption", "reloptions",
2452 "opt_no_inherit", "TableConstraint", "TableLikeOption", "reloption_list",
2453 "ExistingIndex", "ConstraintAttr", "OptWith", "definition",
2454 "TableLikeOptionList", "generic_option_name", "ConstraintAttributeElem",
2455 "columnDef", "generic_option_list", "def_list", "index_name",
2456 "TableElement", "def_elem", "opt_definition", "OptTableElementList",
2457 "columnElem", "opt_column_list", "ColQualList", "key_delete",
2458 "reloption_elem", "columnList", "func_type", "ConstraintElem",
2459 "TableElementList", "key_match", "TableLikeClause", "OptTemp",
2460 "generated_when", "DropStmt", "drop_type_any_name", "drop_type_name",
2461 "any_name_list", "opt_drop_behavior", "drop_type_name_on_any_name",
2462 "UpdateStmt", "CopyStmt", "copy_from", "copy_delimiter",
2463 "copy_generic_opt_arg_list", "opt_using", "opt_as", "opt_program",
2464 "copy_options", "copy_generic_opt_arg", "copy_generic_opt_elem",
2465 "opt_oids", "copy_opt_list", "opt_binary", "copy_opt_item",
2466 "copy_generic_opt_arg_list_item", "copy_file_name",
2467 "copy_generic_opt_list", "SelectStmt", "select_with_parens",
2468 "select_no_parens", "select_clause", "simple_select", "with_clause",
2469 "cte_list", "common_table_expr", "into_clause", "OptTempTableName",
2470 "opt_table", "all_or_distinct", "distinct_clause", "opt_all_clause",
2471 "opt_sort_clause", "sort_clause", "sortby_list", "sortby",
2472 "opt_asc_desc", "opt_nulls_order", "select_limit", "opt_select_limit",
2473 "limit_clause", "offset_clause", "select_limit_value",
2474 "select_offset_value", "select_fetch_first_value", "I_or_F_const",
2475 "row_or_rows", "first_or_next", "group_clause", "group_by_list",
2476 "group_by_item", "empty_grouping_set", "having_clause",
2477 "for_locking_clause", "opt_for_locking_clause", "for_locking_items",
2478 "for_locking_item", "for_locking_strength", "locked_rels_list",
2479 "opt_nowait_or_skip", "values_clause", "from_clause", "from_list",
2480 "table_ref", "joined_table", "alias_clause", "opt_alias_clause",
2481 "func_alias_clause", "join_type", "join_outer", "join_qual",
2482 "relation_expr", "tablesample_clause", "opt_repeatable_clause",
2483 "func_table", "rowsfrom_item", "rowsfrom_list", "opt_col_def_list",
2484 "opt_ordinality", "where_clause", "TableFuncElementList",
2485 "TableFuncElement", "opt_collate_clause", "Typename", "opt_array_bounds",
2486 "SimpleTypename", "ConstTypename", "GenericType", "opt_type_modifiers",
2487 "Numeric", "opt_float", "Bit", "ConstBit", "BitWithLength",
2488 "BitWithoutLength", "Character", "ConstCharacter", "CharacterWithLength",
2489 "CharacterWithoutLength", "character", "opt_varying", "ConstDatetime",
2490 "ConstInterval", "opt_timezone", "opt_interval", "interval_second",
2491 "a_expr", "b_expr", "c_expr", "func_application", "func_expr",
2492 "func_expr_windowless", "func_expr_common_subexpr",
2493 "within_group_clause", "filter_clause", "window_clause",
2494 "window_definition_list", "window_definition", "over_clause",
2495 "window_specification", "opt_existing_window_name",
2496 "opt_partition_clause", "opt_frame_clause", "frame_extent",
2497 "frame_bound", "row", "sub_type", "all_Op", "MathOp", "qual_Op",
2498 "qual_all_Op", "subquery_Op", "any_operator", "expr_list",
2499 "func_arg_list", "func_arg_expr", "type_list", "extract_list",
2500 "extract_arg", "overlay_list", "overlay_placing", "position_list",
2501 "substr_list", "substr_from", "substr_for", "trim_list", "in_expr",
2502 "case_expr", "when_clause_list", "when_clause", "case_default",
2503 "case_arg", "columnref", "indirection_el", "opt_slice_bound",
2504 "indirection", "opt_indirection", "opt_asymmetric", "opt_target_list",
2505 "target_list", "target_el", "qualified_name_list", "qualified_name",
2506 "name_list", "name", "attr_name", "func_name", "AexprConst", "Iconst",
2507 "Sconst", "ColId", "type_function_name", "any_name", "attrs",
2508 "opt_name_list", "param_name", "ColLabel", "PrepareStmt",
2509 "prep_type_clause", "PreparableStmt", "CreateSchemaStmt",
2510 "OptSchemaEltList", "schema_stmt", "IndexStmt", "access_method",
2511 "access_method_clause", "opt_concurrently", "opt_index_name",
2512 "opt_reloptions", "opt_unique", "AlterObjectSchemaStmt",
2513 "CheckPointStmt", "ExplainStmt", "opt_verbose", "explain_option_arg",
2514 "ExplainableStmt", "NonReservedWord", "NonReservedWord_or_Sconst",
2515 "explain_option_list", "analyze_keyword", "opt_boolean_or_string",
2516 "explain_option_elem", "explain_option_name", "VariableSetStmt",
2517 "set_rest", "generic_set", "var_value", "zone_value", "var_list",
2518 "LoadStmt", "file_name", "VacuumStmt", "vacuum_option_elem", "opt_full",
2519 "vacuum_option_list", "opt_freeze", "DeleteStmt",
2520 "relation_expr_opt_alias", "where_or_current_clause", "using_clause",
2521 "AnalyzeStmt", "VariableResetStmt", "generic_reset", "reset_rest",
2522 "VariableShowStmt", "show_or_describe", "var_name", "ViewStmt",
2523 "opt_check_option", "CreateAsStmt", "opt_with_data", "create_as_target",
2524 "unreserved_keyword", "col_name_keyword", "type_func_name_keyword",
2525 "reserved_keyword", 0
2526};
2527#endif
2528
2529# ifdef YYPRINT
2530/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
2531 token YYLEX-NUM. */
2532static const yytype_uint16 yytoknum[] =
2533{
2534 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2535 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2536 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2537 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2538 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2539 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2540 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
2541 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
2542 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
2543 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
2544 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
2545 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
2546 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
2547 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
2548 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
2549 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
2550 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
2551 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
2552 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
2553 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
2554 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
2555 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
2556 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
2557 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
2558 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
2559 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
2560 515, 516, 517, 518, 519, 520, 521, 522, 523, 524,
2561 525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
2562 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
2563 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
2564 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
2565 565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
2566 575, 576, 577, 578, 579, 580, 581, 582, 583, 584,
2567 585, 586, 587, 588, 589, 590, 591, 592, 593, 594,
2568 595, 596, 597, 598, 599, 600, 601, 602, 603, 604,
2569 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
2570 615, 616, 617, 618, 619, 620, 621, 622, 623, 624,
2571 625, 626, 627, 628, 629, 630, 631, 632, 633, 634,
2572 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
2573 645, 646, 647, 648, 649, 650, 651, 652, 653, 654,
2574 655, 656, 657, 658, 659, 660, 661, 662, 663, 664,
2575 665, 666, 667, 668, 669, 670, 671, 672, 673, 674,
2576 675, 676, 677, 678, 679, 680, 681, 682, 683, 684,
2577 685, 686, 687, 688, 689, 690, 691, 692, 693, 694,
2578 695, 696, 697, 698, 699, 700, 701, 702, 703, 704,
2579 705, 706, 707, 708, 709, 60, 62, 61, 710, 43,
2580 45, 42, 47, 37, 94, 711, 91, 93, 40, 41,
2581 46, 59, 44, 63, 58
2582};
2583# endif
2584
2585/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
2586static const yytype_uint16 yyr1[] =
2587{
2588 0, 475, 476, 477, 477, 478, 478, 478, 478, 478,
2589 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
2590 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
2591 478, 478, 478, 478, 478, 479, 479, 479, 479, 479,
2592 479, 479, 479, 480, 480, 481, 481, 482, 482, 482,
2593 482, 483, 483, 484, 484, 484, 484, 484, 484, 484,
2594 484, 484, 484, 484, 484, 484, 484, 484, 484, 484,
2595 484, 484, 484, 484, 484, 484, 484, 484, 484, 484,
2596 484, 484, 485, 485, 486, 486, 486, 486, 487, 487,
2597 488, 489, 489, 490, 490, 490, 490, 491, 491, 491,
2598 491, 491, 491, 491, 491, 491, 491, 491, 491, 491,
2599 492, 492, 493, 494, 494, 494, 494, 494, 495, 495,
2600 496, 496, 496, 497, 497, 498, 499, 499, 500, 500,
2601 500, 501, 501, 501, 502, 502, 503, 503, 504, 504,
2602 505, 505, 506, 506, 507, 507, 508, 508, 509, 509,
2603 510, 511, 511, 511, 512, 512, 513, 513, 514, 514,
2604 514, 515, 515, 516, 516, 517, 517, 518, 518, 518,
2605 519, 519, 519, 519, 520, 520, 520, 520, 520, 520,
2606 520, 520, 520, 520, 520, 520, 520, 520, 521, 521,
2607 522, 522, 522, 523, 523, 523, 523, 523, 523, 524,
2608 524, 524, 525, 525, 526, 526, 527, 527, 527, 527,
2609 527, 527, 528, 528, 529, 530, 530, 530, 530, 530,
2610 531, 531, 531, 531, 532, 532, 532, 532, 532, 532,
2611 532, 532, 533, 534, 535, 535, 535, 535, 535, 536,
2612 536, 537, 537, 537, 537, 538, 539, 539, 540, 540,
2613 541, 541, 541, 541, 541, 541, 541, 541, 542, 542,
2614 543, 544, 544, 544, 544, 545, 545, 545, 545, 546,
2615 547, 547, 547, 548, 549, 549, 549, 549, 549, 549,
2616 550, 551, 551, 552, 552, 553, 554, 554, 554, 555,
2617 555, 556, 556, 557, 557, 558, 559, 559, 560, 560,
2618 561, 562, 562, 562, 562, 563, 563, 564, 564, 564,
2619 565, 565, 565, 565, 565, 565, 566, 566, 567, 567,
2620 567, 567, 568, 569, 569, 569, 569, 569, 569, 569,
2621 569, 570, 570, 571, 571, 571, 571, 571, 571, 572,
2622 572, 572, 572, 572, 572, 572, 572, 572, 572, 572,
2623 572, 572, 573, 573, 573, 573, 573, 573, 573, 574,
2624 574, 575, 575, 575, 576, 576, 576, 577, 578, 578,
2625 579, 579, 580, 580, 581, 581, 582, 582, 583, 583,
2626 584, 584, 585, 585, 586, 586, 586, 586, 586, 587,
2627 588, 588, 589, 589, 590, 590, 591, 591, 591, 591,
2628 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
2629 592, 593, 593, 593, 594, 594, 595, 595, 596, 596,
2630 597, 597, 597, 597, 597, 597, 597, 597, 598, 598,
2631 599, 599, 599, 599, 599, 599, 599, 600, 600, 600,
2632 601, 601, 602, 603, 603, 604, 604, 604, 604, 604,
2633 604, 604, 604, 604, 605, 605, 606, 606, 606, 607,
2634 607, 608, 608, 609, 609, 610, 611, 611, 612, 612,
2635 613, 613, 613, 614, 614, 614, 615, 615, 615, 615,
2636 616, 616, 617, 617, 617, 617, 618, 618, 619, 619,
2637 620, 621, 621, 621, 622, 622, 623, 623, 624, 624,
2638 625, 625, 626, 626, 627, 627, 628, 629, 629, 630,
2639 630, 631, 631, 632, 632, 633, 634, 634, 634, 634,
2640 635, 635, 636, 636, 636, 637, 637, 638, 638, 639,
2641 639, 640, 640, 640, 640, 640, 640, 640, 640, 641,
2642 641, 641, 641, 641, 641, 642, 642, 642, 642, 643,
2643 643, 644, 644, 644, 644, 644, 645, 645, 645, 645,
2644 646, 646, 647, 647, 648, 648, 648, 648, 649, 650,
2645 650, 651, 651, 652, 653, 653, 654, 654, 655, 655,
2646 656, 656, 657, 657, 658, 659, 659, 660, 660, 660,
2647 660, 660, 660, 661, 661, 661, 662, 662, 662, 662,
2648 662, 662, 662, 663, 663, 663, 663, 664, 664, 665,
2649 665, 666, 666, 666, 666, 666, 666, 666, 666, 666,
2650 666, 666, 667, 667, 668, 668, 669, 669, 670, 671,
2651 672, 672, 673, 673, 674, 675, 676, 676, 676, 676,
2652 676, 676, 677, 677, 678, 678, 678, 678, 679, 680,
2653 680, 680, 681, 681, 681, 681, 681, 681, 681, 681,
2654 681, 681, 681, 681, 681, 681, 682, 682, 683, 683,
2655 683, 683, 683, 683, 683, 683, 683, 683, 683, 683,
2656 683, 683, 683, 683, 683, 683, 683, 683, 683, 683,
2657 683, 683, 683, 683, 683, 683, 683, 683, 683, 683,
2658 683, 683, 683, 683, 683, 683, 683, 683, 683, 683,
2659 683, 683, 683, 683, 683, 683, 683, 683, 683, 683,
2660 683, 683, 683, 683, 683, 683, 683, 683, 683, 683,
2661 684, 684, 684, 684, 684, 684, 684, 684, 684, 684,
2662 684, 684, 684, 684, 684, 684, 684, 684, 684, 684,
2663 684, 684, 684, 685, 685, 685, 685, 685, 685, 685,
2664 685, 685, 685, 686, 686, 686, 686, 686, 686, 686,
2665 687, 687, 688, 688, 689, 689, 689, 689, 689, 689,
2666 689, 689, 689, 689, 689, 689, 689, 689, 689, 689,
2667 689, 689, 689, 689, 689, 689, 689, 689, 689, 689,
2668 689, 689, 689, 689, 690, 690, 691, 691, 692, 692,
2669 693, 693, 694, 695, 695, 695, 696, 697, 697, 698,
2670 698, 699, 699, 699, 700, 700, 701, 701, 701, 701,
2671 701, 702, 702, 702, 703, 703, 703, 704, 704, 705,
2672 705, 705, 705, 705, 705, 705, 705, 705, 705, 705,
2673 705, 706, 706, 707, 707, 708, 708, 708, 708, 708,
2674 708, 709, 709, 710, 710, 711, 711, 712, 712, 712,
2675 713, 713, 714, 714, 715, 715, 715, 715, 715, 715,
2676 715, 715, 716, 716, 717, 718, 718, 719, 719, 719,
2677 719, 719, 719, 720, 721, 722, 722, 722, 723, 723,
2678 724, 725, 725, 726, 727, 727, 728, 728, 729, 729,
2679 730, 730, 730, 730, 731, 731, 732, 732, 733, 733,
2680 734, 734, 735, 735, 736, 736, 737, 737, 737, 737,
2681 738, 738, 739, 739, 740, 740, 741, 742, 743, 743,
2682 744, 744, 744, 744, 744, 744, 744, 744, 744, 744,
2683 744, 744, 744, 744, 745, 746, 747, 747, 747, 748,
2684 748, 748, 749, 749, 750, 750, 751, 751, 752, 753,
2685 753, 753, 753, 753, 754, 755, 755, 756, 756, 756,
2686 756, 757, 757, 758, 758, 759, 759, 759, 759, 760,
2687 760, 761, 762, 762, 763, 763, 764, 764, 765, 765,
2688 766, 766, 767, 767, 767, 767, 767, 767, 768, 769,
2689 769, 769, 769, 770, 770, 771, 771, 771, 772, 772,
2690 772, 772, 772, 773, 773, 773, 773, 774, 774, 775,
2691 775, 776, 776, 777, 777, 777, 777, 778, 779, 779,
2692 780, 780, 780, 781, 781, 781, 781, 782, 782, 782,
2693 782, 783, 783, 784, 784, 784, 784, 784, 784, 784,
2694 785, 785, 786, 787, 788, 788, 788, 788, 788, 789,
2695 789, 789, 789, 789, 790, 790, 791, 791, 792, 792,
2696 793, 794, 794, 794, 795, 795, 796, 796, 797, 797,
2697 798, 799, 799, 800, 800, 800, 801, 801, 801, 801,
2698 802, 802, 803, 803, 804, 804, 804, 804, 805, 805,
2699 805, 805, 806, 806, 807, 807, 807, 808, 809, 809,
2700 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2701 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2702 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2703 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2704 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2705 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2706 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2707 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2708 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2709 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2710 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2711 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2712 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2713 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2714 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2715 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2716 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2717 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2718 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2719 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2720 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2721 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2722 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2723 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2724 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2725 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2726 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2727 809, 809, 809, 809, 809, 809, 809, 809, 809, 809,
2728 809, 809, 810, 810, 810, 810, 810, 810, 810, 810,
2729 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
2730 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
2731 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
2732 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
2733 810, 810, 811, 811, 811, 811, 811, 811, 811, 811,
2734 811, 811, 811, 811, 811, 811, 811, 811, 811, 811,
2735 811, 811, 811, 811, 811, 812, 812, 812, 812, 812,
2736 812, 812, 812, 812, 812, 812, 812, 812, 812, 812,
2737 812, 812, 812, 812, 812, 812, 812, 812, 812, 812,
2738 812, 812, 812, 812, 812, 812, 812, 812, 812, 812,
2739 812, 812, 812, 812, 812, 812, 812, 812, 812, 812,
2740 812, 812, 812, 812, 812, 812, 812, 812, 812, 812,
2741 812, 812, 812, 812, 812, 812, 812, 812, 812, 812,
2742 812, 812, 812, 812, 812, 812, 812, 812, 812, 812,
2743 812, 812
2744};
2745
2746/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
2747static const yytype_uint8 yyr2[] =
2748{
2749 0, 2, 1, 3, 1, 1, 1, 1, 1, 1,
2750 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2751 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2752 1, 1, 1, 1, 0, 4, 6, 4, 6, 4,
2753 6, 4, 6, 1, 2, 3, 2, 1, 3, 2,
2754 3, 1, 3, 2, 5, 3, 6, 4, 6, 6,
2755 6, 5, 5, 6, 9, 4, 5, 7, 6, 4,
2756 8, 4, 2, 4, 3, 6, 4, 2, 2, 2,
2757 2, 1, 2, 0, 1, 2, 2, 2, 1, 3,
2758 4, 2, 0, 2, 3, 2, 3, 6, 6, 8,
2759 6, 8, 6, 8, 6, 8, 8, 10, 8, 10,
2760 1, 0, 7, 1, 4, 4, 7, 2, 1, 3,
2761 4, 3, 0, 1, 0, 2, 3, 5, 8, 5,
2762 0, 5, 5, 7, 2, 0, 1, 1, 1, 3,
2763 2, 0, 1, 0, 1, 3, 1, 3, 1, 3,
2764 2, 2, 4, 5, 5, 8, 1, 0, 3, 9,
2765 12, 3, 0, 4, 6, 1, 2, 1, 1, 0,
2766 1, 2, 2, 1, 2, 2, 1, 2, 3, 2,
2767 2, 2, 2, 3, 3, 3, 1, 3, 1, 0,
2768 1, 2, 2, 2, 2, 2, 2, 2, 2, 1,
2769 1, 0, 9, 12, 0, 2, 1, 1, 1, 1,
2770 1, 1, 3, 0, 1, 2, 1, 1, 2, 2,
2771 3, 1, 1, 2, 2, 1, 2, 3, 5, 2,
2772 5, 5, 2, 3, 1, 1, 2, 2, 0, 4,
2773 0, 3, 4, 4, 0, 3, 2, 0, 3, 1,
2774 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
2775 3, 1, 2, 2, 2, 2, 2, 2, 0, 3,
2776 3, 3, 0, 1, 2, 1, 2, 2, 2, 2,
2777 4, 1, 3, 1, 3, 1, 1, 1, 1, 3,
2778 1, 2, 0, 1, 0, 1, 3, 0, 2, 0,
2779 3, 3, 1, 5, 3, 1, 3, 1, 4, 5,
2780 5, 6, 3, 7, 4, 11, 1, 3, 2, 2,
2781 2, 0, 3, 1, 1, 2, 2, 2, 2, 1,
2782 0, 1, 2, 6, 4, 6, 4, 6, 8, 1,
2783 1, 1, 2, 1, 2, 1, 1, 1, 3, 3,
2784 3, 3, 2, 2, 1, 3, 1, 1, 1, 1,
2785 3, 1, 1, 0, 1, 1, 1, 8, 11, 9,
2786 1, 1, 3, 0, 1, 3, 1, 0, 1, 0,
2787 1, 0, 1, 3, 1, 1, 1, 3, 0, 2,
2788 2, 0, 2, 0, 1, 0, 1, 1, 1, 3,
2789 3, 1, 1, 3, 3, 3, 3, 4, 3, 2,
2790 1, 1, 1, 1, 1, 3, 1, 1, 3, 3,
2791 1, 2, 4, 4, 2, 3, 5, 5, 1, 1,
2792 9, 9, 1, 2, 4, 4, 4, 2, 2, 3,
2793 1, 3, 6, 2, 0, 3, 3, 4, 4, 4,
2794 4, 3, 2, 1, 1, 0, 1, 1, 0, 1,
2795 5, 1, 0, 1, 0, 3, 1, 3, 4, 3,
2796 1, 1, 0, 2, 2, 0, 2, 2, 1, 1,
2797 1, 0, 2, 4, 5, 4, 2, 3, 1, 1,
2798 1, 1, 2, 2, 1, 1, 1, 1, 1, 1,
2799 3, 0, 1, 3, 1, 1, 2, 2, 0, 1,
2800 3, 1, 0, 1, 2, 3, 2, 4, 2, 3,
2801 2, 0, 1, 2, 0, 4, 5, 2, 0, 1,
2802 3, 2, 3, 2, 3, 2, 3, 1, 4, 3,
2803 4, 5, 4, 5, 4, 5, 2, 4, 1, 1,
2804 0, 1, 4, 5, 4, 0, 2, 2, 2, 1,
2805 1, 0, 4, 2, 1, 2, 2, 4, 6, 4,
2806 0, 2, 6, 2, 1, 3, 4, 0, 2, 0,
2807 2, 0, 1, 3, 3, 2, 0, 2, 3, 5,
2808 6, 2, 3, 3, 4, 0, 1, 1, 1, 1,
2809 1, 2, 4, 1, 1, 1, 1, 2, 3, 3,
2810 0, 1, 1, 1, 1, 1, 2, 2, 2, 2,
2811 2, 1, 3, 0, 1, 1, 1, 1, 5, 2,
2812 1, 1, 1, 1, 4, 1, 2, 2, 1, 3,
2813 3, 2, 1, 0, 5, 2, 5, 2, 1, 3,
2814 3, 0, 1, 1, 1, 1, 1, 1, 3, 3,
2815 3, 3, 3, 3, 3, 0, 1, 4, 1, 3,
2816 3, 5, 2, 2, 3, 3, 3, 3, 3, 3,
2817 3, 3, 3, 3, 3, 3, 3, 2, 2, 3,
2818 3, 2, 2, 3, 5, 4, 6, 3, 5, 4,
2819 6, 4, 6, 5, 7, 3, 2, 4, 3, 2,
2820 3, 3, 4, 3, 4, 3, 4, 5, 6, 6,
2821 7, 6, 7, 6, 7, 3, 4, 4, 6, 1,
2822 1, 3, 2, 2, 3, 3, 3, 3, 3, 3,
2823 3, 3, 3, 3, 3, 3, 3, 2, 2, 5,
2824 6, 6, 7, 1, 1, 2, 2, 4, 1, 1,
2825 1, 2, 2, 3, 5, 6, 8, 6, 6, 4,
2826 4, 1, 1, 1, 5, 1, 1, 4, 1, 4,
2827 1, 4, 1, 4, 1, 1, 1, 1, 1, 1,
2828 6, 4, 4, 4, 4, 6, 5, 5, 5, 4,
2829 6, 4, 4, 4, 5, 0, 5, 0, 2, 0,
2830 1, 3, 3, 2, 2, 0, 6, 1, 0, 3,
2831 0, 2, 2, 0, 1, 4, 2, 2, 2, 2,
2832 2, 4, 3, 5, 1, 1, 1, 1, 1, 1,
2833 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2834 1, 1, 4, 1, 4, 1, 4, 1, 2, 1,
2835 2, 1, 3, 1, 3, 1, 3, 1, 3, 3,
2836 1, 3, 3, 0, 1, 1, 1, 1, 1, 1,
2837 1, 1, 4, 3, 2, 3, 0, 3, 3, 2,
2838 2, 1, 0, 2, 2, 3, 2, 1, 1, 3,
2839 5, 1, 2, 4, 2, 0, 1, 0, 1, 2,
2840 2, 2, 3, 5, 1, 0, 1, 2, 0, 2,
2841 1, 0, 1, 0, 1, 3, 3, 2, 1, 1,
2842 1, 3, 1, 2, 1, 3, 1, 1, 1, 2,
2843 1, 1, 1, 1, 1, 2, 6, 2, 3, 5,
2844 6, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2845 1, 1, 1, 2, 2, 3, 3, 0, 1, 1,
2846 1, 1, 1, 1, 5, 3, 0, 1, 1, 1,
2847 1, 4, 7, 2, 0, 1, 1, 1, 1, 13,
2848 16, 1, 2, 0, 1, 0, 1, 0, 2, 0,
2849 1, 0, 6, 8, 6, 8, 6, 8, 1, 2,
2850 4, 3, 5, 1, 0, 1, 1, 0, 1, 1,
2851 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2852 3, 1, 1, 1, 1, 1, 1, 2, 1, 1,
2853 2, 3, 3, 1, 3, 3, 2, 3, 3, 3,
2854 3, 1, 1, 1, 1, 3, 5, 1, 1, 1,
2855 1, 3, 2, 1, 4, 5, 5, 4, 6, 1,
2856 1, 1, 1, 1, 1, 0, 1, 3, 1, 0,
2857 7, 1, 2, 3, 2, 0, 2, 0, 2, 4,
2858 2, 1, 1, 1, 2, 3, 2, 3, 4, 2,
2859 1, 1, 1, 3, 9, 11, 12, 14, 3, 4,
2860 4, 0, 7, 10, 2, 3, 0, 4, 1, 1,
2861 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2862 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2863 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2864 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2865 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2866 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2867 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2868 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2869 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2870 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2871 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2872 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2873 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2874 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2875 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2876 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2877 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2878 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2879 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2880 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2881 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2882 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2883 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2884 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2885 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2886 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2887 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2888 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2889 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2890 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2891 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2892 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2893 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2894 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2895 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2896 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2897 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2898 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2899 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2900 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2901 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2902 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2903 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2904 1, 1
2905};
2906
2907/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
2908 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
2909 means the default is an error. */
2910static const yytype_uint16 yydefact[] =
2911{
2912 124, 201, 0, 1032, 1031, 201, 1008, 201, 395, 330,
2913 0, 1101, 0, 201, 0, 124, 0, 0, 0, 0,
2914 201, 462, 0, 1100, 201, 0, 1075, 0, 0, 0,
2915 0, 0, 2, 4, 7, 15, 25, 21, 0, 23,
2916 13, 18, 6, 27, 14, 17, 28, 10, 26, 429,
2917 416, 464, 428, 123, 432, 24, 12, 20, 5, 9,
2918 19, 1014, 31, 22, 29, 16, 8, 30, 32, 0,
2919 33, 11, 200, 199, 193, 0, 0, 0, 0, 0,
2920 194, 196, 394, 124, 0, 0, 0, 0, 0, 324,
2921 323, 1000, 329, 0, 0, 956, 1118, 1119, 1120, 1121,
2922 1122, 1123, 1124, 1125, 95, 1126, 1127, 1128, 1129, 1130,
2923 1131, 1132, 1133, 1134, 1135, 1136, 1402, 1403, 1404, 1405,
2924 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1406, 1407, 1144,
2925 1145, 1146, 1147, 1148, 1408, 1149, 1150, 1151, 1152, 1153,
2926 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163,
2927 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1409, 1410,
2928 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181,
2929 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191,
2930 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1411, 1200,
2931 1201, 1202, 1412, 1203, 1204, 1205, 1413, 1206, 1207, 1208,
2932 1209, 1210, 1211, 1212, 1213, 1414, 1415, 1214, 1215, 1216,
2933 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226,
2934 1227, 1228, 1229, 1230, 1416, 1231, 1232, 1233, 1234, 1417,
2935 1418, 1419, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242,
2936 1420, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251,
2937 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261,
2938 1262, 1421, 1422, 1263, 1264, 1265, 1423, 1266, 1267, 1268,
2939 1424, 1269, 1425, 1270, 1271, 1272, 1273, 1274, 1275, 1276,
2940 1277, 1278, 1426, 1279, 1427, 1280, 1281, 1282, 1283, 1284,
2941 1285, 1286, 1287, 1288, 1289, 1290, 1428, 1291, 1292, 1429,
2942 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302,
2943 1303, 1304, 1430, 1305, 1306, 1307, 1308, 1309, 1310, 1311,
2944 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321,
2945 1322, 1323, 1324, 1325, 1431, 1326, 1327, 1328, 1329, 1330,
2946 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340,
2947 1432, 1341, 1342, 1343, 1344, 1345, 1433, 1346, 1347, 1348,
2948 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358,
2949 1434, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1435,
2950 1436, 1367, 1368, 1437, 1369, 1438, 1370, 1371, 1372, 1373,
2951 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383,
2952 1384, 1385, 1386, 1439, 1440, 1387, 1388, 1389, 1390, 1391,
2953 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1441, 1442, 1443,
2954 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1399, 1400,
2955 1401, 93, 936, 957, 958, 0, 345, 346, 0, 354,
2956 0, 343, 0, 364, 356, 365, 357, 340, 358, 347,
2957 339, 0, 366, 341, 0, 0, 0, 197, 1293, 162,
2958 330, 124, 0, 1019, 1020, 1018, 1009, 1014, 1021, 1022,
2959 955, 1063, 1062, 151, 976, 1092, 1435, 1367, 1102, 1093,
2960 1090, 1091, 198, 461, 459, 0, 923, 1246, 1329, 1339,
2961 1435, 1040, 1043, 0, 195, 0, 433, 564, 932, 1074,
2962 0, 1079, 0, 1307, 437, 440, 967, 438, 429, 0,
2963 0, 1, 124, 0, 0, 0, 458, 458, 0, 458,
2964 0, 421, 429, 424, 428, 0, 1013, 1088, 1099, 1435,
2965 1367, 1096, 1219, 0, 0, 1219, 0, 1219, 0, 1219,
2966 0, 978, 979, 977, 0, 980, 297, 328, 327, 326,
2967 325, 330, 1219, 984, 0, 0, 0, 0, 995, 96,
2968 94, 352, 353, 0, 344, 342, 0, 1219, 363, 962,
2969 359, 1219, 363, 934, 1219, 0, 0, 158, 0, 1011,
2970 1023, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460,
2971 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470,
2972 1471, 1472, 1473, 1439, 1474, 1038, 0, 1039, 1029, 1017,
2973 1024, 1025, 1026, 124, 0, 0, 0, 0, 1094, 0,
2974 0, 0, 956, 941, 943, 944, 851, 954, 918, 1403,
2975 1404, 1405, 907, 0, 1406, 1407, 1408, 1454, 788, 775,
2976 784, 789, 776, 778, 785, 1409, 1410, 729, 1187, 1411,
2977 1412, 952, 1413, 1414, 1417, 1418, 1419, 1420, 780, 782,
2978 1421, 1422, 0, 953, 1424, 1425, 1275, 1427, 1428, 1430,
2979 1431, 786, 1433, 1434, 1435, 1436, 1437, 1438, 951, 787,
2980 1440, 0, 0, 0, 929, 0, 918, 760, 0, 603,
2981 604, 626, 627, 605, 632, 633, 635, 606, 0, 928,
2982 668, 805, 759, 771, 0, 0, 758, 753, 444, 924,
2983 0, 754, 940, 942, 908, 938, 957, 961, 444, 922,
2984 1041, 1046, 1042, 0, 0, 0, 0, 0, 566, 565,
2985 915, 0, 916, 933, 1073, 1071, 1072, 1070, 1069, 1076,
2986 0, 1078, 1014, 863, 0, 439, 0, 0, 0, 419,
2987 418, 3, 0, 0, 1081, 0, 456, 457, 0, 0,
2988 0, 0, 0, 0, 0, 0, 512, 478, 479, 481,
2989 509, 513, 521, 0, 425, 0, 967, 1097, 0, 0,
2990 0, 111, 111, 0, 0, 0, 0, 0, 88, 37,
2991 81, 0, 0, 0, 0, 176, 189, 0, 0, 0,
2992 0, 0, 186, 0, 0, 169, 39, 163, 165, 0,
2993 111, 0, 35, 0, 0, 0, 41, 0, 0, 391,
2994 0, 0, 981, 0, 1219, 157, 1219, 297, 0, 297,
2995 994, 997, 355, 351, 349, 348, 350, 0, 361, 362,
2996 0, 334, 0, 963, 0, 0, 336, 0, 0, 0,
2997 0, 124, 0, 170, 1034, 1035, 1033, 0, 0, 1016,
2998 173, 190, 1028, 1037, 1027, 1036, 1015, 1010, 1052, 1051,
2999 1060, 152, 867, 0, 865, 938, 0, 959, 614, 643,
3000 621, 643, 643, 610, 610, 623, 611, 612, 648, 0,
3001 643, 610, 615, 0, 613, 651, 651, 638, 870, 595,
3002 596, 597, 598, 624, 625, 599, 630, 631, 600, 665,
3003 0, 610, 960, 124, 1095, 1103, 0, 756, 642, 629,
3004 906, 0, 0, 637, 636, 0, 0, 0, 0, 0,
3005 619, 618, 617, 762, 873, 0, 616, 0, 0, 0,
3006 0, 643, 643, 641, 691, 0, 620, 0, 0, 886,
3007 0, 892, 0, 0, 0, 647, 0, 645, 0, 0,
3008 692, 672, 673, 760, 863, 0, 755, 761, 947, 0,
3009 0, 665, 927, 851, 0, 848, 849, 850, 0, 0,
3010 0, 921, 0, 859, 0, 0, 706, 857, 0, 709,
3011 0, 0, 0, 0, 845, 846, 847, 839, 840, 841,
3012 842, 843, 844, 855, 838, 688, 0, 0, 807, 0,
3013 687, 0, 0, 528, 0, 945, 909, 528, 1054, 1058,
3014 1059, 1057, 0, 1053, 1045, 1044, 1049, 1047, 1050, 1048,
3015 0, 914, 0, 969, 1475, 1476, 1477, 1478, 1479, 1480,
3016 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490,
3017 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500,
3018 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510,
3019 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520,
3020 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530,
3021 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540,
3022 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550,
3023 1551, 911, 910, 937, 970, 971, 972, 973, 917, 1067,
3024 0, 1064, 525, 0, 441, 0, 0, 1087, 0, 118,
3025 0, 1082, 0, 436, 435, 465, 466, 472, 434, 498,
3026 499, 0, 0, 0, 0, 518, 516, 489, 482, 488,
3027 0, 0, 486, 0, 490, 668, 511, 423, 476, 477,
3028 480, 422, 0, 514, 0, 524, 512, 481, 0, 1089,
3029 1098, 0, 0, 0, 0, 0, 1219, 0, 0, 72,
3030 53, 249, 0, 110, 0, 0, 0, 0, 0, 0,
3031 0, 80, 77, 78, 79, 0, 0, 0, 0, 174,
3032 175, 188, 0, 179, 180, 177, 181, 182, 0, 0,
3033 167, 168, 0, 0, 0, 0, 166, 0, 0, 0,
3034 0, 0, 0, 0, 0, 381, 305, 0, 295, 0,
3035 0, 0, 0, 0, 330, 987, 985, 983, 986, 988,
3036 0, 0, 154, 156, 0, 294, 268, 0, 999, 1219,
3037 996, 285, 0, 363, 360, 964, 0, 363, 935, 0,
3038 363, 161, 1219, 297, 0, 1012, 1030, 171, 191, 172,
3039 192, 0, 153, 0, 0, 0, 595, 591, 587, 654,
3040 655, 656, 653, 666, 652, 0, 601, 657, 975, 0,
3041 607, 610, 974, 0, 919, 0, 0, 905, 901, 0,
3042 0, 0, 0, 0, 0, 874, 877, 878, 879, 876,
3043 880, 875, 0, 0, 881, 0, 0, 0, 0, 0,
3044 640, 639, 0, 837, 848, 849, 850, 845, 846, 847,
3045 839, 840, 841, 842, 843, 844, 861, 0, 0, 0,
3046 0, 0, 0, 0, 0, 730, 0, 0, 832, 0,
3047 863, 891, 0, 0, 0, 0, 0, 0, 0, 0,
3048 0, 0, 863, 897, 0, 918, 0, 0, 0, 0,
3049 948, 669, 683, 684, 685, 689, 926, 0, 920, 0,
3050 0, 670, 697, 0, 898, 725, 0, 713, 0, 705,
3051 0, 711, 715, 693, 708, 0, 690, 0, 921, 860,
3052 0, 858, 0, 680, 681, 682, 674, 675, 676, 677,
3053 678, 679, 686, 836, 834, 835, 0, 0, 0, 815,
3054 0, 0, 710, 1212, 1246, 0, 455, 455, 455, 443,
3055 453, 925, 0, 581, 0, 0, 0, 0, 763, 464,
3056 581, 0, 665, 567, 912, 915, 967, 1077, 1065, 1066,
3057 864, 966, 124, 0, 1085, 0, 0, 0, 130, 113,
3058 0, 1083, 0, 146, 528, 0, 918, 0, 470, 471,
3059 0, 475, 1431, 1326, 0, 0, 0, 0, 491, 519,
3060 0, 510, 0, 941, 492, 940, 493, 496, 497, 487,
3061 520, 930, 522, 0, 515, 427, 426, 526, 0, 38,
3062 0, 1219, 55, 0, 0, 0, 0, 0, 0, 204,
3063 240, 204, 92, 1219, 363, 1219, 363, 1122, 1188, 1340,
3064 0, 51, 84, 0, 273, 104, 0, 258, 302, 74,
3065 89, 97, 0, 0, 40, 164, 178, 183, 100, 187,
3066 184, 1004, 185, 111, 0, 36, 0, 98, 0, 1002,
3067 0, 0, 42, 102, 1006, 380, 0, 296, 0, 390,
3068 370, 371, 381, 0, 297, 984, 0, 0, 0, 0,
3069 0, 288, 286, 316, 0, 293, 287, 295, 0, 0,
3070 244, 0, 1116, 0, 0, 0, 0, 333, 965, 335,
3071 0, 337, 0, 0, 1061, 866, 868, 869, 592, 588,
3072 0, 0, 0, 0, 0, 0, 0, 0, 871, 608,
3073 460, 0, 0, 0, 902, 0, 0, 801, 0, 777,
3074 779, 609, 791, 0, 622, 802, 803, 781, 783, 0,
3075 852, 0, 0, 0, 792, 732, 733, 0, 0, 0,
3076 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3077 0, 0, 0, 0, 748, 747, 793, 831, 0, 0,
3078 889, 890, 794, 650, 649, 651, 651, 0, 0, 896,
3079 0, 0, 0, 799, 757, 864, 634, 0, 0, 0,
3080 0, 0, 0, 0, 0, 0, 714, 707, 0, 712,
3081 716, 0, 0, 0, 701, 0, 0, 699, 726, 695,
3082 0, 0, 727, 0, 0, 0, 770, 455, 455, 455,
3083 455, 452, 454, 0, 0, 0, 0, 1326, 0, 550,
3084 527, 529, 537, 550, 555, 772, 579, 773, 0, 932,
3085 0, 501, 464, 464, 464, 769, 0, 0, 463, 501,
3086 0, 1055, 914, 0, 1068, 0, 1086, 0, 135, 117,
3087 137, 136, 0, 144, 0, 918, 0, 135, 119, 0,
3088 138, 0, 1085, 0, 150, 467, 0, 853, 475, 0,
3089 469, 495, 494, 0, 485, 517, 483, 0, 523, 0,
3090 0, 0, 248, 0, 0, 0, 204, 0, 0, 312,
3091 0, 299, 73, 0, 0, 0, 47, 0, 65, 57,
3092 43, 71, 0, 0, 76, 0, 69, 86, 87, 85,
3093 90, 0, 232, 214, 245, 0, 0, 0, 0, 0,
3094 0, 0, 0, 0, 0, 0, 0, 0, 412, 413,
3095 169, 411, 306, 0, 0, 999, 982, 0, 0, 157,
3096 297, 0, 272, 268, 0, 266, 265, 267, 0, 1117,
3097 162, 0, 1112, 998, 0, 0, 993, 363, 0, 0,
3098 0, 593, 0, 659, 660, 661, 662, 663, 664, 0,
3099 658, 602, 628, 0, 904, 900, 0, 774, 872, 0,
3100 862, 884, 883, 731, 743, 744, 745, 885, 0, 0,
3101 0, 740, 741, 742, 734, 735, 736, 737, 738, 739,
3102 746, 894, 893, 887, 888, 646, 644, 0, 796, 797,
3103 798, 895, 833, 665, 949, 671, 0, 0, 698, 899,
3104 717, 0, 0, 0, 694, 852, 0, 0, 0, 0,
3105 0, 703, 0, 0, 0, 818, 813, 814, 0, 0,
3106 0, 0, 446, 445, 451, 550, 555, 0, 0, 429,
3107 0, 537, 0, 549, 535, 548, 0, 0, 561, 559,
3108 0, 561, 0, 561, 0, 531, 0, 551, 533, 548,
3109 0, 571, 0, 933, 580, 0, 508, 0, 0, 0,
3110 0, 764, 508, 0, 913, 442, 1084, 0, 1080, 0,
3111 0, 0, 125, 122, 112, 0, 0, 147, 135, 126,
3112 0, 468, 473, 474, 484, 931, 105, 204, 0, 0,
3113 54, 0, 314, 260, 292, 275, 0, 0, 0, 205,
3114 0, 280, 0, 46, 66, 0, 62, 0, 91, 0,
3115 0, 0, 0, 0, 49, 61, 0, 44, 0, 363,
3116 363, 52, 259, 211, 1275, 0, 839, 840, 209, 301,
3117 206, 307, 208, 210, 610, 207, 304, 101, 1005, 0,
3118 99, 0, 1003, 108, 106, 103, 1007, 393, 373, 0,
3119 0, 1219, 0, 999, 155, 294, 0, 322, 244, 317,
3120 0, 1116, 1114, 0, 1111, 0, 0, 0, 338, 0,
3121 0, 589, 594, 667, 903, 790, 800, 882, 0, 0,
3122 0, 0, 795, 950, 723, 721, 718, 0, 719, 702,
3123 0, 0, 700, 696, 0, 728, 804, 0, 820, 817,
3124 450, 449, 448, 447, 536, 534, 939, 0, 539, 546,
3125 0, 530, 0, 560, 556, 0, 557, 0, 0, 558,
3126 0, 0, 532, 0, 546, 0, 578, 464, 0, 0,
3127 809, 767, 768, 765, 464, 946, 809, 1056, 134, 114,
3128 0, 115, 145, 0, 0, 0, 0, 139, 367, 0,
3129 310, 56, 0, 292, 0, 204, 277, 276, 279, 274,
3130 278, 281, 0, 0, 0, 0, 0, 261, 0, 0,
3131 0, 225, 0, 0, 292, 298, 221, 222, 331, 0,
3132 0, 0, 58, 48, 45, 50, 59, 0, 0, 60,
3133 63, 586, 75, 68, 610, 610, 0, 0, 0, 0,
3134 369, 382, 376, 169, 0, 0, 0, 0, 294, 0,
3135 0, 0, 1116, 0, 0, 202, 0, 241, 0, 159,
3136 1115, 0, 1104, 0, 991, 992, 0, 0, 590, 749,
3137 0, 0, 0, 720, 724, 722, 704, 806, 0, 464,
3138 574, 0, 577, 538, 0, 0, 540, 0, 0, 542,
3139 544, 0, 0, 0, 0, 582, 0, 0, 0, 936,
3140 0, 0, 500, 502, 505, 504, 507, 0, 431, 0,
3141 430, 0, 0, 0, 148, 0, 141, 141, 0, 127,
3142 854, 0, 204, 0, 291, 311, 239, 0, 0, 223,
3143 0, 229, 0, 263, 264, 262, 224, 292, 297, 226,
3144 332, 0, 67, 0, 83, 610, 0, 303, 109, 107,
3145 414, 0, 388, 396, 401, 379, 0, 379, 0, 398,
3146 402, 379, 397, 379, 392, 393, 0, 999, 1111, 0,
3147 0, 268, 162, 1113, 257, 250, 251, 252, 253, 254,
3148 255, 256, 271, 270, 242, 243, 0, 0, 0, 993,
3149 0, 750, 0, 751, 0, 823, 579, 0, 0, 573,
3150 0, 547, 563, 0, 543, 541, 0, 552, 0, 586,
3151 0, 554, 764, 506, 0, 808, 810, 0, 766, 0,
3152 121, 0, 581, 0, 0, 143, 143, 129, 0, 297,
3153 313, 0, 283, 290, 282, 0, 0, 220, 0, 227,
3154 321, 213, 585, 0, 70, 0, 308, 383, 0, 386,
3155 0, 385, 389, 384, 378, 0, 409, 0, 0, 0,
3156 0, 0, 0, 368, 372, 0, 1105, 0, 1111, 244,
3157 1116, 0, 1108, 0, 0, 999, 752, 819, 0, 0,
3158 0, 572, 575, 0, 545, 0, 0, 583, 584, 553,
3159 503, 0, 0, 116, 141, 120, 149, 140, 472, 142,
3160 472, 0, 321, 269, 0, 0, 247, 213, 0, 238,
3161 0, 64, 82, 309, 415, 0, 374, 410, 399, 404,
3162 0, 408, 406, 405, 400, 403, 0, 294, 1106, 203,
3163 160, 1109, 1110, 0, 581, 1402, 1165, 1374, 0, 821,
3164 824, 822, 816, 0, 562, 570, 811, 812, 143, 475,
3165 475, 581, 238, 284, 289, 0, 228, 230, 318, 319,
3166 320, 0, 234, 231, 235, 0, 387, 0, 407, 1111,
3167 0, 989, 0, 828, 827, 826, 830, 829, 576, 0,
3168 568, 472, 132, 131, 128, 204, 246, 0, 0, 0,
3169 236, 0, 237, 212, 375, 1107, 999, 0, 0, 475,
3170 315, 217, 0, 216, 0, 300, 233, 581, 825, 0,
3171 133, 215, 219, 218, 990, 569
3172};
3173
3174/* YYDEFGOTO[NTERM-NUM]. */
3175static const yytype_int16 yydefgoto[] =
3176{
3177 -1, 31, 32, 33, 34, 1798, 1799, 1800, 1520, 788,
3178 2424, 1521, 789, 790, 1802, 35, 36, 1185, 463, 1458,
3179 1128, 2165, 38, 1753, 1463, 1757, 2294, 1988, 1752, 1759,
3180 2405, 2478, 1754, 1464, 2295, 1465, 39, 40, 1242, 41,
3181 577, 42, 1243, 1212, 868, 808, 1202, 860, 43, 74,
3182 44, 1789, 2049, 2491, 1812, 2585, 2195, 2196, 1522, 2542,
3183 2543, 1791, 1849, 1194, 2536, 1571, 2362, 1526, 1509, 2197,
3184 1580, 2304, 2077, 1523, 2019, 1572, 2182, 2411, 1250, 1573,
3185 2412, 2175, 1574, 1226, 1246, 2021, 2544, 1527, 1227, 2050,
3186 1181, 1575, 2489, 1576, 93, 2200, 45, 454, 455, 568,
3187 841, 456, 464, 47, 1562, 2223, 2495, 2224, 2435, 1556,
3188 2220, 2432, 2330, 1230, 2221, 84, 2344, 2496, 1830, 2331,
3189 465, 687, 50, 51, 52, 510, 504, 505, 1013, 1429,
3190 1713, 758, 485, 486, 520, 1738, 1135, 1136, 1471, 1770,
3191 1160, 1161, 767, 768, 1148, 1152, 1153, 1484, 1477, 1141,
3192 1976, 2282, 2283, 2284, 2150, 1156, 1157, 770, 771, 772,
3193 1165, 1494, 54, 1433, 1720, 1721, 1722, 1953, 1954, 1968,
3194 1964, 2134, 2269, 1723, 2142, 2560, 1724, 2260, 2261, 2379,
3195 1971, 1731, 2274, 2275, 2324, 898, 1278, 899, 688, 900,
3196 1290, 689, 936, 902, 690, 691, 692, 905, 693, 694,
3197 695, 696, 919, 697, 698, 955, 1286, 1287, 743, 1344,
3198 700, 701, 702, 1726, 703, 1008, 1419, 2288, 2395, 2396,
3199 1706, 1936, 2118, 2259, 2460, 2519, 2520, 704, 1416, 1003,
3200 1004, 705, 2052, 1006, 1337, 1363, 873, 874, 910, 1312,
3201 1313, 1340, 1633, 1347, 1352, 1660, 1661, 1364, 1385, 706,
3202 1297, 1298, 1615, 921, 707, 732, 1032, 967, 917, 1380,
3203 718, 708, 709, 1490, 497, 2265, 573, 1112, 710, 711,
3204 712, 713, 714, 715, 2479, 843, 748, 876, 1524, 55,
3205 617, 544, 56, 822, 1237, 57, 2245, 2087, 831, 1252,
3206 1584, 94, 58, 59, 60, 527, 863, 466, 864, 865,
3207 606, 61, 869, 608, 609, 62, 491, 492, 870, 1024,
3208 871, 63, 472, 64, 739, 501, 740, 742, 468, 755,
3209 1748, 1454, 66, 67, 479, 480, 68, 69, 493, 70,
3210 2242, 469, 1852, 828, 433, 434, 717, 1117
3211};
3212
3213/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
3214 STATE-NUM. */
3215#define YYPACT_NINF -2177
3216static const int yypact[] =
3217{
3218 3468, -119, 640, -2177, -2177, -119, -2177, -119, 52, 1942,
3219 29672, -2177, 967, -119, 33713, 785, 325, 33713, 33713, 30121,
3220 -119, 245, 34162, -2177, -119, 30570, 28, -60, 34611, 33713,
3221 1216, 416, -13, -2177, -2177, -2177, -2177, -2177, 99, -2177,
3222 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, 150,
3223 -2177, 60, 157, 610, 72, -2177, -2177, -2177, -2177, -2177,
3224 -2177, 76, -2177, -2177, -2177, -2177, -2177, -2177, -2177, 31019,
3225 -2177, -2177, -2177, -2177, -2177, 35060, 33713, 35509, 31468, 35958,
3226 -2177, -2177, -2177, 1216, 33713, 497, 543, 311, 36407, -2177,
3227 -2177, -2177, -2177, -25, 485, -2177, -2177, -2177, -2177, -2177,
3228 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3229 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3230 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3231 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3232 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3233 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3234 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3235 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3236 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3237 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3238 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3239 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3240 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3241 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3242 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3243 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3244 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3245 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3246 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3247 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3248 31917, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3249 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3250 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3251 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3252 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3253 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3254 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3255 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3256 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3257 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3258 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3259 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3260 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3261 -2177, -2177, -2177, -2177, -2177, 443, -2177, -2177, 298, -2177,
3262 74, -2177, 274, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3263 -2177, 375, -2177, -2177, 36856, 37305, 37754, -2177, -2177, 260,
3264 703, 346, 17875, -2177, -2177, -2177, -2177, 76, -2177, -2177,
3265 -2177, -2177, -2177, 402, 270, -2177, 312, 569, -2177, -2177,
3266 -2177, 317, -2177, -2177, 528, 7655, 7655, 38203, 325, 38203,
3267 383, -2177, -2177, 266, -2177, 18779, -2177, 382, 360, -2177,
3268 124, 701, 10010, 33713, 400, -2177, 431, 400, 435, 445,
3269 610, -2177, 3468, 777, 796, 30570, 264, 264, 940, 264,
3270 930, 1141, -2177, 1524, -2177, 551, -2177, 33713, -2177, 574,
3271 848, 317, 929, 393, 748, 962, 21848, 966, 969, 976,
3272 1123, -2177, -2177, -2177, 623, -2177, 660, -2177, -2177, -2177,
3273 -2177, 703, 886, -2177, 719, 38652, 39101, 33713, 1082, -2177,
3274 -2177, -2177, -2177, 737, -2177, -2177, 166, 1029, 42, 712,
3275 -2177, 1042, 164, -2177, 1071, 944, 10010, -2177, 847, -2177,
3276 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3277 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3278 -2177, -2177, -2177, -60, -2177, -2177, 486, -2177, -2177, 24119,
3279 -2177, -2177, -2177, 346, 24119, 10010, 43142, 1195, -2177, 1016,
3280 33713, 794, 103, -2177, -2177, -2177, -2177, -2177, -2177, 1269,
3281 101, 1282, 10010, 845, 101, 101, 853, 1149, -2177, -2177,
3282 -2177, 119, 875, 889, -2177, 97, 97, -2177, 1037, 895,
3283 900, -2177, 115, 920, 1333, 1350, 133, 924, 938, 951,
3284 846, 101, 10010, -2177, 961, 97, 963, 983, 1003, 1373,
3285 1007, -2177, 1385, 1008, 131, 142, 1009, 1017, -2177, -2177,
3286 136, 10010, 10010, 10010, -2177, 6713, -2177, 360, 325, -2177,
3287 -2177, -2177, -2177, -2177, -2177, -2177, 1019, -2177, 137, 4230,
3288 -2177, 991, -2177, -2177, 1152, 10010, -2177, -2177, -31, -2177,
3289 143, -2177, -2177, -2177, 360, -2177, 132, -2177, 1230, 965,
3290 -2177, -2177, -2177, 180, 1402, 23221, 23670, 33713, -2177, -2177,
3291 10010, 22323, -2177, 360, -2177, -2177, -2177, -2177, -2177, -2177,
3292 487, -2177, 76, 25184, 531, 400, 33713, 33713, 1462, -2177,
3293 -2177, -2177, 30570, 33713, 39550, 1147, -2177, -2177, 610, 610,
3294 10010, 610, 127, 561, 8126, 10481, 1345, 1246, 155, 117,
3295 1359, -2177, 1253, 930, 1141, 10010, 431, -2177, 1305, 33713,
3296 28325, 362, 649, 1075, 1138, 1077, 280, 1467, -2177, 1079,
3297 -2177, 1165, 33713, 43577, 163, -2177, 1502, 163, 163, 476,
3298 1504, 1170, 178, 1318, -42, -26, 1079, 1822, -2177, 30570,
3299 80, -41, 1079, 33713, 1183, 498, 1079, 1189, 33713, 1143,
3300 -76, 1434, 1493, 33713, 1332, 1822, 1335, 1120, 1556, 660,
3301 -2177, 39999, -2177, -2177, -2177, -2177, -2177, 33713, -2177, -2177,
3302 33713, -2177, 25631, 1122, 33713, 33713, -2177, 33713, 33713, 564,
3303 40448, 346, 27427, -2177, -2177, -2177, -2177, 725, 842, -2177,
3304 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3305 -2177, 1125, 25184, 587, -2177, 922, 1185, -2177, -2177, 1175,
3306 -2177, 1175, 1175, 1130, 1130, 1131, -2177, -2177, -2177, 846,
3307 1175, 1130, -2177, 43577, -2177, 483, 513, -2177, -2177, 1566,
3308 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, 917,
3309 589, 539, -2177, 1216, -2177, -2177, 10010, 360, -2177, 1133,
3310 25184, 1176, 10010, -2177, -2177, 10010, 1139, 1597, 1597, 10010,
3311 -2177, -2177, -2177, -2177, 199, 1597, -2177, 10010, 10010, 1597,
3312 1597, 1175, 1175, -2177, 3984, 10010, -2177, 21036, 10010, 12836,
3313 8597, 10010, 1221, 1224, 1597, -2177, 1597, -2177, 10010, 7184,
3314 3984, 1601, 1601, 1628, 4541, 1144, 360, 360, -2177, 1597,
3315 86, 169, -2177, 138, 43142, 10010, 10010, 10010, 10010, 25631,
3316 1226, 92, 33713, 10010, 1153, 1124, -2177, 10010, 1360, -2177,
3317 1156, 10010, 1231, 679, 10010, 10010, 10010, 10010, 10010, 10010,
3318 10010, 10010, 10010, -2177, -2177, 14709, 219, 1447, 1473, -103,
3319 240, 32366, 7655, 1470, 5771, -2177, 116, 1470, -2177, -2177,
3320 -2177, -2177, 147, -2177, -2177, -2177, -2177, 1125, -2177, 1125,
3321 1167, 21873, 1166, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3322 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3323 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3324 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3325 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3326 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3327 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3328 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3329 -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, -2177, 33713,
3330 124, 29223, -2177, 10010, -2177, 605, 1173, 1233, 834, 1607,
3331 33713, -2177, 19230, 1440, -2177, 1174, -2177, 24565, 1440, -2177,
3332 -2177, 13296, 1294, 1441, 1383, -2177, -2177, -2177, 1181, 25184,
3333 10952, 10952, -2177, 628, 25184, 946, -2177, -2177, -2177, -2177,
3334 -2177, -2177, 630, -2177, 33713, -12, 1345, 117, 612, -2177,
3335 -2177, 1242, 1186, 40897, 33713, 1449, 1407, 1455, -118, -2177,
3336 -2177, -2177, 43142, -2177, 33713, 33713, 41346, 41795, 26080, 33713,
3337 25631, -2177, -2177, -2177, -2177, 33713, 811, 33713, 25118, -2177,
3338 -2177, -2177, 163, -2177, -2177, -2177, -2177, -2177, 33713, 33713,
3339 -2177, -2177, 163, 33713, 33713, 163, -2177, 1361, 33713, 33713,
3340 33713, 33713, 1451, 33713, 33713, 1365, -2177, 632, -2177, 1408,
3341 33, 1250, 33713, 33713, 1127, -2177, -2177, -2177, -2177, -2177,
3342 1207, 1530, -2177, 1822, 1533, 28774, 613, 980, 1249, 1431,
3343 -2177, -2177, 1420, 42, -2177, -2177, 25631, 164, -2177, 1421,
3344 139, -2177, 1438, 660, 1659, -2177, -2177, -2177, -2177, -2177,
3345 -2177, 24119, -2177, 10010, 10010, 10010, 1662, 1237, 1240, 1308,
3346 1309, 1310, -2177, 1239, 1322, 1597, -2177, -2177, -2177, 43142,
3347 -2177, 626, -2177, 633, -2177, 10010, 10010, 198, -2177, 24637,
3348 641, 10010, 1251, 1252, 651, -2177, -2177, -2177, -2177, -2177,
3349 -2177, -2177, 1257, 1565, -2177, 1261, 664, 696, 1262, 1264,
3350 -2177, -2177, 3908, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3351 -2177, -2177, -2177, -2177, -2177, -2177, -2177, 1265, 1266, 24695,
3352 1268, 12836, 12836, 6713, 953, -2177, 12836, 1270, -2177, 697,
3353 24578, 1271, 1272, 1289, 1291, 1276, 1277, 24921, 9068, 10010,
3354 9068, 9068, 25044, 1271, 1279, -2177, 10010, 1280, 1281, 1283,
3355 -2177, -2177, 2847, 2847, 2847, 3984, -2177, 1302, -2177, 12836,
3356 12836, -2177, 3090, 6713, -2177, -2177, 1591, -2177, 645, -2177,
3357 1288, -2177, -2177, 3618, -2177, 21036, 2782, 10010, 104, 10010,
3358 1153, 10010, 1368, 2847, 2847, 2847, 188, 188, 89, 89,
3359 89, 255, 240, -2177, -2177, -2177, 1295, 1296, 1297, 1482,
3360 1007, 10010, -2177, 734, 742, 33713, 2508, 3205, 3487, -2177,
3361 -2177, -2177, 16071, 1340, 10010, 10010, 10010, 1303, -2177, -59,
3362 1340, 1597, 169, -2177, -2177, 10010, 431, -2177, -2177, -2177,
3363 25184, -2177, 1216, 16071, 1354, 1371, 314, 18327, 1511, -2177,
3364 33713, -2177, 33713, -2177, -40, 1334, -2177, 10010, -2177, -2177,
3365 1693, 1339, 1526, 1527, 874, 874, 628, 1528, -2177, -2177,
3366 1391, -2177, 10010, 957, -2177, 1015, -2177, -2177, -2177, -2177,
3367 1336, -2177, -2177, 1575, -2177, -2177, -2177, -2177, 1422, 1079,
3368 10010, 1557, -2177, 184, 1344, 1667, -109, 1627, 33713, -2177,
3369 1559, -2177, 958, 1686, 139, 1688, 139, 25631, 25631, 25631,
3370 707, -2177, -2177, 325, -2177, -2177, 711, -2177, 216, -2177,
3371 -2177, -2177, 1446, 511, 1079, 1822, -2177, -2177, -2177, -2177,
3372 -2177, -2177, -2177, 93, 622, 1079, 1450, -2177, 1452, -2177,
3373 1454, 635, 1079, -2177, -2177, -2177, 208, -2177, 33713, -2177,
3374 -2177, -2177, 1365, 33713, 660, -2177, 893, 33713, 33713, 33713,
3375 33713, -2177, -2177, -2177, 1369, 1374, -2177, 43142, -57, 1582,
3376 1583, 33713, 1418, 1077, 1817, 1708, 33713, -2177, -2177, -2177,
3377 33713, -2177, 1713, 1216, -2177, -2177, 25184, 25184, 1394, 1240,
3378 1597, 87, 55, 10, 1519, 1597, 1621, 1395, -2177, -2177,
3379 -2177, 762, 25095, 10010, -2177, 1730, 43142, -2177, 4832, -2177,
3380 -2177, -2177, -2177, 10010, -2177, -2177, -2177, -2177, -2177, 10010,
3381 -2177, 21036, 10010, 1705, -2177, 1858, 1858, 4541, 43142, 12836,
3382 12836, 12836, 12836, 625, 963, 12836, 12836, 12836, 12836, 12836,
3383 12836, 12836, 12836, 12836, 13767, 207, -2177, -2177, 10010, 10010,
3384 1712, 1705, -2177, -2177, -2177, 242, 242, 43142, 1403, 1271,
3385 1406, 1409, 10010, -2177, 360, 5198, -2177, 1411, 325, 10010,
3386 1448, 2164, 10010, 788, 10010, 1716, -2177, -2177, 1412, -2177,
3387 -2177, 43142, 10010, 1413, 3672, 12836, 12836, 4514, -2177, 4672,
3388 10010, 6713, -2177, 1608, 1457, 19681, -2177, 1509, 1509, 1509,
3389 1509, -2177, -2177, 33713, 33713, 33713, 16522, 1725, 15619, 32815,
3390 1426, 678, -2177, 32815, 33264, -2177, 1436, -2177, 1425, 360,
3391 10010, 1722, -54, -54, 1608, -2177, 9539, 1433, -2177, 1722,
3392 1437, -2177, 25184, 1453, -2177, 1444, 1426, 10010, 1587, -2177,
3393 -2177, -2177, 1498, -2177, 804, -2177, 1840, 1587, -2177, 828,
3394 -2177, 19230, 1354, 10010, 360, -2177, 1456, -2177, 1339, 128,
3395 -2177, -2177, -2177, 1658, -2177, -2177, -2177, 33713, -2177, 33713,
3396 5238, 1781, -2177, 33713, 33713, 33713, -2177, 33713, 839, 740,
3397 1463, -2177, 740, 1767, 162, 1077, 178, 5223, 328, -2177,
3398 -2177, -2177, 1538, 33713, -2177, 33713, -2177, -2177, -2177, -2177,
3399 -2177, 26080, -2177, -2177, -2177, 25631, 20586, 25631, 33713, 33713,
3400 33713, 33713, 33713, 33713, 33713, 33713, 33713, 33713, -2177, -2177,
3401 -26, -2177, -2177, 208, 1474, 1249, 1493, 42244, 850, 1822,
3402 1476, 1912, -2177, 613, 28774, -2177, -2177, -2177, 1874, -2177,
3403 260, 113, -2177, -2177, 1216, 33713, 1541, 139, 33713, 1597,
3404 1488, -2177, 1492, -2177, -2177, -2177, -2177, -2177, -2177, 1494,
3405 -2177, -2177, -2177, 10010, 25184, -2177, 1512, -2177, 25184, 21493,
3406 -2177, 25184, 1712, -2177, 2554, 2554, 2554, 3893, 1805, 254,
3407 1514, 2554, 2554, 2554, 196, 196, 88, 88, 88, 1858,
3408 207, 25184, 25184, -2177, -2177, -2177, -2177, 1515, -2177, -2177,
3409 -2177, 1271, -2177, 169, -2177, 290, 10010, 10010, 5170, -2177,
3410 4139, 10010, 43142, 854, 5170, 236, 10010, 2469, 3062, 10010,
3411 10010, 4884, 21511, 1516, 10010, 42693, -2177, -2177, 33713, 33713,
3412 33713, 33713, -2177, -2177, -2177, 32815, 33264, 360, 1518, 15167,
3413 678, 1525, 33713, -2177, -2177, 1520, 16071, 1770, 1707, -2177,
3414 16071, 1707, 112, 1707, 1777, 1613, 20132, -2177, -2177, 1534,
3415 1721, -2177, 5771, 506, 25184, 1944, 1826, 1535, 1536, 1540,
3416 10010, 325, 1826, 325, -2177, -2177, 25184, 7655, -2177, 1216,
3417 1018, 33713, 360, -56, -2177, 1546, 33713, -2177, 1587, 25184,
3418 21036, -2177, -2177, -2177, -2177, -2177, -2177, -2177, 33713, 859,
3419 -2177, 864, 740, -2177, 1576, -2177, 160, 1820, 49, -2177,
3420 25631, 2730, 284, -2177, 1832, 1756, -2177, 163, -2177, 10010,
3421 284, 1757, 203, 33713, -2177, -2177, 2067, -2177, 43142, 139,
3422 139, -2177, -2177, -2177, 1456, 43577, 725, 842, -2177, -2177,
3423 -2177, -2177, -2177, -2177, 539, -2177, 1558, -2177, -2177, 1630,
3424 -2177, 1631, -2177, -2177, -2177, -2177, -2177, 1548, 217, 33713,
3425 1982, 1769, 1555, 1249, -2177, 28774, 1232, 533, 1583, -2177,
3426 659, 1418, -2177, 1920, 1594, 1759, 33713, 1560, -2177, 1995,
3427 1564, -2177, -2177, -2177, 25184, -2177, -2177, -2177, 12836, 1871,
3428 1567, 43142, -2177, -2177, 5170, 5170, 4139, 870, -2177, 5170,
3429 10010, 10010, 5170, 5170, 10010, -2177, -2177, 21530, 1750, -2177,
3430 -2177, -2177, -2177, -2177, -2177, -2177, 360, 26529, 32815, 1569,
3431 33713, 678, 16071, -2177, -2177, 1676, -2177, 16071, 1828, -2177,
3432 16071, 27876, -2177, 33713, 1571, 33713, -2177, -59, 11423, 10010,
3433 1611, -2177, -2177, -2177, 1608, -2177, 1611, -2177, 965, -2177,
3434 314, -2177, -2177, 1959, 16973, 1916, 10010, -2177, -2177, 1577,
3435 740, -2177, 1731, 1576, 1579, -2177, -2177, -2177, -2177, -2177,
3436 -2177, -2177, 887, 1580, 33713, 33713, 12836, -2177, 284, 213,
3437 122, -2177, 1833, 33713, 1576, -2177, -2177, -2177, -2177, 1938,
3438 2015, 1906, -2177, -2177, 25184, -2177, -2177, 1597, 1597, -2177,
3439 -2177, 1983, -2177, -2177, 539, 547, 20586, 33713, 33713, 25631,
3440 -2177, 2951, -2177, -26, 1935, 910, 1216, 1909, 28774, 2021,
3441 1595, 33713, 1418, 1151, 1151, -2177, 1733, -2177, 1735, -2177,
3442 -2177, 167, -2177, 33713, -2177, -2177, 16973, 1216, -2177, 4313,
3443 12836, 43142, 928, -2177, 5170, 5170, 5170, -2177, 2007, 1608,
3444 -2177, 949, 2030, -2177, 33713, 955, -2177, 10010, 1598, -2177,
3445 -2177, 16071, 1676, 1603, 973, -2177, 43142, 33713, 986, 43142,
3446 1604, 6242, 1602, -2177, -2177, 25184, 25184, 33713, -2177, 1610,
3447 -2177, 1664, 33713, 10010, -2177, 997, 2011, 34, -14, 25184,
3448 -2177, 33713, -2177, 25631, -2177, 740, -2177, 25631, 10010, -2177,
3449 1357, 3893, 2048, -2177, -2177, -2177, -2177, 1576, 660, -2177,
3450 -2177, 1905, -2177, 33713, 1675, 582, 1690, -2177, -2177, -2177,
3451 -2177, 998, 17424, -2177, -2177, 2055, 325, 2055, 389, -2177,
3452 -2177, 2055, -2177, 2055, -2177, 1548, 325, 1249, 1594, 33713,
3453 1216, 613, 260, -2177, -2177, -2177, -2177, -2177, -2177, -2177,
3454 -2177, -2177, -2177, -2177, -2177, -2177, 2026, 1823, 2031, 1541,
3455 1012, 4313, 1021, -2177, 10010, 3, 1436, 26529, 1632, -2177,
3456 1022, -2177, 25184, 33713, -2177, -2177, 10010, -2177, 33713, 1983,
3457 1033, -2177, -2177, -2177, 11423, 1623, -2177, 2066, -2177, 1216,
3458 -2177, 21568, 1340, 16973, 33713, 33713, 33713, -2177, 1754, 660,
3459 740, 1053, -2177, 1649, -2177, 21587, 1850, -2177, 1929, -2177,
3460 1875, 1643, -2177, 10010, -2177, 1715, -2177, -2177, 25631, -2177,
3461 26978, -2177, -2177, -2177, -2177, 325, -2177, 325, 1855, 33713,
3462 22772, 325, 325, -2177, -2177, 2080, -2177, 1648, 1594, 1583,
3463 1418, 1847, -2177, 1848, 1651, 1249, -2177, 1271, 11894, 11894,
3464 1654, -2177, -2177, 33713, -2177, 1059, 1064, -2177, -2177, -2177,
3465 -2177, 33713, 1652, -2177, 2011, -2177, -2177, -2177, 229, -2177,
3466 229, 19230, 1875, -2177, 25631, 20586, 1876, 1643, 66, 1857,
3467 1822, -2177, 25184, -2177, -2177, 1065, -2177, -2177, -2177, -2177,
3468 33713, 1663, -2177, 1663, -2177, -2177, 1216, 28774, -2177, -2177,
3469 -2177, -2177, -2177, 16973, 1340, 14238, 1800, 110, 24618, -2177,
3470 -2177, -2177, -2177, 1070, -2177, 1815, -2177, -2177, 33713, 1339,
3471 1339, 261, 1857, -2177, -2177, 1947, -2177, -2177, -2177, -2177,
3472 -2177, 118, 1872, -2177, 1877, 702, -2177, 26978, 1663, 1594,
3473 1080, -2177, 2110, -2177, -2177, -2177, -2177, -2177, -2177, 1678,
3474 -2177, 229, -2177, -2177, -2177, -2177, -2177, 535, 535, 2035,
3475 -2177, 1748, -2177, -2177, -2177, -2177, 1249, 12365, 10010, 1339,
3476 740, -2177, 2138, -2177, 146, -2177, -2177, 1340, -2177, 21605,
3477 -2177, -2177, -2177, -2177, -2177, -2177
3478};
3479
3480/* YYPGOTO[NTERM-NUM]. */
3481static const yytype_int16 yypgoto[] =
3482{
3483 -2177, -2177, -2177, 1653, -2177, -2177, -2177, 363, -2177, 964,
3484 -2177, 355, -410, 657, -2177, -2177, -2177, -716, 26, -2177,
3485 -2177, -2177, -2177, 182, 417, -2177, -229, -1541, 22, -2177,
3486 -2074, -2164, -2177, -298, -2060, -1380, -2177, -783, 347, -2177,
3487 -1760, -2177, -533, -782, -588, -775, -2177, 159, -2177, 1499,
3488 -774, -1467, -2041, -295, -2177, -379, -2177, -116, -1452, -347,
3489 -337, -2177, -1939, -726, -2177, 1419, -33, -2177, 698, -2177,
3490 -1757, -2177, -2177, 684, -2177, -742, -2177, -2177, -1510, 361,
3491 -278, -1268, -1978, 650, -544, -2177, -335, 394, -1427, -2177,
3492 708, -2177, -272, -2177, -402, -1805, -2177, -2177, -2177, 1375,
3493 -539, -2177, 30, -2177, -2177, -2177, -2177, -2177, -1420, 653,
3494 -132, -2177, -212, -2177, -2177, -2177, -2177, -328, 387, -2177,
3495 9, 173, -29, 7, 15, 31, 64, 1477, 1506, -2177,
3496 -797, 732, -2177, -2177, -486, -45, -2177, 755, -2174, -1705,
3497 -343, 1058, 1458, 1465, -2177, 754, 1089, -1036, -1002, -2177,
3498 494, -2177, -155, -2177, 258, -260, 1081, -2177, 1471, -2177,
3499 -2177, -2177, -2177, -861, 792, -1574, 530, -1621, -1526, 307,
3500 292, -811, -15, 47, -2177, -2177, 544, -115, -2177, -2177,
3501 -117, -1397, -1975, -127, -126, -932, 989, -759, -2177, -2177,
3502 -630, -423, -2177, -2177, -2177, -287, 413, -2177, -2177, 751,
3503 836, -2177, 259, 1229, -612, -628, -919, -361, 3108, 896,
3504 1529, -1382, -2177, -2005, 646, -2177, -2177, 114, -2177, -205,
3505 -2177, -204, -2177, -2177, -2177, -190, -2176, 1263, -2177, -920,
3506 -2177, 3265, 803, -2177, -1322, -491, -973, -1199, -1604, -2177,
3507 -2177, -2177, -2177, -2177, -2177, -823, -1462, -1037, 878, -2177,
3508 -2177, 977, -2177, -2177, -2177, -688, 837, -493, -646, 883,
3509 -2177, -473, 1273, -2177, -22, -435, 151, -684, -1343, -2177,
3510 -409, -16, 0, 1284, -446, -887, -706, -2177, -724, -2177,
3511 -2177, -862, -2177, 718, -2177, -773, -2177, -85, -2177, -2177,
3512 -1774, -2177, -2177, -2177, -2177, -299, -2177, -349, -358, -2177,
3513 -2177, 39, -597, 1439, -2177, -2177, 780, -2177, 1024, -2177,
3514 676, -2177, -2177, -2177, 1168, -2177, -2177, -2177, 36, 1537,
3515 524, -2177, 1169, -2177, -2177, -2177, -2177, -2177, 624, -766,
3516 -2056, 83, -1974, -786, 1765, -371, -240, -1736
3517};
3518
3519/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
3520 positive, shift that token. If negative, reduce the rule which
3521 number is the opposite. If zero, do what YYDEFACT says.
3522 If YYTABLE_NINF, syntax error. */
3523#define YYTABLE_NINF -1458
3524static const yytype_int16 yytable[] =
3525{
3526 471, 509, 819, 807, 909, 733, 521, 1113, 570, 48,
3527 432, 744, 866, 719, 432, 930, 931, 473, 432, 478,
3528 572, 859, 478, 1215, 1291, 498, 37, 1336, 432, 432,
3529 46, 53, 1216, 846, 1199, 946, 65, 773, 1180, 1235,
3530 966, 1439, 1371, 1739, 1792, 1118, 53, 957, 1236, 1238,
3531 1725, 1292, 1370, 533, 467, 536, 1239, 540, 578, 1191,
3532 523, 2070, 546, 2001, 1264, 1807, 1187, 1809, 524, 478,
3533 1169, 1725, 496, 1693, 1595, 498, 432, 498, 498, 498,
3534 2055, 1788, 1760, 71, 498, 849, 2078, 1923, 553, 1728,
3535 2081, 611, 543, 507, 1220, 627, 627, 2230, 838, 1638,
3536 974, 82, -610, 1967, 605, 2404, -643, 2239, -959, 541,
3537 1728, 1022, 579, 542, 53, 1486, -959, -959, 1113, 545,
3538 -623, -939, 2262, 1432, -1457, 538, 806, 734, 812, 980,
3539 816, 1378, -1457, -1457, 1276, 1021, -651, -960, -648, 2235,
3540 1838, -638, 470, 1378, 1950, -960, -960, -651, 470, 820,
3541 -417, 1489, 470, 1183, 3, 4, 1440, -420, 1255, 2296,
3542 982, 431, 2179, 1218, -837, 459, 1183, 853, 613, 474,
3543 2278, -837, 627, 49, 1011, 2327, 1820, 766, 563, 506,
3544 506, 909, -169, 1018, 853, 470, 2370, -169, 49, 627,
3545 1192, 1192, 499, 901, 965, 838, 1560, 1965, 1903, 974,
3546 861, 516, 1305, 508, 470, 861, 1200, 1638, 1845, 1203,
3547 1204, 2163, 627, 470, 518, 513, 1994, 2082, 1638, 518,
3548 838, 1016, 612, 2406, 2366, 2205, 522, 534, 980, 1294,
3549 2538, 1420, 2367, 1863, 2567, 2315, 1231, 1734, 611, 2407,
3550 -417, 2296, 2480, 611, 1492, 1413, 833, -420, 1866, 1172,
3551 1510, 974, 1414, 930, 931, 1376, 49, 2592, 2353, 982,
3552 769, 946, -856, 517, 867, 1468, 974, 2554, 957, -856,
3553 762, 483, 72, 2023, 2176, 1279, 1958, 2013, 1294, 1118,
3554 980, 909, 1139, 2002, 1168, 1248, 735, 554, 736, 834,
3555 756, 1019, 2446, 1864, 1507, 980, 1214, 1221, 514, 2229,
3556 432, 974, 2390, 1507, 2529, 1306, 2530, 1959, 762, 1880,
3557 2458, 982, 1125, 2198, 861, 73, 861, 861, 2107, 2012,
3558 555, 1668, 2137, 1670, 1671, 1967, 982, 2313, 1118, 903,
3559 470, 1613, 1961, 518, 1725, -377, 1725, 2199, 2459, 2552,
3560 764, 2024, 2177, 2003, 1175, 2085, 1493, 1280, 1232, 1469,
3561 1508, 2539, 1283, 556, 611, 611, 2009, 1608, 2011, 1785,
3562 1115, 982, 909, 2083, 2561, 1421, 1193, 1193, 839, 612,
3563 901, 484, 2262, 1728, 612, 1728, 1140, 1307, 764, 2316,
3564 2099, 765, 2131, 2312, 888, 861, 2135, 2579, 861, 861,
3565 757, 570, 2508, 2368, 1254, 2314, 2408, 1283, 2296, 557,
3566 2528, 2588, 1260, 2593, 2555, 1210, 1020, 1281, 502, 1257,
3567 1282, 1190, 2164, 1736, 2025, 780, 511, -417, 1273, 2124,
3568 2097, 781, 1561, 2540, -420, 1293, 1190, 1190, 1211, 724,
3569 1166, 1502, 1761, 509, 1300, 1183, 460, 1308, 1304, 1486,
3570 1309, 1012, 1963, 1121, 2534, 1184, 1316, 1317, 1268, 1270,
3571 835, 560, 564, 2550, 569, 432, 432, 2168, 512, 1349,
3572 1351, 1732, 1733, 2180, 519, 839, 1528, 1379, 1216, 1219,
3573 901, 1115, 721, 728, 1773, 1336, 2510, -417, 774, 1695,
3574 2055, 611, 1821, 1177, -420, 612, 612, 478, 2523, 478,
3575 839, 1116, 53, 2575, 605, 498, 500, 2252, 526, -837,
3576 730, 607, 1265, 432, 731, 776, 903, 2263, 2296, 515,
3577 2509, 1283, 1192, 1167, 840, 498, 2100, 523, 1302, 1303,
3578 83, 48, 918, 1741, 782, 524, 1315, 498, 2568, 2230,
3579 1318, 1319, 1113, 825, 827, 829, 1381, 1595, 37, 738,
3580 2170, 1310, 46, 53, 525, 1355, 737, 1356, 65, 836,
3581 1767, 901, 1653, 1002, 1861, 498, 498, 498, 2266, 1368,
3582 1367, 1369, 754, 2270, 952, 929, 2272, 745, 2181, -643,
3583 909, -959, 1588, 2445, 1725, 952, 1828, 1829, 1725, 1205,
3584 1415, -417, 730, 935, -939, 953, 731, -1457, -420, 1178,
3585 1745, 2581, 2450, 862, 2449, 71, 953, -856, 862, 954,
3586 -960, -648, 1116, 1762, -638, 970, 903, 575, 1115, 1210,
3587 956, 1014, 612, 1728, 1536, 1441, 2167, 1728, 1284, -417,
3588 915, -417, 857, 858, 1539, 1296, -420, 1542, -420, 2222,
3589 1714, 1715, 1211, 551, 49, 508, 845, -169, -169, 857,
3590 858, 2438, 2225, 481, 53, 1510, 2439, 2372, 1311, 999,
3591 1000, 1001, 1002, 1796, 506, 725, 509, 1650, 1651, 1652,
3592 1653, 1609, 2207, 2208, 783, 1535, 1648, 1649, 1650, 1651,
3593 1652, 1653, 968, 1816, 558, 952, 2233, 909, 2169, 2036,
3594 561, 2514, 971, 522, 1876, 49, 1817, 903, 1193, 1730,
3595 21, 1750, 562, 531, 1015, 2440, 953, 2384, 565, 997,
3596 998, 999, 1000, 1001, 1002, 1030, 1883, 1023, 2305, 862,
3597 862, 1336, 1206, 784, 1587, 1207, 566, 785, 1589, 1674,
3598 2234, 1591, 1183, 726, 25, 1751, 1398, 498, 576, 1267,
3599 1192, 1129, 1186, 1761, 627, 1907, 620, 793, 616, 1116,
3600 1744, 1485, 1485, 1192, 786, 1725, 432, 432, 1190, 2055,
3601 1725, 1888, 498, 498, 1131, 1725, 794, 1171, 1725, 901,
3602 1216, 1499, 1537, 618, 27, 1133, 1134, 1540, 1138, 1957,
3603 1198, 1685, 1142, 524, 524, 2236, 524, 28, 619, 498,
3604 1182, 2154, 1725, 1841, 1728, 2582, 49, 620, 1534, 1728,
3605 2237, 1222, 498, 861, 1728, 621, 1686, 1728, 2273, 754,
3606 29, 1240, 2587, 861, 1611, 795, 861, 1545, 787, 498,
3607 1882, 1143, 1552, 498, 30, 3, 4, 1115, 1228, 1115,
3608 1764, 1728, 933, 498, 2562, 2563, 730, 1822, 1263, 75,
3609 731, 1251, 1566, 780, 723, 2410, 1224, 569, 1904, 781,
3610 569, 1142, 1958, 729, 432, 432, 1269, 432, 569, 1819,
3611 498, 627, 1846, 2015, 1192, 2414, 1217, 1853, 963, 614,
3612 1399, 2583, 861, 741, 1725, 1400, 901, 1192, 1669, 1144,
3613 615, 85, 746, 1959, 2590, 460, 1607, 1889, 1771, 547,
3614 1143, 548, 53, 627, 2051, 1115, 2584, 1890, 1960, 1725,
3615 796, 607, 1683, 923, 924, 903, 1767, 506, 1961, 747,
3616 611, 1401, 1687, 1728, 749, 2302, 1193, 1688, 941, 942,
3617 1938, 1939, 1940, 1941, 750, 1145, 952, 2437, 1314, 1193,
3618 943, 2441, 543, 2442, 1962, 549, 2319, 550, 1728, 86,
3619 965, 522, 522, 2016, 522, -968, -968, 953, 797, 541,
3620 752, 798, 782, 542, 53, 1455, 952, 1338, 1116, 545,
3621 1116, 954, 799, 1737, 21, 851, 1119, 2238, 852, 1120,
3622 1823, 626, 1487, 1488, 1638, 909, 1190, 953, 1639, 1640,
3623 1641, 1146, 730, 1827, -939, 1804, 731, 1806, 76, 1190,
3624 1793, 956, 569, 800, 1145, 77, 1294, 435, 25, 1430,
3625 2017, 780, 2018, 760, 2103, 1725, 1258, 781, 1259, 2147,
3626 1122, 753, 903, 1123, 909, 2475, 1442, 929, 1963, 842,
3627 2326, 498, 2501, 2503, 2027, 929, 1116, 1256, 78, 775,
3628 1835, 1725, 2034, 1279, 49, 777, 909, 802, 27, 904,
3629 1193, 612, 1740, 1261, 1728, 1402, 1123, 1905, 1906, 436,
3630 1146, 1689, 2010, 1193, 1578, 2425, 1579, 803, 2067, 2419,
3631 929, 1690, 1256, 1235, 437, 909, 1272, 778, 1288, 1273,
3632 1728, 1289, 1236, 1238, 79, 1772, 1772, 805, 791, 2026,
3633 1239, 2035, 2089, 2548, 1451, 779, 1294, 845, 30, 909,
3634 1336, 1497, 783, 762, 1123, 89, 49, 90, 763, 1794,
3635 1190, 1528, 817, 2056, 929, 1280, 1256, 1446, 2580, 1448,
3636 782, 1557, 1610, 1190, 1558, 1123, 2211, 438, 792, 1992,
3637 1617, 92, 809, 1123, 1456, 439, 1707, 2551, 1708, 498,
3638 1621, 498, 813, 1123, 1709, 1581, 1710, 440, 818, 21,
3639 1461, 1725, 1466, 1625, 2564, 785, 1123, 1459, 821, 1642,
3640 923, 924, 1491, 823, 1857, 780, 1115, 1115, 1115, 943,
3641 2136, 781, 2139, 764, 901, 1281, 441, 1384, 1282, 738,
3642 1643, 830, 786, 25, 498, 1626, 1657, 2215, 1123, 1123,
3643 1728, 2573, 832, 1182, 432, 837, 1810, 2354, 21, 1811,
3644 1814, 1911, 842, 1815, 432, 1512, 432, 1516, 844, 432,
3645 2594, 1860, 1862, 901, 765, 432, 1869, 432, 1274, 1275,
3646 1320, 1321, 442, 27, 909, 554, 904, 461, 569, 432,
3647 1564, 848, 25, 569, 432, 901, 28, 847, 432, 432,
3648 432, 432, 1644, 432, 432, 850, 787, 2355, 2048, 783,
3649 913, 1872, 498, 1565, 1123, 2356, 1973, 914, 555, 29,
3650 783, 1865, 1867, 1868, 901, 1577, 1977, 1978, 1979, 759,
3651 1386, 761, 27, 462, 782, 862, 1582, 1919, 443, 1283,
3652 1123, 2034, 916, 2357, 780, 28, 2171, 720, 901, 722,
3653 781, 1837, 444, 1990, -614, 1387, 1991, 1116, 1116, 1116,
3654 -491, -491, 1795, 1796, 2051, 1118, 1276, -621, 29, 810,
3655 903, -495, -495, 785, -463, 85, 1767, 1995, 2160, -463,
3656 1996, 49, 1457, 445, 1294, 446, 904, 926, 2014, 1797,
3657 909, 1558, 447, 922, 509, 448, -1001, 557, 2088, 2073,
3658 811, 925, 1558, 2108, 21, 1503, 1289, 2325, 2172, 903,
3659 2358, 1558, 932, 2173, 449, 1511, 1558, 1514, -611, 2253,
3660 1525, 2359, 1289, 927, 2389, 450, 1529, 2389, 1531, -494,
3661 -494, 903, 451, 86, 509, -612, 2306, 928, 25, 2307,
3662 1538, 452, 21, 30, -463, 1541, 1284, 906, 934, 1546,
3663 1547, 1548, 1549, 782, 1553, 1554, 1388, 2231, -615, 2347,
3664 903, 1389, 1558, 780, 787, 1285, 1390, 904, 937, 781,
3665 -613, 453, 938, 901, 783, 1338, 25, 2373, 27, 87,
3666 1289, 1027, 1029, 1711, 903, -463, 939, 861, 1645, 1646,
3667 1647, 28, 1648, 1649, 1650, 1651, 1652, 1653, 2376, 940,
3668 49, 2377, 2183, 1007, 2381, 498, 909, 845, 509, 945,
3669 1009, 947, 1729, 909, 29, 1011, 27, 1012, 1118, 2203,
3670 1115, 2345, 2387, 814, 1115, 2388, 1115, 785, 30, 28,
3671 2090, 948, 907, 1729, 2126, 2391, 626, 1755, 2388, 1638,
3672 1758, 543, 1466, 1639, 1640, 1641, 2402, 2427, 2186, 2403,
3673 2428, 949, 29, 780, 815, 950, 951, 958, 541, 781,
3674 1916, 2455, 542, 53, 2403, 959, 30, 969, 545, 909,
3675 2456, 2464, 782, 1289, 845, 2332, 1025, 1126, 1132, 901,
3676 2212, 2213, 2469, 763, 80, 2388, 81, 1813, 1228, 89,
3677 765, 90, 457, 783, 2158, 1164, 963, 1162, 2360, 482,
3678 1391, 2361, 2483, 494, 2188, 2484, 1170, 1189, 2524, 903,
3679 1392, 845, 91, 2525, 2546, 92, 1123, 2547, 787, 2558,
3680 1831, 1834, 2388, 1188, 906, 1190, 1839, 1840, 1842, 2576,
3681 1195, 1196, 2403, 2051, 1197, 1201, 963, 1208, 1228, 1209,
3682 21, 1213, 1498, 498, 1856, 1767, 785, 1228, 498, 498,
3683 498, 1116, 1223, 1384, 1229, 1116, 21, 1116, 1225, 2413,
3684 1233, 432, 782, 1234, 1241, 1609, 498, 1244, 1245, 1702,
3685 569, 1247, 1256, 786, 25, 904, 918, 1271, 929, 935,
3686 1277, 1295, 1582, 1296, 909, 1719, 627, 1301, 1353, 2416,
3687 25, 1354, 974, 1377, 2191, 901, 1366, 1394, 861, 1417,
3688 1397, 1383, 901, 861, 1395, 49, 1719, 1418, 2048, 907,
3689 508, 1338, 783, 1432, 27, 903, 1443, 1268, 1270, 909,
3690 1445, 1452, 1460, 517, 906, 1453, 1467, 28, 1479, 1115,
3691 27, 1481, 1480, 1482, 1500, 1643, 2192, 787, 1933, 1505,
3692 1504, 2280, 1914, 28, 909, 516, 1506, 909, 2289, 1555,
3693 29, 2193, 509, 1559, 1563, 1567, 1568, -464, 901, 1569,
3694 1583, 1543, -464, 1585, 30, 785, 29, 1586, 1590, 509,
3695 1592, 1942, 1943, 1944, 1593, 1609, 1598, 1602, 1603, 1604,
3696 30, 1323, 904, 1600, 2332, 1937, 1601, 1605, 1324, 1325,
3697 1326, 1606, 1544, 498, 498, 498, 1947, 1644, 1729, 1955,
3698 1619, 1620, 783, 1955, 1969, 906, 1622, 517, 1623, 907,
3699 1624, 1627, 1850, 1628, 1630, 2433, 1631, 1634, 2309, 1656,
3700 1663, 1662, 1664, 1123, 2431, 1665, 1666, -464, 1673, 1676,
3701 1677, 903, 1678, 1679, 1684, 2005, 1691, 1700, 903, 1705,
3702 2413, 1466, 2194, 1701, 1703, 1704, 49, 1957, 1730, -429,
3703 1216, 1550, 1735, 2375, 2420, 785, 787, 498, 1756, 432,
3704 1116, -429, 1747, 1228, 1182, 1228, -429, 1251, -464, 1749,
3705 965, 1763, 1769, 901, -496, -497, 1774, 518, 1268, 1270,
3706 2053, 1775, 1551, 432, 2126, 2040, 1778, 861, 1777, 1781,
3707 907, 1779, 1783, 1784, 903, 2072, 1787, 1831, 432, 432,
3708 432, 432, 432, 432, 432, 432, 432, 432, 901, 2380,
3709 1790, -429, 1803, 2497, 1805, 1818, 1263, 498, 1843, 1824,
3710 1958, 1825, 2380, 1826, 1182, 908, 1844, 1847, 1115, 1851,
3711 1848, -429, 1854, 901, 1855, 1251, 901, 793, 498, 1858,
3712 1859, 1283, 1870, 2084, 1871, 2482, 787, 1875, 1659, 1638,
3713 1658, 1959, 1908, 909, 963, 1909, 794, 2422, 1910, 1921,
3714 1922, 518, 1925, 2457, 1913, 1934, 1960, 1712, 1948, 1945,
3715 1970, 1949, -429, 1972, 1975, 2466, 1961, 2048, 1956, 875,
3716 911, -429, 1981, 1645, 1646, 1647, 1983, 1648, 1649, 1650,
3717 1651, 1652, 1653, 1985, 1987, 1989, 2120, 2121, 2122, 2123,
3718 1984, 1993, 1962, 861, 2000, 795, 2004, 2008, 519, 903,
3719 2006, 2020, 1115, 906, 2022, 2119, 1115, 2038, 498, 498,
3720 498, 498, 2069, 2267, 2075, 1955, 1969, 2076, 2465, 1955,
3721 2497, 2080, 2129, 2086, 2039, 2091, 1729, 2545, 2477, 2092,
3722 1729, 611, 1766, 2093, 903, 2155, 2144, 2157, 2098, 2057,
3723 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 1116,
3724 2132, 2095, 2101, 2133, 2102, 2116, 2127, 2140, 2130, 903,
3725 904, 1755, 903, 2141, 2128, 2146, 1466, 2148, 2159, 2161,
3726 1338, 2149, 2145, 2166, 2151, 2152, 1963, 2174, 1182, 2153,
3727 796, 2178, 2201, 2202, 2206, 2216, 2219, 2226, 907, 2217,
3728 2218, 2227, 908, 2228, 2240, 2241, 2243, 49, 2246, 904,
3729 2247, 2248, -429, 2210, 2250, 2251, 2258, 2264, 2271, 2277,
3730 906, 2287, 2292, 2298, 2317, 2301, 2300, 2303, 2308, 2320,
3731 2321, 904, 2322, 2346, 2323, 2349, 2350, 1115, 797, 611,
3732 2374, 798, 901, 1116, 2351, 2378, 2383, 1116, 2364, 1228,
3733 2365, 2386, 799, 2392, 2394, 1577, 861, 911, 1727, 2398,
3734 904, 2399, 2404, 2418, 2421, 2232, 2244, 2423, 2268, 2426,
3735 2434, 2451, 612, 2452, 730, 2471, 2453, 749, 731, 1727,
3736 2463, 2472, 793, 800, 904, 2481, 2485, 2316, 2487, 2488,
3737 85, 2490, 2500, 1115, 2493, 2506, 2507, 2511, 2512, 2513,
3738 1935, 794, 908, 2522, 2541, 907, 2535, 1947, 1955, 1719,
3739 432, -1001, 1729, 1719, 2553, 1558, 2559, 1729, 2566, 2569,
3740 1729, 1947, 2577, 2276, 2571, 2279, 2578, 802, 1327, 1328,
3741 1329, 2567, 1330, 1331, 1332, 1333, 1334, 1335, 2568, 2591,
3742 1530, 2037, 49, 49, 2297, 751, 2041, 803, 86, 1801,
3743 795, 2318, 626, 2162, 2476, 1638, 611, 911, 1997, 1639,
3744 1640, 1641, 2291, 2531, 569, 432, 2074, 805, 1116, 2586,
3745 612, 2209, 2537, 498, 2417, 2565, 1917, 2572, 903, 1179,
3746 2053, 2363, 1808, 908, 1786, 2079, 2533, 2570, 1832, 2042,
3747 2532, 1782, 1253, 2443, 87, 1833, 2494, 432, 432, 2574,
3748 2068, 2369, 1765, 1124, 1017, 1496, 1159, 610, 1182, 904,
3749 1476, 432, 1158, 1982, 2030, 2348, 1776, 1635, 1636, 2470,
3750 2156, 1163, 1655, 498, 1116, 1746, 2297, 1495, 1951, 49,
3751 716, 716, 509, 2125, 2138, 796, 2232, 2385, 911, 2461,
3752 1946, 2467, 2462, 2468, 432, 1599, 2526, 716, 2527, 2521,
3753 2290, 1729, 1422, 1768, 1614, 1680, 1681, 2279, 1698, 2409,
3754 88, 1696, 1743, 1836, 2454, 1431, 1998, 2397, 1447, 1127,
3755 1449, 1266, 432, 0, 1155, 1594, 0, 0, 875, 0,
3756 0, 498, 0, 797, 0, 1719, 798, 612, 0, 0,
3757 1719, 0, 0, 1719, 0, 0, 862, 799, 0, 0,
3758 2436, 0, 0, 569, 89, 0, 90, 2447, 906, 0,
3759 2444, 0, 0, 0, 0, 904, 2310, 0, 0, 0,
3760 0, 716, 0, 0, 0, 0, 0, 91, 800, 498,
3761 92, 0, 0, 0, 0, 0, 0, 0, 0, 2448,
3762 0, 0, 1727, 0, 1727, 0, 0, 906, 2328, 2329,
3763 0, 1643, 0, 0, 610, 0, 0, 1947, 0, 610,
3764 716, 912, 2352, 432, 0, 0, 0, 0, 2276, 906,
3765 0, 0, 802, 0, 0, 0, 0, 716, 0, 49,
3766 0, 0, 0, 2297, 569, 569, 569, 0, 2473, 0,
3767 0, 908, 803, 907, 862, 0, 0, 0, 906, 2498,
3768 49, 2499, 0, 0, 0, 2504, 2505, 716, 0, 0,
3769 0, 0, 805, 1644, 0, 0, 0, 0, 0, 1228,
3770 1228, 0, 906, 2400, 1719, 0, 716, 716, 716, 0,
3771 716, 904, 907, 0, 963, 0, 0, 0, 904, 0,
3772 0, 0, 0, 2276, 0, 0, 911, 0, 0, 2053,
3773 716, 2397, 0, 0, 907, 0, 0, 626, 1345, 0,
3774 1638, 1466, 0, 0, 1639, 1640, 1641, 0, 0, 0,
3775 610, 610, 0, 0, 0, 716, 1114, 0, 0, 0,
3776 1228, 2110, 0, 907, 0, 0, 0, 1182, -1363, 0,
3777 0, 0, 0, 2297, 904, 2549, 0, 0, 908, 0,
3778 0, 0, 0, 49, 0, 716, 0, 907, 569, 716,
3779 716, 862, 0, 0, 0, 1884, 1885, 1886, 1887, 0,
3780 716, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899,
3781 1900, 0, 0, 0, 0, 0, 0, 875, 912, 0,
3782 0, 0, 626, 0, 0, 1638, 0, 906, 0, -1458,
3783 -1458, -1458, 49, 911, 0, 0, 0, 0, 0, 0,
3784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3785 0, 1927, 1928, 0, 0, 0, 0, 0, -1363, 0,
3786 0, 0, 1727, 0, 0, 0, 1727, 1114, 0, 0,
3787 0, 0, 0, 0, 0, 0, 0, 610, 0, 1645,
3788 1646, 1647, 0, 1648, 1649, 1650, 1651, 1652, 1653, 904,
3789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3790 0, 0, 0, 0, 0, 0, 0, 0, 0, -1363,
3791 0, 0, 907, 0, 0, 0, 0, 0, 912, 0,
3792 0, -1363, 0, 0, 904, 0, -1363, 0, 0, 0,
3793 1478, -1363, 0, 906, 0, 0, 1643, 0, 0, 49,
3794 -1363, 716, 0, -1363, 0, 0, 0, 716, 0, 904,
3795 716, 0, 904, 0, 716, 0, 0, 0, 0, 0,
3796 0, 0, 716, 716, 0, 0, 0, 0, 0, 0,
3797 716, -1363, 0, 716, 716, 716, 716, 0, 875, 875,
3798 875, 0, 0, 716, 716, 0, 0, 0, 0, 0,
3799 0, -1363, 0, 0, 0, 0, 0, 0, 1644, 912,
3800 716, 716, 716, 716, 1114, 0, 0, 0, 716, 0,
3801 0, 0, 716, 0, 0, 0, 716, 0, 907, 716,
3802 716, 716, 716, 716, 716, 716, 716, 716, 0, 0,
3803 716, 0, -1363, 1727, 0, -1363, 0, 716, 1727, 716,
3804 0, -1363, 0, 1727, 0, 0, 1727, 0, 0, 906,
3805 973, 0, 0, 974, 0, 2183, 906, 975, 976, 977,
3806 0, 2184, 0, 0, 0, 0, 908, 0, 0, 0,
3807 1727, 0, 0, 2185, 978, 0, 0, 0, 0, 0,
3808 0, 0, 980, 1644, 0, 0, 0, 0, 0, 981,
3809 0, 0, 0, 0, 0, -1363, 0, 0, 0, 0,
3810 0, 2186, 0, 2187, 0, 908, 0, 0, 0, 0,
3811 0, 0, 906, 982, 0, 973, 0, 0, 974, 0,
3812 0, 911, -1458, -1458, -1458, 0, 0, 908, 0, 0,
3813 1345, 1345, 0, 0, 907, 1345, 0, 0, 0, 0,
3814 0, 907, 0, 0, 0, 0, 1712, 980, 716, 0,
3815 0, 0, 1727, 0, 981, 0, 908, 2188, 904, 0,
3816 911, 0, 0, 0, 0, 0, 716, 0, 1345, 1345,
3817 0, 0, -1363, 0, 0, 716, 716, 1727, 982, 0,
3818 908, 0, 911, 2189, 1645, 1646, 1647, 0, 1648, 1649,
3819 1650, 1651, 1652, 1653, 0, 0, -1363, 907, -1363, -1363,
3820 0, 0, 0, 0, 0, 0, 0, 912, 0, 0,
3821 0, 911, 0, 1114, 0, 1114, 0, 0, 0, 0,
3822 0, 0, 0, 983, 0, 0, 0, 906, 984, 0,
3823 0, 0, 0, 0, -1363, 911, 0, -1363, -1363, -1363,
3824 0, 0, 2190, 0, 0, 0, 0, 2191, 0, 985,
3825 986, 0, 0, 0, 2249, 0, 0, 0, 0, 0,
3826 2333, 0, 906, 0, 987, 0, 0, 0, 0, -1458,
3827 -1458, -1458, 0, 1648, 1649, 1650, 1651, 1652, 1653, 0,
3828 875, 1114, 0, 1727, 0, 0, 0, 906, 983, 2192,
3829 906, 0, 0, 984, 988, 0, 610, 989, 716, 716,
3830 716, 0, 0, 2334, 2193, 908, 0, 0, 0, 1727,
3831 0, 990, 907, 0, 912, 0, 0, 0, 0, 0,
3832 716, 716, 0, 0, 0, 0, 716, 0, 2335, 987,
3833 626, 0, 0, 1638, 0, 0, 0, 1639, 1640, 1641,
3834 0, 0, 2311, 0, 0, 0, 2336, 907, 0, 0,
3835 2337, 0, 0, 0, 2111, 0, 0, 0, 973, 0,
3836 2054, 974, 0, 0, 0, 0, 716, 716, 716, 0,
3837 2338, 716, 907, 2339, 0, 907, 990, 0, 0, 0,
3838 0, 0, 0, 716, 716, 716, 716, 2340, 0, 0,
3839 980, 716, 0, 0, 0, 2194, 0, -1458, 992, 0,
3840 0, 0, 0, 0, 716, 716, 2371, 0, 716, 0,
3841 0, 908, 0, 0, 0, 0, 0, 0, 0, 1727,
3842 0, 982, 716, 0, 716, 0, 716, 0, 1345, 1345,
3843 1345, 1345, 0, 0, 1345, 1345, 1345, 1345, 1345, 1345,
3844 1345, 1345, 1345, 1345, 0, 0, 716, 0, 0, 0,
3845 0, 0, 0, 0, 0, 0, 0, 716, 0, 716,
3846 716, 716, 0, 992, 0, -1365, 911, 0, 2341, 0,
3847 716, 0, 0, 0, 0, 0, 2342, 0, 716, 0,
3848 0, 0, 0, 0, 1345, 1345, 0, 0, 0, 1682,
3849 0, 0, 716, 0, 993, 0, 906, 994, 995, 996,
3850 0, 997, 998, 999, 1000, 1001, 1002, 716, 0, 0,
3851 0, 0, 0, 0, 0, 0, 875, 2343, 0, 0,
3852 0, 0, 0, 0, 875, 716, 0, 908, 0, 1643,
3853 0, -1458, 0, 0, 908, 0, -1458, 0, 0, 0,
3854 0, 0, 1114, 1114, 1114, 0, 0, 0, 0, 0,
3855 0, 0, 0, 0, 0, -1365, 0, 0, 0, 993,
3856 0, 0, -1458, -1458, -1458, 0, 997, 998, 999, 1000,
3857 1001, 1002, -1458, 0, 0, 0, 0, 0, 0, 0,
3858 0, 907, 911, 0, 0, 0, 0, 0, 0, 2214,
3859 908, 1644, 0, 0, 0, 0, 0, 0, 0, 0,
3860 0, 0, 912, 0, 0, 0, -1365, 0, 0, 0,
3861 0, 0, 0, 0, 0, 0, 0, 0, -1365, 990,
3862 0, 0, 0, -1365, 0, 0, 0, 0, -1365, 0,
3863 0, 0, 0, 0, 0, 0, 0, -1365, 716, 0,
3864 -1365, 912, 0, 0, 0, 911, 0, 0, 716, 0,
3865 0, 0, 0, 0, 716, 0, 0, 716, 0, 0,
3866 0, 0, 0, 912, 716, 716, 716, 716, -1365, 0,
3867 716, 716, 716, 716, 716, 716, 716, 716, 716, 716,
3868 0, 0, 0, 716, 716, 0, 0, 0, -1365, 0,
3869 0, 0, 912, 0, 0, 0, 0, 716, 0, 0,
3870 0, 0, 0, 0, 716, 908, -1458, 716, 0, 716,
3871 0, 0, 0, 0, 0, 0, 912, 716, 0, 0,
3872 716, 716, 0, 0, 0, 716, 716, 0, -34, -1365,
3873 0, 0, -1365, 0, 0, 0, 0, 0, -1365, 0,
3874 908, 716, 0, 716, 0, 0, 1, -1379, 0, 0,
3875 0, 0, 0, 0, 0, 716, 2, 0, 3, 4,
3876 2054, 716, 0, 0, 0, 908, 0, 0, 908, 0,
3877 0, 0, 716, 0, 5, 0, 0, 1645, 1646, 1647,
3878 0, 1648, 1649, 1650, 1651, 1652, 1653, 0, 716, 0,
3879 0, 0, -1365, 0, 6, 911, 0, 0, 0, 0,
3880 0, 0, -1458, 0, 0, 7, 0, 0, 0, 997,
3881 998, 999, 1000, 1001, 1002, 0, 8, 0, 9, 0,
3882 911, 0, 0, 911, 0, 0, 0, 0, 0, 0,
3883 0, 0, 0, 0, 0, 10, 1114, -1379, 0, 0,
3884 1114, 912, 1114, 1712, 0, 0, 0, 0, 0, 11,
3885 0, 0, 0, 699, 699, 0, 0, 0, 0, 12,
3886 0, 0, 0, 0, 0, 13, 0, 0, 0, -1365,
3887 0, 0, 0, 14, 0, 15, 0, 0, 0, 0,
3888 0, 0, 0, 0, 0, 0, 973, 1345, -1379, 974,
3889 0, 0, 0, -1365, 0, -1365, -1365, 0, 716, 0,
3890 -1379, 0, 0, 0, 0, -1379, 0, 0, 0, 0,
3891 -1379, 0, 0, 0, 0, 0, 0, 0, 980, -1379,
3892 0, 0, -1379, 0, 0, -1458, 0, 0, 0, 0,
3893 0, -1365, 0, 0, -1365, -1365, -1365, 0, 0, 0,
3894 973, 716, 716, 974, 0, 0, 716, 912, 0, 982,
3895 -1379, 716, 0, 16, 716, 716, 0, 0, 0, 716,
3896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3897 -1379, 0, 980, 0, 908, 1345, 0, 0, 0, -1458,
3898 0, 716, 0, 872, 0, 716, 0, 0, 0, 0,
3899 0, 0, 0, 0, 0, 0, 0, 716, 0, 0,
3900 920, 0, 0, 982, 0, 716, 0, 0, 0, 0,
3901 0, -1379, 716, 0, -1379, 0, 0, 1692, 0, 0,
3902 -1379, 17, 0, 0, 18, 0, 0, 0, 0, 2054,
3903 944, 0, 0, 0, 0, 0, 0, 0, 0, 1345,
3904 0, 0, 0, 0, 0, 1114, 0, 0, 0, 960,
3905 961, 962, 19, 964, 716, 0, 0, 0, 0, -1458,
3906 20, 0, 0, 912, -1458, 0, 0, 0, 0, 0,
3907 912, 1926, 21, 1010, -1379, 0, 0, 0, 0, 22,
3908 0, 0, 0, 23, 0, 0, 0, 0, 0, 0,
3909 0, 0, 0, 24, 0, 0, 0, 0, 1031, 0,
3910 -1458, 0, 0, 0, 0, 0, 25, 0, 0, 0,
3911 0, 0, 0, -1458, 0, 0, 0, 0, -1458, 0,
3912 0, 0, 0, 716, 0, 1712, 912, 0, 1137, 0,
3913 0, 0, 1149, 1154, 0, 716, 716, 0, 0, 716,
3914 0, 26, 0, 0, 0, 0, 27, 990, 0, 0,
3915 0, -1379, 716, 0, -1458, 0, 0, 716, 0, 28,
3916 0, 626, 716, 0, 1638, 716, 716, 0, 1639, 1640,
3917 1641, 0, 0, 716, 716, -1379, 973, -1379, -1379, 974,
3918 0, 0, 29, 975, 976, 977, 0, 0, 0, 716,
3919 0, 716, 0, 0, 0, 0, 30, 0, 0, -34,
3920 978, 990, 0, 0, 0, 0, 0, 0, 980, 0,
3921 0, 716, 0, -1379, 0, 981, -1379, -1379, -1379, 0,
3922 0, 0, 0, 0, 1005, 0, 0, 0, 0, 0,
3923 0, 0, 0, 0, -1458, 0, 0, 0, 0, 982,
3924 0, 912, 0, 0, 1114, 0, 0, 0, 0, 0,
3925 0, 0, 973, 0, 0, 974, 0, 0, 0, 975,
3926 976, 977, 0, 0, 0, 0, 0, 0, 1005, 0,
3927 0, 716, 0, 0, 0, 716, 912, 0, 0, 0,
3928 0, 0, 0, 0, 980, 0, 0, 0, -1458, 0,
3929 1299, 981, 716, 0, 0, 0, 716, 0, 0, 0,
3930 0, 912, 0, 0, 912, 0, 716, 0, 0, 0,
3931 0, 0, 0, 1322, 0, 982, 1339, 0, 716, 1350,
3932 0, 0, 0, 0, 0, 0, 1357, 1362, 1114, 0,
3933 -1458, 0, 1114, 716, 0, 0, 0, 997, 998, 999,
3934 1000, 1001, 1002, 1372, 1373, 1374, 1375, 0, 0, 983,
3935 0, 1382, 0, 0, 984, 1393, 0, 610, 0, 1396,
3936 1643, 0, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410,
3937 1411, 0, 0, 1412, 0, 985, 986, 0, 0, 0,
3938 699, 0, 872, 0, -1458, 0, 0, 0, 0, 0,
3939 987, 997, 998, 999, 1000, 1001, 1002, 1005, 0, 716,
3940 0, 0, 716, 0, 0, 0, 0, 973, 0, 0,
3941 974, 716, 0, 0, 975, 976, 977, 0, 0, 716,
3942 988, 0, 1644, 989, 0, 983, 0, 0, 716, 0,
3943 984, 0, 0, 0, 0, 0, 0, 990, 0, 980,
3944 991, 0, 0, 0, 0, 1005, 981, 0, 716, 0,
3945 0, 985, 986, 1114, 0, 610, 0, 0, 0, 0,
3946 0, 0, 0, 0, 0, 0, 987, 0, 0, 1005,
3947 982, 0, 0, 0, 1346, 0, 0, 0, 0, 0,
3948 0, 0, 0, 716, 716, 1005, 1005, 1005, 0, 1005,
3949 0, 1450, 0, 972, 0, 0, 988, 0, 973, 989,
3950 0, 974, 0, 0, 0, 975, 976, 977, 0, 1114,
3951 912, 0, 0, 990, 0, 0, 0, 0, 961, 962,
3952 0, 0, 978, 0, 992, 979, 0, 0, 0, 0,
3953 980, 0, 0, 0, 0, 1005, 0, 981, 716, 0,
3954 716, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3955 0, 0, 0, 0, 0, 0, 1005, 0, 0, 0,
3956 0, 982, 0, 0, 0, 0, 0, 0, 0, 0,
3957 0, 0, 610, 0, 0, 0, 0, 0, 0, 0,
3958 983, 626, 0, 0, 1638, 984, 0, 0, 1639, 1640,
3959 1641, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3960 992, 0, 716, 716, 0, 0, -1458, -1458, 1645, 1646,
3961 1647, 0, 1648, 1649, 1650, 1651, 1652, 1653, 0, 0,
3962 993, 987, 0, 994, 995, 996, 0, 997, 998, 999,
3963 1000, 1001, 1002, 0, 0, 0, 0, 0, 0, 0,
3964 1629, 872, 1596, 1597, 0, 0, 0, 0, 0, 0,
3965 0, 0, 0, 0, -1458, 0, 0, 0, 0, 0,
3966 0, 0, 1005, 0, 1612, 0, 0, 0, 990, 1618,
3967 0, 983, 0, 0, 1005, 0, 984, 0, 0, 1005,
3968 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3969 0, 0, 0, 0, 0, 0, 993, 985, 986, 994,
3970 995, 996, 0, 997, 998, 999, 1000, 1001, 1002, 0,
3971 0, 1637, 987, 0, 0, 0, 0, 0, 0, 0,
3972 0, 0, 0, 0, 0, 0, 1362, 0, 1362, 1362,
3973 0, 0, 0, 0, 1675, 0, 0, 0, 0, 0,
3974 0, 0, 988, 0, 0, 989, 0, 0, 0, 0,
3975 0, 0, 0, 0, 0, 992, 0, 0, 0, 990,
3976 0, 0, 991, 0, 0, 1694, 0, 1697, 0, 1699,
3977 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3978 -1458, 0, 973, 0, 0, 974, 0, 0, 0, 0,
3979 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3980 0, 0, 872, 872, 872, 0, 0, 0, 0, 973,
3981 0, 0, 974, 1742, 980, 0, 975, 976, 977, 0,
3982 0, -1458, 0, 0, 1005, 0, 0, 0, 0, 0,
3983 0, 0, 0, 978, 0, 1137, 0, 0, 0, 0,
3984 0, 980, 1644, 0, 0, 982, 992, 1005, 981, 0,
3985 1154, 993, 0, 0, 994, 995, 996, 0, 997, 998,
3986 999, 1000, 1001, 1002, 1005, 0, 1346, 1346, 1780, 1654,
3987 0, 1346, 982, 0, 0, 1005, 0, 0, 0, 0,
3988 0, 0, 1005, 0, 0, 0, 0, 1005, 0, 0,
3989 0, 0, 0, 0, 0, 0, 0, 1005, 1005, 1005,
3990 1005, 0, 0, 0, 1346, 1346, 0, 1005, 0, 0,
3991 0, 0, 0, 1929, 0, 0, 0, 0, 1005, 0,
3992 0, 1005, 0, 0, 0, 0, 0, 0, 1005, 1005,
3993 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 0, 0,
3994 973, 0, 993, 974, 0, 994, 995, 996, 0, 997,
3995 998, 999, 1000, 1001, 1002, -1458, 0, 0, 0, 0,
3996 -1458, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3997 0, 0, 980, 0, 0, 1005, 0, 0, 0, -1458,
3998 0, 1874, 983, 0, 0, 0, 0, 984, 0, 0,
3999 0, 1878, 0, 0, 0, 0, -1458, 1879, 0, 0,
4000 1881, 0, 0, 982, 0, 0, 0, 0, 985, 986,
4001 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4002 0, 0, 0, 987, 0, 0, 1901, 1902, 1645, 1646,
4003 1647, 0, 1648, 1649, 1650, 1651, 1652, 1653, 0, 0,
4004 0, 0, 0, 990, 0, 0, 0, 1915, 0, 0,
4005 1918, 0, 1920, 988, 0, 0, 989, 0, 0, 0,
4006 1924, 0, 0, 0, 0, 0, 0, 0, 1931, 1932,
4007 990, 1930, 0, 991, 0, 0, 0, 0, 0, 0,
4008 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4009 0, 0, 0, 0, 0, 0, 0, 0, 1974, 0,
4010 973, 0, 0, 974, 872, 0, 0, 975, 976, 977,
4011 0, 0, 0, -1458, 0, 1986, 0, 0, -1458, 0,
4012 0, 1005, 1005, 0, 978, 0, 0, 0, 0, 0,
4013 -1458, 1999, 980, 0, 0, 0, 0, 1005, 0, 981,
4014 0, 0, 0, 1005, 0, 0, 0, 0, 0, 0,
4015 0, 0, 973, 0, -1458, 974, 0, 992, 0, 0,
4016 1654, 1654, 1005, 982, 1346, 1346, 1346, 1346, 0, 0,
4017 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346,
4018 1654, 0, 0, 0, 980, 0, 0, 0, 0, 0,
4019 0, -1458, 0, 0, 0, 0, 0, 0, 0, 0,
4020 1005, 990, 0, 0, 0, 1654, 1654, 0, 0, 0,
4021 0, 0, 0, 0, 0, 982, 0, 0, 0, 1005,
4022 1346, 1346, 1005, 0, 1005, 0, -1458, 0, 0, 0,
4023 0, 0, 0, 997, 998, 999, 1000, 1001, 1002, 0,
4024 0, 2094, 0, 0, 0, 0, 0, 0, 0, 0,
4025 0, 0, 0, 993, 0, 0, 994, 995, 996, 0,
4026 997, 998, 999, 1000, 1001, 1002, 0, 1005, 0, 0,
4027 1365, 0, 0, 983, 0, 0, 0, 0, 984, 0,
4028 0, 0, 0, 2114, 2104, 2105, 0, 0, -1458, 2106,
4029 0, 0, 0, 0, 2109, 0, 0, 2112, 2113, 985,
4030 986, 0, 2117, 0, 0, 1005, 0, 0, 0, 0,
4031 0, 0, 0, 0, 987, 0, 0, 0, 0, 0,
4032 0, 0, 0, 0, 0, -1458, 0, 0, 0, 0,
4033 -1458, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4034 872, 0, 0, 0, 988, 0, 0, 989, 872, 0,
4035 0, 0, 0, 0, 0, 699, 0, 0, 0, 0,
4036 0, 990, 0, 0, 991, 0, -1458, 0, 0, 0,
4037 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4038 0, 0, 0, 0, -1458, 0, 0, 0, 0, 0,
4039 0, 997, 998, 999, 1000, 1001, 1002, 2204, 0, 1005,
4040 0, 0, 0, 1005, 1005, 0, 1005, 0, 0, 1654,
4041 1654, 1654, 1654, 990, 0, 0, 1654, 1654, 1654, 1654,
4042 1654, 1654, 1654, 1654, 1654, 1654, 1005, 1005, 0, 0,
4043 0, 0, 0, 0, 0, 0, 0, 0, 973, 0,
4044 1005, 974, 0, 1005, 0, 1005, 0, 0, 992, 1005,
4045 0, 0, 1654, 1654, 0, 0, 1005, 1005, 0, 0,
4046 0, 0, 0, 0, 0, 0, 973, 0, 0, 974,
4047 980, 0, 0, 975, 976, 977, 0, -1458, 2254, 2255,
4048 0, 0, 2256, 0, 0, 0, 0, 0, 0, 0,
4049 978, 0, 0, 0, 0, 0, 0, 0, 980, 1005,
4050 -1458, 982, 0, 0, 0, 981, 973, 0, 0, 974,
4051 0, 1005, 0, 975, 976, 977, 2285, 2286, 793, 0,
4052 0, 0, 0, 0, 1005, 0, 0, 0, 0, 982,
4053 978, 0, 0, 0, 2299, 0, 0, 794, 980, 0,
4054 0, 0, 0, 0, 993, 981, 0, 994, 995, 996,
4055 0, 997, 998, 999, 1000, 1001, 1002, 0, 0, 0,
4056 0, 1877, 0, 0, 0, 0, 0, 0, 0, 982,
4057 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4058 0, 0, 0, 0, 0, 0, 795, 2028, 0, 0,
4059 0, 0, 0, 0, 2029, 0, -1458, 0, 0, 0,
4060 0, 0, 0, 997, 998, 999, 1000, 1001, 1002, 0,
4061 0, -1458, 0, 0, 0, 0, -1458, 0, 0, 1005,
4062 0, 0, 0, 1346, 0, 0, 0, 0, 0, 1005,
4063 1005, 1005, 0, 0, 1005, 2382, 0, 1005, 1005, 983,
4064 0, 0, 1005, 0, 984, 0, 0, 0, 0, 964,
4065 2030, 0, -1458, 0, 0, 0, 0, 0, 0, 0,
4066 0, 2401, 0, 0, 0, 985, 986, 0, 0, 0,
4067 0, 796, 0, 0, 0, 0, 2415, 0, 0, 983,
4068 987, 0, 0, 0, 984, 0, 0, 0, 0, 0,
4069 0, 0, 0, 0, 0, 0, 0, 0, 0, 990,
4070 0, 0, 0, 0, 0, 985, 986, 0, 0, 0,
4071 988, 1346, 0, 989, 0, 0, 0, 0, 0, 797,
4072 987, 0, 798, 0, 0, 0, 0, 990, 0, 1005,
4073 991, 0, 0, 799, 0, 2031, 0, 0, 0, 0,
4074 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4075 988, 0, 0, 989, 0, 0, 0, 0, 0, 0,
4076 0, 0, 2285, 0, 800, 0, 0, 990, 0, 0,
4077 991, 0, 0, 0, 1654, 1346, 0, 0, 0, 1005,
4078 1005, 1005, 0, 0, 0, 0, -1458, 0, 0, 0,
4079 0, 2492, 0, 0, 0, 0, 0, 0, 0, 0,
4080 0, 0, 0, 0, 0, 0, 0, 0, 802, 0,
4081 1005, 1005, 0, 0, 992, 0, 0, 0, 0, 0,
4082 0, 0, 0, 0, 1005, 0, 2518, 2518, 803, 0,
4083 0, 0, 0, 0, 0, 0, 1654, 0, 0, 0,
4084 0, 0, 0, 0, 0, 0, 0, 0, 805, 0,
4085 2032, 0, 0, 2033, 992, 0, 0, 0, 0, 0,
4086 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4087 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4088 0, 0, -1458, 2518, 0, 0, 0, 0, 0, 997,
4089 998, 999, 1000, 1001, 1002, 0, 1654, 0, 0, 0,
4090 0, 0, 0, 0, 0, 0, 0, 1005, 0, 0,
4091 993, 0, 0, 994, 995, 996, 0, 997, 998, 999,
4092 1000, 1001, 1002, 0, 0, 0, 1005, 1912, 0, 0,
4093 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4094 1005, 0, 0, 0, 0, 2518, 2589, 0, 0, 0,
4095 993, 1190, 0, 994, 995, 996, 0, 997, 998, 999,
4096 1000, 1001, 1002, 0, 0, 0, 0, 2007, 0, 0,
4097 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4098 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4099 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4100 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4101 0, 0, 0, 0, 0, 0, 0, 1005, 0, 0,
4102 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4103 0, 0, 0, 0, 622, 623, 470, 624, 625, 626,
4104 627, 628, 0, 1005, 0, 0, 0, 0, 0, 96,
4105 97, 98, 99, 100, 101, 102, 103, 1434, 105, 106,
4106 107, 0, 0, 0, 0, 0, 0, 0, 108, 109,
4107 0, 110, 111, 112, 581, 113, 114, 115, 116, 629,
4108 582, 630, 631, 0, 120, 121, 122, 123, 124, 632,
4109 633, 125, 126, 634, 635, 129, 0, 130, 131, 132,
4110 133, 636, 0, 637, 0, 135, 136, 137, 138, 139,
4111 584, 140, 141, 142, 1005, 143, 144, 145, 146, 147,
4112 148, 0, 585, 149, 150, 151, 638, 639, 640, 641,
4113 642, 643, 644, 152, 153, 154, 155, 156, 157, 645,
4114 646, 160, 647, 161, 0, 162, 163, 164, 165, 166,
4115 167, 0, 168, 169, 170, 171, 172, 1435, 0, 173,
4116 174, 648, 176, 177, 0, 178, 179, 180, 0, 181,
4117 182, 183, 0, 184, 185, 186, 187, 649, 189, 190,
4118 191, 650, 651, 193, 0, 194, 195, 652, 197, 0,
4119 198, 0, 199, 587, 0, 588, 200, 201, 202, 203,
4120 0, 204, 653, 0, 206, 207, 0, 208, 209, 210,
4121 211, 212, 589, 213, 214, 215, 216, 0, 217, 218,
4122 219, 220, 221, 222, 0, 223, 590, 224, 225, 226,
4123 227, 228, 654, 655, 0, 656, 0, 232, 591, 592,
4124 233, 593, 234, 235, 236, 237, 238, 0, 0, 239,
4125 657, 594, 241, 595, 0, 242, 243, 244, 658, 659,
4126 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
4127 255, 256, 257, 258, 259, 260, 660, 596, 661, 263,
4128 264, 265, 266, 662, 267, 268, 597, 269, 663, 664,
4129 271, 665, 273, 274, 275, 0, 276, 277, 0, 0,
4130 666, 279, 280, 0, 0, 281, 282, 598, 283, 599,
4131 667, 285, 286, 287, 288, 289, 290, 291, 292, 293,
4132 0, 294, 295, 668, 297, 298, 299, 458, 301, 302,
4133 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
4134 669, 313, 314, 315, 316, 0, 317, 318, 319, 320,
4135 321, 322, 323, 324, 325, 326, 327, 328, 0, 329,
4136 330, 600, 331, 332, 333, 670, 335, 336, 337, 338,
4137 339, 340, 341, 342, 343, 0, 344, 345, 346, 347,
4138 348, 671, 349, 350, 351, 352, 353, 601, 354, 355,
4139 672, 357, 0, 358, 359, 360, 361, 362, 363, 364,
4140 365, 366, 367, 368, 369, 673, 0, 371, 372, 0,
4141 373, 602, 374, 375, 376, 377, 378, 0, 674, 675,
4142 0, 0, 381, 382, 676, 384, 677, 678, 386, 387,
4143 388, 389, 390, 391, 392, 0, 0, 393, 394, 395,
4144 396, 397, 679, 0, 398, 399, 400, 401, 402, 403,
4145 680, 1436, 405, 604, 406, 407, 408, 409, 0, 0,
4146 410, 0, 0, 411, 412, 413, 414, 415, 416, 417,
4147 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
4148 428, 429, 430, 681, 0, 0, 0, 0, 0, 0,
4149 682, 683, 1437, 0, 0, 0, 0, 0, 0, 685,
4150 1438, 0, 0, 0, 686, 622, 623, 470, 624, 625,
4151 626, 627, 628, 0, 0, 0, 0, 0, 0, 0,
4152 96, 97, 98, 99, 100, 101, 102, 103, 0, 105,
4153 106, 107, 0, 0, 0, 0, 0, 0, 0, 108,
4154 109, 0, 110, 111, 112, 581, 113, 114, 115, 116,
4155 629, 582, 630, 631, 0, 120, 121, 122, 123, 124,
4156 632, 633, 125, 126, 634, 635, 129, 0, 130, 131,
4157 132, 133, 636, 0, 637, 0, 135, 136, 137, 138,
4158 139, 584, 140, 141, 142, 0, 143, 144, 145, 146,
4159 147, 148, 0, 585, 149, 150, 151, 638, 639, 640,
4160 641, 642, 643, 644, 152, 153, 154, 155, 156, 157,
4161 645, 646, 160, 647, 161, 0, 162, 163, 164, 165,
4162 166, 167, 0, 168, 169, 170, 171, 172, 0, 0,
4163 173, 174, 648, 176, 177, 0, 178, 179, 180, 0,
4164 181, 182, 183, 0, 184, 185, 186, 187, 649, 189,
4165 190, 191, 650, 651, 193, 0, 194, 195, 652, 197,
4166 0, 198, 0, 199, 587, 0, 588, 200, 201, 202,
4167 203, 0, 204, 653, 0, 206, 207, 0, 208, 209,
4168 210, 211, 212, 589, 213, 214, 215, 216, 0, 217,
4169 218, 219, 220, 221, 222, 0, 223, 590, 224, 225,
4170 226, 227, 228, 654, 655, 0, 656, 0, 232, 591,
4171 592, 233, 593, 234, 235, 236, 237, 238, 0, 0,
4172 239, 657, 594, 241, 595, 0, 242, 243, 244, 658,
4173 659, 245, 246, 247, 248, 249, 250, 251, 252, 253,
4174 254, 255, 256, 257, 258, 259, 260, 660, 596, 661,
4175 263, 264, 265, 266, 662, 267, 268, 597, 269, 663,
4176 664, 271, 665, 273, 274, 275, 0, 276, 277, 0,
4177 0, 666, 279, 280, 0, 0, 281, 282, 598, 283,
4178 599, 667, 285, 286, 287, 288, 289, 290, 291, 292,
4179 293, 0, 294, 295, 668, 297, 298, 299, 458, 301,
4180 302, 0, 303, 304, 305, 306, 307, 308, 309, 310,
4181 311, 669, 313, 314, 315, 316, 0, 317, 318, 319,
4182 320, 321, 322, 323, 324, 325, 326, 327, 328, 0,
4183 329, 330, 600, 331, 332, 333, 670, 335, 336, 337,
4184 338, 339, 340, 341, 342, 343, 21, 344, 345, 346,
4185 347, 348, 671, 349, 350, 351, 352, 353, 601, 354,
4186 355, 672, 357, 0, 358, 359, 360, 361, 362, 363,
4187 364, 365, 366, 367, 368, 369, 673, 0, 371, 372,
4188 25, 373, 602, 374, 375, 376, 377, 378, 0, 674,
4189 675, 0, 0, 381, 382, 676, 384, 677, 678, 386,
4190 387, 388, 389, 390, 391, 392, 0, 0, 393, 394,
4191 395, 396, 397, 679, 0, 398, 399, 400, 401, 402,
4192 603, 680, 0, 405, 604, 406, 407, 408, 409, 0,
4193 0, 410, 0, 28, 411, 412, 413, 414, 415, 416,
4194 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
4195 427, 428, 429, 430, 681, 0, 29, 0, 0, 0,
4196 0, 682, 683, 0, 0, 0, 0, 0, 0, 0,
4197 685, 2393, 0, 0, 0, 686, 622, 623, 470, 624,
4198 625, 626, 627, 628, 0, 0, 0, 0, 0, 0,
4199 0, 96, 97, 98, 99, 100, 101, 102, 103, 0,
4200 105, 106, 107, 0, 0, 0, 0, 0, 0, 0,
4201 108, 109, 0, 110, 111, 112, 581, 113, 114, 115,
4202 116, 629, 582, 630, 631, 0, 120, 121, 122, 123,
4203 124, 632, 633, 125, 126, 634, 635, 129, 0, 130,
4204 131, 132, 133, 636, 0, 637, 0, 135, 136, 137,
4205 138, 139, 584, 140, 141, 142, 0, 143, 144, 145,
4206 146, 147, 148, 0, 585, 149, 150, 151, 638, 639,
4207 640, 641, 642, 643, 644, 152, 153, 154, 155, 156,
4208 157, 645, 646, 160, 647, 161, 0, 162, 163, 164,
4209 165, 166, 167, 0, 168, 169, 170, 171, 172, 0,
4210 0, 173, 174, 648, 176, 177, 0, 178, 179, 180,
4211 0, 181, 182, 183, 0, 184, 185, 186, 187, 649,
4212 189, 190, 191, 650, 651, 193, 0, 194, 195, 652,
4213 197, 0, 198, 0, 199, 587, 0, 588, 200, 201,
4214 202, 203, 0, 204, 653, 0, 206, 207, 0, 208,
4215 209, 210, 211, 212, 589, 213, 214, 215, 216, 0,
4216 217, 218, 219, 220, 221, 222, 0, 223, 590, 224,
4217 225, 226, 227, 228, 654, 655, 0, 656, 0, 232,
4218 591, 592, 233, 593, 234, 235, 236, 237, 238, 0,
4219 0, 239, 657, 594, 241, 595, 0, 242, 243, 244,
4220 658, 659, 245, 246, 247, 248, 249, 250, 251, 252,
4221 253, 254, 255, 256, 257, 258, 259, 260, 660, 596,
4222 661, 263, 264, 265, 266, 662, 267, 268, 597, 269,
4223 663, 664, 271, 665, 273, 274, 275, 0, 276, 277,
4224 0, 0, 666, 279, 280, 0, 0, 281, 282, 598,
4225 283, 599, 667, 285, 286, 287, 288, 289, 290, 291,
4226 292, 293, 0, 294, 295, 668, 297, 298, 299, 458,
4227 301, 302, 0, 303, 304, 305, 306, 307, 308, 309,
4228 310, 311, 669, 313, 314, 315, 316, 0, 317, 318,
4229 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
4230 0, 329, 330, 600, 331, 332, 333, 670, 335, 336,
4231 337, 338, 339, 340, 341, 342, 343, 21, 344, 345,
4232 346, 347, 348, 671, 349, 350, 351, 352, 353, 601,
4233 354, 355, 672, 357, 0, 358, 359, 360, 361, 362,
4234 363, 364, 365, 366, 367, 368, 369, 673, 0, 371,
4235 372, 25, 373, 602, 374, 375, 376, 377, 378, 0,
4236 674, 675, 0, 0, 381, 382, 676, 384, 677, 678,
4237 386, 387, 388, 389, 390, 391, 392, 0, 0, 393,
4238 394, 395, 396, 397, 679, 0, 398, 399, 400, 401,
4239 402, 603, 680, 0, 405, 604, 406, 407, 408, 409,
4240 0, 0, 410, 0, 28, 411, 412, 413, 414, 415,
4241 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
4242 426, 427, 428, 429, 430, 681, 0, 29, 0, 0,
4243 0, 0, 682, 683, 0, 0, 0, 0, 0, 0,
4244 0, 685, 0, 0, 0, 0, 686, 622, 623, 470,
4245 624, 625, 626, 627, 628, 0, 0, 0, 0, 0,
4246 0, 0, 96, 97, 98, 99, 100, 101, 102, 103,
4247 0, 105, 106, 107, 0, 0, 0, 0, 0, 0,
4248 0, 108, 109, 0, 110, 111, 112, 581, 113, 114,
4249 115, 116, 629, 582, 630, 631, 1358, 120, 121, 122,
4250 123, 124, 632, 633, 125, 126, 634, 635, 129, 0,
4251 130, 131, 132, 133, 636, 0, 637, 0, 135, 136,
4252 137, 138, 139, 584, 140, 141, 142, 0, 143, 144,
4253 145, 146, 147, 148, 0, 585, 149, 150, 151, 638,
4254 639, 640, 641, 642, 643, 644, 152, 153, 154, 155,
4255 156, 157, 645, 646, 160, 647, 161, 0, 162, 163,
4256 164, 165, 166, 167, 0, 168, 169, 170, 171, 172,
4257 0, 0, 173, 174, 648, 176, 177, 0, 178, 179,
4258 180, 0, 181, 182, 183, 0, 184, 185, 186, 187,
4259 649, 189, 190, 191, 650, 651, 193, 0, 194, 195,
4260 652, 197, 0, 198, 0, 199, 587, 1359, 588, 200,
4261 201, 202, 203, 0, 204, 653, 0, 206, 207, 0,
4262 208, 209, 210, 211, 212, 589, 213, 214, 215, 216,
4263 0, 217, 218, 219, 220, 221, 222, 0, 223, 590,
4264 224, 225, 226, 227, 228, 654, 655, 0, 656, 0,
4265 232, 591, 592, 233, 593, 234, 235, 236, 237, 238,
4266 0, 1360, 239, 657, 594, 241, 595, 0, 242, 243,
4267 244, 658, 659, 245, 246, 247, 248, 249, 250, 251,
4268 252, 253, 254, 255, 256, 257, 258, 259, 260, 660,
4269 596, 661, 263, 264, 265, 266, 662, 267, 268, 597,
4270 269, 663, 664, 271, 665, 273, 274, 275, 0, 276,
4271 277, 0, 0, 666, 279, 280, 0, 0, 281, 282,
4272 598, 283, 599, 667, 285, 286, 287, 288, 289, 290,
4273 291, 292, 293, 0, 294, 295, 668, 297, 298, 299,
4274 458, 301, 302, 0, 303, 304, 305, 306, 307, 308,
4275 309, 310, 311, 669, 313, 314, 315, 316, 0, 317,
4276 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
4277 328, 0, 329, 330, 600, 331, 332, 333, 670, 335,
4278 336, 337, 338, 339, 340, 341, 342, 343, 0, 344,
4279 345, 346, 347, 348, 671, 349, 350, 351, 352, 353,
4280 601, 354, 355, 672, 357, 0, 358, 359, 360, 361,
4281 362, 363, 364, 365, 366, 367, 368, 369, 673, 0,
4282 371, 372, 0, 373, 602, 374, 375, 376, 377, 378,
4283 0, 674, 675, 0, 1361, 381, 382, 676, 384, 677,
4284 678, 386, 387, 388, 389, 390, 391, 392, 0, 0,
4285 393, 394, 395, 396, 397, 679, 0, 398, 399, 400,
4286 401, 402, 403, 680, 0, 405, 604, 406, 407, 408,
4287 409, 0, 0, 410, 0, 0, 411, 412, 413, 414,
4288 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
4289 425, 426, 427, 428, 429, 430, 681, 0, 0, 0,
4290 0, 0, 0, 682, 683, 0, 0, 0, 0, 0,
4291 0, 0, 685, 0, 0, 0, 0, 686, 622, 623,
4292 470, 624, 625, 626, 627, 628, 0, 0, 0, 0,
4293 0, 0, 0, 96, 97, 98, 99, 100, 101, 102,
4294 103, 0, 105, 106, 107, 0, 0, 0, 0, 0,
4295 0, 0, 108, 109, 0, 110, 111, 112, 581, 113,
4296 114, 115, 116, 629, 582, 630, 631, 0, 120, 121,
4297 122, 123, 124, 632, 633, 125, 126, 634, 635, 129,
4298 0, 130, 131, 132, 133, 636, 0, 637, 0, 135,
4299 136, 137, 138, 139, 584, 140, 141, 142, 0, 143,
4300 144, 145, 146, 147, 148, 0, 585, 149, 150, 151,
4301 638, 639, 640, 641, 642, 643, 644, 152, 153, 154,
4302 155, 156, 157, 645, 646, 160, 647, 161, 0, 162,
4303 163, 164, 165, 166, 167, 0, 168, 169, 170, 171,
4304 172, 0, 0, 173, 174, 648, 176, 177, 0, 178,
4305 179, 180, 0, 181, 182, 183, 0, 184, 185, 186,
4306 187, 649, 189, 190, 191, 650, 651, 193, 0, 194,
4307 195, 652, 197, 0, 198, 0, 199, 587, 0, 588,
4308 200, 201, 202, 203, 0, 204, 653, 0, 206, 207,
4309 0, 208, 209, 210, 211, 212, 589, 213, 214, 215,
4310 216, 0, 217, 218, 219, 220, 221, 222, 0, 223,
4311 590, 224, 225, 226, 227, 228, 654, 655, 0, 656,
4312 0, 232, 591, 592, 233, 593, 234, 235, 236, 237,
4313 238, 0, 0, 239, 657, 594, 241, 595, 0, 242,
4314 243, 244, 658, 659, 245, 246, 247, 248, 249, 250,
4315 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
4316 660, 596, 661, 263, 264, 265, 266, 662, 267, 268,
4317 597, 269, 663, 664, 271, 665, 273, 274, 275, 0,
4318 276, 277, 0, 0, 666, 279, 280, 0, 0, 281,
4319 282, 598, 283, 599, 667, 285, 286, 287, 288, 289,
4320 290, 291, 292, 293, 0, 294, 295, 668, 297, 298,
4321 299, 458, 301, 302, 0, 303, 304, 305, 306, 307,
4322 308, 309, 310, 311, 669, 313, 314, 315, 316, 0,
4323 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
4324 327, 328, 0, 329, 330, 600, 331, 332, 333, 670,
4325 335, 336, 337, 338, 339, 340, 341, 342, 343, 0,
4326 344, 345, 346, 347, 348, 671, 349, 350, 351, 352,
4327 353, 601, 354, 355, 672, 357, 0, 358, 359, 360,
4328 361, 362, 363, 364, 365, 366, 367, 368, 369, 673,
4329 0, 371, 372, 0, 373, 602, 374, 375, 376, 377,
4330 378, 0, 674, 675, 0, 0, 381, 382, 676, 384,
4331 677, 678, 386, 387, 388, 389, 390, 391, 392, 0,
4332 0, 393, 394, 395, 396, 397, 679, 0, 398, 399,
4333 400, 401, 402, 403, 680, 0, 405, 604, 406, 407,
4334 408, 409, 0, 0, 410, 0, 0, 411, 412, 413,
4335 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
4336 424, 425, 426, 427, 428, 429, 430, 681, 0, 0,
4337 0, 0, 0, 0, 682, 683, 684, 0, 0, 0,
4338 0, 0, 0, 685, 0, 0, 0, 0, 686, 622,
4339 623, 470, 624, 625, 626, 627, 628, 0, 0, 0,
4340 0, 0, 0, 0, 96, 97, 98, 99, 100, 101,
4341 102, 103, 1147, 105, 106, 107, 0, 0, 0, 0,
4342 0, 0, 0, 108, 109, 0, 110, 111, 112, 581,
4343 113, 114, 115, 116, 629, 582, 630, 631, 0, 120,
4344 121, 122, 123, 124, 632, 633, 125, 126, 634, 635,
4345 129, 0, 130, 131, 132, 133, 636, 0, 637, 0,
4346 135, 136, 137, 138, 139, 584, 140, 141, 142, 0,
4347 143, 144, 145, 146, 147, 148, 0, 585, 149, 150,
4348 151, 638, 639, 640, 641, 642, 643, 644, 152, 153,
4349 154, 155, 156, 157, 645, 646, 160, 647, 161, 0,
4350 162, 163, 164, 165, 166, 167, 0, 168, 169, 170,
4351 171, 172, 0, 0, 173, 174, 648, 176, 177, 0,
4352 178, 179, 180, 0, 181, 182, 183, 0, 184, 185,
4353 186, 187, 649, 189, 190, 191, 650, 651, 193, 0,
4354 194, 195, 652, 197, 0, 198, 0, 199, 587, 0,
4355 588, 200, 201, 202, 203, 0, 204, 653, 0, 206,
4356 207, 0, 208, 209, 210, 211, 212, 589, 213, 214,
4357 215, 216, 0, 217, 218, 219, 220, 221, 222, 0,
4358 223, 590, 224, 225, 226, 227, 228, 654, 655, 0,
4359 656, 0, 232, 591, 592, 233, 593, 234, 235, 236,
4360 237, 238, 0, 0, 239, 657, 594, 241, 595, 0,
4361 242, 243, 244, 658, 659, 245, 246, 247, 248, 249,
4362 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
4363 260, 660, 596, 661, 263, 264, 265, 266, 662, 267,
4364 268, 597, 269, 663, 664, 271, 665, 273, 274, 275,
4365 0, 276, 277, 0, 0, 666, 279, 280, 0, 0,
4366 281, 282, 598, 283, 599, 667, 285, 286, 287, 288,
4367 289, 290, 291, 292, 293, 0, 294, 295, 668, 297,
4368 298, 299, 458, 301, 302, 0, 303, 304, 305, 306,
4369 307, 308, 309, 310, 311, 669, 313, 314, 315, 316,
4370 0, 317, 318, 319, 320, 321, 322, 323, 324, 325,
4371 326, 327, 328, 0, 329, 330, 600, 331, 332, 333,
4372 670, 335, 336, 337, 338, 339, 340, 341, 342, 343,
4373 0, 344, 345, 346, 347, 348, 671, 349, 350, 351,
4374 352, 353, 601, 354, 355, 672, 357, 0, 358, 359,
4375 360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
4376 673, 0, 371, 372, 0, 373, 602, 374, 375, 376,
4377 377, 378, 0, 674, 675, 0, 0, 381, 382, 676,
4378 384, 677, 678, 386, 387, 388, 389, 390, 391, 392,
4379 0, 0, 393, 394, 395, 396, 397, 679, 0, 398,
4380 399, 400, 401, 402, 403, 680, 0, 405, 604, 406,
4381 407, 408, 409, 0, 0, 410, 0, 0, 411, 412,
4382 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
4383 423, 424, 425, 426, 427, 428, 429, 430, 681, 0,
4384 0, 0, 0, 0, 0, 682, 683, 0, 0, 0,
4385 0, 0, 0, 0, 685, 0, 0, 0, 0, 686,
4386 622, 623, 470, 624, 625, 626, 627, 628, 0, 0,
4387 0, 0, 0, 0, 0, 96, 97, 98, 99, 100,
4388 101, 102, 103, 0, 105, 106, 107, 0, 0, 0,
4389 0, 0, 0, 0, 108, 109, 0, 110, 111, 112,
4390 581, 113, 114, 115, 116, 629, 582, 630, 631, 0,
4391 120, 121, 122, 123, 124, 632, 633, 125, 126, 634,
4392 635, 129, 0, 130, 131, 132, 133, 636, 0, 637,
4393 0, 135, 136, 137, 138, 139, 584, 140, 141, 142,
4394 0, 143, 144, 145, 146, 147, 148, 0, 585, 149,
4395 150, 151, 638, 639, 640, 641, 642, 643, 644, 152,
4396 153, 154, 155, 156, 157, 645, 646, 160, 647, 161,
4397 0, 162, 163, 164, 165, 166, 167, 0, 168, 169,
4398 170, 171, 172, 0, 0, 173, 174, 648, 176, 177,
4399 0, 178, 179, 180, 0, 181, 182, 183, 0, 184,
4400 185, 186, 187, 649, 189, 190, 191, 650, 651, 193,
4401 0, 194, 195, 652, 197, 0, 198, 0, 199, 587,
4402 0, 588, 200, 201, 202, 203, 0, 204, 653, 0,
4403 206, 207, 0, 208, 209, 210, 211, 212, 589, 213,
4404 214, 215, 216, 0, 217, 218, 219, 220, 221, 222,
4405 0, 223, 590, 224, 225, 226, 227, 228, 654, 655,
4406 0, 656, 0, 232, 591, 592, 233, 593, 234, 235,
4407 236, 237, 238, 0, 0, 239, 657, 594, 241, 595,
4408 0, 242, 243, 244, 658, 659, 245, 246, 247, 248,
4409 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
4410 259, 260, 660, 596, 661, 263, 264, 265, 266, 662,
4411 267, 268, 597, 269, 663, 664, 271, 665, 273, 274,
4412 275, 0, 276, 277, 0, 0, 666, 279, 280, 0,
4413 0, 281, 282, 598, 283, 599, 667, 285, 286, 287,
4414 288, 289, 290, 291, 292, 293, 0, 294, 295, 668,
4415 297, 298, 299, 458, 301, 302, 0, 303, 304, 305,
4416 306, 307, 308, 309, 310, 311, 669, 313, 314, 315,
4417 316, 0, 317, 318, 319, 320, 321, 322, 323, 324,
4418 325, 326, 327, 328, 0, 329, 330, 600, 331, 332,
4419 333, 670, 335, 336, 337, 338, 339, 340, 341, 342,
4420 343, 0, 344, 345, 346, 347, 348, 671, 349, 350,
4421 351, 352, 353, 601, 354, 355, 672, 357, 0, 358,
4422 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
4423 369, 673, 0, 371, 372, 0, 373, 602, 374, 375,
4424 376, 377, 378, 0, 674, 675, 0, 0, 381, 382,
4425 676, 384, 677, 678, 386, 387, 388, 389, 390, 391,
4426 392, 0, 0, 393, 394, 395, 396, 397, 679, 0,
4427 398, 399, 400, 401, 402, 403, 680, 0, 405, 604,
4428 406, 407, 408, 409, 0, 0, 410, 0, 0, 411,
4429 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
4430 422, 423, 424, 425, 426, 427, 428, 429, 430, 681,
4431 0, 0, 0, 0, 0, 0, 682, 683, 0, 0,
4432 0, 0, 0, 0, 0, 685, 1348, 0, 0, 0,
4433 686, 622, 623, 470, 624, 625, 626, 627, 628, 0,
4434 0, 0, 0, 0, 0, 0, 96, 97, 98, 99,
4435 100, 101, 102, 103, 0, 105, 106, 107, 0, 0,
4436 0, 0, 0, 0, 0, 108, 109, 0, 110, 111,
4437 112, 581, 113, 114, 115, 116, 629, 582, 630, 631,
4438 0, 120, 121, 122, 123, 124, 632, 633, 125, 126,
4439 634, 635, 129, 0, 130, 131, 132, 133, 636, 0,
4440 637, 0, 135, 136, 137, 138, 139, 584, 140, 141,
4441 142, 0, 143, 144, 145, 146, 147, 148, 0, 585,
4442 149, 150, 151, 638, 639, 640, 641, 642, 643, 644,
4443 152, 153, 154, 155, 156, 157, 645, 646, 160, 647,
4444 161, 0, 162, 163, 164, 165, 166, 167, 0, 168,
4445 169, 170, 171, 172, 0, 0, 173, 174, 648, 176,
4446 177, 0, 178, 179, 180, 0, 181, 182, 183, 0,
4447 184, 185, 186, 187, 649, 189, 190, 191, 650, 651,
4448 193, 0, 194, 195, 652, 197, 0, 198, 0, 199,
4449 587, 1359, 588, 200, 201, 202, 203, 0, 204, 653,
4450 0, 206, 207, 0, 208, 209, 210, 211, 212, 589,
4451 213, 214, 215, 216, 0, 217, 218, 219, 220, 221,
4452 222, 0, 223, 590, 224, 225, 226, 227, 228, 654,
4453 655, 0, 656, 0, 232, 591, 592, 233, 593, 234,
4454 235, 236, 237, 238, 0, 0, 239, 657, 594, 241,
4455 595, 0, 242, 243, 244, 658, 659, 245, 246, 247,
4456 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
4457 258, 259, 260, 660, 596, 661, 263, 264, 265, 266,
4458 662, 267, 268, 597, 269, 663, 664, 271, 665, 273,
4459 274, 275, 0, 276, 277, 0, 0, 666, 279, 280,
4460 0, 0, 281, 282, 598, 283, 599, 667, 285, 286,
4461 287, 288, 289, 290, 291, 292, 293, 0, 294, 295,
4462 668, 297, 298, 299, 458, 301, 302, 0, 303, 304,
4463 305, 306, 307, 308, 309, 310, 311, 669, 313, 314,
4464 315, 316, 0, 317, 318, 319, 320, 321, 322, 323,
4465 324, 325, 326, 327, 328, 0, 329, 330, 600, 331,
4466 332, 333, 670, 335, 336, 337, 338, 339, 340, 341,
4467 342, 343, 0, 344, 345, 346, 347, 348, 671, 349,
4468 350, 351, 352, 353, 601, 354, 355, 672, 357, 0,
4469 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
4470 368, 369, 673, 0, 371, 372, 0, 373, 602, 374,
4471 375, 376, 377, 378, 0, 674, 675, 0, 0, 381,
4472 382, 676, 384, 677, 678, 386, 387, 388, 389, 390,
4473 391, 392, 0, 0, 393, 394, 395, 396, 397, 679,
4474 0, 398, 399, 400, 401, 402, 403, 680, 0, 405,
4475 604, 406, 407, 408, 409, 0, 0, 410, 0, 0,
4476 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
4477 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
4478 681, 0, 0, 0, 0, 0, 0, 682, 683, 0,
4479 0, 0, 0, 0, 0, 0, 685, 0, 0, 0,
4480 0, 686, 622, 623, 470, 624, 625, 626, 627, 628,
4481 0, 0, 0, 0, 0, 0, 0, 96, 97, 98,
4482 99, 100, 101, 102, 103, 0, 105, 106, 107, 0,
4483 0, 0, 0, 0, 0, 0, 108, 109, 0, 110,
4484 111, 112, 581, 113, 114, 115, 116, 629, 582, 630,
4485 631, 0, 120, 121, 122, 123, 124, 632, 633, 125,
4486 126, 634, 635, 129, 0, 130, 131, 132, 133, 636,
4487 0, 637, 0, 135, 136, 137, 138, 139, 584, 140,
4488 141, 142, 0, 143, 144, 145, 146, 147, 148, 0,
4489 585, 149, 150, 151, 638, 639, 640, 641, 642, 643,
4490 644, 152, 153, 154, 155, 156, 157, 645, 646, 160,
4491 647, 161, 0, 162, 163, 164, 165, 166, 167, 0,
4492 168, 169, 170, 171, 172, 0, 0, 173, 174, 648,
4493 176, 177, 0, 178, 179, 180, 0, 181, 182, 183,
4494 0, 184, 185, 186, 187, 649, 189, 190, 191, 650,
4495 651, 193, 0, 194, 195, 652, 197, 0, 198, 0,
4496 199, 587, 0, 588, 200, 201, 202, 203, 0, 204,
4497 653, 0, 206, 207, 0, 208, 209, 210, 211, 212,
4498 589, 213, 214, 215, 216, 0, 217, 218, 219, 220,
4499 221, 222, 0, 223, 590, 224, 225, 226, 227, 228,
4500 654, 655, 0, 656, 0, 232, 591, 592, 233, 593,
4501 234, 235, 236, 237, 238, 0, 0, 239, 657, 594,
4502 241, 595, 0, 242, 243, 244, 658, 659, 245, 246,
4503 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
4504 257, 258, 259, 260, 660, 596, 661, 263, 264, 265,
4505 266, 662, 267, 268, 597, 269, 663, 664, 271, 665,
4506 273, 274, 275, 0, 276, 277, 0, 0, 666, 279,
4507 280, 0, 0, 281, 282, 598, 283, 599, 667, 285,
4508 286, 287, 288, 289, 290, 291, 292, 293, 0, 294,
4509 295, 668, 297, 298, 299, 458, 301, 302, 0, 303,
4510 304, 305, 306, 307, 308, 309, 310, 311, 669, 313,
4511 314, 315, 316, 0, 317, 318, 319, 320, 321, 322,
4512 323, 324, 325, 326, 327, 328, 0, 329, 330, 600,
4513 331, 332, 333, 670, 335, 336, 337, 338, 339, 340,
4514 341, 342, 343, 0, 344, 345, 346, 347, 348, 671,
4515 349, 350, 351, 352, 353, 601, 354, 355, 672, 357,
4516 0, 358, 359, 360, 361, 362, 363, 364, 365, 366,
4517 367, 368, 369, 673, 0, 371, 372, 0, 373, 602,
4518 374, 375, 376, 377, 378, 0, 674, 675, 0, 0,
4519 381, 382, 676, 384, 677, 678, 386, 387, 388, 389,
4520 390, 391, 392, 0, 0, 393, 394, 395, 396, 397,
4521 679, 0, 398, 399, 400, 401, 402, 403, 680, 1980,
4522 405, 604, 406, 407, 408, 409, 0, 0, 410, 0,
4523 0, 411, 412, 413, 414, 415, 416, 417, 418, 419,
4524 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
4525 430, 681, 0, 0, 0, 0, 0, 0, 682, 683,
4526 0, 0, 0, 0, 0, 0, 0, 685, 0, 0,
4527 0, 0, 686, 622, 623, 470, 624, 625, 626, 627,
4528 628, 0, 0, 0, 0, 0, 0, 0, 96, 97,
4529 98, 99, 100, 101, 102, 103, 0, 105, 106, 107,
4530 0, 0, 0, 0, 0, 0, 0, 108, 109, 0,
4531 110, 111, 112, 581, 113, 114, 115, 116, 629, 582,
4532 630, 631, 0, 120, 121, 122, 123, 124, 632, 633,
4533 125, 126, 634, 635, 129, 0, 130, 131, 132, 133,
4534 636, 0, 637, 0, 135, 136, 137, 138, 139, 584,
4535 140, 141, 142, 0, 143, 144, 145, 146, 147, 148,
4536 0, 585, 149, 150, 151, 638, 639, 640, 641, 642,
4537 643, 644, 152, 153, 154, 155, 156, 157, 645, 646,
4538 160, 647, 161, 0, 162, 163, 164, 165, 166, 167,
4539 0, 168, 169, 170, 171, 172, 0, 0, 173, 174,
4540 648, 176, 177, 0, 178, 179, 180, 0, 181, 182,
4541 183, 0, 184, 185, 186, 187, 649, 189, 190, 191,
4542 650, 651, 193, 0, 194, 195, 652, 197, 0, 198,
4543 0, 199, 587, 0, 588, 200, 201, 202, 203, 0,
4544 204, 653, 0, 206, 207, 0, 208, 209, 210, 211,
4545 212, 589, 213, 214, 215, 216, 0, 217, 218, 219,
4546 220, 221, 222, 0, 223, 590, 224, 225, 226, 227,
4547 228, 654, 655, 0, 656, 0, 232, 591, 592, 233,
4548 593, 234, 235, 236, 237, 238, 0, 0, 239, 657,
4549 594, 241, 595, 0, 242, 243, 244, 658, 659, 245,
4550 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
4551 256, 257, 258, 259, 260, 660, 596, 661, 263, 264,
4552 265, 266, 662, 267, 268, 597, 269, 663, 664, 271,
4553 665, 273, 274, 275, 0, 276, 277, 0, 0, 666,
4554 279, 280, 0, 0, 281, 282, 598, 283, 599, 667,
4555 285, 286, 287, 288, 289, 290, 291, 292, 293, 0,
4556 294, 295, 668, 297, 298, 299, 458, 301, 302, 0,
4557 303, 304, 305, 306, 307, 308, 309, 310, 311, 669,
4558 313, 314, 315, 316, 0, 317, 318, 319, 320, 321,
4559 322, 323, 324, 325, 326, 327, 328, 0, 329, 330,
4560 600, 331, 332, 333, 670, 335, 336, 337, 338, 339,
4561 340, 341, 342, 343, 0, 344, 345, 346, 347, 348,
4562 671, 349, 350, 351, 352, 353, 601, 354, 355, 672,
4563 357, 0, 358, 359, 360, 361, 362, 363, 364, 365,
4564 366, 367, 368, 369, 673, 0, 371, 372, 0, 373,
4565 602, 374, 375, 376, 377, 378, 0, 674, 675, 0,
4566 0, 381, 382, 676, 384, 677, 678, 386, 387, 388,
4567 389, 390, 391, 392, 0, 0, 393, 394, 395, 396,
4568 397, 679, 0, 398, 399, 400, 401, 402, 403, 680,
4569 0, 405, 604, 406, 407, 408, 409, 0, 0, 410,
4570 0, 0, 411, 412, 413, 414, 415, 416, 417, 418,
4571 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
4572 429, 430, 681, 0, 0, 0, 0, 0, 0, 682,
4573 683, 0, 0, 0, 0, 0, 0, 0, 685, 0,
4574 0, 0, 0, 686, 622, 623, 470, 624, 625, 626,
4575 627, 628, 0, 0, 0, 0, 0, 0, 0, 96,
4576 97, 98, 99, 100, 101, 102, 103, 0, 105, 106,
4577 107, 0, 0, 0, 0, 0, 0, 0, 108, 109,
4578 0, 110, 111, 112, 581, 113, 114, 115, 116, 629,
4579 582, 630, 631, 0, 120, 121, 122, 123, 124, 632,
4580 633, 125, 126, 634, 635, 129, 0, 130, 131, 132,
4581 133, 636, 0, 637, 0, 135, 136, 137, 138, 139,
4582 584, 140, 141, 142, 0, 143, 144, 145, 146, 147,
4583 148, 0, 585, 149, 150, 151, 638, 639, 640, 641,
4584 642, 643, 644, 152, 153, 154, 155, 156, 157, 645,
4585 646, 160, 647, 161, 0, 162, 163, 164, 165, 166,
4586 167, 0, 168, 169, 170, 171, 172, 0, 0, 173,
4587 174, 648, 176, 177, 0, 178, 179, 180, 0, 181,
4588 182, 183, 0, 184, 185, 186, 187, 649, 189, 190,
4589 191, 650, 651, 193, 0, 194, 195, 652, 197, 0,
4590 198, 0, 199, 587, 0, 588, 200, 201, 202, 203,
4591 0, 204, 653, 0, 206, 207, 0, 208, 209, 210,
4592 211, 212, 589, 213, 214, 215, 216, 0, 217, 218,
4593 219, 220, 221, 222, 0, 223, 590, 224, 225, 226,
4594 227, 228, 654, 655, 0, 656, 0, 232, 591, 592,
4595 233, 593, 234, 235, 236, 237, 238, 0, 0, 239,
4596 657, 594, 241, 595, 0, 242, 243, 244, 658, 659,
4597 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
4598 255, 256, 257, 258, 259, 260, 660, 596, 661, 263,
4599 264, 265, 266, 662, 267, 268, 597, 269, 663, 664,
4600 271, 665, 273, 274, 275, 0, 276, 277, 0, 0,
4601 666, 279, 280, 0, 0, 281, 282, 598, 283, 599,
4602 667, 285, 286, 287, 288, 289, 290, 291, 292, 293,
4603 0, 294, 295, 668, 297, 298, 299, 458, 301, 302,
4604 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
4605 669, 313, 314, 315, 316, 0, 317, 318, 319, 320,
4606 321, 322, 323, 324, 325, 326, 327, 328, 0, 329,
4607 330, 600, 331, 332, 333, 670, 335, 336, 337, 338,
4608 339, 340, 341, 342, 343, 0, 344, 345, 346, 347,
4609 348, 671, 349, 350, 351, 352, 353, 601, 354, 355,
4610 672, 357, 0, 358, 359, 360, 361, 362, 363, 364,
4611 365, 366, 367, 368, 369, 673, 0, 371, 372, 0,
4612 373, 602, 374, 375, 376, 377, 378, 0, 674, 675,
4613 0, 0, 381, 382, 676, 384, 677, 678, 386, 387,
4614 388, 389, 390, 391, 392, 0, 0, 393, 394, 395,
4615 396, 397, 679, 0, 398, 399, 400, 401, 402, 403,
4616 680, 0, 405, 604, 406, 407, 408, 409, 0, 0,
4617 410, 0, 0, 411, 412, 413, 414, 415, 416, 417,
4618 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
4619 428, 429, 430, 681, 0, 0, 0, 0, 0, 0,
4620 1150, 1151, 0, 0, 0, 0, 0, 0, 0, 685,
4621 0, 0, 0, 0, 686, 622, 1483, 470, 624, 625,
4622 626, 627, 628, 0, 0, 0, 0, 0, 0, 0,
4623 96, 97, 98, 99, 100, 101, 102, 103, 0, 105,
4624 106, 107, 0, 0, 0, 0, 0, 0, 0, 108,
4625 109, 0, 110, 111, 112, 581, 113, 114, 115, 116,
4626 629, 582, 630, 631, 0, 120, 121, 122, 123, 124,
4627 632, 633, 125, 126, 634, 635, 129, 0, 130, 131,
4628 132, 133, 636, 0, 637, 0, 135, 136, 137, 138,
4629 139, 584, 140, 141, 142, 0, 143, 144, 145, 146,
4630 147, 148, 0, 585, 149, 150, 151, 638, 639, 640,
4631 641, 642, 643, 644, 152, 153, 154, 155, 156, 157,
4632 645, 646, 160, 647, 161, 0, 162, 163, 164, 165,
4633 166, 167, 0, 168, 169, 170, 171, 172, 0, 0,
4634 173, 174, 648, 176, 177, 0, 178, 179, 180, 0,
4635 181, 182, 183, 0, 184, 185, 186, 187, 649, 189,
4636 190, 191, 650, 651, 193, 0, 194, 195, 652, 197,
4637 0, 198, 0, 199, 587, 0, 588, 200, 201, 202,
4638 203, 0, 204, 653, 0, 206, 207, 0, 208, 209,
4639 210, 211, 212, 589, 213, 214, 215, 216, 0, 217,
4640 218, 219, 220, 221, 222, 0, 223, 590, 224, 225,
4641 226, 227, 228, 654, 655, 0, 656, 0, 232, 591,
4642 592, 233, 593, 234, 235, 236, 237, 238, 0, 0,
4643 239, 657, 594, 241, 595, 0, 242, 243, 244, 658,
4644 659, 245, 246, 247, 248, 249, 250, 251, 252, 253,
4645 254, 255, 256, 257, 258, 259, 260, 660, 596, 661,
4646 263, 264, 265, 266, 662, 267, 268, 597, 269, 663,
4647 664, 271, 665, 273, 274, 275, 0, 276, 277, 0,
4648 0, 666, 279, 280, 0, 0, 281, 282, 598, 283,
4649 599, 667, 285, 286, 287, 288, 289, 290, 291, 292,
4650 293, 0, 294, 295, 668, 297, 298, 299, 458, 301,
4651 302, 0, 303, 304, 305, 306, 307, 308, 309, 310,
4652 311, 669, 313, 314, 315, 316, 0, 317, 318, 319,
4653 320, 321, 322, 323, 324, 325, 326, 327, 328, 0,
4654 329, 330, 600, 331, 332, 333, 670, 335, 336, 337,
4655 338, 339, 340, 341, 342, 343, 0, 344, 345, 346,
4656 347, 348, 671, 349, 350, 351, 352, 353, 601, 354,
4657 355, 672, 357, 0, 358, 359, 360, 361, 362, 363,
4658 364, 365, 366, 367, 368, 369, 673, 0, 371, 372,
4659 0, 373, 602, 374, 375, 376, 377, 378, 0, 674,
4660 675, 0, 0, 381, 382, 676, 384, 677, 678, 386,
4661 387, 388, 389, 390, 391, 392, 0, 0, 393, 394,
4662 395, 396, 397, 679, 0, 398, 399, 400, 401, 402,
4663 403, 680, 0, 405, 604, 406, 407, 408, 409, 0,
4664 0, 410, 0, 0, 411, 412, 413, 414, 415, 416,
4665 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
4666 427, 428, 429, 430, 681, 0, 0, 0, 0, 0,
4667 0, 682, 683, 0, 0, 0, 0, 0, 0, 0,
4668 685, 0, 0, 0, 0, 686, 622, 623, 470, 624,
4669 625, 626, 627, 628, 0, 0, 0, 0, 0, 0,
4670 0, 96, 97, 98, 99, 100, 101, 102, 103, 0,
4671 105, 106, 107, 0, 0, 0, 0, 0, 0, 0,
4672 108, 109, 0, 110, 111, 112, 581, 113, 114, 115,
4673 116, 629, 582, 630, 631, 0, 120, 121, 122, 123,
4674 124, 632, 633, 125, 126, 634, 635, 129, 0, 130,
4675 131, 132, 133, 636, 0, 637, 0, 135, 136, 137,
4676 138, 139, 584, 140, 141, 142, 0, 143, 144, 145,
4677 146, 147, 148, 0, 585, 149, 150, 151, 638, 639,
4678 640, 641, 642, 643, 644, 152, 153, 154, 155, 156,
4679 157, 645, 646, 160, 647, 161, 0, 162, 163, 164,
4680 165, 166, 167, 0, 168, 169, 170, 171, 172, 0,
4681 0, 173, 174, 648, 176, 177, 0, 178, 179, 180,
4682 0, 181, 182, 183, 0, 184, 185, 186, 187, 649,
4683 189, 190, 191, 650, 651, 193, 0, 194, 195, 652,
4684 197, 0, 198, 0, 199, 587, 0, 588, 200, 201,
4685 202, 203, 0, 204, 653, 0, 206, 207, 0, 208,
4686 209, 210, 211, 212, 589, 213, 214, 215, 216, 0,
4687 217, 218, 219, 220, 221, 222, 0, 223, 590, 224,
4688 225, 226, 227, 228, 654, 655, 0, 656, 0, 232,
4689 591, 592, 233, 593, 234, 235, 236, 237, 238, 0,
4690 0, 239, 657, 594, 241, 595, 0, 242, 243, 244,
4691 658, 659, 245, 246, 247, 248, 249, 250, 251, 252,
4692 253, 254, 255, 256, 257, 258, 259, 260, 660, 596,
4693 661, 263, 264, 265, 266, 662, 267, 268, 597, 269,
4694 663, 664, 271, 665, 273, 274, 275, 0, 276, 277,
4695 0, 0, 666, 279, 280, 0, 0, 281, 282, 598,
4696 283, 599, 667, 285, 286, 287, 288, 289, 290, 291,
4697 292, 293, 0, 294, 295, 668, 297, 298, 299, 458,
4698 301, 302, 0, 303, 304, 305, 306, 307, 308, 309,
4699 310, 311, 669, 313, 314, 315, 316, 0, 317, 318,
4700 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
4701 0, 329, 330, 600, 331, 332, 333, 670, 335, 336,
4702 337, 338, 339, 340, 341, 342, 343, 0, 344, 345,
4703 346, 347, 348, 671, 349, 350, 351, 352, 353, 601,
4704 354, 355, 672, 357, 0, 358, 359, 360, 361, 362,
4705 363, 364, 365, 366, 367, 368, 369, 673, 0, 371,
4706 372, 0, 373, 602, 374, 375, 376, 377, 378, 0,
4707 674, 675, 0, 0, 381, 382, 676, 384, 677, 678,
4708 386, 387, 388, 389, 390, 391, 392, 0, 0, 393,
4709 394, 395, 396, 397, 679, 0, 398, 399, 400, 401,
4710 402, 403, 680, 0, 405, 604, 406, 407, 408, 409,
4711 0, 0, 410, 0, 0, 411, 412, 413, 414, 415,
4712 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
4713 426, 427, 428, 429, 430, 681, 0, 0, 0, 0,
4714 0, 0, 682, 683, 0, 0, 0, 0, 0, 0,
4715 0, 2281, 0, 0, 0, 0, 686, 622, 623, 470,
4716 624, 625, 626, 627, 628, 0, 0, 0, 0, 0,
4717 0, 0, 96, 97, 98, 99, 100, 101, 102, 103,
4718 0, 105, 106, 107, 0, 0, 0, 0, 0, 0,
4719 0, 108, 109, 0, 110, 111, 112, 581, 113, 114,
4720 115, 2515, 629, 582, 630, 631, 0, 120, 121, 122,
4721 123, 124, 632, 633, 125, 126, 634, 635, 129, 0,
4722 130, 131, 132, 133, 636, 0, 637, 0, 135, 136,
4723 137, 138, 139, 584, 140, 141, 142, 0, 143, 144,
4724 145, 146, 147, 148, 0, 585, 149, 150, 2516, 638,
4725 639, 640, 641, 642, 643, 644, 152, 153, 154, 155,
4726 156, 157, 645, 646, 160, 647, 161, 0, 162, 163,
4727 164, 165, 166, 167, 0, 168, 169, 170, 171, 172,
4728 0, 0, 173, 174, 648, 176, 177, 0, 178, 179,
4729 180, 0, 181, 182, 183, 0, 184, 185, 186, 187,
4730 649, 189, 190, 191, 650, 651, 193, 0, 194, 195,
4731 652, 197, 0, 198, 0, 199, 587, 0, 588, 200,
4732 201, 202, 203, 0, 204, 653, 0, 206, 207, 0,
4733 208, 209, 210, 211, 212, 589, 213, 214, 215, 216,
4734 0, 217, 218, 219, 220, 221, 222, 0, 223, 590,
4735 224, 225, 226, 227, 228, 654, 655, 0, 656, 0,
4736 232, 591, 592, 233, 593, 234, 235, 236, 237, 238,
4737 0, 0, 239, 657, 594, 241, 595, 0, 242, 243,
4738 244, 658, 659, 245, 246, 247, 248, 249, 250, 251,
4739 252, 253, 254, 255, 256, 257, 258, 259, 260, 660,
4740 596, 661, 263, 264, 265, 266, 662, 267, 268, 597,
4741 269, 663, 664, 271, 665, 273, 274, 275, 0, 276,
4742 277, 0, 0, 666, 279, 280, 0, 0, 281, 282,
4743 598, 283, 599, 667, 285, 286, 287, 288, 289, 290,
4744 291, 292, 293, 0, 294, 295, 668, 297, 298, 299,
4745 458, 301, 302, 0, 303, 304, 305, 306, 307, 308,
4746 309, 310, 311, 669, 313, 314, 315, 316, 0, 317,
4747 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
4748 328, 0, 329, 330, 600, 331, 332, 333, 670, 335,
4749 336, 337, 338, 339, 340, 341, 342, 343, 0, 344,
4750 345, 346, 347, 348, 671, 349, 350, 351, 352, 353,
4751 601, 354, 355, 672, 357, 0, 358, 359, 360, 361,
4752 362, 363, 364, 365, 366, 367, 368, 369, 673, 0,
4753 371, 372, 0, 373, 602, 374, 375, 376, 377, 378,
4754 0, 674, 675, 0, 0, 381, 382, 676, 384, 677,
4755 678, 386, 387, 388, 389, 2517, 391, 392, 0, 0,
4756 393, 394, 395, 396, 397, 679, 0, 398, 399, 400,
4757 401, 402, 403, 680, 0, 405, 604, 406, 407, 408,
4758 409, 0, 0, 410, 0, 0, 411, 412, 413, 414,
4759 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
4760 425, 426, 427, 428, 429, 430, 681, 0, 0, 0,
4761 0, 0, 0, 682, 683, 0, 0, 0, 0, 0,
4762 0, 0, 685, 0, 0, 0, 0, 686, 622, 623,
4763 470, 624, 625, 626, 627, 628, 0, 0, 0, 0,
4764 0, 0, 0, 96, 97, 98, 99, 100, 101, 102,
4765 103, 0, 105, 106, 107, 0, 0, 0, 0, 0,
4766 0, 0, 108, 109, 0, 110, 111, 112, 581, 113,
4767 114, 115, 116, 629, 582, 630, 631, 0, 120, 121,
4768 122, 123, 124, 632, 633, 125, 126, 634, 635, 129,
4769 0, 130, 131, 132, 133, 636, 0, 637, 0, 135,
4770 136, 137, 138, 139, 584, 140, 141, 142, 0, 143,
4771 144, 145, 146, 147, 148, 0, 585, 149, 150, 2516,
4772 638, 639, 640, 641, 642, 643, 644, 152, 153, 154,
4773 155, 156, 157, 645, 646, 160, 647, 161, 0, 162,
4774 163, 164, 165, 166, 167, 0, 168, 169, 170, 171,
4775 172, 0, 0, 173, 174, 648, 176, 177, 0, 178,
4776 179, 180, 0, 181, 182, 183, 0, 184, 185, 186,
4777 187, 649, 189, 190, 191, 650, 651, 193, 0, 194,
4778 195, 652, 197, 0, 198, 0, 199, 587, 0, 588,
4779 200, 201, 202, 203, 0, 204, 653, 0, 206, 207,
4780 0, 208, 209, 210, 211, 212, 589, 213, 214, 215,
4781 216, 0, 217, 218, 219, 220, 221, 222, 0, 223,
4782 590, 224, 225, 226, 227, 228, 654, 655, 0, 656,
4783 0, 232, 591, 592, 233, 593, 234, 235, 236, 237,
4784 238, 0, 0, 239, 657, 594, 241, 595, 0, 242,
4785 243, 244, 658, 659, 245, 246, 247, 248, 249, 250,
4786 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
4787 660, 596, 661, 263, 264, 265, 266, 662, 267, 268,
4788 597, 269, 663, 664, 271, 665, 273, 274, 275, 0,
4789 276, 277, 0, 0, 666, 279, 280, 0, 0, 281,
4790 282, 598, 283, 599, 667, 285, 286, 287, 288, 289,
4791 290, 291, 292, 293, 0, 294, 295, 668, 297, 298,
4792 299, 458, 301, 302, 0, 303, 304, 305, 306, 307,
4793 308, 309, 310, 311, 669, 313, 314, 315, 316, 0,
4794 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
4795 327, 328, 0, 329, 330, 600, 331, 332, 333, 670,
4796 335, 336, 337, 338, 339, 340, 341, 342, 343, 0,
4797 344, 345, 346, 347, 348, 671, 349, 350, 351, 352,
4798 353, 601, 354, 355, 672, 357, 0, 358, 359, 360,
4799 361, 362, 363, 364, 365, 366, 367, 368, 369, 673,
4800 0, 371, 372, 0, 373, 602, 374, 375, 376, 377,
4801 378, 0, 674, 675, 0, 0, 381, 382, 676, 384,
4802 677, 678, 386, 387, 388, 389, 2517, 391, 392, 0,
4803 0, 393, 394, 395, 396, 397, 679, 0, 398, 399,
4804 400, 401, 402, 403, 680, 0, 405, 604, 406, 407,
4805 408, 409, 0, 0, 410, 0, 0, 411, 412, 413,
4806 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
4807 424, 425, 426, 427, 428, 429, 430, 681, 0, 0,
4808 0, 0, 0, 0, 682, 683, 0, 0, 0, 0,
4809 0, 0, 0, 685, 0, 0, 0, 0, 686, 622,
4810 623, 470, 624, 625, 626, 627, 628, 0, 0, 0,
4811 0, 0, 0, 0, 96, 97, 98, 99, 100, 101,
4812 102, 103, 0, 105, 106, 107, 0, 0, 0, 0,
4813 0, 0, 0, 108, 109, 0, 110, 111, 112, 581,
4814 113, 114, 115, 116, 629, 582, 630, 631, 0, 120,
4815 121, 122, 123, 124, 632, 633, 125, 126, 634, 635,
4816 129, 0, 130, 131, 132, 133, 636, 0, 637, 0,
4817 135, 136, 137, 138, 139, 584, 140, 141, 142, 0,
4818 143, 144, 145, 146, 147, 148, 0, 585, 149, 150,
4819 151, 638, 639, 640, 641, 642, 643, 644, 152, 153,
4820 154, 155, 156, 157, 645, 646, 160, 0, 161, 0,
4821 162, 163, 164, 165, 166, 167, 0, 168, 169, 170,
4822 171, 172, 0, 0, 173, 174, 648, 176, 177, 0,
4823 178, 179, 180, 0, 181, 182, 183, 0, 184, 185,
4824 186, 187, 649, 189, 190, 191, 650, 651, 193, 0,
4825 194, 195, 652, 197, 0, 198, 0, 199, 587, 0,
4826 588, 200, 201, 202, 203, 0, 204, 653, 0, 206,
4827 207, 0, 208, 209, 210, 211, 212, 589, 213, 214,
4828 215, 216, 0, 217, 218, 219, 220, 221, 222, 0,
4829 223, 590, 224, 225, 226, 227, 228, 654, 655, 0,
4830 656, 0, 232, 591, 592, 233, 593, 234, 235, 236,
4831 237, 238, 0, 0, 239, 657, 594, 241, 595, 0,
4832 242, 243, 244, 658, 659, 245, 246, 247, 248, 249,
4833 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
4834 260, 660, 596, 661, 263, 264, 265, 266, 0, 267,
4835 268, 597, 269, 663, 664, 271, 665, 273, 274, 275,
4836 0, 276, 277, 0, 0, 666, 279, 280, 0, 0,
4837 281, 282, 598, 283, 599, 667, 285, 286, 287, 288,
4838 289, 290, 291, 292, 293, 0, 294, 295, 668, 297,
4839 298, 299, 458, 301, 302, 0, 303, 304, 305, 306,
4840 307, 308, 309, 310, 311, 669, 313, 314, 315, 316,
4841 0, 317, 318, 319, 320, 321, 322, 323, 324, 325,
4842 326, 327, 328, 0, 329, 330, 600, 331, 332, 333,
4843 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
4844 0, 344, 345, 346, 347, 348, 671, 349, 350, 351,
4845 352, 353, 601, 354, 355, 672, 357, 0, 358, 359,
4846 360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
4847 673, 0, 371, 372, 0, 373, 602, 374, 375, 376,
4848 377, 378, 0, 674, 675, 0, 0, 381, 382, 676,
4849 384, 677, 678, 386, 387, 388, 389, 390, 391, 392,
4850 0, 0, 393, 394, 395, 396, 397, 679, 0, 398,
4851 399, 400, 401, 402, 403, 680, 0, 405, 604, 406,
4852 407, 408, 409, 0, 0, 410, 0, 0, 411, 412,
4853 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
4854 423, 424, 425, 426, 427, 428, 429, 430, 0, 0,
4855 0, 0, 0, 0, 0, 1341, 1342, 0, 0, 622,
4856 623, 470, 624, 625, 1343, 627, 628, 0, 0, 686,
4857 0, 0, 0, 0, 96, 97, 98, 99, 100, 101,
4858 102, 103, 0, 105, 106, 107, 0, 0, 0, 0,
4859 0, 0, 0, 108, 109, 0, 110, 111, 112, 581,
4860 113, 114, 115, 116, 629, 582, 630, 631, 0, 120,
4861 121, 122, 123, 124, 632, 633, 125, 126, 634, 635,
4862 129, 0, 130, 131, 132, 133, 636, 0, 637, 0,
4863 135, 136, 137, 138, 139, 584, 140, 141, 142, 0,
4864 143, 144, 145, 146, 147, 148, 0, 585, 149, 150,
4865 151, 638, 639, 640, 641, 642, 643, 644, 152, 153,
4866 154, 155, 156, 157, 645, 646, 160, 0, 161, 0,
4867 162, 163, 164, 165, 166, 167, 0, 168, 169, 170,
4868 171, 172, 0, 0, 173, 174, 648, 176, 177, 0,
4869 178, 179, 180, 0, 181, 182, 183, 0, 184, 185,
4870 186, 187, 649, 189, 190, 191, 650, 651, 193, 0,
4871 194, 195, 652, 197, 0, 198, 0, 199, 587, 0,
4872 588, 200, 201, 202, 203, 0, 204, 653, 0, 206,
4873 207, 0, 208, 209, 210, 211, 212, 589, 213, 214,
4874 215, 216, 0, 217, 218, 219, 220, 221, 222, 0,
4875 223, 590, 224, 225, 226, 227, 228, 654, 655, 0,
4876 656, 0, 232, 591, 592, 233, 593, 234, 235, 236,
4877 237, 238, 0, 0, 239, 657, 594, 241, 595, 0,
4878 242, 243, 244, 658, 659, 245, 246, 247, 248, 249,
4879 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
4880 260, 660, 596, 661, 263, 264, 265, 266, 0, 267,
4881 268, 597, 269, 663, 664, 271, 665, 273, 274, 275,
4882 0, 276, 277, 0, 0, 278, 279, 280, 0, 0,
4883 281, 282, 598, 283, 599, 667, 285, 286, 287, 288,
4884 289, 290, 291, 292, 293, 0, 294, 295, 668, 297,
4885 298, 299, 458, 301, 302, 0, 303, 304, 305, 306,
4886 307, 308, 309, 310, 311, 669, 313, 314, 315, 316,
4887 0, 317, 318, 319, 320, 321, 322, 323, 324, 325,
4888 326, 327, 328, 0, 329, 330, 600, 331, 332, 333,
4889 1472, 1473, 336, 337, 338, 339, 340, 341, 342, 343,
4890 0, 344, 345, 346, 347, 348, 671, 349, 350, 351,
4891 352, 353, 601, 354, 355, 672, 357, 0, 358, 359,
4892 360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
4893 673, 0, 371, 372, 0, 373, 602, 374, 375, 376,
4894 377, 378, 0, 674, 675, 0, 0, 381, 382, 676,
4895 384, 677, 678, 386, 387, 388, 389, 390, 391, 392,
4896 0, 0, 393, 394, 395, 396, 397, 679, 0, 398,
4897 399, 400, 401, 402, 403, 680, 0, 405, 604, 406,
4898 407, 408, 409, 0, 0, 410, 0, 0, 411, 412,
4899 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
4900 423, 424, 425, 426, 427, 428, 429, 430, 0, 0,
4901 0, 0, 0, 0, 0, 1474, 1475, 0, 0, 0,
4902 0, 0, 0, 0, 1343, 0, 0, 0, 0, 686,
4903 622, 623, 470, 624, 625, 626, 627, 628, 0, 0,
4904 0, 0, 0, 0, 0, 96, 97, 98, 99, 100,
4905 101, 102, 103, 0, 105, 106, 107, 0, 0, 0,
4906 0, 0, 0, 0, 108, 109, 0, 110, 111, 112,
4907 581, 113, 114, 115, 116, 629, 582, 630, 631, 0,
4908 120, 121, 122, 123, 124, 632, 633, 125, 126, 634,
4909 635, 129, 0, 130, 131, 132, 133, 636, 0, 637,
4910 0, 135, 136, 137, 138, 139, 584, 140, 141, 142,
4911 0, 143, 144, 145, 146, 147, 148, 0, 585, 149,
4912 150, 151, 638, 639, 640, 641, 642, 643, 644, 152,
4913 153, 154, 155, 156, 157, 645, 646, 160, 0, 161,
4914 0, 162, 163, 164, 165, 166, 167, 0, 168, 169,
4915 170, 171, 172, 0, 0, 173, 174, 648, 176, 177,
4916 0, 178, 179, 180, 0, 181, 182, 183, 0, 184,
4917 185, 186, 187, 649, 189, 190, 191, 650, 651, 193,
4918 0, 194, 195, 652, 197, 0, 198, 0, 199, 587,
4919 0, 588, 200, 201, 202, 203, 0, 204, 653, 0,
4920 206, 207, 0, 208, 209, 210, 211, 212, 589, 213,
4921 214, 215, 216, 0, 217, 218, 219, 220, 221, 222,
4922 0, 223, 590, 224, 225, 226, 227, 228, 654, 655,
4923 0, 656, 0, 232, 0, 592, 233, 593, 234, 235,
4924 236, 237, 238, 0, 0, 239, 657, 594, 241, 595,
4925 0, 242, 243, 244, 658, 659, 245, 246, 247, 248,
4926 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
4927 259, 260, 660, 596, 661, 263, 264, 265, 266, 0,
4928 267, 268, 597, 269, 663, 664, 271, 665, 273, 274,
4929 275, 0, 276, 277, 0, 0, 666, 279, 280, 0,
4930 0, 281, 282, 598, 283, 599, 667, 285, 286, 287,
4931 288, 289, 290, 291, 292, 293, 0, 294, 295, 668,
4932 297, 298, 299, 458, 301, 302, 0, 303, 304, 305,
4933 306, 307, 308, 309, 310, 311, 669, 313, 314, 315,
4934 316, 0, 317, 318, 319, 320, 321, 322, 323, 324,
4935 325, 326, 327, 328, 0, 329, 330, 600, 331, 332,
4936 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
4937 343, 0, 344, 345, 346, 347, 348, 671, 349, 350,
4938 351, 352, 353, 601, 354, 355, 672, 357, 0, 358,
4939 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
4940 369, 673, 0, 371, 372, 0, 373, 602, 374, 375,
4941 376, 377, 378, 0, 674, 675, 0, 0, 381, 382,
4942 676, 384, 677, 678, 386, 387, 388, 389, 390, 391,
4943 392, 0, 0, 393, 394, 395, 396, 397, 679, 0,
4944 398, 399, 400, 401, 402, 403, 680, 0, 405, 604,
4945 406, 407, 408, 409, 0, 0, 410, 0, 0, 411,
4946 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
4947 422, 423, 424, 425, 426, 427, 428, 429, 430, 0,
4948 0, 0, 0, 0, 0, 0, 1341, 1342, 0, 0,
4949 0, 0, 0, 0, 0, 1343, 0, 0, 0, 0,
4950 686, 622, 623, 470, 624, 625, 626, 627, 628, 0,
4951 0, 0, 0, 0, 0, 0, 96, 97, 98, 99,
4952 100, 101, 102, 103, 0, 105, 106, 107, 0, 0,
4953 0, 0, 0, 0, 0, 108, 109, 0, 110, 111,
4954 112, 581, 113, 114, 115, -1458, 629, 582, 630, 631,
4955 0, 120, 121, 122, 123, 124, 632, 633, 125, 126,
4956 634, 635, 129, 0, 130, 131, 132, 133, 636, 0,
4957 637, 0, 135, 136, 137, 138, 139, 584, 140, 141,
4958 142, 0, 143, 144, 145, 146, 147, 148, 0, 585,
4959 149, 150, 2516, 638, 639, 640, 641, 642, 643, 644,
4960 152, 153, 154, 155, 156, 157, 645, 646, 160, 647,
4961 161, 0, 162, 163, 164, 165, 166, 167, 0, 168,
4962 169, 170, 171, 172, 0, 0, 173, 174, 648, 176,
4963 177, 0, 178, 179, 180, 0, 181, 182, 183, 0,
4964 184, 185, 186, 187, 649, 189, 190, 191, 650, 651,
4965 193, 0, 194, 195, 652, 197, 0, 198, 0, 199,
4966 587, 0, 588, 200, 201, 202, 203, 0, 204, 653,
4967 0, 206, 207, 0, 208, 209, 210, 211, 212, -1458,
4968 213, 214, 215, 216, 0, 217, 218, 219, 220, 221,
4969 222, 0, 223, 590, 224, 225, 226, 227, 228, 654,
4970 655, 0, 656, 0, 232, 0, 0, 233, 593, 234,
4971 235, 236, 237, 238, 0, 0, 239, 657, 594, 241,
4972 -1458, 0, 242, 243, 244, 658, 659, 245, 246, 247,
4973 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
4974 258, 259, 260, 660, 596, 661, 263, 264, 265, 266,
4975 0, 267, 268, 0, 269, 663, 664, 271, 665, 273,
4976 274, 275, 0, 276, 277, 0, 0, 666, 279, 280,
4977 0, 0, 281, 282, 598, 283, 599, 667, 285, 286,
4978 287, 288, 289, 290, 291, 292, 293, 0, 294, 295,
4979 668, 297, 298, 299, 458, 301, 302, 0, 303, 304,
4980 305, 306, 307, 308, 309, 310, 311, 669, 313, 314,
4981 315, 316, 0, 317, 318, 319, 320, 321, 322, 323,
4982 324, 325, 326, 327, 328, 0, 329, 330, 600, 331,
4983 332, 333, 670, 335, 336, 337, 338, 339, 340, 341,
4984 342, 343, 0, 344, 345, 346, 347, 348, 671, 349,
4985 350, 351, 352, 353, -1458, 354, 355, 672, 357, 0,
4986 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
4987 368, 369, 673, 0, 371, 372, 0, 373, 602, 374,
4988 375, 376, 377, 378, 0, 674, 675, 0, 0, 381,
4989 382, 676, 384, 677, 678, 386, 387, 388, 389, 2517,
4990 391, 392, 0, 0, 393, 394, 395, 396, 397, 679,
4991 0, 398, 399, 400, 401, 402, 403, 680, 0, 405,
4992 604, 406, 407, 408, 409, 0, 0, 410, 0, 0,
4993 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
4994 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
4995 -1458, 0, 0, 0, 0, 0, 0, 682, 683, 0,
4996 0, 0, 0, 0, 0, 0, 685, 0, 0, 0,
4997 0, 686, 622, 623, 470, 624, 625, 626, 627, 628,
4998 0, 0, 0, 0, 0, 0, 0, 96, 97, 98,
4999 99, 100, 101, 102, 103, 0, 105, 106, 107, 0,
5000 0, 0, 0, 0, 0, 0, 108, 109, 0, 110,
5001 111, 112, 581, 113, 114, 115, 0, 629, 582, 630,
5002 631, 0, 120, 121, 122, 123, 124, 632, 633, 125,
5003 126, 634, 635, 129, 0, 130, 131, 132, 133, 636,
5004 0, 637, 0, 135, 136, 137, 138, 139, 584, 140,
5005 141, 142, 0, 143, 144, 145, 146, 147, 148, 0,
5006 585, 149, 150, 151, 638, 639, 640, 641, 642, 643,
5007 644, 152, 153, 154, 155, 156, 157, 645, 646, 160,
5008 647, 161, 0, 162, 163, 164, 165, 166, 167, 0,
5009 168, 169, 170, 171, 172, 0, 0, 173, 174, 648,
5010 176, 177, 0, 178, 179, 180, 0, 181, 0, 183,
5011 0, 184, 185, 186, 187, 649, 189, 190, 191, 650,
5012 651, 193, 0, 194, 195, 652, 197, 0, 198, 0,
5013 199, 587, 0, 588, 200, 201, 202, 203, 0, 204,
5014 653, 0, 206, 207, 0, 208, 209, 210, 211, 212,
5015 0, 213, 214, 215, 216, 0, 217, 218, 219, 220,
5016 221, 222, 0, 223, 590, 224, 225, 226, 227, 228,
5017 654, 655, 0, 656, 0, 232, 0, 0, 233, 593,
5018 234, 235, 236, 237, 238, 0, 0, 239, 657, 594,
5019 241, 0, 0, 242, 243, 244, 658, 659, 245, 246,
5020 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
5021 257, 258, 259, 260, 660, 596, 661, 263, 264, 265,
5022 266, 0, 267, 268, 0, 269, 663, 664, 271, 665,
5023 273, 274, 275, 0, 276, 277, 0, 0, 666, 279,
5024 280, 0, 0, 281, 282, 598, 283, 599, 667, 285,
5025 286, 287, 288, 289, 290, 291, 292, 293, 0, 294,
5026 295, 668, 297, 298, 299, 458, 301, 302, 0, 303,
5027 304, 305, 306, 307, 308, 309, 310, 311, 669, 313,
5028 314, 315, 316, 0, 317, 318, 319, 320, 321, 322,
5029 323, 324, 325, 326, 327, 328, 0, 329, 330, 600,
5030 331, 332, 333, 670, 335, 336, 337, 338, 339, 340,
5031 341, 342, 343, 0, 344, 345, 346, 347, 348, 671,
5032 349, 350, 351, 352, 353, 0, 354, 355, 672, 357,
5033 0, 358, 359, 360, 361, 362, 363, 364, 365, 366,
5034 367, 368, 369, 673, 0, 371, 372, 0, 373, 602,
5035 374, 375, 376, 377, 378, 0, 674, 675, 0, 0,
5036 381, 382, 676, 384, 677, 678, 386, 387, 388, 389,
5037 390, 391, 392, 0, 0, 393, 394, 395, 396, 397,
5038 679, 0, 398, 399, 400, 401, 402, 403, 680, 0,
5039 405, 604, 406, 407, 408, 409, 0, 0, 410, 0,
5040 0, 411, 412, 413, 414, 415, 416, 417, 418, 419,
5041 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
5042 430, 0, 0, 0, 0, 0, 0, 0, 682, 683,
5043 95, 0, 0, 0, 0, 0, 0, 685, 0, 0,
5044 0, 0, 686, 0, 0, 96, 97, 98, 99, 100,
5045 101, 102, 103, 0, 105, 106, 107, 0, 0, 0,
5046 0, 0, 1952, 0, 108, 109, 0, 110, 111, 112,
5047 0, 113, 114, 115, 116, 117, 0, 118, 119, 0,
5048 120, 121, 122, 123, 124, 0, 0, 125, 126, 127,
5049 128, 129, 0, 130, 131, 132, 133, 134, 0, 0,
5050 0, 135, 136, 137, 138, 139, 0, 140, 141, 142,
5051 0, 143, 144, 145, 146, 147, 148, 0, -550, 149,
5052 150, 151, 0, 0, 0, 0, 0, 0, 0, 152,
5053 153, 154, 155, 156, 157, 158, 159, 160, 0, 161,
5054 0, 162, 163, 164, 165, 166, 167, 0, 168, 169,
5055 170, 171, 172, 0, 0, 173, 174, 175, 176, 177,
5056 0, 178, 179, 180, 0, 181, 182, 183, 0, 184,
5057 185, 186, 187, 188, 189, 190, 191, 192, 0, 193,
5058 0, 194, 195, 196, 197, 0, 198, 0, 199, 0,
5059 0, -550, 200, 201, 202, 203, 0, 204, 205, 0,
5060 206, 207, 0, 208, 209, 210, 211, 212, 0, 213,
5061 214, 215, 216, 0, 217, 218, 219, 220, 221, 222,
5062 0, 223, -550, 224, 225, 226, 227, 228, 229, 230,
5063 0, 231, 0, 232, 0, 0, 233, -550, 234, 235,
5064 236, 237, 238, 0, 0, 239, 240, -550, 241, 0,
5065 0, 242, 243, 244, 0, 0, 245, 246, 247, 248,
5066 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
5067 259, 260, 261, -550, 262, 263, 264, 265, 266, 0,
5068 267, 268, 0, 269, 0, 270, 271, 272, 273, 274,
5069 275, 0, 276, 277, 0, 0, 278, 279, 280, 0,
5070 0, 281, 282, 0, 283, 0, 284, 285, 286, 287,
5071 288, 289, 290, 291, 292, 293, 0, 294, 295, 296,
5072 297, 298, 299, 458, 301, 302, 0, 303, 304, 305,
5073 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
5074 316, 0, 317, 318, 319, 320, 321, 322, 323, 324,
5075 325, 326, 327, 328, 0, 329, 330, -550, 331, 332,
5076 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
5077 343, 0, 344, 345, 346, 347, 348, 0, 349, 350,
5078 351, 352, 353, 0, 354, 355, 356, 357, 0, 358,
5079 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
5080 369, 370, 0, 371, 372, 0, 373, 0, 374, 375,
5081 376, 377, 378, 0, 379, 380, 0, 0, 381, 382,
5082 383, 384, 385, 0, 386, 387, 388, 389, 390, 391,
5083 392, 0, 0, 393, 394, 395, 396, 397, 0, 0,
5084 398, 399, 400, 401, 402, 403, 404, 0, 405, 0,
5085 406, 407, 408, 409, 0, 0, 410, 0, 0, 411,
5086 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
5087 422, 423, 424, 425, 426, 427, 428, 429, 430, 0,
5088 0, 0, 622, 0, 0, 0, 0, 0, 0, 0,
5089 0, 0, 0, 0, 0, 0, 749, 96, 97, 98,
5090 99, 100, 101, 102, 103, 0, 105, 106, 107, 0,
5091 0, 0, 0, 0, 0, 0, 108, 109, 0, 110,
5092 111, 112, 581, 113, 114, 115, 116, 117, 582, 118,
5093 119, 0, 120, 121, 122, 123, 124, 0, 633, 125,
5094 126, 127, 128, 129, 0, 130, 131, 132, 133, 636,
5095 0, 637, 0, 135, 136, 137, 138, 139, 584, 140,
5096 141, 142, 0, 143, 144, 145, 146, 147, 148, 0,
5097 585, 149, 150, 151, 638, 639, 640, 641, 642, 643,
5098 644, 152, 153, 154, 155, 156, 157, 158, 159, 160,
5099 0, 161, 0, 162, 163, 164, 165, 166, 167, 0,
5100 168, 169, 170, 171, 172, 0, 0, 173, 174, 175,
5101 176, 177, 0, 178, 179, 180, 0, 181, 182, 183,
5102 0, 184, 185, 186, 187, 188, 189, 190, 191, 650,
5103 0, 193, 0, 194, 195, 196, 197, 0, 198, 0,
5104 199, 587, 0, 588, 200, 201, 202, 203, 0, 204,
5105 653, 0, 206, 207, 0, 208, 209, 210, 211, 212,
5106 589, 213, 214, 215, 216, 0, 217, 218, 219, 220,
5107 221, 222, 0, 223, 590, 224, 225, 226, 227, 228,
5108 229, 230, 0, 231, 0, 232, 591, 592, 233, 593,
5109 234, 235, 236, 237, 238, 1716, 0, 239, 657, 594,
5110 241, 595, 0, 242, 243, 244, 658, 659, 245, 246,
5111 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
5112 257, 258, 259, 260, 261, 596, 262, 263, 264, 265,
5113 266, 0, 267, 268, 597, 269, 0, 664, 271, 272,
5114 273, 274, 275, 0, 276, 277, 0, 495, 278, 279,
5115 280, 0, 0, 281, 282, 598, 283, 599, 667, 285,
5116 286, 287, 288, 289, 290, 291, 292, 293, 0, 294,
5117 295, 668, 297, 298, 299, 458, 301, 302, 0, 303,
5118 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
5119 314, 315, 316, 0, 317, 318, 319, 320, 321, 322,
5120 323, 324, 325, 326, 327, 328, 0, 329, 330, 600,
5121 331, 332, 333, 334, 1717, 336, 337, 338, 339, 340,
5122 341, 342, 343, 21, 344, 345, 346, 347, 348, 671,
5123 349, 350, 351, 352, 353, 601, 354, 355, 356, 357,
5124 0, 358, 359, 360, 361, 362, 363, 364, 365, 366,
5125 367, 368, 369, 673, 0, 371, 372, 25, 373, 602,
5126 374, 375, 376, 377, 378, 0, 379, 380, 0, 0,
5127 381, 382, 676, 384, 677, 0, 386, 387, 388, 389,
5128 390, 391, 392, 0, 0, 393, 394, 395, 396, 397,
5129 679, 0, 398, 399, 400, 401, 402, 603, 404, 0,
5130 405, 604, 406, 407, 408, 409, 0, 0, 410, 0,
5131 28, 411, 412, 413, 414, 415, 416, 417, 418, 419,
5132 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
5133 430, 0, 0, 29, 622, 0, 0, 0, 0, 0,
5134 0, 0, 0, 0, 0, 0, 0, 1718, 0, 96,
5135 97, 98, 99, 100, 101, 102, 103, 0, 105, 106,
5136 107, 0, 0, 0, 0, 0, 0, 0, 108, 109,
5137 0, 110, 111, 112, 581, 113, 114, 115, 116, 117,
5138 582, 118, 119, 0, 120, 121, 122, 123, 124, 0,
5139 633, 125, 126, 127, 128, 129, 0, 130, 131, 132,
5140 133, 636, 0, 637, 0, 135, 136, 137, 138, 139,
5141 584, 140, 141, 142, 0, 143, 144, 145, 146, 147,
5142 148, 0, 585, 149, 150, 151, 638, 639, 640, 641,
5143 642, 643, 644, 152, 153, 154, 155, 156, 157, 158,
5144 159, 160, 0, 161, 0, 162, 163, 164, 165, 166,
5145 167, 0, 168, 169, 170, 171, 172, 0, 0, 173,
5146 174, 175, 176, 177, 0, 178, 179, 180, 0, 181,
5147 182, 183, 0, 184, 185, 186, 187, 188, 189, 190,
5148 191, 650, 0, 193, 0, 194, 195, 196, 197, 0,
5149 198, 0, 199, 587, 0, 588, 200, 201, 202, 203,
5150 0, 204, 653, 0, 206, 207, 0, 208, 209, 210,
5151 211, 212, 589, 213, 214, 215, 216, 0, 217, 218,
5152 219, 220, 221, 222, 0, 223, 590, 224, 225, 226,
5153 227, 228, 229, 230, 0, 231, 0, 232, 591, 592,
5154 233, 593, 234, 235, 236, 237, 238, 1716, 0, 239,
5155 657, 594, 241, 595, 0, 242, 243, 244, 658, 659,
5156 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
5157 255, 256, 257, 258, 259, 260, 261, 596, 262, 263,
5158 264, 265, 266, 0, 267, 268, 597, 269, 0, 664,
5159 271, 272, 273, 274, 275, 0, 276, 277, 0, 495,
5160 278, 279, 280, 0, 0, 281, 282, 598, 283, 599,
5161 667, 285, 286, 287, 288, 289, 290, 291, 292, 293,
5162 0, 294, 295, 668, 297, 298, 299, 458, 301, 302,
5163 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
5164 312, 313, 314, 315, 316, 0, 317, 318, 319, 320,
5165 321, 322, 323, 324, 325, 326, 327, 328, 0, 329,
5166 330, 600, 331, 332, 333, 334, 1717, 336, 337, 338,
5167 339, 340, 341, 342, 343, 0, 344, 345, 346, 347,
5168 348, 671, 349, 350, 351, 352, 353, 601, 354, 355,
5169 356, 357, 0, 358, 359, 360, 361, 362, 363, 364,
5170 365, 366, 367, 368, 369, 673, 0, 371, 372, 0,
5171 373, 602, 374, 375, 376, 377, 378, 0, 379, 380,
5172 0, 0, 381, 382, 676, 384, 677, 0, 386, 387,
5173 388, 389, 390, 391, 392, 0, 0, 393, 394, 395,
5174 396, 397, 679, 0, 398, 399, 400, 401, 402, 403,
5175 404, 0, 405, 604, 406, 407, 408, 409, 0, 0,
5176 410, 0, 0, 411, 412, 413, 414, 415, 416, 417,
5177 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
5178 428, 429, 430, 0, 0, 622, 0, 0, 0, 0,
5179 0, 0, 0, 0, 0, 0, 0, 0, 0, 1718,
5180 96, 97, 98, 99, 100, 101, 102, 103, 0, 105,
5181 106, 107, 0, 0, 0, 0, 0, 0, 0, 108,
5182 109, 0, 110, 111, 112, 581, 113, 114, 115, 116,
5183 117, 582, 118, 119, 0, 120, 121, 122, 123, 124,
5184 0, 633, 125, 126, 127, 128, 129, 0, 130, 131,
5185 132, 133, 636, 0, 637, 0, 135, 136, 137, 138,
5186 139, 584, 140, 141, 142, 0, 143, 144, 145, 146,
5187 147, 148, 0, 585, 149, 150, 151, 638, 639, 640,
5188 641, 642, 643, 644, 152, 153, 154, 155, 156, 157,
5189 158, 159, 160, 0, 161, 0, 162, 163, 164, 165,
5190 166, 167, 0, 168, 169, 170, 171, 172, 0, 0,
5191 173, 174, 175, 176, 177, 0, 178, 179, 180, 0,
5192 181, 182, 183, 0, 184, 185, 186, 187, 188, 189,
5193 190, 191, 650, 0, 193, 0, 194, 195, 196, 197,
5194 0, 198, 0, 199, 587, 0, 588, 200, 201, 202,
5195 203, 0, 204, 653, 0, 206, 207, 0, 208, 209,
5196 210, 211, 212, 589, 213, 214, 215, 216, 0, 217,
5197 218, 219, 220, 221, 222, 0, 223, 590, 224, 225,
5198 226, 227, 228, 229, 230, 0, 231, 0, 232, 591,
5199 592, 233, 593, 234, 235, 236, 237, 238, 0, 0,
5200 239, 657, 594, 241, 595, 0, 242, 243, 244, 658,
5201 659, 245, 246, 247, 248, 249, 250, 251, 252, 253,
5202 254, 255, 256, 257, 258, 259, 260, 261, 596, 262,
5203 263, 264, 265, 266, 0, 267, 268, 597, 269, 0,
5204 664, 271, 272, 273, 274, 275, 0, 276, 277, 0,
5205 0, 278, 279, 280, 0, 0, 281, 282, 598, 283,
5206 599, 667, 285, 286, 287, 288, 289, 290, 291, 292,
5207 293, 0, 294, 295, 668, 297, 298, 299, 458, 301,
5208 302, 0, 303, 304, 305, 306, 307, 308, 309, 310,
5209 311, 312, 313, 314, 315, 316, 0, 317, 318, 319,
5210 320, 321, 322, 323, 324, 325, 326, 327, 328, 0,
5211 329, 330, 600, 331, 332, 333, 334, 1717, 336, 337,
5212 338, 339, 340, 341, 342, 343, 0, 344, 345, 346,
5213 347, 348, 671, 349, 350, 351, 352, 353, 601, 354,
5214 355, 356, 357, 0, 358, 359, 360, 361, 362, 363,
5215 364, 365, 366, 367, 368, 369, 673, 0, 371, 372,
5216 0, 373, 602, 374, 375, 376, 377, 378, 0, 379,
5217 380, 0, 0, 381, 382, 676, 384, 677, 0, 386,
5218 387, 388, 389, 390, 391, 392, 0, 0, 393, 394,
5219 395, 396, 397, 679, 0, 398, 399, 400, 401, 402,
5220 403, 404, 0, 405, 604, 406, 407, 408, 409, 0,
5221 0, 410, 0, 0, 411, 412, 413, 414, 415, 416,
5222 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
5223 427, 428, 429, 430, 0, 0, 622, 0, 0, 0,
5224 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5225 30, 96, 97, 98, 99, 100, 101, 102, 103, 0,
5226 105, 106, 107, 0, 0, 0, 0, 0, 0, 0,
5227 108, 109, 0, 110, 111, 112, 581, 113, 114, 115,
5228 116, 117, 582, 118, 119, 0, 120, 121, 122, 123,
5229 124, 0, 633, 125, 126, 127, 128, 129, 0, 130,
5230 131, 132, 133, 636, 0, 637, 0, 135, 136, 137,
5231 138, 139, 584, 140, 141, 142, 0, 143, 144, 145,
5232 146, 147, 148, 0, 585, 149, 150, 151, 638, 639,
5233 640, 641, 642, 643, 644, 152, 153, 154, 155, 156,
5234 157, 158, 159, 160, 0, 161, 0, 162, 163, 164,
5235 165, 166, 167, 0, 168, 169, 170, 171, 172, 0,
5236 0, 173, 174, 175, 176, 177, 0, 178, 179, 180,
5237 0, 181, 182, 183, 0, 184, 185, 186, 187, 188,
5238 189, 190, 191, 650, 0, 193, 0, 194, 195, 196,
5239 197, 0, 198, 0, 199, 587, 0, 588, 200, 201,
5240 202, 203, 0, 204, 653, 0, 206, 207, 0, 208,
5241 209, 210, 211, 212, 589, 213, 214, 215, 216, 0,
5242 217, 218, 219, 220, 221, 222, 0, 223, 590, 224,
5243 225, 226, 227, 228, 229, 230, 0, 231, 0, 232,
5244 591, 592, 233, 593, 234, 235, 236, 237, 238, 0,
5245 0, 239, 657, 594, 241, 595, 0, 242, 243, 244,
5246 658, 659, 245, 246, 247, 248, 249, 250, 251, 252,
5247 253, 254, 255, 256, 257, 258, 259, 260, 261, 596,
5248 262, 263, 264, 265, 266, 0, 267, 268, 597, 269,
5249 0, 664, 271, 272, 273, 274, 275, 0, 276, 277,
5250 0, 0, 278, 279, 280, 0, 0, 281, 282, 598,
5251 283, 599, 667, 285, 286, 287, 288, 289, 290, 291,
5252 292, 293, 0, 294, 295, 668, 297, 298, 299, 458,
5253 301, 302, 0, 303, 304, 305, 306, 307, 308, 309,
5254 310, 311, 312, 313, 314, 315, 316, 0, 317, 318,
5255 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
5256 0, 329, 330, 600, 331, 332, 333, 334, 335, 336,
5257 337, 338, 339, 340, 341, 342, 343, 0, 344, 345,
5258 346, 347, 348, 671, 349, 350, 351, 352, 353, 601,
5259 354, 355, 356, 357, 0, 358, 359, 360, 361, 362,
5260 363, 364, 365, 366, 367, 368, 369, 673, 0, 371,
5261 372, 0, 373, 602, 374, 375, 376, 377, 378, 0,
5262 379, 380, 0, 0, 381, 382, 676, 384, 677, 0,
5263 386, 387, 388, 389, 390, 391, 392, 0, 0, 393,
5264 394, 395, 396, 397, 679, 0, 398, 399, 400, 401,
5265 402, 403, 404, 0, 405, 604, 406, 407, 408, 409,
5266 0, 0, 410, 0, 0, 411, 412, 413, 414, 415,
5267 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
5268 426, 427, 428, 429, 430, 0, 0, 580, 853, 470,
5269 0, 0, 0, 627, 0, 0, 0, 0, 0, 0,
5270 0, 2293, 96, 97, 98, 99, 100, 101, 102, 103,
5271 0, 105, 106, 107, 0, 0, 0, 0, 0, 0,
5272 0, 108, 109, 0, 110, 111, 112, 581, 113, 114,
5273 115, 116, 117, 582, 118, 119, 0, 120, 121, 122,
5274 123, 124, 0, 0, 125, 126, 127, 128, 129, 0,
5275 130, 131, 132, 133, 134, 0, 583, 0, 135, 136,
5276 137, 138, 139, 584, 140, 141, 142, 0, 143, 144,
5277 145, 146, 147, 148, 0, 585, 149, 150, 151, 0,
5278 0, 0, 586, 0, 0, 0, 152, 153, 154, 155,
5279 156, 157, 158, 159, 160, 0, 161, 0, 162, 163,
5280 164, 165, 166, 167, 0, 168, 169, 170, 171, 172,
5281 0, 0, 173, 174, 175, 176, 177, 0, 178, 179,
5282 180, 0, 181, 182, 183, 0, 184, 185, 186, 187,
5283 188, 189, 190, 191, 192, 854, 193, 0, 194, 195,
5284 196, 197, 0, 198, 0, 199, 587, 0, 588, 200,
5285 201, 202, 203, 0, 204, 205, 0, 206, 207, 0,
5286 208, 209, 210, 211, 212, 589, 213, 214, 215, 216,
5287 0, 217, 218, 219, 220, 221, 222, 0, 223, 590,
5288 224, 225, 226, 227, 228, 229, 230, 0, 231, 0,
5289 232, 591, 592, 233, 593, 234, 235, 236, 237, 238,
5290 0, 0, 239, 240, 594, 241, 595, 0, 242, 243,
5291 244, 0, 0, 245, 246, 247, 248, 249, 250, 251,
5292 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
5293 596, 262, 263, 264, 265, 266, 0, 267, 268, 597,
5294 269, 0, 270, 271, 272, 273, 274, 275, 0, 276,
5295 277, 855, 0, 278, 279, 280, 0, 0, 281, 282,
5296 598, 283, 599, 284, 285, 286, 287, 288, 289, 290,
5297 291, 292, 293, 0, 294, 295, 296, 297, 298, 299,
5298 458, 301, 302, 0, 303, 304, 305, 306, 307, 308,
5299 309, 310, 311, 312, 313, 314, 315, 316, 0, 317,
5300 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
5301 328, 0, 329, 330, 600, 331, 332, 333, 334, 335,
5302 336, 337, 338, 339, 340, 341, 342, 343, 0, 344,
5303 345, 346, 347, 348, 0, 349, 350, 351, 352, 353,
5304 601, 354, 355, 356, 357, 0, 358, 359, 360, 361,
5305 362, 363, 364, 365, 366, 367, 368, 369, 370, 0,
5306 371, 372, 0, 373, 602, 374, 375, 376, 377, 378,
5307 0, 379, 380, 0, 0, 381, 382, 383, 384, 385,
5308 856, 386, 387, 388, 389, 390, 391, 392, 0, 0,
5309 393, 394, 395, 396, 397, 0, 0, 398, 399, 400,
5310 401, 402, 403, 404, 0, 405, 604, 406, 407, 408,
5311 409, 0, 0, 410, 0, 0, 411, 412, 413, 414,
5312 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
5313 425, 426, 427, 428, 429, 430, 0, 0, 580, 0,
5314 0, 0, 0, 857, 858, 2429, 0, 0, 0, 0,
5315 0, 0, 2430, 96, 97, 98, 99, 100, 101, 102,
5316 103, 0, 105, 106, 107, 3, 4, 0, 0, 0,
5317 0, 0, 108, 109, 0, 110, 111, 112, 581, 113,
5318 114, 115, 116, 117, 582, 118, 119, 0, 120, 121,
5319 122, 123, 124, 0, 0, 125, 126, 127, 128, 129,
5320 0, 130, 131, 132, 133, 134, 0, 583, 0, 135,
5321 136, 137, 138, 139, 584, 140, 141, 142, 0, 143,
5322 144, 145, 146, 147, 148, 0, 585, 149, 150, 151,
5323 0, 0, 0, 586, 0, 0, 0, 152, 153, 154,
5324 155, 156, 157, 158, 159, 160, 0, 161, 0, 162,
5325 163, 164, 165, 166, 167, 0, 168, 169, 170, 171,
5326 172, 0, 0, 173, 174, 175, 176, 177, 0, 178,
5327 179, 180, 0, 181, 182, 183, 0, 184, 185, 186,
5328 187, 188, 189, 190, 191, 192, 0, 193, 0, 194,
5329 195, 196, 197, 0, 198, 0, 199, 587, 0, 588,
5330 200, 201, 202, 203, 0, 204, 205, 0, 206, 207,
5331 0, 208, 209, 210, 211, 212, 589, 213, 214, 215,
5332 216, 0, 217, 218, 219, 220, 221, 222, 0, 223,
5333 590, 224, 225, 226, 227, 228, 229, 230, 0, 231,
5334 0, 232, 591, 592, 233, 593, 234, 235, 236, 237,
5335 238, 0, 0, 239, 240, 594, 241, 595, 0, 242,
5336 243, 244, 0, 0, 245, 246, 247, 248, 249, 250,
5337 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
5338 261, 596, 262, 263, 264, 265, 266, 0, 267, 268,
5339 597, 269, 0, 270, 271, 272, 273, 274, 275, 0,
5340 276, 277, 0, 0, 278, 279, 280, 0, 0, 281,
5341 282, 598, 283, 599, 284, 285, 286, 287, 288, 289,
5342 290, 291, 292, 293, 0, 294, 295, 296, 297, 298,
5343 299, 458, 301, 302, 0, 303, 304, 305, 306, 307,
5344 308, 309, 310, 311, 312, 313, 314, 315, 316, 0,
5345 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
5346 327, 328, 0, 329, 330, 600, 331, 332, 333, 334,
5347 335, 336, 337, 338, 339, 340, 341, 342, 343, 21,
5348 344, 345, 346, 347, 348, 0, 349, 350, 351, 352,
5349 353, 601, 354, 355, 356, 357, 0, 358, 359, 360,
5350 361, 362, 363, 364, 365, 366, 367, 368, 369, 370,
5351 0, 371, 372, 25, 373, 602, 374, 375, 376, 377,
5352 378, 0, 379, 380, 0, 0, 381, 382, 383, 384,
5353 385, 0, 386, 387, 388, 389, 390, 391, 392, 0,
5354 0, 393, 394, 395, 396, 397, 0, 0, 398, 399,
5355 400, 401, 402, 603, 404, 0, 405, 604, 406, 407,
5356 408, 409, 0, 0, 410, 0, 28, 411, 412, 413,
5357 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
5358 424, 425, 426, 427, 428, 429, 430, 0, 0, 29,
5359 95, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5360 0, 0, 0, 30, 0, 96, 97, 98, 99, 100,
5361 101, 102, 103, 0, 105, 106, 107, 0, 0, 0,
5362 0, 0, 0, 0, 108, 109, 0, 110, 111, 112,
5363 0, 113, 114, 115, 116, 117, 0, 118, 119, 0,
5364 120, 121, 122, 123, 124, 0, 0, 125, 126, 127,
5365 128, 129, 0, 130, 131, 132, 133, 134, 0, 0,
5366 0, 135, 136, 137, 138, 139, 0, 140, 141, 142,
5367 0, 143, 144, 145, 146, 147, 148, 0, 0, 149,
5368 150, 151, 0, 0, 0, 0, 0, 0, 0, 152,
5369 153, 154, 155, 156, 157, 158, 159, 160, 0, 161,
5370 0, 162, 163, 164, 165, 166, 167, 0, 168, 169,
5371 170, 171, 172, 0, 0, 173, 174, 175, 176, 177,
5372 0, 178, 179, 180, 0, 181, 182, 183, 0, 184,
5373 185, 186, 187, 188, 189, 190, 191, 192, 0, 193,
5374 0, 194, 195, 196, 197, 0, 198, 0, 199, 0,
5375 0, 0, 200, 201, 202, 203, 0, 204, 205, 0,
5376 206, 207, 0, 208, 209, 210, 211, 212, 0, 213,
5377 214, 215, 216, 0, 217, 218, 219, 220, 221, 222,
5378 0, 223, 0, 224, 225, 226, 227, 228, 229, 230,
5379 0, 231, 0, 232, 0, 0, 233, 0, 234, 235,
5380 236, 237, 238, 0, 0, 239, 240, 0, 241, 0,
5381 0, 242, 243, 244, 0, 0, 245, 246, 247, 248,
5382 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
5383 259, 260, 261, 0, 262, 263, 264, 265, 266, 0,
5384 267, 268, 0, 269, 0, 270, 271, 272, 273, 274,
5385 275, 0, 276, 277, 0, 0, 278, 279, 280, 0,
5386 0, 281, 282, 0, 283, 0, 284, 285, 286, 287,
5387 288, 289, 290, 291, 292, 293, 0, 294, 295, 296,
5388 297, 298, 299, 458, 301, 302, 0, 303, 304, 305,
5389 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
5390 316, 0, 317, 318, 319, 320, 321, 322, 323, 324,
5391 325, 326, 327, 328, 0, 329, 330, 0, 331, 332,
5392 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
5393 343, 21, 344, 345, 346, 347, 348, 0, 349, 350,
5394 351, 352, 353, 0, 354, 355, 356, 357, 0, 358,
5395 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
5396 369, 370, 0, 371, 372, 25, 373, 0, 374, 375,
5397 376, 377, 378, 0, 379, 380, 0, 0, 381, 382,
5398 383, 384, 385, 0, 386, 387, 388, 389, 390, 391,
5399 392, 0, 0, 393, 394, 395, 396, 397, 0, 0,
5400 398, 399, 400, 401, 402, 603, 404, 0, 405, 0,
5401 406, 407, 408, 409, 0, 0, 410, 0, 28, 411,
5402 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
5403 422, 423, 424, 425, 426, 427, 428, 429, 430, 0,
5404 0, 29, 95, 0, 0, 0, 0, 0, 0, 0,
5405 0, 0, 0, 0, 0, 30, 0, 96, 97, 98,
5406 99, 100, 101, 102, 103, 0, 105, 106, 107, 0,
5407 0, 0, 0, 0, 0, 0, 108, 109, 0, 110,
5408 111, 112, 0, 113, 114, 115, 116, 117, 0, 118,
5409 119, 0, 120, 121, 122, 123, 124, 0, 0, 125,
5410 126, 127, 128, 129, 0, 130, 131, 132, 133, 134,
5411 0, 0, 0, 135, 136, 137, 138, 139, 0, 140,
5412 141, 142, 0, 143, 144, 145, 146, 147, 148, 0,
5413 0, 149, 150, 151, 0, 0, 0, 0, 0, 0,
5414 0, 152, 153, 154, 155, 156, 157, 158, 159, 160,
5415 0, 161, 0, 162, 163, 164, 165, 166, 167, 0,
5416 168, 169, 170, 171, 172, 0, 0, 173, 174, 175,
5417 176, 177, 0, 178, 179, 180, 0, 181, 182, 183,
5418 0, 184, 185, 186, 187, 188, 189, 190, 191, 192,
5419 0, 193, 0, 194, 195, 196, 197, 0, 198, 0,
5420 199, 0, 0, 0, 200, 201, 202, 203, 0, 204,
5421 205, 0, 206, 207, 0, 208, 209, 210, 211, 212,
5422 0, 213, 214, 215, 216, 0, 217, 218, 219, 220,
5423 221, 222, 0, 223, 0, 224, 225, 226, 227, 228,
5424 229, 230, 0, 231, 0, 232, 0, 0, 233, 0,
5425 234, 235, 236, 237, 238, 0, 0, 239, 240, 0,
5426 241, 0, 0, 242, 243, 244, 0, 0, 245, 246,
5427 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
5428 257, 258, 259, 260, 261, 0, 262, 263, 264, 265,
5429 266, 0, 267, 268, 0, 269, 0, 270, 271, 272,
5430 273, 274, 275, 0, 276, 277, 0, 0, 278, 279,
5431 280, 0, 0, 281, 282, 0, 283, 0, 284, 285,
5432 286, 287, 288, 289, 290, 291, 292, 293, 0, 294,
5433 295, 296, 297, 298, 299, 458, 301, 302, 0, 303,
5434 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
5435 314, 315, 316, 0, 317, 318, 319, 320, 321, 322,
5436 323, 324, 325, 326, 327, 328, 0, 329, 330, 0,
5437 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
5438 341, 342, 343, 0, 344, 345, 346, 347, 348, 0,
5439 349, 350, 351, 352, 353, 0, 354, 355, 356, 357,
5440 0, 358, 359, 360, 361, 362, 363, 364, 365, 366,
5441 367, 368, 369, 370, 0, 371, 372, 0, 373, 0,
5442 374, 375, 376, 377, 378, 0, 379, 380, 0, 0,
5443 381, 382, 383, 384, 385, 0, 386, 387, 388, 389,
5444 390, 391, 392, 0, 0, 393, 394, 395, 396, 397,
5445 0, 0, 398, 399, 400, 401, 402, 403, 404, 0,
5446 405, 0, 406, 407, 408, 409, 0, 0, 410, 0,
5447 0, 411, 412, 413, 414, 415, 416, 417, 418, 419,
5448 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
5449 430, 0, 0, 95, 0, 0, 0, 0, 0, 0,
5450 0, 0, 0, 0, 0, 0, 0, 727, 96, 97,
5451 98, 99, 100, 101, 102, 103, 0, 105, 106, 107,
5452 0, 0, 0, 0, 0, 0, 0, 108, 109, 0,
5453 110, 111, 112, 0, 113, 114, 115, 116, 117, 0,
5454 118, 119, 0, 120, 121, 122, 123, 124, 0, 0,
5455 125, 126, 127, 128, 129, 0, 130, 131, 132, 133,
5456 134, 0, 0, 0, 135, 136, 137, 138, 139, 0,
5457 140, 141, 142, 0, 143, 144, 145, 146, 147, 148,
5458 0, 0, 149, 150, 151, 0, 0, 0, 0, 0,
5459 0, 0, 152, 153, 154, 155, 156, 157, 158, 159,
5460 160, 0, 161, 0, 162, 163, 164, 165, 166, 167,
5461 0, 168, 169, 170, 171, 172, 0, 0, 173, 174,
5462 175, 176, 177, 0, 178, 179, 180, 0, 181, 182,
5463 183, 0, 184, 185, 186, 187, 188, 189, 190, 191,
5464 192, 0, 193, 0, 194, 195, 196, 197, 0, 198,
5465 0, 199, 0, 0, 0, 200, 201, 202, 203, 0,
5466 204, 205, 0, 206, 207, 0, 208, 209, 210, 211,
5467 212, 0, 213, 214, 215, 216, 0, 217, 218, 219,
5468 220, 221, 222, 0, 223, 0, 224, 225, 226, 227,
5469 228, 229, 230, 0, 231, 0, 232, 0, 0, 233,
5470 0, 234, 235, 236, 237, 238, 0, 0, 239, 240,
5471 0, 241, 0, 0, 242, 243, 244, 0, 0, 245,
5472 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
5473 256, 257, 258, 259, 260, 261, 0, 262, 263, 264,
5474 265, 266, 0, 267, 268, 0, 269, 0, 270, 271,
5475 272, 273, 274, 275, 0, 276, 277, 0, 0, 278,
5476 279, 280, 0, 0, 281, 282, 0, 283, 0, 284,
5477 285, 286, 287, 288, 289, 290, 291, 292, 293, 0,
5478 294, 295, 296, 297, 298, 299, 458, 301, 302, 0,
5479 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
5480 313, 314, 315, 316, 0, 317, 318, 319, 320, 321,
5481 322, 323, 324, 325, 326, 327, 328, 0, 329, 330,
5482 0, 331, 332, 333, 334, 335, 336, 337, 338, 339,
5483 340, 341, 342, 343, 0, 344, 345, 346, 347, 348,
5484 0, 349, 350, 351, 352, 353, 0, 354, 355, 356,
5485 357, 0, 358, 359, 360, 361, 362, 363, 364, 365,
5486 366, 367, 368, 369, 370, 0, 371, 372, 0, 373,
5487 0, 374, 375, 376, 377, 378, 0, 379, 380, 0,
5488 0, 381, 382, 383, 384, 385, 0, 386, 387, 388,
5489 389, 390, 391, 392, 0, 0, 393, 394, 395, 396,
5490 397, 0, 0, 398, 399, 400, 401, 402, 403, 404,
5491 0, 405, 0, 406, 407, 408, 409, 0, 0, 410,
5492 0, 0, 411, 412, 413, 414, 415, 416, 417, 418,
5493 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
5494 429, 430, 0, 0, 95, 0, 0, 0, 0, 0,
5495 0, 0, 0, 0, 0, 0, 0, 0, 1462, 96,
5496 97, 98, 99, 100, 101, 102, 103, 0, 105, 106,
5497 107, 0, 0, 0, 0, 0, 0, 0, 108, 109,
5498 0, 110, 111, 112, 0, 113, 114, 115, 116, 117,
5499 0, 118, 119, 0, 120, 121, 122, 123, 124, 0,
5500 0, 125, 126, 127, 128, 129, 0, 130, 131, 132,
5501 133, 134, 0, 0, 0, 135, 136, 137, 138, 139,
5502 0, 140, 141, 142, 0, 143, 144, 145, 146, 147,
5503 148, 0, 0, 149, 150, 151, 0, 0, 0, 0,
5504 0, 0, 0, 152, 153, 154, 155, 156, 157, 158,
5505 159, 160, 0, 161, 0, 162, 163, 164, 165, 166,
5506 167, 0, 168, 169, 170, 171, 172, 0, 0, 173,
5507 174, 175, 176, 177, 0, 178, 179, 180, 0, 181,
5508 182, 183, 0, 184, 185, 186, 187, 188, 189, 190,
5509 191, 192, 0, 193, 0, 194, 195, 196, 197, 0,
5510 198, 0, 199, 0, 0, 0, 200, 201, 202, 203,
5511 0, 204, 205, 0, 206, 207, 0, 208, 209, 210,
5512 211, 212, 0, 213, 214, 215, 216, 0, 217, 218,
5513 219, 220, 221, 222, 0, 223, 0, 224, 225, 226,
5514 227, 228, 229, 230, 0, 231, 0, 232, 0, 0,
5515 233, 0, 234, 235, 236, 237, 238, 0, 0, 239,
5516 240, 0, 241, 0, 0, 242, 243, 244, 0, 0,
5517 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
5518 255, 256, 257, 258, 259, 260, 261, 0, 262, 263,
5519 264, 265, 266, 0, 267, 268, 0, 269, 0, 270,
5520 271, 272, 273, 274, 275, 0, 276, 277, 0, 0,
5521 278, 279, 280, 0, 0, 281, 282, 0, 283, 0,
5522 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
5523 0, 294, 295, 296, 297, 298, 299, 458, 301, 302,
5524 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
5525 312, 313, 314, 315, 316, 0, 317, 318, 319, 320,
5526 321, 322, 323, 324, 325, 326, 327, 328, 0, 329,
5527 330, 0, 331, 332, 333, 334, 335, 336, 337, 338,
5528 339, 340, 341, 342, 343, 0, 344, 345, 346, 347,
5529 348, 0, 349, 350, 351, 352, 353, 0, 354, 355,
5530 356, 357, 0, 358, 359, 360, 361, 362, 363, 364,
5531 365, 366, 367, 368, 369, 370, 0, 371, 372, 0,
5532 373, 0, 374, 375, 376, 377, 378, 0, 379, 380,
5533 0, 0, 381, 382, 383, 384, 385, 0, 386, 387,
5534 388, 389, 390, 391, 392, 0, 0, 393, 394, 395,
5535 396, 397, 0, 0, 398, 399, 400, 401, 402, 403,
5536 404, 0, 405, 0, 406, 407, 408, 409, 0, 0,
5537 410, 0, 0, 411, 412, 413, 414, 415, 416, 417,
5538 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
5539 428, 429, 430, 0, 0, 95, 0, 0, 0, 0,
5540 0, 0, 0, 0, 0, 0, 0, 0, 0, 1935,
5541 96, 97, 98, 99, 100, 101, 102, 103, 0, 105,
5542 106, 107, 0, 0, 0, 0, 0, 0, 0, 108,
5543 109, 0, 110, 111, 112, 0, 113, 114, 115, 116,
5544 117, 0, 118, 119, 0, 120, 121, 122, 123, 124,
5545 0, 0, 125, 126, 127, 128, 129, 0, 130, 131,
5546 132, 133, 134, 0, 0, 0, 135, 136, 137, 138,
5547 139, 0, 140, 141, 142, 0, 143, 144, 145, 146,
5548 147, 148, 0, 0, 149, 150, 151, 0, 0, 0,
5549 0, 0, 0, 0, 152, 153, 154, 155, 156, 157,
5550 158, 159, 160, 0, 161, 0, 162, 163, 164, 165,
5551 166, 167, 0, 168, 169, 170, 171, 172, 0, 0,
5552 173, 174, 175, 176, 177, 0, 178, 179, 180, 0,
5553 181, 182, 183, 0, 184, 185, 186, 187, 188, 189,
5554 190, 191, 192, 0, 193, 0, 194, 195, 196, 197,
5555 0, 198, 0, 199, 0, 0, 0, 200, 201, 202,
5556 203, 0, 204, 205, 0, 206, 207, 0, 208, 209,
5557 210, 211, 212, 0, 213, 214, 215, 216, 0, 217,
5558 218, 219, 220, 221, 222, 0, 223, 0, 224, 225,
5559 226, 227, 228, 229, 230, 0, 231, 0, 232, 0,
5560 0, 233, 0, 234, 235, 236, 237, 238, 0, 0,
5561 239, 240, 0, 241, 0, 0, 242, 243, 244, 0,
5562 0, 245, 246, 247, 248, 249, 250, 251, 252, 253,
5563 254, 255, 256, 257, 258, 259, 260, 261, 0, 262,
5564 263, 264, 265, 266, 0, 267, 268, 0, 269, 0,
5565 270, 271, 272, 273, 274, 275, 0, 276, 277, 0,
5566 0, 278, 279, 280, 0, 0, 281, 282, 0, 283,
5567 0, 284, 285, 286, 287, 288, 289, 290, 291, 292,
5568 293, 0, 294, 295, 296, 297, 298, 299, 458, 301,
5569 302, 0, 303, 304, 305, 306, 307, 308, 309, 310,
5570 311, 312, 313, 314, 315, 316, 0, 317, 318, 319,
5571 320, 321, 322, 323, 324, 325, 326, 327, 328, 0,
5572 329, 330, 0, 331, 332, 333, 334, 335, 336, 337,
5573 338, 339, 340, 341, 342, 343, 0, 344, 345, 346,
5574 347, 348, 0, 349, 350, 351, 352, 353, 0, 354,
5575 355, 356, 357, 0, 358, 359, 360, 361, 362, 363,
5576 364, 365, 366, 367, 368, 369, 370, 0, 371, 372,
5577 0, 373, 0, 374, 375, 376, 377, 378, 0, 379,
5578 380, 0, 0, 381, 382, 383, 384, 385, 0, 386,
5579 387, 388, 389, 390, 391, 392, 0, 0, 393, 394,
5580 395, 396, 397, 0, 0, 398, 399, 400, 401, 402,
5581 403, 404, 0, 405, 0, 406, 407, 408, 409, 0,
5582 0, 410, 0, 0, 411, 412, 413, 414, 415, 416,
5583 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
5584 427, 428, 429, 430, 0, 0, 0, 0, 0, 877,
5585 853, 470, 0, 0, 1323, 627, 0, 0, 0, 0,
5586 2143, 1324, 1325, 1326, 96, 97, 98, 99, 100, 101,
5587 102, 103, 1034, 105, 106, 107, 1035, 1036, 1037, 1038,
5588 1039, 1040, 1041, 108, 109, 1042, 110, 111, 112, 581,
5589 113, 114, 115, 0, 878, 582, 879, 880, 1043, 120,
5590 121, 122, 123, 124, 1044, 1045, 125, 126, 881, 882,
5591 129, 1046, 130, 131, 132, 133, 0, 1047, 583, 1048,
5592 135, 136, 137, 138, 139, 584, 140, 141, 142, 1049,
5593 143, 144, 145, 146, 147, 148, 1050, 585, 149, 150,
5594 151, 1051, 1052, 1053, 586, 1054, 1055, 1056, 152, 153,
5595 154, 155, 156, 157, 883, 884, 160, 1057, 161, 1058,
5596 162, 163, 164, 165, 166, 167, 1059, 168, 169, 170,
5597 171, 172, 1060, 1061, 173, 174, 648, 176, 177, 1062,
5598 178, 179, 180, 1063, 181, 182, 183, 1064, 184, 185,
5599 186, 187, 0, 189, 190, 191, 0, 1065, 193, 1066,
5600 194, 195, 885, 197, 1067, 198, 1068, 199, 587, 1069,
5601 588, 200, 201, 202, 203, 1070, 204, 0, 1071, 0,
5602 207, 1072, 208, 209, 210, 211, 212, 589, 213, 214,
5603 215, 216, 1073, 217, 218, 219, 220, 221, 222, 1074,
5604 223, 590, 0, 225, 226, 227, 228, 886, 887, 1075,
5605 888, 1076, 232, 591, 592, 233, 593, 234, 235, 236,
5606 237, 238, 1077, 1078, 239, 0, 594, 241, 595, 1079,
5607 242, 243, 244, 1080, 1081, 245, 246, 247, 248, 249,
5608 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
5609 260, 889, 596, 890, 263, 264, 265, 2043, 1082, 267,
5610 268, 597, 269, 1083, 0, 271, 891, 273, 274, 275,
5611 1084, 276, 277, 1085, 1086, 2044, 279, 280, 1087, 1088,
5612 281, 0, 598, 283, 599, 0, 285, 286, 287, 288,
5613 289, 290, 291, 292, 293, 1089, 294, 295, 0, 297,
5614 298, 0, 458, 301, 302, 1090, 303, 304, 305, 306,
5615 307, 308, 309, 310, 311, 892, 313, 314, 315, 316,
5616 1091, 317, 318, 319, 320, 321, 322, 323, 324, 325,
5617 326, 327, 328, 1092, 329, 330, 600, 331, 332, 333,
5618 0, 335, 336, 337, 338, 339, 340, 341, 342, 343,
5619 1093, 344, 345, 346, 347, 348, 1094, 349, 2045, 351,
5620 352, 353, 601, 354, 355, 894, 357, 1095, 358, 359,
5621 360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
5622 0, 1096, 371, 372, 1097, 373, 602, 374, 375, 376,
5623 377, 378, 1098, 895, 896, 1099, 1100, 381, 382, 0,
5624 384, 0, 1101, 386, 387, 388, 389, 390, 391, 392,
5625 1102, 1103, 393, 394, 395, 396, 397, 1104, 1105, 398,
5626 399, 400, 401, 402, 0, 897, 1106, 405, 604, 406,
5627 407, 408, 409, 1107, 1108, 410, 1109, 1110, 411, 412,
5628 413, 414, 415, 416, 0, 0, 0, 0, 0, 0,
5629 0, 0, 0, 0, 0, 428, 429, 430, 0, 95,
5630 0, 1327, 1328, 1329, 1323, 2046, 2047, 1332, 1333, 1334,
5631 1335, 1324, 1325, 1326, 96, 97, 98, 99, 100, 101,
5632 102, 103, 0, 105, 106, 107, 0, 0, 0, 0,
5633 0, 0, 0, 108, 109, 0, 110, 111, 112, 0,
5634 113, 114, 115, 116, 117, 0, 118, 119, 0, 120,
5635 121, 122, 123, 124, 0, 0, 125, 126, 127, 128,
5636 129, 0, 130, 131, 132, 133, 134, 0, 0, 0,
5637 135, 136, 137, 138, 139, 0, 140, 141, 142, 0,
5638 143, 144, 145, 146, 147, 148, 0, 0, 149, 150,
5639 151, 0, 0, 0, 0, 0, 0, 0, 152, 153,
5640 154, 155, 156, 157, 158, 159, 160, 0, 161, 0,
5641 162, 163, 164, 165, 166, 167, 0, 168, 169, 170,
5642 171, 172, 0, 0, 173, 174, 175, 176, 177, 0,
5643 178, 179, 180, 0, 181, 182, 183, 0, 184, 185,
5644 186, 187, 188, 189, 190, 191, 192, 0, 193, 0,
5645 194, 195, 196, 197, 0, 198, 0, 199, 0, 0,
5646 0, 200, 201, 202, 203, 0, 204, 205, 0, 206,
5647 207, 0, 208, 209, 210, 211, 212, 0, 213, 214,
5648 215, 216, 0, 217, 218, 219, 220, 221, 222, 0,
5649 223, 0, 224, 225, 226, 227, 228, 229, 230, 0,
5650 231, 0, 232, 0, 0, 233, 0, 234, 235, 236,
5651 237, 238, 0, 0, 239, 240, 0, 241, 0, 0,
5652 242, 243, 244, 0, 0, 245, 246, 247, 248, 249,
5653 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
5654 260, 261, 0, 262, 263, 264, 265, 266, 0, 267,
5655 268, 0, 269, 0, 270, 271, 272, 273, 274, 275,
5656 0, 276, 277, 0, 0, 278, 279, 280, 0, 0,
5657 281, 282, 0, 283, 0, 284, 285, 286, 287, 288,
5658 289, 290, 291, 292, 293, 0, 294, 295, 296, 297,
5659 298, 299, 458, 301, 302, 0, 303, 304, 305, 306,
5660 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
5661 0, 317, 318, 319, 320, 321, 322, 323, 324, 325,
5662 326, 327, 328, 0, 329, 330, 0, 331, 332, 333,
5663 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
5664 0, 344, 345, 346, 347, 348, 0, 349, 350, 351,
5665 352, 353, 0, 354, 355, 356, 357, 0, 358, 359,
5666 360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
5667 370, 0, 371, 372, 0, 373, 0, 374, 375, 376,
5668 377, 378, 0, 379, 380, 0, 0, 381, 382, 383,
5669 384, 385, 0, 386, 387, 388, 389, 390, 391, 392,
5670 0, 0, 393, 394, 395, 396, 397, 0, 0, 398,
5671 399, 400, 401, 402, 403, 404, 0, 405, 0, 406,
5672 407, 408, 409, 0, 0, 410, 0, 0, 411, 412,
5673 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
5674 423, 424, 425, 426, 427, 428, 429, 430, 0, 0,
5675 0, 1327, 1328, 1329, 0, 1330, 1331, 1332, 1333, 1334,
5676 1335, 973, 0, 0, 974, 0, 0, 0, 975, 976,
5677 977, 0, 0, 0, 0, 0, 0, 0, 0, 973,
5678 0, 0, 974, 0, 0, 978, 975, 976, 977, 0,
5679 0, 0, 0, 980, 0, 0, 0, 0, 973, 0,
5680 981, 974, 0, 978, 0, 975, 976, 977, 0, 0,
5681 0, 980, 0, 0, 0, 0, 0, 0, 981, 0,
5682 0, 0, 978, 0, 982, 0, 0, 0, 0, 0,
5683 980, 0, 0, 0, 0, 0, 973, 981, 0, 974,
5684 0, 0, 982, 975, 976, 977, 0, 0, 0, 0,
5685 0, 0, 0, 0, 0, 973, 0, 0, 974, 0,
5686 978, 982, 975, 976, 977, 0, 0, 0, 980, 0,
5687 0, 0, 0, 973, 0, 981, 974, 0, 0, 978,
5688 975, 976, 977, 0, 0, 0, 0, 980, 0, 0,
5689 0, 0, 0, 0, 981, 0, 0, 978, 0, 982,
5690 0, 0, 0, 0, 0, 980, 0, 0, 0, 0,
5691 0, 0, 981, 0, 0, 0, 0, 0, 982, 0,
5692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5693 0, 0, 0, 0, 983, 0, 982, 0, 0, 984,
5694 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5695 0, 0, 983, 0, 0, 0, 0, 984, 0, 0,
5696 985, 986, 0, 0, 0, 0, 0, 0, 0, 0,
5697 0, 983, 0, 0, 0, 987, 984, 0, 985, 986,
5698 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5699 0, 0, 0, 987, 0, 0, 0, 985, 986, 0,
5700 0, 0, 0, 0, 0, 988, 0, 0, 989, 983,
5701 0, 0, 987, 0, 984, 0, 0, 0, 0, 0,
5702 0, 0, 990, 988, 0, 991, 989, 0, 983, 0,
5703 0, 0, 0, 984, 0, 985, 986, 0, 0, 0,
5704 990, 0, 988, 991, 0, 989, 983, 0, 0, 0,
5705 987, 984, 0, 0, 985, 986, 0, 0, 0, 990,
5706 0, 0, 991, 0, 0, 0, 0, 0, 0, 987,
5707 0, 0, 985, 986, 0, 0, 0, 0, 0, 0,
5708 988, 0, 0, 989, 0, 0, 0, 987, 0, 0,
5709 0, 0, 0, 0, 0, 0, 0, 990, 0, 988,
5710 991, 0, 989, 0, 0, 0, 0, 0, 0, 992,
5711 0, 0, 0, 0, 0, 0, 990, 988, 0, 991,
5712 989, 0, 0, 0, 0, 0, 0, 992, 0, 0,
5713 780, 0, 0, 0, 990, 0, 781, 991, 0, 0,
5714 0, 973, 0, 793, 974, 0, 992, 0, 975, 976,
5715 977, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5716 0, 0, 794, 0, 0, 978, 0, 0, 0, 0,
5717 0, 0, 0, 980, 0, 0, 0, 0, 0, 0,
5718 981, 0, 0, 0, 992, 0, 0, 0, 0, 0,
5719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5720 0, 0, 0, 992, 982, 993, 0, 0, 994, 995,
5721 996, 795, 997, 998, 999, 1000, 1001, 1002, 0, 0,
5722 0, 992, 2096, 993, 0, 0, 994, 995, 996, 0,
5723 997, 998, 999, 1000, 1001, 1002, 0, 0, 0, 782,
5724 2115, 0, 993, 0, 0, 994, 995, 996, 0, 997,
5725 998, 999, 1000, 1001, 1002, 0, 0, 0, 0, 2257,
5726 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5728 993, 0, 0, 994, 995, 996, 0, 997, 998, 999,
5729 1000, 1001, 1002, 0, 0, 0, 796, 2474, 0, 993,
5730 0, 0, 994, 995, 996, 0, 997, 998, 999, 1000,
5731 1001, 1002, 0, 0, 983, 0, 2486, 993, 0, 984,
5732 994, 995, 996, 0, 997, 998, 999, 1000, 1001, 1002,
5733 0, 0, 0, 0, 2595, 0, 0, 0, 0, 0,
5734 985, 986, 0, 0, 797, 0, 0, 798, 0, 0,
5735 0, 0, 0, 0, 0, 987, 0, 0, 799, 0,
5736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5737 0, 0, 0, 0, 0, 0, 0, 0, 0, 783,
5738 0, 0, 0, 0, 0, 988, 0, 0, 989, 800,
5739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5740 0, 0, 990, 0, 0, 991, 0, 0, 0, 0,
5741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5742 0, 0, 0, 0, 0, 0, 0, 0, 801, 0,
5743 0, 0, 785, 802, 0, 0, 0, 0, 0, 0,
5744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5745 0, 0, 0, 803, 0, 0, 0, 0, 0, 804,
5746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5747 0, 0, 0, 805, 0, 0, 0, 0, 0, 0,
5748 0, 0, 0, 0, 0, 0, 0, 0, 0, 992,
5749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5752 0, 0, 0, 787, 0, 0, 0, 0, 0, 0,
5753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5758 0, 0, 0, 0, 0, 993, 1033, 0, 994, 995,
5759 996, 0, 997, 998, 999, 1000, 1001, 1002, 0, 0,
5760 1444, 96, 97, 98, 99, 100, 101, 102, 103, 1034,
5761 105, 106, 107, 1035, 1036, 1037, 1038, 1039, 1040, 1041,
5762 108, 109, 1042, 110, 111, 112, 581, 113, 114, 115,
5763 116, 117, 582, 118, 119, 1043, 120, 121, 122, 123,
5764 124, 1044, 1045, 125, 126, 127, 128, 129, 1046, 130,
5765 131, 132, 133, 134, 1047, 583, 1048, 135, 136, 137,
5766 138, 139, 584, 140, 141, 142, 1049, 143, 144, 145,
5767 146, 147, 148, 1050, 585, 149, 150, 151, 1051, 1052,
5768 1053, 586, 1054, 1055, 1056, 152, 153, 154, 155, 156,
5769 157, 158, 159, 160, 1057, 161, 1058, 162, 163, 164,
5770 165, 166, 167, 1059, 168, 169, 170, 171, 172, 1060,
5771 1061, 173, 174, 175, 176, 177, 1062, 178, 179, 180,
5772 1063, 181, 182, 183, 1064, 184, 185, 186, 187, 188,
5773 189, 190, 191, 192, 1065, 193, 1066, 194, 195, 196,
5774 197, 1067, 198, 1068, 199, 587, 1069, 588, 200, 201,
5775 202, 203, 1070, 204, 205, 1071, 206, 207, 1072, 208,
5776 209, 210, 211, 212, 589, 213, 214, 215, 216, 1073,
5777 217, 218, 219, 220, 221, 222, 1074, 223, 590, 224,
5778 225, 226, 227, 228, 229, 230, 1075, 231, 1076, 232,
5779 591, 592, 233, 593, 234, 235, 236, 237, 238, 1077,
5780 1078, 239, 240, 594, 241, 595, 1079, 242, 243, 244,
5781 1080, 1081, 245, 246, 247, 248, 249, 250, 251, 252,
5782 253, 254, 255, 256, 257, 258, 259, 260, 261, 596,
5783 262, 263, 264, 265, 266, 1082, 267, 268, 597, 269,
5784 1083, 270, 271, 272, 273, 274, 275, 1084, 276, 277,
5785 1085, 1086, 278, 279, 280, 1087, 1088, 281, 282, 598,
5786 283, 599, 284, 285, 286, 287, 288, 289, 290, 291,
5787 292, 293, 1089, 294, 295, 296, 297, 298, 299, 458,
5788 301, 302, 1090, 303, 304, 305, 306, 307, 308, 309,
5789 310, 311, 312, 313, 314, 315, 316, 1091, 317, 318,
5790 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
5791 1092, 329, 330, 600, 331, 332, 333, 334, 335, 336,
5792 337, 338, 339, 340, 341, 342, 343, 1093, 344, 345,
5793 346, 347, 348, 1094, 349, 350, 351, 352, 353, 601,
5794 354, 355, 356, 357, 1095, 358, 359, 360, 361, 362,
5795 363, 364, 365, 366, 367, 368, 369, 370, 1096, 371,
5796 372, 1097, 373, 602, 374, 375, 376, 377, 378, 1098,
5797 379, 380, 1099, 1100, 381, 382, 383, 384, 385, 1101,
5798 386, 387, 388, 389, 390, 391, 392, 1102, 1103, 393,
5799 394, 395, 396, 397, 1104, 1105, 398, 399, 400, 401,
5800 402, 403, 404, 1106, 405, 604, 406, 407, 408, 409,
5801 1107, 1108, 410, 1109, 1110, 411, 412, 413, 414, 415,
5802 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
5803 426, 427, 428, 429, 430, 95, 0, 0, 0, 0,
5804 0, 0, 0, 0, 1111, 0, 0, 0, 0, 0,
5805 96, 97, 98, 99, 100, 101, 102, 103, 0, 105,
5806 106, 107, 0, 0, 0, 0, 0, 0, 0, 108,
5807 109, 0, 110, 111, 112, 0, 113, 114, 115, 116,
5808 117, 0, 118, 119, 0, 120, 121, 122, 123, 124,
5809 0, 0, 125, 126, 127, 128, 129, 0, 130, 131,
5810 132, 133, 134, 0, 0, 0, 135, 136, 137, 138,
5811 139, 0, 140, 141, 142, 0, 143, 144, 145, 146,
5812 147, 148, 0, 0, 149, 150, 151, 0, 0, 0,
5813 0, 0, 0, 0, 152, 153, 154, 155, 156, 157,
5814 158, 159, 160, 0, 161, 0, 162, 163, 164, 165,
5815 166, 167, 0, 168, 169, 170, 171, 172, 0, 0,
5816 173, 174, 175, 176, 177, 0, 178, 179, 180, 0,
5817 181, 182, 183, 0, 184, 185, 186, 187, 188, 189,
5818 190, 191, 192, 0, 193, 0, 194, 195, 196, 197,
5819 0, 198, 0, 199, 0, 0, 0, 200, 201, 202,
5820 203, 0, 204, 205, 0, 206, 207, 0, 208, 209,
5821 210, 211, 212, 0, 213, 214, 215, 216, 0, 217,
5822 218, 219, 220, 221, 222, 0, 223, 0, 224, 225,
5823 226, 227, 228, 229, 230, 0, 231, 0, 232, 0,
5824 0, 233, 0, 234, 235, 236, 237, 238, 0, 0,
5825 239, 240, 0, 241, 0, 0, 242, 243, 244, 0,
5826 0, 245, 246, 247, 248, 249, 250, 251, 252, 253,
5827 254, 255, 256, 257, 258, 259, 260, 261, 0, 262,
5828 263, 264, 265, 266, 0, 267, 268, 0, 269, 0,
5829 270, 271, 272, 273, 274, 275, 0, 276, 277, 0,
5830 0, 278, 279, 280, 0, 0, 281, 282, 0, 283,
5831 0, 284, 285, 286, 287, 288, 289, 290, 291, 292,
5832 293, 0, 294, 295, 296, 297, 298, 299, 458, 301,
5833 302, 0, 303, 304, 305, 306, 307, 308, 309, 310,
5834 311, 312, 313, 314, 315, 316, 0, 317, 318, 319,
5835 320, 321, 322, 323, 324, 325, 326, 327, 328, 0,
5836 329, 330, 0, 331, 332, 333, 334, 335, 336, 337,
5837 338, 339, 340, 341, 342, 343, 0, 344, 345, 346,
5838 347, 348, 0, 349, 350, 351, 352, 353, 0, 354,
5839 355, 356, 357, 0, 358, 359, 360, 361, 362, 363,
5840 364, 365, 366, 367, 368, 369, 370, 0, 371, 372,
5841 0, 373, 0, 374, 375, 376, 377, 378, 0, 379,
5842 380, 0, 0, 381, 382, 383, 384, 385, 0, 386,
5843 387, 388, 389, 390, 391, 392, 0, 0, 393, 394,
5844 395, 396, 397, 0, 0, 398, 399, 400, 401, 402,
5845 403, 404, 0, 405, 0, 406, 407, 408, 409, 0,
5846 0, 410, 0, 0, 411, 412, 413, 414, 415, 416,
5847 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
5848 427, 428, 429, 430, 580, 853, 470, 0, 0, 0,
5849 627, 0, 0, 2502, 0, 0, 0, 0, 0, 96,
5850 97, 98, 99, 100, 101, 102, 103, 0, 105, 106,
5851 107, 0, 0, 0, 0, 0, 0, 0, 108, 109,
5852 0, 110, 111, 112, 581, 113, 114, 115, 116, 117,
5853 582, 118, 119, 0, 120, 121, 122, 123, 124, 0,
5854 0, 125, 126, 127, 128, 129, 0, 130, 131, 132,
5855 133, 134, 0, 583, 0, 135, 136, 137, 138, 139,
5856 584, 140, 141, 142, 0, 143, 144, 145, 146, 147,
5857 148, 0, 585, 149, 150, 151, 0, 0, 0, 586,
5858 0, 0, 0, 152, 153, 154, 155, 156, 157, 158,
5859 159, 160, 1026, 161, 0, 162, 163, 164, 165, 166,
5860 167, 0, 168, 169, 170, 171, 172, 0, 0, 173,
5861 174, 175, 176, 177, 0, 178, 179, 180, 0, 181,
5862 182, 183, 0, 184, 185, 186, 187, 188, 189, 190,
5863 191, 192, 854, 193, 0, 194, 195, 196, 197, 0,
5864 198, 0, 199, 587, 0, 588, 200, 201, 202, 203,
5865 0, 204, 205, 0, 206, 207, 0, 208, 209, 210,
5866 211, 212, 589, 213, 214, 215, 216, 0, 217, 218,
5867 219, 220, 221, 222, 0, 223, 590, 224, 225, 226,
5868 227, 228, 229, 230, 0, 231, 0, 232, 591, 592,
5869 233, 593, 234, 235, 236, 237, 238, 0, 0, 239,
5870 240, 594, 241, 595, 0, 242, 243, 244, 0, 0,
5871 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
5872 255, 256, 257, 258, 259, 260, 261, 596, 262, 263,
5873 264, 265, 266, 0, 267, 268, 597, 269, 0, 270,
5874 271, 272, 273, 274, 275, 0, 276, 277, 855, 0,
5875 278, 279, 280, 0, 0, 281, 282, 598, 283, 599,
5876 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
5877 0, 294, 295, 296, 297, 298, 299, 458, 301, 302,
5878 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
5879 312, 313, 314, 315, 316, 0, 317, 318, 319, 320,
5880 321, 322, 323, 324, 325, 326, 327, 328, 0, 329,
5881 330, 600, 331, 332, 333, 334, 335, 336, 337, 338,
5882 339, 340, 341, 342, 343, 0, 344, 345, 346, 347,
5883 348, 0, 349, 350, 351, 352, 353, 601, 354, 355,
5884 356, 357, 0, 358, 359, 360, 361, 362, 363, 364,
5885 365, 366, 367, 368, 369, 370, 0, 371, 372, 0,
5886 373, 602, 374, 375, 376, 377, 378, 0, 379, 380,
5887 0, 0, 381, 382, 383, 384, 385, 856, 386, 387,
5888 388, 389, 390, 391, 392, 0, 0, 393, 394, 395,
5889 396, 397, 0, 0, 398, 399, 400, 401, 402, 403,
5890 404, 0, 405, 604, 406, 407, 408, 409, 0, 0,
5891 410, 0, 0, 411, 412, 413, 414, 415, 416, 417,
5892 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
5893 428, 429, 430, 580, 853, 470, 0, 0, 0, 627,
5894 857, 858, 0, 0, 0, 0, 0, 0, 96, 97,
5895 98, 99, 100, 101, 102, 103, 0, 105, 106, 107,
5896 0, 0, 0, 0, 0, 0, 0, 108, 109, 0,
5897 110, 111, 112, 581, 113, 114, 115, 116, 117, 582,
5898 118, 119, 0, 120, 121, 122, 123, 124, 0, 0,
5899 125, 126, 127, 128, 129, 0, 130, 131, 132, 133,
5900 134, 0, 583, 0, 135, 136, 137, 138, 139, 584,
5901 140, 141, 142, 0, 143, 144, 145, 146, 147, 148,
5902 0, 585, 149, 150, 151, 0, 0, 0, 586, 0,
5903 0, 0, 152, 153, 154, 155, 156, 157, 158, 159,
5904 160, 1028, 161, 0, 162, 163, 164, 165, 166, 167,
5905 0, 168, 169, 170, 171, 172, 0, 0, 173, 174,
5906 175, 176, 177, 0, 178, 179, 180, 0, 181, 182,
5907 183, 0, 184, 185, 186, 187, 188, 189, 190, 191,
5908 192, 854, 193, 0, 194, 195, 196, 197, 0, 198,
5909 0, 199, 587, 0, 588, 200, 201, 202, 203, 0,
5910 204, 205, 0, 206, 207, 0, 208, 209, 210, 211,
5911 212, 589, 213, 214, 215, 216, 0, 217, 218, 219,
5912 220, 221, 222, 0, 223, 590, 224, 225, 226, 227,
5913 228, 229, 230, 0, 231, 0, 232, 591, 592, 233,
5914 593, 234, 235, 236, 237, 238, 0, 0, 239, 240,
5915 594, 241, 595, 0, 242, 243, 244, 0, 0, 245,
5916 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
5917 256, 257, 258, 259, 260, 261, 596, 262, 263, 264,
5918 265, 266, 0, 267, 268, 597, 269, 0, 270, 271,
5919 272, 273, 274, 275, 0, 276, 277, 855, 0, 278,
5920 279, 280, 0, 0, 281, 282, 598, 283, 599, 284,
5921 285, 286, 287, 288, 289, 290, 291, 292, 293, 0,
5922 294, 295, 296, 297, 298, 299, 458, 301, 302, 0,
5923 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
5924 313, 314, 315, 316, 0, 317, 318, 319, 320, 321,
5925 322, 323, 324, 325, 326, 327, 328, 0, 329, 330,
5926 600, 331, 332, 333, 334, 335, 336, 337, 338, 339,
5927 340, 341, 342, 343, 0, 344, 345, 346, 347, 348,
5928 0, 349, 350, 351, 352, 353, 601, 354, 355, 356,
5929 357, 0, 358, 359, 360, 361, 362, 363, 364, 365,
5930 366, 367, 368, 369, 370, 0, 371, 372, 0, 373,
5931 602, 374, 375, 376, 377, 378, 0, 379, 380, 0,
5932 0, 381, 382, 383, 384, 385, 856, 386, 387, 388,
5933 389, 390, 391, 392, 0, 0, 393, 394, 395, 396,
5934 397, 0, 0, 398, 399, 400, 401, 402, 403, 404,
5935 0, 405, 604, 406, 407, 408, 409, 0, 0, 410,
5936 0, 0, 411, 412, 413, 414, 415, 416, 417, 418,
5937 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
5938 429, 430, 580, 853, 470, 0, 0, 0, 627, 857,
5939 858, 0, 0, 0, 0, 0, 0, 96, 97, 98,
5940 99, 100, 101, 102, 103, 0, 105, 106, 107, 0,
5941 0, 0, 0, 0, 0, 0, 108, 109, 0, 110,
5942 111, 112, 581, 113, 114, 115, 116, 117, 582, 118,
5943 119, 0, 120, 121, 122, 123, 124, 0, 0, 125,
5944 126, 127, 128, 129, 0, 130, 131, 132, 133, 134,
5945 0, 583, 0, 135, 136, 137, 138, 139, 584, 140,
5946 141, 142, 0, 143, 144, 145, 146, 147, 148, 0,
5947 585, 149, 150, 151, 0, 0, 0, 586, 0, 0,
5948 0, 152, 153, 154, 155, 156, 157, 158, 159, 160,
5949 0, 161, 0, 162, 163, 164, 165, 166, 167, 0,
5950 168, 169, 170, 171, 172, 0, 0, 173, 174, 175,
5951 176, 177, 0, 178, 179, 180, 0, 181, 182, 183,
5952 0, 184, 185, 186, 187, 188, 189, 190, 191, 192,
5953 854, 193, 0, 194, 195, 196, 197, 0, 198, 0,
5954 199, 587, 0, 588, 200, 201, 202, 203, 0, 204,
5955 205, 0, 206, 207, 0, 208, 209, 210, 211, 212,
5956 589, 213, 214, 215, 216, 0, 217, 218, 219, 220,
5957 221, 222, 0, 223, 590, 224, 225, 226, 227, 228,
5958 229, 230, 0, 231, 0, 232, 591, 592, 233, 593,
5959 234, 235, 236, 237, 238, 0, 0, 239, 240, 594,
5960 241, 595, 0, 242, 243, 244, 0, 0, 245, 246,
5961 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
5962 257, 258, 259, 260, 261, 596, 262, 263, 264, 265,
5963 266, 0, 267, 268, 597, 269, 0, 270, 271, 272,
5964 273, 274, 275, 0, 276, 277, 855, 0, 278, 279,
5965 280, 0, 0, 281, 282, 598, 283, 599, 284, 285,
5966 286, 287, 288, 289, 290, 291, 292, 293, 0, 294,
5967 295, 296, 297, 298, 299, 458, 301, 302, 0, 303,
5968 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
5969 314, 315, 316, 0, 317, 318, 319, 320, 321, 322,
5970 323, 324, 325, 326, 327, 328, 0, 329, 330, 600,
5971 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
5972 341, 342, 343, 0, 344, 345, 346, 347, 348, 0,
5973 349, 350, 351, 352, 353, 601, 354, 355, 356, 357,
5974 0, 358, 359, 360, 361, 362, 363, 364, 365, 366,
5975 367, 368, 369, 370, 0, 371, 372, 0, 373, 602,
5976 374, 375, 376, 377, 378, 0, 379, 380, 0, 0,
5977 381, 382, 383, 384, 385, 856, 386, 387, 388, 389,
5978 390, 391, 392, 0, 0, 393, 394, 395, 396, 397,
5979 0, 0, 398, 399, 400, 401, 402, 403, 404, 0,
5980 405, 604, 406, 407, 408, 409, 0, 0, 410, 0,
5981 0, 411, 412, 413, 414, 415, 416, 417, 418, 419,
5982 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
5983 430, 0, 0, 973, 0, 0, 974, 0, 857, 858,
5984 975, 976, 977, 0, 0, 0, 973, 0, 0, 974,
5985 0, 0, 0, 975, 976, 977, 0, 978, 0, 0,
5986 0, 1468, 0, 0, 0, 980, 0, 0, 0, 0,
5987 978, 0, 981, 0, 0, 0, 0, 0, 980, 0,
5988 0, 0, 0, 0, 0, 981, 973, 0, 0, 974,
5989 0, 0, 0, 975, 976, 977, 982, 0, 0, 0,
5990 0, 0, 0, 0, 0, 973, 0, 0, 974, 982,
5991 978, 0, 975, 976, 977, 0, 0, 0, 980, 0,
5992 0, 0, 0, 0, 0, 981, 0, 0, 0, 978,
5993 0, 0, 1616, 0, 0, 0, 0, 980, 0, 0,
5994 0, 0, 0, 0, 981, 1469, 0, 0, 0, 982,
5995 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5996 0, 0, 0, 973, 0, 0, 974, 0, 982, 0,
5997 975, 976, 977, 0, 0, 0, 0, 0, 0, 0,
5998 0, 0, 0, 0, 0, 0, 0, 978, 0, 0,
5999 0, 0, 0, 0, 0, 980, 1658, 0, 0, 0,
6000 0, 1659, 981, 0, 0, 0, 983, 0, 0, 0,
6001 0, 984, 0, 0, 0, 0, 0, 0, 0, 983,
6002 0, 0, 0, 0, 984, 0, 982, 0, 0, 0,
6003 0, 0, 985, 986, 0, 2556, 0, 0, 0, 0,
6004 0, 0, 0, 0, 0, 985, 986, 987, 0, 0,
6005 0, 0, 0, 0, 0, 0, 0, 0, 0, 983,
6006 987, 0, 0, 0, 984, 0, 0, 0, 0, 0,
6007 0, 0, 0, 0, 0, 0, 0, 988, 983, 0,
6008 989, 0, 0, 984, 0, 985, 986, 0, 0, 0,
6009 988, 0, 0, 989, 990, 0, 0, 991, 0, 0,
6010 987, 0, 0, 0, 985, 986, 0, 990, 0, 0,
6011 991, 0, 0, 0, 0, 0, 0, 0, 0, 987,
6012 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6013 988, 0, 0, 989, 0, 0, 983, 0, 0, 0,
6014 0, 984, 0, 0, 0, 0, 0, 990, 0, 988,
6015 991, 0, 989, 0, 0, 0, 0, 0, 0, 0,
6016 0, 0, 985, 986, 0, 0, 990, 0, 0, 991,
6017 0, 0, 2557, 0, 0, 0, 0, 987, 0, 0,
6018 0, 992, 0, 0, 0, 0, 0, 0, 0, 973,
6019 0, 0, 974, 0, 992, 0, 975, 976, 977, 0,
6020 0, 0, 0, 0, 0, 0, 0, 988, 0, 0,
6021 989, 0, 0, 978, 0, 0, 1667, 0, 0, 0,
6022 0, 980, 0, 0, 990, 0, 0, 991, 981, 0,
6023 0, 0, 0, 0, 992, 0, 0, 1470, 0, 0,
6024 0, 0, 0, 0, 1632, 0, 0, 0, 0, 0,
6025 0, 0, 982, 992, 0, 0, 0, 0, 0, 0,
6026 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6027 0, 0, 0, 0, 0, 0, 0, 993, 0, 0,
6028 994, 995, 996, 0, 997, 998, 999, 1000, 1001, 1002,
6029 993, 0, 0, 994, 995, 996, 0, 997, 998, 999,
6030 1000, 1001, 1002, 0, 0, 0, 0, 0, 0, 0,
6031 0, 992, 973, 0, 0, 974, 0, 0, 0, 975,
6032 976, 977, 0, 0, 0, 0, 0, 0, 0, 0,
6033 993, 0, 0, 994, 995, 996, 978, 997, 998, 999,
6034 1000, 1001, 1002, 0, 980, 0, 0, 0, 0, 993,
6035 0, 981, 994, 995, 996, 0, 997, 998, 999, 1000,
6036 1001, 1002, 983, 973, 0, 0, 974, 984, 0, 0,
6037 975, 976, 977, 0, 0, 982, 0, 0, 0, 0,
6038 0, 0, 0, 0, 0, 0, 0, 978, 985, 986,
6039 0, 0, 0, 0, 0, 980, 0, 0, 0, 0,
6040 780, 0, 981, 987, 0, 0, 781, 993, 0, 0,
6041 994, 995, 996, 793, 997, 998, 999, 1000, 1001, 1002,
6042 0, 0, 0, 0, 0, 0, 982, 0, 0, 0,
6043 0, 0, 794, 988, 0, 0, 989, 0, 0, 0,
6044 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6045 990, 0, 973, 991, 0, 974, 0, 0, 0, 975,
6046 976, 977, 0, 0, 0, 0, 0, 1672, 0, 0,
6047 0, 0, 0, 0, 0, 0, 978, 0, 0, 0,
6048 0, 795, 0, 0, 980, 983, 0, 0, 0, 0,
6049 984, 981, 0, 0, 0, 0, 0, 0, 0, 0,
6050 0, 0, 0, 0, 0, 0, 0, 0, 0, 782,
6051 0, 985, 986, 0, 0, 982, 0, 0, 0, 0,
6052 0, 0, 0, 0, 0, 0, 987, 0, 0, 0,
6053 0, 0, 0, 0, 0, 0, 983, 992, 0, 0,
6054 0, 984, 0, 0, 0, 0, 0, 0, 0, 0,
6055 0, 0, 0, 0, 0, 0, 988, 0, 0, 989,
6056 0, 0, 985, 986, 0, 0, 796, 0, 0, 0,
6057 0, 0, 0, 990, 0, 0, 991, 987, 0, 0,
6058 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6059 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6060 0, 0, 0, 0, 0, 0, 0, 988, 0, 0,
6061 989, 0, 0, 0, 797, 0, 0, 798, 0, 0,
6062 0, 0, 0, 0, 990, 983, 0, 991, 799, 0,
6063 984, 0, 0, 993, 0, 0, 994, 995, 996, 0,
6064 997, 998, 999, 1000, 1001, 1002, 0, 0, 0, 783,
6065 0, 985, 986, 0, 0, 0, 0, 0, 0, 800,
6066 992, 0, 0, 0, 0, 0, 987, 0, 0, 0,
6067 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6068 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6069 0, 0, 0, 0, 0, 0, 988, 0, 1532, 989,
6070 0, 0, 785, 802, 0, 0, 0, 0, 0, 0,
6071 0, 992, 0, 990, 0, 0, 991, 0, 0, 0,
6072 0, 0, 0, 803, 0, 0, 0, 0, 0, 1533,
6073 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6074 0, 1873, 0, 805, 0, 0, 0, 0, 0, 0,
6075 0, 0, 0, 0, 0, 0, 993, 0, 0, 994,
6076 995, 996, 0, 997, 998, 999, 1000, 1001, 1002, 0,
6077 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6078 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6079 0, 0, 0, 787, 0, 0, 0, 0, 0, 0,
6080 992, 0, 0, 0, 0, 0, 0, 993, 0, 0,
6081 994, 995, 996, 0, 997, 998, 999, 1000, 1001, 1002,
6082 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6083 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6084 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6085 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6086 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6087 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6088 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6089 0, 0, 0, 0, 1033, 0, 993, 0, 0, 994,
6090 995, 996, 0, 997, 998, 999, 1000, 1001, 1002, 96,
6091 97, 98, 99, 100, 101, 102, 103, 1034, 105, 106,
6092 107, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 108, 109,
6093 1042, 110, 111, 112, 581, 113, 114, 115, 116, 117,
6094 582, 118, 119, 1043, 120, 121, 122, 123, 124, 1044,
6095 1045, 125, 126, 127, 128, 129, 1046, 130, 131, 132,
6096 133, 134, 1047, 583, 1048, 135, 136, 137, 138, 139,
6097 584, 140, 141, 142, 1049, 143, 144, 145, 146, 147,
6098 148, 1050, 585, 149, 150, 151, 1051, 1052, 1053, 586,
6099 1054, 1055, 1056, 152, 153, 154, 155, 156, 157, 158,
6100 159, 160, 1057, 161, 1058, 162, 163, 164, 165, 166,
6101 167, 1059, 168, 169, 170, 171, 172, 1060, 1061, 173,
6102 174, 175, 176, 177, 1062, 178, 179, 180, 1063, 181,
6103 182, 183, 1064, 184, 185, 186, 187, 188, 189, 190,
6104 191, 192, 1065, 193, 1066, 194, 195, 196, 197, 1067,
6105 198, 1068, 199, 587, 1069, 588, 200, 201, 202, 203,
6106 1070, 204, 205, 1071, 206, 207, 1072, 208, 209, 210,
6107 211, 212, 589, 213, 214, 215, 216, 1073, 217, 218,
6108 219, 220, 221, 222, 1074, 223, 590, 224, 225, 226,
6109 227, 228, 229, 230, 1075, 231, 1076, 232, 591, 592,
6110 233, 593, 234, 235, 236, 237, 238, 1077, 1078, 239,
6111 240, 594, 241, 595, 1079, 242, 243, 244, 1080, 1081,
6112 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
6113 255, 256, 257, 258, 259, 260, 261, 596, 262, 263,
6114 264, 265, 266, 1082, 267, 268, 597, 269, 1083, 270,
6115 271, 272, 273, 274, 275, 1084, 276, 277, 1085, 1086,
6116 278, 279, 280, 1087, 1088, 281, 282, 598, 283, 599,
6117 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
6118 1089, 294, 295, 296, 297, 298, 299, 458, 301, 302,
6119 1090, 303, 304, 305, 306, 307, 308, 309, 310, 311,
6120 312, 313, 314, 315, 316, 1091, 317, 318, 319, 320,
6121 321, 322, 323, 324, 325, 326, 327, 328, 1092, 329,
6122 330, 600, 331, 332, 333, 334, 335, 336, 337, 338,
6123 339, 340, 341, 342, 343, 1093, 344, 345, 346, 347,
6124 348, 1094, 349, 350, 351, 352, 353, 601, 354, 355,
6125 356, 357, 1095, 358, 359, 360, 361, 362, 363, 364,
6126 365, 366, 367, 368, 369, 370, 1096, 371, 372, 1097,
6127 373, 602, 374, 375, 376, 377, 378, 1098, 379, 380,
6128 1099, 1100, 381, 382, 383, 384, 385, 1101, 386, 387,
6129 388, 389, 390, 391, 392, 1102, 1103, 393, 394, 395,
6130 396, 397, 1104, 1105, 398, 399, 400, 401, 402, 403,
6131 404, 1106, 405, 604, 406, 407, 408, 409, 1107, 1108,
6132 410, 1109, 1110, 411, 412, 413, 414, 415, 416, 417,
6133 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
6134 428, 429, 430, 1033, 0, 0, 0, 0, 0, 0,
6135 0, 0, 0, 0, 0, 0, 0, 0, 96, 97,
6136 98, 99, 1517, 101, 102, 103, 1034, 105, 106, 107,
6137 1035, 1036, 1037, 1038, 1039, 1040, 1041, 108, 109, 1042,
6138 110, 111, 112, 581, 113, 114, 115, 116, 117, 582,
6139 118, 119, 1043, 120, 121, 122, 123, 124, 1044, 1045,
6140 125, 126, 127, 128, 129, 1046, 130, 131, 132, 133,
6141 134, 1047, 583, 1048, 135, 136, 137, 138, 139, 584,
6142 140, 141, 142, 1049, 143, 144, 145, 146, 147, 148,
6143 1050, 585, 149, 150, 151, 1051, 1052, 1053, 586, 1054,
6144 1055, 1056, 152, 153, 154, 155, 156, 157, 158, 159,
6145 160, 1057, 161, 1058, 162, 163, 164, 165, 166, 167,
6146 1059, 168, 169, 170, 171, 172, 1060, 1061, 173, 174,
6147 175, 1518, 177, 1062, 178, 179, 180, 1063, 181, 182,
6148 183, 1064, 184, 185, 186, 187, 188, 189, 190, 191,
6149 192, 1065, 193, 1066, 194, 195, 196, 197, 1067, 198,
6150 1068, 199, 587, 1069, 588, 200, 201, 202, 203, 1070,
6151 204, 205, 1071, 206, 207, 1072, 208, 209, 210, 211,
6152 212, 589, 213, 214, 215, 216, 1073, 217, 218, 219,
6153 220, 221, 222, 1074, 223, 590, 224, 225, 226, 227,
6154 228, 229, 230, 1075, 231, 1076, 232, 591, 592, 233,
6155 593, 234, 235, 236, 237, 238, 1077, 1078, 239, 240,
6156 594, 241, 595, 1079, 242, 243, 244, 1080, 1081, 245,
6157 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
6158 256, 257, 258, 259, 260, 261, 596, 262, 263, 264,
6159 265, 266, 1082, 267, 268, 597, 269, 1083, 270, 271,
6160 272, 273, 274, 275, 1084, 276, 277, 1085, 1086, 278,
6161 279, 280, 1087, 1088, 281, 282, 598, 283, 599, 284,
6162 285, 286, 287, 288, 289, 290, 291, 292, 293, 1089,
6163 294, 295, 296, 297, 298, 299, 458, 301, 302, 1090,
6164 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
6165 313, 314, 315, 316, 1091, 317, 318, 319, 320, 321,
6166 322, 323, 324, 325, 326, 327, 328, 1092, 329, 330,
6167 600, 331, 332, 333, 334, 335, 336, 337, 338, 339,
6168 340, 341, 342, 343, 1093, 344, 345, 346, 347, 348,
6169 1094, 1519, 350, 351, 352, 353, 601, 354, 355, 356,
6170 357, 1095, 358, 359, 360, 361, 362, 363, 364, 365,
6171 366, 367, 368, 369, 370, 1096, 371, 372, 1097, 373,
6172 602, 374, 375, 376, 377, 378, 1098, 379, 380, 1099,
6173 1100, 381, 382, 383, 384, 385, 1101, 386, 387, 388,
6174 389, 390, 391, 392, 1102, 1103, 393, 394, 395, 396,
6175 397, 1104, 1105, 398, 399, 400, 401, 402, 403, 404,
6176 1106, 405, 604, 406, 407, 408, 409, 1107, 1108, 410,
6177 1109, 1110, 411, 412, 413, 414, 415, 416, 417, 418,
6178 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
6179 429, 430, 622, 0, 0, 0, 0, 0, 0, 0,
6180 0, 0, 0, 0, 0, 0, 0, 96, 97, 98,
6181 99, 100, 101, 102, 103, 0, 105, 106, 107, 0,
6182 0, 0, 0, 0, 0, 0, 108, 109, 0, 110,
6183 111, 112, 581, 113, 114, 115, 116, 117, 582, 118,
6184 119, 0, 120, 121, 122, 123, 124, 0, 633, 125,
6185 126, 127, 128, 129, 0, 130, 131, 132, 133, 636,
6186 0, 637, 0, 135, 136, 137, 138, 139, 584, 140,
6187 141, 142, 0, 143, 144, 145, 146, 147, 148, 0,
6188 585, 149, 150, 151, 638, 639, 640, 641, 642, 643,
6189 644, 152, 153, 154, 155, 156, 157, 158, 159, 160,
6190 0, 161, 0, 162, 163, 164, 165, 166, 167, 0,
6191 168, 169, 170, 171, 172, 0, 0, 173, 174, 175,
6192 176, 177, 0, 178, 179, 180, 0, 181, 182, 183,
6193 0, 184, 185, 186, 187, 188, 189, 190, 191, 650,
6194 0, 193, 0, 194, 195, 196, 197, 0, 198, 0,
6195 199, 587, 0, 588, 200, 201, 202, 203, 0, 204,
6196 653, 0, 206, 207, 0, 208, 209, 210, 211, 212,
6197 589, 213, 214, 215, 216, 0, 217, 218, 219, 220,
6198 221, 222, 0, 223, 590, 224, 225, 226, 227, 228,
6199 229, 230, 0, 231, 0, 232, 591, 592, 233, 593,
6200 234, 235, 236, 237, 238, 0, 0, 239, 657, 594,
6201 241, 595, 0, 242, 243, 244, 658, 659, 245, 246,
6202 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
6203 257, 258, 259, 260, 261, 596, 262, 263, 264, 265,
6204 266, 0, 267, 268, 597, 269, 0, 664, 271, 272,
6205 273, 274, 275, 0, 276, 277, 0, 0, 278, 279,
6206 280, 0, 0, 281, 282, 598, 283, 599, 667, 285,
6207 286, 287, 288, 289, 290, 291, 292, 293, 0, 294,
6208 295, 668, 297, 298, 299, 458, 301, 302, 0, 303,
6209 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
6210 314, 315, 316, 0, 317, 318, 319, 320, 321, 322,
6211 323, 324, 325, 326, 327, 328, 0, 329, 330, 600,
6212 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
6213 341, 342, 343, 0, 344, 345, 346, 347, 348, 671,
6214 349, 350, 351, 352, 353, 601, 354, 355, 356, 357,
6215 0, 358, 359, 360, 361, 362, 363, 364, 365, 366,
6216 367, 368, 369, 673, 0, 371, 372, 0, 373, 602,
6217 374, 375, 376, 377, 378, 0, 379, 380, 0, 0,
6218 381, 382, 676, 384, 677, 0, 386, 387, 388, 389,
6219 390, 391, 392, 0, 0, 393, 394, 395, 396, 397,
6220 679, 0, 398, 399, 400, 401, 402, 403, 404, 0,
6221 405, 604, 406, 407, 408, 409, 0, 0, 410, 0,
6222 0, 411, 412, 413, 414, 415, 416, 417, 418, 419,
6223 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
6224 430, 580, 0, 470, 0, 0, 0, 0, 0, 0,
6225 0, 0, 0, 0, 0, 0, 96, 97, 98, 99,
6226 100, 101, 102, 103, 0, 105, 106, 107, 0, 0,
6227 0, 0, 0, 0, 0, 108, 109, 0, 110, 111,
6228 112, 581, 113, 114, 115, 116, 117, 582, 118, 119,
6229 0, 120, 121, 122, 123, 124, 0, 0, 125, 126,
6230 127, 128, 129, 0, 130, 131, 132, 133, 134, 0,
6231 583, 0, 135, 136, 137, 138, 139, 584, 140, 141,
6232 142, 0, 143, 144, 145, 146, 147, 148, 0, 585,
6233 149, 150, 151, 0, 0, 0, 586, 0, 0, 0,
6234 152, 153, 154, 155, 156, 157, 158, 159, 160, 0,
6235 161, 0, 162, 163, 164, 165, 166, 167, 0, 168,
6236 169, 170, 171, 172, 0, 0, 173, 174, 175, 176,
6237 177, 0, 178, 179, 180, 0, 181, 182, 183, 0,
6238 184, 185, 186, 187, 188, 189, 190, 191, 192, 854,
6239 193, 0, 194, 195, 196, 197, 0, 198, 0, 199,
6240 587, 0, 588, 200, 201, 202, 203, 0, 204, 205,
6241 0, 206, 207, 0, 208, 209, 210, 211, 212, 589,
6242 213, 214, 215, 216, 0, 217, 218, 219, 220, 221,
6243 222, 0, 223, 590, 224, 225, 226, 227, 228, 229,
6244 230, 0, 231, 0, 232, 591, 592, 233, 593, 234,
6245 235, 236, 237, 238, 0, 0, 239, 240, 594, 241,
6246 595, 0, 242, 243, 244, 0, 0, 245, 246, 247,
6247 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
6248 258, 259, 260, 261, 596, 262, 263, 264, 265, 266,
6249 0, 267, 268, 597, 269, 0, 270, 271, 272, 273,
6250 274, 275, 0, 276, 277, 855, 0, 278, 279, 280,
6251 0, 0, 281, 282, 598, 283, 599, 284, 285, 286,
6252 287, 288, 289, 290, 291, 292, 293, 0, 294, 295,
6253 296, 297, 298, 299, 458, 301, 302, 0, 303, 304,
6254 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
6255 315, 316, 0, 317, 318, 319, 320, 321, 322, 323,
6256 324, 325, 326, 327, 328, 0, 329, 330, 600, 331,
6257 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
6258 342, 343, 0, 344, 345, 346, 347, 348, 0, 349,
6259 350, 351, 352, 353, 601, 354, 355, 356, 357, 0,
6260 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
6261 368, 369, 370, 0, 371, 372, 0, 373, 602, 374,
6262 375, 376, 377, 378, 0, 379, 380, 0, 0, 381,
6263 382, 383, 384, 385, 856, 386, 387, 388, 389, 390,
6264 391, 392, 0, 0, 393, 394, 395, 396, 397, 0,
6265 0, 398, 399, 400, 401, 402, 403, 404, 0, 405,
6266 604, 406, 407, 408, 409, 0, 0, 410, 0, 0,
6267 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
6268 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
6269 580, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6270 0, 0, 0, 0, 0, 96, 97, 98, 99, 100,
6271 101, 102, 103, 0, 105, 106, 107, 3, 4, 0,
6272 0, 0, 0, 0, 108, 109, 0, 110, 111, 112,
6273 581, 113, 114, 115, 116, 117, 582, 118, 119, 0,
6274 120, 121, 122, 123, 124, 0, 0, 125, 126, 127,
6275 128, 129, 0, 130, 131, 132, 133, 134, 0, 583,
6276 0, 135, 136, 137, 138, 139, 584, 140, 141, 142,
6277 0, 143, 144, 145, 146, 147, 148, 0, 585, 149,
6278 150, 151, 0, 0, 0, 586, 0, 0, 0, 152,
6279 153, 154, 155, 156, 157, 158, 159, 160, 0, 161,
6280 0, 162, 163, 164, 165, 166, 167, 0, 168, 169,
6281 170, 171, 172, 0, 0, 173, 174, 175, 176, 177,
6282 0, 178, 179, 180, 0, 181, 182, 183, 0, 184,
6283 185, 186, 187, 188, 189, 190, 191, 192, 0, 193,
6284 0, 194, 195, 196, 197, 0, 198, 0, 199, 587,
6285 0, 588, 200, 201, 202, 203, 0, 204, 205, 0,
6286 206, 207, 0, 208, 209, 210, 211, 212, 589, 213,
6287 214, 215, 216, 0, 217, 218, 219, 220, 221, 222,
6288 0, 223, 590, 224, 225, 226, 227, 228, 229, 230,
6289 0, 231, 0, 232, 591, 592, 233, 593, 234, 235,
6290 236, 237, 238, 0, 0, 239, 240, 594, 241, 595,
6291 0, 242, 243, 244, 0, 0, 245, 246, 247, 248,
6292 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
6293 259, 260, 261, 596, 262, 263, 264, 265, 266, 0,
6294 267, 268, 597, 269, 0, 270, 271, 272, 273, 274,
6295 275, 0, 276, 277, 0, 0, 278, 279, 280, 0,
6296 0, 281, 282, 598, 283, 599, 284, 285, 286, 287,
6297 288, 289, 290, 291, 292, 293, 0, 294, 295, 296,
6298 297, 298, 299, 458, 301, 302, 0, 303, 304, 305,
6299 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
6300 316, 0, 317, 318, 319, 320, 321, 322, 323, 324,
6301 325, 326, 327, 328, 0, 329, 330, 600, 331, 332,
6302 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
6303 343, 0, 344, 345, 346, 347, 348, 0, 349, 350,
6304 351, 352, 353, 601, 354, 355, 356, 357, 0, 358,
6305 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
6306 369, 370, 0, 371, 372, 0, 373, 602, 374, 375,
6307 376, 377, 378, 0, 379, 380, 0, 0, 381, 382,
6308 383, 384, 385, 0, 386, 387, 388, 389, 390, 391,
6309 392, 0, 0, 393, 394, 395, 396, 397, 0, 0,
6310 398, 399, 400, 401, 402, 403, 404, 0, 405, 604,
6311 406, 407, 408, 409, 0, 0, 410, 0, 0, 411,
6312 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
6313 422, 423, 424, 425, 426, 427, 428, 429, 430, 622,
6314 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6315 0, 0, 0, 0, 96, 97, 98, 99, 100, 101,
6316 102, 103, 0, 105, 106, 107, 0, 0, 0, 0,
6317 0, 0, 0, 108, 109, 0, 110, 111, 112, 581,
6318 113, 114, 115, 116, 117, 582, 118, 119, 0, 120,
6319 121, 122, 123, 124, 0, 0, 125, 126, 127, 128,
6320 129, 0, 130, 131, 132, 133, 134, 0, 583, 0,
6321 135, 136, 137, 138, 139, 584, 140, 141, 142, 0,
6322 143, 144, 145, 146, 147, 148, 0, 585, 149, 150,
6323 151, 0, 0, 0, 586, 0, 0, 0, 152, 153,
6324 154, 155, 156, 157, 158, 159, 160, 0, 161, 0,
6325 162, 163, 164, 165, 166, 167, 0, 168, 169, 170,
6326 171, 172, 0, 0, 173, 174, 175, 176, 177, 0,
6327 178, 179, 180, 0, 181, 182, 183, 0, 184, 185,
6328 186, 187, 188, 189, 190, 191, 192, 0, 193, 0,
6329 194, 195, 196, 197, 0, 198, 0, 199, 587, 0,
6330 588, 200, 201, 202, 203, 0, 204, 205, 0, 206,
6331 207, 0, 208, 209, 210, 211, 212, 589, 213, 214,
6332 215, 216, 0, 217, 218, 219, 220, 221, 222, 0,
6333 223, 590, 224, 225, 226, 227, 228, 229, 230, 0,
6334 231, 0, 232, 591, 592, 233, 593, 234, 235, 236,
6335 237, 238, 0, 0, 239, 240, 594, 241, 595, 0,
6336 242, 243, 244, 0, 0, 245, 246, 247, 248, 249,
6337 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
6338 260, 261, 596, 262, 263, 264, 265, 266, 0, 267,
6339 268, 597, 269, 0, 270, 271, 272, 273, 274, 275,
6340 0, 276, 277, 0, 0, 278, 279, 280, 0, 0,
6341 281, 282, 598, 283, 599, 284, 285, 286, 287, 288,
6342 289, 290, 291, 292, 293, 0, 294, 295, 296, 297,
6343 298, 299, 458, 301, 302, 0, 303, 304, 305, 306,
6344 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
6345 0, 317, 318, 319, 320, 321, 322, 323, 324, 325,
6346 326, 327, 328, 0, 329, 330, 600, 331, 332, 333,
6347 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
6348 0, 344, 345, 346, 347, 348, 0, 349, 350, 351,
6349 352, 353, 601, 354, 355, 356, 357, 0, 358, 359,
6350 360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
6351 370, 0, 371, 372, 0, 373, 602, 374, 375, 376,
6352 377, 378, 0, 379, 380, 0, 0, 381, 382, 383,
6353 384, 385, 0, 386, 387, 388, 389, 390, 391, 392,
6354 0, 0, 393, 394, 395, 396, 397, 0, 0, 398,
6355 399, 400, 401, 402, 403, 404, 0, 405, 604, 406,
6356 407, 408, 409, 0, 0, 410, 0, 0, 411, 412,
6357 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
6358 423, 424, 425, 426, 427, 428, 429, 430, 95, 0,
6359 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6360 0, 0, 0, 96, 97, 98, 99, 100, 101, 102,
6361 103, 0, 105, 106, 107, 0, 0, 0, 0, 0,
6362 0, 0, 108, 109, 0, 110, 111, 112, 0, 113,
6363 114, 115, 116, 117, 0, 118, 119, 0, 120, 121,
6364 122, 123, 124, 0, 0, 125, 126, 127, 128, 129,
6365 1172, 130, 131, 132, 133, 134, 0, 0, 1173, 135,
6366 136, 137, 138, 139, 0, 140, 141, 142, 1174, 143,
6367 144, 145, 146, 147, 148, 0, 0, 149, 150, 151,
6368 0, 0, 0, 0, 0, 0, 0, 152, 153, 154,
6369 155, 156, 157, 158, 159, 160, 0, 161, 0, 162,
6370 163, 164, 165, 166, 167, 0, 168, 169, 170, 171,
6371 172, 0, 0, 173, 174, 175, 176, 177, 0, 178,
6372 179, 180, 0, 181, 182, 183, 0, 184, 185, 186,
6373 187, 188, 189, 190, 191, 192, 0, 193, 0, 194,
6374 195, 196, 197, 0, 198, 1175, 199, 0, 0, 0,
6375 200, 201, 202, 203, 0, 204, 205, 0, 206, 207,
6376 0, 208, 209, 210, 211, 1176, 0, 213, 214, 215,
6377 216, 0, 217, 218, 219, 220, 221, 222, 0, 223,
6378 0, 224, 225, 226, 227, 228, 229, 230, 0, 231,
6379 0, 232, 0, 0, 233, 0, 234, 235, 236, 237,
6380 238, 0, 0, 239, 240, 0, 241, 0, 0, 242,
6381 243, 244, 0, 0, 245, 246, 247, 248, 249, 250,
6382 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
6383 261, 0, 262, 263, 264, 265, 266, 0, 267, 268,
6384 0, 269, 0, 270, 271, 272, 273, 274, 275, 0,
6385 276, 277, 0, 0, 278, 279, 280, 0, 0, 281,
6386 282, 0, 283, 0, 284, 285, 286, 287, 288, 289,
6387 290, 291, 292, 293, 0, 294, 295, 296, 297, 298,
6388 299, 458, 301, 302, 1177, 303, 304, 305, 306, 307,
6389 308, 309, 310, 311, 312, 313, 314, 315, 316, 0,
6390 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
6391 327, 328, 0, 329, 330, 0, 331, 332, 333, 334,
6392 335, 336, 337, 338, 339, 340, 341, 342, 343, 0,
6393 344, 345, 346, 347, 348, 0, 349, 350, 351, 352,
6394 353, 0, 354, 355, 356, 357, 0, 358, 359, 360,
6395 361, 362, 363, 364, 365, 366, 367, 368, 369, 370,
6396 0, 371, 372, 0, 373, 0, 374, 375, 376, 377,
6397 378, 0, 379, 380, 0, 0, 381, 382, 383, 384,
6398 385, 0, 386, 387, 388, 389, 390, 391, 392, 0,
6399 1178, 393, 394, 395, 396, 397, 0, 0, 398, 399,
6400 400, 401, 402, 403, 404, 0, 405, 0, 406, 407,
6401 408, 409, 0, 0, 410, 0, 0, 411, 412, 413,
6402 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
6403 424, 425, 426, 427, 428, 429, 430, 95, 0, 0,
6404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6405 0, 0, 96, 97, 98, 99, 100, 101, 102, 103,
6406 0, 105, 106, 107, 0, 0, 0, 0, 0, 0,
6407 0, 108, 109, 0, 110, 111, 112, 0, 113, 114,
6408 115, 116, 117, 0, 118, 119, 0, 120, 121, 122,
6409 123, 124, 0, 0, 125, 126, 127, 128, 129, 1172,
6410 130, 131, 132, 133, 134, 0, 0, 0, 135, 136,
6411 137, 138, 139, 0, 140, 141, 142, 1174, 143, 144,
6412 145, 146, 147, 148, 0, 0, 149, 150, 151, 0,
6413 0, 0, 0, 0, 0, 0, 152, 153, 154, 155,
6414 156, 157, 158, 159, 160, 0, 161, 0, 162, 163,
6415 164, 165, 166, 167, 0, 168, 169, 170, 171, 172,
6416 0, 0, 173, 174, 175, 176, 177, 0, 178, 179,
6417 180, 0, 181, 182, 183, 0, 184, 185, 186, 187,
6418 188, 189, 190, 191, 192, 0, 193, 0, 194, 195,
6419 196, 197, 0, 198, 1175, 199, 0, 0, 0, 200,
6420 201, 202, 203, 0, 204, 205, 0, 206, 207, 0,
6421 208, 209, 210, 211, 212, 0, 213, 214, 215, 216,
6422 0, 217, 218, 219, 220, 221, 222, 0, 223, 0,
6423 224, 225, 226, 227, 228, 229, 230, 0, 231, 0,
6424 232, 0, 0, 233, 0, 234, 235, 236, 237, 238,
6425 0, 0, 239, 240, 0, 241, 1570, 0, 242, 243,
6426 244, 0, 0, 245, 246, 247, 248, 249, 250, 251,
6427 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
6428 0, 262, 263, 264, 265, 266, 0, 267, 268, 0,
6429 269, 0, 270, 271, 272, 273, 274, 275, 0, 276,
6430 277, 0, 0, 278, 279, 280, 0, 0, 281, 282,
6431 0, 283, 0, 284, 285, 286, 287, 288, 289, 290,
6432 291, 292, 293, 0, 294, 295, 296, 297, 298, 299,
6433 458, 301, 302, 1177, 303, 304, 305, 306, 307, 308,
6434 309, 310, 311, 312, 313, 314, 315, 316, 0, 317,
6435 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
6436 328, 0, 329, 330, 0, 331, 332, 333, 334, 335,
6437 336, 337, 338, 339, 340, 341, 342, 343, 0, 344,
6438 345, 346, 347, 348, 0, 349, 350, 351, 352, 353,
6439 0, 354, 355, 356, 357, 0, 358, 359, 360, 361,
6440 362, 363, 364, 365, 366, 367, 368, 369, 370, 0,
6441 371, 372, 0, 373, 0, 374, 375, 376, 377, 378,
6442 0, 379, 380, 0, 0, 381, 382, 383, 384, 385,
6443 0, 386, 387, 388, 389, 390, 391, 392, 0, 1178,
6444 393, 394, 395, 396, 397, 0, 0, 398, 399, 400,
6445 401, 402, 403, 404, 0, 405, 0, 406, 407, 408,
6446 409, 0, 0, 410, 0, 0, 411, 412, 413, 414,
6447 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
6448 425, 426, 427, 428, 429, 430, 95, 0, 0, 0,
6449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6450 0, 96, 97, 98, 99, 100, 101, 102, 103, 0,
6451 105, 106, 107, 3, 4, 0, 0, 0, 0, 0,
6452 108, 109, 0, 110, 111, 112, 0, 113, 114, 115,
6453 116, 117, 0, 118, 119, 0, 120, 121, 122, 123,
6454 124, 0, 0, 125, 126, 127, 128, 129, 0, 130,
6455 131, 132, 133, 134, 0, 0, 0, 135, 136, 137,
6456 138, 139, 0, 140, 141, 142, 0, 143, 144, 145,
6457 146, 147, 148, 0, 0, 149, 150, 151, 0, 0,
6458 0, 0, 0, 0, 0, 152, 153, 154, 155, 156,
6459 157, 158, 159, 160, 0, 161, 0, 162, 163, 164,
6460 165, 166, 167, 0, 168, 169, 170, 171, 172, 0,
6461 0, 173, 174, 175, 176, 177, 0, 178, 179, 180,
6462 0, 181, 182, 183, 0, 184, 185, 186, 187, 188,
6463 189, 190, 191, 192, 0, 193, 0, 194, 195, 196,
6464 197, 0, 198, 0, 199, 0, 0, 0, 200, 201,
6465 202, 203, 0, 204, 205, 0, 206, 207, 0, 208,
6466 209, 210, 211, 212, 0, 213, 214, 215, 216, 0,
6467 217, 218, 219, 220, 221, 222, 0, 223, 0, 224,
6468 225, 226, 227, 228, 229, 230, 0, 231, 0, 232,
6469 0, 0, 233, 0, 234, 235, 236, 237, 238, 0,
6470 0, 239, 240, 0, 241, 0, 0, 242, 243, 244,
6471 0, 0, 245, 246, 247, 248, 249, 250, 251, 252,
6472 253, 254, 255, 256, 257, 258, 259, 260, 261, 0,
6473 262, 263, 264, 265, 266, 0, 267, 268, 0, 269,
6474 0, 270, 271, 272, 273, 274, 275, 0, 276, 277,
6475 0, 0, 278, 279, 280, 0, 0, 281, 282, 0,
6476 283, 0, 284, 285, 286, 287, 288, 289, 290, 291,
6477 292, 293, 0, 294, 295, 296, 297, 298, 299, 458,
6478 301, 302, 0, 303, 304, 305, 306, 307, 308, 309,
6479 310, 311, 312, 313, 314, 315, 316, 0, 317, 318,
6480 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
6481 0, 329, 330, 0, 331, 332, 333, 334, 335, 336,
6482 337, 338, 339, 340, 341, 342, 343, 0, 344, 345,
6483 346, 347, 348, 0, 349, 350, 351, 352, 353, 0,
6484 354, 355, 356, 357, 0, 358, 359, 360, 361, 362,
6485 363, 364, 365, 366, 367, 368, 369, 370, 0, 371,
6486 372, 0, 373, 0, 374, 375, 376, 377, 378, 0,
6487 379, 380, 0, 0, 381, 382, 383, 384, 385, 0,
6488 386, 387, 388, 389, 390, 391, 392, 0, 0, 393,
6489 394, 395, 396, 397, 0, 0, 398, 399, 400, 401,
6490 402, 403, 404, 0, 405, 0, 406, 407, 408, 409,
6491 0, 0, 410, 0, 0, 411, 412, 413, 414, 415,
6492 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
6493 426, 427, 428, 429, 430, 95, 0, 0, 0, 0,
6494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6495 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
6496 106, 107, 0, 0, 0, 0, 0, 0, 0, 108,
6497 109, 0, 110, 111, 112, 0, 113, 114, 115, 116,
6498 117, 0, 118, 119, 0, 120, 121, 122, 123, 124,
6499 0, 0, 125, 126, 127, 128, 129, 0, 130, 131,
6500 132, 133, 134, 0, 0, 0, 135, 136, 137, 138,
6501 139, 0, 140, 141, 142, 0, 143, 144, 145, 146,
6502 147, 148, 0, 0, 149, 150, 151, 0, 0, 0,
6503 0, 0, 0, 0, 152, 153, 154, 155, 156, 157,
6504 158, 159, 160, 0, 161, 0, 162, 163, 164, 165,
6505 166, 167, 0, 168, 169, 170, 171, 172, 0, 0,
6506 173, 174, 175, 176, 177, 0, 178, 179, 180, 0,
6507 181, 182, 183, 0, 184, 185, 186, 187, 188, 189,
6508 190, 191, 192, 0, 193, 0, 194, 195, 196, 197,
6509 0, 198, 0, 199, 0, 0, 0, 200, 201, 202,
6510 203, 0, 204, 205, 0, 206, 207, 0, 208, 209,
6511 210, 211, 212, 0, 213, 214, 215, 216, 0, 217,
6512 218, 219, 220, 221, 222, 0, 223, 0, 224, 225,
6513 226, 227, 228, 229, 230, 0, 231, 0, 232, 0,
6514 0, 233, 0, 234, 235, 236, 237, 238, 0, 0,
6515 239, 240, 0, 241, 0, 0, 242, 243, 244, 0,
6516 0, 245, 246, 247, 248, 249, 250, 251, 252, 253,
6517 254, 255, 256, 257, 258, 259, 260, 261, 0, 262,
6518 263, 264, 265, 266, 0, 267, 268, 0, 269, 0,
6519 270, 271, 272, 273, 274, 275, 0, 276, 277, 0,
6520 0, 278, 279, 280, 0, 0, 281, 282, 0, 283,
6521 0, 284, 285, 286, 287, 288, 289, 290, 291, 292,
6522 293, 0, 294, 295, 296, 297, 298, 299, 300, 301,
6523 302, 0, 303, 304, 305, 306, 307, 308, 309, 310,
6524 311, 312, 313, 314, 315, 316, 0, 317, 318, 319,
6525 320, 321, 322, 323, 324, 325, 326, 327, 328, 0,
6526 329, 330, 0, 331, 332, 333, 334, 335, 336, 337,
6527 338, 339, 340, 341, 342, 343, 0, 344, 345, 346,
6528 347, 348, 0, 349, 350, 351, 352, 353, 0, 354,
6529 355, 356, 357, 0, 358, 359, 360, 361, 362, 363,
6530 364, 365, 366, 367, 368, 369, 370, 0, 371, 372,
6531 0, 373, 0, 374, 375, 376, 377, 378, 0, 379,
6532 380, 0, 0, 381, 382, 383, 384, 385, 0, 386,
6533 387, 388, 389, 390, 391, 392, 0, 0, 393, 394,
6534 395, 396, 397, 0, 0, 398, 399, 400, 401, 402,
6535 403, 404, 0, 405, 0, 406, 407, 408, 409, 0,
6536 0, 410, 0, 0, 411, 412, 413, 414, 415, 416,
6537 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
6538 427, 428, 429, 430, 95, 0, 0, 0, 0, 0,
6539 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,
6540 97, 98, 99, 100, 101, 102, 103, 475, 105, 106,
6541 107, 0, 0, 0, 0, 0, 0, 0, 108, 109,
6542 0, 110, 111, 112, 0, 113, 114, 115, 116, 117,
6543 0, 118, 119, 0, 120, 121, 122, 123, 124, 0,
6544 0, 125, 126, 127, 128, 129, 0, 130, 131, 132,
6545 133, 134, 0, 0, 0, 135, 136, 137, 138, 139,
6546 0, 140, 141, 142, 0, 143, 144, 145, 146, 147,
6547 148, 0, 0, 149, 150, 151, 0, 0, 0, 0,
6548 0, 0, 0, 152, 153, 154, 155, 156, 157, 158,
6549 159, 160, 0, 161, 0, 162, 163, 164, 165, 166,
6550 167, 0, 168, 169, 170, 171, 172, 0, 0, 173,
6551 174, 175, 176, 177, 0, 178, 179, 180, 0, 181,
6552 182, 183, 0, 184, 185, 186, 187, 188, 189, 190,
6553 191, 192, 0, 193, 0, 194, 195, 196, 197, 0,
6554 198, 0, 199, 0, 0, 0, 200, 201, 202, 203,
6555 0, 204, 205, 0, 206, 207, 0, 208, 209, 210,
6556 211, 212, 0, 213, 214, 215, 216, 0, 217, 218,
6557 219, 220, 221, 222, 0, 223, 0, 224, 225, 226,
6558 227, 228, 229, 230, 0, 231, 0, 232, 0, 0,
6559 233, 0, 234, 235, 236, 237, 238, 0, 0, 239,
6560 240, 0, 241, 0, 0, 242, 243, 244, 0, 0,
6561 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
6562 255, 256, 257, 258, 259, 260, 261, 0, 262, 263,
6563 264, 265, 266, 0, 267, 268, 0, 269, 0, 270,
6564 271, 272, 273, 274, 275, 0, 276, 277, 0, 0,
6565 278, 279, 280, 0, 0, 281, 282, 0, 283, 0,
6566 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
6567 0, 294, 295, 296, 297, 298, 299, 458, 301, 302,
6568 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
6569 312, 313, 314, 315, 316, 0, 317, 318, 319, 320,
6570 321, 322, 323, 324, 325, 326, 327, 328, 0, 329,
6571 330, 0, 331, 332, 333, 334, 335, 336, 337, 338,
6572 339, 340, 341, 342, 343, 0, 344, 345, 346, 347,
6573 348, 0, 349, 350, 351, 352, 353, 0, 354, 355,
6574 356, 357, 0, 358, 359, 360, 361, 362, 363, 364,
6575 365, 366, 367, 368, 369, 370, 0, 371, 372, 0,
6576 373, 0, 374, 375, 376, 377, 378, 0, 476, 380,
6577 0, 0, 477, 382, 383, 384, 385, 0, 386, 387,
6578 388, 389, 390, 391, 392, 0, 0, 393, 394, 395,
6579 396, 397, 0, 0, 398, 399, 400, 401, 402, 403,
6580 404, 0, 405, 0, 406, 407, 408, 409, 0, 0,
6581 410, 0, 0, 411, 412, 413, 414, 415, 416, 417,
6582 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
6583 428, 429, 430, 95, 0, 0, 0, 0, 0, 0,
6584 0, 0, 0, 0, 0, 0, 0, 0, 96, 97,
6585 98, 99, 100, 101, 102, 103, 0, 105, 106, 107,
6586 0, 0, 0, 0, 0, 0, 0, 108, 109, 0,
6587 110, 111, 112, 0, 113, 114, 115, 116, 117, 0,
6588 118, 119, 0, 120, 121, 122, 123, 124, 0, 0,
6589 125, 126, 127, 128, 129, 0, 130, 131, 132, 133,
6590 134, 0, 0, 0, 135, 136, 137, 138, 139, 0,
6591 140, 141, 142, 0, 143, 144, 145, 146, 147, 148,
6592 0, 0, 149, 150, 151, 0, 0, 0, 0, 0,
6593 0, 0, 152, 153, 154, 155, 156, 157, 158, 159,
6594 160, 0, 161, 0, 162, 163, 164, 165, 166, 167,
6595 0, 168, 169, 170, 171, 172, 0, 0, 173, 174,
6596 175, 176, 177, 0, 178, 179, 180, 0, 181, 182,
6597 183, 0, 184, 185, 186, 187, 188, 189, 190, 191,
6598 192, 0, 193, 0, 194, 195, 196, 197, 0, 198,
6599 0, 199, 0, 0, 0, 200, 201, 202, 203, 0,
6600 204, 205, 0, 206, 207, 0, 208, 209, 210, 211,
6601 212, 0, 213, 214, 215, 216, 0, 217, 218, 219,
6602 220, 221, 222, 0, 223, 0, 224, 225, 226, 227,
6603 228, 229, 230, 0, 231, 0, 232, 0, 0, 233,
6604 0, 234, 235, 236, 237, 238, 0, 0, 239, 240,
6605 0, 241, 0, 0, 242, 243, 244, 0, 0, 245,
6606 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
6607 256, 257, 258, 259, 260, 261, 0, 262, 263, 264,
6608 265, 266, 0, 267, 268, 0, 269, 0, 270, 271,
6609 272, 273, 274, 275, 0, 276, 277, 0, 495, 278,
6610 279, 280, 0, 0, 281, 282, 0, 283, 0, 284,
6611 285, 286, 287, 288, 289, 290, 291, 292, 293, 0,
6612 294, 295, 296, 297, 298, 299, 458, 301, 302, 0,
6613 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
6614 313, 314, 315, 316, 0, 317, 318, 319, 320, 321,
6615 322, 323, 324, 325, 326, 327, 328, 0, 329, 330,
6616 0, 331, 332, 333, 334, 335, 336, 337, 338, 339,
6617 340, 341, 342, 343, 0, 344, 345, 346, 347, 348,
6618 0, 349, 350, 351, 352, 353, 0, 354, 355, 356,
6619 357, 0, 358, 359, 360, 361, 362, 363, 364, 365,
6620 366, 367, 368, 369, 370, 0, 371, 372, 0, 373,
6621 0, 374, 375, 376, 377, 378, 0, 379, 380, 0,
6622 0, 381, 382, 383, 384, 385, 0, 386, 387, 388,
6623 389, 390, 391, 392, 0, 0, 393, 394, 395, 396,
6624 397, 0, 0, 398, 399, 400, 401, 402, 403, 404,
6625 0, 405, 0, 406, 407, 408, 409, 0, 0, 410,
6626 0, 0, 411, 412, 413, 414, 415, 416, 417, 418,
6627 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
6628 429, 430, 95, 0, 0, 0, 0, 0, 0, 0,
6629 0, 0, 0, 0, 0, 0, 0, 96, 97, 98,
6630 99, 100, 101, 102, 103, 528, 105, 106, 107, 0,
6631 0, 0, 0, 0, 0, 0, 108, 109, 0, 110,
6632 111, 112, 0, 113, 114, 115, 116, 117, 0, 118,
6633 119, 0, 120, 121, 122, 123, 124, 0, 0, 125,
6634 126, 127, 128, 129, 0, 130, 131, 132, 133, 134,
6635 0, 0, 0, 135, 136, 137, 138, 139, 0, 140,
6636 141, 142, 0, 143, 144, 145, 146, 147, 148, 0,
6637 0, 149, 150, 151, 0, 0, 0, 0, 0, 0,
6638 0, 152, 153, 154, 155, 156, 157, 158, 159, 160,
6639 0, 161, 0, 162, 163, 164, 165, 166, 167, 0,
6640 168, 169, 170, 171, 172, 0, 0, 173, 174, 175,
6641 176, 177, 0, 178, 179, 180, 0, 181, 182, 183,
6642 0, 184, 185, 186, 187, 188, 189, 190, 191, 192,
6643 0, 193, 0, 194, 195, 196, 197, 0, 198, 0,
6644 199, 0, 0, 0, 200, 201, 202, 203, 0, 204,
6645 205, 0, 206, 207, 0, 208, 209, 210, 211, 212,
6646 0, 213, 214, 215, 216, 0, 217, 218, 219, 220,
6647 221, 222, 0, 223, 0, 224, 225, 226, 227, 228,
6648 229, 230, 0, 231, 0, 232, 0, 0, 233, 0,
6649 234, 235, 236, 237, 238, 0, 0, 239, 240, 0,
6650 241, 0, 0, 242, 243, 244, 0, 0, 245, 246,
6651 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
6652 257, 258, 259, 260, 261, 0, 262, 263, 264, 265,
6653 266, 0, 267, 268, 0, 269, 0, 270, 271, 272,
6654 273, 274, 275, 0, 276, 277, 0, 0, 278, 279,
6655 280, 0, 0, 281, 282, 0, 283, 0, 284, 285,
6656 286, 287, 288, 289, 290, 291, 292, 293, 0, 294,
6657 295, 296, 297, 298, 299, 458, 301, 302, 0, 303,
6658 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
6659 314, 315, 316, 0, 317, 318, 319, 320, 321, 322,
6660 323, 324, 325, 326, 327, 328, 0, 329, 330, 0,
6661 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
6662 341, 342, 343, 0, 344, 345, 346, 347, 348, 0,
6663 349, 350, 351, 352, 353, 0, 354, 355, 356, 357,
6664 0, 358, 359, 360, 361, 362, 363, 364, 365, 366,
6665 367, 368, 369, 370, 0, 371, 372, 0, 373, 0,
6666 374, 375, 376, 377, 378, 0, 529, 380, 0, 0,
6667 530, 382, 383, 384, 385, 0, 386, 387, 388, 389,
6668 390, 391, 392, 0, 0, 393, 394, 395, 396, 397,
6669 0, 0, 398, 399, 400, 401, 402, 403, 404, 0,
6670 405, 0, 406, 407, 408, 409, 0, 0, 410, 0,
6671 0, 411, 412, 413, 414, 415, 416, 417, 418, 419,
6672 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
6673 430, 95, 0, 0, 0, 0, 0, 0, 0, 0,
6674 0, 0, 0, 0, 0, 0, 96, 97, 98, 99,
6675 100, 101, 102, 103, 0, 105, 106, 107, 0, 0,
6676 0, 0, 0, 0, 0, 108, 109, 0, 110, 111,
6677 112, 0, 113, 114, 115, 116, 117, 0, 118, 119,
6678 0, 120, 121, 122, 123, 124, 0, 0, 125, 126,
6679 127, 128, 129, 0, 130, 131, 132, 133, 134, 0,
6680 0, 0, 135, 136, 137, 138, 139, 0, 140, 141,
6681 142, 0, 143, 144, 145, 146, 147, 148, 0, 0,
6682 149, 150, 151, 0, 0, 0, 0, 0, 0, 0,
6683 152, 153, 154, 155, 156, 157, 158, 159, 160, 0,
6684 161, 0, 162, 163, 164, 165, 166, 167, 0, 168,
6685 169, 170, 171, 172, 0, 0, 173, 174, 175, 176,
6686 177, 0, 178, 179, 180, 0, 181, 182, 183, 0,
6687 184, 185, 186, 187, 188, 189, 190, 191, 192, 0,
6688 193, 0, 194, 195, 196, 197, 0, 198, 0, 199,
6689 0, 0, 0, 200, 201, 202, 203, 0, 204, 205,
6690 0, 206, 207, 0, 208, 209, 210, 211, 537, 0,
6691 213, 214, 215, 216, 0, 217, 218, 219, 220, 221,
6692 222, 0, 223, 0, 224, 225, 226, 227, 228, 229,
6693 230, 0, 231, 0, 232, 0, 0, 233, 0, 234,
6694 235, 236, 237, 238, 0, 0, 239, 240, 0, 241,
6695 0, 0, 242, 243, 244, 0, 0, 245, 246, 247,
6696 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
6697 258, 259, 260, 261, 0, 262, 263, 264, 265, 266,
6698 0, 267, 268, 0, 269, 0, 270, 271, 272, 273,
6699 274, 275, 0, 276, 277, 0, 495, 278, 279, 280,
6700 0, 0, 281, 282, 0, 283, 0, 284, 285, 286,
6701 287, 288, 289, 290, 291, 292, 293, 0, 294, 295,
6702 296, 297, 298, 299, 458, 301, 302, 0, 303, 304,
6703 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
6704 315, 316, 0, 317, 318, 319, 320, 321, 322, 323,
6705 324, 325, 326, 327, 328, 0, 329, 330, 0, 331,
6706 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
6707 342, 343, 0, 344, 345, 346, 347, 348, 0, 349,
6708 350, 351, 352, 353, 0, 354, 355, 356, 357, 0,
6709 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
6710 368, 369, 370, 0, 371, 372, 0, 373, 0, 374,
6711 375, 376, 377, 378, 0, 379, 380, 0, 0, 381,
6712 382, 383, 384, 385, 0, 386, 387, 388, 389, 390,
6713 391, 392, 0, 0, 393, 394, 395, 396, 397, 0,
6714 0, 398, 399, 400, 401, 402, 403, 404, 0, 405,
6715 0, 406, 407, 408, 409, 0, 0, 410, 0, 0,
6716 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
6717 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
6718 95, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6719 0, 0, 0, 0, 0, 96, 97, 98, 99, 100,
6720 101, 102, 103, 559, 105, 106, 107, 0, 0, 0,
6721 0, 0, 0, 0, 108, 109, 0, 110, 111, 112,
6722 0, 113, 114, 115, 116, 117, 0, 118, 119, 0,
6723 120, 121, 122, 123, 124, 0, 0, 125, 126, 127,
6724 128, 129, 0, 130, 131, 132, 133, 134, 0, 0,
6725 0, 135, 136, 137, 138, 139, 0, 140, 141, 142,
6726 0, 143, 144, 145, 146, 147, 148, 0, 0, 149,
6727 150, 151, 0, 0, 0, 0, 0, 0, 0, 152,
6728 153, 154, 155, 156, 157, 158, 159, 160, 0, 161,
6729 0, 162, 163, 164, 165, 166, 167, 0, 168, 169,
6730 170, 171, 172, 0, 0, 173, 174, 175, 176, 177,
6731 0, 178, 179, 180, 0, 181, 182, 183, 0, 184,
6732 185, 186, 187, 188, 189, 190, 191, 192, 0, 193,
6733 0, 194, 195, 196, 197, 0, 198, 0, 199, 0,
6734 0, 0, 200, 201, 202, 203, 0, 204, 205, 0,
6735 206, 207, 0, 208, 209, 210, 211, 212, 0, 213,
6736 214, 215, 216, 0, 217, 218, 219, 220, 221, 222,
6737 0, 223, 0, 224, 225, 226, 227, 228, 229, 230,
6738 0, 231, 0, 232, 0, 0, 233, 0, 234, 235,
6739 236, 237, 238, 0, 0, 239, 240, 0, 241, 0,
6740 0, 242, 243, 244, 0, 0, 245, 246, 247, 248,
6741 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
6742 259, 260, 261, 0, 262, 263, 264, 265, 266, 0,
6743 267, 268, 0, 269, 0, 270, 271, 272, 273, 274,
6744 275, 0, 276, 277, 0, 0, 278, 279, 280, 0,
6745 0, 281, 282, 0, 283, 0, 284, 285, 286, 287,
6746 288, 289, 290, 291, 292, 293, 0, 294, 295, 296,
6747 297, 298, 299, 458, 301, 302, 0, 303, 304, 305,
6748 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
6749 316, 0, 317, 318, 319, 320, 321, 322, 323, 324,
6750 325, 326, 327, 328, 0, 329, 330, 0, 331, 332,
6751 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
6752 343, 0, 344, 345, 346, 347, 348, 0, 349, 350,
6753 351, 352, 353, 0, 354, 355, 356, 357, 0, 358,
6754 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
6755 369, 370, 0, 371, 372, 0, 373, 0, 374, 375,
6756 376, 377, 378, 0, 379, 380, 0, 0, 381, 382,
6757 383, 384, 385, 0, 386, 387, 388, 389, 390, 391,
6758 392, 0, 0, 393, 394, 395, 396, 397, 0, 0,
6759 398, 399, 400, 401, 402, 403, 404, 0, 405, 0,
6760 406, 407, 408, 409, 0, 0, 410, 0, 0, 411,
6761 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
6762 422, 423, 424, 425, 426, 427, 428, 429, 430, 95,
6763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6764 0, 0, 0, 0, 96, 97, 98, 99, 100, 101,
6765 102, 103, 0, 105, 106, 107, 0, 0, 0, 0,
6766 0, 0, 0, 108, 109, 0, 110, 111, 112, 0,
6767 113, 114, 115, 116, 117, 0, 118, 119, 0, 120,
6768 121, 122, 123, 124, 0, 0, 125, 126, 127, 128,
6769 129, 0, 130, 131, 132, 133, 134, 0, 0, 0,
6770 135, 136, 137, 138, 139, 0, 140, 141, 142, 0,
6771 143, 144, 145, 146, 147, 148, 0, 0, 149, 150,
6772 151, 0, 0, 0, 0, 0, 0, 0, 152, 153,
6773 154, 155, 156, 157, 158, 159, 160, 0, 161, 0,
6774 162, 163, 164, 165, 166, 167, 0, 168, 169, 170,
6775 171, 172, 0, 0, 173, 174, 175, 176, 177, 0,
6776 178, 179, 180, 0, 181, 182, 183, 0, 184, 185,
6777 186, 187, 188, 189, 190, 191, 192, 0, 193, 0,
6778 194, 195, 196, 197, 0, 198, 0, 199, 0, 0,
6779 0, 200, 201, 202, 1423, 0, 204, 205, 0, 206,
6780 207, 0, 208, 209, 210, 211, 212, 0, 213, 214,
6781 215, 216, 0, 217, 218, 219, 220, 221, 222, 0,
6782 223, 0, 224, 225, 226, 227, 228, 229, 230, 0,
6783 231, 0, 232, 0, 0, 233, 0, 234, 235, 236,
6784 237, 238, 0, 0, 239, 240, 0, 241, 0, 0,
6785 242, 243, 1424, 0, 0, 245, 246, 247, 248, 249,
6786 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
6787 260, 261, 0, 262, 263, 264, 265, 266, 0, 267,
6788 268, 0, 269, 0, 270, 271, 272, 273, 274, 275,
6789 0, 276, 277, 0, 0, 278, 279, 280, 0, 0,
6790 281, 282, 0, 283, 0, 284, 285, 286, 287, 288,
6791 289, 290, 291, 292, 293, 0, 294, 295, 296, 297,
6792 298, 299, 458, 301, 302, 0, 303, 304, 305, 306,
6793 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
6794 0, 317, 318, 319, 320, 321, 322, 323, 324, 325,
6795 326, 327, 328, 0, 329, 330, 0, 331, 332, 333,
6796 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
6797 0, 344, 345, 346, 347, 348, 0, 349, 350, 351,
6798 352, 353, 0, 354, 355, 356, 357, 0, 358, 359,
6799 360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
6800 370, 0, 371, 372, 1425, 373, 0, 374, 1426, 376,
6801 1427, 378, 0, 379, 380, 0, 0, 381, 382, 383,
6802 384, 385, 0, 386, 387, 388, 389, 390, 391, 392,
6803 0, 0, 393, 394, 1428, 396, 397, 0, 0, 398,
6804 399, 400, 401, 402, 403, 404, 0, 405, 0, 406,
6805 407, 408, 409, 0, 0, 410, 0, 0, 411, 412,
6806 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
6807 423, 424, 425, 426, 427, 428, 429, 430, 95, 0,
6808 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6809 0, 0, 0, 96, 97, 98, 99, 100, 101, 102,
6810 103, 0, 105, 106, 107, 0, 0, 0, 0, 0,
6811 1952, 0, 108, 109, 0, 110, 111, 112, 0, 113,
6812 114, 115, 116, 117, 0, 118, 119, 0, 120, 121,
6813 122, 123, 124, 0, 0, 125, 126, 127, 128, 129,
6814 0, 130, 131, 132, 133, 134, 0, 0, 0, 135,
6815 136, 137, 138, 139, 0, 140, 141, 142, 0, 143,
6816 144, 145, 146, 147, 148, 0, 0, 149, 150, 151,
6817 0, 0, 0, 0, 0, 0, 0, 152, 153, 154,
6818 155, 156, 157, 158, 159, 160, 0, 161, 0, 162,
6819 163, 164, 165, 166, 167, 0, 168, 169, 170, 171,
6820 172, 0, 0, 173, 174, 175, 176, 177, 0, 178,
6821 179, 180, 0, 181, 182, 183, 0, 184, 185, 186,
6822 187, 188, 189, 190, 191, 192, 0, 193, 0, 194,
6823 195, 196, 197, 0, 198, 0, 199, 0, 0, 0,
6824 200, 201, 202, 203, 0, 204, 205, 0, 206, 207,
6825 0, 208, 209, 210, 211, 212, 0, 213, 214, 215,
6826 216, 0, 217, 218, 219, 220, 221, 222, 0, 223,
6827 0, 224, 225, 226, 227, 228, 229, 230, 0, 231,
6828 0, 232, 0, 0, 233, 0, 234, 235, 236, 237,
6829 238, 0, 0, 239, 240, 0, 241, 0, 0, 242,
6830 243, 244, 0, 0, 245, 246, 247, 248, 249, 250,
6831 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
6832 261, 0, 262, 263, 264, 265, 266, 0, 267, 268,
6833 0, 269, 0, 270, 271, 272, 273, 274, 275, 0,
6834 276, 277, 0, 0, 278, 279, 280, 0, 0, 281,
6835 282, 0, 283, 0, 284, 285, 286, 287, 288, 289,
6836 290, 291, 292, 293, 0, 294, 295, 296, 297, 298,
6837 299, 458, 301, 302, 0, 303, 304, 305, 306, 307,
6838 308, 309, 310, 311, 312, 313, 314, 315, 316, 0,
6839 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
6840 327, 328, 0, 329, 330, 0, 331, 332, 333, 334,
6841 335, 336, 337, 338, 339, 340, 341, 342, 343, 0,
6842 344, 345, 346, 347, 348, 0, 349, 350, 351, 352,
6843 353, 0, 354, 355, 356, 357, 0, 358, 359, 360,
6844 361, 362, 363, 364, 365, 366, 367, 368, 369, 370,
6845 0, 371, 372, 0, 373, 0, 374, 375, 376, 377,
6846 378, 0, 379, 380, 0, 0, 381, 382, 383, 384,
6847 385, 0, 386, 387, 388, 389, 390, 391, 392, 0,
6848 0, 393, 394, 395, 396, 397, 0, 0, 398, 399,
6849 400, 401, 402, 403, 404, 0, 405, 0, 406, 407,
6850 408, 409, 0, 0, 410, 0, 0, 411, 412, 413,
6851 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
6852 424, 425, 426, 427, 428, 429, 430, 95, 0, 0,
6853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6854 0, 0, 96, 97, 98, 99, 100, 101, 102, 103,
6855 0, 105, 106, 107, 0, 0, 0, 0, 0, 1966,
6856 0, 108, 109, 0, 110, 111, 112, 0, 113, 114,
6857 115, 116, 117, 0, 118, 119, 0, 120, 121, 122,
6858 123, 124, 0, 0, 125, 126, 127, 128, 129, 0,
6859 130, 131, 132, 133, 134, 0, 0, 0, 135, 136,
6860 137, 138, 139, 0, 140, 141, 142, 0, 143, 144,
6861 145, 146, 147, 148, 0, 0, 149, 150, 151, 0,
6862 0, 0, 0, 0, 0, 0, 152, 153, 154, 155,
6863 156, 157, 158, 159, 160, 0, 161, 0, 162, 163,
6864 164, 165, 166, 167, 0, 168, 169, 170, 171, 172,
6865 0, 0, 173, 174, 175, 176, 177, 0, 178, 179,
6866 180, 0, 181, 182, 183, 0, 184, 185, 186, 187,
6867 188, 189, 190, 191, 192, 0, 193, 0, 194, 195,
6868 196, 197, 0, 198, 0, 199, 0, 0, 0, 200,
6869 201, 202, 203, 0, 204, 205, 0, 206, 207, 0,
6870 208, 209, 210, 211, 212, 0, 213, 214, 215, 216,
6871 0, 217, 218, 219, 220, 221, 222, 0, 223, 0,
6872 224, 225, 226, 227, 228, 229, 230, 0, 231, 0,
6873 232, 0, 0, 233, 0, 234, 235, 236, 237, 238,
6874 0, 0, 239, 240, 0, 241, 0, 0, 242, 243,
6875 244, 0, 0, 245, 246, 247, 248, 249, 250, 251,
6876 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
6877 0, 262, 263, 264, 265, 266, 0, 267, 268, 0,
6878 269, 0, 270, 271, 272, 273, 274, 275, 0, 276,
6879 277, 0, 0, 278, 279, 280, 0, 0, 281, 282,
6880 0, 283, 0, 284, 285, 286, 287, 288, 289, 290,
6881 291, 292, 293, 0, 294, 295, 296, 297, 298, 299,
6882 458, 301, 302, 0, 303, 304, 305, 306, 307, 308,
6883 309, 310, 311, 312, 313, 314, 315, 316, 0, 317,
6884 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
6885 328, 0, 329, 330, 0, 331, 332, 333, 334, 335,
6886 336, 337, 338, 339, 340, 341, 342, 343, 0, 344,
6887 345, 346, 347, 348, 0, 349, 350, 351, 352, 353,
6888 0, 354, 355, 356, 357, 0, 358, 359, 360, 361,
6889 362, 363, 364, 365, 366, 367, 368, 369, 370, 0,
6890 371, 372, 0, 373, 0, 374, 375, 376, 377, 378,
6891 0, 379, 380, 0, 0, 381, 382, 383, 384, 385,
6892 0, 386, 387, 388, 389, 390, 391, 392, 0, 0,
6893 393, 394, 395, 396, 397, 0, 0, 398, 399, 400,
6894 401, 402, 403, 404, 0, 405, 0, 406, 407, 408,
6895 409, 0, 0, 410, 0, 0, 411, 412, 413, 414,
6896 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
6897 425, 426, 427, 428, 429, 430, 95, 0, 0, 0,
6898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6899 0, 96, 97, 98, 99, 100, 101, 102, 103, 0,
6900 105, 106, 107, 0, 0, 0, 0, 0, 0, 0,
6901 108, 109, 0, 110, 111, 112, 0, 113, 114, 115,
6902 116, 117, 0, 118, 119, 0, 120, 121, 122, 123,
6903 124, 0, 0, 125, 126, 127, 128, 129, 0, 130,
6904 131, 132, 133, 134, 0, 0, 0, 135, 136, 137,
6905 138, 139, 0, 140, 141, 142, 0, 143, 144, 145,
6906 146, 147, 148, 0, 0, 149, 150, 151, 0, 0,
6907 0, 0, 0, 0, 0, 152, 153, 154, 155, 156,
6908 157, 158, 159, 160, 0, 161, 0, 162, 163, 164,
6909 165, 166, 167, 0, 168, 169, 170, 171, 172, 0,
6910 0, 173, 174, 175, 176, 177, 0, 178, 179, 180,
6911 0, 181, 182, 183, 0, 184, 185, 186, 187, 188,
6912 189, 190, 191, 192, 0, 193, 0, 194, 195, 196,
6913 197, 0, 198, 0, 199, 0, 0, 0, 200, 201,
6914 202, 203, 0, 204, 205, 0, 206, 207, 0, 208,
6915 209, 210, 211, 212, 0, 213, 214, 215, 216, 0,
6916 217, 218, 219, 220, 221, 222, 0, 223, 0, 224,
6917 225, 226, 227, 228, 229, 230, 0, 231, 0, 232,
6918 0, 0, 233, 0, 234, 235, 236, 237, 238, 0,
6919 0, 239, 240, 0, 241, 0, 0, 242, 243, 244,
6920 0, 0, 245, 246, 247, 248, 249, 250, 251, 252,
6921 253, 254, 255, 256, 257, 258, 259, 260, 261, 0,
6922 262, 263, 264, 265, 266, 0, 267, 268, 0, 269,
6923 0, 270, 271, 272, 273, 274, 275, 0, 276, 277,
6924 0, 0, 278, 279, 280, 0, 0, 281, 282, 0,
6925 283, 0, 284, 285, 286, 287, 288, 289, 290, 291,
6926 292, 293, 0, 294, 295, 296, 297, 298, 299, 458,
6927 301, 302, 0, 303, 304, 305, 306, 307, 308, 309,
6928 310, 311, 312, 313, 314, 315, 316, 0, 317, 318,
6929 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
6930 0, 329, 330, 0, 331, 332, 333, 334, 335, 336,
6931 337, 338, 339, 340, 341, 342, 343, 0, 344, 345,
6932 346, 347, 348, 0, 349, 350, 351, 352, 353, 0,
6933 354, 355, 356, 357, 0, 358, 359, 360, 361, 362,
6934 363, 364, 365, 366, 367, 368, 369, 370, 0, 371,
6935 372, 0, 373, 0, 374, 375, 376, 377, 378, 0,
6936 379, 380, 0, 0, 381, 382, 383, 384, 385, 0,
6937 386, 387, 388, 389, 390, 391, 392, 0, 0, 393,
6938 394, 395, 396, 397, 0, 0, 398, 399, 400, 401,
6939 402, 403, 404, 0, 405, 0, 406, 407, 408, 409,
6940 0, 0, 410, 0, 0, 411, 412, 413, 414, 415,
6941 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
6942 426, 427, 428, 429, 430, 95, 0, 0, 0, 0,
6943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6944 96, 97, 98, 99, 100, 101, 102, 103, 0, 105,
6945 106, 107, 0, 0, 0, 0, 0, 0, 0, 108,
6946 109, 0, 110, 111, 112, 0, 113, 114, 115, 116,
6947 117, 0, 118, 119, 0, 120, 121, 122, 123, 124,
6948 0, 0, 125, 126, 127, 128, 129, 0, 130, 131,
6949 132, 133, 134, 0, 0, 0, 135, 136, 137, 138,
6950 139, 0, 140, 141, 142, 0, 143, 144, 145, 146,
6951 147, 148, 0, 0, 149, 150, 151, 0, 0, 0,
6952 0, 0, 0, 0, 152, 153, 154, 155, 156, 157,
6953 158, 159, 160, 0, 161, 0, 162, 163, 164, 165,
6954 166, 167, 0, 168, 169, 170, 171, 172, 0, 0,
6955 173, 174, 175, 176, 177, 0, 178, 179, 180, 0,
6956 181, 182, 183, 0, 184, 185, 186, 187, 188, 189,
6957 190, 191, 192, 0, 193, 0, 194, 195, 196, 197,
6958 0, 198, 0, 199, 0, 0, 0, 200, 201, 202,
6959 203, 0, 204, 205, 0, 206, 207, 0, 208, 209,
6960 210, 211, 212, 0, 213, 214, 215, 216, 0, 217,
6961 218, 219, 220, 221, 222, 0, 223, 0, 224, 225,
6962 226, 227, 228, 229, 230, 0, 231, 0, 232, 0,
6963 0, 233, 0, 234, 235, 236, 237, 238, 0, 0,
6964 239, 240, 0, 241, 0, 0, 242, 243, 487, 0,
6965 0, 245, 246, 247, 248, 249, 250, 251, 252, 253,
6966 254, 255, 256, 257, 258, 259, 260, 261, 0, 262,
6967 263, 264, 265, 266, 0, 267, 268, 0, 269, 0,
6968 270, 271, 272, 273, 274, 275, 0, 276, 277, 0,
6969 0, 278, 279, 280, 0, 0, 281, 282, 0, 283,
6970 0, 284, 285, 286, 287, 288, 289, 290, 291, 292,
6971 293, 0, 294, 295, 296, 297, 298, 299, 458, 301,
6972 302, 0, 303, 304, 305, 306, 307, 308, 309, 310,
6973 311, 312, 313, 314, 315, 316, 0, 317, 318, 319,
6974 320, 321, 322, 323, 324, 325, 326, 327, 328, 0,
6975 329, 330, 0, 331, 332, 333, 334, 335, 336, 337,
6976 488, 339, 340, 341, 342, 343, 0, 344, 345, 346,
6977 347, 489, 0, 349, 350, 351, 352, 353, 0, 354,
6978 355, 356, 357, 0, 358, 359, 360, 361, 362, 363,
6979 364, 365, 366, 367, 368, 369, 370, 0, 371, 372,
6980 0, 373, 0, 374, 375, 376, 377, 378, 0, 490,
6981 380, 0, 0, 381, 382, 383, 384, 385, 0, 386,
6982 387, 388, 389, 390, 391, 392, 0, 0, 393, 394,
6983 395, 396, 397, 0, 0, 398, 399, 400, 401, 402,
6984 403, 404, 0, 405, 0, 406, 407, 408, 409, 0,
6985 0, 410, 0, 0, 411, 412, 413, 414, 415, 416,
6986 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
6987 427, 428, 429, 430, 95, 0, 0, 0, 0, 0,
6988 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,
6989 97, 98, 99, 100, 101, 102, 103, 0, 105, 106,
6990 107, 0, 0, 0, 0, 0, 0, 0, 108, 109,
6991 0, 110, 111, 112, 0, 113, 114, 115, 116, 117,
6992 0, 118, 119, 0, 120, 121, 122, 123, 124, 0,
6993 0, 125, 126, 127, 128, 129, 0, 130, 131, 132,
6994 133, 134, 0, 0, 0, 135, 136, 137, 138, 139,
6995 0, 140, 141, 142, 0, 143, 144, 145, 146, 147,
6996 148, 0, 0, 149, 150, 151, 0, 0, 0, 0,
6997 0, 0, 0, 152, 153, 154, 155, 156, 157, 158,
6998 159, 160, 0, 161, 0, 162, 163, 164, 165, 166,
6999 167, 0, 168, 169, 170, 171, 172, 0, 0, 173,
7000 174, 175, 176, 177, 0, 178, 179, 180, 0, 181,
7001 182, 183, 0, 184, 185, 186, 187, 188, 189, 190,
7002 191, 192, 0, 193, 0, 194, 195, 196, 197, 0,
7003 198, 0, 199, 0, 0, 0, 200, 201, 202, 203,
7004 0, 204, 205, 0, 206, 207, 0, 208, 209, 210,
7005 211, 212, 0, 213, 214, 215, 216, 0, 217, 218,
7006 219, 220, 221, 222, 0, 223, 0, 224, 225, 226,
7007 227, 228, 229, 230, 0, 231, 0, 232, 0, 0,
7008 233, 0, 234, 235, 236, 237, 238, 0, 0, 239,
7009 240, 0, 241, 0, 0, 242, 243, 244, 0, 0,
7010 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
7011 255, 256, 257, 258, 259, 260, 261, 0, 262, 263,
7012 264, 265, 266, 0, 267, 268, 0, 269, 0, 270,
7013 271, 272, 273, 274, 275, 0, 276, 277, 0, 0,
7014 278, 279, 280, 0, 0, 281, 282, 0, 283, 0,
7015 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
7016 0, 294, 295, 296, 297, 298, 299, 458, 301, 302,
7017 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
7018 312, 313, 314, 503, 316, 0, 317, 318, 319, 320,
7019 321, 322, 323, 324, 325, 326, 327, 328, 0, 329,
7020 330, 0, 331, 332, 333, 334, 335, 336, 337, 338,
7021 339, 340, 341, 342, 343, 0, 344, 345, 346, 347,
7022 348, 0, 349, 350, 351, 352, 353, 0, 354, 355,
7023 356, 357, 0, 358, 359, 360, 361, 362, 363, 364,
7024 365, 366, 367, 368, 369, 370, 0, 371, 372, 0,
7025 373, 0, 374, 375, 376, 377, 378, 0, 379, 380,
7026 0, 0, 381, 382, 383, 384, 385, 0, 386, 387,
7027 388, 389, 390, 391, 392, 0, 0, 393, 394, 395,
7028 396, 397, 0, 0, 398, 399, 400, 401, 402, 403,
7029 404, 0, 405, 0, 406, 407, 408, 409, 0, 0,
7030 410, 0, 0, 411, 412, 413, 414, 415, 416, 417,
7031 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
7032 428, 429, 430, 95, 0, 0, 0, 0, 0, 0,
7033 0, 0, 0, 0, 0, 0, 0, 0, 96, 97,
7034 98, 99, 100, 101, 102, 103, 0, 105, 106, 107,
7035 0, 0, 0, 0, 0, 0, 0, 108, 109, 0,
7036 110, 111, 112, 0, 113, 114, 115, 116, 117, 0,
7037 118, 119, 0, 120, 121, 122, 123, 124, 0, 0,
7038 125, 126, 127, 128, 129, 0, 130, 131, 132, 133,
7039 134, 0, 0, 0, 135, 136, 137, 138, 139, 0,
7040 140, 141, 142, 0, 143, 144, 145, 146, 147, 148,
7041 0, 0, 149, 150, 151, 0, 0, 0, 0, 0,
7042 0, 0, 152, 153, 154, 155, 156, 157, 158, 159,
7043 160, 0, 161, 0, 162, 163, 164, 165, 166, 167,
7044 0, 168, 169, 170, 171, 172, 0, 0, 173, 174,
7045 175, 176, 177, 0, 178, 179, 180, 0, 181, 182,
7046 183, 0, 184, 185, 186, 187, 188, 189, 190, 191,
7047 192, 0, 193, 0, 194, 195, 196, 197, 0, 198,
7048 0, 199, 0, 0, 0, 200, 201, 202, 203, 0,
7049 204, 205, 0, 206, 207, 0, 208, 209, 210, 211,
7050 532, 0, 213, 214, 215, 216, 0, 217, 218, 219,
7051 220, 221, 222, 0, 223, 0, 224, 225, 226, 227,
7052 228, 229, 230, 0, 231, 0, 232, 0, 0, 233,
7053 0, 234, 235, 236, 237, 238, 0, 0, 239, 240,
7054 0, 241, 0, 0, 242, 243, 244, 0, 0, 245,
7055 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
7056 256, 257, 258, 259, 260, 261, 0, 262, 263, 264,
7057 265, 266, 0, 267, 268, 0, 269, 0, 270, 271,
7058 272, 273, 274, 275, 0, 276, 277, 0, 0, 278,
7059 279, 280, 0, 0, 281, 282, 0, 283, 0, 284,
7060 285, 286, 287, 288, 289, 290, 291, 292, 293, 0,
7061 294, 295, 296, 297, 298, 299, 458, 301, 302, 0,
7062 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
7063 313, 314, 315, 316, 0, 317, 318, 319, 320, 321,
7064 322, 323, 324, 325, 326, 327, 328, 0, 329, 330,
7065 0, 331, 332, 333, 334, 335, 336, 337, 338, 339,
7066 340, 341, 342, 343, 0, 344, 345, 346, 347, 348,
7067 0, 349, 350, 351, 352, 353, 0, 354, 355, 356,
7068 357, 0, 358, 359, 360, 361, 362, 363, 364, 365,
7069 366, 367, 368, 369, 370, 0, 371, 372, 0, 373,
7070 0, 374, 375, 376, 377, 378, 0, 379, 380, 0,
7071 0, 381, 382, 383, 384, 385, 0, 386, 387, 388,
7072 389, 390, 391, 392, 0, 0, 393, 394, 395, 396,
7073 397, 0, 0, 398, 399, 400, 401, 402, 403, 404,
7074 0, 405, 0, 406, 407, 408, 409, 0, 0, 410,
7075 0, 0, 411, 412, 413, 414, 415, 416, 417, 418,
7076 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
7077 429, 430, 95, 0, 0, 0, 0, 0, 0, 0,
7078 0, 0, 0, 0, 0, 0, 0, 96, 97, 98,
7079 99, 100, 101, 102, 103, 0, 105, 106, 107, 0,
7080 0, 0, 0, 0, 0, 0, 108, 109, 0, 110,
7081 111, 112, 0, 113, 114, 115, 116, 117, 0, 118,
7082 119, 0, 120, 121, 122, 123, 124, 0, 0, 125,
7083 126, 127, 128, 129, 0, 130, 131, 132, 133, 134,
7084 0, 0, 0, 135, 136, 137, 138, 139, 0, 140,
7085 141, 142, 0, 143, 144, 145, 146, 147, 148, 0,
7086 0, 149, 150, 151, 0, 0, 0, 0, 0, 0,
7087 0, 152, 153, 154, 155, 156, 157, 158, 159, 160,
7088 0, 161, 0, 162, 163, 164, 165, 166, 167, 0,
7089 168, 169, 170, 171, 172, 0, 0, 173, 174, 175,
7090 176, 177, 0, 178, 179, 180, 0, 181, 182, 183,
7091 0, 184, 185, 186, 187, 188, 189, 190, 191, 192,
7092 0, 193, 0, 194, 195, 196, 197, 0, 198, 0,
7093 199, 0, 0, 0, 200, 201, 202, 203, 0, 204,
7094 205, 0, 206, 207, 0, 208, 209, 210, 211, 535,
7095 0, 213, 214, 215, 216, 0, 217, 218, 219, 220,
7096 221, 222, 0, 223, 0, 224, 225, 226, 227, 228,
7097 229, 230, 0, 231, 0, 232, 0, 0, 233, 0,
7098 234, 235, 236, 237, 238, 0, 0, 239, 240, 0,
7099 241, 0, 0, 242, 243, 244, 0, 0, 245, 246,
7100 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
7101 257, 258, 259, 260, 261, 0, 262, 263, 264, 265,
7102 266, 0, 267, 268, 0, 269, 0, 270, 271, 272,
7103 273, 274, 275, 0, 276, 277, 0, 0, 278, 279,
7104 280, 0, 0, 281, 282, 0, 283, 0, 284, 285,
7105 286, 287, 288, 289, 290, 291, 292, 293, 0, 294,
7106 295, 296, 297, 298, 299, 458, 301, 302, 0, 303,
7107 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
7108 314, 315, 316, 0, 317, 318, 319, 320, 321, 322,
7109 323, 324, 325, 326, 327, 328, 0, 329, 330, 0,
7110 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
7111 341, 342, 343, 0, 344, 345, 346, 347, 348, 0,
7112 349, 350, 351, 352, 353, 0, 354, 355, 356, 357,
7113 0, 358, 359, 360, 361, 362, 363, 364, 365, 366,
7114 367, 368, 369, 370, 0, 371, 372, 0, 373, 0,
7115 374, 375, 376, 377, 378, 0, 379, 380, 0, 0,
7116 381, 382, 383, 384, 385, 0, 386, 387, 388, 389,
7117 390, 391, 392, 0, 0, 393, 394, 395, 396, 397,
7118 0, 0, 398, 399, 400, 401, 402, 403, 404, 0,
7119 405, 0, 406, 407, 408, 409, 0, 0, 410, 0,
7120 0, 411, 412, 413, 414, 415, 416, 417, 418, 419,
7121 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
7122 430, 95, 0, 0, 0, 0, 0, 0, 0, 0,
7123 0, 0, 0, 0, 0, 0, 96, 97, 98, 99,
7124 100, 101, 102, 103, 0, 105, 106, 107, 0, 0,
7125 0, 0, 0, 0, 0, 108, 109, 0, 110, 111,
7126 112, 0, 113, 114, 115, 116, 117, 0, 118, 119,
7127 0, 120, 121, 122, 123, 124, 0, 0, 125, 126,
7128 127, 128, 129, 0, 130, 131, 132, 133, 134, 0,
7129 0, 0, 135, 136, 137, 138, 139, 0, 140, 141,
7130 142, 0, 143, 144, 145, 146, 147, 148, 0, 0,
7131 149, 150, 151, 0, 0, 0, 0, 0, 0, 0,
7132 152, 153, 154, 155, 156, 157, 158, 159, 160, 0,
7133 161, 0, 162, 163, 164, 165, 166, 167, 0, 168,
7134 169, 170, 171, 172, 0, 0, 173, 174, 175, 176,
7135 177, 0, 178, 179, 180, 0, 181, 182, 183, 0,
7136 184, 185, 186, 187, 188, 189, 190, 191, 192, 0,
7137 193, 0, 194, 195, 196, 197, 0, 198, 0, 199,
7138 0, 0, 0, 200, 201, 202, 203, 0, 204, 205,
7139 0, 206, 207, 0, 208, 209, 210, 211, 539, 0,
7140 213, 214, 215, 216, 0, 217, 218, 219, 220, 221,
7141 222, 0, 223, 0, 224, 225, 226, 227, 228, 229,
7142 230, 0, 231, 0, 232, 0, 0, 233, 0, 234,
7143 235, 236, 237, 238, 0, 0, 239, 240, 0, 241,
7144 0, 0, 242, 243, 244, 0, 0, 245, 246, 247,
7145 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
7146 258, 259, 260, 261, 0, 262, 263, 264, 265, 266,
7147 0, 267, 268, 0, 269, 0, 270, 271, 272, 273,
7148 274, 275, 0, 276, 277, 0, 0, 278, 279, 280,
7149 0, 0, 281, 282, 0, 283, 0, 284, 285, 286,
7150 287, 288, 289, 290, 291, 292, 293, 0, 294, 295,
7151 296, 297, 298, 299, 458, 301, 302, 0, 303, 304,
7152 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
7153 315, 316, 0, 317, 318, 319, 320, 321, 322, 323,
7154 324, 325, 326, 327, 328, 0, 329, 330, 0, 331,
7155 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
7156 342, 343, 0, 344, 345, 346, 347, 348, 0, 349,
7157 350, 351, 352, 353, 0, 354, 355, 356, 357, 0,
7158 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
7159 368, 369, 370, 0, 371, 372, 0, 373, 0, 374,
7160 375, 376, 377, 378, 0, 379, 380, 0, 0, 381,
7161 382, 383, 384, 385, 0, 386, 387, 388, 389, 390,
7162 391, 392, 0, 0, 393, 394, 395, 396, 397, 0,
7163 0, 398, 399, 400, 401, 402, 403, 404, 0, 405,
7164 0, 406, 407, 408, 409, 0, 0, 410, 0, 0,
7165 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
7166 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
7167 95, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7168 0, 0, 0, 0, 0, 96, 97, 98, 99, 100,
7169 101, 102, 103, 0, 105, 106, 107, 0, 0, 0,
7170 0, 0, 0, 0, 108, 109, 0, 110, 111, 112,
7171 0, 113, 114, 115, 116, 117, 0, 118, 119, 0,
7172 120, 121, 122, 123, 124, 0, 0, 125, 126, 127,
7173 128, 129, 0, 130, 131, 132, 133, 134, 0, 0,
7174 0, 135, 136, 137, 138, 139, 0, 140, 141, 142,
7175 0, 143, 144, 145, 146, 147, 148, 0, 0, 149,
7176 150, 151, 0, 0, 0, 0, 0, 0, 0, 152,
7177 153, 154, 155, 156, 157, 158, 159, 160, 0, 161,
7178 0, 162, 163, 164, 165, 166, 167, 0, 168, 169,
7179 170, 171, 172, 0, 0, 173, 174, 175, 176, 177,
7180 0, 178, 179, 180, 0, 181, 182, 183, 0, 184,
7181 185, 186, 187, 188, 189, 190, 191, 192, 0, 193,
7182 0, 194, 195, 196, 197, 0, 198, 0, 199, 0,
7183 0, 0, 200, 201, 202, 203, 0, 204, 205, 0,
7184 206, 207, 0, 208, 209, 210, 211, 552, 0, 213,
7185 214, 215, 216, 0, 217, 218, 219, 220, 221, 222,
7186 0, 223, 0, 224, 225, 226, 227, 228, 229, 230,
7187 0, 231, 0, 232, 0, 0, 233, 0, 234, 235,
7188 236, 237, 238, 0, 0, 239, 240, 0, 241, 0,
7189 0, 242, 243, 244, 0, 0, 245, 246, 247, 248,
7190 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
7191 259, 260, 261, 0, 262, 263, 264, 265, 266, 0,
7192 267, 268, 0, 269, 0, 270, 271, 272, 273, 274,
7193 275, 0, 276, 277, 0, 0, 278, 279, 280, 0,
7194 0, 281, 282, 0, 283, 0, 284, 285, 286, 287,
7195 288, 289, 290, 291, 292, 293, 0, 294, 295, 296,
7196 297, 298, 299, 458, 301, 302, 0, 303, 304, 305,
7197 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
7198 316, 0, 317, 318, 319, 320, 321, 322, 323, 324,
7199 325, 326, 327, 328, 0, 329, 330, 0, 331, 332,
7200 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
7201 343, 0, 344, 345, 346, 347, 348, 0, 349, 350,
7202 351, 352, 353, 0, 354, 355, 356, 357, 0, 358,
7203 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
7204 369, 370, 0, 371, 372, 0, 373, 0, 374, 375,
7205 376, 377, 378, 0, 379, 380, 0, 0, 381, 382,
7206 383, 384, 385, 0, 386, 387, 388, 389, 390, 391,
7207 392, 0, 0, 393, 394, 395, 396, 397, 0, 0,
7208 398, 399, 400, 401, 402, 403, 404, 0, 405, 0,
7209 406, 407, 408, 409, 0, 0, 410, 0, 0, 411,
7210 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
7211 422, 423, 424, 425, 426, 427, 428, 429, 430, 95,
7212 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7213 0, 0, 0, 0, 96, 97, 98, 99, 100, 101,
7214 102, 103, 0, 105, 106, 107, 0, 0, 0, 0,
7215 0, 0, 0, 108, 109, 0, 110, 111, 112, 0,
7216 113, 114, 115, 116, 117, 0, 118, 119, 0, 120,
7217 121, 122, 123, 124, 0, 0, 125, 126, 127, 128,
7218 129, 0, 130, 131, 132, 133, 134, 0, 0, 0,
7219 135, 136, 137, 138, 139, 0, 140, 141, 142, 0,
7220 143, 144, 145, 146, 147, 148, 0, 0, 149, 150,
7221 151, 0, 0, 0, 0, 0, 0, 0, 152, 153,
7222 154, 155, 156, 157, 158, 159, 160, 0, 161, 0,
7223 162, 163, 164, 165, 166, 167, 0, 168, 169, 170,
7224 171, 172, 0, 0, 173, 174, 175, 176, 177, 0,
7225 178, 179, 180, 0, 181, 182, 183, 0, 184, 185,
7226 186, 187, 188, 189, 190, 191, 192, 0, 193, 0,
7227 194, 195, 196, 197, 0, 198, 0, 199, 0, 0,
7228 0, 200, 201, 202, 203, 0, 204, 205, 0, 206,
7229 207, 0, 208, 209, 210, 211, 567, 0, 213, 214,
7230 215, 216, 0, 217, 218, 219, 220, 221, 222, 0,
7231 223, 0, 224, 225, 226, 227, 228, 229, 230, 0,
7232 231, 0, 232, 0, 0, 233, 0, 234, 235, 236,
7233 237, 238, 0, 0, 239, 240, 0, 241, 0, 0,
7234 242, 243, 244, 0, 0, 245, 246, 247, 248, 249,
7235 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
7236 260, 261, 0, 262, 263, 264, 265, 266, 0, 267,
7237 268, 0, 269, 0, 270, 271, 272, 273, 274, 275,
7238 0, 276, 277, 0, 0, 278, 279, 280, 0, 0,
7239 281, 282, 0, 283, 0, 284, 285, 286, 287, 288,
7240 289, 290, 291, 292, 293, 0, 294, 295, 296, 297,
7241 298, 299, 458, 301, 302, 0, 303, 304, 305, 306,
7242 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
7243 0, 317, 318, 319, 320, 321, 322, 323, 324, 325,
7244 326, 327, 328, 0, 329, 330, 0, 331, 332, 333,
7245 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
7246 0, 344, 345, 346, 347, 348, 0, 349, 350, 351,
7247 352, 353, 0, 354, 355, 356, 357, 0, 358, 359,
7248 360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
7249 370, 0, 371, 372, 0, 373, 0, 374, 375, 376,
7250 377, 378, 0, 379, 380, 0, 0, 381, 382, 383,
7251 384, 385, 0, 386, 387, 388, 389, 390, 391, 392,
7252 0, 0, 393, 394, 395, 396, 397, 0, 0, 398,
7253 399, 400, 401, 402, 403, 404, 0, 405, 0, 406,
7254 407, 408, 409, 0, 0, 410, 0, 0, 411, 412,
7255 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
7256 423, 424, 425, 426, 427, 428, 429, 430, 95, 0,
7257 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7258 0, 0, 0, 96, 97, 98, 99, 100, 101, 102,
7259 103, 0, 105, 106, 107, 0, 0, 0, 0, 0,
7260 0, 0, 108, 109, 0, 110, 111, 112, 0, 113,
7261 114, 115, 116, 117, 0, 118, 119, 0, 120, 121,
7262 122, 123, 124, 0, 0, 125, 126, 127, 128, 129,
7263 0, 130, 131, 132, 133, 134, 0, 0, 0, 135,
7264 136, 137, 138, 139, 0, 140, 141, 142, 0, 143,
7265 144, 145, 146, 147, 148, 0, 0, 149, 150, 151,
7266 0, 0, 0, 0, 0, 0, 0, 152, 153, 154,
7267 155, 156, 157, 158, 159, 160, 0, 161, 0, 162,
7268 163, 164, 165, 166, 167, 0, 168, 169, 170, 171,
7269 172, 0, 0, 173, 174, 175, 176, 177, 0, 178,
7270 179, 180, 0, 181, 182, 183, 0, 184, 185, 186,
7271 187, 188, 189, 190, 191, 192, 0, 193, 0, 194,
7272 195, 196, 197, 0, 198, 0, 199, 0, 0, 0,
7273 200, 201, 202, 203, 0, 204, 205, 0, 206, 207,
7274 0, 208, 209, 210, 211, 571, 0, 213, 214, 215,
7275 216, 0, 217, 218, 219, 220, 221, 222, 0, 223,
7276 0, 224, 225, 226, 227, 228, 229, 230, 0, 231,
7277 0, 232, 0, 0, 233, 0, 234, 235, 236, 237,
7278 238, 0, 0, 239, 240, 0, 241, 0, 0, 242,
7279 243, 244, 0, 0, 245, 246, 247, 248, 249, 250,
7280 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
7281 261, 0, 262, 263, 264, 265, 266, 0, 267, 268,
7282 0, 269, 0, 270, 271, 272, 273, 274, 275, 0,
7283 276, 277, 0, 0, 278, 279, 280, 0, 0, 281,
7284 282, 0, 283, 0, 284, 285, 286, 287, 288, 289,
7285 290, 291, 292, 293, 0, 294, 295, 296, 297, 298,
7286 299, 458, 301, 302, 0, 303, 304, 305, 306, 307,
7287 308, 309, 310, 311, 312, 313, 314, 315, 316, 0,
7288 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
7289 327, 328, 0, 329, 330, 0, 331, 332, 333, 334,
7290 335, 336, 337, 338, 339, 340, 341, 342, 343, 0,
7291 344, 345, 346, 347, 348, 0, 349, 350, 351, 352,
7292 353, 0, 354, 355, 356, 357, 0, 358, 359, 360,
7293 361, 362, 363, 364, 365, 366, 367, 368, 369, 370,
7294 0, 371, 372, 0, 373, 0, 374, 375, 376, 377,
7295 378, 0, 379, 380, 0, 0, 381, 382, 383, 384,
7296 385, 0, 386, 387, 388, 389, 390, 391, 392, 0,
7297 0, 393, 394, 395, 396, 397, 0, 0, 398, 399,
7298 400, 401, 402, 403, 404, 0, 405, 0, 406, 407,
7299 408, 409, 0, 0, 410, 0, 0, 411, 412, 413,
7300 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
7301 424, 425, 426, 427, 428, 429, 430, 95, 0, 0,
7302 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7303 0, 0, 96, 97, 98, 99, 100, 101, 102, 103,
7304 0, 105, 106, 107, 0, 0, 0, 0, 0, 0,
7305 0, 108, 109, 0, 110, 111, 112, 0, 113, 114,
7306 115, 116, 117, 0, 118, 119, 0, 120, 121, 122,
7307 123, 124, 0, 0, 125, 126, 127, 128, 129, 0,
7308 130, 131, 132, 133, 134, 0, 0, 0, 135, 136,
7309 137, 138, 139, 0, 140, 141, 142, 0, 143, 144,
7310 145, 146, 147, 148, 0, 0, 149, 150, 151, 0,
7311 0, 0, 0, 0, 0, 0, 152, 153, 154, 155,
7312 156, 157, 158, 159, 160, 0, 161, 0, 162, 163,
7313 164, 165, 166, 167, 0, 168, 169, 170, 171, 172,
7314 0, 0, 173, 174, 175, 176, 177, 0, 178, 179,
7315 180, 0, 181, 182, 183, 0, 184, 185, 186, 187,
7316 188, 189, 190, 191, 192, 0, 193, 0, 194, 195,
7317 196, 197, 0, 198, 0, 199, 0, 0, 0, 200,
7318 201, 202, 203, 0, 204, 205, 0, 206, 207, 0,
7319 208, 209, 210, 211, 574, 0, 213, 214, 215, 216,
7320 0, 217, 218, 219, 220, 221, 222, 0, 223, 0,
7321 224, 225, 226, 227, 228, 229, 230, 0, 231, 0,
7322 232, 0, 0, 233, 0, 234, 235, 236, 237, 238,
7323 0, 0, 239, 240, 0, 241, 0, 0, 242, 243,
7324 244, 0, 0, 245, 246, 247, 248, 249, 250, 251,
7325 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
7326 0, 262, 263, 264, 265, 266, 0, 267, 268, 0,
7327 269, 0, 270, 271, 272, 273, 274, 275, 0, 276,
7328 277, 0, 0, 278, 279, 280, 0, 0, 281, 282,
7329 0, 283, 0, 284, 285, 286, 287, 288, 289, 290,
7330 291, 292, 293, 0, 294, 295, 296, 297, 298, 299,
7331 458, 301, 302, 0, 303, 304, 305, 306, 307, 308,
7332 309, 310, 311, 312, 313, 314, 315, 316, 0, 317,
7333 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
7334 328, 0, 329, 330, 0, 331, 332, 333, 334, 335,
7335 336, 337, 338, 339, 340, 341, 342, 343, 0, 344,
7336 345, 346, 347, 348, 0, 349, 350, 351, 352, 353,
7337 0, 354, 355, 356, 357, 0, 358, 359, 360, 361,
7338 362, 363, 364, 365, 366, 367, 368, 369, 370, 0,
7339 371, 372, 0, 373, 0, 374, 375, 376, 377, 378,
7340 0, 379, 380, 0, 0, 381, 382, 383, 384, 385,
7341 0, 386, 387, 388, 389, 390, 391, 392, 0, 0,
7342 393, 394, 395, 396, 397, 0, 0, 398, 399, 400,
7343 401, 402, 403, 404, 0, 405, 0, 406, 407, 408,
7344 409, 0, 0, 410, 0, 0, 411, 412, 413, 414,
7345 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
7346 425, 426, 427, 428, 429, 430, 95, 0, 0, 0,
7347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7348 0, 96, 97, 98, 99, 100, 101, 102, 103, 0,
7349 105, 106, 107, 0, 0, 0, 0, 0, 0, 0,
7350 108, 109, 0, 110, 111, 112, 0, 113, 114, 115,
7351 116, 117, 0, 118, 119, 0, 120, 121, 122, 123,
7352 124, 0, 0, 125, 126, 127, 128, 129, 0, 130,
7353 131, 132, 133, 134, 0, 0, 0, 135, 136, 137,
7354 138, 139, 0, 140, 141, 142, 0, 143, 144, 145,
7355 146, 147, 148, 0, 0, 149, 150, 151, 0, 0,
7356 0, 0, 0, 0, 0, 152, 153, 154, 155, 156,
7357 157, 158, 159, 160, 0, 161, 0, 162, 163, 164,
7358 165, 166, 167, 0, 168, 169, 170, 171, 172, 0,
7359 0, 173, 174, 175, 176, 177, 0, 178, 179, 180,
7360 0, 181, 182, 183, 0, 184, 185, 186, 187, 188,
7361 189, 190, 191, 192, 0, 193, 0, 194, 195, 196,
7362 197, 0, 198, 0, 199, 0, 0, 0, 200, 201,
7363 202, 203, 0, 204, 205, 0, 206, 207, 0, 208,
7364 209, 210, 211, 212, 0, 213, 214, 215, 216, 0,
7365 217, 218, 219, 220, 221, 222, 0, 223, 0, 224,
7366 225, 226, 227, 228, 229, 230, 0, 231, 0, 232,
7367 0, 0, 233, 0, 234, 235, 236, 237, 238, 0,
7368 0, 239, 240, 0, 241, 0, 0, 242, 243, 244,
7369 0, 0, 245, 246, 247, 248, 249, 250, 251, 252,
7370 253, 254, 255, 256, 257, 258, 259, 260, 261, 0,
7371 262, 263, 264, 265, 266, 0, 267, 268, 0, 269,
7372 0, 270, 271, 272, 273, 274, 275, 0, 276, 277,
7373 0, 0, 278, 279, 280, 0, 0, 281, 282, 0,
7374 283, 0, 284, 285, 286, 287, 288, 289, 290, 291,
7375 292, 293, 0, 294, 295, 296, 297, 298, 299, 458,
7376 301, 302, 0, 303, 304, 305, 306, 307, 308, 309,
7377 310, 311, 312, 313, 314, 315, 316, 0, 317, 318,
7378 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
7379 0, 329, 330, 0, 331, 332, 333, 334, 335, 336,
7380 337, 488, 339, 340, 341, 342, 343, 0, 344, 345,
7381 346, 347, 348, 0, 349, 350, 351, 352, 353, 0,
7382 354, 355, 356, 357, 0, 358, 359, 360, 361, 362,
7383 363, 364, 365, 366, 367, 368, 369, 370, 0, 371,
7384 372, 0, 373, 0, 374, 375, 376, 377, 378, 0,
7385 490, 380, 0, 0, 381, 382, 383, 384, 385, 0,
7386 386, 387, 388, 389, 390, 391, 392, 0, 0, 393,
7387 394, 395, 396, 397, 0, 0, 398, 399, 400, 401,
7388 402, 403, 404, 0, 405, 0, 406, 407, 408, 409,
7389 0, 0, 410, 0, 0, 411, 412, 413, 414, 415,
7390 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
7391 426, 427, 428, 429, 430, 95, 0, 0, 0, 0,
7392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7393 96, 97, 98, 99, 100, 101, 102, 103, 0, 105,
7394 106, 107, 0, 0, 0, 0, 0, 0, 0, 108,
7395 109, 0, 110, 111, 112, 0, 113, 114, 115, 116,
7396 117, 0, 118, 119, 0, 120, 121, 122, 123, 124,
7397 0, 0, 125, 126, 127, 128, 129, 0, 130, 131,
7398 132, 133, 134, 0, 0, 0, 135, 136, 137, 138,
7399 139, 0, 140, 141, 142, 0, 143, 144, 145, 146,
7400 147, 148, 0, 0, 149, 150, 151, 0, 0, 0,
7401 0, 0, 0, 0, 152, 153, 154, 155, 156, 157,
7402 158, 159, 160, 0, 161, 0, 162, 163, 164, 165,
7403 166, 167, 0, 168, 169, 170, 171, 172, 0, 0,
7404 173, 174, 175, 176, 177, 0, 178, 179, 180, 0,
7405 181, 182, 183, 0, 184, 185, 186, 187, 188, 189,
7406 190, 191, 192, 0, 193, 0, 194, 195, 196, 197,
7407 0, 198, 0, 199, 0, 0, 0, 200, 201, 202,
7408 203, 0, 204, 205, 0, 206, 207, 0, 208, 209,
7409 210, 211, 824, 0, 213, 214, 215, 216, 0, 217,
7410 218, 219, 220, 221, 222, 0, 223, 0, 224, 225,
7411 226, 227, 228, 229, 230, 0, 231, 0, 232, 0,
7412 0, 233, 0, 234, 235, 236, 237, 238, 0, 0,
7413 239, 240, 0, 241, 0, 0, 242, 243, 244, 0,
7414 0, 245, 246, 247, 248, 249, 250, 251, 252, 253,
7415 254, 255, 256, 257, 258, 259, 260, 261, 0, 262,
7416 263, 264, 265, 266, 0, 267, 268, 0, 269, 0,
7417 270, 271, 272, 273, 274, 275, 0, 276, 277, 0,
7418 0, 278, 279, 280, 0, 0, 281, 282, 0, 283,
7419 0, 284, 285, 286, 287, 288, 289, 290, 291, 292,
7420 293, 0, 294, 295, 296, 297, 298, 299, 458, 301,
7421 302, 0, 303, 304, 305, 306, 307, 308, 309, 310,
7422 311, 312, 313, 314, 315, 316, 0, 317, 318, 319,
7423 320, 321, 322, 323, 324, 325, 326, 327, 328, 0,
7424 329, 330, 0, 331, 332, 333, 334, 335, 336, 337,
7425 338, 339, 340, 341, 342, 343, 0, 344, 345, 346,
7426 347, 348, 0, 349, 350, 351, 352, 353, 0, 354,
7427 355, 356, 357, 0, 358, 359, 360, 361, 362, 363,
7428 364, 365, 366, 367, 368, 369, 370, 0, 371, 372,
7429 0, 373, 0, 374, 375, 376, 377, 378, 0, 379,
7430 380, 0, 0, 381, 382, 383, 384, 385, 0, 386,
7431 387, 388, 389, 390, 391, 392, 0, 0, 393, 394,
7432 395, 396, 397, 0, 0, 398, 399, 400, 401, 402,
7433 403, 404, 0, 405, 0, 406, 407, 408, 409, 0,
7434 0, 410, 0, 0, 411, 412, 413, 414, 415, 416,
7435 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
7436 427, 428, 429, 430, 95, 0, 0, 0, 0, 0,
7437 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,
7438 97, 98, 99, 100, 101, 102, 103, 0, 105, 106,
7439 107, 0, 0, 0, 0, 0, 0, 0, 108, 109,
7440 0, 110, 111, 112, 0, 113, 114, 115, 116, 117,
7441 0, 118, 119, 0, 120, 121, 122, 123, 124, 0,
7442 0, 125, 126, 127, 128, 129, 0, 130, 131, 132,
7443 133, 134, 0, 0, 0, 135, 136, 137, 138, 139,
7444 0, 140, 141, 142, 0, 143, 144, 145, 146, 147,
7445 148, 0, 0, 149, 150, 151, 0, 0, 0, 0,
7446 0, 0, 0, 152, 153, 154, 155, 156, 157, 158,
7447 159, 160, 0, 161, 0, 162, 163, 164, 165, 166,
7448 167, 0, 168, 169, 170, 171, 172, 0, 0, 173,
7449 174, 175, 176, 177, 0, 178, 179, 180, 0, 181,
7450 182, 183, 0, 184, 185, 186, 187, 188, 189, 190,
7451 191, 192, 0, 193, 0, 194, 195, 196, 197, 0,
7452 198, 0, 199, 0, 0, 0, 200, 201, 202, 203,
7453 0, 204, 205, 0, 206, 207, 0, 208, 209, 210,
7454 211, 826, 0, 213, 214, 215, 216, 0, 217, 218,
7455 219, 220, 221, 222, 0, 223, 0, 224, 225, 226,
7456 227, 228, 229, 230, 0, 231, 0, 232, 0, 0,
7457 233, 0, 234, 235, 236, 237, 238, 0, 0, 239,
7458 240, 0, 241, 0, 0, 242, 243, 244, 0, 0,
7459 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
7460 255, 256, 257, 258, 259, 260, 261, 0, 262, 263,
7461 264, 265, 266, 0, 267, 268, 0, 269, 0, 270,
7462 271, 272, 273, 274, 275, 0, 276, 277, 0, 0,
7463 278, 279, 280, 0, 0, 281, 282, 0, 283, 0,
7464 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
7465 0, 294, 295, 296, 297, 298, 299, 458, 301, 302,
7466 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
7467 312, 313, 314, 315, 316, 0, 317, 318, 319, 320,
7468 321, 322, 323, 324, 325, 326, 327, 328, 0, 329,
7469 330, 0, 331, 332, 333, 334, 335, 336, 337, 338,
7470 339, 340, 341, 342, 343, 0, 344, 345, 346, 347,
7471 348, 0, 349, 350, 351, 352, 353, 0, 354, 355,
7472 356, 357, 0, 358, 359, 360, 361, 362, 363, 364,
7473 365, 366, 367, 368, 369, 370, 0, 371, 372, 0,
7474 373, 0, 374, 375, 376, 377, 378, 0, 379, 380,
7475 0, 0, 381, 382, 383, 384, 385, 0, 386, 387,
7476 388, 389, 390, 391, 392, 0, 0, 393, 394, 395,
7477 396, 397, 0, 0, 398, 399, 400, 401, 402, 403,
7478 404, 0, 405, 0, 406, 407, 408, 409, 0, 0,
7479 410, 0, 0, 411, 412, 413, 414, 415, 416, 417,
7480 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
7481 428, 429, 430, 95, 0, 0, 0, 0, 0, 0,
7482 0, 0, 0, 0, 0, 0, 0, 0, 96, 97,
7483 98, 99, 100, 101, 102, 103, 0, 105, 106, 107,
7484 0, 0, 0, 0, 0, 1130, 0, 108, 109, 0,
7485 110, 111, 112, 0, 113, 114, 115, 116, 117, 0,
7486 118, 119, 0, 120, 121, 122, 123, 124, 0, 0,
7487 125, 126, 127, 128, 129, 0, 130, 131, 132, 133,
7488 134, 0, 0, 0, 135, 136, 137, 138, 139, 0,
7489 140, 141, 142, 0, 143, 144, 145, 146, 147, 148,
7490 0, 0, 149, 150, 151, 0, 0, 0, 0, 0,
7491 0, 0, 152, 153, 154, 155, 156, 157, 158, 159,
7492 160, 0, 161, 0, 162, 163, 164, 165, 166, 167,
7493 0, 168, 169, 170, 171, 172, 0, 0, 173, 174,
7494 175, 176, 177, 0, 178, 179, 180, 0, 181, 182,
7495 183, 0, 184, 185, 186, 187, 188, 189, 190, 191,
7496 192, 0, 193, 0, 194, 195, 196, 197, 0, 198,
7497 0, 199, 0, 0, 0, 200, 201, 202, 203, 0,
7498 204, 205, 0, 206, 207, 0, 208, 209, 210, 211,
7499 212, 0, 213, 214, 215, 216, 0, 217, 218, 219,
7500 220, 221, 222, 0, 223, 0, 224, 225, 226, 227,
7501 228, 229, 230, 0, 231, 0, 232, 0, 0, 233,
7502 0, 234, 235, 236, 237, 238, 0, 0, 239, 240,
7503 0, 241, 0, 0, 242, 243, 244, 0, 0, 245,
7504 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
7505 256, 257, 258, 259, 260, 261, 0, 262, 263, 264,
7506 265, 266, 0, 267, 268, 0, 269, 0, 270, 271,
7507 272, 273, 274, 275, 0, 276, 277, 0, 0, 278,
7508 279, 280, 0, 0, 281, 282, 0, 283, 0, 284,
7509 285, 286, 287, 288, 289, 290, 291, 292, 293, 0,
7510 294, 295, 296, 297, 298, 299, 458, 301, 302, 0,
7511 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
7512 313, 314, 315, 316, 0, 317, 318, 319, 320, 321,
7513 322, 323, 324, 325, 326, 327, 328, 0, 329, 330,
7514 0, 331, 332, 333, 334, 335, 336, 337, 338, 339,
7515 340, 341, 342, 343, 0, 344, 345, 346, 347, 348,
7516 0, 0, 350, 351, 352, 353, 0, 354, 355, 356,
7517 357, 0, 358, 359, 360, 361, 362, 363, 364, 365,
7518 366, 367, 368, 369, 370, 0, 371, 372, 0, 373,
7519 0, 374, 375, 376, 377, 378, 0, 379, 380, 0,
7520 0, 381, 382, 383, 384, 385, 0, 386, 387, 388,
7521 389, 390, 391, 392, 0, 0, 393, 394, 395, 396,
7522 397, 0, 0, 398, 399, 400, 401, 402, 403, 404,
7523 0, 405, 0, 406, 407, 408, 409, 0, 0, 410,
7524 0, 0, 411, 412, 413, 414, 415, 416, 417, 418,
7525 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
7526 429, 430, 95, 0, 0, 0, 0, 0, 0, 0,
7527 0, 0, 0, 0, 0, 0, 0, 96, 97, 98,
7528 99, 100, 101, 102, 103, 0, 105, 106, 107, 0,
7529 0, 0, 0, 0, 0, 0, 108, 109, 0, 110,
7530 111, 112, 0, 113, 114, 115, 116, 117, 0, 118,
7531 119, 0, 120, 121, 122, 123, 124, 0, 0, 125,
7532 126, 127, 128, 129, 0, 130, 131, 132, 133, 134,
7533 0, 0, 0, 135, 136, 137, 138, 139, 0, 140,
7534 141, 142, 0, 143, 144, 145, 146, 147, 148, 0,
7535 0, 149, 150, 151, 0, 0, 0, 0, 0, 0,
7536 0, 152, 153, 154, 155, 156, 157, 158, 159, 160,
7537 0, 161, 0, 162, 163, 164, 165, 166, 167, 0,
7538 168, 169, 170, 171, 172, 0, 0, 173, 174, 175,
7539 176, 177, 0, 178, 179, 180, 0, 181, 182, 183,
7540 0, 184, 185, 186, 187, 188, 189, 190, 191, 192,
7541 0, 193, 0, 194, 195, 196, 197, 0, 198, 0,
7542 199, 0, 0, 0, 200, 201, 202, 203, 0, 204,
7543 205, 0, 206, 207, 0, 208, 209, 210, 211, 1249,
7544 0, 213, 214, 215, 216, 0, 217, 218, 219, 220,
7545 221, 222, 0, 223, 0, 224, 225, 226, 227, 228,
7546 229, 230, 0, 231, 0, 232, 0, 0, 233, 0,
7547 234, 235, 236, 237, 238, 0, 0, 239, 240, 0,
7548 241, 0, 0, 242, 243, 244, 0, 0, 245, 246,
7549 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
7550 257, 258, 259, 260, 261, 0, 262, 263, 264, 265,
7551 266, 0, 267, 268, 0, 269, 0, 270, 271, 272,
7552 273, 274, 275, 0, 276, 277, 0, 0, 278, 279,
7553 280, 0, 0, 281, 282, 0, 283, 0, 284, 285,
7554 286, 287, 288, 289, 290, 291, 292, 293, 0, 294,
7555 295, 296, 297, 298, 299, 458, 301, 302, 0, 303,
7556 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
7557 314, 315, 316, 0, 317, 318, 319, 320, 321, 322,
7558 323, 324, 325, 326, 327, 328, 0, 329, 330, 0,
7559 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
7560 341, 342, 343, 0, 344, 345, 346, 347, 348, 0,
7561 349, 350, 351, 352, 353, 0, 354, 355, 356, 357,
7562 0, 358, 359, 360, 361, 362, 363, 364, 365, 366,
7563 367, 368, 369, 370, 0, 371, 372, 0, 373, 0,
7564 374, 375, 376, 377, 378, 0, 379, 380, 0, 0,
7565 381, 382, 383, 384, 385, 0, 386, 387, 388, 389,
7566 390, 391, 392, 0, 0, 393, 394, 395, 396, 397,
7567 0, 0, 398, 399, 400, 401, 402, 403, 404, 0,
7568 405, 0, 406, 407, 408, 409, 0, 0, 410, 0,
7569 0, 411, 412, 413, 414, 415, 416, 417, 418, 419,
7570 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
7571 430, 95, 0, 0, 0, 0, 0, 0, 0, 0,
7572 0, 0, 0, 0, 0, 0, 96, 97, 98, 99,
7573 100, 101, 102, 103, 0, 105, 106, 107, 0, 0,
7574 0, 0, 0, 0, 0, 108, 109, 0, 110, 111,
7575 112, 0, 113, 114, 115, 116, 117, 0, 118, 119,
7576 0, 120, 121, 122, 123, 124, 0, 0, 125, 126,
7577 127, 128, 129, 0, 130, 131, 132, 133, 134, 0,
7578 0, 0, 135, 136, 137, 138, 139, 0, 140, 141,
7579 142, 0, 143, 144, 145, 146, 147, 148, 0, 0,
7580 149, 150, 151, 0, 0, 0, 0, 0, 0, 0,
7581 152, 153, 154, 155, 156, 157, 158, 159, 160, 0,
7582 161, 0, 162, 163, 164, 165, 166, 167, 0, 168,
7583 169, 170, 171, 172, 0, 0, 173, 174, 175, 176,
7584 177, 0, 178, 179, 180, 0, 181, 182, 183, 0,
7585 184, 185, 186, 187, 188, 189, 190, 191, 192, 0,
7586 193, 0, 194, 195, 196, 197, 0, 198, 0, 199,
7587 0, 0, 0, 200, 201, 202, 203, 0, 204, 205,
7588 0, 206, 207, 0, 208, 209, 210, 211, 1262, 0,
7589 213, 214, 215, 216, 0, 217, 218, 219, 220, 221,
7590 222, 0, 223, 0, 224, 225, 226, 227, 228, 229,
7591 230, 0, 231, 0, 232, 0, 0, 233, 0, 234,
7592 235, 236, 237, 238, 0, 0, 239, 240, 0, 241,
7593 0, 0, 242, 243, 244, 0, 0, 245, 246, 247,
7594 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
7595 258, 259, 260, 261, 0, 262, 263, 264, 265, 266,
7596 0, 267, 268, 0, 269, 0, 270, 271, 272, 273,
7597 274, 275, 0, 276, 277, 0, 0, 278, 279, 280,
7598 0, 0, 281, 282, 0, 283, 0, 284, 285, 286,
7599 287, 288, 289, 290, 291, 292, 293, 0, 294, 295,
7600 296, 297, 298, 299, 458, 301, 302, 0, 303, 304,
7601 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
7602 315, 316, 0, 317, 318, 319, 320, 321, 322, 323,
7603 324, 325, 326, 327, 328, 0, 329, 330, 0, 331,
7604 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
7605 342, 343, 0, 344, 345, 346, 347, 348, 0, 349,
7606 350, 351, 352, 353, 0, 354, 355, 356, 357, 0,
7607 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
7608 368, 369, 370, 0, 371, 372, 0, 373, 0, 374,
7609 375, 376, 377, 378, 0, 379, 380, 0, 0, 381,
7610 382, 383, 384, 385, 0, 386, 387, 388, 389, 390,
7611 391, 392, 0, 0, 393, 394, 395, 396, 397, 0,
7612 0, 398, 399, 400, 401, 402, 403, 404, 0, 405,
7613 0, 406, 407, 408, 409, 0, 0, 410, 0, 0,
7614 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
7615 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
7616 95, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7617 0, 0, 0, 0, 0, 96, 97, 98, 99, 100,
7618 101, 102, 103, 0, 105, 106, 107, 0, 0, 0,
7619 0, 0, 0, 0, 108, 109, 0, 110, 111, 112,
7620 0, 113, 114, 115, 116, 117, 0, 118, 119, 0,
7621 120, 121, 122, 123, 124, 0, 0, 125, 126, 127,
7622 128, 129, 0, 130, 131, 132, 133, 134, 0, 0,
7623 0, 135, 136, 137, 138, 139, 0, 140, 141, 142,
7624 0, 143, 144, 145, 146, 147, 148, 0, 0, 149,
7625 150, 151, 0, 0, 0, 0, 0, 0, 0, 152,
7626 153, 154, 155, 156, 157, 158, 159, 160, 0, 161,
7627 0, 162, 163, 164, 165, 166, 167, 0, 168, 169,
7628 170, 171, 172, 0, 0, 173, 174, 175, 176, 177,
7629 0, 178, 179, 180, 0, 181, 182, 183, 0, 184,
7630 185, 186, 187, 188, 189, 190, 191, 192, 0, 193,
7631 0, 194, 195, 196, 197, 0, 198, 0, 199, 0,
7632 0, 0, 200, 201, 202, 203, 0, 204, 205, 0,
7633 206, 207, 0, 208, 209, 210, 211, 1501, 0, 213,
7634 214, 215, 216, 0, 217, 218, 219, 220, 221, 222,
7635 0, 223, 0, 224, 225, 226, 227, 228, 229, 230,
7636 0, 231, 0, 232, 0, 0, 233, 0, 234, 235,
7637 236, 237, 238, 0, 0, 239, 240, 0, 241, 0,
7638 0, 242, 243, 244, 0, 0, 245, 246, 247, 248,
7639 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
7640 259, 260, 261, 0, 262, 263, 264, 265, 266, 0,
7641 267, 268, 0, 269, 0, 270, 271, 272, 273, 274,
7642 275, 0, 276, 277, 0, 0, 278, 279, 280, 0,
7643 0, 281, 282, 0, 283, 0, 284, 285, 286, 287,
7644 288, 289, 290, 291, 292, 293, 0, 294, 295, 296,
7645 297, 298, 299, 458, 301, 302, 0, 303, 304, 305,
7646 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
7647 316, 0, 317, 318, 319, 320, 321, 322, 323, 324,
7648 325, 326, 327, 328, 0, 329, 330, 0, 331, 332,
7649 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
7650 343, 0, 344, 345, 346, 347, 348, 0, 349, 350,
7651 351, 352, 353, 0, 354, 355, 356, 357, 0, 358,
7652 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
7653 369, 370, 0, 371, 372, 0, 373, 0, 374, 375,
7654 376, 377, 378, 0, 379, 380, 0, 0, 381, 382,
7655 383, 384, 385, 0, 386, 387, 388, 389, 390, 391,
7656 392, 0, 0, 393, 394, 395, 396, 397, 0, 0,
7657 398, 399, 400, 401, 402, 403, 404, 0, 405, 0,
7658 406, 407, 408, 409, 0, 0, 410, 0, 0, 411,
7659 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
7660 422, 423, 424, 425, 426, 427, 428, 429, 430, 95,
7661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7662 0, 0, 0, 0, 96, 97, 98, 99, 100, 101,
7663 102, 103, 0, 105, 106, 107, 0, 0, 0, 0,
7664 0, 0, 0, 108, 109, 0, 110, 111, 112, 0,
7665 113, 114, 115, 116, 117, 0, 118, 119, 0, 120,
7666 121, 122, 123, 124, 0, 0, 125, 126, 127, 128,
7667 129, 0, 130, 131, 132, 133, 134, 0, 0, 0,
7668 135, 136, 137, 138, 139, 0, 140, 141, 142, 0,
7669 143, 144, 145, 146, 147, 148, 0, 0, 149, 150,
7670 151, 0, 0, 0, 0, 0, 0, 0, 152, 153,
7671 154, 155, 156, 157, 158, 159, 160, 0, 161, 0,
7672 162, 163, 164, 165, 166, 167, 0, 168, 169, 170,
7673 171, 172, 0, 0, 173, 174, 175, 176, 177, 0,
7674 178, 179, 180, 0, 181, 182, 183, 0, 184, 185,
7675 186, 187, 188, 189, 190, 191, 192, 0, 193, 0,
7676 194, 195, 196, 197, 0, 198, 0, 199, 0, 0,
7677 0, 200, 201, 202, 203, 0, 204, 205, 0, 206,
7678 207, 0, 208, 209, 210, 211, 1513, 0, 213, 214,
7679 215, 216, 0, 217, 218, 219, 220, 221, 222, 0,
7680 223, 0, 224, 225, 226, 227, 228, 229, 230, 0,
7681 231, 0, 232, 0, 0, 233, 0, 234, 235, 236,
7682 237, 238, 0, 0, 239, 240, 0, 241, 0, 0,
7683 242, 243, 244, 0, 0, 245, 246, 247, 248, 249,
7684 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
7685 260, 261, 0, 262, 263, 264, 265, 266, 0, 267,
7686 268, 0, 269, 0, 270, 271, 272, 273, 274, 275,
7687 0, 276, 277, 0, 0, 278, 279, 280, 0, 0,
7688 281, 282, 0, 283, 0, 284, 285, 286, 287, 288,
7689 289, 290, 291, 292, 293, 0, 294, 295, 296, 297,
7690 298, 299, 458, 301, 302, 0, 303, 304, 305, 306,
7691 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
7692 0, 317, 318, 319, 320, 321, 322, 323, 324, 325,
7693 326, 327, 328, 0, 329, 330, 0, 331, 332, 333,
7694 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
7695 0, 344, 345, 346, 347, 348, 0, 349, 350, 351,
7696 352, 353, 0, 354, 355, 356, 357, 0, 358, 359,
7697 360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
7698 370, 0, 371, 372, 0, 373, 0, 374, 375, 376,
7699 377, 378, 0, 379, 380, 0, 0, 381, 382, 383,
7700 384, 385, 0, 386, 387, 388, 389, 390, 391, 392,
7701 0, 0, 393, 394, 395, 396, 397, 0, 0, 398,
7702 399, 400, 401, 402, 403, 404, 0, 405, 0, 406,
7703 407, 408, 409, 0, 0, 410, 0, 0, 411, 412,
7704 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
7705 423, 424, 425, 426, 427, 428, 429, 430, 95, 0,
7706 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7707 0, 0, 0, 96, 97, 98, 99, 100, 101, 102,
7708 103, 0, 105, 106, 107, 0, 0, 0, 0, 0,
7709 0, 0, 108, 109, 0, 110, 111, 112, 0, 113,
7710 114, 115, 116, 117, 0, 118, 119, 0, 120, 121,
7711 122, 123, 124, 0, 0, 125, 126, 127, 128, 129,
7712 0, 130, 131, 132, 133, 134, 0, 0, 0, 135,
7713 136, 137, 138, 139, 0, 140, 141, 142, 0, 143,
7714 144, 145, 146, 147, 148, 0, 0, 149, 150, 151,
7715 0, 0, 0, 0, 0, 0, 0, 152, 153, 154,
7716 155, 156, 157, 158, 159, 160, 0, 161, 0, 162,
7717 163, 164, 165, 166, 167, 0, 168, 169, 170, 171,
7718 172, 0, 0, 173, 174, 175, 176, 177, 0, 178,
7719 179, 180, 0, 181, 182, 183, 0, 184, 185, 186,
7720 187, 188, 189, 190, 191, 192, 0, 193, 0, 194,
7721 195, 196, 197, 0, 198, 0, 199, 0, 0, 0,
7722 200, 201, 202, 203, 0, 204, 205, 0, 206, 207,
7723 0, 208, 209, 210, 211, 1515, 0, 213, 214, 215,
7724 216, 0, 217, 218, 219, 220, 221, 222, 0, 223,
7725 0, 224, 225, 226, 227, 228, 229, 230, 0, 231,
7726 0, 232, 0, 0, 233, 0, 234, 235, 236, 237,
7727 238, 0, 0, 239, 240, 0, 241, 0, 0, 242,
7728 243, 244, 0, 0, 245, 246, 247, 248, 249, 250,
7729 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
7730 261, 0, 262, 263, 264, 265, 266, 0, 267, 268,
7731 0, 269, 0, 270, 271, 272, 273, 274, 275, 0,
7732 276, 277, 0, 0, 278, 279, 280, 0, 0, 281,
7733 282, 0, 283, 0, 284, 285, 286, 287, 288, 289,
7734 290, 291, 292, 293, 0, 294, 295, 296, 297, 298,
7735 299, 458, 301, 302, 0, 303, 304, 305, 306, 307,
7736 308, 309, 310, 311, 312, 313, 314, 315, 316, 0,
7737 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
7738 327, 328, 0, 329, 330, 0, 331, 332, 333, 334,
7739 335, 336, 337, 338, 339, 340, 341, 342, 343, 0,
7740 344, 345, 346, 347, 348, 0, 349, 350, 351, 352,
7741 353, 0, 354, 355, 356, 357, 0, 358, 359, 360,
7742 361, 362, 363, 364, 365, 366, 367, 368, 369, 370,
7743 0, 371, 372, 0, 373, 0, 374, 375, 376, 377,
7744 378, 0, 379, 380, 0, 0, 381, 382, 383, 384,
7745 385, 0, 386, 387, 388, 389, 390, 391, 392, 0,
7746 0, 393, 394, 395, 396, 397, 0, 0, 398, 399,
7747 400, 401, 402, 403, 404, 0, 405, 0, 406, 407,
7748 408, 409, 0, 0, 410, 0, 0, 411, 412, 413,
7749 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
7750 424, 425, 426, 427, 428, 429, 430, 95, 0, 0,
7751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7752 0, 0, 96, 97, 98, 99, 100, 101, 102, 103,
7753 0, 105, 106, 107, 0, 0, 0, 0, 0, 0,
7754 0, 108, 109, 0, 110, 111, 112, 0, 113, 114,
7755 115, 116, 117, 0, 118, 119, 0, 120, 121, 122,
7756 123, 124, 0, 0, 125, 126, 127, 128, 129, 0,
7757 130, 131, 132, 133, 134, 0, 0, 0, 135, 136,
7758 137, 138, 139, 0, 140, 141, 142, 0, 143, 144,
7759 145, 146, 147, 148, 0, 0, 149, 150, 151, 0,
7760 0, 0, 0, 0, 0, 0, 152, 153, 154, 155,
7761 156, 157, 158, 159, 160, 0, 161, 0, 162, 163,
7762 164, 165, 166, 167, 0, 168, 169, 170, 171, 172,
7763 0, 0, 173, 174, 175, 176, 177, 0, 178, 179,
7764 180, 0, 181, 182, 183, 0, 184, 185, 186, 187,
7765 188, 189, 190, 191, 192, 0, 193, 0, 194, 195,
7766 196, 197, 0, 198, 0, 199, 0, 0, 0, 200,
7767 201, 202, 203, 0, 204, 205, 0, 206, 207, 0,
7768 208, 209, 210, 211, 2071, 0, 213, 214, 215, 216,
7769 0, 217, 218, 219, 220, 221, 222, 0, 223, 0,
7770 224, 225, 226, 227, 228, 229, 230, 0, 231, 0,
7771 232, 0, 0, 233, 0, 234, 235, 236, 237, 238,
7772 0, 0, 239, 240, 0, 241, 0, 0, 242, 243,
7773 244, 0, 0, 245, 246, 247, 248, 249, 250, 251,
7774 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
7775 0, 262, 263, 264, 265, 266, 0, 267, 268, 0,
7776 269, 0, 270, 271, 272, 273, 274, 275, 0, 276,
7777 277, 0, 0, 278, 279, 280, 0, 0, 281, 282,
7778 0, 283, 0, 284, 285, 286, 287, 288, 289, 290,
7779 291, 292, 293, 0, 294, 295, 296, 297, 298, 299,
7780 458, 301, 302, 0, 303, 304, 305, 306, 307, 308,
7781 309, 310, 311, 312, 313, 314, 315, 316, 0, 317,
7782 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
7783 328, 0, 329, 330, 0, 331, 332, 333, 334, 335,
7784 336, 337, 338, 339, 340, 341, 342, 343, 0, 344,
7785 345, 346, 347, 348, 0, 349, 350, 351, 352, 353,
7786 0, 354, 355, 356, 357, 0, 358, 359, 360, 361,
7787 362, 363, 364, 365, 366, 367, 368, 369, 370, 0,
7788 371, 372, 0, 373, 0, 374, 375, 376, 377, 378,
7789 0, 379, 380, 0, 0, 381, 382, 383, 384, 385,
7790 0, 386, 387, 388, 389, 390, 391, 392, 0, 0,
7791 393, 394, 395, 396, 397, 0, 0, 398, 399, 400,
7792 401, 402, 403, 404, 0, 405, 0, 406, 407, 408,
7793 409, 0, 0, 410, 0, 0, 411, 412, 413, 414,
7794 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
7795 425, 426, 427, 428, 429, 430, 95, 0, 0, 0,
7796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7797 0, 96, 97, 98, 99, 100, 101, 102, 103, 0,
7798 105, 106, 107, 0, 0, 0, 0, 0, 0, 0,
7799 108, 109, 0, 110, 111, 112, 0, 113, 114, 115,
7800 116, 117, 0, 118, 119, 0, 120, 121, 122, 123,
7801 124, 0, 0, 125, 126, 127, 128, 129, 0, 130,
7802 131, 132, 133, 134, 0, 0, 0, 135, 136, 137,
7803 138, 139, 0, 140, 141, 142, 0, 143, 144, 145,
7804 146, 147, 148, 0, 0, 149, 150, 151, 0, 0,
7805 0, 0, 0, 0, 0, 152, 153, 154, 155, 156,
7806 157, 158, 159, 160, 0, 161, 0, 162, 163, 164,
7807 165, 166, 167, 0, 168, 169, 170, 171, 172, 0,
7808 0, 173, 174, 175, 176, 177, 0, 178, 179, 180,
7809 0, 181, 182, 183, 0, 184, 185, 186, 187, 188,
7810 189, 190, 191, 192, 0, 193, 0, 194, 195, 196,
7811 197, 0, 198, 0, 199, 0, 0, 0, 200, 201,
7812 202, 203, 0, 204, 205, 0, 206, 207, 0, 208,
7813 209, 210, 211, 212, 0, 213, 214, 215, 216, 0,
7814 217, 218, 219, 220, 221, 222, 0, 223, 0, 224,
7815 225, 226, 227, 228, 229, 230, 0, 231, 0, 232,
7816 0, 0, 233, 0, 234, 235, 236, 237, 238, 0,
7817 0, 239, 240, 0, 241, 0, 0, 242, 243, 244,
7818 0, 0, 245, 246, 247, 248, 249, 250, 251, 252,
7819 253, 254, 255, 256, 257, 258, 259, 260, 261, 0,
7820 262, 263, 264, 265, 266, 0, 267, 268, 0, 269,
7821 0, 270, 271, 272, 273, 274, 275, 0, 276, 277,
7822 0, 0, 278, 279, 280, 0, 0, 281, 282, 0,
7823 283, 0, 284, 285, 286, 287, 288, 289, 290, 0,
7824 292, 293, 0, 294, 295, 296, 297, 298, 299, 458,
7825 301, 302, 0, 303, 304, 305, 306, 307, 308, 309,
7826 0, 311, 312, 313, 314, 315, 316, 0, 317, 318,
7827 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
7828 0, 329, 330, 0, 331, 332, 333, 334, 0, 336,
7829 337, 338, 339, 340, 341, 342, 343, 0, 344, 345,
7830 346, 347, 348, 0, 349, 350, 351, 352, 353, 0,
7831 354, 355, 356, 357, 0, 358, 359, 360, 361, 362,
7832 363, 364, 365, 366, 367, 368, 369, 370, 0, 371,
7833 372, 0, 373, 0, 374, 375, 376, 377, 378, 0,
7834 379, 380, 0, 0, 381, 382, 383, 384, 385, 0,
7835 386, 387, 388, 389, 390, 391, 392, 0, 0, 393,
7836 394, 395, 396, 397, 0, 0, 398, 399, 400, 401,
7837 402, 403, 404, 0, 405, 0, 406, 407, 408, 409,
7838 0, 0, 410, 0, 0, 411, 412, 413, 414, 415,
7839 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
7840 426, 427, 428, 429, 430, 877, 0, 0, 0, 0,
7841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7842 96, 97, 98, 99, 100, 101, 102, 103, 0, 105,
7843 106, 107, 0, 0, 0, 0, 0, 0, 0, 108,
7844 109, 0, 110, 111, 112, 581, 113, 114, 115, 0,
7845 878, 582, 879, 880, 0, 120, 121, 122, 123, 124,
7846 0, 0, 125, 126, 881, 882, 129, 0, 130, 131,
7847 132, 133, 0, 0, 583, 0, 135, 136, 137, 138,
7848 139, 584, 140, 141, 142, 0, 143, 144, 145, 146,
7849 147, 148, 0, 585, 149, 150, 151, 0, 0, 0,
7850 586, 0, 0, 0, 152, 153, 154, 155, 156, 157,
7851 883, 884, 160, 0, 161, 0, 162, 163, 164, 165,
7852 166, 167, 0, 168, 169, 170, 171, 172, 0, 0,
7853 173, 174, 648, 176, 177, 0, 178, 179, 180, 0,
7854 181, 182, 183, 0, 184, 185, 186, 187, 0, 189,
7855 190, 191, 0, 0, 193, 0, 194, 195, 885, 197,
7856 0, 198, 0, 199, 587, 0, 588, 200, 201, 202,
7857 203, 0, 204, 0, 0, 0, 207, 0, 208, 209,
7858 210, 211, 212, 589, 213, 214, 215, 216, 0, 217,
7859 218, 219, 220, 221, 222, 0, 223, 590, 0, 225,
7860 226, 227, 228, 886, 887, 0, 888, 0, 232, 591,
7861 592, 233, 593, 234, 235, 236, 237, 238, 0, 0,
7862 239, 0, 594, 241, 595, 0, 242, 243, 244, 0,
7863 0, 245, 246, 247, 248, 249, 250, 251, 252, 253,
7864 254, 255, 256, 257, 258, 259, 260, 889, 596, 890,
7865 263, 264, 265, 0, 0, 267, 268, 597, 269, 0,
7866 0, 271, 891, 273, 274, 275, 0, 276, 277, 0,
7867 0, 278, 279, 280, 0, 0, 281, 0, 598, 283,
7868 599, 0, 285, 286, 287, 288, 289, 290, 291, 292,
7869 293, 0, 294, 295, 0, 297, 298, 0, 458, 301,
7870 302, 0, 303, 304, 305, 306, 307, 308, 309, 310,
7871 311, 892, 313, 314, 315, 316, 0, 317, 318, 319,
7872 320, 321, 322, 323, 324, 325, 326, 327, 328, 0,
7873 329, 330, 600, 331, 332, 333, 0, 335, 336, 337,
7874 338, 339, 340, 341, 342, 343, 0, 344, 345, 346,
7875 347, 348, 0, 349, 893, 351, 352, 353, 601, 354,
7876 355, 894, 357, 0, 358, 359, 360, 361, 362, 363,
7877 364, 365, 366, 367, 368, 369, 0, 0, 371, 372,
7878 0, 373, 602, 374, 375, 376, 377, 378, 0, 895,
7879 896, 0, 0, 381, 382, 0, 384, 0, 0, 386,
7880 387, 388, 389, 390, 391, 392, 0, 0, 393, 394,
7881 395, 396, 397, 0, 0, 398, 399, 400, 401, 402,
7882 0, 897, 0, 405, 604, 406, 407, 408, 409, 0,
7883 0, 410, 0, 0, 411, 412, 413, 414, 415, 416,
7884 877, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7885 0, 428, 429, 430, 0, 96, 97, 98, 99, 100,
7886 101, 102, 103, 0, 105, 106, 107, 0, 0, 0,
7887 0, 0, 0, 0, 108, 109, 0, 110, 111, 112,
7888 581, 113, 114, 115, 0, 878, 582, 879, 880, 0,
7889 120, 121, 122, 123, 124, 0, 0, 125, 126, 881,
7890 882, 129, 0, 130, 131, 132, 133, 0, 0, 583,
7891 0, 135, 136, 137, 138, 139, 584, 140, 141, 142,
7892 0, 143, 144, 145, 146, 147, 148, 0, 585, 149,
7893 150, 151, 0, 0, 0, 586, 0, 0, 0, 152,
7894 153, 154, 155, 156, 157, 883, 884, 160, 0, 161,
7895 0, 162, 163, 164, 165, 166, 167, 0, 168, 169,
7896 170, 171, 172, 0, 0, 173, 174, 648, 176, 177,
7897 0, 178, 179, 180, 0, 181, 182, 183, 0, 184,
7898 185, 186, 187, 0, 189, 190, 191, 0, 0, 193,
7899 0, 194, 195, 885, 197, 0, 198, 0, 199, 587,
7900 0, 588, 200, 201, 202, 203, 0, 204, 0, 0,
7901 0, 207, 0, 208, 209, 210, 211, 212, 589, 213,
7902 214, 215, 216, 0, 217, 218, 219, 220, 221, 222,
7903 0, 223, 590, 0, 225, 226, 227, 228, 886, 887,
7904 0, 888, 0, 232, 591, 592, 233, 593, 234, 235,
7905 236, 237, 238, 0, 0, 239, 0, 594, 241, 595,
7906 0, 242, 243, 244, 0, 0, 245, 246, 247, 248,
7907 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
7908 259, 260, 889, 596, 890, 263, 264, 265, 0, 0,
7909 267, 268, 597, 269, 0, 0, 271, 891, 273, 274,
7910 275, 0, 276, 277, 0, 0, 278, 279, 280, 0,
7911 0, 281, 0, 598, 283, 599, 0, 285, 286, 287,
7912 288, 289, 290, 291, 292, 293, 0, 294, 295, 0,
7913 297, 298, 0, 458, 301, 302, 0, 303, 304, 305,
7914 306, 307, 308, 309, 310, 311, 892, 313, 314, 315,
7915 316, 0, 317, 318, 319, 320, 321, 322, 323, 324,
7916 325, 326, 327, 328, 0, 329, 330, 600, 331, 332,
7917 333, 0, 335, 336, 337, 338, 339, 340, 341, 342,
7918 343, 0, 344, 345, 346, 347, 348, 0, 349, 0,
7919 351, 352, 353, 601, 354, 355, 894, 357, 0, 358,
7920 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
7921 369, 0, 0, 371, 372, 0, 373, 602, 374, 375,
7922 376, 377, 378, 0, 895, 896, 0, 0, 381, 382,
7923 0, 384, 0, 0, 386, 387, 388, 389, 390, 391,
7924 392, 0, 0, 393, 394, 395, 396, 397, 0, 0,
7925 398, 399, 400, 401, 402, 0, 897, 0, 405, 604,
7926 406, 407, 408, 409, 0, 0, 410, 0, 0, 411,
7927 412, 413, 414, 415, 416, 0, 0, 0, 0, 0,
7928 0, 0, 0, 0, 0, 0, 428, 429, 430
7929};
7930
7931static const yytype_int16 yycheck[] =
7932{
7933 16, 30, 546, 536, 616, 498, 51, 731, 454, 0,
7934 10, 502, 609, 486, 14, 645, 646, 17, 18, 19,
7935 455, 609, 22, 805, 911, 25, 0, 947, 28, 29,
7936 0, 0, 807, 572, 793, 665, 0, 523, 780, 822,
7937 686, 1014, 974, 1440, 1511, 733, 15, 675, 822, 822,
7938 1432, 913, 971, 75, 15, 77, 822, 79, 460, 785,
7939 53, 1835, 84, 1768, 850, 1517, 782, 1519, 53, 69,
7940 776, 1453, 25, 1395, 1273, 75, 76, 77, 78, 79,
7941 1816, 1508, 1462, 0, 84, 576, 1843, 1691, 88, 1432,
7942 1850, 462, 83, 29, 810, 9, 9, 2075, 56, 11,
7943 11, 49, 5, 1724, 462, 71, 5, 2081, 5, 83,
7944 1453, 723, 461, 83, 83, 1151, 13, 14, 842, 83,
7945 5, 5, 2127, 163, 5, 78, 536, 3, 538, 40,
7946 540, 39, 13, 14, 893, 723, 5, 5, 5, 2078,
7947 1567, 5, 5, 39, 1718, 13, 14, 5, 5, 551,
7948 0, 1153, 5, 73, 30, 31, 1017, 0, 842, 2164,
7949 71, 10, 113, 83, 26, 14, 73, 4, 467, 18,
7950 2145, 33, 9, 0, 205, 2216, 83, 520, 104, 28,
7951 29, 793, 4, 3, 4, 5, 2246, 9, 15, 9,
7952 232, 232, 164, 616, 685, 56, 163, 1723, 1660, 11,
7953 609, 141, 3, 30, 5, 614, 794, 11, 265, 797,
7954 798, 267, 9, 5, 273, 116, 1757, 104, 11, 273,
7955 56, 714, 462, 2297, 57, 2030, 53, 76, 40, 917,
7956 164, 334, 65, 178, 116, 113, 312, 1436, 609, 253,
7957 90, 2246, 2406, 614, 256, 26, 80, 90, 238, 65,
7958 1182, 11, 33, 883, 884, 979, 83, 111, 2232, 71,
7959 520, 891, 26, 203, 613, 36, 11, 157, 896, 33,
7960 153, 26, 391, 111, 114, 106, 164, 1787, 966, 967,
7961 40, 893, 155, 155, 775, 829, 162, 312, 164, 123,
7962 26, 111, 2348, 238, 412, 40, 338, 338, 199, 2073,
7963 300, 11, 2277, 412, 2478, 106, 2480, 195, 153, 1631,
7964 307, 71, 747, 29, 723, 434, 725, 726, 1922, 1786,
7965 345, 1358, 210, 1360, 1361, 1946, 71, 114, 1016, 616,
7966 5, 133, 220, 273, 1716, 118, 1718, 53, 335, 2515,
7967 223, 179, 182, 215, 160, 1855, 358, 178, 424, 120,
7968 468, 285, 342, 378, 725, 726, 1783, 1289, 1785, 468,
7969 731, 71, 974, 250, 2528, 468, 408, 408, 326, 609,
7970 793, 126, 2377, 1716, 614, 1718, 249, 178, 223, 257,
7971 126, 264, 1956, 2188, 204, 794, 1960, 2561, 797, 798,
7972 126, 837, 2448, 226, 840, 182, 410, 342, 2403, 424,
7973 2474, 2577, 848, 257, 294, 431, 226, 238, 468, 844,
7974 241, 468, 468, 472, 252, 22, 0, 267, 472, 1945,
7975 1882, 28, 389, 357, 267, 916, 468, 468, 454, 163,
7976 773, 1173, 472, 462, 925, 73, 90, 238, 929, 1475,
7977 241, 472, 330, 742, 2485, 83, 937, 938, 857, 858,
7978 284, 300, 378, 2513, 454, 455, 456, 1998, 471, 950,
7979 951, 1434, 1435, 414, 404, 326, 1190, 375, 1243, 389,
7980 893, 842, 488, 495, 1476, 1395, 2450, 327, 523, 375,
7981 2216, 852, 389, 299, 327, 725, 726, 487, 2463, 489,
7982 326, 731, 461, 2549, 852, 495, 468, 2101, 422, 361,
7983 466, 462, 851, 503, 470, 527, 793, 2128, 2513, 410,
7984 2449, 342, 232, 773, 472, 515, 262, 510, 927, 928,
7985 468, 512, 421, 1442, 131, 510, 935, 527, 410, 2507,
7986 939, 940, 1256, 555, 556, 557, 982, 1736, 512, 500,
7987 2007, 342, 512, 512, 472, 954, 422, 956, 512, 383,
7988 1470, 974, 464, 464, 467, 555, 556, 557, 2132, 473,
7989 969, 970, 515, 2137, 433, 468, 2140, 503, 2020, 468,
7990 1182, 468, 1256, 2347, 1956, 433, 368, 369, 1960, 103,
7991 361, 431, 466, 468, 468, 454, 470, 468, 431, 405,
7992 1452, 56, 2352, 609, 2351, 512, 454, 361, 614, 468,
7993 468, 468, 842, 1464, 468, 468, 893, 456, 979, 431,
7994 468, 468, 852, 1956, 1202, 468, 1996, 1960, 449, 469,
7995 620, 471, 459, 460, 1212, 427, 469, 1215, 471, 412,
7996 1427, 1428, 454, 322, 461, 462, 472, 459, 460, 459,
7997 460, 252, 2069, 19, 613, 1577, 257, 2251, 449, 461,
7998 462, 463, 464, 325, 503, 389, 685, 461, 462, 463,
7999 464, 1291, 459, 460, 271, 1198, 459, 460, 461, 462,
8000 463, 464, 688, 457, 189, 433, 143, 1289, 2000, 351,
8001 237, 2455, 698, 510, 1616, 512, 470, 974, 408, 428,
8002 344, 377, 394, 69, 710, 306, 454, 2271, 424, 459,
8003 460, 461, 462, 463, 464, 727, 1638, 723, 2175, 725,
8004 726, 1631, 236, 320, 1253, 239, 341, 324, 1257, 1365,
8005 187, 1260, 73, 457, 378, 411, 47, 727, 468, 4,
8006 232, 753, 83, 472, 9, 1667, 470, 35, 468, 979,
8007 1446, 1150, 1151, 232, 351, 2127, 746, 747, 468, 2485,
8008 2132, 126, 752, 753, 754, 2137, 54, 779, 2140, 1182,
8009 1535, 1171, 1208, 451, 418, 758, 759, 1213, 761, 91,
8010 792, 126, 211, 758, 759, 116, 761, 431, 209, 779,
8011 780, 1980, 2164, 1569, 2127, 250, 613, 470, 1198, 2132,
8012 131, 813, 792, 1202, 2137, 267, 151, 2140, 2141, 752,
8013 454, 823, 2576, 1212, 1295, 103, 1215, 1217, 415, 809,
8014 1633, 250, 1222, 813, 468, 30, 31, 1188, 818, 1190,
8015 1466, 2164, 649, 823, 2529, 2530, 466, 1543, 850, 189,
8016 470, 831, 1234, 22, 451, 2302, 338, 837, 1661, 28,
8017 840, 211, 164, 461, 844, 845, 4, 847, 848, 338,
8018 850, 9, 1578, 113, 232, 2307, 809, 1583, 685, 457,
8019 181, 326, 1271, 162, 2246, 186, 1289, 232, 1359, 308,
8020 468, 168, 472, 195, 2579, 90, 1285, 252, 4, 382,
8021 250, 384, 851, 9, 1816, 1256, 351, 262, 210, 2271,
8022 188, 852, 1383, 634, 635, 1182, 1816, 746, 220, 468,
8023 1271, 222, 257, 2246, 469, 2173, 408, 262, 62, 63,
8024 1707, 1708, 1709, 1710, 469, 354, 433, 2337, 934, 408,
8025 661, 2341, 913, 2343, 246, 382, 2194, 384, 2271, 226,
8026 1421, 758, 759, 193, 761, 13, 14, 454, 236, 913,
8027 163, 239, 131, 913, 913, 111, 433, 947, 1188, 913,
8028 1190, 468, 250, 1439, 344, 469, 469, 298, 472, 472,
8029 338, 8, 334, 335, 11, 1577, 468, 454, 15, 16,
8030 17, 410, 466, 338, 468, 1514, 470, 1516, 338, 468,
8031 22, 468, 982, 281, 354, 345, 1674, 20, 378, 1011,
8032 250, 22, 252, 53, 1913, 2377, 845, 28, 847, 1972,
8033 469, 205, 1289, 472, 1616, 2402, 1022, 468, 330, 470,
8034 463, 1011, 2439, 2440, 1796, 468, 1256, 470, 378, 468,
8035 1564, 2403, 1797, 106, 851, 451, 1638, 325, 418, 616,
8036 408, 1271, 1441, 469, 2377, 356, 472, 1665, 1666, 72,
8037 410, 396, 1784, 408, 431, 463, 433, 345, 1830, 2317,
8038 468, 406, 470, 1836, 87, 1667, 469, 209, 469, 472,
8039 2403, 472, 1836, 1836, 424, 1474, 1475, 365, 320, 1795,
8040 1836, 1797, 1858, 2500, 469, 146, 1764, 472, 468, 1691,
8041 2000, 469, 271, 153, 472, 382, 913, 384, 158, 131,
8042 468, 1815, 469, 1817, 468, 178, 470, 1119, 2565, 1121,
8043 131, 469, 469, 468, 472, 472, 2038, 140, 146, 1755,
8044 469, 408, 146, 472, 280, 148, 382, 2514, 384, 1119,
8045 469, 1121, 146, 472, 382, 145, 384, 160, 468, 344,
8046 1130, 2513, 1132, 469, 2531, 324, 472, 1128, 252, 186,
8047 881, 882, 1164, 424, 1590, 22, 1517, 1518, 1519, 890,
8048 1961, 28, 1963, 223, 1577, 238, 189, 984, 241, 1120,
8049 207, 79, 351, 378, 1164, 469, 469, 2054, 472, 472,
8050 2513, 469, 435, 1173, 1174, 146, 469, 26, 344, 472,
8051 469, 1672, 470, 472, 1184, 1185, 1186, 1187, 146, 1189,
8052 2587, 1600, 1601, 1616, 264, 1195, 1605, 1197, 13, 14,
8053 941, 942, 235, 418, 1816, 312, 793, 422, 1208, 1209,
8054 1232, 267, 378, 1213, 1214, 1638, 431, 146, 1218, 1219,
8055 1220, 1221, 269, 1223, 1224, 378, 415, 76, 1816, 271,
8056 35, 469, 1232, 1233, 472, 84, 1729, 221, 345, 454,
8057 271, 1602, 1603, 1604, 1667, 1245, 1732, 1733, 1734, 517,
8058 126, 519, 418, 468, 131, 1271, 1247, 469, 291, 342,
8059 472, 2036, 468, 112, 22, 431, 2008, 487, 1691, 489,
8060 28, 378, 305, 469, 5, 151, 472, 1517, 1518, 1519,
8061 334, 335, 324, 325, 2216, 1973, 2045, 5, 454, 320,
8062 1577, 334, 335, 324, 153, 168, 2216, 469, 280, 158,
8063 472, 1128, 468, 336, 1992, 338, 893, 158, 469, 351,
8064 1922, 472, 345, 468, 1343, 348, 189, 424, 1857, 469,
8065 351, 468, 472, 469, 344, 1174, 472, 2214, 469, 1616,
8066 179, 472, 295, 469, 367, 1184, 472, 1186, 5, 469,
8067 1189, 190, 472, 468, 2276, 378, 1195, 2279, 1197, 334,
8068 335, 1638, 385, 226, 1383, 5, 469, 468, 378, 472,
8069 1209, 394, 344, 468, 223, 1214, 449, 616, 468, 1218,
8070 1219, 1220, 1221, 131, 1223, 1224, 252, 145, 5, 469,
8071 1667, 257, 472, 22, 415, 468, 262, 974, 468, 28,
8072 5, 424, 468, 1816, 271, 1395, 378, 469, 418, 272,
8073 472, 725, 726, 1425, 1691, 264, 468, 1816, 455, 456,
8074 457, 431, 459, 460, 461, 462, 463, 464, 469, 468,
8075 1247, 472, 65, 432, 469, 1425, 2038, 472, 1457, 468,
8076 278, 468, 1432, 2045, 454, 205, 418, 472, 2126, 2027,
8077 1811, 2223, 469, 320, 1815, 472, 1817, 324, 468, 431,
8078 1859, 468, 616, 1453, 1947, 469, 8, 1457, 472, 11,
8079 1460, 1452, 1462, 15, 16, 17, 469, 469, 111, 472,
8080 472, 468, 454, 22, 351, 468, 468, 468, 1452, 28,
8081 32, 469, 1452, 1452, 472, 468, 468, 468, 1452, 2101,
8082 469, 469, 131, 472, 472, 2219, 94, 35, 351, 1922,
8083 2039, 2040, 469, 158, 5, 472, 7, 1523, 1508, 382,
8084 264, 384, 13, 271, 1987, 262, 1343, 158, 367, 20,
8085 396, 370, 469, 24, 167, 472, 221, 389, 469, 1816,
8086 406, 472, 405, 469, 469, 408, 472, 472, 415, 469,
8087 1556, 1563, 472, 468, 793, 468, 1568, 1569, 1570, 469,
8088 83, 472, 472, 2485, 389, 53, 1383, 53, 1558, 389,
8089 344, 243, 320, 1563, 1586, 2485, 324, 1567, 1568, 1569,
8090 1570, 1811, 389, 1400, 431, 1815, 344, 1817, 389, 2303,
8091 146, 1581, 131, 90, 252, 2215, 1586, 252, 468, 1416,
8092 1590, 35, 470, 351, 378, 1182, 421, 472, 468, 468,
8093 34, 468, 1593, 427, 2216, 1432, 9, 468, 387, 252,
8094 378, 387, 11, 387, 257, 2038, 472, 257, 2027, 172,
8095 389, 468, 2045, 2032, 468, 1452, 1453, 154, 2216, 793,
8096 1457, 1631, 271, 163, 418, 1922, 469, 2046, 2047, 2251,
8097 474, 468, 35, 203, 893, 412, 472, 431, 354, 2020,
8098 418, 268, 211, 472, 468, 207, 299, 415, 1703, 252,
8099 211, 2147, 1678, 431, 2276, 141, 211, 2279, 2154, 304,
8100 454, 314, 1701, 265, 424, 468, 146, 153, 2101, 146,
8101 431, 320, 158, 252, 468, 324, 454, 267, 267, 1718,
8102 252, 1713, 1714, 1715, 35, 2325, 34, 389, 389, 389,
8103 468, 8, 1289, 466, 2428, 1705, 466, 468, 15, 16,
8104 17, 389, 351, 1713, 1714, 1715, 1716, 269, 1718, 1719,
8105 469, 469, 271, 1723, 1724, 974, 469, 203, 163, 893,
8106 469, 469, 1581, 469, 469, 2332, 470, 469, 2184, 469,
8107 451, 469, 451, 472, 2332, 469, 469, 223, 469, 469,
8108 469, 2038, 469, 451, 163, 1777, 468, 389, 2045, 277,
8109 2484, 1761, 405, 468, 468, 468, 1593, 91, 428, 141,
8110 2545, 320, 469, 2259, 2318, 324, 415, 1777, 267, 1779,
8111 2020, 153, 428, 1783, 1784, 1785, 158, 1787, 264, 418,
8112 2281, 457, 453, 2216, 268, 268, 268, 273, 2207, 2208,
8113 1816, 410, 351, 1803, 2297, 1805, 231, 2216, 472, 252,
8114 974, 389, 468, 146, 2101, 1837, 189, 1833, 1818, 1819,
8115 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 2251, 2264,
8116 271, 203, 146, 2430, 146, 389, 1858, 1837, 469, 389,
8117 164, 389, 2277, 389, 1844, 616, 472, 265, 2219, 431,
8118 267, 223, 35, 2276, 146, 1855, 2279, 35, 1858, 146,
8119 466, 342, 241, 1854, 469, 2409, 415, 137, 163, 11,
8120 158, 195, 469, 2485, 1701, 469, 54, 2323, 469, 163,
8121 468, 273, 469, 2374, 473, 428, 210, 378, 163, 1716,
8122 454, 1718, 264, 468, 172, 2386, 220, 2485, 472, 615,
8123 616, 273, 469, 455, 456, 457, 469, 459, 460, 461,
8124 462, 463, 464, 469, 327, 417, 1938, 1939, 1940, 1941,
8125 467, 81, 246, 2332, 468, 103, 268, 146, 404, 2216,
8126 1779, 468, 2303, 1182, 167, 1935, 2307, 399, 1938, 1939,
8127 1940, 1941, 468, 267, 468, 1945, 1946, 35, 2383, 1949,
8128 2547, 77, 1952, 412, 1803, 467, 1956, 2490, 2404, 467,
8129 1960, 2332, 269, 469, 2251, 1981, 1966, 1983, 163, 1818,
8130 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 2219,
8131 210, 469, 468, 276, 469, 469, 468, 210, 468, 2276,
8132 1577, 1991, 2279, 380, 469, 274, 1996, 53, 1989, 1990,
8133 2000, 175, 468, 457, 469, 469, 330, 431, 2008, 469,
8134 188, 191, 180, 257, 257, 457, 468, 35, 1182, 389,
8135 389, 252, 793, 468, 104, 431, 267, 1854, 468, 1616,
8136 35, 467, 404, 2033, 163, 468, 286, 468, 210, 468,
8137 1289, 430, 83, 127, 211, 314, 469, 468, 468, 111,
8138 35, 1638, 146, 118, 71, 146, 35, 2428, 236, 2430,
8139 53, 239, 2485, 2303, 469, 35, 468, 2307, 335, 2069,
8140 335, 468, 250, 469, 472, 2075, 2485, 793, 1432, 469,
8141 1667, 417, 71, 35, 179, 2076, 2086, 412, 412, 399,
8142 35, 65, 2332, 270, 466, 472, 65, 469, 470, 1453,
8143 468, 35, 35, 281, 1691, 351, 457, 257, 179, 234,
8144 168, 468, 257, 2484, 399, 35, 468, 270, 270, 468,
8145 468, 54, 893, 469, 267, 1289, 250, 2127, 2128, 1956,
8146 2130, 189, 2132, 1960, 334, 472, 321, 2137, 191, 267,
8147 2140, 2141, 32, 2143, 267, 2145, 468, 325, 455, 456,
8148 457, 116, 459, 460, 461, 462, 463, 464, 410, 21,
8149 1196, 1798, 1989, 1990, 2164, 512, 1811, 345, 226, 1512,
8150 103, 2193, 8, 1991, 2403, 11, 2547, 893, 1761, 15,
8151 16, 17, 2160, 2481, 2184, 2185, 1839, 365, 2428, 2568,
8152 2430, 2032, 2487, 2193, 2310, 2532, 32, 2544, 2485, 780,
8153 2216, 2234, 1518, 974, 1506, 1844, 2484, 2542, 1558, 1815,
8154 2482, 1503, 837, 2345, 272, 1562, 2428, 2217, 2218, 2547,
8155 1833, 2243, 1467, 746, 718, 1167, 768, 462, 2228, 1816,
8156 1141, 2231, 767, 1739, 167, 2226, 1482, 1341, 1342, 2394,
8157 1982, 770, 1346, 2243, 2484, 1453, 2246, 1166, 1718, 2076,
8158 485, 486, 2281, 1946, 1962, 188, 2247, 2272, 974, 2376,
8159 1716, 2388, 2377, 2389, 2264, 1276, 2471, 502, 2472, 2459,
8160 2156, 2271, 1009, 1470, 1297, 1379, 1380, 2277, 1400, 2301,
8161 338, 1398, 1445, 1565, 2369, 1012, 1762, 2287, 1120, 752,
8162 1121, 852, 2292, -1, 765, 1271, -1, -1, 1014, -1,
8163 -1, 2301, -1, 236, -1, 2132, 239, 2547, -1, -1,
8164 2137, -1, -1, 2140, -1, -1, 2332, 250, -1, -1,
8165 2336, -1, -1, 2323, 382, -1, 384, 2349, 1577, -1,
8166 2346, -1, -1, -1, -1, 1922, 2185, -1, -1, -1,
8167 -1, 576, -1, -1, -1, -1, -1, 405, 281, 2349,
8168 408, -1, -1, -1, -1, -1, -1, -1, -1, 2350,
8169 -1, -1, 1716, -1, 1718, -1, -1, 1616, 2217, 2218,
8170 -1, 207, -1, -1, 609, -1, -1, 2377, -1, 614,
8171 615, 616, 2231, 2383, -1, -1, -1, -1, 2388, 1638,
8172 -1, -1, 325, -1, -1, -1, -1, 632, -1, 2226,
8173 -1, -1, -1, 2403, 2404, 2405, 2406, -1, 2399, -1,
8174 -1, 1182, 345, 1577, 2430, -1, -1, -1, 1667, 2435,
8175 2247, 2437, -1, -1, -1, 2441, 2442, 662, -1, -1,
8176 -1, -1, 365, 269, -1, -1, -1, -1, -1, 2439,
8177 2440, -1, 1691, 2292, 2271, -1, 681, 682, 683, -1,
8178 685, 2038, 1616, -1, 2281, -1, -1, -1, 2045, -1,
8179 -1, -1, -1, 2463, -1, -1, 1182, -1, -1, 2485,
8180 705, 2471, -1, -1, 1638, -1, -1, 8, 949, -1,
8181 11, 2481, -1, -1, 15, 16, 17, -1, -1, -1,
8182 725, 726, -1, -1, -1, 730, 731, -1, -1, -1,
8183 2500, 32, -1, 1667, -1, -1, -1, 2507, 0, -1,
8184 -1, -1, -1, 2513, 2101, 2506, -1, -1, 1289, -1,
8185 -1, -1, -1, 2350, -1, 760, -1, 1691, 2528, 764,
8186 765, 2547, -1, -1, -1, 1639, 1640, 1641, 1642, -1,
8187 775, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653,
8188 1654, -1, -1, -1, -1, -1, -1, 1273, 793, -1,
8189 -1, -1, 8, -1, -1, 11, -1, 1816, -1, 15,
8190 16, 17, 2399, 1289, -1, -1, -1, -1, -1, -1,
8191 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8192 -1, 1695, 1696, -1, -1, -1, -1, -1, 90, -1,
8193 -1, -1, 1956, -1, -1, -1, 1960, 842, -1, -1,
8194 -1, -1, -1, -1, -1, -1, -1, 852, -1, 455,
8195 456, 457, -1, 459, 460, 461, 462, 463, 464, 2216,
8196 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8197 -1, -1, -1, -1, -1, -1, -1, -1, -1, 141,
8198 -1, -1, 1816, -1, -1, -1, -1, -1, 893, -1,
8199 -1, 153, -1, -1, 2251, -1, 158, -1, -1, -1,
8200 1141, 163, -1, 1922, -1, -1, 207, -1, -1, 2506,
8201 172, 916, -1, 175, -1, -1, -1, 922, -1, 2276,
8202 925, -1, 2279, -1, 929, -1, -1, -1, -1, -1,
8203 -1, -1, 937, 938, -1, -1, -1, -1, -1, -1,
8204 945, 203, -1, 948, 949, 950, 951, -1, 1434, 1435,
8205 1436, -1, -1, 958, 959, -1, -1, -1, -1, -1,
8206 -1, 223, -1, -1, -1, -1, -1, -1, 269, 974,
8207 975, 976, 977, 978, 979, -1, -1, -1, 983, -1,
8208 -1, -1, 987, -1, -1, -1, 991, -1, 1922, 994,
8209 995, 996, 997, 998, 999, 1000, 1001, 1002, -1, -1,
8210 1005, -1, 264, 2127, -1, 267, -1, 1012, 2132, 1014,
8211 -1, 273, -1, 2137, -1, -1, 2140, -1, -1, 2038,
8212 8, -1, -1, 11, -1, 65, 2045, 15, 16, 17,
8213 -1, 71, -1, -1, -1, -1, 1577, -1, -1, -1,
8214 2164, -1, -1, 83, 32, -1, -1, -1, -1, -1,
8215 -1, -1, 40, 269, -1, -1, -1, -1, -1, 47,
8216 -1, -1, -1, -1, -1, 327, -1, -1, -1, -1,
8217 -1, 111, -1, 113, -1, 1616, -1, -1, -1, -1,
8218 -1, -1, 2101, 71, -1, 8, -1, -1, 11, -1,
8219 -1, 1577, 15, 16, 17, -1, -1, 1638, -1, -1,
8220 1341, 1342, -1, -1, 2038, 1346, -1, -1, -1, -1,
8221 -1, 2045, -1, -1, -1, -1, 378, 40, 1123, -1,
8222 -1, -1, 2246, -1, 47, -1, 1667, 167, 2485, -1,
8223 1616, -1, -1, -1, -1, -1, 1141, -1, 1379, 1380,
8224 -1, -1, 404, -1, -1, 1150, 1151, 2271, 71, -1,
8225 1691, -1, 1638, 193, 455, 456, 457, -1, 459, 460,
8226 461, 462, 463, 464, -1, -1, 428, 2101, 430, 431,
8227 -1, -1, -1, -1, -1, -1, -1, 1182, -1, -1,
8228 -1, 1667, -1, 1188, -1, 1190, -1, -1, -1, -1,
8229 -1, -1, -1, 181, -1, -1, -1, 2216, 186, -1,
8230 -1, -1, -1, -1, 466, 1691, -1, 469, 470, 471,
8231 -1, -1, 252, -1, -1, -1, -1, 257, -1, 207,
8232 208, -1, -1, -1, 2098, -1, -1, -1, -1, -1,
8233 49, -1, 2251, -1, 222, -1, -1, -1, -1, 455,
8234 456, 457, -1, 459, 460, 461, 462, 463, 464, -1,
8235 1736, 1256, -1, 2377, -1, -1, -1, 2276, 181, 299,
8236 2279, -1, -1, 186, 252, -1, 1271, 255, 1273, 1274,
8237 1275, -1, -1, 92, 314, 1816, -1, -1, -1, 2403,
8238 -1, 269, 2216, -1, 1289, -1, -1, -1, -1, -1,
8239 1295, 1296, -1, -1, -1, -1, 1301, -1, 117, 222,
8240 8, -1, -1, 11, -1, -1, -1, 15, 16, 17,
8241 -1, -1, 2186, -1, -1, -1, 135, 2251, -1, -1,
8242 139, -1, -1, -1, 32, -1, -1, -1, 8, -1,
8243 1816, 11, -1, -1, -1, -1, 1341, 1342, 1343, -1,
8244 159, 1346, 2276, 162, -1, 2279, 269, -1, -1, -1,
8245 -1, -1, -1, 1358, 1359, 1360, 1361, 176, -1, -1,
8246 40, 1366, -1, -1, -1, 405, -1, 47, 356, -1,
8247 -1, -1, -1, -1, 1379, 1380, 2250, -1, 1383, -1,
8248 -1, 1922, -1, -1, -1, -1, -1, -1, -1, 2513,
8249 -1, 71, 1397, -1, 1399, -1, 1401, -1, 1639, 1640,
8250 1641, 1642, -1, -1, 1645, 1646, 1647, 1648, 1649, 1650,
8251 1651, 1652, 1653, 1654, -1, -1, 1421, -1, -1, -1,
8252 -1, -1, -1, -1, -1, -1, -1, 1432, -1, 1434,
8253 1435, 1436, -1, 356, -1, 0, 1922, -1, 257, -1,
8254 1445, -1, -1, -1, -1, -1, 265, -1, 1453, -1,
8255 -1, -1, -1, -1, 1695, 1696, -1, -1, -1, 139,
8256 -1, -1, 1467, -1, 452, -1, 2485, 455, 456, 457,
8257 -1, 459, 460, 461, 462, 463, 464, 1482, -1, -1,
8258 -1, -1, -1, -1, -1, -1, 1972, 306, -1, -1,
8259 -1, -1, -1, -1, 1980, 1500, -1, 2038, -1, 207,
8260 -1, 181, -1, -1, 2045, -1, 186, -1, -1, -1,
8261 -1, -1, 1517, 1518, 1519, -1, -1, -1, -1, -1,
8262 -1, -1, -1, -1, -1, 90, -1, -1, -1, 452,
8263 -1, -1, 455, 456, 457, -1, 459, 460, 461, 462,
8264 463, 464, 222, -1, -1, -1, -1, -1, -1, -1,
8265 -1, 2485, 2038, -1, -1, -1, -1, -1, -1, 2045,
8266 2101, 269, -1, -1, -1, -1, -1, -1, -1, -1,
8267 -1, -1, 1577, -1, -1, -1, 141, -1, -1, -1,
8268 -1, -1, -1, -1, -1, -1, -1, -1, 153, 269,
8269 -1, -1, -1, 158, -1, -1, -1, -1, 163, -1,
8270 -1, -1, -1, -1, -1, -1, -1, 172, 1613, -1,
8271 175, 1616, -1, -1, -1, 2101, -1, -1, 1623, -1,
8272 -1, -1, -1, -1, 1629, -1, -1, 1632, -1, -1,
8273 -1, -1, -1, 1638, 1639, 1640, 1641, 1642, 203, -1,
8274 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654,
8275 -1, -1, -1, 1658, 1659, -1, -1, -1, 223, -1,
8276 -1, -1, 1667, -1, -1, -1, -1, 1672, -1, -1,
8277 -1, -1, -1, -1, 1679, 2216, 356, 1682, -1, 1684,
8278 -1, -1, -1, -1, -1, -1, 1691, 1692, -1, -1,
8279 1695, 1696, -1, -1, -1, 1700, 1701, -1, 0, 264,
8280 -1, -1, 267, -1, -1, -1, -1, -1, 273, -1,
8281 2251, 1716, -1, 1718, -1, -1, 18, 0, -1, -1,
8282 -1, -1, -1, -1, -1, 1730, 28, -1, 30, 31,
8283 2216, 1736, -1, -1, -1, 2276, -1, -1, 2279, -1,
8284 -1, -1, 1747, -1, 46, -1, -1, 455, 456, 457,
8285 -1, 459, 460, 461, 462, 463, 464, -1, 1763, -1,
8286 -1, -1, 327, -1, 66, 2251, -1, -1, -1, -1,
8287 -1, -1, 452, -1, -1, 77, -1, -1, -1, 459,
8288 460, 461, 462, 463, 464, -1, 88, -1, 90, -1,
8289 2276, -1, -1, 2279, -1, -1, -1, -1, -1, -1,
8290 -1, -1, -1, -1, -1, 107, 1811, 90, -1, -1,
8291 1815, 1816, 1817, 378, -1, -1, -1, -1, -1, 121,
8292 -1, -1, -1, 485, 486, -1, -1, -1, -1, 131,
8293 -1, -1, -1, -1, -1, 137, -1, -1, -1, 404,
8294 -1, -1, -1, 145, -1, 147, -1, -1, -1, -1,
8295 -1, -1, -1, -1, -1, -1, 8, 2098, 141, 11,
8296 -1, -1, -1, 428, -1, 430, 431, -1, 1873, -1,
8297 153, -1, -1, -1, -1, 158, -1, -1, -1, -1,
8298 163, -1, -1, -1, -1, -1, -1, -1, 40, 172,
8299 -1, -1, 175, -1, -1, 47, -1, -1, -1, -1,
8300 -1, 466, -1, -1, 469, 470, 471, -1, -1, -1,
8301 8, 1916, 1917, 11, -1, -1, 1921, 1922, -1, 71,
8302 203, 1926, -1, 225, 1929, 1930, -1, -1, -1, 1934,
8303 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8304 223, -1, 40, -1, 2485, 2186, -1, -1, -1, 47,
8305 -1, 1956, -1, 615, -1, 1960, -1, -1, -1, -1,
8306 -1, -1, -1, -1, -1, -1, -1, 1972, -1, -1,
8307 632, -1, -1, 71, -1, 1980, -1, -1, -1, -1,
8308 -1, 264, 1987, -1, 267, -1, -1, 139, -1, -1,
8309 273, 293, -1, -1, 296, -1, -1, -1, -1, 2485,
8310 662, -1, -1, -1, -1, -1, -1, -1, -1, 2250,
8311 -1, -1, -1, -1, -1, 2020, -1, -1, -1, 681,
8312 682, 683, 324, 685, 2029, -1, -1, -1, -1, 181,
8313 332, -1, -1, 2038, 186, -1, -1, -1, -1, -1,
8314 2045, 139, 344, 705, 327, -1, -1, -1, -1, 351,
8315 -1, -1, -1, 355, -1, -1, -1, -1, -1, -1,
8316 -1, -1, -1, 365, -1, -1, -1, -1, 730, -1,
8317 222, -1, -1, -1, -1, -1, 378, -1, -1, -1,
8318 -1, -1, -1, 181, -1, -1, -1, -1, 186, -1,
8319 -1, -1, -1, 2098, -1, 378, 2101, -1, 760, -1,
8320 -1, -1, 764, 765, -1, 2110, 2111, -1, -1, 2114,
8321 -1, 413, -1, -1, -1, -1, 418, 269, -1, -1,
8322 -1, 404, 2127, -1, 222, -1, -1, 2132, -1, 431,
8323 -1, 8, 2137, -1, 11, 2140, 2141, -1, 15, 16,
8324 17, -1, -1, 2148, 2149, 428, 8, 430, 431, 11,
8325 -1, -1, 454, 15, 16, 17, -1, -1, -1, 2164,
8326 -1, 2166, -1, -1, -1, -1, 468, -1, -1, 471,
8327 32, 269, -1, -1, -1, -1, -1, -1, 40, -1,
8328 -1, 2186, -1, 466, -1, 47, 469, 470, 471, -1,
8329 -1, -1, -1, -1, 699, -1, -1, -1, -1, -1,
8330 -1, -1, -1, -1, 356, -1, -1, -1, -1, 71,
8331 -1, 2216, -1, -1, 2219, -1, -1, -1, -1, -1,
8332 -1, -1, 8, -1, -1, 11, -1, -1, -1, 15,
8333 16, 17, -1, -1, -1, -1, -1, -1, 743, -1,
8334 -1, 2246, -1, -1, -1, 2250, 2251, -1, -1, -1,
8335 -1, -1, -1, -1, 40, -1, -1, -1, 356, -1,
8336 922, 47, 2267, -1, -1, -1, 2271, -1, -1, -1,
8337 -1, 2276, -1, -1, 2279, -1, 2281, -1, -1, -1,
8338 -1, -1, -1, 945, -1, 71, 948, -1, 2293, 951,
8339 -1, -1, -1, -1, -1, -1, 958, 959, 2303, -1,
8340 452, -1, 2307, 2308, -1, -1, -1, 459, 460, 461,
8341 462, 463, 464, 975, 976, 977, 978, -1, -1, 181,
8342 -1, 983, -1, -1, 186, 987, -1, 2332, -1, 991,
8343 207, -1, 994, 995, 996, 997, 998, 999, 1000, 1001,
8344 1002, -1, -1, 1005, -1, 207, 208, -1, -1, -1,
8345 1012, -1, 1014, -1, 452, -1, -1, -1, -1, -1,
8346 222, 459, 460, 461, 462, 463, 464, 872, -1, 2374,
8347 -1, -1, 2377, -1, -1, -1, -1, 8, -1, -1,
8348 11, 2386, -1, -1, 15, 16, 17, -1, -1, 2394,
8349 252, -1, 269, 255, -1, 181, -1, -1, 2403, -1,
8350 186, -1, -1, -1, -1, -1, -1, 269, -1, 40,
8351 272, -1, -1, -1, -1, 920, 47, -1, 2423, -1,
8352 -1, 207, 208, 2428, -1, 2430, -1, -1, -1, -1,
8353 -1, -1, -1, -1, -1, -1, 222, -1, -1, 944,
8354 71, -1, -1, -1, 949, -1, -1, -1, -1, -1,
8355 -1, -1, -1, 2458, 2459, 960, 961, 962, -1, 964,
8356 -1, 1123, -1, 3, -1, -1, 252, -1, 8, 255,
8357 -1, 11, -1, -1, -1, 15, 16, 17, -1, 2484,
8358 2485, -1, -1, 269, -1, -1, -1, -1, 1150, 1151,
8359 -1, -1, 32, -1, 356, 35, -1, -1, -1, -1,
8360 40, -1, -1, -1, -1, 1010, -1, 47, 2513, -1,
8361 2515, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8362 -1, -1, -1, -1, -1, -1, 1031, -1, -1, -1,
8363 -1, 71, -1, -1, -1, -1, -1, -1, -1, -1,
8364 -1, -1, 2547, -1, -1, -1, -1, -1, -1, -1,
8365 181, 8, -1, -1, 11, 186, -1, -1, 15, 16,
8366 17, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8367 356, -1, 2577, 2578, -1, -1, 207, 208, 455, 456,
8368 457, -1, 459, 460, 461, 462, 463, 464, -1, -1,
8369 452, 222, -1, 455, 456, 457, -1, 459, 460, 461,
8370 462, 463, 464, -1, -1, -1, -1, -1, -1, -1,
8371 472, 1273, 1274, 1275, -1, -1, -1, -1, -1, -1,
8372 -1, -1, -1, -1, 255, -1, -1, -1, -1, -1,
8373 -1, -1, 1137, -1, 1296, -1, -1, -1, 269, 1301,
8374 -1, 181, -1, -1, 1149, -1, 186, -1, -1, 1154,
8375 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8376 -1, -1, -1, -1, -1, -1, 452, 207, 208, 455,
8377 456, 457, -1, 459, 460, 461, 462, 463, 464, -1,
8378 -1, 1343, 222, -1, -1, -1, -1, -1, -1, -1,
8379 -1, -1, -1, -1, -1, -1, 1358, -1, 1360, 1361,
8380 -1, -1, -1, -1, 1366, -1, -1, -1, -1, -1,
8381 -1, -1, 252, -1, -1, 255, -1, -1, -1, -1,
8382 -1, -1, -1, -1, -1, 356, -1, -1, -1, 269,
8383 -1, -1, 272, -1, -1, 1397, -1, 1399, -1, 1401,
8384 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8385 207, -1, 8, -1, -1, 11, -1, -1, -1, -1,
8386 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8387 -1, -1, 1434, 1435, 1436, -1, -1, -1, -1, 8,
8388 -1, -1, 11, 1445, 40, -1, 15, 16, 17, -1,
8389 -1, 47, -1, -1, 1299, -1, -1, -1, -1, -1,
8390 -1, -1, -1, 32, -1, 1467, -1, -1, -1, -1,
8391 -1, 40, 269, -1, -1, 71, 356, 1322, 47, -1,
8392 1482, 452, -1, -1, 455, 456, 457, -1, 459, 460,
8393 461, 462, 463, 464, 1339, -1, 1341, 1342, 1500, 1344,
8394 -1, 1346, 71, -1, -1, 1350, -1, -1, -1, -1,
8395 -1, -1, 1357, -1, -1, -1, -1, 1362, -1, -1,
8396 -1, -1, -1, -1, -1, -1, -1, 1372, 1373, 1374,
8397 1375, -1, -1, -1, 1379, 1380, -1, 1382, -1, -1,
8398 -1, -1, -1, 139, -1, -1, -1, -1, 1393, -1,
8399 -1, 1396, -1, -1, -1, -1, -1, -1, 1403, 1404,
8400 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, -1, -1,
8401 8, -1, 452, 11, -1, 455, 456, 457, -1, 459,
8402 460, 461, 462, 463, 464, 181, -1, -1, -1, -1,
8403 186, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8404 -1, -1, 40, -1, -1, 1450, -1, -1, -1, 47,
8405 -1, 1613, 181, -1, -1, -1, -1, 186, -1, -1,
8406 -1, 1623, -1, -1, -1, -1, 222, 1629, -1, -1,
8407 1632, -1, -1, 71, -1, -1, -1, -1, 207, 208,
8408 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8409 -1, -1, -1, 222, -1, -1, 1658, 1659, 455, 456,
8410 457, -1, 459, 460, 461, 462, 463, 464, -1, -1,
8411 -1, -1, -1, 269, -1, -1, -1, 1679, -1, -1,
8412 1682, -1, 1684, 252, -1, -1, 255, -1, -1, -1,
8413 1692, -1, -1, -1, -1, -1, -1, -1, 1700, 1701,
8414 269, 139, -1, 272, -1, -1, -1, -1, -1, -1,
8415 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8416 -1, -1, -1, -1, -1, -1, -1, -1, 1730, -1,
8417 8, -1, -1, 11, 1736, -1, -1, 15, 16, 17,
8418 -1, -1, -1, 181, -1, 1747, -1, -1, 186, -1,
8419 -1, 1596, 1597, -1, 32, -1, -1, -1, -1, -1,
8420 356, 1763, 40, -1, -1, -1, -1, 1612, -1, 47,
8421 -1, -1, -1, 1618, -1, -1, -1, -1, -1, -1,
8422 -1, -1, 8, -1, 222, 11, -1, 356, -1, -1,
8423 1635, 1636, 1637, 71, 1639, 1640, 1641, 1642, -1, -1,
8424 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654,
8425 1655, -1, -1, -1, 40, -1, -1, -1, -1, -1,
8426 -1, 47, -1, -1, -1, -1, -1, -1, -1, -1,
8427 1675, 269, -1, -1, -1, 1680, 1681, -1, -1, -1,
8428 -1, -1, -1, -1, -1, 71, -1, -1, -1, 1694,
8429 1695, 1696, 1697, -1, 1699, -1, 452, -1, -1, -1,
8430 -1, -1, -1, 459, 460, 461, 462, 463, 464, -1,
8431 -1, 1873, -1, -1, -1, -1, -1, -1, -1, -1,
8432 -1, -1, -1, 452, -1, -1, 455, 456, 457, -1,
8433 459, 460, 461, 462, 463, 464, -1, 1742, -1, -1,
8434 469, -1, -1, 181, -1, -1, -1, -1, 186, -1,
8435 -1, -1, -1, 139, 1916, 1917, -1, -1, 356, 1921,
8436 -1, -1, -1, -1, 1926, -1, -1, 1929, 1930, 207,
8437 208, -1, 1934, -1, -1, 1780, -1, -1, -1, -1,
8438 -1, -1, -1, -1, 222, -1, -1, -1, -1, -1,
8439 -1, -1, -1, -1, -1, 181, -1, -1, -1, -1,
8440 186, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8441 1972, -1, -1, -1, 252, -1, -1, 255, 1980, -1,
8442 -1, -1, -1, -1, -1, 1987, -1, -1, -1, -1,
8443 -1, 269, -1, -1, 272, -1, 222, -1, -1, -1,
8444 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8445 -1, -1, -1, -1, 452, -1, -1, -1, -1, -1,
8446 -1, 459, 460, 461, 462, 463, 464, 2029, -1, 1874,
8447 -1, -1, -1, 1878, 1879, -1, 1881, -1, -1, 1884,
8448 1885, 1886, 1887, 269, -1, -1, 1891, 1892, 1893, 1894,
8449 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, -1, -1,
8450 -1, -1, -1, -1, -1, -1, -1, -1, 8, -1,
8451 1915, 11, -1, 1918, -1, 1920, -1, -1, 356, 1924,
8452 -1, -1, 1927, 1928, -1, -1, 1931, 1932, -1, -1,
8453 -1, -1, -1, -1, -1, -1, 8, -1, -1, 11,
8454 40, -1, -1, 15, 16, 17, -1, 47, 2110, 2111,
8455 -1, -1, 2114, -1, -1, -1, -1, -1, -1, -1,
8456 32, -1, -1, -1, -1, -1, -1, -1, 40, 1974,
8457 356, 71, -1, -1, -1, 47, 8, -1, -1, 11,
8458 -1, 1986, -1, 15, 16, 17, 2148, 2149, 35, -1,
8459 -1, -1, -1, -1, 1999, -1, -1, -1, -1, 71,
8460 32, -1, -1, -1, 2166, -1, -1, 54, 40, -1,
8461 -1, -1, -1, -1, 452, 47, -1, 455, 456, 457,
8462 -1, 459, 460, 461, 462, 463, 464, -1, -1, -1,
8463 -1, 469, -1, -1, -1, -1, -1, -1, -1, 71,
8464 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8465 -1, -1, -1, -1, -1, -1, 103, 104, -1, -1,
8466 -1, -1, -1, -1, 111, -1, 452, -1, -1, -1,
8467 -1, -1, -1, 459, 460, 461, 462, 463, 464, -1,
8468 -1, 181, -1, -1, -1, -1, 186, -1, -1, 2094,
8469 -1, -1, -1, 2098, -1, -1, -1, -1, -1, 2104,
8470 2105, 2106, -1, -1, 2109, 2267, -1, 2112, 2113, 181,
8471 -1, -1, 2117, -1, 186, -1, -1, -1, -1, 2281,
8472 167, -1, 222, -1, -1, -1, -1, -1, -1, -1,
8473 -1, 2293, -1, -1, -1, 207, 208, -1, -1, -1,
8474 -1, 188, -1, -1, -1, -1, 2308, -1, -1, 181,
8475 222, -1, -1, -1, 186, -1, -1, -1, -1, -1,
8476 -1, -1, -1, -1, -1, -1, -1, -1, -1, 269,
8477 -1, -1, -1, -1, -1, 207, 208, -1, -1, -1,
8478 252, 2186, -1, 255, -1, -1, -1, -1, -1, 236,
8479 222, -1, 239, -1, -1, -1, -1, 269, -1, 2204,
8480 272, -1, -1, 250, -1, 252, -1, -1, -1, -1,
8481 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8482 252, -1, -1, 255, -1, -1, -1, -1, -1, -1,
8483 -1, -1, 2394, -1, 281, -1, -1, 269, -1, -1,
8484 272, -1, -1, -1, 2249, 2250, -1, -1, -1, 2254,
8485 2255, 2256, -1, -1, -1, -1, 356, -1, -1, -1,
8486 -1, 2423, -1, -1, -1, -1, -1, -1, -1, -1,
8487 -1, -1, -1, -1, -1, -1, -1, -1, 325, -1,
8488 2285, 2286, -1, -1, 356, -1, -1, -1, -1, -1,
8489 -1, -1, -1, -1, 2299, -1, 2458, 2459, 345, -1,
8490 -1, -1, -1, -1, -1, -1, 2311, -1, -1, -1,
8491 -1, -1, -1, -1, -1, -1, -1, -1, 365, -1,
8492 367, -1, -1, 370, 356, -1, -1, -1, -1, -1,
8493 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8494 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8495 -1, -1, 452, 2515, -1, -1, -1, -1, -1, 459,
8496 460, 461, 462, 463, 464, -1, 2371, -1, -1, -1,
8497 -1, -1, -1, -1, -1, -1, -1, 2382, -1, -1,
8498 452, -1, -1, 455, 456, 457, -1, 459, 460, 461,
8499 462, 463, 464, -1, -1, -1, 2401, 469, -1, -1,
8500 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8501 2415, -1, -1, -1, -1, 2577, 2578, -1, -1, -1,
8502 452, 468, -1, 455, 456, 457, -1, 459, 460, 461,
8503 462, 463, 464, -1, -1, -1, -1, 469, -1, -1,
8504 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8505 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8506 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8507 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8508 -1, -1, -1, -1, -1, -1, -1, 2492, -1, -1,
8509 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
8510 -1, -1, -1, -1, 3, 4, 5, 6, 7, 8,
8511 9, 10, -1, 2518, -1, -1, -1, -1, -1, 18,
8512 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
8513 29, -1, -1, -1, -1, -1, -1, -1, 37, 38,
8514 -1, 40, 41, 42, 43, 44, 45, 46, 47, 48,
8515 49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
8516 59, 60, 61, 62, 63, 64, -1, 66, 67, 68,
8517 69, 70, -1, 72, -1, 74, 75, 76, 77, 78,
8518 79, 80, 81, 82, 2589, 84, 85, 86, 87, 88,
8519 89, -1, 91, 92, 93, 94, 95, 96, 97, 98,
8520 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
8521 109, 110, 111, 112, -1, 114, 115, 116, 117, 118,
8522 119, -1, 121, 122, 123, 124, 125, 126, -1, 128,
8523 129, 130, 131, 132, -1, 134, 135, 136, -1, 138,
8524 139, 140, -1, 142, 143, 144, 145, 146, 147, 148,
8525 149, 150, 151, 152, -1, 154, 155, 156, 157, -1,
8526 159, -1, 161, 162, -1, 164, 165, 166, 167, 168,
8527 -1, 170, 171, -1, 173, 174, -1, 176, 177, 178,
8528 179, 180, 181, 182, 183, 184, 185, -1, 187, 188,
8529 189, 190, 191, 192, -1, 194, 195, 196, 197, 198,
8530 199, 200, 201, 202, -1, 204, -1, 206, 207, 208,
8531 209, 210, 211, 212, 213, 214, 215, -1, -1, 218,
8532 219, 220, 221, 222, -1, 224, 225, 226, 227, 228,
8533 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
8534 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
8535 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
8536 259, 260, 261, 262, 263, -1, 265, 266, -1, -1,
8537 269, 270, 271, -1, -1, 274, 275, 276, 277, 278,
8538 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
8539 -1, 290, 291, 292, 293, 294, 295, 296, 297, 298,
8540 -1, 300, 301, 302, 303, 304, 305, 306, 307, 308,
8541 309, 310, 311, 312, 313, -1, 315, 316, 317, 318,
8542 319, 320, 321, 322, 323, 324, 325, 326, -1, 328,
8543 329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
8544 339, 340, 341, 342, 343, -1, 345, 346, 347, 348,
8545 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
8546 359, 360, -1, 362, 363, 364, 365, 366, 367, 368,
8547 369, 370, 371, 372, 373, 374, -1, 376, 377, -1,
8548 379, 380, 381, 382, 383, 384, 385, -1, 387, 388,
8549 -1, -1, 391, 392, 393, 394, 395, 396, 397, 398,
8550 399, 400, 401, 402, 403, -1, -1, 406, 407, 408,
8551 409, 410, 411, -1, 413, 414, 415, 416, 417, 418,
8552 419, 420, 421, 422, 423, 424, 425, 426, -1, -1,
8553 429, -1, -1, 432, 433, 434, 435, 436, 437, 438,
8554 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
8555 449, 450, 451, 452, -1, -1, -1, -1, -1, -1,
8556 459, 460, 461, -1, -1, -1, -1, -1, -1, 468,
8557 469, -1, -1, -1, 473, 3, 4, 5, 6, 7,
8558 8, 9, 10, -1, -1, -1, -1, -1, -1, -1,
8559 18, 19, 20, 21, 22, 23, 24, 25, -1, 27,
8560 28, 29, -1, -1, -1, -1, -1, -1, -1, 37,
8561 38, -1, 40, 41, 42, 43, 44, 45, 46, 47,
8562 48, 49, 50, 51, -1, 53, 54, 55, 56, 57,
8563 58, 59, 60, 61, 62, 63, 64, -1, 66, 67,
8564 68, 69, 70, -1, 72, -1, 74, 75, 76, 77,
8565 78, 79, 80, 81, 82, -1, 84, 85, 86, 87,
8566 88, 89, -1, 91, 92, 93, 94, 95, 96, 97,
8567 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
8568 108, 109, 110, 111, 112, -1, 114, 115, 116, 117,
8569 118, 119, -1, 121, 122, 123, 124, 125, -1, -1,
8570 128, 129, 130, 131, 132, -1, 134, 135, 136, -1,
8571 138, 139, 140, -1, 142, 143, 144, 145, 146, 147,
8572 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
8573 -1, 159, -1, 161, 162, -1, 164, 165, 166, 167,
8574 168, -1, 170, 171, -1, 173, 174, -1, 176, 177,
8575 178, 179, 180, 181, 182, 183, 184, 185, -1, 187,
8576 188, 189, 190, 191, 192, -1, 194, 195, 196, 197,
8577 198, 199, 200, 201, 202, -1, 204, -1, 206, 207,
8578 208, 209, 210, 211, 212, 213, 214, 215, -1, -1,
8579 218, 219, 220, 221, 222, -1, 224, 225, 226, 227,
8580 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
8581 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
8582 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
8583 258, 259, 260, 261, 262, 263, -1, 265, 266, -1,
8584 -1, 269, 270, 271, -1, -1, 274, 275, 276, 277,
8585 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
8586 288, -1, 290, 291, 292, 293, 294, 295, 296, 297,
8587 298, -1, 300, 301, 302, 303, 304, 305, 306, 307,
8588 308, 309, 310, 311, 312, 313, -1, 315, 316, 317,
8589 318, 319, 320, 321, 322, 323, 324, 325, 326, -1,
8590 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
8591 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
8592 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
8593 358, 359, 360, -1, 362, 363, 364, 365, 366, 367,
8594 368, 369, 370, 371, 372, 373, 374, -1, 376, 377,
8595 378, 379, 380, 381, 382, 383, 384, 385, -1, 387,
8596 388, -1, -1, 391, 392, 393, 394, 395, 396, 397,
8597 398, 399, 400, 401, 402, 403, -1, -1, 406, 407,
8598 408, 409, 410, 411, -1, 413, 414, 415, 416, 417,
8599 418, 419, -1, 421, 422, 423, 424, 425, 426, -1,
8600 -1, 429, -1, 431, 432, 433, 434, 435, 436, 437,
8601 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
8602 448, 449, 450, 451, 452, -1, 454, -1, -1, -1,
8603 -1, 459, 460, -1, -1, -1, -1, -1, -1, -1,
8604 468, 469, -1, -1, -1, 473, 3, 4, 5, 6,
8605 7, 8, 9, 10, -1, -1, -1, -1, -1, -1,
8606 -1, 18, 19, 20, 21, 22, 23, 24, 25, -1,
8607 27, 28, 29, -1, -1, -1, -1, -1, -1, -1,
8608 37, 38, -1, 40, 41, 42, 43, 44, 45, 46,
8609 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
8610 57, 58, 59, 60, 61, 62, 63, 64, -1, 66,
8611 67, 68, 69, 70, -1, 72, -1, 74, 75, 76,
8612 77, 78, 79, 80, 81, 82, -1, 84, 85, 86,
8613 87, 88, 89, -1, 91, 92, 93, 94, 95, 96,
8614 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
8615 107, 108, 109, 110, 111, 112, -1, 114, 115, 116,
8616 117, 118, 119, -1, 121, 122, 123, 124, 125, -1,
8617 -1, 128, 129, 130, 131, 132, -1, 134, 135, 136,
8618 -1, 138, 139, 140, -1, 142, 143, 144, 145, 146,
8619 147, 148, 149, 150, 151, 152, -1, 154, 155, 156,
8620 157, -1, 159, -1, 161, 162, -1, 164, 165, 166,
8621 167, 168, -1, 170, 171, -1, 173, 174, -1, 176,
8622 177, 178, 179, 180, 181, 182, 183, 184, 185, -1,
8623 187, 188, 189, 190, 191, 192, -1, 194, 195, 196,
8624 197, 198, 199, 200, 201, 202, -1, 204, -1, 206,
8625 207, 208, 209, 210, 211, 212, 213, 214, 215, -1,
8626 -1, 218, 219, 220, 221, 222, -1, 224, 225, 226,
8627 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
8628 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
8629 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
8630 257, 258, 259, 260, 261, 262, 263, -1, 265, 266,
8631 -1, -1, 269, 270, 271, -1, -1, 274, 275, 276,
8632 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
8633 287, 288, -1, 290, 291, 292, 293, 294, 295, 296,
8634 297, 298, -1, 300, 301, 302, 303, 304, 305, 306,
8635 307, 308, 309, 310, 311, 312, 313, -1, 315, 316,
8636 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
8637 -1, 328, 329, 330, 331, 332, 333, 334, 335, 336,
8638 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
8639 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
8640 357, 358, 359, 360, -1, 362, 363, 364, 365, 366,
8641 367, 368, 369, 370, 371, 372, 373, 374, -1, 376,
8642 377, 378, 379, 380, 381, 382, 383, 384, 385, -1,
8643 387, 388, -1, -1, 391, 392, 393, 394, 395, 396,
8644 397, 398, 399, 400, 401, 402, 403, -1, -1, 406,
8645 407, 408, 409, 410, 411, -1, 413, 414, 415, 416,
8646 417, 418, 419, -1, 421, 422, 423, 424, 425, 426,
8647 -1, -1, 429, -1, 431, 432, 433, 434, 435, 436,
8648 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
8649 447, 448, 449, 450, 451, 452, -1, 454, -1, -1,
8650 -1, -1, 459, 460, -1, -1, -1, -1, -1, -1,
8651 -1, 468, -1, -1, -1, -1, 473, 3, 4, 5,
8652 6, 7, 8, 9, 10, -1, -1, -1, -1, -1,
8653 -1, -1, 18, 19, 20, 21, 22, 23, 24, 25,
8654 -1, 27, 28, 29, -1, -1, -1, -1, -1, -1,
8655 -1, 37, 38, -1, 40, 41, 42, 43, 44, 45,
8656 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
8657 56, 57, 58, 59, 60, 61, 62, 63, 64, -1,
8658 66, 67, 68, 69, 70, -1, 72, -1, 74, 75,
8659 76, 77, 78, 79, 80, 81, 82, -1, 84, 85,
8660 86, 87, 88, 89, -1, 91, 92, 93, 94, 95,
8661 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
8662 106, 107, 108, 109, 110, 111, 112, -1, 114, 115,
8663 116, 117, 118, 119, -1, 121, 122, 123, 124, 125,
8664 -1, -1, 128, 129, 130, 131, 132, -1, 134, 135,
8665 136, -1, 138, 139, 140, -1, 142, 143, 144, 145,
8666 146, 147, 148, 149, 150, 151, 152, -1, 154, 155,
8667 156, 157, -1, 159, -1, 161, 162, 163, 164, 165,
8668 166, 167, 168, -1, 170, 171, -1, 173, 174, -1,
8669 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
8670 -1, 187, 188, 189, 190, 191, 192, -1, 194, 195,
8671 196, 197, 198, 199, 200, 201, 202, -1, 204, -1,
8672 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
8673 -1, 217, 218, 219, 220, 221, 222, -1, 224, 225,
8674 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
8675 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
8676 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
8677 256, 257, 258, 259, 260, 261, 262, 263, -1, 265,
8678 266, -1, -1, 269, 270, 271, -1, -1, 274, 275,
8679 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
8680 286, 287, 288, -1, 290, 291, 292, 293, 294, 295,
8681 296, 297, 298, -1, 300, 301, 302, 303, 304, 305,
8682 306, 307, 308, 309, 310, 311, 312, 313, -1, 315,
8683 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
8684 326, -1, 328, 329, 330, 331, 332, 333, 334, 335,
8685 336, 337, 338, 339, 340, 341, 342, 343, -1, 345,
8686 346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
8687 356, 357, 358, 359, 360, -1, 362, 363, 364, 365,
8688 366, 367, 368, 369, 370, 371, 372, 373, 374, -1,
8689 376, 377, -1, 379, 380, 381, 382, 383, 384, 385,
8690 -1, 387, 388, -1, 390, 391, 392, 393, 394, 395,
8691 396, 397, 398, 399, 400, 401, 402, 403, -1, -1,
8692 406, 407, 408, 409, 410, 411, -1, 413, 414, 415,
8693 416, 417, 418, 419, -1, 421, 422, 423, 424, 425,
8694 426, -1, -1, 429, -1, -1, 432, 433, 434, 435,
8695 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
8696 446, 447, 448, 449, 450, 451, 452, -1, -1, -1,
8697 -1, -1, -1, 459, 460, -1, -1, -1, -1, -1,
8698 -1, -1, 468, -1, -1, -1, -1, 473, 3, 4,
8699 5, 6, 7, 8, 9, 10, -1, -1, -1, -1,
8700 -1, -1, -1, 18, 19, 20, 21, 22, 23, 24,
8701 25, -1, 27, 28, 29, -1, -1, -1, -1, -1,
8702 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
8703 45, 46, 47, 48, 49, 50, 51, -1, 53, 54,
8704 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
8705 -1, 66, 67, 68, 69, 70, -1, 72, -1, 74,
8706 75, 76, 77, 78, 79, 80, 81, 82, -1, 84,
8707 85, 86, 87, 88, 89, -1, 91, 92, 93, 94,
8708 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
8709 105, 106, 107, 108, 109, 110, 111, 112, -1, 114,
8710 115, 116, 117, 118, 119, -1, 121, 122, 123, 124,
8711 125, -1, -1, 128, 129, 130, 131, 132, -1, 134,
8712 135, 136, -1, 138, 139, 140, -1, 142, 143, 144,
8713 145, 146, 147, 148, 149, 150, 151, 152, -1, 154,
8714 155, 156, 157, -1, 159, -1, 161, 162, -1, 164,
8715 165, 166, 167, 168, -1, 170, 171, -1, 173, 174,
8716 -1, 176, 177, 178, 179, 180, 181, 182, 183, 184,
8717 185, -1, 187, 188, 189, 190, 191, 192, -1, 194,
8718 195, 196, 197, 198, 199, 200, 201, 202, -1, 204,
8719 -1, 206, 207, 208, 209, 210, 211, 212, 213, 214,
8720 215, -1, -1, 218, 219, 220, 221, 222, -1, 224,
8721 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
8722 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
8723 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
8724 255, 256, 257, 258, 259, 260, 261, 262, 263, -1,
8725 265, 266, -1, -1, 269, 270, 271, -1, -1, 274,
8726 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
8727 285, 286, 287, 288, -1, 290, 291, 292, 293, 294,
8728 295, 296, 297, 298, -1, 300, 301, 302, 303, 304,
8729 305, 306, 307, 308, 309, 310, 311, 312, 313, -1,
8730 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
8731 325, 326, -1, 328, 329, 330, 331, 332, 333, 334,
8732 335, 336, 337, 338, 339, 340, 341, 342, 343, -1,
8733 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
8734 355, 356, 357, 358, 359, 360, -1, 362, 363, 364,
8735 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
8736 -1, 376, 377, -1, 379, 380, 381, 382, 383, 384,
8737 385, -1, 387, 388, -1, -1, 391, 392, 393, 394,
8738 395, 396, 397, 398, 399, 400, 401, 402, 403, -1,
8739 -1, 406, 407, 408, 409, 410, 411, -1, 413, 414,
8740 415, 416, 417, 418, 419, -1, 421, 422, 423, 424,
8741 425, 426, -1, -1, 429, -1, -1, 432, 433, 434,
8742 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
8743 445, 446, 447, 448, 449, 450, 451, 452, -1, -1,
8744 -1, -1, -1, -1, 459, 460, 461, -1, -1, -1,
8745 -1, -1, -1, 468, -1, -1, -1, -1, 473, 3,
8746 4, 5, 6, 7, 8, 9, 10, -1, -1, -1,
8747 -1, -1, -1, -1, 18, 19, 20, 21, 22, 23,
8748 24, 25, 26, 27, 28, 29, -1, -1, -1, -1,
8749 -1, -1, -1, 37, 38, -1, 40, 41, 42, 43,
8750 44, 45, 46, 47, 48, 49, 50, 51, -1, 53,
8751 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
8752 64, -1, 66, 67, 68, 69, 70, -1, 72, -1,
8753 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
8754 84, 85, 86, 87, 88, 89, -1, 91, 92, 93,
8755 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
8756 104, 105, 106, 107, 108, 109, 110, 111, 112, -1,
8757 114, 115, 116, 117, 118, 119, -1, 121, 122, 123,
8758 124, 125, -1, -1, 128, 129, 130, 131, 132, -1,
8759 134, 135, 136, -1, 138, 139, 140, -1, 142, 143,
8760 144, 145, 146, 147, 148, 149, 150, 151, 152, -1,
8761 154, 155, 156, 157, -1, 159, -1, 161, 162, -1,
8762 164, 165, 166, 167, 168, -1, 170, 171, -1, 173,
8763 174, -1, 176, 177, 178, 179, 180, 181, 182, 183,
8764 184, 185, -1, 187, 188, 189, 190, 191, 192, -1,
8765 194, 195, 196, 197, 198, 199, 200, 201, 202, -1,
8766 204, -1, 206, 207, 208, 209, 210, 211, 212, 213,
8767 214, 215, -1, -1, 218, 219, 220, 221, 222, -1,
8768 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
8769 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
8770 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
8771 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
8772 -1, 265, 266, -1, -1, 269, 270, 271, -1, -1,
8773 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
8774 284, 285, 286, 287, 288, -1, 290, 291, 292, 293,
8775 294, 295, 296, 297, 298, -1, 300, 301, 302, 303,
8776 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
8777 -1, 315, 316, 317, 318, 319, 320, 321, 322, 323,
8778 324, 325, 326, -1, 328, 329, 330, 331, 332, 333,
8779 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
8780 -1, 345, 346, 347, 348, 349, 350, 351, 352, 353,
8781 354, 355, 356, 357, 358, 359, 360, -1, 362, 363,
8782 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
8783 374, -1, 376, 377, -1, 379, 380, 381, 382, 383,
8784 384, 385, -1, 387, 388, -1, -1, 391, 392, 393,
8785 394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
8786 -1, -1, 406, 407, 408, 409, 410, 411, -1, 413,
8787 414, 415, 416, 417, 418, 419, -1, 421, 422, 423,
8788 424, 425, 426, -1, -1, 429, -1, -1, 432, 433,
8789 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
8790 444, 445, 446, 447, 448, 449, 450, 451, 452, -1,
8791 -1, -1, -1, -1, -1, 459, 460, -1, -1, -1,
8792 -1, -1, -1, -1, 468, -1, -1, -1, -1, 473,
8793 3, 4, 5, 6, 7, 8, 9, 10, -1, -1,
8794 -1, -1, -1, -1, -1, 18, 19, 20, 21, 22,
8795 23, 24, 25, -1, 27, 28, 29, -1, -1, -1,
8796 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
8797 43, 44, 45, 46, 47, 48, 49, 50, 51, -1,
8798 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
8799 63, 64, -1, 66, 67, 68, 69, 70, -1, 72,
8800 -1, 74, 75, 76, 77, 78, 79, 80, 81, 82,
8801 -1, 84, 85, 86, 87, 88, 89, -1, 91, 92,
8802 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
8803 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
8804 -1, 114, 115, 116, 117, 118, 119, -1, 121, 122,
8805 123, 124, 125, -1, -1, 128, 129, 130, 131, 132,
8806 -1, 134, 135, 136, -1, 138, 139, 140, -1, 142,
8807 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
8808 -1, 154, 155, 156, 157, -1, 159, -1, 161, 162,
8809 -1, 164, 165, 166, 167, 168, -1, 170, 171, -1,
8810 173, 174, -1, 176, 177, 178, 179, 180, 181, 182,
8811 183, 184, 185, -1, 187, 188, 189, 190, 191, 192,
8812 -1, 194, 195, 196, 197, 198, 199, 200, 201, 202,
8813 -1, 204, -1, 206, 207, 208, 209, 210, 211, 212,
8814 213, 214, 215, -1, -1, 218, 219, 220, 221, 222,
8815 -1, 224, 225, 226, 227, 228, 229, 230, 231, 232,
8816 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
8817 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
8818 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
8819 263, -1, 265, 266, -1, -1, 269, 270, 271, -1,
8820 -1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
8821 283, 284, 285, 286, 287, 288, -1, 290, 291, 292,
8822 293, 294, 295, 296, 297, 298, -1, 300, 301, 302,
8823 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
8824 313, -1, 315, 316, 317, 318, 319, 320, 321, 322,
8825 323, 324, 325, 326, -1, 328, 329, 330, 331, 332,
8826 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
8827 343, -1, 345, 346, 347, 348, 349, 350, 351, 352,
8828 353, 354, 355, 356, 357, 358, 359, 360, -1, 362,
8829 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
8830 373, 374, -1, 376, 377, -1, 379, 380, 381, 382,
8831 383, 384, 385, -1, 387, 388, -1, -1, 391, 392,
8832 393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
8833 403, -1, -1, 406, 407, 408, 409, 410, 411, -1,
8834 413, 414, 415, 416, 417, 418, 419, -1, 421, 422,
8835 423, 424, 425, 426, -1, -1, 429, -1, -1, 432,
8836 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
8837 443, 444, 445, 446, 447, 448, 449, 450, 451, 452,
8838 -1, -1, -1, -1, -1, -1, 459, 460, -1, -1,
8839 -1, -1, -1, -1, -1, 468, 469, -1, -1, -1,
8840 473, 3, 4, 5, 6, 7, 8, 9, 10, -1,
8841 -1, -1, -1, -1, -1, -1, 18, 19, 20, 21,
8842 22, 23, 24, 25, -1, 27, 28, 29, -1, -1,
8843 -1, -1, -1, -1, -1, 37, 38, -1, 40, 41,
8844 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
8845 -1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
8846 62, 63, 64, -1, 66, 67, 68, 69, 70, -1,
8847 72, -1, 74, 75, 76, 77, 78, 79, 80, 81,
8848 82, -1, 84, 85, 86, 87, 88, 89, -1, 91,
8849 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
8850 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
8851 112, -1, 114, 115, 116, 117, 118, 119, -1, 121,
8852 122, 123, 124, 125, -1, -1, 128, 129, 130, 131,
8853 132, -1, 134, 135, 136, -1, 138, 139, 140, -1,
8854 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
8855 152, -1, 154, 155, 156, 157, -1, 159, -1, 161,
8856 162, 163, 164, 165, 166, 167, 168, -1, 170, 171,
8857 -1, 173, 174, -1, 176, 177, 178, 179, 180, 181,
8858 182, 183, 184, 185, -1, 187, 188, 189, 190, 191,
8859 192, -1, 194, 195, 196, 197, 198, 199, 200, 201,
8860 202, -1, 204, -1, 206, 207, 208, 209, 210, 211,
8861 212, 213, 214, 215, -1, -1, 218, 219, 220, 221,
8862 222, -1, 224, 225, 226, 227, 228, 229, 230, 231,
8863 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
8864 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
8865 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
8866 262, 263, -1, 265, 266, -1, -1, 269, 270, 271,
8867 -1, -1, 274, 275, 276, 277, 278, 279, 280, 281,
8868 282, 283, 284, 285, 286, 287, 288, -1, 290, 291,
8869 292, 293, 294, 295, 296, 297, 298, -1, 300, 301,
8870 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
8871 312, 313, -1, 315, 316, 317, 318, 319, 320, 321,
8872 322, 323, 324, 325, 326, -1, 328, 329, 330, 331,
8873 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
8874 342, 343, -1, 345, 346, 347, 348, 349, 350, 351,
8875 352, 353, 354, 355, 356, 357, 358, 359, 360, -1,
8876 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
8877 372, 373, 374, -1, 376, 377, -1, 379, 380, 381,
8878 382, 383, 384, 385, -1, 387, 388, -1, -1, 391,
8879 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
8880 402, 403, -1, -1, 406, 407, 408, 409, 410, 411,
8881 -1, 413, 414, 415, 416, 417, 418, 419, -1, 421,
8882 422, 423, 424, 425, 426, -1, -1, 429, -1, -1,
8883 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
8884 442, 443, 444, 445, 446, 447, 448, 449, 450, 451,
8885 452, -1, -1, -1, -1, -1, -1, 459, 460, -1,
8886 -1, -1, -1, -1, -1, -1, 468, -1, -1, -1,
8887 -1, 473, 3, 4, 5, 6, 7, 8, 9, 10,
8888 -1, -1, -1, -1, -1, -1, -1, 18, 19, 20,
8889 21, 22, 23, 24, 25, -1, 27, 28, 29, -1,
8890 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
8891 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
8892 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
8893 61, 62, 63, 64, -1, 66, 67, 68, 69, 70,
8894 -1, 72, -1, 74, 75, 76, 77, 78, 79, 80,
8895 81, 82, -1, 84, 85, 86, 87, 88, 89, -1,
8896 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
8897 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
8898 111, 112, -1, 114, 115, 116, 117, 118, 119, -1,
8899 121, 122, 123, 124, 125, -1, -1, 128, 129, 130,
8900 131, 132, -1, 134, 135, 136, -1, 138, 139, 140,
8901 -1, 142, 143, 144, 145, 146, 147, 148, 149, 150,
8902 151, 152, -1, 154, 155, 156, 157, -1, 159, -1,
8903 161, 162, -1, 164, 165, 166, 167, 168, -1, 170,
8904 171, -1, 173, 174, -1, 176, 177, 178, 179, 180,
8905 181, 182, 183, 184, 185, -1, 187, 188, 189, 190,
8906 191, 192, -1, 194, 195, 196, 197, 198, 199, 200,
8907 201, 202, -1, 204, -1, 206, 207, 208, 209, 210,
8908 211, 212, 213, 214, 215, -1, -1, 218, 219, 220,
8909 221, 222, -1, 224, 225, 226, 227, 228, 229, 230,
8910 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
8911 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
8912 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
8913 261, 262, 263, -1, 265, 266, -1, -1, 269, 270,
8914 271, -1, -1, 274, 275, 276, 277, 278, 279, 280,
8915 281, 282, 283, 284, 285, 286, 287, 288, -1, 290,
8916 291, 292, 293, 294, 295, 296, 297, 298, -1, 300,
8917 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
8918 311, 312, 313, -1, 315, 316, 317, 318, 319, 320,
8919 321, 322, 323, 324, 325, 326, -1, 328, 329, 330,
8920 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
8921 341, 342, 343, -1, 345, 346, 347, 348, 349, 350,
8922 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
8923 -1, 362, 363, 364, 365, 366, 367, 368, 369, 370,
8924 371, 372, 373, 374, -1, 376, 377, -1, 379, 380,
8925 381, 382, 383, 384, 385, -1, 387, 388, -1, -1,
8926 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
8927 401, 402, 403, -1, -1, 406, 407, 408, 409, 410,
8928 411, -1, 413, 414, 415, 416, 417, 418, 419, 420,
8929 421, 422, 423, 424, 425, 426, -1, -1, 429, -1,
8930 -1, 432, 433, 434, 435, 436, 437, 438, 439, 440,
8931 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
8932 451, 452, -1, -1, -1, -1, -1, -1, 459, 460,
8933 -1, -1, -1, -1, -1, -1, -1, 468, -1, -1,
8934 -1, -1, 473, 3, 4, 5, 6, 7, 8, 9,
8935 10, -1, -1, -1, -1, -1, -1, -1, 18, 19,
8936 20, 21, 22, 23, 24, 25, -1, 27, 28, 29,
8937 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
8938 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
8939 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
8940 60, 61, 62, 63, 64, -1, 66, 67, 68, 69,
8941 70, -1, 72, -1, 74, 75, 76, 77, 78, 79,
8942 80, 81, 82, -1, 84, 85, 86, 87, 88, 89,
8943 -1, 91, 92, 93, 94, 95, 96, 97, 98, 99,
8944 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
8945 110, 111, 112, -1, 114, 115, 116, 117, 118, 119,
8946 -1, 121, 122, 123, 124, 125, -1, -1, 128, 129,
8947 130, 131, 132, -1, 134, 135, 136, -1, 138, 139,
8948 140, -1, 142, 143, 144, 145, 146, 147, 148, 149,
8949 150, 151, 152, -1, 154, 155, 156, 157, -1, 159,
8950 -1, 161, 162, -1, 164, 165, 166, 167, 168, -1,
8951 170, 171, -1, 173, 174, -1, 176, 177, 178, 179,
8952 180, 181, 182, 183, 184, 185, -1, 187, 188, 189,
8953 190, 191, 192, -1, 194, 195, 196, 197, 198, 199,
8954 200, 201, 202, -1, 204, -1, 206, 207, 208, 209,
8955 210, 211, 212, 213, 214, 215, -1, -1, 218, 219,
8956 220, 221, 222, -1, 224, 225, 226, 227, 228, 229,
8957 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
8958 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
8959 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
8960 260, 261, 262, 263, -1, 265, 266, -1, -1, 269,
8961 270, 271, -1, -1, 274, 275, 276, 277, 278, 279,
8962 280, 281, 282, 283, 284, 285, 286, 287, 288, -1,
8963 290, 291, 292, 293, 294, 295, 296, 297, 298, -1,
8964 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
8965 310, 311, 312, 313, -1, 315, 316, 317, 318, 319,
8966 320, 321, 322, 323, 324, 325, 326, -1, 328, 329,
8967 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
8968 340, 341, 342, 343, -1, 345, 346, 347, 348, 349,
8969 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
8970 360, -1, 362, 363, 364, 365, 366, 367, 368, 369,
8971 370, 371, 372, 373, 374, -1, 376, 377, -1, 379,
8972 380, 381, 382, 383, 384, 385, -1, 387, 388, -1,
8973 -1, 391, 392, 393, 394, 395, 396, 397, 398, 399,
8974 400, 401, 402, 403, -1, -1, 406, 407, 408, 409,
8975 410, 411, -1, 413, 414, 415, 416, 417, 418, 419,
8976 -1, 421, 422, 423, 424, 425, 426, -1, -1, 429,
8977 -1, -1, 432, 433, 434, 435, 436, 437, 438, 439,
8978 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
8979 450, 451, 452, -1, -1, -1, -1, -1, -1, 459,
8980 460, -1, -1, -1, -1, -1, -1, -1, 468, -1,
8981 -1, -1, -1, 473, 3, 4, 5, 6, 7, 8,
8982 9, 10, -1, -1, -1, -1, -1, -1, -1, 18,
8983 19, 20, 21, 22, 23, 24, 25, -1, 27, 28,
8984 29, -1, -1, -1, -1, -1, -1, -1, 37, 38,
8985 -1, 40, 41, 42, 43, 44, 45, 46, 47, 48,
8986 49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
8987 59, 60, 61, 62, 63, 64, -1, 66, 67, 68,
8988 69, 70, -1, 72, -1, 74, 75, 76, 77, 78,
8989 79, 80, 81, 82, -1, 84, 85, 86, 87, 88,
8990 89, -1, 91, 92, 93, 94, 95, 96, 97, 98,
8991 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
8992 109, 110, 111, 112, -1, 114, 115, 116, 117, 118,
8993 119, -1, 121, 122, 123, 124, 125, -1, -1, 128,
8994 129, 130, 131, 132, -1, 134, 135, 136, -1, 138,
8995 139, 140, -1, 142, 143, 144, 145, 146, 147, 148,
8996 149, 150, 151, 152, -1, 154, 155, 156, 157, -1,
8997 159, -1, 161, 162, -1, 164, 165, 166, 167, 168,
8998 -1, 170, 171, -1, 173, 174, -1, 176, 177, 178,
8999 179, 180, 181, 182, 183, 184, 185, -1, 187, 188,
9000 189, 190, 191, 192, -1, 194, 195, 196, 197, 198,
9001 199, 200, 201, 202, -1, 204, -1, 206, 207, 208,
9002 209, 210, 211, 212, 213, 214, 215, -1, -1, 218,
9003 219, 220, 221, 222, -1, 224, 225, 226, 227, 228,
9004 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
9005 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
9006 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
9007 259, 260, 261, 262, 263, -1, 265, 266, -1, -1,
9008 269, 270, 271, -1, -1, 274, 275, 276, 277, 278,
9009 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
9010 -1, 290, 291, 292, 293, 294, 295, 296, 297, 298,
9011 -1, 300, 301, 302, 303, 304, 305, 306, 307, 308,
9012 309, 310, 311, 312, 313, -1, 315, 316, 317, 318,
9013 319, 320, 321, 322, 323, 324, 325, 326, -1, 328,
9014 329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
9015 339, 340, 341, 342, 343, -1, 345, 346, 347, 348,
9016 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
9017 359, 360, -1, 362, 363, 364, 365, 366, 367, 368,
9018 369, 370, 371, 372, 373, 374, -1, 376, 377, -1,
9019 379, 380, 381, 382, 383, 384, 385, -1, 387, 388,
9020 -1, -1, 391, 392, 393, 394, 395, 396, 397, 398,
9021 399, 400, 401, 402, 403, -1, -1, 406, 407, 408,
9022 409, 410, 411, -1, 413, 414, 415, 416, 417, 418,
9023 419, -1, 421, 422, 423, 424, 425, 426, -1, -1,
9024 429, -1, -1, 432, 433, 434, 435, 436, 437, 438,
9025 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
9026 449, 450, 451, 452, -1, -1, -1, -1, -1, -1,
9027 459, 460, -1, -1, -1, -1, -1, -1, -1, 468,
9028 -1, -1, -1, -1, 473, 3, 4, 5, 6, 7,
9029 8, 9, 10, -1, -1, -1, -1, -1, -1, -1,
9030 18, 19, 20, 21, 22, 23, 24, 25, -1, 27,
9031 28, 29, -1, -1, -1, -1, -1, -1, -1, 37,
9032 38, -1, 40, 41, 42, 43, 44, 45, 46, 47,
9033 48, 49, 50, 51, -1, 53, 54, 55, 56, 57,
9034 58, 59, 60, 61, 62, 63, 64, -1, 66, 67,
9035 68, 69, 70, -1, 72, -1, 74, 75, 76, 77,
9036 78, 79, 80, 81, 82, -1, 84, 85, 86, 87,
9037 88, 89, -1, 91, 92, 93, 94, 95, 96, 97,
9038 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
9039 108, 109, 110, 111, 112, -1, 114, 115, 116, 117,
9040 118, 119, -1, 121, 122, 123, 124, 125, -1, -1,
9041 128, 129, 130, 131, 132, -1, 134, 135, 136, -1,
9042 138, 139, 140, -1, 142, 143, 144, 145, 146, 147,
9043 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
9044 -1, 159, -1, 161, 162, -1, 164, 165, 166, 167,
9045 168, -1, 170, 171, -1, 173, 174, -1, 176, 177,
9046 178, 179, 180, 181, 182, 183, 184, 185, -1, 187,
9047 188, 189, 190, 191, 192, -1, 194, 195, 196, 197,
9048 198, 199, 200, 201, 202, -1, 204, -1, 206, 207,
9049 208, 209, 210, 211, 212, 213, 214, 215, -1, -1,
9050 218, 219, 220, 221, 222, -1, 224, 225, 226, 227,
9051 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
9052 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
9053 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
9054 258, 259, 260, 261, 262, 263, -1, 265, 266, -1,
9055 -1, 269, 270, 271, -1, -1, 274, 275, 276, 277,
9056 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
9057 288, -1, 290, 291, 292, 293, 294, 295, 296, 297,
9058 298, -1, 300, 301, 302, 303, 304, 305, 306, 307,
9059 308, 309, 310, 311, 312, 313, -1, 315, 316, 317,
9060 318, 319, 320, 321, 322, 323, 324, 325, 326, -1,
9061 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
9062 338, 339, 340, 341, 342, 343, -1, 345, 346, 347,
9063 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
9064 358, 359, 360, -1, 362, 363, 364, 365, 366, 367,
9065 368, 369, 370, 371, 372, 373, 374, -1, 376, 377,
9066 -1, 379, 380, 381, 382, 383, 384, 385, -1, 387,
9067 388, -1, -1, 391, 392, 393, 394, 395, 396, 397,
9068 398, 399, 400, 401, 402, 403, -1, -1, 406, 407,
9069 408, 409, 410, 411, -1, 413, 414, 415, 416, 417,
9070 418, 419, -1, 421, 422, 423, 424, 425, 426, -1,
9071 -1, 429, -1, -1, 432, 433, 434, 435, 436, 437,
9072 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
9073 448, 449, 450, 451, 452, -1, -1, -1, -1, -1,
9074 -1, 459, 460, -1, -1, -1, -1, -1, -1, -1,
9075 468, -1, -1, -1, -1, 473, 3, 4, 5, 6,
9076 7, 8, 9, 10, -1, -1, -1, -1, -1, -1,
9077 -1, 18, 19, 20, 21, 22, 23, 24, 25, -1,
9078 27, 28, 29, -1, -1, -1, -1, -1, -1, -1,
9079 37, 38, -1, 40, 41, 42, 43, 44, 45, 46,
9080 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
9081 57, 58, 59, 60, 61, 62, 63, 64, -1, 66,
9082 67, 68, 69, 70, -1, 72, -1, 74, 75, 76,
9083 77, 78, 79, 80, 81, 82, -1, 84, 85, 86,
9084 87, 88, 89, -1, 91, 92, 93, 94, 95, 96,
9085 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
9086 107, 108, 109, 110, 111, 112, -1, 114, 115, 116,
9087 117, 118, 119, -1, 121, 122, 123, 124, 125, -1,
9088 -1, 128, 129, 130, 131, 132, -1, 134, 135, 136,
9089 -1, 138, 139, 140, -1, 142, 143, 144, 145, 146,
9090 147, 148, 149, 150, 151, 152, -1, 154, 155, 156,
9091 157, -1, 159, -1, 161, 162, -1, 164, 165, 166,
9092 167, 168, -1, 170, 171, -1, 173, 174, -1, 176,
9093 177, 178, 179, 180, 181, 182, 183, 184, 185, -1,
9094 187, 188, 189, 190, 191, 192, -1, 194, 195, 196,
9095 197, 198, 199, 200, 201, 202, -1, 204, -1, 206,
9096 207, 208, 209, 210, 211, 212, 213, 214, 215, -1,
9097 -1, 218, 219, 220, 221, 222, -1, 224, 225, 226,
9098 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
9099 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
9100 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
9101 257, 258, 259, 260, 261, 262, 263, -1, 265, 266,
9102 -1, -1, 269, 270, 271, -1, -1, 274, 275, 276,
9103 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
9104 287, 288, -1, 290, 291, 292, 293, 294, 295, 296,
9105 297, 298, -1, 300, 301, 302, 303, 304, 305, 306,
9106 307, 308, 309, 310, 311, 312, 313, -1, 315, 316,
9107 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
9108 -1, 328, 329, 330, 331, 332, 333, 334, 335, 336,
9109 337, 338, 339, 340, 341, 342, 343, -1, 345, 346,
9110 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
9111 357, 358, 359, 360, -1, 362, 363, 364, 365, 366,
9112 367, 368, 369, 370, 371, 372, 373, 374, -1, 376,
9113 377, -1, 379, 380, 381, 382, 383, 384, 385, -1,
9114 387, 388, -1, -1, 391, 392, 393, 394, 395, 396,
9115 397, 398, 399, 400, 401, 402, 403, -1, -1, 406,
9116 407, 408, 409, 410, 411, -1, 413, 414, 415, 416,
9117 417, 418, 419, -1, 421, 422, 423, 424, 425, 426,
9118 -1, -1, 429, -1, -1, 432, 433, 434, 435, 436,
9119 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
9120 447, 448, 449, 450, 451, 452, -1, -1, -1, -1,
9121 -1, -1, 459, 460, -1, -1, -1, -1, -1, -1,
9122 -1, 468, -1, -1, -1, -1, 473, 3, 4, 5,
9123 6, 7, 8, 9, 10, -1, -1, -1, -1, -1,
9124 -1, -1, 18, 19, 20, 21, 22, 23, 24, 25,
9125 -1, 27, 28, 29, -1, -1, -1, -1, -1, -1,
9126 -1, 37, 38, -1, 40, 41, 42, 43, 44, 45,
9127 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
9128 56, 57, 58, 59, 60, 61, 62, 63, 64, -1,
9129 66, 67, 68, 69, 70, -1, 72, -1, 74, 75,
9130 76, 77, 78, 79, 80, 81, 82, -1, 84, 85,
9131 86, 87, 88, 89, -1, 91, 92, 93, 94, 95,
9132 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
9133 106, 107, 108, 109, 110, 111, 112, -1, 114, 115,
9134 116, 117, 118, 119, -1, 121, 122, 123, 124, 125,
9135 -1, -1, 128, 129, 130, 131, 132, -1, 134, 135,
9136 136, -1, 138, 139, 140, -1, 142, 143, 144, 145,
9137 146, 147, 148, 149, 150, 151, 152, -1, 154, 155,
9138 156, 157, -1, 159, -1, 161, 162, -1, 164, 165,
9139 166, 167, 168, -1, 170, 171, -1, 173, 174, -1,
9140 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
9141 -1, 187, 188, 189, 190, 191, 192, -1, 194, 195,
9142 196, 197, 198, 199, 200, 201, 202, -1, 204, -1,
9143 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
9144 -1, -1, 218, 219, 220, 221, 222, -1, 224, 225,
9145 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
9146 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
9147 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
9148 256, 257, 258, 259, 260, 261, 262, 263, -1, 265,
9149 266, -1, -1, 269, 270, 271, -1, -1, 274, 275,
9150 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
9151 286, 287, 288, -1, 290, 291, 292, 293, 294, 295,
9152 296, 297, 298, -1, 300, 301, 302, 303, 304, 305,
9153 306, 307, 308, 309, 310, 311, 312, 313, -1, 315,
9154 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
9155 326, -1, 328, 329, 330, 331, 332, 333, 334, 335,
9156 336, 337, 338, 339, 340, 341, 342, 343, -1, 345,
9157 346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
9158 356, 357, 358, 359, 360, -1, 362, 363, 364, 365,
9159 366, 367, 368, 369, 370, 371, 372, 373, 374, -1,
9160 376, 377, -1, 379, 380, 381, 382, 383, 384, 385,
9161 -1, 387, 388, -1, -1, 391, 392, 393, 394, 395,
9162 396, 397, 398, 399, 400, 401, 402, 403, -1, -1,
9163 406, 407, 408, 409, 410, 411, -1, 413, 414, 415,
9164 416, 417, 418, 419, -1, 421, 422, 423, 424, 425,
9165 426, -1, -1, 429, -1, -1, 432, 433, 434, 435,
9166 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
9167 446, 447, 448, 449, 450, 451, 452, -1, -1, -1,
9168 -1, -1, -1, 459, 460, -1, -1, -1, -1, -1,
9169 -1, -1, 468, -1, -1, -1, -1, 473, 3, 4,
9170 5, 6, 7, 8, 9, 10, -1, -1, -1, -1,
9171 -1, -1, -1, 18, 19, 20, 21, 22, 23, 24,
9172 25, -1, 27, 28, 29, -1, -1, -1, -1, -1,
9173 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
9174 45, 46, 47, 48, 49, 50, 51, -1, 53, 54,
9175 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
9176 -1, 66, 67, 68, 69, 70, -1, 72, -1, 74,
9177 75, 76, 77, 78, 79, 80, 81, 82, -1, 84,
9178 85, 86, 87, 88, 89, -1, 91, 92, 93, 94,
9179 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
9180 105, 106, 107, 108, 109, 110, 111, 112, -1, 114,
9181 115, 116, 117, 118, 119, -1, 121, 122, 123, 124,
9182 125, -1, -1, 128, 129, 130, 131, 132, -1, 134,
9183 135, 136, -1, 138, 139, 140, -1, 142, 143, 144,
9184 145, 146, 147, 148, 149, 150, 151, 152, -1, 154,
9185 155, 156, 157, -1, 159, -1, 161, 162, -1, 164,
9186 165, 166, 167, 168, -1, 170, 171, -1, 173, 174,
9187 -1, 176, 177, 178, 179, 180, 181, 182, 183, 184,
9188 185, -1, 187, 188, 189, 190, 191, 192, -1, 194,
9189 195, 196, 197, 198, 199, 200, 201, 202, -1, 204,
9190 -1, 206, 207, 208, 209, 210, 211, 212, 213, 214,
9191 215, -1, -1, 218, 219, 220, 221, 222, -1, 224,
9192 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
9193 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
9194 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
9195 255, 256, 257, 258, 259, 260, 261, 262, 263, -1,
9196 265, 266, -1, -1, 269, 270, 271, -1, -1, 274,
9197 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
9198 285, 286, 287, 288, -1, 290, 291, 292, 293, 294,
9199 295, 296, 297, 298, -1, 300, 301, 302, 303, 304,
9200 305, 306, 307, 308, 309, 310, 311, 312, 313, -1,
9201 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
9202 325, 326, -1, 328, 329, 330, 331, 332, 333, 334,
9203 335, 336, 337, 338, 339, 340, 341, 342, 343, -1,
9204 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
9205 355, 356, 357, 358, 359, 360, -1, 362, 363, 364,
9206 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
9207 -1, 376, 377, -1, 379, 380, 381, 382, 383, 384,
9208 385, -1, 387, 388, -1, -1, 391, 392, 393, 394,
9209 395, 396, 397, 398, 399, 400, 401, 402, 403, -1,
9210 -1, 406, 407, 408, 409, 410, 411, -1, 413, 414,
9211 415, 416, 417, 418, 419, -1, 421, 422, 423, 424,
9212 425, 426, -1, -1, 429, -1, -1, 432, 433, 434,
9213 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
9214 445, 446, 447, 448, 449, 450, 451, 452, -1, -1,
9215 -1, -1, -1, -1, 459, 460, -1, -1, -1, -1,
9216 -1, -1, -1, 468, -1, -1, -1, -1, 473, 3,
9217 4, 5, 6, 7, 8, 9, 10, -1, -1, -1,
9218 -1, -1, -1, -1, 18, 19, 20, 21, 22, 23,
9219 24, 25, -1, 27, 28, 29, -1, -1, -1, -1,
9220 -1, -1, -1, 37, 38, -1, 40, 41, 42, 43,
9221 44, 45, 46, 47, 48, 49, 50, 51, -1, 53,
9222 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
9223 64, -1, 66, 67, 68, 69, 70, -1, 72, -1,
9224 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
9225 84, 85, 86, 87, 88, 89, -1, 91, 92, 93,
9226 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
9227 104, 105, 106, 107, 108, 109, 110, -1, 112, -1,
9228 114, 115, 116, 117, 118, 119, -1, 121, 122, 123,
9229 124, 125, -1, -1, 128, 129, 130, 131, 132, -1,
9230 134, 135, 136, -1, 138, 139, 140, -1, 142, 143,
9231 144, 145, 146, 147, 148, 149, 150, 151, 152, -1,
9232 154, 155, 156, 157, -1, 159, -1, 161, 162, -1,
9233 164, 165, 166, 167, 168, -1, 170, 171, -1, 173,
9234 174, -1, 176, 177, 178, 179, 180, 181, 182, 183,
9235 184, 185, -1, 187, 188, 189, 190, 191, 192, -1,
9236 194, 195, 196, 197, 198, 199, 200, 201, 202, -1,
9237 204, -1, 206, 207, 208, 209, 210, 211, 212, 213,
9238 214, 215, -1, -1, 218, 219, 220, 221, 222, -1,
9239 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
9240 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
9241 244, 245, 246, 247, 248, 249, 250, 251, -1, 253,
9242 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
9243 -1, 265, 266, -1, -1, 269, 270, 271, -1, -1,
9244 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
9245 284, 285, 286, 287, 288, -1, 290, 291, 292, 293,
9246 294, 295, 296, 297, 298, -1, 300, 301, 302, 303,
9247 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
9248 -1, 315, 316, 317, 318, 319, 320, 321, 322, 323,
9249 324, 325, 326, -1, 328, 329, 330, 331, 332, 333,
9250 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
9251 -1, 345, 346, 347, 348, 349, 350, 351, 352, 353,
9252 354, 355, 356, 357, 358, 359, 360, -1, 362, 363,
9253 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
9254 374, -1, 376, 377, -1, 379, 380, 381, 382, 383,
9255 384, 385, -1, 387, 388, -1, -1, 391, 392, 393,
9256 394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
9257 -1, -1, 406, 407, 408, 409, 410, 411, -1, 413,
9258 414, 415, 416, 417, 418, 419, -1, 421, 422, 423,
9259 424, 425, 426, -1, -1, 429, -1, -1, 432, 433,
9260 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
9261 444, 445, 446, 447, 448, 449, 450, 451, -1, -1,
9262 -1, -1, -1, -1, -1, 459, 460, -1, -1, 3,
9263 4, 5, 6, 7, 468, 9, 10, -1, -1, 473,
9264 -1, -1, -1, -1, 18, 19, 20, 21, 22, 23,
9265 24, 25, -1, 27, 28, 29, -1, -1, -1, -1,
9266 -1, -1, -1, 37, 38, -1, 40, 41, 42, 43,
9267 44, 45, 46, 47, 48, 49, 50, 51, -1, 53,
9268 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
9269 64, -1, 66, 67, 68, 69, 70, -1, 72, -1,
9270 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
9271 84, 85, 86, 87, 88, 89, -1, 91, 92, 93,
9272 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
9273 104, 105, 106, 107, 108, 109, 110, -1, 112, -1,
9274 114, 115, 116, 117, 118, 119, -1, 121, 122, 123,
9275 124, 125, -1, -1, 128, 129, 130, 131, 132, -1,
9276 134, 135, 136, -1, 138, 139, 140, -1, 142, 143,
9277 144, 145, 146, 147, 148, 149, 150, 151, 152, -1,
9278 154, 155, 156, 157, -1, 159, -1, 161, 162, -1,
9279 164, 165, 166, 167, 168, -1, 170, 171, -1, 173,
9280 174, -1, 176, 177, 178, 179, 180, 181, 182, 183,
9281 184, 185, -1, 187, 188, 189, 190, 191, 192, -1,
9282 194, 195, 196, 197, 198, 199, 200, 201, 202, -1,
9283 204, -1, 206, 207, 208, 209, 210, 211, 212, 213,
9284 214, 215, -1, -1, 218, 219, 220, 221, 222, -1,
9285 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
9286 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
9287 244, 245, 246, 247, 248, 249, 250, 251, -1, 253,
9288 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
9289 -1, 265, 266, -1, -1, 269, 270, 271, -1, -1,
9290 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
9291 284, 285, 286, 287, 288, -1, 290, 291, 292, 293,
9292 294, 295, 296, 297, 298, -1, 300, 301, 302, 303,
9293 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
9294 -1, 315, 316, 317, 318, 319, 320, 321, 322, 323,
9295 324, 325, 326, -1, 328, 329, 330, 331, 332, 333,
9296 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
9297 -1, 345, 346, 347, 348, 349, 350, 351, 352, 353,
9298 354, 355, 356, 357, 358, 359, 360, -1, 362, 363,
9299 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
9300 374, -1, 376, 377, -1, 379, 380, 381, 382, 383,
9301 384, 385, -1, 387, 388, -1, -1, 391, 392, 393,
9302 394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
9303 -1, -1, 406, 407, 408, 409, 410, 411, -1, 413,
9304 414, 415, 416, 417, 418, 419, -1, 421, 422, 423,
9305 424, 425, 426, -1, -1, 429, -1, -1, 432, 433,
9306 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
9307 444, 445, 446, 447, 448, 449, 450, 451, -1, -1,
9308 -1, -1, -1, -1, -1, 459, 460, -1, -1, -1,
9309 -1, -1, -1, -1, 468, -1, -1, -1, -1, 473,
9310 3, 4, 5, 6, 7, 8, 9, 10, -1, -1,
9311 -1, -1, -1, -1, -1, 18, 19, 20, 21, 22,
9312 23, 24, 25, -1, 27, 28, 29, -1, -1, -1,
9313 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
9314 43, 44, 45, 46, 47, 48, 49, 50, 51, -1,
9315 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
9316 63, 64, -1, 66, 67, 68, 69, 70, -1, 72,
9317 -1, 74, 75, 76, 77, 78, 79, 80, 81, 82,
9318 -1, 84, 85, 86, 87, 88, 89, -1, 91, 92,
9319 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
9320 103, 104, 105, 106, 107, 108, 109, 110, -1, 112,
9321 -1, 114, 115, 116, 117, 118, 119, -1, 121, 122,
9322 123, 124, 125, -1, -1, 128, 129, 130, 131, 132,
9323 -1, 134, 135, 136, -1, 138, 139, 140, -1, 142,
9324 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
9325 -1, 154, 155, 156, 157, -1, 159, -1, 161, 162,
9326 -1, 164, 165, 166, 167, 168, -1, 170, 171, -1,
9327 173, 174, -1, 176, 177, 178, 179, 180, 181, 182,
9328 183, 184, 185, -1, 187, 188, 189, 190, 191, 192,
9329 -1, 194, 195, 196, 197, 198, 199, 200, 201, 202,
9330 -1, 204, -1, 206, -1, 208, 209, 210, 211, 212,
9331 213, 214, 215, -1, -1, 218, 219, 220, 221, 222,
9332 -1, 224, 225, 226, 227, 228, 229, 230, 231, 232,
9333 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
9334 243, 244, 245, 246, 247, 248, 249, 250, 251, -1,
9335 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
9336 263, -1, 265, 266, -1, -1, 269, 270, 271, -1,
9337 -1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
9338 283, 284, 285, 286, 287, 288, -1, 290, 291, 292,
9339 293, 294, 295, 296, 297, 298, -1, 300, 301, 302,
9340 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
9341 313, -1, 315, 316, 317, 318, 319, 320, 321, 322,
9342 323, 324, 325, 326, -1, 328, 329, 330, 331, 332,
9343 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
9344 343, -1, 345, 346, 347, 348, 349, 350, 351, 352,
9345 353, 354, 355, 356, 357, 358, 359, 360, -1, 362,
9346 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
9347 373, 374, -1, 376, 377, -1, 379, 380, 381, 382,
9348 383, 384, 385, -1, 387, 388, -1, -1, 391, 392,
9349 393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
9350 403, -1, -1, 406, 407, 408, 409, 410, 411, -1,
9351 413, 414, 415, 416, 417, 418, 419, -1, 421, 422,
9352 423, 424, 425, 426, -1, -1, 429, -1, -1, 432,
9353 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
9354 443, 444, 445, 446, 447, 448, 449, 450, 451, -1,
9355 -1, -1, -1, -1, -1, -1, 459, 460, -1, -1,
9356 -1, -1, -1, -1, -1, 468, -1, -1, -1, -1,
9357 473, 3, 4, 5, 6, 7, 8, 9, 10, -1,
9358 -1, -1, -1, -1, -1, -1, 18, 19, 20, 21,
9359 22, 23, 24, 25, -1, 27, 28, 29, -1, -1,
9360 -1, -1, -1, -1, -1, 37, 38, -1, 40, 41,
9361 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
9362 -1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
9363 62, 63, 64, -1, 66, 67, 68, 69, 70, -1,
9364 72, -1, 74, 75, 76, 77, 78, 79, 80, 81,
9365 82, -1, 84, 85, 86, 87, 88, 89, -1, 91,
9366 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
9367 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
9368 112, -1, 114, 115, 116, 117, 118, 119, -1, 121,
9369 122, 123, 124, 125, -1, -1, 128, 129, 130, 131,
9370 132, -1, 134, 135, 136, -1, 138, 139, 140, -1,
9371 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
9372 152, -1, 154, 155, 156, 157, -1, 159, -1, 161,
9373 162, -1, 164, 165, 166, 167, 168, -1, 170, 171,
9374 -1, 173, 174, -1, 176, 177, 178, 179, 180, 181,
9375 182, 183, 184, 185, -1, 187, 188, 189, 190, 191,
9376 192, -1, 194, 195, 196, 197, 198, 199, 200, 201,
9377 202, -1, 204, -1, 206, -1, -1, 209, 210, 211,
9378 212, 213, 214, 215, -1, -1, 218, 219, 220, 221,
9379 222, -1, 224, 225, 226, 227, 228, 229, 230, 231,
9380 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
9381 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
9382 -1, 253, 254, -1, 256, 257, 258, 259, 260, 261,
9383 262, 263, -1, 265, 266, -1, -1, 269, 270, 271,
9384 -1, -1, 274, 275, 276, 277, 278, 279, 280, 281,
9385 282, 283, 284, 285, 286, 287, 288, -1, 290, 291,
9386 292, 293, 294, 295, 296, 297, 298, -1, 300, 301,
9387 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
9388 312, 313, -1, 315, 316, 317, 318, 319, 320, 321,
9389 322, 323, 324, 325, 326, -1, 328, 329, 330, 331,
9390 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
9391 342, 343, -1, 345, 346, 347, 348, 349, 350, 351,
9392 352, 353, 354, 355, 356, 357, 358, 359, 360, -1,
9393 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
9394 372, 373, 374, -1, 376, 377, -1, 379, 380, 381,
9395 382, 383, 384, 385, -1, 387, 388, -1, -1, 391,
9396 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
9397 402, 403, -1, -1, 406, 407, 408, 409, 410, 411,
9398 -1, 413, 414, 415, 416, 417, 418, 419, -1, 421,
9399 422, 423, 424, 425, 426, -1, -1, 429, -1, -1,
9400 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
9401 442, 443, 444, 445, 446, 447, 448, 449, 450, 451,
9402 452, -1, -1, -1, -1, -1, -1, 459, 460, -1,
9403 -1, -1, -1, -1, -1, -1, 468, -1, -1, -1,
9404 -1, 473, 3, 4, 5, 6, 7, 8, 9, 10,
9405 -1, -1, -1, -1, -1, -1, -1, 18, 19, 20,
9406 21, 22, 23, 24, 25, -1, 27, 28, 29, -1,
9407 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
9408 41, 42, 43, 44, 45, 46, -1, 48, 49, 50,
9409 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
9410 61, 62, 63, 64, -1, 66, 67, 68, 69, 70,
9411 -1, 72, -1, 74, 75, 76, 77, 78, 79, 80,
9412 81, 82, -1, 84, 85, 86, 87, 88, 89, -1,
9413 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
9414 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
9415 111, 112, -1, 114, 115, 116, 117, 118, 119, -1,
9416 121, 122, 123, 124, 125, -1, -1, 128, 129, 130,
9417 131, 132, -1, 134, 135, 136, -1, 138, -1, 140,
9418 -1, 142, 143, 144, 145, 146, 147, 148, 149, 150,
9419 151, 152, -1, 154, 155, 156, 157, -1, 159, -1,
9420 161, 162, -1, 164, 165, 166, 167, 168, -1, 170,
9421 171, -1, 173, 174, -1, 176, 177, 178, 179, 180,
9422 -1, 182, 183, 184, 185, -1, 187, 188, 189, 190,
9423 191, 192, -1, 194, 195, 196, 197, 198, 199, 200,
9424 201, 202, -1, 204, -1, 206, -1, -1, 209, 210,
9425 211, 212, 213, 214, 215, -1, -1, 218, 219, 220,
9426 221, -1, -1, 224, 225, 226, 227, 228, 229, 230,
9427 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
9428 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
9429 251, -1, 253, 254, -1, 256, 257, 258, 259, 260,
9430 261, 262, 263, -1, 265, 266, -1, -1, 269, 270,
9431 271, -1, -1, 274, 275, 276, 277, 278, 279, 280,
9432 281, 282, 283, 284, 285, 286, 287, 288, -1, 290,
9433 291, 292, 293, 294, 295, 296, 297, 298, -1, 300,
9434 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
9435 311, 312, 313, -1, 315, 316, 317, 318, 319, 320,
9436 321, 322, 323, 324, 325, 326, -1, 328, 329, 330,
9437 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
9438 341, 342, 343, -1, 345, 346, 347, 348, 349, 350,
9439 351, 352, 353, 354, 355, -1, 357, 358, 359, 360,
9440 -1, 362, 363, 364, 365, 366, 367, 368, 369, 370,
9441 371, 372, 373, 374, -1, 376, 377, -1, 379, 380,
9442 381, 382, 383, 384, 385, -1, 387, 388, -1, -1,
9443 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
9444 401, 402, 403, -1, -1, 406, 407, 408, 409, 410,
9445 411, -1, 413, 414, 415, 416, 417, 418, 419, -1,
9446 421, 422, 423, 424, 425, 426, -1, -1, 429, -1,
9447 -1, 432, 433, 434, 435, 436, 437, 438, 439, 440,
9448 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
9449 451, -1, -1, -1, -1, -1, -1, -1, 459, 460,
9450 3, -1, -1, -1, -1, -1, -1, 468, -1, -1,
9451 -1, -1, 473, -1, -1, 18, 19, 20, 21, 22,
9452 23, 24, 25, -1, 27, 28, 29, -1, -1, -1,
9453 -1, -1, 35, -1, 37, 38, -1, 40, 41, 42,
9454 -1, 44, 45, 46, 47, 48, -1, 50, 51, -1,
9455 53, 54, 55, 56, 57, -1, -1, 60, 61, 62,
9456 63, 64, -1, 66, 67, 68, 69, 70, -1, -1,
9457 -1, 74, 75, 76, 77, 78, -1, 80, 81, 82,
9458 -1, 84, 85, 86, 87, 88, 89, -1, 91, 92,
9459 93, 94, -1, -1, -1, -1, -1, -1, -1, 102,
9460 103, 104, 105, 106, 107, 108, 109, 110, -1, 112,
9461 -1, 114, 115, 116, 117, 118, 119, -1, 121, 122,
9462 123, 124, 125, -1, -1, 128, 129, 130, 131, 132,
9463 -1, 134, 135, 136, -1, 138, 139, 140, -1, 142,
9464 143, 144, 145, 146, 147, 148, 149, 150, -1, 152,
9465 -1, 154, 155, 156, 157, -1, 159, -1, 161, -1,
9466 -1, 164, 165, 166, 167, 168, -1, 170, 171, -1,
9467 173, 174, -1, 176, 177, 178, 179, 180, -1, 182,
9468 183, 184, 185, -1, 187, 188, 189, 190, 191, 192,
9469 -1, 194, 195, 196, 197, 198, 199, 200, 201, 202,
9470 -1, 204, -1, 206, -1, -1, 209, 210, 211, 212,
9471 213, 214, 215, -1, -1, 218, 219, 220, 221, -1,
9472 -1, 224, 225, 226, -1, -1, 229, 230, 231, 232,
9473 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
9474 243, 244, 245, 246, 247, 248, 249, 250, 251, -1,
9475 253, 254, -1, 256, -1, 258, 259, 260, 261, 262,
9476 263, -1, 265, 266, -1, -1, 269, 270, 271, -1,
9477 -1, 274, 275, -1, 277, -1, 279, 280, 281, 282,
9478 283, 284, 285, 286, 287, 288, -1, 290, 291, 292,
9479 293, 294, 295, 296, 297, 298, -1, 300, 301, 302,
9480 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
9481 313, -1, 315, 316, 317, 318, 319, 320, 321, 322,
9482 323, 324, 325, 326, -1, 328, 329, 330, 331, 332,
9483 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
9484 343, -1, 345, 346, 347, 348, 349, -1, 351, 352,
9485 353, 354, 355, -1, 357, 358, 359, 360, -1, 362,
9486 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
9487 373, 374, -1, 376, 377, -1, 379, -1, 381, 382,
9488 383, 384, 385, -1, 387, 388, -1, -1, 391, 392,
9489 393, 394, 395, -1, 397, 398, 399, 400, 401, 402,
9490 403, -1, -1, 406, 407, 408, 409, 410, -1, -1,
9491 413, 414, 415, 416, 417, 418, 419, -1, 421, -1,
9492 423, 424, 425, 426, -1, -1, 429, -1, -1, 432,
9493 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
9494 443, 444, 445, 446, 447, 448, 449, 450, 451, -1,
9495 -1, -1, 3, -1, -1, -1, -1, -1, -1, -1,
9496 -1, -1, -1, -1, -1, -1, 469, 18, 19, 20,
9497 21, 22, 23, 24, 25, -1, 27, 28, 29, -1,
9498 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
9499 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
9500 51, -1, 53, 54, 55, 56, 57, -1, 59, 60,
9501 61, 62, 63, 64, -1, 66, 67, 68, 69, 70,
9502 -1, 72, -1, 74, 75, 76, 77, 78, 79, 80,
9503 81, 82, -1, 84, 85, 86, 87, 88, 89, -1,
9504 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
9505 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
9506 -1, 112, -1, 114, 115, 116, 117, 118, 119, -1,
9507 121, 122, 123, 124, 125, -1, -1, 128, 129, 130,
9508 131, 132, -1, 134, 135, 136, -1, 138, 139, 140,
9509 -1, 142, 143, 144, 145, 146, 147, 148, 149, 150,
9510 -1, 152, -1, 154, 155, 156, 157, -1, 159, -1,
9511 161, 162, -1, 164, 165, 166, 167, 168, -1, 170,
9512 171, -1, 173, 174, -1, 176, 177, 178, 179, 180,
9513 181, 182, 183, 184, 185, -1, 187, 188, 189, 190,
9514 191, 192, -1, 194, 195, 196, 197, 198, 199, 200,
9515 201, 202, -1, 204, -1, 206, 207, 208, 209, 210,
9516 211, 212, 213, 214, 215, 216, -1, 218, 219, 220,
9517 221, 222, -1, 224, 225, 226, 227, 228, 229, 230,
9518 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
9519 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
9520 251, -1, 253, 254, 255, 256, -1, 258, 259, 260,
9521 261, 262, 263, -1, 265, 266, -1, 268, 269, 270,
9522 271, -1, -1, 274, 275, 276, 277, 278, 279, 280,
9523 281, 282, 283, 284, 285, 286, 287, 288, -1, 290,
9524 291, 292, 293, 294, 295, 296, 297, 298, -1, 300,
9525 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
9526 311, 312, 313, -1, 315, 316, 317, 318, 319, 320,
9527 321, 322, 323, 324, 325, 326, -1, 328, 329, 330,
9528 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
9529 341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
9530 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
9531 -1, 362, 363, 364, 365, 366, 367, 368, 369, 370,
9532 371, 372, 373, 374, -1, 376, 377, 378, 379, 380,
9533 381, 382, 383, 384, 385, -1, 387, 388, -1, -1,
9534 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
9535 401, 402, 403, -1, -1, 406, 407, 408, 409, 410,
9536 411, -1, 413, 414, 415, 416, 417, 418, 419, -1,
9537 421, 422, 423, 424, 425, 426, -1, -1, 429, -1,
9538 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
9539 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
9540 451, -1, -1, 454, 3, -1, -1, -1, -1, -1,
9541 -1, -1, -1, -1, -1, -1, -1, 468, -1, 18,
9542 19, 20, 21, 22, 23, 24, 25, -1, 27, 28,
9543 29, -1, -1, -1, -1, -1, -1, -1, 37, 38,
9544 -1, 40, 41, 42, 43, 44, 45, 46, 47, 48,
9545 49, 50, 51, -1, 53, 54, 55, 56, 57, -1,
9546 59, 60, 61, 62, 63, 64, -1, 66, 67, 68,
9547 69, 70, -1, 72, -1, 74, 75, 76, 77, 78,
9548 79, 80, 81, 82, -1, 84, 85, 86, 87, 88,
9549 89, -1, 91, 92, 93, 94, 95, 96, 97, 98,
9550 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
9551 109, 110, -1, 112, -1, 114, 115, 116, 117, 118,
9552 119, -1, 121, 122, 123, 124, 125, -1, -1, 128,
9553 129, 130, 131, 132, -1, 134, 135, 136, -1, 138,
9554 139, 140, -1, 142, 143, 144, 145, 146, 147, 148,
9555 149, 150, -1, 152, -1, 154, 155, 156, 157, -1,
9556 159, -1, 161, 162, -1, 164, 165, 166, 167, 168,
9557 -1, 170, 171, -1, 173, 174, -1, 176, 177, 178,
9558 179, 180, 181, 182, 183, 184, 185, -1, 187, 188,
9559 189, 190, 191, 192, -1, 194, 195, 196, 197, 198,
9560 199, 200, 201, 202, -1, 204, -1, 206, 207, 208,
9561 209, 210, 211, 212, 213, 214, 215, 216, -1, 218,
9562 219, 220, 221, 222, -1, 224, 225, 226, 227, 228,
9563 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
9564 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
9565 249, 250, 251, -1, 253, 254, 255, 256, -1, 258,
9566 259, 260, 261, 262, 263, -1, 265, 266, -1, 268,
9567 269, 270, 271, -1, -1, 274, 275, 276, 277, 278,
9568 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
9569 -1, 290, 291, 292, 293, 294, 295, 296, 297, 298,
9570 -1, 300, 301, 302, 303, 304, 305, 306, 307, 308,
9571 309, 310, 311, 312, 313, -1, 315, 316, 317, 318,
9572 319, 320, 321, 322, 323, 324, 325, 326, -1, 328,
9573 329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
9574 339, 340, 341, 342, 343, -1, 345, 346, 347, 348,
9575 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
9576 359, 360, -1, 362, 363, 364, 365, 366, 367, 368,
9577 369, 370, 371, 372, 373, 374, -1, 376, 377, -1,
9578 379, 380, 381, 382, 383, 384, 385, -1, 387, 388,
9579 -1, -1, 391, 392, 393, 394, 395, -1, 397, 398,
9580 399, 400, 401, 402, 403, -1, -1, 406, 407, 408,
9581 409, 410, 411, -1, 413, 414, 415, 416, 417, 418,
9582 419, -1, 421, 422, 423, 424, 425, 426, -1, -1,
9583 429, -1, -1, 432, 433, 434, 435, 436, 437, 438,
9584 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
9585 449, 450, 451, -1, -1, 3, -1, -1, -1, -1,
9586 -1, -1, -1, -1, -1, -1, -1, -1, -1, 468,
9587 18, 19, 20, 21, 22, 23, 24, 25, -1, 27,
9588 28, 29, -1, -1, -1, -1, -1, -1, -1, 37,
9589 38, -1, 40, 41, 42, 43, 44, 45, 46, 47,
9590 48, 49, 50, 51, -1, 53, 54, 55, 56, 57,
9591 -1, 59, 60, 61, 62, 63, 64, -1, 66, 67,
9592 68, 69, 70, -1, 72, -1, 74, 75, 76, 77,
9593 78, 79, 80, 81, 82, -1, 84, 85, 86, 87,
9594 88, 89, -1, 91, 92, 93, 94, 95, 96, 97,
9595 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
9596 108, 109, 110, -1, 112, -1, 114, 115, 116, 117,
9597 118, 119, -1, 121, 122, 123, 124, 125, -1, -1,
9598 128, 129, 130, 131, 132, -1, 134, 135, 136, -1,
9599 138, 139, 140, -1, 142, 143, 144, 145, 146, 147,
9600 148, 149, 150, -1, 152, -1, 154, 155, 156, 157,
9601 -1, 159, -1, 161, 162, -1, 164, 165, 166, 167,
9602 168, -1, 170, 171, -1, 173, 174, -1, 176, 177,
9603 178, 179, 180, 181, 182, 183, 184, 185, -1, 187,
9604 188, 189, 190, 191, 192, -1, 194, 195, 196, 197,
9605 198, 199, 200, 201, 202, -1, 204, -1, 206, 207,
9606 208, 209, 210, 211, 212, 213, 214, 215, -1, -1,
9607 218, 219, 220, 221, 222, -1, 224, 225, 226, 227,
9608 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
9609 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
9610 248, 249, 250, 251, -1, 253, 254, 255, 256, -1,
9611 258, 259, 260, 261, 262, 263, -1, 265, 266, -1,
9612 -1, 269, 270, 271, -1, -1, 274, 275, 276, 277,
9613 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
9614 288, -1, 290, 291, 292, 293, 294, 295, 296, 297,
9615 298, -1, 300, 301, 302, 303, 304, 305, 306, 307,
9616 308, 309, 310, 311, 312, 313, -1, 315, 316, 317,
9617 318, 319, 320, 321, 322, 323, 324, 325, 326, -1,
9618 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
9619 338, 339, 340, 341, 342, 343, -1, 345, 346, 347,
9620 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
9621 358, 359, 360, -1, 362, 363, 364, 365, 366, 367,
9622 368, 369, 370, 371, 372, 373, 374, -1, 376, 377,
9623 -1, 379, 380, 381, 382, 383, 384, 385, -1, 387,
9624 388, -1, -1, 391, 392, 393, 394, 395, -1, 397,
9625 398, 399, 400, 401, 402, 403, -1, -1, 406, 407,
9626 408, 409, 410, 411, -1, 413, 414, 415, 416, 417,
9627 418, 419, -1, 421, 422, 423, 424, 425, 426, -1,
9628 -1, 429, -1, -1, 432, 433, 434, 435, 436, 437,
9629 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
9630 448, 449, 450, 451, -1, -1, 3, -1, -1, -1,
9631 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
9632 468, 18, 19, 20, 21, 22, 23, 24, 25, -1,
9633 27, 28, 29, -1, -1, -1, -1, -1, -1, -1,
9634 37, 38, -1, 40, 41, 42, 43, 44, 45, 46,
9635 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
9636 57, -1, 59, 60, 61, 62, 63, 64, -1, 66,
9637 67, 68, 69, 70, -1, 72, -1, 74, 75, 76,
9638 77, 78, 79, 80, 81, 82, -1, 84, 85, 86,
9639 87, 88, 89, -1, 91, 92, 93, 94, 95, 96,
9640 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
9641 107, 108, 109, 110, -1, 112, -1, 114, 115, 116,
9642 117, 118, 119, -1, 121, 122, 123, 124, 125, -1,
9643 -1, 128, 129, 130, 131, 132, -1, 134, 135, 136,
9644 -1, 138, 139, 140, -1, 142, 143, 144, 145, 146,
9645 147, 148, 149, 150, -1, 152, -1, 154, 155, 156,
9646 157, -1, 159, -1, 161, 162, -1, 164, 165, 166,
9647 167, 168, -1, 170, 171, -1, 173, 174, -1, 176,
9648 177, 178, 179, 180, 181, 182, 183, 184, 185, -1,
9649 187, 188, 189, 190, 191, 192, -1, 194, 195, 196,
9650 197, 198, 199, 200, 201, 202, -1, 204, -1, 206,
9651 207, 208, 209, 210, 211, 212, 213, 214, 215, -1,
9652 -1, 218, 219, 220, 221, 222, -1, 224, 225, 226,
9653 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
9654 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
9655 247, 248, 249, 250, 251, -1, 253, 254, 255, 256,
9656 -1, 258, 259, 260, 261, 262, 263, -1, 265, 266,
9657 -1, -1, 269, 270, 271, -1, -1, 274, 275, 276,
9658 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
9659 287, 288, -1, 290, 291, 292, 293, 294, 295, 296,
9660 297, 298, -1, 300, 301, 302, 303, 304, 305, 306,
9661 307, 308, 309, 310, 311, 312, 313, -1, 315, 316,
9662 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
9663 -1, 328, 329, 330, 331, 332, 333, 334, 335, 336,
9664 337, 338, 339, 340, 341, 342, 343, -1, 345, 346,
9665 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
9666 357, 358, 359, 360, -1, 362, 363, 364, 365, 366,
9667 367, 368, 369, 370, 371, 372, 373, 374, -1, 376,
9668 377, -1, 379, 380, 381, 382, 383, 384, 385, -1,
9669 387, 388, -1, -1, 391, 392, 393, 394, 395, -1,
9670 397, 398, 399, 400, 401, 402, 403, -1, -1, 406,
9671 407, 408, 409, 410, 411, -1, 413, 414, 415, 416,
9672 417, 418, 419, -1, 421, 422, 423, 424, 425, 426,
9673 -1, -1, 429, -1, -1, 432, 433, 434, 435, 436,
9674 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
9675 447, 448, 449, 450, 451, -1, -1, 3, 4, 5,
9676 -1, -1, -1, 9, -1, -1, -1, -1, -1, -1,
9677 -1, 468, 18, 19, 20, 21, 22, 23, 24, 25,
9678 -1, 27, 28, 29, -1, -1, -1, -1, -1, -1,
9679 -1, 37, 38, -1, 40, 41, 42, 43, 44, 45,
9680 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
9681 56, 57, -1, -1, 60, 61, 62, 63, 64, -1,
9682 66, 67, 68, 69, 70, -1, 72, -1, 74, 75,
9683 76, 77, 78, 79, 80, 81, 82, -1, 84, 85,
9684 86, 87, 88, 89, -1, 91, 92, 93, 94, -1,
9685 -1, -1, 98, -1, -1, -1, 102, 103, 104, 105,
9686 106, 107, 108, 109, 110, -1, 112, -1, 114, 115,
9687 116, 117, 118, 119, -1, 121, 122, 123, 124, 125,
9688 -1, -1, 128, 129, 130, 131, 132, -1, 134, 135,
9689 136, -1, 138, 139, 140, -1, 142, 143, 144, 145,
9690 146, 147, 148, 149, 150, 151, 152, -1, 154, 155,
9691 156, 157, -1, 159, -1, 161, 162, -1, 164, 165,
9692 166, 167, 168, -1, 170, 171, -1, 173, 174, -1,
9693 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
9694 -1, 187, 188, 189, 190, 191, 192, -1, 194, 195,
9695 196, 197, 198, 199, 200, 201, 202, -1, 204, -1,
9696 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
9697 -1, -1, 218, 219, 220, 221, 222, -1, 224, 225,
9698 226, -1, -1, 229, 230, 231, 232, 233, 234, 235,
9699 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
9700 246, 247, 248, 249, 250, 251, -1, 253, 254, 255,
9701 256, -1, 258, 259, 260, 261, 262, 263, -1, 265,
9702 266, 267, -1, 269, 270, 271, -1, -1, 274, 275,
9703 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
9704 286, 287, 288, -1, 290, 291, 292, 293, 294, 295,
9705 296, 297, 298, -1, 300, 301, 302, 303, 304, 305,
9706 306, 307, 308, 309, 310, 311, 312, 313, -1, 315,
9707 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
9708 326, -1, 328, 329, 330, 331, 332, 333, 334, 335,
9709 336, 337, 338, 339, 340, 341, 342, 343, -1, 345,
9710 346, 347, 348, 349, -1, 351, 352, 353, 354, 355,
9711 356, 357, 358, 359, 360, -1, 362, 363, 364, 365,
9712 366, 367, 368, 369, 370, 371, 372, 373, 374, -1,
9713 376, 377, -1, 379, 380, 381, 382, 383, 384, 385,
9714 -1, 387, 388, -1, -1, 391, 392, 393, 394, 395,
9715 396, 397, 398, 399, 400, 401, 402, 403, -1, -1,
9716 406, 407, 408, 409, 410, -1, -1, 413, 414, 415,
9717 416, 417, 418, 419, -1, 421, 422, 423, 424, 425,
9718 426, -1, -1, 429, -1, -1, 432, 433, 434, 435,
9719 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
9720 446, 447, 448, 449, 450, 451, -1, -1, 3, -1,
9721 -1, -1, -1, 459, 460, 461, -1, -1, -1, -1,
9722 -1, -1, 468, 18, 19, 20, 21, 22, 23, 24,
9723 25, -1, 27, 28, 29, 30, 31, -1, -1, -1,
9724 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
9725 45, 46, 47, 48, 49, 50, 51, -1, 53, 54,
9726 55, 56, 57, -1, -1, 60, 61, 62, 63, 64,
9727 -1, 66, 67, 68, 69, 70, -1, 72, -1, 74,
9728 75, 76, 77, 78, 79, 80, 81, 82, -1, 84,
9729 85, 86, 87, 88, 89, -1, 91, 92, 93, 94,
9730 -1, -1, -1, 98, -1, -1, -1, 102, 103, 104,
9731 105, 106, 107, 108, 109, 110, -1, 112, -1, 114,
9732 115, 116, 117, 118, 119, -1, 121, 122, 123, 124,
9733 125, -1, -1, 128, 129, 130, 131, 132, -1, 134,
9734 135, 136, -1, 138, 139, 140, -1, 142, 143, 144,
9735 145, 146, 147, 148, 149, 150, -1, 152, -1, 154,
9736 155, 156, 157, -1, 159, -1, 161, 162, -1, 164,
9737 165, 166, 167, 168, -1, 170, 171, -1, 173, 174,
9738 -1, 176, 177, 178, 179, 180, 181, 182, 183, 184,
9739 185, -1, 187, 188, 189, 190, 191, 192, -1, 194,
9740 195, 196, 197, 198, 199, 200, 201, 202, -1, 204,
9741 -1, 206, 207, 208, 209, 210, 211, 212, 213, 214,
9742 215, -1, -1, 218, 219, 220, 221, 222, -1, 224,
9743 225, 226, -1, -1, 229, 230, 231, 232, 233, 234,
9744 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
9745 245, 246, 247, 248, 249, 250, 251, -1, 253, 254,
9746 255, 256, -1, 258, 259, 260, 261, 262, 263, -1,
9747 265, 266, -1, -1, 269, 270, 271, -1, -1, 274,
9748 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
9749 285, 286, 287, 288, -1, 290, 291, 292, 293, 294,
9750 295, 296, 297, 298, -1, 300, 301, 302, 303, 304,
9751 305, 306, 307, 308, 309, 310, 311, 312, 313, -1,
9752 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
9753 325, 326, -1, 328, 329, 330, 331, 332, 333, 334,
9754 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
9755 345, 346, 347, 348, 349, -1, 351, 352, 353, 354,
9756 355, 356, 357, 358, 359, 360, -1, 362, 363, 364,
9757 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
9758 -1, 376, 377, 378, 379, 380, 381, 382, 383, 384,
9759 385, -1, 387, 388, -1, -1, 391, 392, 393, 394,
9760 395, -1, 397, 398, 399, 400, 401, 402, 403, -1,
9761 -1, 406, 407, 408, 409, 410, -1, -1, 413, 414,
9762 415, 416, 417, 418, 419, -1, 421, 422, 423, 424,
9763 425, 426, -1, -1, 429, -1, 431, 432, 433, 434,
9764 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
9765 445, 446, 447, 448, 449, 450, 451, -1, -1, 454,
9766 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
9767 -1, -1, -1, 468, -1, 18, 19, 20, 21, 22,
9768 23, 24, 25, -1, 27, 28, 29, -1, -1, -1,
9769 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
9770 -1, 44, 45, 46, 47, 48, -1, 50, 51, -1,
9771 53, 54, 55, 56, 57, -1, -1, 60, 61, 62,
9772 63, 64, -1, 66, 67, 68, 69, 70, -1, -1,
9773 -1, 74, 75, 76, 77, 78, -1, 80, 81, 82,
9774 -1, 84, 85, 86, 87, 88, 89, -1, -1, 92,
9775 93, 94, -1, -1, -1, -1, -1, -1, -1, 102,
9776 103, 104, 105, 106, 107, 108, 109, 110, -1, 112,
9777 -1, 114, 115, 116, 117, 118, 119, -1, 121, 122,
9778 123, 124, 125, -1, -1, 128, 129, 130, 131, 132,
9779 -1, 134, 135, 136, -1, 138, 139, 140, -1, 142,
9780 143, 144, 145, 146, 147, 148, 149, 150, -1, 152,
9781 -1, 154, 155, 156, 157, -1, 159, -1, 161, -1,
9782 -1, -1, 165, 166, 167, 168, -1, 170, 171, -1,
9783 173, 174, -1, 176, 177, 178, 179, 180, -1, 182,
9784 183, 184, 185, -1, 187, 188, 189, 190, 191, 192,
9785 -1, 194, -1, 196, 197, 198, 199, 200, 201, 202,
9786 -1, 204, -1, 206, -1, -1, 209, -1, 211, 212,
9787 213, 214, 215, -1, -1, 218, 219, -1, 221, -1,
9788 -1, 224, 225, 226, -1, -1, 229, 230, 231, 232,
9789 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
9790 243, 244, 245, -1, 247, 248, 249, 250, 251, -1,
9791 253, 254, -1, 256, -1, 258, 259, 260, 261, 262,
9792 263, -1, 265, 266, -1, -1, 269, 270, 271, -1,
9793 -1, 274, 275, -1, 277, -1, 279, 280, 281, 282,
9794 283, 284, 285, 286, 287, 288, -1, 290, 291, 292,
9795 293, 294, 295, 296, 297, 298, -1, 300, 301, 302,
9796 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
9797 313, -1, 315, 316, 317, 318, 319, 320, 321, 322,
9798 323, 324, 325, 326, -1, 328, 329, -1, 331, 332,
9799 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
9800 343, 344, 345, 346, 347, 348, 349, -1, 351, 352,
9801 353, 354, 355, -1, 357, 358, 359, 360, -1, 362,
9802 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
9803 373, 374, -1, 376, 377, 378, 379, -1, 381, 382,
9804 383, 384, 385, -1, 387, 388, -1, -1, 391, 392,
9805 393, 394, 395, -1, 397, 398, 399, 400, 401, 402,
9806 403, -1, -1, 406, 407, 408, 409, 410, -1, -1,
9807 413, 414, 415, 416, 417, 418, 419, -1, 421, -1,
9808 423, 424, 425, 426, -1, -1, 429, -1, 431, 432,
9809 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
9810 443, 444, 445, 446, 447, 448, 449, 450, 451, -1,
9811 -1, 454, 3, -1, -1, -1, -1, -1, -1, -1,
9812 -1, -1, -1, -1, -1, 468, -1, 18, 19, 20,
9813 21, 22, 23, 24, 25, -1, 27, 28, 29, -1,
9814 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
9815 41, 42, -1, 44, 45, 46, 47, 48, -1, 50,
9816 51, -1, 53, 54, 55, 56, 57, -1, -1, 60,
9817 61, 62, 63, 64, -1, 66, 67, 68, 69, 70,
9818 -1, -1, -1, 74, 75, 76, 77, 78, -1, 80,
9819 81, 82, -1, 84, 85, 86, 87, 88, 89, -1,
9820 -1, 92, 93, 94, -1, -1, -1, -1, -1, -1,
9821 -1, 102, 103, 104, 105, 106, 107, 108, 109, 110,
9822 -1, 112, -1, 114, 115, 116, 117, 118, 119, -1,
9823 121, 122, 123, 124, 125, -1, -1, 128, 129, 130,
9824 131, 132, -1, 134, 135, 136, -1, 138, 139, 140,
9825 -1, 142, 143, 144, 145, 146, 147, 148, 149, 150,
9826 -1, 152, -1, 154, 155, 156, 157, -1, 159, -1,
9827 161, -1, -1, -1, 165, 166, 167, 168, -1, 170,
9828 171, -1, 173, 174, -1, 176, 177, 178, 179, 180,
9829 -1, 182, 183, 184, 185, -1, 187, 188, 189, 190,
9830 191, 192, -1, 194, -1, 196, 197, 198, 199, 200,
9831 201, 202, -1, 204, -1, 206, -1, -1, 209, -1,
9832 211, 212, 213, 214, 215, -1, -1, 218, 219, -1,
9833 221, -1, -1, 224, 225, 226, -1, -1, 229, 230,
9834 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
9835 241, 242, 243, 244, 245, -1, 247, 248, 249, 250,
9836 251, -1, 253, 254, -1, 256, -1, 258, 259, 260,
9837 261, 262, 263, -1, 265, 266, -1, -1, 269, 270,
9838 271, -1, -1, 274, 275, -1, 277, -1, 279, 280,
9839 281, 282, 283, 284, 285, 286, 287, 288, -1, 290,
9840 291, 292, 293, 294, 295, 296, 297, 298, -1, 300,
9841 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
9842 311, 312, 313, -1, 315, 316, 317, 318, 319, 320,
9843 321, 322, 323, 324, 325, 326, -1, 328, 329, -1,
9844 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
9845 341, 342, 343, -1, 345, 346, 347, 348, 349, -1,
9846 351, 352, 353, 354, 355, -1, 357, 358, 359, 360,
9847 -1, 362, 363, 364, 365, 366, 367, 368, 369, 370,
9848 371, 372, 373, 374, -1, 376, 377, -1, 379, -1,
9849 381, 382, 383, 384, 385, -1, 387, 388, -1, -1,
9850 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
9851 401, 402, 403, -1, -1, 406, 407, 408, 409, 410,
9852 -1, -1, 413, 414, 415, 416, 417, 418, 419, -1,
9853 421, -1, 423, 424, 425, 426, -1, -1, 429, -1,
9854 -1, 432, 433, 434, 435, 436, 437, 438, 439, 440,
9855 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
9856 451, -1, -1, 3, -1, -1, -1, -1, -1, -1,
9857 -1, -1, -1, -1, -1, -1, -1, 468, 18, 19,
9858 20, 21, 22, 23, 24, 25, -1, 27, 28, 29,
9859 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
9860 40, 41, 42, -1, 44, 45, 46, 47, 48, -1,
9861 50, 51, -1, 53, 54, 55, 56, 57, -1, -1,
9862 60, 61, 62, 63, 64, -1, 66, 67, 68, 69,
9863 70, -1, -1, -1, 74, 75, 76, 77, 78, -1,
9864 80, 81, 82, -1, 84, 85, 86, 87, 88, 89,
9865 -1, -1, 92, 93, 94, -1, -1, -1, -1, -1,
9866 -1, -1, 102, 103, 104, 105, 106, 107, 108, 109,
9867 110, -1, 112, -1, 114, 115, 116, 117, 118, 119,
9868 -1, 121, 122, 123, 124, 125, -1, -1, 128, 129,
9869 130, 131, 132, -1, 134, 135, 136, -1, 138, 139,
9870 140, -1, 142, 143, 144, 145, 146, 147, 148, 149,
9871 150, -1, 152, -1, 154, 155, 156, 157, -1, 159,
9872 -1, 161, -1, -1, -1, 165, 166, 167, 168, -1,
9873 170, 171, -1, 173, 174, -1, 176, 177, 178, 179,
9874 180, -1, 182, 183, 184, 185, -1, 187, 188, 189,
9875 190, 191, 192, -1, 194, -1, 196, 197, 198, 199,
9876 200, 201, 202, -1, 204, -1, 206, -1, -1, 209,
9877 -1, 211, 212, 213, 214, 215, -1, -1, 218, 219,
9878 -1, 221, -1, -1, 224, 225, 226, -1, -1, 229,
9879 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
9880 240, 241, 242, 243, 244, 245, -1, 247, 248, 249,
9881 250, 251, -1, 253, 254, -1, 256, -1, 258, 259,
9882 260, 261, 262, 263, -1, 265, 266, -1, -1, 269,
9883 270, 271, -1, -1, 274, 275, -1, 277, -1, 279,
9884 280, 281, 282, 283, 284, 285, 286, 287, 288, -1,
9885 290, 291, 292, 293, 294, 295, 296, 297, 298, -1,
9886 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
9887 310, 311, 312, 313, -1, 315, 316, 317, 318, 319,
9888 320, 321, 322, 323, 324, 325, 326, -1, 328, 329,
9889 -1, 331, 332, 333, 334, 335, 336, 337, 338, 339,
9890 340, 341, 342, 343, -1, 345, 346, 347, 348, 349,
9891 -1, 351, 352, 353, 354, 355, -1, 357, 358, 359,
9892 360, -1, 362, 363, 364, 365, 366, 367, 368, 369,
9893 370, 371, 372, 373, 374, -1, 376, 377, -1, 379,
9894 -1, 381, 382, 383, 384, 385, -1, 387, 388, -1,
9895 -1, 391, 392, 393, 394, 395, -1, 397, 398, 399,
9896 400, 401, 402, 403, -1, -1, 406, 407, 408, 409,
9897 410, -1, -1, 413, 414, 415, 416, 417, 418, 419,
9898 -1, 421, -1, 423, 424, 425, 426, -1, -1, 429,
9899 -1, -1, 432, 433, 434, 435, 436, 437, 438, 439,
9900 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
9901 450, 451, -1, -1, 3, -1, -1, -1, -1, -1,
9902 -1, -1, -1, -1, -1, -1, -1, -1, 468, 18,
9903 19, 20, 21, 22, 23, 24, 25, -1, 27, 28,
9904 29, -1, -1, -1, -1, -1, -1, -1, 37, 38,
9905 -1, 40, 41, 42, -1, 44, 45, 46, 47, 48,
9906 -1, 50, 51, -1, 53, 54, 55, 56, 57, -1,
9907 -1, 60, 61, 62, 63, 64, -1, 66, 67, 68,
9908 69, 70, -1, -1, -1, 74, 75, 76, 77, 78,
9909 -1, 80, 81, 82, -1, 84, 85, 86, 87, 88,
9910 89, -1, -1, 92, 93, 94, -1, -1, -1, -1,
9911 -1, -1, -1, 102, 103, 104, 105, 106, 107, 108,
9912 109, 110, -1, 112, -1, 114, 115, 116, 117, 118,
9913 119, -1, 121, 122, 123, 124, 125, -1, -1, 128,
9914 129, 130, 131, 132, -1, 134, 135, 136, -1, 138,
9915 139, 140, -1, 142, 143, 144, 145, 146, 147, 148,
9916 149, 150, -1, 152, -1, 154, 155, 156, 157, -1,
9917 159, -1, 161, -1, -1, -1, 165, 166, 167, 168,
9918 -1, 170, 171, -1, 173, 174, -1, 176, 177, 178,
9919 179, 180, -1, 182, 183, 184, 185, -1, 187, 188,
9920 189, 190, 191, 192, -1, 194, -1, 196, 197, 198,
9921 199, 200, 201, 202, -1, 204, -1, 206, -1, -1,
9922 209, -1, 211, 212, 213, 214, 215, -1, -1, 218,
9923 219, -1, 221, -1, -1, 224, 225, 226, -1, -1,
9924 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
9925 239, 240, 241, 242, 243, 244, 245, -1, 247, 248,
9926 249, 250, 251, -1, 253, 254, -1, 256, -1, 258,
9927 259, 260, 261, 262, 263, -1, 265, 266, -1, -1,
9928 269, 270, 271, -1, -1, 274, 275, -1, 277, -1,
9929 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
9930 -1, 290, 291, 292, 293, 294, 295, 296, 297, 298,
9931 -1, 300, 301, 302, 303, 304, 305, 306, 307, 308,
9932 309, 310, 311, 312, 313, -1, 315, 316, 317, 318,
9933 319, 320, 321, 322, 323, 324, 325, 326, -1, 328,
9934 329, -1, 331, 332, 333, 334, 335, 336, 337, 338,
9935 339, 340, 341, 342, 343, -1, 345, 346, 347, 348,
9936 349, -1, 351, 352, 353, 354, 355, -1, 357, 358,
9937 359, 360, -1, 362, 363, 364, 365, 366, 367, 368,
9938 369, 370, 371, 372, 373, 374, -1, 376, 377, -1,
9939 379, -1, 381, 382, 383, 384, 385, -1, 387, 388,
9940 -1, -1, 391, 392, 393, 394, 395, -1, 397, 398,
9941 399, 400, 401, 402, 403, -1, -1, 406, 407, 408,
9942 409, 410, -1, -1, 413, 414, 415, 416, 417, 418,
9943 419, -1, 421, -1, 423, 424, 425, 426, -1, -1,
9944 429, -1, -1, 432, 433, 434, 435, 436, 437, 438,
9945 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
9946 449, 450, 451, -1, -1, 3, -1, -1, -1, -1,
9947 -1, -1, -1, -1, -1, -1, -1, -1, -1, 468,
9948 18, 19, 20, 21, 22, 23, 24, 25, -1, 27,
9949 28, 29, -1, -1, -1, -1, -1, -1, -1, 37,
9950 38, -1, 40, 41, 42, -1, 44, 45, 46, 47,
9951 48, -1, 50, 51, -1, 53, 54, 55, 56, 57,
9952 -1, -1, 60, 61, 62, 63, 64, -1, 66, 67,
9953 68, 69, 70, -1, -1, -1, 74, 75, 76, 77,
9954 78, -1, 80, 81, 82, -1, 84, 85, 86, 87,
9955 88, 89, -1, -1, 92, 93, 94, -1, -1, -1,
9956 -1, -1, -1, -1, 102, 103, 104, 105, 106, 107,
9957 108, 109, 110, -1, 112, -1, 114, 115, 116, 117,
9958 118, 119, -1, 121, 122, 123, 124, 125, -1, -1,
9959 128, 129, 130, 131, 132, -1, 134, 135, 136, -1,
9960 138, 139, 140, -1, 142, 143, 144, 145, 146, 147,
9961 148, 149, 150, -1, 152, -1, 154, 155, 156, 157,
9962 -1, 159, -1, 161, -1, -1, -1, 165, 166, 167,
9963 168, -1, 170, 171, -1, 173, 174, -1, 176, 177,
9964 178, 179, 180, -1, 182, 183, 184, 185, -1, 187,
9965 188, 189, 190, 191, 192, -1, 194, -1, 196, 197,
9966 198, 199, 200, 201, 202, -1, 204, -1, 206, -1,
9967 -1, 209, -1, 211, 212, 213, 214, 215, -1, -1,
9968 218, 219, -1, 221, -1, -1, 224, 225, 226, -1,
9969 -1, 229, 230, 231, 232, 233, 234, 235, 236, 237,
9970 238, 239, 240, 241, 242, 243, 244, 245, -1, 247,
9971 248, 249, 250, 251, -1, 253, 254, -1, 256, -1,
9972 258, 259, 260, 261, 262, 263, -1, 265, 266, -1,
9973 -1, 269, 270, 271, -1, -1, 274, 275, -1, 277,
9974 -1, 279, 280, 281, 282, 283, 284, 285, 286, 287,
9975 288, -1, 290, 291, 292, 293, 294, 295, 296, 297,
9976 298, -1, 300, 301, 302, 303, 304, 305, 306, 307,
9977 308, 309, 310, 311, 312, 313, -1, 315, 316, 317,
9978 318, 319, 320, 321, 322, 323, 324, 325, 326, -1,
9979 328, 329, -1, 331, 332, 333, 334, 335, 336, 337,
9980 338, 339, 340, 341, 342, 343, -1, 345, 346, 347,
9981 348, 349, -1, 351, 352, 353, 354, 355, -1, 357,
9982 358, 359, 360, -1, 362, 363, 364, 365, 366, 367,
9983 368, 369, 370, 371, 372, 373, 374, -1, 376, 377,
9984 -1, 379, -1, 381, 382, 383, 384, 385, -1, 387,
9985 388, -1, -1, 391, 392, 393, 394, 395, -1, 397,
9986 398, 399, 400, 401, 402, 403, -1, -1, 406, 407,
9987 408, 409, 410, -1, -1, 413, 414, 415, 416, 417,
9988 418, 419, -1, 421, -1, 423, 424, 425, 426, -1,
9989 -1, 429, -1, -1, 432, 433, 434, 435, 436, 437,
9990 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
9991 448, 449, 450, 451, -1, -1, -1, -1, -1, 3,
9992 4, 5, -1, -1, 8, 9, -1, -1, -1, -1,
9993 468, 15, 16, 17, 18, 19, 20, 21, 22, 23,
9994 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
9995 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
9996 44, 45, 46, -1, 48, 49, 50, 51, 52, 53,
9997 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
9998 64, 65, 66, 67, 68, 69, -1, 71, 72, 73,
9999 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
10000 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
10001 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
10002 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
10003 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
10004 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
10005 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
10006 144, 145, -1, 147, 148, 149, -1, 151, 152, 153,
10007 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
10008 164, 165, 166, 167, 168, 169, 170, -1, 172, -1,
10009 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
10010 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
10011 194, 195, -1, 197, 198, 199, 200, 201, 202, 203,
10012 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
10013 214, 215, 216, 217, 218, -1, 220, 221, 222, 223,
10014 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
10015 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
10016 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
10017 254, 255, 256, 257, -1, 259, 260, 261, 262, 263,
10018 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
10019 274, -1, 276, 277, 278, -1, 280, 281, 282, 283,
10020 284, 285, 286, 287, 288, 289, 290, 291, -1, 293,
10021 294, -1, 296, 297, 298, 299, 300, 301, 302, 303,
10022 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
10023 314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
10024 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
10025 -1, 335, 336, 337, 338, 339, 340, 341, 342, 343,
10026 344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
10027 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
10028 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
10029 -1, 375, 376, 377, 378, 379, 380, 381, 382, 383,
10030 384, 385, 386, 387, 388, 389, 390, 391, 392, -1,
10031 394, -1, 396, 397, 398, 399, 400, 401, 402, 403,
10032 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
10033 414, 415, 416, 417, -1, 419, 420, 421, 422, 423,
10034 424, 425, 426, 427, 428, 429, 430, 431, 432, 433,
10035 434, 435, 436, 437, -1, -1, -1, -1, -1, -1,
10036 -1, -1, -1, -1, -1, 449, 450, 451, -1, 3,
10037 -1, 455, 456, 457, 8, 459, 460, 461, 462, 463,
10038 464, 15, 16, 17, 18, 19, 20, 21, 22, 23,
10039 24, 25, -1, 27, 28, 29, -1, -1, -1, -1,
10040 -1, -1, -1, 37, 38, -1, 40, 41, 42, -1,
10041 44, 45, 46, 47, 48, -1, 50, 51, -1, 53,
10042 54, 55, 56, 57, -1, -1, 60, 61, 62, 63,
10043 64, -1, 66, 67, 68, 69, 70, -1, -1, -1,
10044 74, 75, 76, 77, 78, -1, 80, 81, 82, -1,
10045 84, 85, 86, 87, 88, 89, -1, -1, 92, 93,
10046 94, -1, -1, -1, -1, -1, -1, -1, 102, 103,
10047 104, 105, 106, 107, 108, 109, 110, -1, 112, -1,
10048 114, 115, 116, 117, 118, 119, -1, 121, 122, 123,
10049 124, 125, -1, -1, 128, 129, 130, 131, 132, -1,
10050 134, 135, 136, -1, 138, 139, 140, -1, 142, 143,
10051 144, 145, 146, 147, 148, 149, 150, -1, 152, -1,
10052 154, 155, 156, 157, -1, 159, -1, 161, -1, -1,
10053 -1, 165, 166, 167, 168, -1, 170, 171, -1, 173,
10054 174, -1, 176, 177, 178, 179, 180, -1, 182, 183,
10055 184, 185, -1, 187, 188, 189, 190, 191, 192, -1,
10056 194, -1, 196, 197, 198, 199, 200, 201, 202, -1,
10057 204, -1, 206, -1, -1, 209, -1, 211, 212, 213,
10058 214, 215, -1, -1, 218, 219, -1, 221, -1, -1,
10059 224, 225, 226, -1, -1, 229, 230, 231, 232, 233,
10060 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
10061 244, 245, -1, 247, 248, 249, 250, 251, -1, 253,
10062 254, -1, 256, -1, 258, 259, 260, 261, 262, 263,
10063 -1, 265, 266, -1, -1, 269, 270, 271, -1, -1,
10064 274, 275, -1, 277, -1, 279, 280, 281, 282, 283,
10065 284, 285, 286, 287, 288, -1, 290, 291, 292, 293,
10066 294, 295, 296, 297, 298, -1, 300, 301, 302, 303,
10067 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
10068 -1, 315, 316, 317, 318, 319, 320, 321, 322, 323,
10069 324, 325, 326, -1, 328, 329, -1, 331, 332, 333,
10070 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
10071 -1, 345, 346, 347, 348, 349, -1, 351, 352, 353,
10072 354, 355, -1, 357, 358, 359, 360, -1, 362, 363,
10073 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
10074 374, -1, 376, 377, -1, 379, -1, 381, 382, 383,
10075 384, 385, -1, 387, 388, -1, -1, 391, 392, 393,
10076 394, 395, -1, 397, 398, 399, 400, 401, 402, 403,
10077 -1, -1, 406, 407, 408, 409, 410, -1, -1, 413,
10078 414, 415, 416, 417, 418, 419, -1, 421, -1, 423,
10079 424, 425, 426, -1, -1, 429, -1, -1, 432, 433,
10080 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
10081 444, 445, 446, 447, 448, 449, 450, 451, -1, -1,
10082 -1, 455, 456, 457, -1, 459, 460, 461, 462, 463,
10083 464, 8, -1, -1, 11, -1, -1, -1, 15, 16,
10084 17, -1, -1, -1, -1, -1, -1, -1, -1, 8,
10085 -1, -1, 11, -1, -1, 32, 15, 16, 17, -1,
10086 -1, -1, -1, 40, -1, -1, -1, -1, 8, -1,
10087 47, 11, -1, 32, -1, 15, 16, 17, -1, -1,
10088 -1, 40, -1, -1, -1, -1, -1, -1, 47, -1,
10089 -1, -1, 32, -1, 71, -1, -1, -1, -1, -1,
10090 40, -1, -1, -1, -1, -1, 8, 47, -1, 11,
10091 -1, -1, 71, 15, 16, 17, -1, -1, -1, -1,
10092 -1, -1, -1, -1, -1, 8, -1, -1, 11, -1,
10093 32, 71, 15, 16, 17, -1, -1, -1, 40, -1,
10094 -1, -1, -1, 8, -1, 47, 11, -1, -1, 32,
10095 15, 16, 17, -1, -1, -1, -1, 40, -1, -1,
10096 -1, -1, -1, -1, 47, -1, -1, 32, -1, 71,
10097 -1, -1, -1, -1, -1, 40, -1, -1, -1, -1,
10098 -1, -1, 47, -1, -1, -1, -1, -1, 71, -1,
10099 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10100 -1, -1, -1, -1, 181, -1, 71, -1, -1, 186,
10101 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10102 -1, -1, 181, -1, -1, -1, -1, 186, -1, -1,
10103 207, 208, -1, -1, -1, -1, -1, -1, -1, -1,
10104 -1, 181, -1, -1, -1, 222, 186, -1, 207, 208,
10105 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10106 -1, -1, -1, 222, -1, -1, -1, 207, 208, -1,
10107 -1, -1, -1, -1, -1, 252, -1, -1, 255, 181,
10108 -1, -1, 222, -1, 186, -1, -1, -1, -1, -1,
10109 -1, -1, 269, 252, -1, 272, 255, -1, 181, -1,
10110 -1, -1, -1, 186, -1, 207, 208, -1, -1, -1,
10111 269, -1, 252, 272, -1, 255, 181, -1, -1, -1,
10112 222, 186, -1, -1, 207, 208, -1, -1, -1, 269,
10113 -1, -1, 272, -1, -1, -1, -1, -1, -1, 222,
10114 -1, -1, 207, 208, -1, -1, -1, -1, -1, -1,
10115 252, -1, -1, 255, -1, -1, -1, 222, -1, -1,
10116 -1, -1, -1, -1, -1, -1, -1, 269, -1, 252,
10117 272, -1, 255, -1, -1, -1, -1, -1, -1, 356,
10118 -1, -1, -1, -1, -1, -1, 269, 252, -1, 272,
10119 255, -1, -1, -1, -1, -1, -1, 356, -1, -1,
10120 22, -1, -1, -1, 269, -1, 28, 272, -1, -1,
10121 -1, 8, -1, 35, 11, -1, 356, -1, 15, 16,
10122 17, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10123 -1, -1, 54, -1, -1, 32, -1, -1, -1, -1,
10124 -1, -1, -1, 40, -1, -1, -1, -1, -1, -1,
10125 47, -1, -1, -1, 356, -1, -1, -1, -1, -1,
10126 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10127 -1, -1, -1, 356, 71, 452, -1, -1, 455, 456,
10128 457, 103, 459, 460, 461, 462, 463, 464, -1, -1,
10129 -1, 356, 469, 452, -1, -1, 455, 456, 457, -1,
10130 459, 460, 461, 462, 463, 464, -1, -1, -1, 131,
10131 469, -1, 452, -1, -1, 455, 456, 457, -1, 459,
10132 460, 461, 462, 463, 464, -1, -1, -1, -1, 469,
10133 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10134 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10135 452, -1, -1, 455, 456, 457, -1, 459, 460, 461,
10136 462, 463, 464, -1, -1, -1, 188, 469, -1, 452,
10137 -1, -1, 455, 456, 457, -1, 459, 460, 461, 462,
10138 463, 464, -1, -1, 181, -1, 469, 452, -1, 186,
10139 455, 456, 457, -1, 459, 460, 461, 462, 463, 464,
10140 -1, -1, -1, -1, 469, -1, -1, -1, -1, -1,
10141 207, 208, -1, -1, 236, -1, -1, 239, -1, -1,
10142 -1, -1, -1, -1, -1, 222, -1, -1, 250, -1,
10143 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10144 -1, -1, -1, -1, -1, -1, -1, -1, -1, 271,
10145 -1, -1, -1, -1, -1, 252, -1, -1, 255, 281,
10146 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10147 -1, -1, 269, -1, -1, 272, -1, -1, -1, -1,
10148 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10149 -1, -1, -1, -1, -1, -1, -1, -1, 320, -1,
10150 -1, -1, 324, 325, -1, -1, -1, -1, -1, -1,
10151 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10152 -1, -1, -1, 345, -1, -1, -1, -1, -1, 351,
10153 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10154 -1, -1, -1, 365, -1, -1, -1, -1, -1, -1,
10155 -1, -1, -1, -1, -1, -1, -1, -1, -1, 356,
10156 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10157 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10158 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10159 -1, -1, -1, 415, -1, -1, -1, -1, -1, -1,
10160 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10161 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10162 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10163 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10164 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10165 -1, -1, -1, -1, -1, 452, 3, -1, 455, 456,
10166 457, -1, 459, 460, 461, 462, 463, 464, -1, -1,
10167 467, 18, 19, 20, 21, 22, 23, 24, 25, 26,
10168 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
10169 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
10170 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
10171 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
10172 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
10173 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
10174 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
10175 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
10176 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
10177 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
10178 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
10179 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
10180 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
10181 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
10182 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
10183 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
10184 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
10185 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
10186 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
10187 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
10188 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
10189 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
10190 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
10191 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
10192 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
10193 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
10194 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
10195 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
10196 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
10197 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
10198 327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
10199 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
10200 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
10201 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
10202 367, 368, 369, 370, 371, 372, 373, 374, 375, 376,
10203 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
10204 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
10205 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
10206 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
10207 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
10208 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
10209 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
10210 447, 448, 449, 450, 451, 3, -1, -1, -1, -1,
10211 -1, -1, -1, -1, 461, -1, -1, -1, -1, -1,
10212 18, 19, 20, 21, 22, 23, 24, 25, -1, 27,
10213 28, 29, -1, -1, -1, -1, -1, -1, -1, 37,
10214 38, -1, 40, 41, 42, -1, 44, 45, 46, 47,
10215 48, -1, 50, 51, -1, 53, 54, 55, 56, 57,
10216 -1, -1, 60, 61, 62, 63, 64, -1, 66, 67,
10217 68, 69, 70, -1, -1, -1, 74, 75, 76, 77,
10218 78, -1, 80, 81, 82, -1, 84, 85, 86, 87,
10219 88, 89, -1, -1, 92, 93, 94, -1, -1, -1,
10220 -1, -1, -1, -1, 102, 103, 104, 105, 106, 107,
10221 108, 109, 110, -1, 112, -1, 114, 115, 116, 117,
10222 118, 119, -1, 121, 122, 123, 124, 125, -1, -1,
10223 128, 129, 130, 131, 132, -1, 134, 135, 136, -1,
10224 138, 139, 140, -1, 142, 143, 144, 145, 146, 147,
10225 148, 149, 150, -1, 152, -1, 154, 155, 156, 157,
10226 -1, 159, -1, 161, -1, -1, -1, 165, 166, 167,
10227 168, -1, 170, 171, -1, 173, 174, -1, 176, 177,
10228 178, 179, 180, -1, 182, 183, 184, 185, -1, 187,
10229 188, 189, 190, 191, 192, -1, 194, -1, 196, 197,
10230 198, 199, 200, 201, 202, -1, 204, -1, 206, -1,
10231 -1, 209, -1, 211, 212, 213, 214, 215, -1, -1,
10232 218, 219, -1, 221, -1, -1, 224, 225, 226, -1,
10233 -1, 229, 230, 231, 232, 233, 234, 235, 236, 237,
10234 238, 239, 240, 241, 242, 243, 244, 245, -1, 247,
10235 248, 249, 250, 251, -1, 253, 254, -1, 256, -1,
10236 258, 259, 260, 261, 262, 263, -1, 265, 266, -1,
10237 -1, 269, 270, 271, -1, -1, 274, 275, -1, 277,
10238 -1, 279, 280, 281, 282, 283, 284, 285, 286, 287,
10239 288, -1, 290, 291, 292, 293, 294, 295, 296, 297,
10240 298, -1, 300, 301, 302, 303, 304, 305, 306, 307,
10241 308, 309, 310, 311, 312, 313, -1, 315, 316, 317,
10242 318, 319, 320, 321, 322, 323, 324, 325, 326, -1,
10243 328, 329, -1, 331, 332, 333, 334, 335, 336, 337,
10244 338, 339, 340, 341, 342, 343, -1, 345, 346, 347,
10245 348, 349, -1, 351, 352, 353, 354, 355, -1, 357,
10246 358, 359, 360, -1, 362, 363, 364, 365, 366, 367,
10247 368, 369, 370, 371, 372, 373, 374, -1, 376, 377,
10248 -1, 379, -1, 381, 382, 383, 384, 385, -1, 387,
10249 388, -1, -1, 391, 392, 393, 394, 395, -1, 397,
10250 398, 399, 400, 401, 402, 403, -1, -1, 406, 407,
10251 408, 409, 410, -1, -1, 413, 414, 415, 416, 417,
10252 418, 419, -1, 421, -1, 423, 424, 425, 426, -1,
10253 -1, 429, -1, -1, 432, 433, 434, 435, 436, 437,
10254 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
10255 448, 449, 450, 451, 3, 4, 5, -1, -1, -1,
10256 9, -1, -1, 461, -1, -1, -1, -1, -1, 18,
10257 19, 20, 21, 22, 23, 24, 25, -1, 27, 28,
10258 29, -1, -1, -1, -1, -1, -1, -1, 37, 38,
10259 -1, 40, 41, 42, 43, 44, 45, 46, 47, 48,
10260 49, 50, 51, -1, 53, 54, 55, 56, 57, -1,
10261 -1, 60, 61, 62, 63, 64, -1, 66, 67, 68,
10262 69, 70, -1, 72, -1, 74, 75, 76, 77, 78,
10263 79, 80, 81, 82, -1, 84, 85, 86, 87, 88,
10264 89, -1, 91, 92, 93, 94, -1, -1, -1, 98,
10265 -1, -1, -1, 102, 103, 104, 105, 106, 107, 108,
10266 109, 110, 111, 112, -1, 114, 115, 116, 117, 118,
10267 119, -1, 121, 122, 123, 124, 125, -1, -1, 128,
10268 129, 130, 131, 132, -1, 134, 135, 136, -1, 138,
10269 139, 140, -1, 142, 143, 144, 145, 146, 147, 148,
10270 149, 150, 151, 152, -1, 154, 155, 156, 157, -1,
10271 159, -1, 161, 162, -1, 164, 165, 166, 167, 168,
10272 -1, 170, 171, -1, 173, 174, -1, 176, 177, 178,
10273 179, 180, 181, 182, 183, 184, 185, -1, 187, 188,
10274 189, 190, 191, 192, -1, 194, 195, 196, 197, 198,
10275 199, 200, 201, 202, -1, 204, -1, 206, 207, 208,
10276 209, 210, 211, 212, 213, 214, 215, -1, -1, 218,
10277 219, 220, 221, 222, -1, 224, 225, 226, -1, -1,
10278 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
10279 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
10280 249, 250, 251, -1, 253, 254, 255, 256, -1, 258,
10281 259, 260, 261, 262, 263, -1, 265, 266, 267, -1,
10282 269, 270, 271, -1, -1, 274, 275, 276, 277, 278,
10283 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
10284 -1, 290, 291, 292, 293, 294, 295, 296, 297, 298,
10285 -1, 300, 301, 302, 303, 304, 305, 306, 307, 308,
10286 309, 310, 311, 312, 313, -1, 315, 316, 317, 318,
10287 319, 320, 321, 322, 323, 324, 325, 326, -1, 328,
10288 329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
10289 339, 340, 341, 342, 343, -1, 345, 346, 347, 348,
10290 349, -1, 351, 352, 353, 354, 355, 356, 357, 358,
10291 359, 360, -1, 362, 363, 364, 365, 366, 367, 368,
10292 369, 370, 371, 372, 373, 374, -1, 376, 377, -1,
10293 379, 380, 381, 382, 383, 384, 385, -1, 387, 388,
10294 -1, -1, 391, 392, 393, 394, 395, 396, 397, 398,
10295 399, 400, 401, 402, 403, -1, -1, 406, 407, 408,
10296 409, 410, -1, -1, 413, 414, 415, 416, 417, 418,
10297 419, -1, 421, 422, 423, 424, 425, 426, -1, -1,
10298 429, -1, -1, 432, 433, 434, 435, 436, 437, 438,
10299 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
10300 449, 450, 451, 3, 4, 5, -1, -1, -1, 9,
10301 459, 460, -1, -1, -1, -1, -1, -1, 18, 19,
10302 20, 21, 22, 23, 24, 25, -1, 27, 28, 29,
10303 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
10304 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
10305 50, 51, -1, 53, 54, 55, 56, 57, -1, -1,
10306 60, 61, 62, 63, 64, -1, 66, 67, 68, 69,
10307 70, -1, 72, -1, 74, 75, 76, 77, 78, 79,
10308 80, 81, 82, -1, 84, 85, 86, 87, 88, 89,
10309 -1, 91, 92, 93, 94, -1, -1, -1, 98, -1,
10310 -1, -1, 102, 103, 104, 105, 106, 107, 108, 109,
10311 110, 111, 112, -1, 114, 115, 116, 117, 118, 119,
10312 -1, 121, 122, 123, 124, 125, -1, -1, 128, 129,
10313 130, 131, 132, -1, 134, 135, 136, -1, 138, 139,
10314 140, -1, 142, 143, 144, 145, 146, 147, 148, 149,
10315 150, 151, 152, -1, 154, 155, 156, 157, -1, 159,
10316 -1, 161, 162, -1, 164, 165, 166, 167, 168, -1,
10317 170, 171, -1, 173, 174, -1, 176, 177, 178, 179,
10318 180, 181, 182, 183, 184, 185, -1, 187, 188, 189,
10319 190, 191, 192, -1, 194, 195, 196, 197, 198, 199,
10320 200, 201, 202, -1, 204, -1, 206, 207, 208, 209,
10321 210, 211, 212, 213, 214, 215, -1, -1, 218, 219,
10322 220, 221, 222, -1, 224, 225, 226, -1, -1, 229,
10323 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
10324 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
10325 250, 251, -1, 253, 254, 255, 256, -1, 258, 259,
10326 260, 261, 262, 263, -1, 265, 266, 267, -1, 269,
10327 270, 271, -1, -1, 274, 275, 276, 277, 278, 279,
10328 280, 281, 282, 283, 284, 285, 286, 287, 288, -1,
10329 290, 291, 292, 293, 294, 295, 296, 297, 298, -1,
10330 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
10331 310, 311, 312, 313, -1, 315, 316, 317, 318, 319,
10332 320, 321, 322, 323, 324, 325, 326, -1, 328, 329,
10333 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
10334 340, 341, 342, 343, -1, 345, 346, 347, 348, 349,
10335 -1, 351, 352, 353, 354, 355, 356, 357, 358, 359,
10336 360, -1, 362, 363, 364, 365, 366, 367, 368, 369,
10337 370, 371, 372, 373, 374, -1, 376, 377, -1, 379,
10338 380, 381, 382, 383, 384, 385, -1, 387, 388, -1,
10339 -1, 391, 392, 393, 394, 395, 396, 397, 398, 399,
10340 400, 401, 402, 403, -1, -1, 406, 407, 408, 409,
10341 410, -1, -1, 413, 414, 415, 416, 417, 418, 419,
10342 -1, 421, 422, 423, 424, 425, 426, -1, -1, 429,
10343 -1, -1, 432, 433, 434, 435, 436, 437, 438, 439,
10344 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
10345 450, 451, 3, 4, 5, -1, -1, -1, 9, 459,
10346 460, -1, -1, -1, -1, -1, -1, 18, 19, 20,
10347 21, 22, 23, 24, 25, -1, 27, 28, 29, -1,
10348 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
10349 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
10350 51, -1, 53, 54, 55, 56, 57, -1, -1, 60,
10351 61, 62, 63, 64, -1, 66, 67, 68, 69, 70,
10352 -1, 72, -1, 74, 75, 76, 77, 78, 79, 80,
10353 81, 82, -1, 84, 85, 86, 87, 88, 89, -1,
10354 91, 92, 93, 94, -1, -1, -1, 98, -1, -1,
10355 -1, 102, 103, 104, 105, 106, 107, 108, 109, 110,
10356 -1, 112, -1, 114, 115, 116, 117, 118, 119, -1,
10357 121, 122, 123, 124, 125, -1, -1, 128, 129, 130,
10358 131, 132, -1, 134, 135, 136, -1, 138, 139, 140,
10359 -1, 142, 143, 144, 145, 146, 147, 148, 149, 150,
10360 151, 152, -1, 154, 155, 156, 157, -1, 159, -1,
10361 161, 162, -1, 164, 165, 166, 167, 168, -1, 170,
10362 171, -1, 173, 174, -1, 176, 177, 178, 179, 180,
10363 181, 182, 183, 184, 185, -1, 187, 188, 189, 190,
10364 191, 192, -1, 194, 195, 196, 197, 198, 199, 200,
10365 201, 202, -1, 204, -1, 206, 207, 208, 209, 210,
10366 211, 212, 213, 214, 215, -1, -1, 218, 219, 220,
10367 221, 222, -1, 224, 225, 226, -1, -1, 229, 230,
10368 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
10369 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
10370 251, -1, 253, 254, 255, 256, -1, 258, 259, 260,
10371 261, 262, 263, -1, 265, 266, 267, -1, 269, 270,
10372 271, -1, -1, 274, 275, 276, 277, 278, 279, 280,
10373 281, 282, 283, 284, 285, 286, 287, 288, -1, 290,
10374 291, 292, 293, 294, 295, 296, 297, 298, -1, 300,
10375 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
10376 311, 312, 313, -1, 315, 316, 317, 318, 319, 320,
10377 321, 322, 323, 324, 325, 326, -1, 328, 329, 330,
10378 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
10379 341, 342, 343, -1, 345, 346, 347, 348, 349, -1,
10380 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
10381 -1, 362, 363, 364, 365, 366, 367, 368, 369, 370,
10382 371, 372, 373, 374, -1, 376, 377, -1, 379, 380,
10383 381, 382, 383, 384, 385, -1, 387, 388, -1, -1,
10384 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
10385 401, 402, 403, -1, -1, 406, 407, 408, 409, 410,
10386 -1, -1, 413, 414, 415, 416, 417, 418, 419, -1,
10387 421, 422, 423, 424, 425, 426, -1, -1, 429, -1,
10388 -1, 432, 433, 434, 435, 436, 437, 438, 439, 440,
10389 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
10390 451, -1, -1, 8, -1, -1, 11, -1, 459, 460,
10391 15, 16, 17, -1, -1, -1, 8, -1, -1, 11,
10392 -1, -1, -1, 15, 16, 17, -1, 32, -1, -1,
10393 -1, 36, -1, -1, -1, 40, -1, -1, -1, -1,
10394 32, -1, 47, -1, -1, -1, -1, -1, 40, -1,
10395 -1, -1, -1, -1, -1, 47, 8, -1, -1, 11,
10396 -1, -1, -1, 15, 16, 17, 71, -1, -1, -1,
10397 -1, -1, -1, -1, -1, 8, -1, -1, 11, 71,
10398 32, -1, 15, 16, 17, -1, -1, -1, 40, -1,
10399 -1, -1, -1, -1, -1, 47, -1, -1, -1, 32,
10400 -1, -1, 35, -1, -1, -1, -1, 40, -1, -1,
10401 -1, -1, -1, -1, 47, 120, -1, -1, -1, 71,
10402 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10403 -1, -1, -1, 8, -1, -1, 11, -1, 71, -1,
10404 15, 16, 17, -1, -1, -1, -1, -1, -1, -1,
10405 -1, -1, -1, -1, -1, -1, -1, 32, -1, -1,
10406 -1, -1, -1, -1, -1, 40, 158, -1, -1, -1,
10407 -1, 163, 47, -1, -1, -1, 181, -1, -1, -1,
10408 -1, 186, -1, -1, -1, -1, -1, -1, -1, 181,
10409 -1, -1, -1, -1, 186, -1, 71, -1, -1, -1,
10410 -1, -1, 207, 208, -1, 157, -1, -1, -1, -1,
10411 -1, -1, -1, -1, -1, 207, 208, 222, -1, -1,
10412 -1, -1, -1, -1, -1, -1, -1, -1, -1, 181,
10413 222, -1, -1, -1, 186, -1, -1, -1, -1, -1,
10414 -1, -1, -1, -1, -1, -1, -1, 252, 181, -1,
10415 255, -1, -1, 186, -1, 207, 208, -1, -1, -1,
10416 252, -1, -1, 255, 269, -1, -1, 272, -1, -1,
10417 222, -1, -1, -1, 207, 208, -1, 269, -1, -1,
10418 272, -1, -1, -1, -1, -1, -1, -1, -1, 222,
10419 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10420 252, -1, -1, 255, -1, -1, 181, -1, -1, -1,
10421 -1, 186, -1, -1, -1, -1, -1, 269, -1, 252,
10422 272, -1, 255, -1, -1, -1, -1, -1, -1, -1,
10423 -1, -1, 207, 208, -1, -1, 269, -1, -1, 272,
10424 -1, -1, 294, -1, -1, -1, -1, 222, -1, -1,
10425 -1, 356, -1, -1, -1, -1, -1, -1, -1, 8,
10426 -1, -1, 11, -1, 356, -1, 15, 16, 17, -1,
10427 -1, -1, -1, -1, -1, -1, -1, 252, -1, -1,
10428 255, -1, -1, 32, -1, -1, 35, -1, -1, -1,
10429 -1, 40, -1, -1, 269, -1, -1, 272, 47, -1,
10430 -1, -1, -1, -1, 356, -1, -1, 412, -1, -1,
10431 -1, -1, -1, -1, 289, -1, -1, -1, -1, -1,
10432 -1, -1, 71, 356, -1, -1, -1, -1, -1, -1,
10433 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10434 -1, -1, -1, -1, -1, -1, -1, 452, -1, -1,
10435 455, 456, 457, -1, 459, 460, 461, 462, 463, 464,
10436 452, -1, -1, 455, 456, 457, -1, 459, 460, 461,
10437 462, 463, 464, -1, -1, -1, -1, -1, -1, -1,
10438 -1, 356, 8, -1, -1, 11, -1, -1, -1, 15,
10439 16, 17, -1, -1, -1, -1, -1, -1, -1, -1,
10440 452, -1, -1, 455, 456, 457, 32, 459, 460, 461,
10441 462, 463, 464, -1, 40, -1, -1, -1, -1, 452,
10442 -1, 47, 455, 456, 457, -1, 459, 460, 461, 462,
10443 463, 464, 181, 8, -1, -1, 11, 186, -1, -1,
10444 15, 16, 17, -1, -1, 71, -1, -1, -1, -1,
10445 -1, -1, -1, -1, -1, -1, -1, 32, 207, 208,
10446 -1, -1, -1, -1, -1, 40, -1, -1, -1, -1,
10447 22, -1, 47, 222, -1, -1, 28, 452, -1, -1,
10448 455, 456, 457, 35, 459, 460, 461, 462, 463, 464,
10449 -1, -1, -1, -1, -1, -1, 71, -1, -1, -1,
10450 -1, -1, 54, 252, -1, -1, 255, -1, -1, -1,
10451 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10452 269, -1, 8, 272, -1, 11, -1, -1, -1, 15,
10453 16, 17, -1, -1, -1, -1, -1, 163, -1, -1,
10454 -1, -1, -1, -1, -1, -1, 32, -1, -1, -1,
10455 -1, 103, -1, -1, 40, 181, -1, -1, -1, -1,
10456 186, 47, -1, -1, -1, -1, -1, -1, -1, -1,
10457 -1, -1, -1, -1, -1, -1, -1, -1, -1, 131,
10458 -1, 207, 208, -1, -1, 71, -1, -1, -1, -1,
10459 -1, -1, -1, -1, -1, -1, 222, -1, -1, -1,
10460 -1, -1, -1, -1, -1, -1, 181, 356, -1, -1,
10461 -1, 186, -1, -1, -1, -1, -1, -1, -1, -1,
10462 -1, -1, -1, -1, -1, -1, 252, -1, -1, 255,
10463 -1, -1, 207, 208, -1, -1, 188, -1, -1, -1,
10464 -1, -1, -1, 269, -1, -1, 272, 222, -1, -1,
10465 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10466 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10467 -1, -1, -1, -1, -1, -1, -1, 252, -1, -1,
10468 255, -1, -1, -1, 236, -1, -1, 239, -1, -1,
10469 -1, -1, -1, -1, 269, 181, -1, 272, 250, -1,
10470 186, -1, -1, 452, -1, -1, 455, 456, 457, -1,
10471 459, 460, 461, 462, 463, 464, -1, -1, -1, 271,
10472 -1, 207, 208, -1, -1, -1, -1, -1, -1, 281,
10473 356, -1, -1, -1, -1, -1, 222, -1, -1, -1,
10474 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10475 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10476 -1, -1, -1, -1, -1, -1, 252, -1, 320, 255,
10477 -1, -1, 324, 325, -1, -1, -1, -1, -1, -1,
10478 -1, 356, -1, 269, -1, -1, 272, -1, -1, -1,
10479 -1, -1, -1, 345, -1, -1, -1, -1, -1, 351,
10480 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10481 -1, 386, -1, 365, -1, -1, -1, -1, -1, -1,
10482 -1, -1, -1, -1, -1, -1, 452, -1, -1, 455,
10483 456, 457, -1, 459, 460, 461, 462, 463, 464, -1,
10484 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10485 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10486 -1, -1, -1, 415, -1, -1, -1, -1, -1, -1,
10487 356, -1, -1, -1, -1, -1, -1, 452, -1, -1,
10488 455, 456, 457, -1, 459, 460, 461, 462, 463, 464,
10489 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10490 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10491 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10492 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10493 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10494 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10495 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10496 -1, -1, -1, -1, 3, -1, 452, -1, -1, 455,
10497 456, 457, -1, 459, 460, 461, 462, 463, 464, 18,
10498 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
10499 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
10500 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
10501 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
10502 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
10503 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
10504 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
10505 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
10506 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
10507 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
10508 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
10509 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
10510 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
10511 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
10512 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
10513 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
10514 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
10515 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
10516 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
10517 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
10518 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
10519 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
10520 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
10521 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
10522 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
10523 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
10524 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
10525 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
10526 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
10527 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
10528 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
10529 329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
10530 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
10531 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
10532 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
10533 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
10534 379, 380, 381, 382, 383, 384, 385, 386, 387, 388,
10535 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
10536 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
10537 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
10538 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
10539 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
10540 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
10541 449, 450, 451, 3, -1, -1, -1, -1, -1, -1,
10542 -1, -1, -1, -1, -1, -1, -1, -1, 18, 19,
10543 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
10544 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
10545 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
10546 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
10547 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
10548 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
10549 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
10550 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
10551 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
10552 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
10553 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
10554 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
10555 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
10556 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
10557 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
10558 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
10559 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
10560 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
10561 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
10562 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
10563 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
10564 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
10565 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
10566 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
10567 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
10568 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
10569 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
10570 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
10571 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
10572 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
10573 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
10574 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
10575 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
10576 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
10577 360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
10578 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
10579 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
10580 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
10581 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
10582 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
10583 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
10584 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
10585 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
10586 450, 451, 3, -1, -1, -1, -1, -1, -1, -1,
10587 -1, -1, -1, -1, -1, -1, -1, 18, 19, 20,
10588 21, 22, 23, 24, 25, -1, 27, 28, 29, -1,
10589 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
10590 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
10591 51, -1, 53, 54, 55, 56, 57, -1, 59, 60,
10592 61, 62, 63, 64, -1, 66, 67, 68, 69, 70,
10593 -1, 72, -1, 74, 75, 76, 77, 78, 79, 80,
10594 81, 82, -1, 84, 85, 86, 87, 88, 89, -1,
10595 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
10596 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
10597 -1, 112, -1, 114, 115, 116, 117, 118, 119, -1,
10598 121, 122, 123, 124, 125, -1, -1, 128, 129, 130,
10599 131, 132, -1, 134, 135, 136, -1, 138, 139, 140,
10600 -1, 142, 143, 144, 145, 146, 147, 148, 149, 150,
10601 -1, 152, -1, 154, 155, 156, 157, -1, 159, -1,
10602 161, 162, -1, 164, 165, 166, 167, 168, -1, 170,
10603 171, -1, 173, 174, -1, 176, 177, 178, 179, 180,
10604 181, 182, 183, 184, 185, -1, 187, 188, 189, 190,
10605 191, 192, -1, 194, 195, 196, 197, 198, 199, 200,
10606 201, 202, -1, 204, -1, 206, 207, 208, 209, 210,
10607 211, 212, 213, 214, 215, -1, -1, 218, 219, 220,
10608 221, 222, -1, 224, 225, 226, 227, 228, 229, 230,
10609 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
10610 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
10611 251, -1, 253, 254, 255, 256, -1, 258, 259, 260,
10612 261, 262, 263, -1, 265, 266, -1, -1, 269, 270,
10613 271, -1, -1, 274, 275, 276, 277, 278, 279, 280,
10614 281, 282, 283, 284, 285, 286, 287, 288, -1, 290,
10615 291, 292, 293, 294, 295, 296, 297, 298, -1, 300,
10616 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
10617 311, 312, 313, -1, 315, 316, 317, 318, 319, 320,
10618 321, 322, 323, 324, 325, 326, -1, 328, 329, 330,
10619 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
10620 341, 342, 343, -1, 345, 346, 347, 348, 349, 350,
10621 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
10622 -1, 362, 363, 364, 365, 366, 367, 368, 369, 370,
10623 371, 372, 373, 374, -1, 376, 377, -1, 379, 380,
10624 381, 382, 383, 384, 385, -1, 387, 388, -1, -1,
10625 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
10626 401, 402, 403, -1, -1, 406, 407, 408, 409, 410,
10627 411, -1, 413, 414, 415, 416, 417, 418, 419, -1,
10628 421, 422, 423, 424, 425, 426, -1, -1, 429, -1,
10629 -1, 432, 433, 434, 435, 436, 437, 438, 439, 440,
10630 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
10631 451, 3, -1, 5, -1, -1, -1, -1, -1, -1,
10632 -1, -1, -1, -1, -1, -1, 18, 19, 20, 21,
10633 22, 23, 24, 25, -1, 27, 28, 29, -1, -1,
10634 -1, -1, -1, -1, -1, 37, 38, -1, 40, 41,
10635 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
10636 -1, 53, 54, 55, 56, 57, -1, -1, 60, 61,
10637 62, 63, 64, -1, 66, 67, 68, 69, 70, -1,
10638 72, -1, 74, 75, 76, 77, 78, 79, 80, 81,
10639 82, -1, 84, 85, 86, 87, 88, 89, -1, 91,
10640 92, 93, 94, -1, -1, -1, 98, -1, -1, -1,
10641 102, 103, 104, 105, 106, 107, 108, 109, 110, -1,
10642 112, -1, 114, 115, 116, 117, 118, 119, -1, 121,
10643 122, 123, 124, 125, -1, -1, 128, 129, 130, 131,
10644 132, -1, 134, 135, 136, -1, 138, 139, 140, -1,
10645 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
10646 152, -1, 154, 155, 156, 157, -1, 159, -1, 161,
10647 162, -1, 164, 165, 166, 167, 168, -1, 170, 171,
10648 -1, 173, 174, -1, 176, 177, 178, 179, 180, 181,
10649 182, 183, 184, 185, -1, 187, 188, 189, 190, 191,
10650 192, -1, 194, 195, 196, 197, 198, 199, 200, 201,
10651 202, -1, 204, -1, 206, 207, 208, 209, 210, 211,
10652 212, 213, 214, 215, -1, -1, 218, 219, 220, 221,
10653 222, -1, 224, 225, 226, -1, -1, 229, 230, 231,
10654 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
10655 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
10656 -1, 253, 254, 255, 256, -1, 258, 259, 260, 261,
10657 262, 263, -1, 265, 266, 267, -1, 269, 270, 271,
10658 -1, -1, 274, 275, 276, 277, 278, 279, 280, 281,
10659 282, 283, 284, 285, 286, 287, 288, -1, 290, 291,
10660 292, 293, 294, 295, 296, 297, 298, -1, 300, 301,
10661 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
10662 312, 313, -1, 315, 316, 317, 318, 319, 320, 321,
10663 322, 323, 324, 325, 326, -1, 328, 329, 330, 331,
10664 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
10665 342, 343, -1, 345, 346, 347, 348, 349, -1, 351,
10666 352, 353, 354, 355, 356, 357, 358, 359, 360, -1,
10667 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
10668 372, 373, 374, -1, 376, 377, -1, 379, 380, 381,
10669 382, 383, 384, 385, -1, 387, 388, -1, -1, 391,
10670 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
10671 402, 403, -1, -1, 406, 407, 408, 409, 410, -1,
10672 -1, 413, 414, 415, 416, 417, 418, 419, -1, 421,
10673 422, 423, 424, 425, 426, -1, -1, 429, -1, -1,
10674 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
10675 442, 443, 444, 445, 446, 447, 448, 449, 450, 451,
10676 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10677 -1, -1, -1, -1, -1, 18, 19, 20, 21, 22,
10678 23, 24, 25, -1, 27, 28, 29, 30, 31, -1,
10679 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
10680 43, 44, 45, 46, 47, 48, 49, 50, 51, -1,
10681 53, 54, 55, 56, 57, -1, -1, 60, 61, 62,
10682 63, 64, -1, 66, 67, 68, 69, 70, -1, 72,
10683 -1, 74, 75, 76, 77, 78, 79, 80, 81, 82,
10684 -1, 84, 85, 86, 87, 88, 89, -1, 91, 92,
10685 93, 94, -1, -1, -1, 98, -1, -1, -1, 102,
10686 103, 104, 105, 106, 107, 108, 109, 110, -1, 112,
10687 -1, 114, 115, 116, 117, 118, 119, -1, 121, 122,
10688 123, 124, 125, -1, -1, 128, 129, 130, 131, 132,
10689 -1, 134, 135, 136, -1, 138, 139, 140, -1, 142,
10690 143, 144, 145, 146, 147, 148, 149, 150, -1, 152,
10691 -1, 154, 155, 156, 157, -1, 159, -1, 161, 162,
10692 -1, 164, 165, 166, 167, 168, -1, 170, 171, -1,
10693 173, 174, -1, 176, 177, 178, 179, 180, 181, 182,
10694 183, 184, 185, -1, 187, 188, 189, 190, 191, 192,
10695 -1, 194, 195, 196, 197, 198, 199, 200, 201, 202,
10696 -1, 204, -1, 206, 207, 208, 209, 210, 211, 212,
10697 213, 214, 215, -1, -1, 218, 219, 220, 221, 222,
10698 -1, 224, 225, 226, -1, -1, 229, 230, 231, 232,
10699 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
10700 243, 244, 245, 246, 247, 248, 249, 250, 251, -1,
10701 253, 254, 255, 256, -1, 258, 259, 260, 261, 262,
10702 263, -1, 265, 266, -1, -1, 269, 270, 271, -1,
10703 -1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
10704 283, 284, 285, 286, 287, 288, -1, 290, 291, 292,
10705 293, 294, 295, 296, 297, 298, -1, 300, 301, 302,
10706 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
10707 313, -1, 315, 316, 317, 318, 319, 320, 321, 322,
10708 323, 324, 325, 326, -1, 328, 329, 330, 331, 332,
10709 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
10710 343, -1, 345, 346, 347, 348, 349, -1, 351, 352,
10711 353, 354, 355, 356, 357, 358, 359, 360, -1, 362,
10712 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
10713 373, 374, -1, 376, 377, -1, 379, 380, 381, 382,
10714 383, 384, 385, -1, 387, 388, -1, -1, 391, 392,
10715 393, 394, 395, -1, 397, 398, 399, 400, 401, 402,
10716 403, -1, -1, 406, 407, 408, 409, 410, -1, -1,
10717 413, 414, 415, 416, 417, 418, 419, -1, 421, 422,
10718 423, 424, 425, 426, -1, -1, 429, -1, -1, 432,
10719 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
10720 443, 444, 445, 446, 447, 448, 449, 450, 451, 3,
10721 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10722 -1, -1, -1, -1, 18, 19, 20, 21, 22, 23,
10723 24, 25, -1, 27, 28, 29, -1, -1, -1, -1,
10724 -1, -1, -1, 37, 38, -1, 40, 41, 42, 43,
10725 44, 45, 46, 47, 48, 49, 50, 51, -1, 53,
10726 54, 55, 56, 57, -1, -1, 60, 61, 62, 63,
10727 64, -1, 66, 67, 68, 69, 70, -1, 72, -1,
10728 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
10729 84, 85, 86, 87, 88, 89, -1, 91, 92, 93,
10730 94, -1, -1, -1, 98, -1, -1, -1, 102, 103,
10731 104, 105, 106, 107, 108, 109, 110, -1, 112, -1,
10732 114, 115, 116, 117, 118, 119, -1, 121, 122, 123,
10733 124, 125, -1, -1, 128, 129, 130, 131, 132, -1,
10734 134, 135, 136, -1, 138, 139, 140, -1, 142, 143,
10735 144, 145, 146, 147, 148, 149, 150, -1, 152, -1,
10736 154, 155, 156, 157, -1, 159, -1, 161, 162, -1,
10737 164, 165, 166, 167, 168, -1, 170, 171, -1, 173,
10738 174, -1, 176, 177, 178, 179, 180, 181, 182, 183,
10739 184, 185, -1, 187, 188, 189, 190, 191, 192, -1,
10740 194, 195, 196, 197, 198, 199, 200, 201, 202, -1,
10741 204, -1, 206, 207, 208, 209, 210, 211, 212, 213,
10742 214, 215, -1, -1, 218, 219, 220, 221, 222, -1,
10743 224, 225, 226, -1, -1, 229, 230, 231, 232, 233,
10744 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
10745 244, 245, 246, 247, 248, 249, 250, 251, -1, 253,
10746 254, 255, 256, -1, 258, 259, 260, 261, 262, 263,
10747 -1, 265, 266, -1, -1, 269, 270, 271, -1, -1,
10748 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
10749 284, 285, 286, 287, 288, -1, 290, 291, 292, 293,
10750 294, 295, 296, 297, 298, -1, 300, 301, 302, 303,
10751 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
10752 -1, 315, 316, 317, 318, 319, 320, 321, 322, 323,
10753 324, 325, 326, -1, 328, 329, 330, 331, 332, 333,
10754 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
10755 -1, 345, 346, 347, 348, 349, -1, 351, 352, 353,
10756 354, 355, 356, 357, 358, 359, 360, -1, 362, 363,
10757 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
10758 374, -1, 376, 377, -1, 379, 380, 381, 382, 383,
10759 384, 385, -1, 387, 388, -1, -1, 391, 392, 393,
10760 394, 395, -1, 397, 398, 399, 400, 401, 402, 403,
10761 -1, -1, 406, 407, 408, 409, 410, -1, -1, 413,
10762 414, 415, 416, 417, 418, 419, -1, 421, 422, 423,
10763 424, 425, 426, -1, -1, 429, -1, -1, 432, 433,
10764 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
10765 444, 445, 446, 447, 448, 449, 450, 451, 3, -1,
10766 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10767 -1, -1, -1, 18, 19, 20, 21, 22, 23, 24,
10768 25, -1, 27, 28, 29, -1, -1, -1, -1, -1,
10769 -1, -1, 37, 38, -1, 40, 41, 42, -1, 44,
10770 45, 46, 47, 48, -1, 50, 51, -1, 53, 54,
10771 55, 56, 57, -1, -1, 60, 61, 62, 63, 64,
10772 65, 66, 67, 68, 69, 70, -1, -1, 73, 74,
10773 75, 76, 77, 78, -1, 80, 81, 82, 83, 84,
10774 85, 86, 87, 88, 89, -1, -1, 92, 93, 94,
10775 -1, -1, -1, -1, -1, -1, -1, 102, 103, 104,
10776 105, 106, 107, 108, 109, 110, -1, 112, -1, 114,
10777 115, 116, 117, 118, 119, -1, 121, 122, 123, 124,
10778 125, -1, -1, 128, 129, 130, 131, 132, -1, 134,
10779 135, 136, -1, 138, 139, 140, -1, 142, 143, 144,
10780 145, 146, 147, 148, 149, 150, -1, 152, -1, 154,
10781 155, 156, 157, -1, 159, 160, 161, -1, -1, -1,
10782 165, 166, 167, 168, -1, 170, 171, -1, 173, 174,
10783 -1, 176, 177, 178, 179, 180, -1, 182, 183, 184,
10784 185, -1, 187, 188, 189, 190, 191, 192, -1, 194,
10785 -1, 196, 197, 198, 199, 200, 201, 202, -1, 204,
10786 -1, 206, -1, -1, 209, -1, 211, 212, 213, 214,
10787 215, -1, -1, 218, 219, -1, 221, -1, -1, 224,
10788 225, 226, -1, -1, 229, 230, 231, 232, 233, 234,
10789 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
10790 245, -1, 247, 248, 249, 250, 251, -1, 253, 254,
10791 -1, 256, -1, 258, 259, 260, 261, 262, 263, -1,
10792 265, 266, -1, -1, 269, 270, 271, -1, -1, 274,
10793 275, -1, 277, -1, 279, 280, 281, 282, 283, 284,
10794 285, 286, 287, 288, -1, 290, 291, 292, 293, 294,
10795 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
10796 305, 306, 307, 308, 309, 310, 311, 312, 313, -1,
10797 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
10798 325, 326, -1, 328, 329, -1, 331, 332, 333, 334,
10799 335, 336, 337, 338, 339, 340, 341, 342, 343, -1,
10800 345, 346, 347, 348, 349, -1, 351, 352, 353, 354,
10801 355, -1, 357, 358, 359, 360, -1, 362, 363, 364,
10802 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
10803 -1, 376, 377, -1, 379, -1, 381, 382, 383, 384,
10804 385, -1, 387, 388, -1, -1, 391, 392, 393, 394,
10805 395, -1, 397, 398, 399, 400, 401, 402, 403, -1,
10806 405, 406, 407, 408, 409, 410, -1, -1, 413, 414,
10807 415, 416, 417, 418, 419, -1, 421, -1, 423, 424,
10808 425, 426, -1, -1, 429, -1, -1, 432, 433, 434,
10809 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
10810 445, 446, 447, 448, 449, 450, 451, 3, -1, -1,
10811 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10812 -1, -1, 18, 19, 20, 21, 22, 23, 24, 25,
10813 -1, 27, 28, 29, -1, -1, -1, -1, -1, -1,
10814 -1, 37, 38, -1, 40, 41, 42, -1, 44, 45,
10815 46, 47, 48, -1, 50, 51, -1, 53, 54, 55,
10816 56, 57, -1, -1, 60, 61, 62, 63, 64, 65,
10817 66, 67, 68, 69, 70, -1, -1, -1, 74, 75,
10818 76, 77, 78, -1, 80, 81, 82, 83, 84, 85,
10819 86, 87, 88, 89, -1, -1, 92, 93, 94, -1,
10820 -1, -1, -1, -1, -1, -1, 102, 103, 104, 105,
10821 106, 107, 108, 109, 110, -1, 112, -1, 114, 115,
10822 116, 117, 118, 119, -1, 121, 122, 123, 124, 125,
10823 -1, -1, 128, 129, 130, 131, 132, -1, 134, 135,
10824 136, -1, 138, 139, 140, -1, 142, 143, 144, 145,
10825 146, 147, 148, 149, 150, -1, 152, -1, 154, 155,
10826 156, 157, -1, 159, 160, 161, -1, -1, -1, 165,
10827 166, 167, 168, -1, 170, 171, -1, 173, 174, -1,
10828 176, 177, 178, 179, 180, -1, 182, 183, 184, 185,
10829 -1, 187, 188, 189, 190, 191, 192, -1, 194, -1,
10830 196, 197, 198, 199, 200, 201, 202, -1, 204, -1,
10831 206, -1, -1, 209, -1, 211, 212, 213, 214, 215,
10832 -1, -1, 218, 219, -1, 221, 222, -1, 224, 225,
10833 226, -1, -1, 229, 230, 231, 232, 233, 234, 235,
10834 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
10835 -1, 247, 248, 249, 250, 251, -1, 253, 254, -1,
10836 256, -1, 258, 259, 260, 261, 262, 263, -1, 265,
10837 266, -1, -1, 269, 270, 271, -1, -1, 274, 275,
10838 -1, 277, -1, 279, 280, 281, 282, 283, 284, 285,
10839 286, 287, 288, -1, 290, 291, 292, 293, 294, 295,
10840 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
10841 306, 307, 308, 309, 310, 311, 312, 313, -1, 315,
10842 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
10843 326, -1, 328, 329, -1, 331, 332, 333, 334, 335,
10844 336, 337, 338, 339, 340, 341, 342, 343, -1, 345,
10845 346, 347, 348, 349, -1, 351, 352, 353, 354, 355,
10846 -1, 357, 358, 359, 360, -1, 362, 363, 364, 365,
10847 366, 367, 368, 369, 370, 371, 372, 373, 374, -1,
10848 376, 377, -1, 379, -1, 381, 382, 383, 384, 385,
10849 -1, 387, 388, -1, -1, 391, 392, 393, 394, 395,
10850 -1, 397, 398, 399, 400, 401, 402, 403, -1, 405,
10851 406, 407, 408, 409, 410, -1, -1, 413, 414, 415,
10852 416, 417, 418, 419, -1, 421, -1, 423, 424, 425,
10853 426, -1, -1, 429, -1, -1, 432, 433, 434, 435,
10854 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
10855 446, 447, 448, 449, 450, 451, 3, -1, -1, -1,
10856 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10857 -1, 18, 19, 20, 21, 22, 23, 24, 25, -1,
10858 27, 28, 29, 30, 31, -1, -1, -1, -1, -1,
10859 37, 38, -1, 40, 41, 42, -1, 44, 45, 46,
10860 47, 48, -1, 50, 51, -1, 53, 54, 55, 56,
10861 57, -1, -1, 60, 61, 62, 63, 64, -1, 66,
10862 67, 68, 69, 70, -1, -1, -1, 74, 75, 76,
10863 77, 78, -1, 80, 81, 82, -1, 84, 85, 86,
10864 87, 88, 89, -1, -1, 92, 93, 94, -1, -1,
10865 -1, -1, -1, -1, -1, 102, 103, 104, 105, 106,
10866 107, 108, 109, 110, -1, 112, -1, 114, 115, 116,
10867 117, 118, 119, -1, 121, 122, 123, 124, 125, -1,
10868 -1, 128, 129, 130, 131, 132, -1, 134, 135, 136,
10869 -1, 138, 139, 140, -1, 142, 143, 144, 145, 146,
10870 147, 148, 149, 150, -1, 152, -1, 154, 155, 156,
10871 157, -1, 159, -1, 161, -1, -1, -1, 165, 166,
10872 167, 168, -1, 170, 171, -1, 173, 174, -1, 176,
10873 177, 178, 179, 180, -1, 182, 183, 184, 185, -1,
10874 187, 188, 189, 190, 191, 192, -1, 194, -1, 196,
10875 197, 198, 199, 200, 201, 202, -1, 204, -1, 206,
10876 -1, -1, 209, -1, 211, 212, 213, 214, 215, -1,
10877 -1, 218, 219, -1, 221, -1, -1, 224, 225, 226,
10878 -1, -1, 229, 230, 231, 232, 233, 234, 235, 236,
10879 237, 238, 239, 240, 241, 242, 243, 244, 245, -1,
10880 247, 248, 249, 250, 251, -1, 253, 254, -1, 256,
10881 -1, 258, 259, 260, 261, 262, 263, -1, 265, 266,
10882 -1, -1, 269, 270, 271, -1, -1, 274, 275, -1,
10883 277, -1, 279, 280, 281, 282, 283, 284, 285, 286,
10884 287, 288, -1, 290, 291, 292, 293, 294, 295, 296,
10885 297, 298, -1, 300, 301, 302, 303, 304, 305, 306,
10886 307, 308, 309, 310, 311, 312, 313, -1, 315, 316,
10887 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
10888 -1, 328, 329, -1, 331, 332, 333, 334, 335, 336,
10889 337, 338, 339, 340, 341, 342, 343, -1, 345, 346,
10890 347, 348, 349, -1, 351, 352, 353, 354, 355, -1,
10891 357, 358, 359, 360, -1, 362, 363, 364, 365, 366,
10892 367, 368, 369, 370, 371, 372, 373, 374, -1, 376,
10893 377, -1, 379, -1, 381, 382, 383, 384, 385, -1,
10894 387, 388, -1, -1, 391, 392, 393, 394, 395, -1,
10895 397, 398, 399, 400, 401, 402, 403, -1, -1, 406,
10896 407, 408, 409, 410, -1, -1, 413, 414, 415, 416,
10897 417, 418, 419, -1, 421, -1, 423, 424, 425, 426,
10898 -1, -1, 429, -1, -1, 432, 433, 434, 435, 436,
10899 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
10900 447, 448, 449, 450, 451, 3, -1, -1, -1, -1,
10901 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
10902 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
10903 28, 29, -1, -1, -1, -1, -1, -1, -1, 37,
10904 38, -1, 40, 41, 42, -1, 44, 45, 46, 47,
10905 48, -1, 50, 51, -1, 53, 54, 55, 56, 57,
10906 -1, -1, 60, 61, 62, 63, 64, -1, 66, 67,
10907 68, 69, 70, -1, -1, -1, 74, 75, 76, 77,
10908 78, -1, 80, 81, 82, -1, 84, 85, 86, 87,
10909 88, 89, -1, -1, 92, 93, 94, -1, -1, -1,
10910 -1, -1, -1, -1, 102, 103, 104, 105, 106, 107,
10911 108, 109, 110, -1, 112, -1, 114, 115, 116, 117,
10912 118, 119, -1, 121, 122, 123, 124, 125, -1, -1,
10913 128, 129, 130, 131, 132, -1, 134, 135, 136, -1,
10914 138, 139, 140, -1, 142, 143, 144, 145, 146, 147,
10915 148, 149, 150, -1, 152, -1, 154, 155, 156, 157,
10916 -1, 159, -1, 161, -1, -1, -1, 165, 166, 167,
10917 168, -1, 170, 171, -1, 173, 174, -1, 176, 177,
10918 178, 179, 180, -1, 182, 183, 184, 185, -1, 187,
10919 188, 189, 190, 191, 192, -1, 194, -1, 196, 197,
10920 198, 199, 200, 201, 202, -1, 204, -1, 206, -1,
10921 -1, 209, -1, 211, 212, 213, 214, 215, -1, -1,
10922 218, 219, -1, 221, -1, -1, 224, 225, 226, -1,
10923 -1, 229, 230, 231, 232, 233, 234, 235, 236, 237,
10924 238, 239, 240, 241, 242, 243, 244, 245, -1, 247,
10925 248, 249, 250, 251, -1, 253, 254, -1, 256, -1,
10926 258, 259, 260, 261, 262, 263, -1, 265, 266, -1,
10927 -1, 269, 270, 271, -1, -1, 274, 275, -1, 277,
10928 -1, 279, 280, 281, 282, 283, 284, 285, 286, 287,
10929 288, -1, 290, 291, 292, 293, 294, 295, 296, 297,
10930 298, -1, 300, 301, 302, 303, 304, 305, 306, 307,
10931 308, 309, 310, 311, 312, 313, -1, 315, 316, 317,
10932 318, 319, 320, 321, 322, 323, 324, 325, 326, -1,
10933 328, 329, -1, 331, 332, 333, 334, 335, 336, 337,
10934 338, 339, 340, 341, 342, 343, -1, 345, 346, 347,
10935 348, 349, -1, 351, 352, 353, 354, 355, -1, 357,
10936 358, 359, 360, -1, 362, 363, 364, 365, 366, 367,
10937 368, 369, 370, 371, 372, 373, 374, -1, 376, 377,
10938 -1, 379, -1, 381, 382, 383, 384, 385, -1, 387,
10939 388, -1, -1, 391, 392, 393, 394, 395, -1, 397,
10940 398, 399, 400, 401, 402, 403, -1, -1, 406, 407,
10941 408, 409, 410, -1, -1, 413, 414, 415, 416, 417,
10942 418, 419, -1, 421, -1, 423, 424, 425, 426, -1,
10943 -1, 429, -1, -1, 432, 433, 434, 435, 436, 437,
10944 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
10945 448, 449, 450, 451, 3, -1, -1, -1, -1, -1,
10946 -1, -1, -1, -1, -1, -1, -1, -1, -1, 18,
10947 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
10948 29, -1, -1, -1, -1, -1, -1, -1, 37, 38,
10949 -1, 40, 41, 42, -1, 44, 45, 46, 47, 48,
10950 -1, 50, 51, -1, 53, 54, 55, 56, 57, -1,
10951 -1, 60, 61, 62, 63, 64, -1, 66, 67, 68,
10952 69, 70, -1, -1, -1, 74, 75, 76, 77, 78,
10953 -1, 80, 81, 82, -1, 84, 85, 86, 87, 88,
10954 89, -1, -1, 92, 93, 94, -1, -1, -1, -1,
10955 -1, -1, -1, 102, 103, 104, 105, 106, 107, 108,
10956 109, 110, -1, 112, -1, 114, 115, 116, 117, 118,
10957 119, -1, 121, 122, 123, 124, 125, -1, -1, 128,
10958 129, 130, 131, 132, -1, 134, 135, 136, -1, 138,
10959 139, 140, -1, 142, 143, 144, 145, 146, 147, 148,
10960 149, 150, -1, 152, -1, 154, 155, 156, 157, -1,
10961 159, -1, 161, -1, -1, -1, 165, 166, 167, 168,
10962 -1, 170, 171, -1, 173, 174, -1, 176, 177, 178,
10963 179, 180, -1, 182, 183, 184, 185, -1, 187, 188,
10964 189, 190, 191, 192, -1, 194, -1, 196, 197, 198,
10965 199, 200, 201, 202, -1, 204, -1, 206, -1, -1,
10966 209, -1, 211, 212, 213, 214, 215, -1, -1, 218,
10967 219, -1, 221, -1, -1, 224, 225, 226, -1, -1,
10968 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
10969 239, 240, 241, 242, 243, 244, 245, -1, 247, 248,
10970 249, 250, 251, -1, 253, 254, -1, 256, -1, 258,
10971 259, 260, 261, 262, 263, -1, 265, 266, -1, -1,
10972 269, 270, 271, -1, -1, 274, 275, -1, 277, -1,
10973 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
10974 -1, 290, 291, 292, 293, 294, 295, 296, 297, 298,
10975 -1, 300, 301, 302, 303, 304, 305, 306, 307, 308,
10976 309, 310, 311, 312, 313, -1, 315, 316, 317, 318,
10977 319, 320, 321, 322, 323, 324, 325, 326, -1, 328,
10978 329, -1, 331, 332, 333, 334, 335, 336, 337, 338,
10979 339, 340, 341, 342, 343, -1, 345, 346, 347, 348,
10980 349, -1, 351, 352, 353, 354, 355, -1, 357, 358,
10981 359, 360, -1, 362, 363, 364, 365, 366, 367, 368,
10982 369, 370, 371, 372, 373, 374, -1, 376, 377, -1,
10983 379, -1, 381, 382, 383, 384, 385, -1, 387, 388,
10984 -1, -1, 391, 392, 393, 394, 395, -1, 397, 398,
10985 399, 400, 401, 402, 403, -1, -1, 406, 407, 408,
10986 409, 410, -1, -1, 413, 414, 415, 416, 417, 418,
10987 419, -1, 421, -1, 423, 424, 425, 426, -1, -1,
10988 429, -1, -1, 432, 433, 434, 435, 436, 437, 438,
10989 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
10990 449, 450, 451, 3, -1, -1, -1, -1, -1, -1,
10991 -1, -1, -1, -1, -1, -1, -1, -1, 18, 19,
10992 20, 21, 22, 23, 24, 25, -1, 27, 28, 29,
10993 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
10994 40, 41, 42, -1, 44, 45, 46, 47, 48, -1,
10995 50, 51, -1, 53, 54, 55, 56, 57, -1, -1,
10996 60, 61, 62, 63, 64, -1, 66, 67, 68, 69,
10997 70, -1, -1, -1, 74, 75, 76, 77, 78, -1,
10998 80, 81, 82, -1, 84, 85, 86, 87, 88, 89,
10999 -1, -1, 92, 93, 94, -1, -1, -1, -1, -1,
11000 -1, -1, 102, 103, 104, 105, 106, 107, 108, 109,
11001 110, -1, 112, -1, 114, 115, 116, 117, 118, 119,
11002 -1, 121, 122, 123, 124, 125, -1, -1, 128, 129,
11003 130, 131, 132, -1, 134, 135, 136, -1, 138, 139,
11004 140, -1, 142, 143, 144, 145, 146, 147, 148, 149,
11005 150, -1, 152, -1, 154, 155, 156, 157, -1, 159,
11006 -1, 161, -1, -1, -1, 165, 166, 167, 168, -1,
11007 170, 171, -1, 173, 174, -1, 176, 177, 178, 179,
11008 180, -1, 182, 183, 184, 185, -1, 187, 188, 189,
11009 190, 191, 192, -1, 194, -1, 196, 197, 198, 199,
11010 200, 201, 202, -1, 204, -1, 206, -1, -1, 209,
11011 -1, 211, 212, 213, 214, 215, -1, -1, 218, 219,
11012 -1, 221, -1, -1, 224, 225, 226, -1, -1, 229,
11013 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
11014 240, 241, 242, 243, 244, 245, -1, 247, 248, 249,
11015 250, 251, -1, 253, 254, -1, 256, -1, 258, 259,
11016 260, 261, 262, 263, -1, 265, 266, -1, 268, 269,
11017 270, 271, -1, -1, 274, 275, -1, 277, -1, 279,
11018 280, 281, 282, 283, 284, 285, 286, 287, 288, -1,
11019 290, 291, 292, 293, 294, 295, 296, 297, 298, -1,
11020 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
11021 310, 311, 312, 313, -1, 315, 316, 317, 318, 319,
11022 320, 321, 322, 323, 324, 325, 326, -1, 328, 329,
11023 -1, 331, 332, 333, 334, 335, 336, 337, 338, 339,
11024 340, 341, 342, 343, -1, 345, 346, 347, 348, 349,
11025 -1, 351, 352, 353, 354, 355, -1, 357, 358, 359,
11026 360, -1, 362, 363, 364, 365, 366, 367, 368, 369,
11027 370, 371, 372, 373, 374, -1, 376, 377, -1, 379,
11028 -1, 381, 382, 383, 384, 385, -1, 387, 388, -1,
11029 -1, 391, 392, 393, 394, 395, -1, 397, 398, 399,
11030 400, 401, 402, 403, -1, -1, 406, 407, 408, 409,
11031 410, -1, -1, 413, 414, 415, 416, 417, 418, 419,
11032 -1, 421, -1, 423, 424, 425, 426, -1, -1, 429,
11033 -1, -1, 432, 433, 434, 435, 436, 437, 438, 439,
11034 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
11035 450, 451, 3, -1, -1, -1, -1, -1, -1, -1,
11036 -1, -1, -1, -1, -1, -1, -1, 18, 19, 20,
11037 21, 22, 23, 24, 25, 26, 27, 28, 29, -1,
11038 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
11039 41, 42, -1, 44, 45, 46, 47, 48, -1, 50,
11040 51, -1, 53, 54, 55, 56, 57, -1, -1, 60,
11041 61, 62, 63, 64, -1, 66, 67, 68, 69, 70,
11042 -1, -1, -1, 74, 75, 76, 77, 78, -1, 80,
11043 81, 82, -1, 84, 85, 86, 87, 88, 89, -1,
11044 -1, 92, 93, 94, -1, -1, -1, -1, -1, -1,
11045 -1, 102, 103, 104, 105, 106, 107, 108, 109, 110,
11046 -1, 112, -1, 114, 115, 116, 117, 118, 119, -1,
11047 121, 122, 123, 124, 125, -1, -1, 128, 129, 130,
11048 131, 132, -1, 134, 135, 136, -1, 138, 139, 140,
11049 -1, 142, 143, 144, 145, 146, 147, 148, 149, 150,
11050 -1, 152, -1, 154, 155, 156, 157, -1, 159, -1,
11051 161, -1, -1, -1, 165, 166, 167, 168, -1, 170,
11052 171, -1, 173, 174, -1, 176, 177, 178, 179, 180,
11053 -1, 182, 183, 184, 185, -1, 187, 188, 189, 190,
11054 191, 192, -1, 194, -1, 196, 197, 198, 199, 200,
11055 201, 202, -1, 204, -1, 206, -1, -1, 209, -1,
11056 211, 212, 213, 214, 215, -1, -1, 218, 219, -1,
11057 221, -1, -1, 224, 225, 226, -1, -1, 229, 230,
11058 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
11059 241, 242, 243, 244, 245, -1, 247, 248, 249, 250,
11060 251, -1, 253, 254, -1, 256, -1, 258, 259, 260,
11061 261, 262, 263, -1, 265, 266, -1, -1, 269, 270,
11062 271, -1, -1, 274, 275, -1, 277, -1, 279, 280,
11063 281, 282, 283, 284, 285, 286, 287, 288, -1, 290,
11064 291, 292, 293, 294, 295, 296, 297, 298, -1, 300,
11065 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
11066 311, 312, 313, -1, 315, 316, 317, 318, 319, 320,
11067 321, 322, 323, 324, 325, 326, -1, 328, 329, -1,
11068 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
11069 341, 342, 343, -1, 345, 346, 347, 348, 349, -1,
11070 351, 352, 353, 354, 355, -1, 357, 358, 359, 360,
11071 -1, 362, 363, 364, 365, 366, 367, 368, 369, 370,
11072 371, 372, 373, 374, -1, 376, 377, -1, 379, -1,
11073 381, 382, 383, 384, 385, -1, 387, 388, -1, -1,
11074 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
11075 401, 402, 403, -1, -1, 406, 407, 408, 409, 410,
11076 -1, -1, 413, 414, 415, 416, 417, 418, 419, -1,
11077 421, -1, 423, 424, 425, 426, -1, -1, 429, -1,
11078 -1, 432, 433, 434, 435, 436, 437, 438, 439, 440,
11079 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
11080 451, 3, -1, -1, -1, -1, -1, -1, -1, -1,
11081 -1, -1, -1, -1, -1, -1, 18, 19, 20, 21,
11082 22, 23, 24, 25, -1, 27, 28, 29, -1, -1,
11083 -1, -1, -1, -1, -1, 37, 38, -1, 40, 41,
11084 42, -1, 44, 45, 46, 47, 48, -1, 50, 51,
11085 -1, 53, 54, 55, 56, 57, -1, -1, 60, 61,
11086 62, 63, 64, -1, 66, 67, 68, 69, 70, -1,
11087 -1, -1, 74, 75, 76, 77, 78, -1, 80, 81,
11088 82, -1, 84, 85, 86, 87, 88, 89, -1, -1,
11089 92, 93, 94, -1, -1, -1, -1, -1, -1, -1,
11090 102, 103, 104, 105, 106, 107, 108, 109, 110, -1,
11091 112, -1, 114, 115, 116, 117, 118, 119, -1, 121,
11092 122, 123, 124, 125, -1, -1, 128, 129, 130, 131,
11093 132, -1, 134, 135, 136, -1, 138, 139, 140, -1,
11094 142, 143, 144, 145, 146, 147, 148, 149, 150, -1,
11095 152, -1, 154, 155, 156, 157, -1, 159, -1, 161,
11096 -1, -1, -1, 165, 166, 167, 168, -1, 170, 171,
11097 -1, 173, 174, -1, 176, 177, 178, 179, 180, -1,
11098 182, 183, 184, 185, -1, 187, 188, 189, 190, 191,
11099 192, -1, 194, -1, 196, 197, 198, 199, 200, 201,
11100 202, -1, 204, -1, 206, -1, -1, 209, -1, 211,
11101 212, 213, 214, 215, -1, -1, 218, 219, -1, 221,
11102 -1, -1, 224, 225, 226, -1, -1, 229, 230, 231,
11103 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
11104 242, 243, 244, 245, -1, 247, 248, 249, 250, 251,
11105 -1, 253, 254, -1, 256, -1, 258, 259, 260, 261,
11106 262, 263, -1, 265, 266, -1, 268, 269, 270, 271,
11107 -1, -1, 274, 275, -1, 277, -1, 279, 280, 281,
11108 282, 283, 284, 285, 286, 287, 288, -1, 290, 291,
11109 292, 293, 294, 295, 296, 297, 298, -1, 300, 301,
11110 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
11111 312, 313, -1, 315, 316, 317, 318, 319, 320, 321,
11112 322, 323, 324, 325, 326, -1, 328, 329, -1, 331,
11113 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
11114 342, 343, -1, 345, 346, 347, 348, 349, -1, 351,
11115 352, 353, 354, 355, -1, 357, 358, 359, 360, -1,
11116 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
11117 372, 373, 374, -1, 376, 377, -1, 379, -1, 381,
11118 382, 383, 384, 385, -1, 387, 388, -1, -1, 391,
11119 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
11120 402, 403, -1, -1, 406, 407, 408, 409, 410, -1,
11121 -1, 413, 414, 415, 416, 417, 418, 419, -1, 421,
11122 -1, 423, 424, 425, 426, -1, -1, 429, -1, -1,
11123 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
11124 442, 443, 444, 445, 446, 447, 448, 449, 450, 451,
11125 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11126 -1, -1, -1, -1, -1, 18, 19, 20, 21, 22,
11127 23, 24, 25, 26, 27, 28, 29, -1, -1, -1,
11128 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
11129 -1, 44, 45, 46, 47, 48, -1, 50, 51, -1,
11130 53, 54, 55, 56, 57, -1, -1, 60, 61, 62,
11131 63, 64, -1, 66, 67, 68, 69, 70, -1, -1,
11132 -1, 74, 75, 76, 77, 78, -1, 80, 81, 82,
11133 -1, 84, 85, 86, 87, 88, 89, -1, -1, 92,
11134 93, 94, -1, -1, -1, -1, -1, -1, -1, 102,
11135 103, 104, 105, 106, 107, 108, 109, 110, -1, 112,
11136 -1, 114, 115, 116, 117, 118, 119, -1, 121, 122,
11137 123, 124, 125, -1, -1, 128, 129, 130, 131, 132,
11138 -1, 134, 135, 136, -1, 138, 139, 140, -1, 142,
11139 143, 144, 145, 146, 147, 148, 149, 150, -1, 152,
11140 -1, 154, 155, 156, 157, -1, 159, -1, 161, -1,
11141 -1, -1, 165, 166, 167, 168, -1, 170, 171, -1,
11142 173, 174, -1, 176, 177, 178, 179, 180, -1, 182,
11143 183, 184, 185, -1, 187, 188, 189, 190, 191, 192,
11144 -1, 194, -1, 196, 197, 198, 199, 200, 201, 202,
11145 -1, 204, -1, 206, -1, -1, 209, -1, 211, 212,
11146 213, 214, 215, -1, -1, 218, 219, -1, 221, -1,
11147 -1, 224, 225, 226, -1, -1, 229, 230, 231, 232,
11148 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
11149 243, 244, 245, -1, 247, 248, 249, 250, 251, -1,
11150 253, 254, -1, 256, -1, 258, 259, 260, 261, 262,
11151 263, -1, 265, 266, -1, -1, 269, 270, 271, -1,
11152 -1, 274, 275, -1, 277, -1, 279, 280, 281, 282,
11153 283, 284, 285, 286, 287, 288, -1, 290, 291, 292,
11154 293, 294, 295, 296, 297, 298, -1, 300, 301, 302,
11155 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
11156 313, -1, 315, 316, 317, 318, 319, 320, 321, 322,
11157 323, 324, 325, 326, -1, 328, 329, -1, 331, 332,
11158 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
11159 343, -1, 345, 346, 347, 348, 349, -1, 351, 352,
11160 353, 354, 355, -1, 357, 358, 359, 360, -1, 362,
11161 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
11162 373, 374, -1, 376, 377, -1, 379, -1, 381, 382,
11163 383, 384, 385, -1, 387, 388, -1, -1, 391, 392,
11164 393, 394, 395, -1, 397, 398, 399, 400, 401, 402,
11165 403, -1, -1, 406, 407, 408, 409, 410, -1, -1,
11166 413, 414, 415, 416, 417, 418, 419, -1, 421, -1,
11167 423, 424, 425, 426, -1, -1, 429, -1, -1, 432,
11168 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
11169 443, 444, 445, 446, 447, 448, 449, 450, 451, 3,
11170 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11171 -1, -1, -1, -1, 18, 19, 20, 21, 22, 23,
11172 24, 25, -1, 27, 28, 29, -1, -1, -1, -1,
11173 -1, -1, -1, 37, 38, -1, 40, 41, 42, -1,
11174 44, 45, 46, 47, 48, -1, 50, 51, -1, 53,
11175 54, 55, 56, 57, -1, -1, 60, 61, 62, 63,
11176 64, -1, 66, 67, 68, 69, 70, -1, -1, -1,
11177 74, 75, 76, 77, 78, -1, 80, 81, 82, -1,
11178 84, 85, 86, 87, 88, 89, -1, -1, 92, 93,
11179 94, -1, -1, -1, -1, -1, -1, -1, 102, 103,
11180 104, 105, 106, 107, 108, 109, 110, -1, 112, -1,
11181 114, 115, 116, 117, 118, 119, -1, 121, 122, 123,
11182 124, 125, -1, -1, 128, 129, 130, 131, 132, -1,
11183 134, 135, 136, -1, 138, 139, 140, -1, 142, 143,
11184 144, 145, 146, 147, 148, 149, 150, -1, 152, -1,
11185 154, 155, 156, 157, -1, 159, -1, 161, -1, -1,
11186 -1, 165, 166, 167, 168, -1, 170, 171, -1, 173,
11187 174, -1, 176, 177, 178, 179, 180, -1, 182, 183,
11188 184, 185, -1, 187, 188, 189, 190, 191, 192, -1,
11189 194, -1, 196, 197, 198, 199, 200, 201, 202, -1,
11190 204, -1, 206, -1, -1, 209, -1, 211, 212, 213,
11191 214, 215, -1, -1, 218, 219, -1, 221, -1, -1,
11192 224, 225, 226, -1, -1, 229, 230, 231, 232, 233,
11193 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
11194 244, 245, -1, 247, 248, 249, 250, 251, -1, 253,
11195 254, -1, 256, -1, 258, 259, 260, 261, 262, 263,
11196 -1, 265, 266, -1, -1, 269, 270, 271, -1, -1,
11197 274, 275, -1, 277, -1, 279, 280, 281, 282, 283,
11198 284, 285, 286, 287, 288, -1, 290, 291, 292, 293,
11199 294, 295, 296, 297, 298, -1, 300, 301, 302, 303,
11200 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
11201 -1, 315, 316, 317, 318, 319, 320, 321, 322, 323,
11202 324, 325, 326, -1, 328, 329, -1, 331, 332, 333,
11203 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
11204 -1, 345, 346, 347, 348, 349, -1, 351, 352, 353,
11205 354, 355, -1, 357, 358, 359, 360, -1, 362, 363,
11206 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
11207 374, -1, 376, 377, 378, 379, -1, 381, 382, 383,
11208 384, 385, -1, 387, 388, -1, -1, 391, 392, 393,
11209 394, 395, -1, 397, 398, 399, 400, 401, 402, 403,
11210 -1, -1, 406, 407, 408, 409, 410, -1, -1, 413,
11211 414, 415, 416, 417, 418, 419, -1, 421, -1, 423,
11212 424, 425, 426, -1, -1, 429, -1, -1, 432, 433,
11213 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
11214 444, 445, 446, 447, 448, 449, 450, 451, 3, -1,
11215 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11216 -1, -1, -1, 18, 19, 20, 21, 22, 23, 24,
11217 25, -1, 27, 28, 29, -1, -1, -1, -1, -1,
11218 35, -1, 37, 38, -1, 40, 41, 42, -1, 44,
11219 45, 46, 47, 48, -1, 50, 51, -1, 53, 54,
11220 55, 56, 57, -1, -1, 60, 61, 62, 63, 64,
11221 -1, 66, 67, 68, 69, 70, -1, -1, -1, 74,
11222 75, 76, 77, 78, -1, 80, 81, 82, -1, 84,
11223 85, 86, 87, 88, 89, -1, -1, 92, 93, 94,
11224 -1, -1, -1, -1, -1, -1, -1, 102, 103, 104,
11225 105, 106, 107, 108, 109, 110, -1, 112, -1, 114,
11226 115, 116, 117, 118, 119, -1, 121, 122, 123, 124,
11227 125, -1, -1, 128, 129, 130, 131, 132, -1, 134,
11228 135, 136, -1, 138, 139, 140, -1, 142, 143, 144,
11229 145, 146, 147, 148, 149, 150, -1, 152, -1, 154,
11230 155, 156, 157, -1, 159, -1, 161, -1, -1, -1,
11231 165, 166, 167, 168, -1, 170, 171, -1, 173, 174,
11232 -1, 176, 177, 178, 179, 180, -1, 182, 183, 184,
11233 185, -1, 187, 188, 189, 190, 191, 192, -1, 194,
11234 -1, 196, 197, 198, 199, 200, 201, 202, -1, 204,
11235 -1, 206, -1, -1, 209, -1, 211, 212, 213, 214,
11236 215, -1, -1, 218, 219, -1, 221, -1, -1, 224,
11237 225, 226, -1, -1, 229, 230, 231, 232, 233, 234,
11238 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
11239 245, -1, 247, 248, 249, 250, 251, -1, 253, 254,
11240 -1, 256, -1, 258, 259, 260, 261, 262, 263, -1,
11241 265, 266, -1, -1, 269, 270, 271, -1, -1, 274,
11242 275, -1, 277, -1, 279, 280, 281, 282, 283, 284,
11243 285, 286, 287, 288, -1, 290, 291, 292, 293, 294,
11244 295, 296, 297, 298, -1, 300, 301, 302, 303, 304,
11245 305, 306, 307, 308, 309, 310, 311, 312, 313, -1,
11246 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
11247 325, 326, -1, 328, 329, -1, 331, 332, 333, 334,
11248 335, 336, 337, 338, 339, 340, 341, 342, 343, -1,
11249 345, 346, 347, 348, 349, -1, 351, 352, 353, 354,
11250 355, -1, 357, 358, 359, 360, -1, 362, 363, 364,
11251 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
11252 -1, 376, 377, -1, 379, -1, 381, 382, 383, 384,
11253 385, -1, 387, 388, -1, -1, 391, 392, 393, 394,
11254 395, -1, 397, 398, 399, 400, 401, 402, 403, -1,
11255 -1, 406, 407, 408, 409, 410, -1, -1, 413, 414,
11256 415, 416, 417, 418, 419, -1, 421, -1, 423, 424,
11257 425, 426, -1, -1, 429, -1, -1, 432, 433, 434,
11258 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
11259 445, 446, 447, 448, 449, 450, 451, 3, -1, -1,
11260 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11261 -1, -1, 18, 19, 20, 21, 22, 23, 24, 25,
11262 -1, 27, 28, 29, -1, -1, -1, -1, -1, 35,
11263 -1, 37, 38, -1, 40, 41, 42, -1, 44, 45,
11264 46, 47, 48, -1, 50, 51, -1, 53, 54, 55,
11265 56, 57, -1, -1, 60, 61, 62, 63, 64, -1,
11266 66, 67, 68, 69, 70, -1, -1, -1, 74, 75,
11267 76, 77, 78, -1, 80, 81, 82, -1, 84, 85,
11268 86, 87, 88, 89, -1, -1, 92, 93, 94, -1,
11269 -1, -1, -1, -1, -1, -1, 102, 103, 104, 105,
11270 106, 107, 108, 109, 110, -1, 112, -1, 114, 115,
11271 116, 117, 118, 119, -1, 121, 122, 123, 124, 125,
11272 -1, -1, 128, 129, 130, 131, 132, -1, 134, 135,
11273 136, -1, 138, 139, 140, -1, 142, 143, 144, 145,
11274 146, 147, 148, 149, 150, -1, 152, -1, 154, 155,
11275 156, 157, -1, 159, -1, 161, -1, -1, -1, 165,
11276 166, 167, 168, -1, 170, 171, -1, 173, 174, -1,
11277 176, 177, 178, 179, 180, -1, 182, 183, 184, 185,
11278 -1, 187, 188, 189, 190, 191, 192, -1, 194, -1,
11279 196, 197, 198, 199, 200, 201, 202, -1, 204, -1,
11280 206, -1, -1, 209, -1, 211, 212, 213, 214, 215,
11281 -1, -1, 218, 219, -1, 221, -1, -1, 224, 225,
11282 226, -1, -1, 229, 230, 231, 232, 233, 234, 235,
11283 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
11284 -1, 247, 248, 249, 250, 251, -1, 253, 254, -1,
11285 256, -1, 258, 259, 260, 261, 262, 263, -1, 265,
11286 266, -1, -1, 269, 270, 271, -1, -1, 274, 275,
11287 -1, 277, -1, 279, 280, 281, 282, 283, 284, 285,
11288 286, 287, 288, -1, 290, 291, 292, 293, 294, 295,
11289 296, 297, 298, -1, 300, 301, 302, 303, 304, 305,
11290 306, 307, 308, 309, 310, 311, 312, 313, -1, 315,
11291 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
11292 326, -1, 328, 329, -1, 331, 332, 333, 334, 335,
11293 336, 337, 338, 339, 340, 341, 342, 343, -1, 345,
11294 346, 347, 348, 349, -1, 351, 352, 353, 354, 355,
11295 -1, 357, 358, 359, 360, -1, 362, 363, 364, 365,
11296 366, 367, 368, 369, 370, 371, 372, 373, 374, -1,
11297 376, 377, -1, 379, -1, 381, 382, 383, 384, 385,
11298 -1, 387, 388, -1, -1, 391, 392, 393, 394, 395,
11299 -1, 397, 398, 399, 400, 401, 402, 403, -1, -1,
11300 406, 407, 408, 409, 410, -1, -1, 413, 414, 415,
11301 416, 417, 418, 419, -1, 421, -1, 423, 424, 425,
11302 426, -1, -1, 429, -1, -1, 432, 433, 434, 435,
11303 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
11304 446, 447, 448, 449, 450, 451, 3, -1, -1, -1,
11305 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11306 -1, 18, 19, 20, 21, 22, 23, 24, 25, -1,
11307 27, 28, 29, -1, -1, -1, -1, -1, -1, -1,
11308 37, 38, -1, 40, 41, 42, -1, 44, 45, 46,
11309 47, 48, -1, 50, 51, -1, 53, 54, 55, 56,
11310 57, -1, -1, 60, 61, 62, 63, 64, -1, 66,
11311 67, 68, 69, 70, -1, -1, -1, 74, 75, 76,
11312 77, 78, -1, 80, 81, 82, -1, 84, 85, 86,
11313 87, 88, 89, -1, -1, 92, 93, 94, -1, -1,
11314 -1, -1, -1, -1, -1, 102, 103, 104, 105, 106,
11315 107, 108, 109, 110, -1, 112, -1, 114, 115, 116,
11316 117, 118, 119, -1, 121, 122, 123, 124, 125, -1,
11317 -1, 128, 129, 130, 131, 132, -1, 134, 135, 136,
11318 -1, 138, 139, 140, -1, 142, 143, 144, 145, 146,
11319 147, 148, 149, 150, -1, 152, -1, 154, 155, 156,
11320 157, -1, 159, -1, 161, -1, -1, -1, 165, 166,
11321 167, 168, -1, 170, 171, -1, 173, 174, -1, 176,
11322 177, 178, 179, 180, -1, 182, 183, 184, 185, -1,
11323 187, 188, 189, 190, 191, 192, -1, 194, -1, 196,
11324 197, 198, 199, 200, 201, 202, -1, 204, -1, 206,
11325 -1, -1, 209, -1, 211, 212, 213, 214, 215, -1,
11326 -1, 218, 219, -1, 221, -1, -1, 224, 225, 226,
11327 -1, -1, 229, 230, 231, 232, 233, 234, 235, 236,
11328 237, 238, 239, 240, 241, 242, 243, 244, 245, -1,
11329 247, 248, 249, 250, 251, -1, 253, 254, -1, 256,
11330 -1, 258, 259, 260, 261, 262, 263, -1, 265, 266,
11331 -1, -1, 269, 270, 271, -1, -1, 274, 275, -1,
11332 277, -1, 279, 280, 281, 282, 283, 284, 285, 286,
11333 287, 288, -1, 290, 291, 292, 293, 294, 295, 296,
11334 297, 298, -1, 300, 301, 302, 303, 304, 305, 306,
11335 307, 308, 309, 310, 311, 312, 313, -1, 315, 316,
11336 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
11337 -1, 328, 329, -1, 331, 332, 333, 334, 335, 336,
11338 337, 338, 339, 340, 341, 342, 343, -1, 345, 346,
11339 347, 348, 349, -1, 351, 352, 353, 354, 355, -1,
11340 357, 358, 359, 360, -1, 362, 363, 364, 365, 366,
11341 367, 368, 369, 370, 371, 372, 373, 374, -1, 376,
11342 377, -1, 379, -1, 381, 382, 383, 384, 385, -1,
11343 387, 388, -1, -1, 391, 392, 393, 394, 395, -1,
11344 397, 398, 399, 400, 401, 402, 403, -1, -1, 406,
11345 407, 408, 409, 410, -1, -1, 413, 414, 415, 416,
11346 417, 418, 419, -1, 421, -1, 423, 424, 425, 426,
11347 -1, -1, 429, -1, -1, 432, 433, 434, 435, 436,
11348 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
11349 447, 448, 449, 450, 451, 3, -1, -1, -1, -1,
11350 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11351 18, 19, 20, 21, 22, 23, 24, 25, -1, 27,
11352 28, 29, -1, -1, -1, -1, -1, -1, -1, 37,
11353 38, -1, 40, 41, 42, -1, 44, 45, 46, 47,
11354 48, -1, 50, 51, -1, 53, 54, 55, 56, 57,
11355 -1, -1, 60, 61, 62, 63, 64, -1, 66, 67,
11356 68, 69, 70, -1, -1, -1, 74, 75, 76, 77,
11357 78, -1, 80, 81, 82, -1, 84, 85, 86, 87,
11358 88, 89, -1, -1, 92, 93, 94, -1, -1, -1,
11359 -1, -1, -1, -1, 102, 103, 104, 105, 106, 107,
11360 108, 109, 110, -1, 112, -1, 114, 115, 116, 117,
11361 118, 119, -1, 121, 122, 123, 124, 125, -1, -1,
11362 128, 129, 130, 131, 132, -1, 134, 135, 136, -1,
11363 138, 139, 140, -1, 142, 143, 144, 145, 146, 147,
11364 148, 149, 150, -1, 152, -1, 154, 155, 156, 157,
11365 -1, 159, -1, 161, -1, -1, -1, 165, 166, 167,
11366 168, -1, 170, 171, -1, 173, 174, -1, 176, 177,
11367 178, 179, 180, -1, 182, 183, 184, 185, -1, 187,
11368 188, 189, 190, 191, 192, -1, 194, -1, 196, 197,
11369 198, 199, 200, 201, 202, -1, 204, -1, 206, -1,
11370 -1, 209, -1, 211, 212, 213, 214, 215, -1, -1,
11371 218, 219, -1, 221, -1, -1, 224, 225, 226, -1,
11372 -1, 229, 230, 231, 232, 233, 234, 235, 236, 237,
11373 238, 239, 240, 241, 242, 243, 244, 245, -1, 247,
11374 248, 249, 250, 251, -1, 253, 254, -1, 256, -1,
11375 258, 259, 260, 261, 262, 263, -1, 265, 266, -1,
11376 -1, 269, 270, 271, -1, -1, 274, 275, -1, 277,
11377 -1, 279, 280, 281, 282, 283, 284, 285, 286, 287,
11378 288, -1, 290, 291, 292, 293, 294, 295, 296, 297,
11379 298, -1, 300, 301, 302, 303, 304, 305, 306, 307,
11380 308, 309, 310, 311, 312, 313, -1, 315, 316, 317,
11381 318, 319, 320, 321, 322, 323, 324, 325, 326, -1,
11382 328, 329, -1, 331, 332, 333, 334, 335, 336, 337,
11383 338, 339, 340, 341, 342, 343, -1, 345, 346, 347,
11384 348, 349, -1, 351, 352, 353, 354, 355, -1, 357,
11385 358, 359, 360, -1, 362, 363, 364, 365, 366, 367,
11386 368, 369, 370, 371, 372, 373, 374, -1, 376, 377,
11387 -1, 379, -1, 381, 382, 383, 384, 385, -1, 387,
11388 388, -1, -1, 391, 392, 393, 394, 395, -1, 397,
11389 398, 399, 400, 401, 402, 403, -1, -1, 406, 407,
11390 408, 409, 410, -1, -1, 413, 414, 415, 416, 417,
11391 418, 419, -1, 421, -1, 423, 424, 425, 426, -1,
11392 -1, 429, -1, -1, 432, 433, 434, 435, 436, 437,
11393 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
11394 448, 449, 450, 451, 3, -1, -1, -1, -1, -1,
11395 -1, -1, -1, -1, -1, -1, -1, -1, -1, 18,
11396 19, 20, 21, 22, 23, 24, 25, -1, 27, 28,
11397 29, -1, -1, -1, -1, -1, -1, -1, 37, 38,
11398 -1, 40, 41, 42, -1, 44, 45, 46, 47, 48,
11399 -1, 50, 51, -1, 53, 54, 55, 56, 57, -1,
11400 -1, 60, 61, 62, 63, 64, -1, 66, 67, 68,
11401 69, 70, -1, -1, -1, 74, 75, 76, 77, 78,
11402 -1, 80, 81, 82, -1, 84, 85, 86, 87, 88,
11403 89, -1, -1, 92, 93, 94, -1, -1, -1, -1,
11404 -1, -1, -1, 102, 103, 104, 105, 106, 107, 108,
11405 109, 110, -1, 112, -1, 114, 115, 116, 117, 118,
11406 119, -1, 121, 122, 123, 124, 125, -1, -1, 128,
11407 129, 130, 131, 132, -1, 134, 135, 136, -1, 138,
11408 139, 140, -1, 142, 143, 144, 145, 146, 147, 148,
11409 149, 150, -1, 152, -1, 154, 155, 156, 157, -1,
11410 159, -1, 161, -1, -1, -1, 165, 166, 167, 168,
11411 -1, 170, 171, -1, 173, 174, -1, 176, 177, 178,
11412 179, 180, -1, 182, 183, 184, 185, -1, 187, 188,
11413 189, 190, 191, 192, -1, 194, -1, 196, 197, 198,
11414 199, 200, 201, 202, -1, 204, -1, 206, -1, -1,
11415 209, -1, 211, 212, 213, 214, 215, -1, -1, 218,
11416 219, -1, 221, -1, -1, 224, 225, 226, -1, -1,
11417 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
11418 239, 240, 241, 242, 243, 244, 245, -1, 247, 248,
11419 249, 250, 251, -1, 253, 254, -1, 256, -1, 258,
11420 259, 260, 261, 262, 263, -1, 265, 266, -1, -1,
11421 269, 270, 271, -1, -1, 274, 275, -1, 277, -1,
11422 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
11423 -1, 290, 291, 292, 293, 294, 295, 296, 297, 298,
11424 -1, 300, 301, 302, 303, 304, 305, 306, 307, 308,
11425 309, 310, 311, 312, 313, -1, 315, 316, 317, 318,
11426 319, 320, 321, 322, 323, 324, 325, 326, -1, 328,
11427 329, -1, 331, 332, 333, 334, 335, 336, 337, 338,
11428 339, 340, 341, 342, 343, -1, 345, 346, 347, 348,
11429 349, -1, 351, 352, 353, 354, 355, -1, 357, 358,
11430 359, 360, -1, 362, 363, 364, 365, 366, 367, 368,
11431 369, 370, 371, 372, 373, 374, -1, 376, 377, -1,
11432 379, -1, 381, 382, 383, 384, 385, -1, 387, 388,
11433 -1, -1, 391, 392, 393, 394, 395, -1, 397, 398,
11434 399, 400, 401, 402, 403, -1, -1, 406, 407, 408,
11435 409, 410, -1, -1, 413, 414, 415, 416, 417, 418,
11436 419, -1, 421, -1, 423, 424, 425, 426, -1, -1,
11437 429, -1, -1, 432, 433, 434, 435, 436, 437, 438,
11438 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
11439 449, 450, 451, 3, -1, -1, -1, -1, -1, -1,
11440 -1, -1, -1, -1, -1, -1, -1, -1, 18, 19,
11441 20, 21, 22, 23, 24, 25, -1, 27, 28, 29,
11442 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
11443 40, 41, 42, -1, 44, 45, 46, 47, 48, -1,
11444 50, 51, -1, 53, 54, 55, 56, 57, -1, -1,
11445 60, 61, 62, 63, 64, -1, 66, 67, 68, 69,
11446 70, -1, -1, -1, 74, 75, 76, 77, 78, -1,
11447 80, 81, 82, -1, 84, 85, 86, 87, 88, 89,
11448 -1, -1, 92, 93, 94, -1, -1, -1, -1, -1,
11449 -1, -1, 102, 103, 104, 105, 106, 107, 108, 109,
11450 110, -1, 112, -1, 114, 115, 116, 117, 118, 119,
11451 -1, 121, 122, 123, 124, 125, -1, -1, 128, 129,
11452 130, 131, 132, -1, 134, 135, 136, -1, 138, 139,
11453 140, -1, 142, 143, 144, 145, 146, 147, 148, 149,
11454 150, -1, 152, -1, 154, 155, 156, 157, -1, 159,
11455 -1, 161, -1, -1, -1, 165, 166, 167, 168, -1,
11456 170, 171, -1, 173, 174, -1, 176, 177, 178, 179,
11457 180, -1, 182, 183, 184, 185, -1, 187, 188, 189,
11458 190, 191, 192, -1, 194, -1, 196, 197, 198, 199,
11459 200, 201, 202, -1, 204, -1, 206, -1, -1, 209,
11460 -1, 211, 212, 213, 214, 215, -1, -1, 218, 219,
11461 -1, 221, -1, -1, 224, 225, 226, -1, -1, 229,
11462 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
11463 240, 241, 242, 243, 244, 245, -1, 247, 248, 249,
11464 250, 251, -1, 253, 254, -1, 256, -1, 258, 259,
11465 260, 261, 262, 263, -1, 265, 266, -1, -1, 269,
11466 270, 271, -1, -1, 274, 275, -1, 277, -1, 279,
11467 280, 281, 282, 283, 284, 285, 286, 287, 288, -1,
11468 290, 291, 292, 293, 294, 295, 296, 297, 298, -1,
11469 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
11470 310, 311, 312, 313, -1, 315, 316, 317, 318, 319,
11471 320, 321, 322, 323, 324, 325, 326, -1, 328, 329,
11472 -1, 331, 332, 333, 334, 335, 336, 337, 338, 339,
11473 340, 341, 342, 343, -1, 345, 346, 347, 348, 349,
11474 -1, 351, 352, 353, 354, 355, -1, 357, 358, 359,
11475 360, -1, 362, 363, 364, 365, 366, 367, 368, 369,
11476 370, 371, 372, 373, 374, -1, 376, 377, -1, 379,
11477 -1, 381, 382, 383, 384, 385, -1, 387, 388, -1,
11478 -1, 391, 392, 393, 394, 395, -1, 397, 398, 399,
11479 400, 401, 402, 403, -1, -1, 406, 407, 408, 409,
11480 410, -1, -1, 413, 414, 415, 416, 417, 418, 419,
11481 -1, 421, -1, 423, 424, 425, 426, -1, -1, 429,
11482 -1, -1, 432, 433, 434, 435, 436, 437, 438, 439,
11483 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
11484 450, 451, 3, -1, -1, -1, -1, -1, -1, -1,
11485 -1, -1, -1, -1, -1, -1, -1, 18, 19, 20,
11486 21, 22, 23, 24, 25, -1, 27, 28, 29, -1,
11487 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
11488 41, 42, -1, 44, 45, 46, 47, 48, -1, 50,
11489 51, -1, 53, 54, 55, 56, 57, -1, -1, 60,
11490 61, 62, 63, 64, -1, 66, 67, 68, 69, 70,
11491 -1, -1, -1, 74, 75, 76, 77, 78, -1, 80,
11492 81, 82, -1, 84, 85, 86, 87, 88, 89, -1,
11493 -1, 92, 93, 94, -1, -1, -1, -1, -1, -1,
11494 -1, 102, 103, 104, 105, 106, 107, 108, 109, 110,
11495 -1, 112, -1, 114, 115, 116, 117, 118, 119, -1,
11496 121, 122, 123, 124, 125, -1, -1, 128, 129, 130,
11497 131, 132, -1, 134, 135, 136, -1, 138, 139, 140,
11498 -1, 142, 143, 144, 145, 146, 147, 148, 149, 150,
11499 -1, 152, -1, 154, 155, 156, 157, -1, 159, -1,
11500 161, -1, -1, -1, 165, 166, 167, 168, -1, 170,
11501 171, -1, 173, 174, -1, 176, 177, 178, 179, 180,
11502 -1, 182, 183, 184, 185, -1, 187, 188, 189, 190,
11503 191, 192, -1, 194, -1, 196, 197, 198, 199, 200,
11504 201, 202, -1, 204, -1, 206, -1, -1, 209, -1,
11505 211, 212, 213, 214, 215, -1, -1, 218, 219, -1,
11506 221, -1, -1, 224, 225, 226, -1, -1, 229, 230,
11507 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
11508 241, 242, 243, 244, 245, -1, 247, 248, 249, 250,
11509 251, -1, 253, 254, -1, 256, -1, 258, 259, 260,
11510 261, 262, 263, -1, 265, 266, -1, -1, 269, 270,
11511 271, -1, -1, 274, 275, -1, 277, -1, 279, 280,
11512 281, 282, 283, 284, 285, 286, 287, 288, -1, 290,
11513 291, 292, 293, 294, 295, 296, 297, 298, -1, 300,
11514 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
11515 311, 312, 313, -1, 315, 316, 317, 318, 319, 320,
11516 321, 322, 323, 324, 325, 326, -1, 328, 329, -1,
11517 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
11518 341, 342, 343, -1, 345, 346, 347, 348, 349, -1,
11519 351, 352, 353, 354, 355, -1, 357, 358, 359, 360,
11520 -1, 362, 363, 364, 365, 366, 367, 368, 369, 370,
11521 371, 372, 373, 374, -1, 376, 377, -1, 379, -1,
11522 381, 382, 383, 384, 385, -1, 387, 388, -1, -1,
11523 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
11524 401, 402, 403, -1, -1, 406, 407, 408, 409, 410,
11525 -1, -1, 413, 414, 415, 416, 417, 418, 419, -1,
11526 421, -1, 423, 424, 425, 426, -1, -1, 429, -1,
11527 -1, 432, 433, 434, 435, 436, 437, 438, 439, 440,
11528 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
11529 451, 3, -1, -1, -1, -1, -1, -1, -1, -1,
11530 -1, -1, -1, -1, -1, -1, 18, 19, 20, 21,
11531 22, 23, 24, 25, -1, 27, 28, 29, -1, -1,
11532 -1, -1, -1, -1, -1, 37, 38, -1, 40, 41,
11533 42, -1, 44, 45, 46, 47, 48, -1, 50, 51,
11534 -1, 53, 54, 55, 56, 57, -1, -1, 60, 61,
11535 62, 63, 64, -1, 66, 67, 68, 69, 70, -1,
11536 -1, -1, 74, 75, 76, 77, 78, -1, 80, 81,
11537 82, -1, 84, 85, 86, 87, 88, 89, -1, -1,
11538 92, 93, 94, -1, -1, -1, -1, -1, -1, -1,
11539 102, 103, 104, 105, 106, 107, 108, 109, 110, -1,
11540 112, -1, 114, 115, 116, 117, 118, 119, -1, 121,
11541 122, 123, 124, 125, -1, -1, 128, 129, 130, 131,
11542 132, -1, 134, 135, 136, -1, 138, 139, 140, -1,
11543 142, 143, 144, 145, 146, 147, 148, 149, 150, -1,
11544 152, -1, 154, 155, 156, 157, -1, 159, -1, 161,
11545 -1, -1, -1, 165, 166, 167, 168, -1, 170, 171,
11546 -1, 173, 174, -1, 176, 177, 178, 179, 180, -1,
11547 182, 183, 184, 185, -1, 187, 188, 189, 190, 191,
11548 192, -1, 194, -1, 196, 197, 198, 199, 200, 201,
11549 202, -1, 204, -1, 206, -1, -1, 209, -1, 211,
11550 212, 213, 214, 215, -1, -1, 218, 219, -1, 221,
11551 -1, -1, 224, 225, 226, -1, -1, 229, 230, 231,
11552 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
11553 242, 243, 244, 245, -1, 247, 248, 249, 250, 251,
11554 -1, 253, 254, -1, 256, -1, 258, 259, 260, 261,
11555 262, 263, -1, 265, 266, -1, -1, 269, 270, 271,
11556 -1, -1, 274, 275, -1, 277, -1, 279, 280, 281,
11557 282, 283, 284, 285, 286, 287, 288, -1, 290, 291,
11558 292, 293, 294, 295, 296, 297, 298, -1, 300, 301,
11559 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
11560 312, 313, -1, 315, 316, 317, 318, 319, 320, 321,
11561 322, 323, 324, 325, 326, -1, 328, 329, -1, 331,
11562 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
11563 342, 343, -1, 345, 346, 347, 348, 349, -1, 351,
11564 352, 353, 354, 355, -1, 357, 358, 359, 360, -1,
11565 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
11566 372, 373, 374, -1, 376, 377, -1, 379, -1, 381,
11567 382, 383, 384, 385, -1, 387, 388, -1, -1, 391,
11568 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
11569 402, 403, -1, -1, 406, 407, 408, 409, 410, -1,
11570 -1, 413, 414, 415, 416, 417, 418, 419, -1, 421,
11571 -1, 423, 424, 425, 426, -1, -1, 429, -1, -1,
11572 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
11573 442, 443, 444, 445, 446, 447, 448, 449, 450, 451,
11574 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11575 -1, -1, -1, -1, -1, 18, 19, 20, 21, 22,
11576 23, 24, 25, -1, 27, 28, 29, -1, -1, -1,
11577 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
11578 -1, 44, 45, 46, 47, 48, -1, 50, 51, -1,
11579 53, 54, 55, 56, 57, -1, -1, 60, 61, 62,
11580 63, 64, -1, 66, 67, 68, 69, 70, -1, -1,
11581 -1, 74, 75, 76, 77, 78, -1, 80, 81, 82,
11582 -1, 84, 85, 86, 87, 88, 89, -1, -1, 92,
11583 93, 94, -1, -1, -1, -1, -1, -1, -1, 102,
11584 103, 104, 105, 106, 107, 108, 109, 110, -1, 112,
11585 -1, 114, 115, 116, 117, 118, 119, -1, 121, 122,
11586 123, 124, 125, -1, -1, 128, 129, 130, 131, 132,
11587 -1, 134, 135, 136, -1, 138, 139, 140, -1, 142,
11588 143, 144, 145, 146, 147, 148, 149, 150, -1, 152,
11589 -1, 154, 155, 156, 157, -1, 159, -1, 161, -1,
11590 -1, -1, 165, 166, 167, 168, -1, 170, 171, -1,
11591 173, 174, -1, 176, 177, 178, 179, 180, -1, 182,
11592 183, 184, 185, -1, 187, 188, 189, 190, 191, 192,
11593 -1, 194, -1, 196, 197, 198, 199, 200, 201, 202,
11594 -1, 204, -1, 206, -1, -1, 209, -1, 211, 212,
11595 213, 214, 215, -1, -1, 218, 219, -1, 221, -1,
11596 -1, 224, 225, 226, -1, -1, 229, 230, 231, 232,
11597 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
11598 243, 244, 245, -1, 247, 248, 249, 250, 251, -1,
11599 253, 254, -1, 256, -1, 258, 259, 260, 261, 262,
11600 263, -1, 265, 266, -1, -1, 269, 270, 271, -1,
11601 -1, 274, 275, -1, 277, -1, 279, 280, 281, 282,
11602 283, 284, 285, 286, 287, 288, -1, 290, 291, 292,
11603 293, 294, 295, 296, 297, 298, -1, 300, 301, 302,
11604 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
11605 313, -1, 315, 316, 317, 318, 319, 320, 321, 322,
11606 323, 324, 325, 326, -1, 328, 329, -1, 331, 332,
11607 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
11608 343, -1, 345, 346, 347, 348, 349, -1, 351, 352,
11609 353, 354, 355, -1, 357, 358, 359, 360, -1, 362,
11610 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
11611 373, 374, -1, 376, 377, -1, 379, -1, 381, 382,
11612 383, 384, 385, -1, 387, 388, -1, -1, 391, 392,
11613 393, 394, 395, -1, 397, 398, 399, 400, 401, 402,
11614 403, -1, -1, 406, 407, 408, 409, 410, -1, -1,
11615 413, 414, 415, 416, 417, 418, 419, -1, 421, -1,
11616 423, 424, 425, 426, -1, -1, 429, -1, -1, 432,
11617 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
11618 443, 444, 445, 446, 447, 448, 449, 450, 451, 3,
11619 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11620 -1, -1, -1, -1, 18, 19, 20, 21, 22, 23,
11621 24, 25, -1, 27, 28, 29, -1, -1, -1, -1,
11622 -1, -1, -1, 37, 38, -1, 40, 41, 42, -1,
11623 44, 45, 46, 47, 48, -1, 50, 51, -1, 53,
11624 54, 55, 56, 57, -1, -1, 60, 61, 62, 63,
11625 64, -1, 66, 67, 68, 69, 70, -1, -1, -1,
11626 74, 75, 76, 77, 78, -1, 80, 81, 82, -1,
11627 84, 85, 86, 87, 88, 89, -1, -1, 92, 93,
11628 94, -1, -1, -1, -1, -1, -1, -1, 102, 103,
11629 104, 105, 106, 107, 108, 109, 110, -1, 112, -1,
11630 114, 115, 116, 117, 118, 119, -1, 121, 122, 123,
11631 124, 125, -1, -1, 128, 129, 130, 131, 132, -1,
11632 134, 135, 136, -1, 138, 139, 140, -1, 142, 143,
11633 144, 145, 146, 147, 148, 149, 150, -1, 152, -1,
11634 154, 155, 156, 157, -1, 159, -1, 161, -1, -1,
11635 -1, 165, 166, 167, 168, -1, 170, 171, -1, 173,
11636 174, -1, 176, 177, 178, 179, 180, -1, 182, 183,
11637 184, 185, -1, 187, 188, 189, 190, 191, 192, -1,
11638 194, -1, 196, 197, 198, 199, 200, 201, 202, -1,
11639 204, -1, 206, -1, -1, 209, -1, 211, 212, 213,
11640 214, 215, -1, -1, 218, 219, -1, 221, -1, -1,
11641 224, 225, 226, -1, -1, 229, 230, 231, 232, 233,
11642 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
11643 244, 245, -1, 247, 248, 249, 250, 251, -1, 253,
11644 254, -1, 256, -1, 258, 259, 260, 261, 262, 263,
11645 -1, 265, 266, -1, -1, 269, 270, 271, -1, -1,
11646 274, 275, -1, 277, -1, 279, 280, 281, 282, 283,
11647 284, 285, 286, 287, 288, -1, 290, 291, 292, 293,
11648 294, 295, 296, 297, 298, -1, 300, 301, 302, 303,
11649 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
11650 -1, 315, 316, 317, 318, 319, 320, 321, 322, 323,
11651 324, 325, 326, -1, 328, 329, -1, 331, 332, 333,
11652 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
11653 -1, 345, 346, 347, 348, 349, -1, 351, 352, 353,
11654 354, 355, -1, 357, 358, 359, 360, -1, 362, 363,
11655 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
11656 374, -1, 376, 377, -1, 379, -1, 381, 382, 383,
11657 384, 385, -1, 387, 388, -1, -1, 391, 392, 393,
11658 394, 395, -1, 397, 398, 399, 400, 401, 402, 403,
11659 -1, -1, 406, 407, 408, 409, 410, -1, -1, 413,
11660 414, 415, 416, 417, 418, 419, -1, 421, -1, 423,
11661 424, 425, 426, -1, -1, 429, -1, -1, 432, 433,
11662 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
11663 444, 445, 446, 447, 448, 449, 450, 451, 3, -1,
11664 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11665 -1, -1, -1, 18, 19, 20, 21, 22, 23, 24,
11666 25, -1, 27, 28, 29, -1, -1, -1, -1, -1,
11667 -1, -1, 37, 38, -1, 40, 41, 42, -1, 44,
11668 45, 46, 47, 48, -1, 50, 51, -1, 53, 54,
11669 55, 56, 57, -1, -1, 60, 61, 62, 63, 64,
11670 -1, 66, 67, 68, 69, 70, -1, -1, -1, 74,
11671 75, 76, 77, 78, -1, 80, 81, 82, -1, 84,
11672 85, 86, 87, 88, 89, -1, -1, 92, 93, 94,
11673 -1, -1, -1, -1, -1, -1, -1, 102, 103, 104,
11674 105, 106, 107, 108, 109, 110, -1, 112, -1, 114,
11675 115, 116, 117, 118, 119, -1, 121, 122, 123, 124,
11676 125, -1, -1, 128, 129, 130, 131, 132, -1, 134,
11677 135, 136, -1, 138, 139, 140, -1, 142, 143, 144,
11678 145, 146, 147, 148, 149, 150, -1, 152, -1, 154,
11679 155, 156, 157, -1, 159, -1, 161, -1, -1, -1,
11680 165, 166, 167, 168, -1, 170, 171, -1, 173, 174,
11681 -1, 176, 177, 178, 179, 180, -1, 182, 183, 184,
11682 185, -1, 187, 188, 189, 190, 191, 192, -1, 194,
11683 -1, 196, 197, 198, 199, 200, 201, 202, -1, 204,
11684 -1, 206, -1, -1, 209, -1, 211, 212, 213, 214,
11685 215, -1, -1, 218, 219, -1, 221, -1, -1, 224,
11686 225, 226, -1, -1, 229, 230, 231, 232, 233, 234,
11687 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
11688 245, -1, 247, 248, 249, 250, 251, -1, 253, 254,
11689 -1, 256, -1, 258, 259, 260, 261, 262, 263, -1,
11690 265, 266, -1, -1, 269, 270, 271, -1, -1, 274,
11691 275, -1, 277, -1, 279, 280, 281, 282, 283, 284,
11692 285, 286, 287, 288, -1, 290, 291, 292, 293, 294,
11693 295, 296, 297, 298, -1, 300, 301, 302, 303, 304,
11694 305, 306, 307, 308, 309, 310, 311, 312, 313, -1,
11695 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
11696 325, 326, -1, 328, 329, -1, 331, 332, 333, 334,
11697 335, 336, 337, 338, 339, 340, 341, 342, 343, -1,
11698 345, 346, 347, 348, 349, -1, 351, 352, 353, 354,
11699 355, -1, 357, 358, 359, 360, -1, 362, 363, 364,
11700 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
11701 -1, 376, 377, -1, 379, -1, 381, 382, 383, 384,
11702 385, -1, 387, 388, -1, -1, 391, 392, 393, 394,
11703 395, -1, 397, 398, 399, 400, 401, 402, 403, -1,
11704 -1, 406, 407, 408, 409, 410, -1, -1, 413, 414,
11705 415, 416, 417, 418, 419, -1, 421, -1, 423, 424,
11706 425, 426, -1, -1, 429, -1, -1, 432, 433, 434,
11707 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
11708 445, 446, 447, 448, 449, 450, 451, 3, -1, -1,
11709 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11710 -1, -1, 18, 19, 20, 21, 22, 23, 24, 25,
11711 -1, 27, 28, 29, -1, -1, -1, -1, -1, -1,
11712 -1, 37, 38, -1, 40, 41, 42, -1, 44, 45,
11713 46, 47, 48, -1, 50, 51, -1, 53, 54, 55,
11714 56, 57, -1, -1, 60, 61, 62, 63, 64, -1,
11715 66, 67, 68, 69, 70, -1, -1, -1, 74, 75,
11716 76, 77, 78, -1, 80, 81, 82, -1, 84, 85,
11717 86, 87, 88, 89, -1, -1, 92, 93, 94, -1,
11718 -1, -1, -1, -1, -1, -1, 102, 103, 104, 105,
11719 106, 107, 108, 109, 110, -1, 112, -1, 114, 115,
11720 116, 117, 118, 119, -1, 121, 122, 123, 124, 125,
11721 -1, -1, 128, 129, 130, 131, 132, -1, 134, 135,
11722 136, -1, 138, 139, 140, -1, 142, 143, 144, 145,
11723 146, 147, 148, 149, 150, -1, 152, -1, 154, 155,
11724 156, 157, -1, 159, -1, 161, -1, -1, -1, 165,
11725 166, 167, 168, -1, 170, 171, -1, 173, 174, -1,
11726 176, 177, 178, 179, 180, -1, 182, 183, 184, 185,
11727 -1, 187, 188, 189, 190, 191, 192, -1, 194, -1,
11728 196, 197, 198, 199, 200, 201, 202, -1, 204, -1,
11729 206, -1, -1, 209, -1, 211, 212, 213, 214, 215,
11730 -1, -1, 218, 219, -1, 221, -1, -1, 224, 225,
11731 226, -1, -1, 229, 230, 231, 232, 233, 234, 235,
11732 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
11733 -1, 247, 248, 249, 250, 251, -1, 253, 254, -1,
11734 256, -1, 258, 259, 260, 261, 262, 263, -1, 265,
11735 266, -1, -1, 269, 270, 271, -1, -1, 274, 275,
11736 -1, 277, -1, 279, 280, 281, 282, 283, 284, 285,
11737 286, 287, 288, -1, 290, 291, 292, 293, 294, 295,
11738 296, 297, 298, -1, 300, 301, 302, 303, 304, 305,
11739 306, 307, 308, 309, 310, 311, 312, 313, -1, 315,
11740 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
11741 326, -1, 328, 329, -1, 331, 332, 333, 334, 335,
11742 336, 337, 338, 339, 340, 341, 342, 343, -1, 345,
11743 346, 347, 348, 349, -1, 351, 352, 353, 354, 355,
11744 -1, 357, 358, 359, 360, -1, 362, 363, 364, 365,
11745 366, 367, 368, 369, 370, 371, 372, 373, 374, -1,
11746 376, 377, -1, 379, -1, 381, 382, 383, 384, 385,
11747 -1, 387, 388, -1, -1, 391, 392, 393, 394, 395,
11748 -1, 397, 398, 399, 400, 401, 402, 403, -1, -1,
11749 406, 407, 408, 409, 410, -1, -1, 413, 414, 415,
11750 416, 417, 418, 419, -1, 421, -1, 423, 424, 425,
11751 426, -1, -1, 429, -1, -1, 432, 433, 434, 435,
11752 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
11753 446, 447, 448, 449, 450, 451, 3, -1, -1, -1,
11754 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11755 -1, 18, 19, 20, 21, 22, 23, 24, 25, -1,
11756 27, 28, 29, -1, -1, -1, -1, -1, -1, -1,
11757 37, 38, -1, 40, 41, 42, -1, 44, 45, 46,
11758 47, 48, -1, 50, 51, -1, 53, 54, 55, 56,
11759 57, -1, -1, 60, 61, 62, 63, 64, -1, 66,
11760 67, 68, 69, 70, -1, -1, -1, 74, 75, 76,
11761 77, 78, -1, 80, 81, 82, -1, 84, 85, 86,
11762 87, 88, 89, -1, -1, 92, 93, 94, -1, -1,
11763 -1, -1, -1, -1, -1, 102, 103, 104, 105, 106,
11764 107, 108, 109, 110, -1, 112, -1, 114, 115, 116,
11765 117, 118, 119, -1, 121, 122, 123, 124, 125, -1,
11766 -1, 128, 129, 130, 131, 132, -1, 134, 135, 136,
11767 -1, 138, 139, 140, -1, 142, 143, 144, 145, 146,
11768 147, 148, 149, 150, -1, 152, -1, 154, 155, 156,
11769 157, -1, 159, -1, 161, -1, -1, -1, 165, 166,
11770 167, 168, -1, 170, 171, -1, 173, 174, -1, 176,
11771 177, 178, 179, 180, -1, 182, 183, 184, 185, -1,
11772 187, 188, 189, 190, 191, 192, -1, 194, -1, 196,
11773 197, 198, 199, 200, 201, 202, -1, 204, -1, 206,
11774 -1, -1, 209, -1, 211, 212, 213, 214, 215, -1,
11775 -1, 218, 219, -1, 221, -1, -1, 224, 225, 226,
11776 -1, -1, 229, 230, 231, 232, 233, 234, 235, 236,
11777 237, 238, 239, 240, 241, 242, 243, 244, 245, -1,
11778 247, 248, 249, 250, 251, -1, 253, 254, -1, 256,
11779 -1, 258, 259, 260, 261, 262, 263, -1, 265, 266,
11780 -1, -1, 269, 270, 271, -1, -1, 274, 275, -1,
11781 277, -1, 279, 280, 281, 282, 283, 284, 285, 286,
11782 287, 288, -1, 290, 291, 292, 293, 294, 295, 296,
11783 297, 298, -1, 300, 301, 302, 303, 304, 305, 306,
11784 307, 308, 309, 310, 311, 312, 313, -1, 315, 316,
11785 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
11786 -1, 328, 329, -1, 331, 332, 333, 334, 335, 336,
11787 337, 338, 339, 340, 341, 342, 343, -1, 345, 346,
11788 347, 348, 349, -1, 351, 352, 353, 354, 355, -1,
11789 357, 358, 359, 360, -1, 362, 363, 364, 365, 366,
11790 367, 368, 369, 370, 371, 372, 373, 374, -1, 376,
11791 377, -1, 379, -1, 381, 382, 383, 384, 385, -1,
11792 387, 388, -1, -1, 391, 392, 393, 394, 395, -1,
11793 397, 398, 399, 400, 401, 402, 403, -1, -1, 406,
11794 407, 408, 409, 410, -1, -1, 413, 414, 415, 416,
11795 417, 418, 419, -1, 421, -1, 423, 424, 425, 426,
11796 -1, -1, 429, -1, -1, 432, 433, 434, 435, 436,
11797 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
11798 447, 448, 449, 450, 451, 3, -1, -1, -1, -1,
11799 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11800 18, 19, 20, 21, 22, 23, 24, 25, -1, 27,
11801 28, 29, -1, -1, -1, -1, -1, -1, -1, 37,
11802 38, -1, 40, 41, 42, -1, 44, 45, 46, 47,
11803 48, -1, 50, 51, -1, 53, 54, 55, 56, 57,
11804 -1, -1, 60, 61, 62, 63, 64, -1, 66, 67,
11805 68, 69, 70, -1, -1, -1, 74, 75, 76, 77,
11806 78, -1, 80, 81, 82, -1, 84, 85, 86, 87,
11807 88, 89, -1, -1, 92, 93, 94, -1, -1, -1,
11808 -1, -1, -1, -1, 102, 103, 104, 105, 106, 107,
11809 108, 109, 110, -1, 112, -1, 114, 115, 116, 117,
11810 118, 119, -1, 121, 122, 123, 124, 125, -1, -1,
11811 128, 129, 130, 131, 132, -1, 134, 135, 136, -1,
11812 138, 139, 140, -1, 142, 143, 144, 145, 146, 147,
11813 148, 149, 150, -1, 152, -1, 154, 155, 156, 157,
11814 -1, 159, -1, 161, -1, -1, -1, 165, 166, 167,
11815 168, -1, 170, 171, -1, 173, 174, -1, 176, 177,
11816 178, 179, 180, -1, 182, 183, 184, 185, -1, 187,
11817 188, 189, 190, 191, 192, -1, 194, -1, 196, 197,
11818 198, 199, 200, 201, 202, -1, 204, -1, 206, -1,
11819 -1, 209, -1, 211, 212, 213, 214, 215, -1, -1,
11820 218, 219, -1, 221, -1, -1, 224, 225, 226, -1,
11821 -1, 229, 230, 231, 232, 233, 234, 235, 236, 237,
11822 238, 239, 240, 241, 242, 243, 244, 245, -1, 247,
11823 248, 249, 250, 251, -1, 253, 254, -1, 256, -1,
11824 258, 259, 260, 261, 262, 263, -1, 265, 266, -1,
11825 -1, 269, 270, 271, -1, -1, 274, 275, -1, 277,
11826 -1, 279, 280, 281, 282, 283, 284, 285, 286, 287,
11827 288, -1, 290, 291, 292, 293, 294, 295, 296, 297,
11828 298, -1, 300, 301, 302, 303, 304, 305, 306, 307,
11829 308, 309, 310, 311, 312, 313, -1, 315, 316, 317,
11830 318, 319, 320, 321, 322, 323, 324, 325, 326, -1,
11831 328, 329, -1, 331, 332, 333, 334, 335, 336, 337,
11832 338, 339, 340, 341, 342, 343, -1, 345, 346, 347,
11833 348, 349, -1, 351, 352, 353, 354, 355, -1, 357,
11834 358, 359, 360, -1, 362, 363, 364, 365, 366, 367,
11835 368, 369, 370, 371, 372, 373, 374, -1, 376, 377,
11836 -1, 379, -1, 381, 382, 383, 384, 385, -1, 387,
11837 388, -1, -1, 391, 392, 393, 394, 395, -1, 397,
11838 398, 399, 400, 401, 402, 403, -1, -1, 406, 407,
11839 408, 409, 410, -1, -1, 413, 414, 415, 416, 417,
11840 418, 419, -1, 421, -1, 423, 424, 425, 426, -1,
11841 -1, 429, -1, -1, 432, 433, 434, 435, 436, 437,
11842 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
11843 448, 449, 450, 451, 3, -1, -1, -1, -1, -1,
11844 -1, -1, -1, -1, -1, -1, -1, -1, -1, 18,
11845 19, 20, 21, 22, 23, 24, 25, -1, 27, 28,
11846 29, -1, -1, -1, -1, -1, -1, -1, 37, 38,
11847 -1, 40, 41, 42, -1, 44, 45, 46, 47, 48,
11848 -1, 50, 51, -1, 53, 54, 55, 56, 57, -1,
11849 -1, 60, 61, 62, 63, 64, -1, 66, 67, 68,
11850 69, 70, -1, -1, -1, 74, 75, 76, 77, 78,
11851 -1, 80, 81, 82, -1, 84, 85, 86, 87, 88,
11852 89, -1, -1, 92, 93, 94, -1, -1, -1, -1,
11853 -1, -1, -1, 102, 103, 104, 105, 106, 107, 108,
11854 109, 110, -1, 112, -1, 114, 115, 116, 117, 118,
11855 119, -1, 121, 122, 123, 124, 125, -1, -1, 128,
11856 129, 130, 131, 132, -1, 134, 135, 136, -1, 138,
11857 139, 140, -1, 142, 143, 144, 145, 146, 147, 148,
11858 149, 150, -1, 152, -1, 154, 155, 156, 157, -1,
11859 159, -1, 161, -1, -1, -1, 165, 166, 167, 168,
11860 -1, 170, 171, -1, 173, 174, -1, 176, 177, 178,
11861 179, 180, -1, 182, 183, 184, 185, -1, 187, 188,
11862 189, 190, 191, 192, -1, 194, -1, 196, 197, 198,
11863 199, 200, 201, 202, -1, 204, -1, 206, -1, -1,
11864 209, -1, 211, 212, 213, 214, 215, -1, -1, 218,
11865 219, -1, 221, -1, -1, 224, 225, 226, -1, -1,
11866 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
11867 239, 240, 241, 242, 243, 244, 245, -1, 247, 248,
11868 249, 250, 251, -1, 253, 254, -1, 256, -1, 258,
11869 259, 260, 261, 262, 263, -1, 265, 266, -1, -1,
11870 269, 270, 271, -1, -1, 274, 275, -1, 277, -1,
11871 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
11872 -1, 290, 291, 292, 293, 294, 295, 296, 297, 298,
11873 -1, 300, 301, 302, 303, 304, 305, 306, 307, 308,
11874 309, 310, 311, 312, 313, -1, 315, 316, 317, 318,
11875 319, 320, 321, 322, 323, 324, 325, 326, -1, 328,
11876 329, -1, 331, 332, 333, 334, 335, 336, 337, 338,
11877 339, 340, 341, 342, 343, -1, 345, 346, 347, 348,
11878 349, -1, 351, 352, 353, 354, 355, -1, 357, 358,
11879 359, 360, -1, 362, 363, 364, 365, 366, 367, 368,
11880 369, 370, 371, 372, 373, 374, -1, 376, 377, -1,
11881 379, -1, 381, 382, 383, 384, 385, -1, 387, 388,
11882 -1, -1, 391, 392, 393, 394, 395, -1, 397, 398,
11883 399, 400, 401, 402, 403, -1, -1, 406, 407, 408,
11884 409, 410, -1, -1, 413, 414, 415, 416, 417, 418,
11885 419, -1, 421, -1, 423, 424, 425, 426, -1, -1,
11886 429, -1, -1, 432, 433, 434, 435, 436, 437, 438,
11887 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
11888 449, 450, 451, 3, -1, -1, -1, -1, -1, -1,
11889 -1, -1, -1, -1, -1, -1, -1, -1, 18, 19,
11890 20, 21, 22, 23, 24, 25, -1, 27, 28, 29,
11891 -1, -1, -1, -1, -1, 35, -1, 37, 38, -1,
11892 40, 41, 42, -1, 44, 45, 46, 47, 48, -1,
11893 50, 51, -1, 53, 54, 55, 56, 57, -1, -1,
11894 60, 61, 62, 63, 64, -1, 66, 67, 68, 69,
11895 70, -1, -1, -1, 74, 75, 76, 77, 78, -1,
11896 80, 81, 82, -1, 84, 85, 86, 87, 88, 89,
11897 -1, -1, 92, 93, 94, -1, -1, -1, -1, -1,
11898 -1, -1, 102, 103, 104, 105, 106, 107, 108, 109,
11899 110, -1, 112, -1, 114, 115, 116, 117, 118, 119,
11900 -1, 121, 122, 123, 124, 125, -1, -1, 128, 129,
11901 130, 131, 132, -1, 134, 135, 136, -1, 138, 139,
11902 140, -1, 142, 143, 144, 145, 146, 147, 148, 149,
11903 150, -1, 152, -1, 154, 155, 156, 157, -1, 159,
11904 -1, 161, -1, -1, -1, 165, 166, 167, 168, -1,
11905 170, 171, -1, 173, 174, -1, 176, 177, 178, 179,
11906 180, -1, 182, 183, 184, 185, -1, 187, 188, 189,
11907 190, 191, 192, -1, 194, -1, 196, 197, 198, 199,
11908 200, 201, 202, -1, 204, -1, 206, -1, -1, 209,
11909 -1, 211, 212, 213, 214, 215, -1, -1, 218, 219,
11910 -1, 221, -1, -1, 224, 225, 226, -1, -1, 229,
11911 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
11912 240, 241, 242, 243, 244, 245, -1, 247, 248, 249,
11913 250, 251, -1, 253, 254, -1, 256, -1, 258, 259,
11914 260, 261, 262, 263, -1, 265, 266, -1, -1, 269,
11915 270, 271, -1, -1, 274, 275, -1, 277, -1, 279,
11916 280, 281, 282, 283, 284, 285, 286, 287, 288, -1,
11917 290, 291, 292, 293, 294, 295, 296, 297, 298, -1,
11918 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
11919 310, 311, 312, 313, -1, 315, 316, 317, 318, 319,
11920 320, 321, 322, 323, 324, 325, 326, -1, 328, 329,
11921 -1, 331, 332, 333, 334, 335, 336, 337, 338, 339,
11922 340, 341, 342, 343, -1, 345, 346, 347, 348, 349,
11923 -1, -1, 352, 353, 354, 355, -1, 357, 358, 359,
11924 360, -1, 362, 363, 364, 365, 366, 367, 368, 369,
11925 370, 371, 372, 373, 374, -1, 376, 377, -1, 379,
11926 -1, 381, 382, 383, 384, 385, -1, 387, 388, -1,
11927 -1, 391, 392, 393, 394, 395, -1, 397, 398, 399,
11928 400, 401, 402, 403, -1, -1, 406, 407, 408, 409,
11929 410, -1, -1, 413, 414, 415, 416, 417, 418, 419,
11930 -1, 421, -1, 423, 424, 425, 426, -1, -1, 429,
11931 -1, -1, 432, 433, 434, 435, 436, 437, 438, 439,
11932 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
11933 450, 451, 3, -1, -1, -1, -1, -1, -1, -1,
11934 -1, -1, -1, -1, -1, -1, -1, 18, 19, 20,
11935 21, 22, 23, 24, 25, -1, 27, 28, 29, -1,
11936 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
11937 41, 42, -1, 44, 45, 46, 47, 48, -1, 50,
11938 51, -1, 53, 54, 55, 56, 57, -1, -1, 60,
11939 61, 62, 63, 64, -1, 66, 67, 68, 69, 70,
11940 -1, -1, -1, 74, 75, 76, 77, 78, -1, 80,
11941 81, 82, -1, 84, 85, 86, 87, 88, 89, -1,
11942 -1, 92, 93, 94, -1, -1, -1, -1, -1, -1,
11943 -1, 102, 103, 104, 105, 106, 107, 108, 109, 110,
11944 -1, 112, -1, 114, 115, 116, 117, 118, 119, -1,
11945 121, 122, 123, 124, 125, -1, -1, 128, 129, 130,
11946 131, 132, -1, 134, 135, 136, -1, 138, 139, 140,
11947 -1, 142, 143, 144, 145, 146, 147, 148, 149, 150,
11948 -1, 152, -1, 154, 155, 156, 157, -1, 159, -1,
11949 161, -1, -1, -1, 165, 166, 167, 168, -1, 170,
11950 171, -1, 173, 174, -1, 176, 177, 178, 179, 180,
11951 -1, 182, 183, 184, 185, -1, 187, 188, 189, 190,
11952 191, 192, -1, 194, -1, 196, 197, 198, 199, 200,
11953 201, 202, -1, 204, -1, 206, -1, -1, 209, -1,
11954 211, 212, 213, 214, 215, -1, -1, 218, 219, -1,
11955 221, -1, -1, 224, 225, 226, -1, -1, 229, 230,
11956 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
11957 241, 242, 243, 244, 245, -1, 247, 248, 249, 250,
11958 251, -1, 253, 254, -1, 256, -1, 258, 259, 260,
11959 261, 262, 263, -1, 265, 266, -1, -1, 269, 270,
11960 271, -1, -1, 274, 275, -1, 277, -1, 279, 280,
11961 281, 282, 283, 284, 285, 286, 287, 288, -1, 290,
11962 291, 292, 293, 294, 295, 296, 297, 298, -1, 300,
11963 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
11964 311, 312, 313, -1, 315, 316, 317, 318, 319, 320,
11965 321, 322, 323, 324, 325, 326, -1, 328, 329, -1,
11966 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
11967 341, 342, 343, -1, 345, 346, 347, 348, 349, -1,
11968 351, 352, 353, 354, 355, -1, 357, 358, 359, 360,
11969 -1, 362, 363, 364, 365, 366, 367, 368, 369, 370,
11970 371, 372, 373, 374, -1, 376, 377, -1, 379, -1,
11971 381, 382, 383, 384, 385, -1, 387, 388, -1, -1,
11972 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
11973 401, 402, 403, -1, -1, 406, 407, 408, 409, 410,
11974 -1, -1, 413, 414, 415, 416, 417, 418, 419, -1,
11975 421, -1, 423, 424, 425, 426, -1, -1, 429, -1,
11976 -1, 432, 433, 434, 435, 436, 437, 438, 439, 440,
11977 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
11978 451, 3, -1, -1, -1, -1, -1, -1, -1, -1,
11979 -1, -1, -1, -1, -1, -1, 18, 19, 20, 21,
11980 22, 23, 24, 25, -1, 27, 28, 29, -1, -1,
11981 -1, -1, -1, -1, -1, 37, 38, -1, 40, 41,
11982 42, -1, 44, 45, 46, 47, 48, -1, 50, 51,
11983 -1, 53, 54, 55, 56, 57, -1, -1, 60, 61,
11984 62, 63, 64, -1, 66, 67, 68, 69, 70, -1,
11985 -1, -1, 74, 75, 76, 77, 78, -1, 80, 81,
11986 82, -1, 84, 85, 86, 87, 88, 89, -1, -1,
11987 92, 93, 94, -1, -1, -1, -1, -1, -1, -1,
11988 102, 103, 104, 105, 106, 107, 108, 109, 110, -1,
11989 112, -1, 114, 115, 116, 117, 118, 119, -1, 121,
11990 122, 123, 124, 125, -1, -1, 128, 129, 130, 131,
11991 132, -1, 134, 135, 136, -1, 138, 139, 140, -1,
11992 142, 143, 144, 145, 146, 147, 148, 149, 150, -1,
11993 152, -1, 154, 155, 156, 157, -1, 159, -1, 161,
11994 -1, -1, -1, 165, 166, 167, 168, -1, 170, 171,
11995 -1, 173, 174, -1, 176, 177, 178, 179, 180, -1,
11996 182, 183, 184, 185, -1, 187, 188, 189, 190, 191,
11997 192, -1, 194, -1, 196, 197, 198, 199, 200, 201,
11998 202, -1, 204, -1, 206, -1, -1, 209, -1, 211,
11999 212, 213, 214, 215, -1, -1, 218, 219, -1, 221,
12000 -1, -1, 224, 225, 226, -1, -1, 229, 230, 231,
12001 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
12002 242, 243, 244, 245, -1, 247, 248, 249, 250, 251,
12003 -1, 253, 254, -1, 256, -1, 258, 259, 260, 261,
12004 262, 263, -1, 265, 266, -1, -1, 269, 270, 271,
12005 -1, -1, 274, 275, -1, 277, -1, 279, 280, 281,
12006 282, 283, 284, 285, 286, 287, 288, -1, 290, 291,
12007 292, 293, 294, 295, 296, 297, 298, -1, 300, 301,
12008 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
12009 312, 313, -1, 315, 316, 317, 318, 319, 320, 321,
12010 322, 323, 324, 325, 326, -1, 328, 329, -1, 331,
12011 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
12012 342, 343, -1, 345, 346, 347, 348, 349, -1, 351,
12013 352, 353, 354, 355, -1, 357, 358, 359, 360, -1,
12014 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
12015 372, 373, 374, -1, 376, 377, -1, 379, -1, 381,
12016 382, 383, 384, 385, -1, 387, 388, -1, -1, 391,
12017 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
12018 402, 403, -1, -1, 406, 407, 408, 409, 410, -1,
12019 -1, 413, 414, 415, 416, 417, 418, 419, -1, 421,
12020 -1, 423, 424, 425, 426, -1, -1, 429, -1, -1,
12021 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
12022 442, 443, 444, 445, 446, 447, 448, 449, 450, 451,
12023 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12024 -1, -1, -1, -1, -1, 18, 19, 20, 21, 22,
12025 23, 24, 25, -1, 27, 28, 29, -1, -1, -1,
12026 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
12027 -1, 44, 45, 46, 47, 48, -1, 50, 51, -1,
12028 53, 54, 55, 56, 57, -1, -1, 60, 61, 62,
12029 63, 64, -1, 66, 67, 68, 69, 70, -1, -1,
12030 -1, 74, 75, 76, 77, 78, -1, 80, 81, 82,
12031 -1, 84, 85, 86, 87, 88, 89, -1, -1, 92,
12032 93, 94, -1, -1, -1, -1, -1, -1, -1, 102,
12033 103, 104, 105, 106, 107, 108, 109, 110, -1, 112,
12034 -1, 114, 115, 116, 117, 118, 119, -1, 121, 122,
12035 123, 124, 125, -1, -1, 128, 129, 130, 131, 132,
12036 -1, 134, 135, 136, -1, 138, 139, 140, -1, 142,
12037 143, 144, 145, 146, 147, 148, 149, 150, -1, 152,
12038 -1, 154, 155, 156, 157, -1, 159, -1, 161, -1,
12039 -1, -1, 165, 166, 167, 168, -1, 170, 171, -1,
12040 173, 174, -1, 176, 177, 178, 179, 180, -1, 182,
12041 183, 184, 185, -1, 187, 188, 189, 190, 191, 192,
12042 -1, 194, -1, 196, 197, 198, 199, 200, 201, 202,
12043 -1, 204, -1, 206, -1, -1, 209, -1, 211, 212,
12044 213, 214, 215, -1, -1, 218, 219, -1, 221, -1,
12045 -1, 224, 225, 226, -1, -1, 229, 230, 231, 232,
12046 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
12047 243, 244, 245, -1, 247, 248, 249, 250, 251, -1,
12048 253, 254, -1, 256, -1, 258, 259, 260, 261, 262,
12049 263, -1, 265, 266, -1, -1, 269, 270, 271, -1,
12050 -1, 274, 275, -1, 277, -1, 279, 280, 281, 282,
12051 283, 284, 285, 286, 287, 288, -1, 290, 291, 292,
12052 293, 294, 295, 296, 297, 298, -1, 300, 301, 302,
12053 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
12054 313, -1, 315, 316, 317, 318, 319, 320, 321, 322,
12055 323, 324, 325, 326, -1, 328, 329, -1, 331, 332,
12056 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
12057 343, -1, 345, 346, 347, 348, 349, -1, 351, 352,
12058 353, 354, 355, -1, 357, 358, 359, 360, -1, 362,
12059 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
12060 373, 374, -1, 376, 377, -1, 379, -1, 381, 382,
12061 383, 384, 385, -1, 387, 388, -1, -1, 391, 392,
12062 393, 394, 395, -1, 397, 398, 399, 400, 401, 402,
12063 403, -1, -1, 406, 407, 408, 409, 410, -1, -1,
12064 413, 414, 415, 416, 417, 418, 419, -1, 421, -1,
12065 423, 424, 425, 426, -1, -1, 429, -1, -1, 432,
12066 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
12067 443, 444, 445, 446, 447, 448, 449, 450, 451, 3,
12068 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12069 -1, -1, -1, -1, 18, 19, 20, 21, 22, 23,
12070 24, 25, -1, 27, 28, 29, -1, -1, -1, -1,
12071 -1, -1, -1, 37, 38, -1, 40, 41, 42, -1,
12072 44, 45, 46, 47, 48, -1, 50, 51, -1, 53,
12073 54, 55, 56, 57, -1, -1, 60, 61, 62, 63,
12074 64, -1, 66, 67, 68, 69, 70, -1, -1, -1,
12075 74, 75, 76, 77, 78, -1, 80, 81, 82, -1,
12076 84, 85, 86, 87, 88, 89, -1, -1, 92, 93,
12077 94, -1, -1, -1, -1, -1, -1, -1, 102, 103,
12078 104, 105, 106, 107, 108, 109, 110, -1, 112, -1,
12079 114, 115, 116, 117, 118, 119, -1, 121, 122, 123,
12080 124, 125, -1, -1, 128, 129, 130, 131, 132, -1,
12081 134, 135, 136, -1, 138, 139, 140, -1, 142, 143,
12082 144, 145, 146, 147, 148, 149, 150, -1, 152, -1,
12083 154, 155, 156, 157, -1, 159, -1, 161, -1, -1,
12084 -1, 165, 166, 167, 168, -1, 170, 171, -1, 173,
12085 174, -1, 176, 177, 178, 179, 180, -1, 182, 183,
12086 184, 185, -1, 187, 188, 189, 190, 191, 192, -1,
12087 194, -1, 196, 197, 198, 199, 200, 201, 202, -1,
12088 204, -1, 206, -1, -1, 209, -1, 211, 212, 213,
12089 214, 215, -1, -1, 218, 219, -1, 221, -1, -1,
12090 224, 225, 226, -1, -1, 229, 230, 231, 232, 233,
12091 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
12092 244, 245, -1, 247, 248, 249, 250, 251, -1, 253,
12093 254, -1, 256, -1, 258, 259, 260, 261, 262, 263,
12094 -1, 265, 266, -1, -1, 269, 270, 271, -1, -1,
12095 274, 275, -1, 277, -1, 279, 280, 281, 282, 283,
12096 284, 285, 286, 287, 288, -1, 290, 291, 292, 293,
12097 294, 295, 296, 297, 298, -1, 300, 301, 302, 303,
12098 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
12099 -1, 315, 316, 317, 318, 319, 320, 321, 322, 323,
12100 324, 325, 326, -1, 328, 329, -1, 331, 332, 333,
12101 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
12102 -1, 345, 346, 347, 348, 349, -1, 351, 352, 353,
12103 354, 355, -1, 357, 358, 359, 360, -1, 362, 363,
12104 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
12105 374, -1, 376, 377, -1, 379, -1, 381, 382, 383,
12106 384, 385, -1, 387, 388, -1, -1, 391, 392, 393,
12107 394, 395, -1, 397, 398, 399, 400, 401, 402, 403,
12108 -1, -1, 406, 407, 408, 409, 410, -1, -1, 413,
12109 414, 415, 416, 417, 418, 419, -1, 421, -1, 423,
12110 424, 425, 426, -1, -1, 429, -1, -1, 432, 433,
12111 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
12112 444, 445, 446, 447, 448, 449, 450, 451, 3, -1,
12113 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12114 -1, -1, -1, 18, 19, 20, 21, 22, 23, 24,
12115 25, -1, 27, 28, 29, -1, -1, -1, -1, -1,
12116 -1, -1, 37, 38, -1, 40, 41, 42, -1, 44,
12117 45, 46, 47, 48, -1, 50, 51, -1, 53, 54,
12118 55, 56, 57, -1, -1, 60, 61, 62, 63, 64,
12119 -1, 66, 67, 68, 69, 70, -1, -1, -1, 74,
12120 75, 76, 77, 78, -1, 80, 81, 82, -1, 84,
12121 85, 86, 87, 88, 89, -1, -1, 92, 93, 94,
12122 -1, -1, -1, -1, -1, -1, -1, 102, 103, 104,
12123 105, 106, 107, 108, 109, 110, -1, 112, -1, 114,
12124 115, 116, 117, 118, 119, -1, 121, 122, 123, 124,
12125 125, -1, -1, 128, 129, 130, 131, 132, -1, 134,
12126 135, 136, -1, 138, 139, 140, -1, 142, 143, 144,
12127 145, 146, 147, 148, 149, 150, -1, 152, -1, 154,
12128 155, 156, 157, -1, 159, -1, 161, -1, -1, -1,
12129 165, 166, 167, 168, -1, 170, 171, -1, 173, 174,
12130 -1, 176, 177, 178, 179, 180, -1, 182, 183, 184,
12131 185, -1, 187, 188, 189, 190, 191, 192, -1, 194,
12132 -1, 196, 197, 198, 199, 200, 201, 202, -1, 204,
12133 -1, 206, -1, -1, 209, -1, 211, 212, 213, 214,
12134 215, -1, -1, 218, 219, -1, 221, -1, -1, 224,
12135 225, 226, -1, -1, 229, 230, 231, 232, 233, 234,
12136 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
12137 245, -1, 247, 248, 249, 250, 251, -1, 253, 254,
12138 -1, 256, -1, 258, 259, 260, 261, 262, 263, -1,
12139 265, 266, -1, -1, 269, 270, 271, -1, -1, 274,
12140 275, -1, 277, -1, 279, 280, 281, 282, 283, 284,
12141 285, 286, 287, 288, -1, 290, 291, 292, 293, 294,
12142 295, 296, 297, 298, -1, 300, 301, 302, 303, 304,
12143 305, 306, 307, 308, 309, 310, 311, 312, 313, -1,
12144 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
12145 325, 326, -1, 328, 329, -1, 331, 332, 333, 334,
12146 335, 336, 337, 338, 339, 340, 341, 342, 343, -1,
12147 345, 346, 347, 348, 349, -1, 351, 352, 353, 354,
12148 355, -1, 357, 358, 359, 360, -1, 362, 363, 364,
12149 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
12150 -1, 376, 377, -1, 379, -1, 381, 382, 383, 384,
12151 385, -1, 387, 388, -1, -1, 391, 392, 393, 394,
12152 395, -1, 397, 398, 399, 400, 401, 402, 403, -1,
12153 -1, 406, 407, 408, 409, 410, -1, -1, 413, 414,
12154 415, 416, 417, 418, 419, -1, 421, -1, 423, 424,
12155 425, 426, -1, -1, 429, -1, -1, 432, 433, 434,
12156 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
12157 445, 446, 447, 448, 449, 450, 451, 3, -1, -1,
12158 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12159 -1, -1, 18, 19, 20, 21, 22, 23, 24, 25,
12160 -1, 27, 28, 29, -1, -1, -1, -1, -1, -1,
12161 -1, 37, 38, -1, 40, 41, 42, -1, 44, 45,
12162 46, 47, 48, -1, 50, 51, -1, 53, 54, 55,
12163 56, 57, -1, -1, 60, 61, 62, 63, 64, -1,
12164 66, 67, 68, 69, 70, -1, -1, -1, 74, 75,
12165 76, 77, 78, -1, 80, 81, 82, -1, 84, 85,
12166 86, 87, 88, 89, -1, -1, 92, 93, 94, -1,
12167 -1, -1, -1, -1, -1, -1, 102, 103, 104, 105,
12168 106, 107, 108, 109, 110, -1, 112, -1, 114, 115,
12169 116, 117, 118, 119, -1, 121, 122, 123, 124, 125,
12170 -1, -1, 128, 129, 130, 131, 132, -1, 134, 135,
12171 136, -1, 138, 139, 140, -1, 142, 143, 144, 145,
12172 146, 147, 148, 149, 150, -1, 152, -1, 154, 155,
12173 156, 157, -1, 159, -1, 161, -1, -1, -1, 165,
12174 166, 167, 168, -1, 170, 171, -1, 173, 174, -1,
12175 176, 177, 178, 179, 180, -1, 182, 183, 184, 185,
12176 -1, 187, 188, 189, 190, 191, 192, -1, 194, -1,
12177 196, 197, 198, 199, 200, 201, 202, -1, 204, -1,
12178 206, -1, -1, 209, -1, 211, 212, 213, 214, 215,
12179 -1, -1, 218, 219, -1, 221, -1, -1, 224, 225,
12180 226, -1, -1, 229, 230, 231, 232, 233, 234, 235,
12181 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
12182 -1, 247, 248, 249, 250, 251, -1, 253, 254, -1,
12183 256, -1, 258, 259, 260, 261, 262, 263, -1, 265,
12184 266, -1, -1, 269, 270, 271, -1, -1, 274, 275,
12185 -1, 277, -1, 279, 280, 281, 282, 283, 284, 285,
12186 286, 287, 288, -1, 290, 291, 292, 293, 294, 295,
12187 296, 297, 298, -1, 300, 301, 302, 303, 304, 305,
12188 306, 307, 308, 309, 310, 311, 312, 313, -1, 315,
12189 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
12190 326, -1, 328, 329, -1, 331, 332, 333, 334, 335,
12191 336, 337, 338, 339, 340, 341, 342, 343, -1, 345,
12192 346, 347, 348, 349, -1, 351, 352, 353, 354, 355,
12193 -1, 357, 358, 359, 360, -1, 362, 363, 364, 365,
12194 366, 367, 368, 369, 370, 371, 372, 373, 374, -1,
12195 376, 377, -1, 379, -1, 381, 382, 383, 384, 385,
12196 -1, 387, 388, -1, -1, 391, 392, 393, 394, 395,
12197 -1, 397, 398, 399, 400, 401, 402, 403, -1, -1,
12198 406, 407, 408, 409, 410, -1, -1, 413, 414, 415,
12199 416, 417, 418, 419, -1, 421, -1, 423, 424, 425,
12200 426, -1, -1, 429, -1, -1, 432, 433, 434, 435,
12201 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
12202 446, 447, 448, 449, 450, 451, 3, -1, -1, -1,
12203 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12204 -1, 18, 19, 20, 21, 22, 23, 24, 25, -1,
12205 27, 28, 29, -1, -1, -1, -1, -1, -1, -1,
12206 37, 38, -1, 40, 41, 42, -1, 44, 45, 46,
12207 47, 48, -1, 50, 51, -1, 53, 54, 55, 56,
12208 57, -1, -1, 60, 61, 62, 63, 64, -1, 66,
12209 67, 68, 69, 70, -1, -1, -1, 74, 75, 76,
12210 77, 78, -1, 80, 81, 82, -1, 84, 85, 86,
12211 87, 88, 89, -1, -1, 92, 93, 94, -1, -1,
12212 -1, -1, -1, -1, -1, 102, 103, 104, 105, 106,
12213 107, 108, 109, 110, -1, 112, -1, 114, 115, 116,
12214 117, 118, 119, -1, 121, 122, 123, 124, 125, -1,
12215 -1, 128, 129, 130, 131, 132, -1, 134, 135, 136,
12216 -1, 138, 139, 140, -1, 142, 143, 144, 145, 146,
12217 147, 148, 149, 150, -1, 152, -1, 154, 155, 156,
12218 157, -1, 159, -1, 161, -1, -1, -1, 165, 166,
12219 167, 168, -1, 170, 171, -1, 173, 174, -1, 176,
12220 177, 178, 179, 180, -1, 182, 183, 184, 185, -1,
12221 187, 188, 189, 190, 191, 192, -1, 194, -1, 196,
12222 197, 198, 199, 200, 201, 202, -1, 204, -1, 206,
12223 -1, -1, 209, -1, 211, 212, 213, 214, 215, -1,
12224 -1, 218, 219, -1, 221, -1, -1, 224, 225, 226,
12225 -1, -1, 229, 230, 231, 232, 233, 234, 235, 236,
12226 237, 238, 239, 240, 241, 242, 243, 244, 245, -1,
12227 247, 248, 249, 250, 251, -1, 253, 254, -1, 256,
12228 -1, 258, 259, 260, 261, 262, 263, -1, 265, 266,
12229 -1, -1, 269, 270, 271, -1, -1, 274, 275, -1,
12230 277, -1, 279, 280, 281, 282, 283, 284, 285, -1,
12231 287, 288, -1, 290, 291, 292, 293, 294, 295, 296,
12232 297, 298, -1, 300, 301, 302, 303, 304, 305, 306,
12233 -1, 308, 309, 310, 311, 312, 313, -1, 315, 316,
12234 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
12235 -1, 328, 329, -1, 331, 332, 333, 334, -1, 336,
12236 337, 338, 339, 340, 341, 342, 343, -1, 345, 346,
12237 347, 348, 349, -1, 351, 352, 353, 354, 355, -1,
12238 357, 358, 359, 360, -1, 362, 363, 364, 365, 366,
12239 367, 368, 369, 370, 371, 372, 373, 374, -1, 376,
12240 377, -1, 379, -1, 381, 382, 383, 384, 385, -1,
12241 387, 388, -1, -1, 391, 392, 393, 394, 395, -1,
12242 397, 398, 399, 400, 401, 402, 403, -1, -1, 406,
12243 407, 408, 409, 410, -1, -1, 413, 414, 415, 416,
12244 417, 418, 419, -1, 421, -1, 423, 424, 425, 426,
12245 -1, -1, 429, -1, -1, 432, 433, 434, 435, 436,
12246 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
12247 447, 448, 449, 450, 451, 3, -1, -1, -1, -1,
12248 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12249 18, 19, 20, 21, 22, 23, 24, 25, -1, 27,
12250 28, 29, -1, -1, -1, -1, -1, -1, -1, 37,
12251 38, -1, 40, 41, 42, 43, 44, 45, 46, -1,
12252 48, 49, 50, 51, -1, 53, 54, 55, 56, 57,
12253 -1, -1, 60, 61, 62, 63, 64, -1, 66, 67,
12254 68, 69, -1, -1, 72, -1, 74, 75, 76, 77,
12255 78, 79, 80, 81, 82, -1, 84, 85, 86, 87,
12256 88, 89, -1, 91, 92, 93, 94, -1, -1, -1,
12257 98, -1, -1, -1, 102, 103, 104, 105, 106, 107,
12258 108, 109, 110, -1, 112, -1, 114, 115, 116, 117,
12259 118, 119, -1, 121, 122, 123, 124, 125, -1, -1,
12260 128, 129, 130, 131, 132, -1, 134, 135, 136, -1,
12261 138, 139, 140, -1, 142, 143, 144, 145, -1, 147,
12262 148, 149, -1, -1, 152, -1, 154, 155, 156, 157,
12263 -1, 159, -1, 161, 162, -1, 164, 165, 166, 167,
12264 168, -1, 170, -1, -1, -1, 174, -1, 176, 177,
12265 178, 179, 180, 181, 182, 183, 184, 185, -1, 187,
12266 188, 189, 190, 191, 192, -1, 194, 195, -1, 197,
12267 198, 199, 200, 201, 202, -1, 204, -1, 206, 207,
12268 208, 209, 210, 211, 212, 213, 214, 215, -1, -1,
12269 218, -1, 220, 221, 222, -1, 224, 225, 226, -1,
12270 -1, 229, 230, 231, 232, 233, 234, 235, 236, 237,
12271 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
12272 248, 249, 250, -1, -1, 253, 254, 255, 256, -1,
12273 -1, 259, 260, 261, 262, 263, -1, 265, 266, -1,
12274 -1, 269, 270, 271, -1, -1, 274, -1, 276, 277,
12275 278, -1, 280, 281, 282, 283, 284, 285, 286, 287,
12276 288, -1, 290, 291, -1, 293, 294, -1, 296, 297,
12277 298, -1, 300, 301, 302, 303, 304, 305, 306, 307,
12278 308, 309, 310, 311, 312, 313, -1, 315, 316, 317,
12279 318, 319, 320, 321, 322, 323, 324, 325, 326, -1,
12280 328, 329, 330, 331, 332, 333, -1, 335, 336, 337,
12281 338, 339, 340, 341, 342, 343, -1, 345, 346, 347,
12282 348, 349, -1, 351, 352, 353, 354, 355, 356, 357,
12283 358, 359, 360, -1, 362, 363, 364, 365, 366, 367,
12284 368, 369, 370, 371, 372, 373, -1, -1, 376, 377,
12285 -1, 379, 380, 381, 382, 383, 384, 385, -1, 387,
12286 388, -1, -1, 391, 392, -1, 394, -1, -1, 397,
12287 398, 399, 400, 401, 402, 403, -1, -1, 406, 407,
12288 408, 409, 410, -1, -1, 413, 414, 415, 416, 417,
12289 -1, 419, -1, 421, 422, 423, 424, 425, 426, -1,
12290 -1, 429, -1, -1, 432, 433, 434, 435, 436, 437,
12291 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12292 -1, 449, 450, 451, -1, 18, 19, 20, 21, 22,
12293 23, 24, 25, -1, 27, 28, 29, -1, -1, -1,
12294 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
12295 43, 44, 45, 46, -1, 48, 49, 50, 51, -1,
12296 53, 54, 55, 56, 57, -1, -1, 60, 61, 62,
12297 63, 64, -1, 66, 67, 68, 69, -1, -1, 72,
12298 -1, 74, 75, 76, 77, 78, 79, 80, 81, 82,
12299 -1, 84, 85, 86, 87, 88, 89, -1, 91, 92,
12300 93, 94, -1, -1, -1, 98, -1, -1, -1, 102,
12301 103, 104, 105, 106, 107, 108, 109, 110, -1, 112,
12302 -1, 114, 115, 116, 117, 118, 119, -1, 121, 122,
12303 123, 124, 125, -1, -1, 128, 129, 130, 131, 132,
12304 -1, 134, 135, 136, -1, 138, 139, 140, -1, 142,
12305 143, 144, 145, -1, 147, 148, 149, -1, -1, 152,
12306 -1, 154, 155, 156, 157, -1, 159, -1, 161, 162,
12307 -1, 164, 165, 166, 167, 168, -1, 170, -1, -1,
12308 -1, 174, -1, 176, 177, 178, 179, 180, 181, 182,
12309 183, 184, 185, -1, 187, 188, 189, 190, 191, 192,
12310 -1, 194, 195, -1, 197, 198, 199, 200, 201, 202,
12311 -1, 204, -1, 206, 207, 208, 209, 210, 211, 212,
12312 213, 214, 215, -1, -1, 218, -1, 220, 221, 222,
12313 -1, 224, 225, 226, -1, -1, 229, 230, 231, 232,
12314 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
12315 243, 244, 245, 246, 247, 248, 249, 250, -1, -1,
12316 253, 254, 255, 256, -1, -1, 259, 260, 261, 262,
12317 263, -1, 265, 266, -1, -1, 269, 270, 271, -1,
12318 -1, 274, -1, 276, 277, 278, -1, 280, 281, 282,
12319 283, 284, 285, 286, 287, 288, -1, 290, 291, -1,
12320 293, 294, -1, 296, 297, 298, -1, 300, 301, 302,
12321 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
12322 313, -1, 315, 316, 317, 318, 319, 320, 321, 322,
12323 323, 324, 325, 326, -1, 328, 329, 330, 331, 332,
12324 333, -1, 335, 336, 337, 338, 339, 340, 341, 342,
12325 343, -1, 345, 346, 347, 348, 349, -1, 351, -1,
12326 353, 354, 355, 356, 357, 358, 359, 360, -1, 362,
12327 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
12328 373, -1, -1, 376, 377, -1, 379, 380, 381, 382,
12329 383, 384, 385, -1, 387, 388, -1, -1, 391, 392,
12330 -1, 394, -1, -1, 397, 398, 399, 400, 401, 402,
12331 403, -1, -1, 406, 407, 408, 409, 410, -1, -1,
12332 413, 414, 415, 416, 417, -1, 419, -1, 421, 422,
12333 423, 424, 425, 426, -1, -1, 429, -1, -1, 432,
12334 433, 434, 435, 436, 437, -1, -1, -1, -1, -1,
12335 -1, -1, -1, -1, -1, -1, 449, 450, 451
12336};
12337
12338/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
12339 symbol of state STATE-NUM. */
12340static const yytype_uint16 yystos[] =
12341{
12342 0, 18, 28, 30, 31, 46, 66, 77, 88, 90,
12343 107, 121, 131, 137, 145, 147, 225, 293, 296, 324,
12344 332, 344, 351, 355, 365, 378, 413, 418, 431, 454,
12345 468, 476, 477, 478, 479, 490, 491, 493, 497, 511,
12346 512, 514, 516, 523, 525, 571, 577, 578, 595, 596,
12347 597, 598, 599, 600, 637, 754, 757, 760, 767, 768,
12348 769, 776, 780, 786, 788, 793, 797, 798, 801, 802,
12349 804, 806, 391, 434, 524, 189, 338, 345, 378, 424,
12350 524, 524, 49, 468, 590, 168, 226, 272, 338, 382,
12351 384, 405, 408, 569, 766, 3, 18, 19, 20, 21,
12352 22, 23, 24, 25, 26, 27, 28, 29, 37, 38,
12353 40, 41, 42, 44, 45, 46, 47, 48, 50, 51,
12354 53, 54, 55, 56, 57, 60, 61, 62, 63, 64,
12355 66, 67, 68, 69, 70, 74, 75, 76, 77, 78,
12356 80, 81, 82, 84, 85, 86, 87, 88, 89, 92,
12357 93, 94, 102, 103, 104, 105, 106, 107, 108, 109,
12358 110, 112, 114, 115, 116, 117, 118, 119, 121, 122,
12359 123, 124, 125, 128, 129, 130, 131, 132, 134, 135,
12360 136, 138, 139, 140, 142, 143, 144, 145, 146, 147,
12361 148, 149, 150, 152, 154, 155, 156, 157, 159, 161,
12362 165, 166, 167, 168, 170, 171, 173, 174, 176, 177,
12363 178, 179, 180, 182, 183, 184, 185, 187, 188, 189,
12364 190, 191, 192, 194, 196, 197, 198, 199, 200, 201,
12365 202, 204, 206, 209, 211, 212, 213, 214, 215, 218,
12366 219, 221, 224, 225, 226, 229, 230, 231, 232, 233,
12367 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
12368 244, 245, 247, 248, 249, 250, 251, 253, 254, 256,
12369 258, 259, 260, 261, 262, 263, 265, 266, 269, 270,
12370 271, 274, 275, 277, 279, 280, 281, 282, 283, 284,
12371 285, 286, 287, 288, 290, 291, 292, 293, 294, 295,
12372 296, 297, 298, 300, 301, 302, 303, 304, 305, 306,
12373 307, 308, 309, 310, 311, 312, 313, 315, 316, 317,
12374 318, 319, 320, 321, 322, 323, 324, 325, 326, 328,
12375 329, 331, 332, 333, 334, 335, 336, 337, 338, 339,
12376 340, 341, 342, 343, 345, 346, 347, 348, 349, 351,
12377 352, 353, 354, 355, 357, 358, 359, 360, 362, 363,
12378 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
12379 374, 376, 377, 379, 381, 382, 383, 384, 385, 387,
12380 388, 391, 392, 393, 394, 395, 397, 398, 399, 400,
12381 401, 402, 403, 406, 407, 408, 409, 410, 413, 414,
12382 415, 416, 417, 418, 419, 421, 423, 424, 425, 426,
12383 429, 432, 433, 434, 435, 436, 437, 438, 439, 440,
12384 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
12385 451, 741, 747, 809, 810, 20, 72, 87, 140, 148,
12386 160, 189, 235, 291, 305, 336, 338, 345, 348, 367,
12387 378, 385, 394, 424, 572, 573, 576, 524, 296, 741,
12388 90, 422, 468, 493, 577, 595, 772, 776, 793, 806,
12389 5, 746, 787, 747, 741, 26, 387, 391, 747, 799,
12390 800, 803, 524, 26, 126, 607, 608, 226, 338, 349,
12391 387, 781, 782, 803, 524, 268, 648, 739, 747, 164,
12392 468, 790, 468, 312, 601, 602, 741, 601, 596, 597,
12393 600, 0, 471, 116, 199, 410, 141, 203, 273, 404,
12394 609, 610, 596, 598, 599, 472, 422, 770, 26, 387,
12395 391, 803, 180, 739, 741, 180, 739, 180, 648, 180,
12396 739, 493, 577, 595, 756, 793, 739, 382, 384, 382,
12397 384, 322, 180, 747, 312, 345, 378, 424, 189, 26,
12398 741, 237, 394, 104, 378, 424, 341, 180, 574, 747,
12399 749, 180, 740, 741, 180, 741, 468, 515, 569, 772,
12400 3, 43, 49, 72, 79, 91, 98, 162, 164, 181,
12401 195, 207, 208, 210, 220, 222, 246, 255, 276, 278,
12402 330, 356, 380, 418, 422, 773, 775, 776, 778, 779,
12403 809, 810, 811, 770, 457, 468, 468, 755, 451, 209,
12404 470, 267, 3, 4, 6, 7, 8, 9, 10, 48,
12405 50, 51, 58, 59, 62, 63, 70, 72, 95, 96,
12406 97, 98, 99, 100, 101, 108, 109, 111, 130, 146,
12407 150, 151, 156, 171, 201, 202, 204, 219, 227, 228,
12408 245, 247, 252, 257, 258, 260, 269, 279, 292, 309,
12409 334, 350, 359, 374, 387, 388, 393, 395, 396, 411,
12410 419, 452, 459, 460, 461, 468, 473, 596, 663, 666,
12411 669, 670, 671, 673, 674, 675, 676, 678, 679, 683,
12412 685, 686, 687, 689, 702, 706, 724, 729, 736, 737,
12413 743, 744, 745, 746, 747, 748, 809, 811, 735, 736,
12414 781, 746, 781, 451, 163, 389, 457, 468, 739, 461,
12415 466, 470, 730, 732, 3, 162, 164, 422, 776, 789,
12416 791, 162, 792, 683, 710, 601, 472, 468, 751, 469,
12417 469, 478, 163, 205, 648, 794, 26, 126, 606, 606,
12418 53, 606, 153, 158, 223, 264, 615, 617, 618, 630,
12419 632, 633, 634, 609, 610, 468, 739, 451, 209, 146,
12420 22, 28, 131, 271, 320, 324, 351, 415, 484, 487,
12421 488, 320, 146, 35, 54, 103, 188, 236, 239, 250,
12422 281, 320, 325, 345, 351, 365, 487, 517, 520, 146,
12423 320, 351, 487, 146, 320, 351, 487, 469, 468, 559,
12424 569, 252, 758, 424, 180, 739, 180, 739, 808, 739,
12425 79, 763, 435, 80, 123, 284, 383, 146, 56, 326,
12426 472, 575, 470, 750, 146, 472, 575, 146, 267, 710,
12427 378, 469, 472, 4, 151, 267, 396, 459, 460, 519,
12428 522, 745, 746, 771, 773, 774, 777, 772, 519, 777,
12429 783, 785, 683, 711, 712, 748, 752, 3, 48, 50,
12430 51, 62, 63, 108, 109, 156, 201, 202, 204, 245,
12431 247, 260, 309, 352, 359, 387, 388, 419, 660, 662,
12432 664, 666, 668, 670, 671, 672, 674, 675, 678, 679,
12433 713, 748, 809, 35, 221, 747, 468, 733, 421, 677,
12434 683, 728, 468, 677, 677, 468, 158, 468, 468, 468,
12435 665, 665, 295, 596, 468, 468, 667, 468, 468, 468,
12436 468, 62, 63, 677, 683, 468, 665, 468, 468, 468,
12437 468, 468, 433, 454, 468, 680, 468, 680, 468, 468,
12438 683, 683, 683, 596, 683, 710, 733, 732, 746, 468,
12439 468, 746, 3, 8, 11, 15, 16, 17, 32, 35,
12440 40, 47, 71, 181, 186, 207, 208, 222, 252, 255,
12441 269, 272, 356, 452, 455, 456, 457, 459, 460, 461,
12442 462, 463, 464, 704, 705, 706, 708, 432, 690, 278,
12443 683, 205, 472, 603, 468, 746, 732, 603, 3, 111,
12444 226, 519, 679, 746, 784, 94, 111, 785, 111, 785,
12445 739, 683, 731, 3, 26, 30, 31, 32, 33, 34,
12446 35, 36, 39, 52, 58, 59, 65, 71, 73, 83,
12447 90, 95, 96, 97, 99, 100, 101, 111, 113, 120,
12448 126, 127, 133, 137, 141, 151, 153, 158, 160, 163,
12449 169, 172, 175, 186, 193, 203, 205, 216, 217, 223,
12450 227, 228, 252, 257, 264, 267, 268, 272, 273, 289,
12451 299, 314, 327, 344, 350, 361, 375, 378, 386, 389,
12452 390, 396, 404, 405, 411, 412, 420, 427, 428, 430,
12453 431, 461, 742, 753, 809, 810, 811, 812, 730, 469,
12454 472, 770, 469, 472, 602, 740, 35, 794, 495, 739,
12455 35, 747, 351, 598, 598, 611, 612, 683, 598, 155,
12456 249, 624, 211, 250, 308, 354, 410, 26, 619, 683,
12457 459, 460, 620, 621, 683, 685, 630, 631, 618, 617,
12458 615, 616, 158, 633, 262, 635, 615, 630, 710, 751,
12459 221, 739, 65, 73, 83, 160, 180, 299, 405, 540,
12460 550, 565, 747, 73, 83, 492, 83, 492, 468, 389,
12461 468, 538, 232, 408, 538, 83, 472, 389, 739, 662,
12462 519, 53, 521, 519, 519, 103, 236, 239, 53, 389,
12463 431, 454, 518, 243, 338, 518, 520, 648, 83, 389,
12464 492, 338, 739, 389, 338, 389, 558, 563, 747, 431,
12465 588, 312, 424, 146, 90, 512, 525, 759, 760, 804,
12466 739, 252, 513, 517, 252, 468, 559, 35, 559, 180,
12467 553, 747, 764, 574, 749, 742, 470, 740, 741, 741,
12468 749, 469, 180, 739, 808, 772, 778, 4, 745, 4,
12469 745, 472, 469, 472, 13, 14, 662, 34, 661, 106,
12470 178, 238, 241, 342, 449, 468, 681, 682, 469, 472,
12471 665, 750, 756, 710, 730, 468, 427, 725, 726, 683,
12472 710, 468, 745, 745, 710, 3, 106, 178, 238, 241,
12473 342, 449, 714, 715, 746, 745, 710, 710, 745, 745,
12474 677, 677, 683, 8, 15, 16, 17, 455, 456, 457,
12475 459, 460, 461, 462, 463, 464, 704, 709, 747, 683,
12476 716, 459, 460, 468, 684, 685, 706, 718, 469, 710,
12477 683, 710, 719, 387, 387, 745, 745, 683, 52, 163,
12478 217, 390, 683, 710, 722, 469, 472, 745, 473, 745,
12479 681, 660, 683, 683, 683, 683, 753, 387, 39, 375,
12480 734, 749, 683, 468, 596, 723, 126, 151, 252, 257,
12481 262, 396, 406, 683, 257, 468, 683, 389, 47, 181,
12482 186, 222, 356, 683, 683, 683, 683, 683, 683, 683,
12483 683, 683, 683, 26, 33, 361, 703, 172, 154, 691,
12484 334, 468, 702, 168, 226, 378, 382, 384, 408, 604,
12485 739, 737, 163, 638, 26, 126, 420, 461, 469, 711,
12486 638, 468, 746, 469, 467, 474, 739, 789, 739, 797,
12487 683, 469, 468, 412, 796, 111, 280, 468, 494, 595,
12488 35, 747, 468, 499, 508, 510, 747, 472, 36, 120,
12489 412, 613, 334, 335, 459, 460, 621, 623, 685, 354,
12490 211, 268, 472, 4, 622, 745, 622, 334, 335, 623,
12491 738, 739, 256, 358, 636, 631, 616, 469, 320, 487,
12492 468, 180, 550, 741, 211, 252, 211, 412, 468, 543,
12493 660, 741, 747, 180, 741, 180, 747, 22, 131, 351,
12494 483, 486, 533, 548, 753, 741, 542, 562, 753, 741,
12495 484, 741, 320, 351, 487, 517, 519, 749, 741, 519,
12496 749, 741, 519, 320, 351, 487, 741, 741, 741, 741,
12497 320, 351, 487, 741, 741, 304, 584, 469, 472, 265,
12498 163, 389, 579, 424, 739, 747, 569, 468, 146, 146,
12499 222, 540, 550, 554, 557, 566, 568, 747, 431, 433,
12500 545, 145, 595, 431, 765, 252, 267, 575, 742, 575,
12501 267, 575, 252, 35, 783, 712, 683, 683, 34, 661,
12502 466, 466, 389, 389, 389, 468, 389, 745, 660, 665,
12503 469, 710, 683, 133, 726, 727, 35, 469, 683, 469,
12504 469, 469, 469, 163, 469, 469, 469, 469, 469, 472,
12505 469, 470, 289, 717, 469, 684, 684, 683, 11, 15,
12506 16, 17, 186, 207, 269, 455, 456, 457, 459, 460,
12507 461, 462, 463, 464, 706, 684, 469, 469, 158, 163,
12508 720, 721, 469, 451, 451, 469, 469, 35, 722, 710,
12509 722, 722, 163, 469, 733, 683, 469, 469, 469, 451,
12510 684, 684, 139, 710, 163, 126, 151, 257, 262, 396,
12511 406, 468, 139, 709, 683, 375, 734, 683, 723, 683,
12512 389, 468, 596, 468, 468, 277, 695, 382, 384, 382,
12513 384, 739, 378, 605, 605, 605, 216, 335, 468, 596,
12514 639, 640, 641, 648, 651, 686, 688, 689, 743, 747,
12515 428, 656, 711, 711, 712, 469, 472, 609, 610, 656,
12516 745, 681, 683, 731, 751, 756, 639, 428, 795, 418,
12517 377, 411, 503, 498, 507, 747, 267, 500, 747, 504,
12518 510, 472, 638, 457, 733, 612, 269, 704, 707, 453,
12519 614, 4, 745, 623, 268, 410, 620, 472, 231, 389,
12520 683, 252, 565, 468, 146, 468, 543, 189, 563, 526,
12521 271, 536, 526, 22, 131, 324, 325, 351, 480, 481,
12522 482, 488, 489, 146, 575, 146, 575, 533, 548, 533,
12523 469, 472, 529, 746, 469, 472, 457, 470, 389, 338,
12524 83, 389, 492, 338, 389, 389, 389, 338, 368, 369,
12525 593, 746, 558, 584, 739, 559, 758, 378, 563, 739,
12526 739, 808, 739, 469, 472, 265, 538, 265, 267, 537,
12527 741, 431, 807, 538, 35, 146, 739, 749, 146, 466,
12528 745, 467, 745, 178, 238, 682, 238, 682, 682, 745,
12529 241, 469, 469, 386, 683, 137, 660, 469, 683, 683,
12530 709, 683, 720, 660, 684, 684, 684, 684, 126, 252,
12531 262, 684, 684, 684, 684, 684, 684, 684, 684, 684,
12532 684, 683, 683, 721, 720, 680, 680, 660, 469, 469,
12533 469, 710, 469, 473, 746, 683, 32, 32, 683, 469,
12534 683, 163, 468, 713, 683, 469, 139, 684, 684, 139,
12535 139, 683, 683, 610, 428, 468, 696, 747, 605, 605,
12536 605, 605, 739, 739, 739, 596, 651, 747, 163, 596,
12537 640, 641, 35, 642, 643, 747, 472, 91, 164, 195,
12538 210, 220, 246, 330, 645, 643, 35, 642, 644, 747,
12539 454, 655, 468, 732, 683, 172, 625, 609, 609, 609,
12540 420, 469, 625, 469, 467, 469, 683, 327, 502, 417,
12541 469, 472, 733, 81, 502, 469, 472, 499, 795, 683,
12542 468, 614, 155, 215, 268, 739, 741, 469, 146, 563,
12543 550, 563, 526, 553, 469, 113, 193, 250, 252, 549,
12544 468, 560, 167, 111, 179, 252, 538, 518, 104, 111,
12545 167, 252, 367, 370, 520, 538, 351, 482, 399, 741,
12546 747, 486, 562, 251, 269, 352, 459, 460, 519, 527,
12547 564, 660, 707, 746, 748, 812, 753, 741, 741, 741,
12548 741, 741, 741, 741, 741, 741, 741, 518, 593, 468,
12549 765, 180, 739, 469, 513, 468, 35, 547, 545, 554,
12550 77, 515, 104, 250, 595, 553, 412, 762, 575, 808,
12551 745, 467, 467, 469, 683, 469, 469, 721, 163, 126,
12552 262, 468, 469, 681, 683, 683, 683, 713, 469, 683,
12553 32, 32, 683, 683, 139, 469, 469, 683, 697, 747,
12554 739, 739, 739, 739, 643, 644, 732, 468, 469, 747,
12555 468, 640, 210, 276, 646, 640, 646, 210, 645, 646,
12556 210, 380, 649, 468, 747, 468, 274, 711, 53, 175,
12557 629, 469, 469, 469, 712, 746, 629, 746, 736, 595,
12558 280, 595, 498, 267, 468, 496, 457, 510, 502, 709,
12559 526, 550, 469, 469, 431, 556, 114, 182, 191, 113,
12560 414, 533, 551, 65, 71, 83, 111, 113, 167, 193,
12561 252, 257, 299, 314, 405, 531, 532, 544, 29, 53,
12562 570, 180, 257, 519, 683, 570, 257, 459, 460, 522,
12563 747, 660, 575, 575, 748, 750, 457, 389, 389, 468,
12564 585, 589, 412, 580, 582, 563, 35, 252, 468, 765,
12565 557, 145, 595, 143, 187, 537, 116, 131, 298, 807,
12566 104, 431, 805, 267, 747, 761, 468, 35, 467, 684,
12567 163, 468, 713, 469, 683, 683, 683, 469, 286, 698,
12568 652, 653, 688, 642, 468, 740, 640, 267, 412, 647,
12569 640, 210, 640, 743, 657, 658, 747, 468, 657, 747,
12570 609, 468, 626, 627, 628, 683, 683, 430, 692, 609,
12571 692, 503, 83, 468, 501, 509, 688, 747, 127, 683,
12572 469, 314, 556, 468, 546, 526, 469, 472, 468, 749,
12573 741, 684, 570, 114, 182, 113, 257, 211, 739, 556,
12574 111, 35, 146, 71, 659, 750, 463, 527, 741, 741,
12575 587, 594, 753, 49, 92, 117, 135, 139, 159, 162,
12576 176, 257, 265, 306, 591, 518, 118, 469, 595, 146,
12577 35, 469, 741, 807, 26, 76, 84, 112, 179, 190,
12578 367, 370, 541, 541, 335, 335, 57, 65, 226, 739,
12579 509, 684, 713, 469, 53, 609, 469, 472, 35, 654,
12580 740, 469, 683, 468, 640, 647, 468, 469, 472, 660,
12581 657, 469, 469, 469, 472, 693, 694, 747, 469, 417,
12582 741, 683, 469, 472, 71, 505, 505, 253, 410, 739,
12583 526, 552, 555, 753, 533, 683, 252, 532, 35, 556,
12584 559, 179, 749, 412, 485, 463, 399, 469, 472, 461,
12585 468, 519, 586, 777, 35, 583, 746, 583, 252, 257,
12586 306, 583, 583, 585, 746, 765, 805, 739, 595, 545,
12587 515, 65, 270, 65, 762, 469, 469, 710, 307, 335,
12588 699, 655, 652, 468, 469, 740, 710, 658, 659, 469,
12589 627, 472, 35, 595, 469, 656, 501, 749, 506, 749,
12590 506, 351, 559, 469, 472, 457, 469, 179, 234, 567,
12591 468, 528, 683, 399, 587, 581, 592, 777, 746, 746,
12592 257, 563, 461, 563, 746, 746, 35, 468, 805, 537,
12593 807, 270, 270, 468, 765, 47, 94, 401, 683, 700,
12594 701, 700, 469, 657, 469, 469, 694, 696, 505, 613,
12595 613, 508, 567, 555, 527, 250, 539, 528, 164, 285,
12596 357, 267, 534, 535, 561, 517, 469, 472, 563, 595,
12597 509, 656, 701, 334, 157, 294, 157, 294, 469, 321,
12598 650, 506, 614, 614, 656, 535, 191, 116, 410, 267,
12599 561, 267, 534, 469, 592, 805, 469, 32, 468, 613,
12600 526, 56, 250, 326, 351, 530, 530, 765, 701, 683,
12601 614, 21, 111, 257, 656, 469
12602};
12603
12604#define yyerrok (yyerrstatus = 0)
12605#define yyclearin (yychar = YYEMPTY)
12606#define YYEMPTY (-2)
12607#define YYEOF 0
12608
12609#define YYACCEPT goto yyacceptlab
12610#define YYABORT goto yyabortlab
12611#define YYERROR goto yyerrorlab
12612
12613
12614/* Like YYERROR except do call yyerror. This remains here temporarily
12615 to ease the transition to the new meaning of YYERROR, for GCC.
12616 Once GCC version 2 has supplanted version 1, this can go. */
12617
12618#define YYFAIL goto yyerrlab
12619
12620#define YYRECOVERING() (!!yyerrstatus)
12621
12622#define YYBACKUP(Token, Value) \
12623do \
12624 if (yychar == YYEMPTY && yylen == 1) \
12625 { \
12626 yychar = (Token); \
12627 yylval = (Value); \
12628 yytoken = YYTRANSLATE (yychar); \
12629 YYPOPSTACK (1); \
12630 goto yybackup; \
12631 } \
12632 else \
12633 { \
12634 yyerror (&yylloc, yyscanner, YY_("syntax error: cannot back up")); \
12635 YYERROR; \
12636 } \
12637while (YYID (0))
12638
12639
12640#define YYTERROR 1
12641#define YYERRCODE 256
12642
12643
12644/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
12645 If N is 0, then set CURRENT to the empty location which ends
12646 the previous symbol: RHS[0] (always defined). */
12647
12648#define YYRHSLOC(Rhs, K) ((Rhs)[K])
12649#ifndef YYLLOC_DEFAULT
12650# define YYLLOC_DEFAULT(Current, Rhs, N) \
12651 do \
12652 if (YYID (N)) \
12653 { \
12654 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
12655 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
12656 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
12657 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
12658 } \
12659 else \
12660 { \
12661 (Current).first_line = (Current).last_line = \
12662 YYRHSLOC (Rhs, 0).last_line; \
12663 (Current).first_column = (Current).last_column = \
12664 YYRHSLOC (Rhs, 0).last_column; \
12665 } \
12666 while (YYID (0))
12667#endif
12668
12669
12670/* YY_LOCATION_PRINT -- Print the location on the stream.
12671 This macro was not mandated originally: define only if we know
12672 we won't break user code: when these are the locations we know. */
12673
12674#ifndef YY_LOCATION_PRINT
12675# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
12676# define YY_LOCATION_PRINT(File, Loc) \
12677 fprintf (File, "%d.%d-%d.%d", \
12678 (Loc).first_line, (Loc).first_column, \
12679 (Loc).last_line, (Loc).last_column)
12680# else
12681# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
12682# endif
12683#endif
12684
12685
12686/* YYLEX -- calling `yylex' with the right arguments. */
12687
12688#ifdef YYLEX_PARAM
12689# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
12690#else
12691# define YYLEX yylex (&yylval, &yylloc, yyscanner)
12692#endif
12693
12694/* Enable debugging if requested. */
12695#if YYDEBUG
12696
12697# ifndef YYFPRINTF
12698# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
12699# define YYFPRINTF fprintf
12700# endif
12701
12702# define YYDPRINTF(Args) \
12703do { \
12704 if (yydebug) \
12705 YYFPRINTF Args; \
12706} while (YYID (0))
12707
12708# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
12709do { \
12710 if (yydebug) \
12711 { \
12712 YYFPRINTF (stderr, "%s ", Title); \
12713 yy_symbol_print (stderr, \
12714 Type, Value, Location, yyscanner); \
12715 YYFPRINTF (stderr, "\n"); \
12716 } \
12717} while (YYID (0))
12718
12719
12720/*--------------------------------.
12721| Print this symbol on YYOUTPUT. |
12722`--------------------------------*/
12723
12724/*ARGSUSED*/
12725#if (defined __STDC__ || defined __C99__FUNC__ \
12726 || defined __cplusplus || defined _MSC_VER)
12727static void
12728yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner)
12729#else
12730static void
12731yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner)
12732 FILE *yyoutput;
12733 int yytype;
12734 YYSTYPE const * const yyvaluep;
12735 YYLTYPE const * const yylocationp;
12736 core_yyscan_t yyscanner;
12737#endif
12738{
12739 if (!yyvaluep)
12740 return;
12741 YYUSE (yylocationp);
12742 YYUSE (yyscanner);
12743# ifdef YYPRINT
12744 if (yytype < YYNTOKENS)
12745 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
12746# else
12747 YYUSE (yyoutput);
12748# endif
12749 switch (yytype)
12750 {
12751 default:
12752 break;
12753 }
12754}
12755
12756
12757/*--------------------------------.
12758| Print this symbol on YYOUTPUT. |
12759`--------------------------------*/
12760
12761#if (defined __STDC__ || defined __C99__FUNC__ \
12762 || defined __cplusplus || defined _MSC_VER)
12763static void
12764yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner)
12765#else
12766static void
12767yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner)
12768 FILE *yyoutput;
12769 int yytype;
12770 YYSTYPE const * const yyvaluep;
12771 YYLTYPE const * const yylocationp;
12772 core_yyscan_t yyscanner;
12773#endif
12774{
12775 if (yytype < YYNTOKENS)
12776 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
12777 else
12778 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
12779
12780 YY_LOCATION_PRINT (yyoutput, *yylocationp);
12781 YYFPRINTF (yyoutput, ": ");
12782 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner);
12783 YYFPRINTF (yyoutput, ")");
12784}
12785
12786/*------------------------------------------------------------------.
12787| yy_stack_print -- Print the state stack from its BOTTOM up to its |
12788| TOP (included). |
12789`------------------------------------------------------------------*/
12790
12791#if (defined __STDC__ || defined __C99__FUNC__ \
12792 || defined __cplusplus || defined _MSC_VER)
12793static void
12794yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
12795#else
12796static void
12797yy_stack_print (bottom, top)
12798 yytype_int16 *bottom;
12799 yytype_int16 *top;
12800#endif
12801{
12802 YYFPRINTF (stderr, "Stack now");
12803 for (; bottom <= top; ++bottom)
12804 YYFPRINTF (stderr, " %d", *bottom);
12805 YYFPRINTF (stderr, "\n");
12806}
12807
12808# define YY_STACK_PRINT(Bottom, Top) \
12809do { \
12810 if (yydebug) \
12811 yy_stack_print ((Bottom), (Top)); \
12812} while (YYID (0))
12813
12814
12815/*------------------------------------------------.
12816| Report that the YYRULE is going to be reduced. |
12817`------------------------------------------------*/
12818
12819#if (defined __STDC__ || defined __C99__FUNC__ \
12820 || defined __cplusplus || defined _MSC_VER)
12821static void
12822yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, core_yyscan_t yyscanner)
12823#else
12824static void
12825yy_reduce_print (yyvsp, yylsp, yyrule, yyscanner)
12826 YYSTYPE *yyvsp;
12827 YYLTYPE *yylsp;
12828 int yyrule;
12829 core_yyscan_t yyscanner;
12830#endif
12831{
12832 int yynrhs = yyr2[yyrule];
12833 int yyi;
12834 unsigned long int yylno = yyrline[yyrule];
12835 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
12836 yyrule - 1, yylno);
12837 /* The symbols being reduced. */
12838 for (yyi = 0; yyi < yynrhs; yyi++)
12839 {
12840 fprintf (stderr, " $%d = ", yyi + 1);
12841 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
12842 &(yyvsp[(yyi + 1) - (yynrhs)])
12843 , &(yylsp[(yyi + 1) - (yynrhs)]) , yyscanner);
12844 fprintf (stderr, "\n");
12845 }
12846}
12847
12848# define YY_REDUCE_PRINT(Rule) \
12849do { \
12850 if (yydebug) \
12851 yy_reduce_print (yyvsp, yylsp, Rule, yyscanner); \
12852} while (YYID (0))
12853
12854/* Nonzero means print parse trace. It is left uninitialized so that
12855 multiple parsers can coexist. */
12856int yydebug;
12857#else /* !YYDEBUG */
12858# define YYDPRINTF(Args)
12859# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
12860# define YY_STACK_PRINT(Bottom, Top)
12861# define YY_REDUCE_PRINT(Rule)
12862#endif /* !YYDEBUG */
12863
12864
12865/* YYINITDEPTH -- initial size of the parser's stacks. */
12866#ifndef YYINITDEPTH
12867# define YYINITDEPTH 200
12868#endif
12869
12870/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
12871 if the built-in stack extension method is used).
12872
12873 Do not make this value too large; the results are undefined if
12874 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
12875 evaluated with infinite-precision integer arithmetic. */
12876
12877#ifndef YYMAXDEPTH
12878# define YYMAXDEPTH 10000
12879#endif
12880
12881
12882
12883#if YYERROR_VERBOSE
12884
12885# ifndef yystrlen
12886# if defined __GLIBC__ && defined _STRING_H
12887# define yystrlen strlen
12888# else
12889/* Return the length of YYSTR. */
12890#if (defined __STDC__ || defined __C99__FUNC__ \
12891 || defined __cplusplus || defined _MSC_VER)
12892static YYSIZE_T
12893yystrlen (const char *yystr)
12894#else
12895static YYSIZE_T
12896yystrlen (yystr)
12897 const char *yystr;
12898#endif
12899{
12900 YYSIZE_T yylen;
12901 for (yylen = 0; yystr[yylen]; yylen++)
12902 continue;
12903 return yylen;
12904}
12905# endif
12906# endif
12907
12908# ifndef yystpcpy
12909# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
12910# define yystpcpy stpcpy
12911# else
12912/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
12913 YYDEST. */
12914#if (defined __STDC__ || defined __C99__FUNC__ \
12915 || defined __cplusplus || defined _MSC_VER)
12916static char *
12917yystpcpy (char *yydest, const char *yysrc)
12918#else
12919static char *
12920yystpcpy (yydest, yysrc)
12921 char *yydest;
12922 const char *yysrc;
12923#endif
12924{
12925 char *yyd = yydest;
12926 const char *yys = yysrc;
12927
12928 while ((*yyd++ = *yys++) != '\0')
12929 continue;
12930
12931 return yyd - 1;
12932}
12933# endif
12934# endif
12935
12936# ifndef yytnamerr
12937/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
12938 quotes and backslashes, so that it's suitable for yyerror. The
12939 heuristic is that double-quoting is unnecessary unless the string
12940 contains an apostrophe, a comma, or backslash (other than
12941 backslash-backslash). YYSTR is taken from yytname. If YYRES is
12942 null, do not copy; instead, return the length of what the result
12943 would have been. */
12944static YYSIZE_T
12945yytnamerr (char *yyres, const char *yystr)
12946{
12947 if (*yystr == '"')
12948 {
12949 YYSIZE_T yyn = 0;
12950 char const *yyp = yystr;
12951
12952 for (;;)
12953 switch (*++yyp)
12954 {
12955 case '\'':
12956 case ',':
12957 goto do_not_strip_quotes;
12958
12959 case '\\':
12960 if (*++yyp != '\\')
12961 goto do_not_strip_quotes;
12962 /* Fall through. */
12963 default:
12964 if (yyres)
12965 yyres[yyn] = *yyp;
12966 yyn++;
12967 break;
12968
12969 case '"':
12970 if (yyres)
12971 yyres[yyn] = '\0';
12972 return yyn;
12973 }
12974 do_not_strip_quotes: ;
12975 }
12976
12977 if (! yyres)
12978 return yystrlen (yystr);
12979
12980 return yystpcpy (yyres, yystr) - yyres;
12981}
12982# endif
12983
12984/* Copy into YYRESULT an error message about the unexpected token
12985 YYCHAR while in state YYSTATE. Return the number of bytes copied,
12986 including the terminating null byte. If YYRESULT is null, do not
12987 copy anything; just return the number of bytes that would be
12988 copied. As a special case, return 0 if an ordinary "syntax error"
12989 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
12990 size calculation. */
12991static YYSIZE_T
12992yysyntax_error (char *yyresult, int yystate, int yychar)
12993{
12994 int yyn = yypact[yystate];
12995
12996 if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
12997 return 0;
12998 else
12999 {
13000 int yytype = YYTRANSLATE (yychar);
13001 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
13002 YYSIZE_T yysize = yysize0;
13003 YYSIZE_T yysize1;
13004 int yysize_overflow = 0;
13005 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
13006 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
13007 int yyx;
13008
13009# if 0
13010 /* This is so xgettext sees the translatable formats that are
13011 constructed on the fly. */
13012 YY_("syntax error, unexpected %s");
13013 YY_("syntax error, unexpected %s, expecting %s");
13014 YY_("syntax error, unexpected %s, expecting %s or %s");
13015 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
13016 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
13017# endif
13018 char *yyfmt;
13019 char const *yyf;
13020 static char const yyunexpected[] = "syntax error, unexpected %s";
13021 static char const yyexpecting[] = ", expecting %s";
13022 static char const yyor[] = " or %s";
13023 char yyformat[sizeof yyunexpected
13024 + sizeof yyexpecting - 1
13025 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
13026 * (sizeof yyor - 1))];
13027 char const *yyprefix = yyexpecting;
13028
13029 /* Start YYX at -YYN if negative to avoid negative indexes in
13030 YYCHECK. */
13031 int yyxbegin = yyn < 0 ? -yyn : 0;
13032
13033 /* Stay within bounds of both yycheck and yytname. */
13034 int yychecklim = YYLAST - yyn + 1;
13035 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
13036 int yycount = 1;
13037
13038 yyarg[0] = yytname[yytype];
13039 yyfmt = yystpcpy (yyformat, yyunexpected);
13040
13041 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
13042 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
13043 {
13044 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
13045 {
13046 yycount = 1;
13047 yysize = yysize0;
13048 yyformat[sizeof yyunexpected - 1] = '\0';
13049 break;
13050 }
13051 yyarg[yycount++] = yytname[yyx];
13052 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
13053 yysize_overflow |= (yysize1 < yysize);
13054 yysize = yysize1;
13055 yyfmt = yystpcpy (yyfmt, yyprefix);
13056 yyprefix = yyor;
13057 }
13058
13059 yyf = YY_(yyformat);
13060 yysize1 = yysize + yystrlen (yyf);
13061 yysize_overflow |= (yysize1 < yysize);
13062 yysize = yysize1;
13063
13064 if (yysize_overflow)
13065 return YYSIZE_MAXIMUM;
13066
13067 if (yyresult)
13068 {
13069 /* Avoid sprintf, as that infringes on the user's name space.
13070 Don't have undefined behavior even if the translation
13071 produced a string with the wrong number of "%s"s. */
13072 char *yyp = yyresult;
13073 int yyi = 0;
13074 while ((*yyp = *yyf) != '\0')
13075 {
13076 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
13077 {
13078 yyp += yytnamerr (yyp, yyarg[yyi++]);
13079 yyf += 2;
13080 }
13081 else
13082 {
13083 yyp++;
13084 yyf++;
13085 }
13086 }
13087 }
13088 return yysize;
13089 }
13090}
13091#endif /* YYERROR_VERBOSE */
13092
13093
13094/*-----------------------------------------------.
13095| Release the memory associated to this symbol. |
13096`-----------------------------------------------*/
13097
13098/*ARGSUSED*/
13099#if (defined __STDC__ || defined __C99__FUNC__ \
13100 || defined __cplusplus || defined _MSC_VER)
13101static void
13102yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, core_yyscan_t yyscanner)
13103#else
13104static void
13105yydestruct (yymsg, yytype, yyvaluep, yylocationp, yyscanner)
13106 const char *yymsg;
13107 int yytype;
13108 YYSTYPE *yyvaluep;
13109 YYLTYPE *yylocationp;
13110 core_yyscan_t yyscanner;
13111#endif
13112{
13113 YYUSE (yyvaluep);
13114 YYUSE (yylocationp);
13115 YYUSE (yyscanner);
13116
13117 if (!yymsg)
13118 yymsg = "Deleting";
13119 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
13120
13121 switch (yytype)
13122 {
13123
13124 default:
13125 break;
13126 }
13127}
13128
13129
13130/* Prevent warnings from -Wmissing-prototypes. */
13131
13132#ifdef YYPARSE_PARAM
13133#if defined __STDC__ || defined __cplusplus
13134int yyparse (void *YYPARSE_PARAM);
13135#else
13136int yyparse ();
13137#endif
13138#else /* ! YYPARSE_PARAM */
13139#if defined __STDC__ || defined __cplusplus
13140int yyparse (core_yyscan_t yyscanner);
13141#else
13142int yyparse ();
13143#endif
13144#endif /* ! YYPARSE_PARAM */
13145
13146
13147
13148
13149
13150
13151/*----------.
13152| yyparse. |
13153`----------*/
13154
13155#ifdef YYPARSE_PARAM
13156#if (defined __STDC__ || defined __C99__FUNC__ \
13157 || defined __cplusplus || defined _MSC_VER)
13158int
13159yyparse (void *YYPARSE_PARAM)
13160#else
13161int
13162yyparse (YYPARSE_PARAM)
13163 void *YYPARSE_PARAM;
13164#endif
13165#else /* ! YYPARSE_PARAM */
13166#if (defined __STDC__ || defined __C99__FUNC__ \
13167 || defined __cplusplus || defined _MSC_VER)
13168int
13169yyparse (core_yyscan_t yyscanner)
13170#else
13171int
13172yyparse (yyscanner)
13173 core_yyscan_t yyscanner;
13174#endif
13175#endif
13176{
13177 /* The look-ahead symbol. */
13178int yychar;
13179
13180/* The semantic value of the look-ahead symbol. */
13181YYSTYPE yylval;
13182
13183/* Number of syntax errors so far. */
13184int yynerrs;
13185/* Location data for the look-ahead symbol. */
13186YYLTYPE yylloc;
13187
13188 int yystate;
13189 int yyn;
13190 int yyresult;
13191 /* Number of tokens to shift before error messages enabled. */
13192 int yyerrstatus;
13193 /* Look-ahead token as an internal (translated) token number. */
13194 int yytoken = 0;
13195#if YYERROR_VERBOSE
13196 /* Buffer for error messages, and its allocated size. */
13197 char yymsgbuf[128];
13198 char *yymsg = yymsgbuf;
13199 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
13200#endif
13201
13202 /* Three stacks and their tools:
13203 `yyss': related to states,
13204 `yyvs': related to semantic values,
13205 `yyls': related to locations.
13206
13207 Refer to the stacks thru separate pointers, to allow yyoverflow
13208 to reallocate them elsewhere. */
13209
13210 /* The state stack. */
13211 yytype_int16 yyssa[YYINITDEPTH];
13212 yytype_int16 *yyss = yyssa;
13213 yytype_int16 *yyssp;
13214
13215 /* The semantic value stack. */
13216 YYSTYPE yyvsa[YYINITDEPTH];
13217 YYSTYPE *yyvs = yyvsa;
13218 YYSTYPE *yyvsp;
13219
13220 /* The location stack. */
13221 YYLTYPE yylsa[YYINITDEPTH];
13222 YYLTYPE *yyls = yylsa;
13223 YYLTYPE *yylsp;
13224 /* The locations where the error started and ended. */
13225 YYLTYPE yyerror_range[2];
13226
13227#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
13228
13229 YYSIZE_T yystacksize = YYINITDEPTH;
13230
13231 /* The variables used to return semantic value and location from the
13232 action routines. */
13233 YYSTYPE yyval;
13234 YYLTYPE yyloc;
13235
13236 /* The number of symbols on the RHS of the reduced rule.
13237 Keep to zero when no symbol should be popped. */
13238 int yylen = 0;
13239
13240 YYDPRINTF ((stderr, "Starting parse\n"));
13241
13242 yystate = 0;
13243 yyerrstatus = 0;
13244 yynerrs = 0;
13245 yychar = YYEMPTY; /* Cause a token to be read. */
13246
13247 /* Initialize stack pointers.
13248 Waste one element of value and location stack
13249 so that they stay on the same level as the state stack.
13250 The wasted elements are never initialized. */
13251
13252 yyssp = yyss;
13253 yyvsp = yyvs;
13254 yylsp = yyls;
13255#if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
13256 /* Initialize the default location before parsing starts. */
13257 yylloc.first_line = yylloc.last_line = 1;
13258 yylloc.first_column = yylloc.last_column = 0;
13259#endif
13260
13261 goto yysetstate;
13262
13263/*------------------------------------------------------------.
13264| yynewstate -- Push a new state, which is found in yystate. |
13265`------------------------------------------------------------*/
13266 yynewstate:
13267 /* In all cases, when you get here, the value and location stacks
13268 have just been pushed. So pushing a state here evens the stacks. */
13269 yyssp++;
13270
13271 yysetstate:
13272 *yyssp = yystate;
13273
13274 if (yyss + yystacksize - 1 <= yyssp)
13275 {
13276 /* Get the current used size of the three stacks, in elements. */
13277 YYSIZE_T yysize = yyssp - yyss + 1;
13278
13279#ifdef yyoverflow
13280 {
13281 /* Give user a chance to reallocate the stack. Use copies of
13282 these so that the &'s don't force the real ones into
13283 memory. */
13284 YYSTYPE *yyvs1 = yyvs;
13285 yytype_int16 *yyss1 = yyss;
13286 YYLTYPE *yyls1 = yyls;
13287
13288 /* Each stack pointer address is followed by the size of the
13289 data in use in that stack, in bytes. This used to be a
13290 conditional around just the two extra args, but that might
13291 be undefined if yyoverflow is a macro. */
13292 yyoverflow (YY_("memory exhausted"),
13293 &yyss1, yysize * sizeof (*yyssp),
13294 &yyvs1, yysize * sizeof (*yyvsp),
13295 &yyls1, yysize * sizeof (*yylsp),
13296 &yystacksize);
13297 yyls = yyls1;
13298 yyss = yyss1;
13299 yyvs = yyvs1;
13300 }
13301#else /* no yyoverflow */
13302# ifndef YYSTACK_RELOCATE
13303 goto yyexhaustedlab;
13304# else
13305 /* Extend the stack our own way. */
13306 if (YYMAXDEPTH <= yystacksize)
13307 goto yyexhaustedlab;
13308 yystacksize *= 2;
13309 if (YYMAXDEPTH < yystacksize)
13310 yystacksize = YYMAXDEPTH;
13311
13312 {
13313 yytype_int16 *yyss1 = yyss;
13314 union yyalloc *yyptr =
13315 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
13316 if (! yyptr)
13317 goto yyexhaustedlab;
13318 YYSTACK_RELOCATE (yyss);
13319 YYSTACK_RELOCATE (yyvs);
13320 YYSTACK_RELOCATE (yyls);
13321# undef YYSTACK_RELOCATE
13322 if (yyss1 != yyssa)
13323 YYSTACK_FREE (yyss1);
13324 }
13325# endif
13326#endif /* no yyoverflow */
13327
13328 yyssp = yyss + yysize - 1;
13329 yyvsp = yyvs + yysize - 1;
13330 yylsp = yyls + yysize - 1;
13331
13332 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
13333 (unsigned long int) yystacksize));
13334
13335 if (yyss + yystacksize - 1 <= yyssp)
13336 YYABORT;
13337 }
13338
13339 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
13340
13341 goto yybackup;
13342
13343/*-----------.
13344| yybackup. |
13345`-----------*/
13346yybackup:
13347
13348 /* Do appropriate processing given the current state. Read a
13349 look-ahead token if we need one and don't already have one. */
13350
13351 /* First try to decide what to do without reference to look-ahead token. */
13352 yyn = yypact[yystate];
13353 if (yyn == YYPACT_NINF)
13354 goto yydefault;
13355
13356 /* Not known => get a look-ahead token if don't already have one. */
13357
13358 /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
13359 if (yychar == YYEMPTY)
13360 {
13361 YYDPRINTF ((stderr, "Reading a token: "));
13362 yychar = YYLEX;
13363 }
13364
13365 if (yychar <= YYEOF)
13366 {
13367 yychar = yytoken = YYEOF;
13368 YYDPRINTF ((stderr, "Now at end of input.\n"));
13369 }
13370 else
13371 {
13372 yytoken = YYTRANSLATE (yychar);
13373 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
13374 }
13375
13376 /* If the proper action on seeing token YYTOKEN is to reduce or to
13377 detect an error, take that action. */
13378 yyn += yytoken;
13379 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
13380 goto yydefault;
13381 yyn = yytable[yyn];
13382 if (yyn <= 0)
13383 {
13384 if (yyn == 0 || yyn == YYTABLE_NINF)
13385 goto yyerrlab;
13386 yyn = -yyn;
13387 goto yyreduce;
13388 }
13389
13390 if (yyn == YYFINAL)
13391 YYACCEPT;
13392
13393 /* Count tokens shifted since error; after three, turn off error
13394 status. */
13395 if (yyerrstatus)
13396 yyerrstatus--;
13397
13398 /* Shift the look-ahead token. */
13399 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
13400
13401 /* Discard the shifted token unless it is eof. */
13402 if (yychar != YYEOF)
13403 yychar = YYEMPTY;
13404
13405 yystate = yyn;
13406 *++yyvsp = yylval;
13407 *++yylsp = yylloc;
13408 goto yynewstate;
13409
13410
13411/*-----------------------------------------------------------.
13412| yydefault -- do the default action for the current state. |
13413`-----------------------------------------------------------*/
13414yydefault:
13415 yyn = yydefact[yystate];
13416 if (yyn == 0)
13417 goto yyerrlab;
13418 goto yyreduce;
13419
13420
13421/*-----------------------------.
13422| yyreduce -- Do a reduction. |
13423`-----------------------------*/
13424yyreduce:
13425 /* yyn is the number of a rule to reduce with. */
13426 yylen = yyr2[yyn];
13427
13428 /* If YYLEN is nonzero, implement the default value of the action:
13429 `$$ = $1'.
13430
13431 Otherwise, the following line sets YYVAL to garbage.
13432 This behavior is undocumented and Bison
13433 users should not rely upon it. Assigning to YYVAL
13434 unconditionally makes the parser a bit smaller, and it avoids a
13435 GCC warning that YYVAL may be used uninitialized. */
13436 yyval = yyvsp[1-yylen];
13437
13438 /* Default location. */
13439 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
13440 YY_REDUCE_PRINT (yyn);
13441 switch (yyn)
13442 {
13443 case 2:
13444#line 449 "third_party/libpg_query/grammar/grammar.y"
13445 {
13446 pg_yyget_extra(yyscanner)->parsetree = (yyvsp[(1) - (1)].list);
13447 ;}
13448 break;
13449
13450 case 3:
13451#line 465 "third_party/libpg_query/grammar/grammar.y"
13452 {
13453 if ((yyvsp[(1) - (3)].list) != NIL)
13454 {
13455 /* update length of previous stmt */
13456 updateRawStmtEnd(llast_node(PGRawStmt, (yyvsp[(1) - (3)].list)), (yylsp[(2) - (3)]));
13457 }
13458 if ((yyvsp[(3) - (3)].node) != NULL)
13459 (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeRawStmt((yyvsp[(3) - (3)].node), (yylsp[(2) - (3)]) + 1));
13460 else
13461 (yyval.list) = (yyvsp[(1) - (3)].list);
13462 ;}
13463 break;
13464
13465 case 4:
13466#line 477 "third_party/libpg_query/grammar/grammar.y"
13467 {
13468 if ((yyvsp[(1) - (1)].node) != NULL)
13469 (yyval.list) = list_make1(makeRawStmt((yyvsp[(1) - (1)].node), 0));
13470 else
13471 (yyval.list) = NIL;
13472 ;}
13473 break;
13474
13475 case 34:
13476#line 515 "third_party/libpg_query/grammar/grammar.y"
13477 { (yyval.node) = NULL; ;}
13478 break;
13479
13480 case 35:
13481#line 10 "third_party/libpg_query/grammar/statements/alter_table.y"
13482 {
13483 PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
13484 n->relation = (yyvsp[(3) - (4)].range);
13485 n->cmds = (yyvsp[(4) - (4)].list);
13486 n->relkind = PG_OBJECT_TABLE;
13487 n->missing_ok = false;
13488 (yyval.node) = (PGNode *)n;
13489 ;}
13490 break;
13491
13492 case 36:
13493#line 19 "third_party/libpg_query/grammar/statements/alter_table.y"
13494 {
13495 PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
13496 n->relation = (yyvsp[(5) - (6)].range);
13497 n->cmds = (yyvsp[(6) - (6)].list);
13498 n->relkind = PG_OBJECT_TABLE;
13499 n->missing_ok = true;
13500 (yyval.node) = (PGNode *)n;
13501 ;}
13502 break;
13503
13504 case 37:
13505#line 28 "third_party/libpg_query/grammar/statements/alter_table.y"
13506 {
13507 PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
13508 n->relation = (yyvsp[(3) - (4)].range);
13509 n->cmds = (yyvsp[(4) - (4)].list);
13510 n->relkind = PG_OBJECT_INDEX;
13511 n->missing_ok = false;
13512 (yyval.node) = (PGNode *)n;
13513 ;}
13514 break;
13515
13516 case 38:
13517#line 37 "third_party/libpg_query/grammar/statements/alter_table.y"
13518 {
13519 PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
13520 n->relation = (yyvsp[(5) - (6)].range);
13521 n->cmds = (yyvsp[(6) - (6)].list);
13522 n->relkind = PG_OBJECT_INDEX;
13523 n->missing_ok = true;
13524 (yyval.node) = (PGNode *)n;
13525 ;}
13526 break;
13527
13528 case 39:
13529#line 46 "third_party/libpg_query/grammar/statements/alter_table.y"
13530 {
13531 PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
13532 n->relation = (yyvsp[(3) - (4)].range);
13533 n->cmds = (yyvsp[(4) - (4)].list);
13534 n->relkind = PG_OBJECT_SEQUENCE;
13535 n->missing_ok = false;
13536 (yyval.node) = (PGNode *)n;
13537 ;}
13538 break;
13539
13540 case 40:
13541#line 55 "third_party/libpg_query/grammar/statements/alter_table.y"
13542 {
13543 PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
13544 n->relation = (yyvsp[(5) - (6)].range);
13545 n->cmds = (yyvsp[(6) - (6)].list);
13546 n->relkind = PG_OBJECT_SEQUENCE;
13547 n->missing_ok = true;
13548 (yyval.node) = (PGNode *)n;
13549 ;}
13550 break;
13551
13552 case 41:
13553#line 64 "third_party/libpg_query/grammar/statements/alter_table.y"
13554 {
13555 PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
13556 n->relation = (yyvsp[(3) - (4)].range);
13557 n->cmds = (yyvsp[(4) - (4)].list);
13558 n->relkind = PG_OBJECT_VIEW;
13559 n->missing_ok = false;
13560 (yyval.node) = (PGNode *)n;
13561 ;}
13562 break;
13563
13564 case 42:
13565#line 73 "third_party/libpg_query/grammar/statements/alter_table.y"
13566 {
13567 PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
13568 n->relation = (yyvsp[(5) - (6)].range);
13569 n->cmds = (yyvsp[(6) - (6)].list);
13570 n->relkind = PG_OBJECT_VIEW;
13571 n->missing_ok = true;
13572 (yyval.node) = (PGNode *)n;
13573 ;}
13574 break;
13575
13576 case 43:
13577#line 86 "third_party/libpg_query/grammar/statements/alter_table.y"
13578 { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
13579 break;
13580
13581 case 44:
13582#line 88 "third_party/libpg_query/grammar/statements/alter_table.y"
13583 { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;}
13584 break;
13585
13586 case 45:
13587#line 93 "third_party/libpg_query/grammar/statements/alter_table.y"
13588 { (yyval.node) = (yyvsp[(3) - (3)].node); ;}
13589 break;
13590
13591 case 46:
13592#line 94 "third_party/libpg_query/grammar/statements/alter_table.y"
13593 { (yyval.node) = NULL; ;}
13594 break;
13595
13596 case 47:
13597#line 100 "third_party/libpg_query/grammar/statements/alter_table.y"
13598 {
13599 (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[(1) - (1)]));
13600 ;}
13601 break;
13602
13603 case 48:
13604#line 104 "third_party/libpg_query/grammar/statements/alter_table.y"
13605 {
13606 (yyval.defelt) = makeDefElem("restart", (PGNode *)(yyvsp[(3) - (3)].value), (yylsp[(1) - (3)]));
13607 ;}
13608 break;
13609
13610 case 49:
13611#line 108 "third_party/libpg_query/grammar/statements/alter_table.y"
13612 {
13613 if (strcmp((yyvsp[(2) - (2)].defelt)->defname, "as") == 0 ||
13614 strcmp((yyvsp[(2) - (2)].defelt)->defname, "restart") == 0 ||
13615 strcmp((yyvsp[(2) - (2)].defelt)->defname, "owned_by") == 0)
13616 ereport(ERROR,
13617 (errcode(PG_ERRCODE_SYNTAX_ERROR),
13618 errmsg("sequence option \"%s\" not supported here", (yyvsp[(2) - (2)].defelt)->defname),
13619 parser_errposition((yylsp[(2) - (2)]))));
13620 (yyval.defelt) = (yyvsp[(2) - (2)].defelt);
13621 ;}
13622 break;
13623
13624 case 50:
13625#line 119 "third_party/libpg_query/grammar/statements/alter_table.y"
13626 {
13627 (yyval.defelt) = makeDefElem("generated", (PGNode *) makeInteger((yyvsp[(3) - (3)].ival)), (yylsp[(1) - (3)]));
13628 ;}
13629 break;
13630
13631 case 51:
13632#line 127 "third_party/libpg_query/grammar/statements/alter_table.y"
13633 {
13634 (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt));
13635 ;}
13636 break;
13637
13638 case 52:
13639#line 131 "third_party/libpg_query/grammar/statements/alter_table.y"
13640 {
13641 (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt));
13642 ;}
13643 break;
13644
13645 case 53:
13646#line 140 "third_party/libpg_query/grammar/statements/alter_table.y"
13647 {
13648 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13649 n->subtype = PG_AT_AddColumn;
13650 n->def = (yyvsp[(2) - (2)].node);
13651 n->missing_ok = false;
13652 (yyval.node) = (PGNode *)n;
13653 ;}
13654 break;
13655
13656 case 54:
13657#line 149 "third_party/libpg_query/grammar/statements/alter_table.y"
13658 {
13659 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13660 n->subtype = PG_AT_AddColumn;
13661 n->def = (yyvsp[(5) - (5)].node);
13662 n->missing_ok = true;
13663 (yyval.node) = (PGNode *)n;
13664 ;}
13665 break;
13666
13667 case 55:
13668#line 158 "third_party/libpg_query/grammar/statements/alter_table.y"
13669 {
13670 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13671 n->subtype = PG_AT_AddColumn;
13672 n->def = (yyvsp[(3) - (3)].node);
13673 n->missing_ok = false;
13674 (yyval.node) = (PGNode *)n;
13675 ;}
13676 break;
13677
13678 case 56:
13679#line 167 "third_party/libpg_query/grammar/statements/alter_table.y"
13680 {
13681 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13682 n->subtype = PG_AT_AddColumn;
13683 n->def = (yyvsp[(6) - (6)].node);
13684 n->missing_ok = true;
13685 (yyval.node) = (PGNode *)n;
13686 ;}
13687 break;
13688
13689 case 57:
13690#line 176 "third_party/libpg_query/grammar/statements/alter_table.y"
13691 {
13692 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13693 n->subtype = PG_AT_ColumnDefault;
13694 n->name = (yyvsp[(3) - (4)].str);
13695 n->def = (yyvsp[(4) - (4)].node);
13696 (yyval.node) = (PGNode *)n;
13697 ;}
13698 break;
13699
13700 case 58:
13701#line 185 "third_party/libpg_query/grammar/statements/alter_table.y"
13702 {
13703 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13704 n->subtype = PG_AT_DropNotNull;
13705 n->name = (yyvsp[(3) - (6)].str);
13706 (yyval.node) = (PGNode *)n;
13707 ;}
13708 break;
13709
13710 case 59:
13711#line 193 "third_party/libpg_query/grammar/statements/alter_table.y"
13712 {
13713 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13714 n->subtype = PG_AT_SetNotNull;
13715 n->name = (yyvsp[(3) - (6)].str);
13716 (yyval.node) = (PGNode *)n;
13717 ;}
13718 break;
13719
13720 case 60:
13721#line 201 "third_party/libpg_query/grammar/statements/alter_table.y"
13722 {
13723 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13724 n->subtype = PG_AT_SetStatistics;
13725 n->name = (yyvsp[(3) - (6)].str);
13726 n->def = (PGNode *) makeInteger((yyvsp[(6) - (6)].ival));
13727 (yyval.node) = (PGNode *)n;
13728 ;}
13729 break;
13730
13731 case 61:
13732#line 210 "third_party/libpg_query/grammar/statements/alter_table.y"
13733 {
13734 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13735 n->subtype = PG_AT_SetOptions;
13736 n->name = (yyvsp[(3) - (5)].str);
13737 n->def = (PGNode *) (yyvsp[(5) - (5)].list);
13738 (yyval.node) = (PGNode *)n;
13739 ;}
13740 break;
13741
13742 case 62:
13743#line 219 "third_party/libpg_query/grammar/statements/alter_table.y"
13744 {
13745 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13746 n->subtype = PG_AT_ResetOptions;
13747 n->name = (yyvsp[(3) - (5)].str);
13748 n->def = (PGNode *) (yyvsp[(5) - (5)].list);
13749 (yyval.node) = (PGNode *)n;
13750 ;}
13751 break;
13752
13753 case 63:
13754#line 228 "third_party/libpg_query/grammar/statements/alter_table.y"
13755 {
13756 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13757 n->subtype = PG_AT_SetStorage;
13758 n->name = (yyvsp[(3) - (6)].str);
13759 n->def = (PGNode *) makeString((yyvsp[(6) - (6)].str));
13760 (yyval.node) = (PGNode *)n;
13761 ;}
13762 break;
13763
13764 case 64:
13765#line 237 "third_party/libpg_query/grammar/statements/alter_table.y"
13766 {
13767 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13768 PGConstraint *c = makeNode(PGConstraint);
13769
13770 c->contype = PG_CONSTR_IDENTITY;
13771 c->generated_when = (yyvsp[(6) - (9)].ival);
13772 c->options = (yyvsp[(9) - (9)].list);
13773 c->location = (yylsp[(5) - (9)]);
13774
13775 n->subtype = PG_AT_AddIdentity;
13776 n->name = (yyvsp[(3) - (9)].str);
13777 n->def = (PGNode *) c;
13778
13779 (yyval.node) = (PGNode *)n;
13780 ;}
13781 break;
13782
13783 case 65:
13784#line 254 "third_party/libpg_query/grammar/statements/alter_table.y"
13785 {
13786 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13787 n->subtype = PG_AT_SetIdentity;
13788 n->name = (yyvsp[(3) - (4)].str);
13789 n->def = (PGNode *) (yyvsp[(4) - (4)].list);
13790 (yyval.node) = (PGNode *)n;
13791 ;}
13792 break;
13793
13794 case 66:
13795#line 263 "third_party/libpg_query/grammar/statements/alter_table.y"
13796 {
13797 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13798 n->subtype = AT_DropIdentity;
13799 n->name = (yyvsp[(3) - (5)].str);
13800 n->missing_ok = false;
13801 (yyval.node) = (PGNode *)n;
13802 ;}
13803 break;
13804
13805 case 67:
13806#line 272 "third_party/libpg_query/grammar/statements/alter_table.y"
13807 {
13808 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13809 n->subtype = AT_DropIdentity;
13810 n->name = (yyvsp[(3) - (7)].str);
13811 n->missing_ok = true;
13812 (yyval.node) = (PGNode *)n;
13813 ;}
13814 break;
13815
13816 case 68:
13817#line 281 "third_party/libpg_query/grammar/statements/alter_table.y"
13818 {
13819 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13820 n->subtype = PG_AT_DropColumn;
13821 n->name = (yyvsp[(5) - (6)].str);
13822 n->behavior = (yyvsp[(6) - (6)].dbehavior);
13823 n->missing_ok = true;
13824 (yyval.node) = (PGNode *)n;
13825 ;}
13826 break;
13827
13828 case 69:
13829#line 291 "third_party/libpg_query/grammar/statements/alter_table.y"
13830 {
13831 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13832 n->subtype = PG_AT_DropColumn;
13833 n->name = (yyvsp[(3) - (4)].str);
13834 n->behavior = (yyvsp[(4) - (4)].dbehavior);
13835 n->missing_ok = false;
13836 (yyval.node) = (PGNode *)n;
13837 ;}
13838 break;
13839
13840 case 70:
13841#line 304 "third_party/libpg_query/grammar/statements/alter_table.y"
13842 {
13843 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13844 PGColumnDef *def = makeNode(PGColumnDef);
13845 n->subtype = PG_AT_AlterColumnType;
13846 n->name = (yyvsp[(3) - (8)].str);
13847 n->def = (PGNode *) def;
13848 /* We only use these fields of the PGColumnDef node */
13849 def->typeName = (yyvsp[(6) - (8)].typnam);
13850 def->collClause = (PGCollateClause *) (yyvsp[(7) - (8)].node);
13851 def->raw_default = (yyvsp[(8) - (8)].node);
13852 def->location = (yylsp[(3) - (8)]);
13853 (yyval.node) = (PGNode *)n;
13854 ;}
13855 break;
13856
13857 case 71:
13858#line 319 "third_party/libpg_query/grammar/statements/alter_table.y"
13859 {
13860 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13861 n->subtype = PG_AT_AlterColumnGenericOptions;
13862 n->name = (yyvsp[(3) - (4)].str);
13863 n->def = (PGNode *) (yyvsp[(4) - (4)].list);
13864 (yyval.node) = (PGNode *)n;
13865 ;}
13866 break;
13867
13868 case 72:
13869#line 328 "third_party/libpg_query/grammar/statements/alter_table.y"
13870 {
13871 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13872 n->subtype = PG_AT_AddConstraint;
13873 n->def = (yyvsp[(2) - (2)].node);
13874 (yyval.node) = (PGNode *)n;
13875 ;}
13876 break;
13877
13878 case 73:
13879#line 336 "third_party/libpg_query/grammar/statements/alter_table.y"
13880 {
13881 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13882 PGConstraint *c = makeNode(PGConstraint);
13883 n->subtype = PG_AT_AlterConstraint;
13884 n->def = (PGNode *) c;
13885 c->contype = PG_CONSTR_FOREIGN; /* others not supported, yet */
13886 c->conname = (yyvsp[(3) - (4)].str);
13887 processCASbits((yyvsp[(4) - (4)].ival), (yylsp[(4) - (4)]), "ALTER CONSTRAINT statement",
13888 &c->deferrable,
13889 &c->initdeferred,
13890 NULL, NULL, yyscanner);
13891 (yyval.node) = (PGNode *)n;
13892 ;}
13893 break;
13894
13895 case 74:
13896#line 351 "third_party/libpg_query/grammar/statements/alter_table.y"
13897 {
13898 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13899 n->subtype = PG_AT_ValidateConstraint;
13900 n->name = (yyvsp[(3) - (3)].str);
13901 (yyval.node) = (PGNode *)n;
13902 ;}
13903 break;
13904
13905 case 75:
13906#line 359 "third_party/libpg_query/grammar/statements/alter_table.y"
13907 {
13908 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13909 n->subtype = PG_AT_DropConstraint;
13910 n->name = (yyvsp[(5) - (6)].str);
13911 n->behavior = (yyvsp[(6) - (6)].dbehavior);
13912 n->missing_ok = true;
13913 (yyval.node) = (PGNode *)n;
13914 ;}
13915 break;
13916
13917 case 76:
13918#line 369 "third_party/libpg_query/grammar/statements/alter_table.y"
13919 {
13920 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13921 n->subtype = PG_AT_DropConstraint;
13922 n->name = (yyvsp[(3) - (4)].str);
13923 n->behavior = (yyvsp[(4) - (4)].dbehavior);
13924 n->missing_ok = false;
13925 (yyval.node) = (PGNode *)n;
13926 ;}
13927 break;
13928
13929 case 77:
13930#line 379 "third_party/libpg_query/grammar/statements/alter_table.y"
13931 {
13932 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13933 n->subtype = PG_AT_SetLogged;
13934 (yyval.node) = (PGNode *)n;
13935 ;}
13936 break;
13937
13938 case 78:
13939#line 386 "third_party/libpg_query/grammar/statements/alter_table.y"
13940 {
13941 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13942 n->subtype = PG_AT_SetUnLogged;
13943 (yyval.node) = (PGNode *)n;
13944 ;}
13945 break;
13946
13947 case 79:
13948#line 393 "third_party/libpg_query/grammar/statements/alter_table.y"
13949 {
13950 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13951 n->subtype = PG_AT_SetRelOptions;
13952 n->def = (PGNode *)(yyvsp[(2) - (2)].list);
13953 (yyval.node) = (PGNode *)n;
13954 ;}
13955 break;
13956
13957 case 80:
13958#line 401 "third_party/libpg_query/grammar/statements/alter_table.y"
13959 {
13960 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13961 n->subtype = PG_AT_ResetRelOptions;
13962 n->def = (PGNode *)(yyvsp[(2) - (2)].list);
13963 (yyval.node) = (PGNode *)n;
13964 ;}
13965 break;
13966
13967 case 81:
13968#line 408 "third_party/libpg_query/grammar/statements/alter_table.y"
13969 {
13970 PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
13971 n->subtype = PG_AT_GenericOptions;
13972 n->def = (PGNode *)(yyvsp[(1) - (1)].list);
13973 (yyval.node) = (PGNode *) n;
13974 ;}
13975 break;
13976
13977 case 82:
13978#line 418 "third_party/libpg_query/grammar/statements/alter_table.y"
13979 { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
13980 break;
13981
13982 case 83:
13983#line 419 "third_party/libpg_query/grammar/statements/alter_table.y"
13984 { (yyval.node) = NULL; ;}
13985 break;
13986
13987 case 84:
13988#line 425 "third_party/libpg_query/grammar/statements/alter_table.y"
13989 {
13990 (yyval.defelt) = (yyvsp[(1) - (1)].defelt);
13991 ;}
13992 break;
13993
13994 case 85:
13995#line 429 "third_party/libpg_query/grammar/statements/alter_table.y"
13996 {
13997 (yyval.defelt) = (yyvsp[(2) - (2)].defelt);
13998 (yyval.defelt)->defaction = PG_DEFELEM_SET;
13999 ;}
14000 break;
14001
14002 case 86:
14003#line 434 "third_party/libpg_query/grammar/statements/alter_table.y"
14004 {
14005 (yyval.defelt) = (yyvsp[(2) - (2)].defelt);
14006 (yyval.defelt)->defaction = PG_DEFELEM_ADD;
14007 ;}
14008 break;
14009
14010 case 87:
14011#line 439 "third_party/libpg_query/grammar/statements/alter_table.y"
14012 {
14013 (yyval.defelt) = makeDefElemExtended(NULL, (yyvsp[(2) - (2)].str), NULL, DEFELEM_DROP, (yylsp[(2) - (2)]));
14014 ;}
14015 break;
14016
14017 case 88:
14018#line 446 "third_party/libpg_query/grammar/statements/alter_table.y"
14019 { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
14020 break;
14021
14022 case 89:
14023#line 447 "third_party/libpg_query/grammar/statements/alter_table.y"
14024 { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
14025 break;
14026
14027 case 90:
14028#line 452 "third_party/libpg_query/grammar/statements/alter_table.y"
14029 { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
14030 break;
14031
14032 case 91:
14033#line 456 "third_party/libpg_query/grammar/statements/alter_table.y"
14034 { (yyval.ival) = 1; ;}
14035 break;
14036
14037 case 92:
14038#line 457 "third_party/libpg_query/grammar/statements/alter_table.y"
14039 { (yyval.ival) = 0; ;}
14040 break;
14041
14042 case 93:
14043#line 8 "third_party/libpg_query/grammar/statements/deallocate.y"
14044 {
14045 PGDeallocateStmt *n = makeNode(PGDeallocateStmt);
14046 n->name = (yyvsp[(2) - (2)].str);
14047 (yyval.node) = (PGNode *) n;
14048 ;}
14049 break;
14050
14051 case 94:
14052#line 14 "third_party/libpg_query/grammar/statements/deallocate.y"
14053 {
14054 PGDeallocateStmt *n = makeNode(PGDeallocateStmt);
14055 n->name = (yyvsp[(3) - (3)].str);
14056 (yyval.node) = (PGNode *) n;
14057 ;}
14058 break;
14059
14060 case 95:
14061#line 20 "third_party/libpg_query/grammar/statements/deallocate.y"
14062 {
14063 PGDeallocateStmt *n = makeNode(PGDeallocateStmt);
14064 n->name = NULL;
14065 (yyval.node) = (PGNode *) n;
14066 ;}
14067 break;
14068
14069 case 96:
14070#line 26 "third_party/libpg_query/grammar/statements/deallocate.y"
14071 {
14072 PGDeallocateStmt *n = makeNode(PGDeallocateStmt);
14073 n->name = NULL;
14074 (yyval.node) = (PGNode *) n;
14075 ;}
14076 break;
14077
14078 case 97:
14079#line 7 "third_party/libpg_query/grammar/statements/rename.y"
14080 {
14081 PGRenameStmt *n = makeNode(PGRenameStmt);
14082 n->renameType = PG_OBJECT_SCHEMA;
14083 n->subname = (yyvsp[(3) - (6)].str);
14084 n->newname = (yyvsp[(6) - (6)].str);
14085 n->missing_ok = false;
14086 (yyval.node) = (PGNode *)n;
14087 ;}
14088 break;
14089
14090 case 98:
14091#line 16 "third_party/libpg_query/grammar/statements/rename.y"
14092 {
14093 PGRenameStmt *n = makeNode(PGRenameStmt);
14094 n->renameType = PG_OBJECT_TABLE;
14095 n->relation = (yyvsp[(3) - (6)].range);
14096 n->subname = NULL;
14097 n->newname = (yyvsp[(6) - (6)].str);
14098 n->missing_ok = false;
14099 (yyval.node) = (PGNode *)n;
14100 ;}
14101 break;
14102
14103 case 99:
14104#line 26 "third_party/libpg_query/grammar/statements/rename.y"
14105 {
14106 PGRenameStmt *n = makeNode(PGRenameStmt);
14107 n->renameType = PG_OBJECT_TABLE;
14108 n->relation = (yyvsp[(5) - (8)].range);
14109 n->subname = NULL;
14110 n->newname = (yyvsp[(8) - (8)].str);
14111 n->missing_ok = true;
14112 (yyval.node) = (PGNode *)n;
14113 ;}
14114 break;
14115
14116 case 100:
14117#line 36 "third_party/libpg_query/grammar/statements/rename.y"
14118 {
14119 PGRenameStmt *n = makeNode(PGRenameStmt);
14120 n->renameType = PG_OBJECT_SEQUENCE;
14121 n->relation = (yyvsp[(3) - (6)].range);
14122 n->subname = NULL;
14123 n->newname = (yyvsp[(6) - (6)].str);
14124 n->missing_ok = false;
14125 (yyval.node) = (PGNode *)n;
14126 ;}
14127 break;
14128
14129 case 101:
14130#line 46 "third_party/libpg_query/grammar/statements/rename.y"
14131 {
14132 PGRenameStmt *n = makeNode(PGRenameStmt);
14133 n->renameType = PG_OBJECT_SEQUENCE;
14134 n->relation = (yyvsp[(5) - (8)].range);
14135 n->subname = NULL;
14136 n->newname = (yyvsp[(8) - (8)].str);
14137 n->missing_ok = true;
14138 (yyval.node) = (PGNode *)n;
14139 ;}
14140 break;
14141
14142 case 102:
14143#line 56 "third_party/libpg_query/grammar/statements/rename.y"
14144 {
14145 PGRenameStmt *n = makeNode(PGRenameStmt);
14146 n->renameType = PG_OBJECT_VIEW;
14147 n->relation = (yyvsp[(3) - (6)].range);
14148 n->subname = NULL;
14149 n->newname = (yyvsp[(6) - (6)].str);
14150 n->missing_ok = false;
14151 (yyval.node) = (PGNode *)n;
14152 ;}
14153 break;
14154
14155 case 103:
14156#line 66 "third_party/libpg_query/grammar/statements/rename.y"
14157 {
14158 PGRenameStmt *n = makeNode(PGRenameStmt);
14159 n->renameType = PG_OBJECT_VIEW;
14160 n->relation = (yyvsp[(5) - (8)].range);
14161 n->subname = NULL;
14162 n->newname = (yyvsp[(8) - (8)].str);
14163 n->missing_ok = true;
14164 (yyval.node) = (PGNode *)n;
14165 ;}
14166 break;
14167
14168 case 104:
14169#line 76 "third_party/libpg_query/grammar/statements/rename.y"
14170 {
14171 PGRenameStmt *n = makeNode(PGRenameStmt);
14172 n->renameType = PG_OBJECT_INDEX;
14173 n->relation = (yyvsp[(3) - (6)].range);
14174 n->subname = NULL;
14175 n->newname = (yyvsp[(6) - (6)].str);
14176 n->missing_ok = false;
14177 (yyval.node) = (PGNode *)n;
14178 ;}
14179 break;
14180
14181 case 105:
14182#line 86 "third_party/libpg_query/grammar/statements/rename.y"
14183 {
14184 PGRenameStmt *n = makeNode(PGRenameStmt);
14185 n->renameType = PG_OBJECT_INDEX;
14186 n->relation = (yyvsp[(5) - (8)].range);
14187 n->subname = NULL;
14188 n->newname = (yyvsp[(8) - (8)].str);
14189 n->missing_ok = true;
14190 (yyval.node) = (PGNode *)n;
14191 ;}
14192 break;
14193
14194 case 106:
14195#line 96 "third_party/libpg_query/grammar/statements/rename.y"
14196 {
14197 PGRenameStmt *n = makeNode(PGRenameStmt);
14198 n->renameType = PG_OBJECT_COLUMN;
14199 n->relationType = PG_OBJECT_TABLE;
14200 n->relation = (yyvsp[(3) - (8)].range);
14201 n->subname = (yyvsp[(6) - (8)].str);
14202 n->newname = (yyvsp[(8) - (8)].str);
14203 n->missing_ok = false;
14204 (yyval.node) = (PGNode *)n;
14205 ;}
14206 break;
14207
14208 case 107:
14209#line 107 "third_party/libpg_query/grammar/statements/rename.y"
14210 {
14211 PGRenameStmt *n = makeNode(PGRenameStmt);
14212 n->renameType = PG_OBJECT_COLUMN;
14213 n->relationType = PG_OBJECT_TABLE;
14214 n->relation = (yyvsp[(5) - (10)].range);
14215 n->subname = (yyvsp[(8) - (10)].str);
14216 n->newname = (yyvsp[(10) - (10)].str);
14217 n->missing_ok = true;
14218 (yyval.node) = (PGNode *)n;
14219 ;}
14220 break;
14221
14222 case 108:
14223#line 118 "third_party/libpg_query/grammar/statements/rename.y"
14224 {
14225 PGRenameStmt *n = makeNode(PGRenameStmt);
14226 n->renameType = PG_OBJECT_TABCONSTRAINT;
14227 n->relation = (yyvsp[(3) - (8)].range);
14228 n->subname = (yyvsp[(6) - (8)].str);
14229 n->newname = (yyvsp[(8) - (8)].str);
14230 n->missing_ok = false;
14231 (yyval.node) = (PGNode *)n;
14232 ;}
14233 break;
14234
14235 case 109:
14236#line 128 "third_party/libpg_query/grammar/statements/rename.y"
14237 {
14238 PGRenameStmt *n = makeNode(PGRenameStmt);
14239 n->renameType = PG_OBJECT_TABCONSTRAINT;
14240 n->relation = (yyvsp[(5) - (10)].range);
14241 n->subname = (yyvsp[(8) - (10)].str);
14242 n->newname = (yyvsp[(10) - (10)].str);
14243 n->missing_ok = true;
14244 (yyval.node) = (PGNode *)n;
14245 ;}
14246 break;
14247
14248 case 110:
14249#line 140 "third_party/libpg_query/grammar/statements/rename.y"
14250 { (yyval.ival) = COLUMN; ;}
14251 break;
14252
14253 case 111:
14254#line 141 "third_party/libpg_query/grammar/statements/rename.y"
14255 { (yyval.ival) = 0; ;}
14256 break;
14257
14258 case 112:
14259#line 10 "third_party/libpg_query/grammar/statements/insert.y"
14260 {
14261 (yyvsp[(5) - (7)].istmt)->relation = (yyvsp[(4) - (7)].range);
14262 (yyvsp[(5) - (7)].istmt)->onConflictClause = (yyvsp[(6) - (7)].onconflict);
14263 (yyvsp[(5) - (7)].istmt)->returningList = (yyvsp[(7) - (7)].list);
14264 (yyvsp[(5) - (7)].istmt)->withClause = (yyvsp[(1) - (7)].with);
14265 (yyval.node) = (PGNode *) (yyvsp[(5) - (7)].istmt);
14266 ;}
14267 break;
14268
14269 case 113:
14270#line 22 "third_party/libpg_query/grammar/statements/insert.y"
14271 {
14272 (yyval.istmt) = makeNode(PGInsertStmt);
14273 (yyval.istmt)->cols = NIL;
14274 (yyval.istmt)->selectStmt = (yyvsp[(1) - (1)].node);
14275 ;}
14276 break;
14277
14278 case 114:
14279#line 28 "third_party/libpg_query/grammar/statements/insert.y"
14280 {
14281 (yyval.istmt) = makeNode(PGInsertStmt);
14282 (yyval.istmt)->cols = NIL;
14283 (yyval.istmt)->override = (yyvsp[(2) - (4)].override);
14284 (yyval.istmt)->selectStmt = (yyvsp[(4) - (4)].node);
14285 ;}
14286 break;
14287
14288 case 115:
14289#line 35 "third_party/libpg_query/grammar/statements/insert.y"
14290 {
14291 (yyval.istmt) = makeNode(PGInsertStmt);
14292 (yyval.istmt)->cols = (yyvsp[(2) - (4)].list);
14293 (yyval.istmt)->selectStmt = (yyvsp[(4) - (4)].node);
14294 ;}
14295 break;
14296
14297 case 116:
14298#line 41 "third_party/libpg_query/grammar/statements/insert.y"
14299 {
14300 (yyval.istmt) = makeNode(PGInsertStmt);
14301 (yyval.istmt)->cols = (yyvsp[(2) - (7)].list);
14302 (yyval.istmt)->override = (yyvsp[(5) - (7)].override);
14303 (yyval.istmt)->selectStmt = (yyvsp[(7) - (7)].node);
14304 ;}
14305 break;
14306
14307 case 117:
14308#line 48 "third_party/libpg_query/grammar/statements/insert.y"
14309 {
14310 (yyval.istmt) = makeNode(PGInsertStmt);
14311 (yyval.istmt)->cols = NIL;
14312 (yyval.istmt)->selectStmt = NULL;
14313 ;}
14314 break;
14315
14316 case 118:
14317#line 58 "third_party/libpg_query/grammar/statements/insert.y"
14318 {
14319 (yyval.range) = (yyvsp[(1) - (1)].range);
14320 ;}
14321 break;
14322
14323 case 119:
14324#line 62 "third_party/libpg_query/grammar/statements/insert.y"
14325 {
14326 (yyvsp[(1) - (3)].range)->alias = makeAlias((yyvsp[(3) - (3)].str), NIL);
14327 (yyval.range) = (yyvsp[(1) - (3)].range);
14328 ;}
14329 break;
14330
14331 case 120:
14332#line 71 "third_party/libpg_query/grammar/statements/insert.y"
14333 {
14334 (yyval.infer) = makeNode(PGInferClause);
14335 (yyval.infer)->indexElems = (yyvsp[(2) - (4)].list);
14336 (yyval.infer)->whereClause = (yyvsp[(4) - (4)].node);
14337 (yyval.infer)->conname = NULL;
14338 (yyval.infer)->location = (yylsp[(1) - (4)]);
14339 ;}
14340 break;
14341
14342 case 121:
14343#line 80 "third_party/libpg_query/grammar/statements/insert.y"
14344 {
14345 (yyval.infer) = makeNode(PGInferClause);
14346 (yyval.infer)->indexElems = NIL;
14347 (yyval.infer)->whereClause = NULL;
14348 (yyval.infer)->conname = (yyvsp[(3) - (3)].str);
14349 (yyval.infer)->location = (yylsp[(1) - (3)]);
14350 ;}
14351 break;
14352
14353 case 122:
14354#line 88 "third_party/libpg_query/grammar/statements/insert.y"
14355 {
14356 (yyval.infer) = NULL;
14357 ;}
14358 break;
14359
14360 case 123:
14361#line 95 "third_party/libpg_query/grammar/statements/insert.y"
14362 { (yyval.with) = (yyvsp[(1) - (1)].with); ;}
14363 break;
14364
14365 case 124:
14366#line 96 "third_party/libpg_query/grammar/statements/insert.y"
14367 { (yyval.with) = NULL; ;}
14368 break;
14369
14370 case 125:
14371#line 102 "third_party/libpg_query/grammar/statements/insert.y"
14372 {
14373 (yyval.target) = makeNode(PGResTarget);
14374 (yyval.target)->name = (yyvsp[(1) - (2)].str);
14375 (yyval.target)->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner);
14376 (yyval.target)->val = NULL;
14377 (yyval.target)->location = (yylsp[(1) - (2)]);
14378 ;}
14379 break;
14380
14381 case 126:
14382#line 114 "third_party/libpg_query/grammar/statements/insert.y"
14383 {
14384 (yyvsp[(1) - (3)].target)->val = (PGNode *) (yyvsp[(3) - (3)].node);
14385 (yyval.list) = list_make1((yyvsp[(1) - (3)].target));
14386 ;}
14387 break;
14388
14389 case 127:
14390#line 119 "third_party/libpg_query/grammar/statements/insert.y"
14391 {
14392 int ncolumns = list_length((yyvsp[(2) - (5)].list));
14393 int i = 1;
14394 PGListCell *col_cell;
14395
14396 /* Create a PGMultiAssignRef source for each target */
14397 foreach(col_cell, (yyvsp[(2) - (5)].list))
14398 {
14399 PGResTarget *res_col = (PGResTarget *) lfirst(col_cell);
14400 PGMultiAssignRef *r = makeNode(PGMultiAssignRef);
14401
14402 r->source = (PGNode *) (yyvsp[(5) - (5)].node);
14403 r->colno = i;
14404 r->ncolumns = ncolumns;
14405 res_col->val = (PGNode *) r;
14406 i++;
14407 }
14408
14409 (yyval.list) = (yyvsp[(2) - (5)].list);
14410 ;}
14411 break;
14412
14413 case 128:
14414#line 144 "third_party/libpg_query/grammar/statements/insert.y"
14415 {
14416 (yyval.onconflict) = makeNode(PGOnConflictClause);
14417 (yyval.onconflict)->action = PG_ONCONFLICT_UPDATE;
14418 (yyval.onconflict)->infer = (yyvsp[(3) - (8)].infer);
14419 (yyval.onconflict)->targetList = (yyvsp[(7) - (8)].list);
14420 (yyval.onconflict)->whereClause = (yyvsp[(8) - (8)].node);
14421 (yyval.onconflict)->location = (yylsp[(1) - (8)]);
14422 ;}
14423 break;
14424
14425 case 129:
14426#line 154 "third_party/libpg_query/grammar/statements/insert.y"
14427 {
14428 (yyval.onconflict) = makeNode(PGOnConflictClause);
14429 (yyval.onconflict)->action = PG_ONCONFLICT_NOTHING;
14430 (yyval.onconflict)->infer = (yyvsp[(3) - (5)].infer);
14431 (yyval.onconflict)->targetList = NIL;
14432 (yyval.onconflict)->whereClause = NULL;
14433 (yyval.onconflict)->location = (yylsp[(1) - (5)]);
14434 ;}
14435 break;
14436
14437 case 130:
14438#line 163 "third_party/libpg_query/grammar/statements/insert.y"
14439 {
14440 (yyval.onconflict) = NULL;
14441 ;}
14442 break;
14443
14444 case 131:
14445#line 170 "third_party/libpg_query/grammar/statements/insert.y"
14446 {
14447 (yyval.ielem) = makeNode(PGIndexElem);
14448 (yyval.ielem)->name = (yyvsp[(1) - (5)].str);
14449 (yyval.ielem)->expr = NULL;
14450 (yyval.ielem)->indexcolname = NULL;
14451 (yyval.ielem)->collation = (yyvsp[(2) - (5)].list);
14452 (yyval.ielem)->opclass = (yyvsp[(3) - (5)].list);
14453 (yyval.ielem)->ordering = (yyvsp[(4) - (5)].sortorder);
14454 (yyval.ielem)->nulls_ordering = (yyvsp[(5) - (5)].nullorder);
14455 ;}
14456 break;
14457
14458 case 132:
14459#line 181 "third_party/libpg_query/grammar/statements/insert.y"
14460 {
14461 (yyval.ielem) = makeNode(PGIndexElem);
14462 (yyval.ielem)->name = NULL;
14463 (yyval.ielem)->expr = (yyvsp[(1) - (5)].node);
14464 (yyval.ielem)->indexcolname = NULL;
14465 (yyval.ielem)->collation = (yyvsp[(2) - (5)].list);
14466 (yyval.ielem)->opclass = (yyvsp[(3) - (5)].list);
14467 (yyval.ielem)->ordering = (yyvsp[(4) - (5)].sortorder);
14468 (yyval.ielem)->nulls_ordering = (yyvsp[(5) - (5)].nullorder);
14469 ;}
14470 break;
14471
14472 case 133:
14473#line 192 "third_party/libpg_query/grammar/statements/insert.y"
14474 {
14475 (yyval.ielem) = makeNode(PGIndexElem);
14476 (yyval.ielem)->name = NULL;
14477 (yyval.ielem)->expr = (yyvsp[(2) - (7)].node);
14478 (yyval.ielem)->indexcolname = NULL;
14479 (yyval.ielem)->collation = (yyvsp[(4) - (7)].list);
14480 (yyval.ielem)->opclass = (yyvsp[(5) - (7)].list);
14481 (yyval.ielem)->ordering = (yyvsp[(6) - (7)].sortorder);
14482 (yyval.ielem)->nulls_ordering = (yyvsp[(7) - (7)].nullorder);
14483 ;}
14484 break;
14485
14486 case 134:
14487#line 206 "third_party/libpg_query/grammar/statements/insert.y"
14488 { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
14489 break;
14490
14491 case 135:
14492#line 207 "third_party/libpg_query/grammar/statements/insert.y"
14493 { (yyval.list) = NIL; ;}
14494 break;
14495
14496 case 136:
14497#line 213 "third_party/libpg_query/grammar/statements/insert.y"
14498 { (yyval.override) = PG_OVERRIDING_USER_VALUE; ;}
14499 break;
14500
14501 case 137:
14502#line 214 "third_party/libpg_query/grammar/statements/insert.y"
14503 { (yyval.override) = OVERRIDING_SYSTEM_VALUE; ;}
14504 break;
14505
14506 case 138:
14507#line 219 "third_party/libpg_query/grammar/statements/insert.y"
14508 { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;}
14509 break;
14510
14511 case 139:
14512#line 220 "third_party/libpg_query/grammar/statements/insert.y"
14513 { (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].target)); ;}
14514 break;
14515
14516 case 140:
14517#line 226 "third_party/libpg_query/grammar/statements/insert.y"
14518 { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
14519 break;
14520
14521 case 141:
14522#line 227 "third_party/libpg_query/grammar/statements/insert.y"
14523 { (yyval.list) = NIL; ;}
14524 break;
14525
14526 case 142:
14527#line 231 "third_party/libpg_query/grammar/statements/insert.y"
14528 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
14529 break;
14530
14531 case 143:
14532#line 232 "third_party/libpg_query/grammar/statements/insert.y"
14533 { (yyval.list) = NIL; ;}
14534 break;
14535
14536 case 144:
14537#line 238 "third_party/libpg_query/grammar/statements/insert.y"
14538 { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;}
14539 break;
14540
14541 case 145:
14542#line 240 "third_party/libpg_query/grammar/statements/insert.y"
14543 { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;}
14544 break;
14545
14546 case 146:
14547#line 245 "third_party/libpg_query/grammar/statements/insert.y"
14548 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
14549 break;
14550
14551 case 147:
14552#line 246 "third_party/libpg_query/grammar/statements/insert.y"
14553 { (yyval.list) = list_concat((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].list)); ;}
14554 break;
14555
14556 case 148:
14557#line 250 "third_party/libpg_query/grammar/statements/insert.y"
14558 { (yyval.list) = list_make1((yyvsp[(1) - (1)].ielem)); ;}
14559 break;
14560
14561 case 149:
14562#line 251 "third_party/libpg_query/grammar/statements/insert.y"
14563 { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].ielem)); ;}
14564 break;
14565
14566 case 150:
14567#line 257 "third_party/libpg_query/grammar/statements/insert.y"
14568 {
14569 (yyval.target) = makeNode(PGResTarget);
14570 (yyval.target)->name = (yyvsp[(1) - (2)].str);
14571 (yyval.target)->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner);
14572 (yyval.target)->val = NULL; /* upper production sets this */
14573 (yyval.target)->location = (yylsp[(1) - (2)]);
14574 ;}
14575 break;
14576
14577 case 151:
14578#line 8 "third_party/libpg_query/grammar/statements/pragma.y"
14579 {
14580 PGPragmaStmt *n = makeNode(PGPragmaStmt);
14581 n->kind = PG_PRAGMA_TYPE_NOTHING;
14582 n->name = (yyvsp[(2) - (2)].str);
14583 (yyval.node) = (PGNode *)n;
14584 ;}
14585 break;
14586
14587 case 152:
14588#line 15 "third_party/libpg_query/grammar/statements/pragma.y"
14589 {
14590 PGPragmaStmt *n = makeNode(PGPragmaStmt);
14591 n->kind = PG_PRAGMA_TYPE_ASSIGNMENT;
14592 n->name = (yyvsp[(2) - (4)].str);
14593 n->args = (yyvsp[(4) - (4)].list);
14594 (yyval.node) = (PGNode *)n;
14595 ;}
14596 break;
14597
14598 case 153:
14599#line 23 "third_party/libpg_query/grammar/statements/pragma.y"
14600 {
14601 PGPragmaStmt *n = makeNode(PGPragmaStmt);
14602 n->kind = PG_PRAGMA_TYPE_CALL;
14603 n->name = (yyvsp[(2) - (5)].str);
14604 n->args = (yyvsp[(4) - (5)].list);
14605 (yyval.node) = (PGNode *)n;
14606 ;}
14607 break;
14608
14609 case 154:
14610#line 10 "third_party/libpg_query/grammar/statements/create_sequence.y"
14611 {
14612 PGCreateSeqStmt *n = makeNode(PGCreateSeqStmt);
14613 (yyvsp[(4) - (5)].range)->relpersistence = (yyvsp[(2) - (5)].ival);
14614 n->sequence = (yyvsp[(4) - (5)].range);
14615 n->options = (yyvsp[(5) - (5)].list);
14616 n->ownerId = InvalidOid;
14617 n->if_not_exists = false;
14618 (yyval.node) = (PGNode *)n;
14619 ;}
14620 break;
14621
14622 case 155:
14623#line 20 "third_party/libpg_query/grammar/statements/create_sequence.y"
14624 {
14625 PGCreateSeqStmt *n = makeNode(PGCreateSeqStmt);
14626 (yyvsp[(7) - (8)].range)->relpersistence = (yyvsp[(2) - (8)].ival);
14627 n->sequence = (yyvsp[(7) - (8)].range);
14628 n->options = (yyvsp[(8) - (8)].list);
14629 n->ownerId = InvalidOid;
14630 n->if_not_exists = true;
14631 (yyval.node) = (PGNode *)n;
14632 ;}
14633 break;
14634
14635 case 156:
14636#line 32 "third_party/libpg_query/grammar/statements/create_sequence.y"
14637 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
14638 break;
14639
14640 case 157:
14641#line 33 "third_party/libpg_query/grammar/statements/create_sequence.y"
14642 { (yyval.list) = NIL; ;}
14643 break;
14644
14645 case 158:
14646#line 8 "third_party/libpg_query/grammar/statements/execute.y"
14647 {
14648 PGExecuteStmt *n = makeNode(PGExecuteStmt);
14649 n->name = (yyvsp[(2) - (3)].str);
14650 n->params = (yyvsp[(3) - (3)].list);
14651 (yyval.node) = (PGNode *) n;
14652 ;}
14653 break;
14654
14655 case 159:
14656#line 16 "third_party/libpg_query/grammar/statements/execute.y"
14657 {
14658 PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt);
14659 PGExecuteStmt *n = makeNode(PGExecuteStmt);
14660 n->name = (yyvsp[(7) - (9)].str);
14661 n->params = (yyvsp[(8) - (9)].list);
14662 ctas->query = (PGNode *) n;
14663 ctas->into = (yyvsp[(4) - (9)].into);
14664 ctas->relkind = PG_OBJECT_TABLE;
14665 ctas->is_select_into = false;
14666 ctas->if_not_exists = false;
14667 /* cram additional flags into the PGIntoClause */
14668 (yyvsp[(4) - (9)].into)->rel->relpersistence = (yyvsp[(2) - (9)].ival);
14669 (yyvsp[(4) - (9)].into)->skipData = !((yyvsp[(9) - (9)].boolean));
14670 (yyval.node) = (PGNode *) ctas;
14671 ;}
14672 break;
14673
14674 case 160:
14675#line 33 "third_party/libpg_query/grammar/statements/execute.y"
14676 {
14677 PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt);
14678 PGExecuteStmt *n = makeNode(PGExecuteStmt);
14679 n->name = (yyvsp[(10) - (12)].str);
14680 n->params = (yyvsp[(11) - (12)].list);
14681 ctas->query = (PGNode *) n;
14682 ctas->into = (yyvsp[(7) - (12)].into);
14683 ctas->relkind = PG_OBJECT_TABLE;
14684 ctas->is_select_into = false;
14685 ctas->if_not_exists = true;
14686 /* cram additional flags into the PGIntoClause */
14687 (yyvsp[(7) - (12)].into)->rel->relpersistence = (yyvsp[(2) - (12)].ival);
14688 (yyvsp[(7) - (12)].into)->skipData = !((yyvsp[(12) - (12)].boolean));
14689 (yyval.node) = (PGNode *) ctas;
14690 ;}
14691 break;
14692
14693 case 161:
14694#line 51 "third_party/libpg_query/grammar/statements/execute.y"
14695 { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
14696 break;
14697
14698 case 162:
14699#line 52 "third_party/libpg_query/grammar/statements/execute.y"
14700 { (yyval.list) = NIL; ;}
14701 break;
14702
14703 case 163:
14704#line 10 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14705 {
14706 PGAlterSeqStmt *n = makeNode(PGAlterSeqStmt);
14707 n->sequence = (yyvsp[(3) - (4)].range);
14708 n->options = (yyvsp[(4) - (4)].list);
14709 n->missing_ok = false;
14710 (yyval.node) = (PGNode *)n;
14711 ;}
14712 break;
14713
14714 case 164:
14715#line 18 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14716 {
14717 PGAlterSeqStmt *n = makeNode(PGAlterSeqStmt);
14718 n->sequence = (yyvsp[(5) - (6)].range);
14719 n->options = (yyvsp[(6) - (6)].list);
14720 n->missing_ok = true;
14721 (yyval.node) = (PGNode *)n;
14722 ;}
14723 break;
14724
14725 case 165:
14726#line 29 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14727 { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
14728 break;
14729
14730 case 166:
14731#line 30 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14732 { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;}
14733 break;
14734
14735 case 167:
14736#line 34 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14737 {;}
14738 break;
14739
14740 case 168:
14741#line 35 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14742 {;}
14743 break;
14744
14745 case 169:
14746#line 36 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14747 {;}
14748 break;
14749
14750 case 170:
14751#line 41 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14752 { (yyval.value) = makeFloat((yyvsp[(1) - (1)].str)); ;}
14753 break;
14754
14755 case 171:
14756#line 42 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14757 { (yyval.value) = makeFloat((yyvsp[(2) - (2)].str)); ;}
14758 break;
14759
14760 case 172:
14761#line 44 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14762 {
14763 (yyval.value) = makeFloat((yyvsp[(2) - (2)].str));
14764 doNegateFloat((yyval.value));
14765 ;}
14766 break;
14767
14768 case 173:
14769#line 48 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14770 { (yyval.value) = makeInteger((yyvsp[(1) - (1)].ival)); ;}
14771 break;
14772
14773 case 174:
14774#line 53 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14775 {
14776 (yyval.defelt) = makeDefElem("as", (PGNode *)(yyvsp[(2) - (2)].typnam), (yylsp[(1) - (2)]));
14777 ;}
14778 break;
14779
14780 case 175:
14781#line 57 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14782 {
14783 (yyval.defelt) = makeDefElem("cache", (PGNode *)(yyvsp[(2) - (2)].value), (yylsp[(1) - (2)]));
14784 ;}
14785 break;
14786
14787 case 176:
14788#line 61 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14789 {
14790 (yyval.defelt) = makeDefElem("cycle", (PGNode *)makeInteger(true), (yylsp[(1) - (1)]));
14791 ;}
14792 break;
14793
14794 case 177:
14795#line 65 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14796 {
14797 (yyval.defelt) = makeDefElem("cycle", (PGNode *)makeInteger(false), (yylsp[(1) - (2)]));
14798 ;}
14799 break;
14800
14801 case 178:
14802#line 69 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14803 {
14804 (yyval.defelt) = makeDefElem("increment", (PGNode *)(yyvsp[(3) - (3)].value), (yylsp[(1) - (3)]));
14805 ;}
14806 break;
14807
14808 case 179:
14809#line 73 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14810 {
14811 (yyval.defelt) = makeDefElem("maxvalue", (PGNode *)(yyvsp[(2) - (2)].value), (yylsp[(1) - (2)]));
14812 ;}
14813 break;
14814
14815 case 180:
14816#line 77 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14817 {
14818 (yyval.defelt) = makeDefElem("minvalue", (PGNode *)(yyvsp[(2) - (2)].value), (yylsp[(1) - (2)]));
14819 ;}
14820 break;
14821
14822 case 181:
14823#line 81 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14824 {
14825 (yyval.defelt) = makeDefElem("maxvalue", NULL, (yylsp[(1) - (2)]));
14826 ;}
14827 break;
14828
14829 case 182:
14830#line 85 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14831 {
14832 (yyval.defelt) = makeDefElem("minvalue", NULL, (yylsp[(1) - (2)]));
14833 ;}
14834 break;
14835
14836 case 183:
14837#line 89 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14838 {
14839 (yyval.defelt) = makeDefElem("owned_by", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)]));
14840 ;}
14841 break;
14842
14843 case 184:
14844#line 93 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14845 {
14846 /* not documented, only used by pg_dump */
14847 (yyval.defelt) = makeDefElem("sequence_name", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)]));
14848 ;}
14849 break;
14850
14851 case 185:
14852#line 98 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14853 {
14854 (yyval.defelt) = makeDefElem("start", (PGNode *)(yyvsp[(3) - (3)].value), (yylsp[(1) - (3)]));
14855 ;}
14856 break;
14857
14858 case 186:
14859#line 102 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14860 {
14861 (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[(1) - (1)]));
14862 ;}
14863 break;
14864
14865 case 187:
14866#line 106 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14867 {
14868 (yyval.defelt) = makeDefElem("restart", (PGNode *)(yyvsp[(3) - (3)].value), (yylsp[(1) - (3)]));
14869 ;}
14870 break;
14871
14872 case 188:
14873#line 112 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14874 {;}
14875 break;
14876
14877 case 189:
14878#line 113 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14879 {;}
14880 break;
14881
14882 case 190:
14883#line 117 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14884 { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;}
14885 break;
14886
14887 case 191:
14888#line 118 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14889 { (yyval.ival) = + (yyvsp[(2) - (2)].ival); ;}
14890 break;
14891
14892 case 192:
14893#line 119 "third_party/libpg_query/grammar/statements/alter_sequence.y"
14894 { (yyval.ival) = - (yyvsp[(2) - (2)].ival); ;}
14895 break;
14896
14897 case 193:
14898#line 3 "third_party/libpg_query/grammar/statements/transaction.y"
14899 {
14900 PGTransactionStmt *n = makeNode(PGTransactionStmt);
14901 n->kind = PG_TRANS_STMT_ROLLBACK;
14902 n->options = NIL;
14903 (yyval.node) = (PGNode *)n;
14904 ;}
14905 break;
14906
14907 case 194:
14908#line 10 "third_party/libpg_query/grammar/statements/transaction.y"
14909 {
14910 PGTransactionStmt *n = makeNode(PGTransactionStmt);
14911 n->kind = PG_TRANS_STMT_BEGIN;
14912 (yyval.node) = (PGNode *)n;
14913 ;}
14914 break;
14915
14916 case 195:
14917#line 16 "third_party/libpg_query/grammar/statements/transaction.y"
14918 {
14919 PGTransactionStmt *n = makeNode(PGTransactionStmt);
14920 n->kind = PG_TRANS_STMT_START;
14921 (yyval.node) = (PGNode *)n;
14922 ;}
14923 break;
14924
14925 case 196:
14926#line 22 "third_party/libpg_query/grammar/statements/transaction.y"
14927 {
14928 PGTransactionStmt *n = makeNode(PGTransactionStmt);
14929 n->kind = PG_TRANS_STMT_COMMIT;
14930 n->options = NIL;
14931 (yyval.node) = (PGNode *)n;
14932 ;}
14933 break;
14934
14935 case 197:
14936#line 29 "third_party/libpg_query/grammar/statements/transaction.y"
14937 {
14938 PGTransactionStmt *n = makeNode(PGTransactionStmt);
14939 n->kind = PG_TRANS_STMT_COMMIT;
14940 n->options = NIL;
14941 (yyval.node) = (PGNode *)n;
14942 ;}
14943 break;
14944
14945 case 198:
14946#line 36 "third_party/libpg_query/grammar/statements/transaction.y"
14947 {
14948 PGTransactionStmt *n = makeNode(PGTransactionStmt);
14949 n->kind = PG_TRANS_STMT_ROLLBACK;
14950 n->options = NIL;
14951 (yyval.node) = (PGNode *)n;
14952 ;}
14953 break;
14954
14955 case 199:
14956#line 45 "third_party/libpg_query/grammar/statements/transaction.y"
14957 {;}
14958 break;
14959
14960 case 200:
14961#line 46 "third_party/libpg_query/grammar/statements/transaction.y"
14962 {;}
14963 break;
14964
14965 case 201:
14966#line 47 "third_party/libpg_query/grammar/statements/transaction.y"
14967 {;}
14968 break;
14969
14970 case 202:
14971#line 9 "third_party/libpg_query/grammar/statements/create.y"
14972 {
14973 PGCreateStmt *n = makeNode(PGCreateStmt);
14974 (yyvsp[(4) - (9)].range)->relpersistence = (yyvsp[(2) - (9)].ival);
14975 n->relation = (yyvsp[(4) - (9)].range);
14976 n->tableElts = (yyvsp[(6) - (9)].list);
14977 n->ofTypename = NULL;
14978 n->constraints = NIL;
14979 n->options = (yyvsp[(8) - (9)].list);
14980 n->oncommit = (yyvsp[(9) - (9)].oncommit);
14981 n->if_not_exists = false;
14982 (yyval.node) = (PGNode *)n;
14983 ;}
14984 break;
14985
14986 case 203:
14987#line 24 "third_party/libpg_query/grammar/statements/create.y"
14988 {
14989 PGCreateStmt *n = makeNode(PGCreateStmt);
14990 (yyvsp[(7) - (12)].range)->relpersistence = (yyvsp[(2) - (12)].ival);
14991 n->relation = (yyvsp[(7) - (12)].range);
14992 n->tableElts = (yyvsp[(9) - (12)].list);
14993 n->ofTypename = NULL;
14994 n->constraints = NIL;
14995 n->options = (yyvsp[(11) - (12)].list);
14996 n->oncommit = (yyvsp[(12) - (12)].oncommit);
14997 n->if_not_exists = true;
14998 (yyval.node) = (PGNode *)n;
14999 ;}
15000 break;
15001
15002 case 204:
15003#line 41 "third_party/libpg_query/grammar/statements/create.y"
15004 { (yyval.ival) = 0; ;}
15005 break;
15006
15007 case 205:
15008#line 43 "third_party/libpg_query/grammar/statements/create.y"
15009 {
15010 /*
15011 * We must complain about conflicting options.
15012 * We could, but choose not to, complain about redundant
15013 * options (ie, where $2's bit is already set in $1).
15014 */
15015 int newspec = (yyvsp[(1) - (2)].ival) | (yyvsp[(2) - (2)].ival);
15016
15017 /* special message for this case */
15018 if ((newspec & (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) == (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED))
15019 ereport(ERROR,
15020 (errcode(PG_ERRCODE_SYNTAX_ERROR),
15021 errmsg("constraint declared INITIALLY DEFERRED must be DEFERRABLE"),
15022 parser_errposition((yylsp[(2) - (2)]))));
15023 /* generic message for other conflicts */
15024 if ((newspec & (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE)) == (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE) ||
15025 (newspec & (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) == (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED))
15026 ereport(ERROR,
15027 (errcode(PG_ERRCODE_SYNTAX_ERROR),
15028 errmsg("conflicting constraint properties"),
15029 parser_errposition((yylsp[(2) - (2)]))));
15030 (yyval.ival) = newspec;
15031 ;}
15032 break;
15033
15034 case 206:
15035#line 69 "third_party/libpg_query/grammar/statements/create.y"
15036 { (yyval.node) = (PGNode *)(yyvsp[(1) - (1)].typnam); ;}
15037 break;
15038
15039 case 207:
15040#line 70 "third_party/libpg_query/grammar/statements/create.y"
15041 { (yyval.node) = (PGNode *)makeString(pstrdup((yyvsp[(1) - (1)].keyword))); ;}
15042 break;
15043
15044 case 208:
15045#line 71 "third_party/libpg_query/grammar/statements/create.y"
15046 { (yyval.node) = (PGNode *)(yyvsp[(1) - (1)].list); ;}
15047 break;
15048
15049 case 209:
15050#line 72 "third_party/libpg_query/grammar/statements/create.y"
15051 { (yyval.node) = (PGNode *)(yyvsp[(1) - (1)].value); ;}
15052 break;
15053
15054 case 210:
15055#line 73 "third_party/libpg_query/grammar/statements/create.y"
15056 { (yyval.node) = (PGNode *)makeString((yyvsp[(1) - (1)].str)); ;}
15057 break;
15058
15059 case 211:
15060#line 74 "third_party/libpg_query/grammar/statements/create.y"
15061 { (yyval.node) = (PGNode *)makeString(pstrdup((yyvsp[(1) - (1)].keyword))); ;}
15062 break;
15063
15064 case 212:
15065#line 78 "third_party/libpg_query/grammar/statements/create.y"
15066 { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
15067 break;
15068
15069 case 213:
15070#line 79 "third_party/libpg_query/grammar/statements/create.y"
15071 { (yyval.list) = NIL; ;}
15072 break;
15073
15074 case 214:
15075#line 84 "third_party/libpg_query/grammar/statements/create.y"
15076 { (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); ;}
15077 break;
15078
15079 case 215:
15080#line 89 "third_party/libpg_query/grammar/statements/create.y"
15081 { (yyval.ival) = PG_FKCONSTR_ACTION_NOACTION; ;}
15082 break;
15083
15084 case 216:
15085#line 90 "third_party/libpg_query/grammar/statements/create.y"
15086 { (yyval.ival) = PG_FKCONSTR_ACTION_RESTRICT; ;}
15087 break;
15088
15089 case 217:
15090#line 91 "third_party/libpg_query/grammar/statements/create.y"
15091 { (yyval.ival) = PG_FKCONSTR_ACTION_CASCADE; ;}
15092 break;
15093
15094 case 218:
15095#line 92 "third_party/libpg_query/grammar/statements/create.y"
15096 { (yyval.ival) = PG_FKCONSTR_ACTION_SETNULL; ;}
15097 break;
15098
15099 case 219:
15100#line 93 "third_party/libpg_query/grammar/statements/create.y"
15101 { (yyval.ival) = PG_FKCONSTR_ACTION_SETDEFAULT; ;}
15102 break;
15103
15104 case 220:
15105#line 99 "third_party/libpg_query/grammar/statements/create.y"
15106 {
15107 PGConstraint *n = castNode(PGConstraint, (yyvsp[(3) - (3)].node));
15108 n->conname = (yyvsp[(2) - (3)].str);
15109 n->location = (yylsp[(1) - (3)]);
15110 (yyval.node) = (PGNode *) n;
15111 ;}
15112 break;
15113
15114 case 221:
15115#line 105 "third_party/libpg_query/grammar/statements/create.y"
15116 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
15117 break;
15118
15119 case 222:
15120#line 106 "third_party/libpg_query/grammar/statements/create.y"
15121 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
15122 break;
15123
15124 case 223:
15125#line 108 "third_party/libpg_query/grammar/statements/create.y"
15126 {
15127 /*
15128 * Note: the PGCollateClause is momentarily included in
15129 * the list built by ColQualList, but we split it out
15130 * again in SplitColQualList.
15131 */
15132 PGCollateClause *n = makeNode(PGCollateClause);
15133 n->arg = NULL;
15134 n->collname = (yyvsp[(2) - (2)].list);
15135 n->location = (yylsp[(1) - (2)]);
15136 (yyval.node) = (PGNode *) n;
15137 ;}
15138 break;
15139
15140 case 224:
15141#line 125 "third_party/libpg_query/grammar/statements/create.y"
15142 {
15143 PGConstraint *n = makeNode(PGConstraint);
15144 n->contype = PG_CONSTR_NOTNULL;
15145 n->location = (yylsp[(1) - (2)]);
15146 (yyval.node) = (PGNode *)n;
15147 ;}
15148 break;
15149
15150 case 225:
15151#line 132 "third_party/libpg_query/grammar/statements/create.y"
15152 {
15153 PGConstraint *n = makeNode(PGConstraint);
15154 n->contype = PG_CONSTR_NULL;
15155 n->location = (yylsp[(1) - (1)]);
15156 (yyval.node) = (PGNode *)n;
15157 ;}
15158 break;
15159
15160 case 226:
15161#line 139 "third_party/libpg_query/grammar/statements/create.y"
15162 {
15163 PGConstraint *n = makeNode(PGConstraint);
15164 n->contype = PG_CONSTR_UNIQUE;
15165 n->location = (yylsp[(1) - (2)]);
15166 n->keys = NULL;
15167 n->options = (yyvsp[(2) - (2)].list);
15168 n->indexname = NULL;
15169 (yyval.node) = (PGNode *)n;
15170 ;}
15171 break;
15172
15173 case 227:
15174#line 149 "third_party/libpg_query/grammar/statements/create.y"
15175 {
15176 PGConstraint *n = makeNode(PGConstraint);
15177 n->contype = PG_CONSTR_PRIMARY;
15178 n->location = (yylsp[(1) - (3)]);
15179 n->keys = NULL;
15180 n->options = (yyvsp[(3) - (3)].list);
15181 n->indexname = NULL;
15182 (yyval.node) = (PGNode *)n;
15183 ;}
15184 break;
15185
15186 case 228:
15187#line 159 "third_party/libpg_query/grammar/statements/create.y"
15188 {
15189 PGConstraint *n = makeNode(PGConstraint);
15190 n->contype = PG_CONSTR_CHECK;
15191 n->location = (yylsp[(1) - (5)]);
15192 n->is_no_inherit = (yyvsp[(5) - (5)].boolean);
15193 n->raw_expr = (yyvsp[(3) - (5)].node);
15194 n->cooked_expr = NULL;
15195 n->skip_validation = false;
15196 n->initially_valid = true;
15197 (yyval.node) = (PGNode *)n;
15198 ;}
15199 break;
15200
15201 case 229:
15202#line 171 "third_party/libpg_query/grammar/statements/create.y"
15203 {
15204 PGConstraint *n = makeNode(PGConstraint);
15205 n->contype = PG_CONSTR_DEFAULT;
15206 n->location = (yylsp[(1) - (2)]);
15207 n->raw_expr = (yyvsp[(2) - (2)].node);
15208 n->cooked_expr = NULL;
15209 (yyval.node) = (PGNode *)n;
15210 ;}
15211 break;
15212
15213 case 230:
15214#line 180 "third_party/libpg_query/grammar/statements/create.y"
15215 {
15216 PGConstraint *n = makeNode(PGConstraint);
15217 n->contype = PG_CONSTR_IDENTITY;
15218 n->generated_when = (yyvsp[(2) - (5)].ival);
15219 n->options = (yyvsp[(5) - (5)].list);
15220 n->location = (yylsp[(1) - (5)]);
15221 (yyval.node) = (PGNode *)n;
15222 ;}
15223 break;
15224
15225 case 231:
15226#line 189 "third_party/libpg_query/grammar/statements/create.y"
15227 {
15228 PGConstraint *n = makeNode(PGConstraint);
15229 n->contype = PG_CONSTR_FOREIGN;
15230 n->location = (yylsp[(1) - (5)]);
15231 n->pktable = (yyvsp[(2) - (5)].range);
15232 n->fk_attrs = NIL;
15233 n->pk_attrs = (yyvsp[(3) - (5)].list);
15234 n->fk_matchtype = (yyvsp[(4) - (5)].ival);
15235 n->fk_upd_action = (char) ((yyvsp[(5) - (5)].ival) >> 8);
15236 n->fk_del_action = (char) ((yyvsp[(5) - (5)].ival) & 0xFF);
15237 n->skip_validation = false;
15238 n->initially_valid = true;
15239 (yyval.node) = (PGNode *)n;
15240 ;}
15241 break;
15242
15243 case 232:
15244#line 208 "third_party/libpg_query/grammar/statements/create.y"
15245 {
15246 (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)]));
15247 ;}
15248 break;
15249
15250 case 233:
15251#line 214 "third_party/libpg_query/grammar/statements/create.y"
15252 { (yyval.ival) = (yyvsp[(3) - (3)].ival); ;}
15253 break;
15254
15255 case 234:
15256#line 220 "third_party/libpg_query/grammar/statements/create.y"
15257 { (yyval.ival) = ((yyvsp[(1) - (1)].ival) << 8) | (PG_FKCONSTR_ACTION_NOACTION & 0xFF); ;}
15258 break;
15259
15260 case 235:
15261#line 222 "third_party/libpg_query/grammar/statements/create.y"
15262 { (yyval.ival) = (PG_FKCONSTR_ACTION_NOACTION << 8) | ((yyvsp[(1) - (1)].ival) & 0xFF); ;}
15263 break;
15264
15265 case 236:
15266#line 224 "third_party/libpg_query/grammar/statements/create.y"
15267 { (yyval.ival) = ((yyvsp[(1) - (2)].ival) << 8) | ((yyvsp[(2) - (2)].ival) & 0xFF); ;}
15268 break;
15269
15270 case 237:
15271#line 226 "third_party/libpg_query/grammar/statements/create.y"
15272 { (yyval.ival) = ((yyvsp[(2) - (2)].ival) << 8) | ((yyvsp[(1) - (2)].ival) & 0xFF); ;}
15273 break;
15274
15275 case 238:
15276#line 228 "third_party/libpg_query/grammar/statements/create.y"
15277 { (yyval.ival) = (PG_FKCONSTR_ACTION_NOACTION << 8) | (PG_FKCONSTR_ACTION_NOACTION & 0xFF); ;}
15278 break;
15279
15280 case 239:
15281#line 233 "third_party/libpg_query/grammar/statements/create.y"
15282 { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
15283 break;
15284
15285 case 240:
15286#line 234 "third_party/libpg_query/grammar/statements/create.y"
15287 { (yyval.list) = NIL; ;}
15288 break;
15289
15290 case 241:
15291#line 238 "third_party/libpg_query/grammar/statements/create.y"
15292 { (yyval.oncommit) = ONCOMMIT_DROP; ;}
15293 break;
15294
15295 case 242:
15296#line 239 "third_party/libpg_query/grammar/statements/create.y"
15297 { (yyval.oncommit) = PG_ONCOMMIT_DELETE_ROWS; ;}
15298 break;
15299
15300 case 243:
15301#line 240 "third_party/libpg_query/grammar/statements/create.y"
15302 { (yyval.oncommit) = PG_ONCOMMIT_PRESERVE_ROWS; ;}
15303 break;
15304
15305 case 244:
15306#line 241 "third_party/libpg_query/grammar/statements/create.y"
15307 { (yyval.oncommit) = PG_ONCOMMIT_NOOP; ;}
15308 break;
15309
15310 case 245:
15311#line 246 "third_party/libpg_query/grammar/statements/create.y"
15312 { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
15313 break;
15314
15315 case 246:
15316#line 250 "third_party/libpg_query/grammar/statements/create.y"
15317 { (yyval.boolean) = true; ;}
15318 break;
15319
15320 case 247:
15321#line 251 "third_party/libpg_query/grammar/statements/create.y"
15322 { (yyval.boolean) = false; ;}
15323 break;
15324
15325 case 248:
15326#line 257 "third_party/libpg_query/grammar/statements/create.y"
15327 {
15328 PGConstraint *n = castNode(PGConstraint, (yyvsp[(3) - (3)].node));
15329 n->conname = (yyvsp[(2) - (3)].str);
15330 n->location = (yylsp[(1) - (3)]);
15331 (yyval.node) = (PGNode *) n;
15332 ;}
15333 break;
15334
15335 case 249:
15336#line 263 "third_party/libpg_query/grammar/statements/create.y"
15337 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
15338 break;
15339
15340 case 250:
15341#line 268 "third_party/libpg_query/grammar/statements/create.y"
15342 { (yyval.ival) = PG_CREATE_TABLE_LIKE_COMMENTS; ;}
15343 break;
15344
15345 case 251:
15346#line 269 "third_party/libpg_query/grammar/statements/create.y"
15347 { (yyval.ival) = PG_CREATE_TABLE_LIKE_CONSTRAINTS; ;}
15348 break;
15349
15350 case 252:
15351#line 270 "third_party/libpg_query/grammar/statements/create.y"
15352 { (yyval.ival) = PG_CREATE_TABLE_LIKE_DEFAULTS; ;}
15353 break;
15354
15355 case 253:
15356#line 271 "third_party/libpg_query/grammar/statements/create.y"
15357 { (yyval.ival) = PG_CREATE_TABLE_LIKE_IDENTITY; ;}
15358 break;
15359
15360 case 254:
15361#line 272 "third_party/libpg_query/grammar/statements/create.y"
15362 { (yyval.ival) = PG_CREATE_TABLE_LIKE_INDEXES; ;}
15363 break;
15364
15365 case 255:
15366#line 273 "third_party/libpg_query/grammar/statements/create.y"
15367 { (yyval.ival) = PG_CREATE_TABLE_LIKE_STATISTICS; ;}
15368 break;
15369
15370 case 256:
15371#line 274 "third_party/libpg_query/grammar/statements/create.y"
15372 { (yyval.ival) = PG_CREATE_TABLE_LIKE_STORAGE; ;}
15373 break;
15374
15375 case 257:
15376#line 275 "third_party/libpg_query/grammar/statements/create.y"
15377 { (yyval.ival) = PG_CREATE_TABLE_LIKE_ALL; ;}
15378 break;
15379
15380 case 258:
15381#line 281 "third_party/libpg_query/grammar/statements/create.y"
15382 { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
15383 break;
15384
15385 case 259:
15386#line 282 "third_party/libpg_query/grammar/statements/create.y"
15387 { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;}
15388 break;
15389
15390 case 260:
15391#line 286 "third_party/libpg_query/grammar/statements/create.y"
15392 { (yyval.str) = (yyvsp[(3) - (3)].str); ;}
15393 break;
15394
15395 case 261:
15396#line 292 "third_party/libpg_query/grammar/statements/create.y"
15397 {
15398 PGConstraint *n = makeNode(PGConstraint);
15399 n->contype = PG_CONSTR_ATTR_DEFERRABLE;
15400 n->location = (yylsp[(1) - (1)]);
15401 (yyval.node) = (PGNode *)n;
15402 ;}
15403 break;
15404
15405 case 262:
15406#line 299 "third_party/libpg_query/grammar/statements/create.y"
15407 {
15408 PGConstraint *n = makeNode(PGConstraint);
15409 n->contype = PG_CONSTR_ATTR_NOT_DEFERRABLE;
15410 n->location = (yylsp[(1) - (2)]);
15411 (yyval.node) = (PGNode *)n;
15412 ;}
15413 break;
15414
15415 case 263:
15416#line 306 "third_party/libpg_query/grammar/statements/create.y"
15417 {
15418 PGConstraint *n = makeNode(PGConstraint);
15419 n->contype = PG_CONSTR_ATTR_DEFERRED;
15420 n->location = (yylsp[(1) - (2)]);
15421 (yyval.node) = (PGNode *)n;
15422 ;}
15423 break;
15424
15425 case 264:
15426#line 313 "third_party/libpg_query/grammar/statements/create.y"
15427 {
15428 PGConstraint *n = makeNode(PGConstraint);
15429 n->contype = PG_CONSTR_ATTR_IMMEDIATE;
15430 n->location = (yylsp[(1) - (2)]);
15431 (yyval.node) = (PGNode *)n;
15432 ;}
15433 break;
15434
15435 case 265:
15436#line 324 "third_party/libpg_query/grammar/statements/create.y"
15437 { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
15438 break;
15439
15440 case 266:
15441#line 325 "third_party/libpg_query/grammar/statements/create.y"
15442 { (yyval.list) = list_make1(makeDefElem("oids", (PGNode *) makeInteger(true), (yylsp[(1) - (2)]))); ;}
15443 break;
15444
15445 case 267:
15446#line 326 "third_party/libpg_query/grammar/statements/create.y"
15447 { (yyval.list) = list_make1(makeDefElem("oids", (PGNode *) makeInteger(false), (yylsp[(1) - (2)]))); ;}
15448 break;
15449
15450 case 268:
15451#line 327 "third_party/libpg_query/grammar/statements/create.y"
15452 { (yyval.list) = NIL; ;}
15453 break;
15454
15455 case 269:
15456#line 331 "third_party/libpg_query/grammar/statements/create.y"
15457 { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
15458 break;
15459
15460 case 270:
15461#line 336 "third_party/libpg_query/grammar/statements/create.y"
15462 { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); ;}
15463 break;
15464
15465 case 271:
15466#line 337 "third_party/libpg_query/grammar/statements/create.y"
15467 { (yyval.ival) = (yyvsp[(1) - (3)].ival) & ~(yyvsp[(3) - (3)].ival); ;}
15468 break;
15469
15470 case 272:
15471#line 338 "third_party/libpg_query/grammar/statements/create.y"
15472 { (yyval.ival) = 0; ;}
15473 break;
15474
15475 case 273:
15476#line 343 "third_party/libpg_query/grammar/statements/create.y"
15477 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
15478 break;
15479
15480 case 274:
15481#line 348 "third_party/libpg_query/grammar/statements/create.y"
15482 { (yyval.ival) = CAS_NOT_DEFERRABLE; ;}
15483 break;
15484
15485 case 275:
15486#line 349 "third_party/libpg_query/grammar/statements/create.y"
15487 { (yyval.ival) = CAS_DEFERRABLE; ;}
15488 break;
15489
15490 case 276:
15491#line 350 "third_party/libpg_query/grammar/statements/create.y"
15492 { (yyval.ival) = CAS_INITIALLY_IMMEDIATE; ;}
15493 break;
15494
15495 case 277:
15496#line 351 "third_party/libpg_query/grammar/statements/create.y"
15497 { (yyval.ival) = CAS_INITIALLY_DEFERRED; ;}
15498 break;
15499
15500 case 278:
15501#line 352 "third_party/libpg_query/grammar/statements/create.y"
15502 { (yyval.ival) = CAS_NOT_VALID; ;}
15503 break;
15504
15505 case 279:
15506#line 353 "third_party/libpg_query/grammar/statements/create.y"
15507 { (yyval.ival) = CAS_NO_INHERIT; ;}
15508 break;
15509
15510 case 280:
15511#line 359 "third_party/libpg_query/grammar/statements/create.y"
15512 {
15513 PGColumnDef *n = makeNode(PGColumnDef);
15514 n->colname = (yyvsp[(1) - (4)].str);
15515 n->typeName = (yyvsp[(2) - (4)].typnam);
15516 n->inhcount = 0;
15517 n->is_local = true;
15518 n->is_not_null = false;
15519 n->is_from_type = false;
15520 n->storage = 0;
15521 n->raw_default = NULL;
15522 n->cooked_default = NULL;
15523 n->collOid = InvalidOid;
15524 n->fdwoptions = (yyvsp[(3) - (4)].list);
15525 SplitColQualList((yyvsp[(4) - (4)].list), &n->constraints, &n->collClause,
15526 yyscanner);
15527 n->location = (yylsp[(1) - (4)]);
15528 (yyval.node) = (PGNode *)n;
15529 ;}
15530 break;
15531
15532 case 281:
15533#line 382 "third_party/libpg_query/grammar/statements/create.y"
15534 {
15535 (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt));
15536 ;}
15537 break;
15538
15539 case 282:
15540#line 386 "third_party/libpg_query/grammar/statements/create.y"
15541 {
15542 (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt));
15543 ;}
15544 break;
15545
15546 case 283:
15547#line 392 "third_party/libpg_query/grammar/statements/create.y"
15548 { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
15549 break;
15550
15551 case 284:
15552#line 393 "third_party/libpg_query/grammar/statements/create.y"
15553 { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;}
15554 break;
15555
15556 case 285:
15557#line 397 "third_party/libpg_query/grammar/statements/create.y"
15558 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
15559 break;
15560
15561 case 286:
15562#line 401 "third_party/libpg_query/grammar/statements/create.y"
15563 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
15564 break;
15565
15566 case 287:
15567#line 402 "third_party/libpg_query/grammar/statements/create.y"
15568 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
15569 break;
15570
15571 case 288:
15572#line 403 "third_party/libpg_query/grammar/statements/create.y"
15573 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
15574 break;
15575
15576 case 289:
15577#line 408 "third_party/libpg_query/grammar/statements/create.y"
15578 {
15579 (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (PGNode *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)]));
15580 ;}
15581 break;
15582
15583 case 290:
15584#line 412 "third_party/libpg_query/grammar/statements/create.y"
15585 {
15586 (yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL, (yylsp[(1) - (1)]));
15587 ;}
15588 break;
15589
15590 case 291:
15591#line 419 "third_party/libpg_query/grammar/statements/create.y"
15592 { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
15593 break;
15594
15595 case 292:
15596#line 420 "third_party/libpg_query/grammar/statements/create.y"
15597 { (yyval.list) = NIL; ;}
15598 break;
15599
15600 case 293:
15601#line 425 "third_party/libpg_query/grammar/statements/create.y"
15602 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
15603 break;
15604
15605 case 294:
15606#line 426 "third_party/libpg_query/grammar/statements/create.y"
15607 { (yyval.list) = NIL; ;}
15608 break;
15609
15610 case 295:
15611#line 431 "third_party/libpg_query/grammar/statements/create.y"
15612 {
15613 (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str));
15614 ;}
15615 break;
15616
15617 case 296:
15618#line 438 "third_party/libpg_query/grammar/statements/create.y"
15619 { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
15620 break;
15621
15622 case 297:
15623#line 439 "third_party/libpg_query/grammar/statements/create.y"
15624 { (yyval.list) = NIL; ;}
15625 break;
15626
15627 case 298:
15628#line 444 "third_party/libpg_query/grammar/statements/create.y"
15629 { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
15630 break;
15631
15632 case 299:
15633#line 445 "third_party/libpg_query/grammar/statements/create.y"
15634 { (yyval.list) = NIL; ;}
15635 break;
15636
15637 case 300:
15638#line 449 "third_party/libpg_query/grammar/statements/create.y"
15639 { (yyval.ival) = (yyvsp[(3) - (3)].ival); ;}
15640 break;
15641
15642 case 301:
15643#line 455 "third_party/libpg_query/grammar/statements/create.y"
15644 {
15645 (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (PGNode *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)]));
15646 ;}
15647 break;
15648
15649 case 302:
15650#line 459 "third_party/libpg_query/grammar/statements/create.y"
15651 {
15652 (yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL, (yylsp[(1) - (1)]));
15653 ;}
15654 break;
15655
15656 case 303:
15657#line 463 "third_party/libpg_query/grammar/statements/create.y"
15658 {
15659 (yyval.defelt) = makeDefElemExtended((yyvsp[(1) - (5)].str), (yyvsp[(3) - (5)].str), (PGNode *) (yyvsp[(5) - (5)].node),
15660 PG_DEFELEM_UNSPEC, (yylsp[(1) - (5)]));
15661 ;}
15662 break;
15663
15664 case 304:
15665#line 468 "third_party/libpg_query/grammar/statements/create.y"
15666 {
15667 (yyval.defelt) = makeDefElemExtended((yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str), NULL, PG_DEFELEM_UNSPEC, (yylsp[(1) - (3)]));
15668 ;}
15669 break;
15670
15671 case 305:
15672#line 475 "third_party/libpg_query/grammar/statements/create.y"
15673 { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
15674 break;
15675
15676 case 306:
15677#line 476 "third_party/libpg_query/grammar/statements/create.y"
15678 { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
15679 break;
15680
15681 case 307:
15682#line 480 "third_party/libpg_query/grammar/statements/create.y"
15683 { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
15684 break;
15685
15686 case 308:
15687#line 482 "third_party/libpg_query/grammar/statements/create.y"
15688 {
15689 (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(1) - (4)].str)), (yyvsp[(2) - (4)].list)));
15690 (yyval.typnam)->pct_type = true;
15691 (yyval.typnam)->location = (yylsp[(1) - (4)]);
15692 ;}
15693 break;
15694
15695 case 309:
15696#line 488 "third_party/libpg_query/grammar/statements/create.y"
15697 {
15698 (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(2) - (5)].str)), (yyvsp[(3) - (5)].list)));
15699 (yyval.typnam)->pct_type = true;
15700 (yyval.typnam)->setof = true;
15701 (yyval.typnam)->location = (yylsp[(2) - (5)]);
15702 ;}
15703 break;
15704
15705 case 310:
15706#line 499 "third_party/libpg_query/grammar/statements/create.y"
15707 {
15708 PGConstraint *n = makeNode(PGConstraint);
15709 n->contype = PG_CONSTR_CHECK;
15710 n->location = (yylsp[(1) - (5)]);
15711 n->raw_expr = (yyvsp[(3) - (5)].node);
15712 n->cooked_expr = NULL;
15713 processCASbits((yyvsp[(5) - (5)].ival), (yylsp[(5) - (5)]), "CHECK",
15714 NULL, NULL, &n->skip_validation,
15715 &n->is_no_inherit, yyscanner);
15716 n->initially_valid = !n->skip_validation;
15717 (yyval.node) = (PGNode *)n;
15718 ;}
15719 break;
15720
15721 case 311:
15722#line 513 "third_party/libpg_query/grammar/statements/create.y"
15723 {
15724 PGConstraint *n = makeNode(PGConstraint);
15725 n->contype = PG_CONSTR_UNIQUE;
15726 n->location = (yylsp[(1) - (6)]);
15727 n->keys = (yyvsp[(3) - (6)].list);
15728 n->options = (yyvsp[(5) - (6)].list);
15729 n->indexname = NULL;
15730 processCASbits((yyvsp[(6) - (6)].ival), (yylsp[(6) - (6)]), "UNIQUE",
15731 &n->deferrable, &n->initdeferred, NULL,
15732 NULL, yyscanner);
15733 (yyval.node) = (PGNode *)n;
15734 ;}
15735 break;
15736
15737 case 312:
15738#line 526 "third_party/libpg_query/grammar/statements/create.y"
15739 {
15740 PGConstraint *n = makeNode(PGConstraint);
15741 n->contype = PG_CONSTR_UNIQUE;
15742 n->location = (yylsp[(1) - (3)]);
15743 n->keys = NIL;
15744 n->options = NIL;
15745 n->indexname = (yyvsp[(2) - (3)].str);
15746 n->indexspace = NULL;
15747 processCASbits((yyvsp[(3) - (3)].ival), (yylsp[(3) - (3)]), "UNIQUE",
15748 &n->deferrable, &n->initdeferred, NULL,
15749 NULL, yyscanner);
15750 (yyval.node) = (PGNode *)n;
15751 ;}
15752 break;
15753
15754 case 313:
15755#line 541 "third_party/libpg_query/grammar/statements/create.y"
15756 {
15757 PGConstraint *n = makeNode(PGConstraint);
15758 n->contype = PG_CONSTR_PRIMARY;
15759 n->location = (yylsp[(1) - (7)]);
15760 n->keys = (yyvsp[(4) - (7)].list);
15761 n->options = (yyvsp[(6) - (7)].list);
15762 n->indexname = NULL;
15763 processCASbits((yyvsp[(7) - (7)].ival), (yylsp[(7) - (7)]), "PRIMARY KEY",
15764 &n->deferrable, &n->initdeferred, NULL,
15765 NULL, yyscanner);
15766 (yyval.node) = (PGNode *)n;
15767 ;}
15768 break;
15769
15770 case 314:
15771#line 554 "third_party/libpg_query/grammar/statements/create.y"
15772 {
15773 PGConstraint *n = makeNode(PGConstraint);
15774 n->contype = PG_CONSTR_PRIMARY;
15775 n->location = (yylsp[(1) - (4)]);
15776 n->keys = NIL;
15777 n->options = NIL;
15778 n->indexname = (yyvsp[(3) - (4)].str);
15779 n->indexspace = NULL;
15780 processCASbits((yyvsp[(4) - (4)].ival), (yylsp[(4) - (4)]), "PRIMARY KEY",
15781 &n->deferrable, &n->initdeferred, NULL,
15782 NULL, yyscanner);
15783 (yyval.node) = (PGNode *)n;
15784 ;}
15785 break;
15786
15787 case 315:
15788#line 569 "third_party/libpg_query/grammar/statements/create.y"
15789 {
15790 PGConstraint *n = makeNode(PGConstraint);
15791 n->contype = PG_CONSTR_FOREIGN;
15792 n->location = (yylsp[(1) - (11)]);
15793 n->pktable = (yyvsp[(7) - (11)].range);
15794 n->fk_attrs = (yyvsp[(4) - (11)].list);
15795 n->pk_attrs = (yyvsp[(8) - (11)].list);
15796 n->fk_matchtype = (yyvsp[(9) - (11)].ival);
15797 n->fk_upd_action = (char) ((yyvsp[(10) - (11)].ival) >> 8);
15798 n->fk_del_action = (char) ((yyvsp[(10) - (11)].ival) & 0xFF);
15799 processCASbits((yyvsp[(11) - (11)].ival), (yylsp[(11) - (11)]), "FOREIGN KEY",
15800 &n->deferrable, &n->initdeferred,
15801 &n->skip_validation, NULL,
15802 yyscanner);
15803 n->initially_valid = !n->skip_validation;
15804 (yyval.node) = (PGNode *)n;
15805 ;}
15806 break;
15807
15808 case 316:
15809#line 591 "third_party/libpg_query/grammar/statements/create.y"
15810 {
15811 (yyval.list) = list_make1((yyvsp[(1) - (1)].node));
15812 ;}
15813 break;
15814
15815 case 317:
15816#line 595 "third_party/libpg_query/grammar/statements/create.y"
15817 {
15818 (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
15819 ;}
15820 break;
15821
15822 case 318:
15823#line 602 "third_party/libpg_query/grammar/statements/create.y"
15824 {
15825 (yyval.ival) = PG_FKCONSTR_MATCH_FULL;
15826 ;}
15827 break;
15828
15829 case 319:
15830#line 606 "third_party/libpg_query/grammar/statements/create.y"
15831 {
15832 ereport(ERROR,
15833 (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
15834 errmsg("MATCH PARTIAL not yet implemented"),
15835 parser_errposition((yylsp[(1) - (2)]))));
15836 (yyval.ival) = PG_FKCONSTR_MATCH_PARTIAL;
15837 ;}
15838 break;
15839
15840 case 320:
15841#line 614 "third_party/libpg_query/grammar/statements/create.y"
15842 {
15843 (yyval.ival) = PG_FKCONSTR_MATCH_SIMPLE;
15844 ;}
15845 break;
15846
15847 case 321:
15848#line 618 "third_party/libpg_query/grammar/statements/create.y"
15849 {
15850 (yyval.ival) = PG_FKCONSTR_MATCH_SIMPLE;
15851 ;}
15852 break;
15853
15854 case 322:
15855#line 626 "third_party/libpg_query/grammar/statements/create.y"
15856 {
15857 PGTableLikeClause *n = makeNode(PGTableLikeClause);
15858 n->relation = (yyvsp[(2) - (3)].range);
15859 n->options = (yyvsp[(3) - (3)].ival);
15860 (yyval.node) = (PGNode *)n;
15861 ;}
15862 break;
15863
15864 case 323:
15865#line 635 "third_party/libpg_query/grammar/statements/create.y"
15866 { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;}
15867 break;
15868
15869 case 324:
15870#line 636 "third_party/libpg_query/grammar/statements/create.y"
15871 { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;}
15872 break;
15873
15874 case 325:
15875#line 637 "third_party/libpg_query/grammar/statements/create.y"
15876 { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;}
15877 break;
15878
15879 case 326:
15880#line 638 "third_party/libpg_query/grammar/statements/create.y"
15881 { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;}
15882 break;
15883
15884 case 327:
15885#line 640 "third_party/libpg_query/grammar/statements/create.y"
15886 {
15887 ereport(PGWARNING,
15888 (errmsg("GLOBAL is deprecated in temporary table creation"),
15889 parser_errposition((yylsp[(1) - (2)]))));
15890 (yyval.ival) = PG_RELPERSISTENCE_TEMP;
15891 ;}
15892 break;
15893
15894 case 328:
15895#line 647 "third_party/libpg_query/grammar/statements/create.y"
15896 {
15897 ereport(PGWARNING,
15898 (errmsg("GLOBAL is deprecated in temporary table creation"),
15899 parser_errposition((yylsp[(1) - (2)]))));
15900 (yyval.ival) = PG_RELPERSISTENCE_TEMP;
15901 ;}
15902 break;
15903
15904 case 329:
15905#line 653 "third_party/libpg_query/grammar/statements/create.y"
15906 { (yyval.ival) = PG_RELPERSISTENCE_UNLOGGED; ;}
15907 break;
15908
15909 case 330:
15910#line 654 "third_party/libpg_query/grammar/statements/create.y"
15911 { (yyval.ival) = RELPERSISTENCE_PERMANENT; ;}
15912 break;
15913
15914 case 331:
15915#line 659 "third_party/libpg_query/grammar/statements/create.y"
15916 { (yyval.ival) = PG_ATTRIBUTE_IDENTITY_ALWAYS; ;}
15917 break;
15918
15919 case 332:
15920#line 660 "third_party/libpg_query/grammar/statements/create.y"
15921 { (yyval.ival) = ATTRIBUTE_IDENTITY_BY_DEFAULT; ;}
15922 break;
15923
15924 case 333:
15925#line 10 "third_party/libpg_query/grammar/statements/drop.y"
15926 {
15927 PGDropStmt *n = makeNode(PGDropStmt);
15928 n->removeType = (yyvsp[(2) - (6)].objtype);
15929 n->missing_ok = true;
15930 n->objects = (yyvsp[(5) - (6)].list);
15931 n->behavior = (yyvsp[(6) - (6)].dbehavior);
15932 n->concurrent = false;
15933 (yyval.node) = (PGNode *)n;
15934 ;}
15935 break;
15936
15937 case 334:
15938#line 20 "third_party/libpg_query/grammar/statements/drop.y"
15939 {
15940 PGDropStmt *n = makeNode(PGDropStmt);
15941 n->removeType = (yyvsp[(2) - (4)].objtype);
15942 n->missing_ok = false;
15943 n->objects = (yyvsp[(3) - (4)].list);
15944 n->behavior = (yyvsp[(4) - (4)].dbehavior);
15945 n->concurrent = false;
15946 (yyval.node) = (PGNode *)n;
15947 ;}
15948 break;
15949
15950 case 335:
15951#line 30 "third_party/libpg_query/grammar/statements/drop.y"
15952 {
15953 PGDropStmt *n = makeNode(PGDropStmt);
15954 n->removeType = (yyvsp[(2) - (6)].objtype);
15955 n->missing_ok = true;
15956 n->objects = (yyvsp[(5) - (6)].list);
15957 n->behavior = (yyvsp[(6) - (6)].dbehavior);
15958 n->concurrent = false;
15959 (yyval.node) = (PGNode *)n;
15960 ;}
15961 break;
15962
15963 case 336:
15964#line 40 "third_party/libpg_query/grammar/statements/drop.y"
15965 {
15966 PGDropStmt *n = makeNode(PGDropStmt);
15967 n->removeType = (yyvsp[(2) - (4)].objtype);
15968 n->missing_ok = false;
15969 n->objects = (yyvsp[(3) - (4)].list);
15970 n->behavior = (yyvsp[(4) - (4)].dbehavior);
15971 n->concurrent = false;
15972 (yyval.node) = (PGNode *)n;
15973 ;}
15974 break;
15975
15976 case 337:
15977#line 50 "third_party/libpg_query/grammar/statements/drop.y"
15978 {
15979 PGDropStmt *n = makeNode(PGDropStmt);
15980 n->removeType = (yyvsp[(2) - (6)].objtype);
15981 n->objects = list_make1(lappend((yyvsp[(5) - (6)].list), makeString((yyvsp[(3) - (6)].str))));
15982 n->behavior = (yyvsp[(6) - (6)].dbehavior);
15983 n->missing_ok = false;
15984 n->concurrent = false;
15985 (yyval.node) = (PGNode *) n;
15986 ;}
15987 break;
15988
15989 case 338:
15990#line 60 "third_party/libpg_query/grammar/statements/drop.y"
15991 {
15992 PGDropStmt *n = makeNode(PGDropStmt);
15993 n->removeType = (yyvsp[(2) - (8)].objtype);
15994 n->objects = list_make1(lappend((yyvsp[(7) - (8)].list), makeString((yyvsp[(5) - (8)].str))));
15995 n->behavior = (yyvsp[(8) - (8)].dbehavior);
15996 n->missing_ok = true;
15997 n->concurrent = false;
15998 (yyval.node) = (PGNode *) n;
15999 ;}
16000 break;
16001
16002 case 339:
16003#line 73 "third_party/libpg_query/grammar/statements/drop.y"
16004 { (yyval.objtype) = PG_OBJECT_TABLE; ;}
16005 break;
16006
16007 case 340:
16008#line 74 "third_party/libpg_query/grammar/statements/drop.y"
16009 { (yyval.objtype) = PG_OBJECT_SEQUENCE; ;}
16010 break;
16011
16012 case 341:
16013#line 75 "third_party/libpg_query/grammar/statements/drop.y"
16014 { (yyval.objtype) = PG_OBJECT_VIEW; ;}
16015 break;
16016
16017 case 342:
16018#line 76 "third_party/libpg_query/grammar/statements/drop.y"
16019 { (yyval.objtype) = PG_OBJECT_MATVIEW; ;}
16020 break;
16021
16022 case 343:
16023#line 77 "third_party/libpg_query/grammar/statements/drop.y"
16024 { (yyval.objtype) = PG_OBJECT_INDEX; ;}
16025 break;
16026
16027 case 344:
16028#line 78 "third_party/libpg_query/grammar/statements/drop.y"
16029 { (yyval.objtype) = PG_OBJECT_FOREIGN_TABLE; ;}
16030 break;
16031
16032 case 345:
16033#line 79 "third_party/libpg_query/grammar/statements/drop.y"
16034 { (yyval.objtype) = PG_OBJECT_COLLATION; ;}
16035 break;
16036
16037 case 346:
16038#line 80 "third_party/libpg_query/grammar/statements/drop.y"
16039 { (yyval.objtype) = PG_OBJECT_CONVERSION; ;}
16040 break;
16041
16042 case 347:
16043#line 81 "third_party/libpg_query/grammar/statements/drop.y"
16044 { (yyval.objtype) = PG_OBJECT_STATISTIC_EXT; ;}
16045 break;
16046
16047 case 348:
16048#line 82 "third_party/libpg_query/grammar/statements/drop.y"
16049 { (yyval.objtype) = PG_OBJECT_TSPARSER; ;}
16050 break;
16051
16052 case 349:
16053#line 83 "third_party/libpg_query/grammar/statements/drop.y"
16054 { (yyval.objtype) = PG_OBJECT_TSDICTIONARY; ;}
16055 break;
16056
16057 case 350:
16058#line 84 "third_party/libpg_query/grammar/statements/drop.y"
16059 { (yyval.objtype) = PG_OBJECT_TSTEMPLATE; ;}
16060 break;
16061
16062 case 351:
16063#line 85 "third_party/libpg_query/grammar/statements/drop.y"
16064 { (yyval.objtype) = PG_OBJECT_TSCONFIGURATION; ;}
16065 break;
16066
16067 case 352:
16068#line 90 "third_party/libpg_query/grammar/statements/drop.y"
16069 { (yyval.objtype) = PG_OBJECT_ACCESS_METHOD; ;}
16070 break;
16071
16072 case 353:
16073#line 91 "third_party/libpg_query/grammar/statements/drop.y"
16074 { (yyval.objtype) = PG_OBJECT_EVENT_TRIGGER; ;}
16075 break;
16076
16077 case 354:
16078#line 92 "third_party/libpg_query/grammar/statements/drop.y"
16079 { (yyval.objtype) = PG_OBJECT_EXTENSION; ;}
16080 break;
16081
16082 case 355:
16083#line 93 "third_party/libpg_query/grammar/statements/drop.y"
16084 { (yyval.objtype) = PG_OBJECT_FDW; ;}
16085 break;
16086
16087 case 356:
16088#line 94 "third_party/libpg_query/grammar/statements/drop.y"
16089 { (yyval.objtype) = PG_OBJECT_PUBLICATION; ;}
16090 break;
16091
16092 case 357:
16093#line 95 "third_party/libpg_query/grammar/statements/drop.y"
16094 { (yyval.objtype) = PG_OBJECT_SCHEMA; ;}
16095 break;
16096
16097 case 358:
16098#line 96 "third_party/libpg_query/grammar/statements/drop.y"
16099 { (yyval.objtype) = PG_OBJECT_FOREIGN_SERVER; ;}
16100 break;
16101
16102 case 359:
16103#line 101 "third_party/libpg_query/grammar/statements/drop.y"
16104 { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;}
16105 break;
16106
16107 case 360:
16108#line 102 "third_party/libpg_query/grammar/statements/drop.y"
16109 { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;}
16110 break;
16111
16112 case 361:
16113#line 107 "third_party/libpg_query/grammar/statements/drop.y"
16114 { (yyval.dbehavior) = PG_DROP_CASCADE; ;}
16115 break;
16116
16117 case 362:
16118#line 108 "third_party/libpg_query/grammar/statements/drop.y"
16119 { (yyval.dbehavior) = PG_DROP_RESTRICT; ;}
16120 break;
16121
16122 case 363:
16123#line 109 "third_party/libpg_query/grammar/statements/drop.y"
16124 { (yyval.dbehavior) = PG_DROP_RESTRICT; /* default */ ;}
16125 break;
16126
16127 case 364:
16128#line 114 "third_party/libpg_query/grammar/statements/drop.y"
16129 { (yyval.objtype) = PG_OBJECT_POLICY; ;}
16130 break;
16131
16132 case 365:
16133#line 115 "third_party/libpg_query/grammar/statements/drop.y"
16134 { (yyval.objtype) = PG_OBJECT_RULE; ;}
16135 break;
16136
16137 case 366:
16138#line 116 "third_party/libpg_query/grammar/statements/drop.y"
16139 { (yyval.objtype) = PG_OBJECT_TRIGGER; ;}
16140 break;
16141
16142 case 367:
16143#line 12 "third_party/libpg_query/grammar/statements/update.y"
16144 {
16145 PGUpdateStmt *n = makeNode(PGUpdateStmt);
16146 n->relation = (yyvsp[(3) - (8)].range);
16147 n->targetList = (yyvsp[(5) - (8)].list);
16148 n->fromClause = (yyvsp[(6) - (8)].list);
16149 n->whereClause = (yyvsp[(7) - (8)].node);
16150 n->returningList = (yyvsp[(8) - (8)].list);
16151 n->withClause = (yyvsp[(1) - (8)].with);
16152 (yyval.node) = (PGNode *)n;
16153 ;}
16154 break;
16155
16156 case 368:
16157#line 3 "third_party/libpg_query/grammar/statements/copy.y"
16158 {
16159 PGCopyStmt *n = makeNode(PGCopyStmt);
16160 n->relation = (yyvsp[(3) - (11)].range);
16161 n->query = NULL;
16162 n->attlist = (yyvsp[(4) - (11)].list);
16163 n->is_from = (yyvsp[(6) - (11)].boolean);
16164 n->is_program = (yyvsp[(7) - (11)].boolean);
16165 n->filename = (yyvsp[(8) - (11)].str);
16166
16167 if (n->is_program && n->filename == NULL)
16168 ereport(ERROR,
16169 (errcode(PG_ERRCODE_SYNTAX_ERROR),
16170 errmsg("STDIN/STDOUT not allowed with PROGRAM"),
16171 parser_errposition((yylsp[(8) - (11)]))));
16172
16173 n->options = NIL;
16174 /* Concatenate user-supplied flags */
16175 if ((yyvsp[(2) - (11)].defelt))
16176 n->options = lappend(n->options, (yyvsp[(2) - (11)].defelt));
16177 if ((yyvsp[(5) - (11)].defelt))
16178 n->options = lappend(n->options, (yyvsp[(5) - (11)].defelt));
16179 if ((yyvsp[(9) - (11)].defelt))
16180 n->options = lappend(n->options, (yyvsp[(9) - (11)].defelt));
16181 if ((yyvsp[(11) - (11)].list))
16182 n->options = list_concat(n->options, (yyvsp[(11) - (11)].list));
16183 (yyval.node) = (PGNode *)n;
16184 ;}
16185 break;
16186
16187 case 369:
16188#line 31 "third_party/libpg_query/grammar/statements/copy.y"
16189 {
16190 PGCopyStmt *n = makeNode(PGCopyStmt);
16191 n->relation = NULL;
16192 n->query = (yyvsp[(3) - (9)].node);
16193 n->attlist = NIL;
16194 n->is_from = false;
16195 n->is_program = (yyvsp[(6) - (9)].boolean);
16196 n->filename = (yyvsp[(7) - (9)].str);
16197 n->options = (yyvsp[(9) - (9)].list);
16198
16199 if (n->is_program && n->filename == NULL)
16200 ereport(ERROR,
16201 (errcode(PG_ERRCODE_SYNTAX_ERROR),
16202 errmsg("STDIN/STDOUT not allowed with PROGRAM"),
16203 parser_errposition((yylsp[(5) - (9)]))));
16204
16205 (yyval.node) = (PGNode *)n;
16206 ;}
16207 break;
16208
16209 case 370:
16210#line 53 "third_party/libpg_query/grammar/statements/copy.y"
16211 { (yyval.boolean) = true; ;}
16212 break;
16213
16214 case 371:
16215#line 54 "third_party/libpg_query/grammar/statements/copy.y"
16216 { (yyval.boolean) = false; ;}
16217 break;
16218
16219 case 372:
16220#line 60 "third_party/libpg_query/grammar/statements/copy.y"
16221 {
16222 (yyval.defelt) = makeDefElem("delimiter", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(2) - (3)]));
16223 ;}
16224 break;
16225
16226 case 373:
16227#line 63 "third_party/libpg_query/grammar/statements/copy.y"
16228 { (yyval.defelt) = NULL; ;}
16229 break;
16230
16231 case 374:
16232#line 69 "third_party/libpg_query/grammar/statements/copy.y"
16233 {
16234 (yyval.list) = list_make1((yyvsp[(1) - (1)].node));
16235 ;}
16236 break;
16237
16238 case 375:
16239#line 73 "third_party/libpg_query/grammar/statements/copy.y"
16240 {
16241 (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
16242 ;}
16243 break;
16244
16245 case 376:
16246#line 80 "third_party/libpg_query/grammar/statements/copy.y"
16247 {;}
16248 break;
16249
16250 case 377:
16251#line 81 "third_party/libpg_query/grammar/statements/copy.y"
16252 {;}
16253 break;
16254
16255 case 378:
16256#line 85 "third_party/libpg_query/grammar/statements/copy.y"
16257 {;}
16258 break;
16259
16260 case 379:
16261#line 86 "third_party/libpg_query/grammar/statements/copy.y"
16262 {;}
16263 break;
16264
16265 case 380:
16266#line 91 "third_party/libpg_query/grammar/statements/copy.y"
16267 { (yyval.boolean) = true; ;}
16268 break;
16269
16270 case 381:
16271#line 92 "third_party/libpg_query/grammar/statements/copy.y"
16272 { (yyval.boolean) = false; ;}
16273 break;
16274
16275 case 382:
16276#line 96 "third_party/libpg_query/grammar/statements/copy.y"
16277 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
16278 break;
16279
16280 case 383:
16281#line 97 "third_party/libpg_query/grammar/statements/copy.y"
16282 { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
16283 break;
16284
16285 case 384:
16286#line 102 "third_party/libpg_query/grammar/statements/copy.y"
16287 { (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); ;}
16288 break;
16289
16290 case 385:
16291#line 103 "third_party/libpg_query/grammar/statements/copy.y"
16292 { (yyval.node) = (PGNode *) (yyvsp[(1) - (1)].value); ;}
16293 break;
16294
16295 case 386:
16296#line 104 "third_party/libpg_query/grammar/statements/copy.y"
16297 { (yyval.node) = (PGNode *) makeNode(PGAStar); ;}
16298 break;
16299
16300 case 387:
16301#line 105 "third_party/libpg_query/grammar/statements/copy.y"
16302 { (yyval.node) = (PGNode *) (yyvsp[(2) - (3)].list); ;}
16303 break;
16304
16305 case 388:
16306#line 106 "third_party/libpg_query/grammar/statements/copy.y"
16307 { (yyval.node) = NULL; ;}
16308 break;
16309
16310 case 389:
16311#line 112 "third_party/libpg_query/grammar/statements/copy.y"
16312 {
16313 (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)]));
16314 ;}
16315 break;
16316
16317 case 390:
16318#line 120 "third_party/libpg_query/grammar/statements/copy.y"
16319 {
16320 (yyval.defelt) = makeDefElem("oids", (PGNode *)makeInteger(true), (yylsp[(1) - (2)]));
16321 ;}
16322 break;
16323
16324 case 391:
16325#line 123 "third_party/libpg_query/grammar/statements/copy.y"
16326 { (yyval.defelt) = NULL; ;}
16327 break;
16328
16329 case 392:
16330#line 128 "third_party/libpg_query/grammar/statements/copy.y"
16331 { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;}
16332 break;
16333
16334 case 393:
16335#line 129 "third_party/libpg_query/grammar/statements/copy.y"
16336 { (yyval.list) = NIL; ;}
16337 break;
16338
16339 case 394:
16340#line 135 "third_party/libpg_query/grammar/statements/copy.y"
16341 {
16342 (yyval.defelt) = makeDefElem("format", (PGNode *)makeString("binary"), (yylsp[(1) - (1)]));
16343 ;}
16344 break;
16345
16346 case 395:
16347#line 138 "third_party/libpg_query/grammar/statements/copy.y"
16348 { (yyval.defelt) = NULL; ;}
16349 break;
16350
16351 case 396:
16352#line 144 "third_party/libpg_query/grammar/statements/copy.y"
16353 {
16354 (yyval.defelt) = makeDefElem("format", (PGNode *)makeString("binary"), (yylsp[(1) - (1)]));
16355 ;}
16356 break;
16357
16358 case 397:
16359#line 148 "third_party/libpg_query/grammar/statements/copy.y"
16360 {
16361 (yyval.defelt) = makeDefElem("oids", (PGNode *)makeInteger(true), (yylsp[(1) - (1)]));
16362 ;}
16363 break;
16364
16365 case 398:
16366#line 152 "third_party/libpg_query/grammar/statements/copy.y"
16367 {
16368 (yyval.defelt) = makeDefElem("freeze", (PGNode *)makeInteger(true), (yylsp[(1) - (1)]));
16369 ;}
16370 break;
16371
16372 case 399:
16373#line 156 "third_party/libpg_query/grammar/statements/copy.y"
16374 {
16375 (yyval.defelt) = makeDefElem("delimiter", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)]));
16376 ;}
16377 break;
16378
16379 case 400:
16380#line 160 "third_party/libpg_query/grammar/statements/copy.y"
16381 {
16382 (yyval.defelt) = makeDefElem("null", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)]));
16383 ;}
16384 break;
16385
16386 case 401:
16387#line 164 "third_party/libpg_query/grammar/statements/copy.y"
16388 {
16389 (yyval.defelt) = makeDefElem("format", (PGNode *)makeString("csv"), (yylsp[(1) - (1)]));
16390 ;}
16391 break;
16392
16393 case 402:
16394#line 168 "third_party/libpg_query/grammar/statements/copy.y"
16395 {
16396 (yyval.defelt) = makeDefElem("header", (PGNode *)makeInteger(true), (yylsp[(1) - (1)]));
16397 ;}
16398 break;
16399
16400 case 403:
16401#line 172 "third_party/libpg_query/grammar/statements/copy.y"
16402 {
16403 (yyval.defelt) = makeDefElem("quote", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)]));
16404 ;}
16405 break;
16406
16407 case 404:
16408#line 176 "third_party/libpg_query/grammar/statements/copy.y"
16409 {
16410 (yyval.defelt) = makeDefElem("escape", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)]));
16411 ;}
16412 break;
16413
16414 case 405:
16415#line 180 "third_party/libpg_query/grammar/statements/copy.y"
16416 {
16417 (yyval.defelt) = makeDefElem("force_quote", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)]));
16418 ;}
16419 break;
16420
16421 case 406:
16422#line 184 "third_party/libpg_query/grammar/statements/copy.y"
16423 {
16424 (yyval.defelt) = makeDefElem("force_quote", (PGNode *)makeNode(PGAStar), (yylsp[(1) - (3)]));
16425 ;}
16426 break;
16427
16428 case 407:
16429#line 188 "third_party/libpg_query/grammar/statements/copy.y"
16430 {
16431 (yyval.defelt) = makeDefElem("force_not_null", (PGNode *)(yyvsp[(4) - (4)].list), (yylsp[(1) - (4)]));
16432 ;}
16433 break;
16434
16435 case 408:
16436#line 192 "third_party/libpg_query/grammar/statements/copy.y"
16437 {
16438 (yyval.defelt) = makeDefElem("force_null", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)]));
16439 ;}
16440 break;
16441
16442 case 409:
16443#line 196 "third_party/libpg_query/grammar/statements/copy.y"
16444 {
16445 (yyval.defelt) = makeDefElem("encoding", (PGNode *)makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)]));
16446 ;}
16447 break;
16448
16449 case 410:
16450#line 203 "third_party/libpg_query/grammar/statements/copy.y"
16451 { (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); ;}
16452 break;
16453
16454 case 411:
16455#line 209 "third_party/libpg_query/grammar/statements/copy.y"
16456 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
16457 break;
16458
16459 case 412:
16460#line 210 "third_party/libpg_query/grammar/statements/copy.y"
16461 { (yyval.str) = NULL; ;}
16462 break;
16463
16464 case 413:
16465#line 211 "third_party/libpg_query/grammar/statements/copy.y"
16466 { (yyval.str) = NULL; ;}
16467 break;
16468
16469 case 414:
16470#line 217 "third_party/libpg_query/grammar/statements/copy.y"
16471 {
16472 (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt));
16473 ;}
16474 break;
16475
16476 case 415:
16477#line 221 "third_party/libpg_query/grammar/statements/copy.y"
16478 {
16479 (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt));
16480 ;}
16481 break;
16482
16483 case 418:
16484#line 52 "third_party/libpg_query/grammar/statements/select.y"
16485 { (yyval.node) = (yyvsp[(2) - (3)].node); ;}
16486 break;
16487
16488 case 419:
16489#line 53 "third_party/libpg_query/grammar/statements/select.y"
16490 { (yyval.node) = (yyvsp[(2) - (3)].node); ;}
16491 break;
16492
16493 case 420:
16494#line 68 "third_party/libpg_query/grammar/statements/select.y"
16495 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
16496 break;
16497
16498 case 421:
16499#line 70 "third_party/libpg_query/grammar/statements/select.y"
16500 {
16501 insertSelectOptions((PGSelectStmt *) (yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list), NIL,
16502 NULL, NULL, NULL,
16503 yyscanner);
16504 (yyval.node) = (yyvsp[(1) - (2)].node);
16505 ;}
16506 break;
16507
16508 case 422:
16509#line 77 "third_party/libpg_query/grammar/statements/select.y"
16510 {
16511 insertSelectOptions((PGSelectStmt *) (yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].list), (yyvsp[(3) - (4)].list),
16512 (PGNode*) list_nth((yyvsp[(4) - (4)].list), 0), (PGNode*) list_nth((yyvsp[(4) - (4)].list), 1),
16513 NULL,
16514 yyscanner);
16515 (yyval.node) = (yyvsp[(1) - (4)].node);
16516 ;}
16517 break;
16518
16519 case 423:
16520#line 85 "third_party/libpg_query/grammar/statements/select.y"
16521 {
16522 insertSelectOptions((PGSelectStmt *) (yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].list), (yyvsp[(4) - (4)].list),
16523 (PGNode*) list_nth((yyvsp[(3) - (4)].list), 0), (PGNode*) list_nth((yyvsp[(3) - (4)].list), 1),
16524 NULL,
16525 yyscanner);
16526 (yyval.node) = (yyvsp[(1) - (4)].node);
16527 ;}
16528 break;
16529
16530 case 424:
16531#line 93 "third_party/libpg_query/grammar/statements/select.y"
16532 {
16533 insertSelectOptions((PGSelectStmt *) (yyvsp[(2) - (2)].node), NULL, NIL,
16534 NULL, NULL,
16535 (yyvsp[(1) - (2)].with),
16536 yyscanner);
16537 (yyval.node) = (yyvsp[(2) - (2)].node);
16538 ;}
16539 break;
16540
16541 case 425:
16542#line 101 "third_party/libpg_query/grammar/statements/select.y"
16543 {
16544 insertSelectOptions((PGSelectStmt *) (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].list), NIL,
16545 NULL, NULL,
16546 (yyvsp[(1) - (3)].with),
16547 yyscanner);
16548 (yyval.node) = (yyvsp[(2) - (3)].node);
16549 ;}
16550 break;
16551
16552 case 426:
16553#line 109 "third_party/libpg_query/grammar/statements/select.y"
16554 {
16555 insertSelectOptions((PGSelectStmt *) (yyvsp[(2) - (5)].node), (yyvsp[(3) - (5)].list), (yyvsp[(4) - (5)].list),
16556 (PGNode*) list_nth((yyvsp[(5) - (5)].list), 0), (PGNode*) list_nth((yyvsp[(5) - (5)].list), 1),
16557 (yyvsp[(1) - (5)].with),
16558 yyscanner);
16559 (yyval.node) = (yyvsp[(2) - (5)].node);
16560 ;}
16561 break;
16562
16563 case 427:
16564#line 117 "third_party/libpg_query/grammar/statements/select.y"
16565 {
16566 insertSelectOptions((PGSelectStmt *) (yyvsp[(2) - (5)].node), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].list),
16567 (PGNode*) list_nth((yyvsp[(4) - (5)].list), 0), (PGNode*) list_nth((yyvsp[(4) - (5)].list), 1),
16568 (yyvsp[(1) - (5)].with),
16569 yyscanner);
16570 (yyval.node) = (yyvsp[(2) - (5)].node);
16571 ;}
16572 break;
16573
16574 case 428:
16575#line 127 "third_party/libpg_query/grammar/statements/select.y"
16576 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
16577 break;
16578
16579 case 429:
16580#line 128 "third_party/libpg_query/grammar/statements/select.y"
16581 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
16582 break;
16583
16584 case 430:
16585#line 158 "third_party/libpg_query/grammar/statements/select.y"
16586 {
16587 PGSelectStmt *n = makeNode(PGSelectStmt);
16588 n->targetList = (yyvsp[(3) - (9)].list);
16589 n->intoClause = (yyvsp[(4) - (9)].into);
16590 n->fromClause = (yyvsp[(5) - (9)].list);
16591 n->whereClause = (yyvsp[(6) - (9)].node);
16592 n->groupClause = (yyvsp[(7) - (9)].list);
16593 n->havingClause = (yyvsp[(8) - (9)].node);
16594 n->windowClause = (yyvsp[(9) - (9)].list);
16595 (yyval.node) = (PGNode *)n;
16596 ;}
16597 break;
16598
16599 case 431:
16600#line 172 "third_party/libpg_query/grammar/statements/select.y"
16601 {
16602 PGSelectStmt *n = makeNode(PGSelectStmt);
16603 n->distinctClause = (yyvsp[(2) - (9)].list);
16604 n->targetList = (yyvsp[(3) - (9)].list);
16605 n->intoClause = (yyvsp[(4) - (9)].into);
16606 n->fromClause = (yyvsp[(5) - (9)].list);
16607 n->whereClause = (yyvsp[(6) - (9)].node);
16608 n->groupClause = (yyvsp[(7) - (9)].list);
16609 n->havingClause = (yyvsp[(8) - (9)].node);
16610 n->windowClause = (yyvsp[(9) - (9)].list);
16611 (yyval.node) = (PGNode *)n;
16612 ;}
16613 break;
16614
16615 case 432:
16616#line 184 "third_party/libpg_query/grammar/statements/select.y"
16617 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
16618 break;
16619
16620 case 433:
16621#line 186 "third_party/libpg_query/grammar/statements/select.y"
16622 {
16623 /* same as SELECT * FROM relation_expr */
16624 PGColumnRef *cr = makeNode(PGColumnRef);
16625 PGResTarget *rt = makeNode(PGResTarget);
16626 PGSelectStmt *n = makeNode(PGSelectStmt);
16627
16628 cr->fields = list_make1(makeNode(PGAStar));
16629 cr->location = -1;
16630
16631 rt->name = NULL;
16632 rt->indirection = NIL;
16633 rt->val = (PGNode *)cr;
16634 rt->location = -1;
16635
16636 n->targetList = list_make1(rt);
16637 n->fromClause = list_make1((yyvsp[(2) - (2)].range));
16638 (yyval.node) = (PGNode *)n;
16639 ;}
16640 break;
16641
16642 case 434:
16643#line 205 "third_party/libpg_query/grammar/statements/select.y"
16644 {
16645 (yyval.node) = makeSetOp(PG_SETOP_UNION, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node));
16646 ;}
16647 break;
16648
16649 case 435:
16650#line 209 "third_party/libpg_query/grammar/statements/select.y"
16651 {
16652 (yyval.node) = makeSetOp(PG_SETOP_INTERSECT, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node));
16653 ;}
16654 break;
16655
16656 case 436:
16657#line 213 "third_party/libpg_query/grammar/statements/select.y"
16658 {
16659 (yyval.node) = makeSetOp(PG_SETOP_EXCEPT, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node));
16660 ;}
16661 break;
16662
16663 case 437:
16664#line 230 "third_party/libpg_query/grammar/statements/select.y"
16665 {
16666 (yyval.with) = makeNode(PGWithClause);
16667 (yyval.with)->ctes = (yyvsp[(2) - (2)].list);
16668 (yyval.with)->recursive = false;
16669 (yyval.with)->location = (yylsp[(1) - (2)]);
16670 ;}
16671 break;
16672
16673 case 438:
16674#line 237 "third_party/libpg_query/grammar/statements/select.y"
16675 {
16676 (yyval.with) = makeNode(PGWithClause);
16677 (yyval.with)->ctes = (yyvsp[(2) - (2)].list);
16678 (yyval.with)->recursive = false;
16679 (yyval.with)->location = (yylsp[(1) - (2)]);
16680 ;}
16681 break;
16682
16683 case 439:
16684#line 244 "third_party/libpg_query/grammar/statements/select.y"
16685 {
16686 (yyval.with) = makeNode(PGWithClause);
16687 (yyval.with)->ctes = (yyvsp[(3) - (3)].list);
16688 (yyval.with)->recursive = true;
16689 (yyval.with)->location = (yylsp[(1) - (3)]);
16690 ;}
16691 break;
16692
16693 case 440:
16694#line 253 "third_party/libpg_query/grammar/statements/select.y"
16695 { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
16696 break;
16697
16698 case 441:
16699#line 254 "third_party/libpg_query/grammar/statements/select.y"
16700 { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
16701 break;
16702
16703 case 442:
16704#line 258 "third_party/libpg_query/grammar/statements/select.y"
16705 {
16706 PGCommonTableExpr *n = makeNode(PGCommonTableExpr);
16707 n->ctename = (yyvsp[(1) - (6)].str);
16708 n->aliascolnames = (yyvsp[(2) - (6)].list);
16709 n->ctequery = (yyvsp[(5) - (6)].node);
16710 n->location = (yylsp[(1) - (6)]);
16711 (yyval.node) = (PGNode *) n;
16712 ;}
16713 break;
16714
16715 case 443:
16716#line 270 "third_party/libpg_query/grammar/statements/select.y"
16717 {
16718 (yyval.into) = makeNode(PGIntoClause);
16719 (yyval.into)->rel = (yyvsp[(2) - (2)].range);
16720 (yyval.into)->colNames = NIL;
16721 (yyval.into)->options = NIL;
16722 (yyval.into)->onCommit = PG_ONCOMMIT_NOOP;
16723 (yyval.into)->viewQuery = NULL;
16724 (yyval.into)->skipData = false;
16725 ;}
16726 break;
16727
16728 case 444:
16729#line 280 "third_party/libpg_query/grammar/statements/select.y"
16730 { (yyval.into) = NULL; ;}
16731 break;
16732
16733 case 445:
16734#line 289 "third_party/libpg_query/grammar/statements/select.y"
16735 {
16736 (yyval.range) = (yyvsp[(3) - (3)].range);
16737 (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP;
16738 ;}
16739 break;
16740
16741 case 446:
16742#line 294 "third_party/libpg_query/grammar/statements/select.y"
16743 {
16744 (yyval.range) = (yyvsp[(3) - (3)].range);
16745 (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP;
16746 ;}
16747 break;
16748
16749 case 447:
16750#line 299 "third_party/libpg_query/grammar/statements/select.y"
16751 {
16752 (yyval.range) = (yyvsp[(4) - (4)].range);
16753 (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP;
16754 ;}
16755 break;
16756
16757 case 448:
16758#line 304 "third_party/libpg_query/grammar/statements/select.y"
16759 {
16760 (yyval.range) = (yyvsp[(4) - (4)].range);
16761 (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP;
16762 ;}
16763 break;
16764
16765 case 449:
16766#line 309 "third_party/libpg_query/grammar/statements/select.y"
16767 {
16768 ereport(PGWARNING,
16769 (errmsg("GLOBAL is deprecated in temporary table creation"),
16770 parser_errposition((yylsp[(1) - (4)]))));
16771 (yyval.range) = (yyvsp[(4) - (4)].range);
16772 (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP;
16773 ;}
16774 break;
16775
16776 case 450:
16777#line 317 "third_party/libpg_query/grammar/statements/select.y"
16778 {
16779 ereport(PGWARNING,
16780 (errmsg("GLOBAL is deprecated in temporary table creation"),
16781 parser_errposition((yylsp[(1) - (4)]))));
16782 (yyval.range) = (yyvsp[(4) - (4)].range);
16783 (yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP;
16784 ;}
16785 break;
16786
16787 case 451:
16788#line 325 "third_party/libpg_query/grammar/statements/select.y"
16789 {
16790 (yyval.range) = (yyvsp[(3) - (3)].range);
16791 (yyval.range)->relpersistence = PG_RELPERSISTENCE_UNLOGGED;
16792 ;}
16793 break;
16794
16795 case 452:
16796#line 330 "third_party/libpg_query/grammar/statements/select.y"
16797 {
16798 (yyval.range) = (yyvsp[(2) - (2)].range);
16799 (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT;
16800 ;}
16801 break;
16802
16803 case 453:
16804#line 335 "third_party/libpg_query/grammar/statements/select.y"
16805 {
16806 (yyval.range) = (yyvsp[(1) - (1)].range);
16807 (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT;
16808 ;}
16809 break;
16810
16811 case 454:
16812#line 341 "third_party/libpg_query/grammar/statements/select.y"
16813 {;}
16814 break;
16815
16816 case 455:
16817#line 342 "third_party/libpg_query/grammar/statements/select.y"
16818 {;}
16819 break;
16820
16821 case 456:
16822#line 346 "third_party/libpg_query/grammar/statements/select.y"
16823 { (yyval.boolean) = true; ;}
16824 break;
16825
16826 case 457:
16827#line 347 "third_party/libpg_query/grammar/statements/select.y"
16828 { (yyval.boolean) = false; ;}
16829 break;
16830
16831 case 458:
16832#line 348 "third_party/libpg_query/grammar/statements/select.y"
16833 { (yyval.boolean) = false; ;}
16834 break;
16835
16836 case 459:
16837#line 355 "third_party/libpg_query/grammar/statements/select.y"
16838 { (yyval.list) = list_make1(NIL); ;}
16839 break;
16840
16841 case 460:
16842#line 356 "third_party/libpg_query/grammar/statements/select.y"
16843 { (yyval.list) = (yyvsp[(4) - (5)].list); ;}
16844 break;
16845
16846 case 461:
16847#line 360 "third_party/libpg_query/grammar/statements/select.y"
16848 { (yyval.list) = NIL;;}
16849 break;
16850
16851 case 462:
16852#line 361 "third_party/libpg_query/grammar/statements/select.y"
16853 { (yyval.list) = NIL; ;}
16854 break;
16855
16856 case 463:
16857#line 365 "third_party/libpg_query/grammar/statements/select.y"
16858 { (yyval.list) = (yyvsp[(1) - (1)].list);;}
16859 break;
16860
16861 case 464:
16862#line 366 "third_party/libpg_query/grammar/statements/select.y"
16863 { (yyval.list) = NIL; ;}
16864 break;
16865
16866 case 465:
16867#line 370 "third_party/libpg_query/grammar/statements/select.y"
16868 { (yyval.list) = (yyvsp[(3) - (3)].list); ;}
16869 break;
16870
16871 case 466:
16872#line 374 "third_party/libpg_query/grammar/statements/select.y"
16873 { (yyval.list) = list_make1((yyvsp[(1) - (1)].sortby)); ;}
16874 break;
16875
16876 case 467:
16877#line 375 "third_party/libpg_query/grammar/statements/select.y"
16878 { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].sortby)); ;}
16879 break;
16880
16881 case 468:
16882#line 379 "third_party/libpg_query/grammar/statements/select.y"
16883 {
16884 (yyval.sortby) = makeNode(PGSortBy);
16885 (yyval.sortby)->node = (yyvsp[(1) - (4)].node);
16886 (yyval.sortby)->sortby_dir = SORTBY_USING;
16887 (yyval.sortby)->sortby_nulls = (yyvsp[(4) - (4)].nullorder);
16888 (yyval.sortby)->useOp = (yyvsp[(3) - (4)].list);
16889 (yyval.sortby)->location = (yylsp[(3) - (4)]);
16890 ;}
16891 break;
16892
16893 case 469:
16894#line 388 "third_party/libpg_query/grammar/statements/select.y"
16895 {
16896 (yyval.sortby) = makeNode(PGSortBy);
16897 (yyval.sortby)->node = (yyvsp[(1) - (3)].node);
16898 (yyval.sortby)->sortby_dir = (yyvsp[(2) - (3)].sortorder);
16899 (yyval.sortby)->sortby_nulls = (yyvsp[(3) - (3)].nullorder);
16900 (yyval.sortby)->useOp = NIL;
16901 (yyval.sortby)->location = -1; /* no operator */
16902 ;}
16903 break;
16904
16905 case 470:
16906#line 398 "third_party/libpg_query/grammar/statements/select.y"
16907 { (yyval.sortorder) = PG_SORTBY_ASC; ;}
16908 break;
16909
16910 case 471:
16911#line 399 "third_party/libpg_query/grammar/statements/select.y"
16912 { (yyval.sortorder) = PG_SORTBY_DESC; ;}
16913 break;
16914
16915 case 472:
16916#line 400 "third_party/libpg_query/grammar/statements/select.y"
16917 { (yyval.sortorder) = PG_SORTBY_DEFAULT; ;}
16918 break;
16919
16920 case 473:
16921#line 403 "third_party/libpg_query/grammar/statements/select.y"
16922 { (yyval.nullorder) = PG_SORTBY_NULLS_FIRST; ;}
16923 break;
16924
16925 case 474:
16926#line 404 "third_party/libpg_query/grammar/statements/select.y"
16927 { (yyval.nullorder) = SORTBY_NULLS_LAST; ;}
16928 break;
16929
16930 case 475:
16931#line 405 "third_party/libpg_query/grammar/statements/select.y"
16932 { (yyval.nullorder) = PG_SORTBY_NULLS_DEFAULT; ;}
16933 break;
16934
16935 case 476:
16936#line 409 "third_party/libpg_query/grammar/statements/select.y"
16937 { (yyval.list) = list_make2((yyvsp[(2) - (2)].node), (yyvsp[(1) - (2)].node)); ;}
16938 break;
16939
16940 case 477:
16941#line 410 "third_party/libpg_query/grammar/statements/select.y"
16942 { (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node)); ;}
16943 break;
16944
16945 case 478:
16946#line 411 "third_party/libpg_query/grammar/statements/select.y"
16947 { (yyval.list) = list_make2(NULL, (yyvsp[(1) - (1)].node)); ;}
16948 break;
16949
16950 case 479:
16951#line 412 "third_party/libpg_query/grammar/statements/select.y"
16952 { (yyval.list) = list_make2((yyvsp[(1) - (1)].node), NULL); ;}
16953 break;
16954
16955 case 480:
16956#line 416 "third_party/libpg_query/grammar/statements/select.y"
16957 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
16958 break;
16959
16960 case 481:
16961#line 417 "third_party/libpg_query/grammar/statements/select.y"
16962 { (yyval.list) = list_make2(NULL,NULL); ;}
16963 break;
16964
16965 case 482:
16966#line 422 "third_party/libpg_query/grammar/statements/select.y"
16967 { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
16968 break;
16969
16970 case 483:
16971#line 424 "third_party/libpg_query/grammar/statements/select.y"
16972 {
16973 /* Disabled because it was too confusing, bjm 2002-02-18 */
16974 ereport(ERROR,
16975 (errcode(PG_ERRCODE_SYNTAX_ERROR),
16976 errmsg("LIMIT #,# syntax is not supported"),
16977 errhint("Use separate LIMIT and OFFSET clauses."),
16978 parser_errposition((yylsp[(1) - (4)]))));
16979 ;}
16980 break;
16981
16982 case 484:
16983#line 440 "third_party/libpg_query/grammar/statements/select.y"
16984 { (yyval.node) = (yyvsp[(3) - (5)].node); ;}
16985 break;
16986
16987 case 485:
16988#line 442 "third_party/libpg_query/grammar/statements/select.y"
16989 { (yyval.node) = makeIntConst(1, -1); ;}
16990 break;
16991
16992 case 486:
16993#line 447 "third_party/libpg_query/grammar/statements/select.y"
16994 { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
16995 break;
16996
16997 case 487:
16998#line 450 "third_party/libpg_query/grammar/statements/select.y"
16999 { (yyval.node) = (yyvsp[(2) - (3)].node); ;}
17000 break;
17001
17002 case 488:
17003#line 454 "third_party/libpg_query/grammar/statements/select.y"
17004 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
17005 break;
17006
17007 case 489:
17008#line 456 "third_party/libpg_query/grammar/statements/select.y"
17009 {
17010 /* LIMIT ALL is represented as a NULL constant */
17011 (yyval.node) = makeNullAConst((yylsp[(1) - (1)]));
17012 ;}
17013 break;
17014
17015 case 490:
17016#line 463 "third_party/libpg_query/grammar/statements/select.y"
17017 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
17018 break;
17019
17020 case 491:
17021#line 483 "third_party/libpg_query/grammar/statements/select.y"
17022 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
17023 break;
17024
17025 case 492:
17026#line 485 "third_party/libpg_query/grammar/statements/select.y"
17027 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
17028 break;
17029
17030 case 493:
17031#line 487 "third_party/libpg_query/grammar/statements/select.y"
17032 { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
17033 break;
17034
17035 case 494:
17036#line 491 "third_party/libpg_query/grammar/statements/select.y"
17037 { (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival),(yylsp[(1) - (1)])); ;}
17038 break;
17039
17040 case 495:
17041#line 492 "third_party/libpg_query/grammar/statements/select.y"
17042 { (yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str),(yylsp[(1) - (1)])); ;}
17043 break;
17044
17045 case 496:
17046#line 496 "third_party/libpg_query/grammar/statements/select.y"
17047 { (yyval.ival) = 0; ;}
17048 break;
17049
17050 case 497:
17051#line 497 "third_party/libpg_query/grammar/statements/select.y"
17052 { (yyval.ival) = 0; ;}
17053 break;
17054
17055 case 498:
17056#line 500 "third_party/libpg_query/grammar/statements/select.y"
17057 { (yyval.ival) = 0; ;}
17058 break;
17059
17060 case 499:
17061#line 501 "third_party/libpg_query/grammar/statements/select.y"
17062 { (yyval.ival) = 0; ;}
17063 break;
17064
17065 case 500:
17066#line 526 "third_party/libpg_query/grammar/statements/select.y"
17067 { (yyval.list) = (yyvsp[(3) - (3)].list); ;}
17068 break;
17069
17070 case 501:
17071#line 527 "third_party/libpg_query/grammar/statements/select.y"
17072 { (yyval.list) = NIL; ;}
17073 break;
17074
17075 case 502:
17076#line 531 "third_party/libpg_query/grammar/statements/select.y"
17077 { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
17078 break;
17079
17080 case 503:
17081#line 532 "third_party/libpg_query/grammar/statements/select.y"
17082 { (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].node)); ;}
17083 break;
17084
17085 case 504:
17086#line 536 "third_party/libpg_query/grammar/statements/select.y"
17087 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
17088 break;
17089
17090 case 505:
17091#line 537 "third_party/libpg_query/grammar/statements/select.y"
17092 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
17093 break;
17094
17095 case 506:
17096#line 542 "third_party/libpg_query/grammar/statements/select.y"
17097 {
17098 (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_EMPTY, NIL, (yylsp[(1) - (2)]));
17099 ;}
17100 break;
17101
17102 case 507:
17103#line 554 "third_party/libpg_query/grammar/statements/select.y"
17104 { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
17105 break;
17106
17107 case 508:
17108#line 555 "third_party/libpg_query/grammar/statements/select.y"
17109 { (yyval.node) = NULL; ;}
17110 break;
17111
17112 case 509:
17113#line 559 "third_party/libpg_query/grammar/statements/select.y"
17114 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
17115 break;
17116
17117 case 510:
17118#line 560 "third_party/libpg_query/grammar/statements/select.y"
17119 { (yyval.list) = NIL; ;}
17120 break;
17121
17122 case 511:
17123#line 564 "third_party/libpg_query/grammar/statements/select.y"
17124 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
17125 break;
17126
17127 case 512:
17128#line 565 "third_party/libpg_query/grammar/statements/select.y"
17129 { (yyval.list) = NIL; ;}
17130 break;
17131
17132 case 513:
17133#line 569 "third_party/libpg_query/grammar/statements/select.y"
17134 { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
17135 break;
17136
17137 case 514:
17138#line 570 "third_party/libpg_query/grammar/statements/select.y"
17139 { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
17140 break;
17141
17142 case 515:
17143#line 575 "third_party/libpg_query/grammar/statements/select.y"
17144 {
17145 PGLockingClause *n = makeNode(PGLockingClause);
17146 n->lockedRels = (yyvsp[(2) - (3)].list);
17147 n->strength = (yyvsp[(1) - (3)].lockstrength);
17148 n->waitPolicy = (yyvsp[(3) - (3)].lockwaitpolicy);
17149 (yyval.node) = (PGNode *) n;
17150 ;}
17151 break;
17152
17153 case 516:
17154#line 585 "third_party/libpg_query/grammar/statements/select.y"
17155 { (yyval.lockstrength) = LCS_FORUPDATE; ;}
17156 break;
17157
17158 case 517:
17159#line 586 "third_party/libpg_query/grammar/statements/select.y"
17160 { (yyval.lockstrength) = PG_LCS_FORNOKEYUPDATE; ;}
17161 break;
17162
17163 case 518:
17164#line 587 "third_party/libpg_query/grammar/statements/select.y"
17165 { (yyval.lockstrength) = PG_LCS_FORSHARE; ;}
17166 break;
17167
17168 case 519:
17169#line 588 "third_party/libpg_query/grammar/statements/select.y"
17170 { (yyval.lockstrength) = PG_LCS_FORKEYSHARE; ;}
17171 break;
17172
17173 case 520:
17174#line 592 "third_party/libpg_query/grammar/statements/select.y"
17175 { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
17176 break;
17177
17178 case 521:
17179#line 593 "third_party/libpg_query/grammar/statements/select.y"
17180 { (yyval.list) = NIL; ;}
17181 break;
17182
17183 case 522:
17184#line 598 "third_party/libpg_query/grammar/statements/select.y"
17185 { (yyval.lockwaitpolicy) = LockWaitError; ;}
17186 break;
17187
17188 case 523:
17189#line 599 "third_party/libpg_query/grammar/statements/select.y"
17190 { (yyval.lockwaitpolicy) = PGLockWaitSkip; ;}
17191 break;
17192
17193 case 524:
17194#line 600 "third_party/libpg_query/grammar/statements/select.y"
17195 { (yyval.lockwaitpolicy) = PGLockWaitBlock; ;}
17196 break;
17197
17198 case 525:
17199#line 610 "third_party/libpg_query/grammar/statements/select.y"
17200 {
17201 PGSelectStmt *n = makeNode(PGSelectStmt);
17202 n->valuesLists = list_make1((yyvsp[(3) - (4)].list));
17203 (yyval.node) = (PGNode *) n;
17204 ;}
17205 break;
17206
17207 case 526:
17208#line 616 "third_party/libpg_query/grammar/statements/select.y"
17209 {
17210 PGSelectStmt *n = (PGSelectStmt *) (yyvsp[(1) - (5)].node);
17211 n->valuesLists = lappend(n->valuesLists, (yyvsp[(4) - (5)].list));
17212 (yyval.node) = (PGNode *) n;
17213 ;}
17214 break;
17215
17216 case 527:
17217#line 633 "third_party/libpg_query/grammar/statements/select.y"
17218 { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
17219 break;
17220
17221 case 528:
17222#line 634 "third_party/libpg_query/grammar/statements/select.y"
17223 { (yyval.list) = NIL; ;}
17224 break;
17225
17226 case 529:
17227#line 638 "third_party/libpg_query/grammar/statements/select.y"
17228 { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
17229 break;
17230
17231 case 530:
17232#line 639 "third_party/libpg_query/grammar/statements/select.y"
17233 { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
17234 break;
17235
17236 case 531:
17237#line 646 "third_party/libpg_query/grammar/statements/select.y"
17238 {
17239 (yyvsp[(1) - (2)].range)->alias = (yyvsp[(2) - (2)].alias);
17240 (yyval.node) = (PGNode *) (yyvsp[(1) - (2)].range);
17241 ;}
17242 break;
17243
17244 case 532:
17245#line 651 "third_party/libpg_query/grammar/statements/select.y"
17246 {
17247 PGRangeTableSample *n = (PGRangeTableSample *) (yyvsp[(3) - (3)].node);
17248 (yyvsp[(1) - (3)].range)->alias = (yyvsp[(2) - (3)].alias);
17249 /* relation_expr goes inside the PGRangeTableSample node */
17250 n->relation = (PGNode *) (yyvsp[(1) - (3)].range);
17251 (yyval.node) = (PGNode *) n;
17252 ;}
17253 break;
17254
17255 case 533:
17256#line 659 "third_party/libpg_query/grammar/statements/select.y"
17257 {
17258 PGRangeFunction *n = (PGRangeFunction *) (yyvsp[(1) - (2)].node);
17259 n->alias = (PGAlias*) linitial((yyvsp[(2) - (2)].list));
17260 n->coldeflist = (PGList*) lsecond((yyvsp[(2) - (2)].list));
17261 (yyval.node) = (PGNode *) n;
17262 ;}
17263 break;
17264
17265 case 534:
17266#line 666 "third_party/libpg_query/grammar/statements/select.y"
17267 {
17268 PGRangeFunction *n = (PGRangeFunction *) (yyvsp[(2) - (3)].node);
17269 n->lateral = true;
17270 n->alias = (PGAlias*) linitial((yyvsp[(3) - (3)].list));
17271 n->coldeflist = (PGList*) lsecond((yyvsp[(3) - (3)].list));
17272 (yyval.node) = (PGNode *) n;
17273 ;}
17274 break;
17275
17276 case 535:
17277#line 674 "third_party/libpg_query/grammar/statements/select.y"
17278 {
17279 PGRangeSubselect *n = makeNode(PGRangeSubselect);
17280 n->lateral = false;
17281 n->subquery = (yyvsp[(1) - (2)].node);
17282 n->alias = (yyvsp[(2) - (2)].alias);
17283 /*
17284 * The SQL spec does not permit a subselect
17285 * (<derived_table>) without an alias clause,
17286 * so we don't either. This avoids the problem
17287 * of needing to invent a unique refname for it.
17288 * That could be surmounted if there's sufficient
17289 * popular demand, but for now let's just implement
17290 * the spec and see if anyone complains.
17291 * However, it does seem like a good idea to emit
17292 * an error message that's better than "syntax error".
17293 */
17294 if ((yyvsp[(2) - (2)].alias) == NULL)
17295 {
17296 if (IsA((yyvsp[(1) - (2)].node), PGSelectStmt) &&
17297 ((PGSelectStmt *) (yyvsp[(1) - (2)].node))->valuesLists)
17298 ereport(ERROR,
17299 (errcode(PG_ERRCODE_SYNTAX_ERROR),
17300 errmsg("VALUES in FROM must have an alias"),
17301 errhint("For example, FROM (VALUES ...) [AS] foo."),
17302 parser_errposition((yylsp[(1) - (2)]))));
17303 else
17304 ereport(ERROR,
17305 (errcode(PG_ERRCODE_SYNTAX_ERROR),
17306 errmsg("subquery in FROM must have an alias"),
17307 errhint("For example, FROM (SELECT ...) [AS] foo."),
17308 parser_errposition((yylsp[(1) - (2)]))));
17309 }
17310 (yyval.node) = (PGNode *) n;
17311 ;}
17312 break;
17313
17314 case 536:
17315#line 709 "third_party/libpg_query/grammar/statements/select.y"
17316 {
17317 PGRangeSubselect *n = makeNode(PGRangeSubselect);
17318 n->lateral = true;
17319 n->subquery = (yyvsp[(2) - (3)].node);
17320 n->alias = (yyvsp[(3) - (3)].alias);
17321 /* same comment as above */
17322 if ((yyvsp[(3) - (3)].alias) == NULL)
17323 {
17324 if (IsA((yyvsp[(2) - (3)].node), PGSelectStmt) &&
17325 ((PGSelectStmt *) (yyvsp[(2) - (3)].node))->valuesLists)
17326 ereport(ERROR,
17327 (errcode(PG_ERRCODE_SYNTAX_ERROR),
17328 errmsg("VALUES in FROM must have an alias"),
17329 errhint("For example, FROM (VALUES ...) [AS] foo."),
17330 parser_errposition((yylsp[(2) - (3)]))));
17331 else
17332 ereport(ERROR,
17333 (errcode(PG_ERRCODE_SYNTAX_ERROR),
17334 errmsg("subquery in FROM must have an alias"),
17335 errhint("For example, FROM (SELECT ...) [AS] foo."),
17336 parser_errposition((yylsp[(2) - (3)]))));
17337 }
17338 (yyval.node) = (PGNode *) n;
17339 ;}
17340 break;
17341
17342 case 537:
17343#line 734 "third_party/libpg_query/grammar/statements/select.y"
17344 {
17345 (yyval.node) = (PGNode *) (yyvsp[(1) - (1)].jexpr);
17346 ;}
17347 break;
17348
17349 case 538:
17350#line 738 "third_party/libpg_query/grammar/statements/select.y"
17351 {
17352 (yyvsp[(2) - (4)].jexpr)->alias = (yyvsp[(4) - (4)].alias);
17353 (yyval.node) = (PGNode *) (yyvsp[(2) - (4)].jexpr);
17354 ;}
17355 break;
17356
17357 case 539:
17358#line 764 "third_party/libpg_query/grammar/statements/select.y"
17359 {
17360 (yyval.jexpr) = (yyvsp[(2) - (3)].jexpr);
17361 ;}
17362 break;
17363
17364 case 540:
17365#line 768 "third_party/libpg_query/grammar/statements/select.y"
17366 {
17367 /* CROSS JOIN is same as unqualified inner join */
17368 PGJoinExpr *n = makeNode(PGJoinExpr);
17369 n->jointype = PG_JOIN_INNER;
17370 n->isNatural = false;
17371 n->larg = (yyvsp[(1) - (4)].node);
17372 n->rarg = (yyvsp[(4) - (4)].node);
17373 n->usingClause = NIL;
17374 n->quals = NULL;
17375 (yyval.jexpr) = n;
17376 ;}
17377 break;
17378
17379 case 541:
17380#line 780 "third_party/libpg_query/grammar/statements/select.y"
17381 {
17382 PGJoinExpr *n = makeNode(PGJoinExpr);
17383 n->jointype = (yyvsp[(2) - (5)].jtype);
17384 n->isNatural = false;
17385 n->larg = (yyvsp[(1) - (5)].node);
17386 n->rarg = (yyvsp[(4) - (5)].node);
17387 if ((yyvsp[(5) - (5)].node) != NULL && IsA((yyvsp[(5) - (5)].node), PGList))
17388 n->usingClause = (PGList *) (yyvsp[(5) - (5)].node); /* USING clause */
17389 else
17390 n->quals = (yyvsp[(5) - (5)].node); /* ON clause */
17391 (yyval.jexpr) = n;
17392 ;}
17393 break;
17394
17395 case 542:
17396#line 793 "third_party/libpg_query/grammar/statements/select.y"
17397 {
17398 /* letting join_type reduce to empty doesn't work */
17399 PGJoinExpr *n = makeNode(PGJoinExpr);
17400 n->jointype = PG_JOIN_INNER;
17401 n->isNatural = false;
17402 n->larg = (yyvsp[(1) - (4)].node);
17403 n->rarg = (yyvsp[(3) - (4)].node);
17404 if ((yyvsp[(4) - (4)].node) != NULL && IsA((yyvsp[(4) - (4)].node), PGList))
17405 n->usingClause = (PGList *) (yyvsp[(4) - (4)].node); /* USING clause */
17406 else
17407 n->quals = (yyvsp[(4) - (4)].node); /* ON clause */
17408 (yyval.jexpr) = n;
17409 ;}
17410 break;
17411
17412 case 543:
17413#line 807 "third_party/libpg_query/grammar/statements/select.y"
17414 {
17415 PGJoinExpr *n = makeNode(PGJoinExpr);
17416 n->jointype = (yyvsp[(3) - (5)].jtype);
17417 n->isNatural = true;
17418 n->larg = (yyvsp[(1) - (5)].node);
17419 n->rarg = (yyvsp[(5) - (5)].node);
17420 n->usingClause = NIL; /* figure out which columns later... */
17421 n->quals = NULL; /* fill later */
17422 (yyval.jexpr) = n;
17423 ;}
17424 break;
17425
17426 case 544:
17427#line 818 "third_party/libpg_query/grammar/statements/select.y"
17428 {
17429 /* letting join_type reduce to empty doesn't work */
17430 PGJoinExpr *n = makeNode(PGJoinExpr);
17431 n->jointype = PG_JOIN_INNER;
17432 n->isNatural = true;
17433 n->larg = (yyvsp[(1) - (4)].node);
17434 n->rarg = (yyvsp[(4) - (4)].node);
17435 n->usingClause = NIL; /* figure out which columns later... */
17436 n->quals = NULL; /* fill later */
17437 (yyval.jexpr) = n;
17438 ;}
17439 break;
17440
17441 case 545:
17442#line 833 "third_party/libpg_query/grammar/statements/select.y"
17443 {
17444 (yyval.alias) = makeNode(PGAlias);
17445 (yyval.alias)->aliasname = (yyvsp[(2) - (5)].str);
17446 (yyval.alias)->colnames = (yyvsp[(4) - (5)].list);
17447 ;}
17448 break;
17449
17450 case 546:
17451#line 839 "third_party/libpg_query/grammar/statements/select.y"
17452 {
17453 (yyval.alias) = makeNode(PGAlias);
17454 (yyval.alias)->aliasname = (yyvsp[(2) - (2)].str);
17455 ;}
17456 break;
17457
17458 case 547:
17459#line 844 "third_party/libpg_query/grammar/statements/select.y"
17460 {
17461 (yyval.alias) = makeNode(PGAlias);
17462 (yyval.alias)->aliasname = (yyvsp[(1) - (4)].str);
17463 (yyval.alias)->colnames = (yyvsp[(3) - (4)].list);
17464 ;}
17465 break;
17466
17467 case 548:
17468#line 850 "third_party/libpg_query/grammar/statements/select.y"
17469 {
17470 (yyval.alias) = makeNode(PGAlias);
17471 (yyval.alias)->aliasname = (yyvsp[(1) - (1)].str);
17472 ;}
17473 break;
17474
17475 case 549:
17476#line 856 "third_party/libpg_query/grammar/statements/select.y"
17477 { (yyval.alias) = (yyvsp[(1) - (1)].alias); ;}
17478 break;
17479
17480 case 550:
17481#line 857 "third_party/libpg_query/grammar/statements/select.y"
17482 { (yyval.alias) = NULL; ;}
17483 break;
17484
17485 case 551:
17486#line 866 "third_party/libpg_query/grammar/statements/select.y"
17487 {
17488 (yyval.list) = list_make2((yyvsp[(1) - (1)].alias), NIL);
17489 ;}
17490 break;
17491
17492 case 552:
17493#line 870 "third_party/libpg_query/grammar/statements/select.y"
17494 {
17495 (yyval.list) = list_make2(NULL, (yyvsp[(3) - (4)].list));
17496 ;}
17497 break;
17498
17499 case 553:
17500#line 874 "third_party/libpg_query/grammar/statements/select.y"
17501 {
17502 PGAlias *a = makeNode(PGAlias);
17503 a->aliasname = (yyvsp[(2) - (5)].str);
17504 (yyval.list) = list_make2(a, (yyvsp[(4) - (5)].list));
17505 ;}
17506 break;
17507
17508 case 554:
17509#line 880 "third_party/libpg_query/grammar/statements/select.y"
17510 {
17511 PGAlias *a = makeNode(PGAlias);
17512 a->aliasname = (yyvsp[(1) - (4)].str);
17513 (yyval.list) = list_make2(a, (yyvsp[(3) - (4)].list));
17514 ;}
17515 break;
17516
17517 case 555:
17518#line 886 "third_party/libpg_query/grammar/statements/select.y"
17519 {
17520 (yyval.list) = list_make2(NULL, NIL);
17521 ;}
17522 break;
17523
17524 case 556:
17525#line 891 "third_party/libpg_query/grammar/statements/select.y"
17526 { (yyval.jtype) = PG_JOIN_FULL; ;}
17527 break;
17528
17529 case 557:
17530#line 892 "third_party/libpg_query/grammar/statements/select.y"
17531 { (yyval.jtype) = PG_JOIN_LEFT; ;}
17532 break;
17533
17534 case 558:
17535#line 893 "third_party/libpg_query/grammar/statements/select.y"
17536 { (yyval.jtype) = PG_JOIN_RIGHT; ;}
17537 break;
17538
17539 case 559:
17540#line 894 "third_party/libpg_query/grammar/statements/select.y"
17541 { (yyval.jtype) = PG_JOIN_INNER; ;}
17542 break;
17543
17544 case 560:
17545#line 898 "third_party/libpg_query/grammar/statements/select.y"
17546 { (yyval.node) = NULL; ;}
17547 break;
17548
17549 case 561:
17550#line 899 "third_party/libpg_query/grammar/statements/select.y"
17551 { (yyval.node) = NULL; ;}
17552 break;
17553
17554 case 562:
17555#line 911 "third_party/libpg_query/grammar/statements/select.y"
17556 { (yyval.node) = (PGNode *) (yyvsp[(3) - (4)].list); ;}
17557 break;
17558
17559 case 563:
17560#line 912 "third_party/libpg_query/grammar/statements/select.y"
17561 { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
17562 break;
17563
17564 case 564:
17565#line 918 "third_party/libpg_query/grammar/statements/select.y"
17566 {
17567 /* inheritance query, implicitly */
17568 (yyval.range) = (yyvsp[(1) - (1)].range);
17569 (yyval.range)->inh = true;
17570 (yyval.range)->alias = NULL;
17571 ;}
17572 break;
17573
17574 case 565:
17575#line 925 "third_party/libpg_query/grammar/statements/select.y"
17576 {
17577 /* inheritance query, explicitly */
17578 (yyval.range) = (yyvsp[(1) - (2)].range);
17579 (yyval.range)->inh = true;
17580 (yyval.range)->alias = NULL;
17581 ;}
17582 break;
17583
17584 case 566:
17585#line 932 "third_party/libpg_query/grammar/statements/select.y"
17586 {
17587 /* no inheritance */
17588 (yyval.range) = (yyvsp[(2) - (2)].range);
17589 (yyval.range)->inh = false;
17590 (yyval.range)->alias = NULL;
17591 ;}
17592 break;
17593
17594 case 567:
17595#line 939 "third_party/libpg_query/grammar/statements/select.y"
17596 {
17597 /* no inheritance, SQL99-style syntax */
17598 (yyval.range) = (yyvsp[(3) - (4)].range);
17599 (yyval.range)->inh = false;
17600 (yyval.range)->alias = NULL;
17601 ;}
17602 break;
17603
17604 case 568:
17605#line 962 "third_party/libpg_query/grammar/statements/select.y"
17606 {
17607 PGRangeTableSample *n = makeNode(PGRangeTableSample);
17608 /* n->relation will be filled in later */
17609 n->method = (yyvsp[(2) - (6)].list);
17610 n->args = (yyvsp[(4) - (6)].list);
17611 n->repeatable = (yyvsp[(6) - (6)].node);
17612 n->location = (yylsp[(2) - (6)]);
17613 (yyval.node) = (PGNode *) n;
17614 ;}
17615 break;
17616
17617 case 569:
17618#line 974 "third_party/libpg_query/grammar/statements/select.y"
17619 { (yyval.node) = (PGNode *) (yyvsp[(3) - (4)].node); ;}
17620 break;
17621
17622 case 570:
17623#line 975 "third_party/libpg_query/grammar/statements/select.y"
17624 { (yyval.node) = NULL; ;}
17625 break;
17626
17627 case 571:
17628#line 991 "third_party/libpg_query/grammar/statements/select.y"
17629 {
17630 PGRangeFunction *n = makeNode(PGRangeFunction);
17631 n->lateral = false;
17632 n->ordinality = (yyvsp[(2) - (2)].boolean);
17633 n->is_rowsfrom = false;
17634 n->functions = list_make1(list_make2((yyvsp[(1) - (2)].node), NIL));
17635 /* alias and coldeflist are set by table_ref production */
17636 (yyval.node) = (PGNode *) n;
17637 ;}
17638 break;
17639
17640 case 572:
17641#line 1001 "third_party/libpg_query/grammar/statements/select.y"
17642 {
17643 PGRangeFunction *n = makeNode(PGRangeFunction);
17644 n->lateral = false;
17645 n->ordinality = (yyvsp[(6) - (6)].boolean);
17646 n->is_rowsfrom = true;
17647 n->functions = (yyvsp[(4) - (6)].list);
17648 /* alias and coldeflist are set by table_ref production */
17649 (yyval.node) = (PGNode *) n;
17650 ;}
17651 break;
17652
17653 case 573:
17654#line 1013 "third_party/libpg_query/grammar/statements/select.y"
17655 { (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list)); ;}
17656 break;
17657
17658 case 574:
17659#line 1017 "third_party/libpg_query/grammar/statements/select.y"
17660 { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;}
17661 break;
17662
17663 case 575:
17664#line 1018 "third_party/libpg_query/grammar/statements/select.y"
17665 { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;}
17666 break;
17667
17668 case 576:
17669#line 1021 "third_party/libpg_query/grammar/statements/select.y"
17670 { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
17671 break;
17672
17673 case 577:
17674#line 1022 "third_party/libpg_query/grammar/statements/select.y"
17675 { (yyval.list) = NIL; ;}
17676 break;
17677
17678 case 578:
17679#line 1025 "third_party/libpg_query/grammar/statements/select.y"
17680 { (yyval.boolean) = true; ;}
17681 break;
17682
17683 case 579:
17684#line 1026 "third_party/libpg_query/grammar/statements/select.y"
17685 { (yyval.boolean) = false; ;}
17686 break;
17687
17688 case 580:
17689#line 1031 "third_party/libpg_query/grammar/statements/select.y"
17690 { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
17691 break;
17692
17693 case 581:
17694#line 1032 "third_party/libpg_query/grammar/statements/select.y"
17695 { (yyval.node) = NULL; ;}
17696 break;
17697
17698 case 582:
17699#line 1038 "third_party/libpg_query/grammar/statements/select.y"
17700 {
17701 (yyval.list) = list_make1((yyvsp[(1) - (1)].node));
17702 ;}
17703 break;
17704
17705 case 583:
17706#line 1042 "third_party/libpg_query/grammar/statements/select.y"
17707 {
17708 (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
17709 ;}
17710 break;
17711
17712 case 584:
17713#line 1048 "third_party/libpg_query/grammar/statements/select.y"
17714 {
17715 PGColumnDef *n = makeNode(PGColumnDef);
17716 n->colname = (yyvsp[(1) - (3)].str);
17717 n->typeName = (yyvsp[(2) - (3)].typnam);
17718 n->inhcount = 0;
17719 n->is_local = true;
17720 n->is_not_null = false;
17721 n->is_from_type = false;
17722 n->storage = 0;
17723 n->raw_default = NULL;
17724 n->cooked_default = NULL;
17725 n->collClause = (PGCollateClause *) (yyvsp[(3) - (3)].node);
17726 n->collOid = InvalidOid;
17727 n->constraints = NIL;
17728 n->location = (yylsp[(1) - (3)]);
17729 (yyval.node) = (PGNode *)n;
17730 ;}
17731 break;
17732
17733 case 585:
17734#line 1069 "third_party/libpg_query/grammar/statements/select.y"
17735 {
17736 PGCollateClause *n = makeNode(PGCollateClause);
17737 n->arg = NULL;
17738 n->collname = (yyvsp[(2) - (2)].list);
17739 n->location = (yylsp[(1) - (2)]);
17740 (yyval.node) = (PGNode *) n;
17741 ;}
17742 break;
17743
17744 case 586:
17745#line 1076 "third_party/libpg_query/grammar/statements/select.y"
17746 { (yyval.node) = NULL; ;}
17747 break;
17748
17749 case 587:
17750#line 1089 "third_party/libpg_query/grammar/statements/select.y"
17751 {
17752 (yyval.typnam) = (yyvsp[(1) - (2)].typnam);
17753 (yyval.typnam)->arrayBounds = (yyvsp[(2) - (2)].list);
17754 ;}
17755 break;
17756
17757 case 588:
17758#line 1094 "third_party/libpg_query/grammar/statements/select.y"
17759 {
17760 (yyval.typnam) = (yyvsp[(2) - (3)].typnam);
17761 (yyval.typnam)->arrayBounds = (yyvsp[(3) - (3)].list);
17762 (yyval.typnam)->setof = true;
17763 ;}
17764 break;
17765
17766 case 589:
17767#line 1101 "third_party/libpg_query/grammar/statements/select.y"
17768 {
17769 (yyval.typnam) = (yyvsp[(1) - (5)].typnam);
17770 (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(4) - (5)].ival)));
17771 ;}
17772 break;
17773
17774 case 590:
17775#line 1106 "third_party/libpg_query/grammar/statements/select.y"
17776 {
17777 (yyval.typnam) = (yyvsp[(2) - (6)].typnam);
17778 (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(5) - (6)].ival)));
17779 (yyval.typnam)->setof = true;
17780 ;}
17781 break;
17782
17783 case 591:
17784#line 1112 "third_party/libpg_query/grammar/statements/select.y"
17785 {
17786 (yyval.typnam) = (yyvsp[(1) - (2)].typnam);
17787 (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1));
17788 ;}
17789 break;
17790
17791 case 592:
17792#line 1117 "third_party/libpg_query/grammar/statements/select.y"
17793 {
17794 (yyval.typnam) = (yyvsp[(2) - (3)].typnam);
17795 (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1));
17796 (yyval.typnam)->setof = true;
17797 ;}
17798 break;
17799
17800 case 593:
17801#line 1126 "third_party/libpg_query/grammar/statements/select.y"
17802 { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeInteger(-1)); ;}
17803 break;
17804
17805 case 594:
17806#line 1128 "third_party/libpg_query/grammar/statements/select.y"
17807 { (yyval.list) = lappend((yyvsp[(1) - (4)].list), makeInteger((yyvsp[(3) - (4)].ival))); ;}
17808 break;
17809
17810 case 595:
17811#line 1130 "third_party/libpg_query/grammar/statements/select.y"
17812 { (yyval.list) = NIL; ;}
17813 break;
17814
17815 case 596:
17816#line 1134 "third_party/libpg_query/grammar/statements/select.y"
17817 { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
17818 break;
17819
17820 case 597:
17821#line 1135 "third_party/libpg_query/grammar/statements/select.y"
17822 { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
17823 break;
17824
17825 case 598:
17826#line 1136 "third_party/libpg_query/grammar/statements/select.y"
17827 { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
17828 break;
17829
17830 case 599:
17831#line 1137 "third_party/libpg_query/grammar/statements/select.y"
17832 { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
17833 break;
17834
17835 case 600:
17836#line 1138 "third_party/libpg_query/grammar/statements/select.y"
17837 { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
17838 break;
17839
17840 case 601:
17841#line 1140 "third_party/libpg_query/grammar/statements/select.y"
17842 {
17843 (yyval.typnam) = (yyvsp[(1) - (2)].typnam);
17844 (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
17845 ;}
17846 break;
17847
17848 case 602:
17849#line 1145 "third_party/libpg_query/grammar/statements/select.y"
17850 {
17851 (yyval.typnam) = (yyvsp[(1) - (4)].typnam);
17852 (yyval.typnam)->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
17853 makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)])));
17854 ;}
17855 break;
17856
17857 case 603:
17858#line 1164 "third_party/libpg_query/grammar/statements/select.y"
17859 { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
17860 break;
17861
17862 case 604:
17863#line 1165 "third_party/libpg_query/grammar/statements/select.y"
17864 { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
17865 break;
17866
17867 case 605:
17868#line 1166 "third_party/libpg_query/grammar/statements/select.y"
17869 { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
17870 break;
17871
17872 case 606:
17873#line 1167 "third_party/libpg_query/grammar/statements/select.y"
17874 { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
17875 break;
17876
17877 case 607:
17878#line 1179 "third_party/libpg_query/grammar/statements/select.y"
17879 {
17880 (yyval.typnam) = makeTypeName((yyvsp[(1) - (2)].str));
17881 (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
17882 (yyval.typnam)->location = (yylsp[(1) - (2)]);
17883 ;}
17884 break;
17885
17886 case 608:
17887#line 1185 "third_party/libpg_query/grammar/statements/select.y"
17888 {
17889 (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(1) - (3)].str)), (yyvsp[(2) - (3)].list)));
17890 (yyval.typnam)->typmods = (yyvsp[(3) - (3)].list);
17891 (yyval.typnam)->location = (yylsp[(1) - (3)]);
17892 ;}
17893 break;
17894
17895 case 609:
17896#line 1192 "third_party/libpg_query/grammar/statements/select.y"
17897 { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
17898 break;
17899
17900 case 610:
17901#line 1193 "third_party/libpg_query/grammar/statements/select.y"
17902 { (yyval.list) = NIL; ;}
17903 break;
17904
17905 case 611:
17906#line 1200 "third_party/libpg_query/grammar/statements/select.y"
17907 {
17908 (yyval.typnam) = SystemTypeName("int4");
17909 (yyval.typnam)->location = (yylsp[(1) - (1)]);
17910 ;}
17911 break;
17912
17913 case 612:
17914#line 1205 "third_party/libpg_query/grammar/statements/select.y"
17915 {
17916 (yyval.typnam) = SystemTypeName("int4");
17917 (yyval.typnam)->location = (yylsp[(1) - (1)]);
17918 ;}
17919 break;
17920
17921 case 613:
17922#line 1210 "third_party/libpg_query/grammar/statements/select.y"
17923 {
17924 (yyval.typnam) = SystemTypeName("int2");
17925 (yyval.typnam)->location = (yylsp[(1) - (1)]);
17926 ;}
17927 break;
17928
17929 case 614:
17930#line 1215 "third_party/libpg_query/grammar/statements/select.y"
17931 {
17932 (yyval.typnam) = SystemTypeName("int8");
17933 (yyval.typnam)->location = (yylsp[(1) - (1)]);
17934 ;}
17935 break;
17936
17937 case 615:
17938#line 1220 "third_party/libpg_query/grammar/statements/select.y"
17939 {
17940 (yyval.typnam) = SystemTypeName("float4");
17941 (yyval.typnam)->location = (yylsp[(1) - (1)]);
17942 ;}
17943 break;
17944
17945 case 616:
17946#line 1225 "third_party/libpg_query/grammar/statements/select.y"
17947 {
17948 (yyval.typnam) = (yyvsp[(2) - (2)].typnam);
17949 (yyval.typnam)->location = (yylsp[(1) - (2)]);
17950 ;}
17951 break;
17952
17953 case 617:
17954#line 1230 "third_party/libpg_query/grammar/statements/select.y"
17955 {
17956 (yyval.typnam) = SystemTypeName("float8");
17957 (yyval.typnam)->location = (yylsp[(1) - (2)]);
17958 ;}
17959 break;
17960
17961 case 618:
17962#line 1235 "third_party/libpg_query/grammar/statements/select.y"
17963 {
17964 (yyval.typnam) = SystemTypeName("numeric");
17965 (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
17966 (yyval.typnam)->location = (yylsp[(1) - (2)]);
17967 ;}
17968 break;
17969
17970 case 619:
17971#line 1241 "third_party/libpg_query/grammar/statements/select.y"
17972 {
17973 (yyval.typnam) = SystemTypeName("numeric");
17974 (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
17975 (yyval.typnam)->location = (yylsp[(1) - (2)]);
17976 ;}
17977 break;
17978
17979 case 620:
17980#line 1247 "third_party/libpg_query/grammar/statements/select.y"
17981 {
17982 (yyval.typnam) = SystemTypeName("numeric");
17983 (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
17984 (yyval.typnam)->location = (yylsp[(1) - (2)]);
17985 ;}
17986 break;
17987
17988 case 621:
17989#line 1253 "third_party/libpg_query/grammar/statements/select.y"
17990 {
17991 (yyval.typnam) = SystemTypeName("bool");
17992 (yyval.typnam)->location = (yylsp[(1) - (1)]);
17993 ;}
17994 break;
17995
17996 case 622:
17997#line 1260 "third_party/libpg_query/grammar/statements/select.y"
17998 {
17999 /*
18000 * Check FLOAT() precision limits assuming IEEE floating
18001 * types - thomas 1997-09-18
18002 */
18003 if ((yyvsp[(2) - (3)].ival) < 1)
18004 ereport(ERROR,
18005 (errcode(PG_ERRCODE_INVALID_PARAMETER_VALUE),
18006 errmsg("precision for type float must be at least 1 bit"),
18007 parser_errposition((yylsp[(2) - (3)]))));
18008 else if ((yyvsp[(2) - (3)].ival) <= 24)
18009 (yyval.typnam) = SystemTypeName("float4");
18010 else if ((yyvsp[(2) - (3)].ival) <= 53)
18011 (yyval.typnam) = SystemTypeName("float8");
18012 else
18013 ereport(ERROR,
18014 (errcode(PG_ERRCODE_INVALID_PARAMETER_VALUE),
18015 errmsg("precision for type float must be less than 54 bits"),
18016 parser_errposition((yylsp[(2) - (3)]))));
18017 ;}
18018 break;
18019
18020 case 623:
18021#line 1281 "third_party/libpg_query/grammar/statements/select.y"
18022 {
18023 (yyval.typnam) = SystemTypeName("float8");
18024 ;}
18025 break;
18026
18027 case 624:
18028#line 1291 "third_party/libpg_query/grammar/statements/select.y"
18029 {
18030 (yyval.typnam) = (yyvsp[(1) - (1)].typnam);
18031 ;}
18032 break;
18033
18034 case 625:
18035#line 1295 "third_party/libpg_query/grammar/statements/select.y"
18036 {
18037 (yyval.typnam) = (yyvsp[(1) - (1)].typnam);
18038 ;}
18039 break;
18040
18041 case 626:
18042#line 1303 "third_party/libpg_query/grammar/statements/select.y"
18043 {
18044 (yyval.typnam) = (yyvsp[(1) - (1)].typnam);
18045 ;}
18046 break;
18047
18048 case 627:
18049#line 1307 "third_party/libpg_query/grammar/statements/select.y"
18050 {
18051 (yyval.typnam) = (yyvsp[(1) - (1)].typnam);
18052 (yyval.typnam)->typmods = NIL;
18053 ;}
18054 break;
18055
18056 case 628:
18057#line 1315 "third_party/libpg_query/grammar/statements/select.y"
18058 {
18059 const char *typname;
18060
18061 typname = (yyvsp[(2) - (5)].boolean) ? "varbit" : "bit";
18062 (yyval.typnam) = SystemTypeName(typname);
18063 (yyval.typnam)->typmods = (yyvsp[(4) - (5)].list);
18064 (yyval.typnam)->location = (yylsp[(1) - (5)]);
18065 ;}
18066 break;
18067
18068 case 629:
18069#line 1327 "third_party/libpg_query/grammar/statements/select.y"
18070 {
18071 /* bit defaults to bit(1), varbit to no limit */
18072 if ((yyvsp[(2) - (2)].boolean))
18073 {
18074 (yyval.typnam) = SystemTypeName("varbit");
18075 }
18076 else
18077 {
18078 (yyval.typnam) = SystemTypeName("bit");
18079 (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1));
18080 }
18081 (yyval.typnam)->location = (yylsp[(1) - (2)]);
18082 ;}
18083 break;
18084
18085 case 630:
18086#line 1348 "third_party/libpg_query/grammar/statements/select.y"
18087 {
18088 (yyval.typnam) = (yyvsp[(1) - (1)].typnam);
18089 ;}
18090 break;
18091
18092 case 631:
18093#line 1352 "third_party/libpg_query/grammar/statements/select.y"
18094 {
18095 (yyval.typnam) = (yyvsp[(1) - (1)].typnam);
18096 ;}
18097 break;
18098
18099 case 632:
18100#line 1358 "third_party/libpg_query/grammar/statements/select.y"
18101 {
18102 (yyval.typnam) = (yyvsp[(1) - (1)].typnam);
18103 ;}
18104 break;
18105
18106 case 633:
18107#line 1362 "third_party/libpg_query/grammar/statements/select.y"
18108 {
18109 /* Length was not specified so allow to be unrestricted.
18110 * This handles problems with fixed-length (bpchar) strings
18111 * which in column definitions must default to a length
18112 * of one, but should not be constrained if the length
18113 * was not specified.
18114 */
18115 (yyval.typnam) = (yyvsp[(1) - (1)].typnam);
18116 (yyval.typnam)->typmods = NIL;
18117 ;}
18118 break;
18119
18120 case 634:
18121#line 1375 "third_party/libpg_query/grammar/statements/select.y"
18122 {
18123 (yyval.typnam) = SystemTypeName((yyvsp[(1) - (4)].conststr));
18124 (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)])));
18125 (yyval.typnam)->location = (yylsp[(1) - (4)]);
18126 ;}
18127 break;
18128
18129 case 635:
18130#line 1383 "third_party/libpg_query/grammar/statements/select.y"
18131 {
18132 (yyval.typnam) = SystemTypeName((yyvsp[(1) - (1)].conststr));
18133 /* char defaults to char(1), varchar to no limit */
18134 if (strcmp((yyvsp[(1) - (1)].conststr), "bpchar") == 0)
18135 (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1));
18136 (yyval.typnam)->location = (yylsp[(1) - (1)]);
18137 ;}
18138 break;
18139
18140 case 636:
18141#line 1393 "third_party/libpg_query/grammar/statements/select.y"
18142 { (yyval.conststr) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;}
18143 break;
18144
18145 case 637:
18146#line 1395 "third_party/libpg_query/grammar/statements/select.y"
18147 { (yyval.conststr) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;}
18148 break;
18149
18150 case 638:
18151#line 1397 "third_party/libpg_query/grammar/statements/select.y"
18152 { (yyval.conststr) = "varchar"; ;}
18153 break;
18154
18155 case 639:
18156#line 1399 "third_party/libpg_query/grammar/statements/select.y"
18157 { (yyval.conststr) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;}
18158 break;
18159
18160 case 640:
18161#line 1401 "third_party/libpg_query/grammar/statements/select.y"
18162 { (yyval.conststr) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;}
18163 break;
18164
18165 case 641:
18166#line 1403 "third_party/libpg_query/grammar/statements/select.y"
18167 { (yyval.conststr) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;}
18168 break;
18169
18170 case 642:
18171#line 1407 "third_party/libpg_query/grammar/statements/select.y"
18172 { (yyval.boolean) = true; ;}
18173 break;
18174
18175 case 643:
18176#line 1408 "third_party/libpg_query/grammar/statements/select.y"
18177 { (yyval.boolean) = false; ;}
18178 break;
18179
18180 case 644:
18181#line 1416 "third_party/libpg_query/grammar/statements/select.y"
18182 {
18183 if ((yyvsp[(5) - (5)].boolean))
18184 (yyval.typnam) = SystemTypeName("timestamptz");
18185 else
18186 (yyval.typnam) = SystemTypeName("timestamp");
18187 (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)])));
18188 (yyval.typnam)->location = (yylsp[(1) - (5)]);
18189 ;}
18190 break;
18191
18192 case 645:
18193#line 1425 "third_party/libpg_query/grammar/statements/select.y"
18194 {
18195 if ((yyvsp[(2) - (2)].boolean))
18196 (yyval.typnam) = SystemTypeName("timestamptz");
18197 else
18198 (yyval.typnam) = SystemTypeName("timestamp");
18199 (yyval.typnam)->location = (yylsp[(1) - (2)]);
18200 ;}
18201 break;
18202
18203 case 646:
18204#line 1433 "third_party/libpg_query/grammar/statements/select.y"
18205 {
18206 if ((yyvsp[(5) - (5)].boolean))
18207 (yyval.typnam) = SystemTypeName("timetz");
18208 else
18209 (yyval.typnam) = SystemTypeName("time");
18210 (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)])));
18211 (yyval.typnam)->location = (yylsp[(1) - (5)]);
18212 ;}
18213 break;
18214
18215 case 647:
18216#line 1442 "third_party/libpg_query/grammar/statements/select.y"
18217 {
18218 if ((yyvsp[(2) - (2)].boolean))
18219 (yyval.typnam) = SystemTypeName("timetz");
18220 else
18221 (yyval.typnam) = SystemTypeName("time");
18222 (yyval.typnam)->location = (yylsp[(1) - (2)]);
18223 ;}
18224 break;
18225
18226 case 648:
18227#line 1453 "third_party/libpg_query/grammar/statements/select.y"
18228 {
18229 (yyval.typnam) = SystemTypeName("interval");
18230 (yyval.typnam)->location = (yylsp[(1) - (1)]);
18231 ;}
18232 break;
18233
18234 case 649:
18235#line 1460 "third_party/libpg_query/grammar/statements/select.y"
18236 { (yyval.boolean) = true; ;}
18237 break;
18238
18239 case 650:
18240#line 1461 "third_party/libpg_query/grammar/statements/select.y"
18241 { (yyval.boolean) = false; ;}
18242 break;
18243
18244 case 651:
18245#line 1462 "third_party/libpg_query/grammar/statements/select.y"
18246 { (yyval.boolean) = false; ;}
18247 break;
18248
18249 case 652:
18250#line 1467 "third_party/libpg_query/grammar/statements/select.y"
18251 { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[(1) - (1)]))); ;}
18252 break;
18253
18254 case 653:
18255#line 1469 "third_party/libpg_query/grammar/statements/select.y"
18256 { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[(1) - (1)]))); ;}
18257 break;
18258
18259 case 654:
18260#line 1471 "third_party/libpg_query/grammar/statements/select.y"
18261 { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[(1) - (1)]))); ;}
18262 break;
18263
18264 case 655:
18265#line 1473 "third_party/libpg_query/grammar/statements/select.y"
18266 { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[(1) - (1)]))); ;}
18267 break;
18268
18269 case 656:
18270#line 1475 "third_party/libpg_query/grammar/statements/select.y"
18271 { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[(1) - (1)]))); ;}
18272 break;
18273
18274 case 657:
18275#line 1477 "third_party/libpg_query/grammar/statements/select.y"
18276 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
18277 break;
18278
18279 case 658:
18280#line 1479 "third_party/libpg_query/grammar/statements/select.y"
18281 {
18282 (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) |
18283 INTERVAL_MASK(MONTH), (yylsp[(1) - (3)])));
18284 ;}
18285 break;
18286
18287 case 659:
18288#line 1484 "third_party/libpg_query/grammar/statements/select.y"
18289 {
18290 (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
18291 INTERVAL_MASK(HOUR), (yylsp[(1) - (3)])));
18292 ;}
18293 break;
18294
18295 case 660:
18296#line 1489 "third_party/libpg_query/grammar/statements/select.y"
18297 {
18298 (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
18299 INTERVAL_MASK(HOUR) |
18300 INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)])));
18301 ;}
18302 break;
18303
18304 case 661:
18305#line 1495 "third_party/libpg_query/grammar/statements/select.y"
18306 {
18307 (yyval.list) = (yyvsp[(3) - (3)].list);
18308 linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(DAY) |
18309 INTERVAL_MASK(HOUR) |
18310 INTERVAL_MASK(MINUTE) |
18311 INTERVAL_MASK(SECOND), (yylsp[(1) - (3)]));
18312 ;}
18313 break;
18314
18315 case 662:
18316#line 1503 "third_party/libpg_query/grammar/statements/select.y"
18317 {
18318 (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) |
18319 INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)])));
18320 ;}
18321 break;
18322
18323 case 663:
18324#line 1508 "third_party/libpg_query/grammar/statements/select.y"
18325 {
18326 (yyval.list) = (yyvsp[(3) - (3)].list);
18327 linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(HOUR) |
18328 INTERVAL_MASK(MINUTE) |
18329 INTERVAL_MASK(SECOND), (yylsp[(1) - (3)]));
18330 ;}
18331 break;
18332
18333 case 664:
18334#line 1515 "third_party/libpg_query/grammar/statements/select.y"
18335 {
18336 (yyval.list) = (yyvsp[(3) - (3)].list);
18337 linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(MINUTE) |
18338 INTERVAL_MASK(SECOND), (yylsp[(1) - (3)]));
18339 ;}
18340 break;
18341
18342 case 665:
18343#line 1521 "third_party/libpg_query/grammar/statements/select.y"
18344 { (yyval.list) = NIL; ;}
18345 break;
18346
18347 case 666:
18348#line 1526 "third_party/libpg_query/grammar/statements/select.y"
18349 {
18350 (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (1)])));
18351 ;}
18352 break;
18353
18354 case 667:
18355#line 1530 "third_party/libpg_query/grammar/statements/select.y"
18356 {
18357 (yyval.list) = list_make2(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (4)])),
18358 makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)])));
18359 ;}
18360 break;
18361
18362 case 668:
18363#line 1565 "third_party/libpg_query/grammar/statements/select.y"
18364 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
18365 break;
18366
18367 case 669:
18368#line 1567 "third_party/libpg_query/grammar/statements/select.y"
18369 { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), (yylsp[(2) - (3)])); ;}
18370 break;
18371
18372 case 670:
18373#line 1569 "third_party/libpg_query/grammar/statements/select.y"
18374 {
18375 PGCollateClause *n = makeNode(PGCollateClause);
18376 n->arg = (yyvsp[(1) - (3)].node);
18377 n->collname = (yyvsp[(3) - (3)].list);
18378 n->location = (yylsp[(2) - (3)]);
18379 (yyval.node) = (PGNode *) n;
18380 ;}
18381 break;
18382
18383 case 671:
18384#line 1577 "third_party/libpg_query/grammar/statements/select.y"
18385 {
18386 (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("timezone"),
18387 list_make2((yyvsp[(5) - (5)].node), (yyvsp[(1) - (5)].node)),
18388 (yylsp[(2) - (5)]));
18389 ;}
18390 break;
18391
18392 case 672:
18393#line 1592 "third_party/libpg_query/grammar/statements/select.y"
18394 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
18395 break;
18396
18397 case 673:
18398#line 1594 "third_party/libpg_query/grammar/statements/select.y"
18399 { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
18400 break;
18401
18402 case 674:
18403#line 1596 "third_party/libpg_query/grammar/statements/select.y"
18404 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18405 break;
18406
18407 case 675:
18408#line 1598 "third_party/libpg_query/grammar/statements/select.y"
18409 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18410 break;
18411
18412 case 676:
18413#line 1600 "third_party/libpg_query/grammar/statements/select.y"
18414 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18415 break;
18416
18417 case 677:
18418#line 1602 "third_party/libpg_query/grammar/statements/select.y"
18419 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18420 break;
18421
18422 case 678:
18423#line 1604 "third_party/libpg_query/grammar/statements/select.y"
18424 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18425 break;
18426
18427 case 679:
18428#line 1606 "third_party/libpg_query/grammar/statements/select.y"
18429 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18430 break;
18431
18432 case 680:
18433#line 1608 "third_party/libpg_query/grammar/statements/select.y"
18434 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18435 break;
18436
18437 case 681:
18438#line 1610 "third_party/libpg_query/grammar/statements/select.y"
18439 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18440 break;
18441
18442 case 682:
18443#line 1612 "third_party/libpg_query/grammar/statements/select.y"
18444 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18445 break;
18446
18447 case 683:
18448#line 1614 "third_party/libpg_query/grammar/statements/select.y"
18449 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18450 break;
18451
18452 case 684:
18453#line 1616 "third_party/libpg_query/grammar/statements/select.y"
18454 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18455 break;
18456
18457 case 685:
18458#line 1618 "third_party/libpg_query/grammar/statements/select.y"
18459 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18460 break;
18461
18462 case 686:
18463#line 1621 "third_party/libpg_query/grammar/statements/select.y"
18464 { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18465 break;
18466
18467 case 687:
18468#line 1623 "third_party/libpg_query/grammar/statements/select.y"
18469 { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
18470 break;
18471
18472 case 688:
18473#line 1625 "third_party/libpg_query/grammar/statements/select.y"
18474 { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (2)].list), (yyvsp[(1) - (2)].node), NULL, (yylsp[(2) - (2)])); ;}
18475 break;
18476
18477 case 689:
18478#line 1628 "third_party/libpg_query/grammar/statements/select.y"
18479 { (yyval.node) = makeAndExpr((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18480 break;
18481
18482 case 690:
18483#line 1630 "third_party/libpg_query/grammar/statements/select.y"
18484 { (yyval.node) = makeOrExpr((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18485 break;
18486
18487 case 691:
18488#line 1632 "third_party/libpg_query/grammar/statements/select.y"
18489 { (yyval.node) = makeNotExpr((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
18490 break;
18491
18492 case 692:
18493#line 1634 "third_party/libpg_query/grammar/statements/select.y"
18494 { (yyval.node) = makeNotExpr((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
18495 break;
18496
18497 case 693:
18498#line 1637 "third_party/libpg_query/grammar/statements/select.y"
18499 {
18500 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_LIKE, "~~",
18501 (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)]));
18502 ;}
18503 break;
18504
18505 case 694:
18506#line 1642 "third_party/libpg_query/grammar/statements/select.y"
18507 {
18508 PGFuncCall *n = makeFuncCall(SystemFuncName("like_escape"),
18509 list_make3((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)),
18510 (yylsp[(2) - (5)]));
18511 (yyval.node) = (PGNode *) n;
18512 ;}
18513 break;
18514
18515 case 695:
18516#line 1649 "third_party/libpg_query/grammar/statements/select.y"
18517 {
18518 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_LIKE, "!~~",
18519 (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)]));
18520 ;}
18521 break;
18522
18523 case 696:
18524#line 1654 "third_party/libpg_query/grammar/statements/select.y"
18525 {
18526 PGFuncCall *n = makeFuncCall(SystemFuncName("not_like_escape"),
18527 list_make3((yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)),
18528 (yylsp[(2) - (6)]));
18529 (yyval.node) = (PGNode *) n;
18530 ;}
18531 break;
18532
18533 case 697:
18534#line 1661 "third_party/libpg_query/grammar/statements/select.y"
18535 {
18536 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_ILIKE, "~~*",
18537 (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)]));
18538 ;}
18539 break;
18540
18541 case 698:
18542#line 1666 "third_party/libpg_query/grammar/statements/select.y"
18543 {
18544 PGFuncCall *n = makeFuncCall(SystemFuncName("like_escape"),
18545 list_make2((yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)),
18546 (yylsp[(2) - (5)]));
18547 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_ILIKE, "~~*",
18548 (yyvsp[(1) - (5)].node), (PGNode *) n, (yylsp[(2) - (5)]));
18549 ;}
18550 break;
18551
18552 case 699:
18553#line 1674 "third_party/libpg_query/grammar/statements/select.y"
18554 {
18555 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_ILIKE, "!~~*",
18556 (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)]));
18557 ;}
18558 break;
18559
18560 case 700:
18561#line 1679 "third_party/libpg_query/grammar/statements/select.y"
18562 {
18563 PGFuncCall *n = makeFuncCall(SystemFuncName("not_like_escape"),
18564 list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)),
18565 (yylsp[(2) - (6)]));
18566 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_ILIKE, "!~~*",
18567 (yyvsp[(1) - (6)].node), (PGNode *) n, (yylsp[(2) - (6)]));
18568 ;}
18569 break;
18570
18571 case 701:
18572#line 1688 "third_party/libpg_query/grammar/statements/select.y"
18573 {
18574 PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"),
18575 list_make2((yyvsp[(4) - (4)].node), makeNullAConst(-1)),
18576 (yylsp[(2) - (4)]));
18577 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "~",
18578 (yyvsp[(1) - (4)].node), (PGNode *) n, (yylsp[(2) - (4)]));
18579 ;}
18580 break;
18581
18582 case 702:
18583#line 1696 "third_party/libpg_query/grammar/statements/select.y"
18584 {
18585 PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"),
18586 list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)),
18587 (yylsp[(2) - (6)]));
18588 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "~",
18589 (yyvsp[(1) - (6)].node), (PGNode *) n, (yylsp[(2) - (6)]));
18590 ;}
18591 break;
18592
18593 case 703:
18594#line 1704 "third_party/libpg_query/grammar/statements/select.y"
18595 {
18596 PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"),
18597 list_make2((yyvsp[(5) - (5)].node), makeNullAConst(-1)),
18598 (yylsp[(2) - (5)]));
18599 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "!~",
18600 (yyvsp[(1) - (5)].node), (PGNode *) n, (yylsp[(2) - (5)]));
18601 ;}
18602 break;
18603
18604 case 704:
18605#line 1712 "third_party/libpg_query/grammar/statements/select.y"
18606 {
18607 PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"),
18608 list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)),
18609 (yylsp[(2) - (7)]));
18610 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "!~",
18611 (yyvsp[(1) - (7)].node), (PGNode *) n, (yylsp[(2) - (7)]));
18612 ;}
18613 break;
18614
18615 case 705:
18616#line 1730 "third_party/libpg_query/grammar/statements/select.y"
18617 {
18618 PGNullTest *n = makeNode(PGNullTest);
18619 n->arg = (PGExpr *) (yyvsp[(1) - (3)].node);
18620 n->nulltesttype = PG_IS_NULL;
18621 n->location = (yylsp[(2) - (3)]);
18622 (yyval.node) = (PGNode *)n;
18623 ;}
18624 break;
18625
18626 case 706:
18627#line 1738 "third_party/libpg_query/grammar/statements/select.y"
18628 {
18629 PGNullTest *n = makeNode(PGNullTest);
18630 n->arg = (PGExpr *) (yyvsp[(1) - (2)].node);
18631 n->nulltesttype = PG_IS_NULL;
18632 n->location = (yylsp[(2) - (2)]);
18633 (yyval.node) = (PGNode *)n;
18634 ;}
18635 break;
18636
18637 case 707:
18638#line 1746 "third_party/libpg_query/grammar/statements/select.y"
18639 {
18640 PGNullTest *n = makeNode(PGNullTest);
18641 n->arg = (PGExpr *) (yyvsp[(1) - (4)].node);
18642 n->nulltesttype = IS_NOT_NULL;
18643 n->location = (yylsp[(2) - (4)]);
18644 (yyval.node) = (PGNode *)n;
18645 ;}
18646 break;
18647
18648 case 708:
18649#line 1754 "third_party/libpg_query/grammar/statements/select.y"
18650 {
18651 PGNullTest *n = makeNode(PGNullTest);
18652 n->arg = (PGExpr *) (yyvsp[(1) - (3)].node);
18653 n->nulltesttype = IS_NOT_NULL;
18654 n->location = (yylsp[(2) - (3)]);
18655 (yyval.node) = (PGNode *)n;
18656 ;}
18657 break;
18658
18659 case 709:
18660#line 1762 "third_party/libpg_query/grammar/statements/select.y"
18661 {
18662 PGNullTest *n = makeNode(PGNullTest);
18663 n->arg = (PGExpr *) (yyvsp[(1) - (2)].node);
18664 n->nulltesttype = IS_NOT_NULL;
18665 n->location = (yylsp[(2) - (2)]);
18666 (yyval.node) = (PGNode *)n;
18667 ;}
18668 break;
18669
18670 case 710:
18671#line 1770 "third_party/libpg_query/grammar/statements/select.y"
18672 {
18673 if (list_length((yyvsp[(1) - (3)].list)) != 2)
18674 ereport(ERROR,
18675 (errcode(PG_ERRCODE_SYNTAX_ERROR),
18676 errmsg("wrong number of parameters on left side of OVERLAPS expression"),
18677 parser_errposition((yylsp[(1) - (3)]))));
18678 if (list_length((yyvsp[(3) - (3)].list)) != 2)
18679 ereport(ERROR,
18680 (errcode(PG_ERRCODE_SYNTAX_ERROR),
18681 errmsg("wrong number of parameters on right side of OVERLAPS expression"),
18682 parser_errposition((yylsp[(3) - (3)]))));
18683 (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("overlaps"),
18684 list_concat((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)),
18685 (yylsp[(2) - (3)]));
18686 ;}
18687 break;
18688
18689 case 711:
18690#line 1786 "third_party/libpg_query/grammar/statements/select.y"
18691 {
18692 PGBooleanTest *b = makeNode(PGBooleanTest);
18693 b->arg = (PGExpr *) (yyvsp[(1) - (3)].node);
18694 b->booltesttype = PG_IS_TRUE;
18695 b->location = (yylsp[(2) - (3)]);
18696 (yyval.node) = (PGNode *)b;
18697 ;}
18698 break;
18699
18700 case 712:
18701#line 1794 "third_party/libpg_query/grammar/statements/select.y"
18702 {
18703 PGBooleanTest *b = makeNode(PGBooleanTest);
18704 b->arg = (PGExpr *) (yyvsp[(1) - (4)].node);
18705 b->booltesttype = IS_NOT_TRUE;
18706 b->location = (yylsp[(2) - (4)]);
18707 (yyval.node) = (PGNode *)b;
18708 ;}
18709 break;
18710
18711 case 713:
18712#line 1802 "third_party/libpg_query/grammar/statements/select.y"
18713 {
18714 PGBooleanTest *b = makeNode(PGBooleanTest);
18715 b->arg = (PGExpr *) (yyvsp[(1) - (3)].node);
18716 b->booltesttype = IS_FALSE;
18717 b->location = (yylsp[(2) - (3)]);
18718 (yyval.node) = (PGNode *)b;
18719 ;}
18720 break;
18721
18722 case 714:
18723#line 1810 "third_party/libpg_query/grammar/statements/select.y"
18724 {
18725 PGBooleanTest *b = makeNode(PGBooleanTest);
18726 b->arg = (PGExpr *) (yyvsp[(1) - (4)].node);
18727 b->booltesttype = IS_NOT_FALSE;
18728 b->location = (yylsp[(2) - (4)]);
18729 (yyval.node) = (PGNode *)b;
18730 ;}
18731 break;
18732
18733 case 715:
18734#line 1818 "third_party/libpg_query/grammar/statements/select.y"
18735 {
18736 PGBooleanTest *b = makeNode(PGBooleanTest);
18737 b->arg = (PGExpr *) (yyvsp[(1) - (3)].node);
18738 b->booltesttype = IS_UNKNOWN;
18739 b->location = (yylsp[(2) - (3)]);
18740 (yyval.node) = (PGNode *)b;
18741 ;}
18742 break;
18743
18744 case 716:
18745#line 1826 "third_party/libpg_query/grammar/statements/select.y"
18746 {
18747 PGBooleanTest *b = makeNode(PGBooleanTest);
18748 b->arg = (PGExpr *) (yyvsp[(1) - (4)].node);
18749 b->booltesttype = IS_NOT_UNKNOWN;
18750 b->location = (yylsp[(2) - (4)]);
18751 (yyval.node) = (PGNode *)b;
18752 ;}
18753 break;
18754
18755 case 717:
18756#line 1834 "third_party/libpg_query/grammar/statements/select.y"
18757 {
18758 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)]));
18759 ;}
18760 break;
18761
18762 case 718:
18763#line 1838 "third_party/libpg_query/grammar/statements/select.y"
18764 {
18765 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)]));
18766 ;}
18767 break;
18768
18769 case 719:
18770#line 1842 "third_party/libpg_query/grammar/statements/select.y"
18771 {
18772 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "=", (yyvsp[(1) - (6)].node), (PGNode *) (yyvsp[(5) - (6)].list), (yylsp[(2) - (6)]));
18773 ;}
18774 break;
18775
18776 case 720:
18777#line 1846 "third_party/libpg_query/grammar/statements/select.y"
18778 {
18779 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "<>", (yyvsp[(1) - (7)].node), (PGNode *) (yyvsp[(6) - (7)].list), (yylsp[(2) - (7)]));
18780 ;}
18781 break;
18782
18783 case 721:
18784#line 1850 "third_party/libpg_query/grammar/statements/select.y"
18785 {
18786 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_BETWEEN,
18787 "BETWEEN",
18788 (yyvsp[(1) - (6)].node),
18789 (PGNode *) list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)),
18790 (yylsp[(2) - (6)]));
18791 ;}
18792 break;
18793
18794 case 722:
18795#line 1858 "third_party/libpg_query/grammar/statements/select.y"
18796 {
18797 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_BETWEEN,
18798 "NOT BETWEEN",
18799 (yyvsp[(1) - (7)].node),
18800 (PGNode *) list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)),
18801 (yylsp[(2) - (7)]));
18802 ;}
18803 break;
18804
18805 case 723:
18806#line 1866 "third_party/libpg_query/grammar/statements/select.y"
18807 {
18808 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_BETWEEN_SYM,
18809 "BETWEEN SYMMETRIC",
18810 (yyvsp[(1) - (6)].node),
18811 (PGNode *) list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)),
18812 (yylsp[(2) - (6)]));
18813 ;}
18814 break;
18815
18816 case 724:
18817#line 1874 "third_party/libpg_query/grammar/statements/select.y"
18818 {
18819 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_BETWEEN_SYM,
18820 "NOT BETWEEN SYMMETRIC",
18821 (yyvsp[(1) - (7)].node),
18822 (PGNode *) list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)),
18823 (yylsp[(2) - (7)]));
18824 ;}
18825 break;
18826
18827 case 725:
18828#line 1882 "third_party/libpg_query/grammar/statements/select.y"
18829 {
18830 /* in_expr returns a PGSubLink or a list of a_exprs */
18831 if (IsA((yyvsp[(3) - (3)].node), PGSubLink))
18832 {
18833 /* generate foo = ANY (subquery) */
18834 PGSubLink *n = (PGSubLink *) (yyvsp[(3) - (3)].node);
18835 n->subLinkType = PG_ANY_SUBLINK;
18836 n->subLinkId = 0;
18837 n->testexpr = (yyvsp[(1) - (3)].node);
18838 n->operName = NIL; /* show it's IN not = ANY */
18839 n->location = (yylsp[(2) - (3)]);
18840 (yyval.node) = (PGNode *)n;
18841 }
18842 else
18843 {
18844 /* generate scalar IN expression */
18845 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_IN, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)]));
18846 }
18847 ;}
18848 break;
18849
18850 case 726:
18851#line 1902 "third_party/libpg_query/grammar/statements/select.y"
18852 {
18853 /* in_expr returns a PGSubLink or a list of a_exprs */
18854 if (IsA((yyvsp[(4) - (4)].node), PGSubLink))
18855 {
18856 /* generate NOT (foo = ANY (subquery)) */
18857 /* Make an = ANY node */
18858 PGSubLink *n = (PGSubLink *) (yyvsp[(4) - (4)].node);
18859 n->subLinkType = PG_ANY_SUBLINK;
18860 n->subLinkId = 0;
18861 n->testexpr = (yyvsp[(1) - (4)].node);
18862 n->operName = NIL; /* show it's IN not = ANY */
18863 n->location = (yylsp[(2) - (4)]);
18864 /* Stick a NOT on top; must have same parse location */
18865 (yyval.node) = makeNotExpr((PGNode *) n, (yylsp[(2) - (4)]));
18866 }
18867 else
18868 {
18869 /* generate scalar NOT IN expression */
18870 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_IN, "<>", (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)]));
18871 }
18872 ;}
18873 break;
18874
18875 case 727:
18876#line 1924 "third_party/libpg_query/grammar/statements/select.y"
18877 {
18878 PGSubLink *n = makeNode(PGSubLink);
18879 n->subLinkType = (yyvsp[(3) - (4)].subquerytype);
18880 n->subLinkId = 0;
18881 n->testexpr = (yyvsp[(1) - (4)].node);
18882 n->operName = (yyvsp[(2) - (4)].list);
18883 n->subselect = (yyvsp[(4) - (4)].node);
18884 n->location = (yylsp[(2) - (4)]);
18885 (yyval.node) = (PGNode *)n;
18886 ;}
18887 break;
18888
18889 case 728:
18890#line 1935 "third_party/libpg_query/grammar/statements/select.y"
18891 {
18892 if ((yyvsp[(3) - (6)].subquerytype) == PG_ANY_SUBLINK)
18893 (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP_ANY, (yyvsp[(2) - (6)].list), (yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(2) - (6)]));
18894 else
18895 (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP_ALL, (yyvsp[(2) - (6)].list), (yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(2) - (6)]));
18896 ;}
18897 break;
18898
18899 case 729:
18900#line 1942 "third_party/libpg_query/grammar/statements/select.y"
18901 {
18902 /*
18903 * The SQL spec only allows DEFAULT in "contextually typed
18904 * expressions", but for us, it's easier to allow it in
18905 * any a_expr and then throw error during parse analysis
18906 * if it's in an inappropriate context. This way also
18907 * lets us say something smarter than "syntax error".
18908 */
18909 PGSetToDefault *n = makeNode(PGSetToDefault);
18910 /* parse analysis will fill in the rest */
18911 n->location = (yylsp[(1) - (1)]);
18912 (yyval.node) = (PGNode *)n;
18913 ;}
18914 break;
18915
18916 case 730:
18917#line 1967 "third_party/libpg_query/grammar/statements/select.y"
18918 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
18919 break;
18920
18921 case 731:
18922#line 1969 "third_party/libpg_query/grammar/statements/select.y"
18923 { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), (yylsp[(2) - (3)])); ;}
18924 break;
18925
18926 case 732:
18927#line 1971 "third_party/libpg_query/grammar/statements/select.y"
18928 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
18929 break;
18930
18931 case 733:
18932#line 1973 "third_party/libpg_query/grammar/statements/select.y"
18933 { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
18934 break;
18935
18936 case 734:
18937#line 1975 "third_party/libpg_query/grammar/statements/select.y"
18938 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18939 break;
18940
18941 case 735:
18942#line 1977 "third_party/libpg_query/grammar/statements/select.y"
18943 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18944 break;
18945
18946 case 736:
18947#line 1979 "third_party/libpg_query/grammar/statements/select.y"
18948 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18949 break;
18950
18951 case 737:
18952#line 1981 "third_party/libpg_query/grammar/statements/select.y"
18953 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18954 break;
18955
18956 case 738:
18957#line 1983 "third_party/libpg_query/grammar/statements/select.y"
18958 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18959 break;
18960
18961 case 739:
18962#line 1985 "third_party/libpg_query/grammar/statements/select.y"
18963 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18964 break;
18965
18966 case 740:
18967#line 1987 "third_party/libpg_query/grammar/statements/select.y"
18968 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18969 break;
18970
18971 case 741:
18972#line 1989 "third_party/libpg_query/grammar/statements/select.y"
18973 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18974 break;
18975
18976 case 742:
18977#line 1991 "third_party/libpg_query/grammar/statements/select.y"
18978 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18979 break;
18980
18981 case 743:
18982#line 1993 "third_party/libpg_query/grammar/statements/select.y"
18983 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18984 break;
18985
18986 case 744:
18987#line 1995 "third_party/libpg_query/grammar/statements/select.y"
18988 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18989 break;
18990
18991 case 745:
18992#line 1997 "third_party/libpg_query/grammar/statements/select.y"
18993 { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18994 break;
18995
18996 case 746:
18997#line 1999 "third_party/libpg_query/grammar/statements/select.y"
18998 { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
18999 break;
19000
19001 case 747:
19002#line 2001 "third_party/libpg_query/grammar/statements/select.y"
19003 { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
19004 break;
19005
19006 case 748:
19007#line 2003 "third_party/libpg_query/grammar/statements/select.y"
19008 { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (2)].list), (yyvsp[(1) - (2)].node), NULL, (yylsp[(2) - (2)])); ;}
19009 break;
19010
19011 case 749:
19012#line 2005 "third_party/libpg_query/grammar/statements/select.y"
19013 {
19014 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)]));
19015 ;}
19016 break;
19017
19018 case 750:
19019#line 2009 "third_party/libpg_query/grammar/statements/select.y"
19020 {
19021 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)]));
19022 ;}
19023 break;
19024
19025 case 751:
19026#line 2013 "third_party/libpg_query/grammar/statements/select.y"
19027 {
19028 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "=", (yyvsp[(1) - (6)].node), (PGNode *) (yyvsp[(5) - (6)].list), (yylsp[(2) - (6)]));
19029 ;}
19030 break;
19031
19032 case 752:
19033#line 2017 "third_party/libpg_query/grammar/statements/select.y"
19034 {
19035 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "<>", (yyvsp[(1) - (7)].node), (PGNode *) (yyvsp[(6) - (7)].list), (yylsp[(2) - (7)]));
19036 ;}
19037 break;
19038
19039 case 753:
19040#line 2030 "third_party/libpg_query/grammar/statements/select.y"
19041 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
19042 break;
19043
19044 case 754:
19045#line 2031 "third_party/libpg_query/grammar/statements/select.y"
19046 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
19047 break;
19048
19049 case 755:
19050#line 2033 "third_party/libpg_query/grammar/statements/select.y"
19051 {
19052 if ((yyvsp[(2) - (2)].list))
19053 {
19054 PGAIndirection *n = makeNode(PGAIndirection);
19055 n->arg = makeParamRef(0, (yylsp[(1) - (2)]));
19056 n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner);
19057 (yyval.node) = (PGNode *) n;
19058 }
19059 else
19060 (yyval.node) = makeParamRef(0, (yylsp[(1) - (2)]));
19061 ;}
19062 break;
19063
19064 case 756:
19065#line 2045 "third_party/libpg_query/grammar/statements/select.y"
19066 {
19067 PGParamRef *p = makeNode(PGParamRef);
19068 p->number = (yyvsp[(1) - (2)].ival);
19069 p->location = (yylsp[(1) - (2)]);
19070 if ((yyvsp[(2) - (2)].list))
19071 {
19072 PGAIndirection *n = makeNode(PGAIndirection);
19073 n->arg = (PGNode *) p;
19074 n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner);
19075 (yyval.node) = (PGNode *) n;
19076 }
19077 else
19078 (yyval.node) = (PGNode *) p;
19079 ;}
19080 break;
19081
19082 case 757:
19083#line 2060 "third_party/libpg_query/grammar/statements/select.y"
19084 {
19085 if ((yyvsp[(4) - (4)].list))
19086 {
19087 PGAIndirection *n = makeNode(PGAIndirection);
19088 n->arg = (yyvsp[(2) - (4)].node);
19089 n->indirection = check_indirection((yyvsp[(4) - (4)].list), yyscanner);
19090 (yyval.node) = (PGNode *)n;
19091 }
19092 else
19093 (yyval.node) = (yyvsp[(2) - (4)].node);
19094 ;}
19095 break;
19096
19097 case 758:
19098#line 2072 "third_party/libpg_query/grammar/statements/select.y"
19099 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
19100 break;
19101
19102 case 759:
19103#line 2074 "third_party/libpg_query/grammar/statements/select.y"
19104 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
19105 break;
19106
19107 case 760:
19108#line 2076 "third_party/libpg_query/grammar/statements/select.y"
19109 {
19110 PGSubLink *n = makeNode(PGSubLink);
19111 n->subLinkType = PG_EXPR_SUBLINK;
19112 n->subLinkId = 0;
19113 n->testexpr = NULL;
19114 n->operName = NIL;
19115 n->subselect = (yyvsp[(1) - (1)].node);
19116 n->location = (yylsp[(1) - (1)]);
19117 (yyval.node) = (PGNode *)n;
19118 ;}
19119 break;
19120
19121 case 761:
19122#line 2087 "third_party/libpg_query/grammar/statements/select.y"
19123 {
19124 /*
19125 * Because the select_with_parens nonterminal is designed
19126 * to "eat" as many levels of parens as possible, the
19127 * '(' a_expr ')' opt_indirection production above will
19128 * fail to match a sub-SELECT with indirection decoration;
19129 * the sub-SELECT won't be regarded as an a_expr as long
19130 * as there are parens around it. To support applying
19131 * subscripting or field selection to a sub-SELECT result,
19132 * we need this redundant-looking production.
19133 */
19134 PGSubLink *n = makeNode(PGSubLink);
19135 PGAIndirection *a = makeNode(PGAIndirection);
19136 n->subLinkType = PG_EXPR_SUBLINK;
19137 n->subLinkId = 0;
19138 n->testexpr = NULL;
19139 n->operName = NIL;
19140 n->subselect = (yyvsp[(1) - (2)].node);
19141 n->location = (yylsp[(1) - (2)]);
19142 a->arg = (PGNode *)n;
19143 a->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner);
19144 (yyval.node) = (PGNode *)a;
19145 ;}
19146 break;
19147
19148 case 762:
19149#line 2111 "third_party/libpg_query/grammar/statements/select.y"
19150 {
19151 PGSubLink *n = makeNode(PGSubLink);
19152 n->subLinkType = PG_EXISTS_SUBLINK;
19153 n->subLinkId = 0;
19154 n->testexpr = NULL;
19155 n->operName = NIL;
19156 n->subselect = (yyvsp[(2) - (2)].node);
19157 n->location = (yylsp[(1) - (2)]);
19158 (yyval.node) = (PGNode *)n;
19159 ;}
19160 break;
19161
19162 case 763:
19163#line 2124 "third_party/libpg_query/grammar/statements/select.y"
19164 {
19165 (yyval.node) = (PGNode *) makeFuncCall((yyvsp[(1) - (3)].list), NIL, (yylsp[(1) - (3)]));
19166 ;}
19167 break;
19168
19169 case 764:
19170#line 2128 "third_party/libpg_query/grammar/statements/select.y"
19171 {
19172 PGFuncCall *n = makeFuncCall((yyvsp[(1) - (5)].list), (yyvsp[(3) - (5)].list), (yylsp[(1) - (5)]));
19173 n->agg_order = (yyvsp[(4) - (5)].list);
19174 (yyval.node) = (PGNode *)n;
19175 ;}
19176 break;
19177
19178 case 765:
19179#line 2134 "third_party/libpg_query/grammar/statements/select.y"
19180 {
19181 PGFuncCall *n = makeFuncCall((yyvsp[(1) - (6)].list), list_make1((yyvsp[(4) - (6)].node)), (yylsp[(1) - (6)]));
19182 n->func_variadic = true;
19183 n->agg_order = (yyvsp[(5) - (6)].list);
19184 (yyval.node) = (PGNode *)n;
19185 ;}
19186 break;
19187
19188 case 766:
19189#line 2141 "third_party/libpg_query/grammar/statements/select.y"
19190 {
19191 PGFuncCall *n = makeFuncCall((yyvsp[(1) - (8)].list), lappend((yyvsp[(3) - (8)].list), (yyvsp[(6) - (8)].node)), (yylsp[(1) - (8)]));
19192 n->func_variadic = true;
19193 n->agg_order = (yyvsp[(7) - (8)].list);
19194 (yyval.node) = (PGNode *)n;
19195 ;}
19196 break;
19197
19198 case 767:
19199#line 2148 "third_party/libpg_query/grammar/statements/select.y"
19200 {
19201 PGFuncCall *n = makeFuncCall((yyvsp[(1) - (6)].list), (yyvsp[(4) - (6)].list), (yylsp[(1) - (6)]));
19202 n->agg_order = (yyvsp[(5) - (6)].list);
19203 /* Ideally we'd mark the PGFuncCall node to indicate
19204 * "must be an aggregate", but there's no provision
19205 * for that in PGFuncCall at the moment.
19206 */
19207 (yyval.node) = (PGNode *)n;
19208 ;}
19209 break;
19210
19211 case 768:
19212#line 2158 "third_party/libpg_query/grammar/statements/select.y"
19213 {
19214 PGFuncCall *n = makeFuncCall((yyvsp[(1) - (6)].list), (yyvsp[(4) - (6)].list), (yylsp[(1) - (6)]));
19215 n->agg_order = (yyvsp[(5) - (6)].list);
19216 n->agg_distinct = true;
19217 (yyval.node) = (PGNode *)n;
19218 ;}
19219 break;
19220
19221 case 769:
19222#line 2165 "third_party/libpg_query/grammar/statements/select.y"
19223 {
19224 /*
19225 * We consider AGGREGATE(*) to invoke a parameterless
19226 * aggregate. This does the right thing for COUNT(*),
19227 * and there are no other aggregates in SQL that accept
19228 * '*' as parameter.
19229 *
19230 * The PGFuncCall node is also marked agg_star = true,
19231 * so that later processing can detect what the argument
19232 * really was.
19233 */
19234 PGFuncCall *n = makeFuncCall((yyvsp[(1) - (4)].list), NIL, (yylsp[(1) - (4)]));
19235 n->agg_star = true;
19236 (yyval.node) = (PGNode *)n;
19237 ;}
19238 break;
19239
19240 case 770:
19241#line 2193 "third_party/libpg_query/grammar/statements/select.y"
19242 {
19243 PGFuncCall *n = (PGFuncCall *) (yyvsp[(1) - (4)].node);
19244 /*
19245 * The order clause for WITHIN GROUP and the one for
19246 * plain-aggregate ORDER BY share a field, so we have to
19247 * check here that at most one is present. We also check
19248 * for DISTINCT and VARIADIC here to give a better error
19249 * location. Other consistency checks are deferred to
19250 * parse analysis.
19251 */
19252 if ((yyvsp[(2) - (4)].list) != NIL)
19253 {
19254 if (n->agg_order != NIL)
19255 ereport(ERROR,
19256 (errcode(PG_ERRCODE_SYNTAX_ERROR),
19257 errmsg("cannot use multiple ORDER BY clauses with WITHIN GROUP"),
19258 parser_errposition((yylsp[(2) - (4)]))));
19259 if (n->agg_distinct)
19260 ereport(ERROR,
19261 (errcode(PG_ERRCODE_SYNTAX_ERROR),
19262 errmsg("cannot use DISTINCT with WITHIN GROUP"),
19263 parser_errposition((yylsp[(2) - (4)]))));
19264 if (n->func_variadic)
19265 ereport(ERROR,
19266 (errcode(PG_ERRCODE_SYNTAX_ERROR),
19267 errmsg("cannot use VARIADIC with WITHIN GROUP"),
19268 parser_errposition((yylsp[(2) - (4)]))));
19269 n->agg_order = (yyvsp[(2) - (4)].list);
19270 n->agg_within_group = true;
19271 }
19272 n->agg_filter = (yyvsp[(3) - (4)].node);
19273 n->over = (yyvsp[(4) - (4)].windef);
19274 (yyval.node) = (PGNode *) n;
19275 ;}
19276 break;
19277
19278 case 771:
19279#line 2228 "third_party/libpg_query/grammar/statements/select.y"
19280 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
19281 break;
19282
19283 case 772:
19284#line 2238 "third_party/libpg_query/grammar/statements/select.y"
19285 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
19286 break;
19287
19288 case 773:
19289#line 2239 "third_party/libpg_query/grammar/statements/select.y"
19290 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
19291 break;
19292
19293 case 774:
19294#line 2247 "third_party/libpg_query/grammar/statements/select.y"
19295 {
19296 (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("pg_collation_for"),
19297 list_make1((yyvsp[(4) - (5)].node)),
19298 (yylsp[(1) - (5)]));
19299 ;}
19300 break;
19301
19302 case 775:
19303#line 2253 "third_party/libpg_query/grammar/statements/select.y"
19304 {
19305 (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_DATE, -1, (yylsp[(1) - (1)]));
19306 ;}
19307 break;
19308
19309 case 776:
19310#line 2257 "third_party/libpg_query/grammar/statements/select.y"
19311 {
19312 (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIME, -1, (yylsp[(1) - (1)]));
19313 ;}
19314 break;
19315
19316 case 777:
19317#line 2261 "third_party/libpg_query/grammar/statements/select.y"
19318 {
19319 (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIME_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)]));
19320 ;}
19321 break;
19322
19323 case 778:
19324#line 2265 "third_party/libpg_query/grammar/statements/select.y"
19325 {
19326 (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIMESTAMP, -1, (yylsp[(1) - (1)]));
19327 ;}
19328 break;
19329
19330 case 779:
19331#line 2269 "third_party/libpg_query/grammar/statements/select.y"
19332 {
19333 (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIMESTAMP_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)]));
19334 ;}
19335 break;
19336
19337 case 780:
19338#line 2273 "third_party/libpg_query/grammar/statements/select.y"
19339 {
19340 (yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIME, -1, (yylsp[(1) - (1)]));
19341 ;}
19342 break;
19343
19344 case 781:
19345#line 2277 "third_party/libpg_query/grammar/statements/select.y"
19346 {
19347 (yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIME_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)]));
19348 ;}
19349 break;
19350
19351 case 782:
19352#line 2281 "third_party/libpg_query/grammar/statements/select.y"
19353 {
19354 (yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIMESTAMP, -1, (yylsp[(1) - (1)]));
19355 ;}
19356 break;
19357
19358 case 783:
19359#line 2285 "third_party/libpg_query/grammar/statements/select.y"
19360 {
19361 (yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIMESTAMP_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)]));
19362 ;}
19363 break;
19364
19365 case 784:
19366#line 2289 "third_party/libpg_query/grammar/statements/select.y"
19367 {
19368 (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_ROLE, -1, (yylsp[(1) - (1)]));
19369 ;}
19370 break;
19371
19372 case 785:
19373#line 2293 "third_party/libpg_query/grammar/statements/select.y"
19374 {
19375 (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_USER, -1, (yylsp[(1) - (1)]));
19376 ;}
19377 break;
19378
19379 case 786:
19380#line 2297 "third_party/libpg_query/grammar/statements/select.y"
19381 {
19382 (yyval.node) = makeSQLValueFunction(PG_SVFOP_SESSION_USER, -1, (yylsp[(1) - (1)]));
19383 ;}
19384 break;
19385
19386 case 787:
19387#line 2301 "third_party/libpg_query/grammar/statements/select.y"
19388 {
19389 (yyval.node) = makeSQLValueFunction(PG_SVFOP_USER, -1, (yylsp[(1) - (1)]));
19390 ;}
19391 break;
19392
19393 case 788:
19394#line 2305 "third_party/libpg_query/grammar/statements/select.y"
19395 {
19396 (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_CATALOG, -1, (yylsp[(1) - (1)]));
19397 ;}
19398 break;
19399
19400 case 789:
19401#line 2309 "third_party/libpg_query/grammar/statements/select.y"
19402 {
19403 (yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_SCHEMA, -1, (yylsp[(1) - (1)]));
19404 ;}
19405 break;
19406
19407 case 790:
19408#line 2313 "third_party/libpg_query/grammar/statements/select.y"
19409 { (yyval.node) = makeTypeCast((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].typnam), (yylsp[(1) - (6)])); ;}
19410 break;
19411
19412 case 791:
19413#line 2315 "third_party/libpg_query/grammar/statements/select.y"
19414 {
19415 (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("date_part"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)]));
19416 ;}
19417 break;
19418
19419 case 792:
19420#line 2319 "third_party/libpg_query/grammar/statements/select.y"
19421 {
19422 /* overlay(A PLACING B FROM C FOR D) is converted to
19423 * overlay(A, B, C, D)
19424 * overlay(A PLACING B FROM C) is converted to
19425 * overlay(A, B, C)
19426 */
19427 (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("overlay"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)]));
19428 ;}
19429 break;
19430
19431 case 793:
19432#line 2328 "third_party/libpg_query/grammar/statements/select.y"
19433 {
19434 /* position(A in B) is converted to position(B, A) */
19435 (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("position"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)]));
19436 ;}
19437 break;
19438
19439 case 794:
19440#line 2333 "third_party/libpg_query/grammar/statements/select.y"
19441 {
19442 /* substring(A from B for C) is converted to
19443 * substring(A, B, C) - thomas 2000-11-28
19444 */
19445 (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("substring"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)]));
19446 ;}
19447 break;
19448
19449 case 795:
19450#line 2340 "third_party/libpg_query/grammar/statements/select.y"
19451 {
19452 /* TREAT(expr AS target) converts expr of a particular type to target,
19453 * which is defined to be a subtype of the original expression.
19454 * In SQL99, this is intended for use with structured UDTs,
19455 * but let's make this a generally useful form allowing stronger
19456 * coercions than are handled by implicit casting.
19457 *
19458 * Convert SystemTypeName() to SystemFuncName() even though
19459 * at the moment they result in the same thing.
19460 */
19461 (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName(((PGValue *)llast((yyvsp[(5) - (6)].typnam)->names))->val.str),
19462 list_make1((yyvsp[(3) - (6)].node)),
19463 (yylsp[(1) - (6)]));
19464 ;}
19465 break;
19466
19467 case 796:
19468#line 2355 "third_party/libpg_query/grammar/statements/select.y"
19469 {
19470 /* various trim expressions are defined in SQL
19471 * - thomas 1997-07-19
19472 */
19473 (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("btrim"), (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)]));
19474 ;}
19475 break;
19476
19477 case 797:
19478#line 2362 "third_party/libpg_query/grammar/statements/select.y"
19479 {
19480 (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("ltrim"), (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)]));
19481 ;}
19482 break;
19483
19484 case 798:
19485#line 2366 "third_party/libpg_query/grammar/statements/select.y"
19486 {
19487 (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("rtrim"), (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)]));
19488 ;}
19489 break;
19490
19491 case 799:
19492#line 2370 "third_party/libpg_query/grammar/statements/select.y"
19493 {
19494 (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("btrim"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)]));
19495 ;}
19496 break;
19497
19498 case 800:
19499#line 2374 "third_party/libpg_query/grammar/statements/select.y"
19500 {
19501 (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NULLIF, "=", (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(1) - (6)]));
19502 ;}
19503 break;
19504
19505 case 801:
19506#line 2378 "third_party/libpg_query/grammar/statements/select.y"
19507 {
19508 PGCoalesceExpr *c = makeNode(PGCoalesceExpr);
19509 c->args = (yyvsp[(3) - (4)].list);
19510 c->location = (yylsp[(1) - (4)]);
19511 (yyval.node) = (PGNode *)c;
19512 ;}
19513 break;
19514
19515 case 802:
19516#line 2385 "third_party/libpg_query/grammar/statements/select.y"
19517 {
19518 PGMinMaxExpr *v = makeNode(PGMinMaxExpr);
19519 v->args = (yyvsp[(3) - (4)].list);
19520 v->op = PG_IS_GREATEST;
19521 v->location = (yylsp[(1) - (4)]);
19522 (yyval.node) = (PGNode *)v;
19523 ;}
19524 break;
19525
19526 case 803:
19527#line 2393 "third_party/libpg_query/grammar/statements/select.y"
19528 {
19529 PGMinMaxExpr *v = makeNode(PGMinMaxExpr);
19530 v->args = (yyvsp[(3) - (4)].list);
19531 v->op = IS_LEAST;
19532 v->location = (yylsp[(1) - (4)]);
19533 (yyval.node) = (PGNode *)v;
19534 ;}
19535 break;
19536
19537 case 804:
19538#line 2407 "third_party/libpg_query/grammar/statements/select.y"
19539 { (yyval.list) = (yyvsp[(4) - (5)].list); ;}
19540 break;
19541
19542 case 805:
19543#line 2408 "third_party/libpg_query/grammar/statements/select.y"
19544 { (yyval.list) = NIL; ;}
19545 break;
19546
19547 case 806:
19548#line 2412 "third_party/libpg_query/grammar/statements/select.y"
19549 { (yyval.node) = (yyvsp[(4) - (5)].node); ;}
19550 break;
19551
19552 case 807:
19553#line 2413 "third_party/libpg_query/grammar/statements/select.y"
19554 { (yyval.node) = NULL; ;}
19555 break;
19556
19557 case 808:
19558#line 2421 "third_party/libpg_query/grammar/statements/select.y"
19559 { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
19560 break;
19561
19562 case 809:
19563#line 2422 "third_party/libpg_query/grammar/statements/select.y"
19564 { (yyval.list) = NIL; ;}
19565 break;
19566
19567 case 810:
19568#line 2426 "third_party/libpg_query/grammar/statements/select.y"
19569 { (yyval.list) = list_make1((yyvsp[(1) - (1)].windef)); ;}
19570 break;
19571
19572 case 811:
19573#line 2428 "third_party/libpg_query/grammar/statements/select.y"
19574 { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].windef)); ;}
19575 break;
19576
19577 case 812:
19578#line 2433 "third_party/libpg_query/grammar/statements/select.y"
19579 {
19580 PGWindowDef *n = (yyvsp[(3) - (3)].windef);
19581 n->name = (yyvsp[(1) - (3)].str);
19582 (yyval.windef) = n;
19583 ;}
19584 break;
19585
19586 case 813:
19587#line 2441 "third_party/libpg_query/grammar/statements/select.y"
19588 { (yyval.windef) = (yyvsp[(2) - (2)].windef); ;}
19589 break;
19590
19591 case 814:
19592#line 2443 "third_party/libpg_query/grammar/statements/select.y"
19593 {
19594 PGWindowDef *n = makeNode(PGWindowDef);
19595 n->name = (yyvsp[(2) - (2)].str);
19596 n->refname = NULL;
19597 n->partitionClause = NIL;
19598 n->orderClause = NIL;
19599 n->frameOptions = FRAMEOPTION_DEFAULTS;
19600 n->startOffset = NULL;
19601 n->endOffset = NULL;
19602 n->location = (yylsp[(2) - (2)]);
19603 (yyval.windef) = n;
19604 ;}
19605 break;
19606
19607 case 815:
19608#line 2456 "third_party/libpg_query/grammar/statements/select.y"
19609 { (yyval.windef) = NULL; ;}
19610 break;
19611
19612 case 816:
19613#line 2461 "third_party/libpg_query/grammar/statements/select.y"
19614 {
19615 PGWindowDef *n = makeNode(PGWindowDef);
19616 n->name = NULL;
19617 n->refname = (yyvsp[(2) - (6)].str);
19618 n->partitionClause = (yyvsp[(3) - (6)].list);
19619 n->orderClause = (yyvsp[(4) - (6)].list);
19620 /* copy relevant fields of opt_frame_clause */
19621 n->frameOptions = (yyvsp[(5) - (6)].windef)->frameOptions;
19622 n->startOffset = (yyvsp[(5) - (6)].windef)->startOffset;
19623 n->endOffset = (yyvsp[(5) - (6)].windef)->endOffset;
19624 n->location = (yylsp[(1) - (6)]);
19625 (yyval.windef) = n;
19626 ;}
19627 break;
19628
19629 case 817:
19630#line 2486 "third_party/libpg_query/grammar/statements/select.y"
19631 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
19632 break;
19633
19634 case 818:
19635#line 2487 "third_party/libpg_query/grammar/statements/select.y"
19636 { (yyval.str) = NULL; ;}
19637 break;
19638
19639 case 819:
19640#line 2490 "third_party/libpg_query/grammar/statements/select.y"
19641 { (yyval.list) = (yyvsp[(3) - (3)].list); ;}
19642 break;
19643
19644 case 820:
19645#line 2491 "third_party/libpg_query/grammar/statements/select.y"
19646 { (yyval.list) = NIL; ;}
19647 break;
19648
19649 case 821:
19650#line 2503 "third_party/libpg_query/grammar/statements/select.y"
19651 {
19652 PGWindowDef *n = (yyvsp[(2) - (2)].windef);
19653 n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE;
19654 if (n->frameOptions & (FRAMEOPTION_START_VALUE_PRECEDING |
19655 FRAMEOPTION_END_VALUE_PRECEDING))
19656 ereport(ERROR,
19657 (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
19658 errmsg("RANGE PRECEDING is only supported with UNBOUNDED"),
19659 parser_errposition((yylsp[(1) - (2)]))));
19660 if (n->frameOptions & (FRAMEOPTION_START_VALUE_FOLLOWING |
19661 FRAMEOPTION_END_VALUE_FOLLOWING))
19662 ereport(ERROR,
19663 (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
19664 errmsg("RANGE FOLLOWING is only supported with UNBOUNDED"),
19665 parser_errposition((yylsp[(1) - (2)]))));
19666 (yyval.windef) = n;
19667 ;}
19668 break;
19669
19670 case 822:
19671#line 2521 "third_party/libpg_query/grammar/statements/select.y"
19672 {
19673 PGWindowDef *n = (yyvsp[(2) - (2)].windef);
19674 n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS;
19675 (yyval.windef) = n;
19676 ;}
19677 break;
19678
19679 case 823:
19680#line 2527 "third_party/libpg_query/grammar/statements/select.y"
19681 {
19682 PGWindowDef *n = makeNode(PGWindowDef);
19683 n->frameOptions = FRAMEOPTION_DEFAULTS;
19684 n->startOffset = NULL;
19685 n->endOffset = NULL;
19686 (yyval.windef) = n;
19687 ;}
19688 break;
19689
19690 case 824:
19691#line 2537 "third_party/libpg_query/grammar/statements/select.y"
19692 {
19693 PGWindowDef *n = (yyvsp[(1) - (1)].windef);
19694 /* reject invalid cases */
19695 if (n->frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING)
19696 ereport(ERROR,
19697 (errcode(PG_ERRCODE_WINDOWING_ERROR),
19698 errmsg("frame start cannot be UNBOUNDED FOLLOWING"),
19699 parser_errposition((yylsp[(1) - (1)]))));
19700 if (n->frameOptions & FRAMEOPTION_START_VALUE_FOLLOWING)
19701 ereport(ERROR,
19702 (errcode(PG_ERRCODE_WINDOWING_ERROR),
19703 errmsg("frame starting from following row cannot end with current row"),
19704 parser_errposition((yylsp[(1) - (1)]))));
19705 n->frameOptions |= FRAMEOPTION_END_CURRENT_ROW;
19706 (yyval.windef) = n;
19707 ;}
19708 break;
19709
19710 case 825:
19711#line 2554 "third_party/libpg_query/grammar/statements/select.y"
19712 {
19713 PGWindowDef *n1 = (yyvsp[(2) - (4)].windef);
19714 PGWindowDef *n2 = (yyvsp[(4) - (4)].windef);
19715 /* form merged options */
19716 int frameOptions = n1->frameOptions;
19717 /* shift converts START_ options to END_ options */
19718 frameOptions |= n2->frameOptions << 1;
19719 frameOptions |= FRAMEOPTION_BETWEEN;
19720 /* reject invalid cases */
19721 if (frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING)
19722 ereport(ERROR,
19723 (errcode(PG_ERRCODE_WINDOWING_ERROR),
19724 errmsg("frame start cannot be UNBOUNDED FOLLOWING"),
19725 parser_errposition((yylsp[(2) - (4)]))));
19726 if (frameOptions & FRAMEOPTION_END_UNBOUNDED_PRECEDING)
19727 ereport(ERROR,
19728 (errcode(PG_ERRCODE_WINDOWING_ERROR),
19729 errmsg("frame end cannot be UNBOUNDED PRECEDING"),
19730 parser_errposition((yylsp[(4) - (4)]))));
19731 if ((frameOptions & FRAMEOPTION_START_CURRENT_ROW) &&
19732 (frameOptions & FRAMEOPTION_END_VALUE_PRECEDING))
19733 ereport(ERROR,
19734 (errcode(PG_ERRCODE_WINDOWING_ERROR),
19735 errmsg("frame starting from current row cannot have preceding rows"),
19736 parser_errposition((yylsp[(4) - (4)]))));
19737 if ((frameOptions & FRAMEOPTION_START_VALUE_FOLLOWING) &&
19738 (frameOptions & (FRAMEOPTION_END_VALUE_PRECEDING |
19739 FRAMEOPTION_END_CURRENT_ROW)))
19740 ereport(ERROR,
19741 (errcode(PG_ERRCODE_WINDOWING_ERROR),
19742 errmsg("frame starting from following row cannot have preceding rows"),
19743 parser_errposition((yylsp[(4) - (4)]))));
19744 n1->frameOptions = frameOptions;
19745 n1->endOffset = n2->startOffset;
19746 (yyval.windef) = n1;
19747 ;}
19748 break;
19749
19750 case 826:
19751#line 2599 "third_party/libpg_query/grammar/statements/select.y"
19752 {
19753 PGWindowDef *n = makeNode(PGWindowDef);
19754 n->frameOptions = FRAMEOPTION_START_UNBOUNDED_PRECEDING;
19755 n->startOffset = NULL;
19756 n->endOffset = NULL;
19757 (yyval.windef) = n;
19758 ;}
19759 break;
19760
19761 case 827:
19762#line 2607 "third_party/libpg_query/grammar/statements/select.y"
19763 {
19764 PGWindowDef *n = makeNode(PGWindowDef);
19765 n->frameOptions = FRAMEOPTION_START_UNBOUNDED_FOLLOWING;
19766 n->startOffset = NULL;
19767 n->endOffset = NULL;
19768 (yyval.windef) = n;
19769 ;}
19770 break;
19771
19772 case 828:
19773#line 2615 "third_party/libpg_query/grammar/statements/select.y"
19774 {
19775 PGWindowDef *n = makeNode(PGWindowDef);
19776 n->frameOptions = FRAMEOPTION_START_CURRENT_ROW;
19777 n->startOffset = NULL;
19778 n->endOffset = NULL;
19779 (yyval.windef) = n;
19780 ;}
19781 break;
19782
19783 case 829:
19784#line 2623 "third_party/libpg_query/grammar/statements/select.y"
19785 {
19786 PGWindowDef *n = makeNode(PGWindowDef);
19787 n->frameOptions = FRAMEOPTION_START_VALUE_PRECEDING;
19788 n->startOffset = (yyvsp[(1) - (2)].node);
19789 n->endOffset = NULL;
19790 (yyval.windef) = n;
19791 ;}
19792 break;
19793
19794 case 830:
19795#line 2631 "third_party/libpg_query/grammar/statements/select.y"
19796 {
19797 PGWindowDef *n = makeNode(PGWindowDef);
19798 n->frameOptions = FRAMEOPTION_START_VALUE_FOLLOWING;
19799 n->startOffset = (yyvsp[(1) - (2)].node);
19800 n->endOffset = NULL;
19801 (yyval.windef) = n;
19802 ;}
19803 break;
19804
19805 case 831:
19806#line 2651 "third_party/libpg_query/grammar/statements/select.y"
19807 { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
19808 break;
19809
19810 case 832:
19811#line 2652 "third_party/libpg_query/grammar/statements/select.y"
19812 { (yyval.list) = NIL; ;}
19813 break;
19814
19815 case 833:
19816#line 2653 "third_party/libpg_query/grammar/statements/select.y"
19817 { (yyval.list) = lappend((yyvsp[(2) - (5)].list), (yyvsp[(4) - (5)].node)); ;}
19818 break;
19819
19820 case 834:
19821#line 2656 "third_party/libpg_query/grammar/statements/select.y"
19822 { (yyval.subquerytype) = PG_ANY_SUBLINK; ;}
19823 break;
19824
19825 case 835:
19826#line 2657 "third_party/libpg_query/grammar/statements/select.y"
19827 { (yyval.subquerytype) = PG_ANY_SUBLINK; ;}
19828 break;
19829
19830 case 836:
19831#line 2658 "third_party/libpg_query/grammar/statements/select.y"
19832 { (yyval.subquerytype) = PG_ALL_SUBLINK; ;}
19833 break;
19834
19835 case 837:
19836#line 2661 "third_party/libpg_query/grammar/statements/select.y"
19837 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
19838 break;
19839
19840 case 838:
19841#line 2662 "third_party/libpg_query/grammar/statements/select.y"
19842 { (yyval.str) = (char*) (yyvsp[(1) - (1)].conststr); ;}
19843 break;
19844
19845 case 839:
19846#line 2665 "third_party/libpg_query/grammar/statements/select.y"
19847 { (yyval.conststr) = "+"; ;}
19848 break;
19849
19850 case 840:
19851#line 2666 "third_party/libpg_query/grammar/statements/select.y"
19852 { (yyval.conststr) = "-"; ;}
19853 break;
19854
19855 case 841:
19856#line 2667 "third_party/libpg_query/grammar/statements/select.y"
19857 { (yyval.conststr) = "*"; ;}
19858 break;
19859
19860 case 842:
19861#line 2668 "third_party/libpg_query/grammar/statements/select.y"
19862 { (yyval.conststr) = "/"; ;}
19863 break;
19864
19865 case 843:
19866#line 2669 "third_party/libpg_query/grammar/statements/select.y"
19867 { (yyval.conststr) = "%"; ;}
19868 break;
19869
19870 case 844:
19871#line 2670 "third_party/libpg_query/grammar/statements/select.y"
19872 { (yyval.conststr) = "^"; ;}
19873 break;
19874
19875 case 845:
19876#line 2671 "third_party/libpg_query/grammar/statements/select.y"
19877 { (yyval.conststr) = "<"; ;}
19878 break;
19879
19880 case 846:
19881#line 2672 "third_party/libpg_query/grammar/statements/select.y"
19882 { (yyval.conststr) = ">"; ;}
19883 break;
19884
19885 case 847:
19886#line 2673 "third_party/libpg_query/grammar/statements/select.y"
19887 { (yyval.conststr) = "="; ;}
19888 break;
19889
19890 case 848:
19891#line 2674 "third_party/libpg_query/grammar/statements/select.y"
19892 { (yyval.conststr) = "<="; ;}
19893 break;
19894
19895 case 849:
19896#line 2675 "third_party/libpg_query/grammar/statements/select.y"
19897 { (yyval.conststr) = ">="; ;}
19898 break;
19899
19900 case 850:
19901#line 2676 "third_party/libpg_query/grammar/statements/select.y"
19902 { (yyval.conststr) = "<>"; ;}
19903 break;
19904
19905 case 851:
19906#line 2680 "third_party/libpg_query/grammar/statements/select.y"
19907 { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
19908 break;
19909
19910 case 852:
19911#line 2682 "third_party/libpg_query/grammar/statements/select.y"
19912 { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
19913 break;
19914
19915 case 853:
19916#line 2687 "third_party/libpg_query/grammar/statements/select.y"
19917 { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
19918 break;
19919
19920 case 854:
19921#line 2689 "third_party/libpg_query/grammar/statements/select.y"
19922 { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
19923 break;
19924
19925 case 855:
19926#line 2694 "third_party/libpg_query/grammar/statements/select.y"
19927 { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
19928 break;
19929
19930 case 856:
19931#line 2696 "third_party/libpg_query/grammar/statements/select.y"
19932 { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
19933 break;
19934
19935 case 857:
19936#line 2698 "third_party/libpg_query/grammar/statements/select.y"
19937 { (yyval.list) = list_make1(makeString("~~")); ;}
19938 break;
19939
19940 case 858:
19941#line 2700 "third_party/libpg_query/grammar/statements/select.y"
19942 { (yyval.list) = list_make1(makeString("!~~")); ;}
19943 break;
19944
19945 case 859:
19946#line 2702 "third_party/libpg_query/grammar/statements/select.y"
19947 { (yyval.list) = list_make1(makeString("~~*")); ;}
19948 break;
19949
19950 case 860:
19951#line 2704 "third_party/libpg_query/grammar/statements/select.y"
19952 { (yyval.list) = list_make1(makeString("!~~*")); ;}
19953 break;
19954
19955 case 861:
19956#line 2718 "third_party/libpg_query/grammar/statements/select.y"
19957 { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
19958 break;
19959
19960 case 862:
19961#line 2720 "third_party/libpg_query/grammar/statements/select.y"
19962 { (yyval.list) = lcons(makeString((yyvsp[(1) - (3)].str)), (yyvsp[(3) - (3)].list)); ;}
19963 break;
19964
19965 case 863:
19966#line 2724 "third_party/libpg_query/grammar/statements/select.y"
19967 {
19968 (yyval.list) = list_make1((yyvsp[(1) - (1)].node));
19969 ;}
19970 break;
19971
19972 case 864:
19973#line 2728 "third_party/libpg_query/grammar/statements/select.y"
19974 {
19975 (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
19976 ;}
19977 break;
19978
19979 case 865:
19980#line 2735 "third_party/libpg_query/grammar/statements/select.y"
19981 {
19982 (yyval.list) = list_make1((yyvsp[(1) - (1)].node));
19983 ;}
19984 break;
19985
19986 case 866:
19987#line 2739 "third_party/libpg_query/grammar/statements/select.y"
19988 {
19989 (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
19990 ;}
19991 break;
19992
19993 case 867:
19994#line 2745 "third_party/libpg_query/grammar/statements/select.y"
19995 {
19996 (yyval.node) = (yyvsp[(1) - (1)].node);
19997 ;}
19998 break;
19999
20000 case 868:
20001#line 2749 "third_party/libpg_query/grammar/statements/select.y"
20002 {
20003 PGNamedArgExpr *na = makeNode(PGNamedArgExpr);
20004 na->name = (yyvsp[(1) - (3)].str);
20005 na->arg = (PGExpr *) (yyvsp[(3) - (3)].node);
20006 na->argnumber = -1; /* until determined */
20007 na->location = (yylsp[(1) - (3)]);
20008 (yyval.node) = (PGNode *) na;
20009 ;}
20010 break;
20011
20012 case 869:
20013#line 2758 "third_party/libpg_query/grammar/statements/select.y"
20014 {
20015 PGNamedArgExpr *na = makeNode(PGNamedArgExpr);
20016 na->name = (yyvsp[(1) - (3)].str);
20017 na->arg = (PGExpr *) (yyvsp[(3) - (3)].node);
20018 na->argnumber = -1; /* until determined */
20019 na->location = (yylsp[(1) - (3)]);
20020 (yyval.node) = (PGNode *) na;
20021 ;}
20022 break;
20023
20024 case 870:
20025#line 2768 "third_party/libpg_query/grammar/statements/select.y"
20026 { (yyval.list) = list_make1((yyvsp[(1) - (1)].typnam)); ;}
20027 break;
20028
20029 case 871:
20030#line 2769 "third_party/libpg_query/grammar/statements/select.y"
20031 { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typnam)); ;}
20032 break;
20033
20034 case 872:
20035#line 2774 "third_party/libpg_query/grammar/statements/select.y"
20036 {
20037 (yyval.list) = list_make2(makeStringConst((yyvsp[(1) - (3)].str), (yylsp[(1) - (3)])), (yyvsp[(3) - (3)].node));
20038 ;}
20039 break;
20040
20041 case 873:
20042#line 2777 "third_party/libpg_query/grammar/statements/select.y"
20043 { (yyval.list) = NIL; ;}
20044 break;
20045
20046 case 874:
20047#line 2784 "third_party/libpg_query/grammar/statements/select.y"
20048 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
20049 break;
20050
20051 case 875:
20052#line 2785 "third_party/libpg_query/grammar/statements/select.y"
20053 { (yyval.str) = (char*) "year"; ;}
20054 break;
20055
20056 case 876:
20057#line 2786 "third_party/libpg_query/grammar/statements/select.y"
20058 { (yyval.str) = (char*) "month"; ;}
20059 break;
20060
20061 case 877:
20062#line 2787 "third_party/libpg_query/grammar/statements/select.y"
20063 { (yyval.str) = (char*) "day"; ;}
20064 break;
20065
20066 case 878:
20067#line 2788 "third_party/libpg_query/grammar/statements/select.y"
20068 { (yyval.str) = (char*) "hour"; ;}
20069 break;
20070
20071 case 879:
20072#line 2789 "third_party/libpg_query/grammar/statements/select.y"
20073 { (yyval.str) = (char*) "minute"; ;}
20074 break;
20075
20076 case 880:
20077#line 2790 "third_party/libpg_query/grammar/statements/select.y"
20078 { (yyval.str) = (char*) "second"; ;}
20079 break;
20080
20081 case 881:
20082#line 2791 "third_party/libpg_query/grammar/statements/select.y"
20083 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
20084 break;
20085
20086 case 882:
20087#line 2802 "third_party/libpg_query/grammar/statements/select.y"
20088 {
20089 (yyval.list) = list_make4((yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node));
20090 ;}
20091 break;
20092
20093 case 883:
20094#line 2806 "third_party/libpg_query/grammar/statements/select.y"
20095 {
20096 (yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node));
20097 ;}
20098 break;
20099
20100 case 884:
20101#line 2813 "third_party/libpg_query/grammar/statements/select.y"
20102 { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
20103 break;
20104
20105 case 885:
20106#line 2819 "third_party/libpg_query/grammar/statements/select.y"
20107 { (yyval.list) = list_make2((yyvsp[(3) - (3)].node), (yyvsp[(1) - (3)].node)); ;}
20108 break;
20109
20110 case 886:
20111#line 2820 "third_party/libpg_query/grammar/statements/select.y"
20112 { (yyval.list) = NIL; ;}
20113 break;
20114
20115 case 887:
20116#line 2837 "third_party/libpg_query/grammar/statements/select.y"
20117 {
20118 (yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node));
20119 ;}
20120 break;
20121
20122 case 888:
20123#line 2841 "third_party/libpg_query/grammar/statements/select.y"
20124 {
20125 /* not legal per SQL99, but might as well allow it */
20126 (yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyvsp[(2) - (3)].node));
20127 ;}
20128 break;
20129
20130 case 889:
20131#line 2846 "third_party/libpg_query/grammar/statements/select.y"
20132 {
20133 (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node));
20134 ;}
20135 break;
20136
20137 case 890:
20138#line 2850 "third_party/libpg_query/grammar/statements/select.y"
20139 {
20140 /*
20141 * Since there are no cases where this syntax allows
20142 * a textual FOR value, we forcibly cast the argument
20143 * to int4. The possible matches in pg_proc are
20144 * substring(text,int4) and substring(text,text),
20145 * and we don't want the parser to choose the latter,
20146 * which it is likely to do if the second argument
20147 * is unknown or doesn't have an implicit cast to int4.
20148 */
20149 (yyval.list) = list_make3((yyvsp[(1) - (2)].node), makeIntConst(1, -1),
20150 makeTypeCast((yyvsp[(2) - (2)].node),
20151 SystemTypeName("int4"), -1));
20152 ;}
20153 break;
20154
20155 case 891:
20156#line 2865 "third_party/libpg_query/grammar/statements/select.y"
20157 {
20158 (yyval.list) = (yyvsp[(1) - (1)].list);
20159 ;}
20160 break;
20161
20162 case 892:
20163#line 2869 "third_party/libpg_query/grammar/statements/select.y"
20164 { (yyval.list) = NIL; ;}
20165 break;
20166
20167 case 893:
20168#line 2873 "third_party/libpg_query/grammar/statements/select.y"
20169 { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
20170 break;
20171
20172 case 894:
20173#line 2876 "third_party/libpg_query/grammar/statements/select.y"
20174 { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
20175 break;
20176
20177 case 895:
20178#line 2879 "third_party/libpg_query/grammar/statements/select.y"
20179 { (yyval.list) = lappend((yyvsp[(3) - (3)].list), (yyvsp[(1) - (3)].node)); ;}
20180 break;
20181
20182 case 896:
20183#line 2880 "third_party/libpg_query/grammar/statements/select.y"
20184 { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
20185 break;
20186
20187 case 897:
20188#line 2881 "third_party/libpg_query/grammar/statements/select.y"
20189 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
20190 break;
20191
20192 case 898:
20193#line 2885 "third_party/libpg_query/grammar/statements/select.y"
20194 {
20195 PGSubLink *n = makeNode(PGSubLink);
20196 n->subselect = (yyvsp[(1) - (1)].node);
20197 /* other fields will be filled later */
20198 (yyval.node) = (PGNode *)n;
20199 ;}
20200 break;
20201
20202 case 899:
20203#line 2891 "third_party/libpg_query/grammar/statements/select.y"
20204 { (yyval.node) = (PGNode *)(yyvsp[(2) - (3)].list); ;}
20205 break;
20206
20207 case 900:
20208#line 2902 "third_party/libpg_query/grammar/statements/select.y"
20209 {
20210 PGCaseExpr *c = makeNode(PGCaseExpr);
20211 c->casetype = InvalidOid; /* not analyzed yet */
20212 c->arg = (PGExpr *) (yyvsp[(2) - (5)].node);
20213 c->args = (yyvsp[(3) - (5)].list);
20214 c->defresult = (PGExpr *) (yyvsp[(4) - (5)].node);
20215 c->location = (yylsp[(1) - (5)]);
20216 (yyval.node) = (PGNode *)c;
20217 ;}
20218 break;
20219
20220 case 901:
20221#line 2915 "third_party/libpg_query/grammar/statements/select.y"
20222 { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
20223 break;
20224
20225 case 902:
20226#line 2916 "third_party/libpg_query/grammar/statements/select.y"
20227 { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
20228 break;
20229
20230 case 903:
20231#line 2921 "third_party/libpg_query/grammar/statements/select.y"
20232 {
20233 PGCaseWhen *w = makeNode(PGCaseWhen);
20234 w->expr = (PGExpr *) (yyvsp[(2) - (4)].node);
20235 w->result = (PGExpr *) (yyvsp[(4) - (4)].node);
20236 w->location = (yylsp[(1) - (4)]);
20237 (yyval.node) = (PGNode *)w;
20238 ;}
20239 break;
20240
20241 case 904:
20242#line 2931 "third_party/libpg_query/grammar/statements/select.y"
20243 { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
20244 break;
20245
20246 case 905:
20247#line 2932 "third_party/libpg_query/grammar/statements/select.y"
20248 { (yyval.node) = NULL; ;}
20249 break;
20250
20251 case 906:
20252#line 2935 "third_party/libpg_query/grammar/statements/select.y"
20253 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
20254 break;
20255
20256 case 907:
20257#line 2936 "third_party/libpg_query/grammar/statements/select.y"
20258 { (yyval.node) = NULL; ;}
20259 break;
20260
20261 case 908:
20262#line 2940 "third_party/libpg_query/grammar/statements/select.y"
20263 {
20264 (yyval.node) = makeColumnRef((yyvsp[(1) - (1)].str), NIL, (yylsp[(1) - (1)]), yyscanner);
20265 ;}
20266 break;
20267
20268 case 909:
20269#line 2944 "third_party/libpg_query/grammar/statements/select.y"
20270 {
20271 (yyval.node) = makeColumnRef((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)]), yyscanner);
20272 ;}
20273 break;
20274
20275 case 910:
20276#line 2951 "third_party/libpg_query/grammar/statements/select.y"
20277 {
20278 (yyval.node) = (PGNode *) makeString((yyvsp[(2) - (2)].str));
20279 ;}
20280 break;
20281
20282 case 911:
20283#line 2955 "third_party/libpg_query/grammar/statements/select.y"
20284 {
20285 (yyval.node) = (PGNode *) makeNode(PGAStar);
20286 ;}
20287 break;
20288
20289 case 912:
20290#line 2959 "third_party/libpg_query/grammar/statements/select.y"
20291 {
20292 PGAIndices *ai = makeNode(PGAIndices);
20293 ai->is_slice = false;
20294 ai->lidx = NULL;
20295 ai->uidx = (yyvsp[(2) - (3)].node);
20296 (yyval.node) = (PGNode *) ai;
20297 ;}
20298 break;
20299
20300 case 913:
20301#line 2967 "third_party/libpg_query/grammar/statements/select.y"
20302 {
20303 PGAIndices *ai = makeNode(PGAIndices);
20304 ai->is_slice = true;
20305 ai->lidx = (yyvsp[(2) - (5)].node);
20306 ai->uidx = (yyvsp[(4) - (5)].node);
20307 (yyval.node) = (PGNode *) ai;
20308 ;}
20309 break;
20310
20311 case 914:
20312#line 2977 "third_party/libpg_query/grammar/statements/select.y"
20313 { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
20314 break;
20315
20316 case 915:
20317#line 2978 "third_party/libpg_query/grammar/statements/select.y"
20318 { (yyval.node) = NULL; ;}
20319 break;
20320
20321 case 916:
20322#line 2982 "third_party/libpg_query/grammar/statements/select.y"
20323 { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
20324 break;
20325
20326 case 917:
20327#line 2983 "third_party/libpg_query/grammar/statements/select.y"
20328 { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
20329 break;
20330
20331 case 918:
20332#line 2987 "third_party/libpg_query/grammar/statements/select.y"
20333 { (yyval.list) = NIL; ;}
20334 break;
20335
20336 case 919:
20337#line 2988 "third_party/libpg_query/grammar/statements/select.y"
20338 { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
20339 break;
20340
20341 case 922:
20342#line 3002 "third_party/libpg_query/grammar/statements/select.y"
20343 { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
20344 break;
20345
20346 case 923:
20347#line 3003 "third_party/libpg_query/grammar/statements/select.y"
20348 { (yyval.list) = NIL; ;}
20349 break;
20350
20351 case 924:
20352#line 3007 "third_party/libpg_query/grammar/statements/select.y"
20353 { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;}
20354 break;
20355
20356 case 925:
20357#line 3008 "third_party/libpg_query/grammar/statements/select.y"
20358 { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;}
20359 break;
20360
20361 case 926:
20362#line 3012 "third_party/libpg_query/grammar/statements/select.y"
20363 {
20364 (yyval.target) = makeNode(PGResTarget);
20365 (yyval.target)->name = (yyvsp[(3) - (3)].str);
20366 (yyval.target)->indirection = NIL;
20367 (yyval.target)->val = (PGNode *)(yyvsp[(1) - (3)].node);
20368 (yyval.target)->location = (yylsp[(1) - (3)]);
20369 ;}
20370 break;
20371
20372 case 927:
20373#line 3028 "third_party/libpg_query/grammar/statements/select.y"
20374 {
20375 (yyval.target) = makeNode(PGResTarget);
20376 (yyval.target)->name = (yyvsp[(2) - (2)].str);
20377 (yyval.target)->indirection = NIL;
20378 (yyval.target)->val = (PGNode *)(yyvsp[(1) - (2)].node);
20379 (yyval.target)->location = (yylsp[(1) - (2)]);
20380 ;}
20381 break;
20382
20383 case 928:
20384#line 3036 "third_party/libpg_query/grammar/statements/select.y"
20385 {
20386 (yyval.target) = makeNode(PGResTarget);
20387 (yyval.target)->name = NULL;
20388 (yyval.target)->indirection = NIL;
20389 (yyval.target)->val = (PGNode *)(yyvsp[(1) - (1)].node);
20390 (yyval.target)->location = (yylsp[(1) - (1)]);
20391 ;}
20392 break;
20393
20394 case 929:
20395#line 3044 "third_party/libpg_query/grammar/statements/select.y"
20396 {
20397 PGColumnRef *n = makeNode(PGColumnRef);
20398 n->fields = list_make1(makeNode(PGAStar));
20399 n->location = (yylsp[(1) - (1)]);
20400
20401 (yyval.target) = makeNode(PGResTarget);
20402 (yyval.target)->name = NULL;
20403 (yyval.target)->indirection = NIL;
20404 (yyval.target)->val = (PGNode *)n;
20405 (yyval.target)->location = (yylsp[(1) - (1)]);
20406 ;}
20407 break;
20408
20409 case 930:
20410#line 3065 "third_party/libpg_query/grammar/statements/select.y"
20411 { (yyval.list) = list_make1((yyvsp[(1) - (1)].range)); ;}
20412 break;
20413
20414 case 931:
20415#line 3066 "third_party/libpg_query/grammar/statements/select.y"
20416 { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].range)); ;}
20417 break;
20418
20419 case 932:
20420#line 3078 "third_party/libpg_query/grammar/statements/select.y"
20421 {
20422 (yyval.range) = makeRangeVar(NULL, (yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
20423 ;}
20424 break;
20425
20426 case 933:
20427#line 3082 "third_party/libpg_query/grammar/statements/select.y"
20428 {
20429 check_qualified_name((yyvsp[(2) - (2)].list), yyscanner);
20430 (yyval.range) = makeRangeVar(NULL, NULL, (yylsp[(1) - (2)]));
20431 switch (list_length((yyvsp[(2) - (2)].list)))
20432 {
20433 case 1:
20434 (yyval.range)->catalogname = NULL;
20435 (yyval.range)->schemaname = (yyvsp[(1) - (2)].str);
20436 (yyval.range)->relname = strVal(linitial((yyvsp[(2) - (2)].list)));
20437 break;
20438 case 2:
20439 (yyval.range)->catalogname = (yyvsp[(1) - (2)].str);
20440 (yyval.range)->schemaname = strVal(linitial((yyvsp[(2) - (2)].list)));
20441 (yyval.range)->relname = strVal(lsecond((yyvsp[(2) - (2)].list)));
20442 break;
20443 default:
20444 ereport(ERROR,
20445 (errcode(PG_ERRCODE_SYNTAX_ERROR),
20446 errmsg("improper qualified name (too many dotted names): %s",
20447 NameListToString(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)))),
20448 parser_errposition((yylsp[(1) - (2)]))));
20449 break;
20450 }
20451 ;}
20452 break;
20453
20454 case 934:
20455#line 3109 "third_party/libpg_query/grammar/statements/select.y"
20456 { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
20457 break;
20458
20459 case 935:
20460#line 3111 "third_party/libpg_query/grammar/statements/select.y"
20461 { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;}
20462 break;
20463
20464 case 936:
20465#line 3115 "third_party/libpg_query/grammar/statements/select.y"
20466 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
20467 break;
20468
20469 case 937:
20470#line 3117 "third_party/libpg_query/grammar/statements/select.y"
20471 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
20472 break;
20473
20474 case 938:
20475#line 3128 "third_party/libpg_query/grammar/statements/select.y"
20476 { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
20477 break;
20478
20479 case 939:
20480#line 3130 "third_party/libpg_query/grammar/statements/select.y"
20481 {
20482 (yyval.list) = check_func_name(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)),
20483 yyscanner);
20484 ;}
20485 break;
20486
20487 case 940:
20488#line 3141 "third_party/libpg_query/grammar/statements/select.y"
20489 {
20490 (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)]));
20491 ;}
20492 break;
20493
20494 case 941:
20495#line 3145 "third_party/libpg_query/grammar/statements/select.y"
20496 {
20497 (yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
20498 ;}
20499 break;
20500
20501 case 942:
20502#line 3149 "third_party/libpg_query/grammar/statements/select.y"
20503 {
20504 (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
20505 ;}
20506 break;
20507
20508 case 943:
20509#line 3153 "third_party/libpg_query/grammar/statements/select.y"
20510 {
20511 (yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
20512 ;}
20513 break;
20514
20515 case 944:
20516#line 3157 "third_party/libpg_query/grammar/statements/select.y"
20517 {
20518 /* This is a bit constant per SQL99:
20519 * Without Feature F511, "BIT data type",
20520 * a <general literal> shall not be a
20521 * <bit string literal> or a <hex string literal>.
20522 */
20523 (yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
20524 ;}
20525 break;
20526
20527 case 945:
20528#line 3166 "third_party/libpg_query/grammar/statements/select.y"
20529 {
20530 /* generic type 'literal' syntax */
20531 PGTypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (2)].list));
20532 t->location = (yylsp[(1) - (2)]);
20533 (yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), t);
20534 ;}
20535 break;
20536
20537 case 946:
20538#line 3173 "third_party/libpg_query/grammar/statements/select.y"
20539 {
20540 /* generic syntax with a type modifier */
20541 PGTypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (6)].list));
20542 PGListCell *lc;
20543
20544 /*
20545 * We must use func_arg_list and opt_sort_clause in the
20546 * production to avoid reduce/reduce conflicts, but we
20547 * don't actually wish to allow PGNamedArgExpr in this
20548 * context, nor ORDER BY.
20549 */
20550 foreach(lc, (yyvsp[(3) - (6)].list))
20551 {
20552 PGNamedArgExpr *arg = (PGNamedArgExpr *) lfirst(lc);
20553
20554 if (IsA(arg, PGNamedArgExpr))
20555 ereport(ERROR,
20556 (errcode(PG_ERRCODE_SYNTAX_ERROR),
20557 errmsg("type modifier cannot have parameter name"),
20558 parser_errposition(arg->location)));
20559 }
20560 if ((yyvsp[(4) - (6)].list) != NIL)
20561 ereport(ERROR,
20562 (errcode(PG_ERRCODE_SYNTAX_ERROR),
20563 errmsg("type modifier cannot have ORDER BY"),
20564 parser_errposition((yylsp[(4) - (6)]))));
20565
20566 t->typmods = (yyvsp[(3) - (6)].list);
20567 t->location = (yylsp[(1) - (6)]);
20568 (yyval.node) = makeStringConstCast((yyvsp[(6) - (6)].str), (yylsp[(6) - (6)]), t);
20569 ;}
20570 break;
20571
20572 case 947:
20573#line 3205 "third_party/libpg_query/grammar/statements/select.y"
20574 {
20575 (yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), (yyvsp[(1) - (2)].typnam));
20576 ;}
20577 break;
20578
20579 case 948:
20580#line 3209 "third_party/libpg_query/grammar/statements/select.y"
20581 {
20582 PGTypeName *t = (yyvsp[(1) - (3)].typnam);
20583 t->typmods = (yyvsp[(3) - (3)].list);
20584 (yyval.node) = makeStringConstCast((yyvsp[(2) - (3)].str), (yylsp[(2) - (3)]), t);
20585 ;}
20586 break;
20587
20588 case 949:
20589#line 3215 "third_party/libpg_query/grammar/statements/select.y"
20590 {
20591 PGTypeName *t = (yyvsp[(1) - (5)].typnam);
20592 t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
20593 makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)])));
20594 (yyval.node) = makeStringConstCast((yyvsp[(5) - (5)].str), (yylsp[(5) - (5)]), t);
20595 ;}
20596 break;
20597
20598 case 950:
20599#line 3223 "third_party/libpg_query/grammar/statements/select.y"
20600 {
20601 PGTypeName *t = (yyvsp[(1) - (6)].typnam);
20602 if ((yyvsp[(6) - (6)].list) != NIL)
20603 {
20604 t->typmods = lappend((yyvsp[(6) - (6)].list), makeParamRef(0, (yylsp[(3) - (6)])));
20605 }
20606 else
20607 t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
20608 makeParamRef(0, (yylsp[(3) - (6)])));
20609 (yyval.node) = makeParamRefCast(0, (yylsp[(5) - (6)]), t);
20610 ;}
20611 break;
20612
20613 case 951:
20614#line 3235 "third_party/libpg_query/grammar/statements/select.y"
20615 {
20616 (yyval.node) = makeBoolAConst(true, (yylsp[(1) - (1)]));
20617 ;}
20618 break;
20619
20620 case 952:
20621#line 3239 "third_party/libpg_query/grammar/statements/select.y"
20622 {
20623 (yyval.node) = makeBoolAConst(false, (yylsp[(1) - (1)]));
20624 ;}
20625 break;
20626
20627 case 953:
20628#line 3243 "third_party/libpg_query/grammar/statements/select.y"
20629 {
20630 (yyval.node) = makeNullAConst((yylsp[(1) - (1)]));
20631 ;}
20632 break;
20633
20634 case 954:
20635#line 3248 "third_party/libpg_query/grammar/statements/select.y"
20636 { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;}
20637 break;
20638
20639 case 955:
20640#line 3249 "third_party/libpg_query/grammar/statements/select.y"
20641 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
20642 break;
20643
20644 case 956:
20645#line 3265 "third_party/libpg_query/grammar/statements/select.y"
20646 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
20647 break;
20648
20649 case 957:
20650#line 3266 "third_party/libpg_query/grammar/statements/select.y"
20651 { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
20652 break;
20653
20654 case 958:
20655#line 3267 "third_party/libpg_query/grammar/statements/select.y"
20656 { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
20657 break;
20658
20659 case 959:
20660#line 3272 "third_party/libpg_query/grammar/statements/select.y"
20661 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
20662 break;
20663
20664 case 960:
20665#line 3273 "third_party/libpg_query/grammar/statements/select.y"
20666 { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
20667 break;
20668
20669 case 961:
20670#line 3274 "third_party/libpg_query/grammar/statements/select.y"
20671 { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
20672 break;
20673
20674 case 962:
20675#line 3277 "third_party/libpg_query/grammar/statements/select.y"
20676 { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
20677 break;
20678
20679 case 963:
20680#line 3278 "third_party/libpg_query/grammar/statements/select.y"
20681 { (yyval.list) = lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)); ;}
20682 break;
20683
20684 case 964:
20685#line 3282 "third_party/libpg_query/grammar/statements/select.y"
20686 { (yyval.list) = list_make1(makeString((yyvsp[(2) - (2)].str))); ;}
20687 break;
20688
20689 case 965:
20690#line 3284 "third_party/libpg_query/grammar/statements/select.y"
20691 { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;}
20692 break;
20693
20694 case 966:
20695#line 3288 "third_party/libpg_query/grammar/statements/select.y"
20696 { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
20697 break;
20698
20699 case 967:
20700#line 3289 "third_party/libpg_query/grammar/statements/select.y"
20701 { (yyval.list) = NIL; ;}
20702 break;
20703
20704 case 969:
20705#line 3300 "third_party/libpg_query/grammar/statements/select.y"
20706 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
20707 break;
20708
20709 case 970:
20710#line 3301 "third_party/libpg_query/grammar/statements/select.y"
20711 { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
20712 break;
20713
20714 case 971:
20715#line 3302 "third_party/libpg_query/grammar/statements/select.y"
20716 { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
20717 break;
20718
20719 case 972:
20720#line 3303 "third_party/libpg_query/grammar/statements/select.y"
20721 { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
20722 break;
20723
20724 case 973:
20725#line 3304 "third_party/libpg_query/grammar/statements/select.y"
20726 { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
20727 break;
20728
20729 case 974:
20730#line 8 "third_party/libpg_query/grammar/statements/prepare.y"
20731 {
20732 PGPrepareStmt *n = makeNode(PGPrepareStmt);
20733 n->name = (yyvsp[(2) - (5)].str);
20734 n->argtypes = (yyvsp[(3) - (5)].list);
20735 n->query = (yyvsp[(5) - (5)].node);
20736 (yyval.node) = (PGNode *) n;
20737 ;}
20738 break;
20739
20740 case 975:
20741#line 18 "third_party/libpg_query/grammar/statements/prepare.y"
20742 { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
20743 break;
20744
20745 case 976:
20746#line 19 "third_party/libpg_query/grammar/statements/prepare.y"
20747 { (yyval.list) = NIL; ;}
20748 break;
20749
20750 case 981:
20751#line 8 "third_party/libpg_query/grammar/statements/create_schema.y"
20752 {
20753 PGCreateSchemaStmt *n = makeNode(PGCreateSchemaStmt);
20754 /* ...but not both */
20755 n->schemaname = (yyvsp[(3) - (4)].str);
20756 n->schemaElts = (yyvsp[(4) - (4)].list);
20757 n->if_not_exists = false;
20758 (yyval.node) = (PGNode *)n;
20759 ;}
20760 break;
20761
20762 case 982:
20763#line 17 "third_party/libpg_query/grammar/statements/create_schema.y"
20764 {
20765 PGCreateSchemaStmt *n = makeNode(PGCreateSchemaStmt);
20766 /* ...but not here */
20767 n->schemaname = (yyvsp[(6) - (7)].str);
20768 if ((yyvsp[(7) - (7)].list) != NIL)
20769 ereport(ERROR,
20770 (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
20771 errmsg("CREATE SCHEMA IF NOT EXISTS cannot include schema elements"),
20772 parser_errposition((yylsp[(7) - (7)]))));
20773 n->schemaElts = (yyvsp[(7) - (7)].list);
20774 n->if_not_exists = true;
20775 (yyval.node) = (PGNode *)n;
20776 ;}
20777 break;
20778
20779 case 983:
20780#line 35 "third_party/libpg_query/grammar/statements/create_schema.y"
20781 {
20782 if ((yyloc) < 0) /* see comments for YYLLOC_DEFAULT */
20783 (yyloc) = (yylsp[(2) - (2)]);
20784 (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node));
20785 ;}
20786 break;
20787
20788 case 984:
20789#line 41 "third_party/libpg_query/grammar/statements/create_schema.y"
20790 { (yyval.list) = NIL; ;}
20791 break;
20792
20793 case 989:
20794#line 11 "third_party/libpg_query/grammar/statements/index.y"
20795 {
20796 PGIndexStmt *n = makeNode(PGIndexStmt);
20797 n->unique = (yyvsp[(2) - (13)].boolean);
20798 n->concurrent = (yyvsp[(4) - (13)].boolean);
20799 n->idxname = (yyvsp[(5) - (13)].str);
20800 n->relation = (yyvsp[(7) - (13)].range);
20801 n->accessMethod = (yyvsp[(8) - (13)].str);
20802 n->indexParams = (yyvsp[(10) - (13)].list);
20803 n->options = (yyvsp[(12) - (13)].list);
20804 n->whereClause = (yyvsp[(13) - (13)].node);
20805 n->excludeOpNames = NIL;
20806 n->idxcomment = NULL;
20807 n->indexOid = InvalidOid;
20808 n->oldNode = InvalidOid;
20809 n->primary = false;
20810 n->isconstraint = false;
20811 n->deferrable = false;
20812 n->initdeferred = false;
20813 n->transformed = false;
20814 n->if_not_exists = false;
20815 (yyval.node) = (PGNode *)n;
20816 ;}
20817 break;
20818
20819 case 990:
20820#line 36 "third_party/libpg_query/grammar/statements/index.y"
20821 {
20822 PGIndexStmt *n = makeNode(PGIndexStmt);
20823 n->unique = (yyvsp[(2) - (16)].boolean);
20824 n->concurrent = (yyvsp[(4) - (16)].boolean);
20825 n->idxname = (yyvsp[(8) - (16)].str);
20826 n->relation = (yyvsp[(10) - (16)].range);
20827 n->accessMethod = (yyvsp[(11) - (16)].str);
20828 n->indexParams = (yyvsp[(13) - (16)].list);
20829 n->options = (yyvsp[(15) - (16)].list);
20830 n->whereClause = (yyvsp[(16) - (16)].node);
20831 n->excludeOpNames = NIL;
20832 n->idxcomment = NULL;
20833 n->indexOid = InvalidOid;
20834 n->oldNode = InvalidOid;
20835 n->primary = false;
20836 n->isconstraint = false;
20837 n->deferrable = false;
20838 n->initdeferred = false;
20839 n->transformed = false;
20840 n->if_not_exists = true;
20841 (yyval.node) = (PGNode *)n;
20842 ;}
20843 break;
20844
20845 case 991:
20846#line 62 "third_party/libpg_query/grammar/statements/index.y"
20847 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
20848 break;
20849
20850 case 992:
20851#line 66 "third_party/libpg_query/grammar/statements/index.y"
20852 { (yyval.str) = (yyvsp[(2) - (2)].str); ;}
20853 break;
20854
20855 case 993:
20856#line 67 "third_party/libpg_query/grammar/statements/index.y"
20857 { (yyval.str) = (char*) DEFAULT_INDEX_TYPE; ;}
20858 break;
20859
20860 case 994:
20861#line 72 "third_party/libpg_query/grammar/statements/index.y"
20862 { (yyval.boolean) = true; ;}
20863 break;
20864
20865 case 995:
20866#line 73 "third_party/libpg_query/grammar/statements/index.y"
20867 { (yyval.boolean) = false; ;}
20868 break;
20869
20870 case 996:
20871#line 78 "third_party/libpg_query/grammar/statements/index.y"
20872 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
20873 break;
20874
20875 case 997:
20876#line 79 "third_party/libpg_query/grammar/statements/index.y"
20877 { (yyval.str) = NULL; ;}
20878 break;
20879
20880 case 998:
20881#line 83 "third_party/libpg_query/grammar/statements/index.y"
20882 { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
20883 break;
20884
20885 case 999:
20886#line 84 "third_party/libpg_query/grammar/statements/index.y"
20887 { (yyval.list) = NIL; ;}
20888 break;
20889
20890 case 1000:
20891#line 89 "third_party/libpg_query/grammar/statements/index.y"
20892 { (yyval.boolean) = true; ;}
20893 break;
20894
20895 case 1001:
20896#line 90 "third_party/libpg_query/grammar/statements/index.y"
20897 { (yyval.boolean) = false; ;}
20898 break;
20899
20900 case 1002:
20901#line 8 "third_party/libpg_query/grammar/statements/alter_schema.y"
20902 {
20903 PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt);
20904 n->objectType = PG_OBJECT_TABLE;
20905 n->relation = (yyvsp[(3) - (6)].range);
20906 n->newschema = (yyvsp[(6) - (6)].str);
20907 n->missing_ok = false;
20908 (yyval.node) = (PGNode *)n;
20909 ;}
20910 break;
20911
20912 case 1003:
20913#line 17 "third_party/libpg_query/grammar/statements/alter_schema.y"
20914 {
20915 PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt);
20916 n->objectType = PG_OBJECT_TABLE;
20917 n->relation = (yyvsp[(5) - (8)].range);
20918 n->newschema = (yyvsp[(8) - (8)].str);
20919 n->missing_ok = true;
20920 (yyval.node) = (PGNode *)n;
20921 ;}
20922 break;
20923
20924 case 1004:
20925#line 26 "third_party/libpg_query/grammar/statements/alter_schema.y"
20926 {
20927 PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt);
20928 n->objectType = PG_OBJECT_SEQUENCE;
20929 n->relation = (yyvsp[(3) - (6)].range);
20930 n->newschema = (yyvsp[(6) - (6)].str);
20931 n->missing_ok = false;
20932 (yyval.node) = (PGNode *)n;
20933 ;}
20934 break;
20935
20936 case 1005:
20937#line 35 "third_party/libpg_query/grammar/statements/alter_schema.y"
20938 {
20939 PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt);
20940 n->objectType = PG_OBJECT_SEQUENCE;
20941 n->relation = (yyvsp[(5) - (8)].range);
20942 n->newschema = (yyvsp[(8) - (8)].str);
20943 n->missing_ok = true;
20944 (yyval.node) = (PGNode *)n;
20945 ;}
20946 break;
20947
20948 case 1006:
20949#line 44 "third_party/libpg_query/grammar/statements/alter_schema.y"
20950 {
20951 PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt);
20952 n->objectType = PG_OBJECT_VIEW;
20953 n->relation = (yyvsp[(3) - (6)].range);
20954 n->newschema = (yyvsp[(6) - (6)].str);
20955 n->missing_ok = false;
20956 (yyval.node) = (PGNode *)n;
20957 ;}
20958 break;
20959
20960 case 1007:
20961#line 53 "third_party/libpg_query/grammar/statements/alter_schema.y"
20962 {
20963 PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt);
20964 n->objectType = PG_OBJECT_VIEW;
20965 n->relation = (yyvsp[(5) - (8)].range);
20966 n->newschema = (yyvsp[(8) - (8)].str);
20967 n->missing_ok = true;
20968 (yyval.node) = (PGNode *)n;
20969 ;}
20970 break;
20971
20972 case 1008:
20973#line 6 "third_party/libpg_query/grammar/statements/checkpoint.y"
20974 {
20975 PGCheckPointStmt *n = makeNode(PGCheckPointStmt);
20976 (yyval.node) = (PGNode *)n;
20977 ;}
20978 break;
20979
20980 case 1009:
20981#line 10 "third_party/libpg_query/grammar/statements/explain.y"
20982 {
20983 PGExplainStmt *n = makeNode(PGExplainStmt);
20984 n->query = (yyvsp[(2) - (2)].node);
20985 n->options = NIL;
20986 (yyval.node) = (PGNode *) n;
20987 ;}
20988 break;
20989
20990 case 1010:
20991#line 17 "third_party/libpg_query/grammar/statements/explain.y"
20992 {
20993 PGExplainStmt *n = makeNode(PGExplainStmt);
20994 n->query = (yyvsp[(4) - (4)].node);
20995 n->options = list_make1(makeDefElem("analyze", NULL, (yylsp[(2) - (4)])));
20996 if ((yyvsp[(3) - (4)].boolean))
20997 n->options = lappend(n->options,
20998 makeDefElem("verbose", NULL, (yylsp[(3) - (4)])));
20999 (yyval.node) = (PGNode *) n;
21000 ;}
21001 break;
21002
21003 case 1011:
21004#line 27 "third_party/libpg_query/grammar/statements/explain.y"
21005 {
21006 PGExplainStmt *n = makeNode(PGExplainStmt);
21007 n->query = (yyvsp[(3) - (3)].node);
21008 n->options = list_make1(makeDefElem("verbose", NULL, (yylsp[(2) - (3)])));
21009 (yyval.node) = (PGNode *) n;
21010 ;}
21011 break;
21012
21013 case 1012:
21014#line 34 "third_party/libpg_query/grammar/statements/explain.y"
21015 {
21016 PGExplainStmt *n = makeNode(PGExplainStmt);
21017 n->query = (yyvsp[(5) - (5)].node);
21018 n->options = (yyvsp[(3) - (5)].list);
21019 (yyval.node) = (PGNode *) n;
21020 ;}
21021 break;
21022
21023 case 1013:
21024#line 44 "third_party/libpg_query/grammar/statements/explain.y"
21025 { (yyval.boolean) = true; ;}
21026 break;
21027
21028 case 1014:
21029#line 45 "third_party/libpg_query/grammar/statements/explain.y"
21030 { (yyval.boolean) = false; ;}
21031 break;
21032
21033 case 1015:
21034#line 50 "third_party/libpg_query/grammar/statements/explain.y"
21035 { (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); ;}
21036 break;
21037
21038 case 1016:
21039#line 51 "third_party/libpg_query/grammar/statements/explain.y"
21040 { (yyval.node) = (PGNode *) (yyvsp[(1) - (1)].value); ;}
21041 break;
21042
21043 case 1017:
21044#line 52 "third_party/libpg_query/grammar/statements/explain.y"
21045 { (yyval.node) = NULL; ;}
21046 break;
21047
21048 case 1023:
21049#line 65 "third_party/libpg_query/grammar/statements/explain.y"
21050 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
21051 break;
21052
21053 case 1024:
21054#line 66 "third_party/libpg_query/grammar/statements/explain.y"
21055 { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
21056 break;
21057
21058 case 1025:
21059#line 67 "third_party/libpg_query/grammar/statements/explain.y"
21060 { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
21061 break;
21062
21063 case 1026:
21064#line 68 "third_party/libpg_query/grammar/statements/explain.y"
21065 { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
21066 break;
21067
21068 case 1027:
21069#line 73 "third_party/libpg_query/grammar/statements/explain.y"
21070 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
21071 break;
21072
21073 case 1028:
21074#line 74 "third_party/libpg_query/grammar/statements/explain.y"
21075 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
21076 break;
21077
21078 case 1029:
21079#line 80 "third_party/libpg_query/grammar/statements/explain.y"
21080 {
21081 (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt));
21082 ;}
21083 break;
21084
21085 case 1030:
21086#line 84 "third_party/libpg_query/grammar/statements/explain.y"
21087 {
21088 (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt));
21089 ;}
21090 break;
21091
21092 case 1031:
21093#line 91 "third_party/libpg_query/grammar/statements/explain.y"
21094 {;}
21095 break;
21096
21097 case 1032:
21098#line 92 "third_party/libpg_query/grammar/statements/explain.y"
21099 {;}
21100 break;
21101
21102 case 1033:
21103#line 97 "third_party/libpg_query/grammar/statements/explain.y"
21104 { (yyval.str) = (char*) "true"; ;}
21105 break;
21106
21107 case 1034:
21108#line 98 "third_party/libpg_query/grammar/statements/explain.y"
21109 { (yyval.str) = (char*) "false"; ;}
21110 break;
21111
21112 case 1035:
21113#line 99 "third_party/libpg_query/grammar/statements/explain.y"
21114 { (yyval.str) = (char*) "on"; ;}
21115 break;
21116
21117 case 1036:
21118#line 105 "third_party/libpg_query/grammar/statements/explain.y"
21119 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
21120 break;
21121
21122 case 1037:
21123#line 111 "third_party/libpg_query/grammar/statements/explain.y"
21124 {
21125 (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)]));
21126 ;}
21127 break;
21128
21129 case 1038:
21130#line 118 "third_party/libpg_query/grammar/statements/explain.y"
21131 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
21132 break;
21133
21134 case 1039:
21135#line 119 "third_party/libpg_query/grammar/statements/explain.y"
21136 { (yyval.str) = (char*) "analyze"; ;}
21137 break;
21138
21139 case 1040:
21140#line 11 "third_party/libpg_query/grammar/statements/variable_set.y"
21141 {
21142 PGVariableSetStmt *n = (yyvsp[(2) - (2)].vsetstmt);
21143 n->is_local = false;
21144 (yyval.node) = (PGNode *) n;
21145 ;}
21146 break;
21147
21148 case 1041:
21149#line 17 "third_party/libpg_query/grammar/statements/variable_set.y"
21150 {
21151 PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt);
21152 n->is_local = true;
21153 (yyval.node) = (PGNode *) n;
21154 ;}
21155 break;
21156
21157 case 1042:
21158#line 23 "third_party/libpg_query/grammar/statements/variable_set.y"
21159 {
21160 PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt);
21161 n->is_local = false;
21162 (yyval.node) = (PGNode *) n;
21163 ;}
21164 break;
21165
21166 case 1043:
21167#line 32 "third_party/libpg_query/grammar/statements/variable_set.y"
21168 {(yyval.vsetstmt) = (yyvsp[(1) - (1)].vsetstmt);;}
21169 break;
21170
21171 case 1044:
21172#line 34 "third_party/libpg_query/grammar/statements/variable_set.y"
21173 {
21174 PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
21175 n->kind = VAR_SET_CURRENT;
21176 n->name = (yyvsp[(1) - (3)].str);
21177 (yyval.vsetstmt) = n;
21178 ;}
21179 break;
21180
21181 case 1045:
21182#line 42 "third_party/libpg_query/grammar/statements/variable_set.y"
21183 {
21184 PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
21185 n->kind = VAR_SET_VALUE;
21186 n->name = (char*) "timezone";
21187 if ((yyvsp[(3) - (3)].node) != NULL)
21188 n->args = list_make1((yyvsp[(3) - (3)].node));
21189 else
21190 n->kind = VAR_SET_DEFAULT;
21191 (yyval.vsetstmt) = n;
21192 ;}
21193 break;
21194
21195 case 1046:
21196#line 53 "third_party/libpg_query/grammar/statements/variable_set.y"
21197 {
21198 PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
21199 n->kind = VAR_SET_VALUE;
21200 n->name = (char*) "search_path";
21201 n->args = list_make1(makeStringConst((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)])));
21202 (yyval.vsetstmt) = n;
21203 ;}
21204 break;
21205
21206 case 1047:
21207#line 65 "third_party/libpg_query/grammar/statements/variable_set.y"
21208 {
21209 PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
21210 n->kind = VAR_SET_VALUE;
21211 n->name = (yyvsp[(1) - (3)].str);
21212 n->args = (yyvsp[(3) - (3)].list);
21213 (yyval.vsetstmt) = n;
21214 ;}
21215 break;
21216
21217 case 1048:
21218#line 73 "third_party/libpg_query/grammar/statements/variable_set.y"
21219 {
21220 PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
21221 n->kind = VAR_SET_VALUE;
21222 n->name = (yyvsp[(1) - (3)].str);
21223 n->args = (yyvsp[(3) - (3)].list);
21224 (yyval.vsetstmt) = n;
21225 ;}
21226 break;
21227
21228 case 1049:
21229#line 81 "third_party/libpg_query/grammar/statements/variable_set.y"
21230 {
21231 PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
21232 n->kind = VAR_SET_DEFAULT;
21233 n->name = (yyvsp[(1) - (3)].str);
21234 (yyval.vsetstmt) = n;
21235 ;}
21236 break;
21237
21238 case 1050:
21239#line 88 "third_party/libpg_query/grammar/statements/variable_set.y"
21240 {
21241 PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
21242 n->kind = VAR_SET_DEFAULT;
21243 n->name = (yyvsp[(1) - (3)].str);
21244 (yyval.vsetstmt) = n;
21245 ;}
21246 break;
21247
21248 case 1051:
21249#line 98 "third_party/libpg_query/grammar/statements/variable_set.y"
21250 { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;}
21251 break;
21252
21253 case 1052:
21254#line 100 "third_party/libpg_query/grammar/statements/variable_set.y"
21255 { (yyval.node) = makeAConst((yyvsp[(1) - (1)].value), (yylsp[(1) - (1)])); ;}
21256 break;
21257
21258 case 1053:
21259#line 106 "third_party/libpg_query/grammar/statements/variable_set.y"
21260 {
21261 (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
21262 ;}
21263 break;
21264
21265 case 1054:
21266#line 110 "third_party/libpg_query/grammar/statements/variable_set.y"
21267 {
21268 (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
21269 ;}
21270 break;
21271
21272 case 1055:
21273#line 114 "third_party/libpg_query/grammar/statements/variable_set.y"
21274 {
21275 PGTypeName *t = (yyvsp[(1) - (3)].typnam);
21276 if ((yyvsp[(3) - (3)].list) != NIL)
21277 {
21278 PGAConst *n = (PGAConst *) linitial((yyvsp[(3) - (3)].list));
21279 if ((n->val.val.ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0)
21280 ereport(ERROR,
21281 (errcode(PG_ERRCODE_SYNTAX_ERROR),
21282 errmsg("time zone interval must be HOUR or HOUR TO MINUTE"),
21283 parser_errposition((yylsp[(3) - (3)]))));
21284 }
21285 t->typmods = (yyvsp[(3) - (3)].list);
21286 (yyval.node) = makeStringConstCast((yyvsp[(2) - (3)].str), (yylsp[(2) - (3)]), t);
21287 ;}
21288 break;
21289
21290 case 1056:
21291#line 129 "third_party/libpg_query/grammar/statements/variable_set.y"
21292 {
21293 PGTypeName *t = (yyvsp[(1) - (5)].typnam);
21294 t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
21295 makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)])));
21296 (yyval.node) = makeStringConstCast((yyvsp[(5) - (5)].str), (yylsp[(5) - (5)]), t);
21297 ;}
21298 break;
21299
21300 case 1057:
21301#line 135 "third_party/libpg_query/grammar/statements/variable_set.y"
21302 { (yyval.node) = makeAConst((yyvsp[(1) - (1)].value), (yylsp[(1) - (1)])); ;}
21303 break;
21304
21305 case 1058:
21306#line 136 "third_party/libpg_query/grammar/statements/variable_set.y"
21307 { (yyval.node) = NULL; ;}
21308 break;
21309
21310 case 1059:
21311#line 137 "third_party/libpg_query/grammar/statements/variable_set.y"
21312 { (yyval.node) = NULL; ;}
21313 break;
21314
21315 case 1060:
21316#line 141 "third_party/libpg_query/grammar/statements/variable_set.y"
21317 { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
21318 break;
21319
21320 case 1061:
21321#line 142 "third_party/libpg_query/grammar/statements/variable_set.y"
21322 { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
21323 break;
21324
21325 case 1062:
21326#line 8 "third_party/libpg_query/grammar/statements/load.y"
21327 {
21328 PGLoadStmt *n = makeNode(PGLoadStmt);
21329 n->filename = (yyvsp[(2) - (2)].str);
21330 (yyval.node) = (PGNode *)n;
21331 ;}
21332 break;
21333
21334 case 1063:
21335#line 16 "third_party/libpg_query/grammar/statements/load.y"
21336 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
21337 break;
21338
21339 case 1064:
21340#line 9 "third_party/libpg_query/grammar/statements/vacuum.y"
21341 {
21342 PGVacuumStmt *n = makeNode(PGVacuumStmt);
21343 n->options = PG_VACOPT_VACUUM;
21344 if ((yyvsp[(2) - (4)].boolean))
21345 n->options |= PG_VACOPT_FULL;
21346 if ((yyvsp[(3) - (4)].boolean))
21347 n->options |= PG_VACOPT_FREEZE;
21348 if ((yyvsp[(4) - (4)].boolean))
21349 n->options |= PG_VACOPT_VERBOSE;
21350 n->relation = NULL;
21351 n->va_cols = NIL;
21352 (yyval.node) = (PGNode *)n;
21353 ;}
21354 break;
21355
21356 case 1065:
21357#line 23 "third_party/libpg_query/grammar/statements/vacuum.y"
21358 {
21359 PGVacuumStmt *n = makeNode(PGVacuumStmt);
21360 n->options = PG_VACOPT_VACUUM;
21361 if ((yyvsp[(2) - (5)].boolean))
21362 n->options |= PG_VACOPT_FULL;
21363 if ((yyvsp[(3) - (5)].boolean))
21364 n->options |= PG_VACOPT_FREEZE;
21365 if ((yyvsp[(4) - (5)].boolean))
21366 n->options |= PG_VACOPT_VERBOSE;
21367 n->relation = (yyvsp[(5) - (5)].range);
21368 n->va_cols = NIL;
21369 (yyval.node) = (PGNode *)n;
21370 ;}
21371 break;
21372
21373 case 1066:
21374#line 37 "third_party/libpg_query/grammar/statements/vacuum.y"
21375 {
21376 PGVacuumStmt *n = (PGVacuumStmt *) (yyvsp[(5) - (5)].node);
21377 n->options |= PG_VACOPT_VACUUM;
21378 if ((yyvsp[(2) - (5)].boolean))
21379 n->options |= PG_VACOPT_FULL;
21380 if ((yyvsp[(3) - (5)].boolean))
21381 n->options |= PG_VACOPT_FREEZE;
21382 if ((yyvsp[(4) - (5)].boolean))
21383 n->options |= PG_VACOPT_VERBOSE;
21384 (yyval.node) = (PGNode *)n;
21385 ;}
21386 break;
21387
21388 case 1067:
21389#line 49 "third_party/libpg_query/grammar/statements/vacuum.y"
21390 {
21391 PGVacuumStmt *n = makeNode(PGVacuumStmt);
21392 n->options = PG_VACOPT_VACUUM | (yyvsp[(3) - (4)].ival);
21393 n->relation = NULL;
21394 n->va_cols = NIL;
21395 (yyval.node) = (PGNode *) n;
21396 ;}
21397 break;
21398
21399 case 1068:
21400#line 57 "third_party/libpg_query/grammar/statements/vacuum.y"
21401 {
21402 PGVacuumStmt *n = makeNode(PGVacuumStmt);
21403 n->options = PG_VACOPT_VACUUM | (yyvsp[(3) - (6)].ival);
21404 n->relation = (yyvsp[(5) - (6)].range);
21405 n->va_cols = (yyvsp[(6) - (6)].list);
21406 if (n->va_cols != NIL) /* implies analyze */
21407 n->options |= PG_VACOPT_ANALYZE;
21408 (yyval.node) = (PGNode *) n;
21409 ;}
21410 break;
21411
21412 case 1069:
21413#line 70 "third_party/libpg_query/grammar/statements/vacuum.y"
21414 { (yyval.ival) = PG_VACOPT_ANALYZE; ;}
21415 break;
21416
21417 case 1070:
21418#line 71 "third_party/libpg_query/grammar/statements/vacuum.y"
21419 { (yyval.ival) = PG_VACOPT_VERBOSE; ;}
21420 break;
21421
21422 case 1071:
21423#line 72 "third_party/libpg_query/grammar/statements/vacuum.y"
21424 { (yyval.ival) = PG_VACOPT_FREEZE; ;}
21425 break;
21426
21427 case 1072:
21428#line 73 "third_party/libpg_query/grammar/statements/vacuum.y"
21429 { (yyval.ival) = PG_VACOPT_FULL; ;}
21430 break;
21431
21432 case 1073:
21433#line 75 "third_party/libpg_query/grammar/statements/vacuum.y"
21434 {
21435 if (strcmp((yyvsp[(1) - (1)].str), "disable_page_skipping") == 0)
21436 (yyval.ival) = PG_VACOPT_DISABLE_PAGE_SKIPPING;
21437 else
21438 ereport(ERROR,
21439 (errcode(PG_ERRCODE_SYNTAX_ERROR),
21440 errmsg("unrecognized VACUUM option \"%s\"", (yyvsp[(1) - (1)].str)),
21441 parser_errposition((yylsp[(1) - (1)]))));
21442 ;}
21443 break;
21444
21445 case 1074:
21446#line 87 "third_party/libpg_query/grammar/statements/vacuum.y"
21447 { (yyval.boolean) = true; ;}
21448 break;
21449
21450 case 1075:
21451#line 88 "third_party/libpg_query/grammar/statements/vacuum.y"
21452 { (yyval.boolean) = false; ;}
21453 break;
21454
21455 case 1076:
21456#line 93 "third_party/libpg_query/grammar/statements/vacuum.y"
21457 { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;}
21458 break;
21459
21460 case 1077:
21461#line 94 "third_party/libpg_query/grammar/statements/vacuum.y"
21462 { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); ;}
21463 break;
21464
21465 case 1078:
21466#line 98 "third_party/libpg_query/grammar/statements/vacuum.y"
21467 { (yyval.boolean) = true; ;}
21468 break;
21469
21470 case 1079:
21471#line 99 "third_party/libpg_query/grammar/statements/vacuum.y"
21472 { (yyval.boolean) = false; ;}
21473 break;
21474
21475 case 1080:
21476#line 9 "third_party/libpg_query/grammar/statements/delete.y"
21477 {
21478 PGDeleteStmt *n = makeNode(PGDeleteStmt);
21479 n->relation = (yyvsp[(4) - (7)].range);
21480 n->usingClause = (yyvsp[(5) - (7)].list);
21481 n->whereClause = (yyvsp[(6) - (7)].node);
21482 n->returningList = (yyvsp[(7) - (7)].list);
21483 n->withClause = (yyvsp[(1) - (7)].with);
21484 (yyval.node) = (PGNode *)n;
21485 ;}
21486 break;
21487
21488 case 1081:
21489#line 22 "third_party/libpg_query/grammar/statements/delete.y"
21490 {
21491 (yyval.range) = (yyvsp[(1) - (1)].range);
21492 ;}
21493 break;
21494
21495 case 1082:
21496#line 26 "third_party/libpg_query/grammar/statements/delete.y"
21497 {
21498 PGAlias *alias = makeNode(PGAlias);
21499 alias->aliasname = (yyvsp[(2) - (2)].str);
21500 (yyvsp[(1) - (2)].range)->alias = alias;
21501 (yyval.range) = (yyvsp[(1) - (2)].range);
21502 ;}
21503 break;
21504
21505 case 1083:
21506#line 33 "third_party/libpg_query/grammar/statements/delete.y"
21507 {
21508 PGAlias *alias = makeNode(PGAlias);
21509 alias->aliasname = (yyvsp[(3) - (3)].str);
21510 (yyvsp[(1) - (3)].range)->alias = alias;
21511 (yyval.range) = (yyvsp[(1) - (3)].range);
21512 ;}
21513 break;
21514
21515 case 1084:
21516#line 43 "third_party/libpg_query/grammar/statements/delete.y"
21517 { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
21518 break;
21519
21520 case 1085:
21521#line 44 "third_party/libpg_query/grammar/statements/delete.y"
21522 { (yyval.node) = NULL; ;}
21523 break;
21524
21525 case 1086:
21526#line 50 "third_party/libpg_query/grammar/statements/delete.y"
21527 { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
21528 break;
21529
21530 case 1087:
21531#line 51 "third_party/libpg_query/grammar/statements/delete.y"
21532 { (yyval.list) = NIL; ;}
21533 break;
21534
21535 case 1088:
21536#line 10 "third_party/libpg_query/grammar/statements/analyze.y"
21537 {
21538 PGVacuumStmt *n = makeNode(PGVacuumStmt);
21539 n->options = PG_VACOPT_ANALYZE;
21540 if ((yyvsp[(2) - (2)].boolean))
21541 n->options |= PG_VACOPT_VERBOSE;
21542 n->relation = NULL;
21543 n->va_cols = NIL;
21544 (yyval.node) = (PGNode *)n;
21545 ;}
21546 break;
21547
21548 case 1089:
21549#line 20 "third_party/libpg_query/grammar/statements/analyze.y"
21550 {
21551 PGVacuumStmt *n = makeNode(PGVacuumStmt);
21552 n->options = PG_VACOPT_ANALYZE;
21553 if ((yyvsp[(2) - (4)].boolean))
21554 n->options |= PG_VACOPT_VERBOSE;
21555 n->relation = (yyvsp[(3) - (4)].range);
21556 n->va_cols = (yyvsp[(4) - (4)].list);
21557 (yyval.node) = (PGNode *)n;
21558 ;}
21559 break;
21560
21561 case 1090:
21562#line 2 "third_party/libpg_query/grammar/statements/variable_reset.y"
21563 { (yyval.node) = (PGNode *) (yyvsp[(2) - (2)].vsetstmt); ;}
21564 break;
21565
21566 case 1091:
21567#line 8 "third_party/libpg_query/grammar/statements/variable_reset.y"
21568 {
21569 PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
21570 n->kind = VAR_RESET;
21571 n->name = (yyvsp[(1) - (1)].str);
21572 (yyval.vsetstmt) = n;
21573 ;}
21574 break;
21575
21576 case 1092:
21577#line 15 "third_party/libpg_query/grammar/statements/variable_reset.y"
21578 {
21579 PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
21580 n->kind = VAR_RESET_ALL;
21581 (yyval.vsetstmt) = n;
21582 ;}
21583 break;
21584
21585 case 1093:
21586#line 24 "third_party/libpg_query/grammar/statements/variable_reset.y"
21587 { (yyval.vsetstmt) = (yyvsp[(1) - (1)].vsetstmt); ;}
21588 break;
21589
21590 case 1094:
21591#line 26 "third_party/libpg_query/grammar/statements/variable_reset.y"
21592 {
21593 PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
21594 n->kind = VAR_RESET;
21595 n->name = (char*) "timezone";
21596 (yyval.vsetstmt) = n;
21597 ;}
21598 break;
21599
21600 case 1095:
21601#line 33 "third_party/libpg_query/grammar/statements/variable_reset.y"
21602 {
21603 PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
21604 n->kind = VAR_RESET;
21605 n->name = (char*) "transaction_isolation";
21606 (yyval.vsetstmt) = n;
21607 ;}
21608 break;
21609
21610 case 1096:
21611#line 4 "third_party/libpg_query/grammar/statements/variable_show.y"
21612 {
21613 PGVariableShowStmt *n = makeNode(PGVariableShowStmt);
21614 n->name = (yyvsp[(2) - (2)].str);
21615 (yyval.node) = (PGNode *) n;
21616 ;}
21617 break;
21618
21619 case 1097:
21620#line 10 "third_party/libpg_query/grammar/statements/variable_show.y"
21621 {
21622 PGVariableShowStmt *n = makeNode(PGVariableShowStmt);
21623 n->name = (char*) "timezone";
21624 (yyval.node) = (PGNode *) n;
21625 ;}
21626 break;
21627
21628 case 1098:
21629#line 16 "third_party/libpg_query/grammar/statements/variable_show.y"
21630 {
21631 PGVariableShowStmt *n = makeNode(PGVariableShowStmt);
21632 n->name = (char*) "transaction_isolation";
21633 (yyval.node) = (PGNode *) n;
21634 ;}
21635 break;
21636
21637 case 1099:
21638#line 22 "third_party/libpg_query/grammar/statements/variable_show.y"
21639 {
21640 PGVariableShowStmt *n = makeNode(PGVariableShowStmt);
21641 n->name = (char*) "all";
21642 (yyval.node) = (PGNode *) n;
21643 ;}
21644 break;
21645
21646 case 1102:
21647#line 31 "third_party/libpg_query/grammar/statements/variable_show.y"
21648 { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
21649 break;
21650
21651 case 1103:
21652#line 33 "third_party/libpg_query/grammar/statements/variable_show.y"
21653 { (yyval.str) = psprintf("%s.%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)); ;}
21654 break;
21655
21656 case 1104:
21657#line 10 "third_party/libpg_query/grammar/statements/view.y"
21658 {
21659 PGViewStmt *n = makeNode(PGViewStmt);
21660 n->view = (yyvsp[(4) - (9)].range);
21661 n->view->relpersistence = (yyvsp[(2) - (9)].ival);
21662 n->aliases = (yyvsp[(5) - (9)].list);
21663 n->query = (yyvsp[(8) - (9)].node);
21664 n->replace = false;
21665 n->options = (yyvsp[(6) - (9)].list);
21666 n->withCheckOption = (yyvsp[(9) - (9)].viewcheckoption);
21667 (yyval.node) = (PGNode *) n;
21668 ;}
21669 break;
21670
21671 case 1105:
21672#line 23 "third_party/libpg_query/grammar/statements/view.y"
21673 {
21674 PGViewStmt *n = makeNode(PGViewStmt);
21675 n->view = (yyvsp[(6) - (11)].range);
21676 n->view->relpersistence = (yyvsp[(4) - (11)].ival);
21677 n->aliases = (yyvsp[(7) - (11)].list);
21678 n->query = (yyvsp[(10) - (11)].node);
21679 n->replace = true;
21680 n->options = (yyvsp[(8) - (11)].list);
21681 n->withCheckOption = (yyvsp[(11) - (11)].viewcheckoption);
21682 (yyval.node) = (PGNode *) n;
21683 ;}
21684 break;
21685
21686 case 1106:
21687#line 36 "third_party/libpg_query/grammar/statements/view.y"
21688 {
21689 PGViewStmt *n = makeNode(PGViewStmt);
21690 n->view = (yyvsp[(5) - (12)].range);
21691 n->view->relpersistence = (yyvsp[(2) - (12)].ival);
21692 n->aliases = (yyvsp[(7) - (12)].list);
21693 n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[(11) - (12)].node));
21694 n->replace = false;
21695 n->options = (yyvsp[(9) - (12)].list);
21696 n->withCheckOption = (yyvsp[(12) - (12)].viewcheckoption);
21697 if (n->withCheckOption != PG_NO_CHECK_OPTION)
21698 ereport(ERROR,
21699 (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
21700 errmsg("WITH CHECK OPTION not supported on recursive views"),
21701 parser_errposition((yylsp[(12) - (12)]))));
21702 (yyval.node) = (PGNode *) n;
21703 ;}
21704 break;
21705
21706 case 1107:
21707#line 54 "third_party/libpg_query/grammar/statements/view.y"
21708 {
21709 PGViewStmt *n = makeNode(PGViewStmt);
21710 n->view = (yyvsp[(7) - (14)].range);
21711 n->view->relpersistence = (yyvsp[(4) - (14)].ival);
21712 n->aliases = (yyvsp[(9) - (14)].list);
21713 n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[(13) - (14)].node));
21714 n->replace = true;
21715 n->options = (yyvsp[(11) - (14)].list);
21716 n->withCheckOption = (yyvsp[(14) - (14)].viewcheckoption);
21717 if (n->withCheckOption != PG_NO_CHECK_OPTION)
21718 ereport(ERROR,
21719 (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
21720 errmsg("WITH CHECK OPTION not supported on recursive views"),
21721 parser_errposition((yylsp[(14) - (14)]))));
21722 (yyval.node) = (PGNode *) n;
21723 ;}
21724 break;
21725
21726 case 1108:
21727#line 74 "third_party/libpg_query/grammar/statements/view.y"
21728 { (yyval.viewcheckoption) = CASCADED_CHECK_OPTION; ;}
21729 break;
21730
21731 case 1109:
21732#line 75 "third_party/libpg_query/grammar/statements/view.y"
21733 { (yyval.viewcheckoption) = CASCADED_CHECK_OPTION; ;}
21734 break;
21735
21736 case 1110:
21737#line 76 "third_party/libpg_query/grammar/statements/view.y"
21738 { (yyval.viewcheckoption) = PG_LOCAL_CHECK_OPTION; ;}
21739 break;
21740
21741 case 1111:
21742#line 77 "third_party/libpg_query/grammar/statements/view.y"
21743 { (yyval.viewcheckoption) = PG_NO_CHECK_OPTION; ;}
21744 break;
21745
21746 case 1112:
21747#line 12 "third_party/libpg_query/grammar/statements/create_as.y"
21748 {
21749 PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt);
21750 ctas->query = (yyvsp[(6) - (7)].node);
21751 ctas->into = (yyvsp[(4) - (7)].into);
21752 ctas->relkind = PG_OBJECT_TABLE;
21753 ctas->is_select_into = false;
21754 ctas->if_not_exists = false;
21755 /* cram additional flags into the PGIntoClause */
21756 (yyvsp[(4) - (7)].into)->rel->relpersistence = (yyvsp[(2) - (7)].ival);
21757 (yyvsp[(4) - (7)].into)->skipData = !((yyvsp[(7) - (7)].boolean));
21758 (yyval.node) = (PGNode *) ctas;
21759 ;}
21760 break;
21761
21762 case 1113:
21763#line 25 "third_party/libpg_query/grammar/statements/create_as.y"
21764 {
21765 PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt);
21766 ctas->query = (yyvsp[(9) - (10)].node);
21767 ctas->into = (yyvsp[(7) - (10)].into);
21768 ctas->relkind = PG_OBJECT_TABLE;
21769 ctas->is_select_into = false;
21770 ctas->if_not_exists = true;
21771 /* cram additional flags into the PGIntoClause */
21772 (yyvsp[(7) - (10)].into)->rel->relpersistence = (yyvsp[(2) - (10)].ival);
21773 (yyvsp[(7) - (10)].into)->skipData = !((yyvsp[(10) - (10)].boolean));
21774 (yyval.node) = (PGNode *) ctas;
21775 ;}
21776 break;
21777
21778 case 1114:
21779#line 41 "third_party/libpg_query/grammar/statements/create_as.y"
21780 { (yyval.boolean) = true; ;}
21781 break;
21782
21783 case 1115:
21784#line 42 "third_party/libpg_query/grammar/statements/create_as.y"
21785 { (yyval.boolean) = false; ;}
21786 break;
21787
21788 case 1116:
21789#line 43 "third_party/libpg_query/grammar/statements/create_as.y"
21790 { (yyval.boolean) = true; ;}
21791 break;
21792
21793 case 1117:
21794#line 49 "third_party/libpg_query/grammar/statements/create_as.y"
21795 {
21796 (yyval.into) = makeNode(PGIntoClause);
21797 (yyval.into)->rel = (yyvsp[(1) - (4)].range);
21798 (yyval.into)->colNames = (yyvsp[(2) - (4)].list);
21799 (yyval.into)->options = (yyvsp[(3) - (4)].list);
21800 (yyval.into)->onCommit = (yyvsp[(4) - (4)].oncommit);
21801 (yyval.into)->viewQuery = NULL;
21802 (yyval.into)->skipData = false; /* might get changed later */
21803 ;}
21804 break;
21805
21806
21807/* Line 1267 of yacc.c. */
21808#line 21809 "third_party/libpg_query/grammar/grammar_out.cpp"
21809 default: break;
21810 }
21811 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
21812
21813 YYPOPSTACK (yylen);
21814 yylen = 0;
21815 YY_STACK_PRINT (yyss, yyssp);
21816
21817 *++yyvsp = yyval;
21818 *++yylsp = yyloc;
21819
21820 /* Now `shift' the result of the reduction. Determine what state
21821 that goes to, based on the state we popped back to and the rule
21822 number reduced by. */
21823
21824 yyn = yyr1[yyn];
21825
21826 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
21827 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
21828 yystate = yytable[yystate];
21829 else
21830 yystate = yydefgoto[yyn - YYNTOKENS];
21831
21832 goto yynewstate;
21833
21834
21835/*------------------------------------.
21836| yyerrlab -- here on detecting error |
21837`------------------------------------*/
21838yyerrlab:
21839 /* If not already recovering from an error, report this error. */
21840 if (!yyerrstatus)
21841 {
21842 ++yynerrs;
21843#if ! YYERROR_VERBOSE
21844 yyerror (&yylloc, yyscanner, YY_("syntax error"));
21845#else
21846 {
21847 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
21848 if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
21849 {
21850 YYSIZE_T yyalloc = 2 * yysize;
21851 if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
21852 yyalloc = YYSTACK_ALLOC_MAXIMUM;
21853 if (yymsg != yymsgbuf)
21854 YYSTACK_FREE (yymsg);
21855 yymsg = (char *) YYSTACK_ALLOC (yyalloc);
21856 if (yymsg)
21857 yymsg_alloc = yyalloc;
21858 else
21859 {
21860 yymsg = yymsgbuf;
21861 yymsg_alloc = sizeof yymsgbuf;
21862 }
21863 }
21864
21865 if (0 < yysize && yysize <= yymsg_alloc)
21866 {
21867 (void) yysyntax_error (yymsg, yystate, yychar);
21868 yyerror (&yylloc, yyscanner, yymsg);
21869 }
21870 else
21871 {
21872 yyerror (&yylloc, yyscanner, YY_("syntax error"));
21873 if (yysize != 0)
21874 goto yyexhaustedlab;
21875 }
21876 }
21877#endif
21878 }
21879
21880 yyerror_range[0] = yylloc;
21881
21882 if (yyerrstatus == 3)
21883 {
21884 /* If just tried and failed to reuse look-ahead token after an
21885 error, discard it. */
21886
21887 if (yychar <= YYEOF)
21888 {
21889 /* Return failure if at end of input. */
21890 if (yychar == YYEOF)
21891 YYABORT;
21892 }
21893 else
21894 {
21895 yydestruct ("Error: discarding",
21896 yytoken, &yylval, &yylloc, yyscanner);
21897 yychar = YYEMPTY;
21898 }
21899 }
21900
21901 /* Else will try to reuse look-ahead token after shifting the error
21902 token. */
21903 goto yyerrlab1;
21904
21905
21906/*---------------------------------------------------.
21907| yyerrorlab -- error raised explicitly by YYERROR. |
21908`---------------------------------------------------*/
21909yyerrorlab:
21910
21911 /* Pacify compilers like GCC when the user code never invokes
21912 YYERROR and the label yyerrorlab therefore never appears in user
21913 code. */
21914 if (/*CONSTCOND*/ 0)
21915 goto yyerrorlab;
21916
21917 yyerror_range[0] = yylsp[1-yylen];
21918 /* Do not reclaim the symbols of the rule which action triggered
21919 this YYERROR. */
21920 YYPOPSTACK (yylen);
21921 yylen = 0;
21922 YY_STACK_PRINT (yyss, yyssp);
21923 yystate = *yyssp;
21924 goto yyerrlab1;
21925
21926
21927/*-------------------------------------------------------------.
21928| yyerrlab1 -- common code for both syntax error and YYERROR. |
21929`-------------------------------------------------------------*/
21930yyerrlab1:
21931 yyerrstatus = 3; /* Each real token shifted decrements this. */
21932
21933 for (;;)
21934 {
21935 yyn = yypact[yystate];
21936 if (yyn != YYPACT_NINF)
21937 {
21938 yyn += YYTERROR;
21939 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
21940 {
21941 yyn = yytable[yyn];
21942 if (0 < yyn)
21943 break;
21944 }
21945 }
21946
21947 /* Pop the current state because it cannot handle the error token. */
21948 if (yyssp == yyss)
21949 YYABORT;
21950
21951 yyerror_range[0] = *yylsp;
21952 yydestruct ("Error: popping",
21953 yystos[yystate], yyvsp, yylsp, yyscanner);
21954 YYPOPSTACK (1);
21955 yystate = *yyssp;
21956 YY_STACK_PRINT (yyss, yyssp);
21957 }
21958
21959 if (yyn == YYFINAL)
21960 YYACCEPT;
21961
21962 *++yyvsp = yylval;
21963
21964 yyerror_range[1] = yylloc;
21965 /* Using YYLLOC is tempting, but would change the location of
21966 the look-ahead. YYLOC is available though. */
21967 YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
21968 *++yylsp = yyloc;
21969
21970 /* Shift the error token. */
21971 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
21972
21973 yystate = yyn;
21974 goto yynewstate;
21975
21976
21977/*-------------------------------------.
21978| yyacceptlab -- YYACCEPT comes here. |
21979`-------------------------------------*/
21980yyacceptlab:
21981 yyresult = 0;
21982 goto yyreturn;
21983
21984/*-----------------------------------.
21985| yyabortlab -- YYABORT comes here. |
21986`-----------------------------------*/
21987yyabortlab:
21988 yyresult = 1;
21989 goto yyreturn;
21990
21991#ifndef yyoverflow
21992/*-------------------------------------------------.
21993| yyexhaustedlab -- memory exhaustion comes here. |
21994`-------------------------------------------------*/
21995yyexhaustedlab:
21996 yyerror (&yylloc, yyscanner, YY_("memory exhausted"));
21997 yyresult = 2;
21998 /* Fall through. */
21999#endif
22000
22001yyreturn:
22002 if (yychar != YYEOF && yychar != YYEMPTY)
22003 yydestruct ("Cleanup: discarding lookahead",
22004 yytoken, &yylval, &yylloc, yyscanner);
22005 /* Do not reclaim the symbols of the rule which action triggered
22006 this YYABORT or YYACCEPT. */
22007 YYPOPSTACK (yylen);
22008 YY_STACK_PRINT (yyss, yyssp);
22009 while (yyssp != yyss)
22010 {
22011 yydestruct ("Cleanup: popping",
22012 yystos[*yyssp], yyvsp, yylsp, yyscanner);
22013 YYPOPSTACK (1);
22014 }
22015#ifndef yyoverflow
22016 if (yyss != yyssa)
22017 YYSTACK_FREE (yyss);
22018#endif
22019#if YYERROR_VERBOSE
22020 if (yymsg != yymsgbuf)
22021 YYSTACK_FREE (yymsg);
22022#endif
22023 /* Make sure YYID is used. */
22024 return YYID (yyresult);
22025}
22026
22027
22028#line 67 "third_party/libpg_query/grammar/statements/create_as.y"
22029
22030
22031#line 1 "third_party/libpg_query/grammar/grammar.cpp"
22032/*
22033 * The signature of this function is required by bison. However, we
22034 * ignore the passed yylloc and instead use the last token position
22035 * available from the scanner.
22036 */
22037static void
22038base_yyerror(YYLTYPE *yylloc, core_yyscan_t yyscanner, const char *msg)
22039{
22040 parser_yyerror(msg);
22041}
22042
22043static PGRawStmt *
22044makeRawStmt(PGNode *stmt, int stmt_location)
22045{
22046 PGRawStmt *rs = makeNode(PGRawStmt);
22047
22048 rs->stmt = stmt;
22049 rs->stmt_location = stmt_location;
22050 rs->stmt_len = 0; /* might get changed later */
22051 return rs;
22052}
22053
22054/* Adjust a PGRawStmt to reflect that it doesn't run to the end of the string */
22055static void
22056updateRawStmtEnd(PGRawStmt *rs, int end_location)
22057{
22058 /*
22059 * If we already set the length, don't change it. This is for situations
22060 * like "select foo ;; select bar" where the same statement will be last
22061 * in the string for more than one semicolon.
22062 */
22063 if (rs->stmt_len > 0)
22064 return;
22065
22066 /* OK, update length of PGRawStmt */
22067 rs->stmt_len = end_location - rs->stmt_location;
22068}
22069
22070static PGNode *
22071makeColumnRef(char *colname, PGList *indirection,
22072 int location, core_yyscan_t yyscanner)
22073{
22074 /*
22075 * Generate a PGColumnRef node, with an PGAIndirection node added if there
22076 * is any subscripting in the specified indirection list. However,
22077 * any field selection at the start of the indirection list must be
22078 * transposed into the "fields" part of the PGColumnRef node.
22079 */
22080 PGColumnRef *c = makeNode(PGColumnRef);
22081 int nfields = 0;
22082 PGListCell *l;
22083
22084 c->location = location;
22085 foreach(l, indirection)
22086 {
22087 if (IsA(lfirst(l), PGAIndices))
22088 {
22089 PGAIndirection *i = makeNode(PGAIndirection);
22090
22091 if (nfields == 0)
22092 {
22093 /* easy case - all indirection goes to PGAIndirection */
22094 c->fields = list_make1(makeString(colname));
22095 i->indirection = check_indirection(indirection, yyscanner);
22096 }
22097 else
22098 {
22099 /* got to split the list in two */
22100 i->indirection = check_indirection(list_copy_tail(indirection,
22101 nfields),
22102 yyscanner);
22103 indirection = list_truncate(indirection, nfields);
22104 c->fields = lcons(makeString(colname), indirection);
22105 }
22106 i->arg = (PGNode *) c;
22107 return (PGNode *) i;
22108 }
22109 else if (IsA(lfirst(l), PGAStar))
22110 {
22111 /* We only allow '*' at the end of a PGColumnRef */
22112 if (lnext(l) != NULL)
22113 parser_yyerror("improper use of \"*\"");
22114 }
22115 nfields++;
22116 }
22117 /* No subscripting, so all indirection gets added to field list */
22118 c->fields = lcons(makeString(colname), indirection);
22119 return (PGNode *) c;
22120}
22121
22122static PGNode *
22123makeTypeCast(PGNode *arg, PGTypeName *tpname, int location)
22124{
22125 PGTypeCast *n = makeNode(PGTypeCast);
22126 n->arg = arg;
22127 n->typeName = tpname;
22128 n->location = location;
22129 return (PGNode *) n;
22130}
22131
22132static PGNode *
22133makeStringConst(char *str, int location)
22134{
22135 PGAConst *n = makeNode(PGAConst);
22136
22137 n->val.type = T_PGString;
22138 n->val.val.str = str;
22139 n->location = location;
22140
22141 return (PGNode *)n;
22142}
22143
22144static PGNode *
22145makeStringConstCast(char *str, int location, PGTypeName *tpname)
22146{
22147 PGNode *s = makeStringConst(str, location);
22148
22149 return makeTypeCast(s, tpname, -1);
22150}
22151
22152static PGNode *
22153makeIntConst(int val, int location)
22154{
22155 PGAConst *n = makeNode(PGAConst);
22156
22157 n->val.type = T_PGInteger;
22158 n->val.val.ival = val;
22159 n->location = location;
22160
22161 return (PGNode *)n;
22162}
22163
22164static PGNode *
22165makeFloatConst(char *str, int location)
22166{
22167 PGAConst *n = makeNode(PGAConst);
22168
22169 n->val.type = T_PGFloat;
22170 n->val.val.str = str;
22171 n->location = location;
22172
22173 return (PGNode *)n;
22174}
22175
22176static PGNode *
22177makeBitStringConst(char *str, int location)
22178{
22179 PGAConst *n = makeNode(PGAConst);
22180
22181 n->val.type = T_PGBitString;
22182 n->val.val.str = str;
22183 n->location = location;
22184
22185 return (PGNode *)n;
22186}
22187
22188static PGNode *
22189makeNullAConst(int location)
22190{
22191 PGAConst *n = makeNode(PGAConst);
22192
22193 n->val.type = T_PGNull;
22194 n->location = location;
22195
22196 return (PGNode *)n;
22197}
22198
22199static PGNode *
22200makeAConst(PGValue *v, int location)
22201{
22202 PGNode *n;
22203
22204 switch (v->type)
22205 {
22206 case T_PGFloat:
22207 n = makeFloatConst(v->val.str, location);
22208 break;
22209
22210 case T_PGInteger:
22211 n = makeIntConst(v->val.ival, location);
22212 break;
22213
22214 case T_PGString:
22215 default:
22216 n = makeStringConst(v->val.str, location);
22217 break;
22218 }
22219
22220 return n;
22221}
22222
22223/* makeBoolAConst()
22224 * Create an PGAConst string node and put it inside a boolean cast.
22225 */
22226static PGNode *
22227makeBoolAConst(bool state, int location)
22228{
22229 PGAConst *n = makeNode(PGAConst);
22230
22231 n->val.type = T_PGString;
22232 n->val.val.str = (state ? (char*) "t" : (char*) "f");
22233 n->location = location;
22234
22235 return makeTypeCast((PGNode *)n, SystemTypeName("bool"), -1);
22236}
22237
22238/* check_qualified_name --- check the result of qualified_name production
22239 *
22240 * It's easiest to let the grammar production for qualified_name allow
22241 * subscripts and '*', which we then must reject here.
22242 */
22243static void
22244check_qualified_name(PGList *names, core_yyscan_t yyscanner)
22245{
22246 PGListCell *i;
22247
22248 foreach(i, names)
22249 {
22250 if (!IsA(lfirst(i), PGString))
22251 parser_yyerror("syntax error");
22252 }
22253}
22254
22255/* check_func_name --- check the result of func_name production
22256 *
22257 * It's easiest to let the grammar production for func_name allow subscripts
22258 * and '*', which we then must reject here.
22259 */
22260static PGList *
22261check_func_name(PGList *names, core_yyscan_t yyscanner)
22262{
22263 PGListCell *i;
22264
22265 foreach(i, names)
22266 {
22267 if (!IsA(lfirst(i), PGString))
22268 parser_yyerror("syntax error");
22269 }
22270 return names;
22271}
22272
22273/* check_indirection --- check the result of indirection production
22274 *
22275 * We only allow '*' at the end of the list, but it's hard to enforce that
22276 * in the grammar, so do it here.
22277 */
22278static PGList *
22279check_indirection(PGList *indirection, core_yyscan_t yyscanner)
22280{
22281 PGListCell *l;
22282
22283 foreach(l, indirection)
22284 {
22285 if (IsA(lfirst(l), PGAStar))
22286 {
22287 if (lnext(l) != NULL)
22288 parser_yyerror("improper use of \"*\"");
22289 }
22290 }
22291 return indirection;
22292}
22293
22294/* makeParamRef
22295 * Creates a new PGParamRef node
22296 */
22297static PGNode* makeParamRef(int number, int location)
22298{
22299 PGParamRef *p = makeNode(PGParamRef);
22300 p->number = number;
22301 p->location = location;
22302 return (PGNode *) p;
22303}
22304
22305static PGNode *
22306makeParamRefCast(int number, int location, PGTypeName *tpname)
22307{
22308 PGNode *p = makeParamRef(number, location);
22309 return makeTypeCast(p, tpname, -1);
22310}
22311
22312/* insertSelectOptions()
22313 * Insert ORDER BY, etc into an already-constructed SelectStmt.
22314 *
22315 * This routine is just to avoid duplicating code in PGSelectStmt productions.
22316 */
22317static void
22318insertSelectOptions(PGSelectStmt *stmt,
22319 PGList *sortClause, PGList *lockingClause,
22320 PGNode *limitOffset, PGNode *limitCount,
22321 PGWithClause *withClause,
22322 core_yyscan_t yyscanner)
22323{
22324 Assert(IsA(stmt, PGSelectStmt));
22325
22326 /*
22327 * Tests here are to reject constructs like
22328 * (SELECT foo ORDER BY bar) ORDER BY baz
22329 */
22330 if (sortClause)
22331 {
22332 if (stmt->sortClause)
22333 ereport(ERROR,
22334 (errcode(PG_ERRCODE_SYNTAX_ERROR),
22335 errmsg("multiple ORDER BY clauses not allowed"),
22336 parser_errposition(exprLocation((PGNode *) sortClause))));
22337 stmt->sortClause = sortClause;
22338 }
22339 /* We can handle multiple locking clauses, though */
22340 stmt->lockingClause = list_concat(stmt->lockingClause, lockingClause);
22341 if (limitOffset)
22342 {
22343 if (stmt->limitOffset)
22344 ereport(ERROR,
22345 (errcode(PG_ERRCODE_SYNTAX_ERROR),
22346 errmsg("multiple OFFSET clauses not allowed"),
22347 parser_errposition(exprLocation(limitOffset))));
22348 stmt->limitOffset = limitOffset;
22349 }
22350 if (limitCount)
22351 {
22352 if (stmt->limitCount)
22353 ereport(ERROR,
22354 (errcode(PG_ERRCODE_SYNTAX_ERROR),
22355 errmsg("multiple LIMIT clauses not allowed"),
22356 parser_errposition(exprLocation(limitCount))));
22357 stmt->limitCount = limitCount;
22358 }
22359 if (withClause)
22360 {
22361 if (stmt->withClause)
22362 ereport(ERROR,
22363 (errcode(PG_ERRCODE_SYNTAX_ERROR),
22364 errmsg("multiple WITH clauses not allowed"),
22365 parser_errposition(exprLocation((PGNode *) withClause))));
22366 stmt->withClause = withClause;
22367 }
22368}
22369
22370static PGNode *
22371makeSetOp(PGSetOperation op, bool all, PGNode *larg, PGNode *rarg)
22372{
22373 PGSelectStmt *n = makeNode(PGSelectStmt);
22374
22375 n->op = op;
22376 n->all = all;
22377 n->larg = (PGSelectStmt *) larg;
22378 n->rarg = (PGSelectStmt *) rarg;
22379 return (PGNode *) n;
22380}
22381
22382/* SystemFuncName()
22383 * Build a properly-qualified reference to a built-in function.
22384 */
22385PGList *
22386SystemFuncName(const char *name)
22387{
22388 return list_make2(makeString(DEFAULT_SCHEMA), makeString(name));
22389}
22390
22391/* SystemTypeName()
22392 * Build a properly-qualified reference to a built-in type.
22393 *
22394 * typmod is defaulted, but may be changed afterwards by caller.
22395 * Likewise for the location.
22396 */
22397PGTypeName *
22398SystemTypeName(const char *name)
22399{
22400 return makeTypeNameFromNameList(list_make2(makeString(DEFAULT_SCHEMA),
22401 makeString(name)));
22402}
22403
22404/* doNegate()
22405 * Handle negation of a numeric constant.
22406 *
22407 * Formerly, we did this here because the optimizer couldn't cope with
22408 * indexquals that looked like "var = -4" --- it wants "var = const"
22409 * and a unary minus operator applied to a constant didn't qualify.
22410 * As of Postgres 7.0, that problem doesn't exist anymore because there
22411 * is a constant-subexpression simplifier in the optimizer. However,
22412 * there's still a good reason for doing this here, which is that we can
22413 * postpone committing to a particular internal representation for simple
22414 * negative constants. It's better to leave "-123.456" in string form
22415 * until we know what the desired type is.
22416 */
22417static PGNode *
22418doNegate(PGNode *n, int location)
22419{
22420 if (IsA(n, PGAConst))
22421 {
22422 PGAConst *con = (PGAConst *)n;
22423
22424 /* report the constant's location as that of the '-' sign */
22425 con->location = location;
22426
22427 if (con->val.type == T_PGInteger)
22428 {
22429 con->val.val.ival = -con->val.val.ival;
22430 return n;
22431 }
22432 if (con->val.type == T_PGFloat)
22433 {
22434 doNegateFloat(&con->val);
22435 return n;
22436 }
22437 }
22438
22439 return (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "-", NULL, n, location);
22440}
22441
22442static void
22443doNegateFloat(PGValue *v)
22444{
22445 char *oldval = v->val.str;
22446
22447 Assert(IsA(v, PGFloat));
22448 if (*oldval == '+')
22449 oldval++;
22450 if (*oldval == '-')
22451 v->val.str = oldval+1; /* just strip the '-' */
22452 else
22453 v->val.str = psprintf("-%s", oldval);
22454}
22455
22456static PGNode *
22457makeAndExpr(PGNode *lexpr, PGNode *rexpr, int location)
22458{
22459 PGNode *lexp = lexpr;
22460
22461 /* Look through AEXPR_PAREN nodes so they don't affect flattening */
22462 while (IsA(lexp, PGAExpr) &&
22463 ((PGAExpr *) lexp)->kind == AEXPR_PAREN)
22464 lexp = ((PGAExpr *) lexp)->lexpr;
22465 /* Flatten "a AND b AND c ..." to a single PGBoolExpr on sight */
22466 if (IsA(lexp, PGBoolExpr))
22467 {
22468 PGBoolExpr *blexpr = (PGBoolExpr *) lexp;
22469
22470 if (blexpr->boolop == PG_AND_EXPR)
22471 {
22472 blexpr->args = lappend(blexpr->args, rexpr);
22473 return (PGNode *) blexpr;
22474 }
22475 }
22476 return (PGNode *) makeBoolExpr(PG_AND_EXPR, list_make2(lexpr, rexpr), location);
22477}
22478
22479static PGNode *
22480makeOrExpr(PGNode *lexpr, PGNode *rexpr, int location)
22481{
22482 PGNode *lexp = lexpr;
22483
22484 /* Look through AEXPR_PAREN nodes so they don't affect flattening */
22485 while (IsA(lexp, PGAExpr) &&
22486 ((PGAExpr *) lexp)->kind == AEXPR_PAREN)
22487 lexp = ((PGAExpr *) lexp)->lexpr;
22488 /* Flatten "a OR b OR c ..." to a single PGBoolExpr on sight */
22489 if (IsA(lexp, PGBoolExpr))
22490 {
22491 PGBoolExpr *blexpr = (PGBoolExpr *) lexp;
22492
22493 if (blexpr->boolop == PG_OR_EXPR)
22494 {
22495 blexpr->args = lappend(blexpr->args, rexpr);
22496 return (PGNode *) blexpr;
22497 }
22498 }
22499 return (PGNode *) makeBoolExpr(PG_OR_EXPR, list_make2(lexpr, rexpr), location);
22500}
22501
22502static PGNode *
22503makeNotExpr(PGNode *expr, int location)
22504{
22505 return (PGNode *) makeBoolExpr(PG_NOT_EXPR, list_make1(expr), location);
22506}
22507
22508static PGNode *
22509makeSQLValueFunction(PGSQLValueFunctionOp op, int32_t typmod, int location)
22510{
22511 PGSQLValueFunction *svf = makeNode(PGSQLValueFunction);
22512
22513 svf->op = op;
22514 /* svf->type will be filled during parse analysis */
22515 svf->typmod = typmod;
22516 svf->location = location;
22517 return (PGNode *) svf;
22518}
22519
22520/* Separate PGConstraint nodes from COLLATE clauses in a */
22521static void
22522SplitColQualList(PGList *qualList,
22523 PGList **constraintList, PGCollateClause **collClause,
22524 core_yyscan_t yyscanner)
22525{
22526 PGListCell *cell;
22527 PGListCell *prev;
22528 PGListCell *next;
22529
22530 *collClause = NULL;
22531 prev = NULL;
22532 for (cell = list_head(qualList); cell; cell = next)
22533 {
22534 PGNode *n = (PGNode *) lfirst(cell);
22535
22536 next = lnext(cell);
22537 if (IsA(n, PGConstraint))
22538 {
22539 /* keep it in list */
22540 prev = cell;
22541 continue;
22542 }
22543 if (IsA(n, PGCollateClause))
22544 {
22545 PGCollateClause *c = (PGCollateClause *) n;
22546
22547 if (*collClause)
22548 ereport(ERROR,
22549 (errcode(PG_ERRCODE_SYNTAX_ERROR),
22550 errmsg("multiple COLLATE clauses not allowed"),
22551 parser_errposition(c->location)));
22552 *collClause = c;
22553 }
22554 else
22555 elog(ERROR, "unexpected node type %d", (int) n->type);
22556 /* remove non-Constraint nodes from qualList */
22557 qualList = list_delete_cell(qualList, cell, prev);
22558 }
22559 *constraintList = qualList;
22560}
22561
22562/*
22563 * Process result of ConstraintAttributeSpec, and set appropriate bool flags
22564 * in the output command node. Pass NULL for any flags the particular
22565 * command doesn't support.
22566 */
22567static void
22568processCASbits(int cas_bits, int location, const char *constrType,
22569 bool *deferrable, bool *initdeferred, bool *not_valid,
22570 bool *no_inherit, core_yyscan_t yyscanner)
22571{
22572 /* defaults */
22573 if (deferrable)
22574 *deferrable = false;
22575 if (initdeferred)
22576 *initdeferred = false;
22577 if (not_valid)
22578 *not_valid = false;
22579
22580 if (cas_bits & (CAS_DEFERRABLE | CAS_INITIALLY_DEFERRED))
22581 {
22582 if (deferrable)
22583 *deferrable = true;
22584 else
22585 ereport(ERROR,
22586 (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
22587 /* translator: %s is CHECK, UNIQUE, or similar */
22588 errmsg("%s constraints cannot be marked DEFERRABLE",
22589 constrType),
22590 parser_errposition(location)));
22591 }
22592
22593 if (cas_bits & CAS_INITIALLY_DEFERRED)
22594 {
22595 if (initdeferred)
22596 *initdeferred = true;
22597 else
22598 ereport(ERROR,
22599 (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
22600 /* translator: %s is CHECK, UNIQUE, or similar */
22601 errmsg("%s constraints cannot be marked DEFERRABLE",
22602 constrType),
22603 parser_errposition(location)));
22604 }
22605
22606 if (cas_bits & CAS_NOT_VALID)
22607 {
22608 if (not_valid)
22609 *not_valid = true;
22610 else
22611 ereport(ERROR,
22612 (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
22613 /* translator: %s is CHECK, UNIQUE, or similar */
22614 errmsg("%s constraints cannot be marked NOT VALID",
22615 constrType),
22616 parser_errposition(location)));
22617 }
22618
22619 if (cas_bits & CAS_NO_INHERIT)
22620 {
22621 if (no_inherit)
22622 *no_inherit = true;
22623 else
22624 ereport(ERROR,
22625 (errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
22626 /* translator: %s is CHECK, UNIQUE, or similar */
22627 errmsg("%s constraints cannot be marked NO INHERIT",
22628 constrType),
22629 parser_errposition(location)));
22630 }
22631}
22632
22633/*----------
22634 * Recursive view transformation
22635 *
22636 * Convert
22637 *
22638 * CREATE RECURSIVE VIEW relname (aliases) AS query
22639 *
22640 * to
22641 *
22642 * CREATE VIEW relname (aliases) AS
22643 * WITH RECURSIVE relname (aliases) AS (query)
22644 * SELECT aliases FROM relname
22645 *
22646 * Actually, just the WITH ... part, which is then inserted into the original
22647 * view as the query.
22648 * ----------
22649 */
22650static PGNode *
22651makeRecursiveViewSelect(char *relname, PGList *aliases, PGNode *query)
22652{
22653 PGSelectStmt *s = makeNode(PGSelectStmt);
22654 PGWithClause *w = makeNode(PGWithClause);
22655 PGCommonTableExpr *cte = makeNode(PGCommonTableExpr);
22656 PGList *tl = NIL;
22657 PGListCell *lc;
22658
22659 /* create common table expression */
22660 cte->ctename = relname;
22661 cte->aliascolnames = aliases;
22662 cte->ctequery = query;
22663 cte->location = -1;
22664
22665 /* create WITH clause and attach CTE */
22666 w->recursive = true;
22667 w->ctes = list_make1(cte);
22668 w->location = -1;
22669
22670 /* create target list for the new SELECT from the alias list of the
22671 * recursive view specification */
22672 foreach (lc, aliases)
22673 {
22674 PGResTarget *rt = makeNode(PGResTarget);
22675
22676 rt->name = NULL;
22677 rt->indirection = NIL;
22678 rt->val = makeColumnRef(strVal(lfirst(lc)), NIL, -1, 0);
22679 rt->location = -1;
22680
22681 tl = lappend(tl, rt);
22682 }
22683
22684 /* create new SELECT combining WITH clause, target list, and fake FROM
22685 * clause */
22686 s->withClause = w;
22687 s->targetList = tl;
22688 s->fromClause = list_make1(makeRangeVar(NULL, relname, -1));
22689
22690 return (PGNode *) s;
22691}
22692
22693/* parser_init()
22694 * Initialize to parse one query string
22695 */
22696void
22697parser_init(base_yy_extra_type *yyext)
22698{
22699 yyext->parsetree = NIL; /* in case grammar forgets to set it */
22700}
22701
22702