preproc.c
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:764k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. /*  A Bison parser, made from preproc.y
  2.     by GNU Bison version 1.28  */
  3. #define YYBISON 1  /* Identify Bison output.  */
  4. #define SQL_AT 257
  5. #define SQL_AUTOCOMMIT 258
  6. #define SQL_BOOL 259
  7. #define SQL_BREAK 260
  8. #define SQL_CALL 261
  9. #define SQL_CONNECT 262
  10. #define SQL_CONNECTION 263
  11. #define SQL_CONTINUE 264
  12. #define SQL_DEALLOCATE 265
  13. #define SQL_DISCONNECT 266
  14. #define SQL_ENUM 267
  15. #define SQL_FOUND 268
  16. #define SQL_FREE 269
  17. #define SQL_GO 270
  18. #define SQL_GOTO 271
  19. #define SQL_IDENTIFIED 272
  20. #define SQL_IMMEDIATE 273
  21. #define SQL_INDICATOR 274
  22. #define SQL_INT 275
  23. #define SQL_LONG 276
  24. #define SQL_OFF 277
  25. #define SQL_OPEN 278
  26. #define SQL_PREPARE 279
  27. #define SQL_RELEASE 280
  28. #define SQL_REFERENCE 281
  29. #define SQL_SECTION 282
  30. #define SQL_SHORT 283
  31. #define SQL_SIGNED 284
  32. #define SQL_SQLERROR 285
  33. #define SQL_SQLPRINT 286
  34. #define SQL_SQLWARNING 287
  35. #define SQL_START 288
  36. #define SQL_STOP 289
  37. #define SQL_STRUCT 290
  38. #define SQL_UNSIGNED 291
  39. #define SQL_VAR 292
  40. #define SQL_WHENEVER 293
  41. #define S_ANYTHING 294
  42. #define S_AUTO 295
  43. #define S_BOOL 296
  44. #define S_CHAR 297
  45. #define S_CONST 298
  46. #define S_DOUBLE 299
  47. #define S_ENUM 300
  48. #define S_EXTERN 301
  49. #define S_FLOAT 302
  50. #define S_INT 303
  51. #define S 304
  52. #define S_LONG 305
  53. #define S_REGISTER 306
  54. #define S_SHORT 307
  55. #define S_SIGNED 308
  56. #define S_STATIC 309
  57. #define S_STRUCT 310
  58. #define S_UNION 311
  59. #define S_UNSIGNED 312
  60. #define S_VARCHAR 313
  61. #define TYPECAST 314
  62. #define ABSOLUTE 315
  63. #define ACTION 316
  64. #define ADD 317
  65. #define ALL 318
  66. #define ALTER 319
  67. #define AND 320
  68. #define ANY 321
  69. #define AS 322
  70. #define ASC 323
  71. #define BEGIN_TRANS 324
  72. #define BETWEEN 325
  73. #define BOTH 326
  74. #define BY 327
  75. #define CASCADE 328
  76. #define CASE 329
  77. #define CAST 330
  78. #define CHAR 331
  79. #define CHARACTER 332
  80. #define CHECK 333
  81. #define CLOSE 334
  82. #define COALESCE 335
  83. #define COLLATE 336
  84. #define COLUMN 337
  85. #define COMMIT 338
  86. #define CONSTRAINT 339
  87. #define CREATE 340
  88. #define CROSS 341
  89. #define CURRENT 342
  90. #define CURRENT_DATE 343
  91. #define CURRENT_TIME 344
  92. #define CURRENT_TIMESTAMP 345
  93. #define CURRENT_USER 346
  94. #define CURSOR 347
  95. #define DAY_P 348
  96. #define DECIMAL 349
  97. #define DECLARE 350
  98. #define DEFAULT 351
  99. #define DELETE 352
  100. #define DESC 353
  101. #define DISTINCT 354
  102. #define DOUBLE 355
  103. #define DROP 356
  104. #define ELSE 357
  105. #define END_TRANS 358
  106. #define EXCEPT 359
  107. #define EXECUTE 360
  108. #define EXISTS 361
  109. #define EXTRACT 362
  110. #define FALSE_P 363
  111. #define FETCH 364
  112. #define FLOAT 365
  113. #define FOR 366
  114. #define FOREIGN 367
  115. #define FROM 368
  116. #define FULL 369
  117. #define GLOBAL 370
  118. #define GRANT 371
  119. #define GROUP 372
  120. #define HAVING 373
  121. #define HOUR_P 374
  122. #define IN 375
  123. #define INNER_P 376
  124. #define INSENSITIVE 377
  125. #define INSERT 378
  126. #define INTERSECT 379
  127. #define INTERVAL 380
  128. #define INTO 381
  129. #define IS 382
  130. #define ISOLATION 383
  131. #define JOIN 384
  132. #define KEY 385
  133. #define LANGUAGE 386
  134. #define LEADING 387
  135. #define LEFT 388
  136. #define LEVEL 389
  137. #define LIKE 390
  138. #define LOCAL 391
  139. #define MATCH 392
  140. #define MINUTE_P 393
  141. #define MONTH_P 394
  142. #define NAMES 395
  143. #define NATIONAL 396
  144. #define NATURAL 397
  145. #define NCHAR 398
  146. #define NEXT 399
  147. #define NO 400
  148. #define NOT 401
  149. #define NULLIF 402
  150. #define NULL_P 403
  151. #define NUMERIC 404
  152. #define OF 405
  153. #define ON 406
  154. #define ONLY 407
  155. #define OPTION 408
  156. #define OR 409
  157. #define ORDER 410
  158. #define OUTER_P 411
  159. #define PARTIAL 412
  160. #define POSITION 413
  161. #define PRECISION 414
  162. #define PRIMARY 415
  163. #define PRIOR 416
  164. #define PRIVILEGES 417
  165. #define PROCEDURE 418
  166. #define PUBLIC 419
  167. #define READ 420
  168. #define REFERENCES 421
  169. #define RELATIVE 422
  170. #define REVOKE 423
  171. #define RIGHT 424
  172. #define ROLLBACK 425
  173. #define SCROLL 426
  174. #define SECOND_P 427
  175. #define SELECT 428
  176. #define SET 429
  177. #define SUBSTRING 430
  178. #define TABLE 431
  179. #define TEMP 432
  180. #define TEMPORARY 433
  181. #define THEN 434
  182. #define TIME 435
  183. #define TIMESTAMP 436
  184. #define TIMEZONE_HOUR 437
  185. #define TIMEZONE_MINUTE 438
  186. #define TO 439
  187. #define TRAILING 440
  188. #define TRANSACTION 441
  189. #define TRIM 442
  190. #define TRUE_P 443
  191. #define UNION 444
  192. #define UNIQUE 445
  193. #define UPDATE 446
  194. #define USER 447
  195. #define USING 448
  196. #define VALUES 449
  197. #define VARCHAR 450
  198. #define VARYING 451
  199. #define VIEW 452
  200. #define WHEN 453
  201. #define WHERE 454
  202. #define WITH 455
  203. #define WORK 456
  204. #define YEAR_P 457
  205. #define ZONE 458
  206. #define TRIGGER 459
  207. #define COMMITTED 460
  208. #define SERIALIZABLE 461
  209. #define TYPE_P 462
  210. #define ABORT_TRANS 463
  211. #define ACCESS 464
  212. #define AFTER 465
  213. #define AGGREGATE 466
  214. #define ANALYZE 467
  215. #define BACKWARD 468
  216. #define BEFORE 469
  217. #define BINARY 470
  218. #define CACHE 471
  219. #define CLUSTER 472
  220. #define COPY 473
  221. #define CREATEDB 474
  222. #define CREATEUSER 475
  223. #define CYCLE 476
  224. #define DATABASE 477
  225. #define DELIMITERS 478
  226. #define DO 479
  227. #define EACH 480
  228. #define ENCODING 481
  229. #define EXCLUSIVE 482
  230. #define EXPLAIN 483
  231. #define EXTEND 484
  232. #define FORWARD 485
  233. #define FUNCTION 486
  234. #define HANDLER 487
  235. #define INCREMENT 488
  236. #define INDEX 489
  237. #define INHERITS 490
  238. #define INSTEAD 491
  239. #define ISNULL 492
  240. #define LANCOMPILER 493
  241. #define LIMIT 494
  242. #define LISTEN 495
  243. #define UNLISTEN 496
  244. #define LOAD 497
  245. #define LOCATION 498
  246. #define LOCK_P 499
  247. #define MAXVALUE 500
  248. #define MINVALUE 501
  249. #define MODE 502
  250. #define MOVE 503
  251. #define NEW 504
  252. #define NOCREATEDB 505
  253. #define NOCREATEUSER 506
  254. #define NONE 507
  255. #define NOTHING 508
  256. #define NOTIFY 509
  257. #define NOTNULL 510
  258. #define OFFSET 511
  259. #define OIDS 512
  260. #define OPERATOR 513
  261. #define PASSWORD 514
  262. #define PROCEDURAL 515
  263. #define RENAME 516
  264. #define RESET 517
  265. #define RETURNS 518
  266. #define ROW 519
  267. #define RULE 520
  268. #define SERIAL 521
  269. #define SEQUENCE 522
  270. #define SETOF 523
  271. #define SHARE 524
  272. #define SHOW 525
  273. #define START 526
  274. #define STATEMENT 527
  275. #define STDIN 528
  276. #define STDOUT 529
  277. #define TRUSTED 530
  278. #define UNTIL 531
  279. #define VACUUM 532
  280. #define VALID 533
  281. #define VERBOSE 534
  282. #define VERSION 535
  283. #define IDENT 536
  284. #define SCONST 537
  285. #define Op 538
  286. #define CSTRING 539
  287. #define CVARIABLE 540
  288. #define CPP_LINE 541
  289. #define ICONST 542
  290. #define PARAM 543
  291. #define FCONST 544
  292. #define OP 545
  293. #define UMINUS 546
  294. #line 2 "preproc.y"
  295. #include <stdio.h>
  296. #include <string.h>
  297. #include <stdlib.h>
  298. #include "postgres.h"
  299. #include "access/htup.h"
  300. #include "catalog/catname.h"
  301. #include "utils/numeric.h"
  302. #include "extern.h"
  303. #ifdef MULTIBYTE
  304. #include "mb/pg_wchar.h"
  305. #endif
  306. #define STRUCT_DEPTH 128
  307. /*
  308.  * Variables containing simple states.
  309.  */
  310. int struct_level = 0;
  311. char errortext[128];
  312. static char *connection = NULL;
  313. static int      QueryIsRule = 0, ForUpdateNotAllowed = 0;
  314. static struct this_type actual_type[STRUCT_DEPTH];
  315. static char     *actual_storage[STRUCT_DEPTH];
  316. /* temporarily store struct members while creating the data structure */
  317. struct ECPGstruct_member *struct_member_list[STRUCT_DEPTH] = { NULL };
  318. struct ECPGtype ecpg_no_indicator = {ECPGt_NO_INDICATOR, 0L, {NULL}};
  319. struct variable no_indicator = {"no_indicator", &ecpg_no_indicator, 0, NULL};
  320. struct ECPGtype ecpg_query = {ECPGt_char_variable, 0L, {NULL}};
  321. /*
  322.  * Handle the filename and line numbering.
  323.  */
  324. char * input_filename = NULL;
  325. void
  326. output_line_number()
  327. {
  328.     if (input_filename)
  329.        fprintf(yyout, "n#line %d "%s"n", yylineno + 1, input_filename);
  330. }
  331. static void
  332. output_simple_statement(char *cmd)
  333. {
  334. fputs(cmd, yyout);
  335. output_line_number();
  336.         free(cmd);
  337. }
  338. /*
  339.  * store the whenever action here
  340.  */
  341. static struct when when_error, when_nf, when_warn;
  342. static void
  343. print_action(struct when *w)
  344. {
  345. switch (w->code)
  346. {
  347. case W_SQLPRINT: fprintf(yyout, "sqlprint();");
  348.                                  break;
  349. case W_GOTO:  fprintf(yyout, "goto %s;", w->command);
  350.  break;
  351. case W_DO:  fprintf(yyout, "%s;", w->command);
  352.  break;
  353. case W_STOP:  fprintf(yyout, "exit (1);");
  354.  break;
  355. case W_BREAK:  fprintf(yyout, "break;");
  356.  break;
  357. default:  fprintf(yyout, "{/* %d not implemented yet */}", w->code);
  358.  break;
  359. }
  360. }
  361. static void
  362. whenever_action(int mode)
  363. {
  364. if ((mode&1) ==  1 && when_nf.code != W_NOTHING)
  365. {
  366. output_line_number();
  367. fprintf(yyout, "nif (sqlca.sqlcode == ECPG_NOT_FOUND) ");
  368. print_action(&when_nf);
  369. }
  370. if (when_warn.code != W_NOTHING)
  371.         {
  372. output_line_number();
  373.                 fprintf(yyout, "nif (sqlca.sqlwarn[0] == 'W') ");
  374. print_action(&when_warn);
  375.         }
  376. if (when_error.code != W_NOTHING)
  377.         {
  378. output_line_number();
  379.                 fprintf(yyout, "nif (sqlca.sqlcode < 0) ");
  380. print_action(&when_error);
  381.         }
  382. if ((mode&2) == 2)
  383. fputc('}', yyout);
  384. output_line_number();
  385. }
  386. /*
  387.  * Handling of variables.
  388.  */
  389. /*
  390.  * brace level counter
  391.  */
  392. int braces_open;
  393. static struct variable * allvariables = NULL;
  394. static struct variable *
  395. new_variable(const char * name, struct ECPGtype * type)
  396. {
  397.     struct variable * p = (struct variable*) mm_alloc(sizeof(struct variable));
  398.     p->name = mm_strdup(name);
  399.     p->type = type;
  400.     p->brace_level = braces_open;
  401.     p->next = allvariables;
  402.     allvariables = p;
  403.     return(p);
  404. }
  405. static struct variable * find_variable(char * name);
  406. static struct variable *
  407. find_struct_member(char *name, char *str, struct ECPGstruct_member *members)
  408. {
  409.     char *next = strchr(++str, '.'), c = '';
  410.     if (next != NULL)
  411.     {
  412. c = *next;
  413. *next = '';
  414.     }
  415.     for (; members; members = members->next)
  416.     {
  417.         if (strcmp(members->name, str) == 0)
  418. {
  419. if (c == '')
  420. {
  421. /* found the end */
  422. switch (members->typ->typ)
  423. {
  424.    case ECPGt_array:
  425. return(new_variable(name, ECPGmake_array_type(members->typ->u.element, members->typ->size)));
  426.    case ECPGt_struct:
  427.    case ECPGt_union:
  428. return(new_variable(name, ECPGmake_struct_type(members->typ->u.members, members->typ->typ)));
  429.    default:
  430. return(new_variable(name, ECPGmake_simple_type(members->typ->typ, members->typ->size)));
  431. }
  432. }
  433. else
  434. {
  435. *next = c;
  436. if (c == '-')
  437. {
  438. next++;
  439. return(find_struct_member(name, next, members->typ->u.element->u.members));
  440. }
  441. else return(find_struct_member(name, next, members->typ->u.members));
  442. }
  443. }
  444.     }
  445.     return(NULL);
  446. }
  447. static struct variable *
  448. find_struct(char * name, char *next)
  449. {
  450.     struct variable * p;
  451.     char c = *next;
  452.     /* first get the mother structure entry */
  453.     *next = '';
  454.     p = find_variable(name);
  455.     if (c == '-')
  456.     {
  457. if (p->type->typ != ECPGt_struct && p->type->typ != ECPGt_union)
  458.         {
  459.                 sprintf(errortext, "variable %s is not a pointer", name);
  460.                 yyerror (errortext);
  461.         }
  462. if (p->type->u.element->typ  != ECPGt_struct && p->type->u.element->typ != ECPGt_union)
  463.         {
  464.                 sprintf(errortext, "variable %s is not a pointer to a structure or a union", name);
  465.                 yyerror (errortext);
  466.         }
  467. /* restore the name, we will need it later on */
  468. *next = c;
  469. next++;
  470. return find_struct_member(name, next, p->type->u.element->u.members);
  471.     }
  472.     else
  473.     {
  474. if (p->type->typ != ECPGt_struct && p->type->typ != ECPGt_union)
  475. {
  476. sprintf(errortext, "variable %s is neither a structure nor a union", name);
  477. yyerror (errortext);
  478. }
  479. /* restore the name, we will need it later on */
  480. *next = c;
  481. return find_struct_member(name, next, p->type->u.members);
  482.     }
  483. }
  484. static struct variable *
  485. find_simple(char * name)
  486. {
  487.     struct variable * p;
  488.     for (p = allvariables; p; p = p->next)
  489.     {
  490.         if (strcmp(p->name, name) == 0)
  491.     return p;
  492.     }
  493.     return(NULL);
  494. }
  495. /* Note that this function will end the program in case of an unknown */
  496. /* variable */
  497. static struct variable *
  498. find_variable(char * name)
  499. {
  500.     char * next;
  501.     struct variable * p;
  502.     if ((next = strchr(name, '.')) != NULL)
  503. p = find_struct(name, next);
  504.     else if ((next = strstr(name, "->")) != NULL)
  505. p = find_struct(name, next);
  506.     else
  507. p = find_simple(name);
  508.     if (p == NULL)
  509.     {
  510. sprintf(errortext, "The variable %s is not declared", name);
  511. yyerror(errortext);
  512.     }
  513.     return(p);
  514. }
  515. static void
  516. remove_variables(int brace_level)
  517. {
  518.     struct variable * p, *prev;
  519.     for (p = prev = allvariables; p; p = p ? p->next : NULL)
  520.     {
  521. if (p->brace_level >= brace_level)
  522. {
  523.     /* remove it */
  524.     if (p == allvariables)
  525. prev = allvariables = p->next;
  526.     else
  527. prev->next = p->next;
  528.     ECPGfree_type(p->type);
  529.     free(p->name);
  530.     free(p);
  531.     p = prev;
  532. }
  533. else
  534.     prev = p;
  535.     }
  536. }
  537. /*
  538.  * Here are the variables that need to be handled on every request.
  539.  * These are of two kinds: input and output.
  540.  * I will make two lists for them.
  541.  */
  542. struct arguments * argsinsert = NULL;
  543. struct arguments * argsresult = NULL;
  544. static void
  545. reset_variables(void)
  546. {
  547.     argsinsert = NULL;
  548.     argsresult = NULL;
  549. }
  550. /* Add a variable to a request. */
  551. static void
  552. add_variable(struct arguments ** list, struct variable * var, struct variable * ind)
  553. {
  554.     struct arguments * p = (struct arguments *)mm_alloc(sizeof(struct arguments));
  555.     p->variable = var;
  556.     p->indicator = ind;
  557.     p->next = *list;
  558.     *list = p;
  559. }
  560. /* Dump out a list of all the variable on this list.
  561.    This is a recursive function that works from the end of the list and
  562.    deletes the list as we go on.
  563.  */
  564. static void
  565. dump_variables(struct arguments * list, int mode)
  566. {
  567.     if (list == NULL)
  568.     {
  569.         return;
  570.     }
  571.     /* The list is build up from the beginning so lets first dump the
  572.        end of the list:
  573.      */
  574.     dump_variables(list->next, mode);
  575.     /* Then the current element and its indicator */
  576.     ECPGdump_a_type(yyout, list->variable->name, list->variable->type,
  577. (list->indicator->type->typ != ECPGt_NO_INDICATOR) ? list->indicator->name : NULL,
  578. (list->indicator->type->typ != ECPGt_NO_INDICATOR) ? list->indicator->type : NULL, NULL, NULL);
  579.     /* Then release the list element. */
  580.     if (mode != 0)
  581.      free(list);
  582. }
  583. static void
  584. check_indicator(struct ECPGtype *var)
  585. {
  586. /* make sure this is a valid indicator variable */
  587. switch (var->typ)
  588. {
  589. struct ECPGstruct_member *p;
  590. case ECPGt_short:
  591. case ECPGt_int:
  592. case ECPGt_long:
  593. case ECPGt_unsigned_short:
  594. case ECPGt_unsigned_int:
  595. case ECPGt_unsigned_long:
  596. break;
  597. case ECPGt_struct:
  598. case ECPGt_union:
  599. for (p = var->u.members; p; p = p->next)
  600. check_indicator(p->typ);
  601. break;
  602. case ECPGt_array:
  603. check_indicator(var->u.element);
  604. break;
  605. default: 
  606. yyerror ("indicator variable must be integer type");
  607. break;
  608. }
  609. }
  610. static char *
  611. make1_str(const char *str)
  612. {
  613.         char * res_str = (char *)mm_alloc(strlen(str) + 1);
  614. strcpy(res_str, str);
  615. return res_str;
  616. }
  617. static char *
  618. make2_str(char *str1, char *str2)
  619. char * res_str  = (char *)mm_alloc(strlen(str1) + strlen(str2) + 1);
  620. strcpy(res_str, str1);
  621. strcat(res_str, str2);
  622. free(str1);
  623. free(str2);
  624. return(res_str);
  625. }
  626. static char *
  627. cat2_str(char *str1, char *str2)
  628. char * res_str  = (char *)mm_alloc(strlen(str1) + strlen(str2) + 2);
  629. strcpy(res_str, str1);
  630. strcat(res_str, " ");
  631. strcat(res_str, str2);
  632. free(str1);
  633. free(str2);
  634. return(res_str);
  635. }
  636. static char *
  637. make3_str(char *str1, char *str2, char * str3)
  638. {    
  639.         char * res_str  = (char *)mm_alloc(strlen(str1) + strlen(str2) + strlen(str3) + 1);
  640.      
  641.         strcpy(res_str, str1);
  642.         strcat(res_str, str2);
  643. strcat(res_str, str3);
  644. free(str1);
  645. free(str2);
  646. free(str3);
  647.         return(res_str);
  648. }    
  649. static char *
  650. cat3_str(char *str1, char *str2, char * str3)
  651. {    
  652.         char * res_str  = (char *)mm_alloc(strlen(str1) + strlen(str2) + strlen(str3) + 3);
  653.      
  654.         strcpy(res_str, str1);
  655. strcat(res_str, " ");
  656.         strcat(res_str, str2);
  657. strcat(res_str, " ");
  658. strcat(res_str, str3);
  659. free(str1);
  660. free(str2);
  661. free(str3);
  662.         return(res_str);
  663. }    
  664. static char *
  665. make4_str(char *str1, char *str2, char *str3, char *str4)
  666. {    
  667.         char * res_str  = (char *)mm_alloc(strlen(str1) + strlen(str2) + strlen(str3) + strlen(str4) + 1);
  668.      
  669.         strcpy(res_str, str1);
  670.         strcat(res_str, str2);
  671. strcat(res_str, str3);
  672. strcat(res_str, str4);
  673. free(str1);
  674. free(str2);
  675. free(str3);
  676. free(str4);
  677.         return(res_str);
  678. }
  679. static char *
  680. cat4_str(char *str1, char *str2, char *str3, char *str4)
  681. {    
  682.         char * res_str  = (char *)mm_alloc(strlen(str1) + strlen(str2) + strlen(str3) + strlen(str4) + 4);
  683.      
  684.         strcpy(res_str, str1);
  685. strcat(res_str, " ");
  686.         strcat(res_str, str2);
  687. strcat(res_str, " ");
  688. strcat(res_str, str3);
  689. strcat(res_str, " ");
  690. strcat(res_str, str4);
  691. free(str1);
  692. free(str2);
  693. free(str3);
  694. free(str4);
  695.         return(res_str);
  696. }
  697. static char *
  698. make5_str(char *str1, char *str2, char *str3, char *str4, char *str5)
  699. {    
  700.         char * res_str  = (char *)mm_alloc(strlen(str1) + strlen(str2) + strlen(str3) + strlen(str4) + strlen(str5) + 1);
  701.      
  702.         strcpy(res_str, str1);
  703.         strcat(res_str, str2);
  704. strcat(res_str, str3);
  705. strcat(res_str, str4);
  706. strcat(res_str, str5);
  707. free(str1);
  708. free(str2);
  709. free(str3);
  710. free(str4);
  711. free(str5);
  712.         return(res_str);
  713. }    
  714. static char *
  715. cat5_str(char *str1, char *str2, char *str3, char *str4, char *str5)
  716. {    
  717.         char * res_str  = (char *)mm_alloc(strlen(str1) + strlen(str2) + strlen(str3) + strlen(str4) + strlen(str5) + 5);
  718.      
  719.         strcpy(res_str, str1);
  720. strcat(res_str, " ");
  721.         strcat(res_str, str2);
  722. strcat(res_str, " ");
  723. strcat(res_str, str3);
  724. strcat(res_str, " ");
  725. strcat(res_str, str4);
  726. strcat(res_str, " ");
  727. strcat(res_str, str5);
  728. free(str1);
  729. free(str2);
  730. free(str3);
  731. free(str4);
  732. free(str5);
  733.         return(res_str);
  734. }    
  735. static char *
  736. make_name(void)
  737. {
  738. char * name = (char *)mm_alloc(yyleng + 1);
  739. strncpy(name, yytext, yyleng);
  740. name[yyleng] = '';
  741. return(name);
  742. }
  743. static void
  744. output_statement(char * stmt, int mode)
  745. {
  746. int i, j=strlen(stmt);
  747. fprintf(yyout, "{ ECPGdo(__LINE__, %s, "", connection ? connection : "NULL");
  748. /* do this char by char as we have to filter '"' */
  749. for (i = 0;i < j; i++)
  750. if (stmt[i] != '"')
  751. fputc(stmt[i], yyout);
  752. fputs("", ", yyout);
  753. /* dump variables to C file*/
  754. dump_variables(argsinsert, 1);
  755. fputs("ECPGt_EOIT, ", yyout);
  756. dump_variables(argsresult, 1);
  757. fputs("ECPGt_EORT);", yyout);
  758. mode |= 2;
  759. whenever_action(mode);
  760. free(stmt);
  761. if (connection != NULL)
  762. free(connection);
  763. }
  764. static struct typedefs *
  765. get_typedef(char *name)
  766. {
  767. struct typedefs *this;
  768. for (this = types; this && strcmp(this->name, name); this = this->next);
  769. if (!this)
  770. {
  771. sprintf(errortext, "invalid datatype '%s'", name);
  772. yyerror(errortext);
  773. }
  774. return(this);
  775. }
  776. static void
  777. adjust_array(enum ECPGttype type_enum, int *dimension, int *length, int type_dimension, int type_index, bool pointer)
  778. {
  779. if (type_index >= 0) 
  780. {
  781. if (*length >= 0)
  782.                        yyerror("No multi-dimensional array support");
  783. *length = type_index;
  784. }
  785.        
  786. if (type_dimension >= 0)
  787. {
  788. if (*dimension >= 0 && *length >= 0)
  789. yyerror("No multi-dimensional array support");
  790. if (*dimension >= 0)
  791. *length = *dimension;
  792. *dimension = type_dimension;
  793. }
  794. if (*length >= 0 && *dimension >= 0 && pointer)
  795. yyerror("No multi-dimensional array support");
  796. switch (type_enum)
  797. {
  798.    case ECPGt_struct:
  799.    case ECPGt_union:
  800.         /* pointer has to get dimension 0 */
  801.                 if (pointer)
  802.         {
  803.     *length = *dimension;
  804.                     *dimension = 0;
  805.         }
  806.                 if (*length >= 0)
  807.                    yyerror("No multi-dimensional array support for structures");
  808.                 break;
  809.            case ECPGt_varchar:
  810.         /* pointer has to get dimension 0 */
  811.                 if (pointer)
  812.                     *dimension = 0;
  813.                 /* one index is the string length */
  814.                 if (*length < 0)
  815.                 {
  816.                    *length = *dimension;
  817.                    *dimension = -1;
  818.                 }
  819.                 break;
  820.            case ECPGt_char:
  821.            case ECPGt_unsigned_char:
  822.         /* pointer has to get length 0 */
  823.                 if (pointer)
  824.                     *length=0;
  825.                 /* one index is the string length */
  826.                 if (*length < 0)
  827.                 {
  828.                    *length = (*dimension < 0) ? 1 : *dimension;
  829.                    *dimension = -1;
  830.                 }
  831.                 break;
  832.            default:
  833.           /* a pointer has dimension = 0 */
  834.                 if (pointer) {
  835.                     *length = *dimension;
  836.     *dimension = 0;
  837.         }
  838.                 if (*length >= 0)
  839.                    yyerror("No multi-dimensional array support for simple data types");
  840.                 break;
  841. }
  842. }
  843. #line 651 "preproc.y"
  844. typedef union {
  845. double                  dval;
  846.         int                     ival;
  847. char *                  str;
  848. struct when             action;
  849. struct index index;
  850. int tagname;
  851. struct this_type type;
  852. enum ECPGttype type_enum;
  853. } YYSTYPE;
  854. #include <stdio.h>
  855. #ifndef __cplusplus
  856. #ifndef __STDC__
  857. #define const
  858. #endif
  859. #endif
  860. #define YYFINAL 2494
  861. #define YYFLAG -32768
  862. #define YYNTBASE 313
  863. #define YYTRANSLATE(x) ((unsigned)(x) <= 547 ? yytranslate[x] : 683)
  864. static const short yytranslate[] = {     0,
  865.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  866.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  867.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  868.      2,     2,     2,     2,     2,     2,   299,     2,     2,   308,
  869.    309,   297,   295,   307,   296,   304,   298,     2,     2,     2,
  870.      2,     2,     2,     2,     2,     2,     2,   301,   302,   293,
  871.    292,   294,     2,     2,     2,     2,     2,     2,     2,     2,
  872.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  873.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  874.    305,     2,   306,     2,     2,     2,     2,     2,     2,     2,
  875.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  876.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  877.      2,     2,   310,   300,   311,     2,     2,     2,     2,     2,
  878.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  879.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  880.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  881.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  882.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  883.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  884.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  885.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  886.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  887.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  888.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  889.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  890.      2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
  891.      7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
  892.     17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
  893.     27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
  894.     37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
  895.     47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
  896.     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
  897.     67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
  898.     77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
  899.     87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
  900.     97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
  901.    107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
  902.    117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
  903.    127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
  904.    137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
  905.    147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
  906.    157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
  907.    167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
  908.    177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
  909.    187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
  910.    197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
  911.    207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
  912.    217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
  913.    227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
  914.    237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
  915.    247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
  916.    257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
  917.    267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
  918.    277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
  919.    287,   288,   289,   290,   291,   303,   312
  920. };
  921. #if YYDEBUG != 0
  922. static const short yyprhs[] = {     0,
  923.      0,     2,     3,     6,    11,    15,    17,    19,    21,    23,
  924.     25,    28,    30,    32,    34,    36,    38,    40,    42,    44,
  925.     46,    48,    50,    52,    54,    56,    58,    60,    62,    64,
  926.     66,    68,    70,    72,    74,    76,    78,    80,    82,    84,
  927.     86,    88,    90,    92,    94,    96,    98,   100,   102,   104,
  928.    106,   108,   110,   112,   114,   116,   118,   120,   122,   124,
  929.    126,   128,   130,   132,   134,   136,   138,   140,   142,   151,
  930.    160,   164,   168,   169,   171,   173,   174,   176,   178,   179,
  931.    183,   185,   189,   190,   194,   195,   200,   205,   210,   216,
  932.    220,   223,   225,   227,   229,   231,   233,   235,   238,   242,
  933.    247,   250,   254,   259,   265,   269,   274,   278,   285,   291,
  934.    294,   297,   305,   307,   309,   311,   313,   315,   317,   318,
  935.    321,   322,   326,   327,   336,   338,   341,   343,   345,   346,
  936.    348,   350,   354,   356,   357,   359,   361,   365,   369,   371,
  937.    372,   375,   377,   380,   381,   385,   387,   392,   395,   398,
  938.    401,   403,   406,   412,   416,   418,   420,   423,   427,   431,
  939.    435,   439,   443,   447,   451,   455,   458,   461,   465,   472,
  940.    476,   480,   485,   489,   492,   495,   497,   499,   504,   506,
  941.    511,   513,   515,   519,   521,   526,   531,   537,   548,   552,
  942.    554,   556,   558,   560,   563,   567,   571,   575,   579,   583,
  943.    587,   591,   595,   598,   601,   605,   612,   616,   620,   625,
  944.    629,   633,   638,   642,   646,   649,   652,   655,   658,   662,
  945.    665,   670,   674,   678,   683,   688,   694,   701,   707,   714,
  946.    718,   720,   722,   725,   728,   729,   732,   734,   735,   739,
  947.    743,   746,   748,   751,   754,   759,   760,   768,   772,   773,
  948.    777,   779,   781,   786,   789,   790,   793,   795,   798,   801,
  949.    804,   807,   809,   811,   813,   816,   818,   821,   831,   833,
  950.    834,   839,   854,   856,   858,   860,   864,   870,   872,   874,
  951.    876,   880,   882,   883,   885,   887,   889,   893,   894,   896,
  952.    898,   900,   902,   908,   912,   915,   917,   919,   921,   923,
  953.    925,   927,   929,   931,   935,   937,   941,   945,   947,   951,
  954.    953,   955,   957,   959,   962,   966,   970,   977,   982,   984,
  955.    986,   988,   990,   991,   993,   996,   998,  1000,  1002,  1003,
  956.   1006,  1009,  1010,  1018,  1021,  1023,  1025,  1027,  1031,  1033,
  957.   1035,  1037,  1039,  1041,  1043,  1046,  1048,  1052,  1053,  1060,
  958.   1072,  1074,  1075,  1078,  1079,  1081,  1083,  1087,  1089,  1096,
  959.   1100,  1103,  1106,  1107,  1109,  1112,  1113,  1118,  1130,  1133,
  960.   1134,  1138,  1141,  1143,  1147,  1150,  1152,  1153,  1157,  1159,
  961.   1161,  1163,  1165,  1170,  1172,  1174,  1179,  1186,  1188,  1190,
  962.   1192,  1194,  1196,  1198,  1200,  1202,  1204,  1206,  1208,  1212,
  963.   1216,  1220,  1230,  1232,  1233,  1235,  1236,  1237,  1251,  1253,
  964.   1255,  1257,  1261,  1265,  1267,  1269,  1272,  1276,  1279,  1281,
  965.   1283,  1285,  1287,  1291,  1293,  1295,  1297,  1299,  1301,  1303,
  966.   1304,  1307,  1310,  1313,  1316,  1319,  1322,  1325,  1328,  1331,
  967.   1333,  1335,  1336,  1342,  1345,  1352,  1356,  1360,  1361,  1365,
  968.   1366,  1368,  1370,  1371,  1373,  1375,  1376,  1380,  1385,  1389,
  969.   1395,  1397,  1398,  1400,  1401,  1405,  1406,  1408,  1412,  1416,
  970.   1418,  1420,  1422,  1424,  1426,  1428,  1433,  1438,  1441,  1443,
  971.   1451,  1456,  1460,  1461,  1465,  1467,  1470,  1475,  1480,  1484,
  972.   1485,  1489,  1492,  1495,  1497,  1499,  1501,  1508,  1509,  1517,
  973.   1519,  1521,  1523,  1526,  1527,  1532,  1536,  1538,  1542,  1547,
  974.   1552,  1561,  1566,  1569,  1570,  1572,  1573,  1575,  1576,  1578,
  975.   1582,  1584,  1585,  1589,  1590,  1592,  1596,  1599,  1602,  1605,
  976.   1608,  1610,  1612,  1613,  1618,  1623,  1626,  1631,  1634,  1635,
  977.   1637,  1639,  1641,  1643,  1645,  1647,  1648,  1650,  1652,  1656,
  978.   1660,  1661,  1664,  1665,  1669,  1673,  1674,  1677,  1678,  1681,
  979.   1682,  1686,  1688,  1690,  1694,  1696,  1700,  1703,  1705,  1707,
  980.   1712,  1715,  1718,  1720,  1725,  1730,  1734,  1737,  1740,  1743,
  981.   1745,  1747,  1748,  1750,  1751,  1756,  1759,  1763,  1765,  1767,
  982.   1770,  1771,  1773,  1776,  1780,  1785,  1786,  1790,  1795,  1796,
  983.   1798,  1802,  1806,  1810,  1814,  1818,  1822,  1825,  1828,  1830,
  984.   1832,  1834,  1836,  1838,  1840,  1842,  1844,  1846,  1848,  1850,
  985.   1852,  1854,  1856,  1858,  1860,  1862,  1864,  1866,  1868,  1870,
  986.   1872,  1874,  1876,  1878,  1880,  1882,  1884,  1886,  1888,  1890,
  987.   1892,  1894,  1896,  1898,  1900,  1902,  1904,  1906,  1908,  1911,
  988.   1914,  1917,  1920,  1922,  1925,  1927,  1929,  1933,  1934,  1940,
  989.   1944,  1945,  1951,  1955,  1956,  1961,  1963,  1968,  1971,  1973,
  990.   1977,  1980,  1982,  1983,  1987,  1988,  1991,  1992,  1994,  1997,
  991.   1999,  2002,  2004,  2006,  2008,  2010,  2012,  2014,  2018,  2019,
  992.   2021,  2025,  2029,  2033,  2037,  2041,  2045,  2049,  2050,  2052,
  993.   2054,  2062,  2071,  2080,  2088,  2096,  2100,  2102,  2104,  2106,
  994.   2108,  2110,  2112,  2114,  2116,  2118,  2120,  2122,  2126,  2128,
  995.   2131,  2133,  2135,  2137,  2140,  2143,  2146,  2150,  2154,  2158,
  996.   2162,  2166,  2170,  2174,  2178,  2182,  2186,  2189,  2192,  2196,
  997.   2203,  2207,  2211,  2215,  2220,  2223,  2226,  2231,  2235,  2240,
  998.   2242,  2244,  2249,  2251,  2256,  2258,  2260,  2265,  2270,  2275,
  999.   2280,  2286,  2292,  2298,  2303,  2306,  2310,  2313,  2318,  2322,
  1000.   2327,  2331,  2336,  2342,  2349,  2355,  2362,  2368,  2374,  2380,
  1001.   2386,  2392,  2398,  2404,  2410,  2416,  2423,  2430,  2437,  2444,
  1002.   2451,  2458,  2465,  2472,  2479,  2486,  2493,  2500,  2507,  2514,
  1003.   2521,  2528,  2535,  2542,  2546,  2550,  2553,  2555,  2557,  2560,
  1004.   2562,  2564,  2567,  2570,  2573,  2577,  2581,  2585,  2589,  2593,
  1005.   2596,  2599,  2603,  2610,  2614,  2618,  2621,  2624,  2628,  2633,
  1006.   2635,  2637,  2642,  2644,  2649,  2651,  2653,  2658,  2663,  2669,
  1007.   2675,  2681,  2686,  2688,  2693,  2700,  2701,  2703,  2707,  2711,
  1008.   2715,  2716,  2718,  2720,  2722,  2724,  2728,  2729,  2732,  2734,
  1009.   2737,  2741,  2745,  2749,  2753,  2757,  2760,  2764,  2771,  2775,
  1010.   2779,  2782,  2785,  2787,  2791,  2796,  2801,  2806,  2812,  2818,
  1011.   2824,  2829,  2833,  2834,  2837,  2838,  2841,  2842,  2846,  2849,
  1012.   2851,  2853,  2855,  2857,  2861,  2863,  2865,  2867,  2871,  2877,
  1013.   2884,  2889,  2892,  2894,  2899,  2902,  2903,  2906,  2908,  2909,
  1014.   2913,  2917,  2919,  2923,  2927,  2931,  2933,  2935,  2940,  2943,
  1015.   2947,  2951,  2953,  2957,  2959,  2963,  2965,  2967,  2968,  2970,
  1016.   2972,  2974,  2976,  2978,  2980,  2982,  2984,  2986,  2988,  2990,
  1017.   2992,  2994,  2997,  2999,  3001,  3003,  3006,  3008,  3010,  3012,
  1018.   3014,  3016,  3018,  3020,  3022,  3024,  3026,  3028,  3030,  3032,
  1019.   3034,  3036,  3038,  3040,  3042,  3044,  3046,  3048,  3050,  3052,
  1020.   3054,  3056,  3058,  3060,  3062,  3064,  3066,  3068,  3070,  3072,
  1021.   3074,  3076,  3078,  3080,  3082,  3084,  3086,  3088,  3090,  3092,
  1022.   3094,  3096,  3098,  3100,  3102,  3104,  3106,  3108,  3110,  3112,
  1023.   3114,  3116,  3118,  3120,  3122,  3124,  3126,  3128,  3130,  3132,
  1024.   3134,  3136,  3138,  3140,  3142,  3144,  3146,  3148,  3150,  3152,
  1025.   3154,  3156,  3158,  3160,  3162,  3164,  3166,  3168,  3170,  3172,
  1026.   3174,  3176,  3178,  3180,  3182,  3184,  3186,  3188,  3190,  3192,
  1027.   3194,  3196,  3198,  3200,  3202,  3204,  3206,  3208,  3210,  3212,
  1028.   3214,  3216,  3218,  3220,  3222,  3224,  3226,  3228,  3230,  3232,
  1029.   3234,  3236,  3238,  3240,  3242,  3244,  3246,  3248,  3250,  3252,
  1030.   3254,  3256,  3258,  3260,  3262,  3264,  3266,  3268,  3270,  3272,
  1031.   3274,  3276,  3278,  3280,  3282,  3284,  3286,  3288,  3290,  3292,
  1032.   3294,  3296,  3298,  3300,  3302,  3304,  3306,  3308,  3310,  3312,
  1033.   3314,  3320,  3324,  3327,  3331,  3338,  3340,  3342,  3345,  3348,
  1034.   3350,  3351,  3353,  3357,  3360,  3361,  3364,  3365,  3368,  3369,
  1035.   3371,  3375,  3380,  3384,  3386,  3388,  3390,  3392,  3395,  3396,
  1036.   3403,  3407,  3408,  3413,  3419,  3425,  3426,  3429,  3430,  3431,
  1037.   3438,  3440,  3442,  3444,  3446,  3448,  3450,  3451,  3453,  3455,
  1038.   3457,  3459,  3461,  3463,  3468,  3471,  3476,  3481,  3484,  3487,
  1039.   3488,  3490,  3492,  3495,  3497,  3500,  3502,  3505,  3507,  3509,
  1040.   3511,  3513,  3516,  3518,  3520,  3524,  3529,  3530,  3533,  3534,
  1041.   3536,  3540,  3543,  3545,  3547,  3549,  3550,  3552,  3554,  3558,
  1042.   3559,  3564,  3566,  3568,  3571,  3575,  3576,  3579,  3581,  3585,
  1043.   3590,  3593,  3598,  3600,  3602,  3604,  3606,  3611,  3618,  3622,
  1044.   3626,  3631,  3636,  3637,  3641,  3645,  3650,  3655,  3656,  3658,
  1045.   3659,  3661,  3663,  3665,  3667,  3670,  3672,  3675,  3678,  3680,
  1046.   3683,  3686,  3689,  3690,  3696,  3697,  3703,  3705,  3707,  3708,
  1047.   3709,  3712,  3713,  3718,  3720,  3724,  3728,  3735,  3739,  3744,
  1048.   3748,  3750,  3752,  3754,  3757,  3761,  3767,  3770,  3776,  3779,
  1049.   3781,  3783,  3785,  3788,  3791,  3794,  3798,  3802,  3806,  3810,
  1050.   3814,  3818,  3822,  3826,  3830,  3834,  3837,  3840,  3844,  3851,
  1051.   3855,  3859,  3863,  3868,  3871,  3874,  3879,  3883,  3888,  3890,
  1052.   3892,  3897,  3899,  3904,  3906,  3908,  3913,  3918,  3923,  3928,
  1053.   3934,  3940,  3946,  3951,  3954,  3958,  3961,  3966,  3970,  3975,
  1054.   3979,  3984,  3990,  3997,  4003,  4010,  4016,  4022,  4028,  4034,
  1055.   4040,  4046,  4052,  4058,  4064,  4071,  4078,  4085,  4092,  4099,
  1056.   4106,  4113,  4120,  4127,  4134,  4141,  4148,  4155,  4162,  4169,
  1057.   4176,  4183,  4190,  4194,  4198,  4201,  4203,  4205,  4207,  4211,
  1058.   4213,  4214,  4217,  4219,  4222,  4225,  4228,  4230,  4232,  4233,
  1059.   4235,  4238,  4241,  4243,  4245,  4247,  4249,  4251,  4254,  4256,
  1060.   4258,  4260,  4262,  4264,  4266,  4268,  4270,  4272,  4274,  4276,
  1061.   4278,  4280,  4282,  4284,  4286,  4288,  4290,  4292,  4294,  4296,
  1062.   4298,  4300,  4302,  4304,  4306,  4308,  4310,  4312,  4314,  4316,
  1063.   4318,  4320,  4322,  4324,  4326,  4328,  4330,  4332,  4334,  4336,
  1064.   4338,  4340,  4342,  4344,  4348,  4350
  1065. };
  1066. static const short yyrhs[] = {   314,
  1067.      0,     0,   314,   315,     0,   665,   316,   317,   302,     0,
  1068.    665,   317,   302,     0,   607,     0,   677,     0,   675,     0,
  1069.    681,     0,   682,     0,     3,   593,     0,   333,     0,   319,
  1070.      0,   335,     0,   336,     0,   342,     0,   367,     0,   371,
  1071.      0,   377,     0,   380,     0,   318,     0,   460,     0,   390,
  1072.      0,   398,     0,   379,     0,   389,     0,   320,     0,   419,
  1073.      0,   466,     0,   399,     0,   403,     0,   410,     0,   448,
  1074.      0,   449,     0,   474,     0,   420,     0,   428,     0,   431,
  1075.      0,   430,     0,   426,     0,   435,     0,   409,     0,   467,
  1076.      0,   438,     0,   450,     0,   452,     0,   453,     0,   454,
  1077.      0,   459,     0,   461,     0,   327,     0,   331,     0,   332,
  1078.      0,   592,     0,   605,     0,   606,     0,   630,     0,   631,
  1079.      0,   634,     0,   637,     0,   638,     0,   641,     0,   642,
  1080.      0,   643,     0,   646,     0,   647,     0,   660,     0,   661,
  1081.      0,    86,   193,   587,   321,   322,   323,   325,   326,     0,
  1082.     65,   193,   587,   321,   322,   323,   325,   326,     0,   102,
  1083.    193,   587,     0,   201,   260,   587,     0,     0,   220,     0,
  1084.    251,     0,     0,   221,     0,   252,     0,     0,   324,   307,
  1085.    587,     0,   587,     0,   121,   118,   324,     0,     0,   279,
  1086.    277,   586,     0,     0,   175,   589,   185,   329,     0,   175,
  1087.    589,   292,   329,     0,   175,   181,   204,   330,     0,   175,
  1088.    187,   129,   135,   328,     0,   175,   141,   458,     0,   166,
  1089.    206,     0,   207,     0,   586,     0,    97,     0,   586,     0,
  1090.     97,     0,   137,     0,   271,   589,     0,   271,   181,   204,
  1091.      0,   271,   187,   129,   135,     0,   263,   589,     0,   263,
  1092.    181,   204,     0,   263,   187,   129,   135,     0,    65,   177,
  1093.    573,   496,   334,     0,    63,   437,   348,     0,    63,   308,
  1094.    346,   309,     0,   102,   437,   589,     0,    65,   437,   589,
  1095.    175,    97,   355,     0,    65,   437,   589,   102,    97,     0,
  1096.     63,   357,     0,    80,   572,     0,   219,   339,   573,   340,
  1097.    337,   338,   341,     0,   185,     0,   114,     0,   586,     0,
  1098.    274,     0,   275,     0,   216,     0,     0,   201,   258,     0,
  1099.      0,   194,   224,   586,     0,     0,    86,   343,   177,   573,
  1100.    308,   346,   309,   366,     0,   344,     0,   345,   344,     0,
  1101.    178,     0,   179,     0,     0,   116,     0,   137,     0,   346,
  1102.    307,   347,     0,   347,     0,     0,   348,     0,   356,     0,
  1103.    589,   521,   349,     0,   589,   267,   351,     0,   350,     0,
  1104.      0,   350,   352,     0,   352,     0,   161,   131,     0,     0,
  1105.     85,   579,   353,     0,   353,     0,    79,   308,   359,   309,
  1106.      0,    97,   149,     0,    97,   355,     0,   147,   149,     0,
  1107.    191,     0,   161,   131,     0,   167,   589,   470,   362,   363,
  1108.      0,   354,   307,   355,     0,   355,     0,   582,     0,   296,
  1109.    355,     0,   355,   295,   355,     0,   355,   296,   355,     0,
  1110.    355,   298,   355,     0,   355,   299,   355,     0,   355,   297,
  1111.    355,     0,   355,   292,   355,     0,   355,   293,   355,     0,
  1112.    355,   294,   355,     0,   302,   355,     0,   300,   355,     0,
  1113.    355,    60,   521,     0,    76,   308,   355,    68,   521,   309,
  1114.      0,   308,   355,   309,     0,   580,   308,   309,     0,   580,
  1115.    308,   354,   309,     0,   355,   284,   355,     0,   284,   355,
  1116.      0,   355,   284,     0,    89,     0,    90,     0,    90,   308,
  1117.    584,   309,     0,    91,     0,    91,   308,   584,   309,     0,
  1118.     92,     0,   193,     0,    85,   579,   357,     0,   357,     0,
  1119.     79,   308,   359,   309,     0,   191,   308,   471,   309,     0,
  1120.    161,   131,   308,   471,   309,     0,   113,   131,   308,   471,
  1121.    309,   167,   589,   470,   362,   363,     0,   358,   307,   359,
  1122.      0,   359,     0,   582,     0,   149,     0,   589,     0,   296,
  1123.    359,     0,   359,   295,   359,     0,   359,   296,   359,     0,
  1124.    359,   298,   359,     0,   359,   299,   359,     0,   359,   297,
  1125.    359,     0,   359,   292,   359,     0,   359,   293,   359,     0,
  1126.    359,   294,   359,     0,   302,   359,     0,   300,   359,     0,
  1127.    359,    60,   521,     0,    76,   308,   359,    68,   521,   309,
  1128.      0,   308,   359,   309,     0,   580,   308,   309,     0,   580,
  1129.    308,   358,   309,     0,   359,   284,   359,     0,   359,   136,
  1130.    359,     0,   359,   147,   136,   359,     0,   359,    66,   359,
  1131.      0,   359,   155,   359,     0,   147,   359,     0,   284,   359,
  1132.      0,   359,   284,     0,   359,   238,     0,   359,   128,   149,
  1133.      0,   359,   256,     0,   359,   128,   147,   149,     0,   359,
  1134.    128,   189,     0,   359,   128,   109,     0,   359,   128,   147,
  1135.    189,     0,   359,   128,   147,   109,     0,   359,   121,   308,
  1136.    360,   309,     0,   359,   147,   121,   308,   360,   309,     0,
  1137.    359,    71,   361,    66,   361,     0,   359,   147,    71,   361,
  1138.     66,   361,     0,   360,   307,   361,     0,   361,     0,   582,
  1139.      0,   138,   115,     0,   138,   158,     0,     0,   364,   364,
  1140.      0,   364,     0,     0,   152,    98,   365,     0,   152,   192,
  1141.    365,     0,   146,    62,     0,    74,     0,   175,    97,     0,
  1142.    175,   149,     0,   236,   308,   497,   309,     0,     0,    86,
  1143.    343,   177,   573,   368,    68,   484,     0,   308,   369,   309,
  1144.      0,     0,   369,   307,   370,     0,   370,     0,   589,     0,
  1145.     86,   268,   573,   372,     0,   372,   373,     0,     0,   217,
  1146.    376,     0,   222,     0,   234,   376,     0,   246,   376,     0,
  1147.    247,   376,     0,   272,   376,     0,   375,     0,   376,     0,
  1148.    585,     0,   296,   585,     0,   584,     0,   296,   584,     0,
  1149.     86,   378,   261,   132,   586,   233,   393,   239,   586,     0,
  1150.    276,     0,     0,   102,   261,   132,   586,     0,    86,   205,
  1151.    579,   381,   382,   152,   573,   384,   106,   164,   579,   308,
  1152.    387,   309,     0,   215,     0,   211,     0,   383,     0,   383,
  1153.    155,   383,     0,   383,   155,   383,   155,   383,     0,   124,
  1154.      0,    98,     0,   192,     0,   112,   385,   386,     0,   226,
  1155.      0,     0,   265,     0,   273,     0,   388,     0,   387,   307,
  1156.    388,     0,     0,   584,     0,   585,     0,   586,     0,   673,
  1157.      0,   102,   205,   579,   152,   573,     0,    86,   392,   391,
  1158.      0,   393,   394,     0,   259,     0,   208,     0,   212,     0,
  1159.    164,     0,   130,     0,   589,     0,   433,     0,   284,     0,
  1160.    308,   395,   309,     0,   396,     0,   395,   307,   396,     0,
  1161.    393,   292,   397,     0,   393,     0,    97,   292,   397,     0,
  1162.    589,     0,   432,     0,   374,     0,   586,     0,   269,   589,
  1163.      0,   102,   177,   497,     0,   102,   268,   497,     0,   110,
  1164.    400,   401,   402,   127,   664,     0,   249,   400,   401,   402,
  1165.      0,   231,     0,   214,     0,   168,     0,    61,     0,     0,
  1166.    584,     0,   296,   584,     0,    64,     0,   145,     0,   162,
  1167.      0,     0,   121,   579,     0,   114,   579,     0,     0,   117,
  1168.    404,   152,   497,   185,   407,   408,     0,    64,   163,     0,
  1169.     64,     0,   405,     0,   406,     0,   405,   307,   406,     0,
  1170.    174,     0,   124,     0,   192,     0,    98,     0,   266,     0,
  1171.    165,     0,   118,   589,     0,   589,     0,   201,   117,   154,
  1172.      0,     0,   169,   404,   152,   497,   114,   407,     0,    86,
  1173.    411,   235,   578,   152,   573,   412,   308,   413,   309,   421,
  1174.      0,   191,     0,     0,   194,   575,     0,     0,   414,     0,
  1175.    415,     0,   414,   307,   416,     0,   416,     0,   580,   308,
  1176.    498,   309,   417,   418,     0,   576,   417,   418,     0,   301,
  1177.    521,     0,   112,   521,     0,     0,   577,     0,   194,   577,
  1178.      0,     0,   230,   235,   578,   516,     0,    86,   232,   580,
  1179.    422,   264,   424,   421,    68,   586,   132,   586,     0,   201,
  1180.    394,     0,     0,   308,   423,   309,     0,   308,   309,     0,
  1181.    588,     0,   423,   307,   588,     0,   425,   588,     0,   269,
  1182.      0,     0,   102,   427,   579,     0,   208,     0,   235,     0,
  1183.    266,     0,   198,     0,   102,   212,   579,   429,     0,   579,
  1184.      0,   297,     0,   102,   232,   580,   422,     0,   102,   259,
  1185.    432,   308,   434,   309,     0,   284,     0,   433,     0,   295,
  1186.      0,   296,     0,   297,     0,   299,     0,   298,     0,   293,
  1187.      0,   294,     0,   292,     0,   579,     0,   579,   307,   579,
  1188.      0,   253,   307,   579,     0,   579,   307,   253,     0,    65,
  1189.    177,   573,   496,   262,   437,   436,   185,   579,     0,   579,
  1190.      0,     0,    83,     0,     0,     0,    86,   266,   579,    68,
  1191.    439,   152,   445,   185,   444,   516,   225,   446,   440,     0,
  1192.    254,     0,   482,     0,   443,     0,   305,   441,   306,     0,
  1193.    308,   441,   309,     0,   442,     0,   443,     0,   442,   443,
  1194.      0,   442,   443,   302,     0,   443,   302,     0,   468,     0,
  1195.    478,     0,   473,     0,   447,     0,   573,   304,   576,     0,
  1196.    573,     0,   174,     0,   192,     0,    98,     0,   124,     0,
  1197.    237,     0,     0,   255,   573,     0,   241,   573,     0,   242,
  1198.    573,     0,   242,   297,     0,   209,   451,     0,    70,   451,
  1199.      0,    84,   451,     0,   104,   451,     0,   171,   451,     0,
  1200.    202,     0,   187,     0,     0,    86,   198,   579,    68,   482,
  1201.      0,   243,   581,     0,    86,   223,   574,   201,   455,   456,
  1202.      0,    86,   223,   574,     0,   244,   292,   457,     0,     0,
  1203.    227,   292,   458,     0,     0,   586,     0,    97,     0,     0,
  1204.    586,     0,    97,     0,     0,   102,   223,   574,     0,   218,
  1205.    578,   152,   573,     0,   278,   462,   463,     0,   278,   462,
  1206.    463,   573,   464,     0,   280,     0,     0,   213,     0,     0,
  1207.    308,   465,   309,     0,     0,   579,     0,   465,   307,   579,
  1208.      0,   229,   462,   467,     0,   482,     0,   479,     0,   478,
  1209.      0,   468,     0,   447,     0,   473,     0,   124,   127,   573,
  1210.    469,     0,   195,   308,   570,   309,     0,    97,   195,     0,
  1211.    482,     0,   308,   471,   309,   195,   308,   570,   309,     0,
  1212.    308,   471,   309,   482,     0,   308,   471,   309,     0,     0,
  1213.    471,   307,   472,     0,   472,     0,   589,   547,     0,    98,
  1214.    114,   573,   516,     0,   245,   486,   573,   475,     0,   121,
  1215.    476,   248,     0,     0,   270,   265,   228,     0,   265,   477,
  1216.      0,   210,   477,     0,   477,     0,   270,     0,   228,     0,
  1217.    192,   573,   175,   568,   503,   516,     0,     0,    96,   579,
  1218.    481,    93,   112,   480,   482,     0,   216,     0,   123,     0,
  1219.    172,     0,   123,   172,     0,     0,   483,   489,   501,   493,
  1220.      0,   308,   483,   309,     0,   484,     0,   483,   105,   483,
  1221.      0,   483,   190,   487,   483,     0,   483,   125,   487,   483,
  1222.      0,   174,   488,   570,   485,   503,   516,   499,   500,     0,
  1223.    127,   343,   486,   573,     0,   127,   664,     0,     0,   177,
  1224.      0,     0,    64,     0,     0,   100,     0,   100,   152,   589,
  1225.      0,    64,     0,     0,   156,    73,   490,     0,     0,   491,
  1226.      0,   490,   307,   491,     0,   545,   492,     0,   194,   284,
  1227.      0,   194,   293,     0,   194,   294,     0,    69,     0,    99,
  1228.      0,     0,   240,   494,   307,   495,     0,   240,   494,   257,
  1229.    495,     0,   240,   494,     0,   257,   495,   240,   494,     0,
  1230.    257,   495,     0,     0,   584,     0,    64,     0,   289,     0,
  1231.    584,     0,   289,     0,   297,     0,     0,   498,     0,   579,
  1232.      0,   498,   307,   579,     0,   118,    73,   548,     0,     0,
  1233.    119,   545,     0,     0,   112,   192,   502,     0,   112,   166,
  1234.    153,     0,     0,   151,   465,     0,     0,   114,   504,     0,
  1235.      0,   308,   507,   309,     0,   508,     0,   505,     0,   505,
  1236.    307,   506,     0,   506,     0,   517,    68,   590,     0,   517,
  1237.    589,     0,   517,     0,   508,     0,   506,   190,   130,   506,
  1238.      0,   506,   509,     0,   509,   510,     0,   510,     0,   511,
  1239.    130,   506,   513,     0,   143,   511,   130,   506,     0,    87,
  1240.    130,   506,     0,   115,   512,     0,   134,   512,     0,   170,
  1241.    512,     0,   157,     0,   122,     0,     0,   157,     0,     0,
  1242.    194,   308,   514,   309,     0,   152,   545,     0,   514,   307,
  1243.    515,     0,   515,     0,   589,     0,   200,   545,     0,     0,
  1244.    573,     0,   573,   297,     0,   305,   306,   519,     0,   305,
  1245.    520,   306,   519,     0,     0,   305,   306,   519,     0,   305,
  1246.    520,   306,   519,     0,     0,   584,     0,   308,   520,   309,
  1247.      0,   520,   295,   520,     0,   520,   296,   520,     0,   520,
  1248.    297,   520,     0,   520,   298,   520,     0,   520,   299,   520,
  1249.      0,   522,   518,     0,   269,   522,     0,   523,     0,   535,
  1250.      0,   525,     0,   530,     0,   524,     0,   673,     0,   208,
  1251.      0,     3,     0,     4,     0,     5,     0,     6,     0,     7,
  1252.      0,     8,     0,     9,     0,    10,     0,    11,     0,    12,
  1253.      0,    14,     0,    16,     0,    17,     0,    18,     0,    19,
  1254.      0,    20,     0,    21,     0,    22,     0,    23,     0,    24,
  1255.      0,    25,     0,    26,     0,    28,     0,    29,     0,    30,
  1256.      0,    31,     0,    32,     0,    33,     0,    35,     0,    36,
  1257.      0,    37,     0,    38,     0,    39,     0,   111,   527,     0,
  1258.    101,   160,     0,    95,   529,     0,   150,   528,     0,   111,
  1259.      0,   101,   160,     0,    95,     0,   150,     0,   308,   584,
  1260.    309,     0,     0,   308,   584,   307,   584,   309,     0,   308,
  1261.    584,   309,     0,     0,   308,   584,   307,   584,   309,     0,
  1262.    308,   584,   309,     0,     0,   531,   308,   584,   309,     0,
  1263.    531,     0,    78,   532,   533,   534,     0,    77,   532,     0,
  1264.    196,     0,   142,    78,   532,     0,   144,   532,     0,   197,
  1265.      0,     0,    78,   175,   589,     0,     0,    82,   589,     0,
  1266.      0,   536,     0,   182,   537,     0,   181,     0,   126,   538,
  1267.      0,   203,     0,   140,     0,    94,     0,   120,     0,   139,
  1268.      0,   173,     0,   201,   181,   204,     0,     0,   536,     0,
  1269.    203,   185,   140,     0,    94,   185,   120,     0,    94,   185,
  1270.    139,     0,    94,   185,   173,     0,   120,   185,   139,     0,
  1271.    139,   185,   173,     0,   120,   185,   173,     0,     0,   545,
  1272.      0,   149,     0,   308,   541,   309,   121,   308,   484,   309,
  1273.      0,   308,   541,   309,   147,   121,   308,   484,   309,     0,
  1274.    308,   541,   309,   542,   543,   308,   484,   309,     0,   308,
  1275.    541,   309,   542,   308,   484,   309,     0,   308,   541,   309,
  1276.    542,   308,   541,   309,     0,   544,   307,   545,     0,   284,
  1277.      0,   293,     0,   292,     0,   294,     0,   295,     0,   296,
  1278.      0,   297,     0,   299,     0,   298,     0,    67,     0,    64,
  1279.      0,   544,   307,   545,     0,   545,     0,   566,   547,     0,
  1280.    540,     0,   582,     0,   589,     0,   296,   545,     0,   299,
  1281.    545,     0,   545,   299,     0,   545,   295,   545,     0,   545,
  1282.    296,   545,     0,   545,   298,   545,     0,   545,   299,   545,
  1283.      0,   545,   297,   545,     0,   545,   293,   545,     0,   545,
  1284.    294,   545,     0,   545,   292,   149,     0,   149,   292,   545,
  1285.      0,   545,   292,   545,     0,   302,   545,     0,   300,   545,
  1286.      0,   545,    60,   521,     0,    76,   308,   545,    68,   521,
  1287.    309,     0,   308,   539,   309,     0,   545,   284,   545,     0,
  1288.    545,   136,   545,     0,   545,   147,   136,   545,     0,   284,
  1289.    545,     0,   545,   284,     0,   580,   308,   297,   309,     0,
  1290.    580,   308,   309,     0,   580,   308,   548,   309,     0,    89,
  1291.      0,    90,     0,    90,   308,   584,   309,     0,    91,     0,
  1292.     91,   308,   584,   309,     0,    92,     0,   193,     0,   107,
  1293.    308,   484,   309,     0,   108,   308,   549,   309,     0,   159,
  1294.    308,   551,   309,     0,   176,   308,   553,   309,     0,   188,
  1295.    308,    72,   556,   309,     0,   188,   308,   133,   556,   309,
  1296.      0,   188,   308,   186,   556,   309,     0,   188,   308,   556,
  1297.    309,     0,   545,   238,     0,   545,   128,   149,     0,   545,
  1298.    256,     0,   545,   128,   147,   149,     0,   545,   128,   189,
  1299.      0,   545,   128,   147,   109,     0,   545,   128,   109,     0,
  1300.    545,   128,   147,   189,     0,   545,    71,   546,    66,   546,
  1301.      0,   545,   147,    71,   546,    66,   546,     0,   545,   121,
  1302.    308,   557,   309,     0,   545,   147,   121,   308,   559,   309,
  1303.      0,   545,   284,   308,   484,   309,     0,   545,   295,   308,
  1304.    484,   309,     0,   545,   296,   308,   484,   309,     0,   545,
  1305.    298,   308,   484,   309,     0,   545,   299,   308,   484,   309,
  1306.      0,   545,   297,   308,   484,   309,     0,   545,   293,   308,
  1307.    484,   309,     0,   545,   294,   308,   484,   309,     0,   545,
  1308.    292,   308,   484,   309,     0,   545,   284,    67,   308,   484,
  1309.    309,     0,   545,   295,    67,   308,   484,   309,     0,   545,
  1310.    296,    67,   308,   484,   309,     0,   545,   298,    67,   308,
  1311.    484,   309,     0,   545,   299,    67,   308,   484,   309,     0,
  1312.    545,   297,    67,   308,   484,   309,     0,   545,   293,    67,
  1313.    308,   484,   309,     0,   545,   294,    67,   308,   484,   309,
  1314.      0,   545,   292,    67,   308,   484,   309,     0,   545,   284,
  1315.     64,   308,   484,   309,     0,   545,   295,    64,   308,   484,
  1316.    309,     0,   545,   296,    64,   308,   484,   309,     0,   545,
  1317.    298,    64,   308,   484,   309,     0,   545,   299,    64,   308,
  1318.    484,   309,     0,   545,   297,    64,   308,   484,   309,     0,
  1319.    545,   293,    64,   308,   484,   309,     0,   545,   294,    64,
  1320.    308,   484,   309,     0,   545,   292,    64,   308,   484,   309,
  1321.      0,   545,    66,   545,     0,   545,   155,   545,     0,   147,
  1322.    545,     0,   561,     0,   669,     0,   566,   547,     0,   582,
  1323.      0,   589,     0,   296,   546,     0,   299,   546,     0,   546,
  1324.    299,     0,   546,   295,   546,     0,   546,   296,   546,     0,
  1325.    546,   298,   546,     0,   546,   299,   546,     0,   546,   297,
  1326.    546,     0,   302,   546,     0,   300,   546,     0,   546,    60,
  1327.    521,     0,    76,   308,   546,    68,   521,   309,     0,   308,
  1328.    545,   309,     0,   546,   284,   546,     0,   284,   546,     0,
  1329.    546,   284,     0,   580,   308,   309,     0,   580,   308,   548,
  1330.    309,     0,    89,     0,    90,     0,    90,   308,   584,   309,
  1331.      0,    91,     0,    91,   308,   584,   309,     0,    92,     0,
  1332.    193,     0,   159,   308,   551,   309,     0,   176,   308,   553,
  1333.    309,     0,   188,   308,    72,   556,   309,     0,   188,   308,
  1334.    133,   556,   309,     0,   188,   308,   186,   556,   309,     0,
  1335.    188,   308,   556,   309,     0,   670,     0,   305,   663,   306,
  1336.    547,     0,   305,   663,   301,   663,   306,   547,     0,     0,
  1337.    539,     0,   548,   307,   539,     0,   548,   194,   545,     0,
  1338.    550,   114,   545,     0,     0,   669,     0,   536,     0,   183,
  1339.      0,   184,     0,   552,   121,   552,     0,     0,   566,   547,
  1340.      0,   582,     0,   296,   552,     0,   552,   295,   552,     0,
  1341.    552,   296,   552,     0,   552,   298,   552,     0,   552,   299,
  1342.    552,     0,   552,   297,   552,     0,   300,   552,     0,   552,
  1343.     60,   521,     0,    76,   308,   552,    68,   521,   309,     0,
  1344.    308,   552,   309,     0,   552,   284,   552,     0,   284,   552,
  1345.      0,   552,   284,     0,   589,     0,   580,   308,   309,     0,
  1346.    580,   308,   548,   309,     0,   159,   308,   551,   309,     0,
  1347.    176,   308,   553,   309,     0,   188,   308,    72,   556,   309,
  1348.      0,   188,   308,   133,   556,   309,     0,   188,   308,   186,
  1349.    556,   309,     0,   188,   308,   556,   309,     0,   548,   554,
  1350.    555,     0,     0,   114,   548,     0,     0,   112,   548,     0,
  1351.      0,   545,   114,   548,     0,   114,   548,     0,   548,     0,
  1352.    484,     0,   558,     0,   582,     0,   558,   307,   582,     0,
  1353.    484,     0,   560,     0,   582,     0,   560,   307,   582,     0,
  1354.     75,   565,   562,   564,   104,     0,   148,   308,   545,   307,
  1355.    545,   309,     0,    81,   308,   548,   309,     0,   562,   563,
  1356.      0,   563,     0,   199,   545,   180,   539,     0,   103,   539,
  1357.      0,     0,   566,   547,     0,   589,     0,     0,   573,   304,
  1358.    567,     0,   583,   304,   567,     0,   576,     0,   567,   304,
  1359.    576,     0,   567,   304,   297,     0,   568,   307,   569,     0,
  1360.    569,     0,   297,     0,   589,   547,   292,   539,     0,   566,
  1361.    547,     0,   573,   304,   297,     0,   570,   307,   571,     0,
  1362.    571,     0,   539,    68,   590,     0,   539,     0,   573,   304,
  1363.    297,     0,   297,     0,   589,     0,     0,   591,     0,   589,
  1364.      0,   589,     0,   673,     0,   589,     0,   673,     0,   589,
  1365.      0,   589,     0,   589,     0,   586,     0,   584,     0,   585,
  1366.      0,   586,     0,   521,   586,     0,   583,     0,   189,     0,
  1367.    109,     0,   289,   547,     0,   288,     0,   290,     0,   283,
  1368.      0,   673,     0,   589,     0,   526,     0,   531,     0,   673,
  1369.      0,   536,     0,    61,     0,   210,     0,    62,     0,   211,
  1370.      0,   212,     0,   214,     0,   215,     0,   217,     0,   206,
  1371.      0,   220,     0,   221,     0,   222,     0,   223,     0,   224,
  1372.      0,   101,     0,   226,     0,   227,     0,   228,     0,   231,
  1373.      0,   232,     0,   233,     0,   234,     0,   235,     0,   236,
  1374.      0,   123,     0,   237,     0,   238,     0,   131,     0,   132,
  1375.      0,   239,     0,   244,     0,   138,     0,   246,     0,   247,
  1376.      0,   248,     0,   145,     0,   251,     0,   252,     0,   254,
  1377.      0,   256,     0,   151,     0,   258,     0,   153,     0,   259,
  1378.      0,   154,     0,   260,     0,   162,     0,   163,     0,   261,
  1379.      0,   166,     0,   168,     0,   262,     0,   264,     0,   265,
  1380.      0,   266,     0,   172,     0,   268,     0,   267,     0,   207,
  1381.      0,   270,     0,   272,     0,   273,     0,   274,     0,   275,
  1382.      0,   181,     0,   182,     0,   183,     0,   184,     0,   205,
  1383.      0,   276,     0,   208,     0,   279,     0,   281,     0,   204,
  1384.      0,     3,     0,     5,     0,     6,     0,     7,     0,     8,
  1385.      0,    10,     0,    11,     0,    12,     0,    14,     0,    16,
  1386.      0,    17,     0,    18,     0,    19,     0,    20,     0,    21,
  1387.      0,    22,     0,    23,     0,    24,     0,    25,     0,    26,
  1388.      0,    28,     0,    29,     0,    30,     0,    31,     0,    32,
  1389.      0,    33,     0,    35,     0,    36,     0,    37,     0,    38,
  1390.      0,    39,     0,   589,     0,   209,     0,   213,     0,   216,
  1391.      0,    75,     0,   218,     0,    81,     0,    85,     0,   219,
  1392.      0,    88,     0,   225,     0,   103,     0,   104,     0,   229,
  1393.      0,   230,     0,   109,     0,   113,     0,   118,     0,   241,
  1394.      0,   243,     0,   245,     0,   249,     0,   250,     0,   253,
  1395.      0,   148,     0,   156,     0,   159,     0,   160,     0,   263,
  1396.      0,   269,     0,   271,     0,   177,     0,   180,     0,   187,
  1397.      0,   189,     0,   278,     0,   280,     0,   199,     0,    88,
  1398.      0,   250,     0,     8,   185,   593,   599,   600,     0,     8,
  1399.    185,    97,     0,     8,   601,     0,   574,   596,   598,     0,
  1400.    594,   595,   598,   298,   574,   604,     0,   603,     0,   586,
  1401.      0,   673,   671,     0,   284,   597,     0,   595,     0,     0,
  1402.    589,     0,   589,   304,   597,     0,   301,   584,     0,     0,
  1403.     68,   593,     0,     0,   193,   601,     0,     0,   602,     0,
  1404.    602,   298,   602,     0,   602,    18,    73,   602,     0,   602,
  1405.    194,   602,     0,   587,     0,   603,     0,   283,     0,   671,
  1406.      0,   284,   589,     0,     0,    96,   579,   481,    93,   112,
  1407.    673,     0,    11,    25,   673,     0,     0,   609,   608,   611,
  1408.    610,     0,   665,    70,    96,    28,   302,     0,   665,   104,
  1409.     96,    28,   302,     0,     0,   612,   611,     0,     0,     0,
  1410.    615,   613,   616,   614,   626,   302,     0,    47,     0,    55,
  1411.      0,    54,     0,    44,     0,    52,     0,    41,     0,     0,
  1412.    624,     0,   625,     0,   619,     0,   620,     0,   617,     0,
  1413.    674,     0,   618,   310,   676,   311,     0,    46,   623,     0,
  1414.    621,   310,   611,   311,     0,   622,   310,   611,   311,     0,
  1415.     56,   623,     0,    57,   623,     0,     0,   674,     0,    53,
  1416.      0,    58,    53,     0,    49,     0,    58,    49,     0,    51,
  1417.      0,    58,    51,     0,    48,     0,    45,     0,    42,     0,
  1418.     43,     0,    58,    43,     0,    59,     0,   627,     0,   626,
  1419.    307,   627,     0,   629,   674,   518,   628,     0,     0,   292,
  1420.    667,     0,     0,   297,     0,    96,   273,   673,     0,    12,
  1421.    632,     0,   633,     0,    88,     0,    64,     0,     0,   593,
  1422.      0,    97,     0,   106,    19,   636,     0,     0,   106,   673,
  1423.    635,   639,     0,   603,     0,   285,     0,    15,   673,     0,
  1424.     24,   579,   639,     0,     0,   194,   640,     0,   669,     0,
  1425.    669,   307,   640,     0,    25,   673,   114,   636,     0,   450,
  1426.     26,     0,   175,     4,   645,   644,     0,   152,     0,    23,
  1427.      0,   185,     0,   312,     0,   175,     9,   645,   633,     0,
  1428.    208,   674,   128,   651,   648,   650,     0,   305,   306,   649,
  1429.      0,   308,   309,   649,     0,   305,   520,   306,   649,     0,
  1430.    308,   520,   309,   649,     0,     0,   305,   306,   649,     0,
  1431.    308,   309,   649,     0,   305,   520,   306,   649,     0,   308,
  1432.    520,   309,   649,     0,     0,    27,     0,     0,    77,     0,
  1433.    196,     0,   111,     0,   101,     0,   654,    21,     0,    13,
  1434.      0,   654,    29,     0,   654,    22,     0,     5,     0,    37,
  1435.     21,     0,    37,    29,     0,    37,    22,     0,     0,    36,
  1436.    652,   310,   655,   311,     0,     0,   190,   653,   310,   655,
  1437.    311,     0,   674,     0,    30,     0,     0,     0,   656,   655,
  1438.      0,     0,   651,   657,   658,   302,     0,   659,     0,   658,
  1439.    307,   659,     0,   629,   674,   518,     0,    38,   674,   128,
  1440.    651,   648,   650,     0,    39,    31,   662,     0,    39,   147,
  1441.     14,   662,     0,    39,    33,   662,     0,    10,     0,    32,
  1442.      0,    35,     0,    17,   579,     0,    16,   185,   579,     0,
  1443.    225,   579,   308,   666,   309,     0,   225,     6,     0,     7,
  1444.    579,   308,   666,   309,     0,   566,   547,     0,   540,     0,
  1445.    582,     0,   589,     0,   296,   663,     0,   299,   663,     0,
  1446.    545,   299,     0,   545,   295,   663,     0,   545,   296,   663,
  1447.      0,   545,   298,   663,     0,   545,   299,   663,     0,   545,
  1448.    297,   663,     0,   545,   293,   663,     0,   545,   294,   663,
  1449.      0,   545,   292,   149,     0,   149,   292,   545,     0,   545,
  1450.    292,   663,     0,   302,   663,     0,   300,   663,     0,   545,
  1451.     60,   521,     0,    76,   308,   545,    68,   521,   309,     0,
  1452.    308,   539,   309,     0,   545,   284,   663,     0,   545,   136,
  1453.    663,     0,   545,   147,   136,   663,     0,   284,   663,     0,
  1454.    545,   284,     0,   580,   308,   297,   309,     0,   580,   308,
  1455.    309,     0,   580,   308,   548,   309,     0,    89,     0,    90,
  1456.      0,    90,   308,   584,   309,     0,    91,     0,    91,   308,
  1457.    584,   309,     0,    92,     0,   193,     0,   107,   308,   484,
  1458.    309,     0,   108,   308,   549,   309,     0,   159,   308,   551,
  1459.    309,     0,   176,   308,   553,   309,     0,   188,   308,    72,
  1460.    556,   309,     0,   188,   308,   133,   556,   309,     0,   188,
  1461.    308,   186,   556,   309,     0,   188,   308,   556,   309,     0,
  1462.    545,   238,     0,   545,   128,   149,     0,   545,   256,     0,
  1463.    545,   128,   147,   149,     0,   545,   128,   189,     0,   545,
  1464.    128,   147,   109,     0,   545,   128,   109,     0,   545,   128,
  1465.    147,   189,     0,   545,    71,   546,    66,   546,     0,   545,
  1466.    147,    71,   546,    66,   546,     0,   545,   121,   308,   557,
  1467.    309,     0,   545,   147,   121,   308,   559,   309,     0,   545,
  1468.    284,   308,   484,   309,     0,   545,   295,   308,   484,   309,
  1469.      0,   545,   296,   308,   484,   309,     0,   545,   298,   308,
  1470.    484,   309,     0,   545,   299,   308,   484,   309,     0,   545,
  1471.    297,   308,   484,   309,     0,   545,   293,   308,   484,   309,
  1472.      0,   545,   294,   308,   484,   309,     0,   545,   292,   308,
  1473.    484,   309,     0,   545,   284,    67,   308,   484,   309,     0,
  1474.    545,   295,    67,   308,   484,   309,     0,   545,   296,    67,
  1475.    308,   484,   309,     0,   545,   298,    67,   308,   484,   309,
  1476.      0,   545,   299,    67,   308,   484,   309,     0,   545,   297,
  1477.     67,   308,   484,   309,     0,   545,   293,    67,   308,   484,
  1478.    309,     0,   545,   294,    67,   308,   484,   309,     0,   545,
  1479.    292,    67,   308,   484,   309,     0,   545,   284,    64,   308,
  1480.    484,   309,     0,   545,   295,    64,   308,   484,   309,     0,
  1481.    545,   296,    64,   308,   484,   309,     0,   545,   298,    64,
  1482.    308,   484,   309,     0,   545,   299,    64,   308,   484,   309,
  1483.      0,   545,   297,    64,   308,   484,   309,     0,   545,   293,
  1484.     64,   308,   484,   309,     0,   545,   294,    64,   308,   484,
  1485.    309,     0,   545,   292,    64,   308,   484,   309,     0,   545,
  1486.     66,   663,     0,   545,   155,   663,     0,   147,   663,     0,
  1487.    561,     0,   670,     0,   668,     0,   664,   307,   668,     0,
  1488.     34,     0,     0,   666,   679,     0,   680,     0,   667,   680,
  1489.      0,   671,   672,     0,   671,   672,     0,   671,     0,   286,
  1490.      0,     0,   671,     0,    20,   671,     0,    20,   579,     0,
  1491.    282,     0,   285,     0,   282,     0,   287,     0,   678,     0,
  1492.    676,   678,     0,   678,     0,   302,     0,   282,     0,   285,
  1493.      0,   584,     0,   585,     0,   297,     0,   295,     0,   296,
  1494.      0,   298,     0,   299,     0,    41,     0,    42,     0,    43,
  1495.      0,    44,     0,    45,     0,    46,     0,    47,     0,    48,
  1496.      0,    49,     0,    51,     0,    52,     0,    53,     0,    54,
  1497.      0,    55,     0,    56,     0,    57,     0,    58,     0,    59,
  1498.      0,    40,     0,   305,     0,   306,     0,   308,     0,   309,
  1499.      0,   292,     0,   307,     0,   282,     0,   285,     0,   584,
  1500.      0,   585,     0,   307,     0,   282,     0,   285,     0,   584,
  1501.      0,   585,     0,   310,   676,   311,     0,   310,     0,   311,
  1502.      0
  1503. };
  1504. #endif
  1505. #if YYDEBUG != 0
  1506. static const short yyrline[] = { 0,
  1507.    858,   860,   861,   863,   864,   865,   866,   867,   868,   869,
  1508.    871,   873,   874,   875,   876,   877,   878,   879,   880,   881,
  1509.    882,   883,   884,   885,   886,   887,   888,   889,   890,   891,
  1510.    892,   893,   894,   895,   896,   897,   898,   899,   900,   901,
  1511.    902,   903,   904,   910,   911,   916,   917,   918,   919,   920,
  1512.    921,   922,   923,   924,   932,   935,   944,   947,   955,   958,
  1513.    963,   988,   996,   997,  1002,  1010,  1016,  1022,  1042,  1056,
  1514.   1070,  1076,  1077,  1080,  1084,  1088,  1091,  1095,  1099,  1102,
  1515.   1106,  1112,  1113,  1116,  1117,  1129,  1133,  1137,  1141,  1145,
  1516.   1155,  1156,  1160,  1161,  1164,  1165,  1166,  1169,  1173,  1177,
  1517.   1183,  1187,  1191,  1205,  1211,  1215,  1219,  1221,  1223,  1225,
  1518.   1236,  1251,  1257,  1259,  1268,  1269,  1270,  1273,  1274,  1277,
  1519.   1278,  1284,  1285,  1297,  1304,  1305,  1308,  1309,  1310,  1313,
  1520.   1318,  1322,  1326,  1330,  1333,  1334,  1337,  1341,  1347,  1348,
  1521.   1351,  1352,  1355,  1359,  1365,  1370,  1384,  1388,  1392,  1396,
  1522.   1400,  1404,  1408,  1415,  1419,  1433,  1435,  1437,  1439,  1441,
  1523.   1443,  1445,  1447,  1449,  1451,  1457,  1459,  1461,  1463,  1467,
  1524.   1469,  1471,  1473,  1479,  1481,  1484,  1486,  1488,  1494,  1496,
  1525.   1502,  1504,  1512,  1516,  1520,  1524,  1528,  1532,  1539,  1543,
  1526.   1549,  1551,  1553,  1557,  1559,  1561,  1563,  1565,  1567,  1569,
  1527.   1571,  1573,  1579,  1581,  1583,  1587,  1591,  1593,  1597,  1601,
  1528.   1603,  1605,  1607,  1609,  1611,  1613,  1615,  1617,  1619,  1621,
  1529.   1623,  1625,  1627,  1629,  1631,  1633,  1635,  1637,  1639,  1642,
  1530.   1646,  1651,  1656,  1657,  1658,  1661,  1662,  1663,  1666,  1667,
  1531.   1670,  1671,  1672,  1673,  1676,  1677,  1680,  1686,  1687,  1690,
  1532.   1691,  1694,  1704,  1710,  1712,  1715,  1719,  1723,  1727,  1731,
  1533.   1735,  1741,  1742,  1744,  1748,  1755,  1759,  1773,  1780,  1781,
  1534.   1783,  1797,  1805,  1806,  1809,  1813,  1817,  1823,  1824,  1825,
  1535.   1828,  1834,  1835,  1838,  1839,  1842,  1844,  1846,  1850,  1854,
  1536.   1858,  1859,  1862,  1875,  1881,  1887,  1888,  1889,  1892,  1893,
  1537.   1894,  1895,  1896,  1899,  1902,  1903,  1906,  1909,  1913,  1919,
  1538.   1920,  1921,  1922,  1923,  1936,  1940,  1957,  1964,  1970,  1971,
  1539.   1972,  1973,  1978,  1981,  1982,  1983,  1984,  1985,  1986,  1989,
  1540.   1990,  1992,  2003,  2009,  2013,  2017,  2023,  2027,  2033,  2037,
  1541.   2041,  2045,  2049,  2055,  2059,  2063,  2069,  2073,  2084,  2102,
  1542.   2111,  2112,  2115,  2116,  2119,  2120,  2123,  2124,  2127,  2133,
  1543.   2139,  2140,  2141,  2150,  2151,  2152,  2162,  2198,  2204,  2205,
  1544.   2208,  2209,  2212,  2213,  2217,  2223,  2224,  2245,  2251,  2252,
  1545.   2253,  2254,  2258,  2264,  2265,  2269,  2276,  2282,  2282,  2284,
  1546.   2285,  2286,  2287,  2288,  2289,  2290,  2291,  2294,  2298,  2300,
  1547.   2302,  2315,  2322,  2323,  2326,  2327,  2340,  2342,  2349,  2350,
  1548.   2351,  2352,  2353,  2356,  2357,  2360,  2362,  2364,  2368,  2369,
  1549.   2370,  2371,  2374,  2378,  2385,  2386,  2387,  2388,  2391,  2392,
  1550.   2404,  2410,  2416,  2420,  2438,  2439,  2440,  2441,  2442,  2444,
  1551.   2445,  2446,  2456,  2470,  2484,  2494,  2500,  2501,  2504,  2505,
  1552.   2508,  2509,  2510,  2513,  2514,  2515,  2525,  2539,  2553,  2557,
  1553.   2565,  2566,  2569,  2570,  2573,  2574,  2577,  2579,  2591,  2609,
  1554.   2610,  2611,  2612,  2613,  2614,  2631,  2637,  2641,  2645,  2649,
  1555.   2653,  2659,  2660,  2663,  2666,  2670,  2684,  2691,  2697,  2698,
  1556.   2701,  2702,  2703,  2704,  2707,  2708,  2718,  2734,  2737,  2767,
  1557.   2768,  2769,  2770,  2771,  2788,  2805,  2809,  2813,  2818,  2823,
  1558.   2831,  2841,  2842,  2843,  2846,  2847,  2850,  2851,  2854,  2855,
  1559.   2856,  2857,  2860,  2861,  2864,  2865,  2868,  2874,  2875,  2876,
  1560.   2877,  2878,  2879,  2882,  2884,  2886,  2888,  2890,  2892,  2896,
  1561.   2897,  2898,  2901,  2902,  2912,  2913,  2916,  2918,  2920,  2924,
  1562.   2925,  2928,  2932,  2935,  2939,  2943,  2948,  2952,  2966,  2970,
  1563.   2976,  2978,  2980,  2984,  2986,  2990,  2994,  2998,  3008,  3010,
  1564.   3014,  3020,  3024,  3037,  3041,  3045,  3050,  3055,  3060,  3065,
  1565.   3070,  3074,  3080,  3081,  3092,  3093,  3096,  3097,  3100,  3106,
  1566.   3107,  3110,  3115,  3121,  3127,  3136,  3144,  3150,  3159,  3167,
  1567.   3168,  3169,  3170,  3171,  3172,  3173,  3187,  3191,  3197,  3198,
  1568.   3199,  3200,  3203,  3209,  3210,  3211,  3212,  3213,  3214,  3215,
  1569.   3216,  3217,  3218,  3219,  3220,  3221,  3222,  3223,  3224,  3225,
  1570.   3226,  3227,  3228,  3229,  3230,  3231,  3232,  3233,  3234,  3235,
  1571.   3236,  3237,  3238,  3239,  3240,  3241,  3242,  3243,  3251,  3255,
  1572.   3259,  3263,  3269,  3271,  3273,  3275,  3279,  3287,  3293,  3305,
  1573.   3313,  3319,  3331,  3339,  3349,  3364,  3370,  3377,  3378,  3379,
  1574.   3380,  3383,  3384,  3387,  3388,  3391,  3392,  3395,  3399,  3403,
  1575.   3407,  3413,  3414,  3415,  3416,  3417,  3418,  3421,  3422,  3425,
  1576.   3426,  3427,  3428,  3429,  3430,  3431,  3432,  3433,  3443,  3445,
  1577.   3460,  3464,  3468,  3472,  3476,  3482,  3488,  3489,  3490,  3491,
  1578.   3492,  3493,  3494,  3495,  3496,  3499,  3500,  3504,  3508,  3523,
  1579.   3527,  3529,  3531,  3535,  3537,  3539,  3541,  3543,  3545,  3547,
  1580.   3549,  3551,  3553,  3555,  3557,  3559,  3564,  3566,  3568,  3572,
  1581.   3576,  3578,  3580,  3582,  3584,  3586,  3588,  3592,  3596,  3600,
  1582.   3604,  3608,  3614,  3618,  3624,  3628,  3632,  3636,  3640,  3644,
  1583.   3649,  3653,  3657,  3661,  3665,  3667,  3669,  3671,  3678,  3682,
  1584.   3686,  3690,  3694,  3698,  3702,  3706,  3710,  3714,  3718,  3722,
  1585.   3726,  3730,  3734,  3738,  3742,  3746,  3750,  3754,  3758,  3762,
  1586.   3766,  3770,  3774,  3778,  3782,  3786,  3790,  3794,  3798,  3802,
  1587.   3806,  3810,  3814,  3818,  3820,  3822,  3824,  3826,  3835,  3839,
  1588.   3841,  3845,  3847,  3849,  3851,  3853,  3855,  3857,  3859,  3864,
  1589.   3866,  3868,  3872,  3876,  3878,  3880,  3882,  3884,  3888,  3892,
  1590.   3896,  3900,  3906,  3910,  3916,  3920,  3924,  3928,  3933,  3937,
  1591.   3941,  3945,  3949,  3953,  3957,  3961,  3965,  3967,  3969,  3973,
  1592.   3977,  3979,  3983,  3984,  3985,  3988,  3990,  3994,  3998,  4000,
  1593.   4002,  4004,  4006,  4008,  4010,  4012,  4014,  4018,  4022,  4024,
  1594.   4026,  4028,  4030,  4034,  4038,  4042,  4046,  4051,  4055,  4059,
  1595.   4063,  4069,  4073,  4077,  4079,  4085,  4087,  4091,  4093,  4095,
  1596.   4099,  4103,  4107,  4109,  4113,  4117,  4121,  4123,  4142,  4144,
  1597.   4150,  4156,  4158,  4162,  4168,  4169,  4172,  4176,  4180,  4184,
  1598.   4188,  4194,  4196,  4198,  4209,  4211,  4213,  4216,  4220,  4224,
  1599.   4235,  4237,  4242,  4246,  4250,  4254,  4260,  4261,  4264,  4268,
  1600.   4281,  4282,  4283,  4284,  4285,  4291,  4292,  4294,  4300,  4304,
  1601.   4308,  4312,  4316,  4318,  4322,  4328,  4334,  4335,  4336,  4344,
  1602.   4351,  4353,  4355,  4366,  4367,  4368,  4369,  4370,  4371,  4372,
  1603.   4373,  4374,  4375,  4376,  4377,  4378,  4379,  4380,  4381,  4382,
  1604.   4383,  4384,  4385,  4386,  4387,  4388,  4389,  4390,  4391,  4392,
  1605.   4393,  4394,  4395,  4396,  4397,  4398,  4399,  4400,  4401,  4402,
  1606.   4403,  4404,  4405,  4406,  4407,  4408,  4409,  4410,  4411,  4412,
  1607.   4413,  4414,  4415,  4416,  4417,  4419,  4420,  4421,  4422,  4423,
  1608.   4424,  4425,  4426,  4427,  4428,  4429,  4430,  4431,  4432,  4433,
  1609.   4434,  4435,  4436,  4437,  4438,  4439,  4440,  4441,  4442,  4443,
  1610.   4444,  4445,  4446,  4447,  4448,  4449,  4450,  4451,  4452,  4453,
  1611.   4454,  4455,  4456,  4457,  4458,  4459,  4460,  4461,  4462,  4463,
  1612.   4464,  4465,  4466,  4467,  4468,  4469,  4470,  4471,  4472,  4473,
  1613.   4485,  4486,  4487,  4488,  4489,  4490,  4491,  4492,  4493,  4494,
  1614.   4495,  4496,  4497,  4498,  4499,  4500,  4501,  4502,  4503,  4504,
  1615.   4505,  4506,  4507,  4508,  4509,  4510,  4511,  4512,  4513,  4514,
  1616.   4515,  4516,  4517,  4518,  4519,  4520,  4521,  4522,  4525,  4532,
  1617.   4548,  4552,  4557,  4562,  4573,  4596,  4600,  4608,  4625,  4636,
  1618.   4637,  4639,  4640,  4642,  4643,  4645,  4646,  4648,  4649,  4651,
  1619.   4655,  4659,  4663,  4668,  4673,  4674,  4676,  4700,  4713,  4719,
  1620.   4762,  4767,  4772,  4779,  4781,  4783,  4787,  4792,  4797,  4802,
  1621.   4807,  4808,  4809,  4810,  4811,  4812,  4813,  4815,  4822,  4829,
  1622.   4836,  4843,  4851,  4863,  4868,  4870,  4877,  4884,  4892,  4900,
  1623.   4901,  4903,  4904,  4905,  4906,  4907,  4908,  4909,  4910,  4911,
  1624.   4912,  4913,  4915,  4917,  4921,  4926,  5001,  5002,  5004,  5005,
  1625.   5011,  5019,  5021,  5022,  5023,  5024,  5026,  5027,  5032,  5045,
  1626.   5057,  5061,  5061,  5068,  5073,  5077,  5078,  5083,  5083,  5089,
  1627.   5099,  5115,  5120,  5121,  5123,  5123,  5129,  5137,  5179,  5185,
  1628.   5191,  5200,  5209,  5217,  5223,  5229,  5238,  5247,  5254,  5255,
  1629.   5257,  5264,  5271,  5278,  5285,  5292,  5299,  5306,  5313,  5320,
  1630.   5327,  5334,  5341,  5346,  5354,  5359,  5367,  5378,  5378,  5380,
  1631.   5384,  5390,  5396,  5401,  5405,  5410,  5481,  5536,  5541,  5546,
  1632.   5552,  5557,  5562,  5567,  5572,  5577,  5582,  5587,  5594,  5598,
  1633.   5600,  5602,  5606,  5608,  5610,  5612,  5614,  5616,  5618,  5620,
  1634.   5622,  5624,  5626,  5628,  5630,  5634,  5636,  5638,  5642,  5646,
  1635.   5648,  5650,  5652,  5654,  5656,  5658,  5662,  5666,  5670,  5674,
  1636.   5678,  5684,  5688,  5694,  5698,  5702,  5706,  5710,  5714,  5719,
  1637.   5723,  5727,  5731,  5735,  5737,  5739,  5741,  5748,  5752,  5756,
  1638.   5760,  5764,  5768,  5772,  5776,  5780,  5784,  5788,  5792,  5796,
  1639.   5800,  5804,  5808,  5812,  5816,  5820,  5824,  5828,  5832,  5836,
  1640.   5840,  5844,  5848,  5852,  5856,  5860,  5864,  5868,  5872,  5876,
  1641.   5880,  5884,  5888,  5890,  5892,  5894,  5896,  5900,  5900,  5902,
  1642.   5904,  5905,  5907,  5908,  5910,  5914,  5918,  5923,  5925,  5926,
  1643.   5927,  5928,  5930,  5931,  5936,  5938,  5940,  5941,  5946,  5946,
  1644.   5948,  5949,  5950,  5951,  5952,  5953,  5954,  5955,  5956,  5957,
  1645.   5958,  5959,  5960,  5961,  5962,  5963,  5964,  5965,  5966,  5967,
  1646.   5968,  5969,  5970,  5971,  5972,  5973,  5974,  5975,  5976,  5977,
  1647.   5978,  5979,  5980,  5981,  5983,  5984,  5985,  5986,  5987,  5989,
  1648.   5990,  5991,  5992,  5993,  5995,  6000
  1649. };
  1650. #endif
  1651. #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
  1652. static const char * const yytname[] = {   "$","error","$undefined.","SQL_AT",
  1653. "SQL_AUTOCOMMIT","SQL_BOOL","SQL_BREAK","SQL_CALL","SQL_CONNECT","SQL_CONNECTION",
  1654. "SQL_CONTINUE","SQL_DEALLOCATE","SQL_DISCONNECT","SQL_ENUM","SQL_FOUND","SQL_FREE",
  1655. "SQL_GO","SQL_GOTO","SQL_IDENTIFIED","SQL_IMMEDIATE","SQL_INDICATOR","SQL_INT",
  1656. "SQL_LONG","SQL_OFF","SQL_OPEN","SQL_PREPARE","SQL_RELEASE","SQL_REFERENCE",
  1657. "SQL_SECTION","SQL_SHORT","SQL_SIGNED","SQL_SQLERROR","SQL_SQLPRINT","SQL_SQLWARNING",
  1658. "SQL_START","SQL_STOP","SQL_STRUCT","SQL_UNSIGNED","SQL_VAR","SQL_WHENEVER",
  1659. "S_ANYTHING","S_AUTO","S_BOOL","S_CHAR","S_CONST","S_DOUBLE","S_ENUM","S_EXTERN",
  1660. "S_FLOAT","S_INT","S","S_LONG","S_REGISTER","S_SHORT","S_SIGNED","S_STATIC",
  1661. "S_STRUCT","S_UNION","S_UNSIGNED","S_VARCHAR","TYPECAST","ABSOLUTE","ACTION",
  1662. "ADD","ALL","ALTER","AND","ANY","AS","ASC","BEGIN_TRANS","BETWEEN","BOTH","BY",
  1663. "CASCADE","CASE","CAST","CHAR","CHARACTER","CHECK","CLOSE","COALESCE","COLLATE",
  1664. "COLUMN","COMMIT","CONSTRAINT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME",
  1665. "CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DAY_P","DECIMAL","DECLARE","DEFAULT",
  1666. "DELETE","DESC","DISTINCT","DOUBLE","DROP","ELSE","END_TRANS","EXCEPT","EXECUTE",
  1667. "EXISTS","EXTRACT","FALSE_P","FETCH","FLOAT","FOR","FOREIGN","FROM","FULL","GLOBAL",
  1668. "GRANT","GROUP","HAVING","HOUR_P","IN","INNER_P","INSENSITIVE","INSERT","INTERSECT",
  1669. "INTERVAL","INTO","IS","ISOLATION","JOIN","KEY","LANGUAGE","LEADING","LEFT",
  1670. "LEVEL","LIKE","LOCAL","MATCH","MINUTE_P","MONTH_P","NAMES","NATIONAL","NATURAL",
  1671. "NCHAR","NEXT","NO","NOT","NULLIF","NULL_P","NUMERIC","OF","ON","ONLY","OPTION",
  1672. "OR","ORDER","OUTER_P","PARTIAL","POSITION","PRECISION","PRIMARY","PRIOR","PRIVILEGES",
  1673. "PROCEDURE","PUBLIC","READ","REFERENCES","RELATIVE","REVOKE","RIGHT","ROLLBACK",
  1674. "SCROLL","SECOND_P","SELECT","SET","SUBSTRING","TABLE","TEMP","TEMPORARY","THEN",
  1675. "TIME","TIMESTAMP","TIMEZONE_HOUR","TIMEZONE_MINUTE","TO","TRAILING","TRANSACTION",
  1676. "TRIM","TRUE_P","UNION","UNIQUE","UPDATE","USER","USING","VALUES","VARCHAR",
  1677. "VARYING","VIEW","WHEN","WHERE","WITH","WORK","YEAR_P","ZONE","TRIGGER","COMMITTED",
  1678. "SERIALIZABLE","TYPE_P","ABORT_TRANS","ACCESS","AFTER","AGGREGATE","ANALYZE",
  1679. "BACKWARD","BEFORE","BINARY","CACHE","CLUSTER","COPY","CREATEDB","CREATEUSER",
  1680. "CYCLE","DATABASE","DELIMITERS","DO","EACH","ENCODING","EXCLUSIVE","EXPLAIN",
  1681. "EXTEND","FORWARD","FUNCTION","HANDLER","INCREMENT","INDEX","INHERITS","INSTEAD",
  1682. "ISNULL","LANCOMPILER","LIMIT","LISTEN","UNLISTEN","LOAD","LOCATION","LOCK_P",
  1683. "MAXVALUE","MINVALUE","MODE","MOVE","NEW","NOCREATEDB","NOCREATEUSER","NONE",
  1684. "NOTHING","NOTIFY","NOTNULL","OFFSET","OIDS","OPERATOR","PASSWORD","PROCEDURAL",
  1685. "RENAME","RESET","RETURNS","ROW","RULE","SERIAL","SEQUENCE","SETOF","SHARE",
  1686. "SHOW","START","STATEMENT","STDIN","STDOUT","TRUSTED","UNTIL","VACUUM","VALID",
  1687. "VERBOSE","VERSION","IDENT","SCONST","Op","CSTRING","CVARIABLE","CPP_LINE","ICONST",
  1688. "PARAM","FCONST","OP","'='","'<'","'>'","'+'","'-'","'*'","'/'","'%'","'|'",
  1689. "':'","';'","UMINUS","'.'","'['","']'","','","'('","')'","'{'","'}'",""="",
  1690. "prog","statements","statement","opt_at","stmt","CreateUserStmt","AlterUserStmt",
  1691. "DropUserStmt","user_passwd_clause","user_createdb_clause","user_createuser_clause",
  1692. "user_group_list","user_group_clause","user_valid_clause","VariableSetStmt",
  1693. "opt_level","var_value","zone_value","VariableShowStmt","VariableResetStmt",
  1694. "AddAttrStmt","alter_clause","ClosePortalStmt","CopyStmt","copy_dirn","copy_file_name",
  1695. "opt_binary","opt_with_copy","copy_delimiter","CreateStmt","OptTemp","OptTempType",
  1696. "OptTempScope","OptTableElementList","OptTableElement","columnDef","ColQualifier",
  1697. "ColQualList","ColPrimaryKey","ColConstraint","ColConstraintElem","default_list",
  1698. "default_expr","TableConstraint","ConstraintElem","constraint_list","constraint_expr",
  1699. "c_list","c_expr","key_match","key_actions","key_action","key_reference","OptInherit",
  1700. "CreateAsStmt","OptCreateAs","CreateAsList","CreateAsElement","CreateSeqStmt",
  1701. "OptSeqList","OptSeqElem","NumericOnly","FloatOnly","IntegerOnly","CreatePLangStmt",
  1702. "PLangTrusted","DropPLangStmt","CreateTrigStmt","TriggerActionTime","TriggerEvents",
  1703. "TriggerOneEvent","TriggerForSpec","TriggerForOpt","TriggerForType","TriggerFuncArgs",
  1704. "TriggerFuncArg","DropTrigStmt","DefineStmt","def_rest","def_type","def_name",
  1705. "definition","def_list","def_elem","def_arg","DestroyStmt","FetchStmt","opt_direction",
  1706. "fetch_how_many","opt_portal_name","GrantStmt","privileges","operation_commalist",
  1707. "operation","grantee","opt_with_grant","RevokeStmt","IndexStmt","index_opt_unique",
  1708. "access_method_clause","index_params","index_list","func_index","index_elem",
  1709. "opt_type","opt_class","ExtendStmt","ProcedureStmt","opt_with","func_args","func_args_list",
  1710. "func_return","set_opt","RemoveStmt","remove_type","RemoveAggrStmt","aggr_argtype",
  1711. "RemoveFuncStmt","RemoveOperStmt","all_Op","MathOp","oper_argtypes","RenameStmt",
  1712. "opt_name","opt_column","RuleStmt","@1","RuleActionList","RuleActionBlock","RuleActionMulti",
  1713. "RuleActionStmt","event_object","event","opt_instead","NotifyStmt","ListenStmt",
  1714. "UnlistenStmt","TransactionStmt","opt_trans","ViewStmt","LoadStmt","CreatedbStmt",
  1715. "opt_database1","opt_database2","location","encoding","DestroydbStmt","ClusterStmt",
  1716. "VacuumStmt","opt_verbose","opt_analyze","opt_va_list","va_list","ExplainStmt",
  1717. "OptimizableStmt","InsertStmt","insert_rest","opt_column_list","columnList",
  1718. "columnElem","DeleteStmt","LockStmt","opt_lock","lock_type","opt_lmode","UpdateStmt",
  1719. "CursorStmt","@2","opt_cursor","SelectStmt","select_clause","SubSelect","result",
  1720. "opt_table","opt_union","opt_unique","sort_clause","sortby_list","sortby","OptUseOp",
  1721. "opt_select_limit","select_limit_value","select_offset_value","opt_inh_star",
  1722. "relation_name_list","name_list","group_clause","having_clause","for_update_clause",
  1723. "update_list","from_clause","from_expr","table_list","table_expr","join_clause_with_union",
  1724. "join_clause","join_list","join_expr","join_type","join_outer","join_qual","using_list",
  1725. "using_expr","where_clause","relation_expr","opt_array_bounds","nest_array_bounds",
  1726. "Iresult","Typename","Array","Generic","generic","Numeric","numeric","opt_float",
  1727. "opt_numeric","opt_decimal","Character","character","opt_varying","opt_charset",
  1728. "opt_collate","Datetime","datetime","opt_timezone","opt_interval","a_expr_or_null",
  1729. "row_expr","row_descriptor","row_op","sub_type","row_list","a_expr","b_expr",
  1730. "opt_indirection","expr_list","extract_list","extract_arg","position_list","position_expr",
  1731. "substr_list","substr_from","substr_for","trim_list","in_expr","in_expr_nodes",
  1732. "not_in_expr","not_in_expr_nodes","case_expr","when_clause_list","when_clause",
  1733. "case_default","case_arg","attr","attrs","res_target_list","res_target_el","res_target_list2",
  1734. "res_target_el2","opt_id","relation_name","database_name","access_method","attr_name",
  1735. "class","index_name","name","func_name","file_name","AexprConst","ParamNo","Iconst",
  1736. "Fconst","Sconst","UserId","TypeId","ColId","ColLabel","SpecialRuleRelation",
  1737. "ECPGConnect","connection_target","db_prefix","server","opt_server","server_name",
  1738. "opt_port","opt_connection_name","opt_user","ora_user","user_name","char_variable",
  1739. "opt_options","ECPGCursorStmt","ECPGDeallocate","ECPGDeclaration","@3","sql_startdeclare",
  1740. "sql_enddeclare","variable_declarations","declaration","@4","@5","storage_clause",
  1741. "type","enum_type","s_enum","struct_type","union_type","s_struct","s_union",
  1742. "opt_symbol","simple_type","varchar_type","variable_list","variable","opt_initializer",
  1743. "opt_pointer","ECPGDeclare","ECPGDisconnect","dis_name","connection_object",
  1744. "ECPGExecute","@6","execstring","ECPGFree","ECPGOpen","opt_using","variablelist",
  1745. "ECPGPrepare","ECPGRelease","ECPGSetAutocommit","on_off","to_equal","ECPGSetConnection",
  1746. "ECPGTypedef","opt_type_array_bounds","nest_type_array_bounds","opt_reference",
  1747. "ctype","@7","@8","opt_signed","sql_variable_declarations","sql_declaration",
  1748. "@9","sql_variable_list","sql_variable","ECPGVar","ECPGWhenever","action","ecpg_expr",
  1749. "into_list","ecpgstart","dotext","vartext","coutputvariable","cinputvariable",
  1750. "civariableonly","cvariable","indicator","ident","symbol","cpp_line","c_line",
  1751. "c_thing","c_anything","do_anything","var_anything","blockstart","blockend", NULL
  1752. };
  1753. #endif
  1754. static const short yyr1[] = {     0,
  1755.    313,   314,   314,   315,   315,   315,   315,   315,   315,   315,
  1756.    316,   317,   317,   317,   317,   317,   317,   317,   317,   317,
  1757.    317,   317,   317,   317,   317,   317,   317,   317,   317,   317,
  1758.    317,   317,   317,   317,   317,   317,   317,   317,   317,   317,
  1759.    317,   317,   317,   317,   317,   317,   317,   317,   317,   317,
  1760.    317,   317,   317,   317,   317,   317,   317,   317,   317,   317,
  1761.    317,   317,   317,   317,   317,   317,   317,   317,   318,   319,
  1762.    320,   321,   321,   322,   322,   322,   323,   323,   323,   324,
  1763.    324,   325,   325,   326,   326,   327,   327,   327,   327,   327,
  1764.    328,   328,   329,   329,   330,   330,   330,   331,   331,   331,
  1765.    332,   332,   332,   333,   334,   334,   334,   334,   334,   334,
  1766.    335,   336,   337,   337,   338,   338,   338,   339,   339,   340,
  1767.    340,   341,   341,   342,   343,   343,   344,   344,   344,   345,
  1768.    345,   346,   346,   346,   347,   347,   348,   348,   349,   349,
  1769.    350,   350,   351,   351,   352,   352,   353,   353,   353,   353,
  1770.    353,   353,   353,   354,   354,   355,   355,   355,   355,   355,
  1771.    355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
  1772.    355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
  1773.    355,   355,   356,   356,   357,   357,   357,   357,   358,   358,
  1774.    359,   359,   359,   359,   359,   359,   359,   359,   359,   359,
  1775.    359,   359,   359,   359,   359,   359,   359,   359,   359,   359,
  1776.    359,   359,   359,   359,   359,   359,   359,   359,   359,   359,
  1777.    359,   359,   359,   359,   359,   359,   359,   359,   359,   360,
  1778.    360,   361,   362,   362,   362,   363,   363,   363,   364,   364,
  1779.    365,   365,   365,   365,   366,   366,   367,   368,   368,   369,
  1780.    369,   370,   371,   372,   372,   373,   373,   373,   373,   373,
  1781.    373,   374,   374,   375,   375,   376,   376,   377,   378,   378,
  1782.    379,   380,   381,   381,   382,   382,   382,   383,   383,   383,
  1783.    384,   385,   385,   386,   386,   387,   387,   387,   388,   388,
  1784.    388,   388,   389,   390,   391,   392,   392,   392,   393,   393,
  1785.    393,   393,   393,   394,   395,   395,   396,   396,   396,   397,
  1786.    397,   397,   397,   397,   398,   398,   399,   399,   400,   400,
  1787.    400,   400,   400,   401,   401,   401,   401,   401,   401,   402,
  1788.    402,   402,   403,   404,   404,   404,   405,   405,   406,   406,
  1789.    406,   406,   406,   407,   407,   407,   408,   408,   409,   410,
  1790.    411,   411,   412,   412,   413,   413,   414,   414,   415,   416,
  1791.    417,   417,   417,   418,   418,   418,   419,   420,   421,   421,
  1792.    422,   422,   423,   423,   424,   425,   425,   426,   427,   427,
  1793.    427,   427,   428,   429,   429,   430,   431,   432,   432,   433,
  1794.    433,   433,   433,   433,   433,   433,   433,   434,   434,   434,
  1795.    434,   435,   436,   436,   437,   437,   439,   438,   440,   440,
  1796.    440,   440,   440,   441,   441,   442,   442,   442,   443,   443,
  1797.    443,   443,   444,   444,   445,   445,   445,   445,   446,   446,
  1798.    447,   448,   449,   449,   450,   450,   450,   450,   450,   451,
  1799.    451,   451,   452,   453,   454,   454,   455,   455,   456,   456,
  1800.    457,   457,   457,   458,   458,   458,   459,   460,   461,   461,
  1801.    462,   462,   463,   463,   464,   464,   465,   465,   466,   467,
  1802.    467,   467,   467,   467,   467,   468,   469,   469,   469,   469,
  1803.    469,   470,   470,   471,   471,   472,   473,   474,   475,   475,
  1804.    476,   476,   476,   476,   477,   477,   478,   480,   479,   481,
  1805.    481,   481,   481,   481,   482,   483,   483,   483,   483,   483,
  1806.    484,   485,   485,   485,   486,   486,   487,   487,   488,   488,
  1807.    488,   488,   489,   489,   490,   490,   491,   492,   492,   492,
  1808.    492,   492,   492,   493,   493,   493,   493,   493,   493,   494,
  1809.    494,   494,   495,   495,   496,   496,   497,   498,   498,   499,
  1810.    499,   500,   500,   501,   501,   501,   502,   502,   503,   503,
  1811.    504,   504,   504,   505,   505,   506,   506,   506,   507,   507,
  1812.    508,   509,   509,   510,   510,   510,   511,   511,   511,   511,
  1813.    511,   511,   512,   512,   513,   513,   514,   514,   515,   516,
  1814.    516,   517,   517,   518,   518,   518,   519,   519,   519,   520,
  1815.    520,   520,   520,   520,   520,   520,   521,   521,   522,   522,
  1816.    522,   522,   523,   524,   524,   524,   524,   524,   524,   524,
  1817.    524,   524,   524,   524,   524,   524,   524,   524,   524,   524,
  1818.    524,   524,   524,   524,   524,   524,   524,   524,   524,   524,
  1819.    524,   524,   524,   524,   524,   524,   524,   524,   525,   525,
  1820.    525,   525,   526,   526,   526,   526,   527,   527,   528,   528,
  1821.    528,   529,   529,   529,   530,   530,   531,   531,   531,   531,
  1822.    531,   532,   532,   533,   533,   534,   534,   535,   535,   535,
  1823.    535,   536,   536,   536,   536,   536,   536,   537,   537,   538,
  1824.    538,   538,   538,   538,   538,   538,   538,   538,   539,   539,
  1825.    540,   540,   540,   540,   540,   541,   542,   542,   542,   542,
  1826.    542,   542,   542,   542,   542,   543,   543,   544,   544,   545,
  1827.    545,   545,   545,   545,   545,   545,   545,   545,   545,   545,
  1828.    545,   545,   545,   545,   545,   545,   545,   545,   545,   545,
  1829.    545,   545,   545,   545,   545,   545,   545,   545,   545,   545,
  1830.    545,   545,   545,   545,   545,   545,   545,   545,   545,   545,
  1831.    545,   545,   545,   545,   545,   545,   545,   545,   545,   545,
  1832.    545,   545,   545,   545,   545,   545,   545,   545,   545,   545,
  1833.    545,   545,   545,   545,   545,   545,   545,   545,   545,   545,
  1834.    545,   545,   545,   545,   545,   545,   545,   545,   545,   545,
  1835.    545,   545,   545,   545,   545,   545,   545,   545,   546,   546,
  1836.    546,   546,   546,   546,   546,   546,   546,   546,   546,   546,
  1837.    546,   546,   546,   546,   546,   546,   546,   546,   546,   546,
  1838.    546,   546,   546,   546,   546,   546,   546,   546,   546,   546,
  1839.    546,   546,   546,   547,   547,   547,   548,   548,   548,   549,
  1840.    549,   549,   550,   550,   550,   551,   551,   552,   552,   552,
  1841.    552,   552,   552,   552,   552,   552,   552,   552,   552,   552,
  1842.    552,   552,   552,   552,   552,   552,   552,   552,   552,   552,
  1843.    552,   553,   553,   554,   554,   555,   555,   556,   556,   556,
  1844.    557,   557,   558,   558,   559,   559,   560,   560,   561,   561,
  1845.    561,   562,   562,   563,   564,   564,   565,   565,   565,   566,
  1846.    566,   567,   567,   567,   568,   568,   568,   569,   569,   569,
  1847.    570,   570,   571,   571,   571,   571,   572,   572,   573,   573,
  1848.    574,   575,   576,   577,   578,   579,   580,   581,   582,   582,
  1849.    582,   582,   582,   582,   582,   583,   584,   585,   586,   587,
  1850.    588,   588,   588,   589,   589,   589,   589,   589,   589,   589,
  1851.    589,   589,   589,   589,   589,   589,   589,   589,   589,   589,
  1852.    589,   589,   589,   589,   589,   589,   589,   589,   589,   589,
  1853.    589,   589,   589,   589,   589,   589,   589,   589,   589,   589,
  1854.    589,   589,   589,   589,   589,   589,   589,   589,   589,   589,
  1855.    589,   589,   589,   589,   589,   589,   589,   589,   589,   589,
  1856.    589,   589,   589,   589,   589,   589,   589,   589,   589,   589,
  1857.    589,   589,   589,   589,   589,   589,   589,   589,   589,   589,
  1858.    589,   589,   589,   589,   589,   589,   589,   589,   589,   589,
  1859.    589,   589,   589,   589,   589,   589,   589,   589,   589,   589,
  1860.    589,   589,   589,   589,   589,   589,   589,   589,   589,   589,
  1861.    590,   590,   590,   590,   590,   590,   590,   590,   590,   590,
  1862.    590,   590,   590,   590,   590,   590,   590,   590,   590,   590,
  1863.    590,   590,   590,   590,   590,   590,   590,   590,   590,   590,
  1864.    590,   590,   590,   590,   590,   590,   590,   590,   591,   591,
  1865.    592,   592,   592,   593,   593,   593,   593,   594,   595,   596,
  1866.    596,   597,   597,   598,   598,   599,   599,   600,   600,   601,
  1867.    601,   601,   601,   602,   602,   602,   603,   604,   604,   605,
  1868.    606,   608,   607,   609,   610,   611,   611,   613,   614,   612,
  1869.    615,   615,   615,   615,   615,   615,   615,   616,   616,   616,
  1870.    616,   616,   616,   617,   618,   619,   620,   621,   622,   623,
  1871.    623,   624,   624,   624,   624,   624,   624,   624,   624,   624,
  1872.    624,   624,   625,   626,   626,   627,   628,   628,   629,   629,
  1873.    630,   631,   632,   632,   632,   632,   633,   633,   634,   635,
  1874.    634,   636,   636,   637,   638,   639,   639,   640,   640,   641,
  1875.    642,   643,   644,   644,   645,   645,   646,   647,   648,   648,
  1876.    648,   648,   648,   649,   649,   649,   649,   649,   650,   650,
  1877.    651,   651,   651,   651,   651,   651,   651,   651,   651,   651,
  1878.    651,   651,   652,   651,   653,   651,   651,   654,   654,   655,
  1879.    655,   657,   656,   658,   658,   659,   660,   661,   661,   661,
  1880.    662,   662,   662,   662,   662,   662,   662,   662,   663,   663,
  1881.    663,   663,   663,   663,   663,   663,   663,   663,   663,   663,
  1882.    663,   663,   663,   663,   663,   663,   663,   663,   663,   663,
  1883.    663,   663,   663,   663,   663,   663,   663,   663,   663,   663,
  1884.    663,   663,   663,   663,   663,   663,   663,   663,   663,   663,
  1885.    663,   663,   663,   663,   663,   663,   663,   663,   663,   663,
  1886.    663,   663,   663,   663,   663,   663,   663,   663,   663,   663,
  1887.    663,   663,   663,   663,   663,   663,   663,   663,   663,   663,
  1888.    663,   663,   663,   663,   663,   663,   663,   663,   663,   663,
  1889.    663,   663,   663,   663,   663,   663,   663,   664,   664,   665,
  1890.    666,   666,   667,   667,   668,   669,   670,   671,   672,   672,
  1891.    672,   672,   673,   673,   674,   675,   676,   676,   677,   677,
  1892.    678,   678,   678,   678,   678,   678,   678,   678,   678,   678,
  1893.    678,   678,   678,   678,   678,   678,   678,   678,   678,   678,
  1894.    678,   678,   678,   678,   678,   678,   678,   678,   678,   678,
  1895.    678,   678,   678,   678,   679,   679,   679,   679,   679,   680,
  1896.    680,   680,   680,   680,   681,   682
  1897. };
  1898. static const short yyr2[] = {     0,
  1899.      1,     0,     2,     4,     3,     1,     1,     1,     1,     1,
  1900.      2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  1901.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  1902.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  1903.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  1904.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  1905.      1,     1,     1,     1,     1,     1,     1,     1,     8,     8,
  1906.      3,     3,     0,     1,     1,     0,     1,     1,     0,     3,
  1907.      1,     3,     0,     3,     0,     4,     4,     4,     5,     3,
  1908.      2,     1,     1,     1,     1,     1,     1,     2,     3,     4,
  1909.      2,     3,     4,     5,     3,     4,     3,     6,     5,     2,
  1910.      2,     7,     1,     1,     1,     1,     1,     1,     0,     2,
  1911.      0,     3,     0,     8,     1,     2,     1,     1,     0,     1,
  1912.      1,     3,     1,     0,     1,     1,     3,     3,     1,     0,
  1913.      2,     1,     2,     0,     3,     1,     4,     2,     2,     2,
  1914.      1,     2,     5,     3,     1,     1,     2,     3,     3,     3,
  1915.      3,     3,     3,     3,     3,     2,     2,     3,     6,     3,
  1916.      3,     4,     3,     2,     2,     1,     1,     4,     1,     4,
  1917.      1,     1,     3,     1,     4,     4,     5,    10,     3,     1,
  1918.      1,     1,     1,     2,     3,     3,     3,     3,     3,     3,
  1919.      3,     3,     2,     2,     3,     6,     3,     3,     4,     3,
  1920.      3,     4,     3,     3,     2,     2,     2,     2,     3,     2,
  1921.      4,     3,     3,     4,     4,     5,     6,     5,     6,     3,
  1922.      1,     1,     2,     2,     0,     2,     1,     0,     3,     3,
  1923.      2,     1,     2,     2,     4,     0,     7,     3,     0,     3,
  1924.      1,     1,     4,     2,     0,     2,     1,     2,     2,     2,
  1925.      2,     1,     1,     1,     2,     1,     2,     9,     1,     0,
  1926.      4,    14,     1,     1,     1,     3,     5,     1,     1,     1,
  1927.      3,     1,     0,     1,     1,     1,     3,     0,     1,     1,
  1928.      1,     1,     5,     3,     2,     1,     1,     1,     1,     1,
  1929.      1,     1,     1,     3,     1,     3,     3,     1,     3,     1,
  1930.      1,     1,     1,     2,     3,     3,     6,     4,     1,     1,
  1931.      1,     1,     0,     1,     2,     1,     1,     1,     0,     2,
  1932.      2,     0,     7,     2,     1,     1,     1,     3,     1,     1,
  1933.      1,     1,     1,     1,     2,     1,     3,     0,     6,    11,
  1934.      1,     0,     2,     0,     1,     1,     3,     1,     6,     3,
  1935.      2,     2,     0,     1,     2,     0,     4,    11,     2,     0,
  1936.      3,     2,     1,     3,     2,     1,     0,     3,     1,     1,
  1937.      1,     1,     4,     1,     1,     4,     6,     1,     1,     1,
  1938.      1,     1,     1,     1,     1,     1,     1,     1,     3,     3,
  1939.      3,     9,     1,     0,     1,     0,     0,    13,     1,     1,
  1940.      1,     3,     3,     1,     1,     2,     3,     2,     1,     1,
  1941.      1,     1,     3,     1,     1,     1,     1,     1,     1,     0,
  1942.      2,     2,     2,     2,     2,     2,     2,     2,     2,     1,
  1943.      1,     0,     5,     2,     6,     3,     3,     0,     3,     0,
  1944.      1,     1,     0,     1,     1,     0,     3,     4,     3,     5,
  1945.      1,     0,     1,     0,     3,     0,     1,     3,     3,     1,
  1946.      1,     1,     1,     1,     1,     4,     4,     2,     1,     7,
  1947.      4,     3,     0,     3,     1,     2,     4,     4,     3,     0,
  1948.      3,     2,     2,     1,     1,     1,     6,     0,     7,     1,
  1949.      1,     1,     2,     0,     4,     3,     1,     3,     4,     4,
  1950.      8,     4,     2,     0,     1,     0,     1,     0,     1,     3,
  1951.      1,     0,     3,     0,     1,     3,     2,     2,     2,     2,
  1952.      1,     1,     0,     4,     4,     2,     4,     2,     0,     1,
  1953.      1,     1,     1,     1,     1,     0,     1,     1,     3,     3,
  1954.      0,     2,     0,     3,     3,     0,     2,     0,     2,     0,
  1955.      3,     1,     1,     3,     1,     3,     2,     1,     1,     4,
  1956.      2,     2,     1,     4,     4,     3,     2,     2,     2,     1,
  1957.      1,     0,     1,     0,     4,     2,     3,     1,     1,     2,
  1958.      0,     1,     2,     3,     4,     0,     3,     4,     0,     1,
  1959.      3,     3,     3,     3,     3,     3,     2,     2,     1,     1,
  1960.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  1961.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  1962.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  1963.      1,     1,     1,     1,     1,     1,     1,     1,     2,     2,
  1964.      2,     2,     1,     2,     1,     1,     3,     0,     5,     3,
  1965.      0,     5,     3,     0,     4,     1,     4,     2,     1,     3,
  1966.      2,     1,     0,     3,     0,     2,     0,     1,     2,     1,
  1967.      2,     1,     1,     1,     1,     1,     1,     3,     0,     1,
  1968.      3,     3,     3,     3,     3,     3,     3,     0,     1,     1,
  1969.      7,     8,     8,     7,     7,     3,     1,     1,     1,     1,
  1970.      1,     1,     1,     1,     1,     1,     1,     3,     1,     2,
  1971.      1,     1,     1,     2,     2,     2,     3,     3,     3,     3,
  1972.      3,     3,     3,     3,     3,     3,     2,     2,     3,     6,
  1973.      3,     3,     3,     4,     2,     2,     4,     3,     4,     1,
  1974.      1,     4,     1,     4,     1,     1,     4,     4,     4,     4,
  1975.      5,     5,     5,     4,     2,     3,     2,     4,     3,     4,
  1976.      3,     4,     5,     6,     5,     6,     5,     5,     5,     5,
  1977.      5,     5,     5,     5,     5,     6,     6,     6,     6,     6,
  1978.      6,     6,     6,     6,     6,     6,     6,     6,     6,     6,
  1979.      6,     6,     6,     3,     3,     2,     1,     1,     2,     1,
  1980.      1,     2,     2,     2,     3,     3,     3,     3,     3,     2,
  1981.      2,     3,     6,     3,     3,     2,     2,     3,     4,     1,
  1982.      1,     4,     1,     4,     1,     1,     4,     4,     5,     5,
  1983.      5,     4,     1,     4,     6,     0,     1,     3,     3,     3,
  1984.      0,     1,     1,     1,     1,     3,     0,     2,     1,     2,
  1985.      3,     3,     3,     3,     3,     2,     3,     6,     3,     3,
  1986.      2,     2,     1,     3,     4,     4,     4,     5,     5,     5,
  1987.      4,     3,     0,     2,     0,     2,     0,     3,     2,     1,
  1988.      1,     1,     1,     3,     1,     1,     1,     3,     5,     6,
  1989.      4,     2,     1,     4,     2,     0,     2,     1,     0,     3,
  1990.      3,     1,     3,     3,     3,     1,     1,     4,     2,     3,
  1991.      3,     1,     3,     1,     3,     1,     1,     0,     1,     1,
  1992.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  1993.      1,     2,     1,     1,     1,     2,     1,     1,     1,     1,
  1994.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  1995.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  1996.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  1997.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  1998.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  1999.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2000.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2001.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2002.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2003.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2004.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2005.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2006.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2007.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2008.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2009.      5,     3,     2,     3,     6,     1,     1,     2,     2,     1,
  2010.      0,     1,     3,     2,     0,     2,     0,     2,     0,     1,
  2011.      3,     4,     3,     1,     1,     1,     1,     2,     0,     6,
  2012.      3,     0,     4,     5,     5,     0,     2,     0,     0,     6,
  2013.      1,     1,     1,     1,     1,     1,     0,     1,     1,     1,
  2014.      1,     1,     1,     4,     2,     4,     4,     2,     2,     0,
  2015.      1,     1,     2,     1,     2,     1,     2,     1,     1,     1,
  2016.      1,     2,     1,     1,     3,     4,     0,     2,     0,     1,
  2017.      3,     2,     1,     1,     1,     0,     1,     1,     3,     0,
  2018.      4,     1,     1,     2,     3,     0,     2,     1,     3,     4,
  2019.      2,     4,     1,     1,     1,     1,     4,     6,     3,     3,
  2020.      4,     4,     0,     3,     3,     4,     4,     0,     1,     0,
  2021.      1,     1,     1,     1,     2,     1,     2,     2,     1,     2,
  2022.      2,     2,     0,     5,     0,     5,     1,     1,     0,     0,
  2023.      2,     0,     4,     1,     3,     3,     6,     3,     4,     3,
  2024.      1,     1,     1,     2,     3,     5,     2,     5,     2,     1,
  2025.      1,     1,     2,     2,     2,     3,     3,     3,     3,     3,
  2026.      3,     3,     3,     3,     3,     2,     2,     3,     6,     3,
  2027.      3,     3,     4,     2,     2,     4,     3,     4,     1,     1,
  2028.      4,     1,     4,     1,     1,     4,     4,     4,     4,     5,
  2029.      5,     5,     4,     2,     3,     2,     4,     3,     4,     3,
  2030.      4,     5,     6,     5,     6,     5,     5,     5,     5,     5,
  2031.      5,     5,     5,     5,     6,     6,     6,     6,     6,     6,
  2032.      6,     6,     6,     6,     6,     6,     6,     6,     6,     6,
  2033.      6,     6,     3,     3,     2,     1,     1,     1,     3,     1,
  2034.      0,     2,     1,     2,     2,     2,     1,     1,     0,     1,
  2035.      2,     2,     1,     1,     1,     1,     1,     2,     1,     1,
  2036.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2037.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2038.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2039.      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
  2040.      1,     1,     1,     3,     1,     1
  2041. };
  2042. static const short yydefact[] = {     2,
  2043.      1,  1350,  1398,  1380,  1381,  1382,  1383,  1384,  1385,  1386,
  2044.   1387,  1388,  1389,  1390,  1391,  1392,  1393,  1394,  1395,  1396,
  2045.   1397,  1371,  1372,  1366,   947,   948,  1403,  1376,  1377,  1375,
  2046.   1378,  1379,  1370,  1399,  1400,  1404,  1401,  1402,  1415,  1416,
  2047.      3,  1373,  1374,     6,  1132,     0,     8,     7,  1369,     9,
  2048.     10,  1147,     0,     0,     0,  1186,     0,     0,     0,     0,
  2049.      0,     0,   442,   928,   442,   129,     0,     0,     0,   442,
  2050.      0,   323,     0,     0,     0,   442,   522,     0,     0,     0,
  2051.    442,     0,   119,   462,     0,     0,     0,     0,   516,   323,
  2052.      0,     0,     0,   462,     0,     0,     0,    21,    13,    27,
  2053.     51,    52,    53,    12,    14,    15,    16,    17,    18,    19,
  2054.     25,    20,    26,    23,    24,    30,    31,    42,    32,    28,
  2055.     36,    40,    37,    39,    38,    41,    44,   474,    33,    34,
  2056.     45,    46,    47,    48,    49,    22,    50,    29,    43,   473,
  2057.    475,    35,   472,   471,   470,   524,   507,    54,    55,    56,
  2058.     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
  2059.     67,    68,  1146,  1144,  1141,  1145,  1143,  1142,     0,  1147,
  2060.   1138,  1030,  1031,  1032,  1033,  1034,  1035,  1036,  1037,  1038,
  2061.   1039,  1040,  1041,  1042,  1043,  1044,  1045,  1046,  1047,  1048,
  2062.   1049,  1050,  1051,  1052,  1053,  1054,  1055,  1056,  1057,  1058,
  2063.   1059,  1060,   956,   958,   684,   970,   685,   980,   983,   984,
  2064.    987,   686,   683,   991,   996,   998,  1000,  1002,  1003,  1005,
  2065.   1006,  1011,   687,  1020,  1021,  1022,  1023,   682,  1029,  1024,
  2066.    964,  1014,  1026,   957,   959,   960,   961,   962,   963,   965,
  2067.    966,   967,   968,   969,   971,   972,   973,   974,   975,   976,
  2068.    977,   978,   979,   981,   982,   985,   986,   988,   989,   990,
  2069.    992,   993,   994,   995,   997,   999,  1001,  1004,  1007,  1008,
  2070.   1009,  1010,  1013,  1012,  1015,  1016,  1017,  1018,  1019,  1025,
  2071.   1027,  1028,  1363,   949,  1364,  1358,   955,  1111,  1107,   931,
  2072.     11,     0,  1106,  1127,   954,     0,  1126,  1124,  1103,  1120,
  2073.   1125,   950,     0,  1185,  1184,  1188,  1187,  1182,  1183,  1194,
  2074.   1196,   936,   954,     0,  1365,     0,     0,     0,     0,     0,
  2075.      0,     0,   441,   440,   436,   111,   927,   437,   130,   131,
  2076.    127,   128,   351,     0,     0,     0,   297,   298,     0,     0,
  2077.    296,     0,     0,   269,     0,   125,   129,     0,     0,     0,
  2078.   1017,   504,     0,     0,     0,   382,     0,   379,     0,     0,
  2079.      0,   380,     0,     0,   381,     0,     0,   438,     0,  1190,
  2080.    322,   321,   320,   319,   329,   335,   342,   340,   339,   341,
  2081.    343,     0,   336,   337,     0,     0,   439,   521,   519,     0,
  2082.      0,     0,   456,  1020,     0,     0,  1099,  1100,     0,   930,
  2083.    929,     0,   435,     0,   935,   118,     0,   461,     0,     0,
  2084.    432,   434,   433,   444,   938,   515,     0,   329,   431,  1020,
  2085.      0,   101,  1020,     0,    98,   464,     0,   442,     0,     5,
  2086.   1201,     0,   518,     0,   518,   556,  1133,     0,  1137,     0,
  2087.      0,  1110,  1115,  1115,  1108,  1102,  1117,     0,     0,     0,
  2088.   1131,     0,  1195,     0,  1239,     0,  1251,     0,     0,  1252,
  2089.   1253,     0,  1248,  1250,     0,   546,    73,     0,    73,     0,
  2090.      0,   446,     0,   937,     0,   255,     0,   126,     0,   300,
  2091.    299,   303,   397,   395,   396,   390,   391,   392,   394,   393,
  2092.    294,     0,   302,   301,     0,  1181,   501,   502,   500,     0,
  2093.    591,   315,   547,   548,    71,     0,     0,   457,     0,   388,
  2094.      0,   389,     0,   316,   378,  1193,  1192,  1189,  1196,   326,
  2095.    327,   328,     0,   332,   324,   334,     0,     0,     0,     0,
  2096.      0,  1030,   617,  1031,  1032,  1033,  1034,   622,  1035,  1036,
  2097.   1037,  1038,  1039,  1040,  1041,  1042,  1043,  1044,  1045,  1046,
  2098.   1047,  1048,  1049,  1050,  1051,  1052,  1053,  1054,  1055,  1056,
  2099.   1057,  1058,  1059,  1060,   909,     0,   673,   673,     0,   750,
  2100.    751,   753,   755,   664,   970,     0,     0,   945,   658,   698,
  2101.      0,   673,     0,     0,   700,   661,     0,     0,  1020,  1021,
  2102.      0,   944,   756,   669,  1026,     0,     0,   846,     0,   926,
  2103.      0,     0,     0,     0,     0,   596,   609,   613,   611,   612,
  2104.    666,   610,   955,   924,   721,   699,   807,   846,   514,   922,
  2105.      0,     0,   722,   943,   939,   940,   941,   723,   808,  1359,
  2106.    954,  1205,  1206,     0,     0,   455,    90,   454,     0,     0,
  2107.      0,     0,     0,  1239,     0,   121,     0,   469,   591,   490,
  2108.    332,   102,     0,    99,     0,   463,   459,   506,     4,   508,
  2109.    517,     0,     0,     0,     0,   539,     0,  1170,  1171,  1169,
  2110.   1160,  1168,  1164,  1166,  1162,  1160,  1160,     0,  1173,  1139,
  2111.   1152,     0,  1150,  1151,     0,     0,  1148,  1149,  1153,  1112,
  2112.   1109,     0,  1104,     0,     0,  1119,     0,  1123,  1121,  1197,
  2113.   1198,  1200,  1229,  1226,  1238,  1233,     0,  1221,  1224,  1223,
  2114.   1235,  1222,  1213,     0,  1237,     0,     0,  1254,  1032,     0,
  2115.   1249,   545,     0,     0,    76,  1134,    76,     0,   274,   273,
  2116.      0,   448,     0,     0,   407,   253,   249,     0,     0,   295,
  2117.      0,   503,     0,     0,   487,     0,     0,   385,   383,   384,
  2118.    386,     0,   271,  1191,   325,     0,     0,     0,     0,   338,
  2119.      0,     0,     0,   476,   479,     0,   520,     0,   846,     0,
  2120.      0,   908,     0,   672,   668,   675,     0,     0,     0,     0,
  2121.    651,   650,     0,   851,     0,   649,   684,   685,   686,   682,
  2122.    690,   681,   673,   671,     0,   806,     0,     0,     0,   652,
  2123.    857,   883,     0,   679,     0,   616,   618,   619,   620,   621,
  2124.    623,   624,   625,   626,   627,   628,   629,   630,   631,   632,
  2125.    633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
  2126.    643,   644,   645,   646,   647,   648,     0,   680,   689,   615,
  2127.    608,   678,   614,   745,     0,   946,   724,   725,   738,   737,
  2128.      0,     0,     0,   699,   942,     0,   607,     0,     0,     0,
  2129.      0,     0,     0,     0,     0,     0,     0,   765,   767,   746,
  2130.      0,     0,     0,     0,     0,     0,     0,   726,   720,   129,
  2131.      0,   560,     0,     0,     0,     0,  1360,  1356,  1204,  1203,
  2132.   1202,  1207,    96,    97,    88,    95,     0,    94,    86,    93,
  2133.     87,   917,   846,   560,   916,     0,   846,  1213,   458,     0,
  2134.      0,   504,   367,     0,   488,   318,   103,   100,   466,   510,
  2135.    523,   525,   533,   509,     0,   558,     0,     0,   505,     0,
  2136.   1155,  1161,  1158,  1159,  1172,  1165,  1167,  1163,  1179,     0,
  2137.   1147,  1147,     0,  1114,     0,  1116,     0,  1101,  1122,     0,
  2138.      0,  1230,  1232,  1231,     0,     0,     0,  1220,  1225,  1228,
  2139.   1227,  1351,  1255,  1351,   406,   406,   406,   406,   104,     0,
  2140.     74,    75,    79,    79,   443,   279,   278,   280,     0,   275,
  2141.      0,   450,   655,   970,   653,   656,   372,     0,   952,   953,
  2142.    373,   951,   377,     0,     0,   257,     0,     0,     0,     0,
  2143.    254,   134,     0,     0,     0,   308,     0,   305,     0,   498,
  2144.    590,   549,   293,     0,     0,   398,   331,   330,     0,     0,
  2145.    478,     0,     0,   485,   846,     0,     0,   906,   903,   907,
  2146.      0,     0,     0,   677,   847,     0,     0,     0,     0,     0,
  2147.    854,   855,   853,     0,     0,   852,     0,     0,     0,     0,
  2148.      0,   670,     0,   735,     0,     0,     0,     0,     0,     0,
  2149.      0,     0,     0,     0,     0,   846,     0,   859,   873,   885,
  2150.      0,     0,     0,     0,     0,     0,   699,   890,     0,     0,
  2151.    750,   751,   753,   755,     0,     0,     0,     0,     0,     0,
  2152.      0,   756,     0,     0,     0,     0,     0,     0,   721,     0,
  2153.    807,   846,     0,   722,   723,     0,  1347,  1359,   741,     0,
  2154.      0,   599,     0,     0,   600,     0,  1065,  1067,  1068,  1070,
  2155.   1072,  1073,  1076,  1077,  1078,  1085,  1086,  1087,  1088,  1092,
  2156.   1093,  1094,  1095,  1098,  1062,  1063,  1064,  1066,  1069,  1071,
  2157.   1074,  1075,  1079,  1080,  1081,  1082,  1083,  1084,  1089,  1090,
  2158.   1091,  1096,  1097,  1061,   923,   739,   804,     0,   830,   831,
  2159.    833,   835,     0,     0,     0,   836,     0,     0,     0,     0,
  2160.      0,     0,     0,   846,     0,   810,   811,   843,  1357,     0,
  2161.    771,     0,   766,   769,   743,     0,     0,     0,   805,     0,
  2162.      0,     0,   742,     0,     0,   734,     0,   736,     0,     0,
  2163.      0,   732,     0,     0,     0,   733,     0,     0,     0,   727,
  2164.      0,     0,     0,   728,     0,     0,     0,   731,     0,     0,
  2165.      0,   729,     0,     0,     0,   730,   516,   513,  1348,  1359,
  2166.    921,     0,   591,   925,   910,   912,   933,     0,   748,     0,
  2167.    911,  1362,  1361,     0,    92,    89,   919,     0,   591,     0,
  2168.      0,  1220,   120,   114,   113,     0,     0,     0,   496,     0,
  2169.    495,     0,   494,     0,   460,     0,   531,   532,     0,   527,
  2170.    555,     0,   554,   541,   542,   536,   540,   544,   538,   543,
  2171.      0,  1180,     0,  1174,     0,     0,  1367,     0,     0,  1113,
  2172.   1129,  1118,  1199,  1239,  1239,  1218,     0,  1218,     0,  1219,
  2173.   1247,     0,     0,     0,   405,     0,     0,     0,   134,   110,
  2174.      0,     0,     0,   404,    72,    77,    78,    83,    83,     0,
  2175.      0,   453,     0,   445,   654,     0,   371,   376,   370,     0,
  2176.      0,     0,   256,   266,   258,   259,   260,   261,     0,     0,
  2177.    133,   135,   136,   184,     0,   251,   252,     0,     0,     0,
  2178.      0,     0,   304,   354,     0,  1130,     0,   387,     0,   317,
  2179.      0,   344,   348,   346,     0,     0,     0,   486,   349,     0,
  2180.      0,   902,     0,     0,     0,     0,   667,     0,     0,   901,
  2181.    752,   754,     0,   663,   757,   758,     0,   657,   692,   693,
  2182.    694,   695,   697,   696,   691,     0,     0,   660,     0,   857,
  2183.    883,     0,   871,   860,   866,     0,   759,     0,     0,   872,
  2184.      0,     0,     0,     0,     0,   858,     0,     0,   887,   760,
  2185.    688,     0,   889,     0,     0,     0,   764,     0,     0,     0,
  2186.      0,   851,   806,  1345,     0,   857,   883,     0,   745,  1284,
  2187.    724,  1263,   725,  1264,   738,  1277,   737,  1276,     0,     0,
  2188.      0,     0,     0,     0,     0,     0,     0,   765,   767,   746,
  2189.      0,     0,     0,     0,     0,     0,     0,   726,   720,     0,
  2190.      0,   846,     0,     0,   707,   709,   708,   710,   711,   712,
  2191.    713,   715,   714,     0,   706,     0,   594,     0,     0,     0,
  2192.      0,     0,     0,   599,   665,     0,     0,     0,   857,   883,
  2193.      0,   826,   812,   813,   821,   820,     0,     0,     0,   827,
  2194.      0,     0,     0,     0,   814,   809,     0,   891,     0,   892,
  2195.    893,   943,   770,   768,   772,     0,     0,   744,     0,     0,
  2196.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2197.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2198.      0,     0,     0,     0,     0,     0,     0,  1355,     0,   559,
  2199.    563,   565,   562,   568,   592,   551,     0,   747,   749,    91,
  2200.    915,   497,   920,     0,  1208,   116,   117,   123,   115,     0,
  2201.    495,   493,   492,     0,   489,     0,   467,   526,   528,   529,
  2202.    530,   557,     0,     0,     0,  1135,  1140,  1179,   596,  1154,
  2203.   1368,  1156,  1157,     0,  1105,  1242,     0,  1239,     0,     0,
  2204.      0,  1209,  1218,  1210,  1218,  1405,  1406,  1409,  1258,  1407,
  2205.   1408,  1352,  1256,     0,     0,     0,     0,     0,     0,   105,
  2206.      0,   107,     0,   403,     0,    85,    85,     0,   276,   452,
  2207.    447,   451,   456,   374,     0,     0,   375,   427,   428,   425,
  2208.    426,     0,   267,     0,     0,   246,     0,   248,   144,   140,
  2209.    247,     0,     0,   391,   312,   262,   263,   309,   311,   264,
  2210.    313,   310,   307,   306,     0,     0,   499,   400,   401,   399,
  2211.    345,     0,   333,   477,   484,     0,   481,     0,   905,   899,
  2212.      0,   674,   676,   849,   848,     0,   850,     0,     0,     0,
  2213.      0,     0,     0,     0,     0,     0,   869,   867,   856,   870,
  2214.    861,   862,   865,   863,   864,   874,     0,   884,     0,   882,
  2215.    761,   762,   763,   888,     0,     0,     0,     0,     0,   735,
  2216.      0,     0,     0,     0,     0,     0,   741,   739,   804,  1343,
  2217.      0,     0,   771,     0,   766,   769,   743,  1282,     0,     0,
  2218.      0,   805,  1344,     0,     0,     0,   742,  1281,     0,     0,
  2219.    734,     0,   736,  1275,     0,     0,     0,   732,  1271,     0,
  2220.      0,     0,   733,  1272,     0,     0,     0,   727,  1266,     0,
  2221.      0,     0,   728,  1267,     0,     0,     0,   731,  1270,     0,
  2222.      0,     0,   729,  1268,     0,     0,     0,   730,  1269,     0,
  2223.    748,     0,     0,   844,     0,     0,   717,   716,     0,     0,
  2224.    599,     0,   601,   602,   603,   604,   605,   606,   595,     0,
  2225.      0,     0,     0,     0,     0,     0,     0,     0,   824,   822,
  2226.    773,   825,   815,   816,   819,   817,   818,   828,     0,   775,
  2227.      0,     0,   895,     0,   896,   897,     0,     0,   777,     0,
  2228.      0,   785,     0,     0,   783,     0,     0,   784,     0,     0,
  2229.    778,     0,     0,   779,     0,     0,   782,     0,     0,   780,
  2230.      0,     0,   781,   512,  1349,   582,     0,   569,     0,     0,
  2231.    584,   581,   584,   582,   580,   584,   571,   573,     0,     0,
  2232.    567,   593,     0,   553,   914,   913,   918,     0,   112,   498,
  2233.    491,     0,   465,   535,   534,   537,  1175,  1177,  1128,  1179,
  2234.   1234,  1241,  1236,  1218,     0,  1218,     0,  1211,  1212,     0,
  2235.      0,   192,     0,     0,     0,     0,     0,     0,     0,   191,
  2236.    193,     0,     0,     0,   106,     0,     0,     0,     0,     0,
  2237.     70,    69,   283,     0,     0,   449,   369,     0,     0,   183,
  2238.    132,     0,   124,   250,   252,     0,   138,     0,     0,     0,
  2239.      0,     0,     0,   151,   137,   139,   142,   146,     0,   314,
  2240.    265,   353,   932,     0,     0,     0,   904,   740,   662,   900,
  2241.    659,     0,   876,   877,     0,     0,     0,   881,   875,   886,
  2242.      0,   752,   754,   757,   758,   759,   760,     0,     0,     0,
  2243.    764,     0,     0,   770,   768,   772,     0,     0,   744,  1283,
  2244.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2245.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  2246.      0,     0,     0,     0,     0,     0,     0,   747,   749,   846,
  2247.      0,     0,     0,     0,   719,     0,   597,   599,     0,   832,
  2248.    834,   837,   838,     0,     0,     0,   842,   829,   894,   774,
  2249.    776,     0,   795,   786,   803,   794,   801,   792,   802,   793,
  2250.    796,   787,   797,   788,   800,   791,   798,   789,   799,   790,
  2251.      0,   561,   564,     0,   583,   577,   578,     0,   579,   572,
  2252.      0,   566,     0,     0,   511,     0,   468,     0,  1176,     0,
  2253.      0,  1244,  1214,  1218,  1215,  1218,     0,   215,   216,   194,
  2254.    204,   203,     0,     0,     0,     0,     0,     0,     0,     0,
  2255.      0,   218,   220,   217,     0,     0,     0,     0,     0,     0,
  2256.      0,     0,   185,     0,     0,     0,   186,   109,     0,   402,
  2257.     82,    81,     0,   282,     0,     0,   277,     0,   591,   424,
  2258.      0,   143,     0,     0,     0,   176,   177,   179,   181,   148,
  2259.    182,     0,     0,     0,     0,     0,   149,     0,   156,   150,
  2260.    152,   483,   141,   268,     0,   355,   356,   358,   363,     0,
  2261.    933,   347,     0,     0,   878,   879,   880,     0,   761,   762,
  2262.    763,   773,   775,     0,     0,     0,     0,   777,     0,     0,
  2263.    785,     0,     0,   783,     0,     0,   784,     0,     0,   778,
  2264.      0,     0,   779,     0,     0,   782,     0,     0,   780,     0,
  2265.      0,   781,   845,   701,     0,   704,   705,     0,   598,     0,
  2266.    839,   840,   841,   898,     0,   576,     0,     0,   550,   552,
  2267.    122,  1410,  1411,     0,  1412,  1413,  1178,  1353,   596,  1243,
  2268.   1179,  1216,  1217,     0,   207,   205,   213,     0,   232,     0,
  2269.    223,     0,   219,   222,   211,     0,     0,     0,   214,   210,
  2270.    200,   201,   202,   195,   196,   199,   197,   198,   208,     0,
  2271.    190,     0,   187,   108,     0,    84,   284,   285,   281,     0,
  2272.      0,     0,     0,     0,     0,   145,     0,     0,     0,   174,
  2273.    157,   167,   166,     0,     0,   175,     0,     0,     0,     0,
  2274.      0,     0,     0,     0,     0,     0,   235,   370,     0,     0,
  2275.      0,   366,     0,   480,   868,   740,   774,   776,   795,   786,
  2276.    803,   794,   801,   792,   802,   793,   796,   787,   797,   788,
  2277.    800,   791,   798,   789,   799,   790,   702,   703,   823,   570,
  2278.    575,     0,     0,   574,     0,  1354,  1246,  1245,     0,     0,
  2279.      0,   231,   225,   221,   224,     0,     0,   212,     0,   209,
  2280.      0,    80,     0,   368,   430,   423,   245,   147,     0,     0,
  2281.      0,   170,   168,   173,   163,   164,   165,   158,   159,   162,
  2282.    160,   161,   171,     0,   155,     0,     0,   238,   350,   357,
  2283.    362,   361,     0,   360,   364,   934,     0,   586,     0,  1414,
  2284.      0,   228,     0,   226,     0,     0,   189,   483,   288,   429,
  2285.      0,     0,   178,   180,     0,   172,   482,   233,   234,     0,
  2286.    153,   237,   365,   363,     0,   588,   589,   206,   230,   229,
  2287.    227,   235,     0,   286,   289,   290,   291,   292,   409,     0,
  2288.      0,   408,   411,   422,   419,   421,   420,   410,     0,   154,
  2289.      0,     0,   236,   366,     0,   585,   238,     0,   272,     0,
  2290.    414,   415,     0,   169,   242,     0,     0,   239,   240,   359,
  2291.    587,   188,   287,   412,   416,   418,   413,   241,   243,   244,
  2292.    417,     0,     0,     0
  2293. };
  2294. static const short yydefgoto[] = {  2492,
  2295.      1,    41,    96,    97,    98,    99,   100,   725,   973,  1318,
  2296.   2141,  1636,  1941,   101,  1246,   899,   895,   102,   103,   104,
  2297.    969,   105,   106,  1256,  1578,   407,   911,  1899,   107,   345,
  2298.    346,   347,  1340,  1341,  1342,  1965,  1966,  1957,  1967,  1968,
  2299.   2394,  2167,  1343,  1344,  2280,  1928,  2361,  2362,  2398,  2431,
  2300.   2432,  2478,  1953,   108,  1003,  1345,  1346,   109,   736,  1001,
  2301.   1665,  1666,  1667,   110,   348,   111,   112,   731,   979,   980,
  2302.   1944,  2145,  2289,  2443,  2444,   113,   114,   491,   349,  1006,
  2303.    740,  1007,  1008,  1668,   115,   116,   375,   524,   758,   117,
  2304.    382,   383,   384,  1363,  1683,   118,   119,   350,  1676,  2175,
  2305.   2176,  2177,  2178,  2322,  2404,   120,   121,  1646,   734,   988,
  2306.   1329,  1330,   122,   367,   123,   749,   124,   125,  1669,   493,
  2307.   1015,   126,  1633,  1311,   127,   994,  2452,  2470,  2471,  2472,
  2308.   2149,  1652,  2421,  2454,   129,   130,   131,   325,   132,   133,
  2309.    134,   982,  1324,  1641,   637,   135,   136,   137,   409,   657,
  2310.   1265,  1586,   138,   139,  2455,   764,  2317,  1023,  1024,  2456,
  2311.    142,   915,  1262,  1263,  2457,   144,  1355,   500,   145,   146,
  2312.    147,   882,   417,   662,   390,   436,   921,   922,  1270,   929,
  2313.   1276,  1279,   723,   502,   503,  1894,  2095,   666,  1273,  1233,
  2314.   1560,  1561,  1562,  1877,  1563,  1887,  1888,  1889,  2086,  2354,
  2315.   2435,  2436,   745,  1564,   857,  1487,  1114,   605,   606,   607,
  2316.    608,   609,   989,   786,   800,   781,   610,   611,   775,  1034,
  2317.   1377,   612,   613,   804,   792,  1035,   615,   852,  1484,  1810,
  2318.    853,   616,  1173,   846,  1078,  1044,  1045,  1064,  1065,  1071,
  2319.   1419,  1720,  1079,  1519,  1520,  1844,  1845,   617,  1028,  1029,
  2320.   1373,   768,   618,  1235,   904,   905,   619,   620,   326,   770,
  2321.    288,  1972,  1236,  2405,   404,   504,   622,   414,   623,   624,
  2322.    625,   626,   627,   298,   991,   628,  1155,   401,   148,   307,
  2323.    292,   442,   443,   691,   693,   696,   948,   299,   300,   293,
  2324.   1605,   149,   150,    44,    52,    45,   437,   169,   170,   440,
  2325.    939,   171,   680,   681,   682,   683,   684,   685,   686,   931,
  2326.    687,   688,  1283,  1284,  2099,  1285,   151,   152,   308,   309,
  2327.    153,   519,   518,   154,   155,   453,   700,   156,   157,   158,
  2328.    891,   634,   159,   160,   958,  1612,  1301,  1606,   951,   955,
  2329.    714,  1607,  1608,  1910,  2101,  2102,   161,   162,   463,  1106,
  2330.   1228,    46,  1302,  2247,  1229,   629,  1107,   630,   888,   631,
  2331.    715,    47,  1286,    48,  1287,  1622,  2248,    50,    51
  2332. };
  2333. static const short yypact[] = {-32768,
  2334.   2391,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2335. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2336. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2337. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2338. -32768,-32768,-32768,-32768,-32768,  2926,-32768,-32768,-32768,-32768,
  2339. -32768,  1429, 25892,   304,   143, 25040,   317, 29553,   317,   -35,
  2340.    376,   -10,   264, 29553,   382,  3717, 29834,    77,  1798,   382,
  2341.     65,    45,    90,   139,    90,   382,   460, 27305, 27586,   -35,
  2342.    382, 29553,   145,    27,   153, 27586, 23335,   140,   307,    45,
  2343.  27586, 28148, 28429,    27,   -74,  4305,   230,-32768,-32768,-32768,
  2344. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2345. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2346. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2347.    518,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2348. -32768,-32768,-32768,-32768,-32768,   420,-32768,-32768,-32768,-32768,
  2349. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2350. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   571,    89,
  2351. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2352. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2353. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2354. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2355. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2356. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2357. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2358. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2359. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2360. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2361. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2362. -32768,-32768,-32768,-32768,-32768,-32768,-32768,   273,-32768,-32768,
  2363. -32768,   273,-32768,-32768,   399, 25324,-32768,-32768,-32768,    41,
  2364. -32768,-32768,   317,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2365.    526,-32768,-32768,   656,-32768,   627,   100,   100,   747, 27586,
  2366.    317,   757,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2367. -32768,-32768,-32768,   317, 29553, 29553,-32768,-32768, 29553, 29553,
  2368. -32768, 29553, 27586,-32768,   620,-32768,   115,   581, 22750,   619,
  2369.    317,   514, 27586, 29553,   317,-32768, 29553,-32768, 29553, 29553,
  2370.  29553,-32768,  2302,   730,-32768, 29553, 29553,-32768,   345,-32768,
  2371. -32768,-32768,-32768,-32768,    98,   711,-32768,-32768,-32768,-32768,
  2372. -32768,   759,   574,-32768, 27586,   780,-32768,-32768,   784, 15476,
  2373.   -113,  -113,   -26,   739,   846,   -98,-32768,-32768,   807,-32768,
  2374. -32768,   861,-32768,   840,-32768,-32768, 27586,-32768,    57, 29553,
  2375. -32768,-32768,-32768,-32768,-32768,-32768, 27586,    98,-32768,   798,
  2376.    897,-32768,   842,   924,-32768,   772,   -32,   382,   721,-32768,
  2377. -32768,   -74,  1006,  1005,  1006,   969,-32768,  1010,-32768,   505,
  2378.  29553,-32768,   864,   864,-32768,-32768,  1057,  1098,  1667,  1667,
  2379. -32768,   399,-32768,   345,   839, 29553,-32768,  1001, 29553,-32768,
  2380. -32768, 30115,-32768,-32768,   100,   914,   993,   901,   993,  1163,
  2381.    482,  1051,   962,-32768,  1211,-32768, 27586,-32768,  1158,-32768,
  2382. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2383. -32768,  1002,-32768,-32768, 29553,-32768,  1139,-32768,-32768,  1233,
  2384.   1140,-32768,  1066,-32768,-32768,  1206, 23619,-32768,   962,-32768,
  2385.   1068,-32768,   140,-32768,-32768,-32768,-32768,-32768,   526,-32768,
  2386. -32768,-32768,  1109,   277,-32768,-32768, 29553,    91,   -29, 29553,
  2387.  29553,  -118,-32768,   328,   413,   434,   454,-32768,   475,   554,
  2388.    595,   616,   624,   626,   632,   652,   655,   678,   679,   722,
  2389.    729,   738,   742,   768,   781,   794,   800,   806,   818,   824,
  2390.    826,   833,   835,   837, 24755,  1095,  1214,  1214,  1106,-32768,
  2391.   1110,  1113,-32768,  1116,  1275,  1130,  1133,-32768,  1153,  1157,
  2392.   1370,  1214, 16700,  1164,  1179,  1187,  1194,  1195,   844,   254,
  2393.   1216,-32768,-32768,-32768,   877, 30810, 16700,  1209, 16700,-32768,
  2394.  16700, 16700, 16700, 17006,   140,  1222,-32768,-32768,-32768,-32768,
  2395.   1232,-32768,   878,  1479,-32768,  4300,-32768,  1209,   -52,-32768,
  2396.   1244,  1251,-32768,  1265,-32768,-32768,-32768,   491,-32768,    31,
  2397.    880,-32768,-32768,    59, 25608,-32768,-32768,-32768,   -33,  1441,
  2398.    -21,   -21, 23047,   839, 27586,  1379, 29553,-32768,  1140,  1466,
  2399.    277,-32768,  1453,-32768,  1472,-32768, 27586,-32768,-32768,-32768,
  2400. -32768,   -74, 16700,   -74,   354,   487,  1517,-32768,-32768,-32768,
  2401.    -35,-32768,-32768,-32768,-32768,   -35,   -35,   641,-32768,-32768,
  2402. -32768,  1323,-32768,-32768,  1334,  1338,-32768,-32768,-32768,  1318,
  2403. -32768,  1109,-32768,  1366, 25892,  1443,  1667,-32768,-32768,-32768,
  2404.   1293,-32768,-32768,-32768,-32768,-32768,  1371,-32768,-32768,-32768,
  2405. -32768,-32768,   424,  1404,-32768,  1350, 29553,-32768,  1383,  1378,
  2406. -32768,-32768,   144,  1432,   190,-32768,   190,   -74,-32768,-32768,
  2407.    403,  1455,  9368,  1425,-32768,   815,  1495,   140, 22453,-32768,
  2408.   1553,-32768,  1628, 16700,-32768, 29553, 27586,-32768,-32768,-32768,
  2409. -32768, 28710,-32768,-32768,-32768, 29553, 29553,  1617,  1569,-32768,
  2410.   1579,  1498, 21875,-32768,-32768,  1673,-32768,  1624,  1209,  1503,
  2411.   1265,  1520, 16700,-32768,-32768,  1755, 17006,  1109,  1109,  1109,
  2412. -32768,-32768,  1660,  1326,  1109,-32768,  1657,  1661,  1668,  1671,
  2413. -32768,-32768,  1214,-32768,  1179,  1664, 16700, 16700,  1109,-32768,
  2414.  20066, 17006,  1690,-32768,  9662,-32768,-32768,-32768,-32768,-32768,
  2415. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2416. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2417. -32768,-32768,-32768,-32768,-32768,-32768,  1275,-32768,  1693,-32768,
  2418. -32768,-32768,-32768,   894, 17312,-32768,  1814,  1814,  1814,  1814,
  2419.   1600,  1604,  1612,  2583,-32768,   766,-32768,  1109, 26460, 30604,
  2420.  16700, 18536,  1621,   235, 16700,   520, 16700,-32768,-32768, 17618,
  2421.  10886, 11192, 11498, 11804, 12110, 12416, 12722, 18230,-32768,    40,
  2422.  15476,  1816, 23903,  7526, 29553, 26176,-32768,-32768,-32768,-32768,
  2423. -32768,-32768,-32768,-32768,-32768,-32768,   375,-32768,-32768,-32768,
  2424. -32768,-32768,  1209,   -54,-32768,  1641,   338,   424,-32768,  1675,
  2425.     25,   514,-32768,   723,-32768,-32768,-32768,-32768,  1639,-32768,
  2426.   1633,-32768,  3548,-32768,  1802,  1800,   -16,   857,-32768,  1936,
  2427. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1670,   760,
  2428.    151,   151, 29553,-32768, 29553,-32768,  1667,-32768,-32768,   399,
  2429.   1655,-32768,-32768,-32768,  1658,   802,   558,  1942,-32768,-32768,
  2430. -32768,-32768,-32768,-32768,    29,  1888,  1888,  1888,-32768,   317,
  2431. -32768,-32768,   314,   314,-32768,-32768,-32768,-32768,  1822,  1821,
  2432.   1685,  1751,-32768,  1819,-32768,-32768,-32768,   588,-32768,-32768,
  2433. -32768,-32768,  1712,  1830,   169,-32768,   169,   169,   169,   169,
  2434. -32768, 27022,  1916,  1752,  1695,  1700,   611,-32768, 27586,   317,
  2435.   4300,-32768,-32768,  1687,  1688,  1691,-32768,-32768,   399, 27867,
  2436. -32768, 15476,   615,-32768,  1209, 27867, 16700,    -2,-32768,-32768,
  2437.  29553,  2457,  1826,  1920,-32768,   -46,  1696,  1698,   706,  1702,
  2438. -32768,-32768,-32768,  1703,  1890,-32768,  1704,   229,   -36,  1836,
  2439.   1874,-32768,  3038,  2604,   819,  1707,  1708,  1709,  1710, 20066,
  2440.  20066, 20066, 20066,  1711,   838,  1209,  1714,-32768,   491,   -56,
  2441.   1719,  1825, 15782, 17006, 15782, 15782,  3845,   -63,  1725,  1715,
  2442.    232,   954,  1055,   542,  1728,  1729, 17312,  1746,  1731,  1732,
  2443.   1735,   680, 17312, 17312, 17312, 17312, 17312, 17006,   727,  4540,
  2444.    868,  1209,  1736,   906,  1252,   928,-32768,    37,-32768,  1385,
  2445.  16700,  1742,   352,  1332,-32768,  1739,-32768,-32768,-32768,-32768,
  2446. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2447. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2448. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2449. -32768,-32768,-32768,-32768,-32768,-32768,  1664,  1741,-32768,  1745,
  2450.   1747,-32768,  1753,  1757,  1760,-32768, 18536, 18536, 18536, 18536,
  2451.  18536, 16700,  1223,  1209,  1761,-32768,   491,-32768,-32768,  5129,
  2452. -32768,   288,-32768,-32768,   970, 18536,  1762, 16700,  2243,  1763,
  2453.   1764, 16088,   894,  1765,  1766,-32768, 16088,  2604,  1768,  1769,
  2454.  16088,  4450,  1770,  1771, 16088,  4450,  1772,  1773, 16088,    23,
  2455.   1774,  1777, 16088,    23,  1779,  1780, 16088,  1814,  1781,  1783,
  2456.  16088,  1814,  1784,  1785, 16088,  1814,   307,  1743,-32768,    31,
  2457. -32768, 21594,  1140,-32768,  1750,-32768,-32768,  1754,-32768,   -20,
  2458.   1750,-32768,-32768,  1854,-32768,-32768,-32768, 24755,  1140, 24187,
  2459.   1803,  1942,-32768,-32768,-32768,   941,  2005,   164,-32768,   164,
  2460.   1835,  1859,-32768, 29553,-32768, 16700,-32768,-32768,   926,-32768,
  2461. -32768, 29553,-32768,-32768,-32768,  -167,-32768,-32768,  1869,-32768,
  2462.   1811,-32768,   474,-32768,   -35,  3423,-32768,  1804,  1806,-32768,
  2463.   1834,-32768,-32768,   203,   203,   522,  1532,   522,   996,-32768,
  2464. -32768,   971,  1149,  1812,-32768,  1983,  1990,  1815, 27022,-32768,
  2465.  29553, 29553, 29553, 29553,-32768,-32768,-32768,  2003,  2003, 27586,
  2466.    403,    -8,  1833,-32768,-32768, 26741,-32768,-32768,  1925, 26741,
  2467.    495,  1109,-32768,-32768,-32768,-32768,-32768,-32768, 29553,  1020,
  2468. -32768,-32768,-32768,-32768,  1030,-32768, 30398,  1660, 22750, 22156,
  2469.  22156, 22453,-32768,  1935,   -74,-32768, 29553,-32768, 28991,  1743,
  2470.  29553,-32768,  1930,-32768,  1092, 29553,   221,-32768,-32768,  3810,
  2471.  17006,-32768,  2028, 30604, 29553, 29553,-32768, 16700, 17006,-32768,
  2472. -32768,-32768,  1109,-32768,-32768,-32768, 16700,-32768,-32768,-32768,
  2473. -32768,-32768,-32768,-32768,-32768, 16700,  1109,-32768, 20066, 20066,
  2474.  17006,  9968,   330,  2073,  2073,    74,-32768, 30604, 20066, 20678,
  2475.  20066, 20066, 20066, 20066, 20066,-32768,  8140, 17006,  2022,-32768,
  2476. -32768,  1828,   -63,  1829,  1831, 17006,-32768, 16700,  1109,  1109,
  2477.   1660,  1326,  1852,-32768, 16700, 20066, 17006, 10274,  1019,-32768,
  2478.   2075,-32768,  2075,-32768,  2075,-32768,  2075,-32768,  1832, 30604,
  2479.  17312, 18536,  1844,   600, 17312,   523, 17312,   975,  1071, 13028,
  2480.  13334, 13640, 13946, 14252, 14558, 14864, 15170, 17924,  1121,  7833,
  2481.  17312,  1209,  1845,  2018,-32768,-32768,-32768,-32768,-32768,-32768,
  2482. -32768,-32768,-32768,     2,  3059,   856,-32768,  1037,   352,   352,
  2483.    352,   352,   352,  1742,-32768, 18536,  1109,  1109, 20066, 17006,
  2484.  10580,   525,  2083,  2083,  2083,  2083,   859, 30604, 18536, 18842,
  2485.  18536, 18536, 18536, 18536, 19148,-32768,  8447,-32768,  1848,  1851,
  2486. -32768,-32768,-32768,-32768,-32768,  1287,  5129,   970,  1660,  1660,
  2487.   1850,  1660,  1660,  1853,  1660,  1660,  1863,  1660,  1660,  1864,
  2488.   1660,  1660,  1865,  1660,  1660,  1866,  1660,  1660,  1870,  1660,
  2489.   1660,  1871,  1660,  1660,  1873, 27586,   399,-32768, 27586,-32768,
  2490.   1856,  1623,-32768, 29272,  1881,  2042, 24471,-32768,-32768,-32768,
  2491. -32768,-32768,-32768, 17006,-32768,-32768,-32768,  1967,-32768,  2071,
  2492. -32768,-32768,-32768,  1957,-32768,  1142,-32768,-32768,-32768,-32768,
  2493. -32768,  1879,   857,   857,   -16,-32768,-32768,  1670,  1222,-32768,
  2494. -32768,-32768,-32768, 29553,-32768,-32768,  1876,   203,  1877,   917,
  2495.    563,-32768,   522,-32768,   522,-32768,-32768,-32768,-32768,-32768,
  2496. -32768,-32768,-32768, 20984,  1882,  1883, 29553,  1148, 30398,-32768,
  2497.    -14,-32768,  2004,-32768,  2076,  1914,  1914,  2084,  2040,-32768,
  2498. -32768,-32768,   -26,-32768,  1002,  2129,-32768,-32768,-32768,-32768,
  2499. -32768,  2014,-32768,   555, 27022,  1964, 29553,-32768,  2041,  1269,
  2500. -32768,  1962, 29553,  1074,-32768,-32768,-32768,-32768,-32768,-32768,
  2501. -32768,-32768,-32768,-32768,   317,  1895,-32768,-32768,-32768,-32768,
  2502. -32768,  2087,-32768,-32768,-32768,  1900,-32768, 17006,-32768,-32768,
  2503.   1901,-32768,-32768,  4300,-32768,  1903,  4300,  1434,  1905,  1025,
  2504.   1908,  1909, 15782, 15782, 15782,  1910,-32768,-32768,   427,   330,
  2505.     55,    55,  2073,  2073,  2073,-32768,     6,   -63, 17006,-32768,
  2506. -32768,-32768,-32768,   -63,  3944,  1911,  1912,  1915,  1917,   903,
  2507.   1918,  1919, 15782, 15782, 15782,  1921,  1173,  1174,  1852,-32768,
  2508.   1465,  5129,  1181,   605,  1192,  1227,  1583,-32768, 18536,  1924,
  2509.  17312,  2275,-32768,  1926,  1927, 16088,  1019,-32768,  1928,  1929,
  2510.   1229, 16088,  2923,-32768,  1932,  1933, 16088,  4783,-32768,  1934,
  2511.   1941, 16088,  4783,-32768,  1943,  1944, 16088,   122,-32768,  1946,
  2512.   1947, 16088,   122,-32768,  1948,  1949, 16088,  2075,-32768,  1950,
  2513.   1953, 16088,  2075,-32768,  1954,  1955, 16088,  2075,-32768,  1956,
  2514.   1238,   136,  1958,-32768,  1660,  1968,-32768,-32768, 16394,  1969,
  2515.   1742,  1608,-32768,   -61,   -61,-32768,-32768,-32768,-32768,  1474,
  2516.   1970,  1971,  1972,  1973, 15782, 15782, 15782,  1974,-32768,-32768,
  2517.    948,   525,   182,   182,  2083,  2083,  2083,-32768,   154,-32768,
  2518.   6707, 18536,-32768,  1976,  1931,-32768,  1982,  1984,-32768,  1985,
  2519.   1986,-32768,  1987,  1992,-32768,  1993,  1996,-32768,  1997,  1998,
  2520. -32768,  1999,  2001,-32768,  2002,  2006,-32768,  2007,  2008,-32768,
  2521.   2010,  2011,-32768,-32768,-32768,  1185,  2013,-32768, 27586,  2093,
  2522.   2068,-32768,  2068,   960,-32768,  2068,  1623,-32768,  2103, 26460,
  2523. -32768,-32768,  2177,  2147,-32768,-32768,-32768,  2054,-32768,-32768,
  2524. -32768, 29553,-32768,-32768,-32768,-32768,-32768,  2000,-32768,  1670,
  2525. -32768,-32768,-32768,   522,  1629,   522,  1072,-32768,-32768,  2016,
  2526.  20984,-32768, 20984, 20984, 20984, 20984, 20984,  1566,  2017,-32768,
  2527.   2019, 29553, 29553,  1204,-32768,  2202,  2203, 29553,   317,  2035,
  2528. -32768,-32768,  2100,  2207,   403,-32768,-32768,   140, 27586,-32768,
  2529. -32768,  2021,-32768,-32768,-32768,  2200,-32768,  2024, 29553, 19454,
  2530.   2184,  2205, 29553,-32768,-32768,  1269,-32768,-32768,   140,-32768,
  2531. -32768,-32768,-32768, 29553,  2180, 15476,-32768,-32768,-32768,-32768,
  2532. -32768, 30604,-32768,-32768,  2029,  2030,  2031,-32768,-32768,   -63,
  2533.  30604,  1271,  1272,  1289,  1290,  1296,  1298,  2034,  2038,  2039,
  2534.   1302, 18536,  2043,  1305,  1333,  1339,  1593,  5129,  1583,-32768,
  2535.   1660,  1660,  2048,  1660,  1660,  2049,  1660,  1660,  2052,  1660,
  2536.   1660,  2053,  1660,  1660,  2056,  1660,  1660,  2057,  1660,  1660,
  2537.   2058,  1660,  1660,  2059,  1660,  1660,  2060,  1341,  1349,  1209,
  2538.   2061,  1660,  2063,  2064,  4300,  1660,-32768,  1742, 30604,-32768,
  2539. -32768,-32768,-32768,  2065,  2066,  2067,-32768,-32768,-32768,   948,
  2540. -32768,  6707,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2541. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  2542.   2219,-32768,-32768, 27586,-32768,-32768,-32768,  2220,-32768,-32768,
  2543.  27586,-32768, 17006, 16700,-32768,   140,-32768,   543,-32768,   -35,
  2544.   1360,-32768,-32768,   522,-32768,   522, 20984,  2705,  1319,  2277,
  2545.   2277,  2277,  1872, 30604, 20984,  6707,  2055,   604, 20984,   612,
  2546.  20984,-32768,-32768, 21290, 20984, 20984, 20984, 20984, 20984, 20984,
  2547.  20984, 20984,-32768,  9061,  1312,  1316,-32768,-32768, 19760,-32768,
  2548.   2044,-32768,   140,-32768,   -95,  2213,-32768,  2248,  1140,  2078,
  2549.  29553,-32768, 20984,  1407,  2077,-32768,  2079,  2080,-32768,-32768,
  2550. -32768, 19760, 19760, 19760, 19760, 19760,   674,  2081,-32768,-32768,
  2551. -32768,  2085,-32768,-32768,  2086,  2090,-32768,-32768,   -49,  2091,
  2552.   2019,-32768,  1416,  2092,-32768,-32768,-32768,  2096,  1367,  1369,
  2553.   1387,   468,  1390, 18536,  2098,  2099,  2101,  1394,  2108,  2110,
  2554.   1397,  2112,  2114,  1400,  2115,  2117,  1406,  2118,  2119,  1408,
  2555.   2120,  2132,  1433,  2142,  2145,  1435,  2146,  2148,  1436,  2149,
  2556.   2150,  1445,-32768,-32768,  2153,-32768,-32768,  2154,-32768,  2156,
  2557. -32768,-32768,-32768,-32768, 27586,-32768, 27586,   270,   -63,  4300,
  2558. -32768,-32768,-32768,   760,-32768,-32768,   543,-32768,  1222,-32768,
  2559.   1670,-32768,-32768,  4210,-32768,-32768,  2705,  2318,-32768,  6707,
  2560. -32768,   647,-32768,-32768,  1991,  6707,  2158, 20984,  3364,  1319,
  2561.   4335,  4818,  4818,   208,   208,  2277,  2277,  2277,-32768,  1458,
  2562.   4604,  2225,-32768,   674,   317,-32768,-32768,-32768,-32768, 29553,
  2563.    140,  2169, 29553,  2161,  1975,-32768, 19760,  1109,  1109,   650,
  2564.   2340,  2340,  2340,   355, 30604, 20372, 19760, 19760, 19760, 19760,
  2565.  19760, 19760, 19760, 19760,  8754, 29553,  2333,  1925, 29553, 30604,
  2566.  30604,   327, 29553,-32768,-32768,  1446,   607,  1475,  1476,  1477,
  2567.   1483,  1490,  1504,  1508,  1531,  1535,  1539,  1542,  1548,  1551,
  2568.   1567,  1592,  1595,  1610,  1616,  1636,-32768,-32768,-32768,-32768,
  2569. -32768, 16700,  2164,-32768,  3987,-32768,-32768,-32768, 30604,  6707,
  2570.   1481,-32768,-32768,-32768,-32768,  2390,  6707,  1991, 20984,-32768,
  2571.  29553,-32768,  2165,-32768,  2237,-32768,-32768,-32768,   943,  2166,
  2572.   2168,-32768,-32768,   650,   674,   882,   882,   214,   214,  2340,
  2573.   2340,  2340,-32768,  1563,   674,  1576,   130,  2326,-32768,-32768,
  2574. -32768,-32768,   317,-32768,-32768,-32768,  1577,  4300, 29553,-32768,
  2575.   2171,-32768,  6707,-32768,  6707,  1590,  4604,  2085,  1127,-32768,
  2576.   1090, 30604,-32768,-32768, 19760,-32768,-32768,-32768,-32768,     4,
  2577. -32768,  2326,-32768,   -49,  1632,-32768,-32768,-32768,-32768,-32768,
  2578. -32768,  2333,  1637,-32768,-32768,-32768,-32768,-32768,-32768,   583,
  2579.    736,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  2173,   674,
  2580.     95,    95,-32768,   327, 29553,-32768,  2326,  1127,-32768,  2178,
  2581.    583,  2181,  2179,-32768,-32768,  2424,   107,-32768,-32768,-32768,
  2582. -32768,-32768,-32768,-32768,  2185,-32768,-32768,-32768,-32768,-32768,
  2583. -32768,  2489,  2491,-32768
  2584. };
  2585. static const short yypgoto[] = {-32768,
  2586. -32768,-32768,-32768,  2396,-32768,-32768,-32768,  2025,  1778,  1519,
  2587. -32768,  1176,   860,-32768,-32768,  1858,-32768,-32768,-32768,-32768,
  2588. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1618,
  2589.   2157,-32768,  1198,   854,  1190,-32768,-32768,-32768,   544,   357,
  2590. -32768, -2085,-32768,  -951,-32768, -1829,   147, -2049,    76,    49,
  2591.     92,    64,-32768,-32768,-32768,-32768,   872,-32768,-32768,-32768,
  2592. -32768,-32768,   566,-32768,-32768,-32768,-32768,-32768,-32768, -1300,
  2593. -32768,-32768,-32768,-32768,    62,-32768,-32768,-32768,-32768,  -340,
  2594.    887,-32768,  1182,  1193,-32768,-32768,  2443,  2125,  1894,-32768,
  2595.   2472,-32768,  2020,  1523,-32768,-32768,-32768,-32768,-32768,-32768,
  2596. -32768,-32768,   231,   117,    96,-32768,-32768,   244,  2070,-32768,
  2597. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  2201,  -350,
  2598. -32768,-32768,-32768,   749,-32768,-32768,-32768,   112,-32768, -2312,
  2599. -32768,-32768,-32768,   -22,-32768,-32768,-32768,  1152,-32768,-32768,
  2600. -32768,-32768,-32768,-32768,   922,-32768,-32768,-32768,  2481,-32768,
  2601. -32768,  1294,-32768,  2167,    -5,-32768,   159, -1604,  1215,     3,
  2602. -32768,-32768,-32768,   557,     9,-32768,-32768,  1672,  -526,   -91,
  2603.   5482,-32768,  1353,  2152,-32768,-32768,-32768,  1317,-32768,-32768,
  2604.    987,  -345,-32768,  -354,   265,-32768,-32768,-32768,-32768,  1686,
  2605. -32768,-32768, -1516,-32768,  1032,-32768,   702,   708, -1025,-32768,
  2606. -32768,   137,  -641,-32768, -1561, -1465,  -912,  -843,  2009,-32768,
  2607. -32768,-32768,-32768,-32768,-32768,-32768,-32768,  -694,  -512,-32768,
  2608. -32768,-32768,  3441,-32768,-32768,  -121,  -578,   797,-32768,-32768,
  2609. -32768,  4844, -1134,  -576,  -755,  1171,-32768,  -864,  -941,  -970,
  2610. -32768,-32768,  -962,   865,-32768,   601,-32768,   -77,-32768,  1580,
  2611. -32768,-32768,  4926,  1730,-32768,  1362, -1011,  1733,-32768,   527,
  2612.   -307,-32768, -1536,   210,  -247,   -51,  3470,-32768,  5056,  1143,
  2613.     -1,     1,   -38,  -315,  -595,  1459,   726,-32768,-32768,   -25,
  2614. -32768,  2325,-32768,  1676,  2176,-32768,-32768,  1674,  -388,   -24,
  2615. -32768,-32768,-32768,-32768,-32768,-32768,-32768,  -150,-32768,-32768,
  2616. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   622,
  2617. -32768,-32768,-32768,  1024,-32768, -1884,-32768,-32768,-32768,  1988,
  2618. -32768,-32768,  2170,-32768,-32768,  2106,  1681,-32768,-32768,-32768,
  2619. -32768,  2240,-32768,-32768,  1726, -1212,  1381,  -390,-32768,-32768,
  2620. -32768, -1249,-32768,-32768,-32768,   384,-32768,-32768,  -233,  -969,
  2621.   1619,  2467,  1677,-32768,  1080,  -442,  -835,  2793,  1409,    93,
  2622.    -55,-32768,   396,-32768,     0,-32768,   395,-32768,-32768
  2623. };
  2624. #define YYLAST 31095
  2625. static const short yytable[] = {    42,
  2626.     49,    43,   765,   427,   316,   467,   311,   913,   492,   701,
  2627.   1365,   514,   512,  1310,   289,   352,  1156,   289,   469,   439,
  2628.   1639,  1036,  1934,   128,   402,  2100,  1178,   291,  1819,   301,
  2629.   1896,   472,  1502,  1503,  1504,  1505,  1506,  1908,   990,   505,
  2630.    140,   879,  1876,  1297,  1299,  1609,  1070,  1274,   141,   415,
  2631.    886,  1526,   508,  2284,   143,   776,   886,  1418,   448,  1232,
  2632.    698,   699,  2320,   893,   713,  1807,  2258,   761,  1808,   794,
  2633.    636,   632,   432,   128,   880,   898,  2300,  2301,  2302,  2303,
  2634.   2304,   889,   860,   369,   464,  1614,   641,  1936,  1640,  1593,
  2635.    140,  2108,   433,  2109,  2110,  2111,  2112,  2113,   141,    77,
  2636.   1371,  2461,  1392,   894,   143,   371,   456,  1304,  2453,   457,
  2637.   1422,  1305,  1424,  1425,  1408,   458,   459,  1434,  1403,  1404,
  2638.   1405,  1406, -1136,  1440,  1442,  1444,  1446,  1448,  1240,   163,
  2639.   1378,   460,   164,  1408,   461,   165,  1393,  1378,  1254,  1594,
  2640.    166,  1306,   167,   168,    77,   295,   302,  1378,   295,   310,
  2641.    313,   314,   647,   376,    68,   329,   313,   435,  2485,   313,
  2642.   1937,   520,   649,   370,  -616,   762,   320,   303,  2475,  2287,
  2643.    313,   313,   759,  1378,   313,   766,   330,  2288,   313,   313,
  2644.     74,  1450,   321,   313,   313,   313,  -616,   377,   377,  1307,
  2645.    353,   163,  1030,   642,   164,  2462,  1027,   165,   633,  1378,
  2646.   1488,   975,   166,  2489,   167,   168,   965,   703,   966,  1255,
  2647.    890,  2379,   372,   378,   378,   704,  2366,   331,   332,  1308,
  2648.   2384,  2385,  2386,  2387,  2388,  2389,  2390,  2391,  2392,  2395,
  2649.     77,   721,   705,    95,   449,  1491,  1492,  1493,   706,   707,
  2650.   2476,  1508,   521,  1379,  2428,   967,   315,   741,    79,   284,
  2651.   1379,  2321,  1248,   908,   881,  2490,   284,   289,   373,   522,
  2652.   1379,   284,  1380,   379,   379,   385,  1099,  2114,   614,  2477,
  2653.    447,    25,  1275,  2305,   284,   374,   658,  2254,   763,   708,
  2654.   1052,   380,   380,   470,   471,  2257,  1379,  2429,  1569,  2265,
  2655.    475,  2269,   331,   332,  2270,  2271,  2272,  2273,  2274,  2275,
  2656.   2276,  2277,  2278,   709,  2281,   506,   408,   507,   949,  1809,
  2657.   2412,    91,  1379,   710,  1989,   515,   286,  1741,  1423,   876,
  2658.    877,   878,   286,  2295,   462,   286,  1247,  2135,  2136,  1378,
  2659.   1251,  1178,  1178,  1178,  1178,  1178,  1309, -1357,   450,  2460,
  2660.    660,  1046, -1357,  1181,   517,  2047,   283,  1378,  1389,   285,
  2661.   1178,  1413,  1414,  1415,   638,   381,   381,  1410,  1912,   322,
  2662.    406,  1820,  2083,  2439,    95,  2440,  2100,  1390,  1411,  1412,
  2663.   1413,  1414,  1415,   525,  1831,  1832,  1833,  1834,  1835,  1836,
  2664.   1837,  1182,  1707,  1183,   689,    25,   128,   410,   295,  1408,
  2665.    756,  1259,   711,   523,    77,   451,  1523,   757,   712, -1136,
  2666.   1918,  1391,  1919,   140,   716,   968,   317,   718,   318,   971,
  2667.    720,   141,   313,   302,  2305,  1686,   525,   143,  1466,  1467,
  2668.   1468,  2352,   284,  1184,   301,   301,   302,   313,   313,   517,
  2669.   1702,   313,   313,  1581,   313,   313,  1524,  2179,  2368,  1706,
  2670.    972,   313,  1379,   496,  2039,   313,   313,   302,  1368,   313,
  2671.    323,   313,   313,   313,   803,   750,    25,  1700,   313,   313,
  2672.   1379, -1136,  2058,  2353,  1332,   324,  1732,  1709,  1710,  1711,
  2673.   1712,  1713,  1714,  1715,   753,  1736,  1525,   313,  1513,  1514,
  2674.   1515,  1740,   851,   416,   315,  1748,  1408,  1753,   296,  1416,
  2675.   1758,  1764,  1769,  1774,  1779,  1784,  1789,  1794,  1799,   313,
  2676.    976,  1803,   313,  1660,  2130,  2131,  2132,   701,  1099,   313,
  2677.   2312,  2313,  2314, -1240,  1099,  1099,  1099,  1099,  1099,   925,
  2678.   2403,   755,   319,   388,   432,  1469,   977,  1508,    95,  1824,
  2679.   1691,   430, -1289,   313,  1316,  1701,  -689, -1289,  1828,  2417,
  2680.   1244,   302,   302,   431,   433,   926,   668,   669,   313,   670,
  2681.    671,   313,   672,   673,   313,   674,   441,   675,  -689,   389,
  2682.    676,   677,   678,   679,  1708,  1317,   855,  2236,   323,   313,
  2683.    920,  1731,   924,  1812,  2238,   434,  1814,  1815,  1816,  1817,
  2684.   1818,  1245,  2229,   324,  1508,   283,   297,   313,   285,   286,
  2685.   1186,  1566,  1648,  1749,   978,   912,   289,  1516,   283,   313,
  2686.    896,   285,   900,   900,     2,   399,  1738,  1572,   283,   435,
  2687.   -618,   285,   411,   413,  2007,   932,  1178,   419,  1649,   313,
  2688.    932,   932,   313,   313,  1411,  1412,  1413,  1414,  1415,   516,
  2689.    286,   990,  -618,  1304,  1823,   990,   497,  1291,  2306,    25,
  2690.   1187,  -930,   845,  1750,  2147,  1070,  2307,  2308,  2309,  2310,
  2691.   2311,  2312,  2313,  2314,  1315,  1188,   289,   313,  1751,  1113,
  2692.   1178,  1717,  1718,  2382,  1830,   963,  1508,  1306,  1650,   946,
  2693.   1724,   427,   301,  1178,  1178,  1178,  1178,  1178,  1178,  1178,
  2694.     68,  1070,  2266,   935,   286,   498,  1651,  2357,   843,   936,
  2695.    944,   937,   729,   938,  1012,  -619,   730,  1915,  1917,  1004,
  2696.   1016,  2103,  1950,  2105,  1017,  1018,    74,  2060,  1743,  2305,
  2697.   1410,  2396,  2261,  2004,  1802,  1307,  -620,  -619,  2350,   452,
  2698.   2351,  1411,  1412,  1413,  1414,  1415,   927,   295,   956,   499,
  2699.   1644,   957,  2267,  2305,  1647,   313,  -621,   313,  -620,   313,
  2700.   1985,  1986,  1987,   928,  1070,  1308,  1744,  2268,  1745,   313,
  2701.   2262,  1510,  2263,  2005,   455,  2363,  2376,  -623,  -621,   614,
  2702.    465,  1839,  1511,  1512,  1513,  1514,  1515,  1101, -1312,   454,
  2703.   1998,  1999,  2000, -1312,    79,  1597,  1037,  1038,  1039,  -623,
  2704.   1598,  2010,  2179,  1047,   468,  1660,   315,   295,  1746,   302,
  2705.   1288,  1289,  2264,  2006,  -930,  2364,   477,  1055,  -937,     3,
  2706.      4,     5,     6,     7,     8,     9,    10,    11,    12,   313,
  2707.     13,    14,    15,    16,    17,    18,    19,    20,    21,  1511,
  2708.   1512,  1513,  1514,  1515,  2242,   313,  1610,  2243,  1677,  1611,
  2709.     25,   313,    26,    68,  1242,  2365,  -624,    91,   313,   313,
  2710.   1687,   479, -1294,   703,   313,    25,   466, -1294,   313,   313,
  2711.     25,   704,  2244,   495,  1115,   313,  1116,  2087,  -624,    74,
  2712.   2089,   513,  2054,  2055,  2056,  1113,  1298,  2192,   705,   476,
  2713.   1113,  1916,  1099,   526,   706,   707,  1099,  -625,  1099,   501,
  2714.    528,  1099,  1099,  1099,  1099,  1099,  1099,  1099,  1099,  1099,
  2715.   1510,  2252,  1099,  2253,  1326,  1804,  1327,  1408,  -626,  -625,
  2716.    614,  1511,  1512,  1513,  1514,  1515,  -627, -1313,  -628,    77,
  2717.    527,   529, -1313,  1178,  -629,   708,   621,  1352,   860,  1353,