This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
parse subs and signature subs separately
[perl5.git] / perly.tab
1 /* -*- buffer-read-only: t -*-
2    !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
3    This file is built by regen_perly.pl from perly.y.
4    Any changes made here will be lost!
5  */
6
7 #define YYFINAL  14
8 /* YYLAST -- Last index in YYTABLE.  */
9 #define YYLAST   3032
10
11 /* YYNTOKENS -- Number of terminals.  */
12 #define YYNTOKENS  107
13 /* YYNNTS -- Number of nonterminals.  */
14 #define YYNNTS  87
15 /* YYNRULES -- Number of rules.  */
16 #define YYNRULES  274
17 /* YYNSTATES -- Number of states.  */
18 #define YYNSTATES  544
19
20 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
21    by yylex, with out-of-bounds checking.  */
22 #define YYUNDEFTOK  2
23 #define YYMAXUTOK   339
24
25 #define YYTRANSLATE(YYX)                                                \
26   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
27
28 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
29    as returned by yylex, without out-of-bounds checking.  */
30 static const yytype_uint8 yytranslate[] =
31 {
32        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
33        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
34        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
35        2,     2,     2,    90,     2,     2,   104,    16,    17,     2,
36      102,   101,   105,    14,    79,    13,    19,   106,     2,     2,
37        2,     2,     2,     2,     2,     2,     2,     2,    82,   103,
38        2,    18,     2,    81,    15,     2,     2,     2,     2,     2,
39        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
40        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
41        2,    11,     2,    12,     2,     2,     2,     2,     2,     2,
42        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
43        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
44        2,     2,     2,     9,     2,    10,    91,     2,     2,     2,
45        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
46        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
47        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
48        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
49        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
50        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
51        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
52        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
53        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
54        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
55        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
56        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
57        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
58        5,     6,     7,     8,    20,    21,    22,    23,    24,    25,
59       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
60       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
61       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
62       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
63       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
64       76,    77,    78,    80,    83,    84,    85,    86,    87,    88,
65       89,    92,    93,    94,    95,    96,    97,    98,    99,   100
66 };
67
68 #if YYDEBUG
69   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
70 static const yytype_uint16 yyrline[] =
71 {
72        0,   118,   118,   117,   129,   128,   139,   138,   152,   151,
73      165,   164,   178,   177,   190,   198,   206,   210,   218,   224,
74      225,   235,   236,   245,   249,   253,   257,   264,   266,   277,
75      276,   294,   293,   310,   318,   317,   326,   332,   338,   343,
76      345,   347,   354,   362,   364,   361,   381,   386,   393,   392,
77      407,   415,   421,   428,   427,   442,   446,   451,   459,   477,
78      478,   483,   485,   487,   489,   491,   493,   495,   498,   504,
79      505,   510,   521,   522,   528,   534,   535,   540,   543,   547,
80      552,   556,   560,   561,   565,   571,   576,   581,   582,   587,
81      588,   593,   594,   596,   601,   603,   615,   616,   621,   623,
82      627,   647,   648,   650,   656,   721,   723,   729,   731,   735,
83      741,   742,   746,   748,   747,   798,   809,   810,   814,   816,
84      818,   820,   824,   826,   831,   835,   839,   843,   849,   854,
85      860,   866,   868,   871,   870,   881,   882,   886,   890,   893,
86      898,   903,   906,   910,   914,   920,   928,   935,   941,   943,
87      945,   950,   952,   954,   959,   961,   963,   965,   967,   969,
88      971,   973,   975,   977,   979,   984,   986,   989,   991,   993,
89      996,   999,  1010,  1013,  1020,  1022,  1024,  1026,  1028,  1031,
90     1037,  1039,  1043,  1044,  1045,  1046,  1047,  1049,  1051,  1053,
91     1055,  1057,  1059,  1061,  1063,  1065,  1067,  1069,  1071,  1073,
92     1075,  1085,  1095,  1105,  1115,  1117,  1119,  1122,  1127,  1131,
93     1133,  1135,  1137,  1140,  1142,  1145,  1147,  1149,  1151,  1153,
94     1155,  1157,  1159,  1161,  1164,  1166,  1168,  1170,  1172,  1174,
95     1178,  1181,  1180,  1193,  1194,  1195,  1199,  1201,  1203,  1208,
96     1210,  1213,  1215,  1217,  1222,  1224,  1229,  1230,  1235,  1236,
97     1242,  1246,  1247,  1248,  1251,  1252,  1255,  1256,  1259,  1263,
98     1267,  1273,  1279,  1281,  1285,  1289,  1290,  1294,  1295,  1299,
99     1300,  1305,  1307,  1309,  1312
100 };
101 #endif
102
103 #if YYDEBUG || YYERROR_VERBOSE || 0
104 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
105    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
106 static const char *const yytname[] =
107 {
108   "$end", "error", "$undefined", "GRAMPROG", "GRAMEXPR", "GRAMBLOCK",
109   "GRAMBARESTMT", "GRAMFULLSTMT", "GRAMSTMTSEQ", "'{'", "'}'", "'['",
110   "']'", "'-'", "'+'", "'@'", "'%'", "'&'", "'='", "'.'", "BAREWORD",
111   "METHOD", "FUNCMETH", "THING", "PMFUNC", "PRIVATEREF", "QWLIST",
112   "FUNC0OP", "FUNC0SUB", "UNIOPSUB", "LSTOPSUB", "PLUGEXPR", "PLUGSTMT",
113   "LABEL", "FORMAT", "SUB", "SIGSUB", "ANONSUB", "ANON_SIGSUB", "PACKAGE",
114   "USE", "WHILE", "UNTIL", "IF", "UNLESS", "ELSE", "ELSIF", "CONTINUE",
115   "FOR", "GIVEN", "WHEN", "DEFAULT", "LOOPEX", "DOTDOT", "YADAYADA",
116   "FUNC0", "FUNC1", "FUNC", "UNIOP", "LSTOP", "RELOP", "EQOP", "MULOP",
117   "ADDOP", "DOLSHARP", "DO", "HASHBRACK", "NOAMP", "LOCAL", "MY",
118   "REQUIRE", "COLONATTR", "FORMLBRACK", "FORMRBRACK", "PREC_LOW", "OROP",
119   "DOROP", "ANDOP", "NOTOP", "','", "ASSIGNOP", "'?'", "':'", "OROR",
120   "DORDOR", "ANDAND", "BITOROP", "BITANDOP", "SHIFTOP", "MATCHOP", "'!'",
121   "'~'", "UMINUS", "REFGEN", "POWOP", "PREINC", "PREDEC", "POSTINC",
122   "POSTDEC", "POSTJOIN", "ARROW", "')'", "'('", "';'", "'$'", "'*'", "'/'",
123   "$accept", "grammar", "@1", "@2", "@3", "@4", "@5", "@6", "block",
124   "formblock", "remember", "mblock", "mremember", "stmtseq", "formstmtseq",
125   "fullstmt", "labfullstmt", "barestmt", "$@7", "$@8", "$@9", "$@10",
126   "$@11", "@12", "$@13", "formline", "formarg", "sideff", "else", "cont",
127   "mintro", "nexpr", "texpr", "iexpr", "mexpr", "mnexpr", "formname",
128   "startsub", "startanonsub", "startformsub", "subname", "proto",
129   "subattrlist", "myattrlist", "sigvarname", "sigslurpsigil",
130   "sigslurpelem", "sigdefault", "sigscalarelem", "sigelem", "siglist",
131   "siglistornull", "subsignature", "$@14", "realsubbody", "optsubbody",
132   "expr", "listexpr", "listop", "@15", "method", "subscripted",
133   "termbinop", "termunop", "anonymous", "termdo", "term", "@16",
134   "myattrterm", "myterm", "optlistexpr", "optexpr", "optrepl", "my_scalar",
135   "my_var", "refgen_topic", "my_refgen", "amper", "scalar", "ary", "hsh",
136   "arylen", "star", "sliceme", "kvslice", "gelem", "indirob", YY_NULLPTR
137 };
138 #endif
139
140 # ifdef YYPRINT
141 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
142    (internal) symbol number NUM (which must be that of a token).  */
143 static const yytype_uint16 yytoknum[] =
144 {
145        0,   256,   257,   258,   259,   260,   261,   262,   263,   123,
146      125,    91,    93,    45,    43,    64,    37,    38,    61,    46,
147      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
148      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
149      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
150      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
151      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
152      314,   315,   316,   317,   318,   319,   320,   321,   322,    44,
153      323,    63,    58,   324,   325,   326,   327,   328,   329,   330,
154       33,   126,   331,   332,   333,   334,   335,   336,   337,   338,
155      339,    41,    40,    59,    36,    42,    47
156 };
157 # endif
158
159 #define YYPACT_NINF -422
160
161 #define yypact_value_is_default(Yystate) \
162   (!!((Yystate) == (-422)))
163
164 #define YYTABLE_NINF -270
165
166 #define yytable_value_is_error(Yytable_value) \
167   (!!((Yytable_value) == (-270)))
168
169   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
170      STATE-NUM.  */
171 static const yytype_int16 yypact[] =
172 {
173      614,  -422,  -422,  -422,  -422,  -422,  -422,    15,  -422,  2769,
174       13,  1433,  1336,  -422,  -422,  -422,  1914,  2769,  2769,    48,
175       48,    48,  -422,    48,    48,  -422,  -422,    14,   -67,  -422,
176     2769,  -422,  -422,  -422,  -422,  2769,   -47,   -39,   -35,  1819,
177     1722,    48,  1819,  2009,    67,  2769,    -2,  2769,  2769,  2769,
178     2769,  2769,  2769,  2769,  2104,    48,    48,   293,    49,  -422,
179       12,  -422,  -422,  -422,  -422,  2890,  -422,  -422,   -25,   120,
180      142,   275,  -422,    84,   294,   305,   102,  -422,  -422,  -422,
181     -422,  -422,    67,    67,   123,  -422,    31,    52,    78,    92,
182      204,   100,   108,    13,    44,  -422,   183,  -422,   139,  2102,
183     1336,  -422,  -422,  -422,   657,   754,  -422,    21,   510,   510,
184     -422,  -422,  -422,  -422,  -422,  -422,  -422,  2769,   151,   164,
185     2769,   140,   640,    13,   251,   251,  2890,   182,  2199,  1722,
186     -422,   640,   553,    49,  -422,   487,  2769,  -422,  -422,   640,
187      277,     4,  -422,  -422,  2769,   640,  2864,  2294,   219,  -422,
188     -422,  -422,   640,    49,   510,   510,   510,   181,   181,   283,
189      132,  -422,  -422,  2769,  2769,  2769,  2769,  2769,  2769,  2389,
190     2769,  2769,  2769,  2769,  2769,  2769,  2769,  2769,  2769,  2769,
191     2769,  2769,  2769,  2769,  2769,  -422,  -422,  -422,    37,  2484,
192     2769,  2769,  2769,  2769,  2769,  2769,  2769,  -422,   282,  -422,
193     -422,   289,  -422,  -422,  -422,  -422,  -422,   220,   107,  -422,
194     -422,   216,  -422,  -422,  -422,  -422,    13,  -422,  -422,  2769,
195     2769,  2769,  2769,  2769,  2769,  -422,  -422,  -422,  -422,  -422,
196     2769,  2769,   113,  -422,  -422,  -422,   254,   254,  -422,  -422,
197      252,   230,  2769,    49,  -422,   322,  -422,  2579,   510,   219,
198       50,    55,    75,  -422,   342,   312,  -422,  2769,   331,   267,
199      267,  -422,  2890,    33,   128,  -422,   396,  1517,  1992,  1802,
200      445,   295,  2890,   422,   348,   348,  1610,  1707,  1897,   360,
201      510,   510,  2769,  2769,   240,   244,   259,  -422,   270,  2674,
202       40,   271,   250,  -422,  -422,   437,   247,   138,   326,   162,
203      350,   169,   375,   851,  -422,   338,  -422,  -422,     3,   359,
204     2769,  2769,  2769,  2769,  -422,   279,  -422,  -422,   285,  -422,
205     -422,  -422,  -422,  1529,    11,  -422,  2769,  2769,  -422,   293,
206     -422,   293,   293,   293,   293,   293,   290,   -28,  -422,  2769,
207      363,  -422,  -422,  -422,  -422,   479,  -422,    45,   482,  -422,
208     -422,  -422,   186,  2769,   380,  -422,  -422,  2769,   392,   224,
209     -422,  -422,  -422,  -422,  -422,   523,  -422,  -422,  2769,  -422,
210      388,  -422,   389,  -422,   403,  -422,   404,  -422,  -422,  -422,
211      251,   251,  -422,  -422,   400,   315,   293,   329,   337,   293,
212      340,   353,  -422,  -422,  -422,  -422,   364,   336,   330,  -422,
213     2769,   369,   373,  -422,  2769,   376,  -422,  -422,   374,  -422,
214     -422,  -422,    63,  -422,   284,  -422,  2932,   451,  -422,  -422,
215      378,  -422,  -422,  -422,  -422,   377,   254,   254,  -422,  2769,
216     -422,  -422,   472,   472,  2769,  2769,   472,  -422,   384,   391,
217      472,   472,   293,  -422,  -422,   480,  -422,  -422,  -422,   421,
218      397,   397,  -422,   398,   472,   472,  -422,    43,    43,   416,
219      423,   183,  2769,  2769,   472,  -422,  -422,    54,  -422,  -422,
220     -422,  -422,  -422,  -422,   948,  -422,   183,   183,  -422,   472,
221      430,  -422,  -422,   472,   472,  -422,   420,   424,   183,  -422,
222     -422,   511,   511,  -422,  -422,  -422,   462,   460,  1045,    24,
223     -422,  -422,  -422,  1142,  -422,  2769,   183,   183,  -422,   472,
224     -422,  -422,   466,   466,    54,  -422,  -422,   505,   533,  -422,
225     -422,   477,  -422,  -422,  -422,   183,  2769,  -422,  -422,  -422,
226     -422,  -422,  -422,   472,  1625,  -422,  2890,  1239,    43,   478,
227     -422,  -422,   472,  -422
228 };
229
230   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
231      Performed when YYTABLE does not specify something else to do.  Zero
232      means the default is an error.  */
233 static const yytype_uint16 yydefact[] =
234 {
235        0,     2,     4,     6,     8,    10,    12,     0,    16,   246,
236        0,     0,     0,    19,     1,    19,     0,     0,     0,     0,
237        0,     0,   233,     0,     0,   204,   231,   192,   226,   228,
238      222,    85,   235,    85,    85,   214,   224,     0,     0,   217,
239      244,     0,     0,     0,     0,     0,     0,   220,     0,     0,
240        0,     0,     0,     0,     0,     0,     0,   247,   121,   234,
241      199,   182,   183,   184,   185,   124,   189,     5,   205,   194,
242      197,   196,   198,   195,     0,     0,     0,    16,     7,    61,
243       27,    86,     0,     0,     0,    84,     0,     0,     0,     0,
244        0,     0,     0,     0,     0,    57,    72,     9,     0,    62,
245        0,    11,    24,    23,     0,     0,   175,     0,   165,   166,
246      271,   274,   273,   272,   260,   261,   258,   244,     0,     0,
247        0,     0,   223,     0,    89,    89,   215,     0,     0,   246,
248      218,   219,   271,   245,   131,   272,     0,   262,   181,   180,
249        0,     0,    87,    88,   244,   190,     0,     0,   237,   241,
250      243,   242,   221,   216,   167,   168,   187,   172,   173,   193,
251        0,   259,   264,     0,     0,     0,   122,     0,     0,     0,
252        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
253        0,     0,     0,     0,     0,   169,   170,   171,     0,     0,
254        0,     0,     0,     0,     0,     0,     0,    19,    83,    84,
255       84,     0,    34,    16,    16,    16,    16,    16,     0,    16,
256       16,     0,    16,    16,    40,    56,     0,    52,    55,     0,
257        0,     0,     0,     0,     0,    26,    25,    20,   174,   129,
258      246,     0,     0,   227,   133,    90,    91,    91,   225,   229,
259        0,     0,     0,   125,   177,     0,   208,     0,   188,     0,
260      194,   197,   196,   240,     0,    95,   236,     0,   191,   119,
261      120,   118,   123,     0,     0,   147,     0,   160,   156,   157,
262      153,   154,   151,     0,   162,   163,   161,   159,   158,   155,
263      164,   152,     0,     0,   266,   268,     0,   135,     0,     0,
264        0,   270,   128,   136,   206,     0,     0,     0,     0,     0,
265        0,     0,     0,     0,    82,     0,    29,    31,     0,     0,
266       77,     0,     0,     0,   256,     0,   257,   254,     0,   255,
267      251,   252,   253,     0,     0,    16,     0,     0,    73,    65,
268       66,    79,    63,    64,    67,    68,     0,   248,   149,   244,
269       93,    16,    16,   230,   132,     0,   176,   193,     0,   238,
270      239,    94,     0,     0,     0,   140,   146,     0,     0,     0,
271      210,   211,   212,   263,   144,     0,   209,   213,   246,   207,
272        0,   138,     0,   200,     0,   201,     0,    14,    16,    28,
273       89,    89,    16,    33,     0,     0,    78,     0,     0,    80,
274        0,     0,   250,    16,    76,    81,     0,     0,    62,    48,
275        0,     0,     0,   130,     0,     0,   134,    92,   112,   178,
276      179,   126,   191,   150,     0,   143,   186,     0,   139,   145,
277        0,   141,   202,   203,   137,     0,    91,    91,    53,   244,
278       74,    74,     0,     0,     0,     0,     0,    43,     0,     0,
279        0,     0,   249,   232,   113,     0,   148,   142,   127,     0,
280       16,    16,    19,     0,     0,     0,    18,    69,    69,     0,
281        0,    72,    77,     0,     0,    38,    39,   110,    19,    21,
282      117,   116,    30,    32,     0,    35,    72,    72,    19,     0,
283        0,    36,    37,     0,     0,    51,     0,     0,    72,    98,
284       99,    96,    96,   106,   105,   109,   111,     0,     0,     0,
285       54,    41,    42,     0,    70,     0,    72,    72,    44,     0,
286       47,    97,   101,   101,   107,   114,   115,    59,     0,    22,
287       17,     0,    46,    50,    74,    72,   102,   104,   100,   108,
288       19,    58,    15,     0,     0,    49,   103,     0,    69,     0,
289       60,    71,     0,    45
290 };
291
292   /* YYPGOTO[NTERM-NUM].  */
293 static const yytype_int16 yypgoto[] =
294 {
295     -422,  -422,  -422,  -422,  -422,  -422,  -422,  -422,   -10,  -422,
296       22,  -121,  -422,   -12,  -422,   570,   489,    32,  -422,  -422,
297     -422,  -422,  -422,  -422,  -422,  -422,  -422,  -318,  -408,  -140,
298     -421,  -422,   129,   281,  -251,    68,  -422,   -81,   104,  -422,
299       95,  -116,  -226,   356,   119,  -422,  -422,    99,  -422,   109,
300     -422,  -422,  -422,  -422,  -155,   174,    28,   -32,  -422,  -422,
301     -422,  -422,  -422,  -422,  -422,  -422,   -11,  -422,  -422,   481,
302      -99,  -125,  -422,  -422,   302,  -422,  -422,   435,   236,   -29,
303      -26,  -422,  -422,  -422,  -422,  -422,   248
304 };
305
306   /* YYDEFGOTO[NTERM-NUM].  */
307 static const yytype_int16 yydefgoto[] =
308 {
309       -1,     7,     8,     9,    10,    11,    12,    13,   112,   379,
310      408,   457,   478,   104,   499,   227,   102,   103,   380,   381,
311      309,   462,   524,   438,   452,   519,   531,    98,   481,   217,
312      454,   395,   385,   330,   388,   397,   305,   202,   123,   198,
313      144,   236,   341,   256,   512,   492,   493,   527,   494,   495,
314      496,   497,   445,   467,   471,   472,    99,    58,    59,   339,
315      292,    60,    61,    62,    63,    64,    65,   119,    66,   148,
316      134,    67,   405,   391,   317,   318,   210,    68,    69,    70,
317       71,    72,    73,    74,    75,    76,   161
318 };
319
320   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
321      positive, shift that token.  If negative, reduce the rule whose
322      number is the opposite.  If YYTABLE_NINF, syntax error.  */
323 static const yytype_int16 yytable[] =
324 {
325       78,    96,    96,   105,   241,   394,   108,   109,   133,   237,
326      455,   342,   382,    19,    20,    14,   153,   150,   229,   122,
327      151,   167,    77,   168,   126,   120,    19,    20,   131,   130,
328       15,   139,   138,   228,   145,   121,   152,    57,   154,   155,
329      156,   157,   158,    97,   107,   246,   282,   517,   283,    77,
330      482,   166,   284,   285,   286,   127,   257,    77,   287,   190,
331      110,   191,   390,   128,  -265,   111,  -265,   129,   110,   489,
332      490,   141,   396,   111,   353,   401,   402,   189,   404,   163,
333      164,   165,   160,   214,  -267,   133,  -267,   142,   479,   480,
334       96,   146,   143,  -269,    96,    96,   163,   164,   165,   197,
335      147,   288,    55,   534,   243,   336,   383,   245,   163,   164,
336      165,   196,   133,   234,   169,    55,  -240,   251,   306,   307,
337      252,  -241,    19,    20,    21,   338,  -243,   518,   166,   190,
338      541,   191,   226,   203,  -239,   248,   354,   124,   125,   289,
339      355,   290,   291,   201,    55,   366,  -242,   215,   232,   439,
340      371,  -265,    55,  -265,   204,   262,   240,    57,   491,   267,
341      268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
342      278,   279,   280,   281,   373,   254,   316,   199,   200,   321,
343      205,   375,   322,   459,   460,   303,   409,   410,   163,   164,
344      165,   259,   260,   261,   206,   263,   264,   266,   413,   337,
345      450,   451,   212,   163,   164,   165,   328,   163,   164,   165,
346      213,    55,   487,   163,   164,   165,   394,   295,   296,   297,
347      298,   299,   300,   301,   302,   310,   311,   312,   313,   315,
348      216,   323,   324,   258,   326,   327,   418,   163,   164,   165,
349      406,   233,   218,   420,   163,   164,   165,   329,   331,   332,
350      333,   334,   335,   230,   521,   113,   113,   113,    57,   113,
351      113,   163,   164,   165,   426,   427,   231,   114,   115,   116,
352      345,   117,   118,   207,   235,   348,   135,   113,  -270,  -270,
353     -270,   188,   149,   238,  -267,   352,  -267,   244,   136,   137,
354      255,   113,   113,    96,   257,   321,   446,   208,   322,   163,
355      164,   165,   304,   192,   162,   193,   209,   133,    55,   308,
356      358,   359,   458,   314,   194,   461,   195,   365,   325,   465,
357      466,   485,   163,   164,   165,   340,   211,   163,   164,   165,
358      453,   344,   346,   476,   477,   351,   501,   502,   386,   331,
359      389,   389,   353,   488,   165,   360,   416,   400,   510,   361,
360      370,   398,   368,   343,   389,   389,   378,   173,   504,   163,
361      164,   165,   506,   507,   362,   135,   522,   523,   163,   164,
362      165,   219,   220,   221,   222,   363,   367,   242,   223,   384,
363      224,   414,   250,    55,   183,   535,   407,   393,   525,   184,
364      415,   403,   185,   186,   187,   188,    57,   133,   421,   422,
365      425,   163,   164,   165,   428,   163,   164,   165,   171,   172,
366      173,   174,   538,   423,   424,   435,   430,   163,   164,   165,
367      429,   543,   173,   174,   293,   163,   164,   165,   389,   372,
368      431,   -80,   442,   179,   180,   181,   182,   183,   432,   437,
369      474,   433,   184,   350,   320,   185,   186,   187,   188,   183,
370      163,   164,   165,   374,   184,   434,   498,   185,   186,   187,
371      188,   447,   389,   389,    96,   436,   503,   163,   164,   165,
372      440,   163,   164,   165,   441,   170,   444,   443,   376,   448,
373      449,   456,   171,   172,   173,   174,   463,  -194,    96,   468,
374      386,   389,   464,    96,   469,   417,   190,   356,   191,  -194,
375      470,   475,   175,   176,   357,   177,   178,   179,   180,   181,
376      182,   183,   163,   164,   165,   536,   184,   483,   537,   185,
377      186,   187,   188,   508,   484,   509,   113,    96,  -194,  -194,
378     -194,  -194,   505,   389,   183,  -194,   511,  -194,   369,   184,
379     -194,   514,   185,   186,   187,   188,   526,  -194,  -194,  -194,
380     -194,   392,   532,  -233,   163,   164,   165,   163,   164,   165,
381      320,   515,  -194,  -194,  -194,  -233,  -194,  -194,  -194,  -194,
382     -194,  -194,  -194,  -194,  -194,  -194,  -194,   530,   533,   542,
383      411,  -194,   101,   412,  -194,  -194,  -194,  -194,  -194,   225,
384     -194,   486,   387,  -194,  -233,  -233,  -233,  -233,   163,   164,
385      165,  -233,   539,  -233,   184,   349,  -233,   185,   186,   187,
386      188,   513,   528,  -233,  -233,  -233,  -233,     1,     2,     3,
387        4,     5,     6,   529,   419,   473,   399,   249,  -233,  -233,
388     -233,     0,  -233,  -233,  -233,  -233,  -233,  -233,  -233,  -233,
389     -233,  -233,  -233,   319,     0,     0,     0,  -233,     0,     0,
390     -233,  -233,  -233,  -233,  -233,     0,  -233,   -13,    79,  -233,
391        0,     0,     0,     0,     0,     0,    77,     0,    16,     0,
392       17,    18,    19,    20,    21,     0,     0,    22,    23,    24,
393       25,    26,     0,    27,    28,    29,    30,    31,    32,    80,
394      100,    81,    82,    83,    33,    34,    84,    85,    86,    87,
395       88,    89,   173,   174,     0,    90,    91,    92,    93,    35,
396        0,    94,    36,    37,    38,    39,    40,     0,     0,     0,
397        0,    41,    42,    43,    44,    45,    46,    47,   182,   183,
398        0,     0,     0,     0,   184,    48,     0,   185,   186,   187,
399      188,     0,     0,     0,     0,     0,     0,    49,    50,     0,
400       51,     0,    52,    53,    -3,    79,     0,     0,     0,    54,
401       95,    55,    56,    77,     0,    16,     0,    17,    18,    19,
402       20,    21,     0,     0,    22,    23,    24,    25,    26,     0,
403       27,    28,    29,    30,    31,    32,    80,   100,    81,    82,
404       83,    33,    34,    84,    85,    86,    87,    88,    89,     0,
405        0,     0,    90,    91,    92,    93,    35,     0,    94,    36,
406       37,    38,    39,    40,     0,     0,     0,     0,    41,    42,
407       43,    44,    45,    46,    47,     0,     0,     0,     0,     0,
408        0,     0,    48,     0,     0,     0,     0,     0,     0,     0,
409        0,     0,     0,     0,    49,    50,     0,    51,     0,    52,
410       53,     0,    79,     0,     0,     0,    54,    95,    55,    56,
411       77,   377,    16,     0,    17,    18,    19,    20,    21,     0,
412        0,    22,    23,    24,    25,    26,     0,    27,    28,    29,
413       30,    31,    32,    80,   100,    81,    82,    83,    33,    34,
414       84,    85,    86,    87,    88,    89,     0,     0,     0,    90,
415       91,    92,    93,    35,     0,    94,    36,    37,    38,    39,
416       40,     0,     0,     0,     0,    41,    42,    43,    44,    45,
417       46,    47,     0,     0,     0,     0,     0,     0,     0,    48,
418        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
419        0,    49,    50,     0,    51,     0,    52,    53,     0,    79,
420        0,     0,     0,    54,    95,    55,    56,    77,   500,    16,
421        0,    17,    18,    19,    20,    21,     0,     0,    22,    23,
422       24,    25,    26,     0,    27,    28,    29,    30,    31,    32,
423       80,   100,    81,    82,    83,    33,    34,    84,    85,    86,
424       87,    88,    89,     0,     0,     0,    90,    91,    92,    93,
425       35,     0,    94,    36,    37,    38,    39,    40,     0,     0,
426        0,     0,    41,    42,    43,    44,    45,    46,    47,     0,
427        0,     0,     0,     0,     0,     0,    48,     0,     0,     0,
428        0,     0,     0,     0,     0,     0,     0,     0,    49,    50,
429        0,    51,     0,    52,    53,     0,    79,     0,     0,     0,
430       54,    95,    55,    56,    77,   516,    16,     0,    17,    18,
431       19,    20,    21,     0,     0,    22,    23,    24,    25,    26,
432        0,    27,    28,    29,    30,    31,    32,    80,   100,    81,
433       82,    83,    33,    34,    84,    85,    86,    87,    88,    89,
434        0,     0,     0,    90,    91,    92,    93,    35,     0,    94,
435       36,    37,    38,    39,    40,     0,     0,     0,     0,    41,
436       42,    43,    44,    45,    46,    47,     0,     0,     0,     0,
437        0,     0,     0,    48,     0,     0,     0,     0,     0,     0,
438        0,     0,     0,     0,     0,    49,    50,     0,    51,     0,
439       52,    53,     0,    79,     0,     0,     0,    54,    95,    55,
440       56,    77,   520,    16,     0,    17,    18,    19,    20,    21,
441        0,     0,    22,    23,    24,    25,    26,     0,    27,    28,
442       29,    30,    31,    32,    80,   100,    81,    82,    83,    33,
443       34,    84,    85,    86,    87,    88,    89,     0,     0,     0,
444       90,    91,    92,    93,    35,     0,    94,    36,    37,    38,
445       39,    40,     0,     0,     0,     0,    41,    42,    43,    44,
446       45,    46,    47,     0,     0,     0,     0,     0,     0,     0,
447       48,     0,     0,     0,     0,     0,     0,     0,     0,     0,
448        0,     0,    49,    50,     0,    51,     0,    52,    53,     0,
449       79,     0,     0,     0,    54,    95,    55,    56,    77,     0,
450       16,     0,    17,    18,    19,    20,    21,     0,     0,    22,
451       23,    24,    25,    26,     0,    27,    28,    29,    30,    31,
452       32,    80,   100,    81,    82,    83,    33,    34,    84,    85,
453       86,    87,    88,    89,     0,     0,     0,    90,    91,    92,
454       93,    35,     0,    94,    36,    37,    38,    39,    40,     0,
455        0,     0,     0,    41,    42,    43,    44,    45,    46,    47,
456        0,     0,   540,     0,     0,     0,     0,    48,     0,     0,
457        0,     0,     0,     0,     0,     0,     0,     0,     0,    49,
458       50,     0,    51,     0,    52,    53,     0,    79,     0,     0,
459        0,    54,    95,    55,    56,    77,     0,    16,     0,    17,
460       18,    19,    20,    21,     0,     0,    22,    23,    24,    25,
461       26,     0,    27,    28,    29,    30,    31,    32,    80,   100,
462       81,    82,    83,    33,    34,    84,    85,    86,    87,    88,
463       89,     0,     0,     0,    90,    91,    92,    93,    35,     0,
464       94,    36,    37,    38,    39,    40,     0,     0,     0,     0,
465       41,    42,    43,    44,    45,    46,    47,     0,     0,     0,
466        0,     0,     0,     0,    48,     0,     0,     0,     0,     0,
467        0,     0,     0,     0,     0,     0,    49,    50,     0,    51,
468        0,    52,    53,     0,    79,     0,     0,     0,    54,    95,
469       55,    56,    77,     0,    16,     0,    17,    18,    19,    20,
470       21,     0,     0,    22,    23,    24,    25,    26,     0,    27,
471       28,    29,    30,    31,    32,    80,     0,    81,    82,    83,
472       33,    34,    84,    85,    86,    87,    88,    89,     0,     0,
473        0,    90,    91,    92,    93,    35,     0,    94,    36,    37,
474       38,    39,    40,     0,     0,     0,     0,    41,    42,    43,
475       44,    45,    46,    47,     0,     0,     0,     0,     0,     0,
476        0,    48,     0,     0,     0,     0,     0,     0,     0,     0,
477        0,     0,     0,    49,    50,     0,    51,     0,    52,    53,
478       79,     0,     0,     0,     0,    54,    95,    55,    56,     0,
479       16,     0,    17,    18,    19,    20,    21,     0,     0,    22,
480       23,    24,    25,    26,     0,    27,    28,    29,    30,    31,
481       32,     0,     0,     0,     0,     0,    33,    34,     0,     0,
482     -270,     0,     0,     0,     0,     0,     0,   171,   172,   173,
483      174,    35,     0,     0,    36,    37,    38,    39,    40,     0,
484        0,     0,     0,    41,    42,    43,    44,    45,    46,    47,
485      177,   178,   179,   180,   181,   182,   183,    48,     0,     0,
486        0,   184,     0,     0,   185,   186,   187,   188,     0,    49,
487       50,     0,    51,     0,    52,    53,    79,     0,     0,     0,
488        0,    54,   -75,    55,    56,     0,    16,     0,    17,    18,
489       19,    20,    21,     0,     0,    22,    23,    24,    25,    26,
490        0,    27,    28,    29,    30,    31,    32,     0,     0,     0,
491        0,     0,    33,    34,     0,     0,     0,     0,     0,     0,
492      171,   172,   173,   174,     0,     0,     0,    35,     0,     0,
493       36,    37,    38,    39,    40,     0,     0,     0,     0,    41,
494       42,    43,    44,    45,    46,    47,   180,   181,   182,   183,
495        0,     0,     0,    48,   184,     0,     0,   185,   186,   187,
496      188,     0,     0,     0,     0,    49,    50,     0,    51,     0,
497       52,    53,     0,     0,     0,     0,   -75,    54,     0,    55,
498       56,    77,     0,    16,     0,    17,    18,    19,    20,    21,
499        0,     0,   132,    23,    24,    25,    26,   111,    27,    28,
500       29,    30,    31,    32,     0,     0,     0,     0,     0,    33,
501       34,     0,     0,     0,     0,     0,     0,   171,   172,   173,
502      174,     0,     0,     0,    35,     0,     0,    36,    37,    38,
503       39,    40,     0,     0,     0,     0,    41,    42,    43,    44,
504       45,    46,    47,     0,   181,   182,   183,     0,     0,     0,
505       48,   184,     0,     0,   185,   186,   187,   188,     0,     0,
506        0,     0,    49,    50,     0,    51,     0,    52,    53,     0,
507        0,     0,     0,     0,    54,     0,    55,    56,    77,     0,
508       16,     0,    17,    18,    19,    20,    21,     0,     0,    22,
509       23,    24,    25,    26,     0,    27,    28,    29,    30,    31,
510       32,     0,     0,     0,     0,     0,    33,    34,     0,     0,
511        0,     0,   171,  -270,   173,   174,     0,     0,     0,     0,
512        0,    35,     0,     0,    36,    37,    38,    39,    40,     0,
513        0,     0,     0,    41,    42,    43,    44,    45,    46,    47,
514      182,   183,     0,     0,     0,     0,   184,    48,     0,   185,
515      186,   187,   188,     0,     0,     0,     0,     0,     0,    49,
516       50,     0,    51,     0,    52,    53,     0,     0,     0,     0,
517        0,    54,     0,    55,    56,    16,   106,    17,    18,    19,
518       20,    21,     0,     0,    22,    23,    24,    25,    26,     0,
519       27,    28,    29,    30,    31,    32,     0,     0,     0,     0,
520        0,    33,    34,     0,     0,     0,     0,   171,   172,   173,
521      174,     0,     0,     0,     0,     0,    35,     0,     0,    36,
522       37,    38,    39,    40,     0,     0,     0,     0,    41,    42,
523       43,    44,    45,    46,    47,   182,   183,     0,     0,     0,
524        0,   184,    48,     0,   185,   186,   187,   188,     0,     0,
525        0,     0,     0,     0,    49,    50,     0,    51,     0,    52,
526       53,     0,     0,     0,     0,     0,    54,     0,    55,    56,
527       16,     0,    17,    18,    19,    20,    21,     0,     0,    22,
528       23,    24,    25,    26,     0,    27,    28,    29,    30,    31,
529       32,     0,     0,     0,     0,     0,    33,    34,     0,     0,
530        0,     0,  -270,     0,   173,   174,     0,     0,     0,     0,
531        0,    35,     0,     0,    36,    37,    38,    39,    40,     0,
532        0,     0,     0,    41,    42,    43,    44,    45,    46,    47,
533      182,   183,     0,     0,     0,     0,   184,    48,     0,   185,
534      186,   187,   188,     0,     0,     0,     0,     0,     0,    49,
535       50,     0,    51,     0,    52,    53,     0,     0,     0,     0,
536        0,    54,   140,    55,    56,    16,     0,    17,    18,    19,
537       20,    21,     0,     0,    22,    23,    24,    25,    26,     0,
538       27,    28,    29,    30,    31,    32,     0,     0,     0,     0,
539        0,    33,    34,   219,   220,   221,   222,     0,     0,     0,
540      223,     0,   224,     0,     0,     0,    35,     0,     0,    36,
541       37,    38,    39,    40,     0,     0,     0,     0,    41,    42,
542       43,    44,    45,    46,    47,     0,     0,   163,   164,   165,
543        0,     0,    48,     0,     0,     0,     0,     0,     0,     0,
544        0,     0,     0,     0,    49,    50,     0,    51,     0,    52,
545       53,     0,     0,     0,     0,   159,    54,     0,    55,    56,
546       16,     0,    17,    18,    19,    20,    21,     0,     0,    22,
547       23,    24,    25,    26,     0,    27,    28,    29,    30,    31,
548       32,     0,     0,     0,     0,     0,    33,    34,     0,     0,
549        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
550        0,    35,     0,     0,    36,    37,    38,    39,    40,     0,
551        0,     0,     0,    41,    42,    43,    44,    45,    46,    47,
552        0,     0,     0,     0,     0,     0,     0,    48,     0,     0,
553        0,     0,     0,     0,     0,     0,     0,     0,     0,    49,
554       50,     0,    51,     0,    52,    53,     0,     0,     0,     0,
555      239,    54,     0,    55,    56,    16,     0,    17,    18,    19,
556       20,    21,     0,     0,    22,    23,    24,    25,    26,     0,
557       27,    28,    29,    30,    31,    32,     0,     0,     0,     0,
558        0,    33,    34,     0,     0,     0,     0,     0,     0,     0,
559        0,     0,     0,     0,     0,     0,    35,     0,     0,    36,
560       37,    38,    39,    40,     0,     0,     0,     0,    41,    42,
561       43,    44,    45,    46,    47,     0,     0,     0,     0,     0,
562        0,     0,    48,     0,     0,     0,     0,     0,     0,     0,
563        0,     0,     0,     0,    49,    50,     0,    51,     0,    52,
564       53,     0,     0,     0,     0,   253,    54,     0,    55,    56,
565       16,     0,    17,    18,    19,    20,    21,     0,     0,    22,
566       23,    24,    25,    26,     0,    27,    28,    29,    30,    31,
567       32,     0,     0,     0,     0,     0,    33,    34,     0,     0,
568        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
569        0,    35,     0,     0,    36,    37,    38,    39,    40,     0,
570        0,     0,     0,    41,    42,    43,    44,    45,    46,    47,
571        0,     0,     0,     0,     0,     0,     0,    48,     0,     0,
572        0,     0,     0,     0,     0,     0,     0,     0,     0,    49,
573       50,     0,    51,     0,    52,    53,     0,     0,     0,     0,
574      265,    54,     0,    55,    56,    16,     0,    17,    18,    19,
575       20,    21,     0,     0,    22,    23,    24,    25,    26,     0,
576       27,    28,    29,    30,    31,    32,     0,     0,     0,     0,
577        0,    33,    34,     0,     0,     0,     0,     0,     0,     0,
578        0,     0,     0,     0,     0,     0,    35,     0,     0,    36,
579       37,    38,    39,    40,     0,     0,     0,     0,    41,    42,
580       43,    44,    45,    46,    47,     0,     0,     0,     0,     0,
581        0,     0,    48,     0,     0,     0,     0,     0,     0,     0,
582        0,     0,     0,     0,    49,    50,     0,    51,     0,    52,
583       53,     0,     0,     0,     0,   294,    54,     0,    55,    56,
584       16,     0,    17,    18,    19,    20,    21,     0,     0,    22,
585       23,    24,    25,    26,     0,    27,    28,    29,    30,    31,
586       32,     0,     0,     0,     0,     0,    33,    34,     0,     0,
587        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
588        0,    35,     0,     0,    36,    37,    38,    39,    40,     0,
589        0,     0,     0,    41,    42,    43,    44,    45,    46,    47,
590        0,     0,     0,     0,     0,     0,     0,    48,     0,     0,
591        0,     0,     0,     0,     0,     0,     0,     0,     0,    49,
592       50,     0,    51,     0,    52,    53,     0,     0,     0,     0,
593      347,    54,     0,    55,    56,    16,     0,    17,    18,    19,
594       20,    21,     0,     0,    22,    23,    24,    25,    26,     0,
595       27,    28,    29,    30,    31,    32,     0,     0,     0,     0,
596        0,    33,    34,     0,     0,     0,     0,     0,     0,     0,
597        0,     0,     0,     0,     0,     0,    35,     0,     0,    36,
598       37,    38,    39,    40,     0,     0,     0,     0,    41,    42,
599       43,    44,    45,    46,    47,     0,     0,     0,     0,     0,
600        0,     0,    48,     0,     0,     0,     0,     0,     0,     0,
601        0,     0,     0,     0,    49,    50,     0,    51,     0,    52,
602       53,     0,     0,     0,     0,   364,    54,     0,    55,    56,
603       16,     0,    17,    18,    19,    20,    21,     0,     0,    22,
604       23,    24,    25,    26,     0,    27,    28,    29,    30,    31,
605       32,     0,     0,     0,     0,     0,    33,    34,     0,     0,
606        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
607        0,    35,     0,     0,    36,    37,    38,    39,    40,     0,
608        0,     0,     0,    41,    42,    43,    44,    45,    46,    47,
609        0,     0,     0,     0,     0,     0,     0,    48,     0,     0,
610        0,     0,     0,     0,     0,     0,     0,     0,     0,    49,
611       50,     0,    51,     0,    52,    53,     0,     0,     0,     0,
612        0,    54,     0,    55,    56,    16,     0,    17,    18,    19,
613       20,    21,     0,     0,    22,    23,    24,    25,    26,     0,
614       27,    28,    29,    30,    31,    32,     0,     0,     0,     0,
615        0,    33,    34,     0,     0,     0,     0,     0,     0,     0,
616        0,     0,     0,     0,     0,     0,    35,     0,     0,    36,
617       37,    38,    39,    40,     0,     0,     0,     0,    41,    42,
618       43,    44,    45,    46,    47,     0,     0,     0,     0,     0,
619        0,     0,    48,   170,     0,     0,     0,     0,     0,     0,
620      171,   172,   173,   174,    49,    50,     0,    51,     0,    52,
621       53,     0,     0,     0,     0,     0,   247,     0,    55,    56,
622      175,   176,     0,   177,   178,   179,   180,   181,   182,   183,
623        0,     0,     0,     0,   184,   170,     0,   185,   186,   187,
624      188,     0,   171,   172,   173,   174,     0,     0,     0,     0,
625        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
626        0,     0,     0,   176,     0,   177,   178,   179,   180,   181,
627      182,   183,     0,     0,     0,     0,   184,     0,     0,   185,
628      186,   187,   188
629 };
630
631 static const yytype_int16 yycheck[] =
632 {
633       10,    11,    12,    15,   129,   323,    17,    18,    40,   125,
634      431,   237,     9,    15,    16,     0,    48,    46,   117,    30,
635       46,     9,     9,    11,    35,    11,    15,    16,    39,    39,
636        8,    42,    42,    12,    45,   102,    47,     9,    49,    50,
637       51,    52,    53,    11,    16,   144,     9,    23,    11,     9,
638      458,    79,    15,    16,    17,   102,    11,     9,    21,     9,
639       20,    11,   313,   102,     9,    25,    11,   102,    20,    15,
640       16,    43,   323,    25,    11,   326,   327,   102,   106,    75,
641       76,    77,    54,    93,     9,   117,    11,    20,    45,    46,
642      100,    93,    25,     9,   104,   105,    75,    76,    77,    77,
643      102,    64,   104,   524,   136,   230,   103,   103,    75,    76,
644       77,     9,   144,   123,   102,   104,    71,   146,   199,   200,
645      146,    71,    15,    16,    17,    12,    71,   103,    79,     9,
646      538,    11,   100,   102,    71,   146,   103,    33,    34,   102,
647       12,   104,   105,    20,   104,   105,    71,   103,   120,   400,
648       12,     9,   104,    11,   102,   166,   128,   129,   104,   170,
649      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
650      181,   182,   183,   184,    12,   147,    69,    82,    83,   208,
651      102,    12,   208,   434,   435,   197,   341,   342,    75,    76,
652       77,   163,   164,   165,   102,   167,   168,   169,    12,   231,
653      426,   427,   102,    75,    76,    77,   216,    75,    76,    77,
654      102,   104,   463,    75,    76,    77,   534,   189,   190,   191,
655      192,   193,   194,   195,   196,   203,   204,   205,   206,   207,
656       47,   209,   210,   101,   212,   213,    12,    75,    76,    77,
657      339,   101,   103,   368,    75,    76,    77,   219,   220,   221,
658      222,   223,   224,   102,   505,    19,    20,    21,   230,    23,
659       24,    75,    76,    77,   380,   381,   102,    19,    20,    21,
660      242,    23,    24,    69,    23,   247,    40,    41,    97,    98,
661       99,   100,    46,   101,     9,   257,    11,    10,    40,    41,
662       71,    55,    56,   303,    11,   324,    12,    93,   324,    75,
663       76,    77,    20,     9,    56,    11,   102,   339,   104,    20,
664      282,   283,   433,    93,     9,   436,    11,   289,   102,   440,
665      441,   461,    75,    76,    77,    71,    90,    75,    76,    77,
666      429,   101,    10,   454,   455,    23,   476,   477,   310,   311,
667      312,   313,    11,   464,    77,   105,   357,   325,   488,   105,
668      103,   323,   102,   101,   326,   327,    18,    62,   479,    75,
669       76,    77,   483,   484,   105,   129,   506,   507,    75,    76,
670       77,    41,    42,    43,    44,   105,   105,   129,    48,    20,
671       50,   353,   146,   104,    89,   525,    23,   102,   509,    94,
672       10,   101,    97,    98,    99,   100,   368,   429,    10,    10,
673      378,    75,    76,    77,   382,    75,    76,    77,    60,    61,
674       62,    63,   533,    10,    10,   393,   101,    75,    76,    77,
675       20,   542,    62,    63,   188,    75,    76,    77,   400,   103,
676      101,   101,   404,    85,    86,    87,    88,    89,   101,   103,
677      452,   101,    94,   101,   208,    97,    98,    99,   100,    89,
678       75,    76,    77,   103,    94,   102,   468,    97,    98,    99,
679      100,    10,   434,   435,   474,   101,   478,    75,    76,    77,
680      101,    75,    76,    77,   101,    53,   102,   101,   103,   101,
681      103,     9,    60,    61,    62,    63,   102,     0,   498,     9,
682      462,   463,   101,   503,    73,   103,     9,   101,    11,    12,
683      103,   103,    80,    81,    82,    83,    84,    85,    86,    87,
684       88,    89,    75,    76,    77,   526,    94,   101,   530,    97,
685       98,    99,   100,   103,   101,   101,   290,   537,    41,    42,
686       43,    44,   102,   505,    89,    48,    25,    50,   101,    94,
687       53,    79,    97,    98,    99,   100,    80,    60,    61,    62,
688       63,   315,    19,     0,    75,    76,    77,    75,    76,    77,
689      324,   101,    75,    76,    77,    12,    79,    80,    81,    82,
690       83,    84,    85,    86,    87,    88,    89,    72,   101,   101,
691      101,    94,    12,   101,    97,    98,    99,   100,   101,   100,
692      103,   462,   311,   106,    41,    42,    43,    44,    75,    76,
693       77,    48,   534,    50,    94,   249,    53,    97,    98,    99,
694      100,   492,   513,    60,    61,    62,    63,     3,     4,     5,
695        6,     7,     8,   514,   101,   451,   324,   146,    75,    76,
696       77,    -1,    79,    80,    81,    82,    83,    84,    85,    86,
697       87,    88,    89,   208,    -1,    -1,    -1,    94,    -1,    -1,
698       97,    98,    99,   100,   101,    -1,   103,     0,     1,   106,
699       -1,    -1,    -1,    -1,    -1,    -1,     9,    -1,    11,    -1,
700       13,    14,    15,    16,    17,    -1,    -1,    20,    21,    22,
701       23,    24,    -1,    26,    27,    28,    29,    30,    31,    32,
702       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
703       43,    44,    62,    63,    -1,    48,    49,    50,    51,    52,
704       -1,    54,    55,    56,    57,    58,    59,    -1,    -1,    -1,
705       -1,    64,    65,    66,    67,    68,    69,    70,    88,    89,
706       -1,    -1,    -1,    -1,    94,    78,    -1,    97,    98,    99,
707      100,    -1,    -1,    -1,    -1,    -1,    -1,    90,    91,    -1,
708       93,    -1,    95,    96,     0,     1,    -1,    -1,    -1,   102,
709      103,   104,   105,     9,    -1,    11,    -1,    13,    14,    15,
710       16,    17,    -1,    -1,    20,    21,    22,    23,    24,    -1,
711       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
712       36,    37,    38,    39,    40,    41,    42,    43,    44,    -1,
713       -1,    -1,    48,    49,    50,    51,    52,    -1,    54,    55,
714       56,    57,    58,    59,    -1,    -1,    -1,    -1,    64,    65,
715       66,    67,    68,    69,    70,    -1,    -1,    -1,    -1,    -1,
716       -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
717       -1,    -1,    -1,    -1,    90,    91,    -1,    93,    -1,    95,
718       96,    -1,     1,    -1,    -1,    -1,   102,   103,   104,   105,
719        9,    10,    11,    -1,    13,    14,    15,    16,    17,    -1,
720       -1,    20,    21,    22,    23,    24,    -1,    26,    27,    28,
721       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
722       39,    40,    41,    42,    43,    44,    -1,    -1,    -1,    48,
723       49,    50,    51,    52,    -1,    54,    55,    56,    57,    58,
724       59,    -1,    -1,    -1,    -1,    64,    65,    66,    67,    68,
725       69,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
726       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
727       -1,    90,    91,    -1,    93,    -1,    95,    96,    -1,     1,
728       -1,    -1,    -1,   102,   103,   104,   105,     9,    10,    11,
729       -1,    13,    14,    15,    16,    17,    -1,    -1,    20,    21,
730       22,    23,    24,    -1,    26,    27,    28,    29,    30,    31,
731       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
732       42,    43,    44,    -1,    -1,    -1,    48,    49,    50,    51,
733       52,    -1,    54,    55,    56,    57,    58,    59,    -1,    -1,
734       -1,    -1,    64,    65,    66,    67,    68,    69,    70,    -1,
735       -1,    -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,    -1,
736       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,    91,
737       -1,    93,    -1,    95,    96,    -1,     1,    -1,    -1,    -1,
738      102,   103,   104,   105,     9,    10,    11,    -1,    13,    14,
739       15,    16,    17,    -1,    -1,    20,    21,    22,    23,    24,
740       -1,    26,    27,    28,    29,    30,    31,    32,    33,    34,
741       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
742       -1,    -1,    -1,    48,    49,    50,    51,    52,    -1,    54,
743       55,    56,    57,    58,    59,    -1,    -1,    -1,    -1,    64,
744       65,    66,    67,    68,    69,    70,    -1,    -1,    -1,    -1,
745       -1,    -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,
746       -1,    -1,    -1,    -1,    -1,    90,    91,    -1,    93,    -1,
747       95,    96,    -1,     1,    -1,    -1,    -1,   102,   103,   104,
748      105,     9,    10,    11,    -1,    13,    14,    15,    16,    17,
749       -1,    -1,    20,    21,    22,    23,    24,    -1,    26,    27,
750       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
751       38,    39,    40,    41,    42,    43,    44,    -1,    -1,    -1,
752       48,    49,    50,    51,    52,    -1,    54,    55,    56,    57,
753       58,    59,    -1,    -1,    -1,    -1,    64,    65,    66,    67,
754       68,    69,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
755       78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
756       -1,    -1,    90,    91,    -1,    93,    -1,    95,    96,    -1,
757        1,    -1,    -1,    -1,   102,   103,   104,   105,     9,    -1,
758       11,    -1,    13,    14,    15,    16,    17,    -1,    -1,    20,
759       21,    22,    23,    24,    -1,    26,    27,    28,    29,    30,
760       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
761       41,    42,    43,    44,    -1,    -1,    -1,    48,    49,    50,
762       51,    52,    -1,    54,    55,    56,    57,    58,    59,    -1,
763       -1,    -1,    -1,    64,    65,    66,    67,    68,    69,    70,
764       -1,    -1,    73,    -1,    -1,    -1,    -1,    78,    -1,    -1,
765       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,
766       91,    -1,    93,    -1,    95,    96,    -1,     1,    -1,    -1,
767       -1,   102,   103,   104,   105,     9,    -1,    11,    -1,    13,
768       14,    15,    16,    17,    -1,    -1,    20,    21,    22,    23,
769       24,    -1,    26,    27,    28,    29,    30,    31,    32,    33,
770       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
771       44,    -1,    -1,    -1,    48,    49,    50,    51,    52,    -1,
772       54,    55,    56,    57,    58,    59,    -1,    -1,    -1,    -1,
773       64,    65,    66,    67,    68,    69,    70,    -1,    -1,    -1,
774       -1,    -1,    -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,
775       -1,    -1,    -1,    -1,    -1,    -1,    90,    91,    -1,    93,
776       -1,    95,    96,    -1,     1,    -1,    -1,    -1,   102,   103,
777      104,   105,     9,    -1,    11,    -1,    13,    14,    15,    16,
778       17,    -1,    -1,    20,    21,    22,    23,    24,    -1,    26,
779       27,    28,    29,    30,    31,    32,    -1,    34,    35,    36,
780       37,    38,    39,    40,    41,    42,    43,    44,    -1,    -1,
781       -1,    48,    49,    50,    51,    52,    -1,    54,    55,    56,
782       57,    58,    59,    -1,    -1,    -1,    -1,    64,    65,    66,
783       67,    68,    69,    70,    -1,    -1,    -1,    -1,    -1,    -1,
784       -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
785       -1,    -1,    -1,    90,    91,    -1,    93,    -1,    95,    96,
786        1,    -1,    -1,    -1,    -1,   102,   103,   104,   105,    -1,
787       11,    -1,    13,    14,    15,    16,    17,    -1,    -1,    20,
788       21,    22,    23,    24,    -1,    26,    27,    28,    29,    30,
789       31,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    -1,
790       53,    -1,    -1,    -1,    -1,    -1,    -1,    60,    61,    62,
791       63,    52,    -1,    -1,    55,    56,    57,    58,    59,    -1,
792       -1,    -1,    -1,    64,    65,    66,    67,    68,    69,    70,
793       83,    84,    85,    86,    87,    88,    89,    78,    -1,    -1,
794       -1,    94,    -1,    -1,    97,    98,    99,   100,    -1,    90,
795       91,    -1,    93,    -1,    95,    96,     1,    -1,    -1,    -1,
796       -1,   102,   103,   104,   105,    -1,    11,    -1,    13,    14,
797       15,    16,    17,    -1,    -1,    20,    21,    22,    23,    24,
798       -1,    26,    27,    28,    29,    30,    31,    -1,    -1,    -1,
799       -1,    -1,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,
800       60,    61,    62,    63,    -1,    -1,    -1,    52,    -1,    -1,
801       55,    56,    57,    58,    59,    -1,    -1,    -1,    -1,    64,
802       65,    66,    67,    68,    69,    70,    86,    87,    88,    89,
803       -1,    -1,    -1,    78,    94,    -1,    -1,    97,    98,    99,
804      100,    -1,    -1,    -1,    -1,    90,    91,    -1,    93,    -1,
805       95,    96,    -1,    -1,    -1,    -1,   101,   102,    -1,   104,
806      105,     9,    -1,    11,    -1,    13,    14,    15,    16,    17,
807       -1,    -1,    20,    21,    22,    23,    24,    25,    26,    27,
808       28,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
809       38,    -1,    -1,    -1,    -1,    -1,    -1,    60,    61,    62,
810       63,    -1,    -1,    -1,    52,    -1,    -1,    55,    56,    57,
811       58,    59,    -1,    -1,    -1,    -1,    64,    65,    66,    67,
812       68,    69,    70,    -1,    87,    88,    89,    -1,    -1,    -1,
813       78,    94,    -1,    -1,    97,    98,    99,   100,    -1,    -1,
814       -1,    -1,    90,    91,    -1,    93,    -1,    95,    96,    -1,
815       -1,    -1,    -1,    -1,   102,    -1,   104,   105,     9,    -1,
816       11,    -1,    13,    14,    15,    16,    17,    -1,    -1,    20,
817       21,    22,    23,    24,    -1,    26,    27,    28,    29,    30,
818       31,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    -1,
819       -1,    -1,    60,    61,    62,    63,    -1,    -1,    -1,    -1,
820       -1,    52,    -1,    -1,    55,    56,    57,    58,    59,    -1,
821       -1,    -1,    -1,    64,    65,    66,    67,    68,    69,    70,
822       88,    89,    -1,    -1,    -1,    -1,    94,    78,    -1,    97,
823       98,    99,   100,    -1,    -1,    -1,    -1,    -1,    -1,    90,
824       91,    -1,    93,    -1,    95,    96,    -1,    -1,    -1,    -1,
825       -1,   102,    -1,   104,   105,    11,    12,    13,    14,    15,
826       16,    17,    -1,    -1,    20,    21,    22,    23,    24,    -1,
827       26,    27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,
828       -1,    37,    38,    -1,    -1,    -1,    -1,    60,    61,    62,
829       63,    -1,    -1,    -1,    -1,    -1,    52,    -1,    -1,    55,
830       56,    57,    58,    59,    -1,    -1,    -1,    -1,    64,    65,
831       66,    67,    68,    69,    70,    88,    89,    -1,    -1,    -1,
832       -1,    94,    78,    -1,    97,    98,    99,   100,    -1,    -1,
833       -1,    -1,    -1,    -1,    90,    91,    -1,    93,    -1,    95,
834       96,    -1,    -1,    -1,    -1,    -1,   102,    -1,   104,   105,
835       11,    -1,    13,    14,    15,    16,    17,    -1,    -1,    20,
836       21,    22,    23,    24,    -1,    26,    27,    28,    29,    30,
837       31,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    -1,
838       -1,    -1,    60,    -1,    62,    63,    -1,    -1,    -1,    -1,
839       -1,    52,    -1,    -1,    55,    56,    57,    58,    59,    -1,
840       -1,    -1,    -1,    64,    65,    66,    67,    68,    69,    70,
841       88,    89,    -1,    -1,    -1,    -1,    94,    78,    -1,    97,
842       98,    99,   100,    -1,    -1,    -1,    -1,    -1,    -1,    90,
843       91,    -1,    93,    -1,    95,    96,    -1,    -1,    -1,    -1,
844       -1,   102,   103,   104,   105,    11,    -1,    13,    14,    15,
845       16,    17,    -1,    -1,    20,    21,    22,    23,    24,    -1,
846       26,    27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,
847       -1,    37,    38,    41,    42,    43,    44,    -1,    -1,    -1,
848       48,    -1,    50,    -1,    -1,    -1,    52,    -1,    -1,    55,
849       56,    57,    58,    59,    -1,    -1,    -1,    -1,    64,    65,
850       66,    67,    68,    69,    70,    -1,    -1,    75,    76,    77,
851       -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
852       -1,    -1,    -1,    -1,    90,    91,    -1,    93,    -1,    95,
853       96,    -1,    -1,    -1,    -1,   101,   102,    -1,   104,   105,
854       11,    -1,    13,    14,    15,    16,    17,    -1,    -1,    20,
855       21,    22,    23,    24,    -1,    26,    27,    28,    29,    30,
856       31,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    -1,
857       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
858       -1,    52,    -1,    -1,    55,    56,    57,    58,    59,    -1,
859       -1,    -1,    -1,    64,    65,    66,    67,    68,    69,    70,
860       -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,
861       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,
862       91,    -1,    93,    -1,    95,    96,    -1,    -1,    -1,    -1,
863      101,   102,    -1,   104,   105,    11,    -1,    13,    14,    15,
864       16,    17,    -1,    -1,    20,    21,    22,    23,    24,    -1,
865       26,    27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,
866       -1,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
867       -1,    -1,    -1,    -1,    -1,    -1,    52,    -1,    -1,    55,
868       56,    57,    58,    59,    -1,    -1,    -1,    -1,    64,    65,
869       66,    67,    68,    69,    70,    -1,    -1,    -1,    -1,    -1,
870       -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
871       -1,    -1,    -1,    -1,    90,    91,    -1,    93,    -1,    95,
872       96,    -1,    -1,    -1,    -1,   101,   102,    -1,   104,   105,
873       11,    -1,    13,    14,    15,    16,    17,    -1,    -1,    20,
874       21,    22,    23,    24,    -1,    26,    27,    28,    29,    30,
875       31,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    -1,
876       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
877       -1,    52,    -1,    -1,    55,    56,    57,    58,    59,    -1,
878       -1,    -1,    -1,    64,    65,    66,    67,    68,    69,    70,
879       -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,
880       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,
881       91,    -1,    93,    -1,    95,    96,    -1,    -1,    -1,    -1,
882      101,   102,    -1,   104,   105,    11,    -1,    13,    14,    15,
883       16,    17,    -1,    -1,    20,    21,    22,    23,    24,    -1,
884       26,    27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,
885       -1,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
886       -1,    -1,    -1,    -1,    -1,    -1,    52,    -1,    -1,    55,
887       56,    57,    58,    59,    -1,    -1,    -1,    -1,    64,    65,
888       66,    67,    68,    69,    70,    -1,    -1,    -1,    -1,    -1,
889       -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
890       -1,    -1,    -1,    -1,    90,    91,    -1,    93,    -1,    95,
891       96,    -1,    -1,    -1,    -1,   101,   102,    -1,   104,   105,
892       11,    -1,    13,    14,    15,    16,    17,    -1,    -1,    20,
893       21,    22,    23,    24,    -1,    26,    27,    28,    29,    30,
894       31,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    -1,
895       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
896       -1,    52,    -1,    -1,    55,    56,    57,    58,    59,    -1,
897       -1,    -1,    -1,    64,    65,    66,    67,    68,    69,    70,
898       -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,
899       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,
900       91,    -1,    93,    -1,    95,    96,    -1,    -1,    -1,    -1,
901      101,   102,    -1,   104,   105,    11,    -1,    13,    14,    15,
902       16,    17,    -1,    -1,    20,    21,    22,    23,    24,    -1,
903       26,    27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,
904       -1,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
905       -1,    -1,    -1,    -1,    -1,    -1,    52,    -1,    -1,    55,
906       56,    57,    58,    59,    -1,    -1,    -1,    -1,    64,    65,
907       66,    67,    68,    69,    70,    -1,    -1,    -1,    -1,    -1,
908       -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
909       -1,    -1,    -1,    -1,    90,    91,    -1,    93,    -1,    95,
910       96,    -1,    -1,    -1,    -1,   101,   102,    -1,   104,   105,
911       11,    -1,    13,    14,    15,    16,    17,    -1,    -1,    20,
912       21,    22,    23,    24,    -1,    26,    27,    28,    29,    30,
913       31,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    -1,
914       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
915       -1,    52,    -1,    -1,    55,    56,    57,    58,    59,    -1,
916       -1,    -1,    -1,    64,    65,    66,    67,    68,    69,    70,
917       -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,
918       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,
919       91,    -1,    93,    -1,    95,    96,    -1,    -1,    -1,    -1,
920       -1,   102,    -1,   104,   105,    11,    -1,    13,    14,    15,
921       16,    17,    -1,    -1,    20,    21,    22,    23,    24,    -1,
922       26,    27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,
923       -1,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
924       -1,    -1,    -1,    -1,    -1,    -1,    52,    -1,    -1,    55,
925       56,    57,    58,    59,    -1,    -1,    -1,    -1,    64,    65,
926       66,    67,    68,    69,    70,    -1,    -1,    -1,    -1,    -1,
927       -1,    -1,    78,    53,    -1,    -1,    -1,    -1,    -1,    -1,
928       60,    61,    62,    63,    90,    91,    -1,    93,    -1,    95,
929       96,    -1,    -1,    -1,    -1,    -1,   102,    -1,   104,   105,
930       80,    81,    -1,    83,    84,    85,    86,    87,    88,    89,
931       -1,    -1,    -1,    -1,    94,    53,    -1,    97,    98,    99,
932      100,    -1,    60,    61,    62,    63,    -1,    -1,    -1,    -1,
933       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
934       -1,    -1,    -1,    81,    -1,    83,    84,    85,    86,    87,
935       88,    89,    -1,    -1,    -1,    -1,    94,    -1,    -1,    97,
936       98,    99,   100
937 };
938
939   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
940      symbol of state STATE-NUM.  */
941 static const yytype_uint8 yystos[] =
942 {
943        0,     3,     4,     5,     6,     7,     8,   108,   109,   110,
944      111,   112,   113,   114,     0,   117,    11,    13,    14,    15,
945       16,    17,    20,    21,    22,    23,    24,    26,    27,    28,
946       29,    30,    31,    37,    38,    52,    55,    56,    57,    58,
947       59,    64,    65,    66,    67,    68,    69,    70,    78,    90,
948       91,    93,    95,    96,   102,   104,   105,   163,   164,   165,
949      168,   169,   170,   171,   172,   173,   175,   178,   184,   185,
950      186,   187,   188,   189,   190,   191,   192,     9,   115,     1,
951       32,    34,    35,    36,    39,    40,    41,    42,    43,    44,
952       48,    49,    50,    51,    54,   103,   115,   124,   134,   163,
953       33,   122,   123,   124,   120,   120,    12,   163,   173,   173,
954       20,    25,   115,   185,   193,   193,   193,   193,   193,   174,
955       11,   102,   173,   145,   145,   145,   173,   102,   102,   102,
956      115,   173,    20,   164,   177,   185,   193,   193,   115,   173,
957      103,   163,    20,    25,   147,   173,    93,   102,   176,   185,
958      186,   187,   173,   164,   173,   173,   173,   173,   173,   101,
959      163,   193,   193,    75,    76,    77,    79,     9,    11,   102,
960       53,    60,    61,    62,    63,    80,    81,    83,    84,    85,
961       86,    87,    88,    89,    94,    97,    98,    99,   100,   102,
962        9,    11,     9,    11,     9,    11,     9,   117,   146,   147,
963      147,    20,   144,   102,   102,   102,   102,    69,    93,   102,
964      183,   185,   102,   102,   115,   103,    47,   136,   103,    41,
965       42,    43,    44,    48,    50,   123,   124,   122,    12,   177,
966      102,   102,   163,   101,   115,    23,   148,   148,   101,   101,
967      163,   178,   193,   164,    10,   103,   177,   102,   173,   176,
968      185,   186,   187,   101,   163,    71,   150,    11,   101,   163,
969      163,   163,   173,   163,   163,   101,   163,   173,   173,   173,
970      173,   173,   173,   173,   173,   173,   173,   173,   173,   173,
971      173,   173,     9,    11,    15,    16,    17,    21,    64,   102,
972      104,   105,   167,   185,   101,   163,   163,   163,   163,   163,
973      163,   163,   163,   120,    20,   143,   144,   144,    20,   127,
974      117,   117,   117,   117,    93,   117,    69,   181,   182,   184,
975      185,   186,   187,   117,   117,   102,   117,   117,   115,   163,
976      140,   163,   163,   163,   163,   163,   178,   164,    12,   166,
977       71,   149,   149,   101,   101,   163,    10,   101,   163,   150,
978      101,    23,   163,    11,   103,    12,   101,    82,   163,   163,
979      105,   105,   105,   105,   101,   163,   105,   105,   102,   101,
980      103,    12,   103,    12,   103,    12,   103,    10,    18,   116,
981      125,   126,     9,   103,    20,   139,   163,   140,   141,   163,
982      141,   180,   185,   102,   134,   138,   141,   142,   163,   181,
983      117,   141,   141,   101,   106,   179,   177,    23,   117,   161,
984      161,   101,   101,    12,   163,    10,   173,   103,    12,   101,
985      178,    10,    10,    10,    10,   117,   148,   148,   117,    20,
986      101,   101,   101,   101,   102,   117,   101,   103,   130,   141,
987      101,   101,   163,   101,   102,   159,    12,    10,   101,   103,
988      149,   149,   131,   177,   137,   137,     9,   118,   118,   141,
989      141,   118,   128,   102,   101,   118,   118,   160,     9,    73,
990      103,   161,   162,   162,   120,   103,   118,   118,   119,    45,
991       46,   135,   135,   101,   101,   136,   139,   141,   118,    15,
992       16,   104,   152,   153,   155,   156,   157,   158,   120,   121,
993       10,   136,   136,   120,   118,   102,   118,   118,   103,   101,
994      136,    25,   151,   151,    79,   101,    10,    23,   103,   132,
995       10,   141,   136,   136,   129,   118,    80,   154,   154,   156,
996       72,   133,    19,   101,   137,   136,   173,   120,   118,   142,
997       73,   135,   101,   118
998 };
999
1000   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1001 static const yytype_uint8 yyr1[] =
1002 {
1003        0,   107,   109,   108,   110,   108,   111,   108,   112,   108,
1004      113,   108,   114,   108,   115,   116,   117,   118,   119,   120,
1005      120,   121,   121,   122,   122,   123,   123,   124,   124,   125,
1006      124,   126,   124,   124,   127,   124,   124,   124,   124,   124,
1007      124,   124,   124,   128,   129,   124,   124,   124,   130,   124,
1008      124,   124,   124,   131,   124,   124,   124,   124,   132,   133,
1009      133,   134,   134,   134,   134,   134,   134,   134,   134,   135,
1010      135,   135,   136,   136,   137,   138,   138,   139,   139,   140,
1011      141,   142,   143,   143,   144,   145,   146,   147,   147,   148,
1012      148,   149,   149,   149,   150,   150,   151,   151,   152,   152,
1013      153,   154,   154,   154,   155,   156,   156,   157,   157,   157,
1014      158,   158,   159,   160,   159,   161,   162,   162,   163,   163,
1015      163,   163,   164,   164,   164,   165,   165,   165,   165,   165,
1016      165,   165,   165,   166,   165,   167,   167,   168,   168,   168,
1017      168,   168,   168,   168,   168,   168,   168,   168,   168,   168,
1018      168,   169,   169,   169,   169,   169,   169,   169,   169,   169,
1019      169,   169,   169,   169,   169,   170,   170,   170,   170,   170,
1020      170,   170,   170,   170,   171,   171,   171,   171,   171,   171,
1021      172,   172,   173,   173,   173,   173,   173,   173,   173,   173,
1022      173,   173,   173,   173,   173,   173,   173,   173,   173,   173,
1023      173,   173,   173,   173,   173,   173,   173,   173,   173,   173,
1024      173,   173,   173,   173,   173,   173,   173,   173,   173,   173,
1025      173,   173,   173,   173,   173,   173,   173,   173,   173,   173,
1026      173,   174,   173,   173,   173,   173,   175,   175,   175,   176,
1027      176,   176,   176,   176,   177,   177,   178,   178,   179,   179,
1028      180,   181,   181,   181,   182,   182,   183,   183,   184,   185,
1029      186,   187,   188,   188,   189,   190,   190,   191,   191,   192,
1030      192,   193,   193,   193,   193
1031 };
1032
1033   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
1034 static const yytype_uint8 yyr2[] =
1035 {
1036        0,     2,     0,     4,     0,     3,     0,     3,     0,     3,
1037        0,     3,     0,     3,     4,     7,     0,     4,     0,     0,
1038        2,     0,     2,     1,     1,     2,     2,     1,     4,     0,
1039        7,     0,     7,     4,     0,     7,     7,     7,     6,     6,
1040        2,     8,     8,     0,     0,    13,     9,     8,     0,    10,
1041        9,     7,     2,     0,     8,     2,     2,     1,     2,     0,
1042        3,     1,     1,     3,     3,     3,     3,     3,     3,     0,
1043        2,     6,     0,     2,     0,     0,     1,     0,     1,     1,
1044        1,     1,     1,     0,     0,     0,     0,     1,     1,     0,
1045        1,     0,     2,     1,     2,     1,     0,     1,     1,     1,
1046        3,     0,     1,     2,     3,     1,     1,     2,     3,     1,
1047        0,     1,     0,     0,     4,     5,     1,     1,     3,     3,
1048        3,     1,     2,     3,     1,     3,     5,     6,     3,     3,
1049        5,     2,     4,     0,     5,     1,     1,     5,     4,     5,
1050        4,     5,     6,     5,     4,     5,     4,     3,     6,     4,
1051        5,     3,     3,     3,     3,     3,     3,     3,     3,     3,
1052        3,     3,     3,     3,     3,     2,     2,     2,     2,     2,
1053        2,     2,     2,     2,     3,     2,     4,     3,     5,     5,
1054        2,     2,     1,     1,     1,     1,     5,     2,     3,     1,
1055        2,     3,     1,     2,     1,     1,     1,     1,     1,     1,
1056        4,     4,     5,     5,     1,     1,     3,     4,     3,     4,
1057        4,     4,     4,     4,     1,     2,     2,     1,     2,     2,
1058        1,     2,     1,     2,     1,     3,     1,     3,     1,     3,
1059        4,     0,     6,     1,     1,     1,     3,     2,     4,     3,
1060        2,     1,     1,     1,     0,     1,     0,     1,     0,     2,
1061        1,     1,     1,     1,     1,     1,     2,     2,     2,     2,
1062        2,     2,     2,     4,     2,     1,     3,     1,     3,     1,
1063        3,     1,     1,     1,     1
1064 };
1065
1066 typedef enum {
1067         toketype_ival, toketype_opval, toketype_pval
1068 } toketypes;
1069
1070 /* type of each token/terminal */
1071 static const toketypes yy_type_tab[] =
1072 {
1073   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1074   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1075   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval,
1076   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
1077   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
1078   toketype_pval, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1079   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1080   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1081   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1082   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1083   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1084   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1085   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1086   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1087   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1088   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval,
1089   toketype_opval, toketype_ival, toketype_opval, toketype_ival, toketype_opval, toketype_opval,
1090   toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1091   toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
1092   toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
1093   toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval,
1094   toketype_opval, toketype_opval, toketype_opval, toketype_ival,
1095   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
1096   toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval,
1097   toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval,
1098   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival,
1099   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
1100   toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
1101   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval
1102 };
1103
1104 /* Generated from:
1105  * 7d1ae56dfb5e7feea413f76193d80121912cb6aadf882158a70abc41e0153b1a perly.y
1106  * b6fae5748f9bef6db4740aa5e122b84ac5181852d42474d0ecad621fa4253306 regen_perly.pl
1107  * ex: set ro: */