This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
while (my $x ...) { ...; redo } shouldn't undef $x.
[perl5.git] / perly.tab
1 #define YYFINAL  3
2 /* YYLAST -- Last index in YYTABLE.  */
3 #define YYLAST   1966
4
5 /* YYNTOKENS -- Number of terminals. */
6 #define YYNTOKENS  85
7 /* YYNNTS -- Number of nonterminals. */
8 #define YYNNTS  62
9 /* YYNRULES -- Number of rules. */
10 #define YYNRULES  199
11 /* YYNRULES -- Number of states. */
12 #define YYNSTATES  399
13
14 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
15 #define YYUNDEFTOK  2
16 #define YYMAXUTOK   320
17
18 #define YYTRANSLATE(YYX)                                                \
19   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
20
21 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
22 static const unsigned char yytranslate[] =
23 {
24        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
25        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
26        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
27        2,     2,     2,    63,     2,     2,    81,    83,    46,     2,
28       74,    73,    84,    80,    52,    79,     2,     2,     2,     2,
29        2,     2,     2,     2,     2,     2,     2,     2,    55,    77,
30        2,     2,     2,    54,    82,     2,     2,     2,     2,     2,
31        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
32        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
33        2,    75,     2,    78,     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,     3,     2,    76,    64,     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,     1,     2,     4,     5,
50        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
51       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
52       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
53       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
54       47,    48,    49,    50,    51,    53,    56,    57,    58,    59,
55       60,    61,    62,    65,    66,    67,    68,    69,    70,    71,
56       72
57 };
58
59 #if YYDEBUG
60 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
61    YYRHS.  */
62 static const unsigned short yyprhs[] =
63 {
64        0,     0,     3,     6,    11,    12,    13,    18,    19,    20,
65       21,    24,    28,    31,    33,    36,    40,    42,    44,    48,
66       52,    56,    60,    64,    65,    68,    75,    83,    91,    92,
67       95,   105,   115,   126,   136,   145,   158,   162,   163,   164,
68      166,   167,   169,   171,   173,   175,   177,   178,   180,   182,
69      184,   186,   188,   190,   195,   197,   198,   205,   212,   213,
70      214,   215,   217,   218,   220,   221,   224,   226,   229,   231,
71      233,   235,   239,   240,   248,   252,   256,   260,   262,   265,
72      269,   271,   275,   281,   288,   292,   296,   302,   305,   310,
73      311,   317,   319,   321,   327,   332,   338,   343,   349,   356,
74      362,   367,   373,   378,   382,   386,   390,   394,   398,   402,
75      406,   410,   414,   418,   422,   426,   430,   434,   438,   441,
76      444,   447,   450,   453,   456,   459,   462,   466,   469,   474,
77      478,   484,   487,   490,   495,   501,   506,   512,   514,   516,
78      518,   520,   526,   529,   531,   534,   538,   541,   543,   545,
79      547,   549,   551,   553,   560,   566,   571,   577,   579,   581,
80      585,   590,   594,   596,   599,   602,   604,   607,   610,   613,
81      615,   619,   621,   625,   630,   635,   637,   639,   643,   646,
82      650,   653,   655,   657,   659,   660,   662,   663,   665,   668,
83      670,   673,   676,   679,   682,   685,   688,   690,   692,   694
84 };
85
86 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
87 static const short yyrhs[] =
88 {
89       86,     0,    -1,    89,    93,    -1,     3,    88,    93,    76,
90       -1,    -1,    -1,     3,    91,    93,    76,    -1,    -1,    -1,
91       -1,    93,   108,    -1,    93,    92,    94,    -1,   107,    97,
92       -1,    99,    -1,   107,    77,    -1,   107,    95,    77,    -1,
93        1,    -1,   124,    -1,   124,    21,   124,    -1,   124,    22,
94      124,    -1,   124,    19,   124,    -1,   124,    20,   103,    -1,
95      124,    26,   124,    -1,    -1,    23,    90,    -1,    24,    74,
96      104,    73,    90,    96,    -1,    21,    74,    88,   104,    73,
97       90,    96,    -1,    22,    74,    88,   106,    73,    90,    96,
98       -1,    -1,    25,    87,    -1,   107,    19,    74,    88,   102,
99       73,   100,    90,    98,    -1,   107,    20,    74,    88,   103,
100       73,   100,    90,    98,    -1,   107,    26,    43,    88,   139,
101       74,   104,    73,    90,    98,    -1,   107,    26,   141,    74,
102       88,   104,    73,    90,    98,    -1,   107,    26,    74,    88,
103      104,    73,    90,    98,    -1,   107,    26,    74,    88,   105,
104       77,   102,    77,   100,   105,    73,    90,    -1,   107,    87,
105       98,    -1,    -1,    -1,    95,    -1,    -1,   124,    -1,   124,
106       -1,   124,    -1,   101,    -1,   103,    -1,    -1,    13,    -1,
107      109,    -1,   112,    -1,   111,    -1,   121,    -1,   122,    -1,
108       14,   115,   110,    87,    -1,     4,    -1,    -1,    44,   113,
109      116,   117,   118,   120,    -1,    15,   113,   116,   117,   118,
110      120,    -1,    -1,    -1,    -1,     4,    -1,    -1,     7,    -1,
111       -1,    45,     7,    -1,    45,    -1,    45,     7,    -1,    45,
112       -1,    87,    -1,    77,    -1,    17,     4,    77,    -1,    -1,
113       18,   113,   123,     4,     4,   137,    77,    -1,   124,    50,
114      124,    -1,   124,    49,   124,    -1,   124,    48,   124,    -1,
115      125,    -1,   125,    52,    -1,   125,    52,   134,    -1,   134,
116       -1,    33,   146,   125,    -1,    31,    74,   146,   124,    73,
117       -1,   134,    72,   128,    74,   138,    73,    -1,   134,    72,
118      128,    -1,     5,   146,   137,    -1,     6,   146,    74,   138,
119       73,    -1,    33,   137,    -1,    31,    74,   138,    73,    -1,
120       -1,    12,   114,    87,   127,   137,    -1,     5,    -1,   141,
121       -1,   145,     3,   124,    77,    76,    -1,   141,    75,   124,
122       78,    -1,   134,    72,    75,   124,    78,    -1,   129,    75,
123      124,    78,    -1,   141,     3,   124,    77,    76,    -1,   134,
124       72,     3,   124,    77,    76,    -1,   129,     3,   124,    77,
125       76,    -1,   134,    72,    74,    73,    -1,   134,    72,    74,
126      124,    73,    -1,   129,    74,   124,    73,    -1,   129,    74,
127       73,    -1,   134,    53,   134,    -1,   134,    67,   134,    -1,
128      134,    36,   134,    -1,   134,    37,   134,    -1,   134,    61,
129      134,    -1,   134,    34,   134,    -1,   134,    35,   134,    -1,
130      134,    60,   134,    -1,   134,    59,   134,    -1,   134,    28,
131      134,    -1,   134,    58,   134,    -1,   134,    57,   134,    -1,
132      134,    56,   134,    -1,   134,    62,   134,    -1,    79,   134,
133       -1,    80,   134,    -1,    63,   134,    -1,    64,   134,    -1,
134      134,    69,    -1,   134,    68,    -1,    71,   134,    -1,    70,
135      134,    -1,    75,   124,    78,    -1,    75,    78,    -1,    40,
136      124,    77,    76,    -1,    40,    77,    76,    -1,    16,   114,
137      117,   118,    87,    -1,    39,   134,    -1,    39,    87,    -1,
138       39,     4,    74,    73,    -1,    39,     4,    74,   124,    73,
139       -1,    39,   141,    74,    73,    -1,    39,   141,    74,   124,
140       73,    -1,   130,    -1,   131,    -1,   132,    -1,   133,    -1,
141      134,    54,   134,    55,   134,    -1,    65,   134,    -1,   135,
142       -1,    42,   134,    -1,    74,   124,    73,    -1,    74,    73,
143       -1,   141,    -1,   145,    -1,   143,    -1,   142,    -1,   144,
144       -1,   129,    -1,    74,   124,    73,    75,   124,    78,    -1,
145       74,    73,    75,   124,    78,    -1,   142,    75,   124,    78,
146       -1,   142,     3,   124,    77,    76,    -1,     7,    -1,   140,
147       -1,   140,    74,    73,    -1,   140,    74,   124,    73,    -1,
148       41,     4,   137,    -1,    27,    -1,    27,   134,    -1,    51,
149      125,    -1,    32,    -1,    32,    87,    -1,    32,   134,    -1,
150       11,   134,    -1,    29,    -1,    29,    74,    73,    -1,    10,
151       -1,    30,    74,    73,    -1,    30,    74,   124,    73,    -1,
152        8,    74,   125,    73,    -1,     4,    -1,   126,    -1,    43,
153      136,   119,    -1,    43,   136,    -1,    74,   124,    73,    -1,
154       74,    73,    -1,   141,    -1,   143,    -1,   142,    -1,    -1,
155      125,    -1,    -1,   124,    -1,   124,    52,    -1,   141,    -1,
156       46,   146,    -1,    81,   146,    -1,    82,   146,    -1,    83,
157      146,    -1,    38,   146,    -1,    84,   146,    -1,     4,    -1,
158      141,    -1,    87,    -1,     9,    -1
159 };
160
161 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
162 static const unsigned short yyrline[] =
163 {
164        0,    95,    95,   101,   108,   112,   118,   125,   129,   133,
165      134,   136,   145,   147,   148,   157,   163,   165,   167,   169,
166      171,   173,   175,   182,   183,   185,   192,   196,   204,   205,
167      210,   216,   222,   225,   229,   232,   249,   257,   263,   264,
168      269,   270,   274,   279,   283,   287,   293,   294,   298,   300,
169      302,   304,   306,   310,   314,   315,   319,   324,   329,   333,
170      337,   341,   350,   351,   356,   357,   359,   364,   366,   371,
171      372,   375,   380,   379,   386,   388,   390,   392,   396,   398,
172      400,   404,   407,   410,   415,   419,   424,   429,   431,   434,
173      433,   442,   443,   447,   452,   454,   458,   462,   465,   470,
174      475,   478,   483,   487,   493,   495,   497,   501,   503,   505,
175      507,   509,   511,   513,   515,   517,   519,   521,   526,   528,
176      530,   532,   534,   537,   540,   543,   550,   552,   554,   556,
177      558,   564,   566,   568,   576,   585,   589,   597,   598,   599,
178      600,   601,   603,   605,   607,   609,   611,   613,   615,   617,
179      619,   621,   623,   625,   627,   629,   635,   642,   644,   646,
180      648,   651,   654,   657,   659,   661,   663,   665,   667,   670,
181      672,   674,   677,   680,   682,   684,   685,   689,   691,   696,
182      698,   700,   702,   704,   709,   711,   716,   717,   719,   725,
183      729,   733,   737,   741,   745,   749,   754,   756,   758,   761
184 };
185 #endif
186
187 #if YYDEBUG || YYERROR_VERBOSE
188 /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
189    First, the terminals, then, starting at YYNTOKENS, nonterminals. */
190 static const char *const yytname[] =
191 {
192   "$end", "error", "$undefined", "'{'", "WORD", "METHOD", "FUNCMETH",
193   "THING", "PMFUNC", "PRIVATEREF", "FUNC0SUB", "UNIOPSUB", "LSTOPSUB",
194   "LABEL", "FORMAT", "SUB", "ANONSUB", "PACKAGE", "USE", "WHILE", "UNTIL",
195   "IF", "UNLESS", "ELSE", "ELSIF", "CONTINUE", "FOR", "LOOPEX", "DOTDOT",
196   "FUNC0", "FUNC1", "FUNC", "UNIOP", "LSTOP", "RELOP", "EQOP", "MULOP",
197   "ADDOP", "DOLSHARP", "DO", "HASHBRACK", "NOAMP", "LOCAL", "MY", "MYSUB",
198   "COLONATTR", "'&'", "PREC_LOW", "DOROP", "OROP", "ANDOP", "NOTOP", "','",
199   "ASSIGNOP", "'?'", "':'", "DORDOR", "OROR", "ANDAND", "BITOROP",
200   "BITANDOP", "SHIFTOP", "MATCHOP", "'!'", "'~'", "REFGEN", "UMINUS",
201   "POWOP", "POSTDEC", "POSTINC", "PREDEC", "PREINC", "ARROW", "')'", "'('",
202   "'['", "'}'", "';'", "']'", "'-'", "'+'", "'$'", "'@'", "'%'", "'*'",
203   "$accept", "prog", "block", "remember", "progstart", "mblock",
204   "mremember", "savescope", "lineseq", "line", "sideff", "else", "cond",
205   "cont", "loop", "mintro", "nexpr", "texpr", "iexpr", "mexpr", "mnexpr",
206   "miexpr", "label", "decl", "format", "formname", "mysubrout", "subrout",
207   "startsub", "startanonsub", "startformsub", "subname", "proto",
208   "subattrlist", "myattrlist", "subbody", "package", "use", "@1", "expr",
209   "argexpr", "listop", "@2", "method", "subscripted", "termbinop",
210   "termunop", "anonymous", "termdo", "term", "myattrterm", "myterm",
211   "listexpr", "listexprcom", "my_scalar", "amper", "scalar", "ary", "hsh",
212   "arylen", "star", "indirob", 0
213 };
214 #endif
215
216 # ifdef YYPRINT
217 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
218    token YYLEX-NUM.  */
219 static const unsigned short yytoknum[] =
220 {
221        0,   256,   257,   123,   258,   259,   260,   261,   262,   263,
222      264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
223      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
224      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
225      294,   295,   296,   297,   298,   299,    38,   300,   301,   302,
226      303,   304,    44,   305,    63,    58,   306,   307,   308,   309,
227      310,   311,   312,    33,   126,   313,   314,   315,   316,   317,
228      318,   319,   320,    41,    40,    91,   125,    59,    93,    45,
229       43,    36,    64,    37,    42
230 };
231 # endif
232
233 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
234 static const unsigned char yyr1[] =
235 {
236        0,    85,    86,    87,    88,    89,    90,    91,    92,    93,
237       93,    93,    94,    94,    94,    94,    95,    95,    95,    95,
238       95,    95,    95,    96,    96,    96,    97,    97,    98,    98,
239       99,    99,    99,    99,    99,    99,    99,   100,   101,   101,
240      102,   102,   103,   104,   105,   106,   107,   107,   108,   108,
241      108,   108,   108,   109,   110,   110,   111,   112,   113,   114,
242      115,   116,   117,   117,   118,   118,   118,   119,   119,   120,
243      120,   121,   123,   122,   124,   124,   124,   124,   125,   125,
244      125,   126,   126,   126,   126,   126,   126,   126,   126,   127,
245      126,   128,   128,   129,   129,   129,   129,   129,   129,   129,
246      129,   129,   129,   129,   130,   130,   130,   130,   130,   130,
247      130,   130,   130,   130,   130,   130,   130,   130,   131,   131,
248      131,   131,   131,   131,   131,   131,   132,   132,   132,   132,
249      132,   133,   133,   133,   133,   133,   133,   134,   134,   134,
250      134,   134,   134,   134,   134,   134,   134,   134,   134,   134,
251      134,   134,   134,   134,   134,   134,   134,   134,   134,   134,
252      134,   134,   134,   134,   134,   134,   134,   134,   134,   134,
253      134,   134,   134,   134,   134,   134,   134,   135,   135,   136,
254      136,   136,   136,   136,   137,   137,   138,   138,   138,   139,
255      140,   141,   142,   143,   144,   145,   146,   146,   146,   146
256 };
257
258 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
259 static const unsigned char yyr2[] =
260 {
261        0,     2,     2,     4,     0,     0,     4,     0,     0,     0,
262        2,     3,     2,     1,     2,     3,     1,     1,     3,     3,
263        3,     3,     3,     0,     2,     6,     7,     7,     0,     2,
264        9,     9,    10,     9,     8,    12,     3,     0,     0,     1,
265        0,     1,     1,     1,     1,     1,     0,     1,     1,     1,
266        1,     1,     1,     4,     1,     0,     6,     6,     0,     0,
267        0,     1,     0,     1,     0,     2,     1,     2,     1,     1,
268        1,     3,     0,     7,     3,     3,     3,     1,     2,     3,
269        1,     3,     5,     6,     3,     3,     5,     2,     4,     0,
270        5,     1,     1,     5,     4,     5,     4,     5,     6,     5,
271        4,     5,     4,     3,     3,     3,     3,     3,     3,     3,
272        3,     3,     3,     3,     3,     3,     3,     3,     2,     2,
273        2,     2,     2,     2,     2,     2,     3,     2,     4,     3,
274        5,     2,     2,     4,     5,     4,     5,     1,     1,     1,
275        1,     5,     2,     1,     2,     3,     2,     1,     1,     1,
276        1,     1,     1,     6,     5,     4,     5,     1,     1,     3,
277        4,     3,     1,     2,     2,     1,     2,     2,     2,     1,
278        3,     1,     3,     4,     4,     1,     1,     3,     2,     3,
279        2,     1,     1,     1,     0,     1,     0,     1,     2,     1,
280        2,     2,     2,     2,     2,     2,     1,     1,     1,     1
281 };
282
283 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
284    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
285    means the default is an error.  */
286 static const unsigned char yydefact[] =
287 {
288        5,     0,     9,     1,     8,    60,    58,     0,    58,    58,
289       46,    10,    48,    50,    49,    51,    52,    55,     0,     0,
290       72,     0,    47,    11,    13,     0,    54,     0,    61,    62,
291       71,     0,    62,    16,     4,   175,     0,     0,   157,     0,
292      171,     0,    59,    59,     0,     0,     0,     0,     0,   162,
293      169,     0,     0,   165,   184,     0,     0,     0,     0,     0,
294        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
295       14,     0,     0,     0,     0,     0,     0,    28,     0,    12,
296       17,    77,   176,   152,   137,   138,   139,   140,    80,   143,
297      158,   147,   150,   149,   151,   148,    53,    63,    64,     0,
298       64,     9,   196,   199,   198,   197,   184,     0,     0,   168,
299        0,    62,     4,     4,     4,     4,     4,     4,     0,   163,
300        0,     0,   186,   166,   167,   196,   185,    87,   197,     0,
301      194,   175,   132,   131,   147,     0,     0,   184,   144,     0,
302      178,   181,   183,   182,   190,   164,   120,   121,   142,   125,
303      124,   146,     0,   127,     0,   118,   119,   191,   192,   193,
304      195,     0,    36,    15,     0,     0,     0,     0,     0,     0,
305        0,     0,    78,     0,     0,     0,     0,     0,     0,     0,
306        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
307        0,   123,   122,     0,     0,     0,     0,     0,     0,     0,
308       66,     0,   184,     0,     8,    85,   186,     0,    89,    64,
309       40,     0,     0,     0,     0,     0,     4,   170,   172,     0,
310      187,     0,     0,    81,     0,     0,   129,     0,   161,   180,
311        0,    68,   177,     0,   145,   126,    29,    20,    21,    42,
312       18,    19,    22,    76,    75,    74,    79,     0,   103,     0,
313        0,   113,   109,   110,   106,   107,   104,     0,   116,   115,
314      114,   112,   111,   108,   117,   105,     0,    91,     0,     0,
315       84,    92,   159,     0,     0,     0,     0,     0,     0,    65,
316       70,    69,    57,     0,    56,     3,     0,   174,   184,     0,
317        0,    41,     0,     0,    43,    45,     0,     0,   189,    39,
318       44,     0,     0,    17,     0,   173,   188,    88,     0,   133,
319        0,   135,     0,   128,   179,    67,     0,     0,     0,   102,
320       96,     0,     0,   100,     0,     0,   186,   160,     0,    94,
321        0,   155,     0,    73,    86,    90,   130,    37,    37,     0,
322        0,     0,     0,    40,     0,    82,   134,   136,   154,     0,
323       99,   141,     0,   101,    95,     0,    97,   156,    93,     0,
324        0,     7,    23,    23,     0,    28,     0,     0,   153,    98,
325       83,    28,    28,     9,     0,     0,    26,    27,     0,    34,
326       37,    28,    30,    31,     8,    24,     0,    28,     0,    33,
327        6,     0,    32,     0,     0,     0,    23,    35,    25
328 };
329
330 /* YYDEFGOTO[NTERM-NUM]. */
331 static const short yydefgoto[] =
332 {
333       -1,     1,   104,   101,     2,   362,   373,    10,     4,    23,
334      299,   376,    79,   162,    24,   359,   300,   290,   238,   293,
335      302,   296,    25,    11,    12,    27,    13,    14,    18,   110,
336       17,    29,    98,   201,   232,   282,    15,    16,    31,   294,
337       81,    82,   288,   270,    83,    84,    85,    86,    87,    88,
338       89,   140,   127,   221,   297,    90,    91,    92,    93,    94,
339       95,   106
340 };
341
342 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
343    STATE-NUM.  */
344 #define YYPACT_NINF -344
345 static const short yypact[] =
346 {
347     -344,    25,  -344,  -344,   238,  -344,  -344,    55,  -344,  -344,
348       66,  -344,  -344,  -344,  -344,  -344,  -344,    86,   107,    38,
349     -344,   107,  -344,  -344,  -344,   264,  -344,   113,  -344,   112,
350     -344,   122,   112,  -344,  -344,  -344,    31,    31,  -344,    59,
351     -344,  1575,  -344,  -344,    73,    79,    80,   101,    -6,  1575,
352      105,   117,   119,   602,   520,    31,   684,   765,   125,  1575,
353      177,    31,  1575,  1575,  1575,  1575,  1575,  1575,   846,   927,
354     -344,  1575,  1575,    31,    31,    31,    31,   170,   124,  -344,
355      567,   144,  -344,    18,  -344,  -344,  -344,  -344,  1795,  -344,
356      132,    10,    33,  -344,  -344,   206,  -344,  -344,   165,   225,
357      165,  -344,  -344,  -344,  -344,  -344,  1575,   168,  1575,    94,
358      113,   112,  -344,  -344,  -344,  -344,  -344,  -344,   171,  1795,
359      166,  1008,   520,  -344,    94,  1701,   144,  -344,  1641,  1575,
360     -344,   172,  -344,    94,    46,   174,   263,  1575,    94,  1089,
361      209,  -344,  -344,  -344,  -344,   144,     5,     5,     5,   -46,
362      -46,   186,    87,  -344,    32,     5,     5,  -344,  -344,  -344,
363     -344,   113,  -344,  -344,  1575,  1575,  1575,  1575,  1575,  1575,
364     1575,  1575,  1575,  1575,  1170,  1575,  1575,  1575,  1575,  1575,
365     1575,  1575,  1575,  1575,  1575,  1575,  1575,  1575,  1575,  1575,
366     1575,  -344,  -344,    53,  1251,  1575,  1575,  1575,  1575,  1575,
367      271,     6,  1575,     6,   150,  -344,  1575,    -2,  -344,   165,
368     1575,  1575,  1575,  1575,   198,   354,  -344,  -344,  -344,   250,
369      319,   208,  1575,   144,  1332,  1413,  -344,   232,  -344,  -344,
370      325,   309,  -344,  1575,   234,  -344,  -344,   282,  -344,   282,
371      282,   282,   282,   267,   267,  -344,  1795,   456,  -344,   340,
372       74,  1879,   670,   506,   753,   252,  1795,  1753,  1894,  1894,
373      342,   425,   588,   716,     5,     5,  1575,  -344,  1494,  1575,
374      248,  -344,  -344,   466,   620,   109,   712,   154,   764,  -344,
375     -344,  -344,  -344,   249,  -344,  -344,   260,  -344,  1575,   113,
376      269,   282,   276,   280,   282,  -344,   281,   251,  -344,  -344,
377     -344,   284,   259,   214,  1575,  -344,  -344,  -344,   496,  -344,
378      507,  -344,   548,  -344,  -344,  -344,   199,  1575,   261,  -344,
379     -344,  1575,   783,  -344,   578,   302,  1575,  -344,   296,  -344,
380      306,  -344,   315,  -344,  -344,  -344,  -344,  -344,  -344,   396,
381      396,  1575,   396,  1575,   333,  -344,  -344,  -344,  -344,   373,
382     -344,  1837,   331,  -344,  -344,   335,  -344,  -344,  -344,   396,
383      396,  -344,    81,    81,   339,   170,   338,   396,  -344,  -344,
384     -344,   170,   170,  -344,   396,   346,  -344,  -344,   396,  -344,
385     -344,   170,  -344,  -344,   213,  -344,  1575,   170,   438,  -344,
386     -344,   343,  -344,   353,   396,   396,    81,  -344,  -344
387 };
388
389 /* YYPGOTO[NTERM-NUM].  */
390 static const short yypgoto[] =
391 {
392     -344,  -344,   -23,   -98,  -344,  1424,  -344,  -344,  -100,  -344,
393      402,  -343,  -344,  -189,  -344,  -326,  -344,    89,  -182,  -209,
394       42,  -344,  -344,  -344,  -344,  -344,  -344,  -344,    61,   397,
395     -344,   420,   -22,   -92,  -344,   244,  -344,  -344,  -344,   -25,
396      -51,  -344,  -344,  -344,  -344,  -344,  -344,  -344,  -344,    35,
397     -344,  -344,   -99,  -201,  -344,  -344,    -9,   392,   393,  -344,
398     -344,   -13
399 };
400
401 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
402    positive, shift that token.  If negative, reduce the rule which
403    number is the opposite.  If zero, do what YYDEFACT says.
404    If YYTABLE_NINF, syntax error.  */
405 #define YYTABLE_NINF -176
406 static const short yytable[] =
407 {
408       80,   204,    77,   126,    96,   286,   301,   205,   203,    34,
409      100,   145,   360,   195,   210,   211,   212,   213,   214,   215,
410      377,   173,  -176,  -176,   107,     3,   193,   105,   105,   292,
411      123,   295,   136,   132,    34,   102,   197,   116,   228,   118,
412      103,   129,   130,   152,   154,   128,   105,   134,   144,   195,
413      172,   141,   105,   398,   388,   126,   266,   207,   267,    19,
414      157,   158,   159,   160,   105,   105,   105,   105,   117,    20,
415       21,   287,   190,   191,   192,    73,   109,   193,   223,    22,
416      169,   170,   171,   280,   119,   196,   126,   208,   124,   209,
417       26,   133,   174,   175,   138,   344,   219,   220,   146,   147,
418      148,   149,   150,   283,   374,   375,   155,   156,   198,   222,
419      235,    28,    73,   128,   230,    30,    34,   289,   304,    97,
420      225,   196,   169,   170,   171,   355,    99,   268,   269,   137,
421      179,   180,   364,   108,    73,   169,   170,   171,   236,   237,
422      239,   240,   241,   242,   243,   244,   245,   112,   247,   249,
423      250,   126,   320,   113,   114,   188,   189,   169,   170,   171,
424      234,   190,   191,   192,     5,     6,   193,     7,     8,   273,
425      274,   275,   276,   277,   278,   115,   379,   391,   281,   120,
426      281,   220,   382,   383,   271,   291,   239,   329,   239,   335,
427      303,   121,   389,   122,     9,   161,   172,   308,   392,   310,
428      312,   163,   169,   170,   171,   298,   194,   246,   316,   199,
429      200,   251,   252,   253,   254,   255,   256,   257,   258,   259,
430      260,   261,   262,   263,   264,   265,   285,     5,     6,   202,
431        7,     8,   331,   164,   165,   166,   167,   126,    -2,   217,
432      168,   322,   206,   324,   325,   216,   224,   169,   170,   171,
433      226,   139,     5,     6,   231,     7,     8,     9,    73,    74,
434       75,   233,   169,   170,   171,    33,   336,    34,    35,    36,
435       37,    38,    39,   384,    40,    41,    42,   348,   279,    73,
436       43,   307,     9,    44,    45,    46,    47,   -43,   179,   390,
437       48,    49,   349,    50,    51,    52,    53,    54,   169,   170,
438      171,   220,    55,    56,    57,    58,    59,    60,   313,   317,
439       61,   169,   170,   171,   189,    62,   315,   171,   291,   190,
440      191,   192,   326,   305,   193,   341,   333,    63,    64,    65,
441      169,   170,   171,   334,    66,    67,   343,   350,    68,    69,
442      227,    70,   337,    71,    72,    73,    74,    75,    76,   338,
443      169,   170,   171,   339,   340,    33,   351,   342,    35,    36,
444       37,    38,    39,    80,    40,    41,    42,   169,   170,   171,
445       43,   306,   356,   169,   170,   171,   177,   178,   179,   180,
446      354,    49,   357,    50,    51,    52,    53,    54,   169,   170,
447      171,   358,    55,    56,    57,    58,    59,    60,   314,   361,
448       61,   186,   187,   188,   189,    62,   367,   369,   370,   190,
449      191,   192,   378,   319,   193,   380,   394,    63,    64,    65,
450      386,   169,   170,   171,    66,    67,   395,    78,    68,    69,
451      393,   -38,   366,    71,    72,    73,    74,    75,    76,    33,
452      111,    32,    35,    36,    37,    38,    39,   284,    40,    41,
453       42,   368,   142,   143,    43,     0,     0,     0,     0,   177,
454      178,   179,   180,     0,     0,    49,     0,    50,    51,    52,
455       53,    54,     0,     0,     0,     0,    55,    56,    57,    58,
456       59,    60,     0,     0,    61,   187,   188,   189,     0,    62,
457        0,     0,   190,   191,   192,     0,     0,   193,     0,     0,
458        0,    63,    64,    65,   169,   170,   171,     0,    66,    67,
459        0,   -38,    68,    69,   169,   170,   171,    71,    72,    73,
460       74,    75,    76,    34,   125,    36,    37,    38,    39,   103,
461       40,    41,    42,   318,     0,     0,    43,     0,     0,   327,
462      177,  -176,   179,   180,   169,   170,   171,    49,     0,    50,
463       51,    52,    53,    54,     0,   169,   170,   171,    55,    56,
464       57,    58,    59,    60,     0,     0,    61,   188,   189,   345,
465        0,    62,     0,   190,   191,   192,     0,     0,   193,     0,
466      346,     0,     0,    63,    64,    65,   164,   165,   166,   167,
467       66,    67,     0,   168,    68,    69,   169,   170,   171,    71,
468       72,    73,    74,    75,    76,    34,    35,    36,    37,    38,
469       39,     0,    40,    41,    42,   169,   170,   171,    43,     0,
470        0,   347,   177,   178,   179,   180,   169,   170,   171,    49,
471        0,    50,    51,    52,    53,    54,     0,     0,     0,     0,
472       55,    56,    57,    58,    59,    60,     0,     0,    61,   188,
473      189,   353,     0,    62,     0,   190,   191,   192,     0,     0,
474      193,     0,     0,     0,     0,    63,    64,    65,   169,   170,
475      171,     0,    66,    67,     0,     0,    68,    69,     0,     0,
476        0,    71,    72,    73,    74,    75,    76,    34,   131,    36,
477       37,    38,    39,     0,    40,    41,    42,   328,     0,     0,
478       43,     0,     0,     0,  -176,     0,   179,   180,     0,     0,
479        0,    49,     0,    50,    51,    52,    53,    54,     0,     0,
480        0,     0,    55,    56,    57,    58,    59,    60,     0,     0,
481       61,   188,   189,     0,     0,    62,     0,   190,   191,   192,
482        0,     0,   193,     0,     0,     0,     0,    63,    64,    65,
483        0,     0,   179,   180,    66,    67,     0,     0,    68,    69,
484      169,   170,   171,    71,    72,    73,    74,    75,    76,    35,
485       36,    37,    38,    39,     0,    40,    41,    42,   189,     0,
486        0,    43,     0,   190,   191,   192,     0,     0,   193,   330,
487        0,     0,    49,     0,    50,    51,    52,    53,    54,     0,
488        0,     0,     0,    55,    56,    57,    58,    59,    60,     0,
489        0,    61,   169,   170,   171,   189,    62,     0,     0,     0,
490      190,   191,   192,     0,     0,   193,     0,     0,    63,    64,
491       65,   169,   170,   171,     0,    66,    67,     0,     0,    68,
492       69,   332,   135,     0,    71,    72,    73,    74,    75,    76,
493       35,    36,    37,    38,    39,     0,    40,    41,    42,     0,
494      352,     0,    43,     0,     0,     0,     0,     0,     0,     0,
495        0,     0,     0,    49,     0,    50,    51,    52,    53,    54,
496        0,     0,     0,     0,    55,    56,    57,    58,    59,    60,
497        0,     0,    61,     0,     0,     0,     0,    62,     0,     0,
498        0,     0,     0,     0,     0,     0,     0,     0,     0,    63,
499       64,    65,     0,     0,     0,     0,    66,    67,     0,   151,
500       68,    69,     0,     0,     0,    71,    72,    73,    74,    75,
501       76,    35,    36,    37,    38,    39,     0,    40,    41,    42,
502        0,     0,     0,    43,     0,     0,     0,     0,     0,     0,
503        0,     0,     0,     0,    49,     0,    50,    51,    52,    53,
504       54,     0,     0,     0,     0,    55,    56,    57,    58,    59,
505       60,     0,     0,    61,     0,     0,     0,     0,    62,     0,
506        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
507       63,    64,    65,     0,     0,     0,     0,    66,    67,     0,
508        0,    68,    69,     0,     0,   153,    71,    72,    73,    74,
509       75,    76,    35,    36,    37,    38,    39,     0,    40,    41,
510       42,     0,     0,     0,    43,     0,     0,     0,     0,     0,
511        0,     0,     0,     0,     0,    49,     0,    50,    51,    52,
512       53,    54,     0,     0,     0,     0,    55,    56,    57,    58,
513       59,    60,     0,     0,    61,     0,     0,     0,     0,    62,
514        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
515        0,    63,    64,    65,     0,     0,     0,     0,    66,    67,
516        0,   218,    68,    69,     0,     0,     0,    71,    72,    73,
517       74,    75,    76,    35,    36,    37,    38,    39,     0,    40,
518       41,    42,     0,     0,     0,    43,     0,     0,     0,     0,
519        0,     0,     0,     0,     0,     0,    49,     0,    50,    51,
520       52,    53,    54,     0,     0,     0,     0,    55,    56,    57,
521       58,    59,    60,     0,     0,    61,     0,     0,     0,     0,
522       62,     0,     0,     0,     0,     0,     0,     0,     0,     0,
523        0,     0,    63,    64,    65,     0,     0,     0,     0,    66,
524       67,     0,   229,    68,    69,     0,     0,     0,    71,    72,
525       73,    74,    75,    76,    35,    36,    37,    38,    39,     0,
526       40,    41,    42,     0,     0,     0,    43,     0,     0,     0,
527        0,     0,     0,     0,     0,     0,     0,    49,     0,    50,
528       51,    52,    53,    54,     0,     0,     0,     0,    55,    56,
529       57,    58,    59,    60,     0,     0,    61,     0,     0,     0,
530        0,    62,     0,     0,     0,     0,     0,     0,     0,     0,
531        0,     0,     0,    63,    64,    65,     0,     0,     0,     0,
532       66,    67,     0,   248,    68,    69,     0,     0,     0,    71,
533       72,    73,    74,    75,    76,    35,    36,    37,    38,    39,
534        0,    40,    41,    42,     0,     0,     0,    43,     0,     0,
535        0,     0,     0,     0,     0,     0,     0,     0,    49,     0,
536       50,    51,    52,    53,    54,     0,     0,     0,     0,    55,
537       56,    57,    58,    59,    60,     0,     0,    61,     0,     0,
538        0,     0,    62,     0,     0,     0,     0,     0,     0,     0,
539        0,     0,     0,     0,    63,    64,    65,     0,     0,     0,
540        0,    66,    67,     0,   272,    68,    69,     0,     0,     0,
541       71,    72,    73,    74,    75,    76,    35,    36,    37,    38,
542       39,     0,    40,    41,    42,     0,     0,     0,    43,     0,
543        0,     0,     0,     0,     0,     0,     0,     0,     0,    49,
544        0,    50,    51,    52,    53,    54,     0,     0,     0,     0,
545       55,    56,    57,    58,    59,    60,     0,     0,    61,     0,
546        0,     0,     0,    62,     0,     0,     0,     0,     0,     0,
547        0,     0,     0,     0,     0,    63,    64,    65,     0,     0,
548        0,     0,    66,    67,     0,   309,    68,    69,     0,     0,
549        0,    71,    72,    73,    74,    75,    76,    35,    36,    37,
550       38,    39,     0,    40,    41,    42,     0,     0,     0,    43,
551        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
552       49,     0,    50,    51,    52,    53,    54,     0,     0,     0,
553        0,    55,    56,    57,    58,    59,    60,     0,     0,    61,
554        0,     0,     0,     0,    62,     0,     0,     0,     0,     0,
555        0,     0,     0,     0,     0,     0,    63,    64,    65,     0,
556        0,     0,     0,    66,    67,     0,   311,    68,    69,     0,
557        0,     0,    71,    72,    73,    74,    75,    76,    35,    36,
558       37,    38,    39,     0,    40,    41,    42,     0,     0,     0,
559       43,     0,     0,     0,     0,     0,     0,     0,     0,     0,
560        0,    49,     0,    50,    51,    52,    53,    54,     0,     0,
561        0,     0,    55,    56,    57,    58,    59,    60,     0,     0,
562       61,     0,     0,     0,     0,    62,     0,     0,     0,     0,
563        0,     0,     0,     0,     0,     0,     0,    63,    64,    65,
564        0,     0,     0,     0,    66,    67,     0,   323,    68,    69,
565        0,     0,     0,    71,    72,    73,    74,    75,    76,    35,
566       36,    37,    38,    39,     0,    40,    41,    42,     0,     0,
567        0,    43,     0,     0,     0,     0,     0,     0,     0,     0,
568        0,     0,    49,     0,    50,    51,    52,    53,    54,     0,
569        0,     0,     0,    55,    56,    57,    58,    59,    60,     0,
570        0,    61,     0,     0,     0,     0,    62,     0,     0,     0,
571        0,     0,     0,     0,     0,     0,     0,     0,    63,    64,
572       65,     0,     0,     0,   195,    66,    67,     0,     0,    68,
573       69,     0,     0,     0,    71,    72,    73,    74,    75,    76,
574     -147,  -147,  -147,  -147,     0,     0,     0,  -147,     0,  -147,
575        0,     0,     0,     0,     0,  -147,  -147,  -147,  -147,     0,
576        0,     0,     0,     0,     0,     0,     0,     0,     0,  -147,
577     -147,  -147,     0,  -147,  -147,  -147,  -147,  -147,  -147,  -147,
578     -147,  -147,  -147,  -147,     0,     0,     0,     0,  -147,  -147,
579     -147,     0,     0,  -147,  -147,     0,   196,     0,  -147,  -147,
580     -175,  -175,  -175,  -175,     0,     0,     0,  -175,     0,  -175,
581        0,     0,     0,     0,     0,  -175,  -175,  -175,  -175,     0,
582        0,     0,     0,     0,     0,     0,     0,     0,     0,  -175,
583     -175,  -175,     0,  -175,  -175,  -175,  -175,  -175,  -175,  -175,
584     -175,  -175,  -175,  -175,   363,     0,   365,     0,  -175,  -175,
585     -175,     0,     0,  -175,  -175,     0,     0,     0,  -175,  -175,
586        0,   176,     0,   371,   372,     0,     0,   177,   178,   179,
587      180,   381,     0,     0,     0,     0,     0,     0,   385,     0,
588        0,     0,   387,     0,     0,     0,   181,   182,   321,   183,
589      184,   185,   186,   187,   188,   189,     0,     0,   396,   397,
590      190,   191,   192,   176,     0,   193,     0,     0,     0,   177,
591      178,   179,   180,     0,     0,     0,     0,     0,     0,     0,
592        0,     0,     0,     0,     0,     0,     0,     0,   181,   182,
593        0,   183,   184,   185,   186,   187,   188,   189,     0,     0,
594        0,     0,   190,   191,   192,   176,     0,   193,     0,     0,
595        0,   177,   178,   179,   180,     0,     0,     0,     0,     0,
596        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
597        0,   182,     0,   183,   184,   185,   186,   187,   188,   189,
598        0,     0,     0,     0,   190,   191,   192,  -176,     0,   193,
599        0,     0,     0,   177,   178,   179,   180,     0,     0,     0,
600        0,     0,     0,     0,     0,     0,     0,     0,   177,   178,
601      179,   180,     0,     0,     0,   183,   184,   185,   186,   187,
602      188,   189,     0,     0,     0,     0,   190,   191,   192,     0,
603        0,   193,   185,   186,   187,   188,   189,     0,     0,     0,
604        0,   190,   191,   192,     0,     0,   193
605 };
606
607 static const short yycheck[] =
608 {
609       25,   101,    25,    54,    27,   206,   215,   106,   100,     3,
610       32,    62,   338,     3,   112,   113,   114,   115,   116,   117,
611      363,     3,    68,    69,    37,     0,    72,    36,    37,   211,
612       53,   213,    57,    56,     3,     4,     3,    43,   137,    48,
613        9,    54,    55,    68,    69,    54,    55,    56,    61,     3,
614       52,    60,    61,   396,   380,   106,     3,   108,     5,     4,
615       73,    74,    75,    76,    73,    74,    75,    76,    74,     8,
616        9,    73,    67,    68,    69,    81,    41,    72,   129,    13,
617       48,    49,    50,    77,    49,    75,   137,   110,    53,   111,
618        4,    56,    74,    75,    59,   304,   121,   122,    63,    64,
619       65,    66,    67,   202,    23,    24,    71,    72,    75,   122,
620       78,     4,    81,   122,   139,    77,     3,   209,   216,     7,
621       74,    75,    48,    49,    50,   326,     4,    74,    75,     4,
622       36,    37,   341,    74,    81,    48,    49,    50,   161,   164,
623      165,   166,   167,   168,   169,   170,   171,    74,   173,   174,
624      175,   202,    78,    74,    74,    61,    62,    48,    49,    50,
625       73,    67,    68,    69,    14,    15,    72,    17,    18,   194,
626      195,   196,   197,   198,   199,    74,   365,   386,   201,    74,
627      203,   206,   371,   372,   193,   210,   211,    78,   213,   288,
628      215,    74,   381,    74,    44,    25,    52,   222,   387,   224,
629      225,    77,    48,    49,    50,   214,    74,   172,   233,     3,
630       45,   176,   177,   178,   179,   180,   181,   182,   183,   184,
631      185,   186,   187,   188,   189,   190,    76,    14,    15,     4,
632       17,    18,    78,    19,    20,    21,    22,   288,     0,    73,
633       26,   266,    74,   268,   269,    74,    74,    48,    49,    50,
634       76,    74,    14,    15,    45,    17,    18,    44,    81,    82,
635       83,    75,    48,    49,    50,     1,   289,     3,     4,     5,
636        6,     7,     8,   373,    10,    11,    12,    78,     7,    81,
637       16,    73,    44,    19,    20,    21,    22,    73,    36,    76,
638       26,    27,   317,    29,    30,    31,    32,    33,    48,    49,
639       50,   326,    38,    39,    40,    41,    42,    43,    76,    75,
640       46,    48,    49,    50,    62,    51,     7,    50,   343,    67,
641       68,    69,    74,    73,    72,    74,    77,    63,    64,    65,
642       48,    49,    50,    73,    70,    71,    77,    76,    74,    75,
643       77,    77,    73,    79,    80,    81,    82,    83,    84,    73,
644       48,    49,    50,    73,    73,     1,   321,    73,     4,     5,
645        6,     7,     8,   388,    10,    11,    12,    48,    49,    50,
646       16,    52,    76,    48,    49,    50,    34,    35,    36,    37,
647       78,    27,    76,    29,    30,    31,    32,    33,    48,    49,
648       50,    76,    38,    39,    40,    41,    42,    43,    73,     3,
649       46,    59,    60,    61,    62,    51,    73,    76,    73,    67,
650       68,    69,    73,    73,    72,    77,    73,    63,    64,    65,
651       74,    48,    49,    50,    70,    71,    73,    25,    74,    75,
652      388,    77,   343,    79,    80,    81,    82,    83,    84,     1,
653       43,    21,     4,     5,     6,     7,     8,   203,    10,    11,
654       12,    78,    60,    60,    16,    -1,    -1,    -1,    -1,    34,
655       35,    36,    37,    -1,    -1,    27,    -1,    29,    30,    31,
656       32,    33,    -1,    -1,    -1,    -1,    38,    39,    40,    41,
657       42,    43,    -1,    -1,    46,    60,    61,    62,    -1,    51,
658       -1,    -1,    67,    68,    69,    -1,    -1,    72,    -1,    -1,
659       -1,    63,    64,    65,    48,    49,    50,    -1,    70,    71,
660       -1,    73,    74,    75,    48,    49,    50,    79,    80,    81,
661       82,    83,    84,     3,     4,     5,     6,     7,     8,     9,
662       10,    11,    12,    77,    -1,    -1,    16,    -1,    -1,    73,
663       34,    35,    36,    37,    48,    49,    50,    27,    -1,    29,
664       30,    31,    32,    33,    -1,    48,    49,    50,    38,    39,
665       40,    41,    42,    43,    -1,    -1,    46,    61,    62,    73,
666       -1,    51,    -1,    67,    68,    69,    -1,    -1,    72,    -1,
667       73,    -1,    -1,    63,    64,    65,    19,    20,    21,    22,
668       70,    71,    -1,    26,    74,    75,    48,    49,    50,    79,
669       80,    81,    82,    83,    84,     3,     4,     5,     6,     7,
670        8,    -1,    10,    11,    12,    48,    49,    50,    16,    -1,
671       -1,    73,    34,    35,    36,    37,    48,    49,    50,    27,
672       -1,    29,    30,    31,    32,    33,    -1,    -1,    -1,    -1,
673       38,    39,    40,    41,    42,    43,    -1,    -1,    46,    61,
674       62,    73,    -1,    51,    -1,    67,    68,    69,    -1,    -1,
675       72,    -1,    -1,    -1,    -1,    63,    64,    65,    48,    49,
676       50,    -1,    70,    71,    -1,    -1,    74,    75,    -1,    -1,
677       -1,    79,    80,    81,    82,    83,    84,     3,     4,     5,
678        6,     7,     8,    -1,    10,    11,    12,    77,    -1,    -1,
679       16,    -1,    -1,    -1,    34,    -1,    36,    37,    -1,    -1,
680       -1,    27,    -1,    29,    30,    31,    32,    33,    -1,    -1,
681       -1,    -1,    38,    39,    40,    41,    42,    43,    -1,    -1,
682       46,    61,    62,    -1,    -1,    51,    -1,    67,    68,    69,
683       -1,    -1,    72,    -1,    -1,    -1,    -1,    63,    64,    65,
684       -1,    -1,    36,    37,    70,    71,    -1,    -1,    74,    75,
685       48,    49,    50,    79,    80,    81,    82,    83,    84,     4,
686        5,     6,     7,     8,    -1,    10,    11,    12,    62,    -1,
687       -1,    16,    -1,    67,    68,    69,    -1,    -1,    72,    77,
688       -1,    -1,    27,    -1,    29,    30,    31,    32,    33,    -1,
689       -1,    -1,    -1,    38,    39,    40,    41,    42,    43,    -1,
690       -1,    46,    48,    49,    50,    62,    51,    -1,    -1,    -1,
691       67,    68,    69,    -1,    -1,    72,    -1,    -1,    63,    64,
692       65,    48,    49,    50,    -1,    70,    71,    -1,    -1,    74,
693       75,    77,    77,    -1,    79,    80,    81,    82,    83,    84,
694        4,     5,     6,     7,     8,    -1,    10,    11,    12,    -1,
695       77,    -1,    16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
696       -1,    -1,    -1,    27,    -1,    29,    30,    31,    32,    33,
697       -1,    -1,    -1,    -1,    38,    39,    40,    41,    42,    43,
698       -1,    -1,    46,    -1,    -1,    -1,    -1,    51,    -1,    -1,
699       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,
700       64,    65,    -1,    -1,    -1,    -1,    70,    71,    -1,    73,
701       74,    75,    -1,    -1,    -1,    79,    80,    81,    82,    83,
702       84,     4,     5,     6,     7,     8,    -1,    10,    11,    12,
703       -1,    -1,    -1,    16,    -1,    -1,    -1,    -1,    -1,    -1,
704       -1,    -1,    -1,    -1,    27,    -1,    29,    30,    31,    32,
705       33,    -1,    -1,    -1,    -1,    38,    39,    40,    41,    42,
706       43,    -1,    -1,    46,    -1,    -1,    -1,    -1,    51,    -1,
707       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
708       63,    64,    65,    -1,    -1,    -1,    -1,    70,    71,    -1,
709       -1,    74,    75,    -1,    -1,    78,    79,    80,    81,    82,
710       83,    84,     4,     5,     6,     7,     8,    -1,    10,    11,
711       12,    -1,    -1,    -1,    16,    -1,    -1,    -1,    -1,    -1,
712       -1,    -1,    -1,    -1,    -1,    27,    -1,    29,    30,    31,
713       32,    33,    -1,    -1,    -1,    -1,    38,    39,    40,    41,
714       42,    43,    -1,    -1,    46,    -1,    -1,    -1,    -1,    51,
715       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
716       -1,    63,    64,    65,    -1,    -1,    -1,    -1,    70,    71,
717       -1,    73,    74,    75,    -1,    -1,    -1,    79,    80,    81,
718       82,    83,    84,     4,     5,     6,     7,     8,    -1,    10,
719       11,    12,    -1,    -1,    -1,    16,    -1,    -1,    -1,    -1,
720       -1,    -1,    -1,    -1,    -1,    -1,    27,    -1,    29,    30,
721       31,    32,    33,    -1,    -1,    -1,    -1,    38,    39,    40,
722       41,    42,    43,    -1,    -1,    46,    -1,    -1,    -1,    -1,
723       51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
724       -1,    -1,    63,    64,    65,    -1,    -1,    -1,    -1,    70,
725       71,    -1,    73,    74,    75,    -1,    -1,    -1,    79,    80,
726       81,    82,    83,    84,     4,     5,     6,     7,     8,    -1,
727       10,    11,    12,    -1,    -1,    -1,    16,    -1,    -1,    -1,
728       -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,    -1,    29,
729       30,    31,    32,    33,    -1,    -1,    -1,    -1,    38,    39,
730       40,    41,    42,    43,    -1,    -1,    46,    -1,    -1,    -1,
731       -1,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
732       -1,    -1,    -1,    63,    64,    65,    -1,    -1,    -1,    -1,
733       70,    71,    -1,    73,    74,    75,    -1,    -1,    -1,    79,
734       80,    81,    82,    83,    84,     4,     5,     6,     7,     8,
735       -1,    10,    11,    12,    -1,    -1,    -1,    16,    -1,    -1,
736       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,    -1,
737       29,    30,    31,    32,    33,    -1,    -1,    -1,    -1,    38,
738       39,    40,    41,    42,    43,    -1,    -1,    46,    -1,    -1,
739       -1,    -1,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
740       -1,    -1,    -1,    -1,    63,    64,    65,    -1,    -1,    -1,
741       -1,    70,    71,    -1,    73,    74,    75,    -1,    -1,    -1,
742       79,    80,    81,    82,    83,    84,     4,     5,     6,     7,
743        8,    -1,    10,    11,    12,    -1,    -1,    -1,    16,    -1,
744       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,
745       -1,    29,    30,    31,    32,    33,    -1,    -1,    -1,    -1,
746       38,    39,    40,    41,    42,    43,    -1,    -1,    46,    -1,
747       -1,    -1,    -1,    51,    -1,    -1,    -1,    -1,    -1,    -1,
748       -1,    -1,    -1,    -1,    -1,    63,    64,    65,    -1,    -1,
749       -1,    -1,    70,    71,    -1,    73,    74,    75,    -1,    -1,
750       -1,    79,    80,    81,    82,    83,    84,     4,     5,     6,
751        7,     8,    -1,    10,    11,    12,    -1,    -1,    -1,    16,
752       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
753       27,    -1,    29,    30,    31,    32,    33,    -1,    -1,    -1,
754       -1,    38,    39,    40,    41,    42,    43,    -1,    -1,    46,
755       -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,    -1,    -1,
756       -1,    -1,    -1,    -1,    -1,    -1,    63,    64,    65,    -1,
757       -1,    -1,    -1,    70,    71,    -1,    73,    74,    75,    -1,
758       -1,    -1,    79,    80,    81,    82,    83,    84,     4,     5,
759        6,     7,     8,    -1,    10,    11,    12,    -1,    -1,    -1,
760       16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
761       -1,    27,    -1,    29,    30,    31,    32,    33,    -1,    -1,
762       -1,    -1,    38,    39,    40,    41,    42,    43,    -1,    -1,
763       46,    -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,    -1,
764       -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,    64,    65,
765       -1,    -1,    -1,    -1,    70,    71,    -1,    73,    74,    75,
766       -1,    -1,    -1,    79,    80,    81,    82,    83,    84,     4,
767        5,     6,     7,     8,    -1,    10,    11,    12,    -1,    -1,
768       -1,    16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
769       -1,    -1,    27,    -1,    29,    30,    31,    32,    33,    -1,
770       -1,    -1,    -1,    38,    39,    40,    41,    42,    43,    -1,
771       -1,    46,    -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,
772       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,    64,
773       65,    -1,    -1,    -1,     3,    70,    71,    -1,    -1,    74,
774       75,    -1,    -1,    -1,    79,    80,    81,    82,    83,    84,
775       19,    20,    21,    22,    -1,    -1,    -1,    26,    -1,    28,
776       -1,    -1,    -1,    -1,    -1,    34,    35,    36,    37,    -1,
777       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    48,
778       49,    50,    -1,    52,    53,    54,    55,    56,    57,    58,
779       59,    60,    61,    62,    -1,    -1,    -1,    -1,    67,    68,
780       69,    -1,    -1,    72,    73,    -1,    75,    -1,    77,    78,
781       19,    20,    21,    22,    -1,    -1,    -1,    26,    -1,    28,
782       -1,    -1,    -1,    -1,    -1,    34,    35,    36,    37,    -1,
783       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    48,
784       49,    50,    -1,    52,    53,    54,    55,    56,    57,    58,
785       59,    60,    61,    62,   340,    -1,   342,    -1,    67,    68,
786       69,    -1,    -1,    72,    73,    -1,    -1,    -1,    77,    78,
787       -1,    28,    -1,   359,   360,    -1,    -1,    34,    35,    36,
788       37,   367,    -1,    -1,    -1,    -1,    -1,    -1,   374,    -1,
789       -1,    -1,   378,    -1,    -1,    -1,    53,    54,    55,    56,
790       57,    58,    59,    60,    61,    62,    -1,    -1,   394,   395,
791       67,    68,    69,    28,    -1,    72,    -1,    -1,    -1,    34,
792       35,    36,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
793       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    53,    54,
794       -1,    56,    57,    58,    59,    60,    61,    62,    -1,    -1,
795       -1,    -1,    67,    68,    69,    28,    -1,    72,    -1,    -1,
796       -1,    34,    35,    36,    37,    -1,    -1,    -1,    -1,    -1,
797       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
798       -1,    54,    -1,    56,    57,    58,    59,    60,    61,    62,
799       -1,    -1,    -1,    -1,    67,    68,    69,    28,    -1,    72,
800       -1,    -1,    -1,    34,    35,    36,    37,    -1,    -1,    -1,
801       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    34,    35,
802       36,    37,    -1,    -1,    -1,    56,    57,    58,    59,    60,
803       61,    62,    -1,    -1,    -1,    -1,    67,    68,    69,    -1,
804       -1,    72,    58,    59,    60,    61,    62,    -1,    -1,    -1,
805       -1,    67,    68,    69,    -1,    -1,    72
806 };
807
808 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
809    symbol of state STATE-NUM.  */
810 static const unsigned char yystos[] =
811 {
812        0,    86,    89,     0,    93,    14,    15,    17,    18,    44,
813       92,   108,   109,   111,   112,   121,   122,   115,   113,     4,
814      113,   113,    13,    94,    99,   107,     4,   110,     4,   116,
815       77,   123,   116,     1,     3,     4,     5,     6,     7,     8,
816       10,    11,    12,    16,    19,    20,    21,    22,    26,    27,
817       29,    30,    31,    32,    33,    38,    39,    40,    41,    42,
818       43,    46,    51,    63,    64,    65,    70,    71,    74,    75,
819       77,    79,    80,    81,    82,    83,    84,    87,    95,    97,
820      124,   125,   126,   129,   130,   131,   132,   133,   134,   135,
821      140,   141,   142,   143,   144,   145,    87,     7,   117,     4,
822      117,    88,     4,     9,    87,   141,   146,   146,    74,   134,
823      114,   114,    74,    74,    74,    74,    43,    74,   141,   134,
824       74,    74,    74,    87,   134,     4,   125,   137,   141,   146,
825      146,     4,    87,   134,   141,    77,   124,     4,   134,    74,
826      136,   141,   142,   143,   146,   125,   134,   134,   134,   134,
827      134,    73,   124,    78,   124,   134,   134,   146,   146,   146,
828      146,    25,    98,    77,    19,    20,    21,    22,    26,    48,
829       49,    50,    52,     3,    74,    75,    28,    34,    35,    36,
830       37,    53,    54,    56,    57,    58,    59,    60,    61,    62,
831       67,    68,    69,    72,    74,     3,    75,     3,    75,     3,
832       45,   118,     4,   118,    93,   137,    74,   125,    87,   117,
833       88,    88,    88,    88,    88,    88,    74,    73,    73,   124,
834      124,   138,   146,   125,    74,    74,    76,    77,   137,    73,
835      124,    45,   119,    75,    73,    78,    87,   124,   103,   124,
836      124,   124,   124,   124,   124,   124,   134,   124,    73,   124,
837      124,   134,   134,   134,   134,   134,   134,   134,   134,   134,
838      134,   134,   134,   134,   134,   134,     3,     5,    74,    75,
839      128,   141,    73,   124,   124,   124,   124,   124,   124,     7,
840       77,    87,   120,   137,   120,    76,   138,    73,   127,   118,
841      102,   124,   103,   104,   124,   103,   106,   139,   141,    95,
842      101,   104,   105,   124,    88,    73,    52,    73,   124,    73,
843      124,    73,   124,    76,    73,     7,   124,    75,    77,    73,
844       78,    55,   124,    73,   124,   124,    74,    73,    77,    78,
845       77,    78,    77,    77,    73,   137,    87,    73,    73,    73,
846       73,    74,    73,    77,   104,    73,    73,    73,    78,   124,
847       76,   134,    77,    73,    78,   138,    76,    76,    76,   100,
848      100,     3,    90,    90,   104,    90,   102,    73,    78,    76,
849       73,    90,    90,    91,    23,    24,    96,    96,    73,    98,
850       77,    90,    98,    98,    93,    90,    74,    90,   100,    98,
851       76,   104,    98,   105,    73,    73,    90,    90,    96
852 };