sqllogictest
Check-in [e41449241c]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Update to SQLite version 3.7.12
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:e41449241cf224eee79399c43744e867a96f93df
User & Date: drh 2012-05-14 01:48:19
Context
2012-06-10
01:14
Update SQLite to the 3.7.13 beta. check-in: cca587b0a4 user: drh tags: trunk
2012-05-14
01:48
Update to SQLite version 3.7.12 check-in: e41449241c user: drh tags: trunk
2012-05-12
02:44
Update the built-in SQLite to the latest 3.7.12 beta. check-in: f003563216 user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/sqlite3.c.

655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
......
108441
108442
108443
108444
108445
108446
108447
108448
108449
108450
108451
108452
108453
108454
108455
......
108512
108513
108514
108515
108516
108517
108518
108519
108520
108521
108522
108523
108524
108525
108526
108527
108528
108529
108530
108531
108532
108533
108534
108535
108536
108537
108538
108539
108540
108541
108542
108543
108544
108545
108546
108547
108548
108549
108550
108551
108552
108553
108554
108555
108556
108557
108558
108559
108560
108561
108562
108563
108564
108565
108566
108567
108568
108569
108570
108571
108572
108573
108574
108575
108576
108577
108578
108579
108580
108581
108582
108583
108584
108585
108586
108587
108588
108589
108590
108591
108592
108593
108594
108595
108596
108597
108598
108599
108600
108601
108602
108603
108604
108605
108606
108607
108608
108609
108610
108611
108612
108613
108614
108615
108616
108617
108618
108619
108620
108621
108622
108623
108624
108625
108626
108627
108628
108629
108630
108631
108632
108633
108634
108635
108636
108637
108638
108639
108640
108641
108642
108643
108644
108645
108646
108647
108648
108649
108650
108651
108652
108653
108654
108655
108656
108657
108658
108659
108660
108661
108662
108663
108664
108665
108666
108667
108668
108669
108670
108671
108672
108673
108674
108675
108676
108677
108678
108679
108680
108681
108682
108683
108684
108685
108686
108687
108688
108689
108690
108691
108692
108693
108694
108695
108696
108697
108698
108699
108700
108701
108702
108703
108704
108705
108706
108707
108708
108709
108710
108711
108712
108713
108714
108715
108716
108717
108718
108719
108720
108721
108722
108723
108724
108725
108726
108727
108728
108729
108730
108731
108732
108733
108734
108735
108736
108737
108738
108739
108740
108741
108742
108743
108744
108745
108746
108747
108748
108749
108750
108751
108752
108753
108754
108755
108756
108757
108758
108759
108760
108761
108762
108763
108764
108765
108766
108767
108768
108769
108770
108771
108772
108773
108774
108775
108776
108777
108778
108779
108780
108781
108782
108783
108784
108785
108786
108787
108788
108789
108790
108791
108792
108793
108794
108795
108796
108797
108798
108799
108800
108801
108802
108803
108804
108805
108806
108807
108808
108809
108810
108811
108812
108813
108814
108815
108816
108817
108818
108819
108820
108821
108822
108823
108824
108825
108826
108827
108828
108829
108830
108831
108832
108833
108834
108835
108836
108837
108838
108839
108840
108841
108842
108843
108844
108845
108846
108847
108848
108849
108850
108851
108852
108853
108854
108855
108856
108857
108858
108859
108860
108861
108862
108863
108864
108865
108866
108867
108868
108869
108870
108871
108872
108873
108874
108875
108876
108877
108878
108879
108880
108881
108882
108883
108884
108885
108886
108887
108888
108889
108890
108891
108892
108893
108894
108895
108896
108897
108898
108899
108900
108901
108902
108903
108904
108905
108906
108907
108908
108909
108910
108911
108912
108913
108914
108915
108916
108917
108918
108919
108920
108921
108922
108923
108924

108925
108926
108927
108928
108929
108930
108931
108932
108933
108934
108935
108936
108937
108938
108939
108940
108941
108942
108943
108944
108945
108946
108947
108948
108949
108950
108951
108952
108953
108954
108955
108956
108957
108958
108959
108960
108961
108962
108963
108964
108965
108966
108967
108968
108969
108970
108971
108972
108973
108974
108975
108976
108977
108978
108979
108980
108981
108982
108983
108984
108985
108986
108987
108988
108989
108990
108991
108992
108993
108994
......
109186
109187
109188
109189
109190
109191
109192
109193
109194
109195
109196
109197
109198
109199
109200
......
109298
109299
109300
109301
109302
109303
109304
109305
109306
109307
109308
109309
109310
109311
109312
109313
109314
109315
109316
109317
......
110017
110018
110019
110020
110021
110022
110023
110024
110025
110026
110027
110028
110029
110030
110031
110032
110033
110034
110035
110036
......
110460
110461
110462
110463
110464
110465
110466
110467
110468
110469
110470
110471
110472
110473
110474
......
110547
110548
110549
110550
110551
110552
110553
110554
110555
110556
110557
110558
110559
110560
110561
110562
110563
110564
......
111423
111424
111425
111426
111427
111428
111429
111430
111431
111432
111433
111434
111435
111436
111437
111438
111439
**
** See also: [sqlite3_libversion()],
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
** [sqlite_version()] and [sqlite_source_id()].
*/
#define SQLITE_VERSION        "3.7.12"
#define SQLITE_VERSION_NUMBER 3007012
#define SQLITE_SOURCE_ID      "2012-05-12 01:14:27 93061c6e063fddfa6b5d21064a36b58cc97599f1"

/*
** CAPI3REF: Run-Time Library Version Numbers
** KEYWORDS: sqlite3_version, sqlite3_sourceid
**
** These interfaces provide the same information as the [SQLITE_VERSION],
** [SQLITE_VERSION_NUMBER], and [SQLITE_SOURCE_ID] C preprocessor macros
................................................................................
#ifndef YYSTACKDEPTH
#define YYSTACKDEPTH 100
#endif
#define sqlite3ParserARG_SDECL Parse *pParse;
#define sqlite3ParserARG_PDECL ,Parse *pParse
#define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse
#define sqlite3ParserARG_STORE yypParser->pParse = pParse
#define YYNSTATE 630
#define YYNRULE 327
#define YYFALLBACK 1
#define YY_NO_ACTION      (YYNSTATE+YYNRULE+2)
#define YY_ACCEPT_ACTION  (YYNSTATE+YYNRULE+1)
#define YY_ERROR_ACTION   (YYNSTATE+YYNRULE)

/* The yyzerominor constant is used to initialize instances of
................................................................................
**                     yy_action.  Used to detect hash collisions.
**  yy_shift_ofst[]    For each state, the offset into yy_action for
**                     shifting terminals.
**  yy_reduce_ofst[]   For each state, the offset into yy_action for
**                     shifting non-terminals after a reduce.
**  yy_default[]       Default action for each state.
*/
#define YY_ACTTAB_COUNT (1562)
static const YYACTIONTYPE yy_action[] = {
 /*     0 */   312,  330,  575,  574,   15,  171,  186,  597,   56,   56,
 /*    10 */    56,   56,   49,   54,   54,   54,   54,   53,   53,   52,
 /*    20 */    52,   52,   51,  235,   52,   52,   52,   51,  235,  627,
 /*    30 */   590,  584,   56,   56,   56,   56,  316,   54,   54,   54,
 /*    40 */    54,   53,   53,   52,   52,   52,   51,  235,  301,   57,
 /*    50 */    58,   48,  582,  581,  583,  583,   55,   55,   56,   56,
 /*    60 */    56,   56,  571,   54,   54,   54,   54,   53,   53,   52,
 /*    70 */    52,   52,   51,  235,  312,  597,  328,  198,  197,  196,
 /*    80 */    33,   54,   54,   54,   54,   53,   53,   52,   52,   52,
 /*    90 */    51,  235,   53,   53,   52,   52,   52,   51,  235,  492,
 /*   100 */   597,  441,   66,  237,  590,  584,  597,  299,  365,   59,
 /*   110 */   482,   67,  362,    1,  621,  353,  621,  623,  622,  516,
 /*   120 */   515,  442,  443,   57,   58,   48,  582,  581,  583,  583,
 /*   130 */    55,   55,   56,   56,   56,   56,  608,   54,   54,   54,
 /*   140 */    54,   53,   53,   52,   52,   52,   51,  235,  312,  225,
 /*   150 */   618,  617,  616,  176,  138,  283,  386,  278,  385,  168,
 /*   160 */   492,  554,  623,  622,  623,  622,  274,  441,  597,  412,
 /*   170 */   553,  607,   67,  215,  597,  621,  506,  507,  590,  584,
 /*   180 */   444,  571,  621,  391,  415,  620,  619,  442,  338,  623,
 /*   190 */   622,  392,  601,   92,  224,  193,  671,   57,   58,   48,
 /*   200 */   582,  581,  583,  583,   55,   55,   56,   56,   56,   56,
 /*   210 */   672,   54,   54,   54,   54,   53,   53,   52,   52,   52,
 /*   220 */    51,  235,  312,  262,  234,  233,  505,  132,  486,  510,
 /*   230 */   620,  619,  620,  619,  399,  438,  487,  566,  621,  389,
 /*   240 */   412,  384,  440,  532,  439,  602,  339,  571,  504,  603,
 /*   250 */   203,  533,  590,  584,   45,  415,  548,  620,  619,  383,
 /*   260 */   380,  379,    6,  601,   92,  526,  261,  572,  572,  595,
 /*   270 */   378,   57,   58,   48,  582,  581,  583,  583,   55,   55,
 /*   280 */    56,   56,   56,   56,  600,   54,   54,   54,   54,   53,
 /*   290 */    53,   52,   52,   52,   51,  235,  312,  466,  326,  561,
 /*   300 */   593,  593,  593,  282,  311,  399,  412,  568,  493,  214,
 /*   310 */   400,  623,  622,   68,  281,  560,    7,  623,  622,  167,
 /*   320 */   577,  415,   65,  408,  575,  574,  590,  584,  673,  601,
 /*   330 */    92,  559,  410,  520,  579,  579,  306,  425,  623,  622,
 /*   340 */   208,  572,  572,  467,  519,   57,   58,   48,  582,  581,
 /*   350 */   583,  583,   55,   55,   56,   56,   56,   56,  576,   54,
 /*   360 */    54,   54,   54,   53,   53,   52,   52,   52,   51,  235,
 /*   370 */   312,  399,  412,  317,  600,  412,  350,  549,  578,  620,
 /*   380 */   619,  423,  204,  175,  571,  620,  619,  415,  551,  355,
 /*   390 */   415,  257,  349,  256,  174,  601,   74,  354,  601,   91,
 /*   400 */   590,  584,  237,  467,  621,  547,  620,  619,  164,  623,
 /*   410 */   622,  544,   62,   39,  251,  580,  600,  348,  555,   57,
 /*   420 */    58,   48,  582,  581,  583,  583,   55,   55,   56,   56,
 /*   430 */    56,   56,  565,   54,   54,   54,   54,   53,   53,   52,
 /*   440 */    52,   52,   51,  235,  312,  554,  182,  145,  531,  292,
 /*   450 */   231,  257,  349,  256,  553,  221,  412,  181,  248,  549,
 /*   460 */   250,  412,  237,   50,   47,  146,  412,  410,  412,  579,
 /*   470 */   579,  415,  549,  567,  590,  584,  415,  620,  619,  601,
 /*   480 */    16,  415,  189,  415,  601,   92,  268,   36,  544,  601,
 /*   490 */    92,  601,   73,   57,   58,   48,  582,  581,  583,  583,
 /*   500 */    55,   55,   56,   56,   56,   56,  187,   54,   54,   54,
 /*   510 */    54,   53,   53,   52,   52,   52,   51,  235,  312,  564,
 /*   520 */   397,  410,  528,  579,  579,  561,  395,  535,  201,  145,
 /*   530 */   264,  320,  266,  388,  375,  410,  249,  579,  579,  236,
 /*   540 */    40,  560,   38,   50,   47,  146,   19,  606,  590,  584,
 /*   550 */   422,  948,  563,  948,  549,  496,  472,  559,  602,  403,
 /*   560 */   422,  947,  603,  947,  562,  167,  200,   57,   58,   48,
 /*   570 */   582,  581,  583,  583,   55,   55,   56,   56,   56,   56,
 /*   580 */   156,   54,   54,   54,   54,   53,   53,   52,   52,   52,
 /*   590 */    51,  235,  312,  262,  412,  426,  511,  208,  347,  492,
 /*   600 */   600,   50,   47,  146,  410,  426,  579,  579,  621,  415,
 /*   610 */   430,   67,  199,  143,  621,  166,  474,  601,   69,  317,
 /*   620 */   475,  435,  590,  584,  274,  234,  233,  958,  184,  420,
 /*   630 */     2,  600,  358,  552,  366,  470,  336,  476,  476,  368,
 /*   640 */   359,   57,   58,   48,  582,  581,  583,  583,   55,   55,
 /*   650 */    56,   56,   56,   56,  354,   54,   54,   54,   54,   53,
 /*   660 */    53,   52,   52,   52,   51,  235,  312,  412,  572,  572,
 /*   670 */   271,  412,  558,  874,  361,  213,  143,  412,   50,   47,
 /*   680 */   146,   30,  415,  540,  355,  334,  415,  412,  629,    2,
 /*   690 */   601,   94,  415,  513,  601,   97,  590,  584,  621,  621,
 /*   700 */   601,   95,  415,  306,  424,  630,  628,  332,  173,  269,
 /*   710 */   601,  104,  171,  546,  597,   57,   58,   48,  582,  581,
 /*   720 */   583,  583,   55,   55,   56,   56,   56,   56,  412,   54,
 /*   730 */    54,   54,   54,   53,   53,   52,   52,   52,   51,  235,
 /*   740 */   312,  412,  275,  415,  412,   22,  329,  340,  423,  544,
 /*   750 */   217,  601,  103,  568,  407,  214,  415,  621,   35,  415,
 /*   760 */   412,  540,  412,   12,  601,  105,  237,  601,  106,   11,
 /*   770 */   590,  584,   50,   47,  146,  415,  621,  415,  353,  325,
 /*   780 */   164,  129,  597,  601,  133,  601,  134,  207,  287,   57,
 /*   790 */    58,   48,  582,  581,  583,  583,   55,   55,   56,   56,
 /*   800 */    56,   56,  412,   54,   54,   54,   54,   53,   53,   52,
 /*   810 */    52,   52,   51,  235,  312,  412,  275,  415,  412,  275,
 /*   820 */   275,  600,  275,  544,  367,  601,   98,  542,  412,  170,
 /*   830 */   415,  621,  524,  415,  621,  621,  169,  621,  601,  102,
 /*   840 */   604,  601,  101,  415,  590,  584,  352,   21,  500,   32,
 /*   850 */   166,  601,   93,  223,  318,  147,  324,  323,  272,  322,
 /*   860 */   166,  205,  285,   57,   58,   48,  582,  581,  583,  583,
 /*   870 */    55,   55,   56,   56,   56,   56,  412,   54,   54,   54,
 /*   880 */    54,   53,   53,   52,   52,   52,   51,  235,  312,  412,
 /*   890 */   262,  415,  412,  538,  360,  600,  360,  202,  142,  601,
 /*   900 */   100,  376,  412,  166,  415,  621,  540,  415,  360,  621,
 /*   910 */   141,  621,  601,   77,  230,  601,   96,  415,  590,  584,
 /*   920 */   341,  621,  530,  621,  529,  601,  137,  471,  382,  166,
 /*   930 */   460,  600,  170,  453,  427,  307,   28,   57,   58,   48,
 /*   940 */   582,  581,  583,  583,   55,   55,   56,   56,   56,   56,
 /*   950 */   412,   54,   54,   54,   54,   53,   53,   52,   52,   52,
 /*   960 */    51,  235,  312,  412,  503,  415,  412,  212,  459,  321,
 /*   970 */    35,  211,  127,  601,  136,  428,  412,  308,  415,  412,
 /*   980 */   273,  415,  222,  126,  255,   27,  601,  135,  377,  601,
 /*   990 */    76,  415,  590,  584,  415,  262,  220,   51,  235,  601,
 /*  1000 */    90,  600,  601,   89,  125,  600,  281,  522,  521,  373,
 /*  1010 */   621,   57,   46,   48,  582,  581,  583,  583,   55,   55,
 /*  1020 */    56,   56,   56,   56,  412,   54,   54,   54,   54,   53,
 /*  1030 */    53,   52,   52,   52,   51,  235,  312,  412,  451,  415,
 /*  1040 */   165,  624,  612,  611,  469,  521,  480,  601,   75,  185,
 /*  1050 */   412,  122,  415,  412,  369,  412,  621,  621,  621,  477,
 /*  1060 */   601,   88,  589,  588,  170,  415,  590,  584,  415,  121,
 /*  1070 */   415,  473,  259,  601,   87,  159,  601,   99,  601,   86,
 /*  1080 */   628,  332,  120,   14,  586,  585,   58,   48,  582,  581,
 /*  1090 */   583,  583,   55,   55,   56,   56,   56,   56,  412,   54,
 /*  1100 */    54,   54,   54,   53,   53,   52,   52,   52,   51,  235,
 /*  1110 */   312,  587,  412,  415,  412,  465,  262,  262,  610,  605,
 /*  1120 */   158,  601,   17,  157,  412,  462,   25,  415,  118,  415,
 /*  1130 */   412,  621,  621,  621,  621,  601,   85,  601,   84,  415,
 /*  1140 */   590,  584,  411,  262,   24,  415,  117,  601,   83,   10,
 /*  1150 */   351,    4,  115,  601,   72,  458,  456,  621,  621,  450,
 /*  1160 */   449,   48,  582,  581,  583,  583,   55,   55,   56,   56,
 /*  1170 */    56,   56,  253,   54,   54,   54,   54,   53,   53,   52,
 /*  1180 */    52,   52,   51,  235,   44,  406,  219,    3,  412,  452,
 /*  1190 */   262,  416,  622,  154,  594,  110,  107,  108,  401,  446,
 /*  1200 */    64,  557,  409,  415,  412,  621,  437,   44,  406,  621,
 /*  1210 */     3,  601,   71,  621,  416,  622,  621,  545,  335,  415,
 /*  1220 */   436,  404,  149,  239,  262,  409,  188,  601,   82,  331,
 /*  1230 */   541,  566,  621,  218,  421,  539,  229,  139,  124,  621,
 /*  1240 */   148,  419,  626,  625,  404,  621,  412,  238,  315,  123,
 /*  1250 */   621,   41,   42,  534,  566,  206,  412,  277,   43,  414,
 /*  1260 */   413,  415,  509,  595,  314,  615,  180,  245,  614,  601,
 /*  1270 */    81,  415,  621,  276,   41,   42,  613,  621,  412,  601,
 /*  1280 */    80,   43,  414,  413,  179,  270,  595,  418,  621,  600,
 /*  1290 */   484,    8,  177,  415,  593,  593,  593,  592,  591,   13,
 /*  1300 */   621,  601,   70,  417,  237,  621,   44,  406,  267,    3,
 /*  1310 */   237,  265,  342,  416,  622,  599,  296,  593,  593,  593,
 /*  1320 */   592,  591,   13,  621,  409,  412,  621,  412,  396,   34,
 /*  1330 */   406,  412,    3,   31,   30,  294,  416,  622,  293,  333,
 /*  1340 */   415,  263,  415,  404,  398,  258,  415,  409,  601,   18,
 /*  1350 */   601,   79,  363,  566,  601,   78,  621,  295,   60,   37,
 /*  1360 */   621,  172,  464,  390,  463,  598,  404,  621,  356,  288,
 /*  1370 */   232,   29,  556,   41,   42,  252,  566,  621,  415,  621,
 /*  1380 */    43,  414,  413,  621,  455,  595,  601,    9,  183,   61,
 /*  1390 */   621,  543,  445,  623,  622,  244,   41,   42,  241,  621,
 /*  1400 */   240,  393,  286,   43,  414,  413,  284,  621,  595,  431,
 /*  1410 */   621,  291,  537,  621,  536,  621,  593,  593,  593,  592,
 /*  1420 */   591,   13,  216,  144,  621,  387,  621,  304,  303,  302,
 /*  1430 */   178,  300,  394,  566,  454,  517,  290,  523,  621,  593,
 /*  1440 */   593,  593,  592,  591,   13,  518,  327,  621,  150,  279,
 /*  1450 */   243,  621,  514,  192,  191,  513,  512,  310,  128,  242,
 /*  1460 */   228,  526,  227,  226,  490,  595,  494,  489,  488,  309,
 /*  1470 */   194,  164,  152,  163,  467,  374,  481,  372,  153,  162,
 /*  1480 */   161,  151,  210,  479,  260,  370,   26,  478,  160,  468,
 /*  1490 */   364,  140,  119,  116,  131,  457,  593,  593,  593,  155,
 /*  1500 */   114,  346,  345,  113,  112,  111,  448,  109,  130,   23,
 /*  1510 */   319,   20,  434,  433,  432,   63,  429,  609,  190,  510,
 /*  1520 */   596,  405,  257,  344,  246,  297,  280,  573,  313,  570,
 /*  1530 */   195,  499,  498,  237,  497,  495,  381,  289,  461,  247,
 /*  1540 */   357,  254,  305,  343,    5,  447,  569,  209,  550,  371,
 /*  1550 */   508,  491,  402,  502,  501,  298,  337,  527,  525,  485,
 /*  1560 */   483,  235,
};
static const YYCODETYPE yy_lookahead[] = {
 /*     0 */    19,  169,  170,  171,   22,   24,   24,   26,   77,   78,
 /*    10 */    79,   80,   81,   82,   83,   84,   85,   86,   87,   88,
 /*    20 */    89,   90,   91,   92,   88,   89,   90,   91,   92,    1,
 /*    30 */    49,   50,   77,   78,   79,   80,  155,   82,   83,   84,
 /*    40 */    85,   86,   87,   88,   89,   90,   91,   92,   15,   68,
 /*    50 */    69,   70,   71,   72,   73,   74,   75,   76,   77,   78,
 /*    60 */    79,   80,  230,   82,   83,   84,   85,   86,   87,   88,
 /*    70 */    89,   90,   91,   92,   19,   94,   19,  105,  106,  107,
 /*    80 */    25,   82,   83,   84,   85,   86,   87,   88,   89,   90,
 /*    90 */    91,   92,   86,   87,   88,   89,   90,   91,   92,  150,
 /*   100 */    26,  150,   22,  116,   49,   50,   26,  158,  227,   54,
 /*   110 */   161,  162,  231,   22,  165,  128,  165,   26,   27,    7,
 /*   120 */     8,  170,  171,   68,   69,   70,   71,   72,   73,   74,
 /*   130 */    75,   76,   77,   78,   79,   80,   23,   82,   83,   84,
 /*   140 */    85,   86,   87,   88,   89,   90,   91,   92,   19,   92,
 /*   150 */     7,    8,    9,   96,   97,   98,   99,  100,  101,  102,
 /*   160 */   150,   32,   26,   27,   26,   27,  109,  150,   94,  150,
 /*   170 */    41,  161,  162,   22,   94,  165,   97,   98,   49,   50,
 /*   180 */   229,  230,  165,   19,  165,   94,   95,  170,  171,   26,
 /*   190 */    27,   27,  173,  174,  184,  185,  118,   68,   69,   70,
 /*   200 */    71,   72,   73,   74,   75,   76,   77,   78,   79,   80,
 /*   210 */   118,   82,   83,   84,   85,   86,   87,   88,   89,   90,
 /*   220 */    91,   92,   19,  150,   86,   87,   36,   24,  180,  181,
 /*   230 */    94,   95,   94,   95,  215,   97,  188,   66,  165,  220,
 /*   240 */   150,   51,  104,   23,  106,  113,  229,  230,   58,  117,
 /*   250 */   160,   88,   49,   50,   22,  165,  120,   94,   95,   99,
 /*   260 */   100,  101,   22,  173,  174,   94,  193,  129,  130,   98,
 /*   270 */   110,   68,   69,   70,   71,   72,   73,   74,   75,   76,
 /*   280 */    77,   78,   79,   80,  194,   82,   83,   84,   85,   86,
 /*   290 */    87,   88,   89,   90,   91,   92,   19,   11,  108,   12,
 /*   300 */   129,  130,  131,   98,  163,  215,  150,  166,  167,  168,
 /*   310 */   220,   26,   27,   22,  109,   28,   76,   26,   27,   50,
 /*   320 */    23,  165,   25,  169,  170,  171,   49,   50,  118,  173,
 /*   330 */   174,   44,  112,   46,  114,  115,   22,   23,   26,   27,
 /*   340 */   160,  129,  130,   57,   57,   68,   69,   70,   71,   72,
 /*   350 */    73,   74,   75,   76,   77,   78,   79,   80,   23,   82,
 /*   360 */    83,   84,   85,   86,   87,   88,   89,   90,   91,   92,
 /*   370 */    19,  215,  150,  104,  194,  150,  220,   25,   23,   94,
 /*   380 */    95,   67,  160,  118,  230,   94,   95,  165,   25,  150,
 /*   390 */   165,  105,  106,  107,  118,  173,  174,  217,  173,  174,
 /*   400 */    49,   50,  116,   57,  165,  120,   94,   95,   96,   26,
 /*   410 */    27,  166,  232,  136,   16,  113,  194,  237,  176,   68,
 /*   420 */    69,   70,   71,   72,   73,   74,   75,   76,   77,   78,
 /*   430 */    79,   80,   23,   82,   83,   84,   85,   86,   87,   88,
 /*   440 */    89,   90,   91,   92,   19,   32,   23,   95,   23,  224,
 /*   450 */   205,  105,  106,  107,   41,  216,  150,   23,   60,   25,
 /*   460 */    62,  150,  116,  221,  222,  223,  150,  112,  150,  114,
 /*   470 */   115,  165,  120,   23,   49,   50,  165,   94,   95,  173,
 /*   480 */   174,  165,  119,  165,  173,  174,   16,  136,  166,  173,
 /*   490 */   174,  173,  174,   68,   69,   70,   71,   72,   73,   74,
 /*   500 */    75,   76,   77,   78,   79,   80,   22,   82,   83,   84,
 /*   510 */    85,   86,   87,   88,   89,   90,   91,   92,   19,   11,
 /*   520 */   214,  112,   23,  114,  115,   12,  215,  205,   22,   95,
 /*   530 */    60,  215,   62,   88,   19,  112,  138,  114,  115,  197,
 /*   540 */   135,   28,  137,  221,  222,  223,  204,  172,   49,   50,
 /*   550 */    22,   23,   23,   25,  120,  180,   21,   44,  113,   46,
 /*   560 */    22,   23,  117,   25,   23,   50,  160,   68,   69,   70,
 /*   570 */    71,   72,   73,   74,   75,   76,   77,   78,   79,   80,
 /*   580 */    25,   82,   83,   84,   85,   86,   87,   88,   89,   90,
 /*   590 */    91,   92,   19,  150,  150,   67,   23,  160,   63,  150,
 /*   600 */   194,  221,  222,  223,  112,   67,  114,  115,  165,  165,
 /*   610 */   161,  162,  206,  207,  165,   25,   30,  173,  174,  104,
 /*   620 */    34,  241,   49,   50,  109,   86,   87,  142,  143,  144,
 /*   630 */   145,  194,   19,  176,   48,  100,  193,  105,  106,  107,
 /*   640 */    27,   68,   69,   70,   71,   72,   73,   74,   75,   76,
 /*   650 */    77,   78,   79,   80,  217,   82,   83,   84,   85,   86,
 /*   660 */    87,   88,   89,   90,   91,   92,   19,  150,  129,  130,
 /*   670 */    23,  150,   23,  138,  237,  206,  207,  150,  221,  222,
 /*   680 */   223,  126,  165,  150,  150,  242,  165,  150,  144,  145,
 /*   690 */   173,  174,  165,  103,  173,  174,   49,   50,  165,  165,
 /*   700 */   173,  174,  165,   22,   23,    0,    1,    2,   25,   25,
 /*   710 */   173,  174,   24,  120,   26,   68,   69,   70,   71,   72,
 /*   720 */    73,   74,   75,   76,   77,   78,   79,   80,  150,   82,
 /*   730 */    83,   84,   85,   86,   87,   88,   89,   90,   91,   92,
 /*   740 */    19,  150,  150,  165,  150,   24,  213,   97,   67,  166,
 /*   750 */   216,  173,  174,  166,  167,  168,  165,  165,   25,  165,
 /*   760 */   150,  150,  150,   35,  173,  174,  116,  173,  174,   35,
 /*   770 */    49,   50,  221,  222,  223,  165,  165,  165,  128,  187,
 /*   780 */    96,   22,   94,  173,  174,  173,  174,  160,  205,   68,
 /*   790 */    69,   70,   71,   72,   73,   74,   75,   76,   77,   78,
 /*   800 */    79,   80,  150,   82,   83,   84,   85,   86,   87,   88,
 /*   810 */    89,   90,   91,   92,   19,  150,  150,  165,  150,  150,
 /*   820 */   150,  194,  150,  166,  213,  173,  174,   23,  150,   25,
 /*   830 */   165,  165,  165,  165,  165,  165,   35,  165,  173,  174,
 /*   840 */   173,  173,  174,  165,   49,   50,  219,   52,   23,   25,
 /*   850 */    25,  173,  174,  187,  245,  246,  187,  187,   23,  187,
 /*   860 */    25,  160,  205,   68,   69,   70,   71,   72,   73,   74,
 /*   870 */    75,   76,   77,   78,   79,   80,  150,   82,   83,   84,
 /*   880 */    85,   86,   87,   88,   89,   90,   91,   92,   19,  150,
 /*   890 */   150,  165,  150,   27,  150,  194,  150,  160,  118,  173,
 /*   900 */   174,   23,  150,   25,  165,  165,  150,  165,  150,  165,
 /*   910 */    39,  165,  173,  174,   52,  173,  174,  165,   49,   50,
 /*   920 */   219,  165,   23,  165,   23,  173,  174,   23,   52,   25,
 /*   930 */    23,  194,   25,  193,  247,  248,   22,   68,   69,   70,
 /*   940 */    71,   72,   73,   74,   75,   76,   77,   78,   79,   80,
 /*   950 */   150,   82,   83,   84,   85,   86,   87,   88,   89,   90,
 /*   960 */    91,   92,   19,  150,   29,  165,  150,  160,   23,  213,
 /*   970 */    25,  160,   22,  173,  174,   23,  150,   25,  165,  150,
 /*   980 */    23,  165,  238,   22,  238,   22,  173,  174,   52,  173,
 /*   990 */   174,  165,   49,   50,  165,  150,  238,   91,   92,  173,
 /*  1000 */   174,  194,  173,  174,   22,  194,  109,  190,  191,   19,
 /*  1010 */   165,   68,   69,   70,   71,   72,   73,   74,   75,   76,
 /*  1020 */    77,   78,   79,   80,  150,   82,   83,   84,   85,   86,
 /*  1030 */    87,   88,   89,   90,   91,   92,   19,  150,  193,  165,
 /*  1040 */   102,  150,  150,  150,  190,  191,   20,  173,  174,   24,
 /*  1050 */   150,  104,  165,  150,   43,  150,  165,  165,  165,   59,
 /*  1060 */   173,  174,   49,   50,   25,  165,   49,   50,  165,   53,
 /*  1070 */   165,   53,  138,  173,  174,  104,  173,  174,  173,  174,
 /*  1080 */     1,    2,   22,    5,   71,   72,   69,   70,   71,   72,
 /*  1090 */    73,   74,   75,   76,   77,   78,   79,   80,  150,   82,
 /*  1100 */    83,   84,   85,   86,   87,   88,   89,   90,   91,   92,
 /*  1110 */    19,   98,  150,  165,  150,    1,  150,  150,  150,  150,
 /*  1120 */   118,  173,  174,   35,  150,   27,   76,  165,  108,  165,
 /*  1130 */   150,  165,  165,  165,  165,  173,  174,  173,  174,  165,
 /*  1140 */    49,   50,  150,  150,   76,  165,  127,  173,  174,   22,
 /*  1150 */    25,   22,  119,  173,  174,   23,    1,  165,  165,  193,
 /*  1160 */   193,   70,   71,   72,   73,   74,   75,   76,   77,   78,
 /*  1170 */    79,   80,   16,   82,   83,   84,   85,   86,   87,   88,
 /*  1180 */    89,   90,   91,   92,   19,   20,  193,   22,  150,   20,
 /*  1190 */   150,   26,   27,  121,  150,  119,  127,  108,  150,  128,
 /*  1200 */    16,  150,   37,  165,  150,  165,   23,   19,   20,  165,
 /*  1210 */    22,  173,  174,  165,   26,   27,  165,  150,   65,  165,
 /*  1220 */    23,   56,   15,  140,  150,   37,   22,  173,  174,    3,
 /*  1230 */   150,   66,  165,  193,    4,  150,  179,  164,  179,  165,
 /*  1240 */   246,  146,  147,  149,   56,  165,  150,  152,  249,  154,
 /*  1250 */   165,   86,   87,   88,   66,  160,  150,  150,   93,   94,
 /*  1260 */    95,  165,  150,   98,  249,  149,    6,  193,  149,  173,
 /*  1270 */   174,  165,  165,  150,   86,   87,   13,  165,  150,  173,
 /*  1280 */   174,   93,   94,   95,  151,  150,   98,  149,  165,  194,
 /*  1290 */   150,   25,  151,  165,  129,  130,  131,  132,  133,  134,
 /*  1300 */   165,  173,  174,  159,  116,  165,   19,   20,  150,   22,
 /*  1310 */   116,  150,  217,   26,   27,  194,  199,  129,  130,  131,
 /*  1320 */   132,  133,  134,  165,   37,  150,  165,  150,  123,   19,
 /*  1330 */    20,  150,   22,  124,  126,  201,   26,   27,  202,  244,
 /*  1340 */   165,  150,  165,   56,  122,  150,  165,   37,  173,  174,
 /*  1350 */   173,  174,  150,   66,  173,  174,  165,  200,  125,  135,
 /*  1360 */   165,  118,  150,  150,  150,  203,   56,  165,  150,  210,
 /*  1370 */   225,  104,  157,   86,   87,  150,   66,  165,  165,  165,
 /*  1380 */    93,   94,   95,  165,  150,   98,  173,  174,  157,   22,
 /*  1390 */   165,  211,  150,   26,   27,  150,   86,   87,  150,  165,
 /*  1400 */   150,  121,  210,   93,   94,   95,  210,  165,   98,  150,
 /*  1410 */   165,  150,  211,  165,  211,  165,  129,  130,  131,  132,
 /*  1420 */   133,  134,    5,  150,  165,  104,  165,   10,   11,   12,
 /*  1430 */    13,   14,  150,   66,   17,  183,  150,  175,  165,  129,
 /*  1440 */   130,  131,  132,  133,  134,  175,   47,  165,   31,  175,
 /*  1450 */    33,  165,  177,   86,   87,  103,  175,  178,   22,   42,
 /*  1460 */   228,   94,   92,  228,  175,   98,  183,  175,  175,  178,
 /*  1470 */   185,   96,   55,  156,   57,   18,  157,  157,   61,  156,
 /*  1480 */   156,   64,  157,  157,  235,   45,  135,  236,  156,  189,
 /*  1490 */   157,   68,  189,   22,  218,  199,  129,  130,  131,  156,
 /*  1500 */   192,  157,   18,  192,  192,  192,  199,  189,  218,  240,
 /*  1510 */   157,  240,   40,  157,  157,  243,   38,  153,  196,  181,
 /*  1520 */   166,  226,  105,  106,  107,  198,  176,  230,  111,  230,
 /*  1530 */   185,  176,  166,  116,  176,  166,  177,  209,  199,  209,
 /*  1540 */   239,  239,  148,  209,  196,  199,  166,  233,  208,  234,
 /*  1550 */   182,  186,  191,  182,  182,  195,  139,  173,  173,  186,
 /*  1560 */   186,   92,
};
#define YY_SHIFT_USE_DFLT (-70)
#define YY_SHIFT_COUNT (419)
#define YY_SHIFT_MIN   (-69)
#define YY_SHIFT_MAX   (1484)
static const short yy_shift_ofst[] = {
 /*     0 */  1079, 1188, 1417, 1188, 1287, 1287,  138,  138,  312,  -19,
 /*    10 */  1287, 1287, 1287, 1287,  346,  383,  129,  129,  795, 1165,
 /*    20 */  1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287,
 /*    30 */  1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287,
 /*    40 */  1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1310, 1287,
 /*    50 */  1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287,
 /*    60 */  1287, 1287,  286,  383,  383,  539,  539,   74, 1194,   55,
 /*    70 */   721,  647,  573,  499,  425,  351,  277,  203,  869,  869,
 /*    80 */   869,  869,  869,  869,  869,  869,  869,  869,  869,  869,
 /*    90 */   869,  869,  869,  943,  869, 1017, 1091, 1091,  -69,  -45,
 /*   100 */   -45,  -45,  -45,  -45,   -1,    6,  -64,  383,  383,  383,
 /*   110 */   383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
 /*   120 */   383,  383,  383,  535,  515,  383,  383,  383,  383,  383,
 /*   130 */   650,  -13,   74,  906, 1469,  -70,  -70,  -70, 1367,   57,
 /*   140 */   287,  287,  163,  291,  285,  136,   91,  538,  528,  383,
 /*   150 */   383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
 /*   160 */   383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
 /*   170 */   383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
 /*   180 */   383,  688,  688,  688,  705, 1194, 1194, 1194,  -70,  -70,
 /*   190 */   -70,  171,  171,  160,  160,  160,  190,  190,  190,  434,
 /*   200 */   423,  513,  409,  355,  220,  492,  492,  492,  492,  532,
 /*   210 */   586,  492,  492,  352,   80,  445,  143,  555,  164,  164,
 /*   220 */   613,  555,  613,  590,  684,   74,  413,   74,  413,  269,
 /*   230 */   413,  164,  405,  212,  212,   74,  363,  132,  -18, 1478,
 /*   240 */  1243, 1243, 1472, 1472, 1243, 1471, 1423, 1208, 1484, 1484,
 /*   250 */  1484, 1484, 1243, 1457, 1208, 1471, 1423, 1423, 1243, 1457,
 /*   260 */  1351, 1440, 1243, 1243, 1457, 1243, 1457, 1243, 1457, 1375,
 /*   270 */  1436, 1321, 1321, 1321, 1399, 1370, 1370, 1436, 1321, 1352,
 /*   280 */  1321, 1399, 1321, 1321, 1280, 1267, 1280, 1267, 1280, 1267,
 /*   290 */  1243, 1243, 1224, 1233, 1222, 1209, 1205, 1208, 1194, 1266,
 /*   300 */  1263, 1263, 1260, 1260, 1260, 1260,  -70,  -70,  -70,  -70,
 /*   310 */   -70,  -70, 1013,  398,  681,  314,  470,  -28,  952,  240,
 /*   320 */   945,  907,  904,  878,  835,  825,   79,  112,  205,  804,
 /*   330 */   297, 1230, 1226, 1204, 1083, 1207, 1153, 1184, 1197, 1183,
 /*   340 */  1071, 1125, 1069, 1089, 1076, 1169, 1072, 1156, 1155, 1033,
 /*   350 */  1132, 1129, 1125, 1127, 1019, 1068, 1050, 1020, 1098, 1088,
 /*   360 */  1002, 1114, 1078, 1060,  971,  934, 1018, 1039, 1016, 1000,
 /*   370 */  1011,  947, 1025, 1026,  990,  897,  938,  982,  936,  963,
 /*   380 */   961,  957,  950,  876,  935,  914,  862,  871,  901,  899,
 /*   390 */   780,  866,  801,  759,  593,  733,  734,  824,  728,  733,
 /*   400 */   649,  541,  683,  529,  506,  508,  484,  450,  335,  232,
 /*   410 */   302,  276,  265,  210,   92,   78,  151,  113,   33,   28,
};
#define YY_REDUCE_USE_DFLT (-169)
#define YY_REDUCE_COUNT (311)
#define YY_REDUCE_MIN   (-168)
#define YY_REDUCE_MAX   (1394)
static const short yy_reduce_ofst[] = {
 /*     0 */   485,   90, 1095,  222,  156,   19,   17,  -49,   10,  322,
 /*    10 */   316,  311,  306,  225,  180,  -51,  457,  242,  380, 1213,
 /*    20 */  1181, 1177, 1175, 1128, 1106, 1096, 1054, 1038,  980,  974,
 /*    30 */   964,  962,  948,  905,  903,  900,  887,  874,  829,  826,
 /*    40 */   816,  813,  800,  752,  742,  739,  726,  678,  668,  665,
 /*    50 */   652,  612,  610,  594,  591,  578,  537,  527,  521,  517,
 /*    60 */   444,  318,  437,  449,  443,  154, -168,  141,  406,  551,
 /*    70 */   551,  551,  551,  551,  551,  551,  551,  551,  551,  551,
 /*    80 */   551,  551,  551,  551,  551,  551,  551,  551,  551,  551,
 /*    90 */   551,  551,  551,  551,  551,  551,  551,  551,  551,  551,
 /*   100 */   551,  551,  551,  551,  551,  551,  551, 1074,  534, 1040,
 /*   110 */   993,  967,  966,  845,  740,  758,  756,  746,  239,  744,
 /*   120 */   672,  611,   73, -119,   48,  670,  669,  666,  592,  533,
 /*   130 */   701,  627,  587,  551,  551,  551,  551,  551,  667,  375,
 /*   140 */   854,  817,  992, 1286, 1282, 1273, 1261,  687,  687, 1259,
 /*   150 */  1250, 1248, 1245, 1242, 1234, 1225, 1218, 1214, 1212, 1202,
 /*   160 */  1195, 1191, 1161, 1158, 1140, 1135, 1123, 1112, 1107, 1085,
 /*   170 */  1080, 1067, 1051, 1048, 1044,  992,  969,  968,  893,  892,
 /*   180 */   891,  657,  583,  245,  544,  811,  807,  737,  609,  469,
 /*   190 */   342, 1385, 1384, 1374, 1373, 1365, 1372, 1371, 1368, 1340,
 /*   200 */  1360, 1361, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1315,
 /*   210 */  1314, 1360, 1360, 1340, 1380, 1348, 1394, 1346, 1334, 1330,
 /*   220 */  1302, 1339, 1301, 1359, 1345, 1369, 1358, 1366, 1355, 1338,
 /*   230 */  1350, 1328, 1295, 1299, 1297, 1354, 1327, 1322, 1364, 1272,
 /*   240 */  1357, 1356, 1271, 1269, 1353, 1290, 1318, 1307, 1313, 1312,
 /*   250 */  1311, 1308, 1344, 1343, 1296, 1276, 1303, 1300, 1333, 1332,
 /*   260 */  1251, 1249, 1326, 1325, 1324, 1320, 1323, 1319, 1317, 1285,
 /*   270 */  1291, 1293, 1292, 1289, 1283, 1235, 1232, 1279, 1281, 1275,
 /*   280 */  1274, 1252, 1270, 1262, 1203, 1196, 1201, 1192, 1180, 1159,
 /*   290 */  1231, 1215, 1145, 1162, 1136, 1134, 1157, 1117, 1121, 1144,
 /*   300 */  1141, 1133, 1138, 1119, 1116, 1094, 1015,  999,  994, 1059,
 /*   310 */  1057, 1073,
};
static const YYACTIONTYPE yy_default[] = {

 /*     0 */   635,  869,  957,  957,  869,  869,  957,  957,  722,  759,
 /*    10 */   957,  957,  957,  867,  957,  957,  787,  787,  931,  957,
 /*    20 */   957,  957,  957,  957,  957,  957,  957,  957,  957,  957,
 /*    30 */   957,  957,  957,  957,  957,  957,  957,  957,  957,  957,
 /*    40 */   957,  957,  957,  957,  957,  957,  957,  957,  957,  957,
 /*    50 */   957,  957,  957,  957,  957,  957,  957,  957,  957,  957,
 /*    60 */   957,  957,  957,  957,  957,  957,  957,  674,  763,  793,
 /*    70 */   957,  957,  957,  957,  957,  957,  957,  957,  930,  932,
 /*    80 */   801,  800,  910,  774,  798,  791,  795,  870,  863,  864,
 /*    90 */   862,  866,  871,  957,  794,  830,  847,  829,  841,  846,
 /*   100 */   853,  845,  842,  832,  831,  833,  834,  957,  957,  957,
 /*   110 */   957,  957,  957,  957,  957,  957,  957,  957,  957,  957,
 /*   120 */   957,  957,  957,  661,  728,  957,  957,  957,  957,  957,
 /*   130 */   957,  957,  957,  835,  836,  850,  849,  848,  957,  666,
 /*   140 */   957,  957,  957,  957,  957,  957,  957,  957,  957,  957,
 /*   150 */   937,  935,  957,  882,  957,  957,  957,  957,  957,  957,
 /*   160 */   957,  957,  957,  957,  957,  957,  957,  957,  957,  957,
 /*   170 */   957,  957,  957,  957,  957,  957,  957,  957,  957,  957,
 /*   180 */   641,  759,  759,  759,  635,  957,  957,  957,  949,  763,
 /*   190 */   753,  957,  957,  957,  957,  718,  957,  957,  957,  957,
 /*   200 */   957,  957,  957,  957,  957,  803,  742,  920,  922,  957,
 /*   210 */   903,  740,  663,  761,  676,  751,  643,  797,  776,  776,
 /*   220 */   915,  797,  915,  699,  722,  957,  787,  957,  787,  696,
 /*   230 */   787,  776,  865,  957,  957,  957,  760,  751,  957,  942,
 /*   240 */   767,  767,  934,  934,  767,  809,  732,  797,  739,  739,
 /*   250 */   739,  739,  767,  658,  797,  809,  732,  732,  767,  658,
 /*   260 */   909,  907,  767,  767,  658,  767,  658,  767,  658,  722,
 /*   270 */   875,  730,  730,  730,  714,  879,  879,  875,  730,  699,
 /*   280 */   730,  714,  730,  730,  780,  775,  780,  775,  780,  775,
 /*   290 */   767,  767,  957,  792,  781,  790,  788,  797,  957,  717,
 /*   300 */   651,  651,  640,  640,  640,  640,  954,  954,  949,  701,
 /*   310 */   701,  684,  957,  957,  957,  957,  957,  957,  957,  884,
 /*   320 */   957,  957,  957,  957,  957,  957,  957,  957,  957,  957,
 /*   330 */   957,  957,  636,  944,  957,  957,  941,  957,  957,  957,
 /*   340 */   957,  802,  957,  957,  957,  957,  957,  957,  957,  957,
 /*   350 */   957,  957,  919,  957,  957,  957,  957,  957,  957,  957,
 /*   360 */   913,  957,  957,  957,  957,  957,  957,  906,  905,  957,
 /*   370 */   957,  957,  957,  957,  957,  957,  957,  957,  957,  957,
 /*   380 */   957,  957,  957,  957,  957,  957,  957,  957,  957,  957,
 /*   390 */   957,  957,  957,  957,  957,  789,  957,  782,  957,  868,
 /*   400 */   957,  957,  957,  957,  957,  957,  957,  957,  957,  957,
 /*   410 */   745,  818,  957,  817,  821,  816,  668,  957,  649,  957,
 /*   420 */   632,  637,  953,  956,  955,  952,  951,  950,  945,  943,
 /*   430 */   940,  939,  938,  936,  933,  929,  888,  886,  893,  892,
 /*   440 */   891,  890,  889,  887,  885,  883,  804,  799,  796,  928,
 /*   450 */   881,  741,  738,  737,  657,  946,  912,  921,  808,  807,
 /*   460 */   810,  918,  917,  916,  914,  911,  898,  806,  805,  733,
 /*   470 */   873,  872,  660,  902,  901,  900,  904,  908,  899,  769,
 /*   480 */   659,  656,  665,  721,  723,  719,  729,  727,  726,  725,
 /*   490 */   724,  720,  667,  675,  713,  698,  697,  878,  880,  877,
 /*   500 */   876,  706,  705,  711,  710,  709,  708,  707,  704,  703,
 /*   510 */   702,  695,  694,  700,  693,  716,  715,  712,  692,  736,
 /*   520 */   735,  734,  731,  691,  690,  689,  821,  688,  687,  827,
 /*   530 */   826,  814,  857,  756,  755,  754,  766,  765,  778,  777,
 /*   540 */   812,  811,  779,  764,  758,  757,  773,  772,  771,  770,
 /*   550 */   762,  752,  784,  786,  785,  783,  859,  768,  856,  927,
 /*   560 */   926,  925,  924,  923,  861,  860,  828,  825,  679,  680,
 /*   570 */   896,  895,  897,  894,  682,  681,  678,  677,  858,  747,
 /*   580 */   746,  854,  851,  843,  839,  855,  852,  844,  840,  838,
 /*   590 */   837,  823,  822,  820,  819,  815,  824,  670,  748,  744,
 /*   600 */   743,  813,  750,  749,  686,  685,  683,  664,  662,  655,
 /*   610 */   653,  652,  654,  650,  648,  647,  646,  645,  644,  673,
 /*   620 */   672,  671,  669,  668,  642,  639,  638,  634,  633,  631,
};

/* The next table maps tokens into fallback tokens.  If a construct
** like the following:
** 
**      %fallback ID X Y Z.
**
................................................................................
  "ifnotexists",   "dbnm",          "columnlist",    "conslist_opt",
  "select",        "column",        "columnid",      "type",        
  "carglist",      "id",            "ids",           "typetoken",   
  "typename",      "signed",        "plus_num",      "minus_num",   
  "ccons",         "term",          "expr",          "onconf",      
  "sortorder",     "autoinc",       "idxlist_opt",   "refargs",     
  "defer_subclause",  "refarg",        "refact",        "init_deferred_pred_opt",
  "conslist",      "cname",         "tcons",         "idxlist",     
  "defer_subclause_opt",  "orconf",        "resolvetype",   "raisetype",   
  "ifexists",      "fullname",      "oneselect",     "multiselect_op",
  "distinct",      "selcollist",    "from",          "where_opt",   
  "groupby_opt",   "having_opt",    "orderby_opt",   "limit_opt",   
  "sclp",          "as",            "seltablist",    "stl_prefix",  
  "joinop",        "indexed_opt",   "on_opt",        "using_opt",   
  "joinop2",       "inscollist",    "sortlist",      "nexprlist",   
................................................................................
 /*  81 */ "refact ::= NO ACTION",
 /*  82 */ "defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt",
 /*  83 */ "defer_subclause ::= DEFERRABLE init_deferred_pred_opt",
 /*  84 */ "init_deferred_pred_opt ::=",
 /*  85 */ "init_deferred_pred_opt ::= INITIALLY DEFERRED",
 /*  86 */ "init_deferred_pred_opt ::= INITIALLY IMMEDIATE",
 /*  87 */ "conslist_opt ::=",
 /*  88 */ "conslist_opt ::= COMMA conslist cname",
 /*  89 */ "conslist ::= conslist COMMA cname tcons",
 /*  90 */ "conslist ::= conslist cname tcons",
 /*  91 */ "conslist ::= cname tcons",
 /*  92 */ "cname ::=",
 /*  93 */ "cname ::= CONSTRAINT nm",
 /*  94 */ "tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf",
 /*  95 */ "tcons ::= UNIQUE LP idxlist RP onconf",
 /*  96 */ "tcons ::= CHECK LP expr RP onconf",
 /*  97 */ "tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt",
 /*  98 */ "defer_subclause_opt ::=",
 /*  99 */ "defer_subclause_opt ::= defer_subclause",
 /* 100 */ "onconf ::=",
................................................................................
  { 182, 2 },
  { 180, 3 },
  { 180, 2 },
  { 183, 0 },
  { 183, 2 },
  { 183, 2 },
  { 159, 0 },
  { 159, 3 },
  { 184, 4 },
  { 184, 3 },
  { 184, 2 },
  { 185, 0 },
  { 185, 2 },
  { 186, 7 },
  { 186, 5 },
  { 186, 5 },
  { 186, 10 },
  { 188, 0 },
  { 188, 1 },
  { 175, 0 },
................................................................................
  yygotominor.yy0.n = (int)(&yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[-5].minor.yy0.z);
}
        break;
      case 50: /* typename ::= typename ids */
{yygotominor.yy0.z=yymsp[-1].minor.yy0.z; yygotominor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);}
        break;
      case 55: /* ccons ::= CONSTRAINT nm */
      case 93: /* cname ::= CONSTRAINT nm */ yytestcase(yyruleno==93);
{pParse->constraintName = yymsp[0].minor.yy0;}
        break;
      case 56: /* ccons ::= DEFAULT term */
      case 58: /* ccons ::= DEFAULT PLUS term */ yytestcase(yyruleno==58);
{sqlite3AddDefaultValue(pParse,&yymsp[0].minor.yy342);}
        break;
      case 57: /* ccons ::= DEFAULT LP expr RP */
................................................................................
      case 101: /* onconf ::= ON CONFLICT resolvetype */ yytestcase(yyruleno==101);
      case 104: /* resolvetype ::= raisetype */ yytestcase(yyruleno==104);
{yygotominor.yy392 = yymsp[0].minor.yy392;}
        break;
      case 87: /* conslist_opt ::= */
{yygotominor.yy0.n = 0; yygotominor.yy0.z = 0;}
        break;
      case 88: /* conslist_opt ::= COMMA conslist cname */
{yygotominor.yy0 = yymsp[-2].minor.yy0;}
        break;
      case 92: /* cname ::= */
{pParse->constraintName.n = 0;}
        break;
      case 94: /* tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf */
{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy442,yymsp[0].minor.yy392,yymsp[-2].minor.yy392,0);}
        break;
      case 95: /* tcons ::= UNIQUE LP idxlist RP onconf */
{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy442,yymsp[0].minor.yy392,0,0,0,0);}
................................................................................
      /* (35) columnlist ::= column */ yytestcase(yyruleno==35);
      /* (44) type ::= */ yytestcase(yyruleno==44);
      /* (51) signed ::= plus_num */ yytestcase(yyruleno==51);
      /* (52) signed ::= minus_num */ yytestcase(yyruleno==52);
      /* (53) carglist ::= carglist ccons */ yytestcase(yyruleno==53);
      /* (54) carglist ::= */ yytestcase(yyruleno==54);
      /* (61) ccons ::= NULL onconf */ yytestcase(yyruleno==61);
      /* (89) conslist ::= conslist COMMA cname tcons */ yytestcase(yyruleno==89);
      /* (90) conslist ::= conslist cname tcons */ yytestcase(yyruleno==90);
      /* (91) conslist ::= cname tcons */ yytestcase(yyruleno==91);
      /* (277) foreach_clause ::= */ yytestcase(yyruleno==277);
      /* (278) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==278);
      /* (285) tridxby ::= */ yytestcase(yyruleno==285);
      /* (303) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==303);
      /* (304) database_kw_opt ::= */ yytestcase(yyruleno==304);
      /* (312) kwcolumn_opt ::= */ yytestcase(yyruleno==312);
      /* (313) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==313);







|







 







|







 







|

|

|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|


|

|
|
|

|


|
|
|
|
|

|
|
|
|
|


|
|
|
|
|


|
|
|
|
|
|


|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|


|
|
|
|
|


|
|
|
|
|
|


|
|
|
|
|


|
|
|
|
|



|
|
|
|
|


|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|


|

|

|
|




|



|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|


|

|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<


>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<







 







|







 







|
|
|
|
|
|







 







|
|
|
|

|







 







|







 







|
|

|







 







|
|
|







655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
......
108441
108442
108443
108444
108445
108446
108447
108448
108449
108450
108451
108452
108453
108454
108455
......
108512
108513
108514
108515
108516
108517
108518
108519
108520
108521
108522
108523
108524
108525
108526
108527
108528
108529
108530
108531
108532
108533
108534
108535
108536
108537
108538
108539
108540
108541
108542
108543
108544
108545
108546
108547
108548
108549
108550
108551
108552
108553
108554
108555
108556
108557
108558
108559
108560
108561
108562
108563
108564
108565
108566
108567
108568
108569
108570
108571
108572
108573
108574
108575
108576
108577
108578
108579
108580
108581
108582
108583
108584
108585
108586
108587
108588
108589
108590
108591
108592
108593
108594
108595
108596
108597
108598
108599
108600
108601
108602
108603
108604
108605
108606
108607
108608
108609
108610
108611
108612
108613
108614
108615
108616
108617
108618
108619
108620
108621
108622
108623
108624
108625
108626
108627
108628
108629
108630
108631
108632
108633
108634
108635
108636
108637
108638
108639
108640
108641
108642
108643
108644
108645
108646
108647
108648
108649
108650
108651
108652
108653
108654
108655
108656
108657
108658
108659
108660
108661
108662
108663
108664
108665
108666
108667
108668
108669
108670
108671
108672
108673
108674
108675
108676
108677
108678
108679
108680
108681
108682
108683
108684
108685
108686
108687
108688
108689
108690
108691
108692
108693
108694
108695
108696
108697
108698
108699
108700
108701
108702
108703
108704
108705
108706
108707
108708
108709
108710
108711
108712
108713
108714
108715
108716
108717
108718
108719
108720
108721
108722
108723
108724
108725
108726
108727
108728
108729
108730
108731
108732
108733
108734
108735
108736
108737
108738
108739
108740
108741
108742
108743
108744
108745
108746
108747
108748
108749
108750
108751
108752
108753
108754
108755
108756
108757
108758
108759
108760
108761
108762
108763
108764
108765
108766
108767
108768
108769
108770
108771
108772
108773
108774
108775
108776
108777
108778
108779
108780
108781
108782
108783
108784
108785
108786
108787
108788
108789
108790
108791
108792
108793
108794
108795
108796
108797
108798
108799
108800
108801
108802
108803
108804
108805
108806
108807
108808
108809
108810
108811
108812
108813
108814
108815
108816
108817
108818
108819
108820
108821
108822
108823
108824
108825
108826
108827
108828
108829
108830
108831
108832
108833
108834
108835
108836
108837
108838
108839
108840
108841
108842
108843
108844
108845
108846
108847
108848
108849
108850
108851
108852
108853
108854
108855
108856
108857
108858
108859
108860
108861
108862
108863
108864
108865
108866
108867
108868
108869
108870
108871
108872
108873
108874
108875
108876
108877
108878
108879
108880
108881
108882
108883
108884
108885
108886
108887
108888
108889
108890
108891
108892
108893
108894
108895
108896
108897
108898
108899
108900
108901
108902
108903
108904
108905
108906
108907
108908
108909
108910
108911
108912
108913
108914
108915
108916
108917
108918
108919
108920
108921

108922
108923
108924
108925
108926
108927
108928
108929
108930
108931
108932
108933
108934
108935
108936
108937
108938
108939
108940
108941
108942
108943
108944
108945
108946
108947
108948
108949
108950
108951
108952
108953
108954
108955
108956
108957
108958
108959
108960
108961
108962
108963
108964
108965
108966
108967
108968
108969
108970
108971
108972
108973
108974
108975
108976
108977
108978
108979
108980
108981
108982
108983
108984
108985
108986

108987
108988
108989
108990
108991
108992
108993
......
109185
109186
109187
109188
109189
109190
109191
109192
109193
109194
109195
109196
109197
109198
109199
......
109297
109298
109299
109300
109301
109302
109303
109304
109305
109306
109307
109308
109309
109310
109311
109312
109313
109314
109315
109316
......
110016
110017
110018
110019
110020
110021
110022
110023
110024
110025
110026
110027
110028
110029
110030
110031
110032
110033
110034
110035
......
110459
110460
110461
110462
110463
110464
110465
110466
110467
110468
110469
110470
110471
110472
110473
......
110546
110547
110548
110549
110550
110551
110552
110553
110554
110555
110556
110557
110558
110559
110560
110561
110562
110563
......
111422
111423
111424
111425
111426
111427
111428
111429
111430
111431
111432
111433
111434
111435
111436
111437
111438
**
** See also: [sqlite3_libversion()],
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
** [sqlite_version()] and [sqlite_source_id()].
*/
#define SQLITE_VERSION        "3.7.12"
#define SQLITE_VERSION_NUMBER 3007012
#define SQLITE_SOURCE_ID      "2012-05-12 18:29:53 e536ac041815b118c461ceee798f9b7283269f58"

/*
** CAPI3REF: Run-Time Library Version Numbers
** KEYWORDS: sqlite3_version, sqlite3_sourceid
**
** These interfaces provide the same information as the [SQLITE_VERSION],
** [SQLITE_VERSION_NUMBER], and [SQLITE_SOURCE_ID] C preprocessor macros
................................................................................
#ifndef YYSTACKDEPTH
#define YYSTACKDEPTH 100
#endif
#define sqlite3ParserARG_SDECL Parse *pParse;
#define sqlite3ParserARG_PDECL ,Parse *pParse
#define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse
#define sqlite3ParserARG_STORE yypParser->pParse = pParse
#define YYNSTATE 627
#define YYNRULE 327
#define YYFALLBACK 1
#define YY_NO_ACTION      (YYNSTATE+YYNRULE+2)
#define YY_ACCEPT_ACTION  (YYNSTATE+YYNRULE+1)
#define YY_ERROR_ACTION   (YYNSTATE+YYNRULE)

/* The yyzerominor constant is used to initialize instances of
................................................................................
**                     yy_action.  Used to detect hash collisions.
**  yy_shift_ofst[]    For each state, the offset into yy_action for
**                     shifting terminals.
**  yy_reduce_ofst[]   For each state, the offset into yy_action for
**                     shifting non-terminals after a reduce.
**  yy_default[]       Default action for each state.
*/
#define YY_ACTTAB_COUNT (1564)
static const YYACTIONTYPE yy_action[] = {
 /*     0 */   309,  955,  184,  417,    2,  171,  624,  594,   56,   56,
 /*    10 */    56,   56,   49,   54,   54,   54,   54,   53,   53,   52,
 /*    20 */    52,   52,   51,  233,  620,  619,  298,  620,  619,  234,
 /*    30 */   587,  581,   56,   56,   56,   56,   19,   54,   54,   54,
 /*    40 */    54,   53,   53,   52,   52,   52,   51,  233,  605,   57,
 /*    50 */    58,   48,  579,  578,  580,  580,   55,   55,   56,   56,
 /*    60 */    56,   56,  541,   54,   54,   54,   54,   53,   53,   52,
 /*    70 */    52,   52,   51,  233,  309,  594,  325,  196,  195,  194,
 /*    80 */    33,   54,   54,   54,   54,   53,   53,   52,   52,   52,
 /*    90 */    51,  233,  617,  616,  165,  617,  616,  380,  377,  376,
 /*   100 */   407,  532,  576,  576,  587,  581,  303,  422,  375,   59,
 /*   110 */    53,   53,   52,   52,   52,   51,  233,   50,   47,  146,
 /*   120 */   574,  545,   65,   57,   58,   48,  579,  578,  580,  580,
 /*   130 */    55,   55,   56,   56,   56,   56,  213,   54,   54,   54,
 /*   140 */    54,   53,   53,   52,   52,   52,   51,  233,  309,  223,
 /*   150 */   539,  420,  170,  176,  138,  280,  383,  275,  382,  168,
 /*   160 */   489,  551,  409,  668,  620,  619,  271,  438,  409,  438,
 /*   170 */   550,  604,   67,  482,  507,  618,  599,  412,  587,  581,
 /*   180 */   600,  483,  618,  412,  618,  598,   91,  439,  440,  439,
 /*   190 */   335,  598,   73,  669,  222,  266,  480,   57,   58,   48,
 /*   200 */   579,  578,  580,  580,   55,   55,   56,   56,   56,   56,
 /*   210 */   670,   54,   54,   54,   54,   53,   53,   52,   52,   52,
 /*   220 */    51,  233,  309,  279,  232,  231,    1,  132,  200,  385,
 /*   230 */   620,  619,  617,  616,  278,  435,  289,  563,  175,  262,
 /*   240 */   409,  264,  437,  497,  436,  166,  441,  568,  336,  568,
 /*   250 */   201,  537,  587,  581,  599,  412,  165,  594,  600,  380,
 /*   260 */   377,  376,  597,  598,   92,  523,  618,  569,  569,  592,
 /*   270 */   375,   57,   58,   48,  579,  578,  580,  580,   55,   55,
 /*   280 */    56,   56,   56,   56,  597,   54,   54,   54,   54,   53,
 /*   290 */    53,   52,   52,   52,   51,  233,  309,  463,  617,  616,
 /*   300 */   590,  590,  590,  174,  272,  396,  409,  272,  409,  548,
 /*   310 */   397,  620,  619,   68,  326,  620,  619,  620,  619,  618,
 /*   320 */   546,  412,  618,  412,  471,  594,  587,  581,  472,  598,
 /*   330 */    92,  598,   92,   52,   52,   52,   51,  233,  513,  512,
 /*   340 */   206,  322,  363,  464,  221,   57,   58,   48,  579,  578,
 /*   350 */   580,  580,   55,   55,   56,   56,   56,   56,  529,   54,
 /*   360 */    54,   54,   54,   53,   53,   52,   52,   52,   51,  233,
 /*   370 */   309,  396,  409,  396,  597,  372,  386,  530,  347,  617,
 /*   380 */   616,  575,  202,  617,  616,  617,  616,  412,  620,  619,
 /*   390 */   145,  255,  346,  254,  577,  598,   74,  351,   45,  489,
 /*   400 */   587,  581,  235,  189,  464,  544,  167,  296,  187,  469,
 /*   410 */   479,   67,   62,   39,  618,  546,  597,  345,  573,   57,
 /*   420 */    58,   48,  579,  578,  580,  580,   55,   55,   56,   56,
 /*   430 */    56,   56,    6,   54,   54,   54,   54,   53,   53,   52,
 /*   440 */    52,   52,   51,  233,  309,  562,  558,  407,  528,  576,
 /*   450 */   576,  344,  255,  346,  254,  182,  617,  616,  503,  504,
 /*   460 */   314,  409,  557,  235,  166,  271,  409,  352,  564,  181,
 /*   470 */   407,  546,  576,  576,  587,  581,  412,  537,  556,  561,
 /*   480 */   517,  412,  618,  249,  598,   16,    7,   36,  467,  598,
 /*   490 */    92,  516,  618,   57,   58,   48,  579,  578,  580,  580,
 /*   500 */    55,   55,   56,   56,   56,   56,  541,   54,   54,   54,
 /*   510 */    54,   53,   53,   52,   52,   52,   51,  233,  309,  327,
 /*   520 */   572,  571,  525,  558,  560,  394,  871,  246,  409,  248,
 /*   530 */   171,  392,  594,  219,  407,  409,  576,  576,  502,  557,
 /*   540 */   364,  145,  510,  412,  407,  229,  576,  576,  587,  581,
 /*   550 */   412,  598,   92,  381,  269,  556,  166,  400,  598,   69,
 /*   560 */   501,  419,  945,  199,  945,  198,  546,   57,   58,   48,
 /*   570 */   579,  578,  580,  580,   55,   55,   56,   56,   56,   56,
 /*   580 */   568,   54,   54,   54,   54,   53,   53,   52,   52,   52,
 /*   590 */    51,  233,  309,  317,  419,  944,  508,  944,  308,  597,
 /*   600 */   594,  565,  490,  212,  173,  247,  423,  615,  614,  613,
 /*   610 */   323,  197,  143,  405,  572,  571,  489,   66,   50,   47,
 /*   620 */   146,  594,  587,  581,  232,  231,  559,  427,   67,  555,
 /*   630 */    15,  618,  186,  543,  303,  421,   35,  206,  432,  423,
 /*   640 */   552,   57,   58,   48,  579,  578,  580,  580,   55,   55,
 /*   650 */    56,   56,   56,   56,  205,   54,   54,   54,   54,   53,
 /*   660 */    53,   52,   52,   52,   51,  233,  309,  569,  569,  260,
 /*   670 */   268,  597,   12,  373,  568,  166,  409,  313,  409,  420,
 /*   680 */   409,  473,  473,  365,  618,   50,   47,  146,  597,  594,
 /*   690 */   468,  412,  166,  412,  351,  412,  587,  581,   32,  598,
 /*   700 */    94,  598,   97,  598,   95,  627,  625,  329,  142,   50,
 /*   710 */    47,  146,  333,  349,  358,   57,   58,   48,  579,  578,
 /*   720 */   580,  580,   55,   55,   56,   56,   56,   56,  409,   54,
 /*   730 */    54,   54,   54,   53,   53,   52,   52,   52,   51,  233,
 /*   740 */   309,  409,  388,  412,  409,   22,  565,  404,  212,  362,
 /*   750 */   389,  598,  104,  359,  409,  156,  412,  409,  603,  412,
 /*   760 */   537,  331,  569,  569,  598,  103,  493,  598,  105,  412,
 /*   770 */   587,  581,  412,  260,  549,  618,   11,  598,  106,  521,
 /*   780 */   598,  133,  169,  457,  456,  170,   35,  601,  618,   57,
 /*   790 */    58,   48,  579,  578,  580,  580,   55,   55,   56,   56,
 /*   800 */    56,   56,  409,   54,   54,   54,   54,   53,   53,   52,
 /*   810 */    52,   52,   51,  233,  309,  409,  259,  412,  409,   50,
 /*   820 */    47,  146,  357,  318,  355,  598,  134,  527,  352,  337,
 /*   830 */   412,  409,  356,  412,  357,  409,  357,  618,  598,   98,
 /*   840 */   129,  598,  102,  618,  587,  581,  412,   21,  235,  618,
 /*   850 */   412,  618,  211,  143,  598,  101,   30,  167,  598,   93,
 /*   860 */   350,  535,  203,   57,   58,   48,  579,  578,  580,  580,
 /*   870 */    55,   55,   56,   56,   56,   56,  409,   54,   54,   54,
 /*   880 */    54,   53,   53,   52,   52,   52,   51,  233,  309,  409,
 /*   890 */   526,  412,  409,  425,  215,  305,  597,  551,  141,  598,
 /*   900 */   100,   40,  409,   38,  412,  409,  550,  412,  409,  228,
 /*   910 */   220,  314,  598,   77,  500,  598,   96,  412,  587,  581,
 /*   920 */   412,  338,  253,  412,  218,  598,  137,  379,  598,  136,
 /*   930 */    28,  598,  135,  270,  715,  210,  481,   57,   58,   48,
 /*   940 */   579,  578,  580,  580,   55,   55,   56,   56,   56,   56,
 /*   950 */   409,   54,   54,   54,   54,   53,   53,   52,   52,   52,
 /*   960 */    51,  233,  309,  409,  272,  412,  409,  315,  147,  597,
 /*   970 */   272,  626,    2,  598,   76,  209,  409,  127,  412,  618,
 /*   980 */   126,  412,  409,  621,  235,  618,  598,   90,  374,  598,
 /*   990 */    89,  412,  587,  581,   27,  260,  350,  412,  618,  598,
 /*  1000 */    75,  321,  541,  541,  125,  598,   88,  320,  278,  597,
 /*  1010 */   618,   57,   46,   48,  579,  578,  580,  580,   55,   55,
 /*  1020 */    56,   56,   56,   56,  409,   54,   54,   54,   54,   53,
 /*  1030 */    53,   52,   52,   52,   51,  233,  309,  409,  450,  412,
 /*  1040 */   164,  284,  282,  272,  609,  424,  304,  598,   87,  370,
 /*  1050 */   409,  477,  412,  409,  608,  409,  607,  602,  618,  618,
 /*  1060 */   598,   99,  586,  585,  122,  412,  587,  581,  412,  618,
 /*  1070 */   412,  618,  618,  598,   86,  366,  598,   17,  598,   85,
 /*  1080 */   319,  185,  519,  518,  583,  582,   58,   48,  579,  578,
 /*  1090 */   580,  580,   55,   55,   56,   56,   56,   56,  409,   54,
 /*  1100 */    54,   54,   54,   53,   53,   52,   52,   52,   51,  233,
 /*  1110 */   309,  584,  409,  412,  409,  260,  260,  260,  408,  591,
 /*  1120 */   474,  598,   84,  170,  409,  466,  518,  412,  121,  412,
 /*  1130 */   618,  618,  618,  618,  618,  598,   83,  598,   72,  412,
 /*  1140 */   587,  581,   51,  233,  625,  329,  470,  598,   71,  257,
 /*  1150 */   159,  120,   14,  462,  157,  158,  117,  260,  448,  447,
 /*  1160 */   446,   48,  579,  578,  580,  580,   55,   55,   56,   56,
 /*  1170 */    56,   56,  618,   54,   54,   54,   54,   53,   53,   52,
 /*  1180 */    52,   52,   51,  233,   44,  403,  260,    3,  409,  459,
 /*  1190 */   260,  413,  619,  118,  398,   10,   25,   24,  554,  348,
 /*  1200 */   217,  618,  406,  412,  409,  618,    4,   44,  403,  618,
 /*  1210 */     3,  598,   82,  618,  413,  619,  455,  542,  115,  412,
 /*  1220 */   538,  401,  536,  274,  506,  406,  251,  598,   81,  216,
 /*  1230 */   273,  563,  618,  243,  453,  618,  154,  618,  618,  618,
 /*  1240 */   449,  416,  623,  110,  401,  618,  409,  236,   64,  123,
 /*  1250 */   487,   41,   42,  531,  563,  204,  409,  267,   43,  411,
 /*  1260 */   410,  412,  265,  592,  108,  618,  107,  434,  332,  598,
 /*  1270 */    80,  412,  618,  263,   41,   42,  443,  618,  409,  598,
 /*  1280 */    70,   43,  411,  410,  433,  261,  592,  149,  618,  597,
 /*  1290 */   256,  237,  188,  412,  590,  590,  590,  589,  588,   13,
 /*  1300 */   618,  598,   18,  328,  235,  618,   44,  403,  360,    3,
 /*  1310 */   418,  461,  339,  413,  619,  227,  124,  590,  590,  590,
 /*  1320 */   589,  588,   13,  618,  406,  409,  618,  409,  139,   34,
 /*  1330 */   403,  387,    3,  148,  622,  312,  413,  619,  311,  330,
 /*  1340 */   412,  460,  412,  401,  180,  353,  412,  406,  598,   79,
 /*  1350 */   598,   78,  250,  563,  598,    9,  618,  612,  611,  610,
 /*  1360 */   618,    8,  452,  442,  242,  415,  401,  618,  239,  235,
 /*  1370 */   179,  238,  428,   41,   42,  288,  563,  618,  618,  618,
 /*  1380 */    43,  411,  410,  618,  144,  592,  618,  618,  177,   61,
 /*  1390 */   618,  596,  391,  620,  619,  287,   41,   42,  414,  618,
 /*  1400 */   293,   30,  393,   43,  411,  410,  292,  618,  592,   31,
 /*  1410 */   618,  395,  291,   60,  230,   37,  590,  590,  590,  589,
 /*  1420 */   588,   13,  214,  553,  183,  290,  172,  301,  300,  299,
 /*  1430 */   178,  297,  595,  563,  451,   29,  285,  390,  540,  590,
 /*  1440 */   590,  590,  589,  588,   13,  283,  520,  534,  150,  533,
 /*  1450 */   241,  281,  384,  192,  191,  324,  515,  514,  276,  240,
 /*  1460 */   510,  523,  307,  511,  128,  592,  509,  225,  226,  486,
 /*  1470 */   485,  224,  152,  491,  464,  306,  484,  163,  153,  371,
 /*  1480 */   478,  151,  162,  258,  369,  161,  367,  208,  475,  476,
 /*  1490 */    26,  160,  465,  140,  361,  131,  590,  590,  590,  116,
 /*  1500 */   119,  454,  343,  155,  114,  342,  113,  112,  445,  111,
 /*  1510 */   130,  109,  431,  316,  426,  430,   23,  429,   20,  606,
 /*  1520 */   190,  507,  255,  341,  244,   63,  294,  593,  310,  570,
 /*  1530 */   277,  402,  354,  235,  567,  496,  495,  492,  494,  302,
 /*  1540 */   458,  378,  286,  245,  566,    5,  252,  547,  193,  444,
 /*  1550 */   233,  340,  207,  524,  368,  505,  334,  522,  499,  399,
 /*  1560 */   295,  498,  956,  488,
};
static const YYCODETYPE yy_lookahead[] = {
 /*     0 */    19,  142,  143,  144,  145,   24,    1,   26,   77,   78,
 /*    10 */    79,   80,   81,   82,   83,   84,   85,   86,   87,   88,
 /*    20 */    89,   90,   91,   92,   26,   27,   15,   26,   27,  197,
 /*    30 */    49,   50,   77,   78,   79,   80,  204,   82,   83,   84,
 /*    40 */    85,   86,   87,   88,   89,   90,   91,   92,   23,   68,
 /*    50 */    69,   70,   71,   72,   73,   74,   75,   76,   77,   78,
 /*    60 */    79,   80,  166,   82,   83,   84,   85,   86,   87,   88,
 /*    70 */    89,   90,   91,   92,   19,   94,   19,  105,  106,  107,
 /*    80 */    25,   82,   83,   84,   85,   86,   87,   88,   89,   90,
 /*    90 */    91,   92,   94,   95,   96,   94,   95,   99,  100,  101,
 /*   100 */   112,  205,  114,  115,   49,   50,   22,   23,  110,   54,
 /*   110 */    86,   87,   88,   89,   90,   91,   92,  221,  222,  223,
 /*   120 */    23,  120,   25,   68,   69,   70,   71,   72,   73,   74,
 /*   130 */    75,   76,   77,   78,   79,   80,   22,   82,   83,   84,
 /*   140 */    85,   86,   87,   88,   89,   90,   91,   92,   19,   92,
 /*   150 */    23,   67,   25,   96,   97,   98,   99,  100,  101,  102,
 /*   160 */   150,   32,  150,  118,   26,   27,  109,  150,  150,  150,
 /*   170 */    41,  161,  162,  180,  181,  165,  113,  165,   49,   50,
 /*   180 */   117,  188,  165,  165,  165,  173,  174,  170,  171,  170,
 /*   190 */   171,  173,  174,  118,  184,   16,  186,   68,   69,   70,
 /*   200 */    71,   72,   73,   74,   75,   76,   77,   78,   79,   80,
 /*   210 */   118,   82,   83,   84,   85,   86,   87,   88,   89,   90,
 /*   220 */    91,   92,   19,   98,   86,   87,   22,   24,  160,   88,
 /*   230 */    26,   27,   94,   95,  109,   97,  224,   66,  118,   60,
 /*   240 */   150,   62,  104,   23,  106,   25,  229,  230,  229,  230,
 /*   250 */   160,  150,   49,   50,  113,  165,   96,   26,  117,   99,
 /*   260 */   100,  101,  194,  173,  174,   94,  165,  129,  130,   98,
 /*   270 */   110,   68,   69,   70,   71,   72,   73,   74,   75,   76,
 /*   280 */    77,   78,   79,   80,  194,   82,   83,   84,   85,   86,
 /*   290 */    87,   88,   89,   90,   91,   92,   19,   11,   94,   95,
 /*   300 */   129,  130,  131,  118,  150,  215,  150,  150,  150,   25,
 /*   310 */   220,   26,   27,   22,  213,   26,   27,   26,   27,  165,
 /*   320 */    25,  165,  165,  165,   30,   94,   49,   50,   34,  173,
 /*   330 */   174,  173,  174,   88,   89,   90,   91,   92,    7,    8,
 /*   340 */   160,  187,   48,   57,  187,   68,   69,   70,   71,   72,
 /*   350 */    73,   74,   75,   76,   77,   78,   79,   80,   23,   82,
 /*   360 */    83,   84,   85,   86,   87,   88,   89,   90,   91,   92,
 /*   370 */    19,  215,  150,  215,  194,   19,  220,   88,  220,   94,
 /*   380 */    95,   23,  160,   94,   95,   94,   95,  165,   26,   27,
 /*   390 */    95,  105,  106,  107,  113,  173,  174,  217,   22,  150,
 /*   400 */    49,   50,  116,  119,   57,  120,   50,  158,   22,   21,
 /*   410 */   161,  162,  232,  136,  165,  120,  194,  237,   23,   68,
 /*   420 */    69,   70,   71,   72,   73,   74,   75,   76,   77,   78,
 /*   430 */    79,   80,   22,   82,   83,   84,   85,   86,   87,   88,
 /*   440 */    89,   90,   91,   92,   19,   23,   12,  112,   23,  114,
 /*   450 */   115,   63,  105,  106,  107,   23,   94,   95,   97,   98,
 /*   460 */   104,  150,   28,  116,   25,  109,  150,  150,   23,   23,
 /*   470 */   112,   25,  114,  115,   49,   50,  165,  150,   44,   11,
 /*   480 */    46,  165,  165,   16,  173,  174,   76,  136,  100,  173,
 /*   490 */   174,   57,  165,   68,   69,   70,   71,   72,   73,   74,
 /*   500 */    75,   76,   77,   78,   79,   80,  166,   82,   83,   84,
 /*   510 */    85,   86,   87,   88,   89,   90,   91,   92,   19,  169,
 /*   520 */   170,  171,   23,   12,   23,  214,  138,   60,  150,   62,
 /*   530 */    24,  215,   26,  216,  112,  150,  114,  115,   36,   28,
 /*   540 */   213,   95,  103,  165,  112,  205,  114,  115,   49,   50,
 /*   550 */   165,  173,  174,   51,   23,   44,   25,   46,  173,  174,
 /*   560 */    58,   22,   23,   22,   25,  160,  120,   68,   69,   70,
 /*   570 */    71,   72,   73,   74,   75,   76,   77,   78,   79,   80,
 /*   580 */   230,   82,   83,   84,   85,   86,   87,   88,   89,   90,
 /*   590 */    91,   92,   19,  215,   22,   23,   23,   25,  163,  194,
 /*   600 */    94,  166,  167,  168,   25,  138,   67,    7,    8,    9,
 /*   610 */   108,  206,  207,  169,  170,  171,  150,   22,  221,  222,
 /*   620 */   223,   26,   49,   50,   86,   87,   23,  161,  162,   23,
 /*   630 */    22,  165,   24,  120,   22,   23,   25,  160,  241,   67,
 /*   640 */   176,   68,   69,   70,   71,   72,   73,   74,   75,   76,
 /*   650 */    77,   78,   79,   80,  160,   82,   83,   84,   85,   86,
 /*   660 */    87,   88,   89,   90,   91,   92,   19,  129,  130,  150,
 /*   670 */    23,  194,   35,   23,  230,   25,  150,  155,  150,   67,
 /*   680 */   150,  105,  106,  107,  165,  221,  222,  223,  194,   94,
 /*   690 */    23,  165,   25,  165,  217,  165,   49,   50,   25,  173,
 /*   700 */   174,  173,  174,  173,  174,    0,    1,    2,  118,  221,
 /*   710 */   222,  223,  193,  219,  237,   68,   69,   70,   71,   72,
 /*   720 */    73,   74,   75,   76,   77,   78,   79,   80,  150,   82,
 /*   730 */    83,   84,   85,   86,   87,   88,   89,   90,   91,   92,
 /*   740 */    19,  150,   19,  165,  150,   24,  166,  167,  168,  227,
 /*   750 */    27,  173,  174,  231,  150,   25,  165,  150,  172,  165,
 /*   760 */   150,  242,  129,  130,  173,  174,  180,  173,  174,  165,
 /*   770 */    49,   50,  165,  150,  176,  165,   35,  173,  174,  165,
 /*   780 */   173,  174,   35,   23,   23,   25,   25,  173,  165,   68,
 /*   790 */    69,   70,   71,   72,   73,   74,   75,   76,   77,   78,
 /*   800 */    79,   80,  150,   82,   83,   84,   85,   86,   87,   88,
 /*   810 */    89,   90,   91,   92,   19,  150,  193,  165,  150,  221,
 /*   820 */   222,  223,  150,  213,   19,  173,  174,   23,  150,   97,
 /*   830 */   165,  150,   27,  165,  150,  150,  150,  165,  173,  174,
 /*   840 */    22,  173,  174,  165,   49,   50,  165,   52,  116,  165,
 /*   850 */   165,  165,  206,  207,  173,  174,  126,   50,  173,  174,
 /*   860 */   128,   27,  160,   68,   69,   70,   71,   72,   73,   74,
 /*   870 */    75,   76,   77,   78,   79,   80,  150,   82,   83,   84,
 /*   880 */    85,   86,   87,   88,   89,   90,   91,   92,   19,  150,
 /*   890 */    23,  165,  150,   23,  216,   25,  194,   32,   39,  173,
 /*   900 */   174,  135,  150,  137,  165,  150,   41,  165,  150,   52,
 /*   910 */   238,  104,  173,  174,   29,  173,  174,  165,   49,   50,
 /*   920 */   165,  219,  238,  165,  238,  173,  174,   52,  173,  174,
 /*   930 */    22,  173,  174,   23,   23,  160,   25,   68,   69,   70,
 /*   940 */    71,   72,   73,   74,   75,   76,   77,   78,   79,   80,
 /*   950 */   150,   82,   83,   84,   85,   86,   87,   88,   89,   90,
 /*   960 */    91,   92,   19,  150,  150,  165,  150,  245,  246,  194,
 /*   970 */   150,  144,  145,  173,  174,  160,  150,   22,  165,  165,
 /*   980 */    22,  165,  150,  150,  116,  165,  173,  174,   52,  173,
 /*   990 */   174,  165,   49,   50,   22,  150,  128,  165,  165,  173,
 /*  1000 */   174,  187,  166,  166,   22,  173,  174,  187,  109,  194,
 /*  1010 */   165,   68,   69,   70,   71,   72,   73,   74,   75,   76,
 /*  1020 */    77,   78,   79,   80,  150,   82,   83,   84,   85,   86,
 /*  1030 */    87,   88,   89,   90,   91,   92,   19,  150,  193,  165,
 /*  1040 */   102,  205,  205,  150,  150,  247,  248,  173,  174,   19,
 /*  1050 */   150,   20,  165,  150,  150,  150,  150,  150,  165,  165,
 /*  1060 */   173,  174,   49,   50,  104,  165,   49,   50,  165,  165,
 /*  1070 */   165,  165,  165,  173,  174,   43,  173,  174,  173,  174,
 /*  1080 */   187,   24,  190,  191,   71,   72,   69,   70,   71,   72,
 /*  1090 */    73,   74,   75,   76,   77,   78,   79,   80,  150,   82,
 /*  1100 */    83,   84,   85,   86,   87,   88,   89,   90,   91,   92,
 /*  1110 */    19,   98,  150,  165,  150,  150,  150,  150,  150,  150,
 /*  1120 */    59,  173,  174,   25,  150,  190,  191,  165,   53,  165,
 /*  1130 */   165,  165,  165,  165,  165,  173,  174,  173,  174,  165,
 /*  1140 */    49,   50,   91,   92,    1,    2,   53,  173,  174,  138,
 /*  1150 */   104,   22,    5,    1,   35,  118,  127,  150,  193,  193,
 /*  1160 */   193,   70,   71,   72,   73,   74,   75,   76,   77,   78,
 /*  1170 */    79,   80,  165,   82,   83,   84,   85,   86,   87,   88,
 /*  1180 */    89,   90,   91,   92,   19,   20,  150,   22,  150,   27,
 /*  1190 */   150,   26,   27,  108,  150,   22,   76,   76,  150,   25,
 /*  1200 */   193,  165,   37,  165,  150,  165,   22,   19,   20,  165,
 /*  1210 */    22,  173,  174,  165,   26,   27,   23,  150,  119,  165,
 /*  1220 */   150,   56,  150,  150,  150,   37,   16,  173,  174,  193,
 /*  1230 */   150,   66,  165,  193,    1,  165,  121,  165,  165,  165,
 /*  1240 */    20,  146,  147,  119,   56,  165,  150,  152,   16,  154,
 /*  1250 */   150,   86,   87,   88,   66,  160,  150,  150,   93,   94,
 /*  1260 */    95,  165,  150,   98,  108,  165,  127,   23,   65,  173,
 /*  1270 */   174,  165,  165,  150,   86,   87,  128,  165,  150,  173,
 /*  1280 */   174,   93,   94,   95,   23,  150,   98,   15,  165,  194,
 /*  1290 */   150,  140,   22,  165,  129,  130,  131,  132,  133,  134,
 /*  1300 */   165,  173,  174,    3,  116,  165,   19,   20,  150,   22,
 /*  1310 */     4,  150,  217,   26,   27,  179,  179,  129,  130,  131,
 /*  1320 */   132,  133,  134,  165,   37,  150,  165,  150,  164,   19,
 /*  1330 */    20,  150,   22,  246,  149,  249,   26,   27,  249,  244,
 /*  1340 */   165,  150,  165,   56,    6,  150,  165,   37,  173,  174,
 /*  1350 */   173,  174,  150,   66,  173,  174,  165,  149,  149,   13,
 /*  1360 */   165,   25,  150,  150,  150,  149,   56,  165,  150,  116,
 /*  1370 */   151,  150,  150,   86,   87,  150,   66,  165,  165,  165,
 /*  1380 */    93,   94,   95,  165,  150,   98,  165,  165,  151,   22,
 /*  1390 */   165,  194,  150,   26,   27,  150,   86,   87,  159,  165,
 /*  1400 */   199,  126,  123,   93,   94,   95,  200,  165,   98,  124,
 /*  1410 */   165,  122,  201,  125,  225,  135,  129,  130,  131,  132,
 /*  1420 */   133,  134,    5,  157,  157,  202,  118,   10,   11,   12,
 /*  1430 */    13,   14,  203,   66,   17,  104,  210,  121,  211,  129,
 /*  1440 */   130,  131,  132,  133,  134,  210,  175,  211,   31,  211,
 /*  1450 */    33,  210,  104,   86,   87,   47,  175,  183,  175,   42,
 /*  1460 */   103,   94,  178,  177,   22,   98,  175,   92,  228,  175,
 /*  1470 */   175,  228,   55,  183,   57,  178,  175,  156,   61,   18,
 /*  1480 */   157,   64,  156,  235,  157,  156,   45,  157,  236,  157,
 /*  1490 */   135,  156,  189,   68,  157,  218,  129,  130,  131,   22,
 /*  1500 */   189,  199,  157,  156,  192,   18,  192,  192,  199,  192,
 /*  1510 */   218,  189,   40,  157,   38,  157,  240,  157,  240,  153,
 /*  1520 */   196,  181,  105,  106,  107,  243,  198,  166,  111,  230,
 /*  1530 */   176,  226,  239,  116,  230,  176,  166,  166,  176,  148,
 /*  1540 */   199,  177,  209,  209,  166,  196,  239,  208,  185,  199,
 /*  1550 */    92,  209,  233,  173,  234,  182,  139,  173,  182,  191,
 /*  1560 */   195,  182,  250,  186,
};
#define YY_SHIFT_USE_DFLT (-70)
#define YY_SHIFT_COUNT (416)
#define YY_SHIFT_MIN   (-69)
#define YY_SHIFT_MAX   (1487)
static const short yy_shift_ofst[] = {
 /*     0 */  1143, 1188, 1417, 1188, 1287, 1287,  138,  138,   -2,  -19,
 /*    10 */  1287, 1287, 1287, 1287,  347,  362,  129,  129,  795, 1165,
 /*    20 */  1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287,
 /*    30 */  1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287,
 /*    40 */  1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1310, 1287,
 /*    50 */  1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287,
 /*    60 */  1287, 1287,  286,  362,  362,  538,  538,  231, 1253,   55,
 /*    70 */   721,  647,  573,  499,  425,  351,  277,  203,  869,  869,
 /*    80 */   869,  869,  869,  869,  869,  869,  869,  869,  869,  869,
 /*    90 */   869,  869,  869,  943,  869, 1017, 1091, 1091,  -69,  -45,
 /*   100 */   -45,  -45,  -45,  -45,   -1,   24,  245,  362,  362,  362,
 /*   110 */   362,  362,  362,  362,  362,  362,  362,  362,  362,  362,
 /*   120 */   362,  362,  362,  388,  356,  362,  362,  362,  362,  362,
 /*   130 */   732,  868,  231, 1051, 1458,  -70,  -70,  -70, 1367,   57,
 /*   140 */   434,  434,  289,  291,  285,    1,  204,  572,  539,  362,
 /*   150 */   362,  362,  362,  362,  362,  362,  362,  362,  362,  362,
 /*   160 */   362,  362,  362,  362,  362,  362,  362,  362,  362,  362,
 /*   170 */   362,  362,  362,  362,  362,  362,  362,  362,  362,  362,
 /*   180 */   362,  506,  506,  506,  705, 1253, 1253, 1253,  -70,  -70,
 /*   190 */   -70,  171,  171,  160,  502,  502,  502,  446,  432,  511,
 /*   200 */   422,  358,  335,  -12,  -12,  -12,  -12,  576,  294,  -12,
 /*   210 */   -12,  295,  595,  141,  600,  730,  723,  723,  805,  730,
 /*   220 */   805,  439,  911,  231,  865,  231,  865,  807,  865,  723,
 /*   230 */   766,  633,  633,  231,  284,   63,  608, 1476, 1308, 1308,
 /*   240 */  1472, 1472, 1308, 1477, 1425, 1275, 1487, 1487, 1487, 1487,
 /*   250 */  1308, 1461, 1275, 1477, 1425, 1425, 1308, 1461, 1355, 1441,
 /*   260 */  1308, 1308, 1461, 1308, 1461, 1308, 1461, 1442, 1348, 1348,
 /*   270 */  1348, 1408, 1375, 1375, 1442, 1348, 1357, 1348, 1408, 1348,
 /*   280 */  1348, 1316, 1331, 1316, 1331, 1316, 1331, 1308, 1308, 1280,
 /*   290 */  1288, 1289, 1285, 1279, 1275, 1253, 1336, 1346, 1346, 1338,
 /*   300 */  1338, 1338, 1338,  -70,  -70,  -70,  -70,  -70,  -70, 1013,
 /*   310 */   467,  612,   84,  179,  -28,  870,  410,  761,  760,  667,
 /*   320 */   650,  531,  220,  361,  331,  125,  127,   97, 1306, 1300,
 /*   330 */  1270, 1151, 1272, 1203, 1232, 1261, 1244, 1148, 1174, 1139,
 /*   340 */  1156, 1124, 1220, 1115, 1210, 1233, 1099, 1193, 1184, 1174,
 /*   350 */  1173, 1029, 1121, 1120, 1085, 1162, 1119, 1037, 1152, 1147,
 /*   360 */  1129, 1046, 1011, 1093, 1098, 1075, 1061, 1032,  960, 1057,
 /*   370 */  1031, 1030,  899,  938,  982,  936,  972,  958,  910,  955,
 /*   380 */   875,  885,  908,  857,  859,  867,  804,  590,  834,  747,
 /*   390 */   818,  513,  611,  741,  673,  637,  611,  606,  603,  579,
 /*   400 */   501,  541,  468,  386,  445,  395,  376,  281,  185,  120,
 /*   410 */    92,   75,   45,  114,   25,   11,    5,
};
#define YY_REDUCE_USE_DFLT (-169)
#define YY_REDUCE_COUNT (308)
#define YY_REDUCE_MIN   (-168)
#define YY_REDUCE_MAX   (1391)
static const short yy_reduce_ofst[] = {
 /*     0 */  -141,   90, 1095,  222,  158,  156,   19,   17,   10, -104,
 /*    10 */   378,  316,  311,   12,  180,  249,  598,  464,  397, 1181,
 /*    20 */  1177, 1175, 1128, 1106, 1096, 1054, 1038,  974,  964,  962,
 /*    30 */   948,  905,  903,  900,  887,  874,  832,  826,  816,  813,
 /*    40 */   800,  758,  755,  752,  742,  739,  726,  685,  681,  668,
 /*    50 */   665,  652,  607,  604,  594,  591,  578,  530,  528,  526,
 /*    60 */   385,   18,  477,  466,  519,  444,  350,  435,  405,  488,
 /*    70 */   488,  488,  488,  488,  488,  488,  488,  488,  488,  488,
 /*    80 */   488,  488,  488,  488,  488,  488,  488,  488,  488,  488,
 /*    90 */   488,  488,  488,  488,  488,  488,  488,  488,  488,  488,
 /*   100 */   488,  488,  488,  488,  488,  488,  488, 1040,  678, 1036,
 /*   110 */  1007,  967,  966,  965,  845,  686,  610,  684,  317,  672,
 /*   120 */   893,  327,  623,  522,   -7,  820,  814,  157,  154,  101,
 /*   130 */   702,  494,  580,  488,  488,  488,  488,  488,  614,  586,
 /*   140 */   935,  892,  968, 1245, 1242, 1234, 1225,  798,  798, 1222,
 /*   150 */  1221, 1218, 1214, 1213, 1212, 1202, 1195, 1191, 1161, 1158,
 /*   160 */  1140, 1135, 1123, 1112, 1107, 1100, 1080, 1074, 1073, 1072,
 /*   170 */  1070, 1067, 1048, 1044,  969,  968,  907,  906,  904,  894,
 /*   180 */   833,  837,  836,  340,  827,  815,  775,   68,  722,  646,
 /*   190 */  -168, 1384, 1380, 1377, 1379, 1376, 1373, 1339, 1365, 1368,
 /*   200 */  1365, 1365, 1365, 1365, 1365, 1365, 1365, 1320, 1319, 1365,
 /*   210 */  1365, 1339, 1378, 1349, 1391, 1350, 1342, 1334, 1307, 1341,
 /*   220 */  1293, 1364, 1363, 1371, 1362, 1370, 1359, 1340, 1354, 1333,
 /*   230 */  1305, 1304, 1299, 1361, 1328, 1324, 1366, 1282, 1360, 1358,
 /*   240 */  1278, 1276, 1356, 1292, 1322, 1309, 1317, 1315, 1314, 1312,
 /*   250 */  1345, 1347, 1302, 1277, 1311, 1303, 1337, 1335, 1252, 1248,
 /*   260 */  1332, 1330, 1329, 1327, 1326, 1323, 1321, 1297, 1301, 1295,
 /*   270 */  1294, 1290, 1243, 1240, 1284, 1291, 1286, 1283, 1274, 1281,
 /*   280 */  1271, 1238, 1241, 1236, 1235, 1227, 1226, 1267, 1266, 1189,
 /*   290 */  1229, 1223, 1211, 1206, 1201, 1197, 1239, 1237, 1219, 1216,
 /*   300 */  1209, 1208, 1185, 1089, 1086, 1087, 1137, 1136, 1164,

};
static const YYACTIONTYPE yy_default[] = {
 /*     0 */   632,  866,  954,  954,  866,  866,  954,  954,  954,  756,
 /*    10 */   954,  954,  954,  864,  954,  954,  784,  784,  928,  954,
 /*    20 */   954,  954,  954,  954,  954,  954,  954,  954,  954,  954,
 /*    30 */   954,  954,  954,  954,  954,  954,  954,  954,  954,  954,
 /*    40 */   954,  954,  954,  954,  954,  954,  954,  954,  954,  954,
 /*    50 */   954,  954,  954,  954,  954,  954,  954,  954,  954,  954,
 /*    60 */   954,  954,  954,  954,  954,  954,  954,  671,  760,  790,
 /*    70 */   954,  954,  954,  954,  954,  954,  954,  954,  927,  929,
 /*    80 */   798,  797,  907,  771,  795,  788,  792,  867,  860,  861,
 /*    90 */   859,  863,  868,  954,  791,  827,  844,  826,  838,  843,
 /*   100 */   850,  842,  839,  829,  828,  830,  831,  954,  954,  954,
 /*   110 */   954,  954,  954,  954,  954,  954,  954,  954,  954,  954,
 /*   120 */   954,  954,  954,  658,  725,  954,  954,  954,  954,  954,
 /*   130 */   954,  954,  954,  832,  833,  847,  846,  845,  954,  663,
 /*   140 */   954,  954,  954,  954,  954,  954,  954,  954,  954,  954,
 /*   150 */   934,  932,  954,  879,  954,  954,  954,  954,  954,  954,
 /*   160 */   954,  954,  954,  954,  954,  954,  954,  954,  954,  954,
 /*   170 */   954,  954,  954,  954,  954,  954,  954,  954,  954,  954,
 /*   180 */   638,  756,  756,  756,  632,  954,  954,  954,  946,  760,
 /*   190 */   750,  954,  954,  954,  954,  954,  954,  954,  954,  954,
 /*   200 */   954,  954,  954,  800,  739,  917,  919,  954,  900,  737,
 /*   210 */   660,  758,  673,  748,  640,  794,  773,  773,  912,  794,
 /*   220 */   912,  696,  719,  954,  784,  954,  784,  693,  784,  773,
 /*   230 */   862,  954,  954,  954,  757,  748,  954,  939,  764,  764,
 /*   240 */   931,  931,  764,  806,  729,  794,  736,  736,  736,  736,
 /*   250 */   764,  655,  794,  806,  729,  729,  764,  655,  906,  904,
 /*   260 */   764,  764,  655,  764,  655,  764,  655,  872,  727,  727,
 /*   270 */   727,  711,  876,  876,  872,  727,  696,  727,  711,  727,
 /*   280 */   727,  777,  772,  777,  772,  777,  772,  764,  764,  954,
 /*   290 */   789,  778,  787,  785,  794,  954,  714,  648,  648,  637,
 /*   300 */   637,  637,  637,  951,  951,  946,  698,  698,  681,  954,
 /*   310 */   954,  954,  954,  954,  954,  954,  881,  954,  954,  954,
 /*   320 */   954,  954,  954,  954,  954,  954,  954,  954,  954,  633,
 /*   330 */   941,  954,  954,  938,  954,  954,  954,  954,  799,  954,
 /*   340 */   954,  954,  954,  954,  954,  954,  954,  954,  954,  916,
 /*   350 */   954,  954,  954,  954,  954,  954,  954,  910,  954,  954,
 /*   360 */   954,  954,  954,  954,  903,  902,  954,  954,  954,  954,
 /*   370 */   954,  954,  954,  954,  954,  954,  954,  954,  954,  954,
 /*   380 */   954,  954,  954,  954,  954,  954,  954,  954,  954,  954,
 /*   390 */   954,  954,  786,  954,  779,  954,  865,  954,  954,  954,
 /*   400 */   954,  954,  954,  954,  954,  954,  954,  742,  815,  954,
 /*   410 */   814,  818,  813,  665,  954,  646,  954,  629,  634,  950,
 /*   420 */   953,  952,  949,  948,  947,  942,  940,  937,  936,  935,
 /*   430 */   933,  930,  926,  885,  883,  890,  889,  888,  887,  886,
 /*   440 */   884,  882,  880,  801,  796,  793,  925,  878,  738,  735,
 /*   450 */   734,  654,  943,  909,  918,  805,  804,  807,  915,  914,
 /*   460 */   913,  911,  908,  895,  803,  802,  730,  870,  869,  657,
 /*   470 */   899,  898,  897,  901,  905,  896,  766,  656,  653,  662,
 /*   480 */   717,  718,  726,  724,  723,  722,  721,  720,  716,  664,
 /*   490 */   672,  710,  695,  694,  875,  877,  874,  873,  703,  702,
 /*   500 */   708,  707,  706,  705,  704,  701,  700,  699,  692,  691,
 /*   510 */   697,  690,  713,  712,  709,  689,  733,  732,  731,  728,
 /*   520 */   688,  687,  686,  818,  685,  684,  824,  823,  811,  854,
 /*   530 */   753,  752,  751,  763,  762,  775,  774,  809,  808,  776,
 /*   540 */   761,  755,  754,  770,  769,  768,  767,  759,  749,  781,
 /*   550 */   783,  782,  780,  856,  765,  853,  924,  923,  922,  921,
 /*   560 */   920,  858,  857,  825,  822,  676,  677,  893,  892,  894,
 /*   570 */   891,  679,  678,  675,  674,  855,  744,  743,  851,  848,
 /*   580 */   840,  836,  852,  849,  841,  837,  835,  834,  820,  819,
 /*   590 */   817,  816,  812,  821,  667,  745,  741,  740,  810,  747,
 /*   600 */   746,  683,  682,  680,  661,  659,  652,  650,  649,  651,
 /*   610 */   647,  645,  644,  643,  642,  641,  670,  669,  668,  666,
 /*   620 */   665,  639,  636,  635,  631,  630,  628,

};

/* The next table maps tokens into fallback tokens.  If a construct
** like the following:
** 
**      %fallback ID X Y Z.
**
................................................................................
  "ifnotexists",   "dbnm",          "columnlist",    "conslist_opt",
  "select",        "column",        "columnid",      "type",        
  "carglist",      "id",            "ids",           "typetoken",   
  "typename",      "signed",        "plus_num",      "minus_num",   
  "ccons",         "term",          "expr",          "onconf",      
  "sortorder",     "autoinc",       "idxlist_opt",   "refargs",     
  "defer_subclause",  "refarg",        "refact",        "init_deferred_pred_opt",
  "conslist",      "tconscomma",    "tcons",         "idxlist",     
  "defer_subclause_opt",  "orconf",        "resolvetype",   "raisetype",   
  "ifexists",      "fullname",      "oneselect",     "multiselect_op",
  "distinct",      "selcollist",    "from",          "where_opt",   
  "groupby_opt",   "having_opt",    "orderby_opt",   "limit_opt",   
  "sclp",          "as",            "seltablist",    "stl_prefix",  
  "joinop",        "indexed_opt",   "on_opt",        "using_opt",   
  "joinop2",       "inscollist",    "sortlist",      "nexprlist",   
................................................................................
 /*  81 */ "refact ::= NO ACTION",
 /*  82 */ "defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt",
 /*  83 */ "defer_subclause ::= DEFERRABLE init_deferred_pred_opt",
 /*  84 */ "init_deferred_pred_opt ::=",
 /*  85 */ "init_deferred_pred_opt ::= INITIALLY DEFERRED",
 /*  86 */ "init_deferred_pred_opt ::= INITIALLY IMMEDIATE",
 /*  87 */ "conslist_opt ::=",
 /*  88 */ "conslist_opt ::= COMMA conslist",
 /*  89 */ "conslist ::= conslist tconscomma tcons",
 /*  90 */ "conslist ::= tcons",
 /*  91 */ "tconscomma ::= COMMA",
 /*  92 */ "tconscomma ::=",
 /*  93 */ "tcons ::= CONSTRAINT nm",
 /*  94 */ "tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf",
 /*  95 */ "tcons ::= UNIQUE LP idxlist RP onconf",
 /*  96 */ "tcons ::= CHECK LP expr RP onconf",
 /*  97 */ "tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt",
 /*  98 */ "defer_subclause_opt ::=",
 /*  99 */ "defer_subclause_opt ::= defer_subclause",
 /* 100 */ "onconf ::=",
................................................................................
  { 182, 2 },
  { 180, 3 },
  { 180, 2 },
  { 183, 0 },
  { 183, 2 },
  { 183, 2 },
  { 159, 0 },
  { 159, 2 },
  { 184, 3 },
  { 184, 1 },
  { 185, 1 },
  { 185, 0 },
  { 186, 2 },
  { 186, 7 },
  { 186, 5 },
  { 186, 5 },
  { 186, 10 },
  { 188, 0 },
  { 188, 1 },
  { 175, 0 },
................................................................................
  yygotominor.yy0.n = (int)(&yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[-5].minor.yy0.z);
}
        break;
      case 50: /* typename ::= typename ids */
{yygotominor.yy0.z=yymsp[-1].minor.yy0.z; yygotominor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);}
        break;
      case 55: /* ccons ::= CONSTRAINT nm */
      case 93: /* tcons ::= CONSTRAINT nm */ yytestcase(yyruleno==93);
{pParse->constraintName = yymsp[0].minor.yy0;}
        break;
      case 56: /* ccons ::= DEFAULT term */
      case 58: /* ccons ::= DEFAULT PLUS term */ yytestcase(yyruleno==58);
{sqlite3AddDefaultValue(pParse,&yymsp[0].minor.yy342);}
        break;
      case 57: /* ccons ::= DEFAULT LP expr RP */
................................................................................
      case 101: /* onconf ::= ON CONFLICT resolvetype */ yytestcase(yyruleno==101);
      case 104: /* resolvetype ::= raisetype */ yytestcase(yyruleno==104);
{yygotominor.yy392 = yymsp[0].minor.yy392;}
        break;
      case 87: /* conslist_opt ::= */
{yygotominor.yy0.n = 0; yygotominor.yy0.z = 0;}
        break;
      case 88: /* conslist_opt ::= COMMA conslist */
{yygotominor.yy0 = yymsp[-1].minor.yy0;}
        break;
      case 91: /* tconscomma ::= COMMA */
{pParse->constraintName.n = 0;}
        break;
      case 94: /* tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf */
{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy442,yymsp[0].minor.yy392,yymsp[-2].minor.yy392,0);}
        break;
      case 95: /* tcons ::= UNIQUE LP idxlist RP onconf */
{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy442,yymsp[0].minor.yy392,0,0,0,0);}
................................................................................
      /* (35) columnlist ::= column */ yytestcase(yyruleno==35);
      /* (44) type ::= */ yytestcase(yyruleno==44);
      /* (51) signed ::= plus_num */ yytestcase(yyruleno==51);
      /* (52) signed ::= minus_num */ yytestcase(yyruleno==52);
      /* (53) carglist ::= carglist ccons */ yytestcase(yyruleno==53);
      /* (54) carglist ::= */ yytestcase(yyruleno==54);
      /* (61) ccons ::= NULL onconf */ yytestcase(yyruleno==61);
      /* (89) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==89);
      /* (90) conslist ::= tcons */ yytestcase(yyruleno==90);
      /* (92) tconscomma ::= */ yytestcase(yyruleno==92);
      /* (277) foreach_clause ::= */ yytestcase(yyruleno==277);
      /* (278) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==278);
      /* (285) tridxby ::= */ yytestcase(yyruleno==285);
      /* (303) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==303);
      /* (304) database_kw_opt ::= */ yytestcase(yyruleno==304);
      /* (312) kwcolumn_opt ::= */ yytestcase(yyruleno==312);
      /* (313) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==313);

Changes to src/sqlite3.h.

105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
**
** See also: [sqlite3_libversion()],
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
** [sqlite_version()] and [sqlite_source_id()].
*/
#define SQLITE_VERSION        "3.7.12"
#define SQLITE_VERSION_NUMBER 3007012
#define SQLITE_SOURCE_ID      "2012-05-12 01:14:27 93061c6e063fddfa6b5d21064a36b58cc97599f1"

/*
** CAPI3REF: Run-Time Library Version Numbers
** KEYWORDS: sqlite3_version, sqlite3_sourceid
**
** These interfaces provide the same information as the [SQLITE_VERSION],
** [SQLITE_VERSION_NUMBER], and [SQLITE_SOURCE_ID] C preprocessor macros







|







105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
**
** See also: [sqlite3_libversion()],
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
** [sqlite_version()] and [sqlite_source_id()].
*/
#define SQLITE_VERSION        "3.7.12"
#define SQLITE_VERSION_NUMBER 3007012
#define SQLITE_SOURCE_ID      "2012-05-12 18:29:53 e536ac041815b118c461ceee798f9b7283269f58"

/*
** CAPI3REF: Run-Time Library Version Numbers
** KEYWORDS: sqlite3_version, sqlite3_sourceid
**
** These interfaces provide the same information as the [SQLITE_VERSION],
** [SQLITE_VERSION_NUMBER], and [SQLITE_SOURCE_ID] C preprocessor macros