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